xref: /linux/arch/arm/boot/dts/st/stm32mp151c-plyaqm.dts (revision 2f24482304ebd32c5aa374f31465b9941a860b92)
1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/dts-v1/;
3
4#include <arm/st/stm32mp151.dtsi>
5#include <arm/st/stm32mp15xc.dtsi>
6#include <arm/st/stm32mp15-pinctrl.dtsi>
7#include <arm/st/stm32mp15xxad-pinctrl.dtsi>
8#include <arm/st/stm32mp15-scmi.dtsi>
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/leds/common.h>
11
12/ {
13	model = "Plymovent AQM board";
14	compatible = "ply,plyaqm", "st,stm32mp151";
15
16	aliases {
17		ethernet0 = &ethernet0;
18		serial0 = &uart4;
19		serial1 = &uart7;
20	};
21
22	codec {
23		compatible = "invensense,ics43432";
24
25		port {
26			codec_endpoint: endpoint {
27				remote-endpoint = <&i2s1_endpoint>;
28				dai-format = "i2s";
29			};
30		};
31	};
32
33	firmware {
34		optee {
35			compatible = "linaro,optee-tz";
36			method = "smc";
37		};
38	};
39
40	leds {
41		compatible = "gpio-leds";
42
43		led-0 {
44			gpios = <&gpioa 3 GPIO_ACTIVE_HIGH>; /* WHITE_EN */
45			color = <LED_COLOR_ID_WHITE>;
46			default-state = "on";
47		};
48	};
49
50	v3v3: fixed-regulator-v3v3 {
51		compatible = "regulator-fixed";
52		regulator-name = "v3v3";
53		regulator-min-microvolt = <3300000>;
54		regulator-max-microvolt = <3300000>;
55	};
56
57	v5v_sw: fixed-regulator-v5sw {
58		compatible = "regulator-fixed";
59		regulator-name = "5v-switched";
60		regulator-min-microvolt = <5000000>;
61		regulator-max-microvolt = <5000000>;
62		gpio = <&gpioe 10 GPIO_ACTIVE_HIGH>; /* 5V_SWITCHED_EN */
63		startup-delay-us = <100000>;
64		enable-active-high;
65		regulator-boot-on;
66	};
67
68	reserved-memory {
69		#address-cells = <1>;
70		#size-cells = <1>;
71		ranges;
72
73		optee@cfd00000 {
74			reg = <0xcfd00000 0x300000>;
75			no-map;
76		};
77	};
78
79	sound {
80		compatible = "audio-graph-card";
81		label = "STM32MP15";
82		dais = <&i2s1_port>;
83	};
84
85	wifi_pwrseq: wifi-pwrseq {
86		compatible = "mmc-pwrseq-simple";
87		reset-gpios = <&gpioe 12 GPIO_ACTIVE_LOW>; /* WLAN_REG_ON */
88	};
89};
90
91&adc {
92	pinctrl-names = "default";
93	pinctrl-0 = <&adc1_in10_pins_a>;
94	vdda-supply = <&v3v3>;
95	vref-supply = <&v3v3>;
96	status = "okay";
97
98	adc@0 {
99		#address-cells = <1>;
100		#size-cells = <0>;
101		status = "okay";
102
103		channel@10 { /* NTC */
104			reg = <10>;
105			st,min-sample-time-ns = <10000>;  /* 10µs sampling time */
106		};
107	};
108};
109
110&cpu0 {
111	clocks = <&scmi_clk CK_SCMI_MPU>;
112};
113
114&cryp1 {
115	clocks = <&scmi_clk CK_SCMI_CRYP1>;
116	resets = <&scmi_reset RST_SCMI_CRYP1>;
117	status = "okay";
118};
119
120&ethernet0 {
121	pinctrl-names = "default", "sleep";
122	pinctrl-0 = <&ethernet0_rmii_pins_d>;
123	pinctrl-1 = <&ethernet0_rmii_sleep_pins_d>;
124	phy-mode = "rmii";
125	max-speed = <100>;
126	phy-handle = <&ethphy0>;
127	status = "okay";
128
129	mdio {
130		#address-cells = <1>;
131		#size-cells = <0>;
132		compatible = "snps,dwmac-mdio";
133
134		/* KSZ8081RNA PHY */
135		ethphy0: ethernet-phy@0 {
136			reg = <0>;
137			interrupts-extended = <&gpiob 0 IRQ_TYPE_LEVEL_LOW>;
138			reset-gpios = <&gpiob 1 GPIO_ACTIVE_LOW>;
139			reset-assert-us = <10000>;
140			reset-deassert-us = <300>;
141		};
142	};
143};
144
145&gpioa {
146	gpio-line-names =
147		"", "", "", "", "", "", "", "",
148		"", "", "", "", "", "HWID_PL_N", "HWID_CP", "";
149};
150
151&gpiob {
152	gpio-line-names =
153		"", "", "", "", "", "", "LED_LATCH", "",
154		"", "RELAY1_EN", "", "", "", "", "", "";
155};
156
157&gpioc {
158	gpio-line-names =
159		"", "", "", "", "", "", "", "",
160		"", "", "", "", "", "HWID_Q7", "", "";
161};
162
163&gpioe {
164	gpio-line-names =
165		"", "", "", "", "RELAY2_EN", "", "", "",
166		"", "", "", "", "", "", "", "";
167};
168
169&gpiog {
170	gpio-line-names =
171		"", "", "", "", "", "", "", "SW1",
172		"", "", "", "", "", "", "", "";
173};
174
175&gpioz {
176	clocks = <&scmi_clk CK_SCMI_GPIOZ>;
177};
178
179&hash1 {
180	clocks = <&scmi_clk CK_SCMI_HASH1>;
181	resets = <&scmi_reset RST_SCMI_HASH1>;
182};
183
184&i2c1 {
185	pinctrl-names = "default", "sleep";
186	pinctrl-0 = <&i2c1_pins_c>;
187	pinctrl-1 = <&i2c1_sleep_pins_c>;
188	i2c-scl-rising-time-ns = <185>;
189	i2c-scl-falling-time-ns = <20>;
190	status = "okay";
191	/delete-property/dmas;
192	/delete-property/dma-names;
193};
194
195&i2c4 {
196	clocks = <&scmi_clk CK_SCMI_I2C4>;
197	resets = <&scmi_reset RST_SCMI_I2C4>;
198};
199
200&i2c6 {
201	pinctrl-names = "default", "sleep";
202	pinctrl-0 = <&i2c6_pins_b>;
203	pinctrl-1 = <&i2c6_sleep_pins_b>;
204	i2c-scl-rising-time-ns = <185>;
205	i2c-scl-falling-time-ns = <20>;
206	clocks = <&scmi_clk CK_SCMI_I2C6>;
207	resets = <&scmi_reset RST_SCMI_I2C6>;
208	status = "okay";
209	/delete-property/dmas;
210	/delete-property/dma-names;
211
212	pressure-sensor@47 {
213		compatible = "bosch,bmp580";
214		reg = <0x47>;
215		vdda-supply = <&v5v_sw>;
216		vddd-supply = <&v5v_sw>;
217	};
218
219	co2-sensor@62 {
220		compatible = "sensirion,scd41";
221		reg = <0x62>;
222		vdd-supply = <&v5v_sw>;
223	};
224
225	pm-sensor@69 {
226		compatible = "sensirion,sps30";
227		reg = <0x69>;
228	};
229};
230
231&i2s1 {
232	pinctrl-names = "default", "sleep";
233	pinctrl-0 = <&i2s1_pins_a>;
234	pinctrl-1 = <&i2s1_sleep_pins_a>;
235	clocks = <&rcc SPI1>, <&rcc SPI1_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
236	clock-names = "pclk", "i2sclk", "x8k", "x11k";
237	#clock-cells = <0>; /* Set I2S2 as master clock provider */
238	status = "okay";
239
240	i2s1_port: port {
241		i2s1_endpoint: endpoint {
242			format = "i2s";
243			mclk-fs = <256>;
244			remote-endpoint = <&codec_endpoint>;
245		};
246	};
247};
248
249&iwdg2 {
250	clocks = <&rcc IWDG2>, <&scmi_clk CK_SCMI_LSI>;
251	status = "okay";
252};
253
254&m4_rproc {
255	/delete-property/ st,syscfg-holdboot;
256	resets = <&scmi_reset RST_SCMI_MCU>,
257		 <&scmi_reset RST_SCMI_MCU_HOLD_BOOT>;
258	reset-names =  "mcu_rst", "hold_boot";
259};
260
261&mdma1 {
262	resets = <&scmi_reset RST_SCMI_MDMA>;
263};
264
265&rcc {
266	compatible = "st,stm32mp1-rcc-secure", "syscon";
267	clock-names = "hse", "hsi", "csi", "lse", "lsi";
268	clocks = <&scmi_clk CK_SCMI_HSE>,
269		 <&scmi_clk CK_SCMI_HSI>,
270		 <&scmi_clk CK_SCMI_CSI>,
271		 <&scmi_clk CK_SCMI_LSE>,
272		 <&scmi_clk CK_SCMI_LSI>;
273};
274
275&rng1 {
276	clocks = <&scmi_clk CK_SCMI_RNG1>;
277	resets = <&scmi_reset RST_SCMI_RNG1>;
278	status = "okay";
279};
280
281&rtc {
282	clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>;
283};
284
285/* SD card without Card-detect */
286&sdmmc1 {
287	pinctrl-names = "default", "opendrain", "sleep";
288	pinctrl-0 = <&sdmmc1_b4_pins_a>;
289	pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
290	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
291	broken-cd;
292	no-sdio;
293	no-1-8-v;
294	st,neg-edge;
295	bus-width = <4>;
296	vmmc-supply = <&v3v3>;
297	status = "okay";
298};
299
300/* EMMC */
301&sdmmc2 {
302	pinctrl-names = "default", "opendrain", "sleep";
303	pinctrl-0 = <&sdmmc2_b4_pins_c &sdmmc2_d47_pins_b>;
304	pinctrl-1 = <&sdmmc2_b4_od_pins_c &sdmmc2_d47_pins_b>;
305	pinctrl-2 = <&sdmmc2_b4_sleep_pins_c &sdmmc2_d47_sleep_pins_b>;
306	non-removable;
307	no-sd;
308	no-sdio;
309	no-1-8-v;
310	st,neg-edge;
311	bus-width = <8>;
312	vmmc-supply = <&v3v3>;
313	status = "okay";
314};
315
316/* Wifi */
317&sdmmc3 {
318	pinctrl-names = "default", "opendrain", "sleep";
319	pinctrl-0 = <&sdmmc3_b4_pins_c>;
320	pinctrl-1 = <&sdmmc3_b4_od_pins_c>;
321	pinctrl-2 = <&sdmmc3_b4_sleep_pins_c>;
322	non-removable;
323	st,neg-edge;
324	bus-width = <4>;
325	vmmc-supply = <&v3v3>;
326	mmc-pwrseq = <&wifi_pwrseq>;
327	#address-cells = <1>;
328	#size-cells = <0>;
329	status = "okay";
330
331	wifi@1 {
332		reg = <1>;
333		compatible = "brcm,bcm4329-fmac";
334	};
335};
336
337&timers5 {
338	status = "okay";
339	/delete-property/dmas;
340	/delete-property/dma-names;
341
342	pwm {
343		pinctrl-0 = <&pwm1_pins_d>;
344		pinctrl-1 = <&pwm1_sleep_pins_d>;
345		pinctrl-names = "default", "sleep";
346		status = "okay";
347	};
348};
349
350&uart4 {
351	pinctrl-names = "default", "sleep", "idle";
352	pinctrl-0 = <&uart4_pins_e>;
353	pinctrl-1 = <&uart4_idle_pins_e>;
354	pinctrl-2 = <&uart4_sleep_pins_e>;
355	/delete-property/dmas;
356	/delete-property/dma-names;
357	status = "okay";
358};
359
360&uart7 {
361	pinctrl-names = "default";
362	pinctrl-0 = <&uart7_pins_d>;
363	uart-has-rtscts;
364	status = "okay";
365
366	bluetooth {
367		compatible = "brcm,bcm43438-bt";
368		shutdown-gpios = <&gpioe 11 GPIO_ACTIVE_HIGH>; /* BT_REG_ON */
369		max-speed = <4000000>;
370		vbat-supply = <&v3v3>;
371		vddio-supply = <&v3v3>;
372		interrupt-parent = <&gpiog>;
373		interrupts = <12 IRQ_TYPE_EDGE_RISING>; /* BT_HOST_WAKE */
374		interrupt-names = "host-wakeup";
375	};
376};
377