xref: /openbmc/linux/scripts/dtc/include-prefixes/arm64/freescale/fsl-ls1028a-kontron-sl28.dts (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1815364d0SMichael Walle// SPDX-License-Identifier: GPL-2.0+
2815364d0SMichael Walle/*
3815364d0SMichael Walle * Device Tree file for the Kontron SMARC-sAL28 board.
4815364d0SMichael Walle *
567833805SMichael Walle * Copyright (C) 2021 Michael Walle <michael@walle.cc>
6815364d0SMichael Walle *
7815364d0SMichael Walle */
8815364d0SMichael Walle
9815364d0SMichael Walle/dts-v1/;
10815364d0SMichael Walle#include "fsl-ls1028a.dtsi"
11c86e4202SMichael Walle#include <dt-bindings/interrupt-controller/irq.h>
12945710bbSMichael Walle#include <dt-bindings/gpio/gpio.h>
13945710bbSMichael Walle#include <dt-bindings/input/input.h>
14815364d0SMichael Walle
15815364d0SMichael Walle/ {
16815364d0SMichael Walle	model = "Kontron SMARC-sAL28";
17815364d0SMichael Walle	compatible = "kontron,sl28", "fsl,ls1028a";
18815364d0SMichael Walle
19815364d0SMichael Walle	aliases {
20815364d0SMichael Walle		crypto = &crypto;
21815364d0SMichael Walle		serial0 = &duart0;
22815364d0SMichael Walle		serial1 = &duart1;
23a0a44420SMichael Walle		serial2 = &lpuart1;
241bc72a42SMichael Walle		spi0 = &fspi;
251bc72a42SMichael Walle		spi1 = &dspi2;
262e6cde96SVladimir Oltean		mmc0 = &esdhc1;
272e6cde96SVladimir Oltean		mmc1 = &esdhc;
2851c8eaa1SMichael Walle		rtc0 = &rtc;
29c75dc98bSMichael Walle		rtc1 = &ftm_alarm0;
30815364d0SMichael Walle	};
31815364d0SMichael Walle
32945710bbSMichael Walle	buttons0 {
33945710bbSMichael Walle		compatible = "gpio-keys";
34945710bbSMichael Walle
35945710bbSMichael Walle		power-button {
36945710bbSMichael Walle			interrupts-extended = <&sl28cpld_intc
37945710bbSMichael Walle					       4 IRQ_TYPE_EDGE_BOTH>;
38945710bbSMichael Walle			linux,code = <KEY_POWER>;
39945710bbSMichael Walle			label = "Power";
40945710bbSMichael Walle		};
41945710bbSMichael Walle
42945710bbSMichael Walle		sleep-button {
43945710bbSMichael Walle			interrupts-extended = <&sl28cpld_intc
44945710bbSMichael Walle					       5 IRQ_TYPE_EDGE_BOTH>;
45945710bbSMichael Walle			linux,code = <KEY_SLEEP>;
46945710bbSMichael Walle			label = "Sleep";
47945710bbSMichael Walle		};
48945710bbSMichael Walle	};
49945710bbSMichael Walle
50945710bbSMichael Walle	buttons1 {
51945710bbSMichael Walle		compatible = "gpio-keys-polled";
52945710bbSMichael Walle		poll-interval = <200>;
53945710bbSMichael Walle
54945710bbSMichael Walle		lid-switch {
55945710bbSMichael Walle			linux,input-type = <EV_SW>;
56945710bbSMichael Walle			linux,code = <SW_LID>;
57945710bbSMichael Walle			gpios = <&sl28cpld_gpio3 4 GPIO_ACTIVE_LOW>;
58945710bbSMichael Walle			label = "Lid";
59945710bbSMichael Walle		};
60945710bbSMichael Walle	};
61945710bbSMichael Walle
62815364d0SMichael Walle	chosen {
63815364d0SMichael Walle		stdout-path = "serial0:115200n8";
64815364d0SMichael Walle	};
65815364d0SMichael Walle};
66815364d0SMichael Walle
677e2ac9deSMichael Walle&can0 {
687e2ac9deSMichael Walle	status = "okay";
697e2ac9deSMichael Walle};
707e2ac9deSMichael Walle
711bc72a42SMichael Walle&dspi2 {
721bc72a42SMichael Walle	status = "okay";
731bc72a42SMichael Walle};
741bc72a42SMichael Walle
75815364d0SMichael Walle&duart0 {
76815364d0SMichael Walle	status = "okay";
77815364d0SMichael Walle};
78815364d0SMichael Walle
79815364d0SMichael Walle&duart1 {
80815364d0SMichael Walle	status = "okay";
81815364d0SMichael Walle};
82815364d0SMichael Walle
8367833805SMichael Walle&enetc_mdio_pf3 {
84815364d0SMichael Walle	phy0: ethernet-phy@5 {
85815364d0SMichael Walle		reg = <0x5>;
86815364d0SMichael Walle		eee-broken-1000t;
87815364d0SMichael Walle		eee-broken-100tx;
88815364d0SMichael Walle	};
89815364d0SMichael Walle};
9067833805SMichael Walle
9167833805SMichael Walle&enetc_port0 {
9267833805SMichael Walle	phy-handle = <&phy0>;
93caa355c5SMichael Walle	phy-mode = "sgmii";
9467833805SMichael Walle	managed = "in-band-status";
95*06b944f4SMichael Walle	nvmem-cells = <&base_mac_address 0>;
96*06b944f4SMichael Walle	nvmem-cell-names = "mac-address";
9767833805SMichael Walle	status = "okay";
98815364d0SMichael Walle};
99815364d0SMichael Walle
100815364d0SMichael Walle&esdhc {
101815364d0SMichael Walle	sd-uhs-sdr104;
102815364d0SMichael Walle	sd-uhs-sdr50;
103815364d0SMichael Walle	sd-uhs-sdr25;
104815364d0SMichael Walle	sd-uhs-sdr12;
105815364d0SMichael Walle	status = "okay";
106815364d0SMichael Walle};
107815364d0SMichael Walle
108815364d0SMichael Walle&esdhc1 {
109815364d0SMichael Walle	mmc-hs200-1_8v;
110815364d0SMichael Walle	mmc-hs400-1_8v;
111815364d0SMichael Walle	bus-width = <8>;
112815364d0SMichael Walle	status = "okay";
113815364d0SMichael Walle};
114815364d0SMichael Walle
115815364d0SMichael Walle&fspi {
116815364d0SMichael Walle	status = "okay";
117815364d0SMichael Walle
118815364d0SMichael Walle	flash@0 {
119815364d0SMichael Walle		compatible = "jedec,spi-nor";
120815364d0SMichael Walle		m25p,fast-read;
121815364d0SMichael Walle		spi-max-frequency = <133000000>;
122815364d0SMichael Walle		reg = <0>;
123815364d0SMichael Walle		/* The following setting enables 1-1-2 (CMD-ADDR-DATA) mode */
124815364d0SMichael Walle		spi-rx-bus-width = <2>; /* 2 SPI Rx lines */
125815364d0SMichael Walle		spi-tx-bus-width = <1>; /* 1 SPI Tx line */
126815364d0SMichael Walle
127aa494330SMichael Walle		partitions {
128aa494330SMichael Walle			compatible = "fixed-partitions";
129aa494330SMichael Walle			#address-cells = <1>;
130aa494330SMichael Walle			#size-cells = <1>;
131aa494330SMichael Walle
132815364d0SMichael Walle			partition@0 {
133815364d0SMichael Walle				reg = <0x000000 0x010000>;
134815364d0SMichael Walle				label = "rcw";
135815364d0SMichael Walle				read-only;
136815364d0SMichael Walle			};
137815364d0SMichael Walle
138815364d0SMichael Walle			partition@10000 {
139b3535535SMichael Walle				reg = <0x010000 0x1d0000>;
140815364d0SMichael Walle				label = "failsafe bootloader";
141815364d0SMichael Walle				read-only;
142815364d0SMichael Walle			};
143815364d0SMichael Walle
144815364d0SMichael Walle			partition@200000 {
145815364d0SMichael Walle				reg = <0x200000 0x010000>;
146815364d0SMichael Walle				label = "configuration store";
147815364d0SMichael Walle			};
148815364d0SMichael Walle
149815364d0SMichael Walle			partition@210000 {
15091ab1c12SMichael Walle				reg = <0x210000 0x1d0000>;
151815364d0SMichael Walle				label = "bootloader";
152815364d0SMichael Walle			};
153815364d0SMichael Walle
154815364d0SMichael Walle			partition@3e0000 {
155815364d0SMichael Walle				reg = <0x3e0000 0x020000>;
156815364d0SMichael Walle				label = "bootloader environment";
157815364d0SMichael Walle			};
158815364d0SMichael Walle		};
159*06b944f4SMichael Walle
160*06b944f4SMichael Walle		otp-1 {
161*06b944f4SMichael Walle			compatible = "user-otp";
162*06b944f4SMichael Walle
163*06b944f4SMichael Walle			nvmem-layout {
164*06b944f4SMichael Walle				compatible = "kontron,sl28-vpd";
165*06b944f4SMichael Walle
166*06b944f4SMichael Walle				serial_number: serial-number {
167*06b944f4SMichael Walle				};
168*06b944f4SMichael Walle
169*06b944f4SMichael Walle				base_mac_address: base-mac-address {
170*06b944f4SMichael Walle					#nvmem-cell-cells = <1>;
171*06b944f4SMichael Walle				};
172*06b944f4SMichael Walle			};
173*06b944f4SMichael Walle		};
174815364d0SMichael Walle	};
175aa494330SMichael Walle};
176815364d0SMichael Walle
177ff3cfc35SMichael Walle&ftm_alarm0 {
178ff3cfc35SMichael Walle	status = "okay";
179ff3cfc35SMichael Walle};
180ff3cfc35SMichael Walle
181815364d0SMichael Walle&gpio1 {
182815364d0SMichael Walle	gpio-line-names =
183815364d0SMichael Walle		"", "", "", "", "", "", "", "",
184815364d0SMichael Walle		"", "", "", "", "", "", "", "",
185815364d0SMichael Walle		"", "", "", "", "", "", "TDO", "TCK",
186815364d0SMichael Walle		"", "", "", "", "", "", "", "";
187815364d0SMichael Walle};
188815364d0SMichael Walle
189815364d0SMichael Walle&gpio2 {
190815364d0SMichael Walle	gpio-line-names =
191815364d0SMichael Walle		"", "", "", "", "", "", "TMS", "TDI",
192815364d0SMichael Walle		"", "", "", "", "", "", "", "",
193815364d0SMichael Walle		"", "", "", "", "", "", "", "",
194815364d0SMichael Walle		"", "", "", "", "", "", "", "";
195815364d0SMichael Walle};
196815364d0SMichael Walle
197815364d0SMichael Walle&i2c0 {
198815364d0SMichael Walle	status = "okay";
199815364d0SMichael Walle
20051c8eaa1SMichael Walle	rtc: rtc@32 {
201815364d0SMichael Walle		compatible = "microcrystal,rv8803";
202815364d0SMichael Walle		reg = <0x32>;
203815364d0SMichael Walle	};
204815364d0SMichael Walle
205c86e4202SMichael Walle	sl28cpld@4a {
206c86e4202SMichael Walle		compatible = "kontron,sl28cpld";
207c86e4202SMichael Walle		reg = <0x4a>;
208c86e4202SMichael Walle		#address-cells = <1>;
209c86e4202SMichael Walle		#size-cells = <0>;
210c86e4202SMichael Walle
211c86e4202SMichael Walle		watchdog@4 {
212c86e4202SMichael Walle			compatible = "kontron,sl28cpld-wdt";
213c86e4202SMichael Walle			reg = <0x4>;
214c86e4202SMichael Walle			kontron,assert-wdt-timeout-pin;
215c86e4202SMichael Walle		};
216c86e4202SMichael Walle
217c86e4202SMichael Walle		hwmon@b {
218c86e4202SMichael Walle			compatible = "kontron,sl28cpld-fan";
219c86e4202SMichael Walle			reg = <0xb>;
220c86e4202SMichael Walle		};
221c86e4202SMichael Walle
222c86e4202SMichael Walle		sl28cpld_pwm0: pwm@c {
223c86e4202SMichael Walle			compatible = "kontron,sl28cpld-pwm";
224c86e4202SMichael Walle			reg = <0xc>;
225c86e4202SMichael Walle			#pwm-cells = <2>;
226c86e4202SMichael Walle		};
227c86e4202SMichael Walle
228c86e4202SMichael Walle		sl28cpld_pwm1: pwm@e {
229c86e4202SMichael Walle			compatible = "kontron,sl28cpld-pwm";
230c86e4202SMichael Walle			reg = <0xe>;
231c86e4202SMichael Walle			#pwm-cells = <2>;
232c86e4202SMichael Walle		};
233c86e4202SMichael Walle
234c86e4202SMichael Walle		sl28cpld_gpio0: gpio@10 {
235c86e4202SMichael Walle			compatible = "kontron,sl28cpld-gpio";
236c86e4202SMichael Walle			reg = <0x10>;
237c86e4202SMichael Walle			interrupts-extended = <&gpio2 6
238c86e4202SMichael Walle					       IRQ_TYPE_EDGE_FALLING>;
239c86e4202SMichael Walle
240c86e4202SMichael Walle			gpio-controller;
241c86e4202SMichael Walle			#gpio-cells = <2>;
242c86e4202SMichael Walle			gpio-line-names =
243c86e4202SMichael Walle				"GPIO0_CAM0_PWR_N", "GPIO1_CAM1_PWR_N",
244c86e4202SMichael Walle				"GPIO2_CAM0_RST_N", "GPIO3_CAM1_RST_N",
245c86e4202SMichael Walle				"GPIO4_HDA_RST_N", "GPIO5_PWM_OUT",
246c86e4202SMichael Walle				"GPIO6_TACHIN", "GPIO7";
247c86e4202SMichael Walle
248c86e4202SMichael Walle			interrupt-controller;
249c86e4202SMichael Walle			#interrupt-cells = <2>;
250c86e4202SMichael Walle		};
251c86e4202SMichael Walle
252c86e4202SMichael Walle		sl28cpld_gpio1: gpio@15 {
253c86e4202SMichael Walle			compatible = "kontron,sl28cpld-gpio";
254c86e4202SMichael Walle			reg = <0x15>;
255c86e4202SMichael Walle			interrupts-extended = <&gpio2 6
256c86e4202SMichael Walle					       IRQ_TYPE_EDGE_FALLING>;
257c86e4202SMichael Walle
258c86e4202SMichael Walle			gpio-controller;
259c86e4202SMichael Walle			#gpio-cells = <2>;
260c86e4202SMichael Walle			gpio-line-names =
261c86e4202SMichael Walle				"GPIO8", "GPIO9", "GPIO10", "GPIO11",
262c86e4202SMichael Walle				"", "", "", "";
263c86e4202SMichael Walle
264c86e4202SMichael Walle			interrupt-controller;
265c86e4202SMichael Walle			#interrupt-cells = <2>;
266c86e4202SMichael Walle		};
267c86e4202SMichael Walle
268c86e4202SMichael Walle		sl28cpld_gpio2: gpio@1a {
269c86e4202SMichael Walle			compatible = "kontron,sl28cpld-gpo";
270c86e4202SMichael Walle			reg = <0x1a>;
271c86e4202SMichael Walle
272c86e4202SMichael Walle			gpio-controller;
273c86e4202SMichael Walle			#gpio-cells = <2>;
274c86e4202SMichael Walle			gpio-line-names =
275c86e4202SMichael Walle				"LCD0 voltage enable",
276c86e4202SMichael Walle				"LCD0 backlight enable",
277c86e4202SMichael Walle				"eMMC reset", "LVDS bridge reset",
278c86e4202SMichael Walle				"LVDS bridge power-down",
279c86e4202SMichael Walle				"SDIO power enable",
280c86e4202SMichael Walle				"", "";
281c86e4202SMichael Walle		};
282c86e4202SMichael Walle
283c86e4202SMichael Walle		sl28cpld_gpio3: gpio@1b {
284c86e4202SMichael Walle			compatible = "kontron,sl28cpld-gpi";
285c86e4202SMichael Walle			reg = <0x1b>;
286c86e4202SMichael Walle
287c86e4202SMichael Walle			gpio-controller;
288c86e4202SMichael Walle			#gpio-cells = <2>;
289c86e4202SMichael Walle			gpio-line-names =
290c86e4202SMichael Walle				"Power button", "Force recovery", "Sleep",
291c86e4202SMichael Walle				"Battery low", "Lid state", "Charging",
292c86e4202SMichael Walle				"Charger present", "";
293c86e4202SMichael Walle		};
294c86e4202SMichael Walle
295c86e4202SMichael Walle		sl28cpld_intc: interrupt-controller@1c {
296c86e4202SMichael Walle			compatible = "kontron,sl28cpld-intc";
297c86e4202SMichael Walle			reg = <0x1c>;
298c86e4202SMichael Walle			interrupts-extended = <&gpio2 6
299c86e4202SMichael Walle					       IRQ_TYPE_EDGE_FALLING>;
300c86e4202SMichael Walle
301c86e4202SMichael Walle			interrupt-controller;
302c86e4202SMichael Walle			#interrupt-cells = <2>;
303c86e4202SMichael Walle		};
304c86e4202SMichael Walle	};
305c86e4202SMichael Walle
306815364d0SMichael Walle	eeprom@50 {
307815364d0SMichael Walle		compatible = "atmel,24c32";
308815364d0SMichael Walle		reg = <0x50>;
309815364d0SMichael Walle		pagesize = <32>;
310815364d0SMichael Walle	};
311815364d0SMichael Walle};
312815364d0SMichael Walle
313815364d0SMichael Walle&i2c3 {
314815364d0SMichael Walle	status = "okay";
315815364d0SMichael Walle};
316815364d0SMichael Walle
317815364d0SMichael Walle&i2c4 {
318815364d0SMichael Walle	status = "okay";
319f05cd1c2SMichael Walle
320f05cd1c2SMichael Walle	eeprom@50 {
321f05cd1c2SMichael Walle		compatible = "atmel,24c32";
322f05cd1c2SMichael Walle		reg = <0x50>;
323f05cd1c2SMichael Walle		pagesize = <32>;
324f05cd1c2SMichael Walle	};
325815364d0SMichael Walle};
326a0a44420SMichael Walle
327a0a44420SMichael Walle&lpuart1 {
328a0a44420SMichael Walle	status = "okay";
329a0a44420SMichael Walle};
33070293beaSMichael Walle
331be0b178cSMichael Walle&mscc_felix_port4 {
332be0b178cSMichael Walle	dsa-tag-protocol = "ocelot-8021q";
333be0b178cSMichael Walle};
334be0b178cSMichael Walle
335be0b178cSMichael Walle&mscc_felix_port5 {
336be0b178cSMichael Walle	dsa-tag-protocol = "ocelot-8021q";
337be0b178cSMichael Walle};
338be0b178cSMichael Walle
33970293beaSMichael Walle&usb0 {
34070293beaSMichael Walle	status = "okay";
34170293beaSMichael Walle};
34270293beaSMichael Walle
34370293beaSMichael Walle&usb1 {
34473d901d6SMichael Walle	dr_mode = "host";
34570293beaSMichael Walle	status = "okay";
34670293beaSMichael Walle};
347