1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 // Copyright (C) 2017 Icenowy Zheng <icenowy@ao !! 2 /* 3 // Copyright (C) 2018 Vasily Khoruzhick <anarso !! 3 * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.xyz> >> 4 * Copyright (C) 2018 Vasily Khoruzhick <anarsoul@gmail.com> >> 5 * >> 6 */ 4 7 5 /dts-v1/; 8 /dts-v1/; 6 9 7 #include "sun50i-a64.dtsi" 10 #include "sun50i-a64.dtsi" 8 #include "sun50i-a64-cpu-opp.dtsi" << 9 11 10 #include <dt-bindings/gpio/gpio.h> 12 #include <dt-bindings/gpio/gpio.h> 11 #include <dt-bindings/input/gpio-keys.h> << 12 #include <dt-bindings/input/input.h> 13 #include <dt-bindings/input/input.h> 13 #include <dt-bindings/pwm/pwm.h> 14 #include <dt-bindings/pwm/pwm.h> 14 15 15 / { 16 / { 16 model = "Pine64 Pinebook"; !! 17 model = "Pinebook"; 17 compatible = "pine64,pinebook", "allwi 18 compatible = "pine64,pinebook", "allwinner,sun50i-a64"; 18 chassis-type = "laptop"; << 19 19 20 aliases { 20 aliases { 21 serial0 = &uart0; 21 serial0 = &uart0; 22 ethernet0 = &rtl8723cs; 22 ethernet0 = &rtl8723cs; 23 }; 23 }; 24 24 >> 25 vdd_bl: regulator@0 { >> 26 compatible = "regulator-fixed"; >> 27 regulator-name = "bl-3v3"; >> 28 regulator-min-microvolt = <3300000>; >> 29 regulator-max-microvolt = <3300000>; >> 30 gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */ >> 31 enable-active-high; >> 32 }; >> 33 25 backlight: backlight { 34 backlight: backlight { 26 compatible = "pwm-backlight"; 35 compatible = "pwm-backlight"; 27 pwms = <&pwm 0 50000 0>; 36 pwms = <&pwm 0 50000 0>; 28 brightness-levels = <0 5 10 15 37 brightness-levels = <0 5 10 15 20 30 40 55 70 85 100>; 29 default-brightness-level = <2> 38 default-brightness-level = <2>; 30 enable-gpios = <&pio 3 23 GPIO 39 enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */ 31 power-supply = <®_vbklt>; !! 40 power-supply = <&vdd_bl>; 32 }; 41 }; 33 42 34 chosen { 43 chosen { 35 stdout-path = "serial0:115200n 44 stdout-path = "serial0:115200n8"; >> 45 >> 46 framebuffer-lcd { >> 47 panel-supply = <®_dc1sw>; >> 48 dvdd25-supply = <®_dldo2>; >> 49 dvdd12-supply = <®_fldo1>; >> 50 }; 36 }; 51 }; 37 52 38 gpio-keys { !! 53 gpio_keys { 39 compatible = "gpio-keys"; 54 compatible = "gpio-keys"; 40 55 41 lid-switch { !! 56 lid_switch { 42 label = "Lid Switch"; 57 label = "Lid Switch"; 43 gpios = <&r_pio 0 12 G 58 gpios = <&r_pio 0 12 GPIO_ACTIVE_LOW>; /* PL12 */ 44 linux,input-type = <EV 59 linux,input-type = <EV_SW>; 45 linux,code = <SW_LID>; 60 linux,code = <SW_LID>; 46 linux,can-disable; 61 linux,can-disable; 47 wakeup-source; 62 wakeup-source; 48 wakeup-event-action = << 49 }; << 50 }; << 51 << 52 panel_edp: panel-edp { << 53 compatible = "neweast,wjfh1160 << 54 backlight = <&backlight>; << 55 power-supply = <®_dc1sw>; << 56 << 57 port { << 58 panel_edp_in: endpoint << 59 remote-endpoin << 60 }; << 61 }; 63 }; 62 }; 64 }; 63 65 64 reg_vbklt: vbklt { !! 66 reg_vcc3v3: vcc3v3 { 65 compatible = "regulator-fixed" 67 compatible = "regulator-fixed"; 66 regulator-name = "vbklt"; !! 68 regulator-name = "vcc3v3"; 67 regulator-min-microvolt = <180 !! 69 regulator-min-microvolt = <3300000>; 68 regulator-max-microvolt = <180 !! 70 regulator-max-microvolt = <3300000>; 69 gpio = <&pio 7 6 GPIO_ACTIVE_H << 70 enable-active-high; << 71 }; << 72 << 73 reg_vcc5v0: vcc5v0 { << 74 compatible = "regulator-fixed" << 75 regulator-name = "vcc5v0"; << 76 regulator-min-microvolt = <500 << 77 regulator-max-microvolt = <500 << 78 gpio = <&axp_gpio 0 GPIO_ACTIV << 79 enable-active-high; << 80 }; 71 }; 81 72 82 wifi_pwrseq: pwrseq { !! 73 wifi_pwrseq: wifi_pwrseq { 83 compatible = "mmc-pwrseq-simpl 74 compatible = "mmc-pwrseq-simple"; 84 reset-gpios = <&r_pio 0 2 GPIO 75 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ 85 }; 76 }; 86 77 87 speaker_amp: audio-amplifier { 78 speaker_amp: audio-amplifier { 88 compatible = "simple-audio-amp 79 compatible = "simple-audio-amplifier"; 89 VCC-supply = <®_vcc5v0>; !! 80 /* >> 81 * TODO This is actually a fixed regulator controlled by >> 82 * the GPIO line on the PMIC. This should be corrected >> 83 * once GPIO support is added for this PMIC. >> 84 */ >> 85 VCC-supply = <®_ldo_io0>; 90 enable-gpios = <&pio 7 7 GPIO_ 86 enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ 91 sound-name-prefix = "Speaker A 87 sound-name-prefix = "Speaker Amp"; 92 }; 88 }; 93 89 94 }; 90 }; 95 91 96 &codec { 92 &codec { 97 status = "okay"; 93 status = "okay"; 98 }; 94 }; 99 95 100 &codec_analog { 96 &codec_analog { 101 cpvdd-supply = <®_eldo1>; 97 cpvdd-supply = <®_eldo1>; 102 status = "okay"; 98 status = "okay"; 103 }; 99 }; 104 100 105 &cpu0 { << 106 cpu-supply = <®_dcdc2>; << 107 }; << 108 << 109 &cpu1 { << 110 cpu-supply = <®_dcdc2>; << 111 }; << 112 << 113 &cpu2 { << 114 cpu-supply = <®_dcdc2>; << 115 }; << 116 << 117 &cpu3 { << 118 cpu-supply = <®_dcdc2>; << 119 }; << 120 << 121 &dai { 101 &dai { 122 status = "okay"; 102 status = "okay"; 123 }; 103 }; 124 104 125 &de { << 126 status = "okay"; << 127 }; << 128 << 129 &ehci0 { 105 &ehci0 { 130 status = "okay"; 106 status = "okay"; 131 }; 107 }; 132 108 133 &ehci1 { 109 &ehci1 { 134 status = "okay"; 110 status = "okay"; 135 }; 111 }; 136 112 137 &mixer0 { << 138 status = "okay"; << 139 }; << 140 << 141 &mmc0 { 113 &mmc0 { 142 pinctrl-names = "default"; 114 pinctrl-names = "default"; 143 pinctrl-0 = <&mmc0_pins>; 115 pinctrl-0 = <&mmc0_pins>; 144 vmmc-supply = <®_dcdc1>; 116 vmmc-supply = <®_dcdc1>; 145 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; !! 117 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 146 disable-wp; 118 disable-wp; 147 bus-width = <4>; 119 bus-width = <4>; 148 status = "okay"; 120 status = "okay"; 149 }; 121 }; 150 122 151 &mmc1 { 123 &mmc1 { 152 pinctrl-names = "default"; 124 pinctrl-names = "default"; 153 pinctrl-0 = <&mmc1_pins>; 125 pinctrl-0 = <&mmc1_pins>; 154 vmmc-supply = <®_dldo4>; 126 vmmc-supply = <®_dldo4>; 155 vqmmc-supply = <®_eldo1>; 127 vqmmc-supply = <®_eldo1>; 156 mmc-pwrseq = <&wifi_pwrseq>; 128 mmc-pwrseq = <&wifi_pwrseq>; 157 bus-width = <4>; 129 bus-width = <4>; 158 non-removable; 130 non-removable; 159 status = "okay"; 131 status = "okay"; 160 132 161 rtl8723cs: wifi@1 { 133 rtl8723cs: wifi@1 { 162 reg = <1>; 134 reg = <1>; 163 }; 135 }; 164 }; 136 }; 165 137 166 &mmc2 { 138 &mmc2 { 167 pinctrl-names = "default"; 139 pinctrl-names = "default"; 168 pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pi 140 pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>; 169 vmmc-supply = <®_dcdc1>; 141 vmmc-supply = <®_dcdc1>; 170 vqmmc-supply = <®_eldo1>; 142 vqmmc-supply = <®_eldo1>; 171 max-frequency = <200000000>; 143 max-frequency = <200000000>; 172 bus-width = <8>; 144 bus-width = <8>; 173 non-removable; 145 non-removable; 174 cap-mmc-hw-reset; 146 cap-mmc-hw-reset; 175 mmc-hs200-1_8v; 147 mmc-hs200-1_8v; 176 status = "okay"; 148 status = "okay"; 177 }; 149 }; 178 150 179 &ohci0 { 151 &ohci0 { 180 status = "okay"; 152 status = "okay"; 181 }; 153 }; 182 154 183 &ohci1 { 155 &ohci1 { 184 status = "okay"; 156 status = "okay"; 185 }; 157 }; 186 158 187 &pio { << 188 vcc-pc-supply = <®_eldo1>; << 189 vcc-pd-supply = <®_dcdc1>; << 190 vcc-pe-supply = <®_aldo1>; << 191 vcc-pg-supply = <®_eldo1>; << 192 }; << 193 << 194 &pwm { 159 &pwm { 195 status = "okay"; 160 status = "okay"; 196 }; 161 }; 197 162 198 &r_i2c { << 199 clock-frequency = <100000>; << 200 pinctrl-names = "default"; << 201 pinctrl-0 = <&r_i2c_pl89_pins>; << 202 status = "okay"; << 203 << 204 anx6345: anx6345@38 { << 205 compatible = "analogix,anx6345 << 206 reg = <0x38>; << 207 reset-gpios = <&pio 3 24 GPIO_ << 208 dvdd25-supply = <®_dldo2>; << 209 dvdd12-supply = <®_fldo1>; << 210 << 211 ports { << 212 #address-cells = <1>; << 213 #size-cells = <0>; << 214 << 215 anx6345_in: port@0 { << 216 reg = <0>; << 217 anx6345_in_tco << 218 remote << 219 }; << 220 }; << 221 << 222 anx6345_out: port@1 { << 223 reg = <1>; << 224 anx6345_out_ed << 225 remote << 226 }; << 227 }; << 228 }; << 229 }; << 230 }; << 231 << 232 &r_pio { << 233 /* << 234 * FIXME: We can't add that supply for << 235 * create a circular dependency betwee << 236 * and the RSB Bus. << 237 * << 238 * vcc-pl-supply = <®_aldo2>; << 239 */ << 240 }; << 241 << 242 &r_rsb { 163 &r_rsb { 243 status = "okay"; 164 status = "okay"; 244 165 245 axp803: pmic@3a3 { 166 axp803: pmic@3a3 { 246 compatible = "x-powers,axp803" 167 compatible = "x-powers,axp803"; 247 reg = <0x3a3>; 168 reg = <0x3a3>; 248 interrupt-parent = <&r_intc>; 169 interrupt-parent = <&r_intc>; 249 interrupts = <GIC_SPI 32 IRQ_T !! 170 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 250 }; 171 }; 251 }; 172 }; 252 173 >> 174 /* The ANX6345 eDP-bridge is on r_i2c */ >> 175 &r_i2c { >> 176 clock-frequency = <100000>; >> 177 pinctrl-names = "default"; >> 178 pinctrl-0 = <&r_i2c_pl89_pins>; >> 179 status = "okay"; >> 180 }; >> 181 253 #include "axp803.dtsi" 182 #include "axp803.dtsi" 254 183 255 &ac_power_supply { 184 &ac_power_supply { 256 status = "okay"; 185 status = "okay"; 257 }; 186 }; 258 187 259 &battery_power_supply { 188 &battery_power_supply { 260 status = "okay"; 189 status = "okay"; 261 }; 190 }; 262 191 263 ®_aldo1 { 192 ®_aldo1 { 264 regulator-name = "vcc-pe"; !! 193 regulator-min-microvolt = <2800000>; >> 194 regulator-max-microvolt = <2800000>; >> 195 regulator-name = "vcc-csi"; 265 }; 196 }; 266 197 267 ®_aldo2 { 198 ®_aldo2 { 268 regulator-always-on; 199 regulator-always-on; 269 regulator-min-microvolt = <1800000>; 200 regulator-min-microvolt = <1800000>; 270 regulator-max-microvolt = <3300000>; 201 regulator-max-microvolt = <3300000>; 271 regulator-name = "vcc-pl"; 202 regulator-name = "vcc-pl"; 272 }; 203 }; 273 204 274 ®_aldo3 { 205 ®_aldo3 { 275 regulator-always-on; 206 regulator-always-on; 276 regulator-min-microvolt = <2700000>; 207 regulator-min-microvolt = <2700000>; 277 regulator-max-microvolt = <3300000>; 208 regulator-max-microvolt = <3300000>; 278 regulator-name = "vcc-pll-avcc"; 209 regulator-name = "vcc-pll-avcc"; 279 }; 210 }; 280 211 281 ®_dc1sw { 212 ®_dc1sw { 282 regulator-name = "vcc-lcd"; 213 regulator-name = "vcc-lcd"; 283 }; 214 }; 284 215 285 ®_dcdc1 { 216 ®_dcdc1 { 286 regulator-always-on; 217 regulator-always-on; 287 regulator-min-microvolt = <3300000>; 218 regulator-min-microvolt = <3300000>; 288 regulator-max-microvolt = <3300000>; 219 regulator-max-microvolt = <3300000>; 289 regulator-name = "vcc-3v3"; 220 regulator-name = "vcc-3v3"; 290 }; 221 }; 291 222 292 ®_dcdc2 { 223 ®_dcdc2 { 293 regulator-always-on; 224 regulator-always-on; 294 regulator-min-microvolt = <1000000>; 225 regulator-min-microvolt = <1000000>; 295 regulator-max-microvolt = <1300000>; 226 regulator-max-microvolt = <1300000>; 296 regulator-name = "vdd-cpux"; 227 regulator-name = "vdd-cpux"; 297 }; 228 }; 298 229 299 /* DCDC3 is polyphased with DCDC2 */ 230 /* DCDC3 is polyphased with DCDC2 */ 300 231 301 ®_dcdc5 { 232 ®_dcdc5 { 302 regulator-always-on; 233 regulator-always-on; 303 regulator-min-microvolt = <1200000>; 234 regulator-min-microvolt = <1200000>; 304 regulator-max-microvolt = <1200000>; 235 regulator-max-microvolt = <1200000>; 305 regulator-name = "vcc-dram"; 236 regulator-name = "vcc-dram"; 306 }; 237 }; 307 238 308 ®_dcdc6 { 239 ®_dcdc6 { 309 regulator-always-on; 240 regulator-always-on; 310 regulator-min-microvolt = <1100000>; 241 regulator-min-microvolt = <1100000>; 311 regulator-max-microvolt = <1100000>; 242 regulator-max-microvolt = <1100000>; 312 regulator-name = "vdd-sys"; 243 regulator-name = "vdd-sys"; 313 }; 244 }; 314 245 315 ®_dldo1 { 246 ®_dldo1 { 316 regulator-min-microvolt = <3300000>; 247 regulator-min-microvolt = <3300000>; 317 regulator-max-microvolt = <3300000>; 248 regulator-max-microvolt = <3300000>; 318 regulator-name = "vcc-hdmi"; 249 regulator-name = "vcc-hdmi"; 319 }; 250 }; 320 251 321 ®_dldo2 { 252 ®_dldo2 { 322 regulator-min-microvolt = <2500000>; 253 regulator-min-microvolt = <2500000>; 323 regulator-max-microvolt = <2500000>; 254 regulator-max-microvolt = <2500000>; 324 regulator-name = "vcc-edp"; 255 regulator-name = "vcc-edp"; 325 }; 256 }; 326 257 >> 258 ®_dldo3 { >> 259 regulator-min-microvolt = <3300000>; >> 260 regulator-max-microvolt = <3300000>; >> 261 regulator-name = "avdd-csi"; >> 262 }; >> 263 327 ®_dldo4 { 264 ®_dldo4 { 328 regulator-min-microvolt = <3300000>; 265 regulator-min-microvolt = <3300000>; 329 regulator-max-microvolt = <3300000>; 266 regulator-max-microvolt = <3300000>; 330 regulator-name = "vcc-wifi"; 267 regulator-name = "vcc-wifi"; 331 }; 268 }; 332 269 333 ®_eldo1 { 270 ®_eldo1 { 334 regulator-always-on; 271 regulator-always-on; 335 regulator-min-microvolt = <1800000>; 272 regulator-min-microvolt = <1800000>; 336 regulator-max-microvolt = <1800000>; 273 regulator-max-microvolt = <1800000>; 337 regulator-name = "cpvdd"; 274 regulator-name = "cpvdd"; 338 }; 275 }; 339 276 >> 277 ®_eldo3 { >> 278 regulator-min-microvolt = <1800000>; >> 279 regulator-max-microvolt = <1800000>; >> 280 regulator-name = "vdd-1v8-csi"; >> 281 }; >> 282 340 ®_fldo1 { 283 ®_fldo1 { 341 regulator-min-microvolt = <1200000>; 284 regulator-min-microvolt = <1200000>; 342 regulator-max-microvolt = <1200000>; 285 regulator-max-microvolt = <1200000>; 343 regulator-name = "vcc-1v2-hsic"; 286 regulator-name = "vcc-1v2-hsic"; 344 }; 287 }; 345 288 346 ®_fldo2 { 289 ®_fldo2 { 347 regulator-always-on; 290 regulator-always-on; 348 regulator-min-microvolt = <1100000>; 291 regulator-min-microvolt = <1100000>; 349 regulator-max-microvolt = <1100000>; 292 regulator-max-microvolt = <1100000>; 350 regulator-name = "vdd-cpus"; 293 regulator-name = "vdd-cpus"; 351 }; 294 }; 352 295 353 ®_rtc_ldo { !! 296 ®_ldo_io0 { 354 regulator-name = "vcc-rtc"; !! 297 regulator-min-microvolt = <3300000>; >> 298 regulator-max-microvolt = <3300000>; >> 299 regulator-name = "vcc-usb"; >> 300 status = "okay"; 355 }; 301 }; 356 302 357 &simplefb_lcd { !! 303 ®_rtc_ldo { 358 panel-supply = <®_dc1sw>; !! 304 regulator-name = "vcc-rtc"; 359 dvdd25-supply = <®_dldo2>; << 360 dvdd12-supply = <®_fldo1>; << 361 }; 305 }; 362 306 363 &simplefb_hdmi { 307 &simplefb_hdmi { 364 vcc-hdmi-supply = <®_dldo1>; 308 vcc-hdmi-supply = <®_dldo1>; 365 }; 309 }; 366 310 367 &sound { 311 &sound { 368 status = "okay"; 312 status = "okay"; 369 simple-audio-card,aux-devs = <&codec_a 313 simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>; 370 simple-audio-card,widgets = "Microphon 314 simple-audio-card,widgets = "Microphone", "Internal Microphone Left", 371 "Microphon 315 "Microphone", "Internal Microphone Right", 372 "Headphone 316 "Headphone", "Headphone Jack", 373 "Speaker", 317 "Speaker", "Internal Speaker"; 374 simple-audio-card,routing = 318 simple-audio-card,routing = 375 "Left DAC", "DACL", !! 319 "Left DAC", "AIF1 Slot 0 Left", 376 "Right DAC", "DACR", !! 320 "Right DAC", "AIF1 Slot 0 Right", 377 "Speaker Amp INL", "LI 321 "Speaker Amp INL", "LINEOUT", 378 "Speaker Amp INR", "LI 322 "Speaker Amp INR", "LINEOUT", 379 "Internal Speaker", "S 323 "Internal Speaker", "Speaker Amp OUTL", 380 "Internal Speaker", "S 324 "Internal Speaker", "Speaker Amp OUTR", 381 "Headphone Jack", "HP" 325 "Headphone Jack", "HP", 382 "ADCL", "Left ADC", !! 326 "AIF1 Slot 0 Left ADC", "Left ADC", 383 "ADCR", "Right ADC", !! 327 "AIF1 Slot 0 Right ADC", "Right ADC", 384 "Internal Microphone L 328 "Internal Microphone Left", "MBIAS", 385 "MIC1", "Internal Micr 329 "MIC1", "Internal Microphone Left", 386 "Internal Microphone R 330 "Internal Microphone Right", "HBIAS", 387 "MIC2", "Internal Micr 331 "MIC2", "Internal Microphone Right"; 388 }; 332 }; 389 333 390 &tcon0 { << 391 pinctrl-names = "default"; << 392 pinctrl-0 = <&lcd_rgb666_pins>; << 393 << 394 status = "okay"; << 395 }; << 396 << 397 &tcon0_out { << 398 tcon0_out_anx6345: endpoint { << 399 remote-endpoint = <&anx6345_in << 400 }; << 401 }; << 402 << 403 &uart0 { 334 &uart0 { 404 pinctrl-names = "default"; 335 pinctrl-names = "default"; 405 pinctrl-0 = <&uart0_pb_pins>; 336 pinctrl-0 = <&uart0_pb_pins>; 406 status = "okay"; 337 status = "okay"; 407 }; 338 }; 408 339 409 &uart1 { << 410 pinctrl-names = "default"; << 411 pinctrl-0 = <&uart1_pins>, <&uart1_rts << 412 uart-has-rtscts; << 413 status = "okay"; << 414 << 415 bluetooth { << 416 compatible = "realtek,rtl8723c << 417 device-wake-gpios = <&r_pio 0 << 418 enable-gpios = <&r_pio 0 4 GPI << 419 host-wake-gpios = <&r_pio 0 6 << 420 }; << 421 }; << 422 << 423 &usb_otg { 340 &usb_otg { 424 dr_mode = "host"; 341 dr_mode = "host"; 425 }; 342 }; 426 343 427 &usbphy { 344 &usbphy { 428 usb0_vbus-supply = <®_vcc5v0>; !! 345 usb0_vbus-supply = <®_ldo_io0>; 429 usb1_vbus-supply = <®_vcc5v0>; !! 346 usb1_vbus-supply = <®_ldo_io0>; 430 status = "okay"; 347 status = "okay"; 431 }; 348 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.