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