Skip to content

Commit 34e0c78

Browse files
Marek Vasutatorgue
Marek Vasut
authored andcommitted
ARM: dts: stm32: Add DH Electronics DHCOM STM32MP1 SoM and PDK2 board
Add support for DH Electronics DHCOM SoM and PDK2 rev. 400 carrier board. This is an SoM with STM32MP157C and an evaluation kit. The baseboard provides Ethernet, UART, USB, CAN and optional display. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Alexandre Torgue <alexandre.torgue@st.com> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: Patrice Chotard <patrice.chotard@st.com> Cc: Patrick Delaunay <patrick.delaunay@st.com> Cc: linux-stm32@st-md-mailman.stormreply.com To: linux-arm-kernel@lists.infradead.org Signed-off-by: Alexandre Torgue <alexandre.torgue@st.com>
1 parent 238086e commit 34e0c78

File tree

3 files changed

+634
-0
lines changed

3 files changed

+634
-0
lines changed

arch/arm/boot/dts/Makefile

+1
Original file line numberDiff line numberDiff line change
@@ -1016,6 +1016,7 @@ dtb-$(CONFIG_ARCH_STM32) += \
10161016
stm32h743i-disco.dtb \
10171017
stm32mp157a-avenger96.dtb \
10181018
stm32mp157a-dk1.dtb \
1019+
stm32mp157c-dhcom-pdk2.dtb \
10191020
stm32mp157c-dk2.dtb \
10201021
stm32mp157c-ed1.dtb \
10211022
stm32mp157c-ev1.dtb
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,265 @@
1+
// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
2+
/*
3+
* Copyright (C) 2019 Marek Vasut <marex@denx.de>
4+
*/
5+
6+
#include "stm32mp157c-dhcom-som.dtsi"
7+
#include <dt-bindings/pwm/pwm.h>
8+
9+
/ {
10+
model = "STMicroelectronics STM32MP157C DHCOM Premium Developer Kit (2)";
11+
compatible = "dh,stm32mp157c-dhcom-pdk2", "st,stm32mp157";
12+
13+
aliases {
14+
serial0 = &uart4;
15+
serial1 = &usart3;
16+
serial2 = &uart8;
17+
ethernet0 = &ethernet0;
18+
};
19+
20+
chosen {
21+
stdout-path = "serial0:115200n8";
22+
};
23+
24+
clk_ext_audio_codec: clock-codec {
25+
compatible = "fixed-clock";
26+
#clock-cells = <0>;
27+
clock-frequency = <24000000>;
28+
};
29+
30+
display_bl: display-bl {
31+
compatible = "pwm-backlight";
32+
pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
33+
brightness-levels = <0 16 22 30 40 55 75 102 138 188 255>;
34+
default-brightness-level = <8>;
35+
enable-gpios = <&gpioi 0 GPIO_ACTIVE_HIGH>;
36+
status = "okay";
37+
};
38+
39+
ethernet_vio: vioregulator {
40+
compatible = "regulator-fixed";
41+
regulator-name = "vio";
42+
regulator-min-microvolt = <3300000>;
43+
regulator-max-microvolt = <3300000>;
44+
gpio = <&gpiog 3 GPIO_ACTIVE_LOW>;
45+
regulator-always-on;
46+
regulator-boot-on;
47+
};
48+
49+
panel {
50+
compatible = "edt,etm0700g0edh6";
51+
backlight = <&display_bl>;
52+
53+
port {
54+
lcd_panel_in: endpoint {
55+
remote-endpoint = <&lcd_display_out>;
56+
};
57+
};
58+
};
59+
60+
sound {
61+
compatible = "audio-graph-card";
62+
routing =
63+
"MIC_IN", "Capture",
64+
"Capture", "Mic Bias",
65+
"Playback", "HP_OUT";
66+
dais = <&sai2a_port &sai2b_port>;
67+
status = "okay";
68+
};
69+
};
70+
71+
&cec {
72+
pinctrl-names = "default";
73+
pinctrl-0 = <&cec_pins_a>;
74+
status = "okay";
75+
};
76+
77+
&ethernet0 {
78+
status = "okay";
79+
pinctrl-0 = <&ethernet0_rmii_pins_a>;
80+
pinctrl-1 = <&ethernet0_rmii_pins_sleep_a>;
81+
pinctrl-names = "default", "sleep";
82+
phy-mode = "rmii";
83+
max-speed = <100>;
84+
phy-handle = <&phy0>;
85+
st,eth-ref-clk-sel;
86+
phy-reset-gpios = <&gpioh 15 GPIO_ACTIVE_LOW>;
87+
88+
mdio0 {
89+
#address-cells = <1>;
90+
#size-cells = <0>;
91+
compatible = "snps,dwmac-mdio";
92+
93+
phy0: ethernet-phy@1 {
94+
reg = <1>;
95+
};
96+
};
97+
};
98+
99+
&i2c5 {
100+
pinctrl-names = "default";
101+
pinctrl-0 = <&i2c5_pins_a>;
102+
i2c-scl-rising-time-ns = <185>;
103+
i2c-scl-falling-time-ns = <20>;
104+
status = "okay";
105+
/* spare dmas for other usage */
106+
/delete-property/dmas;
107+
/delete-property/dma-names;
108+
109+
sgtl5000: codec@a {
110+
compatible = "fsl,sgtl5000";
111+
reg = <0x0a>;
112+
#sound-dai-cells = <0>;
113+
clocks = <&clk_ext_audio_codec>;
114+
VDDA-supply = <&v3v3>;
115+
VDDIO-supply = <&vdd>;
116+
117+
sgtl5000_port: port {
118+
#address-cells = <1>;
119+
#size-cells = <0>;
120+
121+
sgtl5000_tx_endpoint: endpoint@0 {
122+
reg = <0>;
123+
remote-endpoint = <&sai2a_endpoint>;
124+
frame-master;
125+
bitclock-master;
126+
};
127+
128+
sgtl5000_rx_endpoint: endpoint@1 {
129+
reg = <1>;
130+
remote-endpoint = <&sai2b_endpoint>;
131+
frame-master;
132+
bitclock-master;
133+
};
134+
};
135+
136+
};
137+
138+
polytouch@38 {
139+
compatible = "edt,edt-ft5x06";
140+
reg = <0x38>;
141+
interrupt-parent = <&gpiog>;
142+
interrupts = <2 IRQ_TYPE_EDGE_FALLING>; /* GPIO E */
143+
linux,wakeup;
144+
};
145+
};
146+
147+
&ltdc {
148+
pinctrl-names = "default", "sleep";
149+
pinctrl-0 = <&ltdc_pins_b>;
150+
pinctrl-1 = <&ltdc_pins_sleep_b>;
151+
status = "okay";
152+
153+
port {
154+
lcd_display_out: endpoint {
155+
remote-endpoint = <&lcd_panel_in>;
156+
};
157+
};
158+
};
159+
160+
&m_can1 {
161+
pinctrl-names = "default", "sleep";
162+
pinctrl-0 = <&m_can1_pins_a>;
163+
pinctrl-1 = <&m_can1_sleep_pins_a>;
164+
status = "okay";
165+
};
166+
167+
&sai2 {
168+
clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
169+
clock-names = "pclk", "x8k", "x11k";
170+
pinctrl-names = "default", "sleep";
171+
pinctrl-0 = <&sai2a_pins_b &sai2b_pins_b>;
172+
pinctrl-1 = <&sai2a_sleep_pins_b &sai2b_sleep_pins_b>;
173+
status = "okay";
174+
175+
sai2a: audio-controller@4400b004 {
176+
#clock-cells = <0>;
177+
dma-names = "tx";
178+
clocks = <&rcc SAI2_K>;
179+
clock-names = "sai_ck";
180+
status = "okay";
181+
182+
sai2a_port: port {
183+
sai2a_endpoint: endpoint {
184+
remote-endpoint = <&sgtl5000_tx_endpoint>;
185+
format = "i2s";
186+
mclk-fs = <512>;
187+
dai-tdm-slot-num = <2>;
188+
dai-tdm-slot-width = <16>;
189+
};
190+
};
191+
};
192+
193+
sai2b: audio-controller@4400b024 {
194+
dma-names = "rx";
195+
st,sync = <&sai2a 2>;
196+
clocks = <&rcc SAI2_K>, <&sai2a>;
197+
clock-names = "sai_ck", "MCLK";
198+
status = "okay";
199+
200+
sai2b_port: port {
201+
sai2b_endpoint: endpoint {
202+
remote-endpoint = <&sgtl5000_rx_endpoint>;
203+
format = "i2s";
204+
mclk-fs = <512>;
205+
dai-tdm-slot-num = <2>;
206+
dai-tdm-slot-width = <16>;
207+
};
208+
};
209+
};
210+
};
211+
212+
&timers2 {
213+
/* spare dmas for other usage (un-delete to enable pwm capture) */
214+
/delete-property/dmas;
215+
/delete-property/dma-names;
216+
status = "okay";
217+
pwm2: pwm {
218+
pinctrl-0 = <&pwm2_pins_a>;
219+
pinctrl-names = "default";
220+
status = "okay";
221+
};
222+
timer@1 {
223+
status = "okay";
224+
};
225+
};
226+
227+
&usart3 {
228+
pinctrl-names = "default";
229+
pinctrl-0 = <&usart3_pins_a>;
230+
status = "okay";
231+
};
232+
233+
&uart8 {
234+
pinctrl-names = "default";
235+
pinctrl-0 = <&uart8_pins_a>;
236+
status = "okay";
237+
};
238+
239+
&usbh_ehci {
240+
phys = <&usbphyc_port0>;
241+
status = "okay";
242+
};
243+
244+
&usbotg_hs {
245+
dr_mode = "peripheral";
246+
phys = <&usbphyc_port1 0>;
247+
phy-names = "usb2-phy";
248+
status = "okay";
249+
};
250+
251+
&usbphyc {
252+
status = "okay";
253+
};
254+
255+
&usbphyc_port0 {
256+
phy-supply = <&vdd_usb>;
257+
vdda1v1-supply = <&reg11>;
258+
vdda1v8-supply = <&reg18>;
259+
};
260+
261+
&usbphyc_port1 {
262+
phy-supply = <&vdd_usb>;
263+
vdda1v1-supply = <&reg11>;
264+
vdda1v8-supply = <&reg18>;
265+
};

0 commit comments

Comments
 (0)