1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 /* 2 /* 3 * Copyright (c) 2024 Chris Morgan <macromorgan 3 * Copyright (c) 2024 Chris Morgan <macromorgan@hotmail.com> 4 */ 4 */ 5 5 6 /dts-v1/; 6 /dts-v1/; 7 #include <dt-bindings/gpio/gpio.h> 7 #include <dt-bindings/gpio/gpio.h> 8 #include <dt-bindings/input/input.h> 8 #include <dt-bindings/input/input.h> 9 #include <dt-bindings/leds/common.h> 9 #include <dt-bindings/leds/common.h> 10 #include <dt-bindings/pinctrl/rockchip.h> 10 #include <dt-bindings/pinctrl/rockchip.h> 11 #include "rk3326.dtsi" 11 #include "rk3326.dtsi" 12 12 13 / { 13 / { 14 model = "GameForce Chi"; 14 model = "GameForce Chi"; 15 compatible = "gameforce,chi", "rockchi 15 compatible = "gameforce,chi", "rockchip,rk3326"; 16 chassis-type = "handset"; 16 chassis-type = "handset"; 17 17 18 aliases { 18 aliases { 19 mmc0 = &sdmmc; 19 mmc0 = &sdmmc; 20 mmc1 = &sdio; 20 mmc1 = &sdio; 21 }; 21 }; 22 22 23 chosen { 23 chosen { 24 stdout-path = "serial2:115200n 24 stdout-path = "serial2:115200n8"; 25 }; 25 }; 26 26 27 adc_joystick: adc-joystick { 27 adc_joystick: adc-joystick { 28 compatible = "adc-joystick"; 28 compatible = "adc-joystick"; 29 io-channels = <&saradc 0>, 29 io-channels = <&saradc 0>, 30 <&saradc 1>; 30 <&saradc 1>; 31 poll-interval = <100>; 31 poll-interval = <100>; 32 #address-cells = <1>; 32 #address-cells = <1>; 33 #size-cells = <0>; 33 #size-cells = <0>; 34 34 35 axis@0 { 35 axis@0 { 36 reg = <0>; 36 reg = <0>; 37 abs-flat = <10>; 37 abs-flat = <10>; 38 abs-fuzz = <10>; 38 abs-fuzz = <10>; 39 abs-range = <850 175>; 39 abs-range = <850 175>; 40 linux,code = <ABS_Y>; 40 linux,code = <ABS_Y>; 41 }; 41 }; 42 42 43 axis@1 { 43 axis@1 { 44 reg = <1>; 44 reg = <1>; 45 abs-flat = <10>; 45 abs-flat = <10>; 46 abs-fuzz = <10>; 46 abs-fuzz = <10>; 47 abs-range = <800 190>; 47 abs-range = <800 190>; 48 linux,code = <ABS_X>; 48 linux,code = <ABS_X>; 49 }; 49 }; 50 }; 50 }; 51 51 52 adc_keys: adc-keys { 52 adc_keys: adc-keys { 53 compatible = "adc-keys"; 53 compatible = "adc-keys"; 54 io-channels = <&saradc 2>; 54 io-channels = <&saradc 2>; 55 io-channel-names = "buttons"; 55 io-channel-names = "buttons"; 56 keyup-threshold-microvolt = <1 56 keyup-threshold-microvolt = <1800000>; 57 poll-interval = <60>; 57 poll-interval = <60>; 58 58 59 button-1 { 59 button-1 { 60 label = "HAPPY1"; 60 label = "HAPPY1"; 61 linux,code = <BTN_TRIG 61 linux,code = <BTN_TRIGGER_HAPPY1>; 62 press-threshold-microv 62 press-threshold-microvolt = <15000>; 63 }; 63 }; 64 64 65 button-2 { 65 button-2 { 66 label = "HAPPY2"; 66 label = "HAPPY2"; 67 linux,code = <BTN_TRIG 67 linux,code = <BTN_TRIGGER_HAPPY2>; 68 press-threshold-microv 68 press-threshold-microvolt = <300000>; 69 }; 69 }; 70 }; 70 }; 71 71 72 backlight: backlight { 72 backlight: backlight { 73 compatible = "pwm-backlight"; 73 compatible = "pwm-backlight"; 74 power-supply = <&vcc_bl>; 74 power-supply = <&vcc_bl>; 75 pwms = <&pwm1 0 25000 0>; 75 pwms = <&pwm1 0 25000 0>; 76 }; 76 }; 77 77 78 battery: battery { 78 battery: battery { 79 compatible = "simple-battery"; 79 compatible = "simple-battery"; 80 charge-full-design-microamp-ho 80 charge-full-design-microamp-hours = <3000000>; 81 charge-term-current-microamp = 81 charge-term-current-microamp = <300000>; 82 constant-charge-current-max-mi 82 constant-charge-current-max-microamp = <1500000>; 83 constant-charge-voltage-max-mi 83 constant-charge-voltage-max-microvolt = <4200000>; 84 factory-internal-resistance-mi 84 factory-internal-resistance-micro-ohms = <180000>; 85 ocv-capacity-celsius = <20>; 85 ocv-capacity-celsius = <20>; 86 ocv-capacity-table-0 = <41060 86 ocv-capacity-table-0 = <4106000 100>, <4071000 95>, <4018000 90>, <3975000 85>, 87 <39460 87 <3946000 80>, <3908000 75>, <3877000 70>, <3853000 65>, 88 <38340 88 <3834000 60>, <3816000 55>, <3802000 50>, <3788000 45>, 89 <37740 89 <3774000 40>, <3760000 35>, <3748000 30>, <3735000 25>, 90 <37180 90 <3718000 20>, <3697000 15>, <3685000 10>, <3625000 5>, 91 <34000 91 <3400000 0>; 92 voltage-max-design-microvolt = 92 voltage-max-design-microvolt = <4250000>; 93 voltage-min-design-microvolt = 93 voltage-min-design-microvolt = <3400000>; 94 }; 94 }; 95 95 96 gpio_leds: gpio-leds { 96 gpio_leds: gpio-leds { 97 compatible = "gpio-leds"; 97 compatible = "gpio-leds"; 98 pinctrl-names = "default"; 98 pinctrl-names = "default"; 99 pinctrl-0 = <&led_pins>; 99 pinctrl-0 = <&led_pins>; 100 100 101 red_led: led-0 { 101 red_led: led-0 { 102 color = <LED_COLOR_ID_ 102 color = <LED_COLOR_ID_RED>; 103 gpios = <&gpio3 RK_PC4 103 gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_HIGH>; 104 }; 104 }; 105 105 106 green_led: led-1 { 106 green_led: led-1 { 107 color = <LED_COLOR_ID_ 107 color = <LED_COLOR_ID_GREEN>; 108 gpios = <&gpio3 RK_PC5 108 gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; 109 }; 109 }; 110 110 111 blue_led: led-2 { 111 blue_led: led-2 { 112 color = <LED_COLOR_ID_ 112 color = <LED_COLOR_ID_BLUE>; 113 gpios = <&gpio3 RK_PC6 113 gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>; 114 }; 114 }; 115 115 116 white_led: led-3 { 116 white_led: led-3 { 117 color = <LED_COLOR_ID_ 117 color = <LED_COLOR_ID_WHITE>; 118 function = LED_FUNCTIO 118 function = LED_FUNCTION_STATUS; 119 gpios = <&gpio3 RK_PB3 119 gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>; 120 }; 120 }; 121 121 122 chg_led: led-4 { 122 chg_led: led-4 { 123 color = <LED_COLOR_ID_ 123 color = <LED_COLOR_ID_RED>; 124 function = LED_FUNCTIO 124 function = LED_FUNCTION_CHARGING; 125 gpios = <&gpio3 RK_PB2 125 gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_HIGH>; 126 }; 126 }; 127 127 128 }; 128 }; 129 129 130 gpio_keys: gpio-keys { 130 gpio_keys: gpio-keys { 131 compatible = "gpio-keys"; 131 compatible = "gpio-keys"; 132 pinctrl-0 = <&btn_pins_ctrl>; 132 pinctrl-0 = <&btn_pins_ctrl>; 133 pinctrl-names = "default"; 133 pinctrl-names = "default"; 134 134 135 button-a { 135 button-a { 136 gpios = <&gpio2 RK_PB0 136 gpios = <&gpio2 RK_PB0 GPIO_ACTIVE_LOW>; 137 label = "EAST"; 137 label = "EAST"; 138 linux,code = <BTN_EAST 138 linux,code = <BTN_EAST>; 139 }; 139 }; 140 140 141 button-b { 141 button-b { 142 gpios = <&gpio2 RK_PB1 142 gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; 143 label = "SOUTH"; 143 label = "SOUTH"; 144 linux,code = <BTN_SOUT 144 linux,code = <BTN_SOUTH>; 145 }; 145 }; 146 146 147 button-down { 147 button-down { 148 gpios = <&gpio1 RK_PB5 148 gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_LOW>; 149 label = "DPAD-DOWN"; 149 label = "DPAD-DOWN"; 150 linux,code = <BTN_DPAD 150 linux,code = <BTN_DPAD_DOWN>; 151 }; 151 }; 152 152 153 button-home { 153 button-home { 154 gpios = <&gpio2 RK_PA0 154 gpios = <&gpio2 RK_PA0 GPIO_ACTIVE_LOW>; 155 label = "HOME"; 155 label = "HOME"; 156 linux,code = <BTN_MODE 156 linux,code = <BTN_MODE>; 157 }; 157 }; 158 158 159 button-l1 { 159 button-l1 { 160 gpios = <&gpio2 RK_PA6 160 gpios = <&gpio2 RK_PA6 GPIO_ACTIVE_LOW>; 161 label = "TL"; 161 label = "TL"; 162 linux,code = <BTN_TL>; 162 linux,code = <BTN_TL>; 163 }; 163 }; 164 164 165 button-l2 { 165 button-l2 { 166 gpios = <&gpio2 RK_PA4 166 gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_LOW>; 167 label = "TL2"; 167 label = "TL2"; 168 linux,code = <BTN_TL2> 168 linux,code = <BTN_TL2>; 169 }; 169 }; 170 170 171 button-left { 171 button-left { 172 gpios = <&gpio1 RK_PB6 172 gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>; 173 label = "DPAD-LEFT"; 173 label = "DPAD-LEFT"; 174 linux,code = <BTN_DPAD 174 linux,code = <BTN_DPAD_LEFT>; 175 }; 175 }; 176 176 177 button-r1 { 177 button-r1 { 178 gpios = <&gpio2 RK_PA7 178 gpios = <&gpio2 RK_PA7 GPIO_ACTIVE_LOW>; 179 label = "TR"; 179 label = "TR"; 180 linux,code = <BTN_TR>; 180 linux,code = <BTN_TR>; 181 }; 181 }; 182 182 183 button-r2 { 183 button-r2 { 184 gpios = <&gpio2 RK_PA5 184 gpios = <&gpio2 RK_PA5 GPIO_ACTIVE_LOW>; 185 label = "TR2"; 185 label = "TR2"; 186 linux,code = <BTN_TR2> 186 linux,code = <BTN_TR2>; 187 }; 187 }; 188 188 189 button-right { 189 button-right { 190 gpios = <&gpio1 RK_PB7 190 gpios = <&gpio1 RK_PB7 GPIO_ACTIVE_LOW>; 191 label = "DPAD-RIGHT"; 191 label = "DPAD-RIGHT"; 192 linux,code = <BTN_DPAD 192 linux,code = <BTN_DPAD_RIGHT>; 193 }; 193 }; 194 194 195 button-select { 195 button-select { 196 gpios = <&gpio2 RK_PA3 196 gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_LOW>; 197 label = "SELECT"; 197 label = "SELECT"; 198 linux,code = <BTN_SELE 198 linux,code = <BTN_SELECT>; 199 }; 199 }; 200 200 201 button-start { 201 button-start { 202 gpios = <&gpio2 RK_PA2 202 gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>; 203 label = "START"; 203 label = "START"; 204 linux,code = <BTN_STAR 204 linux,code = <BTN_START>; 205 }; 205 }; 206 206 207 button-up { 207 button-up { 208 gpios = <&gpio1 RK_PB4 208 gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_LOW>; 209 label = "DPAD-UP"; 209 label = "DPAD-UP"; 210 linux,code = <BTN_DPAD 210 linux,code = <BTN_DPAD_UP>; 211 }; 211 }; 212 212 213 button-x { 213 button-x { 214 gpios = <&gpio2 RK_PB3 214 gpios = <&gpio2 RK_PB3 GPIO_ACTIVE_LOW>; 215 label = "NORTH"; 215 label = "NORTH"; 216 linux,code = <BTN_NORT 216 linux,code = <BTN_NORTH>; 217 }; 217 }; 218 218 219 button-y { 219 button-y { 220 gpios = <&gpio2 RK_PB2 220 gpios = <&gpio2 RK_PB2 GPIO_ACTIVE_LOW>; 221 label = "WEST"; 221 label = "WEST"; 222 linux,code = <BTN_WEST 222 linux,code = <BTN_WEST>; 223 }; 223 }; 224 }; 224 }; 225 225 226 multi-led { 226 multi-led { 227 compatible = "leds-group-multi 227 compatible = "leds-group-multicolor"; 228 color = <LED_COLOR_ID_RGB>; 228 color = <LED_COLOR_ID_RGB>; 229 function = LED_FUNCTION_KBD_BA 229 function = LED_FUNCTION_KBD_BACKLIGHT; 230 leds = <&red_led>, <&green_led 230 leds = <&red_led>, <&green_led>, <&blue_led>; 231 }; 231 }; 232 232 233 spk_amp: audio-amplifier { 233 spk_amp: audio-amplifier { 234 compatible = "simple-audio-amp 234 compatible = "simple-audio-amplifier"; 235 enable-gpios = <&gpio2 RK_PB5 235 enable-gpios = <&gpio2 RK_PB5 GPIO_ACTIVE_HIGH>; 236 pinctrl-0 = <&spk_amp_enable_h 236 pinctrl-0 = <&spk_amp_enable_h>; 237 pinctrl-names = "default"; 237 pinctrl-names = "default"; 238 sound-name-prefix = "Speaker A 238 sound-name-prefix = "Speaker Amp"; 239 }; 239 }; 240 240 241 sound { 241 sound { 242 compatible = "simple-audio-car 242 compatible = "simple-audio-card"; 243 pinctrl-0 = <&hp_det>; 243 pinctrl-0 = <&hp_det>; 244 pinctrl-names = "default"; 244 pinctrl-names = "default"; 245 simple-audio-card,name = "rk81 245 simple-audio-card,name = "rk817_ext"; 246 simple-audio-card,aux-devs = < 246 simple-audio-card,aux-devs = <&spk_amp>; 247 simple-audio-card,format = "i2 247 simple-audio-card,format = "i2s"; 248 simple-audio-card,hp-det-gpio 248 simple-audio-card,hp-det-gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>; 249 simple-audio-card,mclk-fs = <2 249 simple-audio-card,mclk-fs = <256>; 250 simple-audio-card,widgets = 250 simple-audio-card,widgets = 251 "Microphone", "Mic Jac 251 "Microphone", "Mic Jack", 252 "Headphone", "Headphon 252 "Headphone", "Headphones", 253 "Speaker", "Internal S 253 "Speaker", "Internal Speakers"; 254 simple-audio-card,routing = 254 simple-audio-card,routing = 255 "MICL", "Mic Jack", 255 "MICL", "Mic Jack", 256 "Headphones", "HPOL", 256 "Headphones", "HPOL", 257 "Headphones", "HPOR", 257 "Headphones", "HPOR", 258 "Internal Speakers", " 258 "Internal Speakers", "Speaker Amp OUTL", 259 "Internal Speakers", " 259 "Internal Speakers", "Speaker Amp OUTR", 260 "Speaker Amp INL", "HP 260 "Speaker Amp INL", "HPOL", 261 "Speaker Amp INR", "HP 261 "Speaker Amp INR", "HPOR"; 262 simple-audio-card,pin-switches 262 simple-audio-card,pin-switches = "Internal Speakers"; 263 263 264 simple-audio-card,codec { 264 simple-audio-card,codec { 265 sound-dai = <&rk817>; 265 sound-dai = <&rk817>; 266 }; 266 }; 267 267 268 simple-audio-card,cpu { 268 simple-audio-card,cpu { 269 sound-dai = <&i2s1_2ch 269 sound-dai = <&i2s1_2ch>; 270 }; 270 }; 271 }; 271 }; 272 272 273 vibrator_left: pwm-vibrator-l { 273 vibrator_left: pwm-vibrator-l { 274 compatible = "pwm-vibrator"; 274 compatible = "pwm-vibrator"; 275 pwm-names = "enable"; 275 pwm-names = "enable"; 276 pwms = <&pwm4 0 25000 0>; 276 pwms = <&pwm4 0 25000 0>; 277 }; 277 }; 278 278 279 vibrator_right: pwm-vibrator-r { 279 vibrator_right: pwm-vibrator-r { 280 compatible = "pwm-vibrator"; 280 compatible = "pwm-vibrator"; 281 pwm-names = "enable"; 281 pwm-names = "enable"; 282 pwms = <&pwm5 0 25000 0>; 282 pwms = <&pwm5 0 25000 0>; 283 }; 283 }; 284 284 285 sdio_pwrseq: sdio-pwrseq { 285 sdio_pwrseq: sdio-pwrseq { 286 compatible = "mmc-pwrseq-simpl 286 compatible = "mmc-pwrseq-simple"; 287 clocks = <&rk817 1>; 287 clocks = <&rk817 1>; 288 clock-names = "ext_clock"; 288 clock-names = "ext_clock"; 289 pinctrl-0 = <&wifi_enable_h>; 289 pinctrl-0 = <&wifi_enable_h>; 290 pinctrl-names = "default"; 290 pinctrl-names = "default"; 291 post-power-on-delay-ms = <200> 291 post-power-on-delay-ms = <200>; 292 reset-gpios = <&gpio0 RK_PA2 G 292 reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>; 293 }; 293 }; 294 294 295 vccsys: vccsys-regulator { 295 vccsys: vccsys-regulator { 296 compatible = "regulator-fixed" 296 compatible = "regulator-fixed"; 297 regulator-name = "vcc3v8_sys"; 297 regulator-name = "vcc3v8_sys"; 298 regulator-always-on; 298 regulator-always-on; 299 regulator-min-microvolt = <380 299 regulator-min-microvolt = <3800000>; 300 regulator-max-microvolt = <380 300 regulator-max-microvolt = <3800000>; 301 }; 301 }; 302 }; 302 }; 303 303 304 &cpu0 { 304 &cpu0 { 305 cpu-supply = <&vdd_arm>; 305 cpu-supply = <&vdd_arm>; 306 }; 306 }; 307 307 308 &cpu1 { 308 &cpu1 { 309 cpu-supply = <&vdd_arm>; 309 cpu-supply = <&vdd_arm>; 310 }; 310 }; 311 311 312 &cpu2 { 312 &cpu2 { 313 cpu-supply = <&vdd_arm>; 313 cpu-supply = <&vdd_arm>; 314 }; 314 }; 315 315 316 &cpu3 { 316 &cpu3 { 317 cpu-supply = <&vdd_arm>; 317 cpu-supply = <&vdd_arm>; 318 }; 318 }; 319 319 320 &display_subsystem { 320 &display_subsystem { 321 status = "okay"; 321 status = "okay"; 322 }; 322 }; 323 323 324 &dsi { 324 &dsi { 325 status = "okay"; 325 status = "okay"; 326 326 327 internal_display: panel@0 { 327 internal_display: panel@0 { 328 reg = <0>; 328 reg = <0>; 329 compatible = "gameforce,chi-pa 329 compatible = "gameforce,chi-panel"; 330 backlight = <&backlight>; 330 backlight = <&backlight>; 331 iovcc-supply = <&vcc_lcd>; 331 iovcc-supply = <&vcc_lcd>; 332 vcc-supply = <&vcc_lcd>; 332 vcc-supply = <&vcc_lcd>; 333 reset-gpios = <&gpio3 RK_PA0 G 333 reset-gpios = <&gpio3 RK_PA0 GPIO_ACTIVE_LOW>; 334 334 335 port { 335 port { 336 mipi_in_panel: endpoin 336 mipi_in_panel: endpoint { 337 remote-endpoin 337 remote-endpoint = <&mipi_out_panel>; 338 }; 338 }; 339 }; 339 }; 340 }; 340 }; 341 341 342 ports { 342 ports { 343 mipi_out: port@1 { 343 mipi_out: port@1 { 344 reg = <1>; 344 reg = <1>; 345 345 346 mipi_out_panel: endpoi 346 mipi_out_panel: endpoint { 347 remote-endpoin 347 remote-endpoint = <&mipi_in_panel>; 348 }; 348 }; 349 }; 349 }; 350 }; 350 }; 351 }; 351 }; 352 352 353 &dsi_dphy { 353 &dsi_dphy { 354 status = "okay"; 354 status = "okay"; 355 }; 355 }; 356 356 357 &gpu { 357 &gpu { 358 mali-supply = <&vdd_logic>; 358 mali-supply = <&vdd_logic>; 359 status = "okay"; 359 status = "okay"; 360 }; 360 }; 361 361 362 &i2c0 { 362 &i2c0 { 363 clock-frequency = <400000>; 363 clock-frequency = <400000>; 364 i2c-scl-falling-time-ns = <16>; 364 i2c-scl-falling-time-ns = <16>; 365 i2c-scl-rising-time-ns = <280>; 365 i2c-scl-rising-time-ns = <280>; 366 status = "okay"; 366 status = "okay"; 367 367 368 rk817: pmic@20 { 368 rk817: pmic@20 { 369 compatible = "rockchip,rk817"; 369 compatible = "rockchip,rk817"; 370 reg = <0x20>; 370 reg = <0x20>; 371 #clock-cells = <1>; 371 #clock-cells = <1>; 372 clock-names = "mclk"; 372 clock-names = "mclk"; 373 clock-output-names = "rk808-cl 373 clock-output-names = "rk808-clkout1", "xin32k"; 374 clocks = <&cru SCLK_I2S1_OUT>; 374 clocks = <&cru SCLK_I2S1_OUT>; 375 interrupt-parent = <&gpio0>; 375 interrupt-parent = <&gpio0>; 376 interrupts = <RK_PC1 IRQ_TYPE_ 376 interrupts = <RK_PC1 IRQ_TYPE_LEVEL_LOW>; 377 pinctrl-0 = <&pmic_int>, <&i2s 377 pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>; 378 pinctrl-names = "default"; 378 pinctrl-names = "default"; 379 #sound-dai-cells = <0>; 379 #sound-dai-cells = <0>; 380 system-power-controller; 380 system-power-controller; 381 wakeup-source; 381 wakeup-source; 382 382 383 vcc1-supply = <&vccsys>; 383 vcc1-supply = <&vccsys>; 384 vcc2-supply = <&vccsys>; 384 vcc2-supply = <&vccsys>; 385 vcc3-supply = <&vccsys>; 385 vcc3-supply = <&vccsys>; 386 vcc4-supply = <&vccsys>; 386 vcc4-supply = <&vccsys>; 387 vcc5-supply = <&vccsys>; 387 vcc5-supply = <&vccsys>; 388 vcc6-supply = <&vccsys>; 388 vcc6-supply = <&vccsys>; 389 vcc7-supply = <&vcc_3v0>; 389 vcc7-supply = <&vcc_3v0>; 390 vcc8-supply = <&vccsys>; 390 vcc8-supply = <&vccsys>; 391 vcc9-supply = <&dcdc_boost>; 391 vcc9-supply = <&dcdc_boost>; 392 392 393 regulators { 393 regulators { 394 vdd_logic: DCDC_REG1 { 394 vdd_logic: DCDC_REG1 { 395 regulator-alwa 395 regulator-always-on; 396 regulator-boot 396 regulator-boot-on; 397 regulator-max- 397 regulator-max-microvolt = <1150000>; 398 regulator-min- 398 regulator-min-microvolt = <950000>; 399 regulator-name 399 regulator-name = "vdd_logic"; 400 regulator-ramp 400 regulator-ramp-delay = <6001>; 401 401 402 regulator-stat 402 regulator-state-mem { 403 regula 403 regulator-on-in-suspend; 404 regula 404 regulator-suspend-microvolt = <950000>; 405 }; 405 }; 406 }; 406 }; 407 407 408 vdd_arm: DCDC_REG2 { 408 vdd_arm: DCDC_REG2 { 409 regulator-alwa 409 regulator-always-on; 410 regulator-boot 410 regulator-boot-on; 411 regulator-max- 411 regulator-max-microvolt = <1350000>; 412 regulator-min- 412 regulator-min-microvolt = <950000>; 413 regulator-name 413 regulator-name = "vdd_arm"; 414 regulator-ramp 414 regulator-ramp-delay = <6001>; 415 415 416 regulator-stat 416 regulator-state-mem { 417 regula 417 regulator-off-in-suspend; 418 regula 418 regulator-suspend-microvolt = <950000>; 419 }; 419 }; 420 }; 420 }; 421 421 422 vcc_ddr: DCDC_REG3 { 422 vcc_ddr: DCDC_REG3 { 423 regulator-alwa 423 regulator-always-on; 424 regulator-boot 424 regulator-boot-on; 425 regulator-name 425 regulator-name = "vcc_ddr"; 426 426 427 regulator-stat 427 regulator-state-mem { 428 regula 428 regulator-on-in-suspend; 429 }; 429 }; 430 }; 430 }; 431 431 432 vcc_3v0: DCDC_REG4 { 432 vcc_3v0: DCDC_REG4 { 433 regulator-alwa 433 regulator-always-on; 434 regulator-boot 434 regulator-boot-on; 435 regulator-max- 435 regulator-max-microvolt = <3000000>; 436 regulator-min- 436 regulator-min-microvolt = <3000000>; 437 regulator-name 437 regulator-name = "vcc_3v0"; 438 438 439 regulator-stat 439 regulator-state-mem { 440 regula 440 regulator-off-in-suspend; 441 regula 441 regulator-suspend-microvolt = <3000000>; 442 }; 442 }; 443 }; 443 }; 444 444 445 vcc_1v8: LDO_REG2 { 445 vcc_1v8: LDO_REG2 { 446 regulator-alwa 446 regulator-always-on; 447 regulator-boot 447 regulator-boot-on; 448 regulator-max- 448 regulator-max-microvolt = <1800000>; 449 regulator-min- 449 regulator-min-microvolt = <1800000>; 450 regulator-name 450 regulator-name = "vcc_1v8"; 451 451 452 regulator-stat 452 regulator-state-mem { 453 regula 453 regulator-on-in-suspend; 454 regula 454 regulator-suspend-microvolt = <1800000>; 455 }; 455 }; 456 }; 456 }; 457 457 458 vdd_1v0: LDO_REG3 { 458 vdd_1v0: LDO_REG3 { 459 regulator-alwa 459 regulator-always-on; 460 regulator-boot 460 regulator-boot-on; 461 regulator-max- 461 regulator-max-microvolt = <1000000>; 462 regulator-min- 462 regulator-min-microvolt = <1000000>; 463 regulator-name 463 regulator-name = "vdd_1v0"; 464 464 465 regulator-stat 465 regulator-state-mem { 466 regula 466 regulator-on-in-suspend; 467 regula 467 regulator-suspend-microvolt = <1000000>; 468 }; 468 }; 469 }; 469 }; 470 470 471 vcc_3v0_pmu: LDO_REG4 471 vcc_3v0_pmu: LDO_REG4 { 472 regulator-alwa 472 regulator-always-on; 473 regulator-boot 473 regulator-boot-on; 474 regulator-max- 474 regulator-max-microvolt = <3000000>; 475 regulator-min- 475 regulator-min-microvolt = <3000000>; 476 regulator-name 476 regulator-name = "vcc_3v0_pmu"; 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 vccio_sd: LDO_REG5 { 484 vccio_sd: LDO_REG5 { 485 regulator-alwa 485 regulator-always-on; 486 regulator-boot 486 regulator-boot-on; 487 regulator-max- 487 regulator-max-microvolt = <3300000>; 488 regulator-min- 488 regulator-min-microvolt = <1800000>; 489 regulator-name 489 regulator-name = "vccio_sd"; 490 490 491 regulator-stat 491 regulator-state-mem { 492 regula 492 regulator-on-in-suspend; 493 regula 493 regulator-suspend-microvolt = <3300000>; 494 }; 494 }; 495 }; 495 }; 496 496 497 vcc_sd: LDO_REG6 { 497 vcc_sd: LDO_REG6 { 498 regulator-boot 498 regulator-boot-on; 499 regulator-max- 499 regulator-max-microvolt = <3300000>; 500 regulator-min- 500 regulator-min-microvolt = <3300000>; 501 regulator-name 501 regulator-name = "vcc_sd"; 502 502 503 regulator-stat 503 regulator-state-mem { 504 regula 504 regulator-on-in-suspend; 505 regula 505 regulator-suspend-microvolt = <3300000>; 506 }; 506 }; 507 }; 507 }; 508 508 509 vcc_bl: LDO_REG7 { 509 vcc_bl: LDO_REG7 { 510 regulator-max- 510 regulator-max-microvolt = <3300000>; 511 regulator-min- 511 regulator-min-microvolt = <3300000>; 512 regulator-name 512 regulator-name = "vcc_bl"; 513 513 514 regulator-stat 514 regulator-state-mem { 515 regula 515 regulator-off-in-suspend; 516 regula 516 regulator-suspend-microvolt = <3300000>; 517 }; 517 }; 518 }; 518 }; 519 519 520 vcc_lcd: LDO_REG8 { 520 vcc_lcd: LDO_REG8 { 521 regulator-max- 521 regulator-max-microvolt = <2800000>; 522 regulator-min- 522 regulator-min-microvolt = <2800000>; 523 regulator-name 523 regulator-name = "vcc_lcd"; 524 524 525 regulator-stat 525 regulator-state-mem { 526 regula 526 regulator-off-in-suspend; 527 regula 527 regulator-suspend-microvolt = <2800000>; 528 }; 528 }; 529 }; 529 }; 530 530 531 vcc_wifi: LDO_REG9 { 531 vcc_wifi: LDO_REG9 { 532 regulator-alwa 532 regulator-always-on; 533 regulator-boot 533 regulator-boot-on; 534 regulator-max- 534 regulator-max-microvolt = <3300000>; 535 regulator-min- 535 regulator-min-microvolt = <3300000>; 536 regulator-name 536 regulator-name = "vcc_wifi"; 537 537 538 regulator-stat 538 regulator-state-mem { 539 regula 539 regulator-off-in-suspend; 540 regula 540 regulator-suspend-microvolt = <3300000>; 541 }; 541 }; 542 }; 542 }; 543 543 544 dcdc_boost: BOOST { 544 dcdc_boost: BOOST { 545 regulator-max- 545 regulator-max-microvolt = <5000000>; 546 regulator-min- 546 regulator-min-microvolt = <5000000>; 547 regulator-name 547 regulator-name = "dcdc_boost"; 548 548 549 regulator-stat 549 regulator-state-mem { 550 regula 550 regulator-off-in-suspend; 551 }; 551 }; 552 }; 552 }; 553 553 554 otg_switch: OTG_SWITCH 554 otg_switch: OTG_SWITCH { 555 regulator-name 555 regulator-name = "otg_switch"; 556 556 557 regulator-stat 557 regulator-state-mem { 558 regula 558 regulator-off-in-suspend; 559 }; 559 }; 560 }; 560 }; 561 }; 561 }; 562 562 563 rk817_charger: charger { 563 rk817_charger: charger { 564 monitored-battery = <& 564 monitored-battery = <&battery>; 565 rockchip,resistor-sens 565 rockchip,resistor-sense-micro-ohms = <10000>; 566 rockchip,sleep-enter-c 566 rockchip,sleep-enter-current-microamp = <300000>; 567 rockchip,sleep-filter- 567 rockchip,sleep-filter-current-microamp = <100000>; 568 }; 568 }; 569 }; 569 }; 570 }; 570 }; 571 571 572 &i2s1_2ch { 572 &i2s1_2ch { 573 status = "okay"; 573 status = "okay"; 574 }; 574 }; 575 575 576 &io_domains { 576 &io_domains { 577 vccio1-supply = <&vcc_3v0_pmu>; 577 vccio1-supply = <&vcc_3v0_pmu>; 578 vccio2-supply = <&vccio_sd>; 578 vccio2-supply = <&vccio_sd>; 579 vccio3-supply = <&vcc_3v0>; 579 vccio3-supply = <&vcc_3v0>; 580 vccio4-supply = <&vcc_3v0>; 580 vccio4-supply = <&vcc_3v0>; 581 vccio5-supply = <&vcc_3v0>; 581 vccio5-supply = <&vcc_3v0>; 582 vccio6-supply = <&vcc_3v0>; 582 vccio6-supply = <&vcc_3v0>; 583 status = "okay"; 583 status = "okay"; 584 }; 584 }; 585 585 586 &pinctrl { 586 &pinctrl { 587 bluetooth-pins { 587 bluetooth-pins { 588 bt_reset: bt-reset { 588 bt_reset: bt-reset { 589 rockchip,pins = 589 rockchip,pins = 590 <0 RK_PA0 RK_F 590 <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>; 591 }; 591 }; 592 592 593 bt_wake_dev: bt-wake-dev { 593 bt_wake_dev: bt-wake-dev { 594 rockchip,pins = 594 rockchip,pins = 595 <0 RK_PA1 RK_F 595 <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; 596 }; 596 }; 597 597 598 bt_wake_host: bt-wake-host { 598 bt_wake_host: bt-wake-host { 599 rockchip,pins = 599 rockchip,pins = 600 <0 RK_PA7 RK_F 600 <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>; 601 }; 601 }; 602 }; 602 }; 603 603 604 headphone { 604 headphone { 605 hp_det: hp-det { 605 hp_det: hp-det { 606 rockchip,pins = 606 rockchip,pins = 607 <2 RK_PC6 RK_F 607 <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>; 608 }; 608 }; 609 }; 609 }; 610 610 611 gpio-btns { 611 gpio-btns { 612 btn_pins_ctrl: btn-pins-ctrl { 612 btn_pins_ctrl: btn-pins-ctrl { 613 rockchip,pins = 613 rockchip,pins = 614 <1 RK_PB4 RK_F 614 <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>, 615 <1 RK_PB5 RK_F 615 <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>, 616 <1 RK_PB6 RK_F 616 <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>, 617 <1 RK_PB7 RK_F 617 <1 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>, 618 <2 RK_PA0 RK_F 618 <2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>, 619 <2 RK_PA2 RK_F 619 <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>, 620 <2 RK_PA3 RK_F 620 <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>, 621 <2 RK_PA4 RK_F 621 <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>, 622 <2 RK_PA5 RK_F 622 <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>, 623 <2 RK_PA6 RK_F 623 <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>, 624 <2 RK_PA7 RK_F 624 <2 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>, 625 <2 RK_PB0 RK_F 625 <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>, 626 <2 RK_PB1 RK_F 626 <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>, 627 <2 RK_PB2 RK_F 627 <2 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>, 628 <2 RK_PB3 RK_F 628 <2 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>; 629 }; 629 }; 630 }; 630 }; 631 631 632 gpio-leds { 632 gpio-leds { 633 led_pins: led-pins { 633 led_pins: led-pins { 634 rockchip,pins = 634 rockchip,pins = 635 <3 RK_PB2 RK_F 635 <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>, 636 <3 RK_PB3 RK_F 636 <3 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>, 637 <3 RK_PC4 RK_F 637 <3 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>, 638 <3 RK_PC5 RK_F 638 <3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>, 639 <3 RK_PC6 RK_F 639 <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; 640 }; 640 }; 641 }; 641 }; 642 642 643 pmic { 643 pmic { 644 pmic_int: pmic-int { 644 pmic_int: pmic-int { 645 rockchip,pins = 645 rockchip,pins = 646 <0 RK_PC1 RK_F 646 <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>; 647 }; 647 }; 648 648 649 soc_slppin_gpio: soc_slppin_gp 649 soc_slppin_gpio: soc_slppin_gpio { 650 rockchip,pins = 650 rockchip,pins = 651 <0 RK_PA4 RK_F 651 <0 RK_PA4 RK_FUNC_GPIO &pcfg_output_low>; 652 }; 652 }; 653 653 654 soc_slppin_rst: soc_slppin_rst 654 soc_slppin_rst: soc_slppin_rst { 655 rockchip,pins = 655 rockchip,pins = 656 <0 RK_PA4 2 &p 656 <0 RK_PA4 2 &pcfg_pull_none>; 657 }; 657 }; 658 658 659 soc_slppin_slp: soc_slppin_slp 659 soc_slppin_slp: soc_slppin_slp { 660 rockchip,pins = 660 rockchip,pins = 661 <0 RK_PA4 1 &p 661 <0 RK_PA4 1 &pcfg_pull_none>; 662 }; 662 }; 663 }; 663 }; 664 664 665 sdio-pwrseq { 665 sdio-pwrseq { 666 wifi_enable_h: wifi-enable-h { 666 wifi_enable_h: wifi-enable-h { 667 rockchip,pins = 667 rockchip,pins = 668 <0 RK_PA2 RK_F 668 <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 669 }; 669 }; 670 }; 670 }; 671 671 672 speaker { 672 speaker { 673 spk_amp_enable_h: spk-amp-enab 673 spk_amp_enable_h: spk-amp-enable-h { 674 rockchip,pins = 674 rockchip,pins = 675 <2 RK_PB5 RK_F 675 <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; 676 }; 676 }; 677 }; 677 }; 678 }; 678 }; 679 679 680 &pmu_io_domains { 680 &pmu_io_domains { 681 pmuio1-supply = <&vcc_1v8>; 681 pmuio1-supply = <&vcc_1v8>; 682 pmuio2-supply = <&vcc_3v0_pmu>; 682 pmuio2-supply = <&vcc_3v0_pmu>; 683 status = "okay"; 683 status = "okay"; 684 }; 684 }; 685 685 686 &pwm1 { 686 &pwm1 { 687 status = "okay"; 687 status = "okay"; 688 }; 688 }; 689 689 690 &pwm4 { 690 &pwm4 { 691 status = "okay"; 691 status = "okay"; 692 }; 692 }; 693 693 694 &pwm5 { 694 &pwm5 { 695 status = "okay"; 695 status = "okay"; 696 }; 696 }; 697 697 698 &saradc { 698 &saradc { 699 vref-supply = <&vcc_1v8>; 699 vref-supply = <&vcc_1v8>; 700 status = "okay"; 700 status = "okay"; 701 }; 701 }; 702 702 703 &sdio { 703 &sdio { 704 bus-width = <4>; 704 bus-width = <4>; 705 cap-sd-highspeed; 705 cap-sd-highspeed; 706 cap-sdio-irq; 706 cap-sdio-irq; 707 disable-wp; 707 disable-wp; 708 keep-power-in-suspend; 708 keep-power-in-suspend; 709 mmc-pwrseq = <&sdio_pwrseq>; 709 mmc-pwrseq = <&sdio_pwrseq>; 710 no-mmc; 710 no-mmc; 711 no-sd; 711 no-sd; 712 non-removable; 712 non-removable; 713 sd-uhs-sdr104; 713 sd-uhs-sdr104; 714 status = "okay"; 714 status = "okay"; 715 }; 715 }; 716 716 717 &sdmmc { 717 &sdmmc { 718 cap-mmc-highspeed; 718 cap-mmc-highspeed; 719 cap-sd-highspeed; 719 cap-sd-highspeed; 720 no-sdio; 720 no-sdio; 721 sd-uhs-sdr12; 721 sd-uhs-sdr12; 722 sd-uhs-sdr25; 722 sd-uhs-sdr25; 723 sd-uhs-sdr50; 723 sd-uhs-sdr50; 724 sd-uhs-sdr104; 724 sd-uhs-sdr104; 725 vmmc-supply = <&vcc_sd>; 725 vmmc-supply = <&vcc_sd>; 726 vqmmc-supply = <&vccio_sd>; 726 vqmmc-supply = <&vccio_sd>; 727 status = "okay"; 727 status = "okay"; 728 }; 728 }; 729 729 730 &sfc { 730 &sfc { 731 #address-cells = <1>; 731 #address-cells = <1>; 732 pinctrl-0 = <&sfc_clk &sfc_cs0 &sfc_bu 732 pinctrl-0 = <&sfc_clk &sfc_cs0 &sfc_bus2>; 733 pinctrl-names = "default"; 733 pinctrl-names = "default"; 734 #size-cells = <0>; 734 #size-cells = <0>; 735 status = "okay"; 735 status = "okay"; 736 736 737 flash@0 { 737 flash@0 { 738 compatible = "jedec,spi-nor"; 738 compatible = "jedec,spi-nor"; 739 reg = <0>; 739 reg = <0>; 740 spi-max-frequency = <108000000 740 spi-max-frequency = <108000000>; 741 spi-rx-bus-width = <2>; 741 spi-rx-bus-width = <2>; 742 spi-tx-bus-width = <1>; 742 spi-tx-bus-width = <1>; 743 }; 743 }; 744 }; 744 }; 745 745 746 &tsadc { 746 &tsadc { 747 status = "okay"; 747 status = "okay"; 748 }; 748 }; 749 749 750 &u2phy { 750 &u2phy { 751 status = "okay"; 751 status = "okay"; 752 752 753 u2phy_otg: otg-port { 753 u2phy_otg: otg-port { 754 status = "okay"; 754 status = "okay"; 755 }; 755 }; 756 }; 756 }; 757 757 758 &usb20_otg { 758 &usb20_otg { 759 status = "okay"; 759 status = "okay"; 760 }; 760 }; 761 761 762 /* 762 /* 763 * The right ADC joystick exists connected to 763 * The right ADC joystick exists connected to an unknown ADC 764 * controller which can be communicated with v 764 * controller which can be communicated with via uart0. This ADC device 765 * is an 8-pin SOIC with no markings located r 765 * is an 8-pin SOIC with no markings located right next to the left ADC 766 * joystick ribbon cable. The pinout for this 766 * joystick ribbon cable. The pinout for this ADC controller appears to 767 * be pin 1 - VCC (2.8v), pin 2 - 1.8v (clk ma 767 * be pin 1 - VCC (2.8v), pin 2 - 1.8v (clk maybe?), pin 3 - GPIO 10, 768 * pin 4 - unknown, pin 5 - unknown, pin 6 - a 768 * pin 4 - unknown, pin 5 - unknown, pin 6 - analog in, pin 7 - analog in, 769 * pin 8 - ground. There is currently a usersp 769 * pin 8 - ground. There is currently a userspace UART driver for this 770 * device but it only works with the BSP joyst 770 * device but it only works with the BSP joystick driver. 771 */ 771 */ 772 &uart0 { 772 &uart0 { 773 status = "okay"; 773 status = "okay"; 774 }; 774 }; 775 775 776 /* 776 /* 777 * Bluetooth was not working on BSP and is not 777 * Bluetooth was not working on BSP and is not currently working on 778 * mainline due to missing firmware. Bluetooth 778 * mainline due to missing firmware. Bluetooth requires removal of DMA 779 * or else it will not probe. 779 * or else it will not probe. 780 */ 780 */ 781 &uart1 { 781 &uart1 { 782 /delete-property/ dma-names; 782 /delete-property/ dma-names; 783 /delete-property/ dmas; 783 /delete-property/ dmas; 784 uart-has-rtscts; 784 uart-has-rtscts; 785 status = "okay"; 785 status = "okay"; 786 786 787 bluetooth: bluetooth { 787 bluetooth: bluetooth { 788 compatible = "realtek,rtl8723d 788 compatible = "realtek,rtl8723ds-bt"; 789 device-wake-gpios = <&gpio0 RK 789 device-wake-gpios = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>; 790 enable-gpios = <&gpio0 RK_PA0 790 enable-gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>; 791 host-wake-gpios = <&gpio0 RK_P 791 host-wake-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_HIGH>; 792 pinctrl-0 = <&bt_reset>, <&bt_ 792 pinctrl-0 = <&bt_reset>, <&bt_wake_dev>, <&bt_wake_host>; 793 pinctrl-names = "default"; 793 pinctrl-names = "default"; 794 }; 794 }; 795 }; 795 }; 796 796 797 &uart2 { 797 &uart2 { 798 pinctrl-0 = <&uart2m1_xfer>; 798 pinctrl-0 = <&uart2m1_xfer>; 799 pinctrl-names = "default"; 799 pinctrl-names = "default"; 800 status = "okay"; 800 status = "okay"; 801 }; 801 }; 802 802 803 &vopb { 803 &vopb { 804 status = "okay"; 804 status = "okay"; 805 }; 805 }; 806 806 807 &vopb_mmu { 807 &vopb_mmu { 808 status = "okay"; 808 status = "okay"; 809 }; 809 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.