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