xref: /linux/arch/arm/boot/dts/st/stm32mp153c-lxa-tac-gen3.dts (revision 1260ed77798502de9c98020040d2995008de10cc)
1*08d312c9SLeonard Göhrs// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
2*08d312c9SLeonard Göhrs/*
3*08d312c9SLeonard Göhrs * Copyright (C) 2020 STMicroelectronics - All Rights Reserved
4*08d312c9SLeonard Göhrs * Copyright (C) 2021 Rouven Czerwinski, Pengutronix
5*08d312c9SLeonard Göhrs * Copyright (C) 2023, 2024 Leonard Göhrs, Pengutronix
6*08d312c9SLeonard Göhrs */
7*08d312c9SLeonard Göhrs
8*08d312c9SLeonard Göhrs/dts-v1/;
9*08d312c9SLeonard Göhrs
10*08d312c9SLeonard Göhrs#include "stm32mp153.dtsi"
11*08d312c9SLeonard Göhrs#include "stm32mp15xc-lxa-tac.dtsi"
12*08d312c9SLeonard Göhrs
13*08d312c9SLeonard Göhrs/ {
14*08d312c9SLeonard Göhrs	model = "Linux Automation Test Automation Controller (TAC) Gen 3";
15*08d312c9SLeonard Göhrs	compatible = "lxa,stm32mp153c-tac-gen3", "oct,stm32mp153x-osd32", "st,stm32mp153";
16*08d312c9SLeonard Göhrs
17*08d312c9SLeonard Göhrs	backlight: backlight {
18*08d312c9SLeonard Göhrs		compatible = "pwm-backlight";
19*08d312c9SLeonard Göhrs		power-supply = <&v3v3>;
20*08d312c9SLeonard Göhrs
21*08d312c9SLeonard Göhrs		brightness-levels = <0 31 63 95 127 159 191 223 255>;
22*08d312c9SLeonard Göhrs		default-brightness-level = <7>;
23*08d312c9SLeonard Göhrs		pwms = <&led_pwm 3 1000000 0>;
24*08d312c9SLeonard Göhrs	};
25*08d312c9SLeonard Göhrs
26*08d312c9SLeonard Göhrs	reg_iobus_12v: regulator-iobus-12v {
27*08d312c9SLeonard Göhrs		compatible = "regulator-fixed";
28*08d312c9SLeonard Göhrs		vin-supply = <&reg_12v>;
29*08d312c9SLeonard Göhrs		gpio = <&gpioh 13 GPIO_ACTIVE_LOW>;
30*08d312c9SLeonard Göhrs		regulator-max-microvolt = <12000000>;
31*08d312c9SLeonard Göhrs		regulator-min-microvolt = <12000000>;
32*08d312c9SLeonard Göhrs		regulator-name = "12V_IOBUS";
33*08d312c9SLeonard Göhrs	};
34*08d312c9SLeonard Göhrs
35*08d312c9SLeonard Göhrs	led-controller-1 {
36*08d312c9SLeonard Göhrs		compatible = "pwm-leds-multicolor";
37*08d312c9SLeonard Göhrs
38*08d312c9SLeonard Göhrs		multi-led {
39*08d312c9SLeonard Göhrs			color = <LED_COLOR_ID_RGB>;
40*08d312c9SLeonard Göhrs			function = LED_FUNCTION_STATUS;
41*08d312c9SLeonard Göhrs			max-brightness = <65535>;
42*08d312c9SLeonard Göhrs
43*08d312c9SLeonard Göhrs			led-red {
44*08d312c9SLeonard Göhrs				active-low;
45*08d312c9SLeonard Göhrs				color = <LED_COLOR_ID_RED>;
46*08d312c9SLeonard Göhrs				pwms = <&led_pwm 0 1000000 0>;
47*08d312c9SLeonard Göhrs			};
48*08d312c9SLeonard Göhrs
49*08d312c9SLeonard Göhrs			led-green {
50*08d312c9SLeonard Göhrs				active-low;
51*08d312c9SLeonard Göhrs				color = <LED_COLOR_ID_GREEN>;
52*08d312c9SLeonard Göhrs				pwms = <&led_pwm 2 1000000 0>;
53*08d312c9SLeonard Göhrs			};
54*08d312c9SLeonard Göhrs
55*08d312c9SLeonard Göhrs			led-blue {
56*08d312c9SLeonard Göhrs				active-low;
57*08d312c9SLeonard Göhrs				color = <LED_COLOR_ID_BLUE>;
58*08d312c9SLeonard Göhrs				pwms = <&led_pwm 1 1000000 0>;
59*08d312c9SLeonard Göhrs			};
60*08d312c9SLeonard Göhrs		};
61*08d312c9SLeonard Göhrs	};
62*08d312c9SLeonard Göhrs
63*08d312c9SLeonard Göhrs	led-controller-2 {
64*08d312c9SLeonard Göhrs		compatible = "gpio-leds";
65*08d312c9SLeonard Göhrs
66*08d312c9SLeonard Göhrs		led-5 {
67*08d312c9SLeonard Göhrs			label = "tac:green:iobus";
68*08d312c9SLeonard Göhrs			gpios = <&gpiog 1 GPIO_ACTIVE_HIGH>;
69*08d312c9SLeonard Göhrs		};
70*08d312c9SLeonard Göhrs
71*08d312c9SLeonard Göhrs		led-6 {
72*08d312c9SLeonard Göhrs			label = "tac:green:can";
73*08d312c9SLeonard Göhrs			gpios = <&gpiof 3 GPIO_ACTIVE_HIGH>;
74*08d312c9SLeonard Göhrs		};
75*08d312c9SLeonard Göhrs
76*08d312c9SLeonard Göhrs		led-7 {
77*08d312c9SLeonard Göhrs			label = "tac:green:out0";
78*08d312c9SLeonard Göhrs			gpios = <&gpiob 8 GPIO_ACTIVE_HIGH>;
79*08d312c9SLeonard Göhrs		};
80*08d312c9SLeonard Göhrs
81*08d312c9SLeonard Göhrs		led-8 {
82*08d312c9SLeonard Göhrs			label = "tac:green:out1";
83*08d312c9SLeonard Göhrs			gpios = <&gpiog 3 GPIO_ACTIVE_HIGH>;
84*08d312c9SLeonard Göhrs		};
85*08d312c9SLeonard Göhrs
86*08d312c9SLeonard Göhrs		led-9 {
87*08d312c9SLeonard Göhrs			label = "tac:green:uarttx";
88*08d312c9SLeonard Göhrs			gpios = <&gpiod 3 GPIO_ACTIVE_HIGH>;
89*08d312c9SLeonard Göhrs		};
90*08d312c9SLeonard Göhrs
91*08d312c9SLeonard Göhrs		led-10 {
92*08d312c9SLeonard Göhrs			label = "tac:green:uartrx";
93*08d312c9SLeonard Göhrs			gpios = <&gpiof 6 GPIO_ACTIVE_HIGH>;
94*08d312c9SLeonard Göhrs		};
95*08d312c9SLeonard Göhrs
96*08d312c9SLeonard Göhrs		led-11 {
97*08d312c9SLeonard Göhrs			label = "tac:green:usbh1";
98*08d312c9SLeonard Göhrs			gpios = <&gpioc 8 GPIO_ACTIVE_HIGH>;
99*08d312c9SLeonard Göhrs		};
100*08d312c9SLeonard Göhrs
101*08d312c9SLeonard Göhrs		led-12 {
102*08d312c9SLeonard Göhrs			label = "tac:green:usbh2";
103*08d312c9SLeonard Göhrs			gpios = <&gpiod 6 GPIO_ACTIVE_HIGH>;
104*08d312c9SLeonard Göhrs		};
105*08d312c9SLeonard Göhrs
106*08d312c9SLeonard Göhrs		led-13 {
107*08d312c9SLeonard Göhrs			label = "tac:green:usbh3";
108*08d312c9SLeonard Göhrs			gpios = <&gpiob 9 GPIO_ACTIVE_HIGH>;
109*08d312c9SLeonard Göhrs		};
110*08d312c9SLeonard Göhrs
111*08d312c9SLeonard Göhrs		led-14 {
112*08d312c9SLeonard Göhrs			label = "tac:green:usbg";
113*08d312c9SLeonard Göhrs			gpios = <&gpiod 14 GPIO_ACTIVE_HIGH>;
114*08d312c9SLeonard Göhrs			linux,default-trigger = "usb-gadget";
115*08d312c9SLeonard Göhrs		};
116*08d312c9SLeonard Göhrs
117*08d312c9SLeonard Göhrs		led-15 {
118*08d312c9SLeonard Göhrs			label = "tac:green:dutpwr";
119*08d312c9SLeonard Göhrs			gpios = <&gpioa 15 GPIO_ACTIVE_HIGH>;
120*08d312c9SLeonard Göhrs		};
121*08d312c9SLeonard Göhrs	};
122*08d312c9SLeonard Göhrs};
123*08d312c9SLeonard Göhrs
124*08d312c9SLeonard Göhrs&adc {
125*08d312c9SLeonard Göhrs	pinctrl-names = "default";
126*08d312c9SLeonard Göhrs	pinctrl-0 = <&board_adc1_ain_pins>;
127*08d312c9SLeonard Göhrs	vdd-supply = <&vdd>;
128*08d312c9SLeonard Göhrs	vdda-supply = <&vdda>;
129*08d312c9SLeonard Göhrs	vref-supply = <&vrefbuf>;
130*08d312c9SLeonard Göhrs	status = "okay";
131*08d312c9SLeonard Göhrs
132*08d312c9SLeonard Göhrs	adc1: adc@0 {
133*08d312c9SLeonard Göhrs		st,adc-channels = <2 5 9 10 13 14 15 18>;
134*08d312c9SLeonard Göhrs		st,min-sample-time-nsecs = <5000>;
135*08d312c9SLeonard Göhrs		#address-cells = <1>;
136*08d312c9SLeonard Göhrs		#size-cells = <0>;
137*08d312c9SLeonard Göhrs		status = "okay";
138*08d312c9SLeonard Göhrs
139*08d312c9SLeonard Göhrs		channel@2 {
140*08d312c9SLeonard Göhrs			reg = <2>;
141*08d312c9SLeonard Göhrs			label = "OUT_0_FB";
142*08d312c9SLeonard Göhrs		};
143*08d312c9SLeonard Göhrs
144*08d312c9SLeonard Göhrs		channel@5 {
145*08d312c9SLeonard Göhrs			reg = <5>;
146*08d312c9SLeonard Göhrs			label = "IOBUS_CURR_FB";
147*08d312c9SLeonard Göhrs		};
148*08d312c9SLeonard Göhrs
149*08d312c9SLeonard Göhrs		channel@9 {
150*08d312c9SLeonard Göhrs			reg = <9>;
151*08d312c9SLeonard Göhrs			label = "IOBUS_VOLT_FB";
152*08d312c9SLeonard Göhrs		};
153*08d312c9SLeonard Göhrs
154*08d312c9SLeonard Göhrs		channel@10 {
155*08d312c9SLeonard Göhrs			reg = <10>;
156*08d312c9SLeonard Göhrs			label = "OUT_1_FB";
157*08d312c9SLeonard Göhrs		};
158*08d312c9SLeonard Göhrs
159*08d312c9SLeonard Göhrs		channel@13 {
160*08d312c9SLeonard Göhrs			reg = <13>;
161*08d312c9SLeonard Göhrs			label = "HOST_CURR_FB";
162*08d312c9SLeonard Göhrs		};
163*08d312c9SLeonard Göhrs
164*08d312c9SLeonard Göhrs		channel@14 {
165*08d312c9SLeonard Göhrs			reg = <14>;
166*08d312c9SLeonard Göhrs			label = "HOST_3_CURR_FB";
167*08d312c9SLeonard Göhrs		};
168*08d312c9SLeonard Göhrs
169*08d312c9SLeonard Göhrs		channel@15 {
170*08d312c9SLeonard Göhrs			reg = <15>;
171*08d312c9SLeonard Göhrs			label = "HOST_1_CURR_FB";
172*08d312c9SLeonard Göhrs		};
173*08d312c9SLeonard Göhrs
174*08d312c9SLeonard Göhrs		channel@18 {
175*08d312c9SLeonard Göhrs			reg = <18>;
176*08d312c9SLeonard Göhrs			label = "HOST_2_CURR_FB";
177*08d312c9SLeonard Göhrs		};
178*08d312c9SLeonard Göhrs	};
179*08d312c9SLeonard Göhrs
180*08d312c9SLeonard Göhrs	adc2: adc@100 {
181*08d312c9SLeonard Göhrs		st,adc-channels = <12>;
182*08d312c9SLeonard Göhrs		st,min-sample-time-nsecs = <500000>;
183*08d312c9SLeonard Göhrs		#address-cells = <1>;
184*08d312c9SLeonard Göhrs		#size-cells = <0>;
185*08d312c9SLeonard Göhrs		status = "okay";
186*08d312c9SLeonard Göhrs
187*08d312c9SLeonard Göhrs		channel@12 {
188*08d312c9SLeonard Göhrs			reg = <12>;
189*08d312c9SLeonard Göhrs			label = "TEMP_INTERNAL";
190*08d312c9SLeonard Göhrs		};
191*08d312c9SLeonard Göhrs	};
192*08d312c9SLeonard Göhrs};
193*08d312c9SLeonard Göhrs
194*08d312c9SLeonard Göhrs&gpioa {
195*08d312c9SLeonard Göhrs	gpio-line-names = "", "", "", "", "",              /*  0 */
196*08d312c9SLeonard Göhrs	"ETH_GPIO1", "ETH_INT", "", "", "",                /*  5 */
197*08d312c9SLeonard Göhrs	"", "", "", "BOOTROM_LED", "ETH_LAB_LEDRP",        /* 10 */
198*08d312c9SLeonard Göhrs	"";                                                /* 15 */
199*08d312c9SLeonard Göhrs};
200*08d312c9SLeonard Göhrs
201*08d312c9SLeonard Göhrs&gpioc {
202*08d312c9SLeonard Göhrs	gpio-line-names = "", "DUT_PWR_DISCH", "", "", "", /*  0 */
203*08d312c9SLeonard Göhrs	"", "", "", "", "",                                /*  5 */
204*08d312c9SLeonard Göhrs	"", "";                                            /* 10 */
205*08d312c9SLeonard Göhrs};
206*08d312c9SLeonard Göhrs
207*08d312c9SLeonard Göhrs&gpioe {
208*08d312c9SLeonard Göhrs	gpio-line-names = "TP35", "", "", "", "CAN_1_120R", /*  0 */
209*08d312c9SLeonard Göhrs	"", "", "USER_BTN2", "DUT_PWR_EN", "UART_TX_EN",    /*  5 */
210*08d312c9SLeonard Göhrs	"UART_RX_EN", "TP24", "", "TP25", "TP26",           /* 10 */
211*08d312c9SLeonard Göhrs	"TP27";                                             /* 15 */
212*08d312c9SLeonard Göhrs};
213*08d312c9SLeonard Göhrs
214*08d312c9SLeonard Göhrs&gpiog {
215*08d312c9SLeonard Göhrs	gpio-line-names = "ETH_RESET", "", "", "", "",               /*  0 */
216*08d312c9SLeonard Göhrs	"IOBUS_FLT_FB", "", "USER_LED2", "ETH1_PPS_A", "CAN_0_120R", /*  5 */
217*08d312c9SLeonard Göhrs	"POWER_ADC_RESET", "", "", "", "",                           /* 10 */
218*08d312c9SLeonard Göhrs	"";                                                          /* 15 */
219*08d312c9SLeonard Göhrs};
220*08d312c9SLeonard Göhrs
221*08d312c9SLeonard Göhrs&m_can2 {
222*08d312c9SLeonard Göhrs	termination-gpios = <&gpioe 4 GPIO_ACTIVE_HIGH>;
223*08d312c9SLeonard Göhrs	termination-ohms = <120>;
224*08d312c9SLeonard Göhrs};
225*08d312c9SLeonard Göhrs
226*08d312c9SLeonard Göhrs&pinctrl {
227*08d312c9SLeonard Göhrs	board_adc1_ain_pins: board-adc1-ain-0 {
228*08d312c9SLeonard Göhrs		pins {
229*08d312c9SLeonard Göhrs			pinmux = <STM32_PINMUX('F', 11, ANALOG)>, /* ADC1_INP2 */
230*08d312c9SLeonard Göhrs				 <STM32_PINMUX('B', 1, ANALOG)>, /* ADC1_INP5 */
231*08d312c9SLeonard Göhrs				 <STM32_PINMUX('B', 0, ANALOG)>, /* ADC1_INP9 */
232*08d312c9SLeonard Göhrs				 <STM32_PINMUX('C', 0, ANALOG)>, /* ADC1_INP10 */
233*08d312c9SLeonard Göhrs				 <STM32_PINMUX('C', 3, ANALOG)>, /* ADC1_INP13 */
234*08d312c9SLeonard Göhrs				 <STM32_PINMUX('A', 2, ANALOG)>, /* ADC1_INP14 */
235*08d312c9SLeonard Göhrs				 <STM32_PINMUX('A', 3, ANALOG)>, /* ADC1_INP15 */
236*08d312c9SLeonard Göhrs				 <STM32_PINMUX('A', 4, ANALOG)>; /* ADC1_INP18 */
237*08d312c9SLeonard Göhrs		};
238*08d312c9SLeonard Göhrs	};
239*08d312c9SLeonard Göhrs};
240*08d312c9SLeonard Göhrs
241*08d312c9SLeonard Göhrs&spi2 {
242*08d312c9SLeonard Göhrs	adc@0 {
243*08d312c9SLeonard Göhrs		compatible = "ti,lmp92064";
244*08d312c9SLeonard Göhrs		reg = <0>;
245*08d312c9SLeonard Göhrs
246*08d312c9SLeonard Göhrs		reset-gpios = <&gpiog 10 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
247*08d312c9SLeonard Göhrs		shunt-resistor-micro-ohms = <15000>;
248*08d312c9SLeonard Göhrs		spi-max-frequency = <5000000>;
249*08d312c9SLeonard Göhrs		vdd-supply = <&reg_pb_3v3>;
250*08d312c9SLeonard Göhrs		vdig-supply = <&reg_pb_3v3>;
251*08d312c9SLeonard Göhrs	};
252*08d312c9SLeonard Göhrs};
253*08d312c9SLeonard Göhrs
254*08d312c9SLeonard Göhrs&timers8 {
255*08d312c9SLeonard Göhrs	/* spare dmas for other usage */
256*08d312c9SLeonard Göhrs	/delete-property/dmas;
257*08d312c9SLeonard Göhrs	/delete-property/dma-names;
258*08d312c9SLeonard Göhrs
259*08d312c9SLeonard Göhrs	status = "okay";
260*08d312c9SLeonard Göhrs
261*08d312c9SLeonard Göhrs	led_pwm: pwm {
262*08d312c9SLeonard Göhrs		pinctrl-names = "default", "sleep";
263*08d312c9SLeonard Göhrs		pinctrl-0 = <&pwm8_pins_b>;
264*08d312c9SLeonard Göhrs		pinctrl-1 = <&pwm8_sleep_pins_b>;
265*08d312c9SLeonard Göhrs		status = "okay";
266*08d312c9SLeonard Göhrs	};
267*08d312c9SLeonard Göhrs};
268