1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 2 3 /dts-v1/; 3 /dts-v1/; 4 4 5 #include <dt-bindings/gpio/gpio.h> 5 #include <dt-bindings/gpio/gpio.h> 6 #include <dt-bindings/input/linux-event-codes. 6 #include <dt-bindings/input/linux-event-codes.h> 7 #include <dt-bindings/leds/common.h> 7 #include <dt-bindings/leds/common.h> 8 #include <dt-bindings/pinctrl/rockchip.h> 8 #include <dt-bindings/pinctrl/rockchip.h> 9 #include <dt-bindings/soc/rockchip,vop2.h> 9 #include <dt-bindings/soc/rockchip,vop2.h> 10 #include "rk3566.dtsi" 10 #include "rk3566.dtsi" 11 11 12 / { 12 / { 13 chassis-type = "handset"; << 14 << 15 chosen: chosen { 13 chosen: chosen { 16 stdout-path = "serial2:1500000 14 stdout-path = "serial2:1500000n8"; 17 }; 15 }; 18 16 >> 17 adc-joystick { >> 18 compatible = "adc-joystick"; >> 19 io-channels = <&adc_mux 0>, >> 20 <&adc_mux 1>, >> 21 <&adc_mux 2>, >> 22 <&adc_mux 3>; >> 23 pinctrl-0 = <&joy_mux_en>; >> 24 pinctrl-names = "default"; >> 25 #address-cells = <1>; >> 26 #size-cells = <0>; >> 27 >> 28 axis@0 { >> 29 reg = <0>; >> 30 abs-flat = <32>; >> 31 abs-fuzz = <32>; >> 32 abs-range = <1023 15>; >> 33 linux,code = <ABS_X>; >> 34 }; >> 35 >> 36 axis@1 { >> 37 reg = <1>; >> 38 abs-flat = <32>; >> 39 abs-fuzz = <32>; >> 40 abs-range = <15 1023>; >> 41 linux,code = <ABS_RX>; >> 42 }; >> 43 >> 44 axis@2 { >> 45 reg = <2>; >> 46 abs-flat = <32>; >> 47 abs-fuzz = <32>; >> 48 abs-range = <15 1023>; >> 49 linux,code = <ABS_Y>; >> 50 }; >> 51 >> 52 axis@3 { >> 53 reg = <3>; >> 54 abs-flat = <32>; >> 55 abs-fuzz = <32>; >> 56 abs-range = <1023 15>; >> 57 linux,code = <ABS_RY>; >> 58 }; >> 59 }; >> 60 19 adc_keys: adc-keys { 61 adc_keys: adc-keys { 20 compatible = "adc-keys"; 62 compatible = "adc-keys"; 21 io-channels = <&saradc 0>; 63 io-channels = <&saradc 0>; 22 io-channel-names = "buttons"; 64 io-channel-names = "buttons"; 23 keyup-threshold-microvolt = <1 65 keyup-threshold-microvolt = <1800000>; 24 poll-interval = <60>; 66 poll-interval = <60>; 25 67 26 /* 68 /* 27 * Button is mapped to F key i 69 * Button is mapped to F key in BSP kernel, but 28 * according to input guidelin 70 * according to input guidelines it should be mode. 29 */ 71 */ 30 button-mode { 72 button-mode { 31 label = "MODE"; 73 label = "MODE"; 32 linux,code = <BTN_MODE 74 linux,code = <BTN_MODE>; 33 press-threshold-microv 75 press-threshold-microvolt = <1750>; 34 }; 76 }; 35 }; 77 }; 36 78 >> 79 adc_mux: adc-mux { >> 80 compatible = "io-channel-mux"; >> 81 channels = "left_x", "right_x", "left_y", "right_y"; >> 82 #io-channel-cells = <1>; >> 83 io-channels = <&saradc 3>; >> 84 io-channel-names = "parent"; >> 85 mux-controls = <&gpio_mux>; >> 86 settle-time-us = <100>; >> 87 }; >> 88 37 gpio_keys_control: gpio-keys-control { 89 gpio_keys_control: gpio-keys-control { 38 compatible = "gpio-keys"; 90 compatible = "gpio-keys"; 39 pinctrl-0 = <&btn_pins_ctrl>; 91 pinctrl-0 = <&btn_pins_ctrl>; 40 pinctrl-names = "default"; 92 pinctrl-names = "default"; 41 93 42 button-b { 94 button-b { 43 gpios = <&gpio3 RK_PC3 95 gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_LOW>; 44 label = "SOUTH"; 96 label = "SOUTH"; 45 linux,code = <BTN_SOUT 97 linux,code = <BTN_SOUTH>; 46 }; 98 }; 47 99 48 button-down { 100 button-down { 49 gpios = <&gpio3 RK_PA4 101 gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_LOW>; 50 label = "DPAD-DOWN"; 102 label = "DPAD-DOWN"; 51 linux,code = <BTN_DPAD 103 linux,code = <BTN_DPAD_DOWN>; 52 }; 104 }; 53 105 54 button-l1 { 106 button-l1 { 55 gpios = <&gpio3 RK_PB1 107 gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>; 56 label = "TL"; 108 label = "TL"; 57 linux,code = <BTN_TL>; 109 linux,code = <BTN_TL>; 58 }; 110 }; 59 111 60 button-l2 { 112 button-l2 { 61 gpios = <&gpio3 RK_PB2 113 gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_LOW>; 62 label = "TL2"; 114 label = "TL2"; 63 linux,code = <BTN_TL2> 115 linux,code = <BTN_TL2>; 64 }; 116 }; 65 117 66 button-select { 118 button-select { 67 gpios = <&gpio3 RK_PB6 119 gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_LOW>; 68 label = "SELECT"; 120 label = "SELECT"; 69 linux,code = <BTN_SELE 121 linux,code = <BTN_SELECT>; 70 }; 122 }; 71 123 72 button-start { 124 button-start { 73 gpios = <&gpio3 RK_PB5 125 gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_LOW>; 74 label = "START"; 126 label = "START"; 75 linux,code = <BTN_STAR 127 linux,code = <BTN_START>; 76 }; 128 }; 77 129 >> 130 button-thumbl { >> 131 gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_LOW>; >> 132 label = "THUMBL"; >> 133 linux,code = <BTN_THUMBL>; >> 134 }; >> 135 >> 136 button-thumbr { >> 137 gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_LOW>; >> 138 label = "THUMBR"; >> 139 linux,code = <BTN_THUMBR>; >> 140 }; >> 141 78 button-up { 142 button-up { 79 gpios = <&gpio3 RK_PA3 143 gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_LOW>; 80 label = "DPAD-UP"; 144 label = "DPAD-UP"; 81 linux,code = <BTN_DPAD 145 linux,code = <BTN_DPAD_UP>; 82 }; 146 }; 83 147 84 button-x { 148 button-x { 85 gpios = <&gpio3 RK_PC0 149 gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>; 86 label = "NORTH"; 150 label = "NORTH"; 87 linux,code = <BTN_NORT 151 linux,code = <BTN_NORTH>; 88 }; 152 }; 89 }; 153 }; 90 154 91 gpio_keys_vol: gpio-keys-vol { 155 gpio_keys_vol: gpio-keys-vol { 92 compatible = "gpio-keys"; 156 compatible = "gpio-keys"; 93 autorepeat; 157 autorepeat; 94 pinctrl-0 = <&btn_pins_vol>; 158 pinctrl-0 = <&btn_pins_vol>; 95 pinctrl-names = "default"; 159 pinctrl-names = "default"; 96 160 97 button-vol-down { 161 button-vol-down { 98 gpios = <&gpio3 RK_PB0 162 gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>; 99 label = "VOLUMEDOWN"; 163 label = "VOLUMEDOWN"; 100 linux,code = <KEY_VOLU 164 linux,code = <KEY_VOLUMEDOWN>; 101 }; 165 }; 102 166 103 button-vol-up { 167 button-vol-up { 104 gpios = <&gpio3 RK_PA7 168 gpios = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>; 105 label = "VOLUMEUP"; 169 label = "VOLUMEUP"; 106 linux,code = <KEY_VOLU 170 linux,code = <KEY_VOLUMEUP>; 107 }; 171 }; 108 }; 172 }; 109 173 >> 174 gpio_mux: mux-controller { >> 175 compatible = "gpio-mux"; >> 176 mux-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>, >> 177 <&gpio0 RK_PB7 GPIO_ACTIVE_LOW>; >> 178 #mux-control-cells = <0>; >> 179 }; >> 180 110 hdmi-con { 181 hdmi-con { 111 compatible = "hdmi-connector"; 182 compatible = "hdmi-connector"; 112 ddc-i2c-bus = <&i2c5>; 183 ddc-i2c-bus = <&i2c5>; 113 type = "c"; 184 type = "c"; 114 185 115 port { 186 port { 116 hdmi_con_in: endpoint 187 hdmi_con_in: endpoint { 117 remote-endpoin 188 remote-endpoint = <&hdmi_out_con>; 118 }; 189 }; 119 }; 190 }; 120 }; 191 }; 121 192 122 leds: pwm-leds { !! 193 leds: gpio-leds { 123 compatible = "pwm-leds"; !! 194 compatible = "gpio-leds"; >> 195 pinctrl-0 = <&led_pins>; >> 196 pinctrl-names = "default"; 124 197 125 green_led: led-0 { 198 green_led: led-0 { 126 color = <LED_COLOR_ID_ 199 color = <LED_COLOR_ID_GREEN>; 127 default-state = "on"; 200 default-state = "on"; 128 function = LED_FUNCTIO 201 function = LED_FUNCTION_POWER; 129 max-brightness = <255> !! 202 gpios = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>; 130 pwms = <&pwm6 0 25000 << 131 }; 203 }; 132 204 133 amber_led: led-1 { 205 amber_led: led-1 { 134 color = <LED_COLOR_ID_ 206 color = <LED_COLOR_ID_AMBER>; 135 function = LED_FUNCTIO 207 function = LED_FUNCTION_CHARGING; 136 max-brightness = <255> !! 208 gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; 137 pwms = <&pwm7 0 25000 !! 209 retain-state-suspended; 138 }; 210 }; 139 211 140 red_led: led-2 { 212 red_led: led-2 { 141 color = <LED_COLOR_ID_ 213 color = <LED_COLOR_ID_RED>; 142 default-state = "off"; 214 default-state = "off"; 143 function = LED_FUNCTIO 215 function = LED_FUNCTION_STATUS; 144 max-brightness = <255> !! 216 gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>; 145 pwms = <&pwm0 0 25000 !! 217 }; >> 218 }; >> 219 >> 220 /* Channels reversed for both headphones and speakers. */ >> 221 sound { >> 222 compatible = "simple-audio-card"; >> 223 simple-audio-card,name = "anbernic_rk817"; >> 224 simple-audio-card,aux-devs = <&spk_amp>; >> 225 simple-audio-card,format = "i2s"; >> 226 simple-audio-card,hp-det-gpio = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>; >> 227 simple-audio-card,mclk-fs = <256>; >> 228 simple-audio-card,widgets = >> 229 "Microphone", "Mic Jack", >> 230 "Headphone", "Headphones", >> 231 "Speaker", "Internal Speakers"; >> 232 simple-audio-card,routing = >> 233 "MICL", "Mic Jack", >> 234 "Headphones", "HPOL", >> 235 "Headphones", "HPOR", >> 236 "Internal Speakers", "Speaker Amp OUTL", >> 237 "Internal Speakers", "Speaker Amp OUTR", >> 238 "Speaker Amp INL", "HPOL", >> 239 "Speaker Amp INR", "HPOR"; >> 240 simple-audio-card,pin-switches = "Internal Speakers"; >> 241 >> 242 simple-audio-card,codec { >> 243 sound-dai = <&rk817>; >> 244 }; >> 245 >> 246 simple-audio-card,cpu { >> 247 sound-dai = <&i2s1_8ch>; 146 }; 248 }; 147 }; 249 }; 148 250 149 sdio_pwrseq: sdio-pwrseq { 251 sdio_pwrseq: sdio-pwrseq { 150 compatible = "mmc-pwrseq-simpl 252 compatible = "mmc-pwrseq-simple"; 151 clocks = <&rk817 1>; 253 clocks = <&rk817 1>; 152 clock-names = "ext_clock"; 254 clock-names = "ext_clock"; 153 pinctrl-0 = <&wifi_enable_h>; 255 pinctrl-0 = <&wifi_enable_h>; 154 pinctrl-names = "default"; 256 pinctrl-names = "default"; 155 post-power-on-delay-ms = <200> 257 post-power-on-delay-ms = <200>; 156 reset-gpios = <&gpio4 RK_PA2 G 258 reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_LOW>; 157 }; 259 }; 158 260 >> 261 spk_amp: audio-amplifier { >> 262 compatible = "simple-audio-amplifier"; >> 263 enable-gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>; >> 264 pinctrl-0 = <&spk_amp_enable_h>; >> 265 pinctrl-names = "default"; >> 266 sound-name-prefix = "Speaker Amp"; >> 267 }; >> 268 159 vcc3v3_lcd0_n: regulator-vcc3v3-lcd0 { 269 vcc3v3_lcd0_n: regulator-vcc3v3-lcd0 { 160 compatible = "regulator-fixed" 270 compatible = "regulator-fixed"; 161 gpio = <&gpio0 RK_PC2 GPIO_ACT 271 gpio = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>; 162 enable-active-high; 272 enable-active-high; 163 pinctrl-0 = <&vcc_lcd_h>; 273 pinctrl-0 = <&vcc_lcd_h>; 164 pinctrl-names = "default"; 274 pinctrl-names = "default"; 165 regulator-boot-on; 275 regulator-boot-on; 166 regulator-min-microvolt = <330 276 regulator-min-microvolt = <3300000>; 167 regulator-max-microvolt = <330 277 regulator-max-microvolt = <3300000>; 168 regulator-name = "vcc3v3_lcd0_ 278 regulator-name = "vcc3v3_lcd0_n"; 169 vin-supply = <&vcc_3v3>; 279 vin-supply = <&vcc_3v3>; 170 regulator-state-mem { 280 regulator-state-mem { 171 regulator-off-in-suspe 281 regulator-off-in-suspend; 172 }; 282 }; 173 }; 283 }; 174 284 175 vcc_sys: regulator-vcc-sys { 285 vcc_sys: regulator-vcc-sys { 176 compatible = "regulator-fixed" 286 compatible = "regulator-fixed"; 177 regulator-always-on; 287 regulator-always-on; 178 regulator-boot-on; 288 regulator-boot-on; 179 regulator-min-microvolt = <380 289 regulator-min-microvolt = <3800000>; 180 regulator-max-microvolt = <380 290 regulator-max-microvolt = <3800000>; 181 regulator-name = "vcc_sys"; 291 regulator-name = "vcc_sys"; 182 }; 292 }; 183 293 184 vcc_wifi: regulator-vcc-wifi { 294 vcc_wifi: regulator-vcc-wifi { 185 compatible = "regulator-fixed" 295 compatible = "regulator-fixed"; 186 enable-active-high; 296 enable-active-high; 187 gpio = <&gpio0 RK_PA0 GPIO_ACT 297 gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>; 188 pinctrl-0 = <&vcc_wifi_h>; 298 pinctrl-0 = <&vcc_wifi_h>; 189 pinctrl-names = "default"; 299 pinctrl-names = "default"; 190 regulator-always-on; 300 regulator-always-on; 191 regulator-boot-on; 301 regulator-boot-on; 192 regulator-min-microvolt = <330 302 regulator-min-microvolt = <3300000>; 193 regulator-max-microvolt = <330 303 regulator-max-microvolt = <3300000>; 194 regulator-name = "vcc_wifi"; 304 regulator-name = "vcc_wifi"; 195 }; 305 }; 196 306 197 vibrator: pwm-vibrator { 307 vibrator: pwm-vibrator { 198 compatible = "pwm-vibrator"; 308 compatible = "pwm-vibrator"; 199 pwm-names = "enable"; 309 pwm-names = "enable"; 200 pwms = <&pwm5 0 1000000000 0>; 310 pwms = <&pwm5 0 1000000000 0>; 201 }; 311 }; 202 }; 312 }; 203 313 204 &combphy1 { 314 &combphy1 { 205 status = "okay"; 315 status = "okay"; 206 }; 316 }; 207 317 208 &cpu0 { 318 &cpu0 { 209 cpu-supply = <&vdd_cpu>; 319 cpu-supply = <&vdd_cpu>; 210 }; 320 }; 211 321 212 &cpu1 { 322 &cpu1 { 213 cpu-supply = <&vdd_cpu>; 323 cpu-supply = <&vdd_cpu>; 214 }; 324 }; 215 325 216 &cpu2 { 326 &cpu2 { 217 cpu-supply = <&vdd_cpu>; 327 cpu-supply = <&vdd_cpu>; 218 }; 328 }; 219 329 220 &cpu3 { 330 &cpu3 { 221 cpu-supply = <&vdd_cpu>; 331 cpu-supply = <&vdd_cpu>; 222 }; 332 }; 223 333 224 &gpu { 334 &gpu { 225 mali-supply = <&vdd_gpu>; 335 mali-supply = <&vdd_gpu>; 226 status = "okay"; 336 status = "okay"; 227 }; 337 }; 228 338 229 &hdmi { 339 &hdmi { 230 ddc-i2c-bus = <&i2c5>; 340 ddc-i2c-bus = <&i2c5>; 231 pinctrl-0 = <&hdmitxm0_cec>; 341 pinctrl-0 = <&hdmitxm0_cec>; 232 pinctrl-names = "default"; 342 pinctrl-names = "default"; 233 status = "okay"; 343 status = "okay"; 234 }; 344 }; 235 345 236 &hdmi_in { 346 &hdmi_in { 237 hdmi_in_vp0: endpoint { 347 hdmi_in_vp0: endpoint { 238 remote-endpoint = <&vp0_out_hd 348 remote-endpoint = <&vp0_out_hdmi>; 239 }; 349 }; 240 }; 350 }; 241 351 242 &hdmi_out { 352 &hdmi_out { 243 hdmi_out_con: endpoint { 353 hdmi_out_con: endpoint { 244 remote-endpoint = <&hdmi_con_i 354 remote-endpoint = <&hdmi_con_in>; 245 }; 355 }; 246 }; 356 }; 247 357 248 &hdmi_sound { 358 &hdmi_sound { 249 status = "okay"; 359 status = "okay"; 250 }; 360 }; 251 361 252 &i2c0 { 362 &i2c0 { 253 status = "okay"; 363 status = "okay"; 254 364 255 rk817: pmic@20 { 365 rk817: pmic@20 { 256 compatible = "rockchip,rk817"; 366 compatible = "rockchip,rk817"; 257 reg = <0x20>; 367 reg = <0x20>; 258 interrupt-parent = <&gpio0>; 368 interrupt-parent = <&gpio0>; 259 interrupts = <RK_PA3 IRQ_TYPE_ 369 interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>; 260 clock-output-names = "rk808-cl 370 clock-output-names = "rk808-clkout1", "rk808-clkout2"; 261 clock-names = "mclk"; 371 clock-names = "mclk"; 262 clocks = <&cru I2S1_MCLKOUT_TX 372 clocks = <&cru I2S1_MCLKOUT_TX>; 263 assigned-clocks = <&cru I2S1_M 373 assigned-clocks = <&cru I2S1_MCLKOUT_TX>; 264 assigned-clock-parents = <&cru 374 assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>; 265 #clock-cells = <1>; 375 #clock-cells = <1>; 266 #sound-dai-cells = <0>; 376 #sound-dai-cells = <0>; 267 pinctrl-names = "default"; 377 pinctrl-names = "default"; 268 pinctrl-0 = <&i2s1m0_mclk>, <& 378 pinctrl-0 = <&i2s1m0_mclk>, <&pmic_int_l>; 269 wakeup-source; 379 wakeup-source; 270 380 271 vcc1-supply = <&vcc_sys>; 381 vcc1-supply = <&vcc_sys>; 272 vcc2-supply = <&vcc_sys>; 382 vcc2-supply = <&vcc_sys>; 273 vcc3-supply = <&vcc_sys>; 383 vcc3-supply = <&vcc_sys>; 274 vcc4-supply = <&vcc_sys>; 384 vcc4-supply = <&vcc_sys>; 275 vcc5-supply = <&vcc_sys>; 385 vcc5-supply = <&vcc_sys>; 276 vcc6-supply = <&vcc_sys>; 386 vcc6-supply = <&vcc_sys>; 277 vcc7-supply = <&vcc_sys>; 387 vcc7-supply = <&vcc_sys>; 278 vcc8-supply = <&vcc_sys>; 388 vcc8-supply = <&vcc_sys>; 279 vcc9-supply = <&dcdc_boost>; 389 vcc9-supply = <&dcdc_boost>; 280 390 281 regulators { 391 regulators { 282 vdd_logic: DCDC_REG1 { 392 vdd_logic: DCDC_REG1 { 283 regulator-alwa 393 regulator-always-on; 284 regulator-boot 394 regulator-boot-on; 285 regulator-min- 395 regulator-min-microvolt = <500000>; 286 regulator-max- 396 regulator-max-microvolt = <1350000>; >> 397 regulator-init-microvolt = <900000>; 287 regulator-ramp 398 regulator-ramp-delay = <6001>; 288 regulator-init 399 regulator-initial-mode = <0x2>; 289 regulator-name 400 regulator-name = "vdd_logic"; 290 regulator-stat 401 regulator-state-mem { 291 regula 402 regulator-off-in-suspend; 292 regula 403 regulator-suspend-microvolt = <900000>; 293 }; 404 }; 294 }; 405 }; 295 406 296 vdd_gpu: DCDC_REG2 { 407 vdd_gpu: DCDC_REG2 { 297 regulator-alwa 408 regulator-always-on; 298 regulator-boot 409 regulator-boot-on; 299 regulator-min- 410 regulator-min-microvolt = <500000>; 300 regulator-max- 411 regulator-max-microvolt = <1350000>; >> 412 regulator-init-microvolt = <900000>; 301 regulator-ramp 413 regulator-ramp-delay = <6001>; 302 regulator-init 414 regulator-initial-mode = <0x2>; 303 regulator-name 415 regulator-name = "vdd_gpu"; 304 regulator-stat 416 regulator-state-mem { 305 regula 417 regulator-off-in-suspend; 306 }; 418 }; 307 }; 419 }; 308 420 309 vcc_ddr: DCDC_REG3 { 421 vcc_ddr: DCDC_REG3 { 310 regulator-alwa 422 regulator-always-on; 311 regulator-boot 423 regulator-boot-on; 312 regulator-init 424 regulator-initial-mode = <0x2>; 313 regulator-name 425 regulator-name = "vcc_ddr"; 314 regulator-stat 426 regulator-state-mem { 315 regula 427 regulator-on-in-suspend; 316 }; 428 }; 317 }; 429 }; 318 430 319 vcc_3v3: DCDC_REG4 { 431 vcc_3v3: DCDC_REG4 { 320 regulator-alwa 432 regulator-always-on; 321 regulator-boot 433 regulator-boot-on; 322 regulator-min- 434 regulator-min-microvolt = <3300000>; 323 regulator-max- 435 regulator-max-microvolt = <3300000>; 324 regulator-init 436 regulator-initial-mode = <0x2>; 325 regulator-name 437 regulator-name = "vcc_3v3"; 326 regulator-stat 438 regulator-state-mem { 327 regula 439 regulator-on-in-suspend; 328 regula 440 regulator-suspend-microvolt = <3300000>; 329 }; 441 }; 330 }; 442 }; 331 443 332 vcca1v8_pmu: LDO_REG1 444 vcca1v8_pmu: LDO_REG1 { 333 regulator-alwa 445 regulator-always-on; 334 regulator-boot 446 regulator-boot-on; 335 regulator-min- 447 regulator-min-microvolt = <1800000>; 336 regulator-max- 448 regulator-max-microvolt = <1800000>; 337 regulator-name 449 regulator-name = "vcca1v8_pmu"; 338 regulator-stat 450 regulator-state-mem { 339 regula 451 regulator-on-in-suspend; 340 regula 452 regulator-suspend-microvolt = <1800000>; 341 }; 453 }; 342 }; 454 }; 343 455 344 vdda_0v9: LDO_REG2 { 456 vdda_0v9: LDO_REG2 { 345 regulator-alwa 457 regulator-always-on; 346 regulator-boot 458 regulator-boot-on; 347 regulator-min- 459 regulator-min-microvolt = <900000>; 348 regulator-max- 460 regulator-max-microvolt = <900000>; 349 regulator-name 461 regulator-name = "vdda_0v9"; 350 regulator-stat 462 regulator-state-mem { 351 regula 463 regulator-off-in-suspend; 352 }; 464 }; 353 }; 465 }; 354 466 355 vdda0v9_pmu: LDO_REG3 467 vdda0v9_pmu: LDO_REG3 { 356 regulator-alwa 468 regulator-always-on; 357 regulator-boot 469 regulator-boot-on; 358 regulator-min- 470 regulator-min-microvolt = <900000>; 359 regulator-max- 471 regulator-max-microvolt = <900000>; 360 regulator-name 472 regulator-name = "vdda0v9_pmu"; 361 regulator-stat 473 regulator-state-mem { 362 regula 474 regulator-on-in-suspend; 363 regula 475 regulator-suspend-microvolt = <900000>; 364 }; 476 }; 365 }; 477 }; 366 478 367 vccio_acodec: LDO_REG4 479 vccio_acodec: LDO_REG4 { 368 regulator-alwa 480 regulator-always-on; 369 regulator-boot 481 regulator-boot-on; 370 regulator-min- 482 regulator-min-microvolt = <3300000>; 371 regulator-max- 483 regulator-max-microvolt = <3300000>; 372 regulator-name 484 regulator-name = "vccio_acodec"; 373 regulator-stat 485 regulator-state-mem { 374 regula 486 regulator-off-in-suspend; 375 }; 487 }; 376 }; 488 }; 377 489 378 vccio_sd: LDO_REG5 { 490 vccio_sd: LDO_REG5 { 379 regulator-alwa 491 regulator-always-on; 380 regulator-boot 492 regulator-boot-on; 381 regulator-min- 493 regulator-min-microvolt = <1800000>; 382 regulator-max- 494 regulator-max-microvolt = <3300000>; 383 regulator-name 495 regulator-name = "vccio_sd"; 384 regulator-stat 496 regulator-state-mem { 385 regula 497 regulator-off-in-suspend; 386 }; 498 }; 387 }; 499 }; 388 500 389 vcc3v3_pmu: LDO_REG6 { 501 vcc3v3_pmu: LDO_REG6 { 390 regulator-alwa 502 regulator-always-on; 391 regulator-boot 503 regulator-boot-on; 392 regulator-min- 504 regulator-min-microvolt = <3300000>; 393 regulator-max- 505 regulator-max-microvolt = <3300000>; 394 regulator-name 506 regulator-name = "vcc3v3_pmu"; 395 regulator-stat 507 regulator-state-mem { 396 regula 508 regulator-on-in-suspend; 397 regula 509 regulator-suspend-microvolt = <3300000>; 398 }; 510 }; 399 }; 511 }; 400 512 401 vcc_1v8: LDO_REG7 { 513 vcc_1v8: LDO_REG7 { 402 regulator-alwa 514 regulator-always-on; 403 regulator-boot 515 regulator-boot-on; 404 regulator-min- 516 regulator-min-microvolt = <1800000>; 405 regulator-max- 517 regulator-max-microvolt = <1800000>; 406 regulator-name 518 regulator-name = "vcc_1v8"; 407 regulator-stat 519 regulator-state-mem { 408 regula 520 regulator-off-in-suspend; 409 }; 521 }; 410 }; 522 }; 411 523 412 vcc1v8_dvp: LDO_REG8 { 524 vcc1v8_dvp: LDO_REG8 { 413 regulator-alwa 525 regulator-always-on; 414 regulator-boot 526 regulator-boot-on; 415 regulator-min- 527 regulator-min-microvolt = <1800000>; 416 regulator-max- 528 regulator-max-microvolt = <3300000>; 417 regulator-name 529 regulator-name = "vcc1v8_dvp"; 418 regulator-stat 530 regulator-state-mem { 419 regula 531 regulator-off-in-suspend; 420 }; 532 }; 421 }; 533 }; 422 534 423 vcc2v8_dvp: LDO_REG9 { 535 vcc2v8_dvp: LDO_REG9 { 424 regulator-alwa 536 regulator-always-on; 425 regulator-boot 537 regulator-boot-on; 426 regulator-min- 538 regulator-min-microvolt = <2800000>; 427 regulator-max- 539 regulator-max-microvolt = <2800000>; 428 regulator-name 540 regulator-name = "vcc2v8_dvp"; 429 regulator-stat 541 regulator-state-mem { 430 regula 542 regulator-off-in-suspend; 431 }; 543 }; 432 }; 544 }; 433 545 434 dcdc_boost: BOOST { 546 dcdc_boost: BOOST { 435 regulator-alwa 547 regulator-always-on; 436 regulator-boot 548 regulator-boot-on; 437 regulator-min- 549 regulator-min-microvolt = <4700000>; 438 regulator-max- 550 regulator-max-microvolt = <5400000>; 439 regulator-name 551 regulator-name = "boost"; 440 regulator-stat 552 regulator-state-mem { 441 regula 553 regulator-off-in-suspend; 442 }; 554 }; 443 }; 555 }; 444 556 445 otg_switch: OTG_SWITCH 557 otg_switch: OTG_SWITCH { 446 regulator-name 558 regulator-name = "otg_switch"; 447 regulator-stat 559 regulator-state-mem { 448 regula 560 regulator-off-in-suspend; 449 }; 561 }; 450 }; 562 }; 451 }; 563 }; 452 }; 564 }; 453 565 454 vdd_cpu: regulator@40 { 566 vdd_cpu: regulator@40 { 455 compatible = "fcs,fan53555"; 567 compatible = "fcs,fan53555"; 456 reg = <0x40>; 568 reg = <0x40>; 457 fcs,suspend-voltage-selector = 569 fcs,suspend-voltage-selector = <1>; 458 regulator-always-on; 570 regulator-always-on; 459 regulator-boot-on; 571 regulator-boot-on; 460 regulator-min-microvolt = <712 572 regulator-min-microvolt = <712500>; 461 regulator-max-microvolt = <139 573 regulator-max-microvolt = <1390000>; >> 574 regulator-init-microvolt = <900000>; 462 regulator-name = "vdd_cpu"; 575 regulator-name = "vdd_cpu"; 463 regulator-ramp-delay = <2300>; 576 regulator-ramp-delay = <2300>; 464 vin-supply = <&vcc_sys>; 577 vin-supply = <&vcc_sys>; 465 regulator-state-mem { 578 regulator-state-mem { 466 regulator-off-in-suspe 579 regulator-off-in-suspend; 467 }; 580 }; 468 }; 581 }; 469 }; 582 }; 470 583 471 &i2c1 { 584 &i2c1 { 472 /* Unknown/unused device at 0x3c */ 585 /* Unknown/unused device at 0x3c */ 473 status = "disabled"; 586 status = "disabled"; 474 }; 587 }; 475 588 476 &i2c5 { 589 &i2c5 { 477 pinctrl-0 = <&i2c5m1_xfer>; 590 pinctrl-0 = <&i2c5m1_xfer>; 478 pinctrl-names = "default"; 591 pinctrl-names = "default"; 479 status = "okay"; 592 status = "okay"; 480 }; 593 }; 481 594 482 &i2s0_8ch { 595 &i2s0_8ch { 483 status = "okay"; 596 status = "okay"; 484 }; 597 }; 485 598 486 &i2s1_8ch { 599 &i2s1_8ch { 487 pinctrl-0 = <&i2s1m0_sclktx 600 pinctrl-0 = <&i2s1m0_sclktx 488 &i2s1m0_lrcktx 601 &i2s1m0_lrcktx 489 &i2s1m0_sdi0 602 &i2s1m0_sdi0 490 &i2s1m0_sdo0>; 603 &i2s1m0_sdo0>; 491 pinctrl-names = "default"; 604 pinctrl-names = "default"; 492 rockchip,trcm-sync-tx-only; 605 rockchip,trcm-sync-tx-only; 493 status = "okay"; 606 status = "okay"; 494 }; 607 }; 495 608 496 &pinctrl { 609 &pinctrl { >> 610 audio-amplifier { >> 611 spk_amp_enable_h: spk-amp-enable-h { >> 612 rockchip,pins = >> 613 <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; >> 614 }; >> 615 }; >> 616 497 gpio-btns { 617 gpio-btns { 498 btn_pins_ctrl: btn-pins-ctrl { 618 btn_pins_ctrl: btn-pins-ctrl { 499 rockchip,pins = 619 rockchip,pins = 500 <3 RK_PA1 RK_F 620 <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>, 501 <3 RK_PA2 RK_F 621 <3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>, 502 <3 RK_PA3 RK_F 622 <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>, 503 <3 RK_PA4 RK_F 623 <3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>, 504 <3 RK_PA5 RK_F 624 <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>, 505 <3 RK_PA6 RK_F 625 <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>, 506 <3 RK_PB1 RK_F 626 <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>, 507 <3 RK_PB2 RK_F 627 <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>, 508 <3 RK_PB3 RK_F 628 <3 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>, 509 <3 RK_PB4 RK_F 629 <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>, 510 <3 RK_PB5 RK_F 630 <3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>, 511 <3 RK_PB6 RK_F 631 <3 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>, 512 <3 RK_PC0 RK_F 632 <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>, 513 <3 RK_PC1 RK_F 633 <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>, 514 <3 RK_PC2 RK_F 634 <3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>, 515 <3 RK_PC3 RK_F 635 <3 RK_PC3 RK_FUNC_GPIO &pcfg_pull_up>; 516 }; 636 }; 517 637 518 btn_pins_vol: btn-pins-vol { 638 btn_pins_vol: btn-pins-vol { 519 rockchip,pins = 639 rockchip,pins = 520 <3 RK_PA7 RK_FUNC_GPIO 640 <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>, 521 <3 RK_PB0 RK_FUNC_GPIO 641 <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>; 522 }; 642 }; 523 }; 643 }; 524 644 >> 645 gpio-led { >> 646 led_pins: led-pins { >> 647 rockchip,pins = >> 648 <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>, >> 649 <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>, >> 650 <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; >> 651 }; >> 652 }; >> 653 525 joy-mux { 654 joy-mux { 526 joy_mux_en: joy-mux-en { 655 joy_mux_en: joy-mux-en { 527 rockchip,pins = 656 rockchip,pins = 528 <0 RK_PB5 RK_F 657 <0 RK_PB5 RK_FUNC_GPIO &pcfg_output_low>; 529 }; 658 }; 530 }; 659 }; 531 660 532 pmic { 661 pmic { 533 pmic_int_l: pmic-int-l { 662 pmic_int_l: pmic-int-l { 534 rockchip,pins = 663 rockchip,pins = 535 <0 RK_PA3 RK_F 664 <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; 536 }; 665 }; 537 }; 666 }; 538 667 539 sdio-pwrseq { 668 sdio-pwrseq { 540 wifi_enable_h: wifi-enable-h { 669 wifi_enable_h: wifi-enable-h { 541 rockchip,pins = 670 rockchip,pins = 542 <4 RK_PA2 RK_F 671 <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 543 }; 672 }; 544 }; 673 }; 545 674 546 vcc3v3-lcd { 675 vcc3v3-lcd { 547 vcc_lcd_h: vcc-lcd-h { 676 vcc_lcd_h: vcc-lcd-h { 548 rockchip,pins = 677 rockchip,pins = 549 <0 RK_PC2 RK_F 678 <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; 550 }; 679 }; 551 }; 680 }; 552 681 553 vcc-wifi { 682 vcc-wifi { 554 vcc_wifi_h: vcc-wifi-h { 683 vcc_wifi_h: vcc-wifi-h { 555 rockchip,pins = 684 rockchip,pins = 556 <0 RK_PA0 RK_F 685 <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; 557 }; 686 }; 558 }; 687 }; 559 }; 688 }; 560 689 561 &pmu_io_domains { 690 &pmu_io_domains { 562 status = "okay"; 691 status = "okay"; 563 pmuio1-supply = <&vcc3v3_pmu>; 692 pmuio1-supply = <&vcc3v3_pmu>; 564 pmuio2-supply = <&vcc3v3_pmu>; 693 pmuio2-supply = <&vcc3v3_pmu>; 565 vccio1-supply = <&vccio_acodec>; 694 vccio1-supply = <&vccio_acodec>; 566 vccio3-supply = <&vccio_sd>; 695 vccio3-supply = <&vccio_sd>; 567 vccio4-supply = <&vcc_1v8>; 696 vccio4-supply = <&vcc_1v8>; 568 vccio5-supply = <&vcc_3v3>; 697 vccio5-supply = <&vcc_3v3>; 569 vccio6-supply = <&vcc1v8_dvp>; 698 vccio6-supply = <&vcc1v8_dvp>; 570 vccio7-supply = <&vcc_3v3>; 699 vccio7-supply = <&vcc_3v3>; 571 }; 700 }; 572 701 573 &pwm0 { << 574 pinctrl-0 = <&pwm0m1_pins>; << 575 pinctrl-names = "default"; << 576 status = "okay"; << 577 }; << 578 << 579 &pwm5 { 702 &pwm5 { 580 status = "okay"; 703 status = "okay"; 581 }; 704 }; 582 705 583 &pwm6 { << 584 status = "okay"; << 585 }; << 586 << 587 &pwm7 { << 588 status = "okay"; << 589 }; << 590 << 591 &saradc { 706 &saradc { 592 vref-supply = <&vcc_1v8>; 707 vref-supply = <&vcc_1v8>; 593 status = "okay"; 708 status = "okay"; 594 }; 709 }; 595 710 596 &sdmmc0 { 711 &sdmmc0 { 597 bus-width = <4>; 712 bus-width = <4>; 598 cap-sd-highspeed; 713 cap-sd-highspeed; 599 cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_ 714 cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; 600 disable-wp; 715 disable-wp; 601 pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk 716 pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; 602 pinctrl-names = "default"; 717 pinctrl-names = "default"; 603 sd-uhs-sdr104; 718 sd-uhs-sdr104; 604 vmmc-supply = <&vcc_3v3>; 719 vmmc-supply = <&vcc_3v3>; 605 vqmmc-supply = <&vccio_sd>; 720 vqmmc-supply = <&vccio_sd>; 606 status = "okay"; 721 status = "okay"; 607 }; 722 }; 608 723 609 &sdmmc1 { 724 &sdmmc1 { 610 bus-width = <4>; 725 bus-width = <4>; 611 cap-sd-highspeed; 726 cap-sd-highspeed; 612 cd-gpios = <&gpio2 RK_PB2 GPIO_ACTIVE_ 727 cd-gpios = <&gpio2 RK_PB2 GPIO_ACTIVE_LOW>; 613 disable-wp; 728 disable-wp; 614 pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd 729 pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk &sdmmc1_det>; 615 pinctrl-names = "default"; 730 pinctrl-names = "default"; 616 sd-uhs-sdr104; 731 sd-uhs-sdr104; 617 vmmc-supply = <&vcc_3v3>; 732 vmmc-supply = <&vcc_3v3>; 618 vqmmc-supply = <&vcc1v8_dvp>; 733 vqmmc-supply = <&vcc1v8_dvp>; 619 status = "okay"; 734 status = "okay"; 620 }; 735 }; 621 736 622 &sdmmc2 { 737 &sdmmc2 { 623 bus-width = <4>; 738 bus-width = <4>; 624 cap-sd-highspeed; 739 cap-sd-highspeed; 625 cap-sdio-irq; 740 cap-sdio-irq; 626 keep-power-in-suspend; 741 keep-power-in-suspend; 627 mmc-pwrseq = <&sdio_pwrseq>; 742 mmc-pwrseq = <&sdio_pwrseq>; 628 no-mmc; << 629 no-sd; << 630 non-removable; 743 non-removable; 631 pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_ 744 pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_cmd &sdmmc2m0_clk>; 632 pinctrl-names = "default"; 745 pinctrl-names = "default"; 633 sd-uhs-sdr50; << 634 vmmc-supply = <&vcc_wifi>; 746 vmmc-supply = <&vcc_wifi>; 635 vqmmc-supply = <&vcca1v8_pmu>; 747 vqmmc-supply = <&vcca1v8_pmu>; 636 status = "okay"; 748 status = "okay"; 637 }; 749 }; 638 750 639 &tsadc { 751 &tsadc { 640 rockchip,hw-tshut-mode = <1>; 752 rockchip,hw-tshut-mode = <1>; 641 rockchip,hw-tshut-polarity = <0>; 753 rockchip,hw-tshut-polarity = <0>; 642 status = "okay"; 754 status = "okay"; 643 }; 755 }; 644 756 645 &uart1 { 757 &uart1 { 646 pinctrl-0 = <&uart1m1_xfer &uart1m1_ct 758 pinctrl-0 = <&uart1m1_xfer &uart1m1_ctsn &uart1m1_rtsn>; 647 pinctrl-names = "default"; 759 pinctrl-names = "default"; 648 uart-has-rtscts; 760 uart-has-rtscts; 649 status = "okay"; 761 status = "okay"; 650 762 651 bluetooth { 763 bluetooth { 652 compatible = "realtek,rtl8821c !! 764 compatible = "realtek,rtl8821cs-bt"; 653 device-wake-gpios = <&gpio4 4 765 device-wake-gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>; 654 enable-gpios = <&gpio4 3 GPIO_ 766 enable-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>; 655 host-wake-gpios = <&gpio4 5 GP 767 host-wake-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; 656 }; 768 }; 657 }; 769 }; 658 770 659 &uart2 { 771 &uart2 { 660 status = "okay"; 772 status = "okay"; 661 }; 773 }; 662 774 663 /* 775 /* 664 * Lack the schematics to verify, but port wor 776 * Lack the schematics to verify, but port works as a peripheral 665 * (and not a host or OTG port). 777 * (and not a host or OTG port). 666 */ 778 */ 667 &usb_host0_xhci { 779 &usb_host0_xhci { 668 dr_mode = "peripheral"; 780 dr_mode = "peripheral"; 669 phys = <&usb2phy0_otg>; 781 phys = <&usb2phy0_otg>; 670 phy-names = "usb2-phy"; 782 phy-names = "usb2-phy"; 671 status = "okay"; 783 status = "okay"; 672 }; 784 }; 673 785 674 &usb_host1_ehci { 786 &usb_host1_ehci { 675 status = "okay"; 787 status = "okay"; 676 }; 788 }; 677 789 678 &usb_host1_ohci { 790 &usb_host1_ohci { 679 status = "okay"; 791 status = "okay"; 680 }; 792 }; 681 793 682 &usb_host1_xhci { 794 &usb_host1_xhci { 683 phy-names = "usb2-phy", "usb3-phy"; 795 phy-names = "usb2-phy", "usb3-phy"; 684 phys = <&usb2phy1_host>, <&combphy1 PH 796 phys = <&usb2phy1_host>, <&combphy1 PHY_TYPE_USB3>; 685 status = "okay"; 797 status = "okay"; 686 }; 798 }; 687 799 688 &usb2phy0 { 800 &usb2phy0 { 689 status = "okay"; 801 status = "okay"; 690 }; 802 }; 691 803 692 &usb2phy0_otg { 804 &usb2phy0_otg { 693 status = "okay"; 805 status = "okay"; 694 }; 806 }; 695 807 696 &usb2phy1 { 808 &usb2phy1 { 697 status = "okay"; 809 status = "okay"; 698 }; 810 }; 699 811 700 &usb2phy1_host { 812 &usb2phy1_host { 701 status = "okay"; 813 status = "okay"; 702 }; 814 }; 703 815 704 &vop { 816 &vop { 705 assigned-clocks = <&cru DCLK_VOP0>, <& 817 assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; 706 assigned-clock-parents = <&pmucru PLL_ 818 assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; 707 status = "okay"; 819 status = "okay"; 708 }; 820 }; 709 821 710 &vop_mmu { 822 &vop_mmu { 711 status = "okay"; 823 status = "okay"; 712 }; 824 }; 713 825 714 &vp0 { 826 &vp0 { 715 vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_E 827 vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 716 reg = <ROCKCHIP_VOP2_EP_HDMI0> 828 reg = <ROCKCHIP_VOP2_EP_HDMI0>; 717 remote-endpoint = <&hdmi_in_vp 829 remote-endpoint = <&hdmi_in_vp0>; 718 }; 830 }; 719 }; 831 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.