1/*
2 * Copyright 2017 Chen-Yu Tsai <wens@csie.org>
3 * Copyright 2017 Icenowy Zheng <icenowy@aosc.io>
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 *  a) This file is free software; you can redistribute it and/or
11 *     modify it under the terms of the GNU General Public License as
12 *     published by the Free Software Foundation; either version 2 of the
13 *     License, or (at your option) any later version.
14 *
15 *     This file is distributed in the hope that it will be useful,
16 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
17 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 *     GNU General Public License for more details.
19 *
20 * Or, alternatively,
21 *
22 *  b) Permission is hereby granted, free of charge, to any person
23 *     obtaining a copy of this software and associated documentation
24 *     files (the "Software"), to deal in the Software without
25 *     restriction, including without limitation the rights to use,
26 *     copy, modify, merge, publish, distribute, sublicense, and/or
27 *     sell copies of the Software, and to permit persons to whom the
28 *     Software is furnished to do so, subject to the following
29 *     conditions:
30 *
31 *     The above copyright notice and this permission notice shall be
32 *     included in all copies or substantial portions of the Software.
33 *
34 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 *     OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44#include <dt-bindings/interrupt-controller/arm-gic.h>
45#include <dt-bindings/clock/sun8i-de2.h>
46#include <dt-bindings/clock/sun8i-r40-ccu.h>
47#include <dt-bindings/clock/sun8i-tcon-top.h>
48#include <dt-bindings/reset/sun8i-r40-ccu.h>
49#include <dt-bindings/reset/sun8i-de2.h>
50#include <dt-bindings/thermal/thermal.h>
51
52/ {
53	#address-cells = <1>;
54	#size-cells = <1>;
55	interrupt-parent = <&gic>;
56
57	clocks {
58		#address-cells = <1>;
59		#size-cells = <1>;
60		ranges;
61
62		osc24M: osc24M {
63			#clock-cells = <0>;
64			compatible = "fixed-clock";
65			clock-frequency = <24000000>;
66			clock-accuracy = <50000>;
67			clock-output-names = "osc24M";
68		};
69
70		osc32k: osc32k {
71			#clock-cells = <0>;
72			compatible = "fixed-clock";
73			clock-frequency = <32768>;
74			clock-accuracy = <20000>;
75			clock-output-names = "ext-osc32k";
76		};
77	};
78
79	cpus {
80		#address-cells = <1>;
81		#size-cells = <0>;
82
83		cpu0: cpu@0 {
84			compatible = "arm,cortex-a7";
85			device_type = "cpu";
86			reg = <0>;
87		};
88
89		cpu1: cpu@1 {
90			compatible = "arm,cortex-a7";
91			device_type = "cpu";
92			reg = <1>;
93		};
94
95		cpu2: cpu@2 {
96			compatible = "arm,cortex-a7";
97			device_type = "cpu";
98			reg = <2>;
99		};
100
101		cpu3: cpu@3 {
102			compatible = "arm,cortex-a7";
103			device_type = "cpu";
104			reg = <3>;
105		};
106	};
107
108	de: display-engine {
109		compatible = "allwinner,sun8i-r40-display-engine";
110		allwinner,pipelines = <&mixer0>, <&mixer1>;
111		status = "disabled";
112	};
113
114	thermal-zones {
115		cpu_thermal: cpu0-thermal {
116			/* milliseconds */
117			polling-delay-passive = <0>;
118			polling-delay = <0>;
119			thermal-sensors = <&ths 0>;
120		};
121
122		gpu_thermal: gpu-thermal {
123			/* milliseconds */
124			polling-delay-passive = <0>;
125			polling-delay = <0>;
126			thermal-sensors = <&ths 1>;
127		};
128	};
129
130	soc {
131		compatible = "simple-bus";
132		#address-cells = <1>;
133		#size-cells = <1>;
134		ranges;
135
136		display_clocks: clock@1000000 {
137			compatible = "allwinner,sun8i-r40-de2-clk",
138				     "allwinner,sun8i-h3-de2-clk";
139			reg = <0x01000000 0x10000>;
140			clocks = <&ccu CLK_BUS_DE>,
141				 <&ccu CLK_DE>;
142			clock-names = "bus",
143				      "mod";
144			resets = <&ccu RST_BUS_DE>;
145			#clock-cells = <1>;
146			#reset-cells = <1>;
147		};
148
149		mixer0: mixer@1100000 {
150			compatible = "allwinner,sun8i-r40-de2-mixer-0";
151			reg = <0x01100000 0x100000>;
152			clocks = <&display_clocks CLK_BUS_MIXER0>,
153				 <&display_clocks CLK_MIXER0>;
154			clock-names = "bus",
155				      "mod";
156			resets = <&display_clocks RST_MIXER0>;
157
158			ports {
159				#address-cells = <1>;
160				#size-cells = <0>;
161
162				mixer0_out: port@1 {
163					reg = <1>;
164					mixer0_out_tcon_top: endpoint {
165						remote-endpoint = <&tcon_top_mixer0_in_mixer0>;
166					};
167				};
168			};
169		};
170
171		mixer1: mixer@1200000 {
172			compatible = "allwinner,sun8i-r40-de2-mixer-1";
173			reg = <0x01200000 0x100000>;
174			clocks = <&display_clocks CLK_BUS_MIXER1>,
175				 <&display_clocks CLK_MIXER1>;
176			clock-names = "bus",
177				      "mod";
178			resets = <&display_clocks RST_WB>;
179
180			ports {
181				#address-cells = <1>;
182				#size-cells = <0>;
183
184				mixer1_out: port@1 {
185					reg = <1>;
186					mixer1_out_tcon_top: endpoint {
187						remote-endpoint = <&tcon_top_mixer1_in_mixer1>;
188					};
189				};
190			};
191		};
192
193		deinterlace: deinterlace@1400000 {
194			compatible = "allwinner,sun8i-r40-deinterlace",
195				     "allwinner,sun8i-h3-deinterlace";
196			reg = <0x01400000 0x20000>;
197			clocks = <&ccu CLK_BUS_DEINTERLACE>,
198				 <&ccu CLK_DEINTERLACE>,
199				 /*
200				  * NOTE: Contrary to what datasheet claims,
201				  * DRAM deinterlace gate doesn't exist and
202				  * it's shared with CSI1.
203				  */
204				 <&ccu CLK_DRAM_CSI1>;
205			clock-names = "bus", "mod", "ram";
206			resets = <&ccu RST_BUS_DEINTERLACE>;
207			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
208			interconnects = <&mbus 9>;
209			interconnect-names = "dma-mem";
210		};
211
212		syscon: system-control@1c00000 {
213			compatible = "allwinner,sun8i-r40-system-control",
214				     "allwinner,sun4i-a10-system-control";
215			reg = <0x01c00000 0x30>;
216			#address-cells = <1>;
217			#size-cells = <1>;
218			ranges;
219
220			sram_c: sram@1d00000 {
221				compatible = "mmio-sram";
222				reg = <0x01d00000 0xd0000>;
223				#address-cells = <1>;
224				#size-cells = <1>;
225				ranges = <0 0x01d00000 0xd0000>;
226
227				ve_sram: sram-section@0 {
228					compatible = "allwinner,sun8i-r40-sram-c1",
229						     "allwinner,sun4i-a10-sram-c1";
230					reg = <0x000000 0x80000>;
231				};
232			};
233		};
234
235		nmi_intc: interrupt-controller@1c00030 {
236			compatible = "allwinner,sun7i-a20-sc-nmi";
237			interrupt-controller;
238			#interrupt-cells = <2>;
239			reg = <0x01c00030 0x0c>;
240			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
241		};
242
243		dma: dma-controller@1c02000 {
244			compatible = "allwinner,sun8i-r40-dma",
245				     "allwinner,sun50i-a64-dma";
246			reg = <0x01c02000 0x1000>;
247			interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
248			clocks = <&ccu CLK_BUS_DMA>;
249			dma-channels = <16>;
250			dma-requests = <31>;
251			resets = <&ccu RST_BUS_DMA>;
252			#dma-cells = <1>;
253		};
254
255		spi0: spi@1c05000 {
256			compatible = "allwinner,sun8i-r40-spi",
257				     "allwinner,sun8i-h3-spi";
258			reg = <0x01c05000 0x1000>;
259			interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
260			clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
261			clock-names = "ahb", "mod";
262			resets = <&ccu RST_BUS_SPI0>;
263			status = "disabled";
264			#address-cells = <1>;
265			#size-cells = <0>;
266		};
267
268		spi1: spi@1c06000 {
269			compatible = "allwinner,sun8i-r40-spi",
270				     "allwinner,sun8i-h3-spi";
271			reg = <0x01c06000 0x1000>;
272			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
273			clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
274			clock-names = "ahb", "mod";
275			resets = <&ccu RST_BUS_SPI1>;
276			status = "disabled";
277			#address-cells = <1>;
278			#size-cells = <0>;
279		};
280
281		csi0: csi@1c09000 {
282			compatible = "allwinner,sun8i-r40-csi0",
283				     "allwinner,sun7i-a20-csi0";
284			reg = <0x01c09000 0x1000>;
285			interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
286			clocks = <&ccu CLK_BUS_CSI0>, <&ccu CLK_CSI_SCLK>,
287				 <&ccu CLK_DRAM_CSI0>;
288			clock-names = "bus", "isp", "ram";
289			resets = <&ccu RST_BUS_CSI0>;
290			interconnects = <&mbus 5>;
291			interconnect-names = "dma-mem";
292			status = "disabled";
293		};
294
295		video-codec@1c0e000 {
296			compatible = "allwinner,sun8i-r40-video-engine";
297			reg = <0x01c0e000 0x1000>;
298			clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
299			<&ccu CLK_DRAM_VE>;
300			clock-names = "ahb", "mod", "ram";
301			resets = <&ccu RST_BUS_VE>;
302			interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
303			allwinner,sram = <&ve_sram 1>;
304		};
305
306		mmc0: mmc@1c0f000 {
307			compatible = "allwinner,sun8i-r40-mmc",
308				     "allwinner,sun50i-a64-mmc";
309			reg = <0x01c0f000 0x1000>;
310			clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>;
311			clock-names = "ahb", "mmc";
312			resets = <&ccu RST_BUS_MMC0>;
313			reset-names = "ahb";
314			pinctrl-0 = <&mmc0_pins>;
315			pinctrl-names = "default";
316			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
317			status = "disabled";
318			#address-cells = <1>;
319			#size-cells = <0>;
320		};
321
322		mmc1: mmc@1c10000 {
323			compatible = "allwinner,sun8i-r40-mmc",
324				     "allwinner,sun50i-a64-mmc";
325			reg = <0x01c10000 0x1000>;
326			clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>;
327			clock-names = "ahb", "mmc";
328			resets = <&ccu RST_BUS_MMC1>;
329			reset-names = "ahb";
330			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
331			status = "disabled";
332			#address-cells = <1>;
333			#size-cells = <0>;
334		};
335
336		mmc2: mmc@1c11000 {
337			compatible = "allwinner,sun8i-r40-emmc",
338				     "allwinner,sun50i-a64-emmc";
339			reg = <0x01c11000 0x1000>;
340			clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
341			clock-names = "ahb", "mmc";
342			resets = <&ccu RST_BUS_MMC2>;
343			reset-names = "ahb";
344			pinctrl-0 = <&mmc2_pins>;
345			pinctrl-names = "default";
346			interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
347			status = "disabled";
348			#address-cells = <1>;
349			#size-cells = <0>;
350		};
351
352		mmc3: mmc@1c12000 {
353			compatible = "allwinner,sun8i-r40-mmc",
354				     "allwinner,sun50i-a64-mmc";
355			reg = <0x01c12000 0x1000>;
356			clocks = <&ccu CLK_BUS_MMC3>, <&ccu CLK_MMC3>;
357			clock-names = "ahb", "mmc";
358			resets = <&ccu RST_BUS_MMC3>;
359			reset-names = "ahb";
360			pinctrl-0 = <&mmc3_pins>;
361			pinctrl-names = "default";
362			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
363			status = "disabled";
364			#address-cells = <1>;
365			#size-cells = <0>;
366		};
367
368		usbphy: phy@1c13400 {
369			compatible = "allwinner,sun8i-r40-usb-phy";
370			reg = <0x01c13400 0x14>,
371			      <0x01c14800 0x4>,
372			      <0x01c19800 0x4>,
373			      <0x01c1c800 0x4>;
374			reg-names = "phy_ctrl",
375				    "pmu0",
376				    "pmu1",
377				    "pmu2";
378			clocks = <&ccu CLK_USB_PHY0>,
379				 <&ccu CLK_USB_PHY1>,
380				 <&ccu CLK_USB_PHY2>;
381			clock-names = "usb0_phy",
382				      "usb1_phy",
383				      "usb2_phy";
384			resets = <&ccu RST_USB_PHY0>,
385				 <&ccu RST_USB_PHY1>,
386				 <&ccu RST_USB_PHY2>;
387			reset-names = "usb0_reset",
388				      "usb1_reset",
389				      "usb2_reset";
390			status = "disabled";
391			#phy-cells = <1>;
392		};
393
394		crypto: crypto@1c15000 {
395			compatible = "allwinner,sun8i-r40-crypto";
396			reg = <0x01c15000 0x1000>;
397			interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
398			clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>;
399			clock-names = "bus", "mod";
400			resets = <&ccu RST_BUS_CE>;
401		};
402
403		spi2: spi@1c17000 {
404			compatible = "allwinner,sun8i-r40-spi",
405				     "allwinner,sun8i-h3-spi";
406			reg = <0x01c17000 0x1000>;
407			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
408			clocks = <&ccu CLK_BUS_SPI2>, <&ccu CLK_SPI2>;
409			clock-names = "ahb", "mod";
410			resets = <&ccu RST_BUS_SPI2>;
411			status = "disabled";
412			#address-cells = <1>;
413			#size-cells = <0>;
414		};
415
416		ahci: sata@1c18000 {
417			compatible = "allwinner,sun8i-r40-ahci";
418			reg = <0x01c18000 0x1000>;
419			interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
420			clocks = <&ccu CLK_BUS_SATA>, <&ccu CLK_SATA>;
421			resets = <&ccu RST_BUS_SATA>;
422			reset-names = "ahci";
423			status = "disabled";
424		};
425
426		ehci1: usb@1c19000 {
427			compatible = "allwinner,sun8i-r40-ehci", "generic-ehci";
428			reg = <0x01c19000 0x100>;
429			interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
430			clocks = <&ccu CLK_BUS_EHCI1>;
431			resets = <&ccu RST_BUS_EHCI1>;
432			phys = <&usbphy 1>;
433			phy-names = "usb";
434			status = "disabled";
435		};
436
437		ohci1: usb@1c19400 {
438			compatible = "allwinner,sun8i-r40-ohci", "generic-ohci";
439			reg = <0x01c19400 0x100>;
440			interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
441			clocks = <&ccu CLK_BUS_OHCI1>,
442				 <&ccu CLK_USB_OHCI1>;
443			resets = <&ccu RST_BUS_OHCI1>;
444			phys = <&usbphy 1>;
445			phy-names = "usb";
446			status = "disabled";
447		};
448
449		ehci2: usb@1c1c000 {
450			compatible = "allwinner,sun8i-r40-ehci", "generic-ehci";
451			reg = <0x01c1c000 0x100>;
452			interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
453			clocks = <&ccu CLK_BUS_EHCI2>;
454			resets = <&ccu RST_BUS_EHCI2>;
455			phys = <&usbphy 2>;
456			phy-names = "usb";
457			status = "disabled";
458		};
459
460		ohci2: usb@1c1c400 {
461			compatible = "allwinner,sun8i-r40-ohci", "generic-ohci";
462			reg = <0x01c1c400 0x100>;
463			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
464			clocks = <&ccu CLK_BUS_OHCI2>,
465				 <&ccu CLK_USB_OHCI2>;
466			resets = <&ccu RST_BUS_OHCI2>;
467			phys = <&usbphy 2>;
468			phy-names = "usb";
469			status = "disabled";
470		};
471
472		spi3: spi@1c1f000 {
473			compatible = "allwinner,sun8i-r40-spi",
474				     "allwinner,sun8i-h3-spi";
475			reg = <0x01c1f000 0x1000>;
476			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
477			clocks = <&ccu CLK_BUS_SPI3>, <&ccu CLK_SPI3>;
478			clock-names = "ahb", "mod";
479			resets = <&ccu RST_BUS_SPI3>;
480			status = "disabled";
481			#address-cells = <1>;
482			#size-cells = <0>;
483		};
484
485		ccu: clock@1c20000 {
486			compatible = "allwinner,sun8i-r40-ccu";
487			reg = <0x01c20000 0x400>;
488			clocks = <&osc24M>, <&rtc 0>;
489			clock-names = "hosc", "losc";
490			#clock-cells = <1>;
491			#reset-cells = <1>;
492		};
493
494		rtc: rtc@1c20400 {
495			compatible = "allwinner,sun8i-r40-rtc";
496			reg = <0x01c20400 0x400>;
497			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
498			clock-output-names = "osc32k", "osc32k-out";
499			clocks = <&osc32k>;
500			#clock-cells = <1>;
501		};
502
503		pio: pinctrl@1c20800 {
504			compatible = "allwinner,sun8i-r40-pinctrl";
505			reg = <0x01c20800 0x400>;
506			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
507			clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&rtc 0>;
508			clock-names = "apb", "hosc", "losc";
509			gpio-controller;
510			interrupt-controller;
511			#interrupt-cells = <3>;
512			#gpio-cells = <3>;
513
514			clk_out_a_pin: clk-out-a-pin {
515				pins = "PI12";
516				function = "clk_out_a";
517			};
518
519			/omit-if-no-ref/
520			csi0_8bits_pins: csi0-8bits-pins {
521				pins = "PE0", "PE2", "PE3", "PE4", "PE5",
522				       "PE6", "PE7", "PE8", "PE9", "PE10",
523				       "PE11";
524				function = "csi0";
525			};
526
527			/omit-if-no-ref/
528			csi0_mclk_pin: csi0-mclk-pin {
529				pins = "PE1";
530				function = "csi0";
531			};
532
533			gmac_rgmii_pins: gmac-rgmii-pins {
534				pins = "PA0", "PA1", "PA2", "PA3",
535				       "PA4", "PA5", "PA6", "PA7",
536				       "PA8", "PA10", "PA11", "PA12",
537				       "PA13", "PA15", "PA16";
538				function = "gmac";
539				/*
540				 * data lines in RGMII mode use DDR mode
541				 * and need a higher signal drive strength
542				 */
543				drive-strength = <40>;
544			};
545
546			i2c0_pins: i2c0-pins {
547				pins = "PB0", "PB1";
548				function = "i2c0";
549			};
550
551			i2c1_pins: i2c1-pins {
552				pins = "PB18", "PB19";
553				function = "i2c1";
554			};
555
556			i2c2_pins: i2c2-pins {
557				pins = "PB20", "PB21";
558				function = "i2c2";
559			};
560
561			i2c3_pins: i2c3-pins {
562				pins = "PI0", "PI1";
563				function = "i2c3";
564			};
565
566			i2c4_pins: i2c4-pins {
567				pins = "PI2", "PI3";
568				function = "i2c4";
569			};
570
571			ir0_pins: ir0-pins {
572				pins = "PB4";
573				function = "ir0";
574			};
575
576			ir1_pins: ir1-pins {
577				pins = "PB23";
578				function = "ir1";
579			};
580
581			mmc0_pins: mmc0-pins {
582				pins = "PF0", "PF1", "PF2",
583				       "PF3", "PF4", "PF5";
584				function = "mmc0";
585				drive-strength = <30>;
586				bias-pull-up;
587			};
588
589			mmc1_pg_pins: mmc1-pg-pins {
590				pins = "PG0", "PG1", "PG2",
591				       "PG3", "PG4", "PG5";
592				function = "mmc1";
593				drive-strength = <30>;
594				bias-pull-up;
595			};
596
597			mmc2_pins: mmc2-pins {
598				pins = "PC5", "PC6", "PC7", "PC8", "PC9",
599				       "PC10", "PC11", "PC12", "PC13", "PC14",
600				       "PC15", "PC24";
601				function = "mmc2";
602				drive-strength = <30>;
603				bias-pull-up;
604			};
605
606			/omit-if-no-ref/
607			mmc3_pins: mmc3-pins {
608				pins = "PI4", "PI5", "PI6",
609				       "PI7", "PI8", "PI9";
610				function = "mmc3";
611				drive-strength = <30>;
612				bias-pull-up;
613			};
614
615			/omit-if-no-ref/
616			spi0_pc_pins: spi0-pc-pins {
617				pins = "PC0", "PC1", "PC2";
618				function = "spi0";
619			};
620
621			/omit-if-no-ref/
622			spi0_cs0_pc_pin: spi0-cs0-pc-pin {
623				pins = "PC23";
624				function = "spi0";
625			};
626
627			/omit-if-no-ref/
628			spi1_pi_pins: spi1-pi-pins {
629				pins = "PI17", "PI18", "PI19";
630				function = "spi1";
631			};
632
633			/omit-if-no-ref/
634			spi1_cs0_pi_pin: spi1-cs0-pi-pin {
635				pins = "PI16";
636				function = "spi1";
637			};
638
639			/omit-if-no-ref/
640			spi1_cs1_pi_pin: spi1-cs1-pi-pin {
641				pins = "PI15";
642				function = "spi1";
643			};
644
645			/omit-if-no-ref/
646			uart0_pb_pins: uart0-pb-pins {
647				pins = "PB22", "PB23";
648				function = "uart0";
649			};
650
651			/omit-if-no-ref/
652			uart2_pi_pins: uart2-pi-pins {
653				pins = "PI18", "PI19";
654				function = "uart2";
655			};
656
657			/omit-if-no-ref/
658			uart2_rts_cts_pi_pins: uart2-rts-cts-pi-pins{
659				pins = "PI16", "PI17";
660				function = "uart2";
661			};
662
663			/omit-if-no-ref/
664			uart3_pg_pins: uart3-pg-pins {
665				pins = "PG6", "PG7";
666				function = "uart3";
667			};
668
669			/omit-if-no-ref/
670			uart3_rts_cts_pg_pins: uart3-rts-cts-pg-pins {
671				pins = "PG8", "PG9";
672				function = "uart3";
673			};
674
675			/omit-if-no-ref/
676			uart4_pg_pins: uart4-pg-pins {
677				pins = "PG10", "PG11";
678				function = "uart4";
679			};
680
681			/omit-if-no-ref/
682			uart5_ph_pins: uart5-ph-pins {
683				pins = "PH6", "PH7";
684				function = "uart5";
685			};
686
687			/omit-if-no-ref/
688			uart7_pi_pins: uart7-pi-pins {
689				pins = "PI20", "PI21";
690				function = "uart7";
691			};
692		};
693
694		timer@1c20c00 {
695			compatible = "allwinner,sun4i-a10-timer";
696			reg = <0x01c20c00 0x90>;
697			interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
698				     <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
699				     <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
700				     <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
701				     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
702				     <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
703			clocks = <&osc24M>;
704		};
705
706		wdt: watchdog@1c20c90 {
707			compatible = "allwinner,sun4i-a10-wdt";
708			reg = <0x01c20c90 0x10>;
709			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
710			clocks = <&osc24M>;
711		};
712
713		ir0: ir@1c21800 {
714			compatible = "allwinner,sun8i-r40-ir",
715				     "allwinner,sun6i-a31-ir";
716			reg = <0x01c21800 0x400>;
717			pinctrl-0 = <&ir0_pins>;
718			pinctrl-names = "default";
719			clocks = <&ccu CLK_BUS_IR0>, <&ccu CLK_IR0>;
720			clock-names = "apb", "ir";
721			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
722			resets = <&ccu RST_BUS_IR0>;
723			status = "disabled";
724		};
725
726		ir1: ir@1c21c00 {
727			compatible = "allwinner,sun8i-r40-ir",
728				     "allwinner,sun6i-a31-ir";
729			reg = <0x01c21c00 0x400>;
730			pinctrl-0 = <&ir1_pins>;
731			pinctrl-names = "default";
732			clocks = <&ccu CLK_BUS_IR1>, <&ccu CLK_IR1>;
733			clock-names = "apb", "ir";
734			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
735			resets = <&ccu RST_BUS_IR1>;
736			status = "disabled";
737		};
738
739		i2s0: i2s@1c22000 {
740			#sound-dai-cells = <0>;
741			compatible = "allwinner,sun8i-r40-i2s",
742				     "allwinner,sun8i-h3-i2s";
743			reg = <0x01c22000 0x400>;
744			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
745			clocks = <&ccu CLK_BUS_I2S0>, <&ccu CLK_I2S0>;
746			clock-names = "apb", "mod";
747			resets = <&ccu RST_BUS_I2S0>;
748			dmas = <&dma 3>, <&dma 3>;
749			dma-names = "rx", "tx";
750		};
751
752		i2s1: i2s@1c22400 {
753			#sound-dai-cells = <0>;
754			compatible = "allwinner,sun8i-r40-i2s",
755				     "allwinner,sun8i-h3-i2s";
756			reg = <0x01c22400 0x400>;
757			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
758			clocks = <&ccu CLK_BUS_I2S1>, <&ccu CLK_I2S1>;
759			clock-names = "apb", "mod";
760			resets = <&ccu RST_BUS_I2S1>;
761			dmas = <&dma 4>, <&dma 4>;
762			dma-names = "rx", "tx";
763		};
764
765		i2s2: i2s@1c22800 {
766			#sound-dai-cells = <0>;
767			compatible = "allwinner,sun8i-r40-i2s",
768				     "allwinner,sun8i-h3-i2s";
769			reg = <0x01c22800 0x400>;
770			interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
771			clocks = <&ccu CLK_BUS_I2S2>, <&ccu CLK_I2S2>;
772			clock-names = "apb", "mod";
773			resets = <&ccu RST_BUS_I2S2>;
774			dmas = <&dma 6>, <&dma 6>;
775			dma-names = "rx", "tx";
776		};
777
778		ths: thermal-sensor@1c24c00 {
779			compatible = "allwinner,sun8i-r40-ths";
780			reg = <0x01c24c00 0x100>;
781			clocks = <&ccu CLK_BUS_THS>, <&ccu CLK_THS>;
782			clock-names = "bus", "mod";
783			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
784			resets = <&ccu RST_BUS_THS>;
785			/* TODO: add nvmem-cells for calibration */
786			#thermal-sensor-cells = <1>;
787		};
788
789		uart0: serial@1c28000 {
790			compatible = "snps,dw-apb-uart";
791			reg = <0x01c28000 0x400>;
792			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
793			reg-shift = <2>;
794			reg-io-width = <4>;
795			clocks = <&ccu CLK_BUS_UART0>;
796			resets = <&ccu RST_BUS_UART0>;
797			status = "disabled";
798		};
799
800		uart1: serial@1c28400 {
801			compatible = "snps,dw-apb-uart";
802			reg = <0x01c28400 0x400>;
803			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
804			reg-shift = <2>;
805			reg-io-width = <4>;
806			clocks = <&ccu CLK_BUS_UART1>;
807			resets = <&ccu RST_BUS_UART1>;
808			status = "disabled";
809		};
810
811		uart2: serial@1c28800 {
812			compatible = "snps,dw-apb-uart";
813			reg = <0x01c28800 0x400>;
814			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
815			reg-shift = <2>;
816			reg-io-width = <4>;
817			clocks = <&ccu CLK_BUS_UART2>;
818			resets = <&ccu RST_BUS_UART2>;
819			status = "disabled";
820		};
821
822		uart3: serial@1c28c00 {
823			compatible = "snps,dw-apb-uart";
824			reg = <0x01c28c00 0x400>;
825			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
826			reg-shift = <2>;
827			reg-io-width = <4>;
828			clocks = <&ccu CLK_BUS_UART3>;
829			resets = <&ccu RST_BUS_UART3>;
830			status = "disabled";
831		};
832
833		uart4: serial@1c29000 {
834			compatible = "snps,dw-apb-uart";
835			reg = <0x01c29000 0x400>;
836			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
837			reg-shift = <2>;
838			reg-io-width = <4>;
839			clocks = <&ccu CLK_BUS_UART4>;
840			resets = <&ccu RST_BUS_UART4>;
841			status = "disabled";
842		};
843
844		uart5: serial@1c29400 {
845			compatible = "snps,dw-apb-uart";
846			reg = <0x01c29400 0x400>;
847			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
848			reg-shift = <2>;
849			reg-io-width = <4>;
850			clocks = <&ccu CLK_BUS_UART5>;
851			resets = <&ccu RST_BUS_UART5>;
852			status = "disabled";
853		};
854
855		uart6: serial@1c29800 {
856			compatible = "snps,dw-apb-uart";
857			reg = <0x01c29800 0x400>;
858			interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
859			reg-shift = <2>;
860			reg-io-width = <4>;
861			clocks = <&ccu CLK_BUS_UART6>;
862			resets = <&ccu RST_BUS_UART6>;
863			status = "disabled";
864		};
865
866		uart7: serial@1c29c00 {
867			compatible = "snps,dw-apb-uart";
868			reg = <0x01c29c00 0x400>;
869			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
870			reg-shift = <2>;
871			reg-io-width = <4>;
872			clocks = <&ccu CLK_BUS_UART7>;
873			resets = <&ccu RST_BUS_UART7>;
874			status = "disabled";
875		};
876
877		i2c0: i2c@1c2ac00 {
878			compatible = "allwinner,sun6i-a31-i2c";
879			reg = <0x01c2ac00 0x400>;
880			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
881			clocks = <&ccu CLK_BUS_I2C0>;
882			resets = <&ccu RST_BUS_I2C0>;
883			pinctrl-0 = <&i2c0_pins>;
884			pinctrl-names = "default";
885			status = "disabled";
886			#address-cells = <1>;
887			#size-cells = <0>;
888		};
889
890		i2c1: i2c@1c2b000 {
891			compatible = "allwinner,sun6i-a31-i2c";
892			reg = <0x01c2b000 0x400>;
893			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
894			clocks = <&ccu CLK_BUS_I2C1>;
895			resets = <&ccu RST_BUS_I2C1>;
896			pinctrl-0 = <&i2c1_pins>;
897			pinctrl-names = "default";
898			status = "disabled";
899			#address-cells = <1>;
900			#size-cells = <0>;
901		};
902
903		i2c2: i2c@1c2b400 {
904			compatible = "allwinner,sun6i-a31-i2c";
905			reg = <0x01c2b400 0x400>;
906			interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
907			clocks = <&ccu CLK_BUS_I2C2>;
908			resets = <&ccu RST_BUS_I2C2>;
909			pinctrl-0 = <&i2c2_pins>;
910			pinctrl-names = "default";
911			status = "disabled";
912			#address-cells = <1>;
913			#size-cells = <0>;
914		};
915
916		i2c3: i2c@1c2b800 {
917			compatible = "allwinner,sun6i-a31-i2c";
918			reg = <0x01c2b800 0x400>;
919			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
920			clocks = <&ccu CLK_BUS_I2C3>;
921			resets = <&ccu RST_BUS_I2C3>;
922			pinctrl-0 = <&i2c3_pins>;
923			pinctrl-names = "default";
924			status = "disabled";
925			#address-cells = <1>;
926			#size-cells = <0>;
927		};
928
929		i2c4: i2c@1c2c000 {
930			compatible = "allwinner,sun6i-a31-i2c";
931			reg = <0x01c2c000 0x400>;
932			interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
933			clocks = <&ccu CLK_BUS_I2C4>;
934			resets = <&ccu RST_BUS_I2C4>;
935			pinctrl-0 = <&i2c4_pins>;
936			pinctrl-names = "default";
937			status = "disabled";
938			#address-cells = <1>;
939			#size-cells = <0>;
940		};
941
942		mali: gpu@1c40000 {
943			compatible = "allwinner,sun8i-r40-mali", "arm,mali-400";
944			reg = <0x01c40000 0x10000>;
945			interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
946				     <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
947				     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
948				     <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
949				     <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
950				     <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
951				     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
952			interrupt-names = "gp",
953					  "gpmmu",
954					  "pp0",
955					  "ppmmu0",
956					  "pp1",
957					  "ppmmu1",
958					  "pmu";
959			clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
960			clock-names = "bus", "core";
961			resets = <&ccu RST_BUS_GPU>;
962		};
963
964		gmac: ethernet@1c50000 {
965			compatible = "allwinner,sun8i-r40-gmac";
966			syscon = <&ccu>;
967			reg = <0x01c50000 0x10000>;
968			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
969			interrupt-names = "macirq";
970			resets = <&ccu RST_BUS_GMAC>;
971			reset-names = "stmmaceth";
972			clocks = <&ccu CLK_BUS_GMAC>;
973			clock-names = "stmmaceth";
974			status = "disabled";
975
976			gmac_mdio: mdio {
977				compatible = "snps,dwmac-mdio";
978				#address-cells = <1>;
979				#size-cells = <0>;
980			};
981		};
982
983		mbus: dram-controller@1c62000 {
984			compatible = "allwinner,sun8i-r40-mbus";
985			reg = <0x01c62000 0x1000>;
986			clocks = <&ccu 155>;
987			#address-cells = <1>;
988			#size-cells = <1>;
989			dma-ranges = <0x00000000 0x40000000 0x80000000>;
990			#interconnect-cells = <1>;
991		};
992
993		tcon_top: tcon-top@1c70000 {
994			compatible = "allwinner,sun8i-r40-tcon-top";
995			reg = <0x01c70000 0x1000>;
996			clocks = <&ccu CLK_BUS_TCON_TOP>,
997				 <&ccu CLK_TCON_TV0>,
998				 <&ccu CLK_TVE0>,
999				 <&ccu CLK_TCON_TV1>,
1000				 <&ccu CLK_TVE1>,
1001				 <&ccu CLK_DSI_DPHY>;
1002			clock-names = "bus",
1003				      "tcon-tv0",
1004				      "tve0",
1005				      "tcon-tv1",
1006				      "tve1",
1007				      "dsi";
1008			clock-output-names = "tcon-top-tv0",
1009					     "tcon-top-tv1",
1010					     "tcon-top-dsi";
1011			resets = <&ccu RST_BUS_TCON_TOP>;
1012			#clock-cells = <1>;
1013
1014			ports {
1015				#address-cells = <1>;
1016				#size-cells = <0>;
1017
1018				tcon_top_mixer0_in: port@0 {
1019					reg = <0>;
1020
1021					tcon_top_mixer0_in_mixer0: endpoint {
1022						remote-endpoint = <&mixer0_out_tcon_top>;
1023					};
1024				};
1025
1026				tcon_top_mixer0_out: port@1 {
1027					#address-cells = <1>;
1028					#size-cells = <0>;
1029					reg = <1>;
1030
1031					tcon_top_mixer0_out_tcon_lcd0: endpoint@0 {
1032						reg = <0>;
1033					};
1034
1035					tcon_top_mixer0_out_tcon_lcd1: endpoint@1 {
1036						reg = <1>;
1037					};
1038
1039					tcon_top_mixer0_out_tcon_tv0: endpoint@2 {
1040						reg = <2>;
1041						remote-endpoint = <&tcon_tv0_in_tcon_top_mixer0>;
1042					};
1043
1044					tcon_top_mixer0_out_tcon_tv1: endpoint@3 {
1045						reg = <3>;
1046						remote-endpoint = <&tcon_tv1_in_tcon_top_mixer0>;
1047					};
1048				};
1049
1050				tcon_top_mixer1_in: port@2 {
1051					#address-cells = <1>;
1052					#size-cells = <0>;
1053					reg = <2>;
1054
1055					tcon_top_mixer1_in_mixer1: endpoint@1 {
1056						reg = <1>;
1057						remote-endpoint = <&mixer1_out_tcon_top>;
1058					};
1059				};
1060
1061				tcon_top_mixer1_out: port@3 {
1062					#address-cells = <1>;
1063					#size-cells = <0>;
1064					reg = <3>;
1065
1066					tcon_top_mixer1_out_tcon_lcd0: endpoint@0 {
1067						reg = <0>;
1068					};
1069
1070					tcon_top_mixer1_out_tcon_lcd1: endpoint@1 {
1071						reg = <1>;
1072					};
1073
1074					tcon_top_mixer1_out_tcon_tv0: endpoint@2 {
1075						reg = <2>;
1076						remote-endpoint = <&tcon_tv0_in_tcon_top_mixer1>;
1077					};
1078
1079					tcon_top_mixer1_out_tcon_tv1: endpoint@3 {
1080						reg = <3>;
1081						remote-endpoint = <&tcon_tv1_in_tcon_top_mixer1>;
1082					};
1083				};
1084
1085				tcon_top_hdmi_in: port@4 {
1086					#address-cells = <1>;
1087					#size-cells = <0>;
1088					reg = <4>;
1089
1090					tcon_top_hdmi_in_tcon_tv0: endpoint@0 {
1091						reg = <0>;
1092						remote-endpoint = <&tcon_tv0_out_tcon_top>;
1093					};
1094
1095					tcon_top_hdmi_in_tcon_tv1: endpoint@1 {
1096						reg = <1>;
1097						remote-endpoint = <&tcon_tv1_out_tcon_top>;
1098					};
1099				};
1100
1101				tcon_top_hdmi_out: port@5 {
1102					reg = <5>;
1103
1104					tcon_top_hdmi_out_hdmi: endpoint {
1105						remote-endpoint = <&hdmi_in_tcon_top>;
1106					};
1107				};
1108			};
1109		};
1110
1111		tcon_tv0: lcd-controller@1c73000 {
1112			compatible = "allwinner,sun8i-r40-tcon-tv";
1113			reg = <0x01c73000 0x1000>;
1114			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
1115			clocks = <&ccu CLK_BUS_TCON_TV0>, <&tcon_top CLK_TCON_TOP_TV0>;
1116			clock-names = "ahb", "tcon-ch1";
1117			resets = <&ccu RST_BUS_TCON_TV0>;
1118			reset-names = "lcd";
1119			status = "disabled";
1120
1121			ports {
1122				#address-cells = <1>;
1123				#size-cells = <0>;
1124
1125				tcon_tv0_in: port@0 {
1126					#address-cells = <1>;
1127					#size-cells = <0>;
1128					reg = <0>;
1129
1130					tcon_tv0_in_tcon_top_mixer0: endpoint@0 {
1131						reg = <0>;
1132						remote-endpoint = <&tcon_top_mixer0_out_tcon_tv0>;
1133					};
1134
1135					tcon_tv0_in_tcon_top_mixer1: endpoint@1 {
1136						reg = <1>;
1137						remote-endpoint = <&tcon_top_mixer1_out_tcon_tv0>;
1138					};
1139				};
1140
1141				tcon_tv0_out: port@1 {
1142					#address-cells = <1>;
1143					#size-cells = <0>;
1144					reg = <1>;
1145
1146					tcon_tv0_out_tcon_top: endpoint@1 {
1147						reg = <1>;
1148						remote-endpoint = <&tcon_top_hdmi_in_tcon_tv0>;
1149					};
1150				};
1151			};
1152		};
1153
1154		tcon_tv1: lcd-controller@1c74000 {
1155			compatible = "allwinner,sun8i-r40-tcon-tv";
1156			reg = <0x01c74000 0x1000>;
1157			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
1158			clocks = <&ccu CLK_BUS_TCON_TV1>, <&tcon_top CLK_TCON_TOP_TV1>;
1159			clock-names = "ahb", "tcon-ch1";
1160			resets = <&ccu RST_BUS_TCON_TV1>;
1161			reset-names = "lcd";
1162			status = "disabled";
1163
1164			ports {
1165				#address-cells = <1>;
1166				#size-cells = <0>;
1167
1168				tcon_tv1_in: port@0 {
1169					#address-cells = <1>;
1170					#size-cells = <0>;
1171					reg = <0>;
1172
1173					tcon_tv1_in_tcon_top_mixer0: endpoint@0 {
1174						reg = <0>;
1175						remote-endpoint = <&tcon_top_mixer0_out_tcon_tv1>;
1176					};
1177
1178					tcon_tv1_in_tcon_top_mixer1: endpoint@1 {
1179						reg = <1>;
1180						remote-endpoint = <&tcon_top_mixer1_out_tcon_tv1>;
1181					};
1182				};
1183
1184				tcon_tv1_out: port@1 {
1185					#address-cells = <1>;
1186					#size-cells = <0>;
1187					reg = <1>;
1188
1189					tcon_tv1_out_tcon_top: endpoint@1 {
1190						reg = <1>;
1191						remote-endpoint = <&tcon_top_hdmi_in_tcon_tv1>;
1192					};
1193				};
1194			};
1195		};
1196
1197		gic: interrupt-controller@1c81000 {
1198			compatible = "arm,gic-400";
1199			reg = <0x01c81000 0x1000>,
1200			      <0x01c82000 0x2000>,
1201			      <0x01c84000 0x2000>,
1202			      <0x01c86000 0x2000>;
1203			interrupt-controller;
1204			#interrupt-cells = <3>;
1205			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
1206		};
1207
1208		hdmi: hdmi@1ee0000 {
1209			compatible = "allwinner,sun8i-r40-dw-hdmi",
1210				     "allwinner,sun8i-a83t-dw-hdmi";
1211			reg = <0x01ee0000 0x10000>;
1212			reg-io-width = <1>;
1213			interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
1214			clocks = <&ccu CLK_BUS_HDMI0>, <&ccu CLK_HDMI_SLOW>,
1215				 <&ccu CLK_HDMI>;
1216			clock-names = "iahb", "isfr", "tmds";
1217			resets = <&ccu RST_BUS_HDMI1>;
1218			reset-names = "ctrl";
1219			phys = <&hdmi_phy>;
1220			phy-names = "phy";
1221			status = "disabled";
1222
1223			ports {
1224				#address-cells = <1>;
1225				#size-cells = <0>;
1226
1227				hdmi_in: port@0 {
1228					reg = <0>;
1229
1230					hdmi_in_tcon_top: endpoint {
1231						remote-endpoint = <&tcon_top_hdmi_out_hdmi>;
1232					};
1233				};
1234
1235				hdmi_out: port@1 {
1236					reg = <1>;
1237				};
1238			};
1239		};
1240
1241		hdmi_phy: hdmi-phy@1ef0000 {
1242			compatible = "allwinner,sun8i-r40-hdmi-phy";
1243			reg = <0x01ef0000 0x10000>;
1244			clocks = <&ccu CLK_BUS_HDMI1>, <&ccu CLK_HDMI_SLOW>,
1245				 <&ccu CLK_PLL_VIDEO0>, <&ccu CLK_PLL_VIDEO1>;
1246			clock-names = "bus", "mod", "pll-0", "pll-1";
1247			resets = <&ccu RST_BUS_HDMI0>;
1248			reset-names = "phy";
1249			#phy-cells = <0>;
1250		};
1251	};
1252
1253	pmu {
1254		compatible = "arm,cortex-a7-pmu";
1255		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
1256			     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
1257			     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
1258			     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
1259		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
1260	};
1261
1262	timer {
1263		compatible = "arm,armv7-timer";
1264		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1265			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1266			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1267			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
1268	};
1269};
1270