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 backlight: backlight { 25 backlight: backlight { 26 compatible = "pwm-backlight"; 26 compatible = "pwm-backlight"; 27 pwms = <&pwm 0 50000 0>; 27 pwms = <&pwm 0 50000 0>; 28 brightness-levels = <0 5 10 15 28 brightness-levels = <0 5 10 15 20 30 40 55 70 85 100>; 29 default-brightness-level = <2> 29 default-brightness-level = <2>; 30 enable-gpios = <&pio 3 23 GPIO 30 enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */ 31 power-supply = <®_vbklt>; << 32 }; 31 }; 33 32 34 chosen { 33 chosen { 35 stdout-path = "serial0:115200n 34 stdout-path = "serial0:115200n8"; >> 35 >> 36 framebuffer-lcd { >> 37 panel-supply = <®_dc1sw>; >> 38 dvdd25-supply = <®_dldo2>; >> 39 dvdd12-supply = <®_fldo1>; >> 40 }; 36 }; 41 }; 37 42 38 gpio-keys { !! 43 gpio_keys { 39 compatible = "gpio-keys"; 44 compatible = "gpio-keys"; 40 45 41 lid-switch { !! 46 lid_switch { 42 label = "Lid Switch"; 47 label = "Lid Switch"; 43 gpios = <&r_pio 0 12 G 48 gpios = <&r_pio 0 12 GPIO_ACTIVE_LOW>; /* PL12 */ 44 linux,input-type = <EV 49 linux,input-type = <EV_SW>; 45 linux,code = <SW_LID>; 50 linux,code = <SW_LID>; 46 linux,can-disable; 51 linux,can-disable; 47 wakeup-source; 52 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 }; 53 }; 62 }; 54 }; 63 55 64 reg_vbklt: vbklt { !! 56 reg_vcc3v3: vcc3v3 { 65 compatible = "regulator-fixed" << 66 regulator-name = "vbklt"; << 67 regulator-min-microvolt = <180 << 68 regulator-max-microvolt = <180 << 69 gpio = <&pio 7 6 GPIO_ACTIVE_H << 70 enable-active-high; << 71 }; << 72 << 73 reg_vcc5v0: vcc5v0 { << 74 compatible = "regulator-fixed" 57 compatible = "regulator-fixed"; 75 regulator-name = "vcc5v0"; !! 58 regulator-name = "vcc3v3"; 76 regulator-min-microvolt = <500 !! 59 regulator-min-microvolt = <3300000>; 77 regulator-max-microvolt = <500 !! 60 regulator-max-microvolt = <3300000>; 78 gpio = <&axp_gpio 0 GPIO_ACTIV << 79 enable-active-high; << 80 }; 61 }; 81 62 82 wifi_pwrseq: pwrseq { !! 63 wifi_pwrseq: wifi_pwrseq { 83 compatible = "mmc-pwrseq-simpl 64 compatible = "mmc-pwrseq-simple"; 84 reset-gpios = <&r_pio 0 2 GPIO 65 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ 85 }; 66 }; 86 << 87 speaker_amp: audio-amplifier { << 88 compatible = "simple-audio-amp << 89 VCC-supply = <®_vcc5v0>; << 90 enable-gpios = <&pio 7 7 GPIO_ << 91 sound-name-prefix = "Speaker A << 92 }; << 93 << 94 }; << 95 << 96 &codec { << 97 status = "okay"; << 98 }; << 99 << 100 &codec_analog { << 101 cpvdd-supply = <®_eldo1>; << 102 status = "okay"; << 103 }; << 104 << 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 { << 122 status = "okay"; << 123 }; << 124 << 125 &de { << 126 status = "okay"; << 127 }; 67 }; 128 68 129 &ehci0 { 69 &ehci0 { >> 70 phys = <&usbphy 0>; >> 71 phy-names = "usb"; 130 status = "okay"; 72 status = "okay"; 131 }; 73 }; 132 74 133 &ehci1 { 75 &ehci1 { 134 status = "okay"; 76 status = "okay"; 135 }; 77 }; 136 78 137 &mixer0 { << 138 status = "okay"; << 139 }; << 140 << 141 &mmc0 { 79 &mmc0 { 142 pinctrl-names = "default"; 80 pinctrl-names = "default"; 143 pinctrl-0 = <&mmc0_pins>; 81 pinctrl-0 = <&mmc0_pins>; 144 vmmc-supply = <®_dcdc1>; 82 vmmc-supply = <®_dcdc1>; 145 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; !! 83 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 146 disable-wp; 84 disable-wp; 147 bus-width = <4>; 85 bus-width = <4>; 148 status = "okay"; 86 status = "okay"; 149 }; 87 }; 150 88 151 &mmc1 { 89 &mmc1 { 152 pinctrl-names = "default"; 90 pinctrl-names = "default"; 153 pinctrl-0 = <&mmc1_pins>; 91 pinctrl-0 = <&mmc1_pins>; 154 vmmc-supply = <®_dldo4>; 92 vmmc-supply = <®_dldo4>; 155 vqmmc-supply = <®_eldo1>; 93 vqmmc-supply = <®_eldo1>; 156 mmc-pwrseq = <&wifi_pwrseq>; 94 mmc-pwrseq = <&wifi_pwrseq>; 157 bus-width = <4>; 95 bus-width = <4>; 158 non-removable; 96 non-removable; 159 status = "okay"; 97 status = "okay"; 160 98 161 rtl8723cs: wifi@1 { 99 rtl8723cs: wifi@1 { 162 reg = <1>; 100 reg = <1>; 163 }; 101 }; 164 }; 102 }; 165 103 166 &mmc2 { 104 &mmc2 { 167 pinctrl-names = "default"; 105 pinctrl-names = "default"; 168 pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pi 106 pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>; 169 vmmc-supply = <®_dcdc1>; 107 vmmc-supply = <®_dcdc1>; 170 vqmmc-supply = <®_eldo1>; 108 vqmmc-supply = <®_eldo1>; 171 max-frequency = <200000000>; << 172 bus-width = <8>; 109 bus-width = <8>; 173 non-removable; 110 non-removable; 174 cap-mmc-hw-reset; 111 cap-mmc-hw-reset; 175 mmc-hs200-1_8v; 112 mmc-hs200-1_8v; 176 status = "okay"; 113 status = "okay"; 177 }; 114 }; 178 115 179 &ohci0 { 116 &ohci0 { >> 117 phys = <&usbphy 0>; >> 118 phy-names = "usb"; 180 status = "okay"; 119 status = "okay"; 181 }; 120 }; 182 121 183 &ohci1 { 122 &ohci1 { 184 status = "okay"; 123 status = "okay"; 185 }; 124 }; 186 125 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 { 126 &pwm { 195 status = "okay"; 127 status = "okay"; 196 }; 128 }; 197 129 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 { 130 &r_rsb { 243 status = "okay"; 131 status = "okay"; 244 132 245 axp803: pmic@3a3 { 133 axp803: pmic@3a3 { 246 compatible = "x-powers,axp803" 134 compatible = "x-powers,axp803"; 247 reg = <0x3a3>; 135 reg = <0x3a3>; 248 interrupt-parent = <&r_intc>; 136 interrupt-parent = <&r_intc>; 249 interrupts = <GIC_SPI 32 IRQ_T !! 137 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 250 }; 138 }; 251 }; 139 }; 252 140 253 #include "axp803.dtsi" !! 141 /* The ANX6345 eDP-bridge is on r_i2c */ 254 !! 142 &r_i2c { 255 &ac_power_supply { !! 143 clock-frequency = <100000>; >> 144 pinctrl-names = "default"; >> 145 pinctrl-0 = <&r_i2c_pl89_pins>; 256 status = "okay"; 146 status = "okay"; 257 }; 147 }; 258 148 259 &battery_power_supply { !! 149 #include "axp803.dtsi" 260 status = "okay"; << 261 }; << 262 150 263 ®_aldo1 { 151 ®_aldo1 { 264 regulator-name = "vcc-pe"; !! 152 regulator-min-microvolt = <2800000>; >> 153 regulator-max-microvolt = <2800000>; >> 154 regulator-name = "vcc-csi"; 265 }; 155 }; 266 156 267 ®_aldo2 { 157 ®_aldo2 { 268 regulator-always-on; 158 regulator-always-on; 269 regulator-min-microvolt = <1800000>; 159 regulator-min-microvolt = <1800000>; 270 regulator-max-microvolt = <3300000>; 160 regulator-max-microvolt = <3300000>; 271 regulator-name = "vcc-pl"; 161 regulator-name = "vcc-pl"; 272 }; 162 }; 273 163 274 ®_aldo3 { 164 ®_aldo3 { 275 regulator-always-on; 165 regulator-always-on; 276 regulator-min-microvolt = <2700000>; 166 regulator-min-microvolt = <2700000>; 277 regulator-max-microvolt = <3300000>; 167 regulator-max-microvolt = <3300000>; 278 regulator-name = "vcc-pll-avcc"; 168 regulator-name = "vcc-pll-avcc"; 279 }; 169 }; 280 170 281 ®_dc1sw { 171 ®_dc1sw { 282 regulator-name = "vcc-lcd"; 172 regulator-name = "vcc-lcd"; 283 }; 173 }; 284 174 285 ®_dcdc1 { 175 ®_dcdc1 { 286 regulator-always-on; 176 regulator-always-on; 287 regulator-min-microvolt = <3300000>; 177 regulator-min-microvolt = <3300000>; 288 regulator-max-microvolt = <3300000>; 178 regulator-max-microvolt = <3300000>; 289 regulator-name = "vcc-3v3"; 179 regulator-name = "vcc-3v3"; 290 }; 180 }; 291 181 292 ®_dcdc2 { 182 ®_dcdc2 { 293 regulator-always-on; 183 regulator-always-on; 294 regulator-min-microvolt = <1000000>; 184 regulator-min-microvolt = <1000000>; 295 regulator-max-microvolt = <1300000>; 185 regulator-max-microvolt = <1300000>; 296 regulator-name = "vdd-cpux"; 186 regulator-name = "vdd-cpux"; 297 }; 187 }; 298 188 299 /* DCDC3 is polyphased with DCDC2 */ 189 /* DCDC3 is polyphased with DCDC2 */ 300 190 301 ®_dcdc5 { 191 ®_dcdc5 { 302 regulator-always-on; 192 regulator-always-on; 303 regulator-min-microvolt = <1200000>; 193 regulator-min-microvolt = <1200000>; 304 regulator-max-microvolt = <1200000>; 194 regulator-max-microvolt = <1200000>; 305 regulator-name = "vcc-dram"; 195 regulator-name = "vcc-dram"; 306 }; 196 }; 307 197 308 ®_dcdc6 { 198 ®_dcdc6 { 309 regulator-always-on; 199 regulator-always-on; 310 regulator-min-microvolt = <1100000>; 200 regulator-min-microvolt = <1100000>; 311 regulator-max-microvolt = <1100000>; 201 regulator-max-microvolt = <1100000>; 312 regulator-name = "vdd-sys"; 202 regulator-name = "vdd-sys"; 313 }; 203 }; 314 204 315 ®_dldo1 { 205 ®_dldo1 { 316 regulator-min-microvolt = <3300000>; 206 regulator-min-microvolt = <3300000>; 317 regulator-max-microvolt = <3300000>; 207 regulator-max-microvolt = <3300000>; 318 regulator-name = "vcc-hdmi"; 208 regulator-name = "vcc-hdmi"; 319 }; 209 }; 320 210 321 ®_dldo2 { 211 ®_dldo2 { 322 regulator-min-microvolt = <2500000>; 212 regulator-min-microvolt = <2500000>; 323 regulator-max-microvolt = <2500000>; 213 regulator-max-microvolt = <2500000>; 324 regulator-name = "vcc-edp"; 214 regulator-name = "vcc-edp"; 325 }; 215 }; 326 216 >> 217 ®_dldo3 { >> 218 regulator-min-microvolt = <3300000>; >> 219 regulator-max-microvolt = <3300000>; >> 220 regulator-name = "avdd-csi"; >> 221 }; >> 222 327 ®_dldo4 { 223 ®_dldo4 { 328 regulator-min-microvolt = <3300000>; 224 regulator-min-microvolt = <3300000>; 329 regulator-max-microvolt = <3300000>; 225 regulator-max-microvolt = <3300000>; 330 regulator-name = "vcc-wifi"; 226 regulator-name = "vcc-wifi"; 331 }; 227 }; 332 228 333 ®_eldo1 { 229 ®_eldo1 { 334 regulator-always-on; 230 regulator-always-on; 335 regulator-min-microvolt = <1800000>; 231 regulator-min-microvolt = <1800000>; 336 regulator-max-microvolt = <1800000>; 232 regulator-max-microvolt = <1800000>; 337 regulator-name = "cpvdd"; 233 regulator-name = "cpvdd"; 338 }; 234 }; 339 235 >> 236 ®_eldo3 { >> 237 regulator-min-microvolt = <1800000>; >> 238 regulator-max-microvolt = <1800000>; >> 239 regulator-name = "vdd-1v8-csi"; >> 240 }; >> 241 340 ®_fldo1 { 242 ®_fldo1 { 341 regulator-min-microvolt = <1200000>; 243 regulator-min-microvolt = <1200000>; 342 regulator-max-microvolt = <1200000>; 244 regulator-max-microvolt = <1200000>; 343 regulator-name = "vcc-1v2-hsic"; 245 regulator-name = "vcc-1v2-hsic"; 344 }; 246 }; 345 247 346 ®_fldo2 { 248 ®_fldo2 { 347 regulator-always-on; 249 regulator-always-on; 348 regulator-min-microvolt = <1100000>; 250 regulator-min-microvolt = <1100000>; 349 regulator-max-microvolt = <1100000>; 251 regulator-max-microvolt = <1100000>; 350 regulator-name = "vdd-cpus"; 252 regulator-name = "vdd-cpus"; 351 }; 253 }; 352 254 353 ®_rtc_ldo { !! 255 ®_ldo_io0 { 354 regulator-name = "vcc-rtc"; !! 256 regulator-min-microvolt = <3300000>; >> 257 regulator-max-microvolt = <3300000>; >> 258 regulator-name = "vcc-usb"; >> 259 status = "okay"; 355 }; 260 }; 356 261 357 &simplefb_lcd { !! 262 ®_rtc_ldo { 358 panel-supply = <®_dc1sw>; !! 263 regulator-name = "vcc-rtc"; 359 dvdd25-supply = <®_dldo2>; << 360 dvdd12-supply = <®_fldo1>; << 361 }; 264 }; 362 265 363 &simplefb_hdmi { 266 &simplefb_hdmi { 364 vcc-hdmi-supply = <®_dldo1>; 267 vcc-hdmi-supply = <®_dldo1>; 365 }; 268 }; 366 269 367 &sound { << 368 status = "okay"; << 369 simple-audio-card,aux-devs = <&codec_a << 370 simple-audio-card,widgets = "Microphon << 371 "Microphon << 372 "Headphone << 373 "Speaker", << 374 simple-audio-card,routing = << 375 "Left DAC", "DACL", << 376 "Right DAC", "DACR", << 377 "Speaker Amp INL", "LI << 378 "Speaker Amp INR", "LI << 379 "Internal Speaker", "S << 380 "Internal Speaker", "S << 381 "Headphone Jack", "HP" << 382 "ADCL", "Left ADC", << 383 "ADCR", "Right ADC", << 384 "Internal Microphone L << 385 "MIC1", "Internal Micr << 386 "Internal Microphone R << 387 "MIC2", "Internal Micr << 388 }; << 389 << 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 { 270 &uart0 { 404 pinctrl-names = "default"; 271 pinctrl-names = "default"; 405 pinctrl-0 = <&uart0_pb_pins>; 272 pinctrl-0 = <&uart0_pb_pins>; 406 status = "okay"; 273 status = "okay"; 407 }; 274 }; 408 275 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 { 276 &usb_otg { 424 dr_mode = "host"; 277 dr_mode = "host"; 425 }; 278 }; 426 279 427 &usbphy { 280 &usbphy { 428 usb0_vbus-supply = <®_vcc5v0>; !! 281 usb0_vbus-supply = <®_ldo_io0>; 429 usb1_vbus-supply = <®_vcc5v0>; !! 282 usb1_vbus-supply = <®_ldo_io0>; 430 status = "okay"; 283 status = "okay"; 431 }; 284 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.