Merge branch 'topic/nhlt' into for-next
[linux-2.6-microblaze.git] / arch / arm / boot / dts / stm32mp157c-dhcom-pdk2.dts
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 };