xref: /OK3568_Linux_fs/u-boot/arch/arm/dts/sun5i-gr8.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun/*
2*4882a593Smuzhiyun * Copyright 2016 Mylène Josserand
3*4882a593Smuzhiyun *
4*4882a593Smuzhiyun * Mylène Josserand <mylene.josserand@free-electrons.com>
5*4882a593Smuzhiyun *
6*4882a593Smuzhiyun * This file is dual-licensed: you can use it either under the terms
7*4882a593Smuzhiyun * of the GPL or the X11 license, at your option. Note that this dual
8*4882a593Smuzhiyun * licensing only applies to this file, and not this project as a
9*4882a593Smuzhiyun * whole.
10*4882a593Smuzhiyun *
11*4882a593Smuzhiyun *  a) This library is free software; you can redistribute it and/or
12*4882a593Smuzhiyun *     modify it under the terms of the GNU General Public License as
13*4882a593Smuzhiyun *     published by the Free Software Foundation; either version 2 of the
14*4882a593Smuzhiyun *     License, or (at your option) any later version.
15*4882a593Smuzhiyun *
16*4882a593Smuzhiyun *     This library is distributed in the hope that it will be useful,
17*4882a593Smuzhiyun *     but WITHOUT ANY WARRANTY; without even the implied warranty of
18*4882a593Smuzhiyun *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19*4882a593Smuzhiyun *     GNU General Public License for more details.
20*4882a593Smuzhiyun *
21*4882a593Smuzhiyun * Or, alternatively,
22*4882a593Smuzhiyun *
23*4882a593Smuzhiyun *  b) Permission is hereby granted, free of charge, to any person
24*4882a593Smuzhiyun *     obtaining a copy of this software and associated documentation
25*4882a593Smuzhiyun *     files (the "Software"), to deal in the Software without
26*4882a593Smuzhiyun *     restriction, including without limitation the rights to use,
27*4882a593Smuzhiyun *     copy, modify, merge, publish, distribute, sublicense, and/or
28*4882a593Smuzhiyun *     sell copies of the Software, and to permit persons to whom the
29*4882a593Smuzhiyun *     Software is furnished to do so, subject to the following
30*4882a593Smuzhiyun *     conditions:
31*4882a593Smuzhiyun *
32*4882a593Smuzhiyun *     The above copyright notice and this permission notice shall be
33*4882a593Smuzhiyun *     included in all copies or substantial portions of the Software.
34*4882a593Smuzhiyun *
35*4882a593Smuzhiyun *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36*4882a593Smuzhiyun *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37*4882a593Smuzhiyun *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38*4882a593Smuzhiyun *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39*4882a593Smuzhiyun *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40*4882a593Smuzhiyun *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41*4882a593Smuzhiyun *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42*4882a593Smuzhiyun *     OTHER DEALINGS IN THE SOFTWARE.
43*4882a593Smuzhiyun */
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun#include <dt-bindings/clock/sun4i-a10-pll2.h>
46*4882a593Smuzhiyun#include <dt-bindings/dma/sun4i-a10.h>
47*4882a593Smuzhiyun#include <dt-bindings/pinctrl/sun4i-a10.h>
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun/ {
50*4882a593Smuzhiyun	interrupt-parent = <&intc>;
51*4882a593Smuzhiyun	#address-cells = <1>;
52*4882a593Smuzhiyun	#size-cells = <1>;
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun	cpus {
55*4882a593Smuzhiyun		#address-cells = <1>;
56*4882a593Smuzhiyun		#size-cells = <0>;
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun		cpu0: cpu@0 {
59*4882a593Smuzhiyun			device_type = "cpu";
60*4882a593Smuzhiyun			compatible = "arm,cortex-a8";
61*4882a593Smuzhiyun			reg = <0x0>;
62*4882a593Smuzhiyun			clocks = <&cpu>;
63*4882a593Smuzhiyun		};
64*4882a593Smuzhiyun	};
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun	clocks {
67*4882a593Smuzhiyun		#address-cells = <1>;
68*4882a593Smuzhiyun		#size-cells = <1>;
69*4882a593Smuzhiyun		ranges;
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun		/*
72*4882a593Smuzhiyun		 * This is a dummy clock, to be used as placeholder on
73*4882a593Smuzhiyun		 * other mux clocks when a specific parent clock is not
74*4882a593Smuzhiyun		 * yet implemented. It should be dropped when the driver
75*4882a593Smuzhiyun		 * is complete.
76*4882a593Smuzhiyun		 */
77*4882a593Smuzhiyun		dummy: dummy {
78*4882a593Smuzhiyun			#clock-cells = <0>;
79*4882a593Smuzhiyun			compatible = "fixed-clock";
80*4882a593Smuzhiyun			clock-frequency = <0>;
81*4882a593Smuzhiyun		};
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun		osc24M: clk@01c20050 {
84*4882a593Smuzhiyun			#clock-cells = <0>;
85*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-osc-clk";
86*4882a593Smuzhiyun			reg = <0x01c20050 0x4>;
87*4882a593Smuzhiyun			clock-frequency = <24000000>;
88*4882a593Smuzhiyun			clock-output-names = "osc24M";
89*4882a593Smuzhiyun		};
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun		osc3M: osc3M-clk {
92*4882a593Smuzhiyun			compatible = "fixed-factor-clock";
93*4882a593Smuzhiyun			#clock-cells = <0>;
94*4882a593Smuzhiyun			clock-div = <8>;
95*4882a593Smuzhiyun			clock-mult = <1>;
96*4882a593Smuzhiyun			clocks = <&osc24M>;
97*4882a593Smuzhiyun			clock-output-names = "osc3M";
98*4882a593Smuzhiyun		};
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun		osc32k: clk@0 {
101*4882a593Smuzhiyun			#clock-cells = <0>;
102*4882a593Smuzhiyun			compatible = "fixed-clock";
103*4882a593Smuzhiyun			clock-frequency = <32768>;
104*4882a593Smuzhiyun			clock-output-names = "osc32k";
105*4882a593Smuzhiyun		};
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun		pll1: clk@01c20000 {
108*4882a593Smuzhiyun			#clock-cells = <0>;
109*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-pll1-clk";
110*4882a593Smuzhiyun			reg = <0x01c20000 0x4>;
111*4882a593Smuzhiyun			clocks = <&osc24M>;
112*4882a593Smuzhiyun			clock-output-names = "pll1";
113*4882a593Smuzhiyun		};
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun		pll2: clk@01c20008 {
116*4882a593Smuzhiyun			#clock-cells = <1>;
117*4882a593Smuzhiyun			compatible = "allwinner,sun5i-a13-pll2-clk";
118*4882a593Smuzhiyun			reg = <0x01c20008 0x8>;
119*4882a593Smuzhiyun			clocks = <&osc24M>;
120*4882a593Smuzhiyun			clock-output-names = "pll2-1x", "pll2-2x",
121*4882a593Smuzhiyun					     "pll2-4x", "pll2-8x";
122*4882a593Smuzhiyun		};
123*4882a593Smuzhiyun
124*4882a593Smuzhiyun		pll3: clk@01c20010 {
125*4882a593Smuzhiyun			#clock-cells = <0>;
126*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-pll3-clk";
127*4882a593Smuzhiyun			reg = <0x01c20010 0x4>;
128*4882a593Smuzhiyun			clocks = <&osc3M>;
129*4882a593Smuzhiyun			clock-output-names = "pll3";
130*4882a593Smuzhiyun		};
131*4882a593Smuzhiyun
132*4882a593Smuzhiyun		pll3x2: pll3x2-clk {
133*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-pll3-2x-clk";
134*4882a593Smuzhiyun			#clock-cells = <0>;
135*4882a593Smuzhiyun			clock-div = <1>;
136*4882a593Smuzhiyun			clock-mult = <2>;
137*4882a593Smuzhiyun			clocks = <&pll3>;
138*4882a593Smuzhiyun			clock-output-names = "pll3-2x";
139*4882a593Smuzhiyun		};
140*4882a593Smuzhiyun
141*4882a593Smuzhiyun		pll4: clk@01c20018 {
142*4882a593Smuzhiyun			#clock-cells = <0>;
143*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-pll1-clk";
144*4882a593Smuzhiyun			reg = <0x01c20018 0x4>;
145*4882a593Smuzhiyun			clocks = <&osc24M>;
146*4882a593Smuzhiyun			clock-output-names = "pll4";
147*4882a593Smuzhiyun		};
148*4882a593Smuzhiyun
149*4882a593Smuzhiyun		pll5: clk@01c20020 {
150*4882a593Smuzhiyun			#clock-cells = <1>;
151*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-pll5-clk";
152*4882a593Smuzhiyun			reg = <0x01c20020 0x4>;
153*4882a593Smuzhiyun			clocks = <&osc24M>;
154*4882a593Smuzhiyun			clock-output-names = "pll5_ddr", "pll5_other";
155*4882a593Smuzhiyun		};
156*4882a593Smuzhiyun
157*4882a593Smuzhiyun		pll6: clk@01c20028 {
158*4882a593Smuzhiyun			#clock-cells = <1>;
159*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-pll6-clk";
160*4882a593Smuzhiyun			reg = <0x01c20028 0x4>;
161*4882a593Smuzhiyun			clocks = <&osc24M>;
162*4882a593Smuzhiyun			clock-output-names = "pll6_sata", "pll6_other", "pll6";
163*4882a593Smuzhiyun		};
164*4882a593Smuzhiyun
165*4882a593Smuzhiyun		pll7: clk@01c20030 {
166*4882a593Smuzhiyun			#clock-cells = <0>;
167*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-pll3-clk";
168*4882a593Smuzhiyun			reg = <0x01c20030 0x4>;
169*4882a593Smuzhiyun			clocks = <&osc3M>;
170*4882a593Smuzhiyun			clock-output-names = "pll7";
171*4882a593Smuzhiyun		};
172*4882a593Smuzhiyun
173*4882a593Smuzhiyun		pll7x2: pll7x2-clk {
174*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-pll3-2x-clk";
175*4882a593Smuzhiyun			#clock-cells = <0>;
176*4882a593Smuzhiyun			clock-div = <1>;
177*4882a593Smuzhiyun			clock-mult = <2>;
178*4882a593Smuzhiyun			clocks = <&pll7>;
179*4882a593Smuzhiyun			clock-output-names = "pll7-2x";
180*4882a593Smuzhiyun		};
181*4882a593Smuzhiyun
182*4882a593Smuzhiyun		/* dummy is 200M */
183*4882a593Smuzhiyun		cpu: cpu@01c20054 {
184*4882a593Smuzhiyun			#clock-cells = <0>;
185*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-cpu-clk";
186*4882a593Smuzhiyun			reg = <0x01c20054 0x4>;
187*4882a593Smuzhiyun			clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>;
188*4882a593Smuzhiyun			clock-output-names = "cpu";
189*4882a593Smuzhiyun		};
190*4882a593Smuzhiyun
191*4882a593Smuzhiyun		axi: axi@01c20054 {
192*4882a593Smuzhiyun			#clock-cells = <0>;
193*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-axi-clk";
194*4882a593Smuzhiyun			reg = <0x01c20054 0x4>;
195*4882a593Smuzhiyun			clocks = <&cpu>;
196*4882a593Smuzhiyun			clock-output-names = "axi";
197*4882a593Smuzhiyun		};
198*4882a593Smuzhiyun
199*4882a593Smuzhiyun		ahb: ahb@01c20054 {
200*4882a593Smuzhiyun			#clock-cells = <0>;
201*4882a593Smuzhiyun			compatible = "allwinner,sun5i-a13-ahb-clk";
202*4882a593Smuzhiyun			reg = <0x01c20054 0x4>;
203*4882a593Smuzhiyun			clocks = <&axi>, <&cpu>, <&pll6 1>;
204*4882a593Smuzhiyun			clock-output-names = "ahb";
205*4882a593Smuzhiyun			/*
206*4882a593Smuzhiyun			 * Use PLL6 as parent, instead of CPU/AXI
207*4882a593Smuzhiyun			 * which has rate changes due to cpufreq
208*4882a593Smuzhiyun			 */
209*4882a593Smuzhiyun			assigned-clocks = <&ahb>;
210*4882a593Smuzhiyun			assigned-clock-parents = <&pll6 1>;
211*4882a593Smuzhiyun		};
212*4882a593Smuzhiyun
213*4882a593Smuzhiyun		apb0: apb0@01c20054 {
214*4882a593Smuzhiyun			#clock-cells = <0>;
215*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-apb0-clk";
216*4882a593Smuzhiyun			reg = <0x01c20054 0x4>;
217*4882a593Smuzhiyun			clocks = <&ahb>;
218*4882a593Smuzhiyun			clock-output-names = "apb0";
219*4882a593Smuzhiyun		};
220*4882a593Smuzhiyun
221*4882a593Smuzhiyun		apb1: clk@01c20058 {
222*4882a593Smuzhiyun			#clock-cells = <0>;
223*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-apb1-clk";
224*4882a593Smuzhiyun			reg = <0x01c20058 0x4>;
225*4882a593Smuzhiyun			clocks = <&osc24M>, <&pll6 1>, <&osc32k>;
226*4882a593Smuzhiyun			clock-output-names = "apb1";
227*4882a593Smuzhiyun		};
228*4882a593Smuzhiyun
229*4882a593Smuzhiyun		axi_gates: clk@01c2005c {
230*4882a593Smuzhiyun			#clock-cells = <1>;
231*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-gates-clk";
232*4882a593Smuzhiyun			reg = <0x01c2005c 0x4>;
233*4882a593Smuzhiyun			clocks = <&axi>;
234*4882a593Smuzhiyun			clock-indices = <0>;
235*4882a593Smuzhiyun			clock-output-names = "axi_dram";
236*4882a593Smuzhiyun		};
237*4882a593Smuzhiyun
238*4882a593Smuzhiyun		ahb_gates: clk@01c20060 {
239*4882a593Smuzhiyun			#clock-cells = <1>;
240*4882a593Smuzhiyun			compatible = "allwinner,sun5i-a13-ahb-gates-clk";
241*4882a593Smuzhiyun			reg = <0x01c20060 0x8>;
242*4882a593Smuzhiyun			clocks = <&ahb>;
243*4882a593Smuzhiyun			clock-indices = <0>, <1>,
244*4882a593Smuzhiyun					<2>, <5>, <6>,
245*4882a593Smuzhiyun					<7>, <8>, <9>,
246*4882a593Smuzhiyun					<10>, <13>,
247*4882a593Smuzhiyun					<14>, <17>, <20>,
248*4882a593Smuzhiyun					<21>, <22>,
249*4882a593Smuzhiyun					<28>, <32>, <34>,
250*4882a593Smuzhiyun					<36>, <40>, <44>,
251*4882a593Smuzhiyun					<46>, <51>,
252*4882a593Smuzhiyun					<52>;
253*4882a593Smuzhiyun			clock-output-names = "ahb_usbotg", "ahb_ehci",
254*4882a593Smuzhiyun					     "ahb_ohci", "ahb_ss", "ahb_dma",
255*4882a593Smuzhiyun					     "ahb_bist", "ahb_mmc0", "ahb_mmc1",
256*4882a593Smuzhiyun					     "ahb_mmc2", "ahb_nand",
257*4882a593Smuzhiyun					     "ahb_sdram", "ahb_emac", "ahb_spi0",
258*4882a593Smuzhiyun					     "ahb_spi1", "ahb_spi2",
259*4882a593Smuzhiyun					     "ahb_hstimer", "ahb_ve", "ahb_tve",
260*4882a593Smuzhiyun					     "ahb_lcd", "ahb_csi", "ahb_de_be",
261*4882a593Smuzhiyun					     "ahb_de_fe", "ahb_iep",
262*4882a593Smuzhiyun					     "ahb_mali400";
263*4882a593Smuzhiyun		};
264*4882a593Smuzhiyun
265*4882a593Smuzhiyun		apb0_gates: clk@01c20068 {
266*4882a593Smuzhiyun			#clock-cells = <1>;
267*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-gates-clk";
268*4882a593Smuzhiyun			reg = <0x01c20068 0x4>;
269*4882a593Smuzhiyun			clocks = <&apb0>;
270*4882a593Smuzhiyun			clock-indices = <0>, <3>,
271*4882a593Smuzhiyun					<5>, <6>;
272*4882a593Smuzhiyun			clock-output-names = "apb0_codec", "apb0_i2s0",
273*4882a593Smuzhiyun					     "apb0_pio", "apb0_ir";
274*4882a593Smuzhiyun		};
275*4882a593Smuzhiyun
276*4882a593Smuzhiyun		apb1_gates: clk@01c2006c {
277*4882a593Smuzhiyun			#clock-cells = <1>;
278*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-gates-clk";
279*4882a593Smuzhiyun			reg = <0x01c2006c 0x4>;
280*4882a593Smuzhiyun			clocks = <&apb1>;
281*4882a593Smuzhiyun			clock-indices = <0>, <1>,
282*4882a593Smuzhiyun					<2>, <17>,
283*4882a593Smuzhiyun					<18>, <19>;
284*4882a593Smuzhiyun			clock-output-names = "apb1_i2c0", "apb1_i2c1",
285*4882a593Smuzhiyun					     "apb1_i2c2", "apb1_uart1",
286*4882a593Smuzhiyun					     "apb1_uart2", "apb1_uart3";
287*4882a593Smuzhiyun		};
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun		nand_clk: clk@01c20080 {
290*4882a593Smuzhiyun			#clock-cells = <0>;
291*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-mod0-clk";
292*4882a593Smuzhiyun			reg = <0x01c20080 0x4>;
293*4882a593Smuzhiyun			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
294*4882a593Smuzhiyun			clock-output-names = "nand";
295*4882a593Smuzhiyun		};
296*4882a593Smuzhiyun
297*4882a593Smuzhiyun		ms_clk: clk@01c20084 {
298*4882a593Smuzhiyun			#clock-cells = <0>;
299*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-mod0-clk";
300*4882a593Smuzhiyun			reg = <0x01c20084 0x4>;
301*4882a593Smuzhiyun			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
302*4882a593Smuzhiyun			clock-output-names = "ms";
303*4882a593Smuzhiyun		};
304*4882a593Smuzhiyun
305*4882a593Smuzhiyun		mmc0_clk: clk@01c20088 {
306*4882a593Smuzhiyun			#clock-cells = <1>;
307*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-mmc-clk";
308*4882a593Smuzhiyun			reg = <0x01c20088 0x4>;
309*4882a593Smuzhiyun			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
310*4882a593Smuzhiyun			clock-output-names = "mmc0",
311*4882a593Smuzhiyun					     "mmc0_output",
312*4882a593Smuzhiyun					     "mmc0_sample";
313*4882a593Smuzhiyun		};
314*4882a593Smuzhiyun
315*4882a593Smuzhiyun		mmc1_clk: clk@01c2008c {
316*4882a593Smuzhiyun			#clock-cells = <1>;
317*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-mmc-clk";
318*4882a593Smuzhiyun			reg = <0x01c2008c 0x4>;
319*4882a593Smuzhiyun			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
320*4882a593Smuzhiyun			clock-output-names = "mmc1",
321*4882a593Smuzhiyun					     "mmc1_output",
322*4882a593Smuzhiyun					     "mmc1_sample";
323*4882a593Smuzhiyun		};
324*4882a593Smuzhiyun
325*4882a593Smuzhiyun		mmc2_clk: clk@01c20090 {
326*4882a593Smuzhiyun			#clock-cells = <1>;
327*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-mmc-clk";
328*4882a593Smuzhiyun			reg = <0x01c20090 0x4>;
329*4882a593Smuzhiyun			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
330*4882a593Smuzhiyun			clock-output-names = "mmc2",
331*4882a593Smuzhiyun					     "mmc2_output",
332*4882a593Smuzhiyun					     "mmc2_sample";
333*4882a593Smuzhiyun		};
334*4882a593Smuzhiyun
335*4882a593Smuzhiyun		ts_clk: clk@01c20098 {
336*4882a593Smuzhiyun			#clock-cells = <0>;
337*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-mod0-clk";
338*4882a593Smuzhiyun			reg = <0x01c20098 0x4>;
339*4882a593Smuzhiyun			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
340*4882a593Smuzhiyun			clock-output-names = "ts";
341*4882a593Smuzhiyun		};
342*4882a593Smuzhiyun
343*4882a593Smuzhiyun		ss_clk: clk@01c2009c {
344*4882a593Smuzhiyun			#clock-cells = <0>;
345*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-mod0-clk";
346*4882a593Smuzhiyun			reg = <0x01c2009c 0x4>;
347*4882a593Smuzhiyun			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
348*4882a593Smuzhiyun			clock-output-names = "ss";
349*4882a593Smuzhiyun		};
350*4882a593Smuzhiyun
351*4882a593Smuzhiyun		spi0_clk: clk@01c200a0 {
352*4882a593Smuzhiyun			#clock-cells = <0>;
353*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-mod0-clk";
354*4882a593Smuzhiyun			reg = <0x01c200a0 0x4>;
355*4882a593Smuzhiyun			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
356*4882a593Smuzhiyun			clock-output-names = "spi0";
357*4882a593Smuzhiyun		};
358*4882a593Smuzhiyun
359*4882a593Smuzhiyun		spi1_clk: clk@01c200a4 {
360*4882a593Smuzhiyun			#clock-cells = <0>;
361*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-mod0-clk";
362*4882a593Smuzhiyun			reg = <0x01c200a4 0x4>;
363*4882a593Smuzhiyun			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
364*4882a593Smuzhiyun			clock-output-names = "spi1";
365*4882a593Smuzhiyun		};
366*4882a593Smuzhiyun
367*4882a593Smuzhiyun		spi2_clk: clk@01c200a8 {
368*4882a593Smuzhiyun			#clock-cells = <0>;
369*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-mod0-clk";
370*4882a593Smuzhiyun			reg = <0x01c200a8 0x4>;
371*4882a593Smuzhiyun			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
372*4882a593Smuzhiyun			clock-output-names = "spi2";
373*4882a593Smuzhiyun		};
374*4882a593Smuzhiyun
375*4882a593Smuzhiyun		ir0_clk: clk@01c200b0 {
376*4882a593Smuzhiyun			#clock-cells = <0>;
377*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-mod0-clk";
378*4882a593Smuzhiyun			reg = <0x01c200b0 0x4>;
379*4882a593Smuzhiyun			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
380*4882a593Smuzhiyun			clock-output-names = "ir0";
381*4882a593Smuzhiyun		};
382*4882a593Smuzhiyun
383*4882a593Smuzhiyun		i2s0_clk: clk@01c200b8 {
384*4882a593Smuzhiyun			#clock-cells = <0>;
385*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-mod1-clk";
386*4882a593Smuzhiyun			reg = <0x01c200b8 0x4>;
387*4882a593Smuzhiyun			clocks = <&pll2 SUN4I_A10_PLL2_8X>,
388*4882a593Smuzhiyun				 <&pll2 SUN4I_A10_PLL2_4X>,
389*4882a593Smuzhiyun				 <&pll2 SUN4I_A10_PLL2_2X>,
390*4882a593Smuzhiyun				 <&pll2 SUN4I_A10_PLL2_1X>;
391*4882a593Smuzhiyun			clock-output-names = "i2s0";
392*4882a593Smuzhiyun		};
393*4882a593Smuzhiyun
394*4882a593Smuzhiyun		spdif_clk: clk@01c200c0 {
395*4882a593Smuzhiyun			#clock-cells = <0>;
396*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-mod1-clk";
397*4882a593Smuzhiyun			reg = <0x01c200c0 0x4>;
398*4882a593Smuzhiyun			clocks = <&pll2 SUN4I_A10_PLL2_8X>,
399*4882a593Smuzhiyun				 <&pll2 SUN4I_A10_PLL2_4X>,
400*4882a593Smuzhiyun				 <&pll2 SUN4I_A10_PLL2_2X>,
401*4882a593Smuzhiyun				 <&pll2 SUN4I_A10_PLL2_1X>;
402*4882a593Smuzhiyun			clock-output-names = "spdif";
403*4882a593Smuzhiyun		};
404*4882a593Smuzhiyun
405*4882a593Smuzhiyun		usb_clk: clk@01c200cc {
406*4882a593Smuzhiyun			#clock-cells = <1>;
407*4882a593Smuzhiyun			#reset-cells = <1>;
408*4882a593Smuzhiyun			compatible = "allwinner,sun5i-a13-usb-clk";
409*4882a593Smuzhiyun			reg = <0x01c200cc 0x4>;
410*4882a593Smuzhiyun			clocks = <&pll6 1>;
411*4882a593Smuzhiyun			clock-output-names = "usb_ohci0", "usb_phy";
412*4882a593Smuzhiyun		};
413*4882a593Smuzhiyun
414*4882a593Smuzhiyun		dram_gates: clk@01c20100 {
415*4882a593Smuzhiyun			#clock-cells = <1>;
416*4882a593Smuzhiyun			compatible = "nextthing,gr8-dram-gates-clk",
417*4882a593Smuzhiyun				     "allwinner,sun4i-a10-gates-clk";
418*4882a593Smuzhiyun			reg = <0x01c20100 0x4>;
419*4882a593Smuzhiyun			clocks = <&pll5 0>;
420*4882a593Smuzhiyun			clock-indices = <0>,
421*4882a593Smuzhiyun					<1>,
422*4882a593Smuzhiyun					<25>,
423*4882a593Smuzhiyun					<26>,
424*4882a593Smuzhiyun					<29>,
425*4882a593Smuzhiyun					<31>;
426*4882a593Smuzhiyun			clock-output-names = "dram_ve",
427*4882a593Smuzhiyun					     "dram_csi",
428*4882a593Smuzhiyun					     "dram_de_fe",
429*4882a593Smuzhiyun					     "dram_de_be",
430*4882a593Smuzhiyun					     "dram_ace",
431*4882a593Smuzhiyun					     "dram_iep";
432*4882a593Smuzhiyun		};
433*4882a593Smuzhiyun
434*4882a593Smuzhiyun		de_be_clk: clk@01c20104 {
435*4882a593Smuzhiyun			#clock-cells = <0>;
436*4882a593Smuzhiyun			#reset-cells = <0>;
437*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-display-clk";
438*4882a593Smuzhiyun			reg = <0x01c20104 0x4>;
439*4882a593Smuzhiyun			clocks = <&pll3>, <&pll7>, <&pll5 1>;
440*4882a593Smuzhiyun			clock-output-names = "de-be";
441*4882a593Smuzhiyun		};
442*4882a593Smuzhiyun
443*4882a593Smuzhiyun		de_fe_clk: clk@01c2010c {
444*4882a593Smuzhiyun			#clock-cells = <0>;
445*4882a593Smuzhiyun			#reset-cells = <0>;
446*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-display-clk";
447*4882a593Smuzhiyun			reg = <0x01c2010c 0x4>;
448*4882a593Smuzhiyun			clocks = <&pll3>, <&pll7>, <&pll5 1>;
449*4882a593Smuzhiyun			clock-output-names = "de-fe";
450*4882a593Smuzhiyun		};
451*4882a593Smuzhiyun
452*4882a593Smuzhiyun		tcon_ch0_clk: clk@01c20118 {
453*4882a593Smuzhiyun			#clock-cells = <0>;
454*4882a593Smuzhiyun			#reset-cells = <1>;
455*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-tcon-ch0-clk";
456*4882a593Smuzhiyun			reg = <0x01c20118 0x4>;
457*4882a593Smuzhiyun			clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
458*4882a593Smuzhiyun			clock-output-names = "tcon-ch0-sclk";
459*4882a593Smuzhiyun		};
460*4882a593Smuzhiyun
461*4882a593Smuzhiyun		tcon_ch1_clk: clk@01c2012c {
462*4882a593Smuzhiyun			#clock-cells = <0>;
463*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-tcon-ch1-clk";
464*4882a593Smuzhiyun			reg = <0x01c2012c 0x4>;
465*4882a593Smuzhiyun			clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
466*4882a593Smuzhiyun			clock-output-names = "tcon-ch1-sclk";
467*4882a593Smuzhiyun		};
468*4882a593Smuzhiyun
469*4882a593Smuzhiyun		codec_clk: clk@01c20140 {
470*4882a593Smuzhiyun			#clock-cells = <0>;
471*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-codec-clk";
472*4882a593Smuzhiyun			reg = <0x01c20140 0x4>;
473*4882a593Smuzhiyun			clocks = <&pll2 SUN4I_A10_PLL2_1X>;
474*4882a593Smuzhiyun			clock-output-names = "codec";
475*4882a593Smuzhiyun		};
476*4882a593Smuzhiyun
477*4882a593Smuzhiyun		mbus_clk: clk@01c2015c {
478*4882a593Smuzhiyun			#clock-cells = <0>;
479*4882a593Smuzhiyun			compatible = "allwinner,sun5i-a13-mbus-clk";
480*4882a593Smuzhiyun			reg = <0x01c2015c 0x4>;
481*4882a593Smuzhiyun			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
482*4882a593Smuzhiyun			clock-output-names = "mbus";
483*4882a593Smuzhiyun		};
484*4882a593Smuzhiyun	};
485*4882a593Smuzhiyun
486*4882a593Smuzhiyun	display-engine {
487*4882a593Smuzhiyun		compatible = "allwinner,sun5i-a13-display-engine";
488*4882a593Smuzhiyun		allwinner,pipelines = <&fe0>;
489*4882a593Smuzhiyun	};
490*4882a593Smuzhiyun
491*4882a593Smuzhiyun	soc@01c00000 {
492*4882a593Smuzhiyun		compatible = "simple-bus";
493*4882a593Smuzhiyun		#address-cells = <1>;
494*4882a593Smuzhiyun		#size-cells = <1>;
495*4882a593Smuzhiyun		ranges;
496*4882a593Smuzhiyun
497*4882a593Smuzhiyun		sram-controller@01c00000 {
498*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-sram-controller";
499*4882a593Smuzhiyun			reg = <0x01c00000 0x30>;
500*4882a593Smuzhiyun			#address-cells = <1>;
501*4882a593Smuzhiyun			#size-cells = <1>;
502*4882a593Smuzhiyun			ranges;
503*4882a593Smuzhiyun
504*4882a593Smuzhiyun			sram_a: sram@00000000 {
505*4882a593Smuzhiyun				compatible = "mmio-sram";
506*4882a593Smuzhiyun				reg = <0x00000000 0xc000>;
507*4882a593Smuzhiyun				#address-cells = <1>;
508*4882a593Smuzhiyun				#size-cells = <1>;
509*4882a593Smuzhiyun				ranges = <0 0x00000000 0xc000>;
510*4882a593Smuzhiyun			};
511*4882a593Smuzhiyun
512*4882a593Smuzhiyun			sram_d: sram@00010000 {
513*4882a593Smuzhiyun				compatible = "mmio-sram";
514*4882a593Smuzhiyun				reg = <0x00010000 0x1000>;
515*4882a593Smuzhiyun				#address-cells = <1>;
516*4882a593Smuzhiyun				#size-cells = <1>;
517*4882a593Smuzhiyun				ranges = <0 0x00010000 0x1000>;
518*4882a593Smuzhiyun
519*4882a593Smuzhiyun				otg_sram: sram-section@0000 {
520*4882a593Smuzhiyun					compatible = "allwinner,sun4i-a10-sram-d";
521*4882a593Smuzhiyun					reg = <0x0000 0x1000>;
522*4882a593Smuzhiyun					status = "disabled";
523*4882a593Smuzhiyun				};
524*4882a593Smuzhiyun			};
525*4882a593Smuzhiyun		};
526*4882a593Smuzhiyun
527*4882a593Smuzhiyun		dma: dma-controller@01c02000 {
528*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-dma";
529*4882a593Smuzhiyun			reg = <0x01c02000 0x1000>;
530*4882a593Smuzhiyun			interrupts = <27>;
531*4882a593Smuzhiyun			clocks = <&ahb_gates 6>;
532*4882a593Smuzhiyun			#dma-cells = <2>;
533*4882a593Smuzhiyun		};
534*4882a593Smuzhiyun
535*4882a593Smuzhiyun		nfc: nand@01c03000 {
536*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-nand";
537*4882a593Smuzhiyun			reg = <0x01c03000 0x1000>;
538*4882a593Smuzhiyun			interrupts = <37>;
539*4882a593Smuzhiyun			clocks = <&ahb_gates 13>, <&nand_clk>;
540*4882a593Smuzhiyun			clock-names = "ahb", "mod";
541*4882a593Smuzhiyun			dmas = <&dma SUN4I_DMA_DEDICATED 3>;
542*4882a593Smuzhiyun			dma-names = "rxtx";
543*4882a593Smuzhiyun			status = "disabled";
544*4882a593Smuzhiyun			#address-cells = <1>;
545*4882a593Smuzhiyun			#size-cells = <0>;
546*4882a593Smuzhiyun		};
547*4882a593Smuzhiyun
548*4882a593Smuzhiyun		spi0: spi@01c05000 {
549*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-spi";
550*4882a593Smuzhiyun			reg = <0x01c05000 0x1000>;
551*4882a593Smuzhiyun			interrupts = <10>;
552*4882a593Smuzhiyun			clocks = <&ahb_gates 20>, <&spi0_clk>;
553*4882a593Smuzhiyun			clock-names = "ahb", "mod";
554*4882a593Smuzhiyun			dmas = <&dma SUN4I_DMA_DEDICATED 27>,
555*4882a593Smuzhiyun			       <&dma SUN4I_DMA_DEDICATED 26>;
556*4882a593Smuzhiyun			dma-names = "rx", "tx";
557*4882a593Smuzhiyun			status = "disabled";
558*4882a593Smuzhiyun			#address-cells = <1>;
559*4882a593Smuzhiyun			#size-cells = <0>;
560*4882a593Smuzhiyun		};
561*4882a593Smuzhiyun
562*4882a593Smuzhiyun		spi1: spi@01c06000 {
563*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-spi";
564*4882a593Smuzhiyun			reg = <0x01c06000 0x1000>;
565*4882a593Smuzhiyun			interrupts = <11>;
566*4882a593Smuzhiyun			clocks = <&ahb_gates 21>, <&spi1_clk>;
567*4882a593Smuzhiyun			clock-names = "ahb", "mod";
568*4882a593Smuzhiyun			dmas = <&dma SUN4I_DMA_DEDICATED 9>,
569*4882a593Smuzhiyun			       <&dma SUN4I_DMA_DEDICATED 8>;
570*4882a593Smuzhiyun			dma-names = "rx", "tx";
571*4882a593Smuzhiyun			status = "disabled";
572*4882a593Smuzhiyun			#address-cells = <1>;
573*4882a593Smuzhiyun			#size-cells = <0>;
574*4882a593Smuzhiyun		};
575*4882a593Smuzhiyun
576*4882a593Smuzhiyun		tve0: tv-encoder@01c0a000 {
577*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-tv-encoder";
578*4882a593Smuzhiyun			reg = <0x01c0a000 0x1000>;
579*4882a593Smuzhiyun			clocks = <&ahb_gates 34>;
580*4882a593Smuzhiyun			resets = <&tcon_ch0_clk 0>;
581*4882a593Smuzhiyun			status = "disabled";
582*4882a593Smuzhiyun
583*4882a593Smuzhiyun			port {
584*4882a593Smuzhiyun				#address-cells = <1>;
585*4882a593Smuzhiyun				#size-cells = <0>;
586*4882a593Smuzhiyun
587*4882a593Smuzhiyun				tve0_in_tcon0: endpoint@0 {
588*4882a593Smuzhiyun					reg = <0>;
589*4882a593Smuzhiyun					remote-endpoint = <&tcon0_out_tve0>;
590*4882a593Smuzhiyun				};
591*4882a593Smuzhiyun			};
592*4882a593Smuzhiyun		};
593*4882a593Smuzhiyun
594*4882a593Smuzhiyun		tcon0: lcd-controller@01c0c000 {
595*4882a593Smuzhiyun			compatible = "allwinner,sun5i-a13-tcon";
596*4882a593Smuzhiyun			reg = <0x01c0c000 0x1000>;
597*4882a593Smuzhiyun			interrupts = <44>;
598*4882a593Smuzhiyun			resets = <&tcon_ch0_clk 1>;
599*4882a593Smuzhiyun			reset-names = "lcd";
600*4882a593Smuzhiyun			clocks = <&ahb_gates 36>,
601*4882a593Smuzhiyun				 <&tcon_ch0_clk>,
602*4882a593Smuzhiyun				 <&tcon_ch1_clk>;
603*4882a593Smuzhiyun			clock-names = "ahb",
604*4882a593Smuzhiyun				      "tcon-ch0",
605*4882a593Smuzhiyun				      "tcon-ch1";
606*4882a593Smuzhiyun			clock-output-names = "tcon-pixel-clock";
607*4882a593Smuzhiyun			status = "disabled";
608*4882a593Smuzhiyun
609*4882a593Smuzhiyun			ports {
610*4882a593Smuzhiyun				#address-cells = <1>;
611*4882a593Smuzhiyun				#size-cells = <0>;
612*4882a593Smuzhiyun
613*4882a593Smuzhiyun				tcon0_in: port@0 {
614*4882a593Smuzhiyun					#address-cells = <1>;
615*4882a593Smuzhiyun					#size-cells = <0>;
616*4882a593Smuzhiyun					reg = <0>;
617*4882a593Smuzhiyun
618*4882a593Smuzhiyun					tcon0_in_be0: endpoint@0 {
619*4882a593Smuzhiyun						reg = <0>;
620*4882a593Smuzhiyun						remote-endpoint = <&be0_out_tcon0>;
621*4882a593Smuzhiyun					};
622*4882a593Smuzhiyun				};
623*4882a593Smuzhiyun
624*4882a593Smuzhiyun				tcon0_out: port@1 {
625*4882a593Smuzhiyun					#address-cells = <1>;
626*4882a593Smuzhiyun					#size-cells = <0>;
627*4882a593Smuzhiyun					reg = <1>;
628*4882a593Smuzhiyun
629*4882a593Smuzhiyun					tcon0_out_tve0: endpoint@1 {
630*4882a593Smuzhiyun						reg = <1>;
631*4882a593Smuzhiyun						remote-endpoint = <&tve0_in_tcon0>;
632*4882a593Smuzhiyun					};
633*4882a593Smuzhiyun				};
634*4882a593Smuzhiyun			};
635*4882a593Smuzhiyun		};
636*4882a593Smuzhiyun
637*4882a593Smuzhiyun		mmc0: mmc@01c0f000 {
638*4882a593Smuzhiyun			compatible = "allwinner,sun5i-a13-mmc";
639*4882a593Smuzhiyun			reg = <0x01c0f000 0x1000>;
640*4882a593Smuzhiyun			clocks = <&ahb_gates 8>,
641*4882a593Smuzhiyun				 <&mmc0_clk 0>,
642*4882a593Smuzhiyun				 <&mmc0_clk 1>,
643*4882a593Smuzhiyun				 <&mmc0_clk 2>;
644*4882a593Smuzhiyun			clock-names = "ahb",
645*4882a593Smuzhiyun				      "mmc",
646*4882a593Smuzhiyun				      "output",
647*4882a593Smuzhiyun				      "sample";
648*4882a593Smuzhiyun			interrupts = <32>;
649*4882a593Smuzhiyun			status = "disabled";
650*4882a593Smuzhiyun			#address-cells = <1>;
651*4882a593Smuzhiyun			#size-cells = <0>;
652*4882a593Smuzhiyun		};
653*4882a593Smuzhiyun
654*4882a593Smuzhiyun		mmc1: mmc@01c10000 {
655*4882a593Smuzhiyun			compatible = "allwinner,sun5i-a13-mmc";
656*4882a593Smuzhiyun			reg = <0x01c10000 0x1000>;
657*4882a593Smuzhiyun			clocks = <&ahb_gates 9>,
658*4882a593Smuzhiyun				 <&mmc1_clk 0>,
659*4882a593Smuzhiyun				 <&mmc1_clk 1>,
660*4882a593Smuzhiyun				 <&mmc1_clk 2>;
661*4882a593Smuzhiyun			clock-names = "ahb",
662*4882a593Smuzhiyun				      "mmc",
663*4882a593Smuzhiyun				      "output",
664*4882a593Smuzhiyun				      "sample";
665*4882a593Smuzhiyun			interrupts = <33>;
666*4882a593Smuzhiyun			status = "disabled";
667*4882a593Smuzhiyun			#address-cells = <1>;
668*4882a593Smuzhiyun			#size-cells = <0>;
669*4882a593Smuzhiyun		};
670*4882a593Smuzhiyun
671*4882a593Smuzhiyun		mmc2: mmc@01c11000 {
672*4882a593Smuzhiyun			compatible = "allwinner,sun5i-a13-mmc";
673*4882a593Smuzhiyun			reg = <0x01c11000 0x1000>;
674*4882a593Smuzhiyun			clocks = <&ahb_gates 10>,
675*4882a593Smuzhiyun				 <&mmc2_clk 0>,
676*4882a593Smuzhiyun				 <&mmc2_clk 1>,
677*4882a593Smuzhiyun				 <&mmc2_clk 2>;
678*4882a593Smuzhiyun			clock-names = "ahb",
679*4882a593Smuzhiyun				      "mmc",
680*4882a593Smuzhiyun				      "output",
681*4882a593Smuzhiyun				      "sample";
682*4882a593Smuzhiyun			interrupts = <34>;
683*4882a593Smuzhiyun			status = "disabled";
684*4882a593Smuzhiyun			#address-cells = <1>;
685*4882a593Smuzhiyun			#size-cells = <0>;
686*4882a593Smuzhiyun		};
687*4882a593Smuzhiyun
688*4882a593Smuzhiyun		usb_otg: usb@01c13000 {
689*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-musb";
690*4882a593Smuzhiyun			reg = <0x01c13000 0x0400>;
691*4882a593Smuzhiyun			clocks = <&ahb_gates 0>;
692*4882a593Smuzhiyun			interrupts = <38>;
693*4882a593Smuzhiyun			interrupt-names = "mc";
694*4882a593Smuzhiyun			phys = <&usbphy 0>;
695*4882a593Smuzhiyun			phy-names = "usb";
696*4882a593Smuzhiyun			extcon = <&usbphy 0>;
697*4882a593Smuzhiyun			allwinner,sram = <&otg_sram 1>;
698*4882a593Smuzhiyun			status = "disabled";
699*4882a593Smuzhiyun
700*4882a593Smuzhiyun			dr_mode = "otg";
701*4882a593Smuzhiyun		};
702*4882a593Smuzhiyun
703*4882a593Smuzhiyun		usbphy: phy@01c13400 {
704*4882a593Smuzhiyun			#phy-cells = <1>;
705*4882a593Smuzhiyun			compatible = "allwinner,sun5i-a13-usb-phy";
706*4882a593Smuzhiyun			reg = <0x01c13400 0x10 0x01c14800 0x4>;
707*4882a593Smuzhiyun			reg-names = "phy_ctrl", "pmu1";
708*4882a593Smuzhiyun			clocks = <&usb_clk 8>;
709*4882a593Smuzhiyun			clock-names = "usb_phy";
710*4882a593Smuzhiyun			resets = <&usb_clk 0>, <&usb_clk 1>;
711*4882a593Smuzhiyun			reset-names = "usb0_reset", "usb1_reset";
712*4882a593Smuzhiyun			status = "disabled";
713*4882a593Smuzhiyun		};
714*4882a593Smuzhiyun
715*4882a593Smuzhiyun		ehci0: usb@01c14000 {
716*4882a593Smuzhiyun			compatible = "allwinner,sun5i-a13-ehci", "generic-ehci";
717*4882a593Smuzhiyun			reg = <0x01c14000 0x100>;
718*4882a593Smuzhiyun			interrupts = <39>;
719*4882a593Smuzhiyun			clocks = <&ahb_gates 1>;
720*4882a593Smuzhiyun			phys = <&usbphy 1>;
721*4882a593Smuzhiyun			phy-names = "usb";
722*4882a593Smuzhiyun			status = "disabled";
723*4882a593Smuzhiyun		};
724*4882a593Smuzhiyun
725*4882a593Smuzhiyun		ohci0: usb@01c14400 {
726*4882a593Smuzhiyun			compatible = "allwinner,sun5i-a13-ohci", "generic-ohci";
727*4882a593Smuzhiyun			reg = <0x01c14400 0x100>;
728*4882a593Smuzhiyun			interrupts = <40>;
729*4882a593Smuzhiyun			clocks = <&usb_clk 6>, <&ahb_gates 2>;
730*4882a593Smuzhiyun			phys = <&usbphy 1>;
731*4882a593Smuzhiyun			phy-names = "usb";
732*4882a593Smuzhiyun			status = "disabled";
733*4882a593Smuzhiyun		};
734*4882a593Smuzhiyun
735*4882a593Smuzhiyun		spi2: spi@01c17000 {
736*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-spi";
737*4882a593Smuzhiyun			reg = <0x01c17000 0x1000>;
738*4882a593Smuzhiyun			interrupts = <12>;
739*4882a593Smuzhiyun			clocks = <&ahb_gates 22>, <&spi2_clk>;
740*4882a593Smuzhiyun			clock-names = "ahb", "mod";
741*4882a593Smuzhiyun			dmas = <&dma SUN4I_DMA_DEDICATED 29>,
742*4882a593Smuzhiyun			       <&dma SUN4I_DMA_DEDICATED 28>;
743*4882a593Smuzhiyun			dma-names = "rx", "tx";
744*4882a593Smuzhiyun			status = "disabled";
745*4882a593Smuzhiyun			#address-cells = <1>;
746*4882a593Smuzhiyun			#size-cells = <0>;
747*4882a593Smuzhiyun		};
748*4882a593Smuzhiyun
749*4882a593Smuzhiyun		intc: interrupt-controller@01c20400 {
750*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-ic";
751*4882a593Smuzhiyun			reg = <0x01c20400 0x400>;
752*4882a593Smuzhiyun			interrupt-controller;
753*4882a593Smuzhiyun			#interrupt-cells = <1>;
754*4882a593Smuzhiyun		};
755*4882a593Smuzhiyun
756*4882a593Smuzhiyun		pio: pinctrl@01c20800 {
757*4882a593Smuzhiyun			compatible = "nextthing,gr8-pinctrl";
758*4882a593Smuzhiyun			reg = <0x01c20800 0x400>;
759*4882a593Smuzhiyun			interrupts = <28>;
760*4882a593Smuzhiyun			clocks = <&apb0_gates 5>;
761*4882a593Smuzhiyun			gpio-controller;
762*4882a593Smuzhiyun			interrupt-controller;
763*4882a593Smuzhiyun			#interrupt-cells = <3>;
764*4882a593Smuzhiyun			#gpio-cells = <3>;
765*4882a593Smuzhiyun
766*4882a593Smuzhiyun			i2c0_pins_a: i2c0@0 {
767*4882a593Smuzhiyun				allwinner,pins = "PB0", "PB1";
768*4882a593Smuzhiyun				allwinner,function = "i2c0";
769*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
770*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
771*4882a593Smuzhiyun			};
772*4882a593Smuzhiyun
773*4882a593Smuzhiyun			i2c1_pins_a: i2c1@0 {
774*4882a593Smuzhiyun				allwinner,pins = "PB15", "PB16";
775*4882a593Smuzhiyun				allwinner,function = "i2c1";
776*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
777*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
778*4882a593Smuzhiyun			};
779*4882a593Smuzhiyun
780*4882a593Smuzhiyun			i2c2_pins_a: i2c2@0 {
781*4882a593Smuzhiyun				allwinner,pins = "PB17", "PB18";
782*4882a593Smuzhiyun				allwinner,function = "i2c2";
783*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
784*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
785*4882a593Smuzhiyun			};
786*4882a593Smuzhiyun
787*4882a593Smuzhiyun			i2s0_data_pins_a: i2s0-data@0 {
788*4882a593Smuzhiyun				allwinner,pins = "PB6", "PB7", "PB8", "PB9";
789*4882a593Smuzhiyun				allwinner,function = "i2s0";
790*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
791*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
792*4882a593Smuzhiyun			};
793*4882a593Smuzhiyun
794*4882a593Smuzhiyun			i2s0_mclk_pins_a: i2s0-mclk@0 {
795*4882a593Smuzhiyun				allwinner,pins = "PB5";
796*4882a593Smuzhiyun				allwinner,function = "i2s0";
797*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
798*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
799*4882a593Smuzhiyun			};
800*4882a593Smuzhiyun
801*4882a593Smuzhiyun			ir0_rx_pins_a: ir0@0 {
802*4882a593Smuzhiyun				allwinner,pins = "PB4";
803*4882a593Smuzhiyun				allwinner,function = "ir0";
804*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
805*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
806*4882a593Smuzhiyun			};
807*4882a593Smuzhiyun
808*4882a593Smuzhiyun			lcd_rgb666_pins: lcd-rgb666@0 {
809*4882a593Smuzhiyun				allwinner,pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
810*4882a593Smuzhiyun						 "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
811*4882a593Smuzhiyun						 "PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
812*4882a593Smuzhiyun						 "PD24", "PD25", "PD26", "PD27";
813*4882a593Smuzhiyun				allwinner,function = "lcd0";
814*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
815*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
816*4882a593Smuzhiyun			};
817*4882a593Smuzhiyun
818*4882a593Smuzhiyun			mmc0_pins_a: mmc0@0 {
819*4882a593Smuzhiyun				allwinner,pins = "PF0", "PF1", "PF2", "PF3",
820*4882a593Smuzhiyun						 "PF4", "PF5";
821*4882a593Smuzhiyun				allwinner,function = "mmc0";
822*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_30_MA>;
823*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
824*4882a593Smuzhiyun			};
825*4882a593Smuzhiyun
826*4882a593Smuzhiyun			nand_pins_a: nand-base0@0 {
827*4882a593Smuzhiyun				allwinner,pins = "PC0", "PC1", "PC2",
828*4882a593Smuzhiyun						"PC5", "PC8", "PC9", "PC10",
829*4882a593Smuzhiyun						"PC11", "PC12", "PC13", "PC14",
830*4882a593Smuzhiyun						"PC15";
831*4882a593Smuzhiyun				allwinner,function = "nand0";
832*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
833*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
834*4882a593Smuzhiyun			};
835*4882a593Smuzhiyun
836*4882a593Smuzhiyun			nand_cs0_pins_a: nand-cs@0 {
837*4882a593Smuzhiyun				allwinner,pins = "PC4";
838*4882a593Smuzhiyun				allwinner,function = "nand0";
839*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
840*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
841*4882a593Smuzhiyun			};
842*4882a593Smuzhiyun
843*4882a593Smuzhiyun			nand_rb0_pins_a: nand-rb@0 {
844*4882a593Smuzhiyun				allwinner,pins = "PC6";
845*4882a593Smuzhiyun				allwinner,function = "nand0";
846*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
847*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
848*4882a593Smuzhiyun			};
849*4882a593Smuzhiyun
850*4882a593Smuzhiyun			pwm0_pins_a: pwm0@0 {
851*4882a593Smuzhiyun				allwinner,pins = "PB2";
852*4882a593Smuzhiyun				allwinner,function = "pwm0";
853*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
854*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
855*4882a593Smuzhiyun			};
856*4882a593Smuzhiyun
857*4882a593Smuzhiyun			pwm1_pins: pwm1 {
858*4882a593Smuzhiyun				allwinner,pins = "PG13";
859*4882a593Smuzhiyun				allwinner,function = "pwm1";
860*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
861*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
862*4882a593Smuzhiyun			};
863*4882a593Smuzhiyun
864*4882a593Smuzhiyun			spdif_tx_pins_a: spdif@0 {
865*4882a593Smuzhiyun				allwinner,pins = "PB10";
866*4882a593Smuzhiyun				allwinner,function = "spdif";
867*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
868*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
869*4882a593Smuzhiyun			};
870*4882a593Smuzhiyun
871*4882a593Smuzhiyun			uart1_pins_a: uart1@1 {
872*4882a593Smuzhiyun				allwinner,pins = "PG3", "PG4";
873*4882a593Smuzhiyun				allwinner,function = "uart1";
874*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
875*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
876*4882a593Smuzhiyun			};
877*4882a593Smuzhiyun
878*4882a593Smuzhiyun			uart1_cts_rts_pins_a: uart1-cts-rts@0 {
879*4882a593Smuzhiyun				allwinner,pins = "PG5", "PG6";
880*4882a593Smuzhiyun				allwinner,function = "uart1";
881*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
882*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
883*4882a593Smuzhiyun			};
884*4882a593Smuzhiyun
885*4882a593Smuzhiyun			uart2_pins_a: uart2@1 {
886*4882a593Smuzhiyun				allwinner,pins = "PD2", "PD3";
887*4882a593Smuzhiyun				allwinner,function = "uart2";
888*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
889*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
890*4882a593Smuzhiyun			};
891*4882a593Smuzhiyun
892*4882a593Smuzhiyun			uart2_cts_rts_pins_a: uart2-cts-rts@0 {
893*4882a593Smuzhiyun				allwinner,pins = "PD4", "PD5";
894*4882a593Smuzhiyun				allwinner,function = "uart2";
895*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
896*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
897*4882a593Smuzhiyun			};
898*4882a593Smuzhiyun
899*4882a593Smuzhiyun			uart3_pins_a: uart3@1 {
900*4882a593Smuzhiyun				allwinner,pins = "PG9", "PG10";
901*4882a593Smuzhiyun				allwinner,function = "uart3";
902*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
903*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
904*4882a593Smuzhiyun			};
905*4882a593Smuzhiyun
906*4882a593Smuzhiyun			uart3_cts_rts_pins_a: uart3-cts-rts@0 {
907*4882a593Smuzhiyun				allwinner,pins = "PG11", "PG12";
908*4882a593Smuzhiyun				allwinner,function = "uart3";
909*4882a593Smuzhiyun				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
910*4882a593Smuzhiyun				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
911*4882a593Smuzhiyun			};
912*4882a593Smuzhiyun		};
913*4882a593Smuzhiyun
914*4882a593Smuzhiyun		pwm: pwm@01c20e00 {
915*4882a593Smuzhiyun			compatible = "allwinner,sun5i-a10s-pwm";
916*4882a593Smuzhiyun			reg = <0x01c20e00 0xc>;
917*4882a593Smuzhiyun			clocks = <&osc24M>;
918*4882a593Smuzhiyun			#pwm-cells = <3>;
919*4882a593Smuzhiyun			status = "disabled";
920*4882a593Smuzhiyun		};
921*4882a593Smuzhiyun
922*4882a593Smuzhiyun		timer@01c20c00 {
923*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-timer";
924*4882a593Smuzhiyun			reg = <0x01c20c00 0x90>;
925*4882a593Smuzhiyun			interrupts = <22>;
926*4882a593Smuzhiyun			clocks = <&osc24M>;
927*4882a593Smuzhiyun		};
928*4882a593Smuzhiyun
929*4882a593Smuzhiyun		wdt: watchdog@01c20c90 {
930*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-wdt";
931*4882a593Smuzhiyun			reg = <0x01c20c90 0x10>;
932*4882a593Smuzhiyun		};
933*4882a593Smuzhiyun
934*4882a593Smuzhiyun		spdif: spdif@01c21000 {
935*4882a593Smuzhiyun			#sound-dai-cells = <0>;
936*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-spdif";
937*4882a593Smuzhiyun			reg = <0x01c21000 0x400>;
938*4882a593Smuzhiyun			interrupts = <13>;
939*4882a593Smuzhiyun			clocks = <&apb0_gates 1>, <&spdif_clk>;
940*4882a593Smuzhiyun			clock-names = "apb", "spdif";
941*4882a593Smuzhiyun			dmas = <&dma SUN4I_DMA_NORMAL 2>,
942*4882a593Smuzhiyun			       <&dma SUN4I_DMA_NORMAL 2>;
943*4882a593Smuzhiyun			dma-names = "rx", "tx";
944*4882a593Smuzhiyun			status = "disabled";
945*4882a593Smuzhiyun		};
946*4882a593Smuzhiyun
947*4882a593Smuzhiyun		ir0: ir@01c21800 {
948*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-ir";
949*4882a593Smuzhiyun			clocks = <&apb0_gates 6>, <&ir0_clk>;
950*4882a593Smuzhiyun			clock-names = "apb", "ir";
951*4882a593Smuzhiyun			interrupts = <5>;
952*4882a593Smuzhiyun			reg = <0x01c21800 0x40>;
953*4882a593Smuzhiyun			status = "disabled";
954*4882a593Smuzhiyun		};
955*4882a593Smuzhiyun
956*4882a593Smuzhiyun		i2s0: i2s@01c22400 {
957*4882a593Smuzhiyun			#sound-dai-cells = <0>;
958*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-i2s";
959*4882a593Smuzhiyun			reg = <0x01c22400 0x400>;
960*4882a593Smuzhiyun			interrupts = <16>;
961*4882a593Smuzhiyun			clocks = <&apb0_gates 3>, <&i2s0_clk>;
962*4882a593Smuzhiyun			clock-names = "apb", "mod";
963*4882a593Smuzhiyun			dmas = <&dma SUN4I_DMA_NORMAL 3>,
964*4882a593Smuzhiyun			       <&dma SUN4I_DMA_NORMAL 3>;
965*4882a593Smuzhiyun			dma-names = "rx", "tx";
966*4882a593Smuzhiyun			status = "disabled";
967*4882a593Smuzhiyun		};
968*4882a593Smuzhiyun
969*4882a593Smuzhiyun		lradc: lradc@01c22800 {
970*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-lradc-keys";
971*4882a593Smuzhiyun			reg = <0x01c22800 0x100>;
972*4882a593Smuzhiyun			interrupts = <31>;
973*4882a593Smuzhiyun			status = "disabled";
974*4882a593Smuzhiyun		};
975*4882a593Smuzhiyun
976*4882a593Smuzhiyun		codec: codec@01c22c00 {
977*4882a593Smuzhiyun			#sound-dai-cells = <0>;
978*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-codec";
979*4882a593Smuzhiyun			reg = <0x01c22c00 0x40>;
980*4882a593Smuzhiyun			interrupts = <30>;
981*4882a593Smuzhiyun			clocks = <&apb0_gates 0>, <&codec_clk>;
982*4882a593Smuzhiyun			clock-names = "apb", "codec";
983*4882a593Smuzhiyun			dmas = <&dma SUN4I_DMA_NORMAL 19>,
984*4882a593Smuzhiyun			       <&dma SUN4I_DMA_NORMAL 19>;
985*4882a593Smuzhiyun			dma-names = "rx", "tx";
986*4882a593Smuzhiyun			status = "disabled";
987*4882a593Smuzhiyun		};
988*4882a593Smuzhiyun
989*4882a593Smuzhiyun		rtp: rtp@01c25000 {
990*4882a593Smuzhiyun			compatible = "allwinner,sun5i-a13-ts";
991*4882a593Smuzhiyun			reg = <0x01c25000 0x100>;
992*4882a593Smuzhiyun			interrupts = <29>;
993*4882a593Smuzhiyun			#thermal-sensor-cells = <0>;
994*4882a593Smuzhiyun		};
995*4882a593Smuzhiyun
996*4882a593Smuzhiyun		uart1: serial@01c28400 {
997*4882a593Smuzhiyun			compatible = "snps,dw-apb-uart";
998*4882a593Smuzhiyun			reg = <0x01c28400 0x400>;
999*4882a593Smuzhiyun			interrupts = <2>;
1000*4882a593Smuzhiyun			reg-shift = <2>;
1001*4882a593Smuzhiyun			reg-io-width = <4>;
1002*4882a593Smuzhiyun			clocks = <&apb1_gates 17>;
1003*4882a593Smuzhiyun			status = "disabled";
1004*4882a593Smuzhiyun		};
1005*4882a593Smuzhiyun
1006*4882a593Smuzhiyun		uart2: serial@01c28800 {
1007*4882a593Smuzhiyun			compatible = "snps,dw-apb-uart";
1008*4882a593Smuzhiyun			reg = <0x01c28800 0x400>;
1009*4882a593Smuzhiyun			interrupts = <3>;
1010*4882a593Smuzhiyun			reg-shift = <2>;
1011*4882a593Smuzhiyun			reg-io-width = <4>;
1012*4882a593Smuzhiyun			clocks = <&apb1_gates 18>;
1013*4882a593Smuzhiyun			status = "disabled";
1014*4882a593Smuzhiyun		};
1015*4882a593Smuzhiyun
1016*4882a593Smuzhiyun		uart3: serial@01c28c00 {
1017*4882a593Smuzhiyun			compatible = "snps,dw-apb-uart";
1018*4882a593Smuzhiyun			reg = <0x01c28c00 0x400>;
1019*4882a593Smuzhiyun			interrupts = <4>;
1020*4882a593Smuzhiyun			reg-shift = <2>;
1021*4882a593Smuzhiyun			reg-io-width = <4>;
1022*4882a593Smuzhiyun			clocks = <&apb1_gates 19>;
1023*4882a593Smuzhiyun			status = "disabled";
1024*4882a593Smuzhiyun		};
1025*4882a593Smuzhiyun
1026*4882a593Smuzhiyun		i2c0: i2c@01c2ac00 {
1027*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-i2c";
1028*4882a593Smuzhiyun			reg = <0x01c2ac00 0x400>;
1029*4882a593Smuzhiyun			interrupts = <7>;
1030*4882a593Smuzhiyun			clocks = <&apb1_gates 0>;
1031*4882a593Smuzhiyun			status = "disabled";
1032*4882a593Smuzhiyun			#address-cells = <1>;
1033*4882a593Smuzhiyun			#size-cells = <0>;
1034*4882a593Smuzhiyun		};
1035*4882a593Smuzhiyun
1036*4882a593Smuzhiyun		i2c1: i2c@01c2b000 {
1037*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-i2c";
1038*4882a593Smuzhiyun			reg = <0x01c2b000 0x400>;
1039*4882a593Smuzhiyun			interrupts = <8>;
1040*4882a593Smuzhiyun			clocks = <&apb1_gates 1>;
1041*4882a593Smuzhiyun			status = "disabled";
1042*4882a593Smuzhiyun			#address-cells = <1>;
1043*4882a593Smuzhiyun			#size-cells = <0>;
1044*4882a593Smuzhiyun		};
1045*4882a593Smuzhiyun
1046*4882a593Smuzhiyun		i2c2: i2c@01c2b400 {
1047*4882a593Smuzhiyun			compatible = "allwinner,sun4i-a10-i2c";
1048*4882a593Smuzhiyun			reg = <0x01c2b400 0x400>;
1049*4882a593Smuzhiyun			interrupts = <9>;
1050*4882a593Smuzhiyun			clocks = <&apb1_gates 2>;
1051*4882a593Smuzhiyun			status = "disabled";
1052*4882a593Smuzhiyun			#address-cells = <1>;
1053*4882a593Smuzhiyun			#size-cells = <0>;
1054*4882a593Smuzhiyun		};
1055*4882a593Smuzhiyun
1056*4882a593Smuzhiyun		timer@01c60000 {
1057*4882a593Smuzhiyun			compatible = "allwinner,sun5i-a13-hstimer";
1058*4882a593Smuzhiyun			reg = <0x01c60000 0x1000>;
1059*4882a593Smuzhiyun			interrupts = <82>, <83>;
1060*4882a593Smuzhiyun			clocks = <&ahb_gates 28>;
1061*4882a593Smuzhiyun		};
1062*4882a593Smuzhiyun
1063*4882a593Smuzhiyun		fe0: display-frontend@01e00000 {
1064*4882a593Smuzhiyun			compatible = "allwinner,sun5i-a13-display-frontend";
1065*4882a593Smuzhiyun			reg = <0x01e00000 0x20000>;
1066*4882a593Smuzhiyun			interrupts = <47>;
1067*4882a593Smuzhiyun			clocks = <&ahb_gates 46>, <&de_fe_clk>,
1068*4882a593Smuzhiyun				 <&dram_gates 25>;
1069*4882a593Smuzhiyun			clock-names = "ahb", "mod",
1070*4882a593Smuzhiyun				      "ram";
1071*4882a593Smuzhiyun			resets = <&de_fe_clk>;
1072*4882a593Smuzhiyun			status = "disabled";
1073*4882a593Smuzhiyun
1074*4882a593Smuzhiyun			ports {
1075*4882a593Smuzhiyun				#address-cells = <1>;
1076*4882a593Smuzhiyun				#size-cells = <0>;
1077*4882a593Smuzhiyun
1078*4882a593Smuzhiyun				fe0_out: port@1 {
1079*4882a593Smuzhiyun					#address-cells = <1>;
1080*4882a593Smuzhiyun					#size-cells = <0>;
1081*4882a593Smuzhiyun					reg = <1>;
1082*4882a593Smuzhiyun
1083*4882a593Smuzhiyun					fe0_out_be0: endpoint@0 {
1084*4882a593Smuzhiyun						reg = <0>;
1085*4882a593Smuzhiyun						remote-endpoint = <&be0_in_fe0>;
1086*4882a593Smuzhiyun					};
1087*4882a593Smuzhiyun				};
1088*4882a593Smuzhiyun			};
1089*4882a593Smuzhiyun		};
1090*4882a593Smuzhiyun
1091*4882a593Smuzhiyun		be0: display-backend@01e60000 {
1092*4882a593Smuzhiyun			compatible = "allwinner,sun5i-a13-display-backend";
1093*4882a593Smuzhiyun			reg = <0x01e60000 0x10000>;
1094*4882a593Smuzhiyun			clocks = <&ahb_gates 44>, <&de_be_clk>,
1095*4882a593Smuzhiyun				 <&dram_gates 26>;
1096*4882a593Smuzhiyun			clock-names = "ahb", "mod",
1097*4882a593Smuzhiyun				      "ram";
1098*4882a593Smuzhiyun			resets = <&de_be_clk>;
1099*4882a593Smuzhiyun			status = "disabled";
1100*4882a593Smuzhiyun
1101*4882a593Smuzhiyun			assigned-clocks = <&de_be_clk>;
1102*4882a593Smuzhiyun			assigned-clock-rates = <300000000>;
1103*4882a593Smuzhiyun
1104*4882a593Smuzhiyun			ports {
1105*4882a593Smuzhiyun				#address-cells = <1>;
1106*4882a593Smuzhiyun				#size-cells = <0>;
1107*4882a593Smuzhiyun
1108*4882a593Smuzhiyun				be0_in: port@0 {
1109*4882a593Smuzhiyun					#address-cells = <1>;
1110*4882a593Smuzhiyun					#size-cells = <0>;
1111*4882a593Smuzhiyun					reg = <0>;
1112*4882a593Smuzhiyun
1113*4882a593Smuzhiyun					be0_in_fe0: endpoint@0 {
1114*4882a593Smuzhiyun						reg = <0>;
1115*4882a593Smuzhiyun						remote-endpoint = <&fe0_out_be0>;
1116*4882a593Smuzhiyun					};
1117*4882a593Smuzhiyun				};
1118*4882a593Smuzhiyun
1119*4882a593Smuzhiyun				be0_out: port@1 {
1120*4882a593Smuzhiyun					#address-cells = <1>;
1121*4882a593Smuzhiyun					#size-cells = <0>;
1122*4882a593Smuzhiyun					reg = <1>;
1123*4882a593Smuzhiyun
1124*4882a593Smuzhiyun					be0_out_tcon0: endpoint@0 {
1125*4882a593Smuzhiyun						reg = <0>;
1126*4882a593Smuzhiyun						remote-endpoint = <&tcon0_in_be0>;
1127*4882a593Smuzhiyun					};
1128*4882a593Smuzhiyun				};
1129*4882a593Smuzhiyun			};
1130*4882a593Smuzhiyun		};
1131*4882a593Smuzhiyun	};
1132*4882a593Smuzhiyun};
1133