xref: /linux/scripts/dtc/include-prefixes/arm/allwinner/sun8i-a23-a33.dtsi (revision 724ba6751532055db75992fc6ae21c3e322e94a7)
1*724ba675SRob Herring/*
2*724ba675SRob Herring * Copyright 2014 Chen-Yu Tsai
3*724ba675SRob Herring *
4*724ba675SRob Herring * Chen-Yu Tsai <wens@csie.org>
5*724ba675SRob Herring *
6*724ba675SRob Herring * This file is dual-licensed: you can use it either under the terms
7*724ba675SRob Herring * of the GPL or the X11 license, at your option. Note that this dual
8*724ba675SRob Herring * licensing only applies to this file, and not this project as a
9*724ba675SRob Herring * whole.
10*724ba675SRob Herring *
11*724ba675SRob Herring *  a) This file is free software; you can redistribute it and/or
12*724ba675SRob Herring *     modify it under the terms of the GNU General Public License as
13*724ba675SRob Herring *     published by the Free Software Foundation; either version 2 of the
14*724ba675SRob Herring *     License, or (at your option) any later version.
15*724ba675SRob Herring *
16*724ba675SRob Herring *     This file is distributed in the hope that it will be useful,
17*724ba675SRob Herring *     but WITHOUT ANY WARRANTY; without even the implied warranty of
18*724ba675SRob Herring *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19*724ba675SRob Herring *     GNU General Public License for more details.
20*724ba675SRob Herring *
21*724ba675SRob Herring * Or, alternatively,
22*724ba675SRob Herring *
23*724ba675SRob Herring *  b) Permission is hereby granted, free of charge, to any person
24*724ba675SRob Herring *     obtaining a copy of this software and associated documentation
25*724ba675SRob Herring *     files (the "Software"), to deal in the Software without
26*724ba675SRob Herring *     restriction, including without limitation the rights to use,
27*724ba675SRob Herring *     copy, modify, merge, publish, distribute, sublicense, and/or
28*724ba675SRob Herring *     sell copies of the Software, and to permit persons to whom the
29*724ba675SRob Herring *     Software is furnished to do so, subject to the following
30*724ba675SRob Herring *     conditions:
31*724ba675SRob Herring *
32*724ba675SRob Herring *     The above copyright notice and this permission notice shall be
33*724ba675SRob Herring *     included in all copies or substantial portions of the Software.
34*724ba675SRob Herring *
35*724ba675SRob Herring *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36*724ba675SRob Herring *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37*724ba675SRob Herring *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38*724ba675SRob Herring *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39*724ba675SRob Herring *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40*724ba675SRob Herring *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41*724ba675SRob Herring *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42*724ba675SRob Herring *     OTHER DEALINGS IN THE SOFTWARE.
43*724ba675SRob Herring */
44*724ba675SRob Herring
45*724ba675SRob Herring#include <dt-bindings/interrupt-controller/arm-gic.h>
46*724ba675SRob Herring
47*724ba675SRob Herring#include <dt-bindings/clock/sun6i-rtc.h>
48*724ba675SRob Herring#include <dt-bindings/clock/sun8i-a23-a33-ccu.h>
49*724ba675SRob Herring#include <dt-bindings/reset/sun8i-a23-a33-ccu.h>
50*724ba675SRob Herring
51*724ba675SRob Herring/ {
52*724ba675SRob Herring	interrupt-parent = <&gic>;
53*724ba675SRob Herring	#address-cells = <1>;
54*724ba675SRob Herring	#size-cells = <1>;
55*724ba675SRob Herring
56*724ba675SRob Herring	chosen {
57*724ba675SRob Herring		#address-cells = <1>;
58*724ba675SRob Herring		#size-cells = <1>;
59*724ba675SRob Herring		ranges;
60*724ba675SRob Herring
61*724ba675SRob Herring		simplefb_lcd: framebuffer-lcd0 {
62*724ba675SRob Herring			compatible = "allwinner,simple-framebuffer",
63*724ba675SRob Herring				     "simple-framebuffer";
64*724ba675SRob Herring			allwinner,pipeline = "de_be0-lcd0";
65*724ba675SRob Herring			clocks = <&ccu CLK_BUS_LCD>, <&ccu CLK_BUS_DE_BE>,
66*724ba675SRob Herring				 <&ccu CLK_LCD_CH0>, <&ccu CLK_DE_BE>,
67*724ba675SRob Herring				 <&ccu CLK_DRAM_DE_BE>, <&ccu CLK_DRC>;
68*724ba675SRob Herring			status = "disabled";
69*724ba675SRob Herring		};
70*724ba675SRob Herring	};
71*724ba675SRob Herring
72*724ba675SRob Herring	de: display-engine {
73*724ba675SRob Herring		/* compatible gets set in SoC specific dtsi file */
74*724ba675SRob Herring		allwinner,pipelines = <&fe0>;
75*724ba675SRob Herring		status = "disabled";
76*724ba675SRob Herring	};
77*724ba675SRob Herring
78*724ba675SRob Herring	timer {
79*724ba675SRob Herring		compatible = "arm,armv7-timer";
80*724ba675SRob Herring		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
81*724ba675SRob Herring			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
82*724ba675SRob Herring			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
83*724ba675SRob Herring			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
84*724ba675SRob Herring		clock-frequency = <24000000>;
85*724ba675SRob Herring		arm,cpu-registers-not-fw-configured;
86*724ba675SRob Herring	};
87*724ba675SRob Herring
88*724ba675SRob Herring	cpus {
89*724ba675SRob Herring		enable-method = "allwinner,sun8i-a23";
90*724ba675SRob Herring		#address-cells = <1>;
91*724ba675SRob Herring		#size-cells = <0>;
92*724ba675SRob Herring
93*724ba675SRob Herring		cpu0: cpu@0 {
94*724ba675SRob Herring			compatible = "arm,cortex-a7";
95*724ba675SRob Herring			device_type = "cpu";
96*724ba675SRob Herring			reg = <0>;
97*724ba675SRob Herring		};
98*724ba675SRob Herring
99*724ba675SRob Herring		cpu@1 {
100*724ba675SRob Herring			compatible = "arm,cortex-a7";
101*724ba675SRob Herring			device_type = "cpu";
102*724ba675SRob Herring			reg = <1>;
103*724ba675SRob Herring		};
104*724ba675SRob Herring	};
105*724ba675SRob Herring
106*724ba675SRob Herring	clocks {
107*724ba675SRob Herring		#address-cells = <1>;
108*724ba675SRob Herring		#size-cells = <1>;
109*724ba675SRob Herring		ranges;
110*724ba675SRob Herring
111*724ba675SRob Herring		osc24M: osc24M_clk {
112*724ba675SRob Herring			#clock-cells = <0>;
113*724ba675SRob Herring			compatible = "fixed-clock";
114*724ba675SRob Herring			clock-frequency = <24000000>;
115*724ba675SRob Herring			clock-accuracy = <50000>;
116*724ba675SRob Herring			clock-output-names = "osc24M";
117*724ba675SRob Herring		};
118*724ba675SRob Herring
119*724ba675SRob Herring		ext_osc32k: ext_osc32k_clk {
120*724ba675SRob Herring			#clock-cells = <0>;
121*724ba675SRob Herring			compatible = "fixed-clock";
122*724ba675SRob Herring			clock-frequency = <32768>;
123*724ba675SRob Herring			clock-accuracy = <50000>;
124*724ba675SRob Herring			clock-output-names = "ext-osc32k";
125*724ba675SRob Herring		};
126*724ba675SRob Herring	};
127*724ba675SRob Herring
128*724ba675SRob Herring	soc {
129*724ba675SRob Herring		compatible = "simple-bus";
130*724ba675SRob Herring		#address-cells = <1>;
131*724ba675SRob Herring		#size-cells = <1>;
132*724ba675SRob Herring		ranges;
133*724ba675SRob Herring
134*724ba675SRob Herring		system-control@1c00000 {
135*724ba675SRob Herring			compatible = "allwinner,sun8i-a23-system-control";
136*724ba675SRob Herring			reg = <0x01c00000 0x30>;
137*724ba675SRob Herring			#address-cells = <1>;
138*724ba675SRob Herring			#size-cells = <1>;
139*724ba675SRob Herring			ranges;
140*724ba675SRob Herring
141*724ba675SRob Herring			sram_c: sram@1d00000 {
142*724ba675SRob Herring				compatible = "mmio-sram";
143*724ba675SRob Herring				reg = <0x01d00000 0x80000>;
144*724ba675SRob Herring				#address-cells = <1>;
145*724ba675SRob Herring				#size-cells = <1>;
146*724ba675SRob Herring				ranges = <0 0x01d00000 0x80000>;
147*724ba675SRob Herring
148*724ba675SRob Herring				ve_sram: sram-section@0 {
149*724ba675SRob Herring					compatible = "allwinner,sun8i-a23-sram-c1",
150*724ba675SRob Herring						     "allwinner,sun4i-a10-sram-c1";
151*724ba675SRob Herring					reg = <0x000000 0x80000>;
152*724ba675SRob Herring				};
153*724ba675SRob Herring			};
154*724ba675SRob Herring		};
155*724ba675SRob Herring
156*724ba675SRob Herring		dma: dma-controller@1c02000 {
157*724ba675SRob Herring			compatible = "allwinner,sun8i-a23-dma";
158*724ba675SRob Herring			reg = <0x01c02000 0x1000>;
159*724ba675SRob Herring			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
160*724ba675SRob Herring			clocks = <&ccu CLK_BUS_DMA>;
161*724ba675SRob Herring			resets = <&ccu RST_BUS_DMA>;
162*724ba675SRob Herring			#dma-cells = <1>;
163*724ba675SRob Herring		};
164*724ba675SRob Herring
165*724ba675SRob Herring		nfc: nand-controller@1c03000 {
166*724ba675SRob Herring			compatible = "allwinner,sun8i-a23-nand-controller";
167*724ba675SRob Herring			reg = <0x01c03000 0x1000>;
168*724ba675SRob Herring			interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
169*724ba675SRob Herring			clocks = <&ccu CLK_BUS_NAND>, <&ccu CLK_NAND>;
170*724ba675SRob Herring			clock-names = "ahb", "mod";
171*724ba675SRob Herring			resets = <&ccu RST_BUS_NAND>;
172*724ba675SRob Herring			reset-names = "ahb";
173*724ba675SRob Herring			dmas = <&dma 5>;
174*724ba675SRob Herring			dma-names = "rxtx";
175*724ba675SRob Herring			pinctrl-names = "default";
176*724ba675SRob Herring			pinctrl-0 = <&nand_pins &nand_cs0_pin &nand_rb0_pin>;
177*724ba675SRob Herring			status = "disabled";
178*724ba675SRob Herring			#address-cells = <1>;
179*724ba675SRob Herring			#size-cells = <0>;
180*724ba675SRob Herring		};
181*724ba675SRob Herring
182*724ba675SRob Herring		tcon0: lcd-controller@1c0c000 {
183*724ba675SRob Herring			/* compatible gets set in SoC specific dtsi file */
184*724ba675SRob Herring			reg = <0x01c0c000 0x1000>;
185*724ba675SRob Herring			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
186*724ba675SRob Herring			dmas = <&dma 12>;
187*724ba675SRob Herring			clocks = <&ccu CLK_BUS_LCD>,
188*724ba675SRob Herring				 <&ccu CLK_LCD_CH0>,
189*724ba675SRob Herring				 <&ccu 13>;
190*724ba675SRob Herring			clock-names = "ahb",
191*724ba675SRob Herring				      "tcon-ch0",
192*724ba675SRob Herring				      "lvds-alt";
193*724ba675SRob Herring			clock-output-names = "tcon-data-clock";
194*724ba675SRob Herring			#clock-cells = <0>;
195*724ba675SRob Herring			resets = <&ccu RST_BUS_LCD>,
196*724ba675SRob Herring				 <&ccu RST_BUS_LVDS>;
197*724ba675SRob Herring			reset-names = "lcd",
198*724ba675SRob Herring				      "lvds";
199*724ba675SRob Herring			status = "disabled";
200*724ba675SRob Herring
201*724ba675SRob Herring			ports {
202*724ba675SRob Herring				#address-cells = <1>;
203*724ba675SRob Herring				#size-cells = <0>;
204*724ba675SRob Herring
205*724ba675SRob Herring				tcon0_in: port@0 {
206*724ba675SRob Herring					reg = <0>;
207*724ba675SRob Herring
208*724ba675SRob Herring					tcon0_in_drc0: endpoint {
209*724ba675SRob Herring						remote-endpoint = <&drc0_out_tcon0>;
210*724ba675SRob Herring					};
211*724ba675SRob Herring				};
212*724ba675SRob Herring
213*724ba675SRob Herring				tcon0_out: port@1 {
214*724ba675SRob Herring					reg = <1>;
215*724ba675SRob Herring				};
216*724ba675SRob Herring			};
217*724ba675SRob Herring		};
218*724ba675SRob Herring
219*724ba675SRob Herring		mmc0: mmc@1c0f000 {
220*724ba675SRob Herring			compatible = "allwinner,sun7i-a20-mmc";
221*724ba675SRob Herring			reg = <0x01c0f000 0x1000>;
222*724ba675SRob Herring			clocks = <&ccu CLK_BUS_MMC0>,
223*724ba675SRob Herring				 <&ccu CLK_MMC0>,
224*724ba675SRob Herring				 <&ccu CLK_MMC0_OUTPUT>,
225*724ba675SRob Herring				 <&ccu CLK_MMC0_SAMPLE>;
226*724ba675SRob Herring			clock-names = "ahb",
227*724ba675SRob Herring				      "mmc",
228*724ba675SRob Herring				      "output",
229*724ba675SRob Herring				      "sample";
230*724ba675SRob Herring			resets = <&ccu RST_BUS_MMC0>;
231*724ba675SRob Herring			reset-names = "ahb";
232*724ba675SRob Herring			interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
233*724ba675SRob Herring			pinctrl-names = "default";
234*724ba675SRob Herring			pinctrl-0 = <&mmc0_pins>;
235*724ba675SRob Herring			status = "disabled";
236*724ba675SRob Herring			#address-cells = <1>;
237*724ba675SRob Herring			#size-cells = <0>;
238*724ba675SRob Herring		};
239*724ba675SRob Herring
240*724ba675SRob Herring		mmc1: mmc@1c10000 {
241*724ba675SRob Herring			compatible = "allwinner,sun7i-a20-mmc";
242*724ba675SRob Herring			reg = <0x01c10000 0x1000>;
243*724ba675SRob Herring			clocks = <&ccu CLK_BUS_MMC1>,
244*724ba675SRob Herring				 <&ccu CLK_MMC1>,
245*724ba675SRob Herring				 <&ccu CLK_MMC1_OUTPUT>,
246*724ba675SRob Herring				 <&ccu CLK_MMC1_SAMPLE>;
247*724ba675SRob Herring			clock-names = "ahb",
248*724ba675SRob Herring				      "mmc",
249*724ba675SRob Herring				      "output",
250*724ba675SRob Herring				      "sample";
251*724ba675SRob Herring			resets = <&ccu RST_BUS_MMC1>;
252*724ba675SRob Herring			reset-names = "ahb";
253*724ba675SRob Herring			interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
254*724ba675SRob Herring			status = "disabled";
255*724ba675SRob Herring			#address-cells = <1>;
256*724ba675SRob Herring			#size-cells = <0>;
257*724ba675SRob Herring		};
258*724ba675SRob Herring
259*724ba675SRob Herring		mmc2: mmc@1c11000 {
260*724ba675SRob Herring			compatible = "allwinner,sun7i-a20-mmc";
261*724ba675SRob Herring			reg = <0x01c11000 0x1000>;
262*724ba675SRob Herring			clocks = <&ccu CLK_BUS_MMC2>,
263*724ba675SRob Herring				 <&ccu CLK_MMC2>,
264*724ba675SRob Herring				 <&ccu CLK_MMC2_OUTPUT>,
265*724ba675SRob Herring				 <&ccu CLK_MMC2_SAMPLE>;
266*724ba675SRob Herring			clock-names = "ahb",
267*724ba675SRob Herring				      "mmc",
268*724ba675SRob Herring				      "output",
269*724ba675SRob Herring				      "sample";
270*724ba675SRob Herring			resets = <&ccu RST_BUS_MMC2>;
271*724ba675SRob Herring			reset-names = "ahb";
272*724ba675SRob Herring			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
273*724ba675SRob Herring			status = "disabled";
274*724ba675SRob Herring			#address-cells = <1>;
275*724ba675SRob Herring			#size-cells = <0>;
276*724ba675SRob Herring		};
277*724ba675SRob Herring
278*724ba675SRob Herring		usb_otg: usb@1c19000 {
279*724ba675SRob Herring			/* compatible gets set in SoC specific dtsi file */
280*724ba675SRob Herring			reg = <0x01c19000 0x0400>;
281*724ba675SRob Herring			clocks = <&ccu CLK_BUS_OTG>;
282*724ba675SRob Herring			resets = <&ccu RST_BUS_OTG>;
283*724ba675SRob Herring			interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
284*724ba675SRob Herring			interrupt-names = "mc";
285*724ba675SRob Herring			phys = <&usbphy 0>;
286*724ba675SRob Herring			phy-names = "usb";
287*724ba675SRob Herring			extcon = <&usbphy 0>;
288*724ba675SRob Herring			dr_mode = "otg";
289*724ba675SRob Herring			status = "disabled";
290*724ba675SRob Herring		};
291*724ba675SRob Herring
292*724ba675SRob Herring		usbphy: phy@1c19400 {
293*724ba675SRob Herring			/*
294*724ba675SRob Herring			 * compatible and address regions get set in
295*724ba675SRob Herring			 * SoC specific dtsi file
296*724ba675SRob Herring			 */
297*724ba675SRob Herring			clocks = <&ccu CLK_USB_PHY0>,
298*724ba675SRob Herring				 <&ccu CLK_USB_PHY1>;
299*724ba675SRob Herring			clock-names = "usb0_phy",
300*724ba675SRob Herring				      "usb1_phy";
301*724ba675SRob Herring			resets = <&ccu RST_USB_PHY0>,
302*724ba675SRob Herring				 <&ccu RST_USB_PHY1>;
303*724ba675SRob Herring			reset-names = "usb0_reset",
304*724ba675SRob Herring				      "usb1_reset";
305*724ba675SRob Herring			status = "disabled";
306*724ba675SRob Herring			#phy-cells = <1>;
307*724ba675SRob Herring		};
308*724ba675SRob Herring
309*724ba675SRob Herring		ehci0: usb@1c1a000 {
310*724ba675SRob Herring			compatible = "allwinner,sun8i-a23-ehci", "generic-ehci";
311*724ba675SRob Herring			reg = <0x01c1a000 0x100>;
312*724ba675SRob Herring			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
313*724ba675SRob Herring			clocks = <&ccu CLK_BUS_EHCI>;
314*724ba675SRob Herring			resets = <&ccu RST_BUS_EHCI>;
315*724ba675SRob Herring			phys = <&usbphy 1>;
316*724ba675SRob Herring			phy-names = "usb";
317*724ba675SRob Herring			status = "disabled";
318*724ba675SRob Herring		};
319*724ba675SRob Herring
320*724ba675SRob Herring		ohci0: usb@1c1a400 {
321*724ba675SRob Herring			compatible = "allwinner,sun8i-a23-ohci", "generic-ohci";
322*724ba675SRob Herring			reg = <0x01c1a400 0x100>;
323*724ba675SRob Herring			interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
324*724ba675SRob Herring			clocks = <&ccu CLK_BUS_OHCI>, <&ccu CLK_USB_OHCI>;
325*724ba675SRob Herring			resets = <&ccu RST_BUS_OHCI>;
326*724ba675SRob Herring			phys = <&usbphy 1>;
327*724ba675SRob Herring			phy-names = "usb";
328*724ba675SRob Herring			status = "disabled";
329*724ba675SRob Herring		};
330*724ba675SRob Herring
331*724ba675SRob Herring		ccu: clock@1c20000 {
332*724ba675SRob Herring			reg = <0x01c20000 0x400>;
333*724ba675SRob Herring			clocks = <&osc24M>, <&rtc CLK_OSC32K>;
334*724ba675SRob Herring			clock-names = "hosc", "losc";
335*724ba675SRob Herring			#clock-cells = <1>;
336*724ba675SRob Herring			#reset-cells = <1>;
337*724ba675SRob Herring		};
338*724ba675SRob Herring
339*724ba675SRob Herring		pio: pinctrl@1c20800 {
340*724ba675SRob Herring			/* compatible gets set in SoC specific dtsi file */
341*724ba675SRob Herring			reg = <0x01c20800 0x400>;
342*724ba675SRob Herring			interrupt-parent = <&r_intc>;
343*724ba675SRob Herring			/* interrupts get set in SoC specific dtsi file */
344*724ba675SRob Herring			clocks = <&ccu CLK_BUS_PIO>, <&osc24M>,
345*724ba675SRob Herring				 <&rtc CLK_OSC32K>;
346*724ba675SRob Herring			clock-names = "apb", "hosc", "losc";
347*724ba675SRob Herring			gpio-controller;
348*724ba675SRob Herring			interrupt-controller;
349*724ba675SRob Herring			#interrupt-cells = <3>;
350*724ba675SRob Herring			#gpio-cells = <3>;
351*724ba675SRob Herring
352*724ba675SRob Herring			i2c0_pins: i2c0-pins {
353*724ba675SRob Herring				pins = "PH2", "PH3";
354*724ba675SRob Herring				function = "i2c0";
355*724ba675SRob Herring			};
356*724ba675SRob Herring
357*724ba675SRob Herring			i2c1_pins: i2c1-pins {
358*724ba675SRob Herring				pins = "PH4", "PH5";
359*724ba675SRob Herring				function = "i2c1";
360*724ba675SRob Herring			};
361*724ba675SRob Herring
362*724ba675SRob Herring			i2c2_pins: i2c2-pins {
363*724ba675SRob Herring				pins = "PE12", "PE13";
364*724ba675SRob Herring				function = "i2c2";
365*724ba675SRob Herring			};
366*724ba675SRob Herring
367*724ba675SRob Herring			lcd_rgb666_pins: lcd-rgb666-pins {
368*724ba675SRob Herring				pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
369*724ba675SRob Herring				       "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
370*724ba675SRob Herring				       "PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
371*724ba675SRob Herring				       "PD24", "PD25", "PD26", "PD27";
372*724ba675SRob Herring				function = "lcd0";
373*724ba675SRob Herring			};
374*724ba675SRob Herring
375*724ba675SRob Herring			mmc0_pins: mmc0-pins {
376*724ba675SRob Herring				pins = "PF0", "PF1", "PF2",
377*724ba675SRob Herring				       "PF3", "PF4", "PF5";
378*724ba675SRob Herring				function = "mmc0";
379*724ba675SRob Herring				drive-strength = <30>;
380*724ba675SRob Herring				bias-pull-up;
381*724ba675SRob Herring			};
382*724ba675SRob Herring
383*724ba675SRob Herring			mmc1_pg_pins: mmc1-pg-pins {
384*724ba675SRob Herring				pins = "PG0", "PG1", "PG2",
385*724ba675SRob Herring				       "PG3", "PG4", "PG5";
386*724ba675SRob Herring				function = "mmc1";
387*724ba675SRob Herring				drive-strength = <30>;
388*724ba675SRob Herring				bias-pull-up;
389*724ba675SRob Herring			};
390*724ba675SRob Herring
391*724ba675SRob Herring			mmc2_8bit_pins: mmc2-8bit-pins {
392*724ba675SRob Herring				pins = "PC5", "PC6", "PC8",
393*724ba675SRob Herring				       "PC9", "PC10", "PC11",
394*724ba675SRob Herring				       "PC12", "PC13", "PC14",
395*724ba675SRob Herring				       "PC15", "PC16";
396*724ba675SRob Herring				function = "mmc2";
397*724ba675SRob Herring				drive-strength = <30>;
398*724ba675SRob Herring				bias-pull-up;
399*724ba675SRob Herring			};
400*724ba675SRob Herring
401*724ba675SRob Herring			nand_pins: nand-pins {
402*724ba675SRob Herring				pins = "PC0", "PC1", "PC2", "PC5",
403*724ba675SRob Herring				       "PC8", "PC9", "PC10", "PC11",
404*724ba675SRob Herring				       "PC12", "PC13", "PC14", "PC15";
405*724ba675SRob Herring				function = "nand0";
406*724ba675SRob Herring			};
407*724ba675SRob Herring
408*724ba675SRob Herring			nand_cs0_pin: nand-cs0-pin {
409*724ba675SRob Herring				pins = "PC4";
410*724ba675SRob Herring				function = "nand0";
411*724ba675SRob Herring				bias-pull-up;
412*724ba675SRob Herring			};
413*724ba675SRob Herring
414*724ba675SRob Herring			nand_cs1_pin: nand-cs1-pin {
415*724ba675SRob Herring				pins = "PC3";
416*724ba675SRob Herring				function = "nand0";
417*724ba675SRob Herring				bias-pull-up;
418*724ba675SRob Herring			};
419*724ba675SRob Herring
420*724ba675SRob Herring			nand_rb0_pin: nand-rb0-pin {
421*724ba675SRob Herring				pins = "PC6";
422*724ba675SRob Herring				function = "nand0";
423*724ba675SRob Herring				bias-pull-up;
424*724ba675SRob Herring			};
425*724ba675SRob Herring
426*724ba675SRob Herring			nand_rb1_pin: nand-rb1-pin {
427*724ba675SRob Herring				pins = "PC7";
428*724ba675SRob Herring				function = "nand0";
429*724ba675SRob Herring				bias-pull-up;
430*724ba675SRob Herring			};
431*724ba675SRob Herring
432*724ba675SRob Herring			pwm0_pin: pwm0-pin {
433*724ba675SRob Herring				pins = "PH0";
434*724ba675SRob Herring				function = "pwm0";
435*724ba675SRob Herring			};
436*724ba675SRob Herring
437*724ba675SRob Herring			uart0_pf_pins: uart0-pf-pins {
438*724ba675SRob Herring				pins = "PF2", "PF4";
439*724ba675SRob Herring				function = "uart0";
440*724ba675SRob Herring			};
441*724ba675SRob Herring
442*724ba675SRob Herring			uart1_pg_pins: uart1-pg-pins {
443*724ba675SRob Herring				pins = "PG6", "PG7";
444*724ba675SRob Herring				function = "uart1";
445*724ba675SRob Herring			};
446*724ba675SRob Herring
447*724ba675SRob Herring			uart1_cts_rts_pg_pins: uart1-cts-rts-pg-pins {
448*724ba675SRob Herring				pins = "PG8", "PG9";
449*724ba675SRob Herring				function = "uart1";
450*724ba675SRob Herring			};
451*724ba675SRob Herring		};
452*724ba675SRob Herring
453*724ba675SRob Herring		timer@1c20c00 {
454*724ba675SRob Herring			compatible = "allwinner,sun8i-a23-timer";
455*724ba675SRob Herring			reg = <0x01c20c00 0xa0>;
456*724ba675SRob Herring			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
457*724ba675SRob Herring				     <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
458*724ba675SRob Herring			clocks = <&osc24M>;
459*724ba675SRob Herring		};
460*724ba675SRob Herring
461*724ba675SRob Herring		wdt0: watchdog@1c20ca0 {
462*724ba675SRob Herring			compatible = "allwinner,sun6i-a31-wdt";
463*724ba675SRob Herring			reg = <0x01c20ca0 0x20>;
464*724ba675SRob Herring			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
465*724ba675SRob Herring			clocks = <&osc24M>;
466*724ba675SRob Herring		};
467*724ba675SRob Herring
468*724ba675SRob Herring		pwm: pwm@1c21400 {
469*724ba675SRob Herring			compatible = "allwinner,sun7i-a20-pwm";
470*724ba675SRob Herring			reg = <0x01c21400 0xc>;
471*724ba675SRob Herring			clocks = <&osc24M>;
472*724ba675SRob Herring			#pwm-cells = <3>;
473*724ba675SRob Herring			status = "disabled";
474*724ba675SRob Herring		};
475*724ba675SRob Herring
476*724ba675SRob Herring		lradc: lradc@1c22800 {
477*724ba675SRob Herring			compatible = "allwinner,sun4i-a10-lradc-keys";
478*724ba675SRob Herring			reg = <0x01c22800 0x100>;
479*724ba675SRob Herring			interrupt-parent = <&r_intc>;
480*724ba675SRob Herring			interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
481*724ba675SRob Herring			status = "disabled";
482*724ba675SRob Herring		};
483*724ba675SRob Herring
484*724ba675SRob Herring		uart0: serial@1c28000 {
485*724ba675SRob Herring			compatible = "snps,dw-apb-uart";
486*724ba675SRob Herring			reg = <0x01c28000 0x400>;
487*724ba675SRob Herring			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
488*724ba675SRob Herring			reg-shift = <2>;
489*724ba675SRob Herring			reg-io-width = <4>;
490*724ba675SRob Herring			clocks = <&ccu CLK_BUS_UART0>;
491*724ba675SRob Herring			resets = <&ccu RST_BUS_UART0>;
492*724ba675SRob Herring			dmas = <&dma 6>, <&dma 6>;
493*724ba675SRob Herring			dma-names = "tx", "rx";
494*724ba675SRob Herring			status = "disabled";
495*724ba675SRob Herring		};
496*724ba675SRob Herring
497*724ba675SRob Herring		uart1: serial@1c28400 {
498*724ba675SRob Herring			compatible = "snps,dw-apb-uart";
499*724ba675SRob Herring			reg = <0x01c28400 0x400>;
500*724ba675SRob Herring			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
501*724ba675SRob Herring			reg-shift = <2>;
502*724ba675SRob Herring			reg-io-width = <4>;
503*724ba675SRob Herring			clocks = <&ccu CLK_BUS_UART1>;
504*724ba675SRob Herring			resets = <&ccu RST_BUS_UART1>;
505*724ba675SRob Herring			dmas = <&dma 7>, <&dma 7>;
506*724ba675SRob Herring			dma-names = "tx", "rx";
507*724ba675SRob Herring			status = "disabled";
508*724ba675SRob Herring		};
509*724ba675SRob Herring
510*724ba675SRob Herring		uart2: serial@1c28800 {
511*724ba675SRob Herring			compatible = "snps,dw-apb-uart";
512*724ba675SRob Herring			reg = <0x01c28800 0x400>;
513*724ba675SRob Herring			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
514*724ba675SRob Herring			reg-shift = <2>;
515*724ba675SRob Herring			reg-io-width = <4>;
516*724ba675SRob Herring			clocks = <&ccu CLK_BUS_UART2>;
517*724ba675SRob Herring			resets = <&ccu RST_BUS_UART2>;
518*724ba675SRob Herring			dmas = <&dma 8>, <&dma 8>;
519*724ba675SRob Herring			dma-names = "tx", "rx";
520*724ba675SRob Herring			status = "disabled";
521*724ba675SRob Herring		};
522*724ba675SRob Herring
523*724ba675SRob Herring		uart3: serial@1c28c00 {
524*724ba675SRob Herring			compatible = "snps,dw-apb-uart";
525*724ba675SRob Herring			reg = <0x01c28c00 0x400>;
526*724ba675SRob Herring			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
527*724ba675SRob Herring			reg-shift = <2>;
528*724ba675SRob Herring			reg-io-width = <4>;
529*724ba675SRob Herring			clocks = <&ccu CLK_BUS_UART3>;
530*724ba675SRob Herring			resets = <&ccu RST_BUS_UART3>;
531*724ba675SRob Herring			dmas = <&dma 9>, <&dma 9>;
532*724ba675SRob Herring			dma-names = "tx", "rx";
533*724ba675SRob Herring			status = "disabled";
534*724ba675SRob Herring		};
535*724ba675SRob Herring
536*724ba675SRob Herring		uart4: serial@1c29000 {
537*724ba675SRob Herring			compatible = "snps,dw-apb-uart";
538*724ba675SRob Herring			reg = <0x01c29000 0x400>;
539*724ba675SRob Herring			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
540*724ba675SRob Herring			reg-shift = <2>;
541*724ba675SRob Herring			reg-io-width = <4>;
542*724ba675SRob Herring			clocks = <&ccu CLK_BUS_UART4>;
543*724ba675SRob Herring			resets = <&ccu RST_BUS_UART4>;
544*724ba675SRob Herring			dmas = <&dma 10>, <&dma 10>;
545*724ba675SRob Herring			dma-names = "tx", "rx";
546*724ba675SRob Herring			status = "disabled";
547*724ba675SRob Herring		};
548*724ba675SRob Herring
549*724ba675SRob Herring		i2c0: i2c@1c2ac00 {
550*724ba675SRob Herring			compatible = "allwinner,sun6i-a31-i2c";
551*724ba675SRob Herring			reg = <0x01c2ac00 0x400>;
552*724ba675SRob Herring			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
553*724ba675SRob Herring			clocks = <&ccu CLK_BUS_I2C0>;
554*724ba675SRob Herring			resets = <&ccu RST_BUS_I2C0>;
555*724ba675SRob Herring			pinctrl-names = "default";
556*724ba675SRob Herring			pinctrl-0 = <&i2c0_pins>;
557*724ba675SRob Herring			status = "disabled";
558*724ba675SRob Herring			#address-cells = <1>;
559*724ba675SRob Herring			#size-cells = <0>;
560*724ba675SRob Herring		};
561*724ba675SRob Herring
562*724ba675SRob Herring		i2c1: i2c@1c2b000 {
563*724ba675SRob Herring			compatible = "allwinner,sun6i-a31-i2c";
564*724ba675SRob Herring			reg = <0x01c2b000 0x400>;
565*724ba675SRob Herring			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
566*724ba675SRob Herring			clocks = <&ccu CLK_BUS_I2C1>;
567*724ba675SRob Herring			resets = <&ccu RST_BUS_I2C1>;
568*724ba675SRob Herring			pinctrl-names = "default";
569*724ba675SRob Herring			pinctrl-0 = <&i2c1_pins>;
570*724ba675SRob Herring			status = "disabled";
571*724ba675SRob Herring			#address-cells = <1>;
572*724ba675SRob Herring			#size-cells = <0>;
573*724ba675SRob Herring		};
574*724ba675SRob Herring
575*724ba675SRob Herring		i2c2: i2c@1c2b400 {
576*724ba675SRob Herring			compatible = "allwinner,sun6i-a31-i2c";
577*724ba675SRob Herring			reg = <0x01c2b400 0x400>;
578*724ba675SRob Herring			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
579*724ba675SRob Herring			clocks = <&ccu CLK_BUS_I2C2>;
580*724ba675SRob Herring			resets = <&ccu RST_BUS_I2C2>;
581*724ba675SRob Herring			pinctrl-names = "default";
582*724ba675SRob Herring			pinctrl-0 = <&i2c2_pins>;
583*724ba675SRob Herring			status = "disabled";
584*724ba675SRob Herring			#address-cells = <1>;
585*724ba675SRob Herring			#size-cells = <0>;
586*724ba675SRob Herring		};
587*724ba675SRob Herring
588*724ba675SRob Herring		mali: gpu@1c40000 {
589*724ba675SRob Herring			compatible = "allwinner,sun8i-a23-mali",
590*724ba675SRob Herring				     "allwinner,sun7i-a20-mali", "arm,mali-400";
591*724ba675SRob Herring			reg = <0x01c40000 0x10000>;
592*724ba675SRob Herring			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
593*724ba675SRob Herring				     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
594*724ba675SRob Herring				     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
595*724ba675SRob Herring				     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
596*724ba675SRob Herring				     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
597*724ba675SRob Herring				     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
598*724ba675SRob Herring				     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
599*724ba675SRob Herring			interrupt-names = "gp",
600*724ba675SRob Herring					  "gpmmu",
601*724ba675SRob Herring					  "pp0",
602*724ba675SRob Herring					  "ppmmu0",
603*724ba675SRob Herring					  "pp1",
604*724ba675SRob Herring					  "ppmmu1",
605*724ba675SRob Herring					  "pmu";
606*724ba675SRob Herring			clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
607*724ba675SRob Herring			clock-names = "bus", "core";
608*724ba675SRob Herring			resets = <&ccu RST_BUS_GPU>;
609*724ba675SRob Herring			#cooling-cells = <2>;
610*724ba675SRob Herring
611*724ba675SRob Herring			assigned-clocks = <&ccu CLK_GPU>;
612*724ba675SRob Herring			assigned-clock-rates = <384000000>;
613*724ba675SRob Herring		};
614*724ba675SRob Herring
615*724ba675SRob Herring		gic: interrupt-controller@1c81000 {
616*724ba675SRob Herring			compatible = "arm,gic-400";
617*724ba675SRob Herring			reg = <0x01c81000 0x1000>,
618*724ba675SRob Herring			      <0x01c82000 0x2000>,
619*724ba675SRob Herring			      <0x01c84000 0x2000>,
620*724ba675SRob Herring			      <0x01c86000 0x2000>;
621*724ba675SRob Herring			interrupt-controller;
622*724ba675SRob Herring			#interrupt-cells = <3>;
623*724ba675SRob Herring			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
624*724ba675SRob Herring		};
625*724ba675SRob Herring
626*724ba675SRob Herring		fe0: display-frontend@1e00000 {
627*724ba675SRob Herring			/* compatible gets set in SoC specific dtsi file */
628*724ba675SRob Herring			reg = <0x01e00000 0x20000>;
629*724ba675SRob Herring			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
630*724ba675SRob Herring			clocks = <&ccu CLK_BUS_DE_FE>, <&ccu CLK_DE_FE>,
631*724ba675SRob Herring				 <&ccu CLK_DRAM_DE_FE>;
632*724ba675SRob Herring			clock-names = "ahb", "mod",
633*724ba675SRob Herring				      "ram";
634*724ba675SRob Herring			resets = <&ccu RST_BUS_DE_FE>;
635*724ba675SRob Herring
636*724ba675SRob Herring			ports {
637*724ba675SRob Herring				#address-cells = <1>;
638*724ba675SRob Herring				#size-cells = <0>;
639*724ba675SRob Herring
640*724ba675SRob Herring				fe0_out: port@1 {
641*724ba675SRob Herring					reg = <1>;
642*724ba675SRob Herring
643*724ba675SRob Herring					fe0_out_be0: endpoint {
644*724ba675SRob Herring						remote-endpoint = <&be0_in_fe0>;
645*724ba675SRob Herring					};
646*724ba675SRob Herring				};
647*724ba675SRob Herring			};
648*724ba675SRob Herring		};
649*724ba675SRob Herring
650*724ba675SRob Herring		be0: display-backend@1e60000 {
651*724ba675SRob Herring			/* compatible gets set in SoC specific dtsi file */
652*724ba675SRob Herring			reg = <0x01e60000 0x10000>;
653*724ba675SRob Herring			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
654*724ba675SRob Herring			clocks = <&ccu CLK_BUS_DE_BE>, <&ccu CLK_DE_BE>,
655*724ba675SRob Herring				 <&ccu CLK_DRAM_DE_BE>;
656*724ba675SRob Herring			clock-names = "ahb", "mod",
657*724ba675SRob Herring				      "ram";
658*724ba675SRob Herring			resets = <&ccu RST_BUS_DE_BE>;
659*724ba675SRob Herring
660*724ba675SRob Herring			ports {
661*724ba675SRob Herring				#address-cells = <1>;
662*724ba675SRob Herring				#size-cells = <0>;
663*724ba675SRob Herring
664*724ba675SRob Herring				be0_in: port@0 {
665*724ba675SRob Herring					reg = <0>;
666*724ba675SRob Herring
667*724ba675SRob Herring					be0_in_fe0: endpoint {
668*724ba675SRob Herring						remote-endpoint = <&fe0_out_be0>;
669*724ba675SRob Herring					};
670*724ba675SRob Herring				};
671*724ba675SRob Herring
672*724ba675SRob Herring				be0_out: port@1 {
673*724ba675SRob Herring					reg = <1>;
674*724ba675SRob Herring
675*724ba675SRob Herring					be0_out_drc0: endpoint {
676*724ba675SRob Herring						remote-endpoint = <&drc0_in_be0>;
677*724ba675SRob Herring					};
678*724ba675SRob Herring				};
679*724ba675SRob Herring			};
680*724ba675SRob Herring		};
681*724ba675SRob Herring
682*724ba675SRob Herring		drc0: drc@1e70000 {
683*724ba675SRob Herring			/* compatible gets set in SoC specific dtsi file */
684*724ba675SRob Herring			reg = <0x01e70000 0x10000>;
685*724ba675SRob Herring			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
686*724ba675SRob Herring			clocks = <&ccu CLK_BUS_DRC>, <&ccu CLK_DRC>,
687*724ba675SRob Herring				 <&ccu CLK_DRAM_DRC>;
688*724ba675SRob Herring			clock-names = "ahb", "mod", "ram";
689*724ba675SRob Herring			resets = <&ccu RST_BUS_DRC>;
690*724ba675SRob Herring
691*724ba675SRob Herring			ports {
692*724ba675SRob Herring				#address-cells = <1>;
693*724ba675SRob Herring				#size-cells = <0>;
694*724ba675SRob Herring
695*724ba675SRob Herring				drc0_in: port@0 {
696*724ba675SRob Herring					reg = <0>;
697*724ba675SRob Herring
698*724ba675SRob Herring					drc0_in_be0: endpoint {
699*724ba675SRob Herring						remote-endpoint = <&be0_out_drc0>;
700*724ba675SRob Herring					};
701*724ba675SRob Herring				};
702*724ba675SRob Herring
703*724ba675SRob Herring				drc0_out: port@1 {
704*724ba675SRob Herring					reg = <1>;
705*724ba675SRob Herring
706*724ba675SRob Herring					drc0_out_tcon0: endpoint {
707*724ba675SRob Herring						remote-endpoint = <&tcon0_in_drc0>;
708*724ba675SRob Herring					};
709*724ba675SRob Herring				};
710*724ba675SRob Herring			};
711*724ba675SRob Herring		};
712*724ba675SRob Herring
713*724ba675SRob Herring		rtc: rtc@1f00000 {
714*724ba675SRob Herring			compatible = "allwinner,sun8i-a23-rtc";
715*724ba675SRob Herring			reg = <0x01f00000 0x400>;
716*724ba675SRob Herring			interrupt-parent = <&r_intc>;
717*724ba675SRob Herring			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
718*724ba675SRob Herring				     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
719*724ba675SRob Herring			clock-output-names = "osc32k", "osc32k-out";
720*724ba675SRob Herring			clocks = <&ext_osc32k>;
721*724ba675SRob Herring			#clock-cells = <1>;
722*724ba675SRob Herring		};
723*724ba675SRob Herring
724*724ba675SRob Herring		r_intc: interrupt-controller@1f00c00 {
725*724ba675SRob Herring			compatible = "allwinner,sun6i-a31-r-intc";
726*724ba675SRob Herring			interrupt-controller;
727*724ba675SRob Herring			#interrupt-cells = <3>;
728*724ba675SRob Herring			reg = <0x01f00c00 0x400>;
729*724ba675SRob Herring			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
730*724ba675SRob Herring		};
731*724ba675SRob Herring
732*724ba675SRob Herring		prcm@1f01400 {
733*724ba675SRob Herring			compatible = "allwinner,sun8i-a23-prcm";
734*724ba675SRob Herring			reg = <0x01f01400 0x200>;
735*724ba675SRob Herring
736*724ba675SRob Herring			ar100: ar100_clk {
737*724ba675SRob Herring				compatible = "fixed-factor-clock";
738*724ba675SRob Herring				#clock-cells = <0>;
739*724ba675SRob Herring				clock-div = <1>;
740*724ba675SRob Herring				clock-mult = <1>;
741*724ba675SRob Herring				clocks = <&osc24M>;
742*724ba675SRob Herring				clock-output-names = "ar100";
743*724ba675SRob Herring			};
744*724ba675SRob Herring
745*724ba675SRob Herring			ahb0: ahb0_clk {
746*724ba675SRob Herring				compatible = "fixed-factor-clock";
747*724ba675SRob Herring				#clock-cells = <0>;
748*724ba675SRob Herring				clock-div = <1>;
749*724ba675SRob Herring				clock-mult = <1>;
750*724ba675SRob Herring				clocks = <&ar100>;
751*724ba675SRob Herring				clock-output-names = "ahb0";
752*724ba675SRob Herring			};
753*724ba675SRob Herring
754*724ba675SRob Herring			apb0: apb0_clk {
755*724ba675SRob Herring				compatible = "allwinner,sun8i-a23-apb0-clk";
756*724ba675SRob Herring				#clock-cells = <0>;
757*724ba675SRob Herring				clocks = <&ahb0>;
758*724ba675SRob Herring				clock-output-names = "apb0";
759*724ba675SRob Herring			};
760*724ba675SRob Herring
761*724ba675SRob Herring			apb0_gates: apb0_gates_clk {
762*724ba675SRob Herring				compatible = "allwinner,sun8i-a23-apb0-gates-clk";
763*724ba675SRob Herring				#clock-cells = <1>;
764*724ba675SRob Herring				clocks = <&apb0>;
765*724ba675SRob Herring				clock-output-names = "apb0_pio", "apb0_timer",
766*724ba675SRob Herring						"apb0_rsb", "apb0_uart",
767*724ba675SRob Herring						"apb0_i2c";
768*724ba675SRob Herring			};
769*724ba675SRob Herring
770*724ba675SRob Herring			apb0_rst: apb0_rst {
771*724ba675SRob Herring				compatible = "allwinner,sun6i-a31-clock-reset";
772*724ba675SRob Herring				#reset-cells = <1>;
773*724ba675SRob Herring			};
774*724ba675SRob Herring
775*724ba675SRob Herring			codec_analog: codec-analog {
776*724ba675SRob Herring				compatible = "allwinner,sun8i-a23-codec-analog";
777*724ba675SRob Herring			};
778*724ba675SRob Herring		};
779*724ba675SRob Herring
780*724ba675SRob Herring		cpucfg@1f01c00 {
781*724ba675SRob Herring			compatible = "allwinner,sun8i-a23-cpuconfig";
782*724ba675SRob Herring			reg = <0x01f01c00 0x300>;
783*724ba675SRob Herring		};
784*724ba675SRob Herring
785*724ba675SRob Herring		r_uart: serial@1f02800 {
786*724ba675SRob Herring			compatible = "snps,dw-apb-uart";
787*724ba675SRob Herring			reg = <0x01f02800 0x400>;
788*724ba675SRob Herring			interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
789*724ba675SRob Herring			reg-shift = <2>;
790*724ba675SRob Herring			reg-io-width = <4>;
791*724ba675SRob Herring			clocks = <&apb0_gates 4>;
792*724ba675SRob Herring			resets = <&apb0_rst 4>;
793*724ba675SRob Herring			status = "disabled";
794*724ba675SRob Herring		};
795*724ba675SRob Herring
796*724ba675SRob Herring		r_i2c: i2c@1f02400 {
797*724ba675SRob Herring			compatible = "allwinner,sun8i-a23-i2c",
798*724ba675SRob Herring				     "allwinner,sun6i-a31-i2c";
799*724ba675SRob Herring			reg = <0x01f02400 0x400>;
800*724ba675SRob Herring			interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
801*724ba675SRob Herring			pinctrl-names = "default";
802*724ba675SRob Herring			pinctrl-0 = <&r_i2c_pins>;
803*724ba675SRob Herring			clocks = <&apb0_gates 6>;
804*724ba675SRob Herring			resets = <&apb0_rst 6>;
805*724ba675SRob Herring			status = "disabled";
806*724ba675SRob Herring			#address-cells = <1>;
807*724ba675SRob Herring			#size-cells = <0>;
808*724ba675SRob Herring		};
809*724ba675SRob Herring
810*724ba675SRob Herring		r_pio: pinctrl@1f02c00 {
811*724ba675SRob Herring			compatible = "allwinner,sun8i-a23-r-pinctrl";
812*724ba675SRob Herring			reg = <0x01f02c00 0x400>;
813*724ba675SRob Herring			interrupt-parent = <&r_intc>;
814*724ba675SRob Herring			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
815*724ba675SRob Herring			clocks = <&apb0_gates 0>, <&osc24M>, <&rtc CLK_OSC32K>;
816*724ba675SRob Herring			clock-names = "apb", "hosc", "losc";
817*724ba675SRob Herring			gpio-controller;
818*724ba675SRob Herring			interrupt-controller;
819*724ba675SRob Herring			#interrupt-cells = <3>;
820*724ba675SRob Herring			#gpio-cells = <3>;
821*724ba675SRob Herring
822*724ba675SRob Herring			r_i2c_pins: r-i2c-pins {
823*724ba675SRob Herring				pins = "PL0", "PL1";
824*724ba675SRob Herring				function = "s_i2c";
825*724ba675SRob Herring				bias-pull-up;
826*724ba675SRob Herring			};
827*724ba675SRob Herring
828*724ba675SRob Herring			r_rsb_pins: r-rsb-pins {
829*724ba675SRob Herring				pins = "PL0", "PL1";
830*724ba675SRob Herring				function = "s_rsb";
831*724ba675SRob Herring				drive-strength = <20>;
832*724ba675SRob Herring				bias-pull-up;
833*724ba675SRob Herring			};
834*724ba675SRob Herring
835*724ba675SRob Herring			r_uart_pins_a: r-uart-pins {
836*724ba675SRob Herring				pins = "PL2", "PL3";
837*724ba675SRob Herring				function = "s_uart";
838*724ba675SRob Herring			};
839*724ba675SRob Herring		};
840*724ba675SRob Herring
841*724ba675SRob Herring		r_rsb: rsb@1f03400 {
842*724ba675SRob Herring			compatible = "allwinner,sun8i-a23-rsb";
843*724ba675SRob Herring			reg = <0x01f03400 0x400>;
844*724ba675SRob Herring			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
845*724ba675SRob Herring			clocks = <&apb0_gates 3>;
846*724ba675SRob Herring			clock-frequency = <3000000>;
847*724ba675SRob Herring			resets = <&apb0_rst 3>;
848*724ba675SRob Herring			pinctrl-names = "default";
849*724ba675SRob Herring			pinctrl-0 = <&r_rsb_pins>;
850*724ba675SRob Herring			status = "disabled";
851*724ba675SRob Herring			#address-cells = <1>;
852*724ba675SRob Herring			#size-cells = <0>;
853*724ba675SRob Herring		};
854*724ba675SRob Herring	};
855*724ba675SRob Herring};
856