xref: /freebsd/sys/contrib/device-tree/src/riscv/allwinner/sun20i-d1-clockworkpi-v3.14.dts (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
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 = <&reg_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 = <&reg_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 = <&reg_dcdc1>;
186*0e8011faSEmmanuel Vadot	vqmmc-supply = <&reg_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 = <&reg_dldo1>;
197*0e8011faSEmmanuel Vadot	vqmmc-supply = <&reg_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 = <&reg_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 = <&reg_dldo1>;
239*0e8011faSEmmanuel Vadot		vddio-supply = <&reg_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 = <&reg_vcc>;
251*0e8011faSEmmanuel Vadot	status = "okay";
252*0e8011faSEmmanuel Vadot};
253