blob: 5f85598cc7c6bc8edccc24a67ddb5ff281c37145 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (C) 2020 Manivannan Sadhasivam
4 */
5
6/dts-v1/;
7
8#include "stm32mp157.dtsi"
9#include "stm32mp15-pinctrl.dtsi"
10#include "stm32mp15xxac-pinctrl.dtsi"
11#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/mfd/st,stpmic1.h>
13
14/ {
15 aliases {
16 mmc0 = &sdmmc1;
17 serial0 = &uart4;
18 serial1 = &uart7;
19 serial2 = &usart2;
20 spi0 = &spi4;
21 };
22
23 chosen {
24 stdout-path = "serial1:115200n8";
25 };
26
27 memory@c0000000 {
28 device_type = "memory";
29 reg = <0xc0000000 0x10000000>;
30 };
31
32 led {
33 compatible = "gpio-leds";
34
35 led1 {
36 label = "green:user1";
37 gpios = <&gpioa 13 GPIO_ACTIVE_HIGH>;
38 linux,default-trigger = "heartbeat";
39 default-state = "off";
40 };
41
42 led2 {
43 label = "green:user2";
44 gpios = <&gpioh 3 GPIO_ACTIVE_HIGH>;
45 linux,default-trigger = "mmc0";
46 default-state = "off";
47 };
48
49 led3 {
50 label = "green:user3";
51 gpios = <&gpioh 2 GPIO_ACTIVE_HIGH>;
52 linux,default-trigger = "mmc1";
53 default-state = "off";
54 };
55
56 led4 {
57 label = "green:user4";
58 gpios = <&gpiof 12 GPIO_ACTIVE_HIGH>;
59 linux,default-trigger = "none";
60 default-state = "off";
61 panic-indicator;
62 };
63 };
64
65 sd_switch: regulator-sd_switch {
66 compatible = "regulator-gpio";
67 regulator-name = "sd_switch";
68 regulator-min-microvolt = <1800000>;
69 regulator-max-microvolt = <2900000>;
70 regulator-type = "voltage";
71 regulator-always-on;
72
73 gpios = <&gpioa 8 GPIO_ACTIVE_HIGH>;
74 gpios-states = <0>;
75 states = <1800000 0x1>,
76 <2900000 0x0>;
77 };
78};
79
80/* Only headless mode is supported */
81&gpu {
82 status = "disabled";
83};
84
85/* LS-I2C0 */
86&i2c2 {
87 pinctrl-names = "default";
88 pinctrl-0 = <&i2c2_pins_a>;
89 i2c-scl-rising-time-ns = <1000>;
90 i2c-scl-falling-time-ns = <300>;
91 status = "okay";
92 /delete-property/dmas;
93 /delete-property/dma-names;
94};
95
96&i2c4 {
97 pinctrl-names = "default";
98 pinctrl-0 = <&i2c4_pins_a>;
99 i2c-scl-rising-time-ns = <185>;
100 i2c-scl-falling-time-ns = <20>;
101 status = "okay";
102 /delete-property/dmas;
103 /delete-property/dma-names;
104
105 pmic: stpmic@33 {
106 compatible = "st,stpmic1";
107 reg = <0x33>;
108 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
109 interrupt-controller;
110 #interrupt-cells = <2>;
111 status = "okay";
112
113 regulators {
114 compatible = "st,stpmic1-regulators";
115
116 ldo1-supply = <&v3v3>;
117 ldo2-supply = <&v3v3>;
118 ldo3-supply = <&vdd_ddr>;
119 ldo5-supply = <&v3v3>;
120 ldo6-supply = <&v3v3>;
121 pwr_sw1-supply = <&bst_out>;
122 pwr_sw2-supply = <&bst_out>;
123
124 vddcore: buck1 {
125 regulator-name = "vddcore";
126 regulator-min-microvolt = <1200000>;
127 regulator-max-microvolt = <1350000>;
128 regulator-always-on;
129 regulator-initial-mode = <0>;
130 regulator-over-current-protection;
131 };
132
133 vdd_ddr: buck2 {
134 regulator-name = "vdd_ddr";
135 regulator-min-microvolt = <1500000>;
136 regulator-max-microvolt = <1500000>;
137 regulator-always-on;
138 regulator-initial-mode = <0>;
139 regulator-over-current-protection;
140 };
141
142 vdd: buck3 {
143 regulator-name = "vdd";
144 regulator-min-microvolt = <1800000>;
145 regulator-max-microvolt = <1800000>;
146 regulator-always-on;
147 st,mask-reset;
148 regulator-initial-mode = <0>;
149 regulator-over-current-protection;
150 };
151
152 v3v3: buck4 {
153 regulator-name = "v3v3";
154 regulator-min-microvolt = <3300000>;
155 regulator-max-microvolt = <3300000>;
156 regulator-always-on;
157 regulator-over-current-protection;
158 regulator-initial-mode = <0>;
159 };
160
161 vdda: ldo1 {
162 regulator-name = "vdda";
163 regulator-min-microvolt = <1800000>;
164 regulator-max-microvolt = <1800000>;
165 regulator-always-on;
166 interrupts = <IT_CURLIM_LDO1 0>;
167 };
168
169 v2v9: ldo2 {
170 regulator-name = "v2v9";
171 regulator-min-microvolt = <2900000>;
172 regulator-max-microvolt = <2900000>;
173 regulator-always-on;
174 interrupts = <IT_CURLIM_LDO2 0>;
175 };
176
177 vtt_ddr: ldo3 {
178 regulator-name = "vtt_ddr";
179 regulator-min-microvolt = <500000>;
180 regulator-max-microvolt = <750000>;
181 regulator-always-on;
182 regulator-over-current-protection;
183 };
184
185 vdd_usb: ldo4 {
186 regulator-name = "vdd_usb";
187 interrupts = <IT_CURLIM_LDO4 0>;
188 };
189
190 vdd_sd: ldo5 {
191 regulator-name = "vdd_sd";
192 regulator-min-microvolt = <2900000>;
193 regulator-max-microvolt = <2900000>;
194 interrupts = <IT_CURLIM_LDO5 0>;
195 regulator-boot-on;
196 };
197
198 v1v8: ldo6 {
199 regulator-name = "v1v8";
200 regulator-min-microvolt = <1800000>;
201 regulator-max-microvolt = <1800000>;
202 regulator-always-on;
203 interrupts = <IT_CURLIM_LDO6 0>;
204 };
205
206 vref_ddr: vref_ddr {
207 regulator-name = "vref_ddr";
208 regulator-always-on;
209 };
210
211 bst_out: boost {
212 regulator-name = "bst_out";
213 interrupts = <IT_OCP_BOOST 0>;
214 };
215
216 vbus_otg: pwr_sw1 {
217 regulator-name = "vbus_otg";
218 interrupts = <IT_OCP_OTG 0>;
219 regulator-active-discharge = <1>;
220 };
221
222 vbus_sw: pwr_sw2 {
223 regulator-name = "vbus_sw";
224 interrupts = <IT_OCP_SWOUT 0>;
225 regulator-active-discharge = <1>;
226 };
227 };
228
229 onkey {
230 compatible = "st,stpmic1-onkey";
231 interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>;
232 interrupt-names = "onkey-falling", "onkey-rising";
233 status = "okay";
234 };
235
236 watchdog {
237 compatible = "st,stpmic1-wdt";
238 status = "disabled";
239 };
240 };
241};
242
243&iwdg2 {
244 timeout-sec = <32>;
245 status = "okay";
246};
247
248&pwr_regulators {
249 vdd-supply = <&vdd>;
250 vdd_3v3_usbfs-supply = <&vdd_usb>;
251};
252
253&rng1 {
254 status = "okay";
255};
256
257&rtc {
258 status = "okay";
259};
260
261&sdmmc1 {
262 pinctrl-names = "default", "opendrain", "sleep";
263 pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_b>;
264 pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_b>;
265 pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_b>;
266 broken-cd;
267 disable-wp;
268 st,sig-dir;
269 st,neg-edge;
270 st,use-ckin;
271 bus-width = <4>;
272 vmmc-supply = <&vdd_sd>;
273 vqmmc-supply = <&sd_switch>;
274 status = "okay";
275};
276
277/* LS-SPI0 */
278&spi4 {
279 pinctrl-names = "default";
280 pinctrl-0 = <&spi4_pins_a>;
281 cs-gpios = <&gpioe 11 GPIO_ACTIVE_HIGH>;
282 status = "okay";
283};
284
285/* BG96 */
286&usart2 {
287 pinctrl-names = "default", "sleep";
288 pinctrl-0 = <&usart2_pins_b>;
289 pinctrl-1 = <&usart2_sleep_pins_b>;
290 uart-has-rtscts;
291 /delete-property/dmas;
292 /delete-property/dma-names;
293 status = "okay";
294};
295
296/* LS-UART0 */
297&uart4 {
298 pinctrl-names = "default";
299 pinctrl-0 = <&uart4_pins_c>;
300 uart-has-rtscts;
301 /delete-property/dmas;
302 /delete-property/dma-names;
303 status = "okay";
304};
305
306/* Debug console */
307&uart7 {
308 pinctrl-names = "default";
309 pinctrl-0 = <&uart7_pins_b>;
310 /delete-property/dmas;
311 /delete-property/dma-names;
312 status = "okay";
313};
314
315&usbh_ehci {
316 phys = <&usbphyc_port0>;
317 phy-names = "usb";
318 status = "okay";
319};
320
321&usbotg_hs {
322 dr_mode = "peripheral";
323 pinctrl-0 = <&usbotg_hs_pins_a>;
324 pinctrl-names = "default";
325 phy-names = "usb2-phy";
326 phys = <&usbphyc_port1 0>;
327 vbus-supply = <&vbus_otg>;
328 status = "okay";
329};
330
331&usbphyc {
332 status = "okay";
333};
334
335&usbphyc_port0 {
336 phy-supply = <&vdd_usb>;
337};
338
339&usbphyc_port1 {
340 phy-supply = <&vdd_usb>;
341};