xref: /freebsd/sys/contrib/device-tree/src/arm/nxp/imx/imx7d-cl-som-imx7.dts (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1*f126890aSEmmanuel Vadot/*
2*f126890aSEmmanuel Vadot * Support for CompuLab CL-SOM-iMX7 System-on-Module
3*f126890aSEmmanuel Vadot *
4*f126890aSEmmanuel Vadot * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/
5*f126890aSEmmanuel Vadot * Author: Ilya Ledvich <ilya@compulab.co.il>
6*f126890aSEmmanuel Vadot *
7*f126890aSEmmanuel Vadot * This file is dual-licensed: you can use it either under the terms
8*f126890aSEmmanuel Vadot * of the GPL or the X11 license, at your option. Note that this dual
9*f126890aSEmmanuel Vadot * licensing only applies to this file, and not this project as a
10*f126890aSEmmanuel Vadot * whole.
11*f126890aSEmmanuel Vadot */
12*f126890aSEmmanuel Vadot
13*f126890aSEmmanuel Vadot/dts-v1/;
14*f126890aSEmmanuel Vadot
15*f126890aSEmmanuel Vadot#include "imx7d.dtsi"
16*f126890aSEmmanuel Vadot
17*f126890aSEmmanuel Vadot/ {
18*f126890aSEmmanuel Vadot	model = "CompuLab CL-SOM-iMX7";
19*f126890aSEmmanuel Vadot	compatible = "compulab,cl-som-imx7", "fsl,imx7d";
20*f126890aSEmmanuel Vadot
21*f126890aSEmmanuel Vadot	memory@80000000 {
22*f126890aSEmmanuel Vadot		device_type = "memory";
23*f126890aSEmmanuel Vadot		reg = <0x80000000 0x10000000>; /* 256 MB - minimal configuration */
24*f126890aSEmmanuel Vadot	};
25*f126890aSEmmanuel Vadot
26*f126890aSEmmanuel Vadot	reg_usb_otg1_vbus: regulator-vbus {
27*f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
28*f126890aSEmmanuel Vadot		regulator-name = "usb_otg1_vbus";
29*f126890aSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
30*f126890aSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
31*f126890aSEmmanuel Vadot		gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
32*f126890aSEmmanuel Vadot		enable-active-high;
33*f126890aSEmmanuel Vadot	};
34*f126890aSEmmanuel Vadot};
35*f126890aSEmmanuel Vadot
36*f126890aSEmmanuel Vadot&cpu0 {
37*f126890aSEmmanuel Vadot	cpu-supply = <&sw1a_reg>;
38*f126890aSEmmanuel Vadot};
39*f126890aSEmmanuel Vadot
40*f126890aSEmmanuel Vadot&cpu1 {
41*f126890aSEmmanuel Vadot	cpu-supply = <&sw1a_reg>;
42*f126890aSEmmanuel Vadot};
43*f126890aSEmmanuel Vadot
44*f126890aSEmmanuel Vadot&fec1 {
45*f126890aSEmmanuel Vadot	pinctrl-names = "default";
46*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_enet1>;
47*f126890aSEmmanuel Vadot	assigned-clocks = <&clks IMX7D_ENET1_TIME_ROOT_SRC>,
48*f126890aSEmmanuel Vadot			  <&clks IMX7D_ENET1_TIME_ROOT_CLK>;
49*f126890aSEmmanuel Vadot	assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
50*f126890aSEmmanuel Vadot	assigned-clock-rates = <0>, <100000000>;
51*f126890aSEmmanuel Vadot	phy-mode = "rgmii-id";
52*f126890aSEmmanuel Vadot	phy-handle = <&ethphy0>;
53*f126890aSEmmanuel Vadot	fsl,magic-packet;
54*f126890aSEmmanuel Vadot	status = "okay";
55*f126890aSEmmanuel Vadot
56*f126890aSEmmanuel Vadot	mdio {
57*f126890aSEmmanuel Vadot		#address-cells = <1>;
58*f126890aSEmmanuel Vadot		#size-cells = <0>;
59*f126890aSEmmanuel Vadot
60*f126890aSEmmanuel Vadot		ethphy0: ethernet-phy@0 {
61*f126890aSEmmanuel Vadot			compatible = "ethernet-phy-ieee802.3-c22";
62*f126890aSEmmanuel Vadot			reg = <0>;
63*f126890aSEmmanuel Vadot		};
64*f126890aSEmmanuel Vadot
65*f126890aSEmmanuel Vadot		ethphy1: ethernet-phy@1 {
66*f126890aSEmmanuel Vadot			compatible = "ethernet-phy-ieee802.3-c22";
67*f126890aSEmmanuel Vadot			reg = <1>;
68*f126890aSEmmanuel Vadot		};
69*f126890aSEmmanuel Vadot	};
70*f126890aSEmmanuel Vadot};
71*f126890aSEmmanuel Vadot
72*f126890aSEmmanuel Vadot&fec2 {
73*f126890aSEmmanuel Vadot	pinctrl-names = "default";
74*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_enet2>;
75*f126890aSEmmanuel Vadot	assigned-clocks = <&clks IMX7D_ENET2_TIME_ROOT_SRC>,
76*f126890aSEmmanuel Vadot			  <&clks IMX7D_ENET2_TIME_ROOT_CLK>;
77*f126890aSEmmanuel Vadot	assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
78*f126890aSEmmanuel Vadot	assigned-clock-rates = <0>, <100000000>;
79*f126890aSEmmanuel Vadot	phy-mode = "rgmii-id";
80*f126890aSEmmanuel Vadot	phy-handle = <&ethphy1>;
81*f126890aSEmmanuel Vadot	fsl,magic-packet;
82*f126890aSEmmanuel Vadot	status = "okay";
83*f126890aSEmmanuel Vadot};
84*f126890aSEmmanuel Vadot
85*f126890aSEmmanuel Vadot&i2c2 {
86*f126890aSEmmanuel Vadot	pinctrl-names = "default";
87*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_i2c2>;
88*f126890aSEmmanuel Vadot	status = "okay";
89*f126890aSEmmanuel Vadot
90*f126890aSEmmanuel Vadot	pmic: pmic@8 {
91*f126890aSEmmanuel Vadot		compatible = "fsl,pfuze3000";
92*f126890aSEmmanuel Vadot		reg = <0x8>;
93*f126890aSEmmanuel Vadot
94*f126890aSEmmanuel Vadot		regulators {
95*f126890aSEmmanuel Vadot			sw1a_reg: sw1a {
96*f126890aSEmmanuel Vadot				regulator-min-microvolt = <700000>;
97*f126890aSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
98*f126890aSEmmanuel Vadot				regulator-boot-on;
99*f126890aSEmmanuel Vadot				regulator-always-on;
100*f126890aSEmmanuel Vadot				regulator-ramp-delay = <6250>;
101*f126890aSEmmanuel Vadot			};
102*f126890aSEmmanuel Vadot
103*f126890aSEmmanuel Vadot			/* use sw1c_reg to align with pfuze100/pfuze200 */
104*f126890aSEmmanuel Vadot			sw1c_reg: sw1b {
105*f126890aSEmmanuel Vadot				regulator-min-microvolt = <700000>;
106*f126890aSEmmanuel Vadot				regulator-max-microvolt = <1475000>;
107*f126890aSEmmanuel Vadot				regulator-boot-on;
108*f126890aSEmmanuel Vadot				regulator-always-on;
109*f126890aSEmmanuel Vadot				regulator-ramp-delay = <6250>;
110*f126890aSEmmanuel Vadot			};
111*f126890aSEmmanuel Vadot
112*f126890aSEmmanuel Vadot			sw2_reg: sw2 {
113*f126890aSEmmanuel Vadot				regulator-min-microvolt = <1500000>;
114*f126890aSEmmanuel Vadot				regulator-max-microvolt = <1850000>;
115*f126890aSEmmanuel Vadot				regulator-boot-on;
116*f126890aSEmmanuel Vadot				regulator-always-on;
117*f126890aSEmmanuel Vadot			};
118*f126890aSEmmanuel Vadot
119*f126890aSEmmanuel Vadot			sw3a_reg: sw3 {
120*f126890aSEmmanuel Vadot				regulator-min-microvolt = <900000>;
121*f126890aSEmmanuel Vadot				regulator-max-microvolt = <1650000>;
122*f126890aSEmmanuel Vadot				regulator-boot-on;
123*f126890aSEmmanuel Vadot				regulator-always-on;
124*f126890aSEmmanuel Vadot			};
125*f126890aSEmmanuel Vadot
126*f126890aSEmmanuel Vadot			swbst_reg: swbst {
127*f126890aSEmmanuel Vadot				regulator-min-microvolt = <5000000>;
128*f126890aSEmmanuel Vadot				regulator-max-microvolt = <5150000>;
129*f126890aSEmmanuel Vadot			};
130*f126890aSEmmanuel Vadot
131*f126890aSEmmanuel Vadot			snvs_reg: vsnvs {
132*f126890aSEmmanuel Vadot				regulator-min-microvolt = <1000000>;
133*f126890aSEmmanuel Vadot				regulator-max-microvolt = <3000000>;
134*f126890aSEmmanuel Vadot				regulator-boot-on;
135*f126890aSEmmanuel Vadot				regulator-always-on;
136*f126890aSEmmanuel Vadot			};
137*f126890aSEmmanuel Vadot
138*f126890aSEmmanuel Vadot			vref_reg: vrefddr {
139*f126890aSEmmanuel Vadot				regulator-boot-on;
140*f126890aSEmmanuel Vadot				regulator-always-on;
141*f126890aSEmmanuel Vadot			};
142*f126890aSEmmanuel Vadot
143*f126890aSEmmanuel Vadot			vgen1_reg: vldo1 {
144*f126890aSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
145*f126890aSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
146*f126890aSEmmanuel Vadot				regulator-always-on;
147*f126890aSEmmanuel Vadot			};
148*f126890aSEmmanuel Vadot
149*f126890aSEmmanuel Vadot			vgen2_reg: vldo2 {
150*f126890aSEmmanuel Vadot				regulator-min-microvolt = <800000>;
151*f126890aSEmmanuel Vadot				regulator-max-microvolt = <1550000>;
152*f126890aSEmmanuel Vadot			};
153*f126890aSEmmanuel Vadot
154*f126890aSEmmanuel Vadot			vgen3_reg: vccsd {
155*f126890aSEmmanuel Vadot				regulator-min-microvolt = <2850000>;
156*f126890aSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
157*f126890aSEmmanuel Vadot				regulator-always-on;
158*f126890aSEmmanuel Vadot			};
159*f126890aSEmmanuel Vadot
160*f126890aSEmmanuel Vadot			vgen4_reg: v33 {
161*f126890aSEmmanuel Vadot				regulator-min-microvolt = <2850000>;
162*f126890aSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
163*f126890aSEmmanuel Vadot				regulator-always-on;
164*f126890aSEmmanuel Vadot			};
165*f126890aSEmmanuel Vadot
166*f126890aSEmmanuel Vadot			vgen5_reg: vldo3 {
167*f126890aSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
168*f126890aSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
169*f126890aSEmmanuel Vadot				regulator-always-on;
170*f126890aSEmmanuel Vadot			};
171*f126890aSEmmanuel Vadot
172*f126890aSEmmanuel Vadot			vgen6_reg: vldo4 {
173*f126890aSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
174*f126890aSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
175*f126890aSEmmanuel Vadot				regulator-always-on;
176*f126890aSEmmanuel Vadot			};
177*f126890aSEmmanuel Vadot		};
178*f126890aSEmmanuel Vadot	};
179*f126890aSEmmanuel Vadot
180*f126890aSEmmanuel Vadot	pca9555: pca9555@20 {
181*f126890aSEmmanuel Vadot		compatible = "nxp,pca9555";
182*f126890aSEmmanuel Vadot		gpio-controller;
183*f126890aSEmmanuel Vadot		#gpio-cells = <2>;
184*f126890aSEmmanuel Vadot		reg = <0x20>;
185*f126890aSEmmanuel Vadot	};
186*f126890aSEmmanuel Vadot
187*f126890aSEmmanuel Vadot	eeprom@50 {
188*f126890aSEmmanuel Vadot		compatible = "atmel,24c08";
189*f126890aSEmmanuel Vadot		reg = <0x50>;
190*f126890aSEmmanuel Vadot		pagesize = <16>;
191*f126890aSEmmanuel Vadot	};
192*f126890aSEmmanuel Vadot};
193*f126890aSEmmanuel Vadot
194*f126890aSEmmanuel Vadot&uart1 {
195*f126890aSEmmanuel Vadot	pinctrl-names = "default";
196*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_uart1>;
197*f126890aSEmmanuel Vadot	assigned-clocks = <&clks IMX7D_UART1_ROOT_SRC>;
198*f126890aSEmmanuel Vadot	assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
199*f126890aSEmmanuel Vadot	status = "okay";
200*f126890aSEmmanuel Vadot};
201*f126890aSEmmanuel Vadot
202*f126890aSEmmanuel Vadot&usbotg1 {
203*f126890aSEmmanuel Vadot	pinctrl-names = "default";
204*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_usbotg1>;
205*f126890aSEmmanuel Vadot	vbus-supply = <&reg_usb_otg1_vbus>;
206*f126890aSEmmanuel Vadot	status = "okay";
207*f126890aSEmmanuel Vadot};
208*f126890aSEmmanuel Vadot
209*f126890aSEmmanuel Vadot&usdhc3 {
210*f126890aSEmmanuel Vadot	pinctrl-names = "default";
211*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_usdhc3>;
212*f126890aSEmmanuel Vadot	assigned-clocks = <&clks IMX7D_USDHC3_ROOT_CLK>;
213*f126890aSEmmanuel Vadot	assigned-clock-rates = <400000000>;
214*f126890aSEmmanuel Vadot	bus-width = <8>;
215*f126890aSEmmanuel Vadot	fsl,tuning-step = <2>;
216*f126890aSEmmanuel Vadot	non-removable;
217*f126890aSEmmanuel Vadot	status = "okay";
218*f126890aSEmmanuel Vadot};
219*f126890aSEmmanuel Vadot
220*f126890aSEmmanuel Vadot&iomuxc {
221*f126890aSEmmanuel Vadot	pinctrl_enet1: enet1grp {
222*f126890aSEmmanuel Vadot		fsl,pins = <
223*f126890aSEmmanuel Vadot			MX7D_PAD_SD2_CD_B__ENET1_MDIO			0x30
224*f126890aSEmmanuel Vadot			MX7D_PAD_SD2_WP__ENET1_MDC			0x30
225*f126890aSEmmanuel Vadot			MX7D_PAD_ENET1_RGMII_TXC__ENET1_RGMII_TXC	0x11
226*f126890aSEmmanuel Vadot			MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0	0x11
227*f126890aSEmmanuel Vadot			MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1	0x11
228*f126890aSEmmanuel Vadot			MX7D_PAD_ENET1_RGMII_TD2__ENET1_RGMII_TD2	0x11
229*f126890aSEmmanuel Vadot			MX7D_PAD_ENET1_RGMII_TD3__ENET1_RGMII_TD3	0x11
230*f126890aSEmmanuel Vadot			MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL	0x11
231*f126890aSEmmanuel Vadot			MX7D_PAD_ENET1_RGMII_RXC__ENET1_RGMII_RXC	0x11
232*f126890aSEmmanuel Vadot			MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0	0x11
233*f126890aSEmmanuel Vadot			MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1	0x11
234*f126890aSEmmanuel Vadot			MX7D_PAD_ENET1_RGMII_RD2__ENET1_RGMII_RD2	0x11
235*f126890aSEmmanuel Vadot			MX7D_PAD_ENET1_RGMII_RD3__ENET1_RGMII_RD3	0x11
236*f126890aSEmmanuel Vadot			MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL	0x11
237*f126890aSEmmanuel Vadot		>;
238*f126890aSEmmanuel Vadot	};
239*f126890aSEmmanuel Vadot
240*f126890aSEmmanuel Vadot	pinctrl_enet2: enet2grp {
241*f126890aSEmmanuel Vadot		fsl,pins = <
242*f126890aSEmmanuel Vadot			MX7D_PAD_EPDC_GDSP__ENET2_RGMII_TXC		0x11
243*f126890aSEmmanuel Vadot			MX7D_PAD_EPDC_SDCE2__ENET2_RGMII_TD0		0x11
244*f126890aSEmmanuel Vadot			MX7D_PAD_EPDC_SDCE3__ENET2_RGMII_TD1		0x11
245*f126890aSEmmanuel Vadot			MX7D_PAD_EPDC_GDCLK__ENET2_RGMII_TD2		0x11
246*f126890aSEmmanuel Vadot			MX7D_PAD_EPDC_GDOE__ENET2_RGMII_TD3		0x11
247*f126890aSEmmanuel Vadot			MX7D_PAD_EPDC_GDRL__ENET2_RGMII_TX_CTL		0x11
248*f126890aSEmmanuel Vadot			MX7D_PAD_EPDC_SDCE1__ENET2_RGMII_RXC		0x11
249*f126890aSEmmanuel Vadot			MX7D_PAD_EPDC_SDCLK__ENET2_RGMII_RD0		0x11
250*f126890aSEmmanuel Vadot			MX7D_PAD_EPDC_SDLE__ENET2_RGMII_RD1		0x11
251*f126890aSEmmanuel Vadot			MX7D_PAD_EPDC_SDOE__ENET2_RGMII_RD2		0x11
252*f126890aSEmmanuel Vadot			MX7D_PAD_EPDC_SDSHR__ENET2_RGMII_RD3		0x11
253*f126890aSEmmanuel Vadot			MX7D_PAD_EPDC_SDCE0__ENET2_RGMII_RX_CTL		0x11
254*f126890aSEmmanuel Vadot		>;
255*f126890aSEmmanuel Vadot	};
256*f126890aSEmmanuel Vadot
257*f126890aSEmmanuel Vadot	pinctrl_i2c2: i2c2grp {
258*f126890aSEmmanuel Vadot		fsl,pins = <
259*f126890aSEmmanuel Vadot			MX7D_PAD_I2C2_SDA__I2C2_SDA		0x4000007f
260*f126890aSEmmanuel Vadot			MX7D_PAD_I2C2_SCL__I2C2_SCL		0x4000007f
261*f126890aSEmmanuel Vadot		>;
262*f126890aSEmmanuel Vadot	};
263*f126890aSEmmanuel Vadot
264*f126890aSEmmanuel Vadot	pinctrl_uart1: uart1grp {
265*f126890aSEmmanuel Vadot		fsl,pins = <
266*f126890aSEmmanuel Vadot			MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX	0x79
267*f126890aSEmmanuel Vadot			MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX	0x79
268*f126890aSEmmanuel Vadot		>;
269*f126890aSEmmanuel Vadot	};
270*f126890aSEmmanuel Vadot
271*f126890aSEmmanuel Vadot	pinctrl_usdhc3: usdhc3grp {
272*f126890aSEmmanuel Vadot		fsl,pins = <
273*f126890aSEmmanuel Vadot			MX7D_PAD_SD3_CMD__SD3_CMD		0x59
274*f126890aSEmmanuel Vadot			MX7D_PAD_SD3_CLK__SD3_CLK		0x19
275*f126890aSEmmanuel Vadot			MX7D_PAD_SD3_DATA0__SD3_DATA0		0x59
276*f126890aSEmmanuel Vadot			MX7D_PAD_SD3_DATA1__SD3_DATA1		0x59
277*f126890aSEmmanuel Vadot			MX7D_PAD_SD3_DATA2__SD3_DATA2		0x59
278*f126890aSEmmanuel Vadot			MX7D_PAD_SD3_DATA3__SD3_DATA3		0x59
279*f126890aSEmmanuel Vadot			MX7D_PAD_SD3_DATA4__SD3_DATA4		0x59
280*f126890aSEmmanuel Vadot			MX7D_PAD_SD3_DATA5__SD3_DATA5		0x59
281*f126890aSEmmanuel Vadot			MX7D_PAD_SD3_DATA6__SD3_DATA6		0x59
282*f126890aSEmmanuel Vadot			MX7D_PAD_SD3_DATA7__SD3_DATA7		0x59
283*f126890aSEmmanuel Vadot			MX7D_PAD_SD3_STROBE__SD3_STROBE		0x19
284*f126890aSEmmanuel Vadot		>;
285*f126890aSEmmanuel Vadot	};
286*f126890aSEmmanuel Vadot};
287*f126890aSEmmanuel Vadot
288*f126890aSEmmanuel Vadot&iomuxc_lpsr {
289*f126890aSEmmanuel Vadot	pinctrl_usbotg1: usbotg1grp {
290*f126890aSEmmanuel Vadot		fsl,pins = <
291*f126890aSEmmanuel Vadot			MX7D_PAD_LPSR_GPIO1_IO05__GPIO1_IO5	0x14 /* OTG PWREN */
292*f126890aSEmmanuel Vadot		>;
293*f126890aSEmmanuel Vadot	};
294*f126890aSEmmanuel Vadot};
295