1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3 * Device Tree file for the Kontron SMARC-sAL28 board.
4 *
5 * Copyright (C) 2021 Michael Walle <michael@walle.cc>
6 *
7 */
8
9 /dts-v1/;
10 #include "fsl-ls1028a.dtsi"
11 #include <dt-bindings/interrupt-controller/irq.h>
12 #include <dt-bindings/gpio/gpio.h>
13 #include <dt-bindings/input/input.h>
14
15 / {
16 model = "Kontron SMARC-sAL28";
17 compatible = "kontron,sl28", "fsl,ls1028a";
18
19 aliases {
20 crypto = &crypto;
21 serial0 = &duart0;
22 serial1 = &duart1;
23 serial2 = &lpuart1;
24 spi0 = &fspi;
25 spi1 = &dspi2;
26 mmc0 = &esdhc1;
27 mmc1 = &esdhc;
28 rtc0 = &rtc;
29 rtc1 = &ftm_alarm0;
30 };
31
32 buttons0 {
33 compatible = "gpio-keys";
34
35 power-button {
36 interrupts-extended = <&sl28cpld_intc
37 4 IRQ_TYPE_EDGE_BOTH>;
38 linux,code = <KEY_POWER>;
39 label = "Power";
40 };
41
42 sleep-button {
43 interrupts-extended = <&sl28cpld_intc
44 5 IRQ_TYPE_EDGE_BOTH>;
45 linux,code = <KEY_SLEEP>;
46 label = "Sleep";
47 };
48 };
49
50 buttons1 {
51 compatible = "gpio-keys-polled";
52 poll-interval = <200>;
53
54 lid-switch {
55 linux,input-type = <EV_SW>;
56 linux,code = <SW_LID>;
57 gpios = <&sl28cpld_gpio3 4 GPIO_ACTIVE_LOW>;
58 label = "Lid";
59 };
60 };
61
62 chosen {
63 stdout-path = "serial0:115200n8";
64 };
65 };
66
67 &can0 {
68 status = "okay";
69 };
70
71 &dspi2 {
72 status = "okay";
73 };
74
75 &duart0 {
76 status = "okay";
77 };
78
79 &duart1 {
80 status = "okay";
81 };
82
83 &enetc_mdio_pf3 {
84 phy0: ethernet-phy@5 {
85 reg = <0x5>;
86 eee-broken-1000t;
87 eee-broken-100tx;
88 };
89 };
90
91 &enetc_port0 {
92 phy-handle = <&phy0>;
93 phy-mode = "sgmii";
94 managed = "in-band-status";
95 status = "okay";
96 };
97
98 &esdhc {
99 sd-uhs-sdr104;
100 sd-uhs-sdr50;
101 sd-uhs-sdr25;
102 sd-uhs-sdr12;
103 status = "okay";
104 };
105
106 &esdhc1 {
107 mmc-hs200-1_8v;
108 mmc-hs400-1_8v;
109 bus-width = <8>;
110 status = "okay";
111 };
112
113 &fspi {
114 status = "okay";
115
116 flash@0 {
117 compatible = "jedec,spi-nor";
118 m25p,fast-read;
119 spi-max-frequency = <133000000>;
120 reg = <0>;
121 /* The following setting enables 1-1-2 (CMD-ADDR-DATA) mode */
122 spi-rx-bus-width = <2>; /* 2 SPI Rx lines */
123 spi-tx-bus-width = <1>; /* 1 SPI Tx line */
124
125 partitions {
126 compatible = "fixed-partitions";
127 #address-cells = <1>;
128 #size-cells = <1>;
129
130 partition@0 {
131 reg = <0x000000 0x010000>;
132 label = "rcw";
133 read-only;
134 };
135
136 partition@10000 {
137 reg = <0x010000 0x1d0000>;
138 label = "failsafe bootloader";
139 read-only;
140 };
141
142 partition@200000 {
143 reg = <0x200000 0x010000>;
144 label = "configuration store";
145 };
146
147 partition@210000 {
148 reg = <0x210000 0x1d0000>;
149 label = "bootloader";
150 };
151
152 partition@3e0000 {
153 reg = <0x3e0000 0x020000>;
154 label = "bootloader environment";
155 };
156 };
157 };
158 };
159
160 &ftm_alarm0 {
161 status = "okay";
162 };
163
164 &gpio1 {
165 gpio-line-names =
166 "", "", "", "", "", "", "", "",
167 "", "", "", "", "", "", "", "",
168 "", "", "", "", "", "", "TDO", "TCK",
169 "", "", "", "", "", "", "", "";
170 };
171
172 &gpio2 {
173 gpio-line-names =
174 "", "", "", "", "", "", "TMS", "TDI",
175 "", "", "", "", "", "", "", "",
176 "", "", "", "", "", "", "", "",
177 "", "", "", "", "", "", "", "";
178 };
179
180 &i2c0 {
181 status = "okay";
182
183 rtc: rtc@32 {
184 compatible = "microcrystal,rv8803";
185 reg = <0x32>;
186 };
187
188 sl28cpld@4a {
189 compatible = "kontron,sl28cpld";
190 reg = <0x4a>;
191 #address-cells = <1>;
192 #size-cells = <0>;
193
194 watchdog@4 {
195 compatible = "kontron,sl28cpld-wdt";
196 reg = <0x4>;
197 kontron,assert-wdt-timeout-pin;
198 };
199
200 hwmon@b {
201 compatible = "kontron,sl28cpld-fan";
202 reg = <0xb>;
203 };
204
205 sl28cpld_pwm0: pwm@c {
206 compatible = "kontron,sl28cpld-pwm";
207 reg = <0xc>;
208 #pwm-cells = <2>;
209 };
210
211 sl28cpld_pwm1: pwm@e {
212 compatible = "kontron,sl28cpld-pwm";
213 reg = <0xe>;
214 #pwm-cells = <2>;
215 };
216
217 sl28cpld_gpio0: gpio@10 {
218 compatible = "kontron,sl28cpld-gpio";
219 reg = <0x10>;
220 interrupts-extended = <&gpio2 6
221 IRQ_TYPE_EDGE_FALLING>;
222
223 gpio-controller;
224 #gpio-cells = <2>;
225 gpio-line-names =
226 "GPIO0_CAM0_PWR_N", "GPIO1_CAM1_PWR_N",
227 "GPIO2_CAM0_RST_N", "GPIO3_CAM1_RST_N",
228 "GPIO4_HDA_RST_N", "GPIO5_PWM_OUT",
229 "GPIO6_TACHIN", "GPIO7";
230
231 interrupt-controller;
232 #interrupt-cells = <2>;
233 };
234
235 sl28cpld_gpio1: gpio@15 {
236 compatible = "kontron,sl28cpld-gpio";
237 reg = <0x15>;
238 interrupts-extended = <&gpio2 6
239 IRQ_TYPE_EDGE_FALLING>;
240
241 gpio-controller;
242 #gpio-cells = <2>;
243 gpio-line-names =
244 "GPIO8", "GPIO9", "GPIO10", "GPIO11",
245 "", "", "", "";
246
247 interrupt-controller;
248 #interrupt-cells = <2>;
249 };
250
251 sl28cpld_gpio2: gpio@1a {
252 compatible = "kontron,sl28cpld-gpo";
253 reg = <0x1a>;
254
255 gpio-controller;
256 #gpio-cells = <2>;
257 gpio-line-names =
258 "LCD0 voltage enable",
259 "LCD0 backlight enable",
260 "eMMC reset", "LVDS bridge reset",
261 "LVDS bridge power-down",
262 "SDIO power enable",
263 "", "";
264 };
265
266 sl28cpld_gpio3: gpio@1b {
267 compatible = "kontron,sl28cpld-gpi";
268 reg = <0x1b>;
269
270 gpio-controller;
271 #gpio-cells = <2>;
272 gpio-line-names =
273 "Power button", "Force recovery", "Sleep",
274 "Battery low", "Lid state", "Charging",
275 "Charger present", "";
276 };
277
278 sl28cpld_intc: interrupt-controller@1c {
279 compatible = "kontron,sl28cpld-intc";
280 reg = <0x1c>;
281 interrupts-extended = <&gpio2 6
282 IRQ_TYPE_EDGE_FALLING>;
283
284 interrupt-controller;
285 #interrupt-cells = <2>;
286 };
287 };
288
289 eeprom@50 {
290 compatible = "atmel,24c32";
291 reg = <0x50>;
292 pagesize = <32>;
293 };
294 };
295
296 &i2c3 {
297 status = "okay";
298 };
299
300 &i2c4 {
301 status = "okay";
302
303 eeprom@50 {
304 compatible = "atmel,24c32";
305 reg = <0x50>;
306 pagesize = <32>;
307 };
308 };
309
310 &lpuart1 {
311 status = "okay";
312 };
313
314 &mscc_felix_port4 {
315 dsa-tag-protocol = "ocelot-8021q";
316 };
317
318 &mscc_felix_port5 {
319 dsa-tag-protocol = "ocelot-8021q";
320 };
321
322 &usb0 {
323 status = "okay";
324 };
325
326 &usb1 {
327 dr_mode = "host";
328 status = "okay";
329 };
Cache object: 7aeb0de032818f4164e35685d0d1c9ab
|