1*0e8011faSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ or MIT) 2*0e8011faSEmmanuel Vadot// Copyright (C) 2022 Samuel Holland <samuel@sholland.org> 3*0e8011faSEmmanuel Vadot 4*0e8011faSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 5*0e8011faSEmmanuel Vadot 6*0e8011faSEmmanuel Vadot/dts-v1/; 7*0e8011faSEmmanuel Vadot 8*0e8011faSEmmanuel Vadot#include "sun20i-d1.dtsi" 9*0e8011faSEmmanuel Vadot#include "sun20i-common-regulators.dtsi" 10*0e8011faSEmmanuel Vadot 11*0e8011faSEmmanuel Vadot/ { 12*0e8011faSEmmanuel Vadot model = "ClockworkPi v3.14 (R-01)"; 13*0e8011faSEmmanuel Vadot compatible = "clockwork,r-01-clockworkpi-v3.14", "allwinner,sun20i-d1"; 14*0e8011faSEmmanuel Vadot 15*0e8011faSEmmanuel Vadot aliases { 16*0e8011faSEmmanuel Vadot ethernet0 = &ap6256; 17*0e8011faSEmmanuel Vadot serial0 = &uart0; 18*0e8011faSEmmanuel Vadot }; 19*0e8011faSEmmanuel Vadot 20*0e8011faSEmmanuel Vadot chosen { 21*0e8011faSEmmanuel Vadot stdout-path = "serial0:115200n8"; 22*0e8011faSEmmanuel Vadot }; 23*0e8011faSEmmanuel Vadot 24*0e8011faSEmmanuel Vadot /* 25*0e8011faSEmmanuel Vadot * This regulator is PWM-controlled, but the PWM controller is not 26*0e8011faSEmmanuel Vadot * yet supported, so fix the regulator to its default voltage. 27*0e8011faSEmmanuel Vadot */ 28*0e8011faSEmmanuel Vadot reg_vdd_cpu: vdd-cpu { 29*0e8011faSEmmanuel Vadot compatible = "regulator-fixed"; 30*0e8011faSEmmanuel Vadot regulator-name = "vdd-cpu"; 31*0e8011faSEmmanuel Vadot regulator-min-microvolt = <1100000>; 32*0e8011faSEmmanuel Vadot regulator-max-microvolt = <1100000>; 33*0e8011faSEmmanuel Vadot vin-supply = <®_vcc>; 34*0e8011faSEmmanuel Vadot }; 35*0e8011faSEmmanuel Vadot 36*0e8011faSEmmanuel Vadot wifi_pwrseq: wifi-pwrseq { 37*0e8011faSEmmanuel Vadot compatible = "mmc-pwrseq-simple"; 38*0e8011faSEmmanuel Vadot reset-gpios = <&pio 6 11 GPIO_ACTIVE_LOW>; /* PG11/GPIO3 */ 39*0e8011faSEmmanuel Vadot }; 40*0e8011faSEmmanuel Vadot}; 41*0e8011faSEmmanuel Vadot 42*0e8011faSEmmanuel Vadot&cpu0 { 43*0e8011faSEmmanuel Vadot cpu-supply = <®_vdd_cpu>; 44*0e8011faSEmmanuel Vadot}; 45*0e8011faSEmmanuel Vadot 46*0e8011faSEmmanuel Vadot&dcxo { 47*0e8011faSEmmanuel Vadot clock-frequency = <24000000>; 48*0e8011faSEmmanuel Vadot}; 49*0e8011faSEmmanuel Vadot 50*0e8011faSEmmanuel Vadot&ehci1 { 51*0e8011faSEmmanuel Vadot status = "okay"; 52*0e8011faSEmmanuel Vadot}; 53*0e8011faSEmmanuel Vadot 54*0e8011faSEmmanuel Vadot&i2c0 { 55*0e8011faSEmmanuel Vadot pinctrl-0 = <&i2c0_pb10_pins>; 56*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 57*0e8011faSEmmanuel Vadot status = "okay"; 58*0e8011faSEmmanuel Vadot 59*0e8011faSEmmanuel Vadot axp221: pmic@34 { 60*0e8011faSEmmanuel Vadot compatible = "x-powers,axp228", "x-powers,axp221"; 61*0e8011faSEmmanuel Vadot reg = <0x34>; 62*0e8011faSEmmanuel Vadot interrupt-parent = <&pio>; 63*0e8011faSEmmanuel Vadot interrupts = <4 9 IRQ_TYPE_LEVEL_LOW>; /* PE9/GPIO2 */ 64*0e8011faSEmmanuel Vadot interrupt-controller; 65*0e8011faSEmmanuel Vadot #interrupt-cells = <1>; 66*0e8011faSEmmanuel Vadot 67*0e8011faSEmmanuel Vadot ac_power_supply: ac-power { 68*0e8011faSEmmanuel Vadot compatible = "x-powers,axp221-ac-power-supply"; 69*0e8011faSEmmanuel Vadot }; 70*0e8011faSEmmanuel Vadot 71*0e8011faSEmmanuel Vadot axp_adc: adc { 72*0e8011faSEmmanuel Vadot compatible = "x-powers,axp221-adc"; 73*0e8011faSEmmanuel Vadot #io-channel-cells = <1>; 74*0e8011faSEmmanuel Vadot }; 75*0e8011faSEmmanuel Vadot 76*0e8011faSEmmanuel Vadot battery_power_supply: battery-power { 77*0e8011faSEmmanuel Vadot compatible = "x-powers,axp221-battery-power-supply"; 78*0e8011faSEmmanuel Vadot }; 79*0e8011faSEmmanuel Vadot 80*0e8011faSEmmanuel Vadot axp_gpio: gpio { 81*0e8011faSEmmanuel Vadot compatible = "x-powers,axp221-gpio"; 82*0e8011faSEmmanuel Vadot gpio-controller; 83*0e8011faSEmmanuel Vadot #gpio-cells = <2>; 84*0e8011faSEmmanuel Vadot }; 85*0e8011faSEmmanuel Vadot 86*0e8011faSEmmanuel Vadot regulators { 87*0e8011faSEmmanuel Vadot x-powers,dcdc-freq = <3000>; 88*0e8011faSEmmanuel Vadot 89*0e8011faSEmmanuel Vadot reg_dcdc1: dcdc1 { 90*0e8011faSEmmanuel Vadot regulator-name = "sys-3v3"; 91*0e8011faSEmmanuel Vadot regulator-always-on; 92*0e8011faSEmmanuel Vadot regulator-min-microvolt = <3300000>; 93*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 94*0e8011faSEmmanuel Vadot }; 95*0e8011faSEmmanuel Vadot 96*0e8011faSEmmanuel Vadot reg_dcdc3: dcdc3 { 97*0e8011faSEmmanuel Vadot regulator-name = "sys-1v8"; 98*0e8011faSEmmanuel Vadot regulator-always-on; 99*0e8011faSEmmanuel Vadot regulator-min-microvolt = <1800000>; 100*0e8011faSEmmanuel Vadot regulator-max-microvolt = <1800000>; 101*0e8011faSEmmanuel Vadot }; 102*0e8011faSEmmanuel Vadot 103*0e8011faSEmmanuel Vadot reg_aldo1: aldo1 { 104*0e8011faSEmmanuel Vadot regulator-name = "aud-3v3"; 105*0e8011faSEmmanuel Vadot regulator-min-microvolt = <3300000>; 106*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 107*0e8011faSEmmanuel Vadot }; 108*0e8011faSEmmanuel Vadot 109*0e8011faSEmmanuel Vadot reg_aldo2: aldo2 { 110*0e8011faSEmmanuel Vadot regulator-name = "disp-3v3"; 111*0e8011faSEmmanuel Vadot regulator-always-on; 112*0e8011faSEmmanuel Vadot regulator-min-microvolt = <3300000>; 113*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 114*0e8011faSEmmanuel Vadot }; 115*0e8011faSEmmanuel Vadot 116*0e8011faSEmmanuel Vadot reg_aldo3: aldo3 { 117*0e8011faSEmmanuel Vadot regulator-name = "vdd-wifi"; 118*0e8011faSEmmanuel Vadot regulator-min-microvolt = <1800000>; 119*0e8011faSEmmanuel Vadot regulator-max-microvolt = <1800000>; 120*0e8011faSEmmanuel Vadot }; 121*0e8011faSEmmanuel Vadot 122*0e8011faSEmmanuel Vadot /* DLDO1 and ELDO1-3 are connected in parallel. */ 123*0e8011faSEmmanuel Vadot reg_dldo1: dldo1 { 124*0e8011faSEmmanuel Vadot regulator-name = "vbat-wifi-a"; 125*0e8011faSEmmanuel Vadot regulator-always-on; 126*0e8011faSEmmanuel Vadot regulator-min-microvolt = <3300000>; 127*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 128*0e8011faSEmmanuel Vadot }; 129*0e8011faSEmmanuel Vadot 130*0e8011faSEmmanuel Vadot /* DLDO2-DLDO4 are connected in parallel. */ 131*0e8011faSEmmanuel Vadot reg_dldo2: dldo2 { 132*0e8011faSEmmanuel Vadot regulator-name = "vcc-3v3-ext-a"; 133*0e8011faSEmmanuel Vadot regulator-always-on; 134*0e8011faSEmmanuel Vadot regulator-min-microvolt = <3300000>; 135*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 136*0e8011faSEmmanuel Vadot }; 137*0e8011faSEmmanuel Vadot 138*0e8011faSEmmanuel Vadot reg_dldo3: dldo3 { 139*0e8011faSEmmanuel Vadot regulator-name = "vcc-3v3-ext-b"; 140*0e8011faSEmmanuel Vadot regulator-always-on; 141*0e8011faSEmmanuel Vadot regulator-min-microvolt = <3300000>; 142*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 143*0e8011faSEmmanuel Vadot }; 144*0e8011faSEmmanuel Vadot 145*0e8011faSEmmanuel Vadot reg_dldo4: dldo4 { 146*0e8011faSEmmanuel Vadot regulator-name = "vcc-3v3-ext-c"; 147*0e8011faSEmmanuel Vadot regulator-always-on; 148*0e8011faSEmmanuel Vadot regulator-min-microvolt = <3300000>; 149*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 150*0e8011faSEmmanuel Vadot }; 151*0e8011faSEmmanuel Vadot 152*0e8011faSEmmanuel Vadot reg_eldo1: eldo1 { 153*0e8011faSEmmanuel Vadot regulator-name = "vbat-wifi-b"; 154*0e8011faSEmmanuel Vadot regulator-always-on; 155*0e8011faSEmmanuel Vadot regulator-min-microvolt = <3300000>; 156*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 157*0e8011faSEmmanuel Vadot }; 158*0e8011faSEmmanuel Vadot 159*0e8011faSEmmanuel Vadot reg_eldo2: eldo2 { 160*0e8011faSEmmanuel Vadot regulator-name = "vbat-wifi-c"; 161*0e8011faSEmmanuel Vadot regulator-always-on; 162*0e8011faSEmmanuel Vadot regulator-min-microvolt = <3300000>; 163*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 164*0e8011faSEmmanuel Vadot }; 165*0e8011faSEmmanuel Vadot 166*0e8011faSEmmanuel Vadot reg_eldo3: eldo3 { 167*0e8011faSEmmanuel Vadot regulator-name = "vbat-wifi-d"; 168*0e8011faSEmmanuel Vadot regulator-always-on; 169*0e8011faSEmmanuel Vadot regulator-min-microvolt = <3300000>; 170*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 171*0e8011faSEmmanuel Vadot }; 172*0e8011faSEmmanuel Vadot }; 173*0e8011faSEmmanuel Vadot 174*0e8011faSEmmanuel Vadot usb_power_supply: usb-power { 175*0e8011faSEmmanuel Vadot compatible = "x-powers,axp221-usb-power-supply"; 176*0e8011faSEmmanuel Vadot status = "disabled"; 177*0e8011faSEmmanuel Vadot }; 178*0e8011faSEmmanuel Vadot }; 179*0e8011faSEmmanuel Vadot}; 180*0e8011faSEmmanuel Vadot 181*0e8011faSEmmanuel Vadot&mmc0 { 182*0e8011faSEmmanuel Vadot broken-cd; 183*0e8011faSEmmanuel Vadot bus-width = <4>; 184*0e8011faSEmmanuel Vadot disable-wp; 185*0e8011faSEmmanuel Vadot vmmc-supply = <®_dcdc1>; 186*0e8011faSEmmanuel Vadot vqmmc-supply = <®_vcc_3v3>; 187*0e8011faSEmmanuel Vadot pinctrl-0 = <&mmc0_pins>; 188*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 189*0e8011faSEmmanuel Vadot status = "okay"; 190*0e8011faSEmmanuel Vadot}; 191*0e8011faSEmmanuel Vadot 192*0e8011faSEmmanuel Vadot&mmc1 { 193*0e8011faSEmmanuel Vadot bus-width = <4>; 194*0e8011faSEmmanuel Vadot mmc-pwrseq = <&wifi_pwrseq>; 195*0e8011faSEmmanuel Vadot non-removable; 196*0e8011faSEmmanuel Vadot vmmc-supply = <®_dldo1>; 197*0e8011faSEmmanuel Vadot vqmmc-supply = <®_aldo3>; 198*0e8011faSEmmanuel Vadot pinctrl-0 = <&mmc1_pins>; 199*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 200*0e8011faSEmmanuel Vadot status = "okay"; 201*0e8011faSEmmanuel Vadot 202*0e8011faSEmmanuel Vadot ap6256: wifi@1 { 203*0e8011faSEmmanuel Vadot compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac"; 204*0e8011faSEmmanuel Vadot reg = <1>; 205*0e8011faSEmmanuel Vadot interrupt-parent = <&pio>; 206*0e8011faSEmmanuel Vadot interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10/GPIO4 */ 207*0e8011faSEmmanuel Vadot interrupt-names = "host-wake"; 208*0e8011faSEmmanuel Vadot }; 209*0e8011faSEmmanuel Vadot}; 210*0e8011faSEmmanuel Vadot 211*0e8011faSEmmanuel Vadot&ohci1 { 212*0e8011faSEmmanuel Vadot status = "okay"; 213*0e8011faSEmmanuel Vadot}; 214*0e8011faSEmmanuel Vadot 215*0e8011faSEmmanuel Vadot&pio { 216*0e8011faSEmmanuel Vadot vcc-pg-supply = <®_ldoa>; 217*0e8011faSEmmanuel Vadot}; 218*0e8011faSEmmanuel Vadot 219*0e8011faSEmmanuel Vadot&uart0 { 220*0e8011faSEmmanuel Vadot pinctrl-0 = <&uart0_pb8_pins>; 221*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 222*0e8011faSEmmanuel Vadot status = "okay"; 223*0e8011faSEmmanuel Vadot}; 224*0e8011faSEmmanuel Vadot 225*0e8011faSEmmanuel Vadot&uart1 { 226*0e8011faSEmmanuel Vadot uart-has-rtscts; 227*0e8011faSEmmanuel Vadot pinctrl-0 = <&uart1_pg6_pins>, <&uart1_pg8_rts_cts_pins>; 228*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 229*0e8011faSEmmanuel Vadot status = "okay"; 230*0e8011faSEmmanuel Vadot 231*0e8011faSEmmanuel Vadot bluetooth { 232*0e8011faSEmmanuel Vadot compatible = "brcm,bcm4345c5"; 233*0e8011faSEmmanuel Vadot interrupt-parent = <&pio>; 234*0e8011faSEmmanuel Vadot interrupts = <6 17 IRQ_TYPE_LEVEL_HIGH>; /* PG17/GPIO6 */ 235*0e8011faSEmmanuel Vadot device-wakeup-gpios = <&pio 6 16 GPIO_ACTIVE_HIGH>; /* PG16/GPIO7 */ 236*0e8011faSEmmanuel Vadot shutdown-gpios = <&pio 6 18 GPIO_ACTIVE_HIGH>; /* PG18/GPIO5 */ 237*0e8011faSEmmanuel Vadot max-speed = <1500000>; 238*0e8011faSEmmanuel Vadot vbat-supply = <®_dldo1>; 239*0e8011faSEmmanuel Vadot vddio-supply = <®_aldo3>; 240*0e8011faSEmmanuel Vadot }; 241*0e8011faSEmmanuel Vadot}; 242*0e8011faSEmmanuel Vadot 243*0e8011faSEmmanuel Vadot&usb_otg { 244*0e8011faSEmmanuel Vadot dr_mode = "peripheral"; 245*0e8011faSEmmanuel Vadot status = "okay"; 246*0e8011faSEmmanuel Vadot}; 247*0e8011faSEmmanuel Vadot 248*0e8011faSEmmanuel Vadot&usbphy { 249*0e8011faSEmmanuel Vadot usb0_vbus_power-supply = <&ac_power_supply>; 250*0e8011faSEmmanuel Vadot usb1_vbus-supply = <®_vcc>; 251*0e8011faSEmmanuel Vadot status = "okay"; 252*0e8011faSEmmanuel Vadot}; 253