xref: /optee_os/core/arch/arm/dts/stm32mp157a-dk1.dts (revision 5a913ee74d3c71af2a2860ce8a4e7aeab2916f9b)
1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/*
3 * Copyright (C) STMicroelectronics 2019 - All Rights Reserved
4 * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics.
5 */
6
7/dts-v1/;
8
9#include "stm32mp157c.dtsi"
10#include "stm32mp157-pinctrl.dtsi"
11#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/mfd/st,stpmic1.h>
13
14/ {
15	model = "STMicroelectronics STM32MP157A-DK1 Discovery Board";
16	compatible = "st,stm32mp157a-dk1", "st,stm32mp157";
17
18	aliases {
19		ethernet0 = &ethernet0;
20		serial0 = &uart4;
21	};
22
23	chosen {
24		stdout-path = "serial0:115200n8";
25	};
26
27	memory@c0000000 {
28		reg = <0xc0000000 0x20000000>;
29	};
30
31	led {
32		compatible = "gpio-leds";
33		blue {
34			label = "heartbeat";
35			gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>;
36			linux,default-trigger = "heartbeat";
37			default-state = "off";
38		};
39	};
40};
41
42&cec {
43	pinctrl-names = "default", "sleep";
44	pinctrl-0 = <&cec_pins_b>;
45	pinctrl-1 = <&cec_pins_sleep_b>;
46	status = "okay";
47};
48
49&ethernet0 {
50	status = "okay";
51	pinctrl-0 = <&ethernet0_rgmii_pins_a>;
52	pinctrl-1 = <&ethernet0_rgmii_pins_sleep_a>;
53	pinctrl-names = "default", "sleep";
54	phy-mode = "rgmii";
55	max-speed = <1000>;
56	phy-handle = <&phy0>;
57
58	mdio0 {
59		#address-cells = <1>;
60		#size-cells = <0>;
61		compatible = "snps,dwmac-mdio";
62		phy0: ethernet-phy@0 {
63			reg = <0>;
64		};
65	};
66};
67
68
69&i2c4 {
70	pinctrl-names = "default";
71	pinctrl-0 = <&i2c4_pins_a>;
72	i2c-scl-rising-time-ns = <185>;
73	i2c-scl-falling-time-ns = <20>;
74	status = "okay";
75	/* spare dmas for other usage */
76	/delete-property/dmas;
77	/delete-property/dma-names;
78
79	pmic: stpmic@33 {
80		compatible = "st,stpmic1";
81		reg = <0x33>;
82		interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
83		interrupt-controller;
84		#interrupt-cells = <2>;
85		status = "okay";
86
87		regulators {
88			compatible = "st,stpmic1-regulators";
89			ldo1-supply = <&v3v3>;
90			ldo3-supply = <&vdd_ddr>;
91			ldo6-supply = <&v3v3>;
92			pwr_sw1-supply = <&bst_out>;
93			pwr_sw2-supply = <&bst_out>;
94
95			vddcore: buck1 {
96				regulator-name = "vddcore";
97				regulator-min-microvolt = <800000>;
98				regulator-max-microvolt = <1350000>;
99				regulator-always-on;
100				regulator-initial-mode = <0>;
101				regulator-over-current-protection;
102			};
103
104			vdd_ddr: buck2 {
105				regulator-name = "vdd_ddr";
106				regulator-min-microvolt = <1350000>;
107				regulator-max-microvolt = <1350000>;
108				regulator-always-on;
109				regulator-initial-mode = <0>;
110				regulator-over-current-protection;
111			};
112
113			vdd: buck3 {
114				regulator-name = "vdd";
115				regulator-min-microvolt = <3300000>;
116				regulator-max-microvolt = <3300000>;
117				regulator-always-on;
118				st,mask-reset;
119				regulator-initial-mode = <0>;
120				regulator-over-current-protection;
121			};
122
123			v3v3: buck4 {
124				regulator-name = "v3v3";
125				regulator-min-microvolt = <3300000>;
126				regulator-max-microvolt = <3300000>;
127				regulator-always-on;
128				regulator-over-current-protection;
129				regulator-initial-mode = <0>;
130			};
131
132			v1v8_audio: ldo1 {
133				regulator-name = "v1v8_audio";
134				regulator-min-microvolt = <1800000>;
135				regulator-max-microvolt = <1800000>;
136				regulator-always-on;
137				interrupts = <IT_CURLIM_LDO1 0>;
138			};
139
140			v3v3_hdmi: ldo2 {
141				regulator-name = "v3v3_hdmi";
142				regulator-min-microvolt = <3300000>;
143				regulator-max-microvolt = <3300000>;
144				regulator-always-on;
145				interrupts = <IT_CURLIM_LDO2 0>;
146			};
147
148			vtt_ddr: ldo3 {
149				regulator-name = "vtt_ddr";
150				regulator-min-microvolt = <500000>;
151				regulator-max-microvolt = <750000>;
152				regulator-always-on;
153				regulator-over-current-protection;
154			};
155
156			vdd_usb: ldo4 {
157				regulator-name = "vdd_usb";
158				regulator-min-microvolt = <3300000>;
159				regulator-max-microvolt = <3300000>;
160				interrupts = <IT_CURLIM_LDO4 0>;
161			};
162
163			vdda: ldo5 {
164				regulator-name = "vdda";
165				regulator-min-microvolt = <2900000>;
166				regulator-max-microvolt = <2900000>;
167				interrupts = <IT_CURLIM_LDO5 0>;
168				regulator-boot-on;
169			};
170
171			v1v2_hdmi: ldo6 {
172				regulator-name = "v1v2_hdmi";
173				regulator-min-microvolt = <1200000>;
174				regulator-max-microvolt = <1200000>;
175				regulator-always-on;
176				interrupts = <IT_CURLIM_LDO6 0>;
177			};
178
179			vref_ddr: vref_ddr {
180				regulator-name = "vref_ddr";
181				regulator-always-on;
182				regulator-over-current-protection;
183			};
184
185			 bst_out: boost {
186				regulator-name = "bst_out";
187				interrupts = <IT_OCP_BOOST 0>;
188			 };
189
190			vbus_otg: pwr_sw1 {
191				regulator-name = "vbus_otg";
192				interrupts = <IT_OCP_OTG 0>;
193			 };
194
195			 vbus_sw: pwr_sw2 {
196				regulator-name = "vbus_sw";
197				interrupts = <IT_OCP_SWOUT 0>;
198				regulator-active-discharge;
199			 };
200		};
201
202		onkey {
203			compatible = "st,stpmic1-onkey";
204			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
205			interrupt-names = "onkey-falling", "onkey-rising";
206			power-off-time-sec = <10>;
207			status = "okay";
208		};
209
210		watchdog {
211			compatible = "st,stpmic1-wdt";
212			status = "disabled";
213		};
214	};
215};
216
217&ipcc {
218	status = "okay";
219};
220
221&iwdg2 {
222	timeout-sec = <32>;
223	status = "okay";
224};
225
226&rng1 {
227	status = "okay";
228};
229
230&rtc {
231	status = "okay";
232};
233
234&sdmmc1 {
235	pinctrl-names = "default", "opendrain", "sleep";
236	pinctrl-0 = <&sdmmc1_b4_pins_a>;
237	pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
238	pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
239	broken-cd;
240	st,neg-edge;
241	bus-width = <4>;
242	vmmc-supply = <&v3v3>;
243	status = "okay";
244};
245
246&uart4 {
247	pinctrl-names = "default";
248	pinctrl-0 = <&uart4_pins_a>;
249	status = "okay";
250};
251
252&rcc {
253	status = "okay";
254	secure-status = "disable";
255};
256