1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 /* 2 /* 3 * Copyright (c) 2019 Shenzhen Wesion Technolo 3 * Copyright (c) 2019 Shenzhen Wesion Technology Co., Ltd. 4 * (https://www.khadas.com) 4 * (https://www.khadas.com) 5 */ 5 */ 6 6 7 /dts-v1/; 7 /dts-v1/; 8 #include <dt-bindings/input/linux-event-codes. 8 #include <dt-bindings/input/linux-event-codes.h> 9 #include <dt-bindings/interrupt-controller/irq 9 #include <dt-bindings/interrupt-controller/irq.h> 10 #include <dt-bindings/pwm/pwm.h> 10 #include <dt-bindings/pwm/pwm.h> 11 #include "rk3399.dtsi" 11 #include "rk3399.dtsi" 12 12 13 / { 13 / { 14 aliases { 14 aliases { 15 mmc0 = &sdio0; 15 mmc0 = &sdio0; 16 mmc1 = &sdmmc; 16 mmc1 = &sdmmc; 17 mmc2 = &sdhci; 17 mmc2 = &sdhci; 18 }; 18 }; 19 19 20 chosen { 20 chosen { 21 stdout-path = "serial2:1500000 21 stdout-path = "serial2:1500000n8"; 22 }; 22 }; 23 23 24 clkin_gmac: external-gmac-clock { 24 clkin_gmac: external-gmac-clock { 25 compatible = "fixed-clock"; 25 compatible = "fixed-clock"; 26 clock-frequency = <125000000>; 26 clock-frequency = <125000000>; 27 clock-output-names = "clkin_gm 27 clock-output-names = "clkin_gmac"; 28 #clock-cells = <0>; 28 #clock-cells = <0>; 29 }; 29 }; 30 30 31 sdio_pwrseq: sdio-pwrseq { 31 sdio_pwrseq: sdio-pwrseq { 32 compatible = "mmc-pwrseq-simpl 32 compatible = "mmc-pwrseq-simple"; 33 clocks = <&rk808 1>; 33 clocks = <&rk808 1>; 34 clock-names = "ext_clock"; 34 clock-names = "ext_clock"; 35 pinctrl-names = "default"; 35 pinctrl-names = "default"; 36 pinctrl-0 = <&wifi_enable_h>; 36 pinctrl-0 = <&wifi_enable_h>; 37 37 38 /* 38 /* 39 * On the module itself this i 39 * On the module itself this is one of these (depending 40 * on the actual card populate 40 * on the actual card populated): 41 * - SDIO_RESET_L_WL_REG_ON 41 * - SDIO_RESET_L_WL_REG_ON 42 * - PDN (power down when low) 42 * - PDN (power down when low) 43 */ 43 */ 44 reset-gpios = <&gpio2 RK_PD4 G 44 reset-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_LOW>; 45 }; 45 }; 46 46 47 /* switched by pmic_sleep */ 47 /* switched by pmic_sleep */ 48 vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 { 48 vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 { 49 compatible = "regulator-fixed" 49 compatible = "regulator-fixed"; 50 regulator-name = "vcc1v8_s3"; 50 regulator-name = "vcc1v8_s3"; 51 regulator-always-on; 51 regulator-always-on; 52 regulator-boot-on; 52 regulator-boot-on; 53 regulator-min-microvolt = <180 53 regulator-min-microvolt = <1800000>; 54 regulator-max-microvolt = <180 54 regulator-max-microvolt = <1800000>; 55 vin-supply = <&vcc_1v8>; 55 vin-supply = <&vcc_1v8>; 56 }; 56 }; 57 57 58 vcc3v3_pcie: vcc3v3-pcie-regulator { 58 vcc3v3_pcie: vcc3v3-pcie-regulator { 59 compatible = "regulator-fixed" 59 compatible = "regulator-fixed"; 60 regulator-name = "vcc3v3_pcie" 60 regulator-name = "vcc3v3_pcie"; 61 regulator-always-on; 61 regulator-always-on; 62 regulator-boot-on; 62 regulator-boot-on; 63 regulator-min-microvolt = <330 63 regulator-min-microvolt = <3300000>; 64 regulator-max-microvolt = <330 64 regulator-max-microvolt = <3300000>; 65 vin-supply = <&vsys_3v3>; 65 vin-supply = <&vsys_3v3>; 66 }; 66 }; 67 67 68 /* Actually 3 regulators (host0, 1, 2) 68 /* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */ 69 vcc5v0_host: vcc5v0-host-regulator { 69 vcc5v0_host: vcc5v0-host-regulator { 70 compatible = "regulator-fixed" 70 compatible = "regulator-fixed"; 71 enable-active-high; 71 enable-active-high; 72 gpio = <&gpio4 RK_PD1 GPIO_ACT 72 gpio = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>; 73 pinctrl-names = "default"; 73 pinctrl-names = "default"; 74 pinctrl-0 = <&vcc5v0_host_en>; 74 pinctrl-0 = <&vcc5v0_host_en>; 75 regulator-name = "vcc5v0_host" 75 regulator-name = "vcc5v0_host"; 76 regulator-always-on; 76 regulator-always-on; 77 vin-supply = <&vsys_5v0>; 77 vin-supply = <&vsys_5v0>; 78 }; 78 }; 79 79 80 vdd_log: vdd-log { 80 vdd_log: vdd-log { 81 compatible = "pwm-regulator"; 81 compatible = "pwm-regulator"; 82 pwms = <&pwm2 0 25000 1>; 82 pwms = <&pwm2 0 25000 1>; 83 pwm-supply = <&vsys_3v3>; 83 pwm-supply = <&vsys_3v3>; 84 regulator-name = "vdd_log"; 84 regulator-name = "vdd_log"; 85 regulator-always-on; 85 regulator-always-on; 86 regulator-boot-on; 86 regulator-boot-on; 87 regulator-min-microvolt = <800 87 regulator-min-microvolt = <800000>; 88 regulator-max-microvolt = <140 88 regulator-max-microvolt = <1400000>; 89 }; 89 }; 90 90 91 vsys: vsys { 91 vsys: vsys { 92 compatible = "regulator-fixed" 92 compatible = "regulator-fixed"; 93 regulator-name = "vsys"; 93 regulator-name = "vsys"; 94 regulator-always-on; 94 regulator-always-on; 95 regulator-boot-on; 95 regulator-boot-on; 96 }; 96 }; 97 97 98 vsys_3v3: vsys-3v3 { 98 vsys_3v3: vsys-3v3 { 99 compatible = "regulator-fixed" 99 compatible = "regulator-fixed"; 100 regulator-name = "vsys_3v3"; 100 regulator-name = "vsys_3v3"; 101 regulator-always-on; 101 regulator-always-on; 102 regulator-boot-on; 102 regulator-boot-on; 103 regulator-min-microvolt = <330 103 regulator-min-microvolt = <3300000>; 104 regulator-max-microvolt = <330 104 regulator-max-microvolt = <3300000>; 105 vin-supply = <&vsys>; 105 vin-supply = <&vsys>; 106 }; 106 }; 107 107 108 vsys_5v0: vsys-5v0 { 108 vsys_5v0: vsys-5v0 { 109 compatible = "regulator-fixed" 109 compatible = "regulator-fixed"; 110 regulator-name = "vsys_5v0"; 110 regulator-name = "vsys_5v0"; 111 regulator-always-on; 111 regulator-always-on; 112 regulator-boot-on; 112 regulator-boot-on; 113 regulator-min-microvolt = <500 113 regulator-min-microvolt = <5000000>; 114 regulator-max-microvolt = <500 114 regulator-max-microvolt = <5000000>; 115 vin-supply = <&vsys>; 115 vin-supply = <&vsys>; 116 }; 116 }; 117 117 118 adc-keys { 118 adc-keys { 119 compatible = "adc-keys"; 119 compatible = "adc-keys"; 120 io-channels = <&saradc 1>; 120 io-channels = <&saradc 1>; 121 io-channel-names = "buttons"; 121 io-channel-names = "buttons"; 122 keyup-threshold-microvolt = <1 122 keyup-threshold-microvolt = <1800000>; 123 poll-interval = <100>; 123 poll-interval = <100>; 124 124 125 button-recovery { 125 button-recovery { 126 label = "Recovery"; 126 label = "Recovery"; 127 linux,code = <KEY_VEND 127 linux,code = <KEY_VENDOR>; 128 press-threshold-microv 128 press-threshold-microvolt = <18000>; 129 }; 129 }; 130 }; 130 }; 131 131 132 gpio-keys { 132 gpio-keys { 133 compatible = "gpio-keys"; 133 compatible = "gpio-keys"; 134 autorepeat; 134 autorepeat; 135 pinctrl-names = "default"; 135 pinctrl-names = "default"; 136 pinctrl-0 = <&pwrbtn>; 136 pinctrl-0 = <&pwrbtn>; 137 137 138 key-power { 138 key-power { 139 debounce-interval = <1 139 debounce-interval = <100>; 140 gpios = <&gpio0 RK_PA5 140 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; 141 label = "GPIO Key Powe 141 label = "GPIO Key Power"; 142 linux,code = <KEY_POWE 142 linux,code = <KEY_POWER>; 143 wakeup-source; 143 wakeup-source; 144 }; 144 }; 145 }; 145 }; 146 146 147 ir-receiver { 147 ir-receiver { 148 compatible = "gpio-ir-receiver 148 compatible = "gpio-ir-receiver"; 149 gpios = <&gpio1 RK_PB6 GPIO_AC 149 gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>; 150 linux,rc-map-name = "rc-khadas 150 linux,rc-map-name = "rc-khadas"; 151 pinctrl-names = "default"; 151 pinctrl-names = "default"; 152 pinctrl-0 = <&ir_rx>; 152 pinctrl-0 = <&ir_rx>; 153 }; 153 }; 154 154 155 leds { 155 leds { 156 compatible = "gpio-leds"; 156 compatible = "gpio-leds"; 157 pinctrl-names = "default"; 157 pinctrl-names = "default"; 158 pinctrl-0 = <&sys_led_pin>, <& 158 pinctrl-0 = <&sys_led_pin>, <&user_led_pin>; 159 159 160 sys_led: led-0 { 160 sys_led: led-0 { 161 label = "sys_led"; 161 label = "sys_led"; 162 linux,default-trigger 162 linux,default-trigger = "heartbeat"; 163 gpios = <&gpio0 RK_PA6 163 gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; 164 }; 164 }; 165 165 166 user_led: led-1 { 166 user_led: led-1 { 167 label = "user_led"; 167 label = "user_led"; 168 default-state = "off"; 168 default-state = "off"; 169 gpios = <&gpio4 RK_PD0 169 gpios = <&gpio4 RK_PD0 GPIO_ACTIVE_HIGH>; 170 }; 170 }; 171 }; 171 }; 172 172 173 fan: pwm-fan { 173 fan: pwm-fan { 174 compatible = "pwm-fan"; 174 compatible = "pwm-fan"; 175 cooling-levels = <0 150 200 25 175 cooling-levels = <0 150 200 255>; 176 #cooling-cells = <2>; 176 #cooling-cells = <2>; 177 fan-supply = <&vsys_5v0>; 177 fan-supply = <&vsys_5v0>; 178 pwms = <&pwm0 0 40000 0>; 178 pwms = <&pwm0 0 40000 0>; 179 }; 179 }; 180 }; 180 }; 181 181 182 &cpu_l0 { 182 &cpu_l0 { 183 cpu-supply = <&vdd_cpu_l>; 183 cpu-supply = <&vdd_cpu_l>; 184 }; 184 }; 185 185 186 &cpu_l1 { 186 &cpu_l1 { 187 cpu-supply = <&vdd_cpu_l>; 187 cpu-supply = <&vdd_cpu_l>; 188 }; 188 }; 189 189 190 &cpu_l2 { 190 &cpu_l2 { 191 cpu-supply = <&vdd_cpu_l>; 191 cpu-supply = <&vdd_cpu_l>; 192 }; 192 }; 193 193 194 &cpu_l3 { 194 &cpu_l3 { 195 cpu-supply = <&vdd_cpu_l>; 195 cpu-supply = <&vdd_cpu_l>; 196 }; 196 }; 197 197 198 &cpu_b0 { 198 &cpu_b0 { 199 cpu-supply = <&vdd_cpu_b>; 199 cpu-supply = <&vdd_cpu_b>; 200 }; 200 }; 201 201 202 &cpu_b1 { 202 &cpu_b1 { 203 cpu-supply = <&vdd_cpu_b>; 203 cpu-supply = <&vdd_cpu_b>; 204 }; 204 }; 205 205 206 &cpu_thermal { 206 &cpu_thermal { 207 trips { 207 trips { 208 cpu_warm: cpu_warm { 208 cpu_warm: cpu_warm { 209 temperature = <55000>; 209 temperature = <55000>; 210 hysteresis = <2000>; 210 hysteresis = <2000>; 211 type = "active"; 211 type = "active"; 212 }; 212 }; 213 213 214 cpu_hot: cpu_hot { 214 cpu_hot: cpu_hot { 215 temperature = <65000>; 215 temperature = <65000>; 216 hysteresis = <2000>; 216 hysteresis = <2000>; 217 type = "active"; 217 type = "active"; 218 }; 218 }; 219 }; 219 }; 220 220 221 cooling-maps { 221 cooling-maps { 222 map2 { 222 map2 { 223 trip = <&cpu_warm>; 223 trip = <&cpu_warm>; 224 cooling-device = <&fan 224 cooling-device = <&fan THERMAL_NO_LIMIT 1>; 225 }; 225 }; 226 226 227 map3 { 227 map3 { 228 trip = <&cpu_hot>; 228 trip = <&cpu_hot>; 229 cooling-device = <&fan 229 cooling-device = <&fan 2 THERMAL_NO_LIMIT>; 230 }; 230 }; 231 }; 231 }; 232 }; 232 }; 233 233 234 &emmc_phy { 234 &emmc_phy { 235 status = "okay"; 235 status = "okay"; 236 }; 236 }; 237 237 238 &gmac { 238 &gmac { 239 assigned-clocks = <&cru SCLK_RMII_SRC> 239 assigned-clocks = <&cru SCLK_RMII_SRC>; 240 assigned-clock-parents = <&clkin_gmac> 240 assigned-clock-parents = <&clkin_gmac>; 241 clock_in_out = "input"; 241 clock_in_out = "input"; 242 phy-supply = <&vcc_lan>; 242 phy-supply = <&vcc_lan>; 243 phy-mode = "rgmii"; 243 phy-mode = "rgmii"; 244 pinctrl-names = "default"; 244 pinctrl-names = "default"; 245 pinctrl-0 = <&rgmii_pins>; 245 pinctrl-0 = <&rgmii_pins>; 246 snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ 246 snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; 247 snps,reset-active-low; 247 snps,reset-active-low; 248 snps,reset-delays-us = <0 10000 50000> 248 snps,reset-delays-us = <0 10000 50000>; 249 tx_delay = <0x28>; 249 tx_delay = <0x28>; 250 rx_delay = <0x11>; 250 rx_delay = <0x11>; 251 }; 251 }; 252 252 253 &gpu { 253 &gpu { 254 mali-supply = <&vdd_gpu>; 254 mali-supply = <&vdd_gpu>; 255 status = "okay"; 255 status = "okay"; 256 }; 256 }; 257 257 258 &gpu_thermal { 258 &gpu_thermal { 259 trips { 259 trips { 260 gpu_warm: gpu_warm { 260 gpu_warm: gpu_warm { 261 temperature = <55000>; 261 temperature = <55000>; 262 hysteresis = <2000>; 262 hysteresis = <2000>; 263 type = "active"; 263 type = "active"; 264 }; 264 }; 265 265 266 gpu_hot: gpu_hot { 266 gpu_hot: gpu_hot { 267 temperature = <65000>; 267 temperature = <65000>; 268 hysteresis = <2000>; 268 hysteresis = <2000>; 269 type = "active"; 269 type = "active"; 270 }; 270 }; 271 }; 271 }; 272 272 273 cooling-maps { 273 cooling-maps { 274 map1 { 274 map1 { 275 trip = <&gpu_warm>; 275 trip = <&gpu_warm>; 276 cooling-device = <&fan 276 cooling-device = <&fan THERMAL_NO_LIMIT 1>; 277 }; 277 }; 278 278 279 map2 { 279 map2 { 280 trip = <&gpu_hot>; 280 trip = <&gpu_hot>; 281 cooling-device = <&fan 281 cooling-device = <&fan 2 THERMAL_NO_LIMIT>; 282 }; 282 }; 283 }; 283 }; 284 }; 284 }; 285 285 286 &hdmi { 286 &hdmi { 287 ddc-i2c-bus = <&i2c3>; 287 ddc-i2c-bus = <&i2c3>; 288 pinctrl-names = "default"; 288 pinctrl-names = "default"; 289 pinctrl-0 = <&hdmi_cec>; 289 pinctrl-0 = <&hdmi_cec>; 290 status = "okay"; 290 status = "okay"; 291 }; 291 }; 292 292 293 &hdmi_sound { 293 &hdmi_sound { 294 status = "okay"; 294 status = "okay"; 295 }; 295 }; 296 296 297 &i2c3 { 297 &i2c3 { 298 i2c-scl-rising-time-ns = <450>; 298 i2c-scl-rising-time-ns = <450>; 299 i2c-scl-falling-time-ns = <15>; 299 i2c-scl-falling-time-ns = <15>; 300 status = "okay"; 300 status = "okay"; 301 }; 301 }; 302 302 303 &i2c4 { 303 &i2c4 { 304 clock-frequency = <400000>; 304 clock-frequency = <400000>; 305 i2c-scl-rising-time-ns = <168>; 305 i2c-scl-rising-time-ns = <168>; 306 i2c-scl-falling-time-ns = <4>; 306 i2c-scl-falling-time-ns = <4>; 307 status = "okay"; 307 status = "okay"; 308 308 309 rk808: pmic@1b { 309 rk808: pmic@1b { 310 compatible = "rockchip,rk808"; 310 compatible = "rockchip,rk808"; 311 reg = <0x1b>; 311 reg = <0x1b>; 312 interrupt-parent = <&gpio1>; 312 interrupt-parent = <&gpio1>; 313 interrupts = <RK_PC6 IRQ_TYPE_ 313 interrupts = <RK_PC6 IRQ_TYPE_LEVEL_LOW>; 314 #clock-cells = <1>; 314 #clock-cells = <1>; 315 clock-output-names = "xin32k", 315 clock-output-names = "xin32k", "rk808-clkout2"; 316 pinctrl-names = "default"; 316 pinctrl-names = "default"; 317 pinctrl-0 = <&pmic_int_l>; 317 pinctrl-0 = <&pmic_int_l>; 318 rockchip,system-power-controll 318 rockchip,system-power-controller; 319 wakeup-source; 319 wakeup-source; 320 320 321 vcc1-supply = <&vsys_3v3>; 321 vcc1-supply = <&vsys_3v3>; 322 vcc2-supply = <&vsys_3v3>; 322 vcc2-supply = <&vsys_3v3>; 323 vcc3-supply = <&vsys_3v3>; 323 vcc3-supply = <&vsys_3v3>; 324 vcc4-supply = <&vsys_3v3>; 324 vcc4-supply = <&vsys_3v3>; 325 vcc6-supply = <&vsys_3v3>; 325 vcc6-supply = <&vsys_3v3>; 326 vcc7-supply = <&vsys_3v3>; 326 vcc7-supply = <&vsys_3v3>; 327 vcc8-supply = <&vsys_3v3>; 327 vcc8-supply = <&vsys_3v3>; 328 vcc9-supply = <&vsys_3v3>; 328 vcc9-supply = <&vsys_3v3>; 329 vcc10-supply = <&vsys_3v3>; 329 vcc10-supply = <&vsys_3v3>; 330 vcc11-supply = <&vsys_3v3>; 330 vcc11-supply = <&vsys_3v3>; 331 vcc12-supply = <&vsys_3v3>; 331 vcc12-supply = <&vsys_3v3>; 332 vddio-supply = <&vcc_1v8>; 332 vddio-supply = <&vcc_1v8>; 333 333 334 regulators { 334 regulators { 335 vdd_center: DCDC_REG1 335 vdd_center: DCDC_REG1 { 336 regulator-name 336 regulator-name = "vdd_center"; 337 regulator-alwa 337 regulator-always-on; 338 regulator-boot 338 regulator-boot-on; 339 regulator-min- 339 regulator-min-microvolt = <750000>; 340 regulator-max- 340 regulator-max-microvolt = <1350000>; 341 regulator-ramp 341 regulator-ramp-delay = <6001>; 342 342 343 regulator-stat 343 regulator-state-mem { 344 regula 344 regulator-off-in-suspend; 345 }; 345 }; 346 }; 346 }; 347 347 348 vdd_cpu_l: DCDC_REG2 { 348 vdd_cpu_l: DCDC_REG2 { 349 regulator-name 349 regulator-name = "vdd_cpu_l"; 350 regulator-alwa 350 regulator-always-on; 351 regulator-boot 351 regulator-boot-on; 352 regulator-min- 352 regulator-min-microvolt = <750000>; 353 regulator-max- 353 regulator-max-microvolt = <1350000>; 354 regulator-ramp 354 regulator-ramp-delay = <6001>; 355 355 356 regulator-stat 356 regulator-state-mem { 357 regula 357 regulator-off-in-suspend; 358 }; 358 }; 359 }; 359 }; 360 360 361 vcc_ddr: DCDC_REG3 { 361 vcc_ddr: DCDC_REG3 { 362 regulator-name 362 regulator-name = "vcc_ddr"; 363 regulator-alwa 363 regulator-always-on; 364 regulator-boot 364 regulator-boot-on; 365 365 366 regulator-stat 366 regulator-state-mem { 367 regula 367 regulator-on-in-suspend; 368 }; 368 }; 369 }; 369 }; 370 370 371 vcc_1v8: DCDC_REG4 { 371 vcc_1v8: DCDC_REG4 { 372 regulator-name 372 regulator-name = "vcc_1v8"; 373 regulator-alwa 373 regulator-always-on; 374 regulator-boot 374 regulator-boot-on; 375 regulator-min- 375 regulator-min-microvolt = <1800000>; 376 regulator-max- 376 regulator-max-microvolt = <1800000>; 377 377 378 regulator-stat 378 regulator-state-mem { 379 regula 379 regulator-on-in-suspend; 380 regula 380 regulator-suspend-microvolt = <1800000>; 381 }; 381 }; 382 }; 382 }; 383 383 384 vcc1v8_apio2: LDO_REG1 384 vcc1v8_apio2: LDO_REG1 { 385 regulator-name 385 regulator-name = "vcc1v8_apio2"; 386 regulator-alwa 386 regulator-always-on; 387 regulator-boot 387 regulator-boot-on; 388 regulator-min- 388 regulator-min-microvolt = <1800000>; 389 regulator-max- 389 regulator-max-microvolt = <1800000>; 390 390 391 regulator-stat 391 regulator-state-mem { 392 regula 392 regulator-off-in-suspend; 393 }; 393 }; 394 }; 394 }; 395 395 396 vcc_vldo2: LDO_REG2 { 396 vcc_vldo2: LDO_REG2 { 397 regulator-name 397 regulator-name = "vcc_vldo2"; 398 regulator-alwa 398 regulator-always-on; 399 regulator-boot 399 regulator-boot-on; 400 regulator-min- 400 regulator-min-microvolt = <3000000>; 401 regulator-max- 401 regulator-max-microvolt = <3000000>; 402 402 403 regulator-stat 403 regulator-state-mem { 404 regula 404 regulator-off-in-suspend; 405 }; 405 }; 406 }; 406 }; 407 407 408 vcc1v8_pmupll: LDO_REG 408 vcc1v8_pmupll: LDO_REG3 { 409 regulator-name 409 regulator-name = "vcc1v8_pmupll"; 410 regulator-alwa 410 regulator-always-on; 411 regulator-boot 411 regulator-boot-on; 412 regulator-min- 412 regulator-min-microvolt = <1800000>; 413 regulator-max- 413 regulator-max-microvolt = <1800000>; 414 414 415 regulator-stat 415 regulator-state-mem { 416 regula 416 regulator-on-in-suspend; 417 regula 417 regulator-suspend-microvolt = <1800000>; 418 }; 418 }; 419 }; 419 }; 420 420 421 vccio_sd: LDO_REG4 { 421 vccio_sd: LDO_REG4 { 422 regulator-name 422 regulator-name = "vccio_sd"; 423 regulator-alwa 423 regulator-always-on; 424 regulator-boot 424 regulator-boot-on; 425 regulator-min- 425 regulator-min-microvolt = <1800000>; 426 regulator-max- 426 regulator-max-microvolt = <3000000>; 427 427 428 regulator-stat 428 regulator-state-mem { 429 regula 429 regulator-on-in-suspend; 430 regula 430 regulator-suspend-microvolt = <3000000>; 431 }; 431 }; 432 }; 432 }; 433 433 434 vcc_vldo5: LDO_REG5 { 434 vcc_vldo5: LDO_REG5 { 435 regulator-name 435 regulator-name = "vcc_vldo5"; 436 regulator-alwa 436 regulator-always-on; 437 regulator-boot 437 regulator-boot-on; 438 regulator-min- 438 regulator-min-microvolt = <3000000>; 439 regulator-max- 439 regulator-max-microvolt = <3000000>; 440 440 441 regulator-stat 441 regulator-state-mem { 442 regula 442 regulator-off-in-suspend; 443 }; 443 }; 444 }; 444 }; 445 445 446 vcc_1v5: LDO_REG6 { 446 vcc_1v5: LDO_REG6 { 447 regulator-name 447 regulator-name = "vcc_1v5"; 448 regulator-alwa 448 regulator-always-on; 449 regulator-boot 449 regulator-boot-on; 450 regulator-min- 450 regulator-min-microvolt = <1500000>; 451 regulator-max- 451 regulator-max-microvolt = <1500000>; 452 452 453 regulator-stat 453 regulator-state-mem { 454 regula 454 regulator-on-in-suspend; 455 regula 455 regulator-suspend-microvolt = <1500000>; 456 }; 456 }; 457 }; 457 }; 458 458 459 vcc1v8_codec: LDO_REG7 459 vcc1v8_codec: LDO_REG7 { 460 regulator-name 460 regulator-name = "vcc1v8_codec"; 461 regulator-alwa 461 regulator-always-on; 462 regulator-boot 462 regulator-boot-on; 463 regulator-min- 463 regulator-min-microvolt = <1800000>; 464 regulator-max- 464 regulator-max-microvolt = <1800000>; 465 465 466 regulator-stat 466 regulator-state-mem { 467 regula 467 regulator-off-in-suspend; 468 }; 468 }; 469 }; 469 }; 470 470 471 vcc_3v0: LDO_REG8 { 471 vcc_3v0: LDO_REG8 { 472 regulator-name 472 regulator-name = "vcc_3v0"; 473 regulator-alwa 473 regulator-always-on; 474 regulator-boot 474 regulator-boot-on; 475 regulator-min- 475 regulator-min-microvolt = <3000000>; 476 regulator-max- 476 regulator-max-microvolt = <3000000>; 477 477 478 regulator-stat 478 regulator-state-mem { 479 regula 479 regulator-on-in-suspend; 480 regula 480 regulator-suspend-microvolt = <3000000>; 481 }; 481 }; 482 }; 482 }; 483 483 484 vcc3v3_s3: vcc_lan: SW 484 vcc3v3_s3: vcc_lan: SWITCH_REG1 { 485 regulator-name 485 regulator-name = "vcc3v3_s3"; 486 regulator-alwa 486 regulator-always-on; 487 regulator-boot 487 regulator-boot-on; 488 488 489 regulator-stat 489 regulator-state-mem { 490 regula 490 regulator-off-in-suspend; 491 }; 491 }; 492 }; 492 }; 493 493 494 vcc3v3_s0: SWITCH_REG2 494 vcc3v3_s0: SWITCH_REG2 { 495 regulator-name 495 regulator-name = "vcc3v3_s0"; 496 regulator-alwa 496 regulator-always-on; 497 regulator-boot 497 regulator-boot-on; 498 498 499 regulator-stat 499 regulator-state-mem { 500 regula 500 regulator-off-in-suspend; 501 }; 501 }; 502 }; 502 }; 503 }; 503 }; 504 }; 504 }; 505 505 506 vdd_cpu_b: regulator@40 { 506 vdd_cpu_b: regulator@40 { 507 compatible = "silergy,syr827"; 507 compatible = "silergy,syr827"; 508 reg = <0x40>; 508 reg = <0x40>; 509 fcs,suspend-voltage-selector = 509 fcs,suspend-voltage-selector = <1>; 510 pinctrl-names = "default"; 510 pinctrl-names = "default"; 511 pinctrl-0 = <&cpu_b_sleep>; 511 pinctrl-0 = <&cpu_b_sleep>; 512 regulator-name = "vdd_cpu_b"; 512 regulator-name = "vdd_cpu_b"; 513 regulator-min-microvolt = <712 513 regulator-min-microvolt = <712500>; 514 regulator-max-microvolt = <150 514 regulator-max-microvolt = <1500000>; 515 regulator-ramp-delay = <1000>; 515 regulator-ramp-delay = <1000>; 516 regulator-always-on; 516 regulator-always-on; 517 regulator-boot-on; 517 regulator-boot-on; 518 vin-supply = <&vsys_3v3>; 518 vin-supply = <&vsys_3v3>; 519 519 520 regulator-state-mem { 520 regulator-state-mem { 521 regulator-off-in-suspe 521 regulator-off-in-suspend; 522 }; 522 }; 523 }; 523 }; 524 524 525 vdd_gpu: regulator@41 { 525 vdd_gpu: regulator@41 { 526 compatible = "silergy,syr828"; 526 compatible = "silergy,syr828"; 527 reg = <0x41>; 527 reg = <0x41>; 528 fcs,suspend-voltage-selector = 528 fcs,suspend-voltage-selector = <1>; 529 pinctrl-names = "default"; 529 pinctrl-names = "default"; 530 pinctrl-0 = <&gpu_sleep>; 530 pinctrl-0 = <&gpu_sleep>; 531 regulator-name = "vdd_gpu"; 531 regulator-name = "vdd_gpu"; 532 regulator-min-microvolt = <712 532 regulator-min-microvolt = <712500>; 533 regulator-max-microvolt = <150 533 regulator-max-microvolt = <1500000>; 534 regulator-ramp-delay = <1000>; 534 regulator-ramp-delay = <1000>; 535 regulator-always-on; 535 regulator-always-on; 536 regulator-boot-on; 536 regulator-boot-on; 537 vin-supply = <&vsys_3v3>; 537 vin-supply = <&vsys_3v3>; 538 538 539 regulator-state-mem { 539 regulator-state-mem { 540 regulator-off-in-suspe 540 regulator-off-in-suspend; 541 }; 541 }; 542 }; 542 }; 543 }; 543 }; 544 544 545 &i2c8 { 545 &i2c8 { 546 clock-frequency = <400000>; 546 clock-frequency = <400000>; 547 i2c-scl-rising-time-ns = <160>; 547 i2c-scl-rising-time-ns = <160>; 548 i2c-scl-falling-time-ns = <30>; 548 i2c-scl-falling-time-ns = <30>; 549 status = "okay"; 549 status = "okay"; 550 }; 550 }; 551 551 552 &i2s0 { 552 &i2s0 { 553 rockchip,playback-channels = <8>; 553 rockchip,playback-channels = <8>; 554 rockchip,capture-channels = <8>; 554 rockchip,capture-channels = <8>; 555 status = "okay"; 555 status = "okay"; 556 }; 556 }; 557 557 558 &i2s1 { 558 &i2s1 { 559 rockchip,playback-channels = <2>; 559 rockchip,playback-channels = <2>; 560 rockchip,capture-channels = <2>; 560 rockchip,capture-channels = <2>; 561 status = "okay"; 561 status = "okay"; 562 }; 562 }; 563 563 564 &i2s2 { 564 &i2s2 { 565 status = "okay"; 565 status = "okay"; 566 }; 566 }; 567 567 568 &io_domains { 568 &io_domains { 569 bt656-supply = <&vcc1v8_apio2>; 569 bt656-supply = <&vcc1v8_apio2>; 570 audio-supply = <&vcc1v8_codec>; 570 audio-supply = <&vcc1v8_codec>; 571 sdmmc-supply = <&vccio_sd>; 571 sdmmc-supply = <&vccio_sd>; 572 gpio1830-supply = <&vcc_3v0>; 572 gpio1830-supply = <&vcc_3v0>; 573 status = "okay"; 573 status = "okay"; 574 }; 574 }; 575 575 576 &pmu_io_domains { 576 &pmu_io_domains { 577 pmu1830-supply = <&vcc_1v8>; 577 pmu1830-supply = <&vcc_1v8>; 578 status = "okay"; 578 status = "okay"; 579 }; 579 }; 580 580 581 &pinctrl { 581 &pinctrl { 582 bt { 582 bt { 583 bt_host_wake_l: bt-host-wake-l 583 bt_host_wake_l: bt-host-wake-l { 584 rockchip,pins = <0 RK_ 584 rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; 585 }; 585 }; 586 586 587 bt_reg_on_h: bt-reg-on-h { 587 bt_reg_on_h: bt-reg-on-h { 588 rockchip,pins = <2 RK_ 588 rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; 589 }; 589 }; 590 590 591 bt_wake_l: bt-wake-l { 591 bt_wake_l: bt-wake-l { 592 rockchip,pins = <2 RK_ 592 rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; 593 }; 593 }; 594 }; 594 }; 595 595 596 buttons { 596 buttons { 597 pwrbtn: pwrbtn { 597 pwrbtn: pwrbtn { 598 rockchip,pins = <0 RK_ 598 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 599 }; 599 }; 600 }; 600 }; 601 601 602 ir { 602 ir { 603 ir_rx: ir-rx { 603 ir_rx: ir-rx { 604 rockchip,pins = <1 RK_PB6 604 rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 605 }; 605 }; 606 }; 606 }; 607 607 608 leds { 608 leds { 609 sys_led_pin: sys-led-pin { 609 sys_led_pin: sys-led-pin { 610 rockchip,pins = <0 RK_ 610 rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 611 }; 611 }; 612 612 613 user_led_pin: user-led-pin { 613 user_led_pin: user-led-pin { 614 rockchip,pins = <4 RK_ 614 rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; 615 }; 615 }; 616 }; 616 }; 617 617 618 pmic { 618 pmic { 619 pmic_int_l: pmic-int-l { 619 pmic_int_l: pmic-int-l { 620 rockchip,pins = <1 RK_ 620 rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>; 621 }; 621 }; 622 622 623 cpu_b_sleep: cpu-b-sleep { 623 cpu_b_sleep: cpu-b-sleep { 624 rockchip,pins = <1 RK_ 624 rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>; 625 }; 625 }; 626 626 627 gpu_sleep: gpu-sleep { 627 gpu_sleep: gpu-sleep { 628 rockchip,pins = <0 RK_ 628 rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>; 629 }; 629 }; 630 }; 630 }; 631 631 632 sdio-pwrseq { 632 sdio-pwrseq { 633 wifi_enable_h: wifi-enable-h { 633 wifi_enable_h: wifi-enable-h { 634 rockchip,pins = <2 RK_ 634 rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; 635 }; 635 }; 636 }; 636 }; 637 637 638 usb2 { 638 usb2 { 639 vcc5v0_host_en: vcc5v0-host-en 639 vcc5v0_host_en: vcc5v0-host-en { 640 rockchip,pins = <4 RK_ 640 rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>; 641 }; 641 }; 642 }; 642 }; 643 643 644 wifi { 644 wifi { 645 wifi_host_wake_l: wifi-host-wa 645 wifi_host_wake_l: wifi-host-wake-l { 646 rockchip,pins = <0 RK_ 646 rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; 647 }; 647 }; 648 }; 648 }; 649 }; 649 }; 650 650 651 &pwm0 { 651 &pwm0 { 652 status = "okay"; 652 status = "okay"; 653 }; 653 }; 654 654 655 &pwm2 { 655 &pwm2 { 656 status = "okay"; 656 status = "okay"; 657 }; 657 }; 658 658 659 &saradc { 659 &saradc { 660 vref-supply = <&vcca1v8_s3>; 660 vref-supply = <&vcca1v8_s3>; 661 status = "okay"; 661 status = "okay"; 662 }; 662 }; 663 663 664 &sdio0 { 664 &sdio0 { 665 /* WiFi & BT combo module Ampak AP6356 665 /* WiFi & BT combo module Ampak AP6356S */ 666 bus-width = <4>; 666 bus-width = <4>; 667 cap-sdio-irq; 667 cap-sdio-irq; 668 cap-sd-highspeed; 668 cap-sd-highspeed; 669 keep-power-in-suspend; 669 keep-power-in-suspend; 670 mmc-pwrseq = <&sdio_pwrseq>; 670 mmc-pwrseq = <&sdio_pwrseq>; 671 non-removable; 671 non-removable; 672 pinctrl-names = "default"; 672 pinctrl-names = "default"; 673 pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &s 673 pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; 674 sd-uhs-sdr104; 674 sd-uhs-sdr104; 675 vqmmc-supply = <&vcc1v8_s3>; 675 vqmmc-supply = <&vcc1v8_s3>; 676 vmmc-supply = <&vccio_sd>; 676 vmmc-supply = <&vccio_sd>; 677 #address-cells = <1>; 677 #address-cells = <1>; 678 #size-cells = <0>; 678 #size-cells = <0>; 679 status = "okay"; 679 status = "okay"; 680 680 681 brcmf: wifi@1 { 681 brcmf: wifi@1 { 682 reg = <1>; 682 reg = <1>; 683 compatible = "brcm,bcm4329-fma 683 compatible = "brcm,bcm4329-fmac"; 684 interrupt-parent = <&gpio0>; 684 interrupt-parent = <&gpio0>; 685 interrupts = <RK_PA3 IRQ_TYPE_ 685 interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>; 686 interrupt-names = "host-wake"; 686 interrupt-names = "host-wake"; 687 brcm,drive-strength = <5>; 687 brcm,drive-strength = <5>; 688 pinctrl-names = "default"; 688 pinctrl-names = "default"; 689 pinctrl-0 = <&wifi_host_wake_l 689 pinctrl-0 = <&wifi_host_wake_l>; 690 }; 690 }; 691 }; 691 }; 692 692 693 &sdmmc { 693 &sdmmc { 694 bus-width = <4>; 694 bus-width = <4>; 695 cap-mmc-highspeed; 695 cap-mmc-highspeed; 696 cap-sd-highspeed; 696 cap-sd-highspeed; 697 cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_ 697 cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; 698 disable-wp; 698 disable-wp; 699 max-frequency = <150000000>; 699 max-frequency = <150000000>; 700 pinctrl-names = "default"; 700 pinctrl-names = "default"; 701 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sd 701 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>; 702 status = "okay"; 702 status = "okay"; 703 }; 703 }; 704 704 705 &sdhci { 705 &sdhci { 706 bus-width = <8>; 706 bus-width = <8>; 707 mmc-hs400-1_8v; 707 mmc-hs400-1_8v; 708 non-removable; 708 non-removable; 709 status = "okay"; 709 status = "okay"; 710 }; 710 }; 711 711 712 &spi1 { 712 &spi1 { 713 status = "okay"; 713 status = "okay"; 714 714 715 spiflash: flash@0 { 715 spiflash: flash@0 { 716 compatible = "winbond,w25q128f 716 compatible = "winbond,w25q128fw", "jedec,spi-nor"; 717 reg = <0>; 717 reg = <0>; 718 spi-max-frequency = <104000000 718 spi-max-frequency = <104000000>; 719 }; 719 }; 720 }; 720 }; 721 721 722 &tcphy0 { 722 &tcphy0 { 723 status = "okay"; 723 status = "okay"; 724 }; 724 }; 725 725 726 &tcphy1 { 726 &tcphy1 { 727 status = "okay"; 727 status = "okay"; 728 }; 728 }; 729 729 730 &tsadc { 730 &tsadc { 731 /* tshut mode 0:CRU 1:GPIO */ 731 /* tshut mode 0:CRU 1:GPIO */ 732 rockchip,hw-tshut-mode = <1>; 732 rockchip,hw-tshut-mode = <1>; 733 /* tshut polarity 0:LOW 1:HIGH */ 733 /* tshut polarity 0:LOW 1:HIGH */ 734 rockchip,hw-tshut-polarity = <1>; 734 rockchip,hw-tshut-polarity = <1>; 735 status = "okay"; 735 status = "okay"; 736 }; 736 }; 737 737 738 &u2phy0 { 738 &u2phy0 { 739 status = "okay"; 739 status = "okay"; 740 740 741 u2phy0_otg: otg-port { 741 u2phy0_otg: otg-port { 742 status = "okay"; 742 status = "okay"; 743 }; 743 }; 744 744 745 u2phy0_host: host-port { 745 u2phy0_host: host-port { 746 phy-supply = <&vcc5v0_host>; 746 phy-supply = <&vcc5v0_host>; 747 status = "okay"; 747 status = "okay"; 748 }; 748 }; 749 }; 749 }; 750 750 751 &u2phy1 { 751 &u2phy1 { 752 status = "okay"; 752 status = "okay"; 753 753 754 u2phy1_otg: otg-port { 754 u2phy1_otg: otg-port { 755 status = "okay"; 755 status = "okay"; 756 }; 756 }; 757 757 758 u2phy1_host: host-port { 758 u2phy1_host: host-port { 759 phy-supply = <&vcc5v0_host>; 759 phy-supply = <&vcc5v0_host>; 760 status = "okay"; 760 status = "okay"; 761 }; 761 }; 762 }; 762 }; 763 763 764 &uart0 { 764 &uart0 { 765 pinctrl-names = "default"; 765 pinctrl-names = "default"; 766 pinctrl-0 = <&uart0_xfer &uart0_rts &u 766 pinctrl-0 = <&uart0_xfer &uart0_rts &uart0_cts>; 767 status = "okay"; 767 status = "okay"; 768 768 769 bluetooth { 769 bluetooth { 770 compatible = "brcm,bcm43438-bt 770 compatible = "brcm,bcm43438-bt"; 771 clocks = <&rk808 1>; 771 clocks = <&rk808 1>; 772 clock-names = "lpo"; 772 clock-names = "lpo"; 773 device-wakeup-gpios = <&gpio2 773 device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>; 774 host-wakeup-gpios = <&gpio0 RK 774 host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; 775 shutdown-gpios = <&gpio2 RK_PD 775 shutdown-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>; 776 max-speed = <4000000>; 776 max-speed = <4000000>; 777 pinctrl-names = "default"; 777 pinctrl-names = "default"; 778 pinctrl-0 = <&bt_reg_on_h &bt_ 778 pinctrl-0 = <&bt_reg_on_h &bt_host_wake_l &bt_wake_l>; 779 vbat-supply = <&vsys_3v3>; 779 vbat-supply = <&vsys_3v3>; 780 vddio-supply = <&vcc_1v8>; 780 vddio-supply = <&vcc_1v8>; 781 }; 781 }; 782 }; 782 }; 783 783 784 &uart2 { 784 &uart2 { 785 status = "okay"; 785 status = "okay"; 786 }; 786 }; 787 787 788 &usb_host0_ehci { 788 &usb_host0_ehci { 789 status = "okay"; 789 status = "okay"; 790 }; 790 }; 791 791 792 &usb_host0_ohci { 792 &usb_host0_ohci { 793 status = "okay"; 793 status = "okay"; 794 }; 794 }; 795 795 796 &usb_host1_ehci { 796 &usb_host1_ehci { 797 status = "okay"; 797 status = "okay"; 798 }; 798 }; 799 799 800 &usb_host1_ohci { 800 &usb_host1_ohci { 801 status = "okay"; 801 status = "okay"; 802 }; 802 }; 803 803 804 &usbdrd3_0 { 804 &usbdrd3_0 { 805 status = "okay"; 805 status = "okay"; 806 }; 806 }; 807 807 808 &usbdrd_dwc3_0 { 808 &usbdrd_dwc3_0 { 809 status = "okay"; 809 status = "okay"; 810 dr_mode = "otg"; 810 dr_mode = "otg"; 811 }; 811 }; 812 812 813 &usbdrd3_1 { 813 &usbdrd3_1 { 814 status = "okay"; 814 status = "okay"; 815 }; 815 }; 816 816 817 &usbdrd_dwc3_1 { 817 &usbdrd_dwc3_1 { 818 status = "okay"; 818 status = "okay"; 819 dr_mode = "host"; 819 dr_mode = "host"; 820 }; 820 }; 821 821 822 &vopb { 822 &vopb { 823 status = "okay"; 823 status = "okay"; 824 }; 824 }; 825 825 826 &vopb_mmu { 826 &vopb_mmu { 827 status = "okay"; 827 status = "okay"; 828 }; 828 }; 829 829 830 &vopl { 830 &vopl { 831 status = "okay"; 831 status = "okay"; 832 }; 832 }; 833 833 834 &vopl_mmu { 834 &vopl_mmu { 835 status = "okay"; 835 status = "okay"; 836 }; 836 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.