1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Copyright 2013 Sascha Hauer, Pengutronix
4 * Copyright 2013-2017 Markus Niebel <Markus.Niebel@tq-group.com>
5 */
6
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/interrupt-controller/irq.h>
9
10/ {
11	reg_3p3v: regulator-3p3v {
12		compatible = "regulator-fixed";
13		regulator-name = "supply-3p3v";
14		regulator-min-microvolt = <3300000>;
15		regulator-max-microvolt = <3300000>;
16		regulator-always-on;
17	};
18};
19
20&ecspi1 {
21	pinctrl-names = "default";
22	pinctrl-0 = <&pinctrl_ecspi1>;
23	cs-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>;
24	status = "okay";
25
26	m25p80: flash@0 {
27		compatible = "jedec,spi-nor";
28		spi-max-frequency = <50000000>;
29		reg = <0>;
30		#address-cells = <1>;
31		#size-cells = <1>;
32		m25p,fast-read;
33	};
34};
35
36&iomuxc {
37	pinctrl_ecspi1: ecspi1grp {
38		fsl,pins = <
39			/* HYS, SPEED = MED, 100k up, DSE = 011, SRE_FAST */
40			MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x1b099
41			MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0xb099
42			MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0xb099
43			 /* eCSPI1 SS1 */
44			MX6QDL_PAD_EIM_D19__GPIO3_IO19 0xb099
45		>;
46	};
47
48	pinctrl_i2c1: i2c1grp {
49		fsl,pins = <
50			MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b899
51			MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001b899
52		>;
53	};
54
55	pinctrl_i2c1_recovery: i2c1recoverygrp {
56		fsl,pins = <
57			MX6QDL_PAD_CSI0_DAT8__GPIO5_IO26 0x4001b899
58			MX6QDL_PAD_CSI0_DAT9__GPIO5_IO27 0x4001b899
59		>;
60	};
61
62	pinctrl_i2c3: i2c3grp {
63		fsl,pins = <
64			MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b899
65			MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b899
66		>;
67	};
68
69	pinctrl_i2c3_recovery: i2c3recoverygrp {
70		fsl,pins = <
71			MX6QDL_PAD_GPIO_5__GPIO1_IO05 0x4001b899
72			MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x4001b899
73		>;
74	};
75
76	pinctrl_pmic: pmicgrp {
77		fsl,pins = <
78			MX6QDL_PAD_NANDF_RB0__GPIO6_IO10 0x1b099 /* PMIC irq */
79		>;
80	};
81
82	pinctrl_usdhc3: usdhc3grp {
83		fsl,pins = <
84			MX6QDL_PAD_SD3_CMD__SD3_CMD    0x17059
85			MX6QDL_PAD_SD3_CLK__SD3_CLK    0x10059
86			MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
87			MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
88			MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
89			MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
90			MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17059
91			MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17059
92			MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17059
93			MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17059
94		>;
95	};
96};
97
98&pmic {
99	pinctrl-names = "default";
100	pinctrl-0 = <&pinctrl_pmic>;
101	interrupt-parent = <&gpio6>;
102	interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
103
104	regulators {
105		reg_vddcore: sw1ab {
106			regulator-min-microvolt = <300000>;
107			regulator-max-microvolt = <1875000>;
108			regulator-always-on;
109		};
110
111		reg_vddsoc: sw1c {
112			regulator-min-microvolt = <300000>;
113			regulator-max-microvolt = <1875000>;
114			regulator-always-on;
115		};
116
117		reg_gen_3v3: sw2 {
118			regulator-min-microvolt = <800000>;
119			regulator-max-microvolt = <3300000>;
120			regulator-always-on;
121		};
122
123		reg_ddr_1v5a: sw3a {
124			regulator-min-microvolt = <400000>;
125			regulator-max-microvolt = <1975000>;
126			regulator-always-on;
127		};
128
129		reg_ddr_1v5b: sw3b {
130			regulator-min-microvolt = <400000>;
131			regulator-max-microvolt = <1975000>;
132			regulator-always-on;
133		};
134
135		sw4_reg: sw4 {
136			regulator-min-microvolt = <800000>;
137			regulator-max-microvolt = <3300000>;
138			regulator-always-on;
139		};
140
141		reg_5v_600mA: swbst {
142			regulator-min-microvolt = <5000000>;
143			regulator-max-microvolt = <5150000>;
144			regulator-always-on;
145		};
146
147		reg_snvs_3v: vsnvs {
148			regulator-min-microvolt = <1500000>;
149			regulator-max-microvolt = <3000000>;
150			regulator-always-on;
151		};
152
153		reg_vrefddr: vrefddr {
154			regulator-boot-on;
155			regulator-always-on;
156		};
157
158		reg_vgen1_1v5: vgen1 {
159			regulator-min-microvolt = <800000>;
160			regulator-max-microvolt = <1550000>;
161			/* not used */
162		};
163
164		reg_vgen2_1v2_eth: vgen2 {
165			regulator-min-microvolt = <800000>;
166			regulator-max-microvolt = <1550000>;
167			regulator-always-on;
168		};
169
170		reg_vgen3_2v8: vgen3 {
171			regulator-min-microvolt = <1800000>;
172			regulator-max-microvolt = <3300000>;
173			regulator-always-on;
174		};
175
176		reg_vgen4_1v8: vgen4 {
177			regulator-min-microvolt = <1800000>;
178			regulator-max-microvolt = <3300000>;
179			regulator-always-on;
180		};
181
182		reg_vgen5_1v8_eth: vgen5 {
183			regulator-min-microvolt = <1800000>;
184			regulator-max-microvolt = <3300000>;
185			regulator-always-on;
186		};
187
188		reg_vgen6_3v3: vgen6 {
189			regulator-min-microvolt = <1800000>;
190			regulator-max-microvolt = <3300000>;
191			regulator-always-on;
192		};
193	};
194};
195
196/* eMMC */
197&usdhc3 {
198	pinctrl-names = "default";
199	pinctrl-0 = <&pinctrl_usdhc3>;
200	vmmc-supply = <&reg_3p3v>;
201	non-removable;
202	disable-wp;
203	no-sd;
204	no-sdio;
205	bus-width = <8>;
206	#address-cells = <1>;
207	#size-cells = <0>;
208	status = "okay";
209
210	mmccard: mmccard@0 {
211		reg = <0>;
212		compatible = "mmc-card";
213		broken-hpi;
214	};
215};
216