xref: /linux/arch/arm64/boot/dts/rockchip/rk3308-rock-s0.dts (revision 6e7fd890f1d6ac83805409e9c346240de2705584)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2
3/dts-v1/;
4
5#include <dt-bindings/leds/common.h>
6#include "rk3308.dtsi"
7
8/ {
9	model = "Radxa ROCK S0";
10	compatible = "radxa,rock-s0", "rockchip,rk3308";
11
12	aliases {
13		ethernet0 = &gmac;
14		mmc0 = &emmc;
15		mmc1 = &sdmmc;
16		mmc2 = &sdio;
17	};
18
19	chosen {
20		stdout-path = "serial0:1500000n8";
21	};
22
23	leds {
24		compatible = "gpio-leds";
25		pinctrl-names = "default";
26		pinctrl-0 = <&pwr_led>;
27
28		led-green {
29			color = <LED_COLOR_ID_GREEN>;
30			default-state = "on";
31			function = LED_FUNCTION_HEARTBEAT;
32			gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
33			linux,default-trigger = "heartbeat";
34		};
35	};
36
37	vdd_log: regulator-1v04-vdd-log {
38		compatible = "regulator-fixed";
39		regulator-name = "vdd_log";
40		regulator-always-on;
41		regulator-boot-on;
42		regulator-min-microvolt = <1040000>;
43		regulator-max-microvolt = <1040000>;
44		vin-supply = <&vcc5v0_sys>;
45	};
46
47	vcc_ddr: regulator-1v5-vcc-ddr {
48		compatible = "regulator-fixed";
49		regulator-name = "vcc_ddr";
50		regulator-always-on;
51		regulator-boot-on;
52		regulator-min-microvolt = <1500000>;
53		regulator-max-microvolt = <1500000>;
54		vin-supply = <&vcc5v0_sys>;
55	};
56
57	vcc_1v8: regulator-1v8-vcc {
58		compatible = "regulator-fixed";
59		regulator-name = "vcc_1v8";
60		regulator-always-on;
61		regulator-boot-on;
62		regulator-min-microvolt = <1800000>;
63		regulator-max-microvolt = <1800000>;
64		vin-supply = <&vcc_io>;
65	};
66
67	vcc_io: regulator-3v3-vcc-io {
68		compatible = "regulator-fixed";
69		regulator-name = "vcc_io";
70		regulator-always-on;
71		regulator-boot-on;
72		regulator-min-microvolt = <3300000>;
73		regulator-max-microvolt = <3300000>;
74		vin-supply = <&vcc5v0_sys>;
75	};
76
77	vcc5v0_sys: regulator-5v0-vcc-sys {
78		compatible = "regulator-fixed";
79		regulator-name = "vcc5v0_sys";
80		regulator-always-on;
81		regulator-boot-on;
82		regulator-min-microvolt = <5000000>;
83		regulator-max-microvolt = <5000000>;
84	};
85
86	vdd_core: regulator-vdd-core {
87		compatible = "pwm-regulator";
88		pwms = <&pwm0 0 5000 1>;
89		pwm-supply = <&vcc5v0_sys>;
90		regulator-name = "vdd_core";
91		regulator-always-on;
92		regulator-boot-on;
93		regulator-min-microvolt = <827000>;
94		regulator-max-microvolt = <1340000>;
95		regulator-settling-time-up-us = <250>;
96	};
97
98	sdio_pwrseq: sdio-pwrseq {
99		compatible = "mmc-pwrseq-simple";
100		pinctrl-names = "default";
101		pinctrl-0 = <&wifi_reg_on>;
102		reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>;
103	};
104};
105
106&cpu0 {
107	cpu-supply = <&vdd_core>;
108};
109
110&emmc {
111	cap-mmc-highspeed;
112	no-sd;
113	no-sdio;
114	non-removable;
115	pinctrl-names = "default";
116	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_pwren>;
117	vmmc-supply = <&vcc_io>;
118	status = "okay";
119};
120
121&gmac {
122	clock_in_out = "output";
123	phy-handle = <&rtl8201f>;
124	phy-supply = <&vcc_io>;
125	status = "okay";
126
127	mdio {
128		compatible = "snps,dwmac-mdio";
129		#address-cells = <1>;
130		#size-cells = <0>;
131
132		rtl8201f: ethernet-phy@1 {
133			compatible = "ethernet-phy-ieee802.3-c22";
134			reg = <1>;
135			pinctrl-names = "default";
136			pinctrl-0 = <&mac_rst>;
137			reset-assert-us = <20000>;
138			reset-deassert-us = <50000>;
139			reset-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
140		};
141	};
142};
143
144&io_domains {
145	vccio0-supply = <&vcc_io>;
146	vccio1-supply = <&vcc_io>;
147	vccio2-supply = <&vcc_io>;
148	vccio3-supply = <&vcc_io>;
149	vccio4-supply = <&vcc_1v8>;
150	vccio5-supply = <&vcc_io>;
151	status = "okay";
152};
153
154&pinctrl {
155	pinctrl-names = "default";
156	pinctrl-0 = <&rtc_32k>;
157
158	bluetooth {
159		bt_reg_on: bt-reg-on {
160			rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
161		};
162
163		bt_wake_host: bt-wake-host {
164			rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>;
165		};
166
167		host_wake_bt: host-wake-bt {
168			rockchip,pins = <4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
169		};
170	};
171
172	gmac {
173		mac_rst: mac-rst {
174			rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
175		};
176	};
177
178	leds {
179		pwr_led: pwr-led {
180			rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
181		};
182	};
183
184	wifi {
185		wifi_reg_on: wifi-reg-on {
186			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
187		};
188
189		wifi_wake_host: wifi-wake-host {
190			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>;
191		};
192	};
193};
194
195&pwm0 {
196	pinctrl-names = "default";
197	pinctrl-0 = <&pwm0_pin_pull_down>;
198	status = "okay";
199};
200
201&saradc {
202	vref-supply = <&vcc_1v8>;
203	status = "okay";
204};
205
206&sdio {
207	#address-cells = <1>;
208	#size-cells = <0>;
209	cap-sd-highspeed;
210	cap-sdio-irq;
211	keep-power-in-suspend;
212	max-frequency = <50000000>;
213	mmc-pwrseq = <&sdio_pwrseq>;
214	no-mmc;
215	no-sd;
216	non-removable;
217	vmmc-supply = <&vcc_io>;
218	vqmmc-supply = <&vcc_1v8>;
219	status = "okay";
220
221	brcmf: wifi@1 {
222		compatible = "brcm,bcm43430a1-fmac", "brcm,bcm4329-fmac";
223		reg = <1>;
224		interrupt-parent = <&gpio0>;
225		interrupts = <RK_PA0 IRQ_TYPE_LEVEL_HIGH>;
226		interrupt-names = "host-wake";
227		pinctrl-names = "default";
228		pinctrl-0 = <&wifi_wake_host>;
229	};
230};
231
232&sdmmc {
233	cap-mmc-highspeed;
234	cap-sd-highspeed;
235	disable-wp;
236	vmmc-supply = <&vcc_io>;
237	status = "okay";
238};
239
240&u2phy {
241	status = "okay";
242};
243
244&u2phy_host {
245	status = "okay";
246};
247
248&u2phy_otg {
249	status = "okay";
250};
251
252&uart0 {
253	pinctrl-names = "default";
254	pinctrl-0 = <&uart0_xfer>;
255	status = "okay";
256};
257
258&uart4 {
259	uart-has-rtscts;
260	status = "okay";
261
262	bluetooth {
263		compatible = "brcm,bcm43430a1-bt";
264		clocks = <&cru SCLK_RTC32K>;
265		clock-names = "lpo";
266		interrupt-parent = <&gpio4>;
267		interrupts = <RK_PB4 IRQ_TYPE_LEVEL_HIGH>;
268		interrupt-names = "host-wakeup";
269		device-wakeup-gpios = <&gpio4 RK_PB2 GPIO_ACTIVE_HIGH>;
270		shutdown-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
271		pinctrl-names = "default";
272		pinctrl-0 = <&bt_reg_on &bt_wake_host &host_wake_bt>;
273		vbat-supply = <&vcc_io>;
274		vddio-supply = <&vcc_1v8>;
275	};
276};
277
278&usb_host_ehci {
279	status = "okay";
280};
281
282&usb_host_ohci {
283	status = "okay";
284};
285
286&usb20_otg {
287	dr_mode = "peripheral";
288	status = "okay";
289};
290
291&wdt {
292	status = "okay";
293};
294