blob: 0882765d0c9a7f1535ef6c9de697f8b5696bfbab [file] [log] [blame]
Patrice Chotard23661602019-02-12 16:50:38 +01001// 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&ethernet0 {
43 status = "okay";
44 pinctrl-0 = <&ethernet0_rgmii_pins_a>;
45 pinctrl-1 = <&ethernet0_rgmii_pins_sleep_a>;
46 pinctrl-names = "default", "sleep";
47 phy-mode = "rgmii";
48 max-speed = <1000>;
49 phy-handle = <&phy0>;
50
51 mdio0 {
52 #address-cells = <1>;
53 #size-cells = <0>;
54 compatible = "snps,dwmac-mdio";
55 phy0: ethernet-phy@0 {
56 reg = <0>;
57 };
58 };
59};
60
61&i2c4 {
62 pinctrl-names = "default";
63 pinctrl-0 = <&i2c4_pins_a>;
64 i2c-scl-rising-time-ns = <185>;
65 i2c-scl-falling-time-ns = <20>;
66 status = "okay";
67 /delete-property/dmas;
68 /delete-property/dma-names;
69
70 pmic: stpmic@33 {
71 compatible = "st,stpmic1";
72 reg = <0x33>;
73 interrupt-controller;
74 #interrupt-cells = <2>;
75 status = "okay";
76
77 st,main-control-register = <0x04>;
78 st,vin-control-register = <0xc0>;
79 st,usb-control-register = <0x20>;
80
81 regulators {
82 compatible = "st,stpmic1-regulators";
83
84 ldo1-supply = <&v3v3>;
85 ldo3-supply = <&vdd_ddr>;
86 ldo6-supply = <&v3v3>;
87 pwr_sw1-supply = <&bst_out>;
88 pwr_sw2-supply = <&bst_out>;
89
90 vddcore: buck1 {
91 regulator-name = "vddcore";
92 regulator-min-microvolt = <1200000>;
93 regulator-max-microvolt = <1350000>;
94 regulator-always-on;
95 regulator-initial-mode = <0>;
96 regulator-over-current-protection;
97 };
98
99 vdd_ddr: buck2 {
100 regulator-name = "vdd_ddr";
101 regulator-min-microvolt = <1350000>;
102 regulator-max-microvolt = <1350000>;
103 regulator-always-on;
104 regulator-initial-mode = <0>;
105 regulator-over-current-protection;
106 };
107
108 vdd: buck3 {
109 regulator-name = "vdd";
110 regulator-min-microvolt = <3300000>;
111 regulator-max-microvolt = <3300000>;
112 regulator-always-on;
113 st,mask-reset;
114 regulator-initial-mode = <0>;
115 regulator-over-current-protection;
116 };
117
118 v3v3: buck4 {
119 regulator-name = "v3v3";
120 regulator-min-microvolt = <3300000>;
121 regulator-max-microvolt = <3300000>;
122 regulator-always-on;
123 regulator-over-current-protection;
124 regulator-initial-mode = <0>;
125 };
126
127 v1v8_audio: ldo1 {
128 regulator-name = "v1v8_audio";
129 regulator-min-microvolt = <1800000>;
130 regulator-max-microvolt = <1800000>;
131 regulator-always-on;
132 interrupts = <IT_CURLIM_LDO1 0>;
133 };
134
135 v3v3_hdmi: ldo2 {
136 regulator-name = "v3v3_hdmi";
137 regulator-min-microvolt = <3300000>;
138 regulator-max-microvolt = <3300000>;
139 regulator-always-on;
140 interrupts = <IT_CURLIM_LDO2 0>;
141 };
142
143 vtt_ddr: ldo3 {
144 regulator-name = "vtt_ddr";
145 regulator-min-microvolt = <500000>;
146 regulator-max-microvolt = <750000>;
147 regulator-always-on;
148 regulator-over-current-protection;
149 };
150
151 vdd_usb: ldo4 {
152 regulator-name = "vdd_usb";
153 regulator-min-microvolt = <3300000>;
154 regulator-max-microvolt = <3300000>;
155 interrupts = <IT_CURLIM_LDO4 0>;
156 };
157
158 vdda: ldo5 {
159 regulator-name = "vdda";
160 regulator-min-microvolt = <2900000>;
161 regulator-max-microvolt = <2900000>;
162 interrupts = <IT_CURLIM_LDO5 0>;
163 regulator-boot-on;
164 };
165
166 v1v2_hdmi: ldo6 {
167 regulator-name = "v1v2_hdmi";
168 regulator-min-microvolt = <1200000>;
169 regulator-max-microvolt = <1200000>;
170 regulator-always-on;
171 interrupts = <IT_CURLIM_LDO6 0>;
172
173 };
174
175 vref_ddr: vref_ddr {
176 regulator-name = "vref_ddr";
177 regulator-always-on;
178 regulator-over-current-protection;
179 };
180
181 bst_out: boost {
182 regulator-name = "bst_out";
183 interrupts = <IT_OCP_BOOST 0>;
184 };
185
186 vbus_otg: pwr_sw1 {
187 regulator-name = "vbus_otg";
188 interrupts = <IT_OCP_OTG 0>;
189 regulator-active-discharge;
190 };
191
192 vbus_sw: pwr_sw2 {
193 regulator-name = "vbus_sw";
194 interrupts = <IT_OCP_SWOUT 0>;
195 regulator-active-discharge;
196 };
197 };
198
199 onkey {
200 compatible = "st,stpmic1-onkey";
201 interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>;
202 interrupt-names = "onkey-falling", "onkey-rising";
203 status = "okay";
204 };
205
206 watchdog {
207 compatible = "st,stpmic1-wdt";
208 status = "disabled";
209 };
210 };
211};
212
213&iwdg2 {
214 timeout-sec = <32>;
215 status = "okay";
216};
217
218&pwr {
219 pwr-supply = <&vdd>;
220};
221
222&rng1 {
223 status = "okay";
224};
225
226&rtc {
227 status = "okay";
228};
229
230&sdmmc1 {
231 pinctrl-names = "default";
232 pinctrl-0 = <&sdmmc1_b4_pins_a>;
233 broken-cd;
234 st,neg-edge;
235 bus-width = <4>;
236 vmmc-supply = <&v3v3>;
237 status = "okay";
238};
239
240&uart4 {
241 pinctrl-names = "default";
242 pinctrl-0 = <&uart4_pins_a>;
243 status = "okay";
244};
245
246&usbh_ehci {
247 phys = <&usbphyc_port0>;
248 phy-names = "usb";
249 status = "okay";
250};
251
252&usbphyc {
253 vdd3v3-supply = <&vdd_usb>;
254 status = "okay";
255};
256
257&vrefbuf {
258 regulator-min-microvolt = <2500000>;
259 regulator-max-microvolt = <2500000>;
260 vdda-supply = <&vdd>;
261 status = "okay";
262};