1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Copyright (C) STMicroelectronics 2019 - All Rights Reserved
4*724ba675SRob Herring * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics.
5*724ba675SRob Herring */
6*724ba675SRob Herring
7*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
8*724ba675SRob Herring#include <dt-bindings/mfd/st,stpmic1.h>
9*724ba675SRob Herring
10*724ba675SRob Herring/ {
11*724ba675SRob Herring	aliases {
12*724ba675SRob Herring		serial0 = &uart4;
13*724ba675SRob Herring		serial1 = &usart3;
14*724ba675SRob Herring		serial2 = &uart7;
15*724ba675SRob Herring	};
16*724ba675SRob Herring
17*724ba675SRob Herring	memory@c0000000 {
18*724ba675SRob Herring		device_type = "memory";
19*724ba675SRob Herring		reg = <0xc0000000 0x20000000>;
20*724ba675SRob Herring	};
21*724ba675SRob Herring
22*724ba675SRob Herring	reserved-memory {
23*724ba675SRob Herring		#address-cells = <1>;
24*724ba675SRob Herring		#size-cells = <1>;
25*724ba675SRob Herring		ranges;
26*724ba675SRob Herring
27*724ba675SRob Herring		mcuram2: mcuram2@10000000 {
28*724ba675SRob Herring			compatible = "shared-dma-pool";
29*724ba675SRob Herring			reg = <0x10000000 0x40000>;
30*724ba675SRob Herring			no-map;
31*724ba675SRob Herring		};
32*724ba675SRob Herring
33*724ba675SRob Herring		vdev0vring0: vdev0vring0@10040000 {
34*724ba675SRob Herring			compatible = "shared-dma-pool";
35*724ba675SRob Herring			reg = <0x10040000 0x1000>;
36*724ba675SRob Herring			no-map;
37*724ba675SRob Herring		};
38*724ba675SRob Herring
39*724ba675SRob Herring		vdev0vring1: vdev0vring1@10041000 {
40*724ba675SRob Herring			compatible = "shared-dma-pool";
41*724ba675SRob Herring			reg = <0x10041000 0x1000>;
42*724ba675SRob Herring			no-map;
43*724ba675SRob Herring		};
44*724ba675SRob Herring
45*724ba675SRob Herring		vdev0buffer: vdev0buffer@10042000 {
46*724ba675SRob Herring			compatible = "shared-dma-pool";
47*724ba675SRob Herring			reg = <0x10042000 0x4000>;
48*724ba675SRob Herring			no-map;
49*724ba675SRob Herring		};
50*724ba675SRob Herring
51*724ba675SRob Herring		mcuram: mcuram@30000000 {
52*724ba675SRob Herring			compatible = "shared-dma-pool";
53*724ba675SRob Herring			reg = <0x30000000 0x40000>;
54*724ba675SRob Herring			no-map;
55*724ba675SRob Herring		};
56*724ba675SRob Herring
57*724ba675SRob Herring		retram: retram@38000000 {
58*724ba675SRob Herring			compatible = "shared-dma-pool";
59*724ba675SRob Herring			reg = <0x38000000 0x10000>;
60*724ba675SRob Herring			no-map;
61*724ba675SRob Herring		};
62*724ba675SRob Herring	};
63*724ba675SRob Herring
64*724ba675SRob Herring	led {
65*724ba675SRob Herring		compatible = "gpio-leds";
66*724ba675SRob Herring		led-blue {
67*724ba675SRob Herring			label = "heartbeat";
68*724ba675SRob Herring			gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>;
69*724ba675SRob Herring			linux,default-trigger = "heartbeat";
70*724ba675SRob Herring			default-state = "off";
71*724ba675SRob Herring		};
72*724ba675SRob Herring	};
73*724ba675SRob Herring
74*724ba675SRob Herring	sound {
75*724ba675SRob Herring		compatible = "audio-graph-card";
76*724ba675SRob Herring		label = "STM32MP15-DK";
77*724ba675SRob Herring		routing =
78*724ba675SRob Herring			"Playback" , "MCLK",
79*724ba675SRob Herring			"Capture" , "MCLK",
80*724ba675SRob Herring			"MICL" , "Mic Bias";
81*724ba675SRob Herring		dais = <&sai2a_port &sai2b_port &i2s2_port>;
82*724ba675SRob Herring		status = "okay";
83*724ba675SRob Herring	};
84*724ba675SRob Herring
85*724ba675SRob Herring	vin: vin {
86*724ba675SRob Herring		compatible = "regulator-fixed";
87*724ba675SRob Herring		regulator-name = "vin";
88*724ba675SRob Herring		regulator-min-microvolt = <5000000>;
89*724ba675SRob Herring		regulator-max-microvolt = <5000000>;
90*724ba675SRob Herring		regulator-always-on;
91*724ba675SRob Herring	};
92*724ba675SRob Herring};
93*724ba675SRob Herring
94*724ba675SRob Herring&adc {
95*724ba675SRob Herring	pinctrl-names = "default";
96*724ba675SRob Herring	pinctrl-0 = <&adc12_usb_cc_pins_a>;
97*724ba675SRob Herring	vdd-supply = <&vdd>;
98*724ba675SRob Herring	vdda-supply = <&vdd>;
99*724ba675SRob Herring	vref-supply = <&vrefbuf>;
100*724ba675SRob Herring	status = "okay";
101*724ba675SRob Herring	adc1: adc@0 {
102*724ba675SRob Herring		status = "okay";
103*724ba675SRob Herring		/*
104*724ba675SRob Herring		 * Type-C USB_PWR_CC1 & USB_PWR_CC2 on in18 & in19.
105*724ba675SRob Herring		 * Use at least 5 * RC time, e.g. 5 * (Rp + Rd) * C:
106*724ba675SRob Herring		 * 5 * (56 + 47kOhms) * 5pF => 2.5us.
107*724ba675SRob Herring		 * Use arbitrary margin here (e.g. 5us).
108*724ba675SRob Herring		 */
109*724ba675SRob Herring		channel@18 {
110*724ba675SRob Herring			reg = <18>;
111*724ba675SRob Herring			st,min-sample-time-ns = <5000>;
112*724ba675SRob Herring		};
113*724ba675SRob Herring		channel@19 {
114*724ba675SRob Herring			reg = <19>;
115*724ba675SRob Herring			st,min-sample-time-ns = <5000>;
116*724ba675SRob Herring		};
117*724ba675SRob Herring	};
118*724ba675SRob Herring	adc2: adc@100 {
119*724ba675SRob Herring		status = "okay";
120*724ba675SRob Herring		/* USB Type-C CC1 & CC2 */
121*724ba675SRob Herring		channel@18 {
122*724ba675SRob Herring			reg = <18>;
123*724ba675SRob Herring			st,min-sample-time-ns = <5000>;
124*724ba675SRob Herring		};
125*724ba675SRob Herring		channel@19 {
126*724ba675SRob Herring			reg = <19>;
127*724ba675SRob Herring			st,min-sample-time-ns = <5000>;
128*724ba675SRob Herring		};
129*724ba675SRob Herring	};
130*724ba675SRob Herring};
131*724ba675SRob Herring
132*724ba675SRob Herring&cec {
133*724ba675SRob Herring	pinctrl-names = "default", "sleep";
134*724ba675SRob Herring	pinctrl-0 = <&cec_pins_b>;
135*724ba675SRob Herring	pinctrl-1 = <&cec_sleep_pins_b>;
136*724ba675SRob Herring	status = "okay";
137*724ba675SRob Herring};
138*724ba675SRob Herring
139*724ba675SRob Herring&crc1 {
140*724ba675SRob Herring	status = "okay";
141*724ba675SRob Herring};
142*724ba675SRob Herring
143*724ba675SRob Herring&dts {
144*724ba675SRob Herring	status = "okay";
145*724ba675SRob Herring};
146*724ba675SRob Herring
147*724ba675SRob Herring&ethernet0 {
148*724ba675SRob Herring	status = "okay";
149*724ba675SRob Herring	pinctrl-0 = <&ethernet0_rgmii_pins_a>;
150*724ba675SRob Herring	pinctrl-1 = <&ethernet0_rgmii_sleep_pins_a>;
151*724ba675SRob Herring	pinctrl-names = "default", "sleep";
152*724ba675SRob Herring	phy-mode = "rgmii-id";
153*724ba675SRob Herring	max-speed = <1000>;
154*724ba675SRob Herring	phy-handle = <&phy0>;
155*724ba675SRob Herring
156*724ba675SRob Herring	mdio {
157*724ba675SRob Herring		#address-cells = <1>;
158*724ba675SRob Herring		#size-cells = <0>;
159*724ba675SRob Herring		compatible = "snps,dwmac-mdio";
160*724ba675SRob Herring		phy0: ethernet-phy@0 {
161*724ba675SRob Herring			reg = <0>;
162*724ba675SRob Herring		};
163*724ba675SRob Herring	};
164*724ba675SRob Herring};
165*724ba675SRob Herring
166*724ba675SRob Herring&hash1 {
167*724ba675SRob Herring	status = "okay";
168*724ba675SRob Herring};
169*724ba675SRob Herring
170*724ba675SRob Herring&i2c1 {
171*724ba675SRob Herring	pinctrl-names = "default", "sleep";
172*724ba675SRob Herring	pinctrl-0 = <&i2c1_pins_a>;
173*724ba675SRob Herring	pinctrl-1 = <&i2c1_sleep_pins_a>;
174*724ba675SRob Herring	i2c-scl-rising-time-ns = <100>;
175*724ba675SRob Herring	i2c-scl-falling-time-ns = <7>;
176*724ba675SRob Herring	status = "okay";
177*724ba675SRob Herring	/delete-property/dmas;
178*724ba675SRob Herring	/delete-property/dma-names;
179*724ba675SRob Herring
180*724ba675SRob Herring	hdmi-transmitter@39 {
181*724ba675SRob Herring		compatible = "sil,sii9022";
182*724ba675SRob Herring		reg = <0x39>;
183*724ba675SRob Herring		iovcc-supply = <&v3v3_hdmi>;
184*724ba675SRob Herring		cvcc12-supply = <&v1v2_hdmi>;
185*724ba675SRob Herring		reset-gpios = <&gpioa 10 GPIO_ACTIVE_LOW>;
186*724ba675SRob Herring		interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
187*724ba675SRob Herring		interrupt-parent = <&gpiog>;
188*724ba675SRob Herring		#sound-dai-cells = <0>;
189*724ba675SRob Herring		status = "okay";
190*724ba675SRob Herring
191*724ba675SRob Herring		ports {
192*724ba675SRob Herring			#address-cells = <1>;
193*724ba675SRob Herring			#size-cells = <0>;
194*724ba675SRob Herring
195*724ba675SRob Herring			port@0 {
196*724ba675SRob Herring				reg = <0>;
197*724ba675SRob Herring				sii9022_in: endpoint {
198*724ba675SRob Herring					remote-endpoint = <&ltdc_ep0_out>;
199*724ba675SRob Herring				};
200*724ba675SRob Herring			};
201*724ba675SRob Herring
202*724ba675SRob Herring			port@3 {
203*724ba675SRob Herring				reg = <3>;
204*724ba675SRob Herring				sii9022_tx_endpoint: endpoint {
205*724ba675SRob Herring					remote-endpoint = <&i2s2_endpoint>;
206*724ba675SRob Herring				};
207*724ba675SRob Herring			};
208*724ba675SRob Herring		};
209*724ba675SRob Herring	};
210*724ba675SRob Herring
211*724ba675SRob Herring	cs42l51: cs42l51@4a {
212*724ba675SRob Herring		compatible = "cirrus,cs42l51";
213*724ba675SRob Herring		reg = <0x4a>;
214*724ba675SRob Herring		#sound-dai-cells = <0>;
215*724ba675SRob Herring		VL-supply = <&v3v3>;
216*724ba675SRob Herring		VD-supply = <&v1v8_audio>;
217*724ba675SRob Herring		VA-supply = <&v1v8_audio>;
218*724ba675SRob Herring		VAHP-supply = <&v1v8_audio>;
219*724ba675SRob Herring		reset-gpios = <&gpiog 9 GPIO_ACTIVE_LOW>;
220*724ba675SRob Herring		clocks = <&sai2a>;
221*724ba675SRob Herring		clock-names = "MCLK";
222*724ba675SRob Herring		status = "okay";
223*724ba675SRob Herring
224*724ba675SRob Herring		cs42l51_port: port {
225*724ba675SRob Herring			#address-cells = <1>;
226*724ba675SRob Herring			#size-cells = <0>;
227*724ba675SRob Herring
228*724ba675SRob Herring			cs42l51_tx_endpoint: endpoint@0 {
229*724ba675SRob Herring				reg = <0>;
230*724ba675SRob Herring				remote-endpoint = <&sai2a_endpoint>;
231*724ba675SRob Herring				frame-master = <&cs42l51_tx_endpoint>;
232*724ba675SRob Herring				bitclock-master = <&cs42l51_tx_endpoint>;
233*724ba675SRob Herring			};
234*724ba675SRob Herring
235*724ba675SRob Herring			cs42l51_rx_endpoint: endpoint@1 {
236*724ba675SRob Herring				reg = <1>;
237*724ba675SRob Herring				remote-endpoint = <&sai2b_endpoint>;
238*724ba675SRob Herring				frame-master = <&cs42l51_rx_endpoint>;
239*724ba675SRob Herring				bitclock-master = <&cs42l51_rx_endpoint>;
240*724ba675SRob Herring			};
241*724ba675SRob Herring		};
242*724ba675SRob Herring	};
243*724ba675SRob Herring};
244*724ba675SRob Herring
245*724ba675SRob Herring&i2c4 {
246*724ba675SRob Herring	pinctrl-names = "default", "sleep";
247*724ba675SRob Herring	pinctrl-0 = <&i2c4_pins_a>;
248*724ba675SRob Herring	pinctrl-1 = <&i2c4_sleep_pins_a>;
249*724ba675SRob Herring	i2c-scl-rising-time-ns = <185>;
250*724ba675SRob Herring	i2c-scl-falling-time-ns = <20>;
251*724ba675SRob Herring	clock-frequency = <400000>;
252*724ba675SRob Herring	status = "okay";
253*724ba675SRob Herring	/* spare dmas for other usage */
254*724ba675SRob Herring	/delete-property/dmas;
255*724ba675SRob Herring	/delete-property/dma-names;
256*724ba675SRob Herring
257*724ba675SRob Herring	stusb1600@28 {
258*724ba675SRob Herring		compatible = "st,stusb1600";
259*724ba675SRob Herring		reg = <0x28>;
260*724ba675SRob Herring		interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
261*724ba675SRob Herring		interrupt-parent = <&gpioi>;
262*724ba675SRob Herring		pinctrl-names = "default";
263*724ba675SRob Herring		pinctrl-0 = <&stusb1600_pins_a>;
264*724ba675SRob Herring		status = "okay";
265*724ba675SRob Herring		vdd-supply = <&vin>;
266*724ba675SRob Herring
267*724ba675SRob Herring		connector {
268*724ba675SRob Herring			compatible = "usb-c-connector";
269*724ba675SRob Herring			label = "USB-C";
270*724ba675SRob Herring			power-role = "dual";
271*724ba675SRob Herring			typec-power-opmode = "default";
272*724ba675SRob Herring
273*724ba675SRob Herring			port {
274*724ba675SRob Herring				con_usbotg_hs_ep: endpoint {
275*724ba675SRob Herring					remote-endpoint = <&usbotg_hs_ep>;
276*724ba675SRob Herring				};
277*724ba675SRob Herring			};
278*724ba675SRob Herring		};
279*724ba675SRob Herring	};
280*724ba675SRob Herring
281*724ba675SRob Herring	pmic: stpmic@33 {
282*724ba675SRob Herring		compatible = "st,stpmic1";
283*724ba675SRob Herring		reg = <0x33>;
284*724ba675SRob Herring		interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
285*724ba675SRob Herring		interrupt-controller;
286*724ba675SRob Herring		#interrupt-cells = <2>;
287*724ba675SRob Herring		status = "okay";
288*724ba675SRob Herring
289*724ba675SRob Herring		regulators {
290*724ba675SRob Herring			compatible = "st,stpmic1-regulators";
291*724ba675SRob Herring			buck1-supply = <&vin>;
292*724ba675SRob Herring			buck2-supply = <&vin>;
293*724ba675SRob Herring			buck3-supply = <&vin>;
294*724ba675SRob Herring			buck4-supply = <&vin>;
295*724ba675SRob Herring			ldo1-supply = <&v3v3>;
296*724ba675SRob Herring			ldo2-supply = <&vin>;
297*724ba675SRob Herring			ldo3-supply = <&vdd_ddr>;
298*724ba675SRob Herring			ldo4-supply = <&vin>;
299*724ba675SRob Herring			ldo5-supply = <&vin>;
300*724ba675SRob Herring			ldo6-supply = <&v3v3>;
301*724ba675SRob Herring			vref_ddr-supply = <&vin>;
302*724ba675SRob Herring			boost-supply = <&vin>;
303*724ba675SRob Herring			pwr_sw1-supply = <&bst_out>;
304*724ba675SRob Herring			pwr_sw2-supply = <&bst_out>;
305*724ba675SRob Herring
306*724ba675SRob Herring			vddcore: buck1 {
307*724ba675SRob Herring				regulator-name = "vddcore";
308*724ba675SRob Herring				regulator-min-microvolt = <1200000>;
309*724ba675SRob Herring				regulator-max-microvolt = <1350000>;
310*724ba675SRob Herring				regulator-always-on;
311*724ba675SRob Herring				regulator-initial-mode = <0>;
312*724ba675SRob Herring				regulator-over-current-protection;
313*724ba675SRob Herring			};
314*724ba675SRob Herring
315*724ba675SRob Herring			vdd_ddr: buck2 {
316*724ba675SRob Herring				regulator-name = "vdd_ddr";
317*724ba675SRob Herring				regulator-min-microvolt = <1350000>;
318*724ba675SRob Herring				regulator-max-microvolt = <1350000>;
319*724ba675SRob Herring				regulator-always-on;
320*724ba675SRob Herring				regulator-initial-mode = <0>;
321*724ba675SRob Herring				regulator-over-current-protection;
322*724ba675SRob Herring			};
323*724ba675SRob Herring
324*724ba675SRob Herring			vdd: buck3 {
325*724ba675SRob Herring				regulator-name = "vdd";
326*724ba675SRob Herring				regulator-min-microvolt = <3300000>;
327*724ba675SRob Herring				regulator-max-microvolt = <3300000>;
328*724ba675SRob Herring				regulator-always-on;
329*724ba675SRob Herring				st,mask-reset;
330*724ba675SRob Herring				regulator-initial-mode = <0>;
331*724ba675SRob Herring				regulator-over-current-protection;
332*724ba675SRob Herring			};
333*724ba675SRob Herring
334*724ba675SRob Herring			v3v3: buck4 {
335*724ba675SRob Herring				regulator-name = "v3v3";
336*724ba675SRob Herring				regulator-min-microvolt = <3300000>;
337*724ba675SRob Herring				regulator-max-microvolt = <3300000>;
338*724ba675SRob Herring				regulator-always-on;
339*724ba675SRob Herring				regulator-over-current-protection;
340*724ba675SRob Herring				regulator-initial-mode = <0>;
341*724ba675SRob Herring			};
342*724ba675SRob Herring
343*724ba675SRob Herring			v1v8_audio: ldo1 {
344*724ba675SRob Herring				regulator-name = "v1v8_audio";
345*724ba675SRob Herring				regulator-min-microvolt = <1800000>;
346*724ba675SRob Herring				regulator-max-microvolt = <1800000>;
347*724ba675SRob Herring				regulator-always-on;
348*724ba675SRob Herring				interrupts = <IT_CURLIM_LDO1 0>;
349*724ba675SRob Herring			};
350*724ba675SRob Herring
351*724ba675SRob Herring			v3v3_hdmi: ldo2 {
352*724ba675SRob Herring				regulator-name = "v3v3_hdmi";
353*724ba675SRob Herring				regulator-min-microvolt = <3300000>;
354*724ba675SRob Herring				regulator-max-microvolt = <3300000>;
355*724ba675SRob Herring				regulator-always-on;
356*724ba675SRob Herring				interrupts = <IT_CURLIM_LDO2 0>;
357*724ba675SRob Herring			};
358*724ba675SRob Herring
359*724ba675SRob Herring			vtt_ddr: ldo3 {
360*724ba675SRob Herring				regulator-name = "vtt_ddr";
361*724ba675SRob Herring				regulator-min-microvolt = <500000>;
362*724ba675SRob Herring				regulator-max-microvolt = <750000>;
363*724ba675SRob Herring				regulator-always-on;
364*724ba675SRob Herring				regulator-over-current-protection;
365*724ba675SRob Herring			};
366*724ba675SRob Herring
367*724ba675SRob Herring			vdd_usb: ldo4 {
368*724ba675SRob Herring				regulator-name = "vdd_usb";
369*724ba675SRob Herring				interrupts = <IT_CURLIM_LDO4 0>;
370*724ba675SRob Herring			};
371*724ba675SRob Herring
372*724ba675SRob Herring			vdda: ldo5 {
373*724ba675SRob Herring				regulator-name = "vdda";
374*724ba675SRob Herring				regulator-min-microvolt = <2900000>;
375*724ba675SRob Herring				regulator-max-microvolt = <2900000>;
376*724ba675SRob Herring				interrupts = <IT_CURLIM_LDO5 0>;
377*724ba675SRob Herring				regulator-boot-on;
378*724ba675SRob Herring			};
379*724ba675SRob Herring
380*724ba675SRob Herring			v1v2_hdmi: ldo6 {
381*724ba675SRob Herring				regulator-name = "v1v2_hdmi";
382*724ba675SRob Herring				regulator-min-microvolt = <1200000>;
383*724ba675SRob Herring				regulator-max-microvolt = <1200000>;
384*724ba675SRob Herring				regulator-always-on;
385*724ba675SRob Herring				interrupts = <IT_CURLIM_LDO6 0>;
386*724ba675SRob Herring			};
387*724ba675SRob Herring
388*724ba675SRob Herring			vref_ddr: vref_ddr {
389*724ba675SRob Herring				regulator-name = "vref_ddr";
390*724ba675SRob Herring				regulator-always-on;
391*724ba675SRob Herring			};
392*724ba675SRob Herring
393*724ba675SRob Herring			bst_out: boost {
394*724ba675SRob Herring				regulator-name = "bst_out";
395*724ba675SRob Herring				interrupts = <IT_OCP_BOOST 0>;
396*724ba675SRob Herring			};
397*724ba675SRob Herring
398*724ba675SRob Herring			vbus_otg: pwr_sw1 {
399*724ba675SRob Herring				regulator-name = "vbus_otg";
400*724ba675SRob Herring				interrupts = <IT_OCP_OTG 0>;
401*724ba675SRob Herring			};
402*724ba675SRob Herring
403*724ba675SRob Herring			vbus_sw: pwr_sw2 {
404*724ba675SRob Herring				regulator-name = "vbus_sw";
405*724ba675SRob Herring				interrupts = <IT_OCP_SWOUT 0>;
406*724ba675SRob Herring				regulator-active-discharge = <1>;
407*724ba675SRob Herring			};
408*724ba675SRob Herring		};
409*724ba675SRob Herring
410*724ba675SRob Herring		onkey {
411*724ba675SRob Herring			compatible = "st,stpmic1-onkey";
412*724ba675SRob Herring			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
413*724ba675SRob Herring			interrupt-names = "onkey-falling", "onkey-rising";
414*724ba675SRob Herring			power-off-time-sec = <10>;
415*724ba675SRob Herring			status = "okay";
416*724ba675SRob Herring		};
417*724ba675SRob Herring
418*724ba675SRob Herring		watchdog {
419*724ba675SRob Herring			compatible = "st,stpmic1-wdt";
420*724ba675SRob Herring			status = "disabled";
421*724ba675SRob Herring		};
422*724ba675SRob Herring	};
423*724ba675SRob Herring};
424*724ba675SRob Herring
425*724ba675SRob Herring&i2c5 {
426*724ba675SRob Herring	pinctrl-names = "default", "sleep";
427*724ba675SRob Herring	pinctrl-0 = <&i2c5_pins_a>;
428*724ba675SRob Herring	pinctrl-1 = <&i2c5_sleep_pins_a>;
429*724ba675SRob Herring	i2c-scl-rising-time-ns = <185>;
430*724ba675SRob Herring	i2c-scl-falling-time-ns = <20>;
431*724ba675SRob Herring	clock-frequency = <400000>;
432*724ba675SRob Herring	/* spare dmas for other usage */
433*724ba675SRob Herring	/delete-property/dmas;
434*724ba675SRob Herring	/delete-property/dma-names;
435*724ba675SRob Herring	status = "disabled";
436*724ba675SRob Herring};
437*724ba675SRob Herring
438*724ba675SRob Herring&i2s2 {
439*724ba675SRob Herring	clocks = <&rcc SPI2>, <&rcc SPI2_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
440*724ba675SRob Herring	clock-names = "pclk", "i2sclk", "x8k", "x11k";
441*724ba675SRob Herring	pinctrl-names = "default", "sleep";
442*724ba675SRob Herring	pinctrl-0 = <&i2s2_pins_a>;
443*724ba675SRob Herring	pinctrl-1 = <&i2s2_sleep_pins_a>;
444*724ba675SRob Herring	status = "okay";
445*724ba675SRob Herring
446*724ba675SRob Herring	i2s2_port: port {
447*724ba675SRob Herring		i2s2_endpoint: endpoint {
448*724ba675SRob Herring			remote-endpoint = <&sii9022_tx_endpoint>;
449*724ba675SRob Herring			dai-format = "i2s";
450*724ba675SRob Herring			mclk-fs = <256>;
451*724ba675SRob Herring		};
452*724ba675SRob Herring	};
453*724ba675SRob Herring};
454*724ba675SRob Herring
455*724ba675SRob Herring&ipcc {
456*724ba675SRob Herring	status = "okay";
457*724ba675SRob Herring};
458*724ba675SRob Herring
459*724ba675SRob Herring&iwdg2 {
460*724ba675SRob Herring	timeout-sec = <32>;
461*724ba675SRob Herring	status = "okay";
462*724ba675SRob Herring};
463*724ba675SRob Herring
464*724ba675SRob Herring&ltdc {
465*724ba675SRob Herring	pinctrl-names = "default", "sleep";
466*724ba675SRob Herring	pinctrl-0 = <&ltdc_pins_a>;
467*724ba675SRob Herring	pinctrl-1 = <&ltdc_sleep_pins_a>;
468*724ba675SRob Herring	status = "okay";
469*724ba675SRob Herring
470*724ba675SRob Herring	port {
471*724ba675SRob Herring		ltdc_ep0_out: endpoint {
472*724ba675SRob Herring			remote-endpoint = <&sii9022_in>;
473*724ba675SRob Herring		};
474*724ba675SRob Herring	};
475*724ba675SRob Herring};
476*724ba675SRob Herring
477*724ba675SRob Herring&m4_rproc {
478*724ba675SRob Herring	memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
479*724ba675SRob Herring			<&vdev0vring1>, <&vdev0buffer>;
480*724ba675SRob Herring	mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
481*724ba675SRob Herring	mbox-names = "vq0", "vq1", "shutdown", "detach";
482*724ba675SRob Herring	interrupt-parent = <&exti>;
483*724ba675SRob Herring	interrupts = <68 1>;
484*724ba675SRob Herring	status = "okay";
485*724ba675SRob Herring};
486*724ba675SRob Herring
487*724ba675SRob Herring&pwr_regulators {
488*724ba675SRob Herring	vdd-supply = <&vdd>;
489*724ba675SRob Herring	vdd_3v3_usbfs-supply = <&vdd_usb>;
490*724ba675SRob Herring};
491*724ba675SRob Herring
492*724ba675SRob Herring&rng1 {
493*724ba675SRob Herring	status = "okay";
494*724ba675SRob Herring};
495*724ba675SRob Herring
496*724ba675SRob Herring&rtc {
497*724ba675SRob Herring	status = "okay";
498*724ba675SRob Herring};
499*724ba675SRob Herring
500*724ba675SRob Herring&sai2 {
501*724ba675SRob Herring	clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
502*724ba675SRob Herring	clock-names = "pclk", "x8k", "x11k";
503*724ba675SRob Herring	pinctrl-names = "default", "sleep";
504*724ba675SRob Herring	pinctrl-0 = <&sai2a_pins_a>, <&sai2b_pins_b>;
505*724ba675SRob Herring	pinctrl-1 = <&sai2a_sleep_pins_a>, <&sai2b_sleep_pins_b>;
506*724ba675SRob Herring	status = "okay";
507*724ba675SRob Herring
508*724ba675SRob Herring	sai2a: audio-controller@4400b004 {
509*724ba675SRob Herring		#clock-cells = <0>;
510*724ba675SRob Herring		dma-names = "tx";
511*724ba675SRob Herring		status = "okay";
512*724ba675SRob Herring
513*724ba675SRob Herring		sai2a_port: port {
514*724ba675SRob Herring			sai2a_endpoint: endpoint {
515*724ba675SRob Herring				remote-endpoint = <&cs42l51_tx_endpoint>;
516*724ba675SRob Herring				dai-format = "i2s";
517*724ba675SRob Herring				mclk-fs = <256>;
518*724ba675SRob Herring				dai-tdm-slot-num = <2>;
519*724ba675SRob Herring				dai-tdm-slot-width = <32>;
520*724ba675SRob Herring			};
521*724ba675SRob Herring		};
522*724ba675SRob Herring	};
523*724ba675SRob Herring
524*724ba675SRob Herring	sai2b: audio-controller@4400b024 {
525*724ba675SRob Herring		dma-names = "rx";
526*724ba675SRob Herring		st,sync = <&sai2a 2>;
527*724ba675SRob Herring		clocks = <&rcc SAI2_K>, <&sai2a>;
528*724ba675SRob Herring		clock-names = "sai_ck", "MCLK";
529*724ba675SRob Herring		status = "okay";
530*724ba675SRob Herring
531*724ba675SRob Herring		sai2b_port: port {
532*724ba675SRob Herring			sai2b_endpoint: endpoint {
533*724ba675SRob Herring				remote-endpoint = <&cs42l51_rx_endpoint>;
534*724ba675SRob Herring				dai-format = "i2s";
535*724ba675SRob Herring				mclk-fs = <256>;
536*724ba675SRob Herring				dai-tdm-slot-num = <2>;
537*724ba675SRob Herring				dai-tdm-slot-width = <32>;
538*724ba675SRob Herring			};
539*724ba675SRob Herring		};
540*724ba675SRob Herring	};
541*724ba675SRob Herring};
542*724ba675SRob Herring
543*724ba675SRob Herring&sdmmc1 {
544*724ba675SRob Herring	pinctrl-names = "default", "opendrain", "sleep";
545*724ba675SRob Herring	pinctrl-0 = <&sdmmc1_b4_pins_a>;
546*724ba675SRob Herring	pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
547*724ba675SRob Herring	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
548*724ba675SRob Herring	cd-gpios = <&gpiob 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
549*724ba675SRob Herring	disable-wp;
550*724ba675SRob Herring	st,neg-edge;
551*724ba675SRob Herring	bus-width = <4>;
552*724ba675SRob Herring	vmmc-supply = <&v3v3>;
553*724ba675SRob Herring	status = "okay";
554*724ba675SRob Herring};
555*724ba675SRob Herring
556*724ba675SRob Herring&sdmmc3 {
557*724ba675SRob Herring	pinctrl-names = "default", "opendrain", "sleep";
558*724ba675SRob Herring	pinctrl-0 = <&sdmmc3_b4_pins_a>;
559*724ba675SRob Herring	pinctrl-1 = <&sdmmc3_b4_od_pins_a>;
560*724ba675SRob Herring	pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>;
561*724ba675SRob Herring	broken-cd;
562*724ba675SRob Herring	st,neg-edge;
563*724ba675SRob Herring	bus-width = <4>;
564*724ba675SRob Herring	vmmc-supply = <&v3v3>;
565*724ba675SRob Herring	status = "disabled";
566*724ba675SRob Herring};
567*724ba675SRob Herring
568*724ba675SRob Herring&timers1 {
569*724ba675SRob Herring	/* spare dmas for other usage */
570*724ba675SRob Herring	/delete-property/dmas;
571*724ba675SRob Herring	/delete-property/dma-names;
572*724ba675SRob Herring	status = "disabled";
573*724ba675SRob Herring	pwm {
574*724ba675SRob Herring		pinctrl-0 = <&pwm1_pins_a>;
575*724ba675SRob Herring		pinctrl-1 = <&pwm1_sleep_pins_a>;
576*724ba675SRob Herring		pinctrl-names = "default", "sleep";
577*724ba675SRob Herring		status = "okay";
578*724ba675SRob Herring	};
579*724ba675SRob Herring	timer@0 {
580*724ba675SRob Herring		status = "okay";
581*724ba675SRob Herring	};
582*724ba675SRob Herring};
583*724ba675SRob Herring
584*724ba675SRob Herring&timers3 {
585*724ba675SRob Herring	/delete-property/dmas;
586*724ba675SRob Herring	/delete-property/dma-names;
587*724ba675SRob Herring	status = "disabled";
588*724ba675SRob Herring	pwm {
589*724ba675SRob Herring		pinctrl-0 = <&pwm3_pins_a>;
590*724ba675SRob Herring		pinctrl-1 = <&pwm3_sleep_pins_a>;
591*724ba675SRob Herring		pinctrl-names = "default", "sleep";
592*724ba675SRob Herring		status = "okay";
593*724ba675SRob Herring	};
594*724ba675SRob Herring	timer@2 {
595*724ba675SRob Herring		status = "okay";
596*724ba675SRob Herring	};
597*724ba675SRob Herring};
598*724ba675SRob Herring
599*724ba675SRob Herring&timers4 {
600*724ba675SRob Herring	/delete-property/dmas;
601*724ba675SRob Herring	/delete-property/dma-names;
602*724ba675SRob Herring	status = "disabled";
603*724ba675SRob Herring	pwm {
604*724ba675SRob Herring		pinctrl-0 = <&pwm4_pins_a &pwm4_pins_b>;
605*724ba675SRob Herring		pinctrl-1 = <&pwm4_sleep_pins_a &pwm4_sleep_pins_b>;
606*724ba675SRob Herring		pinctrl-names = "default", "sleep";
607*724ba675SRob Herring		status = "okay";
608*724ba675SRob Herring	};
609*724ba675SRob Herring	timer@3 {
610*724ba675SRob Herring		status = "okay";
611*724ba675SRob Herring	};
612*724ba675SRob Herring};
613*724ba675SRob Herring
614*724ba675SRob Herring&timers5 {
615*724ba675SRob Herring	/delete-property/dmas;
616*724ba675SRob Herring	/delete-property/dma-names;
617*724ba675SRob Herring	status = "disabled";
618*724ba675SRob Herring	pwm {
619*724ba675SRob Herring		pinctrl-0 = <&pwm5_pins_a>;
620*724ba675SRob Herring		pinctrl-1 = <&pwm5_sleep_pins_a>;
621*724ba675SRob Herring		pinctrl-names = "default", "sleep";
622*724ba675SRob Herring		status = "okay";
623*724ba675SRob Herring	};
624*724ba675SRob Herring	timer@4 {
625*724ba675SRob Herring		status = "okay";
626*724ba675SRob Herring	};
627*724ba675SRob Herring};
628*724ba675SRob Herring
629*724ba675SRob Herring&timers6 {
630*724ba675SRob Herring	/delete-property/dmas;
631*724ba675SRob Herring	/delete-property/dma-names;
632*724ba675SRob Herring	status = "disabled";
633*724ba675SRob Herring	timer@5 {
634*724ba675SRob Herring		status = "okay";
635*724ba675SRob Herring	};
636*724ba675SRob Herring};
637*724ba675SRob Herring
638*724ba675SRob Herring&timers12 {
639*724ba675SRob Herring	/delete-property/dmas;
640*724ba675SRob Herring	/delete-property/dma-names;
641*724ba675SRob Herring	status = "disabled";
642*724ba675SRob Herring	pwm {
643*724ba675SRob Herring		pinctrl-0 = <&pwm12_pins_a>;
644*724ba675SRob Herring		pinctrl-1 = <&pwm12_sleep_pins_a>;
645*724ba675SRob Herring		pinctrl-names = "default", "sleep";
646*724ba675SRob Herring		status = "okay";
647*724ba675SRob Herring	};
648*724ba675SRob Herring	timer@11 {
649*724ba675SRob Herring		status = "okay";
650*724ba675SRob Herring	};
651*724ba675SRob Herring};
652*724ba675SRob Herring
653*724ba675SRob Herring&uart4 {
654*724ba675SRob Herring	pinctrl-names = "default", "sleep", "idle";
655*724ba675SRob Herring	pinctrl-0 = <&uart4_pins_a>;
656*724ba675SRob Herring	pinctrl-1 = <&uart4_sleep_pins_a>;
657*724ba675SRob Herring	pinctrl-2 = <&uart4_idle_pins_a>;
658*724ba675SRob Herring	/delete-property/dmas;
659*724ba675SRob Herring	/delete-property/dma-names;
660*724ba675SRob Herring	status = "okay";
661*724ba675SRob Herring};
662*724ba675SRob Herring
663*724ba675SRob Herring&uart7 {
664*724ba675SRob Herring	pinctrl-names = "default", "sleep", "idle";
665*724ba675SRob Herring	pinctrl-0 = <&uart7_pins_c>;
666*724ba675SRob Herring	pinctrl-1 = <&uart7_sleep_pins_c>;
667*724ba675SRob Herring	pinctrl-2 = <&uart7_idle_pins_c>;
668*724ba675SRob Herring	/delete-property/dmas;
669*724ba675SRob Herring	/delete-property/dma-names;
670*724ba675SRob Herring	status = "disabled";
671*724ba675SRob Herring};
672*724ba675SRob Herring
673*724ba675SRob Herring&usart3 {
674*724ba675SRob Herring	pinctrl-names = "default", "sleep", "idle";
675*724ba675SRob Herring	pinctrl-0 = <&usart3_pins_c>;
676*724ba675SRob Herring	pinctrl-1 = <&usart3_sleep_pins_c>;
677*724ba675SRob Herring	pinctrl-2 = <&usart3_idle_pins_c>;
678*724ba675SRob Herring	uart-has-rtscts;
679*724ba675SRob Herring	status = "disabled";
680*724ba675SRob Herring};
681*724ba675SRob Herring
682*724ba675SRob Herring&usbh_ehci {
683*724ba675SRob Herring	phys = <&usbphyc_port0>;
684*724ba675SRob Herring	status = "okay";
685*724ba675SRob Herring	#address-cells = <1>;
686*724ba675SRob Herring	#size-cells = <0>;
687*724ba675SRob Herring	/* onboard HUB */
688*724ba675SRob Herring	hub@1 {
689*724ba675SRob Herring		compatible = "usb424,2514";
690*724ba675SRob Herring		reg = <1>;
691*724ba675SRob Herring		vdd-supply = <&v3v3>;
692*724ba675SRob Herring	};
693*724ba675SRob Herring};
694*724ba675SRob Herring
695*724ba675SRob Herring&usbotg_hs {
696*724ba675SRob Herring	phys = <&usbphyc_port1 0>;
697*724ba675SRob Herring	phy-names = "usb2-phy";
698*724ba675SRob Herring	usb-role-switch;
699*724ba675SRob Herring	status = "okay";
700*724ba675SRob Herring
701*724ba675SRob Herring	port {
702*724ba675SRob Herring		usbotg_hs_ep: endpoint {
703*724ba675SRob Herring			remote-endpoint = <&con_usbotg_hs_ep>;
704*724ba675SRob Herring		};
705*724ba675SRob Herring	};
706*724ba675SRob Herring};
707*724ba675SRob Herring
708*724ba675SRob Herring&usbphyc {
709*724ba675SRob Herring	status = "okay";
710*724ba675SRob Herring};
711*724ba675SRob Herring
712*724ba675SRob Herring&usbphyc_port0 {
713*724ba675SRob Herring	phy-supply = <&vdd_usb>;
714*724ba675SRob Herring	st,tune-hs-dc-level = <2>;
715*724ba675SRob Herring	st,enable-fs-rftime-tuning;
716*724ba675SRob Herring	st,enable-hs-rftime-reduction;
717*724ba675SRob Herring	st,trim-hs-current = <15>;
718*724ba675SRob Herring	st,trim-hs-impedance = <1>;
719*724ba675SRob Herring	st,tune-squelch-level = <3>;
720*724ba675SRob Herring	st,tune-hs-rx-offset = <2>;
721*724ba675SRob Herring	st,no-lsfs-sc;
722*724ba675SRob Herring};
723*724ba675SRob Herring
724*724ba675SRob Herring&usbphyc_port1 {
725*724ba675SRob Herring	phy-supply = <&vdd_usb>;
726*724ba675SRob Herring	st,tune-hs-dc-level = <2>;
727*724ba675SRob Herring	st,enable-fs-rftime-tuning;
728*724ba675SRob Herring	st,enable-hs-rftime-reduction;
729*724ba675SRob Herring	st,trim-hs-current = <15>;
730*724ba675SRob Herring	st,trim-hs-impedance = <1>;
731*724ba675SRob Herring	st,tune-squelch-level = <3>;
732*724ba675SRob Herring	st,tune-hs-rx-offset = <2>;
733*724ba675SRob Herring	st,no-lsfs-sc;
734*724ba675SRob Herring};
735*724ba675SRob Herring
736*724ba675SRob Herring&vrefbuf {
737*724ba675SRob Herring	regulator-min-microvolt = <2500000>;
738*724ba675SRob Herring	regulator-max-microvolt = <2500000>;
739*724ba675SRob Herring	vdda-supply = <&vdd>;
740*724ba675SRob Herring	status = "okay";
741*724ba675SRob Herring};
742