1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Copyright 2017-2019 NXP
4 */
5
6/dts-v1/;
7
8#include "imx8mq.dtsi"
9
10/ {
11	model = "Google i.MX8MQ Phanbell";
12	compatible = "google,imx8mq-phanbell", "fsl,imx8mq";
13
14	chosen {
15		stdout-path = &uart1;
16	};
17
18	memory@40000000 {
19		device_type = "memory";
20		reg = <0x00000000 0x40000000 0 0x40000000>;
21	};
22
23	pmic_osc: clock-pmic {
24		compatible = "fixed-clock";
25		#clock-cells = <0>;
26		clock-frequency = <32768>;
27		clock-output-names = "pmic_osc";
28	};
29
30	reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
31		compatible = "regulator-fixed";
32		regulator-name = "VSD_3V3";
33		regulator-min-microvolt = <3300000>;
34		regulator-max-microvolt = <3300000>;
35		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
36		enable-active-high;
37	};
38};
39
40&A53_0 {
41	cpu-supply = <&buck2>;
42};
43
44&A53_1 {
45	cpu-supply = <&buck2>;
46};
47
48&A53_2 {
49	cpu-supply = <&buck2>;
50};
51
52&A53_3 {
53	cpu-supply = <&buck2>;
54};
55
56&i2c1 {
57	clock-frequency = <400000>;
58	pinctrl-names = "default";
59	pinctrl-0 = <&pinctrl_i2c1>;
60	status = "okay";
61
62	pmic: pmic@4b {
63		compatible = "rohm,bd71837";
64		reg = <0x4b>;
65		pinctrl-names = "default";
66		pinctrl-0 = <&pinctrl_pmic>;
67		#clock-cells = <0>;
68		clocks = <&pmic_osc>;
69		clock-output-names = "pmic_clk";
70		interrupt-parent = <&gpio1>;
71		interrupts = <3 GPIO_ACTIVE_LOW>;
72
73		regulators {
74			buck1: BUCK1 {
75				regulator-name = "buck1";
76				regulator-min-microvolt = <700000>;
77				regulator-max-microvolt = <1300000>;
78				regulator-boot-on;
79				regulator-always-on;
80				regulator-ramp-delay = <1250>;
81				rohm,dvs-run-voltage = <900000>;
82				rohm,dvs-idle-voltage = <900000>;
83				rohm,dvs-suspend-voltage = <800000>;
84			};
85
86			buck2: BUCK2 {
87				regulator-name = "buck2";
88				regulator-min-microvolt = <850000>;
89				regulator-max-microvolt = <1000000>;
90				regulator-boot-on;
91				regulator-always-on;
92				rohm,dvs-run-voltage = <1000000>;
93				rohm,dvs-idle-voltage = <900000>;
94			};
95
96			buck3: BUCK3 {
97				regulator-name = "buck3";
98				regulator-min-microvolt = <700000>;
99				regulator-max-microvolt = <1300000>;
100				regulator-boot-on;
101				rohm,dvs-run-voltage = <900000>;
102			};
103
104			buck4: BUCK4 {
105				regulator-name = "buck4";
106				regulator-min-microvolt = <700000>;
107				regulator-max-microvolt = <1300000>;
108				regulator-boot-on;
109				regulator-always-on;
110				rohm,dvs-run-voltage = <900000>;
111			};
112
113			buck5: BUCK5 {
114				regulator-name = "buck5";
115				regulator-min-microvolt = <700000>;
116				regulator-max-microvolt = <1350000>;
117				regulator-boot-on;
118				regulator-always-on;
119			};
120
121			buck6: BUCK6 {
122				regulator-name = "buck6";
123				regulator-min-microvolt = <3000000>;
124				regulator-max-microvolt = <3300000>;
125				regulator-boot-on;
126				regulator-always-on;
127			};
128
129			buck7: BUCK7 {
130				regulator-name = "buck7";
131				regulator-min-microvolt = <1605000>;
132				regulator-max-microvolt = <1995000>;
133				regulator-boot-on;
134				regulator-always-on;
135			};
136
137			buck8: BUCK8 {
138				regulator-name = "buck8";
139				regulator-min-microvolt = <800000>;
140				regulator-max-microvolt = <1400000>;
141				regulator-boot-on;
142				regulator-always-on;
143			};
144
145			ldo1: LDO1 {
146				regulator-name = "ldo1";
147				regulator-min-microvolt = <3000000>;
148				regulator-max-microvolt = <3300000>;
149				regulator-boot-on;
150				regulator-always-on;
151			};
152
153			ldo2: LDO2 {
154				regulator-name = "ldo2";
155				regulator-min-microvolt = <900000>;
156				regulator-max-microvolt = <900000>;
157				regulator-boot-on;
158				regulator-always-on;
159			};
160
161			ldo3: LDO3 {
162				regulator-name = "ldo3";
163				regulator-min-microvolt = <1800000>;
164				regulator-max-microvolt = <3300000>;
165				regulator-boot-on;
166				regulator-always-on;
167			};
168
169			ldo4: LDO4 {
170				regulator-name = "ldo4";
171				regulator-min-microvolt = <900000>;
172				regulator-max-microvolt = <1800000>;
173				regulator-boot-on;
174				regulator-always-on;
175			};
176
177			ldo5: LDO5 {
178				regulator-name = "ldo5";
179				regulator-min-microvolt = <1800000>;
180				regulator-max-microvolt = <3300000>;
181				regulator-boot-on;
182				regulator-always-on;
183			};
184
185			ldo6: LDO6 {
186				regulator-name = "ldo6";
187				regulator-min-microvolt = <900000>;
188				regulator-max-microvolt = <1800000>;
189				regulator-boot-on;
190				regulator-always-on;
191			};
192
193			ldo7: LDO7 {
194				regulator-name = "ldo7";
195				regulator-min-microvolt = <1800000>;
196				regulator-max-microvolt = <3300000>;
197				regulator-boot-on;
198				regulator-always-on;
199			};
200		};
201	};
202};
203
204&uart1 {
205	pinctrl-names = "default";
206	pinctrl-0 = <&pinctrl_uart1>;
207	status = "okay";
208};
209
210&usdhc1 {
211	pinctrl-names = "default", "state_100mhz", "state_200mhz";
212	pinctrl-0 = <&pinctrl_usdhc1>;
213	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
214	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
215	bus-width = <8>;
216	non-removable;
217	status = "okay";
218};
219
220&usdhc2 {
221	pinctrl-names = "default", "state_100mhz", "state_200mhz";
222	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
223	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
224	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
225	bus-width = <4>;
226	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
227	vmmc-supply = <&reg_usdhc2_vmmc>;
228	status = "okay";
229};
230
231&usb3_phy0 {
232	status = "okay";
233};
234
235&usb_dwc3_0 {
236	dr_mode = "otg";
237	status = "okay";
238};
239
240&usb3_phy1 {
241	status = "okay";
242};
243
244&usb_dwc3_1 {
245	dr_mode = "host";
246	status = "okay";
247};
248
249&wdog1 {
250	pinctrl-names = "default";
251	pinctrl-0 = <&pinctrl_wdog>;
252	fsl,ext-reset-output;
253	status = "okay";
254};
255
256&iomuxc {
257	pinctrl_i2c1: i2c1grp {
258		fsl,pins = <
259			MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL			0x4000007f
260			MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA			0x4000007f
261		>;
262	};
263
264	pinctrl_pmic: pmicirq {
265		fsl,pins = <
266			MX8MQ_IOMUXC_GPIO1_IO03_GPIO1_IO3	0x41
267		>;
268	};
269
270	pinctrl_uart1: uart1grp {
271		fsl,pins = <
272			MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX		0x49
273			MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX		0x49
274		>;
275	};
276
277	pinctrl_usdhc1: usdhc1grp {
278		fsl,pins = <
279			MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK			0x83
280			MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD			0xc3
281			MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0		0xc3
282			MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1		0xc3
283			MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2		0xc3
284			MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3		0xc3
285			MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4		0xc3
286			MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5		0xc3
287			MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6		0xc3
288			MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7		0xc3
289			MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x83
290			MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0xc1
291		>;
292	};
293
294	pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
295		fsl,pins = <
296			MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK			0x85
297			MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD			0xc5
298			MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0		0xc5
299			MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1		0xc5
300			MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2		0xc5
301			MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3		0xc5
302			MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4		0xc5
303			MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5		0xc5
304			MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6		0xc5
305			MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7		0xc5
306			MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x85
307			MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0xc1
308		>;
309	};
310
311	pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
312		fsl,pins = <
313			MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK			0x87
314			MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD			0xc7
315			MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0		0xc7
316			MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1		0xc7
317			MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2		0xc7
318			MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3		0xc7
319			MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4		0xc7
320			MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5		0xc7
321			MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6		0xc7
322			MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7		0xc7
323			MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x87
324			MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0xc1
325		>;
326	};
327
328	pinctrl_usdhc2_gpio: usdhc2grpgpio {
329		fsl,pins = <
330			MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12	0x41
331			MX8MQ_IOMUXC_SD2_RESET_B_GPIO2_IO19	0x41
332		>;
333	};
334
335	pinctrl_usdhc2: usdhc2grp {
336		fsl,pins = <
337			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK			0x83
338			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD			0xc3
339			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0		0xc3
340			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1		0xc3
341			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2		0xc3
342			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3		0xc3
343			MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT		0xc1
344		>;
345	};
346
347	pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
348		fsl,pins = <
349			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK			0x85
350			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD			0xc5
351			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0		0xc5
352			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1		0xc5
353			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2		0xc5
354			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3		0xc5
355			MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT		0xc1
356		>;
357	};
358
359	pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
360		fsl,pins = <
361			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK			0x87
362			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD			0xc7
363			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0		0xc7
364			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1		0xc7
365			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2		0xc7
366			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3		0xc7
367			MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT		0xc1
368		>;
369	};
370
371	pinctrl_wdog: wdoggrp {
372		fsl,pins = <
373			MX8MQ_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6
374		>;
375	};
376};
377