Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'amlogic-dt64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/dt

arm64: dts: amlogic: updates for v5.9 (round 2)
- new board: WeTek Core2
- audio playback support on more boards
- add GPU DVFS

* tag 'amlogic-dt64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
arm64: dts: amlogic: meson-g12: add the Mali OPP table and use DVFS
arm64: dts: amlogic: meson-gxm: add the Mali OPP table and use DVFS
arm64: dts: amlogic: meson-gx: add the Mali-450 OPP table and use DVFS
arm64: dts: meson: add support for the WeTek Core 2
dt-bindings: arm: amlogic: add support for the WeTek Core 2
arm64: dts: meson: add audio playback to khadas-vim3l
arm64: dts: meson: add audio playback to odroid-c4
arm64: dts: meson: update spifc node name on Khadas VIM3/VIM3L
ARM: dts: meson: Align L2 cache-controller nodename with dtschema
arm64: dts: meson-gxl-s805x: reduce initial Mali450 core frequency
arm64: dts: meson: add missing gxl rng clock
soc: amlogic: meson-gx-socinfo: Fix S905X3 and S905D3 ID's

Link: https://lore.kernel.org/r/7h8sf8671u.fsf@baylibre.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+447 -114
+1
Documentation/devicetree/bindings/arm/amlogic.yaml
··· 121 121 - libretech,aml-s912-pc 122 122 - nexbox,a1 123 123 - tronsmart,vega-s96 124 + - wetek,core2 124 125 - const: amlogic,s912 125 126 - const: amlogic,meson-gxm 126 127
+1 -1
arch/arm/boot/dts/meson.dtsi
··· 11 11 #size-cells = <1>; 12 12 interrupt-parent = <&gic>; 13 13 14 - L2: l2-cache-controller@c4200000 { 14 + L2: cache-controller@c4200000 { 15 15 compatible = "arm,pl310-cache"; 16 16 reg = <0xc4200000 0x1000>; 17 17 cache-unified;
+1
arch/arm64/boot/dts/amlogic/Makefile
··· 41 41 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb 42 42 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-libretech-pc.dtb 43 43 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb 44 + dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb 44 45 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610.dtb 45 46 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb 46 47 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb
+34 -15
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
··· 52 52 secure-monitor = <&sm>; 53 53 }; 54 54 55 + gpu_opp_table: gpu-opp-table { 56 + compatible = "operating-points-v2"; 57 + 58 + opp-124999998 { 59 + opp-hz = /bits/ 64 <124999998>; 60 + opp-microvolt = <800000>; 61 + }; 62 + opp-249999996 { 63 + opp-hz = /bits/ 64 <249999996>; 64 + opp-microvolt = <800000>; 65 + }; 66 + opp-285714281 { 67 + opp-hz = /bits/ 64 <285714281>; 68 + opp-microvolt = <800000>; 69 + }; 70 + opp-399999994 { 71 + opp-hz = /bits/ 64 <399999994>; 72 + opp-microvolt = <800000>; 73 + }; 74 + opp-499999992 { 75 + opp-hz = /bits/ 64 <499999992>; 76 + opp-microvolt = <800000>; 77 + }; 78 + opp-666666656 { 79 + opp-hz = /bits/ 64 <666666656>; 80 + opp-microvolt = <800000>; 81 + }; 82 + opp-799999987 { 83 + opp-hz = /bits/ 64 <799999987>; 84 + opp-microvolt = <800000>; 85 + }; 86 + }; 87 + 55 88 psci { 56 89 compatible = "arm,psci-1.0"; 57 90 method = "smc"; ··· 2395 2362 interrupt-names = "job", "mmu", "gpu"; 2396 2363 clocks = <&clkc CLKID_MALI>; 2397 2364 resets = <&reset RESET_DVALIN_CAPB3>, <&reset RESET_DVALIN>; 2398 - 2399 - /* 2400 - * Mali clocking is provided by two identical clock paths 2401 - * MALI_0 and MALI_1 muxed to a single clock by a glitch 2402 - * free mux to safely change frequency while running. 2403 - */ 2404 - assigned-clocks = <&clkc CLKID_MALI_0_SEL>, 2405 - <&clkc CLKID_MALI_0>, 2406 - <&clkc CLKID_MALI>; /* Glitch free mux */ 2407 - assigned-clock-parents = <&clkc CLKID_FCLK_DIV2P5>, 2408 - <0>, /* Do Nothing */ 2409 - <&clkc CLKID_MALI_0>; 2410 - assigned-clock-rates = <0>, /* Do Nothing */ 2411 - <800000000>, 2412 - <0>; /* Do Nothing */ 2365 + operating-points-v2 = <&gpu_opp_table>; 2413 2366 #cooling-cells = <2>; 2414 2367 }; 2415 2368 };
+61
arch/arm64/boot/dts/amlogic/meson-gx-mali450.dtsi
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2017 BayLibre SAS 4 + * Author: Neil Armstrong <narmstrong@baylibre.com> 5 + */ 6 + 7 + / { 8 + gpu_opp_table: opp-table { 9 + compatible = "operating-points-v2"; 10 + 11 + opp-125000000 { 12 + opp-hz = /bits/ 64 <125000000>; 13 + opp-microvolt = <950000>; 14 + }; 15 + opp-250000000 { 16 + opp-hz = /bits/ 64 <250000000>; 17 + opp-microvolt = <950000>; 18 + }; 19 + opp-285714285 { 20 + opp-hz = /bits/ 64 <285714285>; 21 + opp-microvolt = <950000>; 22 + }; 23 + opp-400000000 { 24 + opp-hz = /bits/ 64 <400000000>; 25 + opp-microvolt = <950000>; 26 + }; 27 + opp-500000000 { 28 + opp-hz = /bits/ 64 <500000000>; 29 + opp-microvolt = <950000>; 30 + }; 31 + opp-666666666 { 32 + opp-hz = /bits/ 64 <666666666>; 33 + opp-microvolt = <950000>; 34 + }; 35 + opp-744000000 { 36 + opp-hz = /bits/ 64 <744000000>; 37 + opp-microvolt = <950000>; 38 + }; 39 + }; 40 + }; 41 + 42 + &apb { 43 + mali: gpu@c0000 { 44 + compatible = "arm,mali-450"; 45 + reg = <0x0 0xc0000 0x0 0x40000>; 46 + interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 47 + <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, 48 + <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, 49 + <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, 50 + <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, 51 + <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, 52 + <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, 53 + <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, 54 + <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, 55 + <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; 56 + interrupt-names = "gp", "gpmmu", "pp", "pmu", 57 + "pp0", "ppmmu0", "pp1", "ppmmu1", 58 + "pp2", "ppmmu2"; 59 + operating-points-v2 = <&gpu_opp_table>; 60 + }; 61 + };
+11 -40
arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
··· 4 4 */ 5 5 6 6 #include "meson-gx.dtsi" 7 + #include "meson-gx-mali450.dtsi" 7 8 #include <dt-bindings/gpio/meson-gxbb-gpio.h> 8 9 #include <dt-bindings/reset/amlogic,meson-gxbb-reset.h> 9 10 #include <dt-bindings/clock/gxbb-clkc.h> ··· 265 264 }; 266 265 }; 267 266 268 - &apb { 269 - mali: gpu@c0000 { 270 - compatible = "amlogic,meson-gxbb-mali", "arm,mali-450"; 271 - reg = <0x0 0xc0000 0x0 0x40000>; 272 - interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 273 - <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, 274 - <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, 275 - <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, 276 - <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, 277 - <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, 278 - <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, 279 - <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, 280 - <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, 281 - <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; 282 - interrupt-names = "gp", "gpmmu", "pp", "pmu", 283 - "pp0", "ppmmu0", "pp1", "ppmmu1", 284 - "pp2", "ppmmu2"; 285 - clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>; 286 - clock-names = "bus", "core"; 287 - 288 - /* 289 - * Mali clocking is provided by two identical clock paths 290 - * MALI_0 and MALI_1 muxed to a single clock by a glitch 291 - * free mux to safely change frequency while running. 292 - */ 293 - assigned-clocks = <&clkc CLKID_GP0_PLL>, 294 - <&clkc CLKID_MALI_0_SEL>, 295 - <&clkc CLKID_MALI_0>, 296 - <&clkc CLKID_MALI>; /* Glitch free mux */ 297 - assigned-clock-parents = <0>, /* Do Nothing */ 298 - <&clkc CLKID_GP0_PLL>, 299 - <0>, /* Do Nothing */ 300 - <&clkc CLKID_MALI_0>; 301 - assigned-clock-rates = <744000000>, 302 - <0>, /* Do Nothing */ 303 - <744000000>, 304 - <0>; /* Do Nothing */ 305 - }; 306 - }; 307 - 308 267 &cbus { 309 268 spifc: spi@8c80 { 310 269 compatible = "amlogic,meson-gxbb-spifc"; ··· 345 384 346 385 &i2c_C { 347 386 clocks = <&clkc CLKID_I2C>; 387 + }; 388 + 389 + &mali { 390 + compatible = "amlogic,meson-gxbb-mali", "arm,mali-450"; 391 + 392 + clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>; 393 + clock-names = "bus", "core"; 394 + 395 + assigned-clocks = <&clkc CLKID_GP0_PLL>; 396 + assigned-clock-rates = <744000000>; 348 397 }; 349 398 350 399 &periphs {
+9 -37
arch/arm64/boot/dts/amlogic/meson-gxl-mali.dtsi
··· 4 4 * Author: Neil Armstrong <narmstrong@baylibre.com> 5 5 */ 6 6 7 - &apb { 8 - mali: gpu@c0000 { 9 - compatible = "amlogic,meson-gxl-mali", "arm,mali-450"; 10 - reg = <0x0 0xc0000 0x0 0x40000>; 11 - interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 12 - <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, 13 - <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, 14 - <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, 15 - <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, 16 - <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, 17 - <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, 18 - <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, 19 - <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, 20 - <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; 21 - interrupt-names = "gp", "gpmmu", "pp", "pmu", 22 - "pp0", "ppmmu0", "pp1", "ppmmu1", 23 - "pp2", "ppmmu2"; 24 - clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>; 25 - clock-names = "bus", "core"; 7 + #include "meson-gx-mali450.dtsi" 26 8 27 - /* 28 - * Mali clocking is provided by two identical clock paths 29 - * MALI_0 and MALI_1 muxed to a single clock by a glitch 30 - * free mux to safely change frequency while running. 31 - */ 32 - assigned-clocks = <&clkc CLKID_GP0_PLL>, 33 - <&clkc CLKID_MALI_0_SEL>, 34 - <&clkc CLKID_MALI_0>, 35 - <&clkc CLKID_MALI>; /* Glitch free mux */ 36 - assigned-clock-parents = <0>, /* Do Nothing */ 37 - <&clkc CLKID_GP0_PLL>, 38 - <0>, /* Do Nothing */ 39 - <&clkc CLKID_MALI_0>; 40 - assigned-clock-rates = <744000000>, 41 - <0>, /* Do Nothing */ 42 - <744000000>, 43 - <0>; /* Do Nothing */ 44 - }; 9 + &mali { 10 + compatible = "amlogic,meson-gxl-mali", "arm,mali-450"; 11 + 12 + clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>; 13 + clock-names = "bus", "core"; 14 + 15 + assigned-clocks = <&clkc CLKID_GP0_PLL>; 16 + assigned-clock-rates = <744000000>; 45 17 };
+1 -1
arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts
··· 10 10 #include <dt-bindings/input/input.h> 11 11 #include <dt-bindings/sound/meson-aiu.h> 12 12 13 - #include "meson-gxl-s905x.dtsi" 13 + #include "meson-gxl-s805x.dtsi" 14 14 15 15 / { 16 16 compatible = "libretech,aml-s805x-ac", "amlogic,s805x",
+1 -1
arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts
··· 9 9 10 10 #include <dt-bindings/input/input.h> 11 11 12 - #include "meson-gxl-s905x.dtsi" 12 + #include "meson-gxl-s805x.dtsi" 13 13 14 14 / { 15 15 compatible = "amlogic,p241", "amlogic,s805x", "amlogic,meson-gxl";
+23
arch/arm64/boot/dts/amlogic/meson-gxl-s805x.dtsi
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2020 BayLibre SAS 4 + * Author: Neil Armstrong <narmstrong@baylibre.com> 5 + */ 6 + 7 + #include "meson-gxl-s905x.dtsi" 8 + 9 + / { 10 + compatible = "amlogic,s805x", "amlogic,meson-gxl"; 11 + }; 12 + 13 + /* The S805X Package doesn't seem to handle the 744MHz OPP correctly */ 14 + &gpu_opp_table { 15 + opp-744000000 { 16 + status = "disabled"; 17 + }; 18 + }; 19 + 20 + &mali { 21 + /delete-property/ assigned-clocks; 22 + /delete-property/ assigned-clock-rates; 23 + };
+5
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
··· 338 338 }; 339 339 }; 340 340 341 + &hwrng { 342 + clocks = <&clkc CLKID_RNG0>; 343 + clock-names = "core"; 344 + }; 345 + 341 346 &i2c_A { 342 347 clocks = <&clkc CLKID_I2C>; 343 348 };
+87
arch/arm64/boot/dts/amlogic/meson-gxm-wetek-core2.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2020 Christian Hewitt <christianshewitt@gmail.com> 4 + */ 5 + 6 + /dts-v1/; 7 + 8 + #include "meson-gxm.dtsi" 9 + #include "meson-gx-p23x-q20x.dtsi" 10 + #include <dt-bindings/input/input.h> 11 + #include <dt-bindings/leds/common.h> 12 + 13 + / { 14 + compatible = "wetek,core2", "amlogic,s912", "amlogic,meson-gxm"; 15 + model = "WeTek Core 2"; 16 + 17 + memory@0 { 18 + device_type = "memory"; 19 + reg = <0x0 0x0 0x0 0x80000000>; /* 2 GiB or 3 GiB */ 20 + }; 21 + 22 + leds { 23 + compatible = "gpio-leds"; 24 + 25 + blue { 26 + color = <LED_COLOR_ID_BLUE>; 27 + function = LED_FUNCTION_STATUS; 28 + gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>; 29 + default-state = "on"; 30 + }; 31 + }; 32 + 33 + adc-keys { 34 + compatible = "adc-keys"; 35 + io-channels = <&saradc 0>; 36 + io-channel-names = "buttons"; 37 + keyup-threshold-microvolt = <1710000>; 38 + 39 + button-update { 40 + label = "update"; 41 + linux,code = <KEY_VENDOR>; 42 + press-threshold-microvolt = <10000>; 43 + }; 44 + }; 45 + 46 + gpio-keys-polled { 47 + compatible = "gpio-keys-polled"; 48 + #address-cells = <1>; 49 + #size-cells = <0>; 50 + poll-interval = <100>; 51 + 52 + button-power { 53 + label = "power"; 54 + linux,code = <KEY_POWER>; 55 + gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; 56 + }; 57 + }; 58 + }; 59 + 60 + /* Disabled as Realtek RTL8152 USB provides Ethernet */ 61 + &ethmac { 62 + status = "disabled"; 63 + }; 64 + 65 + &internal_phy { 66 + status = "disabled"; 67 + }; 68 + 69 + &ir { 70 + linux,rc-map-name = "rc-wetek-play2"; 71 + }; 72 + 73 + /* This is connected to the Bluetooth module: */ 74 + &uart_A { 75 + status = "okay"; 76 + pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 77 + pinctrl-names = "default"; 78 + uart-has-rtscts; 79 + 80 + bluetooth { 81 + compatible = "brcm,bcm43438-bt"; 82 + shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 83 + max-speed = <2000000>; 84 + clocks = <&wifi32k>; 85 + clock-names = "lpo"; 86 + }; 87 + };
+30 -15
arch/arm64/boot/dts/amlogic/meson-gxm.dtsi
··· 82 82 #cooling-cells = <2>; 83 83 }; 84 84 }; 85 + 86 + gpu_opp_table: opp-table { 87 + compatible = "operating-points-v2"; 88 + 89 + opp-125000000 { 90 + opp-hz = /bits/ 64 <125000000>; 91 + opp-microvolt = <950000>; 92 + }; 93 + opp-250000000 { 94 + opp-hz = /bits/ 64 <250000000>; 95 + opp-microvolt = <950000>; 96 + }; 97 + opp-285714285 { 98 + opp-hz = /bits/ 64 <285714285>; 99 + opp-microvolt = <950000>; 100 + }; 101 + opp-400000000 { 102 + opp-hz = /bits/ 64 <400000000>; 103 + opp-microvolt = <950000>; 104 + }; 105 + opp-500000000 { 106 + opp-hz = /bits/ 64 <500000000>; 107 + opp-microvolt = <950000>; 108 + }; 109 + opp-666666666 { 110 + opp-hz = /bits/ 64 <666666666>; 111 + opp-microvolt = <950000>; 112 + }; 113 + }; 85 114 }; 86 115 87 116 &apb { ··· 135 106 interrupt-names = "job", "mmu", "gpu"; 136 107 clocks = <&clkc CLKID_MALI>; 137 108 resets = <&reset RESET_MALI_CAPB3>, <&reset RESET_MALI>; 138 - 139 - /* 140 - * Mali clocking is provided by two identical clock paths 141 - * MALI_0 and MALI_1 muxed to a single clock by a glitch 142 - * free mux to safely change frequency while running. 143 - */ 144 - assigned-clocks = <&clkc CLKID_MALI_0_SEL>, 145 - <&clkc CLKID_MALI_0>, 146 - <&clkc CLKID_MALI>; /* Glitch free mux */ 147 - assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>, 148 - <0>, /* Do Nothing */ 149 - <&clkc CLKID_MALI_0>; 150 - assigned-clock-rates = <0>, /* Do Nothing */ 151 - <666666666>, 152 - <0>; /* Do Nothing */ 109 + operating-points-v2 = <&gpu_opp_table>; 153 110 }; 154 111 }; 155 112
+1 -1
arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi
··· 360 360 pinctrl-0 = <&nor_pins>; 361 361 pinctrl-names = "default"; 362 362 363 - w25q32: spi-flash@0 { 363 + w25q128: spi-flash@0 { 364 364 #address-cells = <1>; 365 365 #size-cells = <1>; 366 366 compatible = "winbond,w25q128fw", "jedec,spi-nor";
+88
arch/arm64/boot/dts/amlogic/meson-sm1-khadas-vim3l.dts
··· 8 8 9 9 #include "meson-sm1.dtsi" 10 10 #include "meson-khadas-vim3.dtsi" 11 + #include <dt-bindings/sound/meson-g12a-tohdmitx.h> 11 12 12 13 / { 13 14 compatible = "khadas,vim3l", "amlogic,sm1"; ··· 32 31 regulator-boot-on; 33 32 regulator-always-on; 34 33 }; 34 + 35 + sound { 36 + compatible = "amlogic,axg-sound-card"; 37 + model = "SM1-KHADAS-VIM3L"; 38 + audio-aux-devs = <&tdmout_a>; 39 + audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", 40 + "TDMOUT_A IN 1", "FRDDR_B OUT 0", 41 + "TDMOUT_A IN 2", "FRDDR_C OUT 0", 42 + "TDM_A Playback", "TDMOUT_A OUT"; 43 + 44 + assigned-clocks = <&clkc CLKID_MPLL2>, 45 + <&clkc CLKID_MPLL0>, 46 + <&clkc CLKID_MPLL1>; 47 + assigned-clock-parents = <0>, <0>, <0>; 48 + assigned-clock-rates = <294912000>, 49 + <270950400>, 50 + <393216000>; 51 + status = "okay"; 52 + 53 + dai-link-0 { 54 + sound-dai = <&frddr_a>; 55 + }; 56 + 57 + dai-link-1 { 58 + sound-dai = <&frddr_b>; 59 + }; 60 + 61 + dai-link-2 { 62 + sound-dai = <&frddr_c>; 63 + }; 64 + 65 + /* 8ch hdmi interface */ 66 + dai-link-3 { 67 + sound-dai = <&tdmif_a>; 68 + dai-format = "i2s"; 69 + dai-tdm-slot-tx-mask-0 = <1 1>; 70 + dai-tdm-slot-tx-mask-1 = <1 1>; 71 + dai-tdm-slot-tx-mask-2 = <1 1>; 72 + dai-tdm-slot-tx-mask-3 = <1 1>; 73 + mclk-fs = <256>; 74 + 75 + codec { 76 + sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>; 77 + }; 78 + }; 79 + 80 + /* hdmi glue */ 81 + dai-link-4 { 82 + sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 83 + 84 + codec { 85 + sound-dai = <&hdmi_tx>; 86 + }; 87 + }; 88 + }; 89 + }; 90 + 91 + &arb { 92 + status = "okay"; 93 + }; 94 + 95 + &clkc_audio { 96 + status = "okay"; 35 97 }; 36 98 37 99 &cpu0 { ··· 123 59 operating-points-v2 = <&cpu_opp_table>; 124 60 clocks = <&clkc CLKID_CPU3_CLK>; 125 61 clock-latency = <50000>; 62 + }; 63 + 64 + &frddr_a { 65 + status = "okay"; 66 + }; 67 + 68 + &frddr_b { 69 + status = "okay"; 70 + }; 71 + 72 + &frddr_c { 73 + status = "okay"; 126 74 }; 127 75 128 76 &pwm_AO_cd { ··· 169 93 phy-names = "usb2-phy0", "usb2-phy1"; 170 94 }; 171 95 */ 96 + 97 + &tdmif_a { 98 + status = "okay"; 99 + }; 100 + 101 + &tdmout_a { 102 + status = "okay"; 103 + }; 104 + 105 + &tohdmitx { 106 + status = "okay"; 107 + };
+88
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts
··· 8 8 #include "meson-sm1.dtsi" 9 9 #include <dt-bindings/gpio/meson-g12a-gpio.h> 10 10 #include <dt-bindings/leds/common.h> 11 + #include <dt-bindings/sound/meson-g12a-tohdmitx.h> 11 12 12 13 / { 13 14 compatible = "hardkernel,odroid-c4", "amlogic,sm1"; ··· 187 186 }; 188 187 }; 189 188 }; 189 + 190 + sound { 191 + compatible = "amlogic,axg-sound-card"; 192 + model = "SM1-ODROID-C4"; 193 + audio-aux-devs = <&tdmout_b>; 194 + audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", 195 + "TDMOUT_B IN 1", "FRDDR_B OUT 1", 196 + "TDMOUT_B IN 2", "FRDDR_C OUT 1", 197 + "TDM_B Playback", "TDMOUT_B OUT"; 198 + 199 + assigned-clocks = <&clkc CLKID_MPLL2>, 200 + <&clkc CLKID_MPLL0>, 201 + <&clkc CLKID_MPLL1>; 202 + assigned-clock-parents = <0>, <0>, <0>; 203 + assigned-clock-rates = <294912000>, 204 + <270950400>, 205 + <393216000>; 206 + status = "okay"; 207 + 208 + dai-link-0 { 209 + sound-dai = <&frddr_a>; 210 + }; 211 + 212 + dai-link-1 { 213 + sound-dai = <&frddr_b>; 214 + }; 215 + 216 + dai-link-2 { 217 + sound-dai = <&frddr_c>; 218 + }; 219 + 220 + /* 8ch hdmi interface */ 221 + dai-link-3 { 222 + sound-dai = <&tdmif_b>; 223 + dai-format = "i2s"; 224 + dai-tdm-slot-tx-mask-0 = <1 1>; 225 + dai-tdm-slot-tx-mask-1 = <1 1>; 226 + dai-tdm-slot-tx-mask-2 = <1 1>; 227 + dai-tdm-slot-tx-mask-3 = <1 1>; 228 + mclk-fs = <256>; 229 + 230 + codec { 231 + sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 232 + }; 233 + }; 234 + 235 + /* hdmi glue */ 236 + dai-link-4 { 237 + sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 238 + 239 + codec { 240 + sound-dai = <&hdmi_tx>; 241 + }; 242 + }; 243 + }; 244 + }; 245 + 246 + &arb { 247 + status = "okay"; 248 + }; 249 + 250 + &clkc_audio { 251 + status = "okay"; 190 252 }; 191 253 192 254 &cpu0 { ··· 299 235 phy-mode = "rgmii"; 300 236 phy-handle = <&external_phy>; 301 237 amlogic,tx-delay-ns = <2>; 238 + }; 239 + 240 + &frddr_a { 241 + status = "okay"; 242 + }; 243 + 244 + &frddr_b { 245 + status = "okay"; 246 + }; 247 + 248 + &frddr_c { 249 + status = "okay"; 302 250 }; 303 251 304 252 &gpio { ··· 455 379 mmc-pwrseq = <&emmc_pwrseq>; 456 380 vmmc-supply = <&vcc_3v3>; 457 381 vqmmc-supply = <&flash_1v8>; 382 + }; 383 + 384 + &tdmif_b { 385 + status = "okay"; 386 + }; 387 + 388 + &tdmout_b { 389 + status = "okay"; 390 + }; 391 + 392 + &tohdmitx { 393 + status = "okay"; 458 394 }; 459 395 460 396 &uart_AO {
+5 -3
drivers/soc/amlogic/meson-gx-socinfo.c
··· 66 66 { "A113D", 0x25, 0x22, 0xff }, 67 67 { "S905D2", 0x28, 0x10, 0xf0 }, 68 68 { "S905X2", 0x28, 0x40, 0xf0 }, 69 - { "S922X", 0x29, 0x40, 0xf0 }, 70 69 { "A311D", 0x29, 0x10, 0xf0 }, 71 - { "S905X3", 0x2b, 0x5, 0xf }, 72 - { "S905D3", 0x2b, 0xb0, 0xf0 }, 70 + { "S922X", 0x29, 0x40, 0xf0 }, 71 + { "S905D3", 0x2b, 0x4, 0xf5 }, 72 + { "S905X3", 0x2b, 0x5, 0xf5 }, 73 + { "S905X3", 0x2b, 0x10, 0x3f }, 74 + { "S905D3", 0x2b, 0x30, 0x3f }, 73 75 { "A113L", 0x2c, 0x0, 0xf8 }, 74 76 }; 75 77