blob: bd6419a5c20a2293bb887a7cc637b179f27df8d5 [file] [log] [blame]
Jonas Karlman751dc362024-07-30 19:48:36 +00001// 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};