2 * SPDX-License-Identifier: GPL-2.0+
5 #include <dt-bindings/gpio/gpio.h>
6 #include <dt-bindings/interrupt-controller/irq.h>
7 #include <dt-bindings/interrupt-controller/arm-gic.h>
8 #include <dt-bindings/pinctrl/rockchip.h>
9 #include <dt-bindings/clock/rk3036-cru.h>
10 #include "skeleton.dtsi"
13 compatible = "rockchip,rk3036";
15 interrupt-parent = <&gic>;
29 device_type = "memory";
30 reg = <0x60000000 0x40000000>;
34 compatible = "arm,cortex-a7-pmu";
35 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
36 <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
37 interrupt-affinity = <&cpu0>, <&cpu1>;
43 enable-method = "rockchip,rk3036-smp";
47 compatible = "arm,cortex-a7";
53 #cooling-cells = <2>; /* min followed by max */
54 clock-latency = <40000>;
55 clocks = <&cru ARMCLK>;
56 resets = <&cru SRST_CORE0>;
60 compatible = "arm,cortex-a7";
62 resets = <&cru SRST_CORE1>;
67 compatible = "arm,amba-bus";
73 compatible = "arm,pl330", "arm,primecell";
74 reg = <0x20078000 0x4000>;
75 arm,pl330-broken-no-flushp;
76 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
77 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
79 clocks = <&cru ACLK_DMAC2>;
80 clock-names = "apb_pclk";
85 compatible = "fixed-clock";
86 clock-frequency = <24000000>;
87 clock-output-names = "xin24m";
92 compatible = "arm,armv7-timer";
93 arm,cpu-registers-not-fw-configured;
94 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
95 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
96 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
97 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
98 clock-frequency = <24000000>;
101 cru: clock-controller@20000000 {
102 compatible = "rockchip,rk3036-cru";
103 reg = <0x20000000 0x1000>;
104 rockchip,grf = <&grf>;
107 assigned-clocks = <&cru PLL_GPLL>;
108 assigned-clock-rates = <594000000>;
111 uart0: serial@20060000 {
112 compatible = "rockchip,rk3036-uart", "snps,dw-apb-uart";
113 reg = <0x20060000 0x100>;
114 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
117 clock-frequency = <24000000>;
118 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
119 clock-names = "baudclk", "apb_pclk";
120 pinctrl-names = "default";
121 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
124 uart1: serial@20064000 {
125 compatible = "rockchip,rk3036-uart", "snps,dw-apb-uart";
126 reg = <0x20064000 0x100>;
127 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
130 clock-frequency = <24000000>;
131 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
132 clock-names = "baudclk", "apb_pclk";
133 pinctrl-names = "default";
134 pinctrl-0 = <&uart1_xfer>;
137 uart2: serial@20068000 {
138 compatible = "rockchip,rk3036-uart", "snps,dw-apb-uart";
139 reg = <0x20068000 0x100>;
140 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
143 clock-frequency = <24000000>;
144 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
145 clock-names = "baudclk", "apb_pclk";
146 pinctrl-names = "default";
147 pinctrl-0 = <&uart2_xfer>;
151 compatible = "rockchip,rk2928-pwm";
152 reg = <0x20050000 0x10>;
154 pinctrl-names = "default";
155 pinctrl-0 = <&pwm0_pin>;
156 clocks = <&cru PCLK_PWM>;
162 compatible = "rockchip,rk2928-pwm";
163 reg = <0x20050010 0x10>;
165 pinctrl-names = "default";
166 pinctrl-0 = <&pwm1_pin>;
167 clocks = <&cru PCLK_PWM>;
173 compatible = "rockchip,rk2928-pwm";
174 reg = <0x20050020 0x10>;
176 pinctrl-names = "default";
177 pinctrl-0 = <&pwm2_pin>;
178 clocks = <&cru PCLK_PWM>;
184 compatible = "rockchip,rk2928-pwm";
185 reg = <0x20050030 0x10>;
187 pinctrl-names = "default";
188 pinctrl-0 = <&pwm3_pin>;
189 clocks = <&cru PCLK_PWM>;
194 sram: sram@10080000 {
195 compatible = "rockchip,rk3036-smp-sram", "mmio-sram";
196 reg = <0x10080000 0x2000>;
199 gic: interrupt-controller@10139000 {
200 compatible = "arm,gic-400";
201 interrupt-controller;
202 #interrupt-cells = <3>;
203 #address-cells = <0>;
205 reg = <0x10139000 0x1000>,
209 interrupts = <GIC_PPI 9 0xf04>;
212 grf: syscon@20008000 {
213 compatible = "rockchip,rk3036-grf", "syscon";
214 reg = <0x20008000 0x1000>;
217 usb_otg: usb@10180000 {
218 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
220 reg = <0x10180000 0x40000>;
221 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
222 clocks = <&cru HCLK_OTG0>;
225 g-np-tx-fifo-size = <16>;
226 g-rx-fifo-size = <275>;
227 g-tx-fifo-size = <256 128 128 64 64 32>;
232 usb_host: usb@101c0000 {
233 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
235 reg = <0x101c0000 0x40000>;
236 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
237 clocks = <&cru HCLK_OTG1>;
243 emmc: dwmmc@1021c000 {
244 compatible = "rockchip,rk3288-dw-mshc";
245 clock-frequency = <37500000>;
246 clock-freq-min-max = <400000 37500000>;
247 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
248 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
249 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
252 fifo-depth = <0x100>;
253 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
254 reg = <0x1021c000 0x4000>;
263 default-sample-phase = <158>;
264 pinctrl-names = "default";
265 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
269 compatible = "rockchip,rk3036-pinctrl";
270 rockchip,grf = <&grf>;
271 #address-cells = <1>;
275 gpio0: gpio0@2007c000 {
276 compatible = "rockchip,gpio-bank";
277 reg = <0x2007c000 0x100>;
278 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
279 clocks = <&cru PCLK_GPIO0>;
284 interrupt-controller;
285 #interrupt-cells = <2>;
288 gpio1: gpio1@20080000 {
289 compatible = "rockchip,gpio-bank";
290 reg = <0x20080000 0x100>;
291 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
292 clocks = <&cru PCLK_GPIO1>;
297 interrupt-controller;
298 #interrupt-cells = <2>;
301 gpio2: gpio2@20084000 {
302 compatible = "rockchip,gpio-bank";
303 reg = <0x20084000 0x100>;
304 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
305 clocks = <&cru PCLK_GPIO2>;
310 interrupt-controller;
311 #interrupt-cells = <2>;
314 pcfg_pull_up: pcfg-pull-up {
318 pcfg_pull_down: pcfg-pull-down {
322 pcfg_pull_none: pcfg-pull-none {
328 * We run eMMC at max speed; bump up drive strength.
329 * We also have external pulls, so disable the internal ones.
332 rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none>;
336 rockchip,pins = <2 1 RK_FUNC_2 &pcfg_pull_none>;
339 emmc_bus8: emmc-bus8 {
340 rockchip,pins = <1 24 RK_FUNC_2 &pcfg_pull_none>,
341 <1 25 RK_FUNC_2 &pcfg_pull_none>,
342 <1 26 RK_FUNC_2 &pcfg_pull_none>,
343 <1 27 RK_FUNC_2 &pcfg_pull_none>;
345 <1 28 RK_FUNC_2 &pcfg_pull_up>,
346 <1 29 RK_FUNC_2 &pcfg_pull_up>,
347 <1 30 RK_FUNC_2 &pcfg_pull_up>,
348 <1 31 RK_FUNC_2 &pcfg_pull_up>;
354 uart0_xfer: uart0-xfer {
355 rockchip,pins = <0 16 RK_FUNC_1 &pcfg_pull_none>,
356 <0 17 RK_FUNC_1 &pcfg_pull_none>;
359 uart0_cts: uart0-cts {
360 rockchip,pins = <0 18 RK_FUNC_1 &pcfg_pull_none>;
363 uart0_rts: uart0-rts {
364 rockchip,pins = <0 19 RK_FUNC_1 &pcfg_pull_none>;
369 uart1_xfer: uart1-xfer {
370 rockchip,pins = <2 22 RK_FUNC_1 &pcfg_pull_none>,
371 <2 23 RK_FUNC_1 &pcfg_pull_none>;
373 /* no rts / cts for uart1 */
377 uart2_xfer: uart2-xfer {
378 rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_none>,
379 <1 19 RK_FUNC_2 &pcfg_pull_none>;
381 /* no rts / cts for uart2 */
386 rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>;
392 rockchip,pins = <0 1 RK_FUNC_2 &pcfg_pull_none>;
398 rockchip,pins = <0 1 2 &pcfg_pull_none>;
404 rockchip,pins = <0 27 1 &pcfg_pull_none>;
409 i2c1_xfer: i2c1-xfer {
410 rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_none>,
411 <0 3 RK_FUNC_1 &pcfg_pull_none>;
417 compatible = "rockchip,rk3288-i2c";
418 reg = <0x20056000 0x1000>;
419 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
420 #address-cells = <1>;
423 clocks = <&cru PCLK_I2C1>;
424 pinctrl-names = "default";
425 pinctrl-0 = <&i2c1_xfer>;