blob: bedccf0f00ad8df37715bae0adf7c107cc0aeaf2 [file] [log] [blame]
Marek Vasute31d9872022-06-13 11:55:21 +02001// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
2/*
3 * Copyright (C) 2022 Marek Vasut <marex@denx.de>
4 */
5
6/ {
7 aliases {
8 ethernet0 = &ethernet0;
9 ethernet1 = &ksz8851;
10 mmc0 = &sdmmc1;
11 rtc0 = &hwrtc;
12 rtc1 = &rtc;
13 serial0 = &uart4;
14 serial1 = &uart8;
15 serial2 = &usart3;
16 serial3 = &uart5;
17 spi0 = &qspi;
18 };
19
20 chosen {
21 stdout-path = "serial0:115200n8";
22 };
23
24 led {
25 compatible = "gpio-leds";
26 led1 {
27 label = "yellow:user0";
28 gpios = <&gpioz 6 GPIO_ACTIVE_LOW>;
29 default-state = "off";
30 };
31
32 led2 {
33 label = "red:user1";
34 gpios = <&gpioz 3 GPIO_ACTIVE_LOW>;
35 default-state = "off";
36 };
37 };
38
39 ethernet_vio: vioregulator {
40 compatible = "regulator-fixed";
41 regulator-name = "vio";
42 regulator-min-microvolt = <3300000>;
43 regulator-max-microvolt = <3300000>;
44 gpio = <&gpioh 2 GPIO_ACTIVE_LOW>;
45 regulator-always-on;
46 regulator-boot-on;
47 vin-supply = <&vdd>;
48 };
49};
50
51&adc { /* X11 ADC inputs */
52 pinctrl-names = "default";
53 pinctrl-0 = <&adc12_ain_pins_b>;
54 vdd-supply = <&vdd>;
55 vdda-supply = <&vdda>;
56 vref-supply = <&vdda>;
57 status = "okay";
58
59 adc1: adc@0 {
60 st,adc-channels = <0 1 6>;
61 st,min-sample-time-nsecs = <5000>;
62 status = "okay";
63 };
64
65 adc2: adc@100 {
66 st,adc-channels = <0 1 2>;
67 st,min-sample-time-nsecs = <5000>;
68 status = "okay";
69 };
70};
71
72&ethernet0 {
73 status = "okay";
74 pinctrl-0 = <&ethernet0_rgmii_pins_c>;
75 pinctrl-1 = <&ethernet0_rgmii_sleep_pins_c>;
76 pinctrl-names = "default", "sleep";
77 phy-mode = "rgmii";
78 max-speed = <1000>;
79 phy-handle = <&phy0>;
80
81 mdio0 {
82 #address-cells = <1>;
83 #size-cells = <0>;
84 compatible = "snps,dwmac-mdio";
85 reset-gpios = <&gpioz 2 GPIO_ACTIVE_LOW>;
86 reset-delay-us = <1000>;
87 reset-post-delay-us = <1000>;
88
89 phy0: ethernet-phy@7 {
90 reg = <7>;
91
92 rxc-skew-ps = <1500>;
93 rxdv-skew-ps = <540>;
94 rxd0-skew-ps = <420>;
95 rxd1-skew-ps = <420>;
96 rxd2-skew-ps = <420>;
97 rxd3-skew-ps = <420>;
98
99 txc-skew-ps = <1440>;
100 txen-skew-ps = <540>;
101 txd0-skew-ps = <420>;
102 txd1-skew-ps = <420>;
103 txd2-skew-ps = <420>;
104 txd3-skew-ps = <420>;
105 };
106 };
107};
108
109&fmc {
110 pinctrl-names = "default", "sleep";
111 pinctrl-0 = <&fmc_pins_b>;
112 pinctrl-1 = <&fmc_sleep_pins_b>;
113 status = "okay";
114
115 ksz8851: ethernet@1,0 {
116 compatible = "micrel,ks8851-mll";
117 reg = <1 0x0 0x2>, <1 0x2 0x20000>;
118 interrupt-parent = <&gpioc>;
119 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
120 bank-width = <2>;
121
122 /* Timing values are in nS */
123 st,fmc2-ebi-cs-mux-enable;
124 st,fmc2-ebi-cs-transaction-type = <4>;
125 st,fmc2-ebi-cs-buswidth = <16>;
126 st,fmc2-ebi-cs-address-setup-ns = <5>;
127 st,fmc2-ebi-cs-address-hold-ns = <5>;
128 st,fmc2-ebi-cs-bus-turnaround-ns = <5>;
129 st,fmc2-ebi-cs-data-setup-ns = <45>;
130 st,fmc2-ebi-cs-data-hold-ns = <1>;
131 st,fmc2-ebi-cs-write-address-setup-ns = <5>;
132 st,fmc2-ebi-cs-write-address-hold-ns = <5>;
133 st,fmc2-ebi-cs-write-bus-turnaround-ns = <5>;
134 st,fmc2-ebi-cs-write-data-setup-ns = <45>;
135 st,fmc2-ebi-cs-write-data-hold-ns = <1>;
136 };
137};
138
139&gpioa {
140 gpio-line-names = "", "", "", "",
141 "DRCC-VAR2", "", "", "",
142 "", "", "", "",
143 "", "", "", "";
144};
145
146&gpioe {
147 gpio-line-names = "", "", "", "",
148 "", "DRCC-GPIO0", "", "",
149 "", "", "", "",
150 "", "", "", "";
151};
152
153&gpiog {
154 gpio-line-names = "", "", "", "",
155 "", "", "", "",
156 "", "", "", "",
157 "DRCC-GPIO5", "", "", "";
158};
159
160&gpioh {
161 gpio-line-names = "", "", "", "DRCC-HW2",
162 "DRCC-GPIO4", "", "", "",
163 "DRCC-HW1", "DRCC-HW0", "", "DRCC-VAR1",
164 "DRCC-VAR0", "", "", "DRCC-GPIO6";
165};
166
167&gpioi {
168 gpio-line-names = "", "", "", "",
169 "", "", "", "DRCC-GPIO2",
170 "", "DRCC-GPIO1", "", "",
171 "", "", "", "";
172};
173
174&i2c1 { /* X11 I2C1 */
175 pinctrl-names = "default";
176 pinctrl-0 = <&i2c1_pins_b>;
177 i2c-scl-rising-time-ns = <185>;
178 i2c-scl-falling-time-ns = <20>;
179 status = "okay";
180 /delete-property/dmas;
181 /delete-property/dma-names;
182};
183
184&i2c4 {
185 hwrtc: rtc@32 {
186 compatible = "microcrystal,rv8803";
187 reg = <0x32>;
188 };
189
190 eeprom@50 {
191 compatible = "atmel,24c04";
192 reg = <0x50>;
193 pagesize = <16>;
194 };
195};
196
197&sdmmc1 { /* MicroSD */
198 pinctrl-names = "default", "opendrain", "sleep";
199 pinctrl-0 = <&sdmmc1_b4_pins_a>;
200 pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
201 pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
202 cd-gpios = <&gpioi 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
203 disable-wp;
204 st,neg-edge;
205 bus-width = <4>;
206 vmmc-supply = <&vdd>;
207 vqmmc-supply = <&vdd>;
208 status = "okay";
209};
210
211&sdmmc2 { /* eMMC */
212 pinctrl-names = "default", "opendrain", "sleep";
213 pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_c>;
214 pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_c>;
215 pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_c>;
216 bus-width = <8>;
217 no-sd;
218 no-sdio;
219 non-removable;
220 st,neg-edge;
221 vmmc-supply = <&v3v3>;
222 vqmmc-supply = <&vdd>;
223 status = "okay";
224};
225
226&sdmmc3 { /* SDIO Wi-Fi */
227 pinctrl-names = "default", "opendrain", "sleep";
228 pinctrl-0 = <&sdmmc3_b4_pins_a>;
229 pinctrl-1 = <&sdmmc3_b4_od_pins_a>;
230 pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>;
231 broken-cd;
232 bus-width = <4>;
233 mmc-ddr-3_3v;
234 st,neg-edge;
235 vmmc-supply = <&v3v3>;
236 vqmmc-supply = <&v3v3>;
237 status = "okay";
238};
239
240&spi2 { /* X11 SPI */
241 pinctrl-names = "default";
242 pinctrl-0 = <&spi2_pins_b>;
243 cs-gpios = <&gpioi 0 0>;
244 status = "disabled";
245 /delete-property/dmas;
246 /delete-property/dma-names;
247};
248
249&uart4 {
250 label = "UART0";
251 pinctrl-names = "default";
252 pinctrl-0 = <&uart4_pins_d>;
253 /delete-property/dmas;
254 /delete-property/dma-names;
255 status = "okay";
256};
257
258&uart5 { /* X11 UART */
259 label = "X11-UART5";
260 pinctrl-names = "default";
261 pinctrl-0 = <&uart5_pins_a>;
262 /delete-property/dmas;
263 /delete-property/dma-names;
264 status = "okay";
265};
266
267&uart8 {
268 label = "RS485-1";
269 pinctrl-names = "default";
270 pinctrl-0 = <&uart8_pins_a &uart8_rtscts_pins_a>;
271 uart-has-rtscts;
272 /delete-property/dmas;
273 /delete-property/dma-names;
274 status = "okay";
275};
276
277&usart3 { /* RS485 or RS232 */
278 label = "RS485-2";
279 pinctrl-names = "default", "sleep";
280 pinctrl-0 = <&usart3_pins_e>;
281 pinctrl-1 = <&usart3_sleep_pins_e>;
282 uart-has-rtscts;
283 /delete-property/dmas;
284 /delete-property/dma-names;
285 status = "okay";
286};
287
288&usbh_ehci {
289 phys = <&usbphyc_port0>;
290 status = "okay";
291};
292
293&usbh_ohci {
294 phys = <&usbphyc_port0>;
295 status = "okay";
296};
297
298&usbotg_hs {
299 dr_mode = "otg";
300 pinctrl-0 = <&usbotg_hs_pins_a>;
301 pinctrl-names = "default";
302 phy-names = "usb2-phy";
303 phys = <&usbphyc_port1 0>;
304 vbus-supply = <&vbus_otg>;
305 status = "okay";
306};
307
308&usbphyc {
309 status = "okay";
310};
311
312&usbphyc_port0 {
313 phy-supply = <&vdd_usb>;
314 vdda1v1-supply = <&reg11>;
315 vdda1v8-supply = <&reg18>;
316 connector {
317 compatible = "usb-a-connector";
318 vbus-supply = <&vbus_sw>;
319 };
320};
321
322&usbphyc_port1 {
323 phy-supply = <&vdd_usb>;
324 vdda1v1-supply = <&reg11>;
325 vdda1v8-supply = <&reg18>;
326};