Merge branches 'clk-range', 'clk-uniphier', 'clk-apple' and 'clk-qcom' into clk-next
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / freescale / fsl-ls1028a-kontron-sl28.dts
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 &usb0 {
315         status = "okay";
316 };
317
318 &usb1 {
319         status = "okay";
320 };