xref: /freebsd-src/sys/contrib/device-tree/src/arm/st/stm32mp15xc-lxa-tac.dtsi (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1aa1a8ff2SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
2aa1a8ff2SEmmanuel Vadot/*
3aa1a8ff2SEmmanuel Vadot * Copyright (C) 2020 STMicroelectronics - All Rights Reserved
4aa1a8ff2SEmmanuel Vadot * Copyright (C) 2021 Rouven Czerwinski, Pengutronix
5aa1a8ff2SEmmanuel Vadot * Copyright (C) 2023 Leonard Göhrs, Pengutronix
6aa1a8ff2SEmmanuel Vadot */
7aa1a8ff2SEmmanuel Vadot
8aa1a8ff2SEmmanuel Vadot#include "stm32mp15xc.dtsi"
9aa1a8ff2SEmmanuel Vadot#include "stm32mp15xx-osd32.dtsi"
10aa1a8ff2SEmmanuel Vadot#include "stm32mp15xxac-pinctrl.dtsi"
11aa1a8ff2SEmmanuel Vadot
12aa1a8ff2SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
13aa1a8ff2SEmmanuel Vadot#include <dt-bindings/input/input.h>
14aa1a8ff2SEmmanuel Vadot#include <dt-bindings/leds/common.h>
15aa1a8ff2SEmmanuel Vadot#include <dt-bindings/pwm/pwm.h>
16aa1a8ff2SEmmanuel Vadot
17aa1a8ff2SEmmanuel Vadot/ {
18aa1a8ff2SEmmanuel Vadot	aliases {
19aa1a8ff2SEmmanuel Vadot		ethernet0 = &ethernet0;
20aa1a8ff2SEmmanuel Vadot		ethernet1 = &port_uplink;
21aa1a8ff2SEmmanuel Vadot		ethernet2 = &port_dut;
22aa1a8ff2SEmmanuel Vadot		mmc1 = &sdmmc2;
23aa1a8ff2SEmmanuel Vadot		serial0 = &uart4;
24aa1a8ff2SEmmanuel Vadot		serial1 = &usart3;
25aa1a8ff2SEmmanuel Vadot	};
26aa1a8ff2SEmmanuel Vadot
27aa1a8ff2SEmmanuel Vadot	chosen {
28aa1a8ff2SEmmanuel Vadot		stdout-path = &uart4;
29aa1a8ff2SEmmanuel Vadot	};
30aa1a8ff2SEmmanuel Vadot
31aa1a8ff2SEmmanuel Vadot	led-controller-0 {
32aa1a8ff2SEmmanuel Vadot		compatible = "gpio-leds";
33aa1a8ff2SEmmanuel Vadot
34aa1a8ff2SEmmanuel Vadot		led-0 {
35aa1a8ff2SEmmanuel Vadot			label = "tac:green:user1";
36aa1a8ff2SEmmanuel Vadot			gpios = <&gpiof 10 GPIO_ACTIVE_HIGH>;
37aa1a8ff2SEmmanuel Vadot			linux,default-trigger = "heartbeat";
38aa1a8ff2SEmmanuel Vadot		};
39aa1a8ff2SEmmanuel Vadot
40aa1a8ff2SEmmanuel Vadot		led-1 {
41aa1a8ff2SEmmanuel Vadot			label = "tac:green:user2";
42aa1a8ff2SEmmanuel Vadot			gpios = <&gpiog 7 GPIO_ACTIVE_HIGH>;
43aa1a8ff2SEmmanuel Vadot		};
44aa1a8ff2SEmmanuel Vadot
45aa1a8ff2SEmmanuel Vadot		led-2 {
46aa1a8ff2SEmmanuel Vadot			label = "tac:green:statusdut";
47aa1a8ff2SEmmanuel Vadot			gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
48aa1a8ff2SEmmanuel Vadot		};
49aa1a8ff2SEmmanuel Vadot
50aa1a8ff2SEmmanuel Vadot		/* led-3 and led-4 are internally connected antiparallel to one
51aa1a8ff2SEmmanuel Vadot		 * another inside the ethernet jack like this:
52aa1a8ff2SEmmanuel Vadot		 * GPIOA14 ---+---|led-3|>--+--- GPIOD15
53aa1a8ff2SEmmanuel Vadot		 *            +--<|led-4|---+
54aa1a8ff2SEmmanuel Vadot		 * E.g. only one of the LEDs can be illuminated at a time while
55aa1a8ff2SEmmanuel Vadot		 * the other output must be driven low.
56aa1a8ff2SEmmanuel Vadot		 * This should likely be implemented using a multi color LED
57aa1a8ff2SEmmanuel Vadot		 * driver for antiparallel LEDs.
58aa1a8ff2SEmmanuel Vadot		 */
59aa1a8ff2SEmmanuel Vadot		led-3 {
60aa1a8ff2SEmmanuel Vadot			label = "tac:green:statuslab";
61aa1a8ff2SEmmanuel Vadot			gpios = <&gpioa 14 GPIO_ACTIVE_HIGH>;
62aa1a8ff2SEmmanuel Vadot		};
63aa1a8ff2SEmmanuel Vadot
64aa1a8ff2SEmmanuel Vadot		led-4 {
65aa1a8ff2SEmmanuel Vadot			label = "tac:orange:statuslab";
66aa1a8ff2SEmmanuel Vadot			gpios = <&gpiod 15 GPIO_ACTIVE_HIGH>;
67aa1a8ff2SEmmanuel Vadot		};
68aa1a8ff2SEmmanuel Vadot	};
69aa1a8ff2SEmmanuel Vadot
70aa1a8ff2SEmmanuel Vadot	gpio-keys {
71aa1a8ff2SEmmanuel Vadot		compatible = "gpio-keys";
72aa1a8ff2SEmmanuel Vadot
73aa1a8ff2SEmmanuel Vadot		button-lower {
74aa1a8ff2SEmmanuel Vadot			label = "USER_BTN2";
75aa1a8ff2SEmmanuel Vadot			linux,code = <KEY_ESC>;
76aa1a8ff2SEmmanuel Vadot			gpios = <&gpioe 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
77aa1a8ff2SEmmanuel Vadot		};
78aa1a8ff2SEmmanuel Vadot
79aa1a8ff2SEmmanuel Vadot		button-upper {
80aa1a8ff2SEmmanuel Vadot			label = "USER_BTN";
81aa1a8ff2SEmmanuel Vadot			linux,code = <KEY_HOME>;
82aa1a8ff2SEmmanuel Vadot			gpios = <&gpioi 11 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
83aa1a8ff2SEmmanuel Vadot		};
84aa1a8ff2SEmmanuel Vadot	};
85aa1a8ff2SEmmanuel Vadot
86aa1a8ff2SEmmanuel Vadot	/* supplied by either barrel connector or PoE */
87aa1a8ff2SEmmanuel Vadot	reg_12v: regulator-12v {
88aa1a8ff2SEmmanuel Vadot		compatible = "regulator-fixed";
89aa1a8ff2SEmmanuel Vadot		regulator-name = "12V";
90aa1a8ff2SEmmanuel Vadot		regulator-min-microvolt = <12000000>;
91aa1a8ff2SEmmanuel Vadot		regulator-max-microvolt = <12000000>;
92aa1a8ff2SEmmanuel Vadot		regulator-always-on;
93aa1a8ff2SEmmanuel Vadot	};
94aa1a8ff2SEmmanuel Vadot
95aa1a8ff2SEmmanuel Vadot	reg_5v: regulator-5v {
96aa1a8ff2SEmmanuel Vadot		compatible = "regulator-fixed";
97aa1a8ff2SEmmanuel Vadot		regulator-name = "5V";
98aa1a8ff2SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
99aa1a8ff2SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
100aa1a8ff2SEmmanuel Vadot		regulator-always-on;
101aa1a8ff2SEmmanuel Vadot		vin-supply = <&reg_12v>;
102aa1a8ff2SEmmanuel Vadot	};
103aa1a8ff2SEmmanuel Vadot
104aa1a8ff2SEmmanuel Vadot	reg_1v2: regulator-1v2 {
105aa1a8ff2SEmmanuel Vadot		compatible = "regulator-fixed";
106aa1a8ff2SEmmanuel Vadot		regulator-name = "1V2";
107aa1a8ff2SEmmanuel Vadot		regulator-min-microvolt = <1200000>;
108aa1a8ff2SEmmanuel Vadot		regulator-max-microvolt = <1200000>;
109aa1a8ff2SEmmanuel Vadot		regulator-always-on;
110aa1a8ff2SEmmanuel Vadot		vin-supply = <&reg_5v>;
111aa1a8ff2SEmmanuel Vadot	};
112aa1a8ff2SEmmanuel Vadot
113aa1a8ff2SEmmanuel Vadot	reg_pb_5v: regulator-pb-5v {
114aa1a8ff2SEmmanuel Vadot		compatible = "regulator-fixed";
115aa1a8ff2SEmmanuel Vadot		regulator-name = "5V_POWERBOARD";
116aa1a8ff2SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
117aa1a8ff2SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
118aa1a8ff2SEmmanuel Vadot		regulator-always-on;
119aa1a8ff2SEmmanuel Vadot		vin-supply = <&reg_5v>;
120aa1a8ff2SEmmanuel Vadot	};
121aa1a8ff2SEmmanuel Vadot
122aa1a8ff2SEmmanuel Vadot	reg_pb_3v3: regulator-pb-3v3 {
123aa1a8ff2SEmmanuel Vadot		compatible = "regulator-fixed";
124aa1a8ff2SEmmanuel Vadot		regulator-name = "3V3_POWERBOARD";
125aa1a8ff2SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
126aa1a8ff2SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
127aa1a8ff2SEmmanuel Vadot		regulator-always-on;
128aa1a8ff2SEmmanuel Vadot		vin-supply = <&reg_pb_5v>;
129aa1a8ff2SEmmanuel Vadot	};
130aa1a8ff2SEmmanuel Vadot
131aa1a8ff2SEmmanuel Vadot	output-iobus-12v {
132aa1a8ff2SEmmanuel Vadot		compatible = "regulator-output";
133aa1a8ff2SEmmanuel Vadot		vout-supply = <&reg_iobus_12v>;
134aa1a8ff2SEmmanuel Vadot	};
135aa1a8ff2SEmmanuel Vadot
136aa1a8ff2SEmmanuel Vadot	output-vuart {
137aa1a8ff2SEmmanuel Vadot		compatible = "regulator-output";
138aa1a8ff2SEmmanuel Vadot		vout-supply = <&v3v3_hdmi>;
139aa1a8ff2SEmmanuel Vadot	};
140aa1a8ff2SEmmanuel Vadot};
141aa1a8ff2SEmmanuel Vadot
142aa1a8ff2SEmmanuel Vadotbaseboard_eeprom: &sip_eeprom {
143aa1a8ff2SEmmanuel Vadot};
144aa1a8ff2SEmmanuel Vadot
145aa1a8ff2SEmmanuel Vadot&adc {
146aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
147aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&adc1_ain_pins_a>;
148aa1a8ff2SEmmanuel Vadot	vdd-supply = <&vdd>;
149aa1a8ff2SEmmanuel Vadot	vdda-supply = <&vdda>;
150aa1a8ff2SEmmanuel Vadot	vref-supply = <&vrefbuf>;
151aa1a8ff2SEmmanuel Vadot	status = "okay";
152aa1a8ff2SEmmanuel Vadot
153aa1a8ff2SEmmanuel Vadot	adc1: adc@0 {
154aa1a8ff2SEmmanuel Vadot		st,adc-channels = <0 1 2 5 9 10 13 15>;
155aa1a8ff2SEmmanuel Vadot		st,min-sample-time-nsecs = <5000>;
156aa1a8ff2SEmmanuel Vadot		#address-cells = <1>;
157aa1a8ff2SEmmanuel Vadot		#size-cells = <0>;
158aa1a8ff2SEmmanuel Vadot		status = "okay";
159aa1a8ff2SEmmanuel Vadot
160aa1a8ff2SEmmanuel Vadot		channel@0 {
161aa1a8ff2SEmmanuel Vadot			reg = <0>;
162aa1a8ff2SEmmanuel Vadot			label = "HOST_2_CURR_FB";
163aa1a8ff2SEmmanuel Vadot		};
164aa1a8ff2SEmmanuel Vadot
165aa1a8ff2SEmmanuel Vadot		channel@1 {
166aa1a8ff2SEmmanuel Vadot			reg = <1>;
167aa1a8ff2SEmmanuel Vadot			label = "HOST_3_CURR_FB";
168aa1a8ff2SEmmanuel Vadot		};
169aa1a8ff2SEmmanuel Vadot
170aa1a8ff2SEmmanuel Vadot		channel@2 {
171aa1a8ff2SEmmanuel Vadot			reg = <2>;
172aa1a8ff2SEmmanuel Vadot			label = "OUT_0_FB";
173aa1a8ff2SEmmanuel Vadot		};
174aa1a8ff2SEmmanuel Vadot
175aa1a8ff2SEmmanuel Vadot		channel@5 {
176aa1a8ff2SEmmanuel Vadot			reg = <5>;
177aa1a8ff2SEmmanuel Vadot			label = "IOBUS_CURR_FB";
178aa1a8ff2SEmmanuel Vadot		};
179aa1a8ff2SEmmanuel Vadot
180aa1a8ff2SEmmanuel Vadot		channel@9 {
181aa1a8ff2SEmmanuel Vadot			reg = <9>;
182aa1a8ff2SEmmanuel Vadot			label = "IOBUS_VOLT_FB";
183aa1a8ff2SEmmanuel Vadot		};
184aa1a8ff2SEmmanuel Vadot
185aa1a8ff2SEmmanuel Vadot		channel@10 {
186aa1a8ff2SEmmanuel Vadot			reg = <10>;
187aa1a8ff2SEmmanuel Vadot			label = "OUT_1_FB";
188aa1a8ff2SEmmanuel Vadot		};
189aa1a8ff2SEmmanuel Vadot
190aa1a8ff2SEmmanuel Vadot		channel@13 {
191aa1a8ff2SEmmanuel Vadot			reg = <13>;
192aa1a8ff2SEmmanuel Vadot			label = "HOST_CURR_FB";
193aa1a8ff2SEmmanuel Vadot		};
194aa1a8ff2SEmmanuel Vadot
195aa1a8ff2SEmmanuel Vadot		channel@15 {
196aa1a8ff2SEmmanuel Vadot			reg = <15>;
197aa1a8ff2SEmmanuel Vadot			label = "HOST_1_CURR_FB";
198aa1a8ff2SEmmanuel Vadot		};
199aa1a8ff2SEmmanuel Vadot	};
200aa1a8ff2SEmmanuel Vadot
201aa1a8ff2SEmmanuel Vadot	adc2: adc@100 {
202aa1a8ff2SEmmanuel Vadot		st,adc-channels = <12>;
203aa1a8ff2SEmmanuel Vadot		st,min-sample-time-nsecs = <500000>;
204aa1a8ff2SEmmanuel Vadot		#address-cells = <1>;
205aa1a8ff2SEmmanuel Vadot		#size-cells = <0>;
206aa1a8ff2SEmmanuel Vadot		status = "okay";
207aa1a8ff2SEmmanuel Vadot
208aa1a8ff2SEmmanuel Vadot		channel@12 {
209aa1a8ff2SEmmanuel Vadot			reg = <12>;
210aa1a8ff2SEmmanuel Vadot			label = "TEMP_INTERNAL";
211aa1a8ff2SEmmanuel Vadot		};
212aa1a8ff2SEmmanuel Vadot	};
213aa1a8ff2SEmmanuel Vadot};
214aa1a8ff2SEmmanuel Vadot
215aa1a8ff2SEmmanuel Vadot&crc1 {
216aa1a8ff2SEmmanuel Vadot	status = "okay";
217aa1a8ff2SEmmanuel Vadot};
218aa1a8ff2SEmmanuel Vadot
219aa1a8ff2SEmmanuel Vadot&cryp1 {
220aa1a8ff2SEmmanuel Vadot	status = "okay";
221aa1a8ff2SEmmanuel Vadot};
222aa1a8ff2SEmmanuel Vadot
223aa1a8ff2SEmmanuel Vadot&dts {
224aa1a8ff2SEmmanuel Vadot	status = "okay";
225aa1a8ff2SEmmanuel Vadot};
226aa1a8ff2SEmmanuel Vadot
227aa1a8ff2SEmmanuel Vadot&ethernet0 {
228aa1a8ff2SEmmanuel Vadot	assigned-clocks = <&rcc ETHCK_K>, <&rcc PLL4_P>;
229aa1a8ff2SEmmanuel Vadot	assigned-clock-parents = <&rcc PLL4_P>;
230aa1a8ff2SEmmanuel Vadot	assigned-clock-rates = <125000000>; /* Clock PLL4 to 750Mhz in ATF */
231aa1a8ff2SEmmanuel Vadot
232aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default", "sleep";
233aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&ethernet0_rgmii_pins_e>;
234aa1a8ff2SEmmanuel Vadot	pinctrl-1 = <&ethernet0_rgmii_sleep_pins_e>;
235aa1a8ff2SEmmanuel Vadot
236aa1a8ff2SEmmanuel Vadot	st,eth-clk-sel;
237aa1a8ff2SEmmanuel Vadot	phy-mode = "rgmii-id";
238aa1a8ff2SEmmanuel Vadot
239aa1a8ff2SEmmanuel Vadot	status = "okay";
240aa1a8ff2SEmmanuel Vadot
241aa1a8ff2SEmmanuel Vadot	fixed-link {
242aa1a8ff2SEmmanuel Vadot		speed = <1000>;
243aa1a8ff2SEmmanuel Vadot		full-duplex;
244aa1a8ff2SEmmanuel Vadot	};
245aa1a8ff2SEmmanuel Vadot};
246aa1a8ff2SEmmanuel Vadot
247aa1a8ff2SEmmanuel Vadot&ethernet0_rgmii_pins_e {
248aa1a8ff2SEmmanuel Vadot	pins1 {
249aa1a8ff2SEmmanuel Vadot		/* Reduce EMI emission by reducing RGMII drive strength */
250aa1a8ff2SEmmanuel Vadot		slew-rate = <1>;
251aa1a8ff2SEmmanuel Vadot	};
252aa1a8ff2SEmmanuel Vadot};
253aa1a8ff2SEmmanuel Vadot
254aa1a8ff2SEmmanuel Vadot&gpiob {
255aa1a8ff2SEmmanuel Vadot	gpio-line-names = "", "", "", "", "", /*  0 */
256aa1a8ff2SEmmanuel Vadot	"", "USB_RESET", "", "", "",          /*  5 */
257aa1a8ff2SEmmanuel Vadot	"", "", "", "", "",                   /* 10 */
258aa1a8ff2SEmmanuel Vadot	"";                                   /* 15 */
259aa1a8ff2SEmmanuel Vadot};
260aa1a8ff2SEmmanuel Vadot
261aa1a8ff2SEmmanuel Vadot&gpiod {
262aa1a8ff2SEmmanuel Vadot	gpio-line-names = "", "", "", "", "TP38", /*  0 */
263aa1a8ff2SEmmanuel Vadot	"TP39", "", "", "TP41", "TP42",           /*  5 */
264aa1a8ff2SEmmanuel Vadot	"OLED_DC", "", "", "ETH_CS", "",          /* 10 */
265aa1a8ff2SEmmanuel Vadot	"ETH_LAB_LEDRN";                          /* 15 */
266aa1a8ff2SEmmanuel Vadot};
267aa1a8ff2SEmmanuel Vadot
268aa1a8ff2SEmmanuel Vadot&gpioe {
269aa1a8ff2SEmmanuel Vadot	gpio-line-names = "TP35", "", "", "", "CAN_1_120R", /*  0 */
270aa1a8ff2SEmmanuel Vadot	"", "", "USER_BTN2", "TP48", "UART_TX_EN",          /*  5 */
271aa1a8ff2SEmmanuel Vadot	"UART_RX_EN", "TP24", "", "TP25", "TP26",           /* 10 */
272aa1a8ff2SEmmanuel Vadot	"TP27";                                             /* 15 */
273aa1a8ff2SEmmanuel Vadot};
274aa1a8ff2SEmmanuel Vadot
275aa1a8ff2SEmmanuel Vadot&gpiof {
276aa1a8ff2SEmmanuel Vadot	gpio-line-names = "TP36", "TP37", "", "", "OLED_CS", /*  0 */
277aa1a8ff2SEmmanuel Vadot	"", "", "", "", "",                                  /*  5 */
278aa1a8ff2SEmmanuel Vadot	"USER_LED1", "", "STACK_CS0", "", "",                /* 10 */
279aa1a8ff2SEmmanuel Vadot	"";                                                  /* 15 */
280aa1a8ff2SEmmanuel Vadot};
281aa1a8ff2SEmmanuel Vadot
282aa1a8ff2SEmmanuel Vadot&gpiog {
283aa1a8ff2SEmmanuel Vadot	gpio-line-names = "ETH_RESET", "", "", "", "",               /*  0 */
284aa1a8ff2SEmmanuel Vadot	"IOBUS_FLT_FB", "", "USER_LED2", "ETH1_PPS_A", "CAN_0_120R", /*  5 */
285aa1a8ff2SEmmanuel Vadot	"TP49", "", "", "", "",                                      /* 10 */
286aa1a8ff2SEmmanuel Vadot	"";                                                          /* 15 */
287aa1a8ff2SEmmanuel Vadot};
288aa1a8ff2SEmmanuel Vadot
289aa1a8ff2SEmmanuel Vadot&gpioh {
290aa1a8ff2SEmmanuel Vadot	gpio-line-names = "", "", "OUT_1", "OUT_0", "OLED_RESET", /*  0 */
291aa1a8ff2SEmmanuel Vadot	"", "", "", "", "",                                       /*  5 */
292aa1a8ff2SEmmanuel Vadot	"ETH1_PPS_B", "ETH_GPIO2", "", "IOBUS_PWR_EN", "",        /* 10 */
293aa1a8ff2SEmmanuel Vadot	"TP33";                                                   /* 15 */
294aa1a8ff2SEmmanuel Vadot};
295aa1a8ff2SEmmanuel Vadot
296aa1a8ff2SEmmanuel Vadot&gpioi {
297aa1a8ff2SEmmanuel Vadot	gpio-line-names = "TIM_RTS", "", "", "", "DEVICE_DATA_EN", /*  0 */
298aa1a8ff2SEmmanuel Vadot	"", "", "", "ETH_WOL", "TP43",                             /*  5 */
299aa1a8ff2SEmmanuel Vadot	"", "USER_BTN";                                            /* 10 */
300aa1a8ff2SEmmanuel Vadot};
301aa1a8ff2SEmmanuel Vadot
302aa1a8ff2SEmmanuel Vadot&gpioz {
303aa1a8ff2SEmmanuel Vadot	gpio-line-names = "HWID0", "HWID1", "HWID2", "HWID3", "", /*  0 */
304aa1a8ff2SEmmanuel Vadot	"", "HWID4", "HWID5";                                     /*  5 */
305aa1a8ff2SEmmanuel Vadot};
306aa1a8ff2SEmmanuel Vadot
307aa1a8ff2SEmmanuel Vadot&hash1 {
308aa1a8ff2SEmmanuel Vadot	status = "okay";
309aa1a8ff2SEmmanuel Vadot};
310aa1a8ff2SEmmanuel Vadot
311aa1a8ff2SEmmanuel Vadot&i2c1 {
312aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default", "sleep";
313aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&i2c1_pins_b>;
314aa1a8ff2SEmmanuel Vadot	pinctrl-1 = <&i2c1_sleep_pins_b>;
315aa1a8ff2SEmmanuel Vadot	status = "okay";
316aa1a8ff2SEmmanuel Vadot
317aa1a8ff2SEmmanuel Vadot	powerboard_eeprom: eeprom@50 {
318aa1a8ff2SEmmanuel Vadot		compatible = "atmel,24c02";
319aa1a8ff2SEmmanuel Vadot		reg = <0x50>;
320aa1a8ff2SEmmanuel Vadot		vcc-supply = <&v3v3>;
321aa1a8ff2SEmmanuel Vadot	};
322aa1a8ff2SEmmanuel Vadot
323aa1a8ff2SEmmanuel Vadot	temperature-sensor@48 {
324aa1a8ff2SEmmanuel Vadot		compatible = "national,lm75a";
325aa1a8ff2SEmmanuel Vadot		reg = <0x48>;
326aa1a8ff2SEmmanuel Vadot		status = "disabled";
327aa1a8ff2SEmmanuel Vadot	};
328aa1a8ff2SEmmanuel Vadot};
329aa1a8ff2SEmmanuel Vadot
330aa1a8ff2SEmmanuel Vadot&i2c5 {
331aa1a8ff2SEmmanuel Vadot	/delete-property/dmas;
332aa1a8ff2SEmmanuel Vadot	/delete-property/dma-names;
333aa1a8ff2SEmmanuel Vadot
334aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default", "sleep";
335aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&i2c5_pins_b>;
336aa1a8ff2SEmmanuel Vadot	pinctrl-1 = <&i2c5_sleep_pins_b>;
337aa1a8ff2SEmmanuel Vadot
338aa1a8ff2SEmmanuel Vadot	status = "okay";
339aa1a8ff2SEmmanuel Vadot
340aa1a8ff2SEmmanuel Vadot	usbhub: usbhub@2c {
341aa1a8ff2SEmmanuel Vadot		compatible ="microchip,usb2514b";
342aa1a8ff2SEmmanuel Vadot		reg = <0x2c>;
343aa1a8ff2SEmmanuel Vadot		vdd-supply = <&v3v3>;
344aa1a8ff2SEmmanuel Vadot		reset-gpios = <&gpiob 6 GPIO_ACTIVE_LOW>;
345aa1a8ff2SEmmanuel Vadot	};
346aa1a8ff2SEmmanuel Vadot};
347aa1a8ff2SEmmanuel Vadot
348aa1a8ff2SEmmanuel Vadot&iwdg2 {
349aa1a8ff2SEmmanuel Vadot	timeout-sec = <8>;
350aa1a8ff2SEmmanuel Vadot	status = "okay";
351aa1a8ff2SEmmanuel Vadot};
352aa1a8ff2SEmmanuel Vadot
353aa1a8ff2SEmmanuel Vadot&m_can1 {
354aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default", "sleep";
355aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&m_can1_pins_b>;
356aa1a8ff2SEmmanuel Vadot	pinctrl-1 = <&m_can1_sleep_pins_b>;
357aa1a8ff2SEmmanuel Vadot	status = "okay";
358aa1a8ff2SEmmanuel Vadot};
359aa1a8ff2SEmmanuel Vadot
360aa1a8ff2SEmmanuel Vadot&m_can2 {
361aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default", "sleep";
362aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&m_can2_pins_a>;
363aa1a8ff2SEmmanuel Vadot	pinctrl-1 = <&m_can2_sleep_pins_a>;
364aa1a8ff2SEmmanuel Vadot	status = "okay";
365aa1a8ff2SEmmanuel Vadot};
366aa1a8ff2SEmmanuel Vadot
367aa1a8ff2SEmmanuel Vadot&pmic {
368aa1a8ff2SEmmanuel Vadot	regulators {
369aa1a8ff2SEmmanuel Vadot		buck1-supply = <&reg_5v>;	/* VIN */
370aa1a8ff2SEmmanuel Vadot		buck2-supply = <&reg_5v>;	/* VIN */
371aa1a8ff2SEmmanuel Vadot		buck3-supply = <&reg_5v>;	/* VIN */
372aa1a8ff2SEmmanuel Vadot		buck4-supply = <&reg_5v>;	/* VIN */
373aa1a8ff2SEmmanuel Vadot		ldo2-supply = <&reg_5v>;	/* PMIC_LDO25IN */
374aa1a8ff2SEmmanuel Vadot		ldo4-supply = <&reg_5v>;	/* VIN */
375aa1a8ff2SEmmanuel Vadot		ldo5-supply = <&reg_5v>;	/* PMIC_LDO25IN */
376aa1a8ff2SEmmanuel Vadot		vref_ddr-supply = <&reg_5v>;	/* VIN */
377aa1a8ff2SEmmanuel Vadot		boost-supply = <&reg_5v>;	/* PMIC_BSTIN */
378aa1a8ff2SEmmanuel Vadot		pwr_sw2-supply = <&bst_out>;	/* PMIC_SWIN */
379aa1a8ff2SEmmanuel Vadot	};
380aa1a8ff2SEmmanuel Vadot};
381aa1a8ff2SEmmanuel Vadot
382aa1a8ff2SEmmanuel Vadot&rtc {
383aa1a8ff2SEmmanuel Vadot	status = "okay";
384aa1a8ff2SEmmanuel Vadot};
385aa1a8ff2SEmmanuel Vadot
386aa1a8ff2SEmmanuel Vadot&sdmmc2 {
387aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default", "opendrain", "sleep";
388aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_b>;
389aa1a8ff2SEmmanuel Vadot	pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_b>;
390aa1a8ff2SEmmanuel Vadot	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_b>;
391aa1a8ff2SEmmanuel Vadot	vmmc-supply = <&v3v3>;
392aa1a8ff2SEmmanuel Vadot
393aa1a8ff2SEmmanuel Vadot	bus-width = <8>;
394aa1a8ff2SEmmanuel Vadot	mmc-ddr-3_3v;
395aa1a8ff2SEmmanuel Vadot	no-1-8-v;
396aa1a8ff2SEmmanuel Vadot	non-removable;
397aa1a8ff2SEmmanuel Vadot	no-sd;
398aa1a8ff2SEmmanuel Vadot	no-sdio;
399aa1a8ff2SEmmanuel Vadot	st,neg-edge;
400aa1a8ff2SEmmanuel Vadot
401aa1a8ff2SEmmanuel Vadot	status = "okay";
402aa1a8ff2SEmmanuel Vadot};
403aa1a8ff2SEmmanuel Vadot
404aa1a8ff2SEmmanuel Vadot&spi2 {
405aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
406aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&spi2_pins_c>;
407*01950c46SEmmanuel Vadot	cs-gpios = <&gpiof 12 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
408aa1a8ff2SEmmanuel Vadot	status = "okay";
409aa1a8ff2SEmmanuel Vadot};
410aa1a8ff2SEmmanuel Vadot
411aa1a8ff2SEmmanuel Vadot&spi4 {
412aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
413aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&spi4_pins_a>;
414aa1a8ff2SEmmanuel Vadot	cs-gpios = <&gpiof 4 GPIO_ACTIVE_LOW>;
415aa1a8ff2SEmmanuel Vadot	status = "okay";
416aa1a8ff2SEmmanuel Vadot
417aa1a8ff2SEmmanuel Vadot	lcd: display@0 {
418aa1a8ff2SEmmanuel Vadot		compatible = "shineworld,lh133k", "panel-mipi-dbi-spi";
419aa1a8ff2SEmmanuel Vadot		reg = <0>;
420aa1a8ff2SEmmanuel Vadot		power-supply = <&v3v3>;
421aa1a8ff2SEmmanuel Vadot		io-supply = <&v3v3>;
422aa1a8ff2SEmmanuel Vadot		backlight = <&backlight>;
423aa1a8ff2SEmmanuel Vadot		dc-gpios = <&gpiod 10 GPIO_ACTIVE_HIGH>;
424aa1a8ff2SEmmanuel Vadot		reset-gpios = <&gpioh 4 GPIO_ACTIVE_HIGH>;
425aa1a8ff2SEmmanuel Vadot		spi-3wire;
426aa1a8ff2SEmmanuel Vadot		spi-max-frequency = <32000000>;
427aa1a8ff2SEmmanuel Vadot
428aa1a8ff2SEmmanuel Vadot		width-mm = <23>;
429aa1a8ff2SEmmanuel Vadot		height-mm = <23>;
430aa1a8ff2SEmmanuel Vadot		rotation = <180>;
431aa1a8ff2SEmmanuel Vadot
432aa1a8ff2SEmmanuel Vadot		panel-timing {
433aa1a8ff2SEmmanuel Vadot			hactive = <240>;
434aa1a8ff2SEmmanuel Vadot			vactive = <240>;
435aa1a8ff2SEmmanuel Vadot			hback-porch = <0>;
436aa1a8ff2SEmmanuel Vadot			vback-porch = <0>;
437aa1a8ff2SEmmanuel Vadot
438aa1a8ff2SEmmanuel Vadot			clock-frequency = <0>;
439aa1a8ff2SEmmanuel Vadot			hfront-porch = <0>;
440aa1a8ff2SEmmanuel Vadot			hsync-len = <0>;
441aa1a8ff2SEmmanuel Vadot			vfront-porch = <0>;
442aa1a8ff2SEmmanuel Vadot			vsync-len = <0>;
443aa1a8ff2SEmmanuel Vadot		};
444aa1a8ff2SEmmanuel Vadot	};
445aa1a8ff2SEmmanuel Vadot};
446aa1a8ff2SEmmanuel Vadot
447aa1a8ff2SEmmanuel Vadot&spi5 {
448aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
449aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&spi5_pins_a>;
450aa1a8ff2SEmmanuel Vadot
451aa1a8ff2SEmmanuel Vadot	/* spare dmas for other usage */
452aa1a8ff2SEmmanuel Vadot	/delete-property/dmas;
453aa1a8ff2SEmmanuel Vadot	/delete-property/dma-names;
454aa1a8ff2SEmmanuel Vadot
455aa1a8ff2SEmmanuel Vadot	cs-gpios = <&gpiod 13 GPIO_ACTIVE_LOW>;
456aa1a8ff2SEmmanuel Vadot
457aa1a8ff2SEmmanuel Vadot	status = "okay";
458aa1a8ff2SEmmanuel Vadot
459aa1a8ff2SEmmanuel Vadot	switch: switch@0 {
460aa1a8ff2SEmmanuel Vadot		compatible = "microchip,ksz9563";
461aa1a8ff2SEmmanuel Vadot		reg = <0>;
462aa1a8ff2SEmmanuel Vadot
463aa1a8ff2SEmmanuel Vadot		reset-gpios = <&gpiog 0 GPIO_ACTIVE_LOW>;
464aa1a8ff2SEmmanuel Vadot		spi-max-frequency = <44000000>;
465aa1a8ff2SEmmanuel Vadot
466aa1a8ff2SEmmanuel Vadot		interrupt-parent = <&gpioa>;
467aa1a8ff2SEmmanuel Vadot		interrupts = <6 IRQ_TYPE_EDGE_RISING>;
468aa1a8ff2SEmmanuel Vadot
469*01950c46SEmmanuel Vadot		/* Reduce RGMII EMI emissions by reducing drive strength */
470*01950c46SEmmanuel Vadot		microchip,hi-drive-strength-microamp = <2000>;
471*01950c46SEmmanuel Vadot		microchip,lo-drive-strength-microamp = <8000>;
472*01950c46SEmmanuel Vadot
473aa1a8ff2SEmmanuel Vadot		ports {
474aa1a8ff2SEmmanuel Vadot			#address-cells = <1>;
475aa1a8ff2SEmmanuel Vadot			#size-cells = <0>;
476aa1a8ff2SEmmanuel Vadot			port_dut: port@0 {
477aa1a8ff2SEmmanuel Vadot				reg = <0>;
478aa1a8ff2SEmmanuel Vadot				label = "dut";
479aa1a8ff2SEmmanuel Vadot			};
480aa1a8ff2SEmmanuel Vadot
481aa1a8ff2SEmmanuel Vadot			port_uplink: port@1 {
482aa1a8ff2SEmmanuel Vadot				reg = <1>;
483aa1a8ff2SEmmanuel Vadot				label = "uplink";
484aa1a8ff2SEmmanuel Vadot			};
485aa1a8ff2SEmmanuel Vadot
486aa1a8ff2SEmmanuel Vadot			port_cpu: port@2 {
487aa1a8ff2SEmmanuel Vadot				reg = <2>;
488aa1a8ff2SEmmanuel Vadot				label = "cpu";
489aa1a8ff2SEmmanuel Vadot
490aa1a8ff2SEmmanuel Vadot				ethernet = <&ethernet0>;
491aa1a8ff2SEmmanuel Vadot
492aa1a8ff2SEmmanuel Vadot				phy-mode = "rgmii-id";
493aa1a8ff2SEmmanuel Vadot				rx-internal-delay-ps = <2000>;
494aa1a8ff2SEmmanuel Vadot				tx-internal-delay-ps = <2000>;
495aa1a8ff2SEmmanuel Vadot
496aa1a8ff2SEmmanuel Vadot				fixed-link {
497aa1a8ff2SEmmanuel Vadot					speed = <1000>;
498aa1a8ff2SEmmanuel Vadot					full-duplex;
499aa1a8ff2SEmmanuel Vadot				};
500aa1a8ff2SEmmanuel Vadot			};
501aa1a8ff2SEmmanuel Vadot		};
502aa1a8ff2SEmmanuel Vadot	};
503aa1a8ff2SEmmanuel Vadot};
504aa1a8ff2SEmmanuel Vadot
505aa1a8ff2SEmmanuel Vadot&timers2 {
506aa1a8ff2SEmmanuel Vadot	/* spare dmas for other usage */
507aa1a8ff2SEmmanuel Vadot	/delete-property/dmas;
508aa1a8ff2SEmmanuel Vadot	/delete-property/dma-names;
509aa1a8ff2SEmmanuel Vadot
510aa1a8ff2SEmmanuel Vadot	status = "okay";
511aa1a8ff2SEmmanuel Vadot
512aa1a8ff2SEmmanuel Vadot	timer@1 {
513aa1a8ff2SEmmanuel Vadot		status = "okay";
514aa1a8ff2SEmmanuel Vadot	};
515aa1a8ff2SEmmanuel Vadot};
516aa1a8ff2SEmmanuel Vadot
517aa1a8ff2SEmmanuel Vadot&timers3 {
518aa1a8ff2SEmmanuel Vadot	/* spare dmas for other usage */
519aa1a8ff2SEmmanuel Vadot	/delete-property/dmas;
520aa1a8ff2SEmmanuel Vadot	/delete-property/dma-names;
521aa1a8ff2SEmmanuel Vadot
522aa1a8ff2SEmmanuel Vadot	status = "okay";
523aa1a8ff2SEmmanuel Vadot
524aa1a8ff2SEmmanuel Vadot	timer@2 {
525aa1a8ff2SEmmanuel Vadot		status = "okay";
526aa1a8ff2SEmmanuel Vadot	};
527aa1a8ff2SEmmanuel Vadot};
528aa1a8ff2SEmmanuel Vadot
529aa1a8ff2SEmmanuel Vadot&timers4 {
530aa1a8ff2SEmmanuel Vadot	/* spare dmas for other usage */
531aa1a8ff2SEmmanuel Vadot	/delete-property/dmas;
532aa1a8ff2SEmmanuel Vadot	/delete-property/dma-names;
533aa1a8ff2SEmmanuel Vadot
534aa1a8ff2SEmmanuel Vadot	status = "okay";
535aa1a8ff2SEmmanuel Vadot
536aa1a8ff2SEmmanuel Vadot	timer@3 {
537aa1a8ff2SEmmanuel Vadot		status = "okay";
538aa1a8ff2SEmmanuel Vadot	};
539aa1a8ff2SEmmanuel Vadot};
540aa1a8ff2SEmmanuel Vadot
541aa1a8ff2SEmmanuel Vadot&uart4 {
542aa1a8ff2SEmmanuel Vadot	label = "debug";
543aa1a8ff2SEmmanuel Vadot
544aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
545aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&uart4_pins_a>;
546aa1a8ff2SEmmanuel Vadot
547aa1a8ff2SEmmanuel Vadot	/* spare dmas for other usage */
548aa1a8ff2SEmmanuel Vadot	/delete-property/dmas;
549aa1a8ff2SEmmanuel Vadot	/delete-property/dma-names;
550aa1a8ff2SEmmanuel Vadot
551aa1a8ff2SEmmanuel Vadot	status = "okay";
552aa1a8ff2SEmmanuel Vadot};
553aa1a8ff2SEmmanuel Vadot
554aa1a8ff2SEmmanuel Vadot&usart3 {
555aa1a8ff2SEmmanuel Vadot	label = "dut";
556aa1a8ff2SEmmanuel Vadot	uart-has-rtscts;
557aa1a8ff2SEmmanuel Vadot
558aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
559aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&usart3_pins_f>;
560aa1a8ff2SEmmanuel Vadot
561aa1a8ff2SEmmanuel Vadot	/* spare dmas for other usage */
562aa1a8ff2SEmmanuel Vadot	/delete-property/dmas;
563aa1a8ff2SEmmanuel Vadot	/delete-property/dma-names;
564aa1a8ff2SEmmanuel Vadot
565aa1a8ff2SEmmanuel Vadot	status = "okay";
566aa1a8ff2SEmmanuel Vadot};
567aa1a8ff2SEmmanuel Vadot
568aa1a8ff2SEmmanuel Vadot&usbh_ehci {
569aa1a8ff2SEmmanuel Vadot	status = "okay";
570aa1a8ff2SEmmanuel Vadot};
571aa1a8ff2SEmmanuel Vadot
572aa1a8ff2SEmmanuel Vadot&usbotg_hs {
573aa1a8ff2SEmmanuel Vadot	phys = <&usbphyc_port1 0>;
574aa1a8ff2SEmmanuel Vadot	phy-names = "usb2-phy";
575aa1a8ff2SEmmanuel Vadot
576aa1a8ff2SEmmanuel Vadot	vusb_d-supply = <&vdd_usb>;
577aa1a8ff2SEmmanuel Vadot	vusb_a-supply = <&reg18>;
578aa1a8ff2SEmmanuel Vadot
579aa1a8ff2SEmmanuel Vadot	dr_mode = "peripheral";
580aa1a8ff2SEmmanuel Vadot
581aa1a8ff2SEmmanuel Vadot	status = "okay";
582aa1a8ff2SEmmanuel Vadot};
583aa1a8ff2SEmmanuel Vadot
584aa1a8ff2SEmmanuel Vadot&usbphyc {
585aa1a8ff2SEmmanuel Vadot	status = "okay";
586aa1a8ff2SEmmanuel Vadot};
587aa1a8ff2SEmmanuel Vadot
588aa1a8ff2SEmmanuel Vadot&vrefbuf {
589aa1a8ff2SEmmanuel Vadot	regulator-min-microvolt = <2500000>;
590aa1a8ff2SEmmanuel Vadot	regulator-max-microvolt = <2500000>;
591aa1a8ff2SEmmanuel Vadot	vdda-supply = <&vdda>;
592aa1a8ff2SEmmanuel Vadot
593aa1a8ff2SEmmanuel Vadot	status = "okay";
594aa1a8ff2SEmmanuel Vadot};
595