1 #include <dt-bindings/interrupt-controller/arm-gic.h>
2 #include <dt-bindings/rkfb/rk_fb.h>
4 #include "skeleton.dtsi"
5 #include "rk3228-clocks.dtsi"
8 compatible = "rockchip,rk3228";
9 interrupt-parent = <&gic>;
21 compatible = "arm,cortex-a7";
26 compatible = "arm,cortex-a7";
31 compatible = "arm,cortex-a7";
36 compatible = "arm,cortex-a7";
41 gic: interrupt-controller@32010000 {
42 compatible = "arm,cortex-a15-gic";
44 #interrupt-cells = <3>;
46 reg = <0x32011000 0x1000>,
50 sgrf: syscon@10140000 {
51 compatible = "rockchip,rk3228-sgrf", "rockchip,sgrf", "syscon";
52 reg = <0x10140000 0x1000>;
55 grf: syscon@11000000 {
56 compatible = "rockchip,rk3228-grf", "rockchip,grf", "syscon";
57 reg = <0x11000000 0x1000>;
60 cru: syscon@110e0000 {
61 compatible = "rockchip,rk3228-cru", "rockchip,cru", "syscon";
62 reg = <0x110e0000 0x1000>;
65 ddrpctl: syscon@11200000 {
66 compatible = "rockchip,rk3228-ddrpctl", "syscon";
67 reg = <0x11200000 0x400>;
70 msch: syscon@31020000 {
71 compatible = "rockchip,rk32288-msch", "rockchip,msch", "syscon";
72 reg = <0x31020000 0x3000>;
76 compatible = "arm,cortex-a7-pmu";
77 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
78 <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
79 <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
80 <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
83 reset: reset@110e0110{
84 compatible = "rockchip,reset";
85 reg = <0x110e0110 0x20>;
86 rockchip,reset-flag = <ROCKCHIP_RESET_HIWORD_MASK>;
91 compatible = "arm,armv7-timer";
92 interrupts = <GIC_PPI 13
93 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
95 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
96 clock-frequency = <24000000>;
99 uart_dbg: serial@11030000 {
100 compatible = "rockchip,serial";
101 reg = <0x11030000 0x100>;
102 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
103 clock-frequency = <24000000>;
104 clocks = <&xin24m>, <&xin24m>;
105 clock-names = "sclk_uart", "pclk_uart";
112 compatible = "rockchip,fiq-debugger";
113 rockchip,serial-id = <2>;
114 rockchip,signal-irq = <159>;
115 rockchip,wake-irq = <0>;
116 rockchip,irq-mode-enable = <1>; /* If enable uart uses irq instead of fiq */
117 rockchip,baudrate = <1500000>; /* Only 115200 and 1500000 */
121 rockchip_clocks_init: clocks-init{
122 compatible = "rockchip,clocks-init";
123 rockchip,clocks-init-parent =
124 <&clk_i2s0_pll &clk_cpll>, <&clk_i2s1_pll &clk_cpll>,
125 <&clk_i2s2_pll &clk_cpll>, <&clk_spdif_pll &clk_cpll>,
126 <&clk_gpu &clk_cpll>, <&dclk_vop0 &hdmi_phy_clk>,
127 <&aclk_bus &clk_cpll>, <&aclk_peri &clk_cpll>,
128 <&clk_sdmmc0 &clk_cpll>, <&clk_emmc &clk_cpll>,
129 <&clk_sdio &clk_cpll>, <&aclk_vpu &clk_cpll>,
130 <&hdmi_phy_clk &hdmiphy_out>, <&usb480m &usb480m_phy>;
131 rockchip,clocks-init-rate =
132 <&clk_gpll 600000000>, <&clk_core 700000000>,
133 <&clk_cpll 500000000>, <&aclk_bus 250000000>,
134 <&hclk_bus 125000000>, <&pclk_bus 62500000>,
135 <&aclk_peri 250000000>, <&hclk_peri 125000000>,
136 <&pclk_peri 62500000>, <&clk_mac 125000000>,
137 <&aclk_iep 250000000>, <&hclk_vio 125000000>,
138 <&aclk_rga 250000000>, <&clk_gpu 250000000>,
139 <&aclk_vpu 25000000>, <&clk_vdec_core 250000000>,
140 <&clk_vdec_cabac 250000000>;
142 rockchip,clocks-uboot-has-init =
147 rockchip_clocks_enable: clocks-enable {
148 compatible = "rockchip,clocks-enable";
166 <&clk_gates8 0>,/*aclk_intmem*/
167 <&clk_gates8 1>,/*clk_intmem_mbist*/
168 <&clk_gates8 2>,/*aclk_dmac_bus*/
169 <&clk_gates10 1>,/*g_aclk_bus*/
170 <&clk_gates13 9>,/*aclk_gic400*/
171 <&clk_gates8 3>,/*hclk_rom*/
172 <&clk_gates8 4>,/*pclk_ddrupctl*/
173 <&clk_gates8 6>,/*pclk_ddrmon*/
174 <&clk_gates9 4>,/*pclk_timer0*/
175 <&clk_gates9 5>,/*pclk_stimer*/
176 <&clk_gates10 0>,/*pclk_grf*/
177 <&clk_gates10 4>,/*pclk_cru*/
178 <&clk_gates10 6>,/*pclk_sgrf*/
179 <&clk_gates10 3>,/*pclk_ddrphy*/
180 <&clk_gates10 9>,/*pclk_phy_noc*/
186 <&clk_gates12 0>,/*aclk_peri_noc*/
187 <&clk_gates12 1>,/*hclk_peri_noc*/
188 <&clk_gates12 2>,/*pclk_peri_noc*/
190 <&clk_gates6 5>, /* g_clk_timer0 */
191 <&clk_gates6 6>, /* g_clk_timer1 */
193 <&clk_gates7 14>, /* g_aclk_gpu */
194 <&clk_gates7 15>, /* g_aclk_gpu_noc */
196 <&clk_gates1 3>;/*clk_jtag*/
200 #address-cells = <1>;
202 compatible = "arm,amba-bus";
203 interrupt-parent = <&gic>;
206 pdma: pdma@110f0000 {
207 compatible = "arm,pl330", "arm,primecell";
208 reg = <0x110f0000 0x4000>;
209 clocks = <&clk_gates8 2>;
210 clock-names = "apb_pclk";
211 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
212 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
217 i2s0: i2s0@100c0000 {
218 compatible = "rockchip-i2s";
219 reg = <0x100c0000 0x1000>;
221 clocks = <&clk_i2s0>, <&clk_gates8 7>;
222 clock-names = "i2s_clk", "i2s_hclk";
223 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
224 dmas = <&pdma 11>, <&pdma 12>;
226 dma-names = "tx", "rx";
229 i2s1: i2s1@100b0000 {
230 compatible = "rockchip-i2s";
231 reg = <0x100b0000 0x1000>;
233 clocks = <&clk_i2s1>, <&clk_i2s1_out>, <&clk_gates8 8>;
234 clock-names = "i2s_clk", "i2s_mclk", "i2s_hclk";
235 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
236 dmas = <&pdma 14>, <&pdma 15>;
238 dma-names = "tx", "rx";
242 i2s2: i2s2@100e0000 {
243 compatible = "rockchip-i2s";
244 reg = <0x100e0000 0x1000>;
246 clocks = <&clk_i2s2>, <&clk_gates8 9>;
247 clock-names = "i2s_clk", "i2s_hclk";
248 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
249 dmas = <&pdma 0>, <&pdma 1>;
251 dma-names = "tx", "rx";
255 spdif: spdif@100d0000 {
256 compatible = "rockchip-spdif";
257 reg = <0x100d0000 0x1000>;
258 clocks = <&clk_spdif>, <&clk_gates8 10>;
259 clock-names = "spdif_mclk", "spdif_hclk";
260 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
268 compatible = "arm,mali400";
269 reg = <0x20001000 0x200>,
277 reg-names = "Mali_L2",
285 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
286 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
287 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
288 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
289 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
290 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
292 interrupt-names = "Mali_GP_IRQ",
301 compatible = "rockchip,rk-fb";
302 rockchip,disp-mode = <NO_DUAL>;
305 rk_screen: rk_screen {
306 compatible = "rockchip,screen";
310 compatible = "rockchip,rk3228-lcdc";
312 rockchip,cabc_mode = <0>;
313 rockchip,pwr18 = <0>;
314 rockchip,iommu-enabled = <1>;
315 reg = <0x20050000 0x300>;
316 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
317 clocks = <&aclk_vop>, <&dclk_vop0>, <&hclk_vio>;
318 clock-names = "aclk_lcdc", "dclk_lcdc", "hclk_lcdc";
323 compatible = "rockchip,vop_mmu";
324 reg = <0x20053f00 0x100>;
325 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
326 interrupt-names = "vop_mmu";
331 compatible = "rockchip,hevc_mmu";
332 reg = <0x20034440 0x40>,
334 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
335 interrupt-names = "hevc_mmu";
340 compatible = "rockchip,vpu_mmu";
341 reg = <0x20026800 0x100>;
342 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
343 interrupt-names = "vpu_mmu";
348 compatible = "rockchip,iep_mmu";
349 reg = <0x20078800 0x100>;
350 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
351 interrupt-names = "iep_mmu";
354 hdmi: hdmi@200a0000 {
355 compatible = "rockchip,rk3228-hdmi";
356 reg = <0x200a0000 0x20000>,
357 <0x12030000 0x10000>;
358 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
359 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
360 clocks = <&clk_gates14 6>, <&clk_gates3 7>, <&clk_hdmi_cec>;
361 clock-names = "pclk_hdmi", "hdcp_clk_hdmi", "cec_clk_hdmi";
362 rockchip,hdmi_audio_source = <0>;
363 rockchip,hdcp_enable = <0>;
364 rockchip,cec_enable = <0>;
368 hdmi_hdcp2: hdmi_hdcp2@20090000 {
369 compatible = "rockchip,rk3228-hdmi-hdcp2";
370 reg = <0x20090000 0x10000>;
371 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
372 clocks = <&aclk_hdcp>,
376 clock-names = "aclk_hdcp2",
384 compatible = "rockchip,rk3228-tve";
385 reg = <0x20053e00 0x100>,
386 <0x12020000 0x10000>;
387 clocks = <&clk_gates10 8>;
388 clock-names = "pclk_vdac";
392 emmc: rksdmmc@30020000 {
393 compatible = "rockchip,rk_mmc", "rockchip,rk3228-sdmmc";
394 reg = <0x30020000 0x10000>;
395 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
396 #address-cells = <1>;
398 clocks = <&clk_emmc>, <&clk_gates7 0>;
399 clock-names = "clk_mmc", "hclk_mmc";
401 fifo-depth = <0x100>;
403 cru_regsbase = <0x124>;
404 cru_reset_offset = <3>;
407 sdmmc: rksdmmc@30000000 {
408 compatible = "rockchip,rk_mmc", "rockchip,rk3228-sdmmc";
409 reg = <0x30000000 0x10000>;
410 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
411 #address-cells = <1>;
413 clocks = <&clk_sdmmc0>, <&clk_gates5 10>;
414 clock-names = "clk_mmc", "hclk_mmc";
416 fifo-depth = <0x100>;
418 cru_regsbase = <0x124>;
419 cru_reset_offset = <1>;
422 sdio: rksdmmc@30010000 {
423 compatible = "rockchip,rk_mmc", "rockchip,rk3228-sdmmc";
424 reg = <0x30010000 0x10000>;
425 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
426 #address-cells = <1>;
428 clocks = <&clk_sdio>, <&clk_gates5 11>;
429 clock-names = "clk_mmc", "hclk_mmc";
431 fifo-depth = <0x100>;
433 cru_regsbase = <0x124>;
434 cru_reset_offset = <2>;