xref: /freebsd-src/sys/contrib/device-tree/src/arm/rockchip/rk3036.dtsi (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2f126890aSEmmanuel Vadot
3f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
4f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
5f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
6f126890aSEmmanuel Vadot#include <dt-bindings/pinctrl/rockchip.h>
7f126890aSEmmanuel Vadot#include <dt-bindings/clock/rk3036-cru.h>
8f126890aSEmmanuel Vadot#include <dt-bindings/soc/rockchip,boot-mode.h>
9f126890aSEmmanuel Vadot#include <dt-bindings/power/rk3036-power.h>
10f126890aSEmmanuel Vadot
11f126890aSEmmanuel Vadot/ {
12f126890aSEmmanuel Vadot	#address-cells = <1>;
13f126890aSEmmanuel Vadot	#size-cells = <1>;
14f126890aSEmmanuel Vadot
15f126890aSEmmanuel Vadot	compatible = "rockchip,rk3036";
16f126890aSEmmanuel Vadot
17f126890aSEmmanuel Vadot	interrupt-parent = <&gic>;
18f126890aSEmmanuel Vadot
19f126890aSEmmanuel Vadot	aliases {
208d13bc63SEmmanuel Vadot		gpio0 = &gpio0;
218d13bc63SEmmanuel Vadot		gpio1 = &gpio1;
228d13bc63SEmmanuel Vadot		gpio2 = &gpio2;
23f126890aSEmmanuel Vadot		i2c0 = &i2c0;
24f126890aSEmmanuel Vadot		i2c1 = &i2c1;
25f126890aSEmmanuel Vadot		i2c2 = &i2c2;
26f126890aSEmmanuel Vadot		mshc0 = &emmc;
27f126890aSEmmanuel Vadot		mshc1 = &sdmmc;
28f126890aSEmmanuel Vadot		mshc2 = &sdio;
29f126890aSEmmanuel Vadot		serial0 = &uart0;
30f126890aSEmmanuel Vadot		serial1 = &uart1;
31f126890aSEmmanuel Vadot		serial2 = &uart2;
32f126890aSEmmanuel Vadot		spi = &spi;
33f126890aSEmmanuel Vadot	};
34f126890aSEmmanuel Vadot
35f126890aSEmmanuel Vadot	cpus {
36f126890aSEmmanuel Vadot		#address-cells = <1>;
37f126890aSEmmanuel Vadot		#size-cells = <0>;
38f126890aSEmmanuel Vadot		enable-method = "rockchip,rk3036-smp";
39f126890aSEmmanuel Vadot
40f126890aSEmmanuel Vadot		cpu0: cpu@f00 {
41f126890aSEmmanuel Vadot			device_type = "cpu";
42f126890aSEmmanuel Vadot			compatible = "arm,cortex-a7";
43f126890aSEmmanuel Vadot			reg = <0xf00>;
44f126890aSEmmanuel Vadot			resets = <&cru SRST_CORE0>;
45f126890aSEmmanuel Vadot			operating-points = <
46f126890aSEmmanuel Vadot				/* KHz    uV */
47f126890aSEmmanuel Vadot				 816000 1000000
48f126890aSEmmanuel Vadot			>;
49f126890aSEmmanuel Vadot			clock-latency = <40000>;
50f126890aSEmmanuel Vadot			clocks = <&cru ARMCLK>;
51f126890aSEmmanuel Vadot		};
52f126890aSEmmanuel Vadot
53f126890aSEmmanuel Vadot		cpu1: cpu@f01 {
54f126890aSEmmanuel Vadot			device_type = "cpu";
55f126890aSEmmanuel Vadot			compatible = "arm,cortex-a7";
56f126890aSEmmanuel Vadot			reg = <0xf01>;
57f126890aSEmmanuel Vadot			resets = <&cru SRST_CORE1>;
58f126890aSEmmanuel Vadot		};
59f126890aSEmmanuel Vadot	};
60f126890aSEmmanuel Vadot
61f126890aSEmmanuel Vadot	arm-pmu {
62f126890aSEmmanuel Vadot		compatible = "arm,cortex-a7-pmu";
63f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
64f126890aSEmmanuel Vadot			     <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
65f126890aSEmmanuel Vadot		interrupt-affinity = <&cpu0>, <&cpu1>;
66f126890aSEmmanuel Vadot	};
67f126890aSEmmanuel Vadot
68f126890aSEmmanuel Vadot	display-subsystem {
69f126890aSEmmanuel Vadot		compatible = "rockchip,display-subsystem";
70f126890aSEmmanuel Vadot		ports = <&vop_out>;
71f126890aSEmmanuel Vadot	};
72f126890aSEmmanuel Vadot
73f126890aSEmmanuel Vadot	timer {
74f126890aSEmmanuel Vadot		compatible = "arm,armv7-timer";
75f126890aSEmmanuel Vadot		arm,cpu-registers-not-fw-configured;
76f126890aSEmmanuel Vadot		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>,
77f126890aSEmmanuel Vadot			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>,
78f126890aSEmmanuel Vadot			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>,
79f126890aSEmmanuel Vadot			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
80f126890aSEmmanuel Vadot		clock-frequency = <24000000>;
81f126890aSEmmanuel Vadot	};
82f126890aSEmmanuel Vadot
83f126890aSEmmanuel Vadot	xin24m: oscillator {
84f126890aSEmmanuel Vadot		compatible = "fixed-clock";
85f126890aSEmmanuel Vadot		clock-frequency = <24000000>;
86f126890aSEmmanuel Vadot		clock-output-names = "xin24m";
87f126890aSEmmanuel Vadot		#clock-cells = <0>;
88f126890aSEmmanuel Vadot	};
89f126890aSEmmanuel Vadot
90f126890aSEmmanuel Vadot	bus_intmem: sram@10080000 {
91f126890aSEmmanuel Vadot		compatible = "mmio-sram";
92f126890aSEmmanuel Vadot		reg = <0x10080000 0x2000>;
93f126890aSEmmanuel Vadot		#address-cells = <1>;
94f126890aSEmmanuel Vadot		#size-cells = <1>;
95f126890aSEmmanuel Vadot		ranges = <0 0x10080000 0x2000>;
96f126890aSEmmanuel Vadot
97f126890aSEmmanuel Vadot		smp-sram@0 {
98f126890aSEmmanuel Vadot			compatible = "rockchip,rk3066-smp-sram";
99f126890aSEmmanuel Vadot			reg = <0x00 0x10>;
100f126890aSEmmanuel Vadot		};
101f126890aSEmmanuel Vadot	};
102f126890aSEmmanuel Vadot
103f126890aSEmmanuel Vadot	gpu: gpu@10090000 {
104f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-mali", "arm,mali-400";
105f126890aSEmmanuel Vadot		reg = <0x10090000 0x10000>;
106f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
107f126890aSEmmanuel Vadot			     <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
108f126890aSEmmanuel Vadot			     <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
109f126890aSEmmanuel Vadot			     <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
110f126890aSEmmanuel Vadot		interrupt-names = "gp",
111f126890aSEmmanuel Vadot				  "gpmmu",
112f126890aSEmmanuel Vadot				  "pp0",
113f126890aSEmmanuel Vadot				  "ppmmu0";
114f126890aSEmmanuel Vadot		assigned-clocks = <&cru SCLK_GPU>;
115f126890aSEmmanuel Vadot		assigned-clock-rates = <100000000>;
116f126890aSEmmanuel Vadot		clocks = <&cru SCLK_GPU>, <&cru SCLK_GPU>;
117f126890aSEmmanuel Vadot		clock-names = "bus", "core";
118f126890aSEmmanuel Vadot		power-domains = <&power RK3036_PD_GPU>;
119f126890aSEmmanuel Vadot		resets = <&cru SRST_GPU>;
120f126890aSEmmanuel Vadot		status = "disabled";
121f126890aSEmmanuel Vadot	};
122f126890aSEmmanuel Vadot
123f126890aSEmmanuel Vadot	vpu: video-codec@10108000 {
124f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-vpu";
125f126890aSEmmanuel Vadot		reg = <0x10108000 0x800>;
126f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
127f126890aSEmmanuel Vadot		interrupt-names = "vdpu";
128f126890aSEmmanuel Vadot		clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
129f126890aSEmmanuel Vadot		clock-names = "aclk", "hclk";
130f126890aSEmmanuel Vadot		iommus = <&vpu_mmu>;
131f126890aSEmmanuel Vadot		power-domains = <&power RK3036_PD_VPU>;
132f126890aSEmmanuel Vadot	};
133f126890aSEmmanuel Vadot
134f126890aSEmmanuel Vadot	vpu_mmu: iommu@10108800 {
135f126890aSEmmanuel Vadot		compatible = "rockchip,iommu";
136f126890aSEmmanuel Vadot		reg = <0x10108800 0x100>;
137f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
138f126890aSEmmanuel Vadot		clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
139f126890aSEmmanuel Vadot		clock-names = "aclk", "iface";
140f126890aSEmmanuel Vadot		power-domains = <&power RK3036_PD_VPU>;
141f126890aSEmmanuel Vadot		#iommu-cells = <0>;
142f126890aSEmmanuel Vadot	};
143f126890aSEmmanuel Vadot
144f126890aSEmmanuel Vadot	vop: vop@10118000 {
145f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-vop";
146f126890aSEmmanuel Vadot		reg = <0x10118000 0x19c>;
147f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
148f126890aSEmmanuel Vadot		clocks = <&cru ACLK_LCDC>, <&cru SCLK_LCDC>, <&cru HCLK_LCDC>;
149f126890aSEmmanuel Vadot		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
150f126890aSEmmanuel Vadot		resets = <&cru SRST_LCDC1_A>, <&cru SRST_LCDC1_H>, <&cru SRST_LCDC1_D>;
151f126890aSEmmanuel Vadot		reset-names = "axi", "ahb", "dclk";
152f126890aSEmmanuel Vadot		iommus = <&vop_mmu>;
153f126890aSEmmanuel Vadot		power-domains = <&power RK3036_PD_VIO>;
154f126890aSEmmanuel Vadot		status = "disabled";
155f126890aSEmmanuel Vadot
156f126890aSEmmanuel Vadot		vop_out: port {
157f126890aSEmmanuel Vadot			#address-cells = <1>;
158f126890aSEmmanuel Vadot			#size-cells = <0>;
159f126890aSEmmanuel Vadot			vop_out_hdmi: endpoint@0 {
160f126890aSEmmanuel Vadot				reg = <0>;
161f126890aSEmmanuel Vadot				remote-endpoint = <&hdmi_in_vop>;
162f126890aSEmmanuel Vadot			};
163f126890aSEmmanuel Vadot		};
164f126890aSEmmanuel Vadot	};
165f126890aSEmmanuel Vadot
166f126890aSEmmanuel Vadot	vop_mmu: iommu@10118300 {
167f126890aSEmmanuel Vadot		compatible = "rockchip,iommu";
168f126890aSEmmanuel Vadot		reg = <0x10118300 0x100>;
169f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
170f126890aSEmmanuel Vadot		clocks = <&cru ACLK_LCDC>, <&cru HCLK_LCDC>;
171f126890aSEmmanuel Vadot		clock-names = "aclk", "iface";
172f126890aSEmmanuel Vadot		power-domains = <&power RK3036_PD_VIO>;
173f126890aSEmmanuel Vadot		#iommu-cells = <0>;
174f126890aSEmmanuel Vadot		status = "disabled";
175f126890aSEmmanuel Vadot	};
176f126890aSEmmanuel Vadot
177f126890aSEmmanuel Vadot	qos_gpu: qos@1012d000 {
178f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-qos", "syscon";
179f126890aSEmmanuel Vadot		reg = <0x1012d000 0x20>;
180f126890aSEmmanuel Vadot	};
181f126890aSEmmanuel Vadot
182f126890aSEmmanuel Vadot	qos_vpu: qos@1012e000 {
183f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-qos", "syscon";
184f126890aSEmmanuel Vadot		reg = <0x1012e000 0x20>;
185f126890aSEmmanuel Vadot	};
186f126890aSEmmanuel Vadot
187f126890aSEmmanuel Vadot	qos_vio: qos@1012f000 {
188f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-qos", "syscon";
189f126890aSEmmanuel Vadot		reg = <0x1012f000 0x20>;
190f126890aSEmmanuel Vadot	};
191f126890aSEmmanuel Vadot
192f126890aSEmmanuel Vadot	gic: interrupt-controller@10139000 {
193f126890aSEmmanuel Vadot		compatible = "arm,gic-400";
194f126890aSEmmanuel Vadot		interrupt-controller;
195f126890aSEmmanuel Vadot		#interrupt-cells = <3>;
196f126890aSEmmanuel Vadot		#address-cells = <0>;
197f126890aSEmmanuel Vadot
198f126890aSEmmanuel Vadot		reg = <0x10139000 0x1000>,
199f126890aSEmmanuel Vadot		      <0x1013a000 0x2000>,
200f126890aSEmmanuel Vadot		      <0x1013c000 0x2000>,
201f126890aSEmmanuel Vadot		      <0x1013e000 0x2000>;
202f126890aSEmmanuel Vadot		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
203f126890aSEmmanuel Vadot	};
204f126890aSEmmanuel Vadot
205f126890aSEmmanuel Vadot	usb_otg: usb@10180000 {
206f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-usb", "rockchip,rk3066-usb",
207f126890aSEmmanuel Vadot				"snps,dwc2";
208f126890aSEmmanuel Vadot		reg = <0x10180000 0x40000>;
209f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
210f126890aSEmmanuel Vadot		clocks = <&cru HCLK_OTG0>;
211f126890aSEmmanuel Vadot		clock-names = "otg";
212f126890aSEmmanuel Vadot		dr_mode = "otg";
213f126890aSEmmanuel Vadot		g-np-tx-fifo-size = <16>;
214f126890aSEmmanuel Vadot		g-rx-fifo-size = <275>;
215f126890aSEmmanuel Vadot		g-tx-fifo-size = <256 128 128 64 64 32>;
216f126890aSEmmanuel Vadot		status = "disabled";
217f126890aSEmmanuel Vadot	};
218f126890aSEmmanuel Vadot
219f126890aSEmmanuel Vadot	usb_host: usb@101c0000 {
220f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-usb", "rockchip,rk3066-usb",
221f126890aSEmmanuel Vadot				"snps,dwc2";
222f126890aSEmmanuel Vadot		reg = <0x101c0000 0x40000>;
223f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
224f126890aSEmmanuel Vadot		clocks = <&cru HCLK_OTG1>;
225f126890aSEmmanuel Vadot		clock-names = "otg";
226f126890aSEmmanuel Vadot		dr_mode = "host";
227f126890aSEmmanuel Vadot		status = "disabled";
228f126890aSEmmanuel Vadot	};
229f126890aSEmmanuel Vadot
230f126890aSEmmanuel Vadot	emac: ethernet@10200000 {
231f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-emac";
232f126890aSEmmanuel Vadot		reg = <0x10200000 0x4000>;
233f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
234f126890aSEmmanuel Vadot		rockchip,grf = <&grf>;
235f126890aSEmmanuel Vadot		clocks = <&cru HCLK_MAC>, <&cru SCLK_MACREF>, <&cru SCLK_MAC>;
236f126890aSEmmanuel Vadot		clock-names = "hclk", "macref", "macclk";
237f126890aSEmmanuel Vadot		/*
238f126890aSEmmanuel Vadot		 * Fix the emac parent clock is DPLL instead of APLL.
239f126890aSEmmanuel Vadot		 * since that will cause some unstable things if the cpufreq
240f126890aSEmmanuel Vadot		 * is working. (e.g: the accurate 50MHz what mac_ref need)
241f126890aSEmmanuel Vadot		 */
242f126890aSEmmanuel Vadot		assigned-clocks = <&cru SCLK_MACPLL>;
243f126890aSEmmanuel Vadot		assigned-clock-parents = <&cru PLL_DPLL>;
244f126890aSEmmanuel Vadot		max-speed = <100>;
245f126890aSEmmanuel Vadot		phy-mode = "rmii";
246f126890aSEmmanuel Vadot		status = "disabled";
247f126890aSEmmanuel Vadot	};
248f126890aSEmmanuel Vadot
249f126890aSEmmanuel Vadot	sdmmc: mmc@10214000 {
250f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc";
251f126890aSEmmanuel Vadot		reg = <0x10214000 0x4000>;
252f126890aSEmmanuel Vadot		clock-frequency = <37500000>;
253f126890aSEmmanuel Vadot		max-frequency = <37500000>;
254f126890aSEmmanuel Vadot		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>;
255f126890aSEmmanuel Vadot		clock-names = "biu", "ciu";
256f126890aSEmmanuel Vadot		fifo-depth = <0x100>;
257f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
258f126890aSEmmanuel Vadot		resets = <&cru SRST_MMC0>;
259f126890aSEmmanuel Vadot		reset-names = "reset";
260f126890aSEmmanuel Vadot		status = "disabled";
261f126890aSEmmanuel Vadot	};
262f126890aSEmmanuel Vadot
263f126890aSEmmanuel Vadot	sdio: mmc@10218000 {
264f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc";
265f126890aSEmmanuel Vadot		reg = <0x10218000 0x4000>;
266f126890aSEmmanuel Vadot		max-frequency = <37500000>;
267f126890aSEmmanuel Vadot		clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
268f126890aSEmmanuel Vadot			 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
269f126890aSEmmanuel Vadot		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
270f126890aSEmmanuel Vadot		fifo-depth = <0x100>;
271f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
272f126890aSEmmanuel Vadot		resets = <&cru SRST_SDIO>;
273f126890aSEmmanuel Vadot		reset-names = "reset";
274f126890aSEmmanuel Vadot		status = "disabled";
275f126890aSEmmanuel Vadot	};
276f126890aSEmmanuel Vadot
277f126890aSEmmanuel Vadot	emmc: mmc@1021c000 {
278f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc";
279f126890aSEmmanuel Vadot		reg = <0x1021c000 0x4000>;
280f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
281f126890aSEmmanuel Vadot		bus-width = <8>;
282f126890aSEmmanuel Vadot		cap-mmc-highspeed;
283f126890aSEmmanuel Vadot		clock-frequency = <37500000>;
284f126890aSEmmanuel Vadot		max-frequency = <37500000>;
285f126890aSEmmanuel Vadot		clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
286f126890aSEmmanuel Vadot			 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
287f126890aSEmmanuel Vadot		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
288f126890aSEmmanuel Vadot		disable-wp;
289f126890aSEmmanuel Vadot		dmas = <&pdma 12>;
290f126890aSEmmanuel Vadot		dma-names = "rx-tx";
291f126890aSEmmanuel Vadot		fifo-depth = <0x100>;
292f126890aSEmmanuel Vadot		mmc-ddr-1_8v;
293f126890aSEmmanuel Vadot		non-removable;
294f126890aSEmmanuel Vadot		pinctrl-names = "default";
295f126890aSEmmanuel Vadot		pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
296f126890aSEmmanuel Vadot		resets = <&cru SRST_EMMC>;
297f126890aSEmmanuel Vadot		reset-names = "reset";
298f126890aSEmmanuel Vadot		status = "disabled";
299f126890aSEmmanuel Vadot	};
300f126890aSEmmanuel Vadot
301f126890aSEmmanuel Vadot	i2s: i2s@10220000 {
302f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-i2s", "rockchip,rk3066-i2s";
303f126890aSEmmanuel Vadot		reg = <0x10220000 0x4000>;
304f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
305f126890aSEmmanuel Vadot		clock-names = "i2s_clk", "i2s_hclk";
306f126890aSEmmanuel Vadot		clocks = <&cru SCLK_I2S>, <&cru HCLK_I2S>;
307f126890aSEmmanuel Vadot		dmas = <&pdma 0>, <&pdma 1>;
308f126890aSEmmanuel Vadot		dma-names = "tx", "rx";
309f126890aSEmmanuel Vadot		pinctrl-names = "default";
310f126890aSEmmanuel Vadot		pinctrl-0 = <&i2s_bus>;
311f126890aSEmmanuel Vadot		#sound-dai-cells = <0>;
312f126890aSEmmanuel Vadot		status = "disabled";
313f126890aSEmmanuel Vadot	};
314f126890aSEmmanuel Vadot
315f126890aSEmmanuel Vadot	nfc: nand-controller@10500000 {
316f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-nfc",
317f126890aSEmmanuel Vadot			     "rockchip,rk2928-nfc";
318f126890aSEmmanuel Vadot		reg = <0x10500000 0x4000>;
319f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
320f126890aSEmmanuel Vadot		clocks = <&cru HCLK_NANDC>, <&cru SCLK_NANDC>;
321f126890aSEmmanuel Vadot		clock-names = "ahb", "nfc";
322f126890aSEmmanuel Vadot		assigned-clocks = <&cru SCLK_NANDC>;
323f126890aSEmmanuel Vadot		assigned-clock-rates = <150000000>;
324f126890aSEmmanuel Vadot		pinctrl-0 = <&flash_ale &flash_bus8 &flash_cle &flash_csn0
325f126890aSEmmanuel Vadot			     &flash_rdn &flash_rdy &flash_wrn>;
326f126890aSEmmanuel Vadot		pinctrl-names = "default";
327f126890aSEmmanuel Vadot		status = "disabled";
328f126890aSEmmanuel Vadot	};
329f126890aSEmmanuel Vadot
330f126890aSEmmanuel Vadot	cru: clock-controller@20000000 {
331f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-cru";
332f126890aSEmmanuel Vadot		reg = <0x20000000 0x1000>;
333f126890aSEmmanuel Vadot		clocks = <&xin24m>;
334f126890aSEmmanuel Vadot		clock-names = "xin24m";
335f126890aSEmmanuel Vadot		rockchip,grf = <&grf>;
336f126890aSEmmanuel Vadot		#clock-cells = <1>;
337f126890aSEmmanuel Vadot		#reset-cells = <1>;
338f126890aSEmmanuel Vadot		assigned-clocks = <&cru PLL_GPLL>;
339f126890aSEmmanuel Vadot		assigned-clock-rates = <594000000>;
340f126890aSEmmanuel Vadot	};
341f126890aSEmmanuel Vadot
342f126890aSEmmanuel Vadot	grf: syscon@20008000 {
343f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-grf", "syscon", "simple-mfd";
344f126890aSEmmanuel Vadot		reg = <0x20008000 0x1000>;
345f126890aSEmmanuel Vadot
346f126890aSEmmanuel Vadot		power: power-controller {
347f126890aSEmmanuel Vadot			compatible = "rockchip,rk3036-power-controller";
348f126890aSEmmanuel Vadot			#power-domain-cells = <1>;
349f126890aSEmmanuel Vadot			#address-cells = <1>;
350f126890aSEmmanuel Vadot			#size-cells = <0>;
351f126890aSEmmanuel Vadot
352f126890aSEmmanuel Vadot			power-domain@RK3036_PD_VIO {
353f126890aSEmmanuel Vadot				reg = <RK3036_PD_VIO>;
354f126890aSEmmanuel Vadot				clocks = <&cru ACLK_LCDC>,
355f126890aSEmmanuel Vadot					 <&cru HCLK_LCDC>,
356f126890aSEmmanuel Vadot					 <&cru SCLK_LCDC>;
357f126890aSEmmanuel Vadot				pm_qos = <&qos_vio>;
358f126890aSEmmanuel Vadot				#power-domain-cells = <0>;
359f126890aSEmmanuel Vadot			};
360f126890aSEmmanuel Vadot
361f126890aSEmmanuel Vadot			power-domain@RK3036_PD_VPU {
362f126890aSEmmanuel Vadot				reg = <RK3036_PD_VPU>;
363f126890aSEmmanuel Vadot				clocks = <&cru ACLK_VCODEC>,
364f126890aSEmmanuel Vadot					 <&cru HCLK_VCODEC>;
365f126890aSEmmanuel Vadot				pm_qos = <&qos_vpu>;
366f126890aSEmmanuel Vadot				#power-domain-cells = <0>;
367f126890aSEmmanuel Vadot			};
368f126890aSEmmanuel Vadot
369f126890aSEmmanuel Vadot			power-domain@RK3036_PD_GPU {
370f126890aSEmmanuel Vadot				reg = <RK3036_PD_GPU>;
371f126890aSEmmanuel Vadot				clocks = <&cru SCLK_GPU>;
372f126890aSEmmanuel Vadot				pm_qos = <&qos_gpu>;
373f126890aSEmmanuel Vadot				#power-domain-cells = <0>;
374f126890aSEmmanuel Vadot			};
375f126890aSEmmanuel Vadot		};
376f126890aSEmmanuel Vadot
377f126890aSEmmanuel Vadot		reboot-mode {
378f126890aSEmmanuel Vadot			compatible = "syscon-reboot-mode";
379f126890aSEmmanuel Vadot			offset = <0x1d8>;
380f126890aSEmmanuel Vadot			mode-normal = <BOOT_NORMAL>;
381f126890aSEmmanuel Vadot			mode-recovery = <BOOT_RECOVERY>;
382f126890aSEmmanuel Vadot			mode-bootloader = <BOOT_FASTBOOT>;
383f126890aSEmmanuel Vadot			mode-loader = <BOOT_BL_DOWNLOAD>;
384f126890aSEmmanuel Vadot		};
385f126890aSEmmanuel Vadot	};
386f126890aSEmmanuel Vadot
387*b2d2a78aSEmmanuel Vadot	acodec: audio-codec@20030000 {
388*b2d2a78aSEmmanuel Vadot		compatible = "rockchip,rk3036-codec";
389f126890aSEmmanuel Vadot		reg = <0x20030000 0x4000>;
390f126890aSEmmanuel Vadot		clock-names = "acodec_pclk";
391f126890aSEmmanuel Vadot		clocks = <&cru PCLK_ACODEC>;
392*b2d2a78aSEmmanuel Vadot		rockchip,grf = <&grf>;
393*b2d2a78aSEmmanuel Vadot		#sound-dai-cells = <0>;
394f126890aSEmmanuel Vadot		status = "disabled";
395f126890aSEmmanuel Vadot	};
396f126890aSEmmanuel Vadot
397f126890aSEmmanuel Vadot	hdmi: hdmi@20034000 {
398f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-inno-hdmi";
399f126890aSEmmanuel Vadot		reg = <0x20034000 0x4000>;
400f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
401f126890aSEmmanuel Vadot		clocks = <&cru  PCLK_HDMI>;
402f126890aSEmmanuel Vadot		clock-names = "pclk";
403f126890aSEmmanuel Vadot		pinctrl-names = "default";
404f126890aSEmmanuel Vadot		pinctrl-0 = <&hdmi_ctl>;
4050e8011faSEmmanuel Vadot		#sound-dai-cells = <0>;
406f126890aSEmmanuel Vadot		status = "disabled";
407f126890aSEmmanuel Vadot
4088d13bc63SEmmanuel Vadot		ports {
409f126890aSEmmanuel Vadot			#address-cells = <1>;
410f126890aSEmmanuel Vadot			#size-cells = <0>;
4118d13bc63SEmmanuel Vadot
4128d13bc63SEmmanuel Vadot			hdmi_in: port@0 {
413f126890aSEmmanuel Vadot				reg = <0>;
4148d13bc63SEmmanuel Vadot
4158d13bc63SEmmanuel Vadot				hdmi_in_vop: endpoint {
416f126890aSEmmanuel Vadot					remote-endpoint = <&vop_out_hdmi>;
417f126890aSEmmanuel Vadot				};
418f126890aSEmmanuel Vadot			};
4198d13bc63SEmmanuel Vadot
4208d13bc63SEmmanuel Vadot			hdmi_out: port@1 {
4218d13bc63SEmmanuel Vadot				reg = <1>;
4228d13bc63SEmmanuel Vadot			};
4238d13bc63SEmmanuel Vadot		};
424f126890aSEmmanuel Vadot	};
425f126890aSEmmanuel Vadot
426f126890aSEmmanuel Vadot	timer: timer@20044000 {
427f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-timer", "rockchip,rk3288-timer";
428f126890aSEmmanuel Vadot		reg = <0x20044000 0x20>;
429f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
430f126890aSEmmanuel Vadot		clocks = <&cru PCLK_TIMER>, <&xin24m>;
431f126890aSEmmanuel Vadot		clock-names = "pclk", "timer";
432f126890aSEmmanuel Vadot	};
433f126890aSEmmanuel Vadot
434f126890aSEmmanuel Vadot	pwm0: pwm@20050000 {
435f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-pwm", "rockchip,rk2928-pwm";
436f126890aSEmmanuel Vadot		reg = <0x20050000 0x10>;
437f126890aSEmmanuel Vadot		#pwm-cells = <3>;
438f126890aSEmmanuel Vadot		clocks = <&cru PCLK_PWM>;
439f126890aSEmmanuel Vadot		pinctrl-names = "default";
440f126890aSEmmanuel Vadot		pinctrl-0 = <&pwm0_pin>;
441f126890aSEmmanuel Vadot		status = "disabled";
442f126890aSEmmanuel Vadot	};
443f126890aSEmmanuel Vadot
444f126890aSEmmanuel Vadot	pwm1: pwm@20050010 {
445f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-pwm", "rockchip,rk2928-pwm";
446f126890aSEmmanuel Vadot		reg = <0x20050010 0x10>;
447f126890aSEmmanuel Vadot		#pwm-cells = <3>;
448f126890aSEmmanuel Vadot		clocks = <&cru PCLK_PWM>;
449f126890aSEmmanuel Vadot		pinctrl-names = "default";
450f126890aSEmmanuel Vadot		pinctrl-0 = <&pwm1_pin>;
451f126890aSEmmanuel Vadot		status = "disabled";
452f126890aSEmmanuel Vadot	};
453f126890aSEmmanuel Vadot
454f126890aSEmmanuel Vadot	pwm2: pwm@20050020 {
455f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-pwm", "rockchip,rk2928-pwm";
456f126890aSEmmanuel Vadot		reg = <0x20050020 0x10>;
457f126890aSEmmanuel Vadot		#pwm-cells = <3>;
458f126890aSEmmanuel Vadot		clocks = <&cru PCLK_PWM>;
459f126890aSEmmanuel Vadot		pinctrl-names = "default";
460f126890aSEmmanuel Vadot		pinctrl-0 = <&pwm2_pin>;
461f126890aSEmmanuel Vadot		status = "disabled";
462f126890aSEmmanuel Vadot	};
463f126890aSEmmanuel Vadot
464f126890aSEmmanuel Vadot	pwm3: pwm@20050030 {
465f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-pwm", "rockchip,rk2928-pwm";
466f126890aSEmmanuel Vadot		reg = <0x20050030 0x10>;
467f126890aSEmmanuel Vadot		#pwm-cells = <2>;
468f126890aSEmmanuel Vadot		clocks = <&cru PCLK_PWM>;
469f126890aSEmmanuel Vadot		pinctrl-names = "default";
470f126890aSEmmanuel Vadot		pinctrl-0 = <&pwm3_pin>;
471f126890aSEmmanuel Vadot		status = "disabled";
472f126890aSEmmanuel Vadot	};
473f126890aSEmmanuel Vadot
474f126890aSEmmanuel Vadot	i2c1: i2c@20056000 {
475f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-i2c", "rockchip,rk3288-i2c";
476f126890aSEmmanuel Vadot		reg = <0x20056000 0x1000>;
477f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
478f126890aSEmmanuel Vadot		#address-cells = <1>;
479f126890aSEmmanuel Vadot		#size-cells = <0>;
480f126890aSEmmanuel Vadot		clock-names = "i2c";
481f126890aSEmmanuel Vadot		clocks = <&cru PCLK_I2C1>;
482f126890aSEmmanuel Vadot		pinctrl-names = "default";
483f126890aSEmmanuel Vadot		pinctrl-0 = <&i2c1_xfer>;
484f126890aSEmmanuel Vadot		status = "disabled";
485f126890aSEmmanuel Vadot	};
486f126890aSEmmanuel Vadot
487f126890aSEmmanuel Vadot	i2c2: i2c@2005a000 {
488f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-i2c", "rockchip,rk3288-i2c";
489f126890aSEmmanuel Vadot		reg = <0x2005a000 0x1000>;
490f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
491f126890aSEmmanuel Vadot		#address-cells = <1>;
492f126890aSEmmanuel Vadot		#size-cells = <0>;
493f126890aSEmmanuel Vadot		clock-names = "i2c";
494f126890aSEmmanuel Vadot		clocks = <&cru PCLK_I2C2>;
495f126890aSEmmanuel Vadot		pinctrl-names = "default";
496f126890aSEmmanuel Vadot		pinctrl-0 = <&i2c2_xfer>;
497f126890aSEmmanuel Vadot		status = "disabled";
498f126890aSEmmanuel Vadot	};
499f126890aSEmmanuel Vadot
500f126890aSEmmanuel Vadot	uart0: serial@20060000 {
501f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-uart", "snps,dw-apb-uart";
502f126890aSEmmanuel Vadot		reg = <0x20060000 0x100>;
503f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
504f126890aSEmmanuel Vadot		reg-shift = <2>;
505f126890aSEmmanuel Vadot		reg-io-width = <4>;
506f126890aSEmmanuel Vadot		clock-frequency = <24000000>;
507f126890aSEmmanuel Vadot		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
508f126890aSEmmanuel Vadot		clock-names = "baudclk", "apb_pclk";
509f126890aSEmmanuel Vadot		pinctrl-names = "default";
510f126890aSEmmanuel Vadot		pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
511f126890aSEmmanuel Vadot		status = "disabled";
512f126890aSEmmanuel Vadot	};
513f126890aSEmmanuel Vadot
514f126890aSEmmanuel Vadot	uart1: serial@20064000 {
515f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-uart", "snps,dw-apb-uart";
516f126890aSEmmanuel Vadot		reg = <0x20064000 0x100>;
517f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
518f126890aSEmmanuel Vadot		reg-shift = <2>;
519f126890aSEmmanuel Vadot		reg-io-width = <4>;
520f126890aSEmmanuel Vadot		clock-frequency = <24000000>;
521f126890aSEmmanuel Vadot		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
522f126890aSEmmanuel Vadot		clock-names = "baudclk", "apb_pclk";
523f126890aSEmmanuel Vadot		pinctrl-names = "default";
524f126890aSEmmanuel Vadot		pinctrl-0 = <&uart1_xfer>;
525f126890aSEmmanuel Vadot		status = "disabled";
526f126890aSEmmanuel Vadot	};
527f126890aSEmmanuel Vadot
528f126890aSEmmanuel Vadot	uart2: serial@20068000 {
529f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-uart", "snps,dw-apb-uart";
530f126890aSEmmanuel Vadot		reg = <0x20068000 0x100>;
531f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
532f126890aSEmmanuel Vadot		reg-shift = <2>;
533f126890aSEmmanuel Vadot		reg-io-width = <4>;
534f126890aSEmmanuel Vadot		clock-frequency = <24000000>;
535f126890aSEmmanuel Vadot		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
536f126890aSEmmanuel Vadot		clock-names = "baudclk", "apb_pclk";
537f126890aSEmmanuel Vadot		pinctrl-names = "default";
538f126890aSEmmanuel Vadot		pinctrl-0 = <&uart2_xfer>;
539f126890aSEmmanuel Vadot		status = "disabled";
540f126890aSEmmanuel Vadot	};
541f126890aSEmmanuel Vadot
542f126890aSEmmanuel Vadot	i2c0: i2c@20072000 {
543f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-i2c", "rockchip,rk3288-i2c";
544f126890aSEmmanuel Vadot		reg = <0x20072000 0x1000>;
545f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
546f126890aSEmmanuel Vadot		#address-cells = <1>;
547f126890aSEmmanuel Vadot		#size-cells = <0>;
548f126890aSEmmanuel Vadot		clock-names = "i2c";
549f126890aSEmmanuel Vadot		clocks = <&cru PCLK_I2C0>;
550f126890aSEmmanuel Vadot		pinctrl-names = "default";
551f126890aSEmmanuel Vadot		pinctrl-0 = <&i2c0_xfer>;
552f126890aSEmmanuel Vadot		status = "disabled";
553f126890aSEmmanuel Vadot	};
554f126890aSEmmanuel Vadot
555f126890aSEmmanuel Vadot	spi: spi@20074000 {
556*b2d2a78aSEmmanuel Vadot		compatible = "rockchip,rk3036-spi";
557f126890aSEmmanuel Vadot		reg = <0x20074000 0x1000>;
558f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
559*b2d2a78aSEmmanuel Vadot		clocks = <&cru SCLK_SPI>, <&cru PCLK_SPI>;
560*b2d2a78aSEmmanuel Vadot		clock-names = "spiclk", "apb_pclk";
561f126890aSEmmanuel Vadot		dmas = <&pdma 8>, <&pdma 9>;
562f126890aSEmmanuel Vadot		dma-names = "tx", "rx";
563f126890aSEmmanuel Vadot		pinctrl-names = "default";
564f126890aSEmmanuel Vadot		pinctrl-0 = <&spi_txd &spi_rxd &spi_clk &spi_cs0>;
565f126890aSEmmanuel Vadot		#address-cells = <1>;
566f126890aSEmmanuel Vadot		#size-cells = <0>;
567f126890aSEmmanuel Vadot		status = "disabled";
568f126890aSEmmanuel Vadot	};
569f126890aSEmmanuel Vadot
570f126890aSEmmanuel Vadot	pdma: dma-controller@20078000 {
571f126890aSEmmanuel Vadot		compatible = "arm,pl330", "arm,primecell";
572f126890aSEmmanuel Vadot		reg = <0x20078000 0x4000>;
573f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
574f126890aSEmmanuel Vadot			     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
575f126890aSEmmanuel Vadot		#dma-cells = <1>;
576f126890aSEmmanuel Vadot		arm,pl330-broken-no-flushp;
577f126890aSEmmanuel Vadot		arm,pl330-periph-burst;
578f126890aSEmmanuel Vadot		clocks = <&cru ACLK_DMAC2>;
579f126890aSEmmanuel Vadot		clock-names = "apb_pclk";
580f126890aSEmmanuel Vadot	};
581f126890aSEmmanuel Vadot
582f126890aSEmmanuel Vadot	pinctrl: pinctrl {
583f126890aSEmmanuel Vadot		compatible = "rockchip,rk3036-pinctrl";
584f126890aSEmmanuel Vadot		rockchip,grf = <&grf>;
585f126890aSEmmanuel Vadot		#address-cells = <1>;
586f126890aSEmmanuel Vadot		#size-cells = <1>;
587f126890aSEmmanuel Vadot		ranges;
588f126890aSEmmanuel Vadot
589f126890aSEmmanuel Vadot		gpio0: gpio@2007c000 {
590f126890aSEmmanuel Vadot			compatible = "rockchip,gpio-bank";
591f126890aSEmmanuel Vadot			reg = <0x2007c000 0x100>;
592f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
593f126890aSEmmanuel Vadot			clocks = <&cru PCLK_GPIO0>;
594f126890aSEmmanuel Vadot
595f126890aSEmmanuel Vadot			gpio-controller;
596f126890aSEmmanuel Vadot			#gpio-cells = <2>;
597f126890aSEmmanuel Vadot
598f126890aSEmmanuel Vadot			interrupt-controller;
599f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
600f126890aSEmmanuel Vadot		};
601f126890aSEmmanuel Vadot
602f126890aSEmmanuel Vadot		gpio1: gpio@20080000 {
603f126890aSEmmanuel Vadot			compatible = "rockchip,gpio-bank";
604f126890aSEmmanuel Vadot			reg = <0x20080000 0x100>;
605f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
606f126890aSEmmanuel Vadot			clocks = <&cru PCLK_GPIO1>;
607f126890aSEmmanuel Vadot
608f126890aSEmmanuel Vadot			gpio-controller;
609f126890aSEmmanuel Vadot			#gpio-cells = <2>;
610f126890aSEmmanuel Vadot
611f126890aSEmmanuel Vadot			interrupt-controller;
612f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
613f126890aSEmmanuel Vadot		};
614f126890aSEmmanuel Vadot
615f126890aSEmmanuel Vadot		gpio2: gpio@20084000 {
616f126890aSEmmanuel Vadot			compatible = "rockchip,gpio-bank";
617f126890aSEmmanuel Vadot			reg = <0x20084000 0x100>;
618f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
619f126890aSEmmanuel Vadot			clocks = <&cru PCLK_GPIO2>;
620f126890aSEmmanuel Vadot
621f126890aSEmmanuel Vadot			gpio-controller;
622f126890aSEmmanuel Vadot			#gpio-cells = <2>;
623f126890aSEmmanuel Vadot
624f126890aSEmmanuel Vadot			interrupt-controller;
625f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
626f126890aSEmmanuel Vadot		};
627f126890aSEmmanuel Vadot
628f126890aSEmmanuel Vadot		pcfg_pull_default: pcfg-pull-default {
629f126890aSEmmanuel Vadot			bias-pull-pin-default;
630f126890aSEmmanuel Vadot		};
631f126890aSEmmanuel Vadot
632f126890aSEmmanuel Vadot		pcfg_pull_none: pcfg-pull-none {
633f126890aSEmmanuel Vadot			bias-disable;
634f126890aSEmmanuel Vadot		};
635f126890aSEmmanuel Vadot
636f126890aSEmmanuel Vadot		pwm0 {
637f126890aSEmmanuel Vadot			pwm0_pin: pwm0-pin {
638f126890aSEmmanuel Vadot				rockchip,pins = <0 RK_PA0 2 &pcfg_pull_none>;
639f126890aSEmmanuel Vadot			};
640f126890aSEmmanuel Vadot		};
641f126890aSEmmanuel Vadot
642f126890aSEmmanuel Vadot		pwm1 {
643f126890aSEmmanuel Vadot			pwm1_pin: pwm1-pin {
644f126890aSEmmanuel Vadot				rockchip,pins = <0 RK_PA1 2 &pcfg_pull_none>;
645f126890aSEmmanuel Vadot			};
646f126890aSEmmanuel Vadot		};
647f126890aSEmmanuel Vadot
648f126890aSEmmanuel Vadot		pwm2 {
649f126890aSEmmanuel Vadot			pwm2_pin: pwm2-pin {
650f126890aSEmmanuel Vadot				rockchip,pins = <0 RK_PA1 2 &pcfg_pull_none>;
651f126890aSEmmanuel Vadot			};
652f126890aSEmmanuel Vadot		};
653f126890aSEmmanuel Vadot
654f126890aSEmmanuel Vadot		pwm3 {
655f126890aSEmmanuel Vadot			pwm3_pin: pwm3-pin {
656f126890aSEmmanuel Vadot				rockchip,pins = <0 RK_PD3 1 &pcfg_pull_none>;
657f126890aSEmmanuel Vadot			};
658f126890aSEmmanuel Vadot		};
659f126890aSEmmanuel Vadot
660f126890aSEmmanuel Vadot		sdmmc {
661f126890aSEmmanuel Vadot			sdmmc_clk: sdmmc-clk {
662f126890aSEmmanuel Vadot				rockchip,pins = <1 RK_PC0 1 &pcfg_pull_none>;
663f126890aSEmmanuel Vadot			};
664f126890aSEmmanuel Vadot
665f126890aSEmmanuel Vadot			sdmmc_cmd: sdmmc-cmd {
666f126890aSEmmanuel Vadot				rockchip,pins = <1 RK_PB7 1 &pcfg_pull_default>;
667f126890aSEmmanuel Vadot			};
668f126890aSEmmanuel Vadot
669f126890aSEmmanuel Vadot			sdmmc_cd: sdmmc-cd {
670f126890aSEmmanuel Vadot				rockchip,pins = <1 RK_PC1 1 &pcfg_pull_default>;
671f126890aSEmmanuel Vadot			};
672f126890aSEmmanuel Vadot
673f126890aSEmmanuel Vadot			sdmmc_bus1: sdmmc-bus1 {
674f126890aSEmmanuel Vadot				rockchip,pins = <1 RK_PC2 1 &pcfg_pull_default>;
675f126890aSEmmanuel Vadot			};
676f126890aSEmmanuel Vadot
677f126890aSEmmanuel Vadot			sdmmc_bus4: sdmmc-bus4 {
678f126890aSEmmanuel Vadot				rockchip,pins = <1 RK_PC2 1 &pcfg_pull_default>,
679f126890aSEmmanuel Vadot						<1 RK_PC3 1 &pcfg_pull_default>,
680f126890aSEmmanuel Vadot						<1 RK_PC4 1 &pcfg_pull_default>,
681f126890aSEmmanuel Vadot						<1 RK_PC5 1 &pcfg_pull_default>;
682f126890aSEmmanuel Vadot			};
683f126890aSEmmanuel Vadot		};
684f126890aSEmmanuel Vadot
685f126890aSEmmanuel Vadot		sdio {
686f126890aSEmmanuel Vadot			sdio_bus1: sdio-bus1 {
687f126890aSEmmanuel Vadot				rockchip,pins = <0 RK_PB3 1 &pcfg_pull_default>;
688f126890aSEmmanuel Vadot			};
689f126890aSEmmanuel Vadot
690f126890aSEmmanuel Vadot			sdio_bus4: sdio-bus4 {
691f126890aSEmmanuel Vadot				rockchip,pins = <0 RK_PB3 1 &pcfg_pull_default>,
692f126890aSEmmanuel Vadot						<0 RK_PB4 1 &pcfg_pull_default>,
693f126890aSEmmanuel Vadot						<0 RK_PB5 1 &pcfg_pull_default>,
694f126890aSEmmanuel Vadot						<0 RK_PB6 1 &pcfg_pull_default>;
695f126890aSEmmanuel Vadot			};
696f126890aSEmmanuel Vadot
697f126890aSEmmanuel Vadot			sdio_cmd: sdio-cmd {
698f126890aSEmmanuel Vadot				rockchip,pins = <0 RK_PB0 1 &pcfg_pull_default>;
699f126890aSEmmanuel Vadot			};
700f126890aSEmmanuel Vadot
701f126890aSEmmanuel Vadot			sdio_clk: sdio-clk {
702f126890aSEmmanuel Vadot				rockchip,pins = <0 RK_PB1 1 &pcfg_pull_none>;
703f126890aSEmmanuel Vadot			};
704f126890aSEmmanuel Vadot		};
705f126890aSEmmanuel Vadot
706f126890aSEmmanuel Vadot		emmc {
707f126890aSEmmanuel Vadot			/*
708f126890aSEmmanuel Vadot			 * We run eMMC at max speed; bump up drive strength.
709f126890aSEmmanuel Vadot			 * We also have external pulls, so disable the internal ones.
710f126890aSEmmanuel Vadot			 */
711f126890aSEmmanuel Vadot			emmc_clk: emmc-clk {
712f126890aSEmmanuel Vadot				rockchip,pins = <2 RK_PA4 2 &pcfg_pull_none>;
713f126890aSEmmanuel Vadot			};
714f126890aSEmmanuel Vadot
715f126890aSEmmanuel Vadot			emmc_cmd: emmc-cmd {
716f126890aSEmmanuel Vadot				rockchip,pins = <2 RK_PA1 2 &pcfg_pull_default>;
717f126890aSEmmanuel Vadot			};
718f126890aSEmmanuel Vadot
719f126890aSEmmanuel Vadot			emmc_bus8: emmc-bus8 {
720f126890aSEmmanuel Vadot				rockchip,pins = <1 RK_PD0 2 &pcfg_pull_default>,
721f126890aSEmmanuel Vadot						<1 RK_PD1 2 &pcfg_pull_default>,
722f126890aSEmmanuel Vadot						<1 RK_PD2 2 &pcfg_pull_default>,
723f126890aSEmmanuel Vadot						<1 RK_PD3 2 &pcfg_pull_default>,
724f126890aSEmmanuel Vadot						<1 RK_PD4 2 &pcfg_pull_default>,
725f126890aSEmmanuel Vadot						<1 RK_PD5 2 &pcfg_pull_default>,
726f126890aSEmmanuel Vadot						<1 RK_PD6 2 &pcfg_pull_default>,
727f126890aSEmmanuel Vadot						<1 RK_PD7 2 &pcfg_pull_default>;
728f126890aSEmmanuel Vadot			};
729f126890aSEmmanuel Vadot		};
730f126890aSEmmanuel Vadot
731f126890aSEmmanuel Vadot		nfc {
732f126890aSEmmanuel Vadot			flash_ale: flash-ale {
733f126890aSEmmanuel Vadot				rockchip,pins = <2 RK_PA0 1 &pcfg_pull_default>;
734f126890aSEmmanuel Vadot			};
735f126890aSEmmanuel Vadot
736f126890aSEmmanuel Vadot			flash_bus8: flash-bus8 {
737f126890aSEmmanuel Vadot				rockchip,pins = <1 RK_PD0 1 &pcfg_pull_default>,
738f126890aSEmmanuel Vadot						<1 RK_PD1 1 &pcfg_pull_default>,
739f126890aSEmmanuel Vadot						<1 RK_PD2 1 &pcfg_pull_default>,
740f126890aSEmmanuel Vadot						<1 RK_PD3 1 &pcfg_pull_default>,
741f126890aSEmmanuel Vadot						<1 RK_PD4 1 &pcfg_pull_default>,
742f126890aSEmmanuel Vadot						<1 RK_PD5 1 &pcfg_pull_default>,
743f126890aSEmmanuel Vadot						<1 RK_PD6 1 &pcfg_pull_default>,
744f126890aSEmmanuel Vadot						<1 RK_PD7 1 &pcfg_pull_default>;
745f126890aSEmmanuel Vadot			};
746f126890aSEmmanuel Vadot
747f126890aSEmmanuel Vadot			flash_cle: flash-cle {
748f126890aSEmmanuel Vadot				rockchip,pins = <2 RK_PA1 1 &pcfg_pull_default>;
749f126890aSEmmanuel Vadot			};
750f126890aSEmmanuel Vadot
751f126890aSEmmanuel Vadot			flash_csn0: flash-csn0 {
752f126890aSEmmanuel Vadot				rockchip,pins = <2 RK_PA6 1 &pcfg_pull_default>;
753f126890aSEmmanuel Vadot			};
754f126890aSEmmanuel Vadot
755f126890aSEmmanuel Vadot			flash_rdn: flash-rdn {
756f126890aSEmmanuel Vadot				rockchip,pins = <2 RK_PA3 1 &pcfg_pull_default>;
757f126890aSEmmanuel Vadot			};
758f126890aSEmmanuel Vadot
759f126890aSEmmanuel Vadot			flash_rdy: flash-rdy {
760f126890aSEmmanuel Vadot				rockchip,pins = <2 RK_PA4 1 &pcfg_pull_default>;
761f126890aSEmmanuel Vadot			};
762f126890aSEmmanuel Vadot
763f126890aSEmmanuel Vadot			flash_wrn: flash-wrn {
764f126890aSEmmanuel Vadot				rockchip,pins = <2 RK_PA2 1 &pcfg_pull_default>;
765f126890aSEmmanuel Vadot			};
766f126890aSEmmanuel Vadot		};
767f126890aSEmmanuel Vadot
768f126890aSEmmanuel Vadot		emac {
769f126890aSEmmanuel Vadot			emac_xfer: emac-xfer {
770f126890aSEmmanuel Vadot				rockchip,pins = <2 RK_PB2 1 &pcfg_pull_default>, /* crs_dvalid */
771f126890aSEmmanuel Vadot						<2 RK_PB5 1 &pcfg_pull_default>, /* tx_en */
772f126890aSEmmanuel Vadot						<2 RK_PB6 1 &pcfg_pull_default>, /* mac_clk */
773f126890aSEmmanuel Vadot						<2 RK_PB7 1 &pcfg_pull_default>, /* rx_err */
774f126890aSEmmanuel Vadot						<2 RK_PC0 1 &pcfg_pull_default>, /* rxd1 */
775f126890aSEmmanuel Vadot						<2 RK_PC1 1 &pcfg_pull_default>, /* rxd0 */
776f126890aSEmmanuel Vadot						<2 RK_PC2 1 &pcfg_pull_default>, /* txd1 */
777f126890aSEmmanuel Vadot						<2 RK_PC3 1 &pcfg_pull_default>; /* txd0 */
778f126890aSEmmanuel Vadot			};
779f126890aSEmmanuel Vadot
780f126890aSEmmanuel Vadot			emac_mdio: emac-mdio {
781f126890aSEmmanuel Vadot				rockchip,pins = <2 RK_PB4 1 &pcfg_pull_default>, /* mac_md */
782f126890aSEmmanuel Vadot						<2 RK_PD1 1 &pcfg_pull_default>; /* mac_mdclk */
783f126890aSEmmanuel Vadot			};
784f126890aSEmmanuel Vadot		};
785f126890aSEmmanuel Vadot
786f126890aSEmmanuel Vadot		i2c0 {
787f126890aSEmmanuel Vadot			i2c0_xfer: i2c0-xfer {
788f126890aSEmmanuel Vadot				rockchip,pins = <0 RK_PA0 1 &pcfg_pull_none>,
789f126890aSEmmanuel Vadot						<0 RK_PA1 1 &pcfg_pull_none>;
790f126890aSEmmanuel Vadot			};
791f126890aSEmmanuel Vadot		};
792f126890aSEmmanuel Vadot
793f126890aSEmmanuel Vadot		i2c1 {
794f126890aSEmmanuel Vadot			i2c1_xfer: i2c1-xfer {
795f126890aSEmmanuel Vadot				rockchip,pins = <0 RK_PA2 1 &pcfg_pull_none>,
796f126890aSEmmanuel Vadot						<0 RK_PA3 1 &pcfg_pull_none>;
797f126890aSEmmanuel Vadot			};
798f126890aSEmmanuel Vadot		};
799f126890aSEmmanuel Vadot
800f126890aSEmmanuel Vadot		i2c2 {
801f126890aSEmmanuel Vadot			i2c2_xfer: i2c2-xfer {
802f126890aSEmmanuel Vadot				rockchip,pins = <2 RK_PC4 1 &pcfg_pull_none>,
803f126890aSEmmanuel Vadot						<2 RK_PC5 1 &pcfg_pull_none>;
804f126890aSEmmanuel Vadot			};
805f126890aSEmmanuel Vadot		};
806f126890aSEmmanuel Vadot
807f126890aSEmmanuel Vadot		i2s {
808f126890aSEmmanuel Vadot			i2s_bus: i2s-bus {
809f126890aSEmmanuel Vadot				rockchip,pins = <1 RK_PA0 1 &pcfg_pull_default>,
810f126890aSEmmanuel Vadot						<1 RK_PA1 1 &pcfg_pull_default>,
811f126890aSEmmanuel Vadot						<1 RK_PA2 1 &pcfg_pull_default>,
812f126890aSEmmanuel Vadot						<1 RK_PA3 1 &pcfg_pull_default>,
813f126890aSEmmanuel Vadot						<1 RK_PA4 1 &pcfg_pull_default>,
814f126890aSEmmanuel Vadot						<1 RK_PA5 1 &pcfg_pull_default>;
815f126890aSEmmanuel Vadot			};
816f126890aSEmmanuel Vadot		};
817f126890aSEmmanuel Vadot
818f126890aSEmmanuel Vadot		hdmi {
819f126890aSEmmanuel Vadot			hdmi_ctl: hdmi-ctl {
820f126890aSEmmanuel Vadot				rockchip,pins = <1 RK_PB0 1 &pcfg_pull_none>,
821f126890aSEmmanuel Vadot						<1 RK_PB1 1 &pcfg_pull_none>,
822f126890aSEmmanuel Vadot						<1 RK_PB2 1 &pcfg_pull_none>,
823f126890aSEmmanuel Vadot						<1 RK_PB3 1 &pcfg_pull_none>;
824f126890aSEmmanuel Vadot			};
825f126890aSEmmanuel Vadot		};
826f126890aSEmmanuel Vadot
827f126890aSEmmanuel Vadot		uart0 {
828f126890aSEmmanuel Vadot			uart0_xfer: uart0-xfer {
829f126890aSEmmanuel Vadot				rockchip,pins = <0 RK_PC0 1 &pcfg_pull_default>,
830f126890aSEmmanuel Vadot						<0 RK_PC1 1 &pcfg_pull_none>;
831f126890aSEmmanuel Vadot			};
832f126890aSEmmanuel Vadot
833f126890aSEmmanuel Vadot			uart0_cts: uart0-cts {
834f126890aSEmmanuel Vadot				rockchip,pins = <0 RK_PC2 1 &pcfg_pull_default>;
835f126890aSEmmanuel Vadot			};
836f126890aSEmmanuel Vadot
837f126890aSEmmanuel Vadot			uart0_rts: uart0-rts {
838f126890aSEmmanuel Vadot				rockchip,pins = <0 RK_PC3 1 &pcfg_pull_none>;
839f126890aSEmmanuel Vadot			};
840f126890aSEmmanuel Vadot		};
841f126890aSEmmanuel Vadot
842f126890aSEmmanuel Vadot		uart1 {
843f126890aSEmmanuel Vadot			uart1_xfer: uart1-xfer {
844f126890aSEmmanuel Vadot				rockchip,pins = <2 RK_PC6 1 &pcfg_pull_default>,
845f126890aSEmmanuel Vadot						<2 RK_PC7 1 &pcfg_pull_none>;
846f126890aSEmmanuel Vadot			};
847f126890aSEmmanuel Vadot			/* no rts / cts for uart1 */
848f126890aSEmmanuel Vadot		};
849f126890aSEmmanuel Vadot
850f126890aSEmmanuel Vadot		uart2 {
851f126890aSEmmanuel Vadot			uart2_xfer: uart2-xfer {
852f126890aSEmmanuel Vadot				rockchip,pins = <1 RK_PC2 2 &pcfg_pull_default>,
853f126890aSEmmanuel Vadot						<1 RK_PC3 2 &pcfg_pull_none>;
854f126890aSEmmanuel Vadot			};
855f126890aSEmmanuel Vadot			/* no rts / cts for uart2 */
856f126890aSEmmanuel Vadot		};
857f126890aSEmmanuel Vadot
858f126890aSEmmanuel Vadot		spi-pins {
859f126890aSEmmanuel Vadot			spi_txd:spi-txd {
860f126890aSEmmanuel Vadot				rockchip,pins = <1 RK_PD5 3 &pcfg_pull_default>;
861f126890aSEmmanuel Vadot			};
862f126890aSEmmanuel Vadot
863f126890aSEmmanuel Vadot			spi_rxd:spi-rxd {
864f126890aSEmmanuel Vadot				rockchip,pins = <1 RK_PD4 3 &pcfg_pull_default>;
865f126890aSEmmanuel Vadot			};
866f126890aSEmmanuel Vadot
867f126890aSEmmanuel Vadot			spi_clk:spi-clk {
868f126890aSEmmanuel Vadot				rockchip,pins = <2 RK_PA0 2 &pcfg_pull_default>;
869f126890aSEmmanuel Vadot			};
870f126890aSEmmanuel Vadot
871f126890aSEmmanuel Vadot			spi_cs0:spi-cs0 {
872f126890aSEmmanuel Vadot				rockchip,pins = <1 RK_PD6 3 &pcfg_pull_default>;
873f126890aSEmmanuel Vadot
874f126890aSEmmanuel Vadot			};
875f126890aSEmmanuel Vadot
876f126890aSEmmanuel Vadot			spi_cs1:spi-cs1 {
877f126890aSEmmanuel Vadot				rockchip,pins = <1 RK_PD7 3 &pcfg_pull_default>;
878f126890aSEmmanuel Vadot
879f126890aSEmmanuel Vadot			};
880f126890aSEmmanuel Vadot		};
881f126890aSEmmanuel Vadot	};
882f126890aSEmmanuel Vadot};
883