WIP FPC-III support
[linux/fpc-iii.git] / arch / arm64 / boot / dts / freescale / fsl-ls1028a-kontron-sl28.dts
blob0516076087ae33b7b449a7e62612aa71de6f6e7e
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  */
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>
15 / {
16         model = "Kontron SMARC-sAL28";
17         compatible = "kontron,sl28", "fsl,ls1028a";
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         };
30         buttons0 {
31                 compatible = "gpio-keys";
33                 power-button {
34                         interrupts-extended = <&sl28cpld_intc
35                                                4 IRQ_TYPE_EDGE_BOTH>;
36                         linux,code = <KEY_POWER>;
37                         label = "Power";
38                 };
40                 sleep-button {
41                         interrupts-extended = <&sl28cpld_intc
42                                                5 IRQ_TYPE_EDGE_BOTH>;
43                         linux,code = <KEY_SLEEP>;
44                         label = "Sleep";
45                 };
46         };
48         buttons1 {
49                 compatible = "gpio-keys-polled";
50                 poll-interval = <200>;
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         };
60         chosen {
61                 stdout-path = "serial0:115200n8";
62         };
65 &can0 {
66         status = "okay";
69 &dspi2 {
70         status = "okay";
73 &duart0 {
74         status = "okay";
77 &duart1 {
78         status = "okay";
81 &enetc_port0 {
82         phy-handle = <&phy0>;
83         phy-connection-type = "sgmii";
84         managed = "in-band-status";
85         status = "okay";
87         mdio {
88                 #address-cells = <1>;
89                 #size-cells = <0>;
91                 phy0: ethernet-phy@5 {
92                         reg = <0x5>;
93                         eee-broken-1000t;
94                         eee-broken-100tx;
95                 };
96         };
99 &esdhc {
100         sd-uhs-sdr104;
101         sd-uhs-sdr50;
102         sd-uhs-sdr25;
103         sd-uhs-sdr12;
104         status = "okay";
107 &esdhc1 {
108         mmc-hs200-1_8v;
109         mmc-hs400-1_8v;
110         bus-width = <8>;
111         status = "okay";
114 &fspi {
115         status = "okay";
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 */
128                 partition@0 {
129                         reg = <0x000000 0x010000>;
130                         label = "rcw";
131                         read-only;
132                 };
134                 partition@10000 {
135                         reg = <0x010000 0x0f0000>;
136                         label = "failsafe bootloader";
137                         read-only;
138                 };
140                 partition@100000 {
141                         reg = <0x100000 0x040000>;
142                         label = "failsafe DP firmware";
143                         read-only;
144                 };
146                 partition@140000 {
147                         reg = <0x140000 0x0a0000>;
148                         label = "failsafe trusted firmware";
149                         read-only;
150                 };
152                 partition@1e0000 {
153                         reg = <0x1e0000 0x020000>;
154                         label = "reserved";
155                         read-only;
156                 };
158                 partition@200000 {
159                         reg = <0x200000 0x010000>;
160                         label = "configuration store";
161                 };
163                 partition@210000 {
164                         reg = <0x210000 0x1d0000>;
165                         label = "bootloader";
166                 };
168                 partition@3e0000 {
169                         reg = <0x3e0000 0x020000>;
170                         label = "bootloader environment";
171                 };
172         };
175 &gpio1 {
176         gpio-line-names =
177                 "", "", "", "", "", "", "", "",
178                 "", "", "", "", "", "", "", "",
179                 "", "", "", "", "", "", "TDO", "TCK",
180                 "", "", "", "", "", "", "", "";
183 &gpio2 {
184         gpio-line-names =
185                 "", "", "", "", "", "", "TMS", "TDI",
186                 "", "", "", "", "", "", "", "",
187                 "", "", "", "", "", "", "", "",
188                 "", "", "", "", "", "", "", "";
191 &i2c0 {
192         status = "okay";
194         rtc@32 {
195                 compatible = "microcrystal,rv8803";
196                 reg = <0x32>;
197         };
199         sl28cpld@4a {
200                 compatible = "kontron,sl28cpld";
201                 reg = <0x4a>;
202                 #address-cells = <1>;
203                 #size-cells = <0>;
205                 watchdog@4 {
206                         compatible = "kontron,sl28cpld-wdt";
207                         reg = <0x4>;
208                         kontron,assert-wdt-timeout-pin;
209                 };
211                 hwmon@b {
212                         compatible = "kontron,sl28cpld-fan";
213                         reg = <0xb>;
214                 };
216                 sl28cpld_pwm0: pwm@c {
217                         compatible = "kontron,sl28cpld-pwm";
218                         reg = <0xc>;
219                         #pwm-cells = <2>;
220                 };
222                 sl28cpld_pwm1: pwm@e {
223                         compatible = "kontron,sl28cpld-pwm";
224                         reg = <0xe>;
225                         #pwm-cells = <2>;
226                 };
228                 sl28cpld_gpio0: gpio@10 {
229                         compatible = "kontron,sl28cpld-gpio";
230                         reg = <0x10>;
231                         interrupts-extended = <&gpio2 6
232                                                IRQ_TYPE_EDGE_FALLING>;
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";
242                         interrupt-controller;
243                         #interrupt-cells = <2>;
244                 };
246                 sl28cpld_gpio1: gpio@15 {
247                         compatible = "kontron,sl28cpld-gpio";
248                         reg = <0x15>;
249                         interrupts-extended = <&gpio2 6
250                                                IRQ_TYPE_EDGE_FALLING>;
252                         gpio-controller;
253                         #gpio-cells = <2>;
254                         gpio-line-names =
255                                 "GPIO8", "GPIO9", "GPIO10", "GPIO11",
256                                 "", "", "", "";
258                         interrupt-controller;
259                         #interrupt-cells = <2>;
260                 };
262                 sl28cpld_gpio2: gpio@1a {
263                         compatible = "kontron,sl28cpld-gpo";
264                         reg = <0x1a>;
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                 };
277                 sl28cpld_gpio3: gpio@1b {
278                         compatible = "kontron,sl28cpld-gpi";
279                         reg = <0x1b>;
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                 };
289                 sl28cpld_intc: interrupt-controller@1c {
290                         compatible = "kontron,sl28cpld-intc";
291                         reg = <0x1c>;
292                         interrupts-extended = <&gpio2 6
293                                                IRQ_TYPE_EDGE_FALLING>;
295                         interrupt-controller;
296                         #interrupt-cells = <2>;
297                 };
298         };
300         eeprom@50 {
301                 compatible = "atmel,24c32";
302                 reg = <0x50>;
303                 pagesize = <32>;
304         };
307 &i2c3 {
308         status = "okay";
311 &i2c4 {
312         status = "okay";
314         eeprom@50 {
315                 compatible = "atmel,24c32";
316                 reg = <0x50>;
317                 pagesize = <32>;
318         };
321 &lpuart1 {
322         status = "okay";