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

Merge tag 'amlogic-arm64-dt-for-v6.3' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into arm/dt

Amlogic ARM64 DT changes for v6.3:
- Merge of immutable bindings branch with Reset & power domain binding
- New boards:
- Odroid-N2L (Smaller version of Odroid-N2+)
- BananaPi M2-Pro (Variant of BPI=M5 with on-board wifi)
- Radxa Zero2 (New version of Radza Zero with A311D SoC)
- Add DT node for the VIPNano-QI on the A311D
- DT bindings fixups covering all SoC families
- MAC address nodes
- ethernet PHY node name
- scpi & child node names
- SD/SDIO node name
- USB supply name
- invalid clock-names
- rng node name
- rtc node name
- ETH phy mux node name
- button & adc keys node name
- leds node names
- RK818 pmic properties
- remove CPU opps below 1GHz for G12A boards, like it was done for G12B/SM1
- Fix WiFi/Bt definition around P212 & Khadas VIM1
- Add audio node to P212
- Fix FAN trip definition to Odroid-HC4
- Fix gpio-fan gpios definition
- Permit Radxa Zero OTG on USB1
- Fix VDDIO_C enable gpio by using OPEN DRAIN flag

* tag 'amlogic-arm64-dt-for-v6.3' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux: (43 commits)
arm64: dts: meson: add support for Radxa Zero2
dt-bindings: arm: amlogic: add support for Radxa Zero2
arm64: dts: meson: add support for BananaPi M2-Pro
dt-bindings: arm: amlogic: add support for BananaPi M2-Pro
arm64: dts: meson: bananapi-m5: convert dts to dtsi
arm64: dts: meson: bananapi-m5: remove redundant status from sound node
arm64: dts: meson: bananapi-m5: switch VDDIO_C pin to OPEN_DRAIN
arm64: dts: meson: radxa-zero: allow usb otg mode
arm64: dts: meson-gxm-khadas-vim2: use gpio-fan matrix instead of an array
arm64: dts: meson-g12b-odroid: Add initial support for Hardkernel ODROID-N2L
arm64: dts: meson-g12b: move common node into new odroid.dtsi
dt-bindings: arm: amlogic: document Odroid-N2L
arm64: dts: amlogic: meson-sm1-odroid-hc4: fix active fan thermal trip
arm64: dts: meson: add audio playback to S905X-P212 dts
arm64: dts: meson: remove WiFi/BT nodes from Khadas VIM1
arm64: dts: meson: move pwm_ef node in P212 dtsi
arm64: dts: meson: add Broadcom WiFi to P212 dtsi
arm64: dts: amlogic: meson-g12b-odroid-go-ultra: fix rk818 pmic properties
arm64: dts: amlogic: meson-gxbb-kii-pro: fix led node name
arm64: dts: amlogic: meson-gxl-s905d-phicomm-n1: fix led node name
...

Link: https://lore.kernel.org/r/c1641ffd-71c9-9ac9-89d9-c22da4acea10@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+1747 -940
+3
Documentation/devicetree/bindings/arm/amlogic.yaml
··· 154 154 items: 155 155 - enum: 156 156 - khadas,vim3 157 + - radxa,zero2 157 158 - const: amlogic,a311d 158 159 - const: amlogic,g12b 159 160 ··· 166 165 - azw,gtking-pro 167 166 - hardkernel,odroid-go-ultra 168 167 - hardkernel,odroid-n2 168 + - hardkernel,odroid-n2l 169 169 - hardkernel,odroid-n2-plus 170 170 - khadas,vim3 171 171 - ugoos,am6 ··· 178 176 - enum: 179 177 - amediatech,x96-air 180 178 - amediatech,x96-air-gbit 179 + - bananapi,bpi-m2-pro 181 180 - bananapi,bpi-m5 182 181 - cyx,a95xf3-air 183 182 - cyx,a95xf3-air-gbit
+3
arch/arm64/boot/dts/amlogic/Makefile
··· 15 15 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-go-ultra.dtb 16 16 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2-plus.dtb 17 17 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb 18 + dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2l.dtb 19 + dtb-$(CONFIG_ARCH_MESON) += meson-g12b-radxa-zero2.dtb 18 20 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-s922x-khadas-vim3.dtb 19 21 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb 20 22 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-kii-pro.dtb ··· 62 60 dtb-$(CONFIG_ARCH_MESON) += meson-s4-s805x2-aq222.dtb 63 61 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air-gbit.dtb 64 62 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air.dtb 63 + dtb-$(CONFIG_ARCH_MESON) += meson-sm1-bananapi-m2-pro.dtb 65 64 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-bananapi-m5.dtb 66 65 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-h96-max.dtb 67 66 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb
+5 -5
arch/arm64/boot/dts/amlogic/meson-axg-jethome-jethub-j1xx.dtsi
··· 168 168 reg = <0x32 0x20>; 169 169 }; 170 170 171 - eth_mac: eth_mac@0 { 171 + eth_mac: eth-mac@0 { 172 172 reg = <0x0 0x6>; 173 173 }; 174 174 175 - bt_mac: bt_mac@6 { 175 + bt_mac: bt-mac@6 { 176 176 reg = <0x6 0x6>; 177 177 }; 178 178 179 - wifi_mac: wifi_mac@c { 179 + wifi_mac: wifi-mac@c { 180 180 reg = <0xc 0x6>; 181 181 }; 182 182 ··· 217 217 pinctrl-names = "default"; 218 218 219 219 /* RTC */ 220 - pcf8563: pcf8563@51 { 220 + pcf8563: rtc@51 { 221 221 compatible = "nxp,pcf8563"; 222 222 reg = <0x51>; 223 223 status = "okay"; ··· 303 303 304 304 &usb { 305 305 status = "okay"; 306 - phy-supply = <&usb_pwr>; 306 + vbus-supply = <&usb_pwr>; 307 307 }; 308 308 309 309 &spicc1 {
+3 -3
arch/arm64/boot/dts/amlogic/meson-axg.dtsi
··· 153 153 scpi_clocks: clocks { 154 154 compatible = "arm,scpi-clocks"; 155 155 156 - scpi_dvfs: clock-controller { 156 + scpi_dvfs: clocks-0 { 157 157 compatible = "arm,scpi-dvfs-clocks"; 158 158 #clock-cells = <1>; 159 159 clock-indices = <0>; ··· 162 162 }; 163 163 164 164 scpi_sensors: sensors { 165 - compatible = "amlogic,meson-gxbb-scpi-sensors"; 165 + compatible = "amlogic,meson-gxbb-scpi-sensors", "arm,scpi-sensors"; 166 166 #thermal-sensor-cells = <1>; 167 167 }; 168 168 }; ··· 1883 1883 #size-cells = <2>; 1884 1884 ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x200000>; 1885 1885 1886 - sd_emmc_b: sd@5000 { 1886 + sd_emmc_b: mmc@5000 { 1887 1887 compatible = "amlogic,meson-axg-mmc"; 1888 1888 reg = <0x0 0x5000 0x0 0x800>; 1889 1889 interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>;
+13 -3
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
··· 1694 1694 #address-cells = <1>; 1695 1695 #size-cells = <0>; 1696 1696 1697 - internal_ephy: ethernet_phy@8 { 1697 + internal_ephy: ethernet-phy@8 { 1698 1698 compatible = "ethernet-phy-id0180.3301", 1699 1699 "ethernet-phy-ieee802.3-c22"; 1700 1700 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; ··· 2321 2321 }; 2322 2322 }; 2323 2323 2324 - sd_emmc_a: sd@ffe03000 { 2324 + sd_emmc_a: mmc@ffe03000 { 2325 2325 compatible = "amlogic,meson-axg-mmc"; 2326 2326 reg = <0x0 0xffe03000 0x0 0x800>; 2327 2327 interrupts = <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>; ··· 2333 2333 resets = <&reset RESET_SD_EMMC_A>; 2334 2334 }; 2335 2335 2336 - sd_emmc_b: sd@ffe05000 { 2336 + sd_emmc_b: mmc@ffe05000 { 2337 2337 compatible = "amlogic,meson-axg-mmc"; 2338 2338 reg = <0x0 0xffe05000 0x0 0x800>; 2339 2339 interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>; ··· 2490 2490 #clock-cells = <0>; 2491 2491 }; 2492 2492 2493 + npu: npu@ff100000 { 2494 + compatible = "vivante,gc"; 2495 + reg = <0x0 0xff100000 0x0 0x20000>; 2496 + interrupts = <0 147 4>; 2497 + clocks = <&clkc CLKID_NNA_CORE_CLK>, 2498 + <&clkc CLKID_NNA_AXI_CLK>; 2499 + clock-names = "core", "bus"; 2500 + resets = <&reset RESET_NNA>; 2501 + status = "disabled"; 2502 + }; 2493 2503 };
-1
arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts
··· 401 401 402 402 &usb { 403 403 status = "okay"; 404 - dr_mode = "host"; 405 404 };
-20
arch/arm64/boot/dts/amlogic/meson-g12a.dtsi
··· 58 58 compatible = "operating-points-v2"; 59 59 opp-shared; 60 60 61 - opp-100000000 { 62 - opp-hz = /bits/ 64 <100000000>; 63 - opp-microvolt = <731000>; 64 - }; 65 - 66 - opp-250000000 { 67 - opp-hz = /bits/ 64 <250000000>; 68 - opp-microvolt = <731000>; 69 - }; 70 - 71 - opp-500000000 { 72 - opp-hz = /bits/ 64 <500000000>; 73 - opp-microvolt = <731000>; 74 - }; 75 - 76 - opp-667000000 { 77 - opp-hz = /bits/ 64 <666666666>; 78 - opp-microvolt = <731000>; 79 - }; 80 - 81 61 opp-1000000000 { 82 62 opp-hz = /bits/ 64 <1000000000>; 83 63 opp-microvolt = <731000>;
+1 -1
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts
··· 381 381 reg = <0x1c>; 382 382 interrupt-parent = <&gpio_intc>; 383 383 interrupts = <7 IRQ_TYPE_LEVEL_LOW>; /* GPIOAO_7 */ 384 + #clock-cells = <1>; 384 385 385 386 vcc1-supply = <&vdd_sys>; 386 387 vcc2-supply = <&vdd_sys>; ··· 392 391 vcc8-supply = <&vcc_2v3>; 393 392 vcc9-supply = <&vddao_3v3>; 394 393 boost-supply = <&vdd_sys>; 395 - switch-supply = <&vdd_sys>; 396 394 397 395 regulators { 398 396 vddcpu_a: DCDC_REG1 {
+10 -440
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
··· 4 4 * Author: Neil Armstrong <narmstrong@baylibre.com> 5 5 */ 6 6 7 - #include <dt-bindings/input/input.h> 8 - #include <dt-bindings/gpio/meson-g12a-gpio.h> 9 - #include <dt-bindings/sound/meson-g12a-toacodec.h> 10 - #include <dt-bindings/sound/meson-g12a-tohdmitx.h> 7 + #include "meson-g12b-odroid.dtsi" 11 8 12 9 / { 13 10 aliases { 14 - serial0 = &uart_AO; 15 - ethernet0 = &ethmac; 16 11 rtc0 = &rtc; 17 - rtc1 = &vrtc; 18 12 }; 19 13 20 14 dio2133: audio-amplifier-0 { ··· 17 23 VCC-supply = <&vcc_5v>; 18 24 sound-name-prefix = "U19"; 19 25 status = "okay"; 20 - }; 21 - 22 - chosen { 23 - stdout-path = "serial0:115200n8"; 24 - }; 25 - 26 - memory@0 { 27 - device_type = "memory"; 28 - reg = <0x0 0x0 0x0 0x40000000>; 29 - }; 30 - 31 - emmc_pwrseq: emmc-pwrseq { 32 - compatible = "mmc-pwrseq-emmc"; 33 - reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 34 - }; 35 - 36 - fan: gpio-fan { 37 - compatible = "gpio-fan"; 38 - gpios = <&gpio_ao GPIOAO_10 GPIO_ACTIVE_HIGH>; 39 - /* Using Dummy Speed */ 40 - gpio-fan,speed-map = <0 0>, <1 1>; 41 - #cooling-cells = <2>; 42 - }; 43 - 44 - leds { 45 - compatible = "gpio-leds"; 46 - 47 - led-blue { 48 - label = "n2:blue"; 49 - gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>; 50 - linux,default-trigger = "heartbeat"; 51 - }; 52 - }; 53 - 54 - tflash_vdd: regulator-tflash_vdd { 55 - compatible = "regulator-fixed"; 56 - 57 - regulator-name = "TFLASH_VDD"; 58 - regulator-min-microvolt = <3300000>; 59 - regulator-max-microvolt = <3300000>; 60 - 61 - gpio = <&gpio_ao GPIOAO_8 GPIO_ACTIVE_HIGH>; 62 - enable-active-high; 63 - regulator-always-on; 64 - }; 65 - 66 - tf_io: gpio-regulator-tf_io { 67 - compatible = "regulator-gpio"; 68 - 69 - regulator-name = "TF_IO"; 70 - regulator-min-microvolt = <1800000>; 71 - regulator-max-microvolt = <3300000>; 72 - 73 - gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>; 74 - gpios-states = <0>; 75 - 76 - states = <3300000 0>, 77 - <1800000 1>; 78 - }; 79 - 80 - flash_1v8: regulator-flash_1v8 { 81 - compatible = "regulator-fixed"; 82 - regulator-name = "FLASH_1V8"; 83 - regulator-min-microvolt = <1800000>; 84 - regulator-max-microvolt = <1800000>; 85 - vin-supply = <&vcc_3v3>; 86 - regulator-always-on; 87 - }; 88 - 89 - main_12v: regulator-main_12v { 90 - compatible = "regulator-fixed"; 91 - regulator-name = "12V"; 92 - regulator-min-microvolt = <12000000>; 93 - regulator-max-microvolt = <12000000>; 94 - regulator-always-on; 95 - }; 96 - 97 - vcc_5v: regulator-vcc_5v { 98 - compatible = "regulator-fixed"; 99 - regulator-name = "5V"; 100 - regulator-min-microvolt = <5000000>; 101 - regulator-max-microvolt = <5000000>; 102 - regulator-always-on; 103 - vin-supply = <&main_12v>; 104 - gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 105 - enable-active-high; 106 - }; 107 - 108 - vcc_1v8: regulator-vcc_1v8 { 109 - compatible = "regulator-fixed"; 110 - regulator-name = "VCC_1V8"; 111 - regulator-min-microvolt = <1800000>; 112 - regulator-max-microvolt = <1800000>; 113 - vin-supply = <&vcc_3v3>; 114 - regulator-always-on; 115 - }; 116 - 117 - vcc_3v3: regulator-vcc_3v3 { 118 - compatible = "regulator-fixed"; 119 - regulator-name = "VCC_3V3"; 120 - regulator-min-microvolt = <3300000>; 121 - regulator-max-microvolt = <3300000>; 122 - vin-supply = <&vddao_3v3>; 123 - regulator-always-on; 124 - /* FIXME: actually controlled by VDDCPU_B_EN */ 125 - }; 126 - 127 - vddcpu_a: regulator-vddcpu-a { 128 - /* 129 - * MP8756GD Regulator. 130 - */ 131 - compatible = "pwm-regulator"; 132 - 133 - regulator-name = "VDDCPU_A"; 134 - regulator-min-microvolt = <721000>; 135 - regulator-max-microvolt = <1022000>; 136 - 137 - pwm-supply = <&main_12v>; 138 - 139 - pwms = <&pwm_ab 0 1250 0>; 140 - pwm-dutycycle-range = <100 0>; 141 - 142 - regulator-boot-on; 143 - regulator-always-on; 144 - }; 145 - 146 - vddcpu_b: regulator-vddcpu-b { 147 - /* 148 - * Silergy SY8120B1ABC Regulator. 149 - */ 150 - compatible = "pwm-regulator"; 151 - 152 - regulator-name = "VDDCPU_B"; 153 - regulator-min-microvolt = <721000>; 154 - regulator-max-microvolt = <1022000>; 155 - 156 - pwm-supply = <&main_12v>; 157 - 158 - pwms = <&pwm_AO_cd 1 1250 0>; 159 - pwm-dutycycle-range = <100 0>; 160 - 161 - regulator-boot-on; 162 - regulator-always-on; 163 26 }; 164 27 165 28 hub_5v: regulator-hub_5v { ··· 29 178 /* Connected to the Hub CHIPENABLE, LOW sets low power state */ 30 179 gpio = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; 31 180 enable-active-high; 32 - }; 33 - 34 - usb_pwr_en: regulator-usb_pwr_en { 35 - compatible = "regulator-fixed"; 36 - regulator-name = "USB_PWR_EN"; 37 - regulator-min-microvolt = <5000000>; 38 - regulator-max-microvolt = <5000000>; 39 - vin-supply = <&vcc_5v>; 40 - 41 - /* Connected to the microUSB port power enable */ 42 - gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>; 43 - enable-active-high; 44 - }; 45 - 46 - vddao_1v8: regulator-vddao_1v8 { 47 - compatible = "regulator-fixed"; 48 - regulator-name = "VDDAO_1V8"; 49 - regulator-min-microvolt = <1800000>; 50 - regulator-max-microvolt = <1800000>; 51 - vin-supply = <&vddao_3v3>; 52 - regulator-always-on; 53 - }; 54 - 55 - vddao_3v3: regulator-vddao_3v3 { 56 - compatible = "regulator-fixed"; 57 - regulator-name = "VDDAO_3V3"; 58 - regulator-min-microvolt = <3300000>; 59 - regulator-max-microvolt = <3300000>; 60 - vin-supply = <&main_12v>; 61 - regulator-always-on; 62 - }; 63 - 64 - hdmi-connector { 65 - compatible = "hdmi-connector"; 66 - type = "a"; 67 - 68 - port { 69 - hdmi_connector_in: endpoint { 70 - remote-endpoint = <&hdmi_tx_tmds_out>; 71 - }; 72 - }; 73 181 }; 74 182 75 183 sound { ··· 164 354 status = "okay"; 165 355 }; 166 356 167 - &arb { 168 - status = "okay"; 169 - }; 170 - 171 - &cec_AO { 172 - pinctrl-0 = <&cec_ao_a_h_pins>; 173 - pinctrl-names = "default"; 174 - status = "disabled"; 175 - hdmi-phandle = <&hdmi_tx>; 176 - }; 177 - 178 - &cecb_AO { 179 - pinctrl-0 = <&cec_ao_b_h_pins>; 357 + &ethmac { 358 + pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>; 180 359 pinctrl-names = "default"; 181 360 status = "okay"; 182 - hdmi-phandle = <&hdmi_tx>; 183 - }; 184 - 185 - &clkc_audio { 186 - status = "okay"; 187 - }; 188 - 189 - &cpu0 { 190 - cpu-supply = <&vddcpu_b>; 191 - operating-points-v2 = <&cpu_opp_table_0>; 192 - clocks = <&clkc CLKID_CPU_CLK>; 193 - clock-latency = <50000>; 194 - }; 195 - 196 - &cpu1 { 197 - cpu-supply = <&vddcpu_b>; 198 - operating-points-v2 = <&cpu_opp_table_0>; 199 - clocks = <&clkc CLKID_CPU_CLK>; 200 - clock-latency = <50000>; 201 - }; 202 - 203 - &cpu100 { 204 - cpu-supply = <&vddcpu_a>; 205 - operating-points-v2 = <&cpub_opp_table_1>; 206 - clocks = <&clkc CLKID_CPUB_CLK>; 207 - clock-latency = <50000>; 208 - }; 209 - 210 - &cpu101 { 211 - cpu-supply = <&vddcpu_a>; 212 - operating-points-v2 = <&cpub_opp_table_1>; 213 - clocks = <&clkc CLKID_CPUB_CLK>; 214 - clock-latency = <50000>; 215 - }; 216 - 217 - &cpu102 { 218 - cpu-supply = <&vddcpu_a>; 219 - operating-points-v2 = <&cpub_opp_table_1>; 220 - clocks = <&clkc CLKID_CPUB_CLK>; 221 - clock-latency = <50000>; 222 - }; 223 - 224 - &cpu103 { 225 - cpu-supply = <&vddcpu_a>; 226 - operating-points-v2 = <&cpub_opp_table_1>; 227 - clocks = <&clkc CLKID_CPUB_CLK>; 228 - clock-latency = <50000>; 229 - }; 230 - 231 - &cpu_thermal { 232 - trips { 233 - cpu_active: cpu-active { 234 - temperature = <60000>; /* millicelsius */ 235 - hysteresis = <2000>; /* millicelsius */ 236 - type = "active"; 237 - }; 238 - }; 239 - 240 - cooling-maps { 241 - map { 242 - trip = <&cpu_active>; 243 - cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 244 - }; 245 - }; 246 - }; 247 - 248 - &ddr_thermal { 249 - trips { 250 - ddr_active: ddr-active { 251 - temperature = <60000>; /* millicelsius */ 252 - hysteresis = <2000>; /* millicelsius */ 253 - type = "active"; 254 - }; 255 - }; 256 - 257 - cooling-maps { 258 - map { 259 - trip = <&ddr_active>; 260 - cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 261 - }; 262 - }; 361 + phy-mode = "rgmii"; 362 + phy-handle = <&external_phy>; 363 + amlogic,tx-delay-ns = <2>; 263 364 }; 264 365 265 366 &ext_mdio { ··· 187 466 /* MAC_INTR on GPIOZ_14 */ 188 467 interrupts = <26 IRQ_TYPE_LEVEL_LOW>; 189 468 }; 190 - }; 191 - 192 - &ethmac { 193 - pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>; 194 - pinctrl-names = "default"; 195 - status = "okay"; 196 - phy-mode = "rgmii"; 197 - phy-handle = <&external_phy>; 198 - amlogic,tx-delay-ns = <2>; 199 - }; 200 - 201 - &frddr_a { 202 - status = "okay"; 203 - }; 204 - 205 - &frddr_b { 206 - status = "okay"; 207 - }; 208 - 209 - &frddr_c { 210 - status = "okay"; 211 469 }; 212 470 213 471 &gpio { ··· 249 549 }; 250 550 }; 251 551 252 - &hdmi_tx { 253 - status = "okay"; 254 - pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 255 - pinctrl-names = "default"; 256 - hdmi-supply = <&vcc_5v>; 257 - }; 258 - 259 - &hdmi_tx_tmds_port { 260 - hdmi_tx_tmds_out: endpoint { 261 - remote-endpoint = <&hdmi_connector_in>; 262 - }; 263 - }; 264 - 265 - &ir { 266 - status = "okay"; 267 - pinctrl-0 = <&remote_input_ao_pins>; 268 - pinctrl-names = "default"; 269 - linux,rc-map-name = "rc-odroid"; 270 - }; 271 - 272 552 &i2c3 { 273 553 status = "okay"; 274 554 pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; ··· 261 581 }; 262 582 }; 263 583 264 - &pwm_ab { 265 - pinctrl-0 = <&pwm_a_e_pins>; 584 + &ir { 585 + status = "okay"; 586 + pinctrl-0 = <&remote_input_ao_pins>; 266 587 pinctrl-names = "default"; 267 - clocks = <&xtal>; 268 - clock-names = "clkin0"; 269 - status = "okay"; 270 - }; 271 - 272 - &pwm_AO_cd { 273 - pinctrl-0 = <&pwm_ao_d_e_pins>; 274 - pinctrl-names = "default"; 275 - clocks = <&xtal>; 276 - clock-names = "clkin1"; 277 - status = "okay"; 278 - }; 279 - 280 - &saradc { 281 - status = "okay"; 282 - vref-supply = <&vddao_1v8>; 283 - }; 284 - 285 - /* SD card */ 286 - &sd_emmc_b { 287 - status = "okay"; 288 - pinctrl-0 = <&sdcard_c_pins>; 289 - pinctrl-1 = <&sdcard_clk_gate_c_pins>; 290 - pinctrl-names = "default", "clk-gate"; 291 - 292 - bus-width = <4>; 293 - cap-sd-highspeed; 294 - max-frequency = <50000000>; 295 - disable-wp; 296 - 297 - cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 298 - vmmc-supply = <&tflash_vdd>; 299 - vqmmc-supply = <&tf_io>; 300 - 301 - }; 302 - 303 - /* eMMC */ 304 - &sd_emmc_c { 305 - status = "okay"; 306 - pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; 307 - pinctrl-1 = <&emmc_clk_gate_pins>; 308 - pinctrl-names = "default", "clk-gate"; 309 - 310 - bus-width = <8>; 311 - cap-mmc-highspeed; 312 - mmc-ddr-1_8v; 313 - mmc-hs200-1_8v; 314 - max-frequency = <200000000>; 315 - disable-wp; 316 - 317 - mmc-pwrseq = <&emmc_pwrseq>; 318 - vmmc-supply = <&vcc_3v3>; 319 - vqmmc-supply = <&flash_1v8>; 588 + linux,rc-map-name = "rc-odroid"; 320 589 }; 321 590 322 591 /* ··· 289 660 }; 290 661 }; 291 662 292 - &tdmif_b { 293 - status = "okay"; 294 - }; 295 - 296 - &tdmif_c { 297 - status = "okay"; 298 - }; 299 - 300 - &tdmin_a { 301 - status = "okay"; 302 - }; 303 - 304 - &tdmin_b { 305 - status = "okay"; 306 - }; 307 - 308 - &tdmin_c { 309 - status = "okay"; 310 - }; 311 - 312 - &tdmin_lb { 313 - status = "okay"; 314 - }; 315 - 316 - &tdmout_b { 317 - status = "okay"; 318 - }; 319 - 320 - &tdmout_c { 321 - status = "okay"; 322 - }; 323 - 324 663 &toacodec { 325 664 status = "okay"; 326 665 }; 327 666 328 - &tohdmitx { 329 - status = "okay"; 330 - }; 331 - 332 - &toddr_a { 333 - status = "okay"; 334 - }; 335 - 336 - &toddr_b { 337 - status = "okay"; 338 - }; 339 - 340 - &toddr_c { 341 - status = "okay"; 342 - }; 343 - 344 - &uart_AO { 345 - status = "okay"; 346 - pinctrl-0 = <&uart_ao_a_pins>; 347 - pinctrl-names = "default"; 348 - }; 349 - 350 667 &usb { 351 - status = "okay"; 352 668 vbus-supply = <&usb_pwr_en>; 353 - }; 354 - 355 - &usb2_phy0 { 356 - phy-supply = <&vcc_5v>; 357 669 }; 358 670 359 671 &usb2_phy1 {
+125
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2l.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2022 Dongjin Kim <tobetter@gmail.com> 4 + */ 5 + 6 + /dts-v1/; 7 + 8 + /* The Amlogic S922X Rev. C supports the same OPPs as the A311D variant */ 9 + #include "meson-g12b-a311d.dtsi" 10 + #include "meson-g12b-odroid.dtsi" 11 + 12 + / { 13 + compatible = "hardkernel,odroid-n2l", "amlogic,s922x", "amlogic,g12b"; 14 + model = "Hardkernel ODROID-N2L"; 15 + 16 + sound { 17 + compatible = "amlogic,axg-sound-card"; 18 + model = "ODROID-N2L"; 19 + audio-aux-devs = <&tdmout_b>, <&tdmin_a>, <&tdmin_b>, 20 + <&tdmin_c>, <&tdmin_lb>; 21 + audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", 22 + "TDMOUT_B IN 1", "FRDDR_B OUT 1", 23 + "TDMOUT_B IN 2", "FRDDR_C OUT 1", 24 + "TDM_B Playback", "TDMOUT_B OUT", 25 + "TDMIN_A IN 4", "TDM_B Loopback", 26 + "TDMIN_B IN 4", "TDM_B Loopback", 27 + "TDMIN_C IN 4", "TDM_B Loopback", 28 + "TDMIN_LB IN 1", "TDM_B Loopback", 29 + "TODDR_A IN 0", "TDMIN_A OUT", 30 + "TODDR_B IN 0", "TDMIN_A OUT", 31 + "TODDR_C IN 0", "TDMIN_A OUT", 32 + "TODDR_A IN 1", "TDMIN_B OUT", 33 + "TODDR_B IN 1", "TDMIN_B OUT", 34 + "TODDR_C IN 1", "TDMIN_B OUT", 35 + "TODDR_A IN 2", "TDMIN_C OUT", 36 + "TODDR_B IN 2", "TDMIN_C OUT", 37 + "TODDR_C IN 2", "TDMIN_C OUT", 38 + "TODDR_A IN 6", "TDMIN_LB OUT", 39 + "TODDR_B IN 6", "TDMIN_LB OUT", 40 + "TODDR_C IN 6", "TDMIN_LB OUT"; 41 + 42 + assigned-clocks = <&clkc CLKID_MPLL2>, 43 + <&clkc CLKID_MPLL0>, 44 + <&clkc CLKID_MPLL1>; 45 + assigned-clock-parents = <0>, <0>, <0>; 46 + assigned-clock-rates = <294912000>, 47 + <270950400>, 48 + <393216000>; 49 + status = "okay"; 50 + 51 + dai-link-0 { 52 + sound-dai = <&frddr_a>; 53 + }; 54 + 55 + dai-link-1 { 56 + sound-dai = <&frddr_b>; 57 + }; 58 + 59 + dai-link-2 { 60 + sound-dai = <&frddr_c>; 61 + }; 62 + 63 + dai-link-3 { 64 + sound-dai = <&toddr_a>; 65 + }; 66 + 67 + dai-link-4 { 68 + sound-dai = <&toddr_b>; 69 + }; 70 + 71 + dai-link-5 { 72 + sound-dai = <&toddr_c>; 73 + }; 74 + 75 + /* 8ch hdmi interface */ 76 + dai-link-6 { 77 + sound-dai = <&tdmif_b>; 78 + dai-format = "i2s"; 79 + dai-tdm-slot-tx-mask-0 = <1 1>; 80 + dai-tdm-slot-tx-mask-1 = <1 1>; 81 + dai-tdm-slot-tx-mask-2 = <1 1>; 82 + dai-tdm-slot-tx-mask-3 = <1 1>; 83 + mclk-fs = <256>; 84 + 85 + codec { 86 + sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 87 + }; 88 + }; 89 + 90 + /* hdmi glue */ 91 + dai-link-7 { 92 + sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 93 + 94 + codec { 95 + sound-dai = <&hdmi_tx>; 96 + }; 97 + }; 98 + }; 99 + }; 100 + 101 + &eth_phy { 102 + status = "disabled"; 103 + }; 104 + 105 + &vddcpu_a { 106 + regulator-min-microvolt = <680000>; 107 + regulator-max-microvolt = <1040000>; 108 + 109 + pwms = <&pwm_ab 0 1500 0>; 110 + }; 111 + 112 + &vddcpu_b { 113 + regulator-min-microvolt = <680000>; 114 + regulator-max-microvolt = <1040000>; 115 + 116 + pwms = <&pwm_AO_cd 1 1500 0>; 117 + }; 118 + 119 + &usb2_phy0 { 120 + phy-supply = <&usb_pwr_en>; 121 + }; 122 + 123 + &usb2_phy1 { 124 + phy-supply = <&usb_pwr_en>; 125 + };
+445
arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2019 BayLibre, SAS 4 + * Author: Neil Armstrong <narmstrong@baylibre.com> 5 + */ 6 + 7 + #include <dt-bindings/input/input.h> 8 + #include <dt-bindings/gpio/meson-g12a-gpio.h> 9 + #include <dt-bindings/sound/meson-g12a-toacodec.h> 10 + #include <dt-bindings/sound/meson-g12a-tohdmitx.h> 11 + 12 + / { 13 + aliases { 14 + serial0 = &uart_AO; 15 + ethernet0 = &ethmac; 16 + rtc1 = &vrtc; 17 + }; 18 + 19 + chosen { 20 + stdout-path = "serial0:115200n8"; 21 + }; 22 + 23 + memory@0 { 24 + device_type = "memory"; 25 + reg = <0x0 0x0 0x0 0x40000000>; 26 + }; 27 + 28 + emmc_pwrseq: emmc-pwrseq { 29 + compatible = "mmc-pwrseq-emmc"; 30 + reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 31 + }; 32 + 33 + fan: gpio-fan { 34 + compatible = "gpio-fan"; 35 + gpios = <&gpio_ao GPIOAO_10 GPIO_ACTIVE_HIGH>; 36 + /* Using Dummy Speed */ 37 + gpio-fan,speed-map = <0 0>, <1 1>; 38 + #cooling-cells = <2>; 39 + }; 40 + 41 + leds { 42 + compatible = "gpio-leds"; 43 + 44 + led-blue { 45 + label = "n2:blue"; 46 + gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>; 47 + linux,default-trigger = "heartbeat"; 48 + }; 49 + }; 50 + 51 + tflash_vdd: regulator-tflash_vdd { 52 + compatible = "regulator-fixed"; 53 + 54 + regulator-name = "TFLASH_VDD"; 55 + regulator-min-microvolt = <3300000>; 56 + regulator-max-microvolt = <3300000>; 57 + 58 + gpio = <&gpio_ao GPIOAO_8 GPIO_ACTIVE_HIGH>; 59 + enable-active-high; 60 + regulator-always-on; 61 + }; 62 + 63 + tf_io: gpio-regulator-tf_io { 64 + compatible = "regulator-gpio"; 65 + 66 + regulator-name = "TF_IO"; 67 + regulator-min-microvolt = <1800000>; 68 + regulator-max-microvolt = <3300000>; 69 + 70 + gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>; 71 + gpios-states = <0>; 72 + 73 + states = <3300000 0>, 74 + <1800000 1>; 75 + }; 76 + 77 + flash_1v8: regulator-flash_1v8 { 78 + compatible = "regulator-fixed"; 79 + regulator-name = "FLASH_1V8"; 80 + regulator-min-microvolt = <1800000>; 81 + regulator-max-microvolt = <1800000>; 82 + vin-supply = <&vcc_3v3>; 83 + regulator-always-on; 84 + }; 85 + 86 + main_12v: regulator-main_12v { 87 + compatible = "regulator-fixed"; 88 + regulator-name = "12V"; 89 + regulator-min-microvolt = <12000000>; 90 + regulator-max-microvolt = <12000000>; 91 + regulator-always-on; 92 + }; 93 + 94 + usb_pwr_en: regulator-usb_pwr_en { 95 + compatible = "regulator-fixed"; 96 + regulator-name = "USB_PWR_EN"; 97 + regulator-min-microvolt = <5000000>; 98 + regulator-max-microvolt = <5000000>; 99 + vin-supply = <&vcc_5v>; 100 + 101 + /* Connected to the microUSB port power enable */ 102 + gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>; 103 + enable-active-high; 104 + }; 105 + 106 + vcc_5v: regulator-vcc_5v { 107 + compatible = "regulator-fixed"; 108 + regulator-name = "5V"; 109 + regulator-min-microvolt = <5000000>; 110 + regulator-max-microvolt = <5000000>; 111 + regulator-always-on; 112 + vin-supply = <&main_12v>; 113 + gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 114 + enable-active-high; 115 + }; 116 + 117 + vcc_1v8: regulator-vcc_1v8 { 118 + compatible = "regulator-fixed"; 119 + regulator-name = "VCC_1V8"; 120 + regulator-min-microvolt = <1800000>; 121 + regulator-max-microvolt = <1800000>; 122 + vin-supply = <&vcc_3v3>; 123 + regulator-always-on; 124 + }; 125 + 126 + vcc_3v3: regulator-vcc_3v3 { 127 + compatible = "regulator-fixed"; 128 + regulator-name = "VCC_3V3"; 129 + regulator-min-microvolt = <3300000>; 130 + regulator-max-microvolt = <3300000>; 131 + vin-supply = <&vddao_3v3>; 132 + regulator-always-on; 133 + /* FIXME: actually controlled by VDDCPU_B_EN */ 134 + }; 135 + 136 + vddcpu_a: regulator-vddcpu-a { 137 + /* 138 + * MP8756GD Regulator. 139 + */ 140 + compatible = "pwm-regulator"; 141 + 142 + regulator-name = "VDDCPU_A"; 143 + regulator-min-microvolt = <721000>; 144 + regulator-max-microvolt = <1022000>; 145 + 146 + pwm-supply = <&main_12v>; 147 + 148 + pwms = <&pwm_ab 0 1250 0>; 149 + pwm-dutycycle-range = <100 0>; 150 + 151 + regulator-boot-on; 152 + regulator-always-on; 153 + }; 154 + 155 + vddcpu_b: regulator-vddcpu-b { 156 + /* 157 + * Silergy SY8120B1ABC Regulator. 158 + */ 159 + compatible = "pwm-regulator"; 160 + 161 + regulator-name = "VDDCPU_B"; 162 + regulator-min-microvolt = <721000>; 163 + regulator-max-microvolt = <1022000>; 164 + 165 + pwm-supply = <&main_12v>; 166 + 167 + pwms = <&pwm_AO_cd 1 1250 0>; 168 + pwm-dutycycle-range = <100 0>; 169 + 170 + regulator-boot-on; 171 + regulator-always-on; 172 + }; 173 + 174 + vddao_1v8: regulator-vddao_1v8 { 175 + compatible = "regulator-fixed"; 176 + regulator-name = "VDDAO_1V8"; 177 + regulator-min-microvolt = <1800000>; 178 + regulator-max-microvolt = <1800000>; 179 + vin-supply = <&vddao_3v3>; 180 + regulator-always-on; 181 + }; 182 + 183 + vddao_3v3: regulator-vddao_3v3 { 184 + compatible = "regulator-fixed"; 185 + regulator-name = "VDDAO_3V3"; 186 + regulator-min-microvolt = <3300000>; 187 + regulator-max-microvolt = <3300000>; 188 + vin-supply = <&main_12v>; 189 + regulator-always-on; 190 + }; 191 + 192 + hdmi-connector { 193 + compatible = "hdmi-connector"; 194 + type = "a"; 195 + 196 + port { 197 + hdmi_connector_in: endpoint { 198 + remote-endpoint = <&hdmi_tx_tmds_out>; 199 + }; 200 + }; 201 + }; 202 + }; 203 + 204 + &arb { 205 + status = "okay"; 206 + }; 207 + 208 + &cec_AO { 209 + pinctrl-0 = <&cec_ao_a_h_pins>; 210 + pinctrl-names = "default"; 211 + status = "disabled"; 212 + hdmi-phandle = <&hdmi_tx>; 213 + }; 214 + 215 + &cecb_AO { 216 + pinctrl-0 = <&cec_ao_b_h_pins>; 217 + pinctrl-names = "default"; 218 + status = "okay"; 219 + hdmi-phandle = <&hdmi_tx>; 220 + }; 221 + 222 + &clkc_audio { 223 + status = "okay"; 224 + }; 225 + 226 + &cpu0 { 227 + cpu-supply = <&vddcpu_b>; 228 + operating-points-v2 = <&cpu_opp_table_0>; 229 + clocks = <&clkc CLKID_CPU_CLK>; 230 + clock-latency = <50000>; 231 + }; 232 + 233 + &cpu1 { 234 + cpu-supply = <&vddcpu_b>; 235 + operating-points-v2 = <&cpu_opp_table_0>; 236 + clocks = <&clkc CLKID_CPU_CLK>; 237 + clock-latency = <50000>; 238 + }; 239 + 240 + &cpu100 { 241 + cpu-supply = <&vddcpu_a>; 242 + operating-points-v2 = <&cpub_opp_table_1>; 243 + clocks = <&clkc CLKID_CPUB_CLK>; 244 + clock-latency = <50000>; 245 + }; 246 + 247 + &cpu101 { 248 + cpu-supply = <&vddcpu_a>; 249 + operating-points-v2 = <&cpub_opp_table_1>; 250 + clocks = <&clkc CLKID_CPUB_CLK>; 251 + clock-latency = <50000>; 252 + }; 253 + 254 + &cpu102 { 255 + cpu-supply = <&vddcpu_a>; 256 + operating-points-v2 = <&cpub_opp_table_1>; 257 + clocks = <&clkc CLKID_CPUB_CLK>; 258 + clock-latency = <50000>; 259 + }; 260 + 261 + &cpu103 { 262 + cpu-supply = <&vddcpu_a>; 263 + operating-points-v2 = <&cpub_opp_table_1>; 264 + clocks = <&clkc CLKID_CPUB_CLK>; 265 + clock-latency = <50000>; 266 + }; 267 + 268 + &cpu_thermal { 269 + trips { 270 + cpu_active: cpu-active { 271 + temperature = <60000>; /* millicelsius */ 272 + hysteresis = <2000>; /* millicelsius */ 273 + type = "active"; 274 + }; 275 + }; 276 + 277 + cooling-maps { 278 + map { 279 + trip = <&cpu_active>; 280 + cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 281 + }; 282 + }; 283 + }; 284 + 285 + &ddr_thermal { 286 + trips { 287 + ddr_active: ddr-active { 288 + temperature = <60000>; /* millicelsius */ 289 + hysteresis = <2000>; /* millicelsius */ 290 + type = "active"; 291 + }; 292 + }; 293 + 294 + cooling-maps { 295 + map { 296 + trip = <&ddr_active>; 297 + cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 298 + }; 299 + }; 300 + }; 301 + 302 + &frddr_a { 303 + status = "okay"; 304 + }; 305 + 306 + &frddr_b { 307 + status = "okay"; 308 + }; 309 + 310 + &frddr_c { 311 + status = "okay"; 312 + }; 313 + 314 + &hdmi_tx { 315 + status = "okay"; 316 + pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 317 + pinctrl-names = "default"; 318 + hdmi-supply = <&vcc_5v>; 319 + }; 320 + 321 + &hdmi_tx_tmds_port { 322 + hdmi_tx_tmds_out: endpoint { 323 + remote-endpoint = <&hdmi_connector_in>; 324 + }; 325 + }; 326 + 327 + &pwm_ab { 328 + pinctrl-0 = <&pwm_a_e_pins>; 329 + pinctrl-names = "default"; 330 + clocks = <&xtal>; 331 + clock-names = "clkin0"; 332 + status = "okay"; 333 + }; 334 + 335 + &pwm_AO_cd { 336 + pinctrl-0 = <&pwm_ao_d_e_pins>; 337 + pinctrl-names = "default"; 338 + clocks = <&xtal>; 339 + clock-names = "clkin1"; 340 + status = "okay"; 341 + }; 342 + 343 + &saradc { 344 + status = "okay"; 345 + vref-supply = <&vddao_1v8>; 346 + }; 347 + 348 + /* SD card */ 349 + &sd_emmc_b { 350 + status = "okay"; 351 + pinctrl-0 = <&sdcard_c_pins>; 352 + pinctrl-1 = <&sdcard_clk_gate_c_pins>; 353 + pinctrl-names = "default", "clk-gate"; 354 + 355 + bus-width = <4>; 356 + cap-sd-highspeed; 357 + max-frequency = <50000000>; 358 + disable-wp; 359 + 360 + cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 361 + vmmc-supply = <&tflash_vdd>; 362 + vqmmc-supply = <&tf_io>; 363 + 364 + }; 365 + 366 + /* eMMC */ 367 + &sd_emmc_c { 368 + status = "okay"; 369 + pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; 370 + pinctrl-1 = <&emmc_clk_gate_pins>; 371 + pinctrl-names = "default", "clk-gate"; 372 + 373 + bus-width = <8>; 374 + cap-mmc-highspeed; 375 + mmc-ddr-1_8v; 376 + mmc-hs200-1_8v; 377 + max-frequency = <200000000>; 378 + disable-wp; 379 + 380 + mmc-pwrseq = <&emmc_pwrseq>; 381 + vmmc-supply = <&vcc_3v3>; 382 + vqmmc-supply = <&flash_1v8>; 383 + }; 384 + 385 + &tdmif_b { 386 + status = "okay"; 387 + }; 388 + 389 + &tdmif_c { 390 + status = "okay"; 391 + }; 392 + 393 + &tdmin_a { 394 + status = "okay"; 395 + }; 396 + 397 + &tdmin_b { 398 + status = "okay"; 399 + }; 400 + 401 + &tdmin_c { 402 + status = "okay"; 403 + }; 404 + 405 + &tdmin_lb { 406 + status = "okay"; 407 + }; 408 + 409 + &tdmout_b { 410 + status = "okay"; 411 + }; 412 + 413 + &tdmout_c { 414 + status = "okay"; 415 + }; 416 + 417 + &tohdmitx { 418 + status = "okay"; 419 + }; 420 + 421 + &toddr_a { 422 + status = "okay"; 423 + }; 424 + 425 + &toddr_b { 426 + status = "okay"; 427 + }; 428 + 429 + &toddr_c { 430 + status = "okay"; 431 + }; 432 + 433 + &uart_AO { 434 + status = "okay"; 435 + pinctrl-0 = <&uart_ao_a_pins>; 436 + pinctrl-names = "default"; 437 + }; 438 + 439 + &usb { 440 + status = "okay"; 441 + }; 442 + 443 + &usb2_phy0 { 444 + phy-supply = <&vcc_5v>; 445 + };
+489
arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2019 BayLibre, SAS 4 + * Author: Neil Armstrong <narmstrong@baylibre.com> 5 + * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com> 6 + * Copyright (c) 2022 Radxa Limited 7 + * Author: Yuntian Zhang <yt@radxa.com> 8 + */ 9 + 10 + /dts-v1/; 11 + 12 + #include "meson-g12b-a311d.dtsi" 13 + #include <dt-bindings/input/input.h> 14 + #include <dt-bindings/leds/common.h> 15 + #include <dt-bindings/gpio/meson-g12a-gpio.h> 16 + #include <dt-bindings/sound/meson-g12a-tohdmitx.h> 17 + 18 + / { 19 + compatible = "radxa,zero2", "amlogic,a311d", "amlogic,g12b"; 20 + model = "Radxa Zero2"; 21 + 22 + aliases { 23 + serial0 = &uart_AO; 24 + serial2 = &uart_A; 25 + }; 26 + 27 + chosen { 28 + stdout-path = "serial0:115200n8"; 29 + }; 30 + 31 + memory@0 { 32 + device_type = "memory"; 33 + reg = <0x0 0x0 0x0 0x80000000>; 34 + }; 35 + 36 + gpio-keys-polled { 37 + compatible = "gpio-keys-polled"; 38 + poll-interval = <100>; 39 + power-button { 40 + label = "power"; 41 + linux,code = <KEY_POWER>; 42 + gpios = <&gpio_ao GPIOAO_3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; 43 + }; 44 + }; 45 + 46 + leds { 47 + compatible = "gpio-leds"; 48 + 49 + led-green { 50 + color = <LED_COLOR_ID_GREEN>; 51 + function = LED_FUNCTION_STATUS; 52 + gpios = <&gpio GPIOA_12 GPIO_ACTIVE_HIGH>; 53 + linux,default-trigger = "heartbeat"; 54 + }; 55 + }; 56 + 57 + hdmi-connector { 58 + compatible = "hdmi-connector"; 59 + type = "a"; 60 + 61 + port { 62 + hdmi_connector_in: endpoint { 63 + remote-endpoint = <&hdmi_tx_tmds_out>; 64 + }; 65 + }; 66 + }; 67 + 68 + emmc_pwrseq: emmc-pwrseq { 69 + compatible = "mmc-pwrseq-emmc"; 70 + reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 71 + }; 72 + 73 + sdio_pwrseq: sdio-pwrseq { 74 + compatible = "mmc-pwrseq-simple"; 75 + reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 76 + clocks = <&wifi32k>; 77 + clock-names = "ext_clock"; 78 + }; 79 + 80 + ao_5v: regulator-ao-5v { 81 + compatible = "regulator-fixed"; 82 + regulator-name = "AO_5V"; 83 + regulator-min-microvolt = <5000000>; 84 + regulator-max-microvolt = <5000000>; 85 + regulator-always-on; 86 + }; 87 + 88 + vcc_1v8: regulator-vcc-1v8 { 89 + compatible = "regulator-fixed"; 90 + regulator-name = "VCC_1V8"; 91 + regulator-min-microvolt = <1800000>; 92 + regulator-max-microvolt = <1800000>; 93 + vin-supply = <&vcc_3v3>; 94 + regulator-always-on; 95 + }; 96 + 97 + vcc_3v3: regulator-vcc-3v3 { 98 + compatible = "regulator-fixed"; 99 + regulator-name = "VCC_3V3"; 100 + regulator-min-microvolt = <3300000>; 101 + regulator-max-microvolt = <3300000>; 102 + vin-supply = <&vddao_3v3>; 103 + regulator-always-on; 104 + /* FIXME: actually controlled by VDDCPU_B_EN */ 105 + }; 106 + 107 + vddao_1v8: regulator-vddao-1v8 { 108 + compatible = "regulator-fixed"; 109 + regulator-name = "VDDIO_AO1V8"; 110 + regulator-min-microvolt = <1800000>; 111 + regulator-max-microvolt = <1800000>; 112 + vin-supply = <&vddao_3v3>; 113 + regulator-always-on; 114 + }; 115 + 116 + vddao_3v3: regulator-vddao-3v3 { 117 + compatible = "regulator-fixed"; 118 + regulator-name = "VDDAO_3V3"; 119 + regulator-min-microvolt = <3300000>; 120 + regulator-max-microvolt = <3300000>; 121 + vin-supply = <&ao_5v>; 122 + regulator-always-on; 123 + }; 124 + 125 + vddcpu_a: regulator-vddcpu-a { 126 + /* 127 + * MP8756GD Regulator. 128 + */ 129 + compatible = "pwm-regulator"; 130 + 131 + regulator-name = "VDDCPU_A"; 132 + regulator-min-microvolt = <730000>; 133 + regulator-max-microvolt = <1022000>; 134 + 135 + pwm-supply = <&ao_5v>; 136 + 137 + pwms = <&pwm_ab 0 1250 0>; 138 + pwm-dutycycle-range = <100 0>; 139 + 140 + regulator-boot-on; 141 + regulator-always-on; 142 + }; 143 + 144 + vddcpu_b: regulator-vddcpu-b { 145 + /* 146 + * Silergy SY8120B1ABC Regulator. 147 + */ 148 + compatible = "pwm-regulator"; 149 + 150 + regulator-name = "VDDCPU_B"; 151 + regulator-min-microvolt = <730000>; 152 + regulator-max-microvolt = <1022000>; 153 + 154 + pwm-supply = <&ao_5v>; 155 + 156 + pwms = <&pwm_AO_cd 1 1250 0>; 157 + pwm-dutycycle-range = <100 0>; 158 + 159 + regulator-boot-on; 160 + regulator-always-on; 161 + }; 162 + 163 + sound { 164 + compatible = "amlogic,axg-sound-card"; 165 + model = "RADXA-ZERO2"; 166 + audio-aux-devs = <&tdmout_b>; 167 + audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", 168 + "TDMOUT_B IN 1", "FRDDR_B OUT 1", 169 + "TDMOUT_B IN 2", "FRDDR_C OUT 1", 170 + "TDM_B Playback", "TDMOUT_B OUT"; 171 + 172 + assigned-clocks = <&clkc CLKID_MPLL2>, 173 + <&clkc CLKID_MPLL0>, 174 + <&clkc CLKID_MPLL1>; 175 + assigned-clock-parents = <0>, <0>, <0>; 176 + assigned-clock-rates = <294912000>, 177 + <270950400>, 178 + <393216000>; 179 + 180 + dai-link-0 { 181 + sound-dai = <&frddr_a>; 182 + }; 183 + 184 + dai-link-1 { 185 + sound-dai = <&frddr_b>; 186 + }; 187 + 188 + dai-link-2 { 189 + sound-dai = <&frddr_c>; 190 + }; 191 + 192 + /* 8ch hdmi interface */ 193 + dai-link-3 { 194 + sound-dai = <&tdmif_b>; 195 + dai-format = "i2s"; 196 + dai-tdm-slot-tx-mask-0 = <1 1>; 197 + dai-tdm-slot-tx-mask-1 = <1 1>; 198 + dai-tdm-slot-tx-mask-2 = <1 1>; 199 + dai-tdm-slot-tx-mask-3 = <1 1>; 200 + mclk-fs = <256>; 201 + 202 + codec { 203 + sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 204 + }; 205 + }; 206 + 207 + /* hdmi glue */ 208 + dai-link-4 { 209 + sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 210 + 211 + codec { 212 + sound-dai = <&hdmi_tx>; 213 + }; 214 + }; 215 + }; 216 + 217 + wifi32k: clock-0 { 218 + compatible = "pwm-clock"; 219 + #clock-cells = <0>; 220 + clock-frequency = <32768>; 221 + pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 222 + }; 223 + }; 224 + 225 + &arb { 226 + status = "okay"; 227 + }; 228 + 229 + &cec_AO { 230 + pinctrl-0 = <&cec_ao_a_h_pins>; 231 + pinctrl-names = "default"; 232 + status = "disabled"; 233 + hdmi-phandle = <&hdmi_tx>; 234 + }; 235 + 236 + &cecb_AO { 237 + pinctrl-0 = <&cec_ao_b_h_pins>; 238 + pinctrl-names = "default"; 239 + status = "okay"; 240 + hdmi-phandle = <&hdmi_tx>; 241 + }; 242 + 243 + &clkc_audio { 244 + status = "okay"; 245 + }; 246 + 247 + &cpu0 { 248 + cpu-supply = <&vddcpu_b>; 249 + operating-points-v2 = <&cpu_opp_table_0>; 250 + clocks = <&clkc CLKID_CPU_CLK>; 251 + clock-latency = <50000>; 252 + }; 253 + 254 + &cpu1 { 255 + cpu-supply = <&vddcpu_b>; 256 + operating-points-v2 = <&cpu_opp_table_0>; 257 + clocks = <&clkc CLKID_CPU_CLK>; 258 + clock-latency = <50000>; 259 + }; 260 + 261 + &cpu100 { 262 + cpu-supply = <&vddcpu_a>; 263 + operating-points-v2 = <&cpub_opp_table_1>; 264 + clocks = <&clkc CLKID_CPUB_CLK>; 265 + clock-latency = <50000>; 266 + }; 267 + 268 + &cpu101 { 269 + cpu-supply = <&vddcpu_a>; 270 + operating-points-v2 = <&cpub_opp_table_1>; 271 + clocks = <&clkc CLKID_CPUB_CLK>; 272 + clock-latency = <50000>; 273 + }; 274 + 275 + &cpu102 { 276 + cpu-supply = <&vddcpu_a>; 277 + operating-points-v2 = <&cpub_opp_table_1>; 278 + clocks = <&clkc CLKID_CPUB_CLK>; 279 + clock-latency = <50000>; 280 + }; 281 + 282 + &cpu103 { 283 + cpu-supply = <&vddcpu_a>; 284 + operating-points-v2 = <&cpub_opp_table_1>; 285 + clocks = <&clkc CLKID_CPUB_CLK>; 286 + clock-latency = <50000>; 287 + }; 288 + 289 + &frddr_a { 290 + status = "okay"; 291 + }; 292 + 293 + &frddr_b { 294 + status = "okay"; 295 + }; 296 + 297 + &frddr_c { 298 + status = "okay"; 299 + }; 300 + 301 + &gpio { 302 + gpio-line-names = 303 + /* GPIOZ */ 304 + "PIN_27", "PIN_28", "PIN_7", "PIN_11", "PIN_13", "PIN_15", "PIN_18", "PIN_40", 305 + "", "", "", "", "", "", "", "", 306 + /* GPIOH */ 307 + "", "", "", "", "PIN_19", "PIN_21", "PIN_24", "PIN_23", 308 + "", 309 + /* BOOT */ 310 + "", "", "", "", "", "", "", "", 311 + "", "", "", "", "EMMC_PWRSEQ", "", "", "", 312 + /* GPIOC */ 313 + "", "", "", "", "", "", "SD_CD", "PIN_36", 314 + /* GPIOA */ 315 + "PIN_32", "PIN_12", "PIN_35", "", "", "PIN_38", "", "", 316 + "", "", "", "", "LED_GREEN", "PIN_31", "PIN_3", "PIN_5", 317 + /* GPIOX */ 318 + "", "", "", "", "", "", "SDIO_PWRSEQ", "", 319 + "", "", "", "", "", "", "", "", 320 + "", "BT_SHUTDOWN", "", ""; 321 + }; 322 + 323 + &gpio_ao { 324 + gpio-line-names = 325 + /* GPIOAO */ 326 + "PIN_8", "PIN_10", "", "BTN_POWER", "", "", "", "PIN_29", 327 + "PIN_33", "PIN_37", "FAN", "", 328 + /* GPIOE */ 329 + "", "", ""; 330 + }; 331 + 332 + &hdmi_tx { 333 + status = "okay"; 334 + pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 335 + pinctrl-names = "default"; 336 + hdmi-supply = <&ao_5v>; 337 + }; 338 + 339 + &hdmi_tx_tmds_port { 340 + hdmi_tx_tmds_out: endpoint { 341 + remote-endpoint = <&hdmi_connector_in>; 342 + }; 343 + }; 344 + 345 + &ir { 346 + status = "disabled"; 347 + pinctrl-0 = <&remote_input_ao_pins>; 348 + pinctrl-names = "default"; 349 + }; 350 + 351 + &pwm_ab { 352 + pinctrl-0 = <&pwm_a_e_pins>; 353 + pinctrl-names = "default"; 354 + clocks = <&xtal>; 355 + clock-names = "clkin0"; 356 + status = "okay"; 357 + }; 358 + 359 + &pwm_ef { 360 + pinctrl-0 = <&pwm_e_pins>; 361 + pinctrl-names = "default"; 362 + clocks = <&xtal>; 363 + clock-names = "clkin2"; 364 + status = "okay"; 365 + }; 366 + 367 + &pwm_AO_ab { 368 + pinctrl-0 = <&pwm_ao_a_pins>; 369 + pinctrl-names = "default"; 370 + clocks = <&xtal>; 371 + clock-names = "clkin3"; 372 + status = "okay"; 373 + }; 374 + 375 + &pwm_AO_cd { 376 + pinctrl-0 = <&pwm_ao_d_e_pins>; 377 + pinctrl-names = "default"; 378 + clocks = <&xtal>; 379 + clock-names = "clkin4"; 380 + status = "okay"; 381 + }; 382 + 383 + &saradc { 384 + status = "okay"; 385 + vref-supply = <&vddao_1v8>; 386 + }; 387 + 388 + /* SDIO */ 389 + &sd_emmc_a { 390 + status = "okay"; 391 + pinctrl-0 = <&sdio_pins>; 392 + pinctrl-1 = <&sdio_clk_gate_pins>; 393 + pinctrl-names = "default", "clk-gate"; 394 + #address-cells = <1>; 395 + #size-cells = <0>; 396 + 397 + bus-width = <4>; 398 + cap-sd-highspeed; 399 + max-frequency = <100000000>; 400 + 401 + non-removable; 402 + disable-wp; 403 + 404 + /* WiFi firmware requires power to be kept while in suspend */ 405 + keep-power-in-suspend; 406 + 407 + mmc-pwrseq = <&sdio_pwrseq>; 408 + 409 + vmmc-supply = <&vddao_3v3>; 410 + vqmmc-supply = <&vddao_1v8>; 411 + 412 + brcmf: wifi@1 { 413 + reg = <1>; 414 + compatible = "brcm,bcm4329-fmac"; 415 + }; 416 + }; 417 + 418 + /* SD card */ 419 + &sd_emmc_b { 420 + status = "okay"; 421 + pinctrl-0 = <&sdcard_c_pins>; 422 + pinctrl-1 = <&sdcard_clk_gate_c_pins>; 423 + pinctrl-names = "default", "clk-gate"; 424 + 425 + bus-width = <4>; 426 + cap-sd-highspeed; 427 + max-frequency = <50000000>; 428 + disable-wp; 429 + 430 + cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 431 + vmmc-supply = <&vddao_3v3>; 432 + vqmmc-supply = <&vddao_3v3>; 433 + }; 434 + 435 + /* eMMC */ 436 + &sd_emmc_c { 437 + status = "okay"; 438 + pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; 439 + pinctrl-1 = <&emmc_clk_gate_pins>; 440 + pinctrl-names = "default", "clk-gate"; 441 + 442 + bus-width = <8>; 443 + cap-mmc-highspeed; 444 + mmc-ddr-1_8v; 445 + mmc-hs200-1_8v; 446 + max-frequency = <200000000>; 447 + disable-wp; 448 + 449 + mmc-pwrseq = <&emmc_pwrseq>; 450 + vmmc-supply = <&vcc_3v3>; 451 + vqmmc-supply = <&vcc_1v8>; 452 + }; 453 + 454 + &tdmif_b { 455 + status = "okay"; 456 + }; 457 + 458 + &tdmout_b { 459 + status = "okay"; 460 + }; 461 + 462 + &tohdmitx { 463 + status = "okay"; 464 + }; 465 + 466 + &uart_A { 467 + status = "okay"; 468 + pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 469 + pinctrl-names = "default"; 470 + uart-has-rtscts; 471 + 472 + bluetooth { 473 + compatible = "brcm,bcm43438-bt"; 474 + shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 475 + max-speed = <2000000>; 476 + clocks = <&wifi32k>; 477 + clock-names = "lpo"; 478 + }; 479 + }; 480 + 481 + &uart_AO { 482 + status = "okay"; 483 + pinctrl-0 = <&uart_ao_a_pins>; 484 + pinctrl-names = "default"; 485 + }; 486 + 487 + &usb { 488 + status = "okay"; 489 + };
+4
arch/arm64/boot/dts/amlogic/meson-g12b.dtsi
··· 144 144 &pmu { 145 145 compatible = "amlogic,g12b-ddr-pmu"; 146 146 }; 147 + 148 + &npu { 149 + power-domains = <&pwrc PWRC_G12A_NNA_ID>; 150 + };
+1 -1
arch/arm64/boot/dts/amlogic/meson-gx-libretech-pc.dtsi
··· 17 17 io-channel-names = "buttons"; 18 18 keyup-threshold-microvolt = <1800000>; 19 19 20 - update-button { 20 + button-update { 21 21 label = "update"; 22 22 linux,code = <KEY_VENDOR>; 23 23 press-threshold-microvolt = <1300000>;
+3 -3
arch/arm64/boot/dts/amlogic/meson-gx.dtsi
··· 233 233 reg = <0x14 0x10>; 234 234 }; 235 235 236 - eth_mac: eth_mac@34 { 236 + eth_mac: eth-mac@34 { 237 237 reg = <0x34 0x10>; 238 238 }; 239 239 ··· 250 250 scpi_clocks: clocks { 251 251 compatible = "arm,scpi-clocks"; 252 252 253 - scpi_dvfs: scpi_clocks@0 { 253 + scpi_dvfs: clocks-0 { 254 254 compatible = "arm,scpi-dvfs-clocks"; 255 255 #clock-cells = <1>; 256 256 clock-indices = <0>; ··· 532 532 #size-cells = <2>; 533 533 ranges = <0x0 0x0 0x0 0xc8834000 0x0 0x2000>; 534 534 535 - hwrng: rng { 535 + hwrng: rng@0 { 536 536 compatible = "amlogic,meson-rng"; 537 537 reg = <0x0 0x0 0x0 0x4>; 538 538 };
+1 -1
arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts
··· 16 16 17 17 leds { 18 18 compatible = "gpio-leds"; 19 - status { 19 + led { 20 20 gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_LOW>; 21 21 default-state = "off"; 22 22 color = <LED_COLOR_ID_RED>;
+1 -1
arch/arm64/boot/dts/amlogic/meson-gxl-s905d-phicomm-n1.dts
··· 18 18 leds { 19 19 compatible = "gpio-leds"; 20 20 21 - status { 21 + led { 22 22 label = "n1:white:status"; 23 23 gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>; 24 24 default-state = "on";
-1
arch/arm64/boot/dts/amlogic/meson-gxl-s905d-sml5442tw.dts
··· 79 79 enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 80 80 max-speed = <2000000>; 81 81 clocks = <&wifi32k>; 82 - clock-names = "lpo"; 83 82 }; 84 83 };
+3 -3
arch/arm64/boot/dts/amlogic/meson-gxl-s905w-jethome-jethub-j80.dts
··· 86 86 }; 87 87 88 88 &efuse { 89 - bt_mac: bt_mac@6 { 89 + bt_mac: bt-mac@6 { 90 90 reg = <0x6 0x6>; 91 91 }; 92 92 93 - wifi_mac: wifi_mac@C { 93 + wifi_mac: wifi-mac@c { 94 94 reg = <0xc 0x6>; 95 95 }; 96 96 }; ··· 239 239 pinctrl-names = "default"; 240 240 pinctrl-0 = <&i2c_b_pins>; 241 241 242 - pcf8563: pcf8563@51 { 242 + pcf8563: rtc@51 { 243 243 compatible = "nxp,pcf8563"; 244 244 reg = <0x51>; 245 245 status = "okay";
-15
arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
··· 218 218 219 219 &sd_emmc_a { 220 220 max-frequency = <100000000>; 221 - 222 - brcmf: wifi@1 { 223 - reg = <1>; 224 - compatible = "brcm,bcm4329-fmac"; 225 - }; 226 - }; 227 - 228 - &uart_A { 229 - bluetooth { 230 - compatible = "brcm,bcm43438-bt"; 231 - shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 232 - max-speed = <2000000>; 233 - clocks = <&wifi32k>; 234 - clock-names = "lpo"; 235 - }; 236 221 }; 237 222 238 223 /* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */
+68
arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts
··· 7 7 /dts-v1/; 8 8 9 9 #include "meson-gxl-s905x-p212.dtsi" 10 + #include <dt-bindings/sound/meson-aiu.h> 10 11 11 12 / { 12 13 compatible = "amlogic,p212", "amlogic,s905x", "amlogic,meson-gxl"; 13 14 model = "Amlogic Meson GXL (S905X) P212 Development Board"; 15 + 16 + dio2133: analog-amplifier { 17 + compatible = "simple-audio-amplifier"; 18 + sound-name-prefix = "AU2"; 19 + VCC-supply = <&hdmi_5v>; 20 + enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; 21 + }; 14 22 15 23 cvbs-connector { 16 24 compatible = "composite-video-connector"; ··· 40 32 }; 41 33 }; 42 34 }; 35 + 36 + sound { 37 + compatible = "amlogic,gx-sound-card"; 38 + model = "S905X-P212"; 39 + audio-aux-devs = <&dio2133>; 40 + audio-widgets = "Line", "Lineout"; 41 + audio-routing = "AU2 INL", "ACODEC LOLN", 42 + "AU2 INR", "ACODEC LORN", 43 + "Lineout", "AU2 OUTL", 44 + "Lineout", "AU2 OUTR"; 45 + assigned-clocks = <&clkc CLKID_MPLL0>, 46 + <&clkc CLKID_MPLL1>, 47 + <&clkc CLKID_MPLL2>; 48 + assigned-clock-parents = <0>, <0>, <0>; 49 + assigned-clock-rates = <294912000>, 50 + <270950400>, 51 + <393216000>; 52 + dai-link-0 { 53 + sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 54 + }; 55 + 56 + dai-link-1 { 57 + sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 58 + dai-format = "i2s"; 59 + mclk-fs = <256>; 60 + 61 + codec-0 { 62 + sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 63 + }; 64 + 65 + codec-1 { 66 + sound-dai = <&aiu AIU_ACODEC CTRL_I2S>; 67 + }; 68 + }; 69 + 70 + dai-link-2 { 71 + sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 72 + 73 + codec-0 { 74 + sound-dai = <&hdmi_tx>; 75 + }; 76 + }; 77 + 78 + dai-link-3 { 79 + sound-dai = <&aiu AIU_ACODEC CTRL_OUT>; 80 + 81 + codec-0 { 82 + sound-dai = <&acodec>; 83 + }; 84 + }; 85 + }; 86 + }; 87 + 88 + &acodec { 89 + AVDD-supply = <&vddio_ao18>; 90 + status = "okay"; 91 + }; 92 + 93 + &aiu { 94 + status = "okay"; 43 95 }; 44 96 45 97 &cec_AO {
+13 -8
arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi
··· 97 97 pinctrl-names = "default"; 98 98 }; 99 99 100 + &pwm_ef { 101 + status = "okay"; 102 + pinctrl-0 = <&pwm_e_pins>; 103 + pinctrl-names = "default"; 104 + clocks = <&clkc CLKID_FCLK_DIV4>; 105 + clock-names = "clkin0"; 106 + }; 107 + 100 108 &saradc { 101 109 status = "okay"; 102 110 vref-supply = <&vddio_ao18>; ··· 133 125 134 126 vmmc-supply = <&vddao_3v3>; 135 127 vqmmc-supply = <&vddio_boot>; 128 + 129 + brcmf: wifi@1 { 130 + reg = <1>; 131 + compatible = "brcm,bcm4329-fmac"; 132 + }; 136 133 }; 137 134 138 135 /* SD card */ ··· 176 163 mmc-pwrseq = <&emmc_pwrseq>; 177 164 vmmc-supply = <&vcc_3v3>; 178 165 vqmmc-supply = <&vddio_boot>; 179 - }; 180 - 181 - &pwm_ef { 182 - status = "okay"; 183 - pinctrl-0 = <&pwm_e_pins>; 184 - pinctrl-names = "default"; 185 - clocks = <&clkc CLKID_FCLK_DIV4>; 186 - clock-names = "clkin0"; 187 166 }; 188 167 189 168 /* This is connected to the Bluetooth module: */
+1 -1
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
··· 773 773 }; 774 774 }; 775 775 776 - eth-phy-mux { 776 + eth-phy-mux@55c { 777 777 compatible = "mdio-mux-mmioreg", "mdio-mux"; 778 778 #address-cells = <1>; 779 779 #size-cells = <0>;
+5 -4
arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
··· 52 52 gpios = <&gpio GPIODV_14 GPIO_ACTIVE_HIGH 53 53 &gpio GPIODV_15 GPIO_ACTIVE_HIGH>; 54 54 /* Dummy RPM values since fan is optional */ 55 - gpio-fan,speed-map = <0 0 56 - 1 1 57 - 2 2 58 - 3 3>; 55 + gpio-fan,speed-map = 56 + <0 0>, 57 + <1 1>, 58 + <2 2>, 59 + <3 3>; 59 60 #cooling-cells = <2>; 60 61 }; 61 62
+97
arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m2-pro.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2021 BayLibre SAS 4 + * Author: Neil Armstrong <narmstrong@baylibre.com> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "meson-sm1-bananapi.dtsi" 10 + #include <dt-bindings/sound/meson-g12a-tohdmitx.h> 11 + 12 + / { 13 + compatible = "bananapi,bpi-m2-pro", "amlogic,sm1"; 14 + model = "Banana Pi BPI-M2-PRO"; 15 + 16 + sound { 17 + compatible = "amlogic,axg-sound-card"; 18 + model = "BPI-M2-PRO"; 19 + audio-aux-devs = <&tdmout_b>; 20 + audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", 21 + "TDMOUT_B IN 1", "FRDDR_B OUT 1", 22 + "TDMOUT_B IN 2", "FRDDR_C OUT 1", 23 + "TDM_B Playback", "TDMOUT_B OUT"; 24 + 25 + assigned-clocks = <&clkc CLKID_MPLL2>, 26 + <&clkc CLKID_MPLL0>, 27 + <&clkc CLKID_MPLL1>; 28 + assigned-clock-parents = <0>, <0>, <0>; 29 + assigned-clock-rates = <294912000>, 30 + <270950400>, 31 + <393216000>; 32 + 33 + dai-link-0 { 34 + sound-dai = <&frddr_a>; 35 + }; 36 + 37 + dai-link-1 { 38 + sound-dai = <&frddr_b>; 39 + }; 40 + 41 + dai-link-2 { 42 + sound-dai = <&frddr_c>; 43 + }; 44 + 45 + /* 8ch hdmi interface */ 46 + dai-link-3 { 47 + sound-dai = <&tdmif_b>; 48 + dai-format = "i2s"; 49 + dai-tdm-slot-tx-mask-0 = <1 1>; 50 + dai-tdm-slot-tx-mask-1 = <1 1>; 51 + dai-tdm-slot-tx-mask-2 = <1 1>; 52 + dai-tdm-slot-tx-mask-3 = <1 1>; 53 + mclk-fs = <256>; 54 + 55 + codec { 56 + sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 57 + }; 58 + }; 59 + 60 + /* hdmi glue */ 61 + dai-link-4 { 62 + sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 63 + 64 + codec { 65 + sound-dai = <&hdmi_tx>; 66 + }; 67 + }; 68 + }; 69 + }; 70 + 71 + &clkc_audio { 72 + status = "okay"; 73 + }; 74 + 75 + &frddr_a { 76 + status = "okay"; 77 + }; 78 + 79 + &frddr_b { 80 + status = "okay"; 81 + }; 82 + 83 + &frddr_c { 84 + status = "okay"; 85 + }; 86 + 87 + &tdmif_b { 88 + status = "okay"; 89 + }; 90 + 91 + &tdmout_b { 92 + status = "okay"; 93 + }; 94 + 95 + &tohdmitx { 96 + status = "okay"; 97 + };
+1 -427
arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts
··· 6 6 7 7 /dts-v1/; 8 8 9 - #include "meson-sm1.dtsi" 10 - #include <dt-bindings/leds/common.h> 11 - #include <dt-bindings/input/linux-event-codes.h> 12 - #include <dt-bindings/gpio/meson-g12a-gpio.h> 9 + #include "meson-sm1-bananapi.dtsi" 13 10 #include <dt-bindings/sound/meson-g12a-toacodec.h> 14 11 #include <dt-bindings/sound/meson-g12a-tohdmitx.h> 15 12 16 13 / { 17 14 compatible = "bananapi,bpi-m5", "amlogic,sm1"; 18 15 model = "Banana Pi BPI-M5"; 19 - 20 - adc_keys { 21 - compatible = "adc-keys"; 22 - io-channels = <&saradc 2>; 23 - io-channel-names = "buttons"; 24 - keyup-threshold-microvolt = <1800000>; 25 - 26 - key { 27 - label = "SW3"; 28 - linux,code = <BTN_3>; 29 - press-threshold-microvolt = <1700000>; 30 - }; 31 - }; 32 - 33 - aliases { 34 - serial0 = &uart_AO; 35 - ethernet0 = &ethmac; 36 - }; 37 - 38 - chosen { 39 - stdout-path = "serial0:115200n8"; 40 - }; 41 16 42 17 /* TOFIX: handle CVBS_DET on SARADC channel 0 */ 43 18 cvbs-connector { ··· 23 48 remote-endpoint = <&cvbs_vdac_out>; 24 49 }; 25 50 }; 26 - }; 27 - 28 - emmc_pwrseq: emmc-pwrseq { 29 - compatible = "mmc-pwrseq-emmc"; 30 - reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 31 - }; 32 - 33 - gpio-keys { 34 - compatible = "gpio-keys"; 35 - 36 - key { 37 - label = "SW1"; 38 - linux,code = <BTN_1>; 39 - gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>; 40 - interrupt-parent = <&gpio_intc>; 41 - interrupts = <3 IRQ_TYPE_EDGE_BOTH>; 42 - }; 43 - }; 44 - 45 - hdmi-connector { 46 - compatible = "hdmi-connector"; 47 - type = "a"; 48 - 49 - port { 50 - hdmi_connector_in: endpoint { 51 - remote-endpoint = <&hdmi_tx_tmds_out>; 52 - }; 53 - }; 54 - }; 55 - 56 - leds { 57 - compatible = "gpio-leds"; 58 - 59 - green { 60 - color = <LED_COLOR_ID_GREEN>; 61 - function = LED_FUNCTION_STATUS; 62 - gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; 63 - }; 64 - 65 - blue { 66 - color = <LED_COLOR_ID_BLUE>; 67 - function = LED_FUNCTION_STATUS; 68 - gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_LOW>; 69 - linux,default-trigger = "heartbeat"; 70 - }; 71 - }; 72 - 73 - memory@0 { 74 - device_type = "memory"; 75 - reg = <0x0 0x0 0x0 0x40000000>; 76 - }; 77 - 78 - emmc_1v8: regulator-emmc_1v8 { 79 - compatible = "regulator-fixed"; 80 - regulator-name = "EMMC_1V8"; 81 - regulator-min-microvolt = <1800000>; 82 - regulator-max-microvolt = <1800000>; 83 - vin-supply = <&vddao_3v3>; 84 - regulator-always-on; 85 - }; 86 - 87 - dc_in: regulator-dc_in { 88 - compatible = "regulator-fixed"; 89 - regulator-name = "DC_IN"; 90 - regulator-min-microvolt = <5000000>; 91 - regulator-max-microvolt = <5000000>; 92 - regulator-always-on; 93 - }; 94 - 95 - vddio_c: regulator-vddio_c { 96 - compatible = "regulator-gpio"; 97 - regulator-name = "VDDIO_C"; 98 - regulator-min-microvolt = <1800000>; 99 - regulator-max-microvolt = <3300000>; 100 - 101 - enable-gpio = <&gpio_ao GPIOE_2 GPIO_ACTIVE_HIGH>; 102 - enable-active-high; 103 - regulator-always-on; 104 - 105 - gpios = <&gpio_ao GPIOAO_6 GPIO_OPEN_DRAIN>; 106 - gpios-states = <1>; 107 - 108 - states = <1800000 0>, 109 - <3300000 1>; 110 - }; 111 - 112 - tflash_vdd: regulator-tflash_vdd { 113 - compatible = "regulator-fixed"; 114 - regulator-name = "TFLASH_VDD"; 115 - regulator-min-microvolt = <3300000>; 116 - regulator-max-microvolt = <3300000>; 117 - vin-supply = <&dc_in>; 118 - gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 119 - enable-active-high; 120 - regulator-always-on; 121 - }; 122 - 123 - vddao_1v8: regulator-vddao_1v8 { 124 - compatible = "regulator-fixed"; 125 - regulator-name = "VDDAO_1V8"; 126 - regulator-min-microvolt = <1800000>; 127 - regulator-max-microvolt = <1800000>; 128 - vin-supply = <&vddao_3v3>; 129 - regulator-always-on; 130 - }; 131 - 132 - vddao_3v3: regulator-vddao_3v3 { 133 - compatible = "regulator-fixed"; 134 - regulator-name = "VDDAO_3V3"; 135 - regulator-min-microvolt = <3300000>; 136 - regulator-max-microvolt = <3300000>; 137 - vin-supply = <&dc_in>; 138 - regulator-always-on; 139 - }; 140 - 141 - vddcpu: regulator-vddcpu { 142 - /* 143 - * SY8120B1ABC DC/DC Regulator. 144 - */ 145 - compatible = "pwm-regulator"; 146 - 147 - regulator-name = "VDDCPU"; 148 - regulator-min-microvolt = <690000>; 149 - regulator-max-microvolt = <1050000>; 150 - 151 - pwm-supply = <&dc_in>; 152 - 153 - pwms = <&pwm_AO_cd 1 1250 0>; 154 - pwm-dutycycle-range = <100 0>; 155 - 156 - regulator-boot-on; 157 - regulator-always-on; 158 - }; 159 - 160 - /* USB Hub Power Enable */ 161 - vl_pwr_en: regulator-vl_pwr_en { 162 - compatible = "regulator-fixed"; 163 - regulator-name = "VL_PWR_EN"; 164 - regulator-min-microvolt = <5000000>; 165 - regulator-max-microvolt = <5000000>; 166 - vin-supply = <&dc_in>; 167 - 168 - gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>; 169 - enable-active-high; 170 51 }; 171 52 172 53 sound { ··· 64 233 assigned-clock-rates = <294912000>, 65 234 <270950400>, 66 235 <393216000>; 67 - status = "okay"; 68 236 69 237 dai-link-0 { 70 238 sound-dai = <&frddr_a>; ··· 149 319 status = "okay"; 150 320 }; 151 321 152 - &arb { 153 - status = "okay"; 154 - }; 155 322 156 323 &clkc_audio { 157 324 status = "okay"; 158 - }; 159 - 160 - &cpu0 { 161 - cpu-supply = <&vddcpu>; 162 - operating-points-v2 = <&cpu_opp_table>; 163 - clocks = <&clkc CLKID_CPU_CLK>; 164 - clock-latency = <50000>; 165 - }; 166 - 167 - &cpu1 { 168 - cpu-supply = <&vddcpu>; 169 - operating-points-v2 = <&cpu_opp_table>; 170 - clocks = <&clkc CLKID_CPU1_CLK>; 171 - clock-latency = <50000>; 172 - }; 173 - 174 - &cpu2 { 175 - cpu-supply = <&vddcpu>; 176 - operating-points-v2 = <&cpu_opp_table>; 177 - clocks = <&clkc CLKID_CPU2_CLK>; 178 - clock-latency = <50000>; 179 - }; 180 - 181 - &cpu3 { 182 - cpu-supply = <&vddcpu>; 183 - operating-points-v2 = <&cpu_opp_table>; 184 - clocks = <&clkc CLKID_CPU3_CLK>; 185 - clock-latency = <50000>; 186 325 }; 187 326 188 327 &cvbs_vdac_port { 189 328 cvbs_vdac_out: endpoint { 190 329 remote-endpoint = <&cvbs_connector_in>; 191 330 }; 192 - }; 193 - 194 - &ext_mdio { 195 - external_phy: ethernet-phy@0 { 196 - /* Realtek RTL8211F (0x001cc916) */ 197 - reg = <0>; 198 - max-speed = <1000>; 199 - 200 - interrupt-parent = <&gpio_intc>; 201 - /* MAC_INTR on GPIOZ_14 */ 202 - interrupts = <26 IRQ_TYPE_LEVEL_LOW>; 203 - }; 204 - }; 205 - 206 - &ethmac { 207 - pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>; 208 - pinctrl-names = "default"; 209 - status = "okay"; 210 - phy-mode = "rgmii-txid"; 211 - phy-handle = <&external_phy>; 212 331 }; 213 332 214 333 &frddr_a { ··· 170 391 171 392 &frddr_c { 172 393 status = "okay"; 173 - }; 174 - 175 - &gpio { 176 - gpio-line-names = 177 - /* GPIOZ */ 178 - "ETH_MDIO", /* GPIOZ_0 */ 179 - "ETH_MDC", /* GPIOZ_1 */ 180 - "ETH_RXCLK", /* GPIOZ_2 */ 181 - "ETH_RX_DV", /* GPIOZ_3 */ 182 - "ETH_RXD0", /* GPIOZ_4 */ 183 - "ETH_RXD1", /* GPIOZ_5 */ 184 - "ETH_RXD2", /* GPIOZ_6 */ 185 - "ETH_RXD3", /* GPIOZ_7 */ 186 - "ETH_TXCLK", /* GPIOZ_8 */ 187 - "ETH_TXEN", /* GPIOZ_9 */ 188 - "ETH_TXD0", /* GPIOZ_10 */ 189 - "ETH_TXD1", /* GPIOZ_11 */ 190 - "ETH_TXD2", /* GPIOZ_12 */ 191 - "ETH_TXD3", /* GPIOZ_13 */ 192 - "ETH_INTR", /* GPIOZ_14 */ 193 - "ETH_NRST", /* GPIOZ_15 */ 194 - /* GPIOH */ 195 - "HDMI_SDA", /* GPIOH_0 */ 196 - "HDMI_SCL", /* GPIOH_1 */ 197 - "HDMI_HPD", /* GPIOH_2 */ 198 - "HDMI_CEC", /* GPIOH_3 */ 199 - "VL-RST_N", /* GPIOH_4 */ 200 - "CON1-P36", /* GPIOH_5 */ 201 - "VL-PWREN", /* GPIOH_6 */ 202 - "WiFi_3V3_1V8", /* GPIOH_7 */ 203 - "TFLASH_VDD_EN", /* GPIOH_8 */ 204 - /* BOOT */ 205 - "eMMC_D0", /* BOOT_0 */ 206 - "eMMC_D1", /* BOOT_1 */ 207 - "eMMC_D2", /* BOOT_2 */ 208 - "eMMC_D3", /* BOOT_3 */ 209 - "eMMC_D4", /* BOOT_4 */ 210 - "eMMC_D5", /* BOOT_5 */ 211 - "eMMC_D6", /* BOOT_6 */ 212 - "eMMC_D7", /* BOOT_7 */ 213 - "eMMC_CLK", /* BOOT_8 */ 214 - "", 215 - "eMMC_CMD", /* BOOT_10 */ 216 - "", 217 - "eMMC_RST#", /* BOOT_12 */ 218 - "eMMC_DS", /* BOOT_13 */ 219 - "", "", 220 - /* GPIOC */ 221 - "SD_D0_B", /* GPIOC_0 */ 222 - "SD_D1_B", /* GPIOC_1 */ 223 - "SD_D2_B", /* GPIOC_2 */ 224 - "SD_D3_B", /* GPIOC_3 */ 225 - "SD_CLK_B", /* GPIOC_4 */ 226 - "SD_CMD_B", /* GPIOC_5 */ 227 - "CARD_EN_DET", /* GPIOC_6 */ 228 - "", 229 - /* GPIOA */ 230 - "", "", "", "", "", "", "", "", 231 - "", "", "", "", "", "", 232 - "CON1-P27", /* GPIOA_14 */ 233 - "CON1-P28", /* GPIOA_15 */ 234 - /* GPIOX */ 235 - "CON1-P16", /* GPIOX_0 */ 236 - "CON1-P18", /* GPIOX_1 */ 237 - "CON1-P22", /* GPIOX_2 */ 238 - "CON1-P11", /* GPIOX_3 */ 239 - "CON1-P13", /* GPIOX_4 */ 240 - "CON1-P07", /* GPIOX_5 */ 241 - "CON1-P33", /* GPIOX_6 */ 242 - "CON1-P15", /* GPIOX_7 */ 243 - "CON1-P19", /* GPIOX_8 */ 244 - "CON1-P21", /* GPIOX_9 */ 245 - "CON1-P24", /* GPIOX_10 */ 246 - "CON1-P23", /* GPIOX_11 */ 247 - "CON1-P08", /* GPIOX_12 */ 248 - "CON1-P10", /* GPIOX_13 */ 249 - "CON1-P29", /* GPIOX_14 */ 250 - "CON1-P31", /* GPIOX_15 */ 251 - "CON1-P26", /* GPIOX_16 */ 252 - "CON1-P03", /* GPIOX_17 */ 253 - "CON1-P05", /* GPIOX_18 */ 254 - "CON1-P32"; /* GPIOX_19 */ 255 - 256 - /* 257 - * WARNING: The USB Hub on the BPI-M5 needs a reset signal 258 - * to be turned high in order to be detected by the USB Controller 259 - * This signal should be handled by a USB specific power sequence 260 - * in order to reset the Hub when USB bus is powered down. 261 - */ 262 - usb-hub { 263 - gpio-hog; 264 - gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>; 265 - output-high; 266 - line-name = "usb-hub-reset"; 267 - }; 268 - }; 269 - 270 - &gpio_ao { 271 - gpio-line-names = 272 - /* GPIOAO */ 273 - "DEBUG TX", /* GPIOAO_0 */ 274 - "DEBUG RX", /* GPIOAO_1 */ 275 - "SYS_LED2", /* GPIOAO_2 */ 276 - "UPDATE_KEY", /* GPIOAO_3 */ 277 - "CON1-P40", /* GPIOAO_4 */ 278 - "IR_IN", /* GPIOAO_5 */ 279 - "TF_3V3N_1V8_EN", /* GPIOAO_6 */ 280 - "CON1-P35", /* GPIOAO_7 */ 281 - "CON1-P12", /* GPIOAO_8 */ 282 - "CON1-P37", /* GPIOAO_9 */ 283 - "CON1-P38", /* GPIOAO_10 */ 284 - "SYS_LED", /* GPIOAO_11 */ 285 - /* GPIOE */ 286 - "VDDEE_PWM", /* GPIOE_0 */ 287 - "VDDCPU_PWM", /* GPIOE_1 */ 288 - "TF_PWR_EN"; /* GPIOE_2 */ 289 - }; 290 - 291 - &hdmi_tx { 292 - status = "okay"; 293 - pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 294 - pinctrl-names = "default"; 295 - hdmi-supply = <&dc_in>; 296 - }; 297 - 298 - &hdmi_tx_tmds_port { 299 - hdmi_tx_tmds_out: endpoint { 300 - remote-endpoint = <&hdmi_connector_in>; 301 - }; 302 - }; 303 - 304 - &ir { 305 - status = "okay"; 306 - pinctrl-0 = <&remote_input_ao_pins>; 307 - pinctrl-names = "default"; 308 - }; 309 - 310 - &pwm_AO_cd { 311 - pinctrl-0 = <&pwm_ao_d_e_pins>; 312 - pinctrl-names = "default"; 313 - clocks = <&xtal>; 314 - clock-names = "clkin1"; 315 - status = "okay"; 316 - }; 317 - 318 - &saradc { 319 - status = "okay"; 320 - vref-supply = <&vddao_1v8>; 321 - }; 322 - 323 - /* SD card */ 324 - &sd_emmc_b { 325 - status = "okay"; 326 - pinctrl-0 = <&sdcard_c_pins>; 327 - pinctrl-1 = <&sdcard_clk_gate_c_pins>; 328 - pinctrl-names = "default", "clk-gate"; 329 - 330 - bus-width = <4>; 331 - cap-sd-highspeed; 332 - max-frequency = <50000000>; 333 - disable-wp; 334 - 335 - /* TOFIX: SD card is barely usable in SDR modes */ 336 - 337 - cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 338 - vmmc-supply = <&tflash_vdd>; 339 - vqmmc-supply = <&vddio_c>; 340 - }; 341 - 342 - /* eMMC */ 343 - &sd_emmc_c { 344 - status = "okay"; 345 - pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; 346 - pinctrl-1 = <&emmc_clk_gate_pins>; 347 - pinctrl-names = "default", "clk-gate"; 348 - 349 - bus-width = <8>; 350 - cap-mmc-highspeed; 351 - mmc-ddr-1_8v; 352 - mmc-hs200-1_8v; 353 - max-frequency = <200000000>; 354 - disable-wp; 355 - 356 - mmc-pwrseq = <&emmc_pwrseq>; 357 - vmmc-supply = <&vddao_3v3>; 358 - vqmmc-supply = <&emmc_1v8>; 359 394 }; 360 395 361 396 &tdmif_b { ··· 218 625 219 626 &toddr_c { 220 627 status = "okay"; 221 - }; 222 - 223 - &uart_AO { 224 - status = "okay"; 225 - pinctrl-0 = <&uart_ao_a_pins>; 226 - pinctrl-names = "default"; 227 - }; 228 - 229 - &usb { 230 - status = "okay"; 231 - }; 232 - 233 - &usb2_phy0 { 234 - phy-supply = <&dc_in>; 235 - }; 236 - 237 - &usb2_phy1 { 238 - /* Enable the hub which is connected to this port */ 239 - phy-supply = <&vl_pwr_en>; 240 628 };
+435
arch/arm64/boot/dts/amlogic/meson-sm1-bananapi.dtsi
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2021 BayLibre SAS 4 + * Author: Neil Armstrong <narmstrong@baylibre.com> 5 + */ 6 + 7 + #include "meson-sm1.dtsi" 8 + #include <dt-bindings/leds/common.h> 9 + #include <dt-bindings/input/linux-event-codes.h> 10 + #include <dt-bindings/gpio/meson-g12a-gpio.h> 11 + 12 + / { 13 + adc-keys { 14 + compatible = "adc-keys"; 15 + io-channels = <&saradc 2>; 16 + io-channel-names = "buttons"; 17 + keyup-threshold-microvolt = <1800000>; 18 + 19 + button-sw3 { 20 + label = "SW3"; 21 + linux,code = <BTN_3>; 22 + press-threshold-microvolt = <1700000>; 23 + }; 24 + }; 25 + 26 + aliases { 27 + serial0 = &uart_AO; 28 + ethernet0 = &ethmac; 29 + }; 30 + 31 + chosen { 32 + stdout-path = "serial0:115200n8"; 33 + }; 34 + 35 + emmc_pwrseq: emmc-pwrseq { 36 + compatible = "mmc-pwrseq-emmc"; 37 + reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 38 + }; 39 + 40 + gpio-keys { 41 + compatible = "gpio-keys"; 42 + 43 + key { 44 + label = "SW1"; 45 + linux,code = <BTN_1>; 46 + gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>; 47 + interrupt-parent = <&gpio_intc>; 48 + interrupts = <3 IRQ_TYPE_EDGE_BOTH>; 49 + }; 50 + }; 51 + 52 + hdmi-connector { 53 + compatible = "hdmi-connector"; 54 + type = "a"; 55 + 56 + port { 57 + hdmi_connector_in: endpoint { 58 + remote-endpoint = <&hdmi_tx_tmds_out>; 59 + }; 60 + }; 61 + }; 62 + 63 + leds { 64 + compatible = "gpio-leds"; 65 + 66 + led-green { 67 + color = <LED_COLOR_ID_GREEN>; 68 + function = LED_FUNCTION_STATUS; 69 + gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; 70 + }; 71 + 72 + led-blue { 73 + color = <LED_COLOR_ID_BLUE>; 74 + function = LED_FUNCTION_STATUS; 75 + gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_LOW>; 76 + linux,default-trigger = "heartbeat"; 77 + }; 78 + }; 79 + 80 + memory@0 { 81 + device_type = "memory"; 82 + reg = <0x0 0x0 0x0 0x40000000>; 83 + }; 84 + 85 + emmc_1v8: regulator-emmc_1v8 { 86 + compatible = "regulator-fixed"; 87 + regulator-name = "EMMC_1V8"; 88 + regulator-min-microvolt = <1800000>; 89 + regulator-max-microvolt = <1800000>; 90 + vin-supply = <&vddao_3v3>; 91 + regulator-always-on; 92 + }; 93 + 94 + dc_in: regulator-dc_in { 95 + compatible = "regulator-fixed"; 96 + regulator-name = "DC_IN"; 97 + regulator-min-microvolt = <5000000>; 98 + regulator-max-microvolt = <5000000>; 99 + regulator-always-on; 100 + }; 101 + 102 + vddio_c: regulator-vddio_c { 103 + compatible = "regulator-gpio"; 104 + regulator-name = "VDDIO_C"; 105 + regulator-min-microvolt = <1800000>; 106 + regulator-max-microvolt = <3300000>; 107 + 108 + enable-gpio = <&gpio_ao GPIOE_2 GPIO_OPEN_DRAIN>; 109 + enable-active-high; 110 + regulator-always-on; 111 + 112 + gpios = <&gpio_ao GPIOAO_6 GPIO_OPEN_DRAIN>; 113 + gpios-states = <1>; 114 + 115 + states = <1800000 0>, 116 + <3300000 1>; 117 + }; 118 + 119 + tflash_vdd: regulator-tflash_vdd { 120 + compatible = "regulator-fixed"; 121 + regulator-name = "TFLASH_VDD"; 122 + regulator-min-microvolt = <3300000>; 123 + regulator-max-microvolt = <3300000>; 124 + vin-supply = <&dc_in>; 125 + gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 126 + enable-active-high; 127 + regulator-always-on; 128 + }; 129 + 130 + vddao_1v8: regulator-vddao_1v8 { 131 + compatible = "regulator-fixed"; 132 + regulator-name = "VDDAO_1V8"; 133 + regulator-min-microvolt = <1800000>; 134 + regulator-max-microvolt = <1800000>; 135 + vin-supply = <&vddao_3v3>; 136 + regulator-always-on; 137 + }; 138 + 139 + vddao_3v3: regulator-vddao_3v3 { 140 + compatible = "regulator-fixed"; 141 + regulator-name = "VDDAO_3V3"; 142 + regulator-min-microvolt = <3300000>; 143 + regulator-max-microvolt = <3300000>; 144 + vin-supply = <&dc_in>; 145 + regulator-always-on; 146 + }; 147 + 148 + vddcpu: regulator-vddcpu { 149 + /* 150 + * SY8120B1ABC DC/DC Regulator. 151 + */ 152 + compatible = "pwm-regulator"; 153 + 154 + regulator-name = "VDDCPU"; 155 + regulator-min-microvolt = <690000>; 156 + regulator-max-microvolt = <1050000>; 157 + 158 + pwm-supply = <&dc_in>; 159 + 160 + pwms = <&pwm_AO_cd 1 1250 0>; 161 + pwm-dutycycle-range = <100 0>; 162 + 163 + regulator-boot-on; 164 + regulator-always-on; 165 + }; 166 + 167 + /* USB Hub Power Enable */ 168 + vl_pwr_en: regulator-vl_pwr_en { 169 + compatible = "regulator-fixed"; 170 + regulator-name = "VL_PWR_EN"; 171 + regulator-min-microvolt = <5000000>; 172 + regulator-max-microvolt = <5000000>; 173 + vin-supply = <&dc_in>; 174 + 175 + gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>; 176 + enable-active-high; 177 + }; 178 + }; 179 + 180 + &arb { 181 + status = "okay"; 182 + }; 183 + 184 + &cpu0 { 185 + cpu-supply = <&vddcpu>; 186 + operating-points-v2 = <&cpu_opp_table>; 187 + clocks = <&clkc CLKID_CPU_CLK>; 188 + clock-latency = <50000>; 189 + }; 190 + 191 + &cpu1 { 192 + cpu-supply = <&vddcpu>; 193 + operating-points-v2 = <&cpu_opp_table>; 194 + clocks = <&clkc CLKID_CPU1_CLK>; 195 + clock-latency = <50000>; 196 + }; 197 + 198 + &cpu2 { 199 + cpu-supply = <&vddcpu>; 200 + operating-points-v2 = <&cpu_opp_table>; 201 + clocks = <&clkc CLKID_CPU2_CLK>; 202 + clock-latency = <50000>; 203 + }; 204 + 205 + &cpu3 { 206 + cpu-supply = <&vddcpu>; 207 + operating-points-v2 = <&cpu_opp_table>; 208 + clocks = <&clkc CLKID_CPU3_CLK>; 209 + clock-latency = <50000>; 210 + }; 211 + 212 + &ext_mdio { 213 + external_phy: ethernet-phy@0 { 214 + /* Realtek RTL8211F (0x001cc916) */ 215 + reg = <0>; 216 + max-speed = <1000>; 217 + 218 + interrupt-parent = <&gpio_intc>; 219 + /* MAC_INTR on GPIOZ_14 */ 220 + interrupts = <26 IRQ_TYPE_LEVEL_LOW>; 221 + }; 222 + }; 223 + 224 + &ethmac { 225 + pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>; 226 + pinctrl-names = "default"; 227 + status = "okay"; 228 + phy-mode = "rgmii-txid"; 229 + phy-handle = <&external_phy>; 230 + }; 231 + 232 + &gpio { 233 + gpio-line-names = 234 + /* GPIOZ */ 235 + "ETH_MDIO", /* GPIOZ_0 */ 236 + "ETH_MDC", /* GPIOZ_1 */ 237 + "ETH_RXCLK", /* GPIOZ_2 */ 238 + "ETH_RX_DV", /* GPIOZ_3 */ 239 + "ETH_RXD0", /* GPIOZ_4 */ 240 + "ETH_RXD1", /* GPIOZ_5 */ 241 + "ETH_RXD2", /* GPIOZ_6 */ 242 + "ETH_RXD3", /* GPIOZ_7 */ 243 + "ETH_TXCLK", /* GPIOZ_8 */ 244 + "ETH_TXEN", /* GPIOZ_9 */ 245 + "ETH_TXD0", /* GPIOZ_10 */ 246 + "ETH_TXD1", /* GPIOZ_11 */ 247 + "ETH_TXD2", /* GPIOZ_12 */ 248 + "ETH_TXD3", /* GPIOZ_13 */ 249 + "ETH_INTR", /* GPIOZ_14 */ 250 + "ETH_NRST", /* GPIOZ_15 */ 251 + /* GPIOH */ 252 + "HDMI_SDA", /* GPIOH_0 */ 253 + "HDMI_SCL", /* GPIOH_1 */ 254 + "HDMI_HPD", /* GPIOH_2 */ 255 + "HDMI_CEC", /* GPIOH_3 */ 256 + "VL-RST_N", /* GPIOH_4 */ 257 + "CON1-P36", /* GPIOH_5 */ 258 + "VL-PWREN", /* GPIOH_6 */ 259 + "WiFi_3V3_1V8", /* GPIOH_7 */ 260 + "TFLASH_VDD_EN", /* GPIOH_8 */ 261 + /* BOOT */ 262 + "eMMC_D0", /* BOOT_0 */ 263 + "eMMC_D1", /* BOOT_1 */ 264 + "eMMC_D2", /* BOOT_2 */ 265 + "eMMC_D3", /* BOOT_3 */ 266 + "eMMC_D4", /* BOOT_4 */ 267 + "eMMC_D5", /* BOOT_5 */ 268 + "eMMC_D6", /* BOOT_6 */ 269 + "eMMC_D7", /* BOOT_7 */ 270 + "eMMC_CLK", /* BOOT_8 */ 271 + "", 272 + "eMMC_CMD", /* BOOT_10 */ 273 + "", 274 + "eMMC_RST#", /* BOOT_12 */ 275 + "eMMC_DS", /* BOOT_13 */ 276 + "", "", 277 + /* GPIOC */ 278 + "SD_D0_B", /* GPIOC_0 */ 279 + "SD_D1_B", /* GPIOC_1 */ 280 + "SD_D2_B", /* GPIOC_2 */ 281 + "SD_D3_B", /* GPIOC_3 */ 282 + "SD_CLK_B", /* GPIOC_4 */ 283 + "SD_CMD_B", /* GPIOC_5 */ 284 + "CARD_EN_DET", /* GPIOC_6 */ 285 + "", 286 + /* GPIOA */ 287 + "", "", "", "", "", "", "", "", 288 + "", "", "", "", "", "", 289 + "CON1-P27", /* GPIOA_14 */ 290 + "CON1-P28", /* GPIOA_15 */ 291 + /* GPIOX */ 292 + "CON1-P16", /* GPIOX_0 */ 293 + "CON1-P18", /* GPIOX_1 */ 294 + "CON1-P22", /* GPIOX_2 */ 295 + "CON1-P11", /* GPIOX_3 */ 296 + "CON1-P13", /* GPIOX_4 */ 297 + "CON1-P07", /* GPIOX_5 */ 298 + "CON1-P33", /* GPIOX_6 */ 299 + "CON1-P15", /* GPIOX_7 */ 300 + "CON1-P19", /* GPIOX_8 */ 301 + "CON1-P21", /* GPIOX_9 */ 302 + "CON1-P24", /* GPIOX_10 */ 303 + "CON1-P23", /* GPIOX_11 */ 304 + "CON1-P08", /* GPIOX_12 */ 305 + "CON1-P10", /* GPIOX_13 */ 306 + "CON1-P29", /* GPIOX_14 */ 307 + "CON1-P31", /* GPIOX_15 */ 308 + "CON1-P26", /* GPIOX_16 */ 309 + "CON1-P03", /* GPIOX_17 */ 310 + "CON1-P05", /* GPIOX_18 */ 311 + "CON1-P32"; /* GPIOX_19 */ 312 + 313 + /* 314 + * WARNING: The USB Hub needs a reset signal to be turned high in 315 + * order to be detected by the USB Controller. This signal should 316 + * be handled by a USB specific power sequence to reset the Hub 317 + * when the USB bus is powered down. 318 + */ 319 + usb-hub { 320 + gpio-hog; 321 + gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>; 322 + output-high; 323 + line-name = "usb-hub-reset"; 324 + }; 325 + }; 326 + 327 + &gpio_ao { 328 + gpio-line-names = 329 + /* GPIOAO */ 330 + "DEBUG TX", /* GPIOAO_0 */ 331 + "DEBUG RX", /* GPIOAO_1 */ 332 + "SYS_LED2", /* GPIOAO_2 */ 333 + "UPDATE_KEY", /* GPIOAO_3 */ 334 + "CON1-P40", /* GPIOAO_4 */ 335 + "IR_IN", /* GPIOAO_5 */ 336 + "TF_3V3N_1V8_EN", /* GPIOAO_6 */ 337 + "CON1-P35", /* GPIOAO_7 */ 338 + "CON1-P12", /* GPIOAO_8 */ 339 + "CON1-P37", /* GPIOAO_9 */ 340 + "CON1-P38", /* GPIOAO_10 */ 341 + "SYS_LED", /* GPIOAO_11 */ 342 + /* GPIOE */ 343 + "VDDEE_PWM", /* GPIOE_0 */ 344 + "VDDCPU_PWM", /* GPIOE_1 */ 345 + "TF_PWR_EN"; /* GPIOE_2 */ 346 + }; 347 + 348 + &hdmi_tx { 349 + status = "okay"; 350 + pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 351 + pinctrl-names = "default"; 352 + hdmi-supply = <&dc_in>; 353 + }; 354 + 355 + &hdmi_tx_tmds_port { 356 + hdmi_tx_tmds_out: endpoint { 357 + remote-endpoint = <&hdmi_connector_in>; 358 + }; 359 + }; 360 + 361 + &ir { 362 + status = "okay"; 363 + pinctrl-0 = <&remote_input_ao_pins>; 364 + pinctrl-names = "default"; 365 + }; 366 + 367 + &pwm_AO_cd { 368 + pinctrl-0 = <&pwm_ao_d_e_pins>; 369 + pinctrl-names = "default"; 370 + clocks = <&xtal>; 371 + clock-names = "clkin1"; 372 + status = "okay"; 373 + }; 374 + 375 + &saradc { 376 + status = "okay"; 377 + vref-supply = <&vddao_1v8>; 378 + }; 379 + 380 + /* SD card */ 381 + &sd_emmc_b { 382 + status = "okay"; 383 + pinctrl-0 = <&sdcard_c_pins>; 384 + pinctrl-1 = <&sdcard_clk_gate_c_pins>; 385 + pinctrl-names = "default", "clk-gate"; 386 + 387 + bus-width = <4>; 388 + cap-sd-highspeed; 389 + max-frequency = <50000000>; 390 + disable-wp; 391 + 392 + /* TOFIX: SD card is barely usable in SDR modes */ 393 + 394 + cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 395 + vmmc-supply = <&tflash_vdd>; 396 + vqmmc-supply = <&vddio_c>; 397 + }; 398 + 399 + /* eMMC */ 400 + &sd_emmc_c { 401 + status = "okay"; 402 + pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; 403 + pinctrl-1 = <&emmc_clk_gate_pins>; 404 + pinctrl-names = "default", "clk-gate"; 405 + 406 + bus-width = <8>; 407 + cap-mmc-highspeed; 408 + mmc-ddr-1_8v; 409 + mmc-hs200-1_8v; 410 + max-frequency = <200000000>; 411 + disable-wp; 412 + 413 + mmc-pwrseq = <&emmc_pwrseq>; 414 + vmmc-supply = <&vddao_3v3>; 415 + vqmmc-supply = <&emmc_1v8>; 416 + }; 417 + 418 + &uart_AO { 419 + status = "okay"; 420 + pinctrl-0 = <&uart_ao_a_pins>; 421 + pinctrl-names = "default"; 422 + }; 423 + 424 + &usb { 425 + status = "okay"; 426 + }; 427 + 428 + &usb2_phy0 { 429 + phy-supply = <&dc_in>; 430 + }; 431 + 432 + &usb2_phy1 { 433 + /* Enable the hub which is connected to this port */ 434 + phy-supply = <&vl_pwr_en>; 435 + };
+9 -1
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-hc4.dts
··· 76 76 }; 77 77 78 78 &cpu_thermal { 79 + trips { 80 + cpu_active: cpu-active { 81 + temperature = <60000>; /* millicelsius */ 82 + hysteresis = <2000>; /* millicelsius */ 83 + type = "active"; 84 + }; 85 + }; 86 + 79 87 cooling-maps { 80 88 map { 81 - trip = <&cpu_passive>; 89 + trip = <&cpu_active>; 82 90 cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 83 91 }; 84 92 };
+4
arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
··· 548 548 &usb { 549 549 power-domains = <&pwrc PWRC_SM1_USB_ID>; 550 550 }; 551 + 552 + &npu { 553 + power-domains = <&pwrc PWRC_SM1_NNA_ID>; 554 + };
+1
include/dt-bindings/power/meson-g12a-power.h
··· 9 9 10 10 #define PWRC_G12A_VPU_ID 0 11 11 #define PWRC_G12A_ETH_ID 1 12 + #define PWRC_G12A_NNA_ID 2 12 13 13 14 #endif
+3 -1
include/dt-bindings/reset/amlogic,meson-g12a-reset.h
··· 69 69 #define RESET_PARSER_FETCH 72 70 70 #define RESET_CTL 73 71 71 #define RESET_PARSER_TOP 74 72 - /* 75-77 */ 72 + /* 75 */ 73 + #define RESET_NNA 76 74 + /* 77 */ 73 75 #define RESET_DVALIN 78 74 76 #define RESET_HDMITX 79 75 77 /* 80-95 */