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