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