xref: /openbmc/linux/arch/arm64/boot/dts/freescale/imx8mm-kontron-sl.dtsi (revision 5ee9cd065836e5934710ca35653bce7905add20b)
1587c1fedSFrieder Schrempf// SPDX-License-Identifier: GPL-2.0+ OR MIT
2587c1fedSFrieder Schrempf/*
3587c1fedSFrieder Schrempf * Copyright (C) 2019 Kontron Electronics GmbH
4587c1fedSFrieder Schrempf */
5587c1fedSFrieder Schrempf
6587c1fedSFrieder Schrempf#include "imx8mm.dtsi"
7587c1fedSFrieder Schrempf
8587c1fedSFrieder Schrempf/ {
9587c1fedSFrieder Schrempf	model = "Kontron SL i.MX8MM (N801X SOM)";
10587c1fedSFrieder Schrempf	compatible = "kontron,imx8mm-sl", "fsl,imx8mm";
11587c1fedSFrieder Schrempf
12587c1fedSFrieder Schrempf	memory@40000000 {
13587c1fedSFrieder Schrempf		device_type = "memory";
14587c1fedSFrieder Schrempf		/*
15587c1fedSFrieder Schrempf		 * There are multiple SoM flavors with different DDR sizes.
16587c1fedSFrieder Schrempf		 * The smallest is 1GB. For larger sizes the bootloader will
17587c1fedSFrieder Schrempf		 * update the reg property.
18587c1fedSFrieder Schrempf		 */
19587c1fedSFrieder Schrempf		reg = <0x0 0x40000000 0 0x80000000>;
20587c1fedSFrieder Schrempf	};
21587c1fedSFrieder Schrempf
22587c1fedSFrieder Schrempf	chosen {
23587c1fedSFrieder Schrempf		stdout-path = &uart3;
24587c1fedSFrieder Schrempf	};
25587c1fedSFrieder Schrempf};
26587c1fedSFrieder Schrempf
27587c1fedSFrieder Schrempf&A53_0 {
28587c1fedSFrieder Schrempf	cpu-supply = <&reg_vdd_arm>;
29587c1fedSFrieder Schrempf};
30587c1fedSFrieder Schrempf
31587c1fedSFrieder Schrempf&A53_1 {
32587c1fedSFrieder Schrempf	cpu-supply = <&reg_vdd_arm>;
33587c1fedSFrieder Schrempf};
34587c1fedSFrieder Schrempf
35587c1fedSFrieder Schrempf&A53_2 {
36587c1fedSFrieder Schrempf	cpu-supply = <&reg_vdd_arm>;
37587c1fedSFrieder Schrempf};
38587c1fedSFrieder Schrempf
39587c1fedSFrieder Schrempf&A53_3 {
40587c1fedSFrieder Schrempf	cpu-supply = <&reg_vdd_arm>;
41587c1fedSFrieder Schrempf};
42587c1fedSFrieder Schrempf
43587c1fedSFrieder Schrempf&ddrc {
44587c1fedSFrieder Schrempf	operating-points-v2 = <&ddrc_opp_table>;
45587c1fedSFrieder Schrempf
46587c1fedSFrieder Schrempf	ddrc_opp_table: opp-table {
47587c1fedSFrieder Schrempf		compatible = "operating-points-v2";
48587c1fedSFrieder Schrempf
490c068a36SMarek Vasut		opp-100000000 {
50587c1fedSFrieder Schrempf			opp-hz = /bits/ 64 <100000000>;
51587c1fedSFrieder Schrempf		};
52587c1fedSFrieder Schrempf
530c068a36SMarek Vasut		opp-750000000 {
54587c1fedSFrieder Schrempf			opp-hz = /bits/ 64 <750000000>;
55587c1fedSFrieder Schrempf		};
56587c1fedSFrieder Schrempf	};
57587c1fedSFrieder Schrempf};
58587c1fedSFrieder Schrempf
59587c1fedSFrieder Schrempf&ecspi1 {
60587c1fedSFrieder Schrempf	pinctrl-names = "default";
61587c1fedSFrieder Schrempf	pinctrl-0 = <&pinctrl_ecspi1>;
62587c1fedSFrieder Schrempf	cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
63587c1fedSFrieder Schrempf	status = "okay";
64587c1fedSFrieder Schrempf
65587c1fedSFrieder Schrempf	flash@0 {
66587c1fedSFrieder Schrempf		compatible = "mxicy,mx25r1635f", "jedec,spi-nor";
67587c1fedSFrieder Schrempf		spi-max-frequency = <80000000>;
68587c1fedSFrieder Schrempf		reg = <0>;
69b6379196SFrieder Schrempf
70b6379196SFrieder Schrempf		partitions {
71b6379196SFrieder Schrempf			compatible = "fixed-partitions";
72b6379196SFrieder Schrempf			#address-cells = <1>;
73b6379196SFrieder Schrempf			#size-cells = <1>;
74b6379196SFrieder Schrempf
75b6379196SFrieder Schrempf			partition@0 {
76b6379196SFrieder Schrempf				label = "u-boot";
77b6379196SFrieder Schrempf				reg = <0x0 0x1e0000>;
78b6379196SFrieder Schrempf			};
79b6379196SFrieder Schrempf
80b6379196SFrieder Schrempf			partition@1e0000 {
81b6379196SFrieder Schrempf				label = "env";
82b6379196SFrieder Schrempf				reg = <0x1e0000 0x10000>;
83b6379196SFrieder Schrempf			};
84b6379196SFrieder Schrempf
85b6379196SFrieder Schrempf			partition@1f0000 {
86b6379196SFrieder Schrempf				label = "env_redundant";
87b6379196SFrieder Schrempf				reg = <0x1f0000 0x10000>;
88b6379196SFrieder Schrempf			};
89b6379196SFrieder Schrempf		};
90587c1fedSFrieder Schrempf	};
91587c1fedSFrieder Schrempf};
92587c1fedSFrieder Schrempf
93587c1fedSFrieder Schrempf&i2c1 {
94587c1fedSFrieder Schrempf	clock-frequency = <400000>;
95587c1fedSFrieder Schrempf	pinctrl-names = "default";
96587c1fedSFrieder Schrempf	pinctrl-0 = <&pinctrl_i2c1>;
97587c1fedSFrieder Schrempf	status = "okay";
98587c1fedSFrieder Schrempf
99587c1fedSFrieder Schrempf	pca9450: pmic@25 {
100587c1fedSFrieder Schrempf		compatible = "nxp,pca9450a";
101587c1fedSFrieder Schrempf		reg = <0x25>;
102587c1fedSFrieder Schrempf		pinctrl-names = "default";
103587c1fedSFrieder Schrempf		pinctrl-0 = <&pinctrl_pmic>;
104587c1fedSFrieder Schrempf		interrupt-parent = <&gpio1>;
105587c1fedSFrieder Schrempf		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
106587c1fedSFrieder Schrempf
107587c1fedSFrieder Schrempf		regulators {
108587c1fedSFrieder Schrempf			reg_vdd_soc: BUCK1 {
1099cb41873SFrieder Schrempf				regulator-name = "+0V8_VDD_SOC (BUCK1)";
110587c1fedSFrieder Schrempf				regulator-min-microvolt = <800000>;
111587c1fedSFrieder Schrempf				regulator-max-microvolt = <850000>;
112587c1fedSFrieder Schrempf				regulator-boot-on;
113587c1fedSFrieder Schrempf				regulator-always-on;
114587c1fedSFrieder Schrempf				regulator-ramp-delay = <3125>;
115587c1fedSFrieder Schrempf				nxp,dvs-run-voltage = <850000>;
116587c1fedSFrieder Schrempf				nxp,dvs-standby-voltage = <800000>;
117587c1fedSFrieder Schrempf			};
118587c1fedSFrieder Schrempf
119587c1fedSFrieder Schrempf			reg_vdd_arm: BUCK2 {
1209cb41873SFrieder Schrempf				regulator-name = "+0V9_VDD_ARM (BUCK2)";
121587c1fedSFrieder Schrempf				regulator-min-microvolt = <850000>;
122587c1fedSFrieder Schrempf				regulator-max-microvolt = <950000>;
123587c1fedSFrieder Schrempf				regulator-boot-on;
124587c1fedSFrieder Schrempf				regulator-always-on;
125587c1fedSFrieder Schrempf				regulator-ramp-delay = <3125>;
126587c1fedSFrieder Schrempf				nxp,dvs-run-voltage = <950000>;
127587c1fedSFrieder Schrempf				nxp,dvs-standby-voltage = <850000>;
128587c1fedSFrieder Schrempf			};
129587c1fedSFrieder Schrempf
130587c1fedSFrieder Schrempf			reg_vdd_dram: BUCK3 {
1319cb41873SFrieder Schrempf				regulator-name = "+0V9_VDD_DRAM&PU (BUCK3)";
132587c1fedSFrieder Schrempf				regulator-min-microvolt = <850000>;
133587c1fedSFrieder Schrempf				regulator-max-microvolt = <950000>;
134587c1fedSFrieder Schrempf				regulator-boot-on;
135587c1fedSFrieder Schrempf				regulator-always-on;
136587c1fedSFrieder Schrempf			};
137587c1fedSFrieder Schrempf
138587c1fedSFrieder Schrempf			reg_vdd_3v3: BUCK4 {
1399cb41873SFrieder Schrempf				regulator-name = "+3V3 (BUCK4)";
140587c1fedSFrieder Schrempf				regulator-min-microvolt = <3300000>;
141587c1fedSFrieder Schrempf				regulator-max-microvolt = <3300000>;
142587c1fedSFrieder Schrempf				regulator-boot-on;
143587c1fedSFrieder Schrempf				regulator-always-on;
144587c1fedSFrieder Schrempf			};
145587c1fedSFrieder Schrempf
146587c1fedSFrieder Schrempf			reg_vdd_1v8: BUCK5 {
1479cb41873SFrieder Schrempf				regulator-name = "+1V8 (BUCK5)";
148587c1fedSFrieder Schrempf				regulator-min-microvolt = <1800000>;
149587c1fedSFrieder Schrempf				regulator-max-microvolt = <1800000>;
150587c1fedSFrieder Schrempf				regulator-boot-on;
151587c1fedSFrieder Schrempf				regulator-always-on;
152587c1fedSFrieder Schrempf			};
153587c1fedSFrieder Schrempf
154587c1fedSFrieder Schrempf			reg_nvcc_dram: BUCK6 {
1559cb41873SFrieder Schrempf				regulator-name = "+1V1_NVCC_DRAM (BUCK6)";
156587c1fedSFrieder Schrempf				regulator-min-microvolt = <1100000>;
157587c1fedSFrieder Schrempf				regulator-max-microvolt = <1100000>;
158587c1fedSFrieder Schrempf				regulator-boot-on;
159587c1fedSFrieder Schrempf				regulator-always-on;
160587c1fedSFrieder Schrempf			};
161587c1fedSFrieder Schrempf
162587c1fedSFrieder Schrempf			reg_nvcc_snvs: LDO1 {
1639cb41873SFrieder Schrempf				regulator-name = "+1V8_NVCC_SNVS (LDO1)";
164587c1fedSFrieder Schrempf				regulator-min-microvolt = <1800000>;
165587c1fedSFrieder Schrempf				regulator-max-microvolt = <1800000>;
166587c1fedSFrieder Schrempf				regulator-boot-on;
167587c1fedSFrieder Schrempf				regulator-always-on;
168587c1fedSFrieder Schrempf			};
169587c1fedSFrieder Schrempf
170587c1fedSFrieder Schrempf			reg_vdd_snvs: LDO2 {
1719cb41873SFrieder Schrempf				regulator-name = "+0V8_VDD_SNVS (LDO2)";
172587c1fedSFrieder Schrempf				regulator-min-microvolt = <800000>;
173587c1fedSFrieder Schrempf				regulator-max-microvolt = <900000>;
174587c1fedSFrieder Schrempf				regulator-boot-on;
175587c1fedSFrieder Schrempf				regulator-always-on;
176587c1fedSFrieder Schrempf			};
177587c1fedSFrieder Schrempf
178587c1fedSFrieder Schrempf			reg_vdda: LDO3 {
1799cb41873SFrieder Schrempf				regulator-name = "+1V8_VDDA (LDO3)";
180587c1fedSFrieder Schrempf				regulator-min-microvolt = <1800000>;
181587c1fedSFrieder Schrempf				regulator-max-microvolt = <1800000>;
182587c1fedSFrieder Schrempf				regulator-boot-on;
183587c1fedSFrieder Schrempf				regulator-always-on;
184587c1fedSFrieder Schrempf			};
185587c1fedSFrieder Schrempf
186587c1fedSFrieder Schrempf			reg_vdd_phy: LDO4 {
1879cb41873SFrieder Schrempf				regulator-name = "+0V9_VDD_PHY (LDO4)";
188587c1fedSFrieder Schrempf				regulator-min-microvolt = <900000>;
189587c1fedSFrieder Schrempf				regulator-max-microvolt = <900000>;
190587c1fedSFrieder Schrempf				regulator-boot-on;
191587c1fedSFrieder Schrempf				regulator-always-on;
192587c1fedSFrieder Schrempf			};
193587c1fedSFrieder Schrempf
194587c1fedSFrieder Schrempf			reg_nvcc_sd: LDO5 {
1959cb41873SFrieder Schrempf				regulator-name = "NVCC_SD (LDO5)";
196587c1fedSFrieder Schrempf				regulator-min-microvolt = <1800000>;
197587c1fedSFrieder Schrempf				regulator-max-microvolt = <3300000>;
198587c1fedSFrieder Schrempf			};
199587c1fedSFrieder Schrempf		};
200587c1fedSFrieder Schrempf	};
201587c1fedSFrieder Schrempf};
202587c1fedSFrieder Schrempf
203587c1fedSFrieder Schrempf&uart3 { /* console */
204587c1fedSFrieder Schrempf	pinctrl-names = "default";
205587c1fedSFrieder Schrempf	pinctrl-0 = <&pinctrl_uart3>;
206587c1fedSFrieder Schrempf	status = "okay";
207587c1fedSFrieder Schrempf};
208587c1fedSFrieder Schrempf
209587c1fedSFrieder Schrempf&usdhc1 {
210587c1fedSFrieder Schrempf	pinctrl-names = "default", "state_100mhz", "state_200mhz";
211587c1fedSFrieder Schrempf	pinctrl-0 = <&pinctrl_usdhc1>;
212587c1fedSFrieder Schrempf	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
213587c1fedSFrieder Schrempf	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
214587c1fedSFrieder Schrempf	vmmc-supply = <&reg_vdd_3v3>;
215587c1fedSFrieder Schrempf	vqmmc-supply = <&reg_vdd_1v8>;
216587c1fedSFrieder Schrempf	bus-width = <8>;
217587c1fedSFrieder Schrempf	non-removable;
218587c1fedSFrieder Schrempf	status = "okay";
219587c1fedSFrieder Schrempf};
220587c1fedSFrieder Schrempf
221587c1fedSFrieder Schrempf&wdog1 {
222587c1fedSFrieder Schrempf	pinctrl-names = "default";
223587c1fedSFrieder Schrempf	pinctrl-0 = <&pinctrl_wdog>;
224587c1fedSFrieder Schrempf	fsl,ext-reset-output;
225587c1fedSFrieder Schrempf	status = "okay";
226587c1fedSFrieder Schrempf};
227587c1fedSFrieder Schrempf
228587c1fedSFrieder Schrempf&iomuxc {
229587c1fedSFrieder Schrempf	pinctrl_ecspi1: ecspi1grp {
230587c1fedSFrieder Schrempf		fsl,pins = <
231587c1fedSFrieder Schrempf			MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO		0x82
232587c1fedSFrieder Schrempf			MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI		0x82
233587c1fedSFrieder Schrempf			MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK		0x82
234587c1fedSFrieder Schrempf			MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9		0x19
235587c1fedSFrieder Schrempf		>;
236587c1fedSFrieder Schrempf	};
237587c1fedSFrieder Schrempf
238587c1fedSFrieder Schrempf	pinctrl_i2c1: i2c1grp {
239587c1fedSFrieder Schrempf		fsl,pins = <
240*44033a1cSFrieder Schrempf			MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL			0x40000083
241*44033a1cSFrieder Schrempf			MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA			0x40000083
242587c1fedSFrieder Schrempf		>;
243587c1fedSFrieder Schrempf	};
244587c1fedSFrieder Schrempf
245587c1fedSFrieder Schrempf	pinctrl_pmic: pmicgrp {
246587c1fedSFrieder Schrempf		fsl,pins = <
247587c1fedSFrieder Schrempf			MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0		0x141
248587c1fedSFrieder Schrempf		>;
249587c1fedSFrieder Schrempf	};
250587c1fedSFrieder Schrempf
251587c1fedSFrieder Schrempf	pinctrl_uart3: uart3grp {
252587c1fedSFrieder Schrempf		fsl,pins = <
253587c1fedSFrieder Schrempf			MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX		0x140
254587c1fedSFrieder Schrempf			MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX		0x140
255587c1fedSFrieder Schrempf		>;
256587c1fedSFrieder Schrempf	};
257587c1fedSFrieder Schrempf
258587c1fedSFrieder Schrempf	pinctrl_usdhc1: usdhc1grp {
259587c1fedSFrieder Schrempf		fsl,pins = <
260587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK			0x190
261587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD			0x1d0
262587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0		0x1d0
263587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1		0x1d0
264587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2		0x1d0
265587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3		0x1d0
266587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA4_USDHC1_DATA4		0x1d0
267587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA5_USDHC1_DATA5		0x1d0
268587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA6_USDHC1_DATA6		0x1d0
269587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA7_USDHC1_DATA7		0x1d0
270587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0x019
271587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x190
272587c1fedSFrieder Schrempf		>;
273587c1fedSFrieder Schrempf	};
274587c1fedSFrieder Schrempf
275587c1fedSFrieder Schrempf	pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
276587c1fedSFrieder Schrempf		fsl,pins = <
277587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK			0x194
278587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD			0x1d4
279587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0		0x1d4
280587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1		0x1d4
281587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2		0x1d4
282587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3		0x1d4
283587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA4_USDHC1_DATA4		0x1d4
284587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA5_USDHC1_DATA5		0x1d4
285587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA6_USDHC1_DATA6		0x1d4
286587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA7_USDHC1_DATA7		0x1d4
287587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0x019
288587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x194
289587c1fedSFrieder Schrempf		>;
290587c1fedSFrieder Schrempf	};
291587c1fedSFrieder Schrempf
292587c1fedSFrieder Schrempf	pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
293587c1fedSFrieder Schrempf		fsl,pins = <
294587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK			0x196
295587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD			0x1d6
296587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0		0x1d6
297587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1		0x1d6
298587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2		0x1d6
299587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3		0x1d6
300587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA4_USDHC1_DATA4		0x1d6
301587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA5_USDHC1_DATA5		0x1d6
302587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA6_USDHC1_DATA6		0x1d6
303587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_DATA7_USDHC1_DATA7		0x1d6
304587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0x019
305587c1fedSFrieder Schrempf			MX8MM_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x196
306587c1fedSFrieder Schrempf		>;
307587c1fedSFrieder Schrempf	};
308587c1fedSFrieder Schrempf
309587c1fedSFrieder Schrempf	pinctrl_wdog: wdoggrp {
310587c1fedSFrieder Schrempf		fsl,pins = <
311587c1fedSFrieder Schrempf			MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B		0xc6
312587c1fedSFrieder Schrempf		>;
313587c1fedSFrieder Schrempf	};
314587c1fedSFrieder Schrempf};
315