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