1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2// Copyright (C) 2017 Jagan Teki <jteki@openedev.com> 3// Copyright (C) 2017-2018 Samuel Holland <samuel@sholland.org> 4 5/dts-v1/; 6 7#include "sun50i-a64.dtsi" 8#include "sun50i-a64-cpu-opp.dtsi" 9 10#include <dt-bindings/gpio/gpio.h> 11 12/ { 13 model = "OrangePi Win/Win Plus"; 14 compatible = "xunlong,orangepi-win", "allwinner,sun50i-a64"; 15 16 aliases { 17 ethernet0 = &emac; 18 serial0 = &uart0; 19 serial1 = &uart1; 20 serial2 = &uart2; 21 serial3 = &uart3; 22 serial4 = &uart4; 23 }; 24 25 chosen { 26 stdout-path = "serial0:115200n8"; 27 }; 28 29 hdmi-connector { 30 compatible = "hdmi-connector"; 31 type = "a"; 32 33 port { 34 hdmi_con_in: endpoint { 35 remote-endpoint = <&hdmi_out_con>; 36 }; 37 }; 38 }; 39 40 leds { 41 compatible = "gpio-leds"; 42 43 status { 44 label = "orangepi:green:status"; 45 gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */ 46 }; 47 }; 48 49 reg_gmac_3v3: gmac-3v3 { 50 compatible = "regulator-fixed"; 51 regulator-name = "gmac-3v3"; 52 regulator-min-microvolt = <3300000>; 53 regulator-max-microvolt = <3300000>; 54 regulator-boot-on; 55 enable-active-high; 56 gpio = <&pio 3 14 GPIO_ACTIVE_HIGH>; /* PD14 */ 57 status = "okay"; 58 }; 59 60 reg_usb1_vbus: usb1-vbus { 61 compatible = "regulator-fixed"; 62 regulator-name = "usb1-vbus"; 63 regulator-min-microvolt = <5000000>; 64 regulator-max-microvolt = <5000000>; 65 regulator-boot-on; 66 enable-active-high; 67 gpio = <&pio 3 7 GPIO_ACTIVE_HIGH>; /* PD7 */ 68 status = "okay"; 69 }; 70 71 wifi_pwrseq: wifi_pwrseq { 72 compatible = "mmc-pwrseq-simple"; 73 reset-gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */ 74 clocks = <&rtc 1>; 75 clock-names = "ext_clock"; 76 }; 77}; 78 79&codec { 80 status = "okay"; 81}; 82 83&codec_analog { 84 cpvdd-supply = <®_eldo1>; 85 status = "okay"; 86}; 87 88&cpu0 { 89 cpu-supply = <®_dcdc2>; 90}; 91 92&cpu1 { 93 cpu-supply = <®_dcdc2>; 94}; 95 96&cpu2 { 97 cpu-supply = <®_dcdc2>; 98}; 99 100&cpu3 { 101 cpu-supply = <®_dcdc2>; 102}; 103 104&dai { 105 status = "okay"; 106}; 107 108&de { 109 status = "okay"; 110}; 111 112&ehci0 { 113 status = "okay"; 114}; 115 116&ehci1 { 117 status = "okay"; 118}; 119 120&emac { 121 pinctrl-names = "default"; 122 pinctrl-0 = <&rgmii_pins>; 123 phy-mode = "rgmii"; 124 phy-handle = <&ext_rgmii_phy>; 125 phy-supply = <®_gmac_3v3>; 126 status = "okay"; 127}; 128 129&hdmi { 130 hvcc-supply = <®_dldo1>; 131 status = "okay"; 132}; 133 134&hdmi_out { 135 hdmi_out_con: endpoint { 136 remote-endpoint = <&hdmi_con_in>; 137 }; 138}; 139 140&mdio { 141 ext_rgmii_phy: ethernet-phy@1 { 142 compatible = "ethernet-phy-ieee802.3-c22"; 143 reg = <1>; 144 }; 145}; 146 147&mmc0 { 148 pinctrl-names = "default"; 149 pinctrl-0 = <&mmc0_pins>; 150 vmmc-supply = <®_dcdc1>; 151 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ 152 disable-wp; 153 bus-width = <4>; 154 status = "okay"; 155}; 156 157&mmc1 { 158 pinctrl-names = "default"; 159 pinctrl-0 = <&mmc1_pins>; 160 vmmc-supply = <®_dldo2>; 161 vqmmc-supply = <®_dldo4>; 162 mmc-pwrseq = <&wifi_pwrseq>; 163 bus-width = <4>; 164 non-removable; 165 status = "okay"; 166 167 brcmf: wifi@1 { 168 reg = <1>; 169 compatible = "brcm,bcm4329-fmac"; 170 interrupt-parent = <&r_pio>; 171 interrupts = <0 7 IRQ_TYPE_LEVEL_LOW>; /* PL7 */ 172 interrupt-names = "host-wake"; 173 }; 174}; 175 176&ohci0 { 177 status = "okay"; 178}; 179 180&ohci1 { 181 status = "okay"; 182}; 183 184&r_ir { 185 status = "okay"; 186}; 187 188&r_rsb { 189 status = "okay"; 190 191 axp803: pmic@3a3 { 192 compatible = "x-powers,axp803"; 193 reg = <0x3a3>; 194 interrupt-parent = <&r_intc>; 195 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 196 x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */ 197 }; 198}; 199 200#include "axp803.dtsi" 201 202&ac_power_supply { 203 status = "okay"; 204}; 205 206&battery_power_supply { 207 status = "okay"; 208}; 209 210®_aldo1 { 211 regulator-min-microvolt = <2800000>; 212 regulator-max-microvolt = <2800000>; 213 regulator-name = "afvcc-csi"; 214}; 215 216®_aldo2 { 217 regulator-always-on; 218 regulator-min-microvolt = <1800000>; 219 regulator-max-microvolt = <3300000>; 220 regulator-name = "vcc-pl"; 221}; 222 223®_aldo3 { 224 regulator-always-on; 225 regulator-min-microvolt = <3000000>; 226 regulator-max-microvolt = <3000000>; 227 regulator-name = "vcc-pll-avcc"; 228}; 229 230®_dcdc1 { 231 regulator-always-on; 232 regulator-min-microvolt = <3300000>; 233 regulator-max-microvolt = <3300000>; 234 regulator-name = "vcc-3v3"; 235}; 236 237®_dcdc2 { 238 regulator-always-on; 239 regulator-min-microvolt = <1040000>; 240 regulator-max-microvolt = <1300000>; 241 regulator-name = "vdd-cpux"; 242}; 243 244/* DCDC3 is polyphased with DCDC2 */ 245 246®_dcdc5 { 247 regulator-always-on; 248 regulator-min-microvolt = <1500000>; 249 regulator-max-microvolt = <1500000>; 250 regulator-name = "vcc-dram"; 251}; 252 253®_dcdc6 { 254 regulator-always-on; 255 regulator-min-microvolt = <1100000>; 256 regulator-max-microvolt = <1100000>; 257 regulator-name = "vdd-sys"; 258}; 259 260®_dldo1 { 261 regulator-min-microvolt = <3300000>; 262 regulator-max-microvolt = <3300000>; 263 regulator-name = "vcc-hdmi-dsi"; 264}; 265 266®_dldo2 { 267 regulator-min-microvolt = <3300000>; 268 regulator-max-microvolt = <3300000>; 269 regulator-name = "vcc-wifi"; 270}; 271 272®_dldo3 { 273 regulator-min-microvolt = <3300000>; 274 regulator-max-microvolt = <3300000>; 275 regulator-name = "avdd-csi"; 276}; 277 278®_dldo4 { 279 regulator-min-microvolt = <3300000>; 280 regulator-max-microvolt = <3300000>; 281 regulator-name = "vcc-wifi-io"; 282}; 283 284®_drivevbus { 285 regulator-name = "usb0-vbus"; 286 status = "okay"; 287}; 288 289®_eldo1 { 290 regulator-min-microvolt = <1800000>; 291 regulator-max-microvolt = <1800000>; 292 regulator-name = "cpvdd"; 293}; 294 295®_eldo3 { 296 regulator-min-microvolt = <1500000>; 297 regulator-max-microvolt = <1800000>; 298 regulator-name = "dvdd-csi"; 299}; 300 301®_fldo1 { 302 regulator-min-microvolt = <1200000>; 303 regulator-max-microvolt = <1200000>; 304 regulator-name = "vcc-1v2-hsic"; 305}; 306 307/* 308 * The A64 chip cannot work without this regulator off, although 309 * it seems to be only driving the AR100 core. 310 * Maybe we don't still know well about CPUs domain. 311 */ 312®_fldo2 { 313 regulator-always-on; 314 regulator-min-microvolt = <1100000>; 315 regulator-max-microvolt = <1100000>; 316 regulator-name = "vdd-cpus"; 317}; 318 319®_rtc_ldo { 320 regulator-name = "vcc-rtc"; 321}; 322 323&simplefb_hdmi { 324 vcc-hdmi-supply = <®_dldo1>; 325}; 326 327&sound { 328 status = "okay"; 329 simple-audio-card,widgets = "Headphone", "Headphone Jack", 330 "Microphone", "Microphone Jack", 331 "Microphone", "Onboard Microphone"; 332 simple-audio-card,routing = 333 "Left DAC", "AIF1 Slot 0 Left", 334 "Right DAC", "AIF1 Slot 0 Right", 335 "AIF1 Slot 0 Left ADC", "Left ADC", 336 "AIF1 Slot 0 Right ADC", "Right ADC", 337 "Headphone Jack", "HP", 338 "MIC2", "Microphone Jack", 339 "Onboard Microphone", "MBIAS", 340 "MIC1", "Onboard Microphone"; 341}; 342 343&spi0 { 344 status = "okay"; 345 346 spi-flash@0 { 347 compatible = "mxicy,mx25l1606e", "jedec,spi-nor"; 348 reg = <0>; 349 spi-max-frequency = <80000000>; 350 m25p,fast-read; 351 status = "okay"; 352 }; 353}; 354 355/* On debug connector */ 356&uart0 { 357 pinctrl-names = "default"; 358 pinctrl-0 = <&uart0_pb_pins>; 359 status = "okay"; 360}; 361 362/* Bluetooth */ 363&uart1 { 364 pinctrl-names = "default"; 365 pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; 366 uart-has-rtscts; 367 status = "okay"; 368 369 bluetooth { 370 compatible = "brcm,bcm43438-bt"; 371 max-speed = <1500000>; 372 clocks = <&rtc 1>; 373 clock-names = "lpo"; 374 vbat-supply = <®_dldo2>; 375 vddio-supply = <®_dldo4>; 376 device-wakeup-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */ 377 host-wakeup-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */ 378 shutdown-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ 379 }; 380}; 381 382/* On Pi-2 connector, RTS/CTS optional */ 383&uart2 { 384 pinctrl-names = "default"; 385 pinctrl-0 = <&uart2_pins>; 386 status = "disabled"; 387}; 388 389/* On Pi-2 connector, RTS/CTS optional */ 390&uart3 { 391 pinctrl-names = "default"; 392 pinctrl-0 = <&uart3_pins>; 393 status = "disabled"; 394}; 395 396/* On Pi-2 connector (labeled for SPI1), RTS/CTS optional */ 397&uart4 { 398 pinctrl-names = "default"; 399 pinctrl-0 = <&uart4_pins>; 400 status = "disabled"; 401}; 402 403&usb_otg { 404 dr_mode = "otg"; 405 status = "okay"; 406}; 407 408&usbphy { 409 usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ 410 usb0_vbus-supply = <®_drivevbus>; 411 usb1_vbus-supply = <®_usb1_vbus>; 412 status = "okay"; 413}; 414