1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 /* 2 /* 3 * RK3399-based FriendlyElec boards device tre 3 * RK3399-based FriendlyElec boards device tree source 4 * 4 * 5 * Copyright (c) 2016 Fuzhou Rockchip Electron 5 * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd 6 * 6 * 7 * Copyright (c) 2018 FriendlyElec Computer Te 7 * Copyright (c) 2018 FriendlyElec Computer Tech. Co., Ltd. 8 * (http://www.friendlyarm.com) 8 * (http://www.friendlyarm.com) 9 * 9 * 10 * Copyright (c) 2018 Collabora Ltd. 10 * Copyright (c) 2018 Collabora Ltd. 11 * Copyright (c) 2019 Arm Ltd. 11 * Copyright (c) 2019 Arm Ltd. 12 */ 12 */ 13 13 14 /dts-v1/; 14 /dts-v1/; 15 #include <dt-bindings/input/linux-event-codes. 15 #include <dt-bindings/input/linux-event-codes.h> 16 #include "rk3399.dtsi" 16 #include "rk3399.dtsi" >> 17 #include "rk3399-opp.dtsi" 17 18 18 / { 19 / { 19 aliases { << 20 ethernet0 = &gmac; << 21 mmc0 = &sdio0; << 22 mmc1 = &sdmmc; << 23 mmc2 = &sdhci; << 24 }; << 25 << 26 chosen { 20 chosen { 27 stdout-path = "serial2:1500000 21 stdout-path = "serial2:1500000n8"; 28 }; 22 }; 29 23 30 clkin_gmac: external-gmac-clock { 24 clkin_gmac: external-gmac-clock { 31 compatible = "fixed-clock"; 25 compatible = "fixed-clock"; 32 clock-frequency = <125000000>; 26 clock-frequency = <125000000>; 33 clock-output-names = "clkin_gm 27 clock-output-names = "clkin_gmac"; 34 #clock-cells = <0>; 28 #clock-cells = <0>; 35 }; 29 }; 36 30 37 vcc3v3_sys: vcc3v3-sys { 31 vcc3v3_sys: vcc3v3-sys { 38 compatible = "regulator-fixed" 32 compatible = "regulator-fixed"; 39 regulator-always-on; 33 regulator-always-on; 40 regulator-boot-on; 34 regulator-boot-on; 41 regulator-min-microvolt = <330 35 regulator-min-microvolt = <3300000>; 42 regulator-max-microvolt = <330 36 regulator-max-microvolt = <3300000>; 43 regulator-name = "vcc3v3_sys"; 37 regulator-name = "vcc3v3_sys"; 44 }; 38 }; 45 39 46 vcc5v0_sys: vcc5v0-sys { 40 vcc5v0_sys: vcc5v0-sys { 47 compatible = "regulator-fixed" 41 compatible = "regulator-fixed"; 48 regulator-always-on; 42 regulator-always-on; 49 regulator-boot-on; 43 regulator-boot-on; 50 regulator-min-microvolt = <500 44 regulator-min-microvolt = <5000000>; 51 regulator-max-microvolt = <500 45 regulator-max-microvolt = <5000000>; 52 regulator-name = "vcc5v0_sys"; 46 regulator-name = "vcc5v0_sys"; 53 vin-supply = <&vdd_5v>; 47 vin-supply = <&vdd_5v>; 54 }; 48 }; 55 49 56 /* switched by pmic_sleep */ 50 /* switched by pmic_sleep */ 57 vcc1v8_s3: vcc1v8-s3 { !! 51 vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 { 58 compatible = "regulator-fixed" 52 compatible = "regulator-fixed"; 59 regulator-always-on; 53 regulator-always-on; 60 regulator-boot-on; 54 regulator-boot-on; 61 regulator-min-microvolt = <180 55 regulator-min-microvolt = <1800000>; 62 regulator-max-microvolt = <180 56 regulator-max-microvolt = <1800000>; 63 regulator-name = "vcc1v8_s3"; 57 regulator-name = "vcc1v8_s3"; 64 vin-supply = <&vcc_1v8>; 58 vin-supply = <&vcc_1v8>; 65 }; 59 }; 66 60 67 vcc3v0_sd: vcc3v0-sd { 61 vcc3v0_sd: vcc3v0-sd { 68 compatible = "regulator-fixed" 62 compatible = "regulator-fixed"; 69 enable-active-high; 63 enable-active-high; 70 gpio = <&gpio0 RK_PA1 GPIO_ACT 64 gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>; 71 pinctrl-names = "default"; 65 pinctrl-names = "default"; 72 pinctrl-0 = <&sdmmc0_pwr_h>; 66 pinctrl-0 = <&sdmmc0_pwr_h>; 73 regulator-always-on; 67 regulator-always-on; 74 regulator-min-microvolt = <300 68 regulator-min-microvolt = <3000000>; 75 regulator-max-microvolt = <300 69 regulator-max-microvolt = <3000000>; 76 regulator-name = "vcc3v0_sd"; 70 regulator-name = "vcc3v0_sd"; 77 vin-supply = <&vcc3v3_sys>; 71 vin-supply = <&vcc3v3_sys>; 78 }; 72 }; 79 73 80 /* << 81 * Really, this is supplied by vcc_1v8 << 82 * drives the enable pin, but we can't << 83 */ << 84 vcca0v9_s3: vcca0v9-s3 { << 85 compatible = "regulator-fixed" << 86 regulator-min-microvolt = <900 << 87 regulator-max-microvolt = <900 << 88 regulator-name = "vcca0v9_s3"; << 89 vin-supply = <&vcc1v8_s3>; << 90 }; << 91 << 92 /* As above, actually supplied by vcc3 << 93 vcca1v8_s3: vcca1v8-s3 { << 94 compatible = "regulator-fixed" << 95 regulator-min-microvolt = <180 << 96 regulator-max-microvolt = <180 << 97 regulator-name = "vcca1v8_s3"; << 98 vin-supply = <&vcc1v8_s3>; << 99 }; << 100 << 101 vbus_typec: vbus-typec { 74 vbus_typec: vbus-typec { 102 compatible = "regulator-fixed" 75 compatible = "regulator-fixed"; 103 regulator-min-microvolt = <500 76 regulator-min-microvolt = <5000000>; 104 regulator-max-microvolt = <500 77 regulator-max-microvolt = <5000000>; 105 regulator-name = "vbus_typec"; 78 regulator-name = "vbus_typec"; 106 }; 79 }; 107 80 108 gpio-keys { 81 gpio-keys { 109 compatible = "gpio-keys"; 82 compatible = "gpio-keys"; 110 autorepeat; 83 autorepeat; 111 pinctrl-names = "default"; 84 pinctrl-names = "default"; 112 pinctrl-0 = <&power_key>; 85 pinctrl-0 = <&power_key>; 113 86 114 key-power { !! 87 power { 115 debounce-interval = <1 88 debounce-interval = <100>; 116 gpios = <&gpio0 RK_PA5 89 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; 117 label = "GPIO Key Powe 90 label = "GPIO Key Power"; 118 linux,code = <KEY_POWE 91 linux,code = <KEY_POWER>; 119 wakeup-source; 92 wakeup-source; 120 }; 93 }; 121 }; 94 }; 122 95 123 leds: gpio-leds { 96 leds: gpio-leds { 124 compatible = "gpio-leds"; 97 compatible = "gpio-leds"; 125 pinctrl-names = "default"; 98 pinctrl-names = "default"; 126 pinctrl-0 = <&status_led_pin>; !! 99 pinctrl-0 = <&leds_gpio>; 127 100 128 status_led: led-0 { !! 101 status { 129 gpios = <&gpio0 RK_PB5 102 gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; 130 label = "status_led"; 103 label = "status_led"; 131 linux,default-trigger 104 linux,default-trigger = "heartbeat"; 132 }; 105 }; 133 }; 106 }; 134 107 135 sdio_pwrseq: sdio-pwrseq { 108 sdio_pwrseq: sdio-pwrseq { 136 compatible = "mmc-pwrseq-simpl 109 compatible = "mmc-pwrseq-simple"; 137 clocks = <&rk808 1>; 110 clocks = <&rk808 1>; 138 clock-names = "ext_clock"; 111 clock-names = "ext_clock"; 139 pinctrl-names = "default"; 112 pinctrl-names = "default"; 140 pinctrl-0 = <&wifi_reg_on_h>; 113 pinctrl-0 = <&wifi_reg_on_h>; 141 reset-gpios = <&gpio0 RK_PB2 G 114 reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; 142 }; 115 }; 143 }; 116 }; 144 117 145 &cpu_b0 { 118 &cpu_b0 { 146 cpu-supply = <&vdd_cpu_b>; 119 cpu-supply = <&vdd_cpu_b>; 147 }; 120 }; 148 121 149 &cpu_b1 { 122 &cpu_b1 { 150 cpu-supply = <&vdd_cpu_b>; 123 cpu-supply = <&vdd_cpu_b>; 151 }; 124 }; 152 125 153 &cpu_l0 { 126 &cpu_l0 { 154 cpu-supply = <&vdd_cpu_l>; 127 cpu-supply = <&vdd_cpu_l>; 155 }; 128 }; 156 129 157 &cpu_l1 { 130 &cpu_l1 { 158 cpu-supply = <&vdd_cpu_l>; 131 cpu-supply = <&vdd_cpu_l>; 159 }; 132 }; 160 133 161 &cpu_l2 { 134 &cpu_l2 { 162 cpu-supply = <&vdd_cpu_l>; 135 cpu-supply = <&vdd_cpu_l>; 163 }; 136 }; 164 137 165 &cpu_l3 { 138 &cpu_l3 { 166 cpu-supply = <&vdd_cpu_l>; 139 cpu-supply = <&vdd_cpu_l>; 167 }; 140 }; 168 141 169 &emmc_phy { 142 &emmc_phy { 170 rockchip,enable-strobe-pulldown; << 171 status = "okay"; 143 status = "okay"; 172 }; 144 }; 173 145 174 &gmac { 146 &gmac { 175 assigned-clock-parents = <&clkin_gmac> 147 assigned-clock-parents = <&clkin_gmac>; 176 assigned-clocks = <&cru SCLK_RMII_SRC> 148 assigned-clocks = <&cru SCLK_RMII_SRC>; 177 clock_in_out = "input"; 149 clock_in_out = "input"; 178 pinctrl-names = "default"; 150 pinctrl-names = "default"; 179 pinctrl-0 = <&rgmii_pins>, <&phy_intb> 151 pinctrl-0 = <&rgmii_pins>, <&phy_intb>, <&phy_rstb>; 180 phy-handle = <&rtl8211e>; 152 phy-handle = <&rtl8211e>; 181 phy-mode = "rgmii"; 153 phy-mode = "rgmii"; 182 phy-supply = <&vcc3v3_s3>; 154 phy-supply = <&vcc3v3_s3>; 183 tx_delay = <0x28>; 155 tx_delay = <0x28>; 184 rx_delay = <0x11>; 156 rx_delay = <0x11>; 185 status = "okay"; 157 status = "okay"; 186 158 187 mdio { 159 mdio { 188 compatible = "snps,dwmac-mdio" 160 compatible = "snps,dwmac-mdio"; 189 #address-cells = <1>; 161 #address-cells = <1>; 190 #size-cells = <0>; 162 #size-cells = <0>; 191 163 192 rtl8211e: ethernet-phy@1 { !! 164 rtl8211e: phy@1 { 193 reg = <1>; 165 reg = <1>; 194 interrupt-parent = <&g 166 interrupt-parent = <&gpio3>; 195 interrupts = <RK_PB2 I 167 interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>; 196 reset-assert-us = <100 168 reset-assert-us = <10000>; 197 reset-deassert-us = <3 169 reset-deassert-us = <30000>; 198 reset-gpios = <&gpio3 170 reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; 199 }; 171 }; 200 }; 172 }; 201 }; 173 }; 202 174 203 &gpu { 175 &gpu { 204 mali-supply = <&vdd_gpu>; 176 mali-supply = <&vdd_gpu>; 205 status = "okay"; 177 status = "okay"; 206 }; 178 }; 207 179 208 &hdmi { 180 &hdmi { 209 ddc-i2c-bus = <&i2c7>; 181 ddc-i2c-bus = <&i2c7>; 210 pinctrl-names = "default"; 182 pinctrl-names = "default"; 211 pinctrl-0 = <&hdmi_cec>; 183 pinctrl-0 = <&hdmi_cec>; 212 status = "okay"; 184 status = "okay"; 213 }; 185 }; 214 186 215 &hdmi_sound { 187 &hdmi_sound { 216 status = "okay"; 188 status = "okay"; 217 }; 189 }; 218 190 219 &i2c0 { 191 &i2c0 { 220 clock-frequency = <400000>; 192 clock-frequency = <400000>; 221 i2c-scl-rising-time-ns = <160>; 193 i2c-scl-rising-time-ns = <160>; 222 i2c-scl-falling-time-ns = <30>; 194 i2c-scl-falling-time-ns = <30>; 223 status = "okay"; 195 status = "okay"; 224 196 225 vdd_cpu_b: regulator@40 { 197 vdd_cpu_b: regulator@40 { 226 compatible = "silergy,syr827"; 198 compatible = "silergy,syr827"; 227 reg = <0x40>; 199 reg = <0x40>; 228 fcs,suspend-voltage-selector = 200 fcs,suspend-voltage-selector = <1>; 229 pinctrl-names = "default"; 201 pinctrl-names = "default"; 230 pinctrl-0 = <&cpu_b_sleep>; 202 pinctrl-0 = <&cpu_b_sleep>; 231 regulator-always-on; 203 regulator-always-on; 232 regulator-boot-on; 204 regulator-boot-on; 233 regulator-min-microvolt = <712 205 regulator-min-microvolt = <712500>; 234 regulator-max-microvolt = <150 206 regulator-max-microvolt = <1500000>; 235 regulator-name = "vdd_cpu_b"; 207 regulator-name = "vdd_cpu_b"; 236 regulator-ramp-delay = <1000>; 208 regulator-ramp-delay = <1000>; 237 vin-supply = <&vcc3v3_sys>; 209 vin-supply = <&vcc3v3_sys>; 238 210 239 regulator-state-mem { 211 regulator-state-mem { 240 regulator-off-in-suspe 212 regulator-off-in-suspend; 241 }; 213 }; 242 }; 214 }; 243 215 244 vdd_gpu: regulator@41 { 216 vdd_gpu: regulator@41 { 245 compatible = "silergy,syr828"; 217 compatible = "silergy,syr828"; 246 reg = <0x41>; 218 reg = <0x41>; 247 fcs,suspend-voltage-selector = 219 fcs,suspend-voltage-selector = <1>; 248 pinctrl-names = "default"; 220 pinctrl-names = "default"; 249 pinctrl-0 = <&gpu_sleep>; 221 pinctrl-0 = <&gpu_sleep>; 250 regulator-always-on; 222 regulator-always-on; 251 regulator-boot-on; 223 regulator-boot-on; 252 regulator-min-microvolt = <712 224 regulator-min-microvolt = <712500>; 253 regulator-max-microvolt = <150 225 regulator-max-microvolt = <1500000>; 254 regulator-name = "vdd_gpu"; 226 regulator-name = "vdd_gpu"; 255 regulator-ramp-delay = <1000>; 227 regulator-ramp-delay = <1000>; 256 vin-supply = <&vcc3v3_sys>; 228 vin-supply = <&vcc3v3_sys>; 257 229 258 regulator-state-mem { 230 regulator-state-mem { 259 regulator-off-in-suspe 231 regulator-off-in-suspend; 260 }; 232 }; 261 }; 233 }; 262 234 263 rk808: pmic@1b { 235 rk808: pmic@1b { 264 compatible = "rockchip,rk808"; 236 compatible = "rockchip,rk808"; 265 reg = <0x1b>; 237 reg = <0x1b>; 266 clock-output-names = "xin32k", 238 clock-output-names = "xin32k", "rtc_clko_wifi"; 267 #clock-cells = <1>; 239 #clock-cells = <1>; 268 interrupt-parent = <&gpio1>; 240 interrupt-parent = <&gpio1>; 269 interrupts = <21 IRQ_TYPE_LEVE 241 interrupts = <21 IRQ_TYPE_LEVEL_LOW>; 270 pinctrl-names = "default"; 242 pinctrl-names = "default"; 271 pinctrl-0 = <&pmic_int_l>, <&a !! 243 pinctrl-0 = <&pmic_int_l>; 272 rockchip,system-power-controll 244 rockchip,system-power-controller; 273 wakeup-source; 245 wakeup-source; 274 246 275 vcc1-supply = <&vcc3v3_sys>; 247 vcc1-supply = <&vcc3v3_sys>; 276 vcc2-supply = <&vcc3v3_sys>; 248 vcc2-supply = <&vcc3v3_sys>; 277 vcc3-supply = <&vcc3v3_sys>; 249 vcc3-supply = <&vcc3v3_sys>; 278 vcc4-supply = <&vcc3v3_sys>; 250 vcc4-supply = <&vcc3v3_sys>; 279 vcc6-supply = <&vcc3v3_sys>; 251 vcc6-supply = <&vcc3v3_sys>; 280 vcc7-supply = <&vcc3v3_sys>; 252 vcc7-supply = <&vcc3v3_sys>; 281 vcc8-supply = <&vcc3v3_sys>; 253 vcc8-supply = <&vcc3v3_sys>; 282 vcc9-supply = <&vcc3v3_sys>; 254 vcc9-supply = <&vcc3v3_sys>; 283 vcc10-supply = <&vcc3v3_sys>; 255 vcc10-supply = <&vcc3v3_sys>; 284 vcc11-supply = <&vcc3v3_sys>; 256 vcc11-supply = <&vcc3v3_sys>; 285 vcc12-supply = <&vcc3v3_sys>; 257 vcc12-supply = <&vcc3v3_sys>; 286 vddio-supply = <&vcc_3v0>; 258 vddio-supply = <&vcc_3v0>; 287 259 288 regulators { 260 regulators { 289 vdd_center: DCDC_REG1 261 vdd_center: DCDC_REG1 { 290 regulator-alwa 262 regulator-always-on; 291 regulator-boot 263 regulator-boot-on; 292 regulator-min- 264 regulator-min-microvolt = <750000>; 293 regulator-max- 265 regulator-max-microvolt = <1350000>; 294 regulator-name 266 regulator-name = "vdd_center"; 295 regulator-ramp 267 regulator-ramp-delay = <6001>; 296 268 297 regulator-stat 269 regulator-state-mem { 298 regula 270 regulator-off-in-suspend; 299 }; 271 }; 300 }; 272 }; 301 273 302 vdd_cpu_l: DCDC_REG2 { 274 vdd_cpu_l: DCDC_REG2 { 303 regulator-alwa 275 regulator-always-on; 304 regulator-boot 276 regulator-boot-on; 305 regulator-min- 277 regulator-min-microvolt = <750000>; 306 regulator-max- 278 regulator-max-microvolt = <1350000>; 307 regulator-name 279 regulator-name = "vdd_cpu_l"; 308 regulator-ramp 280 regulator-ramp-delay = <6001>; 309 281 310 regulator-stat 282 regulator-state-mem { 311 regula 283 regulator-off-in-suspend; 312 }; 284 }; 313 }; 285 }; 314 286 315 vcc_ddr: DCDC_REG3 { 287 vcc_ddr: DCDC_REG3 { 316 regulator-alwa 288 regulator-always-on; 317 regulator-boot 289 regulator-boot-on; 318 regulator-name 290 regulator-name = "vcc_ddr"; 319 291 320 regulator-stat 292 regulator-state-mem { 321 regula 293 regulator-on-in-suspend; 322 }; 294 }; 323 }; 295 }; 324 296 325 vcc_1v8: DCDC_REG4 { 297 vcc_1v8: DCDC_REG4 { 326 regulator-alwa 298 regulator-always-on; 327 regulator-boot 299 regulator-boot-on; 328 regulator-min- 300 regulator-min-microvolt = <1800000>; 329 regulator-max- 301 regulator-max-microvolt = <1800000>; 330 regulator-name 302 regulator-name = "vcc_1v8"; 331 303 332 regulator-stat 304 regulator-state-mem { 333 regula 305 regulator-on-in-suspend; 334 regula 306 regulator-suspend-microvolt = <1800000>; 335 }; 307 }; 336 }; 308 }; 337 309 338 vcc1v8_cam: LDO_REG1 { 310 vcc1v8_cam: LDO_REG1 { 339 regulator-alwa 311 regulator-always-on; 340 regulator-boot 312 regulator-boot-on; 341 regulator-min- 313 regulator-min-microvolt = <1800000>; 342 regulator-max- 314 regulator-max-microvolt = <1800000>; 343 regulator-name 315 regulator-name = "vcc1v8_cam"; 344 316 345 regulator-stat 317 regulator-state-mem { 346 regula 318 regulator-off-in-suspend; 347 }; 319 }; 348 }; 320 }; 349 321 350 vcc3v0_touch: LDO_REG2 322 vcc3v0_touch: LDO_REG2 { 351 regulator-alwa 323 regulator-always-on; 352 regulator-boot 324 regulator-boot-on; 353 regulator-min- 325 regulator-min-microvolt = <3000000>; 354 regulator-max- 326 regulator-max-microvolt = <3000000>; 355 regulator-name 327 regulator-name = "vcc3v0_touch"; 356 328 357 regulator-stat 329 regulator-state-mem { 358 regula 330 regulator-off-in-suspend; 359 }; 331 }; 360 }; 332 }; 361 333 362 vcc1v8_pmupll: LDO_REG 334 vcc1v8_pmupll: LDO_REG3 { 363 regulator-alwa 335 regulator-always-on; 364 regulator-boot 336 regulator-boot-on; 365 regulator-min- 337 regulator-min-microvolt = <1800000>; 366 regulator-max- 338 regulator-max-microvolt = <1800000>; 367 regulator-name 339 regulator-name = "vcc1v8_pmupll"; 368 340 369 regulator-stat 341 regulator-state-mem { 370 regula 342 regulator-on-in-suspend; 371 regula 343 regulator-suspend-microvolt = <1800000>; 372 }; 344 }; 373 }; 345 }; 374 346 375 vcc_sdio: LDO_REG4 { 347 vcc_sdio: LDO_REG4 { 376 regulator-alwa 348 regulator-always-on; 377 regulator-boot 349 regulator-boot-on; >> 350 regulator-init-microvolt = <3000000>; 378 regulator-min- 351 regulator-min-microvolt = <1800000>; 379 regulator-max- 352 regulator-max-microvolt = <3300000>; 380 regulator-name 353 regulator-name = "vcc_sdio"; 381 354 382 regulator-stat 355 regulator-state-mem { 383 regula 356 regulator-on-in-suspend; 384 regula 357 regulator-suspend-microvolt = <3000000>; 385 }; 358 }; 386 }; 359 }; 387 360 388 vcca3v0_codec: LDO_REG 361 vcca3v0_codec: LDO_REG5 { 389 regulator-alwa 362 regulator-always-on; 390 regulator-boot 363 regulator-boot-on; 391 regulator-min- 364 regulator-min-microvolt = <3000000>; 392 regulator-max- 365 regulator-max-microvolt = <3000000>; 393 regulator-name 366 regulator-name = "vcca3v0_codec"; 394 367 395 regulator-stat 368 regulator-state-mem { 396 regula 369 regulator-off-in-suspend; 397 }; 370 }; 398 }; 371 }; 399 372 400 vcc_1v5: LDO_REG6 { 373 vcc_1v5: LDO_REG6 { 401 regulator-alwa 374 regulator-always-on; 402 regulator-boot 375 regulator-boot-on; 403 regulator-min- 376 regulator-min-microvolt = <1500000>; 404 regulator-max- 377 regulator-max-microvolt = <1500000>; 405 regulator-name 378 regulator-name = "vcc_1v5"; 406 379 407 regulator-stat 380 regulator-state-mem { 408 regula 381 regulator-on-in-suspend; 409 regula 382 regulator-suspend-microvolt = <1500000>; 410 }; 383 }; 411 }; 384 }; 412 385 413 vcca1v8_codec: LDO_REG 386 vcca1v8_codec: LDO_REG7 { 414 regulator-alwa 387 regulator-always-on; 415 regulator-boot 388 regulator-boot-on; 416 regulator-min- 389 regulator-min-microvolt = <1800000>; 417 regulator-max- 390 regulator-max-microvolt = <1800000>; 418 regulator-name 391 regulator-name = "vcca1v8_codec"; 419 392 420 regulator-stat 393 regulator-state-mem { 421 regula 394 regulator-off-in-suspend; 422 }; 395 }; 423 }; 396 }; 424 397 425 vcc_3v0: LDO_REG8 { 398 vcc_3v0: LDO_REG8 { 426 regulator-alwa 399 regulator-always-on; 427 regulator-boot 400 regulator-boot-on; 428 regulator-min- 401 regulator-min-microvolt = <3000000>; 429 regulator-max- 402 regulator-max-microvolt = <3000000>; 430 regulator-name 403 regulator-name = "vcc_3v0"; 431 404 432 regulator-stat 405 regulator-state-mem { 433 regula 406 regulator-on-in-suspend; 434 regula 407 regulator-suspend-microvolt = <3000000>; 435 }; 408 }; 436 }; 409 }; 437 410 438 vcc3v3_s3: SWITCH_REG1 411 vcc3v3_s3: SWITCH_REG1 { 439 regulator-alwa 412 regulator-always-on; 440 regulator-boot 413 regulator-boot-on; 441 regulator-name 414 regulator-name = "vcc3v3_s3"; 442 415 443 regulator-stat 416 regulator-state-mem { 444 regula 417 regulator-off-in-suspend; 445 }; 418 }; 446 }; 419 }; 447 420 448 vcc3v3_s0: SWITCH_REG2 421 vcc3v3_s0: SWITCH_REG2 { 449 regulator-alwa 422 regulator-always-on; 450 regulator-boot 423 regulator-boot-on; 451 regulator-name 424 regulator-name = "vcc3v3_s0"; 452 425 453 regulator-stat 426 regulator-state-mem { 454 regula 427 regulator-off-in-suspend; 455 }; 428 }; 456 }; 429 }; 457 }; 430 }; 458 }; 431 }; 459 }; 432 }; 460 433 461 &i2c1 { 434 &i2c1 { 462 clock-frequency = <200000>; 435 clock-frequency = <200000>; 463 i2c-scl-rising-time-ns = <150>; 436 i2c-scl-rising-time-ns = <150>; 464 i2c-scl-falling-time-ns = <30>; 437 i2c-scl-falling-time-ns = <30>; 465 status = "okay"; 438 status = "okay"; 466 }; 439 }; 467 440 468 &i2c2 { 441 &i2c2 { 469 status = "okay"; 442 status = "okay"; 470 }; 443 }; 471 444 472 &i2c4 { 445 &i2c4 { 473 clock-frequency = <400000>; 446 clock-frequency = <400000>; 474 i2c-scl-rising-time-ns = <160>; 447 i2c-scl-rising-time-ns = <160>; 475 i2c-scl-falling-time-ns = <30>; 448 i2c-scl-falling-time-ns = <30>; 476 status = "okay"; 449 status = "okay"; 477 450 478 fusb0: typec-portc@22 { 451 fusb0: typec-portc@22 { 479 compatible = "fcs,fusb302"; 452 compatible = "fcs,fusb302"; 480 reg = <0x22>; 453 reg = <0x22>; 481 interrupt-parent = <&gpio1>; 454 interrupt-parent = <&gpio1>; 482 interrupts = <RK_PA2 IRQ_TYPE_ 455 interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>; 483 pinctrl-names = "default"; 456 pinctrl-names = "default"; 484 pinctrl-0 = <&fusb0_int>; 457 pinctrl-0 = <&fusb0_int>; 485 vbus-supply = <&vbus_typec>; 458 vbus-supply = <&vbus_typec>; 486 }; 459 }; 487 }; 460 }; 488 461 489 &i2c7 { 462 &i2c7 { 490 status = "okay"; 463 status = "okay"; 491 }; 464 }; 492 465 493 &i2s2 { 466 &i2s2 { 494 status = "okay"; 467 status = "okay"; 495 }; 468 }; 496 469 497 &io_domains { 470 &io_domains { 498 bt656-supply = <&vcc_1v8>; 471 bt656-supply = <&vcc_1v8>; 499 audio-supply = <&vcca1v8_codec>; 472 audio-supply = <&vcca1v8_codec>; 500 sdmmc-supply = <&vcc_sdio>; 473 sdmmc-supply = <&vcc_sdio>; 501 gpio1830-supply = <&vcc_3v0>; 474 gpio1830-supply = <&vcc_3v0>; 502 status = "okay"; 475 status = "okay"; 503 }; 476 }; 504 477 505 &pcie_phy { 478 &pcie_phy { 506 assigned-clock-parents = <&cru SCLK_PC 479 assigned-clock-parents = <&cru SCLK_PCIEPHY_REF100M>; 507 assigned-clock-rates = <100000000>; 480 assigned-clock-rates = <100000000>; 508 assigned-clocks = <&cru SCLK_PCIEPHY_R 481 assigned-clocks = <&cru SCLK_PCIEPHY_REF>; 509 status = "okay"; 482 status = "okay"; 510 }; 483 }; 511 484 512 &pcie0 { 485 &pcie0 { 513 num-lanes = <2>; !! 486 ep-gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>; 514 vpcie0v9-supply = <&vcca0v9_s3>; !! 487 max-link-speed = <2>; 515 vpcie1v8-supply = <&vcca1v8_s3>; !! 488 num-lanes = <4>; 516 status = "okay"; 489 status = "okay"; 517 }; 490 }; 518 491 519 &pinctrl { 492 &pinctrl { 520 fusb30x { 493 fusb30x { 521 fusb0_int: fusb0-int { 494 fusb0_int: fusb0-int { 522 rockchip,pins = <1 RK_ 495 rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; 523 }; 496 }; 524 }; 497 }; 525 498 526 gpio-leds { 499 gpio-leds { 527 status_led_pin: status-led-pin !! 500 leds_gpio: leds-gpio { 528 rockchip,pins = <0 RK_ 501 rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; 529 }; 502 }; 530 }; 503 }; 531 504 532 gmac { !! 505 phy { 533 phy_intb: phy-intb { 506 phy_intb: phy-intb { 534 rockchip,pins = <3 RK_ 507 rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>; 535 }; 508 }; 536 509 537 phy_rstb: phy-rstb { 510 phy_rstb: phy-rstb { 538 rockchip,pins = <3 RK_ 511 rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 539 }; 512 }; 540 }; 513 }; 541 514 542 pmic { 515 pmic { 543 cpu_b_sleep: cpu-b-sleep { 516 cpu_b_sleep: cpu-b-sleep { 544 rockchip,pins = <1 RK_ 517 rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>; 545 }; 518 }; 546 519 547 gpu_sleep: gpu-sleep { 520 gpu_sleep: gpu-sleep { 548 rockchip,pins = <1 RK_ 521 rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; 549 }; 522 }; 550 523 551 pmic_int_l: pmic-int-l { 524 pmic_int_l: pmic-int-l { 552 rockchip,pins = <1 RK_ 525 rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; 553 }; 526 }; 554 }; 527 }; 555 528 556 rockchip-key { 529 rockchip-key { 557 power_key: power-key { 530 power_key: power-key { 558 rockchip,pins = <0 RK_ 531 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 559 }; 532 }; 560 }; 533 }; 561 534 562 sdio { 535 sdio { 563 bt_host_wake_l: bt-host-wake-l 536 bt_host_wake_l: bt-host-wake-l { 564 rockchip,pins = <0 RK_ 537 rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; 565 }; 538 }; 566 539 567 bt_reg_on_h: bt-reg-on-h { 540 bt_reg_on_h: bt-reg-on-h { 568 /* external pullup to 541 /* external pullup to VCC1V8_PMUPLL */ 569 rockchip,pins = <0 RK_ 542 rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; 570 }; 543 }; 571 544 572 bt_wake_l: bt-wake-l { 545 bt_wake_l: bt-wake-l { 573 rockchip,pins = <2 RK_ 546 rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; 574 }; 547 }; 575 548 576 wifi_reg_on_h: wifi-reg_on-h { 549 wifi_reg_on_h: wifi-reg_on-h { 577 rockchip,pins = <0 RK_ 550 rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 578 }; 551 }; 579 }; 552 }; 580 553 581 sdmmc { 554 sdmmc { 582 sdmmc0_det_l: sdmmc0-det-l { 555 sdmmc0_det_l: sdmmc0-det-l { 583 rockchip,pins = <0 RK_ 556 rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>; 584 }; 557 }; 585 558 586 sdmmc0_pwr_h: sdmmc0-pwr-h { 559 sdmmc0_pwr_h: sdmmc0-pwr-h { 587 rockchip,pins = <0 RK_ 560 rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; 588 }; 561 }; 589 }; 562 }; 590 }; 563 }; 591 564 592 &pmu_io_domains { 565 &pmu_io_domains { 593 pmu1830-supply = <&vcc_3v0>; 566 pmu1830-supply = <&vcc_3v0>; 594 status = "okay"; 567 status = "okay"; 595 }; 568 }; 596 569 597 &pwm0 { 570 &pwm0 { 598 status = "okay"; 571 status = "okay"; 599 }; 572 }; 600 573 601 &pwm1 { 574 &pwm1 { 602 status = "okay"; 575 status = "okay"; 603 }; 576 }; 604 577 605 &pwm2 { 578 &pwm2 { 606 pinctrl-names = "active"; 579 pinctrl-names = "active"; 607 pinctrl-0 = <&pwm2_pin_pull_down>; 580 pinctrl-0 = <&pwm2_pin_pull_down>; 608 status = "okay"; 581 status = "okay"; 609 }; 582 }; 610 583 611 &saradc { 584 &saradc { 612 vref-supply = <&vcca1v8_s3>; 585 vref-supply = <&vcca1v8_s3>; 613 status = "okay"; 586 status = "okay"; 614 }; 587 }; 615 588 616 &sdhci { 589 &sdhci { 617 bus-width = <8>; 590 bus-width = <8>; 618 mmc-hs200-1_8v; 591 mmc-hs200-1_8v; 619 non-removable; 592 non-removable; 620 status = "okay"; 593 status = "okay"; 621 }; 594 }; 622 595 623 &sdio0 { 596 &sdio0 { 624 bus-width = <4>; 597 bus-width = <4>; 625 cap-sd-highspeed; 598 cap-sd-highspeed; 626 cap-sdio-irq; 599 cap-sdio-irq; 627 keep-power-in-suspend; 600 keep-power-in-suspend; 628 mmc-pwrseq = <&sdio_pwrseq>; 601 mmc-pwrseq = <&sdio_pwrseq>; 629 non-removable; 602 non-removable; 630 pinctrl-names = "default"; 603 pinctrl-names = "default"; 631 pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &s 604 pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; 632 sd-uhs-sdr104; 605 sd-uhs-sdr104; 633 status = "okay"; 606 status = "okay"; 634 }; 607 }; 635 608 636 &sdmmc { 609 &sdmmc { 637 bus-width = <4>; 610 bus-width = <4>; 638 cap-sd-highspeed; 611 cap-sd-highspeed; 639 cap-mmc-highspeed; 612 cap-mmc-highspeed; 640 cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_ 613 cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; 641 disable-wp; 614 disable-wp; 642 pinctrl-names = "default"; 615 pinctrl-names = "default"; 643 pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &s 616 pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc0_det_l>; 644 sd-uhs-sdr104; 617 sd-uhs-sdr104; 645 vmmc-supply = <&vcc3v0_sd>; 618 vmmc-supply = <&vcc3v0_sd>; 646 vqmmc-supply = <&vcc_sdio>; 619 vqmmc-supply = <&vcc_sdio>; 647 status = "okay"; 620 status = "okay"; 648 }; 621 }; 649 622 650 &tcphy0 { 623 &tcphy0 { 651 status = "okay"; 624 status = "okay"; 652 }; 625 }; 653 626 654 &tcphy1 { 627 &tcphy1 { 655 status = "okay"; 628 status = "okay"; 656 }; 629 }; 657 630 658 &tsadc { 631 &tsadc { 659 /* tshut mode 0:CRU 1:GPIO */ 632 /* tshut mode 0:CRU 1:GPIO */ 660 rockchip,hw-tshut-mode = <1>; 633 rockchip,hw-tshut-mode = <1>; 661 /* tshut polarity 0:LOW 1:HIGH */ 634 /* tshut polarity 0:LOW 1:HIGH */ 662 rockchip,hw-tshut-polarity = <1>; 635 rockchip,hw-tshut-polarity = <1>; 663 status = "okay"; 636 status = "okay"; 664 }; 637 }; 665 638 666 &u2phy0 { 639 &u2phy0 { 667 status = "okay"; 640 status = "okay"; 668 }; 641 }; 669 642 670 &u2phy0_host { 643 &u2phy0_host { 671 status = "okay"; 644 status = "okay"; 672 }; 645 }; 673 646 674 &u2phy0_otg { 647 &u2phy0_otg { 675 status = "okay"; 648 status = "okay"; 676 }; 649 }; 677 650 678 &u2phy1 { 651 &u2phy1 { 679 status = "okay"; 652 status = "okay"; 680 }; 653 }; 681 654 682 &u2phy1_host { 655 &u2phy1_host { 683 status = "okay"; 656 status = "okay"; 684 }; 657 }; 685 658 686 &u2phy1_otg { 659 &u2phy1_otg { 687 status = "okay"; 660 status = "okay"; 688 }; 661 }; 689 662 690 &uart0 { 663 &uart0 { 691 pinctrl-names = "default"; 664 pinctrl-names = "default"; 692 pinctrl-0 = <&uart0_xfer &uart0_rts &u 665 pinctrl-0 = <&uart0_xfer &uart0_rts &uart0_cts>; 693 status = "okay"; 666 status = "okay"; 694 667 695 bluetooth { 668 bluetooth { 696 compatible = "brcm,bcm43438-bt 669 compatible = "brcm,bcm43438-bt"; 697 clocks = <&rk808 1>; 670 clocks = <&rk808 1>; 698 clock-names = "lpo"; 671 clock-names = "lpo"; 699 device-wakeup-gpios = <&gpio2 672 device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>; 700 host-wakeup-gpios = <&gpio0 RK 673 host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; 701 shutdown-gpios = <&gpio0 RK_PB 674 shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>; 702 max-speed = <4000000>; 675 max-speed = <4000000>; 703 pinctrl-names = "default"; 676 pinctrl-names = "default"; 704 pinctrl-0 = <&bt_reg_on_h &bt_ 677 pinctrl-0 = <&bt_reg_on_h &bt_host_wake_l &bt_wake_l>; 705 vbat-supply = <&vcc3v3_sys>; 678 vbat-supply = <&vcc3v3_sys>; 706 vddio-supply = <&vcc_1v8>; 679 vddio-supply = <&vcc_1v8>; 707 }; 680 }; 708 }; 681 }; 709 682 710 &uart2 { 683 &uart2 { 711 status = "okay"; 684 status = "okay"; 712 }; 685 }; 713 686 714 &usbdrd3_0 { 687 &usbdrd3_0 { 715 status = "okay"; 688 status = "okay"; 716 }; 689 }; 717 690 718 &usbdrd3_1 { 691 &usbdrd3_1 { 719 status = "okay"; 692 status = "okay"; 720 }; 693 }; 721 694 722 &usbdrd_dwc3_0 { 695 &usbdrd_dwc3_0 { 723 status = "okay"; 696 status = "okay"; 724 }; 697 }; 725 698 726 &usbdrd_dwc3_1 { 699 &usbdrd_dwc3_1 { 727 dr_mode = "host"; 700 dr_mode = "host"; 728 status = "okay"; 701 status = "okay"; 729 }; 702 }; 730 703 731 &usb_host0_ehci { 704 &usb_host0_ehci { 732 status = "okay"; 705 status = "okay"; 733 }; 706 }; 734 707 735 &usb_host0_ohci { 708 &usb_host0_ohci { 736 status = "okay"; 709 status = "okay"; 737 }; 710 }; 738 711 739 &usb_host1_ehci { 712 &usb_host1_ehci { 740 status = "okay"; 713 status = "okay"; 741 }; 714 }; 742 715 743 &usb_host1_ohci { 716 &usb_host1_ohci { 744 status = "okay"; 717 status = "okay"; 745 }; 718 }; 746 719 747 &vopb { 720 &vopb { 748 status = "okay"; 721 status = "okay"; 749 }; 722 }; 750 723 751 &vopb_mmu { 724 &vopb_mmu { 752 status = "okay"; 725 status = "okay"; 753 }; 726 }; 754 727 755 &vopl { 728 &vopl { 756 status = "okay"; 729 status = "okay"; 757 }; 730 }; 758 731 759 &vopl_mmu { 732 &vopl_mmu { 760 status = "okay"; 733 status = "okay"; 761 }; 734 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.