1724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
2724ba675SRob Herring/*
3724ba675SRob Herring * Copyright (C) Linaro Ltd 2019 - All Rights Reserved
4724ba675SRob Herring * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
5724ba675SRob Herring * Copyright (C) 2020 Marek Vasut <marex@denx.de>
6724ba675SRob Herring */
7724ba675SRob Herring
8724ba675SRob Herring#include "stm32mp15-pinctrl.dtsi"
9724ba675SRob Herring#include "stm32mp15xxac-pinctrl.dtsi"
10724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
11724ba675SRob Herring#include <dt-bindings/mfd/st,stpmic1.h>
12724ba675SRob Herring
13724ba675SRob Herring/ {
14724ba675SRob Herring	aliases {
15724ba675SRob Herring		spi0 = &qspi;
16724ba675SRob Herring	};
17724ba675SRob Herring
18724ba675SRob Herring	memory@c0000000 {
19724ba675SRob Herring		device_type = "memory";
20724ba675SRob Herring		reg = <0xc0000000 0x40000000>;
21724ba675SRob Herring	};
22724ba675SRob Herring
23724ba675SRob Herring	reserved-memory {
24724ba675SRob Herring		#address-cells = <1>;
25724ba675SRob Herring		#size-cells = <1>;
26724ba675SRob Herring		ranges;
27724ba675SRob Herring
28724ba675SRob Herring		mcuram2: mcuram2@10000000 {
29724ba675SRob Herring			compatible = "shared-dma-pool";
30724ba675SRob Herring			reg = <0x10000000 0x40000>;
31724ba675SRob Herring			no-map;
32724ba675SRob Herring		};
33724ba675SRob Herring
34724ba675SRob Herring		vdev0vring0: vdev0vring0@10040000 {
35724ba675SRob Herring			compatible = "shared-dma-pool";
36724ba675SRob Herring			reg = <0x10040000 0x1000>;
37724ba675SRob Herring			no-map;
38724ba675SRob Herring		};
39724ba675SRob Herring
40724ba675SRob Herring		vdev0vring1: vdev0vring1@10041000 {
41724ba675SRob Herring			compatible = "shared-dma-pool";
42724ba675SRob Herring			reg = <0x10041000 0x1000>;
43724ba675SRob Herring			no-map;
44724ba675SRob Herring		};
45724ba675SRob Herring
46724ba675SRob Herring		vdev0buffer: vdev0buffer@10042000 {
47724ba675SRob Herring			compatible = "shared-dma-pool";
48724ba675SRob Herring			reg = <0x10042000 0x4000>;
49724ba675SRob Herring			no-map;
50724ba675SRob Herring		};
51724ba675SRob Herring
52724ba675SRob Herring		mcuram: mcuram@30000000 {
53724ba675SRob Herring			compatible = "shared-dma-pool";
54724ba675SRob Herring			reg = <0x30000000 0x40000>;
55724ba675SRob Herring			no-map;
56724ba675SRob Herring		};
57724ba675SRob Herring
58724ba675SRob Herring		retram: retram@38000000 {
59724ba675SRob Herring			compatible = "shared-dma-pool";
60724ba675SRob Herring			reg = <0x38000000 0x10000>;
61724ba675SRob Herring			no-map;
62724ba675SRob Herring		};
63724ba675SRob Herring	};
64724ba675SRob Herring};
65724ba675SRob Herring
66724ba675SRob Herring&crc1 {
67724ba675SRob Herring	status = "okay";
68724ba675SRob Herring};
69724ba675SRob Herring
70724ba675SRob Herring&dts {
71724ba675SRob Herring	status = "okay";
72724ba675SRob Herring};
73724ba675SRob Herring
74724ba675SRob Herring&i2c4 {
75724ba675SRob Herring	pinctrl-names = "default";
76724ba675SRob Herring	pinctrl-0 = <&i2c4_pins_a>;
77724ba675SRob Herring	i2c-scl-rising-time-ns = <185>;
78724ba675SRob Herring	i2c-scl-falling-time-ns = <20>;
79724ba675SRob Herring	status = "okay";
80724ba675SRob Herring	/delete-property/dmas;
81724ba675SRob Herring	/delete-property/dma-names;
82724ba675SRob Herring
83724ba675SRob Herring	pmic: stpmic@33 {
84724ba675SRob Herring		compatible = "st,stpmic1";
85724ba675SRob Herring		reg = <0x33>;
86724ba675SRob Herring		interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
87724ba675SRob Herring		interrupt-controller;
88724ba675SRob Herring		#interrupt-cells = <2>;
89724ba675SRob Herring		status = "okay";
90724ba675SRob Herring
91724ba675SRob Herring		regulators {
92724ba675SRob Herring			compatible = "st,stpmic1-regulators";
93724ba675SRob Herring
94724ba675SRob Herring			ldo1-supply = <&v3v3>;
95724ba675SRob Herring			ldo2-supply = <&v3v3>;
96724ba675SRob Herring			ldo3-supply = <&vdd_ddr>;
97724ba675SRob Herring			ldo5-supply = <&v3v3>;
98724ba675SRob Herring			ldo6-supply = <&v3v3>;
99724ba675SRob Herring			pwr_sw1-supply = <&bst_out>;
100724ba675SRob Herring			pwr_sw2-supply = <&bst_out>;
101724ba675SRob Herring
102724ba675SRob Herring			vddcore: buck1 {
103724ba675SRob Herring				regulator-name = "vddcore";
104724ba675SRob Herring				regulator-min-microvolt = <1200000>;
105724ba675SRob Herring				regulator-max-microvolt = <1350000>;
106724ba675SRob Herring				regulator-always-on;
107724ba675SRob Herring				regulator-initial-mode = <0>;
108724ba675SRob Herring				regulator-over-current-protection;
109724ba675SRob Herring			};
110724ba675SRob Herring
111724ba675SRob Herring			vdd_ddr: buck2 {
112724ba675SRob Herring				regulator-name = "vdd_ddr";
113724ba675SRob Herring				regulator-min-microvolt = <1350000>;
114724ba675SRob Herring				regulator-max-microvolt = <1350000>;
115724ba675SRob Herring				regulator-always-on;
116724ba675SRob Herring				regulator-initial-mode = <0>;
117724ba675SRob Herring				regulator-over-current-protection;
118724ba675SRob Herring			};
119724ba675SRob Herring
120724ba675SRob Herring			vdd: buck3 {
121724ba675SRob Herring				regulator-name = "vdd";
122724ba675SRob Herring				regulator-min-microvolt = <3300000>;
123724ba675SRob Herring				regulator-max-microvolt = <3300000>;
124724ba675SRob Herring				regulator-always-on;
125724ba675SRob Herring				regulator-initial-mode = <0>;
126724ba675SRob Herring				regulator-over-current-protection;
127724ba675SRob Herring			};
128724ba675SRob Herring
129724ba675SRob Herring			v3v3: buck4 {
130724ba675SRob Herring				regulator-name = "v3v3";
131724ba675SRob Herring				regulator-min-microvolt = <3300000>;
132724ba675SRob Herring				regulator-max-microvolt = <3300000>;
133724ba675SRob Herring				regulator-always-on;
134724ba675SRob Herring				regulator-over-current-protection;
135724ba675SRob Herring				regulator-initial-mode = <0>;
136724ba675SRob Herring			};
137724ba675SRob Herring
138724ba675SRob Herring			vdda: ldo1 {
139724ba675SRob Herring				regulator-name = "vdda";
140724ba675SRob Herring				regulator-min-microvolt = <2900000>;
141724ba675SRob Herring				regulator-max-microvolt = <2900000>;
142724ba675SRob Herring				interrupts = <IT_CURLIM_LDO1 0>;
143724ba675SRob Herring			};
144724ba675SRob Herring
145724ba675SRob Herring			v2v8: ldo2 {
146724ba675SRob Herring				regulator-name = "v2v8";
147724ba675SRob Herring				regulator-min-microvolt = <2800000>;
148724ba675SRob Herring				regulator-max-microvolt = <2800000>;
149724ba675SRob Herring				interrupts = <IT_CURLIM_LDO2 0>;
150724ba675SRob Herring			};
151724ba675SRob Herring
152724ba675SRob Herring			vtt_ddr: ldo3 {
153724ba675SRob Herring				regulator-name = "vtt_ddr";
154724ba675SRob Herring				regulator-min-microvolt = <500000>;
155724ba675SRob Herring				regulator-max-microvolt = <750000>;
156724ba675SRob Herring				regulator-always-on;
157724ba675SRob Herring				regulator-over-current-protection;
158724ba675SRob Herring			};
159724ba675SRob Herring
160724ba675SRob Herring			vdd_usb: ldo4 {
161724ba675SRob Herring				regulator-name = "vdd_usb";
162724ba675SRob Herring				interrupts = <IT_CURLIM_LDO4 0>;
163724ba675SRob Herring			};
164724ba675SRob Herring
165724ba675SRob Herring			vdd_sd: ldo5 {
166724ba675SRob Herring				regulator-name = "vdd_sd";
167724ba675SRob Herring				regulator-min-microvolt = <2900000>;
168724ba675SRob Herring				regulator-max-microvolt = <2900000>;
169724ba675SRob Herring				interrupts = <IT_CURLIM_LDO5 0>;
170724ba675SRob Herring				regulator-boot-on;
171724ba675SRob Herring			};
172724ba675SRob Herring
173724ba675SRob Herring			v1v8: ldo6 {
174724ba675SRob Herring				regulator-name = "v1v8";
175724ba675SRob Herring				regulator-min-microvolt = <1800000>;
176724ba675SRob Herring				regulator-max-microvolt = <1800000>;
177724ba675SRob Herring				interrupts = <IT_CURLIM_LDO6 0>;
178724ba675SRob Herring				regulator-enable-ramp-delay = <300000>;
179724ba675SRob Herring			};
180724ba675SRob Herring
181724ba675SRob Herring			vref_ddr: vref_ddr {
182724ba675SRob Herring				regulator-name = "vref_ddr";
183724ba675SRob Herring				regulator-always-on;
184724ba675SRob Herring			};
185724ba675SRob Herring
186724ba675SRob Herring			bst_out: boost {
187724ba675SRob Herring				regulator-name = "bst_out";
188724ba675SRob Herring				interrupts = <IT_OCP_BOOST 0>;
189724ba675SRob Herring			};
190724ba675SRob Herring
191724ba675SRob Herring			vbus_otg: pwr_sw1 {
192724ba675SRob Herring				regulator-name = "vbus_otg";
193724ba675SRob Herring				interrupts = <IT_OCP_OTG 0>;
194724ba675SRob Herring				regulator-active-discharge = <1>;
195724ba675SRob Herring			};
196724ba675SRob Herring
197724ba675SRob Herring			vbus_sw: pwr_sw2 {
198724ba675SRob Herring				regulator-name = "vbus_sw";
199724ba675SRob Herring				interrupts = <IT_OCP_SWOUT 0>;
200724ba675SRob Herring				regulator-active-discharge = <1>;
201724ba675SRob Herring			};
202724ba675SRob Herring		};
203724ba675SRob Herring
204724ba675SRob Herring		onkey {
205724ba675SRob Herring			compatible = "st,stpmic1-onkey";
206724ba675SRob Herring			interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>;
207724ba675SRob Herring			interrupt-names = "onkey-falling", "onkey-rising";
208724ba675SRob Herring			status = "okay";
209724ba675SRob Herring		};
210724ba675SRob Herring
211724ba675SRob Herring		watchdog {
212724ba675SRob Herring			compatible = "st,stpmic1-wdt";
213724ba675SRob Herring			status = "disabled";
214724ba675SRob Herring		};
215724ba675SRob Herring	};
216724ba675SRob Herring};
217724ba675SRob Herring
218724ba675SRob Herring&ipcc {
219724ba675SRob Herring	status = "okay";
220724ba675SRob Herring};
221724ba675SRob Herring
222724ba675SRob Herring&iwdg2 {
223724ba675SRob Herring	timeout-sec = <32>;
224724ba675SRob Herring	status = "okay";
225724ba675SRob Herring};
226724ba675SRob Herring
227724ba675SRob Herring&m4_rproc {
228724ba675SRob Herring	memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
229724ba675SRob Herring			<&vdev0vring1>, <&vdev0buffer>;
230*2f38de94SMarek Vasut	mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
231*2f38de94SMarek Vasut	mbox-names = "vq0", "vq1", "shutdown", "detach";
232724ba675SRob Herring	interrupt-parent = <&exti>;
233724ba675SRob Herring	interrupts = <68 1>;
234724ba675SRob Herring	status = "okay";
235724ba675SRob Herring};
236724ba675SRob Herring
237724ba675SRob Herring&pwr_regulators {
238724ba675SRob Herring	vdd-supply = <&vdd>;
239724ba675SRob Herring	vdd_3v3_usbfs-supply = <&vdd_usb>;
240724ba675SRob Herring};
241724ba675SRob Herring
242724ba675SRob Herring&qspi {
243724ba675SRob Herring	pinctrl-names = "default", "sleep";
244724ba675SRob Herring	pinctrl-0 = <&qspi_clk_pins_a
245724ba675SRob Herring		     &qspi_bk1_pins_a
246724ba675SRob Herring		     &qspi_cs1_pins_a>;
247724ba675SRob Herring	pinctrl-1 = <&qspi_clk_sleep_pins_a
248724ba675SRob Herring		     &qspi_bk1_sleep_pins_a
249724ba675SRob Herring		     &qspi_cs1_sleep_pins_a>;
250724ba675SRob Herring	reg = <0x58003000 0x1000>, <0x70000000 0x200000>;
251724ba675SRob Herring	#address-cells = <1>;
252724ba675SRob Herring	#size-cells = <0>;
253724ba675SRob Herring	status = "okay";
254724ba675SRob Herring
255724ba675SRob Herring	flash0: flash@0 {
256724ba675SRob Herring		compatible = "jedec,spi-nor";
257724ba675SRob Herring		reg = <0>;
258724ba675SRob Herring		spi-rx-bus-width = <4>;
259724ba675SRob Herring		spi-max-frequency = <50000000>;
260724ba675SRob Herring		#address-cells = <1>;
261724ba675SRob Herring		#size-cells = <1>;
262724ba675SRob Herring	};
263724ba675SRob Herring};
264724ba675SRob Herring
265724ba675SRob Herring&rng1 {
266724ba675SRob Herring	status = "okay";
267724ba675SRob Herring};
268724ba675SRob Herring
269724ba675SRob Herring&rtc {
270724ba675SRob Herring	status = "okay";
271724ba675SRob Herring};
272