1*833e5d42SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0-only OR MIT) 2*833e5d42SEmmanuel Vadot/* 3*833e5d42SEmmanuel Vadot * Copyright (C) 2025 Chen-Yu Tsai <wens@csie.org> 4*833e5d42SEmmanuel Vadot */ 5*833e5d42SEmmanuel Vadot 6*833e5d42SEmmanuel Vadot/dts-v1/; 7*833e5d42SEmmanuel Vadot 8*833e5d42SEmmanuel Vadot#include "sun55i-a523.dtsi" 9*833e5d42SEmmanuel Vadot 10*833e5d42SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 11*833e5d42SEmmanuel Vadot#include <dt-bindings/leds/common.h> 12*833e5d42SEmmanuel Vadot 13*833e5d42SEmmanuel Vadot/ { 14*833e5d42SEmmanuel Vadot model = "OrangePi 4A"; 15*833e5d42SEmmanuel Vadot compatible = "xunlong,orangepi-4a", "allwinner,sun55i-t527"; 16*833e5d42SEmmanuel Vadot 17*833e5d42SEmmanuel Vadot aliases { 18*833e5d42SEmmanuel Vadot serial0 = &uart0; 19*833e5d42SEmmanuel Vadot }; 20*833e5d42SEmmanuel Vadot 21*833e5d42SEmmanuel Vadot chosen { 22*833e5d42SEmmanuel Vadot stdout-path = "serial0:115200n8"; 23*833e5d42SEmmanuel Vadot }; 24*833e5d42SEmmanuel Vadot 25*833e5d42SEmmanuel Vadot ext_osc32k: ext-osc32k-clk { 26*833e5d42SEmmanuel Vadot #clock-cells = <0>; 27*833e5d42SEmmanuel Vadot compatible = "fixed-clock"; 28*833e5d42SEmmanuel Vadot clock-frequency = <32768>; 29*833e5d42SEmmanuel Vadot clock-output-names = "ext_osc32k"; 30*833e5d42SEmmanuel Vadot }; 31*833e5d42SEmmanuel Vadot 32*833e5d42SEmmanuel Vadot leds { 33*833e5d42SEmmanuel Vadot compatible = "gpio-leds"; 34*833e5d42SEmmanuel Vadot 35*833e5d42SEmmanuel Vadot /* PWM capable pin, but PWM isn't supported yet. */ 36*833e5d42SEmmanuel Vadot led { 37*833e5d42SEmmanuel Vadot function = LED_FUNCTION_STATUS; 38*833e5d42SEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 39*833e5d42SEmmanuel Vadot gpios = <&pio 3 20 GPIO_ACTIVE_HIGH>; /* PD20 */ 40*833e5d42SEmmanuel Vadot }; 41*833e5d42SEmmanuel Vadot }; 42*833e5d42SEmmanuel Vadot 43*833e5d42SEmmanuel Vadot wifi_pwrseq: pwrseq { 44*833e5d42SEmmanuel Vadot compatible = "mmc-pwrseq-simple"; 45*833e5d42SEmmanuel Vadot reset-gpios = <&r_pio 1 1 GPIO_ACTIVE_LOW>; /* PM1 */ 46*833e5d42SEmmanuel Vadot clocks = <&rtc CLK_OSC32K_FANOUT>; 47*833e5d42SEmmanuel Vadot clock-names = "ext_clock"; 48*833e5d42SEmmanuel Vadot }; 49*833e5d42SEmmanuel Vadot 50*833e5d42SEmmanuel Vadot reg_otg_vbus: regulator-otg-vbus { 51*833e5d42SEmmanuel Vadot compatible = "regulator-fixed"; 52*833e5d42SEmmanuel Vadot regulator-name = "otg-vbus"; 53*833e5d42SEmmanuel Vadot regulator-min-microvolt = <5000000>; 54*833e5d42SEmmanuel Vadot regulator-max-microvolt = <5000000>; 55*833e5d42SEmmanuel Vadot vin-supply = <®_vcc5v>; 56*833e5d42SEmmanuel Vadot gpio = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ 57*833e5d42SEmmanuel Vadot enable-active-high; 58*833e5d42SEmmanuel Vadot }; 59*833e5d42SEmmanuel Vadot 60*833e5d42SEmmanuel Vadot reg_pcie_vcc3v3: regulator-pcie-vcc3v3 { 61*833e5d42SEmmanuel Vadot compatible = "regulator-fixed"; 62*833e5d42SEmmanuel Vadot regulator-name = "vcc-pcie-3v3"; 63*833e5d42SEmmanuel Vadot regulator-min-microvolt = <3300000>; 64*833e5d42SEmmanuel Vadot regulator-max-microvolt = <3300000>; 65*833e5d42SEmmanuel Vadot vin-supply = <®_vcc5v>; 66*833e5d42SEmmanuel Vadot gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */ 67*833e5d42SEmmanuel Vadot enable-active-high; 68*833e5d42SEmmanuel Vadot }; 69*833e5d42SEmmanuel Vadot 70*833e5d42SEmmanuel Vadot reg_usb_vbus: regulator-usb-vbus { 71*833e5d42SEmmanuel Vadot compatible = "regulator-fixed"; 72*833e5d42SEmmanuel Vadot regulator-name = "usb-vbus"; 73*833e5d42SEmmanuel Vadot regulator-min-microvolt = <5000000>; 74*833e5d42SEmmanuel Vadot regulator-max-microvolt = <5000000>; 75*833e5d42SEmmanuel Vadot vin-supply = <®_vcc5v>; 76*833e5d42SEmmanuel Vadot gpio = <&r_pio 0 12 GPIO_ACTIVE_HIGH>; /* PL12 */ 77*833e5d42SEmmanuel Vadot enable-active-high; 78*833e5d42SEmmanuel Vadot }; 79*833e5d42SEmmanuel Vadot 80*833e5d42SEmmanuel Vadot reg_vcc5v: regulator-vcc5v { 81*833e5d42SEmmanuel Vadot /* board wide 5V supply from USB type-C port */ 82*833e5d42SEmmanuel Vadot compatible = "regulator-fixed"; 83*833e5d42SEmmanuel Vadot regulator-name = "vcc-5v"; 84*833e5d42SEmmanuel Vadot regulator-min-microvolt = <5000000>; 85*833e5d42SEmmanuel Vadot regulator-max-microvolt = <5000000>; 86*833e5d42SEmmanuel Vadot regulator-always-on; 87*833e5d42SEmmanuel Vadot }; 88*833e5d42SEmmanuel Vadot}; 89*833e5d42SEmmanuel Vadot 90*833e5d42SEmmanuel Vadot&ehci0 { 91*833e5d42SEmmanuel Vadot status = "okay"; 92*833e5d42SEmmanuel Vadot}; 93*833e5d42SEmmanuel Vadot 94*833e5d42SEmmanuel Vadot&ehci1 { 95*833e5d42SEmmanuel Vadot status = "okay"; 96*833e5d42SEmmanuel Vadot}; 97*833e5d42SEmmanuel Vadot 98*833e5d42SEmmanuel Vadot&gpu { 99*833e5d42SEmmanuel Vadot mali-supply = <®_dcdc2>; 100*833e5d42SEmmanuel Vadot status = "okay"; 101*833e5d42SEmmanuel Vadot}; 102*833e5d42SEmmanuel Vadot 103*833e5d42SEmmanuel Vadot&mmc0 { 104*833e5d42SEmmanuel Vadot vmmc-supply = <®_cldo3>; 105*833e5d42SEmmanuel Vadot cd-gpios = <&pio 5 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PF6 */ 106*833e5d42SEmmanuel Vadot bus-width = <4>; 107*833e5d42SEmmanuel Vadot status = "okay"; 108*833e5d42SEmmanuel Vadot}; 109*833e5d42SEmmanuel Vadot 110*833e5d42SEmmanuel Vadot&mmc1 { 111*833e5d42SEmmanuel Vadot bus-width = <4>; 112*833e5d42SEmmanuel Vadot mmc-pwrseq = <&wifi_pwrseq>; 113*833e5d42SEmmanuel Vadot non-removable; 114*833e5d42SEmmanuel Vadot vmmc-supply = <®_dldo1_323>; 115*833e5d42SEmmanuel Vadot vqmmc-supply = <®_bldo1>; 116*833e5d42SEmmanuel Vadot status = "okay"; 117*833e5d42SEmmanuel Vadot 118*833e5d42SEmmanuel Vadot brcmf: wifi@1 { 119*833e5d42SEmmanuel Vadot compatible = "brcm,bcm4329-fmac"; 120*833e5d42SEmmanuel Vadot reg = <1>; 121*833e5d42SEmmanuel Vadot interrupt-parent = <&r_pio>; 122*833e5d42SEmmanuel Vadot interrupts = <1 0 IRQ_TYPE_LEVEL_LOW>; /* PM0 */ 123*833e5d42SEmmanuel Vadot interrupt-names = "host-wake"; 124*833e5d42SEmmanuel Vadot }; 125*833e5d42SEmmanuel Vadot}; 126*833e5d42SEmmanuel Vadot 127*833e5d42SEmmanuel Vadot&mmc2 { 128*833e5d42SEmmanuel Vadot bus-width = <8>; 129*833e5d42SEmmanuel Vadot cap-mmc-hw-reset; 130*833e5d42SEmmanuel Vadot mmc-ddr-1_8v; 131*833e5d42SEmmanuel Vadot mmc-hs200-1_8v; 132*833e5d42SEmmanuel Vadot non-removable; 133*833e5d42SEmmanuel Vadot vmmc-supply = <®_cldo3>; 134*833e5d42SEmmanuel Vadot vqmmc-supply = <®_cldo1>; 135*833e5d42SEmmanuel Vadot status = "okay"; 136*833e5d42SEmmanuel Vadot}; 137*833e5d42SEmmanuel Vadot 138*833e5d42SEmmanuel Vadot&ohci0 { 139*833e5d42SEmmanuel Vadot status = "okay"; 140*833e5d42SEmmanuel Vadot}; 141*833e5d42SEmmanuel Vadot 142*833e5d42SEmmanuel Vadot&ohci1 { 143*833e5d42SEmmanuel Vadot status = "okay"; 144*833e5d42SEmmanuel Vadot}; 145*833e5d42SEmmanuel Vadot 146*833e5d42SEmmanuel Vadot&pio { 147*833e5d42SEmmanuel Vadot vcc-pb-supply = <®_cldo3>; /* via VCC-IO */ 148*833e5d42SEmmanuel Vadot vcc-pc-supply = <®_cldo1>; 149*833e5d42SEmmanuel Vadot vcc-pd-supply = <®_cldo3>; 150*833e5d42SEmmanuel Vadot vcc-pe-supply = <®_aldo2>; 151*833e5d42SEmmanuel Vadot vcc-pf-supply = <®_cldo3>; /* VCC-IO for 3.3v; VCC-MCSI for 1.8v */ 152*833e5d42SEmmanuel Vadot vcc-pg-supply = <®_bldo1>; 153*833e5d42SEmmanuel Vadot vcc-ph-supply = <®_cldo3>; /* via VCC-IO */ 154*833e5d42SEmmanuel Vadot vcc-pi-supply = <®_cldo3>; 155*833e5d42SEmmanuel Vadot vcc-pj-supply = <®_cldo1>; 156*833e5d42SEmmanuel Vadot vcc-pk-supply = <®_cldo1>; 157*833e5d42SEmmanuel Vadot}; 158*833e5d42SEmmanuel Vadot 159*833e5d42SEmmanuel Vadot&r_i2c0 { 160*833e5d42SEmmanuel Vadot status = "okay"; 161*833e5d42SEmmanuel Vadot 162*833e5d42SEmmanuel Vadot axp717: pmic@35 { 163*833e5d42SEmmanuel Vadot compatible = "x-powers,axp717"; 164*833e5d42SEmmanuel Vadot reg = <0x35>; 165*833e5d42SEmmanuel Vadot interrupt-controller; 166*833e5d42SEmmanuel Vadot #interrupt-cells = <1>; 167*833e5d42SEmmanuel Vadot interrupts-extended = <&nmi_intc 0 IRQ_TYPE_LEVEL_LOW>; 168*833e5d42SEmmanuel Vadot 169*833e5d42SEmmanuel Vadot vin1-supply = <®_vcc5v>; 170*833e5d42SEmmanuel Vadot vin2-supply = <®_vcc5v>; 171*833e5d42SEmmanuel Vadot vin3-supply = <®_vcc5v>; 172*833e5d42SEmmanuel Vadot vin4-supply = <®_vcc5v>; 173*833e5d42SEmmanuel Vadot aldoin-supply = <®_vcc5v>; 174*833e5d42SEmmanuel Vadot bldoin-supply = <®_vcc5v>; 175*833e5d42SEmmanuel Vadot cldoin-supply = <®_vcc5v>; 176*833e5d42SEmmanuel Vadot 177*833e5d42SEmmanuel Vadot regulators { 178*833e5d42SEmmanuel Vadot /* Supplies the "little" cluster (1.4 GHz cores) */ 179*833e5d42SEmmanuel Vadot reg_dcdc1: dcdc1 { 180*833e5d42SEmmanuel Vadot regulator-always-on; 181*833e5d42SEmmanuel Vadot regulator-min-microvolt = <900000>; 182*833e5d42SEmmanuel Vadot regulator-max-microvolt = <1160000>; 183*833e5d42SEmmanuel Vadot regulator-name = "vdd-cpul"; 184*833e5d42SEmmanuel Vadot }; 185*833e5d42SEmmanuel Vadot 186*833e5d42SEmmanuel Vadot reg_dcdc2: dcdc2 { 187*833e5d42SEmmanuel Vadot regulator-always-on; 188*833e5d42SEmmanuel Vadot regulator-min-microvolt = <920000>; 189*833e5d42SEmmanuel Vadot regulator-max-microvolt = <920000>; 190*833e5d42SEmmanuel Vadot regulator-name = "vdd-gpu-sys"; 191*833e5d42SEmmanuel Vadot }; 192*833e5d42SEmmanuel Vadot 193*833e5d42SEmmanuel Vadot reg_dcdc3: dcdc3 { 194*833e5d42SEmmanuel Vadot regulator-always-on; 195*833e5d42SEmmanuel Vadot regulator-min-microvolt = <1160000>; 196*833e5d42SEmmanuel Vadot regulator-max-microvolt = <1160000>; 197*833e5d42SEmmanuel Vadot regulator-name = "vcc-dram"; 198*833e5d42SEmmanuel Vadot }; 199*833e5d42SEmmanuel Vadot 200*833e5d42SEmmanuel Vadot reg_dcdc4: dcdc4 { 201*833e5d42SEmmanuel Vadot /* feeds 3.3V pin on GPIO header */ 202*833e5d42SEmmanuel Vadot regulator-always-on; 203*833e5d42SEmmanuel Vadot regulator-min-microvolt = <3300000>; 204*833e5d42SEmmanuel Vadot regulator-max-microvolt = <3300000>; 205*833e5d42SEmmanuel Vadot regulator-name = "vdd-io"; 206*833e5d42SEmmanuel Vadot }; 207*833e5d42SEmmanuel Vadot 208*833e5d42SEmmanuel Vadot aldo1 { 209*833e5d42SEmmanuel Vadot /* not actually connected */ 210*833e5d42SEmmanuel Vadot regulator-name = "avdd-csi"; 211*833e5d42SEmmanuel Vadot }; 212*833e5d42SEmmanuel Vadot 213*833e5d42SEmmanuel Vadot reg_aldo2: aldo2 { 214*833e5d42SEmmanuel Vadot regulator-min-microvolt = <1800000>; 215*833e5d42SEmmanuel Vadot regulator-max-microvolt = <1800000>; 216*833e5d42SEmmanuel Vadot regulator-name = "vcc-pe"; 217*833e5d42SEmmanuel Vadot }; 218*833e5d42SEmmanuel Vadot 219*833e5d42SEmmanuel Vadot reg_aldo3: aldo3 { 220*833e5d42SEmmanuel Vadot /* supplies the I2C pins for this PMIC */ 221*833e5d42SEmmanuel Vadot regulator-always-on; 222*833e5d42SEmmanuel Vadot regulator-min-microvolt = <3300000>; 223*833e5d42SEmmanuel Vadot regulator-max-microvolt = <3300000>; 224*833e5d42SEmmanuel Vadot regulator-name = "vcc-pl-usb"; 225*833e5d42SEmmanuel Vadot }; 226*833e5d42SEmmanuel Vadot 227*833e5d42SEmmanuel Vadot reg_aldo4: aldo4 { 228*833e5d42SEmmanuel Vadot regulator-always-on; 229*833e5d42SEmmanuel Vadot regulator-min-microvolt = <1800000>; 230*833e5d42SEmmanuel Vadot regulator-max-microvolt = <1800000>; 231*833e5d42SEmmanuel Vadot regulator-name = "vcc-pll-dxco-avcc"; 232*833e5d42SEmmanuel Vadot }; 233*833e5d42SEmmanuel Vadot 234*833e5d42SEmmanuel Vadot reg_bldo1: bldo1 { 235*833e5d42SEmmanuel Vadot regulator-min-microvolt = <1800000>; 236*833e5d42SEmmanuel Vadot regulator-max-microvolt = <1800000>; 237*833e5d42SEmmanuel Vadot regulator-name = "vcc-pg-wifi"; 238*833e5d42SEmmanuel Vadot }; 239*833e5d42SEmmanuel Vadot 240*833e5d42SEmmanuel Vadot reg_bldo2: bldo2 { 241*833e5d42SEmmanuel Vadot regulator-always-on; 242*833e5d42SEmmanuel Vadot regulator-min-microvolt = <1800000>; 243*833e5d42SEmmanuel Vadot regulator-max-microvolt = <1800000>; 244*833e5d42SEmmanuel Vadot regulator-name = "vcc-pm-lpddr"; 245*833e5d42SEmmanuel Vadot }; 246*833e5d42SEmmanuel Vadot 247*833e5d42SEmmanuel Vadot bldo3 { 248*833e5d42SEmmanuel Vadot /* not actually connected */ 249*833e5d42SEmmanuel Vadot regulator-name = "afvcc-csi"; 250*833e5d42SEmmanuel Vadot }; 251*833e5d42SEmmanuel Vadot 252*833e5d42SEmmanuel Vadot bldo4 { 253*833e5d42SEmmanuel Vadot /* not actually connected */ 254*833e5d42SEmmanuel Vadot regulator-name = "dvdd-csi"; 255*833e5d42SEmmanuel Vadot }; 256*833e5d42SEmmanuel Vadot 257*833e5d42SEmmanuel Vadot reg_cldo1: cldo1 { 258*833e5d42SEmmanuel Vadot regulator-always-on; 259*833e5d42SEmmanuel Vadot regulator-min-microvolt = <1800000>; 260*833e5d42SEmmanuel Vadot regulator-max-microvolt = <1800000>; 261*833e5d42SEmmanuel Vadot regulator-name = "vcc-cvp-pc-lvds-mcsi-pk-efuse-pcie-edp-1v8"; 262*833e5d42SEmmanuel Vadot }; 263*833e5d42SEmmanuel Vadot 264*833e5d42SEmmanuel Vadot reg_cldo2: cldo2 { 265*833e5d42SEmmanuel Vadot regulator-min-microvolt = <3300000>; 266*833e5d42SEmmanuel Vadot regulator-max-microvolt = <3300000>; 267*833e5d42SEmmanuel Vadot regulator-name = "vcc3v3-csi"; 268*833e5d42SEmmanuel Vadot }; 269*833e5d42SEmmanuel Vadot 270*833e5d42SEmmanuel Vadot reg_cldo3: cldo3 { 271*833e5d42SEmmanuel Vadot regulator-always-on; 272*833e5d42SEmmanuel Vadot regulator-min-microvolt = <3300000>; 273*833e5d42SEmmanuel Vadot regulator-max-microvolt = <3300000>; 274*833e5d42SEmmanuel Vadot regulator-name = "vcc-io-mmc-nand-pd-pi-usb"; 275*833e5d42SEmmanuel Vadot }; 276*833e5d42SEmmanuel Vadot 277*833e5d42SEmmanuel Vadot reg_cldo4: cldo4 { 278*833e5d42SEmmanuel Vadot regulator-min-microvolt = <3300000>; 279*833e5d42SEmmanuel Vadot regulator-max-microvolt = <3300000>; 280*833e5d42SEmmanuel Vadot regulator-name = "vcc-3v3-phy1-lcd"; 281*833e5d42SEmmanuel Vadot }; 282*833e5d42SEmmanuel Vadot 283*833e5d42SEmmanuel Vadot reg_cpusldo: cpusldo { 284*833e5d42SEmmanuel Vadot /* supplies the management core */ 285*833e5d42SEmmanuel Vadot regulator-always-on; 286*833e5d42SEmmanuel Vadot regulator-min-microvolt = <900000>; 287*833e5d42SEmmanuel Vadot regulator-max-microvolt = <900000>; 288*833e5d42SEmmanuel Vadot regulator-name = "vdd-cpus-usb-0v9"; 289*833e5d42SEmmanuel Vadot }; 290*833e5d42SEmmanuel Vadot }; 291*833e5d42SEmmanuel Vadot }; 292*833e5d42SEmmanuel Vadot 293*833e5d42SEmmanuel Vadot axp323: pmic@36 { 294*833e5d42SEmmanuel Vadot compatible = "x-powers,axp323"; 295*833e5d42SEmmanuel Vadot reg = <0x36>; 296*833e5d42SEmmanuel Vadot #interrupt-cells = <1>; 297*833e5d42SEmmanuel Vadot interrupt-controller; 298*833e5d42SEmmanuel Vadot status = "okay"; 299*833e5d42SEmmanuel Vadot 300*833e5d42SEmmanuel Vadot vin1-supply = <®_vcc5v>; 301*833e5d42SEmmanuel Vadot vin2-supply = <®_vcc5v>; 302*833e5d42SEmmanuel Vadot vin3-supply = <®_vcc5v>; 303*833e5d42SEmmanuel Vadot 304*833e5d42SEmmanuel Vadot regulators { 305*833e5d42SEmmanuel Vadot reg_aldo1_323: aldo1 { 306*833e5d42SEmmanuel Vadot /* less capable and shares load with dldo1 */ 307*833e5d42SEmmanuel Vadot regulator-min-microvolt = <3300000>; 308*833e5d42SEmmanuel Vadot regulator-max-microvolt = <3300000>; 309*833e5d42SEmmanuel Vadot regulator-name = "vcc-wifi"; 310*833e5d42SEmmanuel Vadot }; 311*833e5d42SEmmanuel Vadot 312*833e5d42SEmmanuel Vadot reg_dldo1_323: dldo1 { 313*833e5d42SEmmanuel Vadot /* more capable and shares load with aldo1 */ 314*833e5d42SEmmanuel Vadot regulator-min-microvolt = <3300000>; 315*833e5d42SEmmanuel Vadot regulator-max-microvolt = <3300000>; 316*833e5d42SEmmanuel Vadot regulator-name = "vcc-wifi2"; 317*833e5d42SEmmanuel Vadot }; 318*833e5d42SEmmanuel Vadot 319*833e5d42SEmmanuel Vadot /* Supplies the "big" cluster (1.8 GHz cores) */ 320*833e5d42SEmmanuel Vadot reg_dcdc1_323: dcdc1 { 321*833e5d42SEmmanuel Vadot regulator-always-on; 322*833e5d42SEmmanuel Vadot regulator-min-microvolt = <900000>; 323*833e5d42SEmmanuel Vadot regulator-max-microvolt = <1150000>; 324*833e5d42SEmmanuel Vadot regulator-name = "vdd-cpub"; 325*833e5d42SEmmanuel Vadot }; 326*833e5d42SEmmanuel Vadot 327*833e5d42SEmmanuel Vadot /* DCDC2 is polyphased with DCDC1 */ 328*833e5d42SEmmanuel Vadot 329*833e5d42SEmmanuel Vadot /* Some RISC-V management core related voltage */ 330*833e5d42SEmmanuel Vadot reg_dcdc3_323: dcdc3 { 331*833e5d42SEmmanuel Vadot regulator-always-on; 332*833e5d42SEmmanuel Vadot regulator-min-microvolt = <900000>; 333*833e5d42SEmmanuel Vadot regulator-max-microvolt = <900000>; 334*833e5d42SEmmanuel Vadot regulator-name = "vdd-dnr"; 335*833e5d42SEmmanuel Vadot }; 336*833e5d42SEmmanuel Vadot }; 337*833e5d42SEmmanuel Vadot }; 338*833e5d42SEmmanuel Vadot}; 339*833e5d42SEmmanuel Vadot 340*833e5d42SEmmanuel Vadot&r_pio { 341*833e5d42SEmmanuel Vadot/* 342*833e5d42SEmmanuel Vadot * Specifying the supply would create a circular dependency. 343*833e5d42SEmmanuel Vadot * 344*833e5d42SEmmanuel Vadot * vcc-pl-supply = <®_aldo3>; 345*833e5d42SEmmanuel Vadot */ 346*833e5d42SEmmanuel Vadot vcc-pm-supply = <®_bldo2>; 347*833e5d42SEmmanuel Vadot}; 348*833e5d42SEmmanuel Vadot 349*833e5d42SEmmanuel Vadot&uart0 { 350*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 351*833e5d42SEmmanuel Vadot pinctrl-0 = <&uart0_pb_pins>; 352*833e5d42SEmmanuel Vadot status = "okay"; 353*833e5d42SEmmanuel Vadot}; 354*833e5d42SEmmanuel Vadot 355*833e5d42SEmmanuel Vadot&uart1 { 356*833e5d42SEmmanuel Vadot pinctrl-names = "default"; 357*833e5d42SEmmanuel Vadot pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; 358*833e5d42SEmmanuel Vadot uart-has-rtscts; 359*833e5d42SEmmanuel Vadot status = "okay"; 360*833e5d42SEmmanuel Vadot 361*833e5d42SEmmanuel Vadot bluetooth { 362*833e5d42SEmmanuel Vadot compatible = "brcm,bcm4345c5"; 363*833e5d42SEmmanuel Vadot clocks = <&rtc CLK_OSC32K_FANOUT>; 364*833e5d42SEmmanuel Vadot clock-names = "lpo"; 365*833e5d42SEmmanuel Vadot vbat-supply = <®_aldo1_323>; 366*833e5d42SEmmanuel Vadot vddio-supply = <®_bldo1>; 367*833e5d42SEmmanuel Vadot device-wakeup-gpios = <&r_pio 1 3 GPIO_ACTIVE_HIGH>; /* PM3 */ 368*833e5d42SEmmanuel Vadot host-wakeup-gpios = <&r_pio 1 4 GPIO_ACTIVE_HIGH>; /* PM4 */ 369*833e5d42SEmmanuel Vadot shutdown-gpios = <&r_pio 1 2 GPIO_ACTIVE_HIGH>; /* PM2 */ 370*833e5d42SEmmanuel Vadot }; 371*833e5d42SEmmanuel Vadot}; 372*833e5d42SEmmanuel Vadot 373*833e5d42SEmmanuel Vadot&usb_otg { 374*833e5d42SEmmanuel Vadot /* 375*833e5d42SEmmanuel Vadot * The OTG controller is connected to one of the type-A ports. 376*833e5d42SEmmanuel Vadot * There is a regulator, controlled by a GPIO, to provide VBUS power 377*833e5d42SEmmanuel Vadot * to the port, and a VBUSDET GPIO, to detect externally provided 378*833e5d42SEmmanuel Vadot * power. But without ID or CC pins there is no real way to do a 379*833e5d42SEmmanuel Vadot * runtime role detection. 380*833e5d42SEmmanuel Vadot */ 381*833e5d42SEmmanuel Vadot dr_mode = "host"; 382*833e5d42SEmmanuel Vadot status = "okay"; 383*833e5d42SEmmanuel Vadot}; 384*833e5d42SEmmanuel Vadot 385*833e5d42SEmmanuel Vadot&usbphy { 386*833e5d42SEmmanuel Vadot usb0_vbus-supply = <®_otg_vbus>; 387*833e5d42SEmmanuel Vadot usb0_vbus_det-gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */ 388*833e5d42SEmmanuel Vadot usb1_vbus-supply = <®_usb_vbus>; 389*833e5d42SEmmanuel Vadot status = "okay"; 390*833e5d42SEmmanuel Vadot}; 391