xref: /freebsd-src/sys/contrib/device-tree/src/arm/nxp/imx/imx6q.dtsi (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2*f126890aSEmmanuel Vadot//
3*f126890aSEmmanuel Vadot// Copyright 2013 Freescale Semiconductor, Inc.
4*f126890aSEmmanuel Vadot
5*f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
6*f126890aSEmmanuel Vadot#include "imx6q-pinfunc.h"
7*f126890aSEmmanuel Vadot#include "imx6qdl.dtsi"
8*f126890aSEmmanuel Vadot
9*f126890aSEmmanuel Vadot/ {
10*f126890aSEmmanuel Vadot	aliases {
11*f126890aSEmmanuel Vadot		ipu1 = &ipu2;
12*f126890aSEmmanuel Vadot		spi4 = &ecspi5;
13*f126890aSEmmanuel Vadot	};
14*f126890aSEmmanuel Vadot
15*f126890aSEmmanuel Vadot	cpus {
16*f126890aSEmmanuel Vadot		#address-cells = <1>;
17*f126890aSEmmanuel Vadot		#size-cells = <0>;
18*f126890aSEmmanuel Vadot
19*f126890aSEmmanuel Vadot		cpu0: cpu@0 {
20*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a9";
21*f126890aSEmmanuel Vadot			device_type = "cpu";
22*f126890aSEmmanuel Vadot			reg = <0>;
23*f126890aSEmmanuel Vadot			next-level-cache = <&L2>;
24*f126890aSEmmanuel Vadot			operating-points = <
25*f126890aSEmmanuel Vadot				/* kHz    uV */
26*f126890aSEmmanuel Vadot				1200000 1275000
27*f126890aSEmmanuel Vadot				996000  1250000
28*f126890aSEmmanuel Vadot				852000  1250000
29*f126890aSEmmanuel Vadot				792000  1175000
30*f126890aSEmmanuel Vadot				396000  975000
31*f126890aSEmmanuel Vadot			>;
32*f126890aSEmmanuel Vadot			fsl,soc-operating-points = <
33*f126890aSEmmanuel Vadot				/* ARM kHz  SOC-PU uV */
34*f126890aSEmmanuel Vadot				1200000 1275000
35*f126890aSEmmanuel Vadot				996000	1250000
36*f126890aSEmmanuel Vadot				852000	1250000
37*f126890aSEmmanuel Vadot				792000	1175000
38*f126890aSEmmanuel Vadot				396000	1175000
39*f126890aSEmmanuel Vadot			>;
40*f126890aSEmmanuel Vadot			clock-latency = <61036>; /* two CLK32 periods */
41*f126890aSEmmanuel Vadot			#cooling-cells = <2>;
42*f126890aSEmmanuel Vadot			clocks = <&clks IMX6QDL_CLK_ARM>,
43*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
44*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_STEP>,
45*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_PLL1_SW>,
46*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_PLL1_SYS>;
47*f126890aSEmmanuel Vadot			clock-names = "arm", "pll2_pfd2_396m", "step",
48*f126890aSEmmanuel Vadot				      "pll1_sw", "pll1_sys";
49*f126890aSEmmanuel Vadot			arm-supply = <&reg_arm>;
50*f126890aSEmmanuel Vadot			pu-supply = <&reg_pu>;
51*f126890aSEmmanuel Vadot			soc-supply = <&reg_soc>;
52*f126890aSEmmanuel Vadot			nvmem-cells = <&cpu_speed_grade>;
53*f126890aSEmmanuel Vadot			nvmem-cell-names = "speed_grade";
54*f126890aSEmmanuel Vadot		};
55*f126890aSEmmanuel Vadot
56*f126890aSEmmanuel Vadot		cpu1: cpu@1 {
57*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a9";
58*f126890aSEmmanuel Vadot			device_type = "cpu";
59*f126890aSEmmanuel Vadot			reg = <1>;
60*f126890aSEmmanuel Vadot			next-level-cache = <&L2>;
61*f126890aSEmmanuel Vadot			operating-points = <
62*f126890aSEmmanuel Vadot				/* kHz    uV */
63*f126890aSEmmanuel Vadot				1200000 1275000
64*f126890aSEmmanuel Vadot				996000  1250000
65*f126890aSEmmanuel Vadot				852000  1250000
66*f126890aSEmmanuel Vadot				792000  1175000
67*f126890aSEmmanuel Vadot				396000  975000
68*f126890aSEmmanuel Vadot			>;
69*f126890aSEmmanuel Vadot			fsl,soc-operating-points = <
70*f126890aSEmmanuel Vadot				/* ARM kHz  SOC-PU uV */
71*f126890aSEmmanuel Vadot				1200000 1275000
72*f126890aSEmmanuel Vadot				996000	1250000
73*f126890aSEmmanuel Vadot				852000	1250000
74*f126890aSEmmanuel Vadot				792000	1175000
75*f126890aSEmmanuel Vadot				396000	1175000
76*f126890aSEmmanuel Vadot			>;
77*f126890aSEmmanuel Vadot			clock-latency = <61036>; /* two CLK32 periods */
78*f126890aSEmmanuel Vadot			#cooling-cells = <2>;
79*f126890aSEmmanuel Vadot			clocks = <&clks IMX6QDL_CLK_ARM>,
80*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
81*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_STEP>,
82*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_PLL1_SW>,
83*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_PLL1_SYS>;
84*f126890aSEmmanuel Vadot			clock-names = "arm", "pll2_pfd2_396m", "step",
85*f126890aSEmmanuel Vadot				      "pll1_sw", "pll1_sys";
86*f126890aSEmmanuel Vadot			arm-supply = <&reg_arm>;
87*f126890aSEmmanuel Vadot			pu-supply = <&reg_pu>;
88*f126890aSEmmanuel Vadot			soc-supply = <&reg_soc>;
89*f126890aSEmmanuel Vadot		};
90*f126890aSEmmanuel Vadot
91*f126890aSEmmanuel Vadot		cpu2: cpu@2 {
92*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a9";
93*f126890aSEmmanuel Vadot			device_type = "cpu";
94*f126890aSEmmanuel Vadot			reg = <2>;
95*f126890aSEmmanuel Vadot			next-level-cache = <&L2>;
96*f126890aSEmmanuel Vadot			operating-points = <
97*f126890aSEmmanuel Vadot				/* kHz    uV */
98*f126890aSEmmanuel Vadot				1200000 1275000
99*f126890aSEmmanuel Vadot				996000  1250000
100*f126890aSEmmanuel Vadot				852000  1250000
101*f126890aSEmmanuel Vadot				792000  1175000
102*f126890aSEmmanuel Vadot				396000  975000
103*f126890aSEmmanuel Vadot			>;
104*f126890aSEmmanuel Vadot			fsl,soc-operating-points = <
105*f126890aSEmmanuel Vadot				/* ARM kHz  SOC-PU uV */
106*f126890aSEmmanuel Vadot				1200000 1275000
107*f126890aSEmmanuel Vadot				996000	1250000
108*f126890aSEmmanuel Vadot				852000	1250000
109*f126890aSEmmanuel Vadot				792000	1175000
110*f126890aSEmmanuel Vadot				396000	1175000
111*f126890aSEmmanuel Vadot			>;
112*f126890aSEmmanuel Vadot			clock-latency = <61036>; /* two CLK32 periods */
113*f126890aSEmmanuel Vadot			#cooling-cells = <2>;
114*f126890aSEmmanuel Vadot			clocks = <&clks IMX6QDL_CLK_ARM>,
115*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
116*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_STEP>,
117*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_PLL1_SW>,
118*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_PLL1_SYS>;
119*f126890aSEmmanuel Vadot			clock-names = "arm", "pll2_pfd2_396m", "step",
120*f126890aSEmmanuel Vadot				      "pll1_sw", "pll1_sys";
121*f126890aSEmmanuel Vadot			arm-supply = <&reg_arm>;
122*f126890aSEmmanuel Vadot			pu-supply = <&reg_pu>;
123*f126890aSEmmanuel Vadot			soc-supply = <&reg_soc>;
124*f126890aSEmmanuel Vadot		};
125*f126890aSEmmanuel Vadot
126*f126890aSEmmanuel Vadot		cpu3: cpu@3 {
127*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a9";
128*f126890aSEmmanuel Vadot			device_type = "cpu";
129*f126890aSEmmanuel Vadot			reg = <3>;
130*f126890aSEmmanuel Vadot			next-level-cache = <&L2>;
131*f126890aSEmmanuel Vadot			operating-points = <
132*f126890aSEmmanuel Vadot				/* kHz    uV */
133*f126890aSEmmanuel Vadot				1200000 1275000
134*f126890aSEmmanuel Vadot				996000  1250000
135*f126890aSEmmanuel Vadot				852000  1250000
136*f126890aSEmmanuel Vadot				792000  1175000
137*f126890aSEmmanuel Vadot				396000  975000
138*f126890aSEmmanuel Vadot			>;
139*f126890aSEmmanuel Vadot			fsl,soc-operating-points = <
140*f126890aSEmmanuel Vadot				/* ARM kHz  SOC-PU uV */
141*f126890aSEmmanuel Vadot				1200000 1275000
142*f126890aSEmmanuel Vadot				996000	1250000
143*f126890aSEmmanuel Vadot				852000	1250000
144*f126890aSEmmanuel Vadot				792000	1175000
145*f126890aSEmmanuel Vadot				396000	1175000
146*f126890aSEmmanuel Vadot			>;
147*f126890aSEmmanuel Vadot			clock-latency = <61036>; /* two CLK32 periods */
148*f126890aSEmmanuel Vadot			#cooling-cells = <2>;
149*f126890aSEmmanuel Vadot			clocks = <&clks IMX6QDL_CLK_ARM>,
150*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
151*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_STEP>,
152*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_PLL1_SW>,
153*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_PLL1_SYS>;
154*f126890aSEmmanuel Vadot			clock-names = "arm", "pll2_pfd2_396m", "step",
155*f126890aSEmmanuel Vadot				      "pll1_sw", "pll1_sys";
156*f126890aSEmmanuel Vadot			arm-supply = <&reg_arm>;
157*f126890aSEmmanuel Vadot			pu-supply = <&reg_pu>;
158*f126890aSEmmanuel Vadot			soc-supply = <&reg_soc>;
159*f126890aSEmmanuel Vadot		};
160*f126890aSEmmanuel Vadot	};
161*f126890aSEmmanuel Vadot
162*f126890aSEmmanuel Vadot	soc: soc {
163*f126890aSEmmanuel Vadot		ocram: sram@900000 {
164*f126890aSEmmanuel Vadot			compatible = "mmio-sram";
165*f126890aSEmmanuel Vadot			reg = <0x00900000 0x40000>;
166*f126890aSEmmanuel Vadot			ranges = <0 0x00900000 0x40000>;
167*f126890aSEmmanuel Vadot			#address-cells = <1>;
168*f126890aSEmmanuel Vadot			#size-cells = <1>;
169*f126890aSEmmanuel Vadot			clocks = <&clks IMX6QDL_CLK_OCRAM>;
170*f126890aSEmmanuel Vadot		};
171*f126890aSEmmanuel Vadot
172*f126890aSEmmanuel Vadot		aips1: bus@2000000 { /* AIPS1 */
173*f126890aSEmmanuel Vadot			spba-bus@2000000 {
174*f126890aSEmmanuel Vadot				ecspi5: spi@2018000 {
175*f126890aSEmmanuel Vadot					#address-cells = <1>;
176*f126890aSEmmanuel Vadot					#size-cells = <0>;
177*f126890aSEmmanuel Vadot					compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
178*f126890aSEmmanuel Vadot					reg = <0x02018000 0x4000>;
179*f126890aSEmmanuel Vadot					interrupts = <0 35 IRQ_TYPE_LEVEL_HIGH>;
180*f126890aSEmmanuel Vadot					clocks = <&clks IMX6Q_CLK_ECSPI5>,
181*f126890aSEmmanuel Vadot						 <&clks IMX6Q_CLK_ECSPI5>;
182*f126890aSEmmanuel Vadot					clock-names = "ipg", "per";
183*f126890aSEmmanuel Vadot					dmas = <&sdma 11 7 1>, <&sdma 12 7 2>;
184*f126890aSEmmanuel Vadot					dma-names = "rx", "tx";
185*f126890aSEmmanuel Vadot					status = "disabled";
186*f126890aSEmmanuel Vadot				};
187*f126890aSEmmanuel Vadot			};
188*f126890aSEmmanuel Vadot		};
189*f126890aSEmmanuel Vadot
190*f126890aSEmmanuel Vadot		sata: sata@2200000 {
191*f126890aSEmmanuel Vadot			compatible = "fsl,imx6q-ahci";
192*f126890aSEmmanuel Vadot			reg = <0x02200000 0x4000>;
193*f126890aSEmmanuel Vadot			interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
194*f126890aSEmmanuel Vadot			clocks = <&clks IMX6QDL_CLK_SATA>,
195*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_SATA_REF_100M>,
196*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_AHB>;
197*f126890aSEmmanuel Vadot			clock-names = "sata", "sata_ref", "ahb";
198*f126890aSEmmanuel Vadot			status = "disabled";
199*f126890aSEmmanuel Vadot		};
200*f126890aSEmmanuel Vadot
201*f126890aSEmmanuel Vadot		gpu_vg: gpu@2204000 {
202*f126890aSEmmanuel Vadot			compatible = "vivante,gc";
203*f126890aSEmmanuel Vadot			reg = <0x02204000 0x4000>;
204*f126890aSEmmanuel Vadot			interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
205*f126890aSEmmanuel Vadot			clocks = <&clks IMX6QDL_CLK_OPENVG_AXI>,
206*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_GPU2D_CORE>;
207*f126890aSEmmanuel Vadot			clock-names = "bus", "core";
208*f126890aSEmmanuel Vadot			power-domains = <&pd_pu>;
209*f126890aSEmmanuel Vadot			#cooling-cells = <2>;
210*f126890aSEmmanuel Vadot		};
211*f126890aSEmmanuel Vadot
212*f126890aSEmmanuel Vadot		ipu2: ipu@2800000 {
213*f126890aSEmmanuel Vadot			#address-cells = <1>;
214*f126890aSEmmanuel Vadot			#size-cells = <0>;
215*f126890aSEmmanuel Vadot			compatible = "fsl,imx6q-ipu";
216*f126890aSEmmanuel Vadot			reg = <0x02800000 0x400000>;
217*f126890aSEmmanuel Vadot			interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>,
218*f126890aSEmmanuel Vadot				     <0 7 IRQ_TYPE_LEVEL_HIGH>;
219*f126890aSEmmanuel Vadot			clocks = <&clks IMX6QDL_CLK_IPU2>,
220*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_IPU2_DI0>,
221*f126890aSEmmanuel Vadot				 <&clks IMX6QDL_CLK_IPU2_DI1>;
222*f126890aSEmmanuel Vadot			clock-names = "bus", "di0", "di1";
223*f126890aSEmmanuel Vadot			resets = <&src 4>;
224*f126890aSEmmanuel Vadot
225*f126890aSEmmanuel Vadot			ipu2_csi0: port@0 {
226*f126890aSEmmanuel Vadot				reg = <0>;
227*f126890aSEmmanuel Vadot
228*f126890aSEmmanuel Vadot				ipu2_csi0_from_mipi_vc2: endpoint {
229*f126890aSEmmanuel Vadot					remote-endpoint = <&mipi_vc2_to_ipu2_csi0>;
230*f126890aSEmmanuel Vadot				};
231*f126890aSEmmanuel Vadot			};
232*f126890aSEmmanuel Vadot
233*f126890aSEmmanuel Vadot			ipu2_csi1: port@1 {
234*f126890aSEmmanuel Vadot				reg = <1>;
235*f126890aSEmmanuel Vadot
236*f126890aSEmmanuel Vadot				ipu2_csi1_from_ipu2_csi1_mux: endpoint {
237*f126890aSEmmanuel Vadot					remote-endpoint = <&ipu2_csi1_mux_to_ipu2_csi1>;
238*f126890aSEmmanuel Vadot				};
239*f126890aSEmmanuel Vadot			};
240*f126890aSEmmanuel Vadot
241*f126890aSEmmanuel Vadot			ipu2_di0: port@2 {
242*f126890aSEmmanuel Vadot				#address-cells = <1>;
243*f126890aSEmmanuel Vadot				#size-cells = <0>;
244*f126890aSEmmanuel Vadot				reg = <2>;
245*f126890aSEmmanuel Vadot
246*f126890aSEmmanuel Vadot				ipu2_di0_disp0: endpoint@0 {
247*f126890aSEmmanuel Vadot					reg = <0>;
248*f126890aSEmmanuel Vadot				};
249*f126890aSEmmanuel Vadot
250*f126890aSEmmanuel Vadot				ipu2_di0_hdmi: endpoint@1 {
251*f126890aSEmmanuel Vadot					reg = <1>;
252*f126890aSEmmanuel Vadot					remote-endpoint = <&hdmi_mux_2>;
253*f126890aSEmmanuel Vadot				};
254*f126890aSEmmanuel Vadot
255*f126890aSEmmanuel Vadot				ipu2_di0_mipi: endpoint@2 {
256*f126890aSEmmanuel Vadot					reg = <2>;
257*f126890aSEmmanuel Vadot					remote-endpoint = <&mipi_mux_2>;
258*f126890aSEmmanuel Vadot				};
259*f126890aSEmmanuel Vadot
260*f126890aSEmmanuel Vadot				ipu2_di0_lvds0: endpoint@3 {
261*f126890aSEmmanuel Vadot					reg = <3>;
262*f126890aSEmmanuel Vadot					remote-endpoint = <&lvds0_mux_2>;
263*f126890aSEmmanuel Vadot				};
264*f126890aSEmmanuel Vadot
265*f126890aSEmmanuel Vadot				ipu2_di0_lvds1: endpoint@4 {
266*f126890aSEmmanuel Vadot					reg = <4>;
267*f126890aSEmmanuel Vadot					remote-endpoint = <&lvds1_mux_2>;
268*f126890aSEmmanuel Vadot				};
269*f126890aSEmmanuel Vadot			};
270*f126890aSEmmanuel Vadot
271*f126890aSEmmanuel Vadot			ipu2_di1: port@3 {
272*f126890aSEmmanuel Vadot				#address-cells = <1>;
273*f126890aSEmmanuel Vadot				#size-cells = <0>;
274*f126890aSEmmanuel Vadot				reg = <3>;
275*f126890aSEmmanuel Vadot
276*f126890aSEmmanuel Vadot				ipu2_di1_hdmi: endpoint@1 {
277*f126890aSEmmanuel Vadot					reg = <1>;
278*f126890aSEmmanuel Vadot					remote-endpoint = <&hdmi_mux_3>;
279*f126890aSEmmanuel Vadot				};
280*f126890aSEmmanuel Vadot
281*f126890aSEmmanuel Vadot				ipu2_di1_mipi: endpoint@2 {
282*f126890aSEmmanuel Vadot					reg = <2>;
283*f126890aSEmmanuel Vadot					remote-endpoint = <&mipi_mux_3>;
284*f126890aSEmmanuel Vadot				};
285*f126890aSEmmanuel Vadot
286*f126890aSEmmanuel Vadot				ipu2_di1_lvds0: endpoint@3 {
287*f126890aSEmmanuel Vadot					reg = <3>;
288*f126890aSEmmanuel Vadot					remote-endpoint = <&lvds0_mux_3>;
289*f126890aSEmmanuel Vadot				};
290*f126890aSEmmanuel Vadot
291*f126890aSEmmanuel Vadot				ipu2_di1_lvds1: endpoint@4 {
292*f126890aSEmmanuel Vadot					reg = <4>;
293*f126890aSEmmanuel Vadot					remote-endpoint = <&lvds1_mux_3>;
294*f126890aSEmmanuel Vadot				};
295*f126890aSEmmanuel Vadot			};
296*f126890aSEmmanuel Vadot		};
297*f126890aSEmmanuel Vadot	};
298*f126890aSEmmanuel Vadot
299*f126890aSEmmanuel Vadot	capture-subsystem {
300*f126890aSEmmanuel Vadot		compatible = "fsl,imx-capture-subsystem";
301*f126890aSEmmanuel Vadot		ports = <&ipu1_csi0>, <&ipu1_csi1>, <&ipu2_csi0>, <&ipu2_csi1>;
302*f126890aSEmmanuel Vadot	};
303*f126890aSEmmanuel Vadot
304*f126890aSEmmanuel Vadot	display-subsystem {
305*f126890aSEmmanuel Vadot		compatible = "fsl,imx-display-subsystem";
306*f126890aSEmmanuel Vadot		ports = <&ipu1_di0>, <&ipu1_di1>, <&ipu2_di0>, <&ipu2_di1>;
307*f126890aSEmmanuel Vadot	};
308*f126890aSEmmanuel Vadot};
309*f126890aSEmmanuel Vadot
310*f126890aSEmmanuel Vadot&gpio1 {
311*f126890aSEmmanuel Vadot	gpio-ranges = <&iomuxc  0 136  2>, <&iomuxc  2 141 1>, <&iomuxc  3 139 1>,
312*f126890aSEmmanuel Vadot		      <&iomuxc  4 142  2>, <&iomuxc  6 140 1>, <&iomuxc  7 144 2>,
313*f126890aSEmmanuel Vadot		      <&iomuxc  9 138  1>, <&iomuxc 10 213 3>, <&iomuxc 13  20 1>,
314*f126890aSEmmanuel Vadot		      <&iomuxc 14  19  1>, <&iomuxc 15  21 1>, <&iomuxc 16 208 1>,
315*f126890aSEmmanuel Vadot		      <&iomuxc 17 207  1>, <&iomuxc 18 210 3>, <&iomuxc 21 209 1>,
316*f126890aSEmmanuel Vadot		      <&iomuxc 22 116 10>;
317*f126890aSEmmanuel Vadot};
318*f126890aSEmmanuel Vadot
319*f126890aSEmmanuel Vadot&gpio2 {
320*f126890aSEmmanuel Vadot	gpio-ranges = <&iomuxc  0 191 16>, <&iomuxc 16 55 14>, <&iomuxc 30 35 1>,
321*f126890aSEmmanuel Vadot		      <&iomuxc 31  44  1>;
322*f126890aSEmmanuel Vadot};
323*f126890aSEmmanuel Vadot
324*f126890aSEmmanuel Vadot&gpio3 {
325*f126890aSEmmanuel Vadot	gpio-ranges = <&iomuxc 0 69 16>, <&iomuxc 16 36 8>, <&iomuxc 24 45 8>;
326*f126890aSEmmanuel Vadot};
327*f126890aSEmmanuel Vadot
328*f126890aSEmmanuel Vadot&gpio4 {
329*f126890aSEmmanuel Vadot	gpio-ranges = <&iomuxc 5 149 1>, <&iomuxc 6 126 10>, <&iomuxc 16 87 16>;
330*f126890aSEmmanuel Vadot};
331*f126890aSEmmanuel Vadot
332*f126890aSEmmanuel Vadot&gpio5 {
333*f126890aSEmmanuel Vadot	gpio-ranges = <&iomuxc 0  85  1>, <&iomuxc  2  34  1>, <&iomuxc 4 53 1>,
334*f126890aSEmmanuel Vadot		      <&iomuxc 5 103 13>, <&iomuxc 18 150 14>;
335*f126890aSEmmanuel Vadot};
336*f126890aSEmmanuel Vadot
337*f126890aSEmmanuel Vadot&gpio6 {
338*f126890aSEmmanuel Vadot	gpio-ranges = <&iomuxc  0 164 6>, <&iomuxc  6  54 1>, <&iomuxc  7 181  5>,
339*f126890aSEmmanuel Vadot		      <&iomuxc 14 186 3>, <&iomuxc 17 170 2>, <&iomuxc 19  22 12>,
340*f126890aSEmmanuel Vadot		      <&iomuxc 31  86 1>;
341*f126890aSEmmanuel Vadot};
342*f126890aSEmmanuel Vadot
343*f126890aSEmmanuel Vadot&gpio7 {
344*f126890aSEmmanuel Vadot	gpio-ranges = <&iomuxc 0 172 9>, <&iomuxc 9 189 2>, <&iomuxc 11 146 3>;
345*f126890aSEmmanuel Vadot};
346*f126890aSEmmanuel Vadot
347*f126890aSEmmanuel Vadot&gpr {
348*f126890aSEmmanuel Vadot	ipu1_csi0_mux {
349*f126890aSEmmanuel Vadot		compatible = "video-mux";
350*f126890aSEmmanuel Vadot		mux-controls = <&mux 0>;
351*f126890aSEmmanuel Vadot		#address-cells = <1>;
352*f126890aSEmmanuel Vadot		#size-cells = <0>;
353*f126890aSEmmanuel Vadot
354*f126890aSEmmanuel Vadot		port@0 {
355*f126890aSEmmanuel Vadot			reg = <0>;
356*f126890aSEmmanuel Vadot
357*f126890aSEmmanuel Vadot			ipu1_csi0_mux_from_mipi_vc0: endpoint {
358*f126890aSEmmanuel Vadot				remote-endpoint = <&mipi_vc0_to_ipu1_csi0_mux>;
359*f126890aSEmmanuel Vadot			};
360*f126890aSEmmanuel Vadot		};
361*f126890aSEmmanuel Vadot
362*f126890aSEmmanuel Vadot		port@1 {
363*f126890aSEmmanuel Vadot			reg = <1>;
364*f126890aSEmmanuel Vadot
365*f126890aSEmmanuel Vadot			ipu1_csi0_mux_from_parallel_sensor: endpoint {
366*f126890aSEmmanuel Vadot			};
367*f126890aSEmmanuel Vadot		};
368*f126890aSEmmanuel Vadot
369*f126890aSEmmanuel Vadot		port@2 {
370*f126890aSEmmanuel Vadot			reg = <2>;
371*f126890aSEmmanuel Vadot
372*f126890aSEmmanuel Vadot			ipu1_csi0_mux_to_ipu1_csi0: endpoint {
373*f126890aSEmmanuel Vadot				remote-endpoint = <&ipu1_csi0_from_ipu1_csi0_mux>;
374*f126890aSEmmanuel Vadot			};
375*f126890aSEmmanuel Vadot		};
376*f126890aSEmmanuel Vadot	};
377*f126890aSEmmanuel Vadot
378*f126890aSEmmanuel Vadot	ipu2_csi1_mux {
379*f126890aSEmmanuel Vadot		compatible = "video-mux";
380*f126890aSEmmanuel Vadot		mux-controls = <&mux 1>;
381*f126890aSEmmanuel Vadot		#address-cells = <1>;
382*f126890aSEmmanuel Vadot		#size-cells = <0>;
383*f126890aSEmmanuel Vadot
384*f126890aSEmmanuel Vadot		port@0 {
385*f126890aSEmmanuel Vadot			reg = <0>;
386*f126890aSEmmanuel Vadot
387*f126890aSEmmanuel Vadot			ipu2_csi1_mux_from_mipi_vc3: endpoint {
388*f126890aSEmmanuel Vadot				remote-endpoint = <&mipi_vc3_to_ipu2_csi1_mux>;
389*f126890aSEmmanuel Vadot			};
390*f126890aSEmmanuel Vadot		};
391*f126890aSEmmanuel Vadot
392*f126890aSEmmanuel Vadot		port@1 {
393*f126890aSEmmanuel Vadot			reg = <1>;
394*f126890aSEmmanuel Vadot
395*f126890aSEmmanuel Vadot			ipu2_csi1_mux_from_parallel_sensor: endpoint {
396*f126890aSEmmanuel Vadot			};
397*f126890aSEmmanuel Vadot		};
398*f126890aSEmmanuel Vadot
399*f126890aSEmmanuel Vadot		port@2 {
400*f126890aSEmmanuel Vadot			reg = <2>;
401*f126890aSEmmanuel Vadot
402*f126890aSEmmanuel Vadot			ipu2_csi1_mux_to_ipu2_csi1: endpoint {
403*f126890aSEmmanuel Vadot				remote-endpoint = <&ipu2_csi1_from_ipu2_csi1_mux>;
404*f126890aSEmmanuel Vadot			};
405*f126890aSEmmanuel Vadot		};
406*f126890aSEmmanuel Vadot	};
407*f126890aSEmmanuel Vadot};
408*f126890aSEmmanuel Vadot
409*f126890aSEmmanuel Vadot&hdmi {
410*f126890aSEmmanuel Vadot	compatible = "fsl,imx6q-hdmi";
411*f126890aSEmmanuel Vadot
412*f126890aSEmmanuel Vadot	ports {
413*f126890aSEmmanuel Vadot		port@2 {
414*f126890aSEmmanuel Vadot			reg = <2>;
415*f126890aSEmmanuel Vadot
416*f126890aSEmmanuel Vadot			hdmi_mux_2: endpoint {
417*f126890aSEmmanuel Vadot				remote-endpoint = <&ipu2_di0_hdmi>;
418*f126890aSEmmanuel Vadot			};
419*f126890aSEmmanuel Vadot		};
420*f126890aSEmmanuel Vadot
421*f126890aSEmmanuel Vadot		port@3 {
422*f126890aSEmmanuel Vadot			reg = <3>;
423*f126890aSEmmanuel Vadot
424*f126890aSEmmanuel Vadot			hdmi_mux_3: endpoint {
425*f126890aSEmmanuel Vadot				remote-endpoint = <&ipu2_di1_hdmi>;
426*f126890aSEmmanuel Vadot			};
427*f126890aSEmmanuel Vadot		};
428*f126890aSEmmanuel Vadot	};
429*f126890aSEmmanuel Vadot};
430*f126890aSEmmanuel Vadot
431*f126890aSEmmanuel Vadot&iomuxc {
432*f126890aSEmmanuel Vadot	compatible = "fsl,imx6q-iomuxc";
433*f126890aSEmmanuel Vadot};
434*f126890aSEmmanuel Vadot
435*f126890aSEmmanuel Vadot&ipu1_csi1 {
436*f126890aSEmmanuel Vadot	ipu1_csi1_from_mipi_vc1: endpoint {
437*f126890aSEmmanuel Vadot		remote-endpoint = <&mipi_vc1_to_ipu1_csi1>;
438*f126890aSEmmanuel Vadot	};
439*f126890aSEmmanuel Vadot};
440*f126890aSEmmanuel Vadot
441*f126890aSEmmanuel Vadot&ldb {
442*f126890aSEmmanuel Vadot	clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
443*f126890aSEmmanuel Vadot		 <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>,
444*f126890aSEmmanuel Vadot		 <&clks IMX6QDL_CLK_IPU2_DI0_SEL>, <&clks IMX6QDL_CLK_IPU2_DI1_SEL>,
445*f126890aSEmmanuel Vadot		 <&clks IMX6QDL_CLK_LDB_DI0>, <&clks IMX6QDL_CLK_LDB_DI1>;
446*f126890aSEmmanuel Vadot	clock-names = "di0_pll", "di1_pll",
447*f126890aSEmmanuel Vadot		      "di0_sel", "di1_sel", "di2_sel", "di3_sel",
448*f126890aSEmmanuel Vadot		      "di0", "di1";
449*f126890aSEmmanuel Vadot
450*f126890aSEmmanuel Vadot	lvds-channel@0 {
451*f126890aSEmmanuel Vadot		port@2 {
452*f126890aSEmmanuel Vadot			reg = <2>;
453*f126890aSEmmanuel Vadot
454*f126890aSEmmanuel Vadot			lvds0_mux_2: endpoint {
455*f126890aSEmmanuel Vadot				remote-endpoint = <&ipu2_di0_lvds0>;
456*f126890aSEmmanuel Vadot			};
457*f126890aSEmmanuel Vadot		};
458*f126890aSEmmanuel Vadot
459*f126890aSEmmanuel Vadot		port@3 {
460*f126890aSEmmanuel Vadot			reg = <3>;
461*f126890aSEmmanuel Vadot
462*f126890aSEmmanuel Vadot			lvds0_mux_3: endpoint {
463*f126890aSEmmanuel Vadot				remote-endpoint = <&ipu2_di1_lvds0>;
464*f126890aSEmmanuel Vadot			};
465*f126890aSEmmanuel Vadot		};
466*f126890aSEmmanuel Vadot	};
467*f126890aSEmmanuel Vadot
468*f126890aSEmmanuel Vadot	lvds-channel@1 {
469*f126890aSEmmanuel Vadot		port@2 {
470*f126890aSEmmanuel Vadot			reg = <2>;
471*f126890aSEmmanuel Vadot
472*f126890aSEmmanuel Vadot			lvds1_mux_2: endpoint {
473*f126890aSEmmanuel Vadot				remote-endpoint = <&ipu2_di0_lvds1>;
474*f126890aSEmmanuel Vadot			};
475*f126890aSEmmanuel Vadot		};
476*f126890aSEmmanuel Vadot
477*f126890aSEmmanuel Vadot		port@3 {
478*f126890aSEmmanuel Vadot			reg = <3>;
479*f126890aSEmmanuel Vadot
480*f126890aSEmmanuel Vadot			lvds1_mux_3: endpoint {
481*f126890aSEmmanuel Vadot				remote-endpoint = <&ipu2_di1_lvds1>;
482*f126890aSEmmanuel Vadot			};
483*f126890aSEmmanuel Vadot		};
484*f126890aSEmmanuel Vadot	};
485*f126890aSEmmanuel Vadot};
486*f126890aSEmmanuel Vadot
487*f126890aSEmmanuel Vadot&mipi_csi {
488*f126890aSEmmanuel Vadot	port@1 {
489*f126890aSEmmanuel Vadot		reg = <1>;
490*f126890aSEmmanuel Vadot
491*f126890aSEmmanuel Vadot		mipi_vc0_to_ipu1_csi0_mux: endpoint {
492*f126890aSEmmanuel Vadot			remote-endpoint = <&ipu1_csi0_mux_from_mipi_vc0>;
493*f126890aSEmmanuel Vadot		};
494*f126890aSEmmanuel Vadot	};
495*f126890aSEmmanuel Vadot
496*f126890aSEmmanuel Vadot	port@2 {
497*f126890aSEmmanuel Vadot		reg = <2>;
498*f126890aSEmmanuel Vadot
499*f126890aSEmmanuel Vadot		mipi_vc1_to_ipu1_csi1: endpoint {
500*f126890aSEmmanuel Vadot			remote-endpoint = <&ipu1_csi1_from_mipi_vc1>;
501*f126890aSEmmanuel Vadot		};
502*f126890aSEmmanuel Vadot	};
503*f126890aSEmmanuel Vadot
504*f126890aSEmmanuel Vadot	port@3 {
505*f126890aSEmmanuel Vadot		reg = <3>;
506*f126890aSEmmanuel Vadot
507*f126890aSEmmanuel Vadot		mipi_vc2_to_ipu2_csi0: endpoint {
508*f126890aSEmmanuel Vadot			remote-endpoint = <&ipu2_csi0_from_mipi_vc2>;
509*f126890aSEmmanuel Vadot		};
510*f126890aSEmmanuel Vadot	};
511*f126890aSEmmanuel Vadot
512*f126890aSEmmanuel Vadot	port@4 {
513*f126890aSEmmanuel Vadot		reg = <4>;
514*f126890aSEmmanuel Vadot
515*f126890aSEmmanuel Vadot		mipi_vc3_to_ipu2_csi1_mux: endpoint {
516*f126890aSEmmanuel Vadot			remote-endpoint = <&ipu2_csi1_mux_from_mipi_vc3>;
517*f126890aSEmmanuel Vadot		};
518*f126890aSEmmanuel Vadot	};
519*f126890aSEmmanuel Vadot};
520*f126890aSEmmanuel Vadot
521*f126890aSEmmanuel Vadot&mipi_dsi {
522*f126890aSEmmanuel Vadot	ports {
523*f126890aSEmmanuel Vadot		port@2 {
524*f126890aSEmmanuel Vadot			reg = <2>;
525*f126890aSEmmanuel Vadot
526*f126890aSEmmanuel Vadot			mipi_mux_2: endpoint {
527*f126890aSEmmanuel Vadot				remote-endpoint = <&ipu2_di0_mipi>;
528*f126890aSEmmanuel Vadot			};
529*f126890aSEmmanuel Vadot		};
530*f126890aSEmmanuel Vadot
531*f126890aSEmmanuel Vadot		port@3 {
532*f126890aSEmmanuel Vadot			reg = <3>;
533*f126890aSEmmanuel Vadot
534*f126890aSEmmanuel Vadot			mipi_mux_3: endpoint {
535*f126890aSEmmanuel Vadot				remote-endpoint = <&ipu2_di1_mipi>;
536*f126890aSEmmanuel Vadot			};
537*f126890aSEmmanuel Vadot		};
538*f126890aSEmmanuel Vadot	};
539*f126890aSEmmanuel Vadot};
540*f126890aSEmmanuel Vadot
541*f126890aSEmmanuel Vadot&mux {
542*f126890aSEmmanuel Vadot	mux-reg-masks = <0x04 0x00080000>, /* MIPI_IPU1_MUX */
543*f126890aSEmmanuel Vadot			<0x04 0x00100000>, /* MIPI_IPU2_MUX */
544*f126890aSEmmanuel Vadot			<0x0c 0x0000000c>, /* HDMI_MUX_CTL */
545*f126890aSEmmanuel Vadot			<0x0c 0x000000c0>, /* LVDS0_MUX_CTL */
546*f126890aSEmmanuel Vadot			<0x0c 0x00000300>, /* LVDS1_MUX_CTL */
547*f126890aSEmmanuel Vadot			<0x28 0x00000003>, /* DCIC1_MUX_CTL */
548*f126890aSEmmanuel Vadot			<0x28 0x0000000c>; /* DCIC2_MUX_CTL */
549*f126890aSEmmanuel Vadot};
550*f126890aSEmmanuel Vadot
551*f126890aSEmmanuel Vadot&vpu {
552*f126890aSEmmanuel Vadot	compatible = "fsl,imx6q-vpu", "cnm,coda960";
553*f126890aSEmmanuel Vadot};
554