0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 /*
0003 * Copyright (c) 2013 MundoReader S.L.
0004 * Author: Heiko Stuebner <heiko@sntech.de>
0005 */
0006
0007 #include <dt-bindings/interrupt-controller/irq.h>
0008 #include <dt-bindings/interrupt-controller/arm-gic.h>
0009 #include <dt-bindings/soc/rockchip,boot-mode.h>
0010
0011 / {
0012 #address-cells = <1>;
0013 #size-cells = <1>;
0014
0015 interrupt-parent = <&gic>;
0016
0017 aliases {
0018 ethernet0 = &emac;
0019 i2c0 = &i2c0;
0020 i2c1 = &i2c1;
0021 i2c2 = &i2c2;
0022 i2c3 = &i2c3;
0023 i2c4 = &i2c4;
0024 serial0 = &uart0;
0025 serial1 = &uart1;
0026 serial2 = &uart2;
0027 serial3 = &uart3;
0028 spi0 = &spi0;
0029 spi1 = &spi1;
0030 };
0031
0032 xin24m: oscillator {
0033 compatible = "fixed-clock";
0034 clock-frequency = <24000000>;
0035 #clock-cells = <0>;
0036 clock-output-names = "xin24m";
0037 };
0038
0039 gpu: gpu@10090000 {
0040 compatible = "arm,mali-400";
0041 reg = <0x10090000 0x10000>;
0042 clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
0043 clock-names = "bus", "core";
0044 assigned-clocks = <&cru ACLK_GPU>;
0045 assigned-clock-rates = <100000000>;
0046 resets = <&cru SRST_GPU>;
0047 status = "disabled";
0048 };
0049
0050 vpu: video-codec@10104000 {
0051 compatible = "rockchip,rk3066-vpu";
0052 reg = <0x10104000 0x800>;
0053 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
0054 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
0055 interrupt-names = "vepu", "vdpu";
0056 clocks = <&cru ACLK_VDPU>, <&cru HCLK_VDPU>,
0057 <&cru ACLK_VEPU>, <&cru HCLK_VEPU>;
0058 clock-names = "aclk_vdpu", "hclk_vdpu",
0059 "aclk_vepu", "hclk_vepu";
0060 };
0061
0062 L2: cache-controller@10138000 {
0063 compatible = "arm,pl310-cache";
0064 reg = <0x10138000 0x1000>;
0065 cache-unified;
0066 cache-level = <2>;
0067 };
0068
0069 scu@1013c000 {
0070 compatible = "arm,cortex-a9-scu";
0071 reg = <0x1013c000 0x100>;
0072 };
0073
0074 global_timer: global-timer@1013c200 {
0075 compatible = "arm,cortex-a9-global-timer";
0076 reg = <0x1013c200 0x20>;
0077 interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>;
0078 clocks = <&cru CORE_PERI>;
0079 };
0080
0081 local_timer: local-timer@1013c600 {
0082 compatible = "arm,cortex-a9-twd-timer";
0083 reg = <0x1013c600 0x20>;
0084 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>;
0085 clocks = <&cru CORE_PERI>;
0086 };
0087
0088 gic: interrupt-controller@1013d000 {
0089 compatible = "arm,cortex-a9-gic";
0090 interrupt-controller;
0091 #interrupt-cells = <3>;
0092 reg = <0x1013d000 0x1000>,
0093 <0x1013c100 0x0100>;
0094 };
0095
0096 uart0: serial@10124000 {
0097 compatible = "snps,dw-apb-uart";
0098 reg = <0x10124000 0x400>;
0099 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
0100 reg-shift = <2>;
0101 reg-io-width = <1>;
0102 clock-names = "baudclk", "apb_pclk";
0103 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
0104 status = "disabled";
0105 };
0106
0107 uart1: serial@10126000 {
0108 compatible = "snps,dw-apb-uart";
0109 reg = <0x10126000 0x400>;
0110 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
0111 reg-shift = <2>;
0112 reg-io-width = <1>;
0113 clock-names = "baudclk", "apb_pclk";
0114 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
0115 status = "disabled";
0116 };
0117
0118 qos_gpu: qos@1012d000 {
0119 compatible = "rockchip,rk3066-qos", "syscon";
0120 reg = <0x1012d000 0x20>;
0121 };
0122
0123 qos_vpu: qos@1012e000 {
0124 compatible = "rockchip,rk3066-qos", "syscon";
0125 reg = <0x1012e000 0x20>;
0126 };
0127
0128 qos_lcdc0: qos@1012f000 {
0129 compatible = "rockchip,rk3066-qos", "syscon";
0130 reg = <0x1012f000 0x20>;
0131 };
0132
0133 qos_cif0: qos@1012f080 {
0134 compatible = "rockchip,rk3066-qos", "syscon";
0135 reg = <0x1012f080 0x20>;
0136 };
0137
0138 qos_ipp: qos@1012f100 {
0139 compatible = "rockchip,rk3066-qos", "syscon";
0140 reg = <0x1012f100 0x20>;
0141 };
0142
0143 qos_lcdc1: qos@1012f180 {
0144 compatible = "rockchip,rk3066-qos", "syscon";
0145 reg = <0x1012f180 0x20>;
0146 };
0147
0148 qos_cif1: qos@1012f200 {
0149 compatible = "rockchip,rk3066-qos", "syscon";
0150 reg = <0x1012f200 0x20>;
0151 };
0152
0153 qos_rga: qos@1012f280 {
0154 compatible = "rockchip,rk3066-qos", "syscon";
0155 reg = <0x1012f280 0x20>;
0156 };
0157
0158 usb_otg: usb@10180000 {
0159 compatible = "rockchip,rk3066-usb", "snps,dwc2";
0160 reg = <0x10180000 0x40000>;
0161 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
0162 clocks = <&cru HCLK_OTG0>;
0163 clock-names = "otg";
0164 dr_mode = "otg";
0165 g-np-tx-fifo-size = <16>;
0166 g-rx-fifo-size = <275>;
0167 g-tx-fifo-size = <256 128 128 64 64 32>;
0168 phys = <&usbphy0>;
0169 phy-names = "usb2-phy";
0170 status = "disabled";
0171 };
0172
0173 usb_host: usb@101c0000 {
0174 compatible = "snps,dwc2";
0175 reg = <0x101c0000 0x40000>;
0176 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
0177 clocks = <&cru HCLK_OTG1>;
0178 clock-names = "otg";
0179 dr_mode = "host";
0180 phys = <&usbphy1>;
0181 phy-names = "usb2-phy";
0182 status = "disabled";
0183 };
0184
0185 emac: ethernet@10204000 {
0186 compatible = "snps,arc-emac";
0187 reg = <0x10204000 0x3c>;
0188 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
0189 #address-cells = <1>;
0190 #size-cells = <0>;
0191
0192 rockchip,grf = <&grf>;
0193
0194 clocks = <&cru HCLK_EMAC>, <&cru SCLK_MAC>;
0195 clock-names = "hclk", "macref";
0196 max-speed = <100>;
0197 phy-mode = "rmii";
0198
0199 status = "disabled";
0200 };
0201
0202 mmc0: mmc@10214000 {
0203 compatible = "rockchip,rk2928-dw-mshc";
0204 reg = <0x10214000 0x1000>;
0205 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
0206 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>;
0207 clock-names = "biu", "ciu";
0208 dmas = <&dmac2 1>;
0209 dma-names = "rx-tx";
0210 fifo-depth = <256>;
0211 resets = <&cru SRST_SDMMC>;
0212 reset-names = "reset";
0213 status = "disabled";
0214 };
0215
0216 mmc1: mmc@10218000 {
0217 compatible = "rockchip,rk2928-dw-mshc";
0218 reg = <0x10218000 0x1000>;
0219 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
0220 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>;
0221 clock-names = "biu", "ciu";
0222 dmas = <&dmac2 3>;
0223 dma-names = "rx-tx";
0224 fifo-depth = <256>;
0225 resets = <&cru SRST_SDIO>;
0226 reset-names = "reset";
0227 status = "disabled";
0228 };
0229
0230 emmc: mmc@1021c000 {
0231 compatible = "rockchip,rk2928-dw-mshc";
0232 reg = <0x1021c000 0x1000>;
0233 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
0234 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>;
0235 clock-names = "biu", "ciu";
0236 dmas = <&dmac2 4>;
0237 dma-names = "rx-tx";
0238 fifo-depth = <256>;
0239 resets = <&cru SRST_EMMC>;
0240 reset-names = "reset";
0241 status = "disabled";
0242 };
0243
0244 nfc: nand-controller@10500000 {
0245 compatible = "rockchip,rk2928-nfc";
0246 reg = <0x10500000 0x4000>;
0247 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
0248 clocks = <&cru HCLK_NANDC0>;
0249 clock-names = "ahb";
0250 status = "disabled";
0251 };
0252
0253 pmu: pmu@20004000 {
0254 compatible = "rockchip,rk3066-pmu", "syscon", "simple-mfd";
0255 reg = <0x20004000 0x100>;
0256
0257 reboot-mode {
0258 compatible = "syscon-reboot-mode";
0259 offset = <0x40>;
0260 mode-normal = <BOOT_NORMAL>;
0261 mode-recovery = <BOOT_RECOVERY>;
0262 mode-bootloader = <BOOT_FASTBOOT>;
0263 mode-loader = <BOOT_BL_DOWNLOAD>;
0264 };
0265 };
0266
0267 grf: grf@20008000 {
0268 compatible = "syscon", "simple-mfd";
0269 reg = <0x20008000 0x200>;
0270 };
0271
0272 dmac1_s: dma-controller@20018000 {
0273 compatible = "arm,pl330", "arm,primecell";
0274 reg = <0x20018000 0x4000>;
0275 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
0276 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
0277 #dma-cells = <1>;
0278 arm,pl330-broken-no-flushp;
0279 arm,pl330-periph-burst;
0280 clocks = <&cru ACLK_DMA1>;
0281 clock-names = "apb_pclk";
0282 };
0283
0284 dmac1_ns: dma-controller@2001c000 {
0285 compatible = "arm,pl330", "arm,primecell";
0286 reg = <0x2001c000 0x4000>;
0287 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
0288 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
0289 #dma-cells = <1>;
0290 arm,pl330-broken-no-flushp;
0291 arm,pl330-periph-burst;
0292 clocks = <&cru ACLK_DMA1>;
0293 clock-names = "apb_pclk";
0294 status = "disabled";
0295 };
0296
0297 i2c0: i2c@2002d000 {
0298 compatible = "rockchip,rk3066-i2c";
0299 reg = <0x2002d000 0x1000>;
0300 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
0301 #address-cells = <1>;
0302 #size-cells = <0>;
0303
0304 rockchip,grf = <&grf>;
0305
0306 clock-names = "i2c";
0307 clocks = <&cru PCLK_I2C0>;
0308
0309 status = "disabled";
0310 };
0311
0312 i2c1: i2c@2002f000 {
0313 compatible = "rockchip,rk3066-i2c";
0314 reg = <0x2002f000 0x1000>;
0315 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
0316 #address-cells = <1>;
0317 #size-cells = <0>;
0318
0319 rockchip,grf = <&grf>;
0320
0321 clocks = <&cru PCLK_I2C1>;
0322 clock-names = "i2c";
0323
0324 status = "disabled";
0325 };
0326
0327 pwm0: pwm@20030000 {
0328 compatible = "rockchip,rk2928-pwm";
0329 reg = <0x20030000 0x10>;
0330 #pwm-cells = <2>;
0331 clocks = <&cru PCLK_PWM01>;
0332 status = "disabled";
0333 };
0334
0335 pwm1: pwm@20030010 {
0336 compatible = "rockchip,rk2928-pwm";
0337 reg = <0x20030010 0x10>;
0338 #pwm-cells = <2>;
0339 clocks = <&cru PCLK_PWM01>;
0340 status = "disabled";
0341 };
0342
0343 wdt: watchdog@2004c000 {
0344 compatible = "snps,dw-wdt";
0345 reg = <0x2004c000 0x100>;
0346 clocks = <&cru PCLK_WDT>;
0347 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
0348 status = "disabled";
0349 };
0350
0351 pwm2: pwm@20050020 {
0352 compatible = "rockchip,rk2928-pwm";
0353 reg = <0x20050020 0x10>;
0354 #pwm-cells = <2>;
0355 clocks = <&cru PCLK_PWM23>;
0356 status = "disabled";
0357 };
0358
0359 pwm3: pwm@20050030 {
0360 compatible = "rockchip,rk2928-pwm";
0361 reg = <0x20050030 0x10>;
0362 #pwm-cells = <2>;
0363 clocks = <&cru PCLK_PWM23>;
0364 status = "disabled";
0365 };
0366
0367 i2c2: i2c@20056000 {
0368 compatible = "rockchip,rk3066-i2c";
0369 reg = <0x20056000 0x1000>;
0370 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
0371 #address-cells = <1>;
0372 #size-cells = <0>;
0373
0374 rockchip,grf = <&grf>;
0375
0376 clocks = <&cru PCLK_I2C2>;
0377 clock-names = "i2c";
0378
0379 status = "disabled";
0380 };
0381
0382 i2c3: i2c@2005a000 {
0383 compatible = "rockchip,rk3066-i2c";
0384 reg = <0x2005a000 0x1000>;
0385 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
0386 #address-cells = <1>;
0387 #size-cells = <0>;
0388
0389 rockchip,grf = <&grf>;
0390
0391 clocks = <&cru PCLK_I2C3>;
0392 clock-names = "i2c";
0393
0394 status = "disabled";
0395 };
0396
0397 i2c4: i2c@2005e000 {
0398 compatible = "rockchip,rk3066-i2c";
0399 reg = <0x2005e000 0x1000>;
0400 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
0401 #address-cells = <1>;
0402 #size-cells = <0>;
0403
0404 rockchip,grf = <&grf>;
0405
0406 clocks = <&cru PCLK_I2C4>;
0407 clock-names = "i2c";
0408
0409 status = "disabled";
0410 };
0411
0412 uart2: serial@20064000 {
0413 compatible = "snps,dw-apb-uart";
0414 reg = <0x20064000 0x400>;
0415 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
0416 reg-shift = <2>;
0417 reg-io-width = <1>;
0418 clock-names = "baudclk", "apb_pclk";
0419 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
0420 status = "disabled";
0421 };
0422
0423 uart3: serial@20068000 {
0424 compatible = "snps,dw-apb-uart";
0425 reg = <0x20068000 0x400>;
0426 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
0427 reg-shift = <2>;
0428 reg-io-width = <1>;
0429 clock-names = "baudclk", "apb_pclk";
0430 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
0431 status = "disabled";
0432 };
0433
0434 saradc: saradc@2006c000 {
0435 compatible = "rockchip,saradc";
0436 reg = <0x2006c000 0x100>;
0437 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
0438 #io-channel-cells = <1>;
0439 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
0440 clock-names = "saradc", "apb_pclk";
0441 resets = <&cru SRST_SARADC>;
0442 reset-names = "saradc-apb";
0443 status = "disabled";
0444 };
0445
0446 spi0: spi@20070000 {
0447 compatible = "rockchip,rk3066-spi";
0448 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
0449 clock-names = "spiclk", "apb_pclk";
0450 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
0451 reg = <0x20070000 0x1000>;
0452 #address-cells = <1>;
0453 #size-cells = <0>;
0454 dmas = <&dmac2 10>, <&dmac2 11>;
0455 dma-names = "tx", "rx";
0456 status = "disabled";
0457 };
0458
0459 spi1: spi@20074000 {
0460 compatible = "rockchip,rk3066-spi";
0461 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
0462 clock-names = "spiclk", "apb_pclk";
0463 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
0464 reg = <0x20074000 0x1000>;
0465 #address-cells = <1>;
0466 #size-cells = <0>;
0467 dmas = <&dmac2 12>, <&dmac2 13>;
0468 dma-names = "tx", "rx";
0469 status = "disabled";
0470 };
0471
0472 dmac2: dma-controller@20078000 {
0473 compatible = "arm,pl330", "arm,primecell";
0474 reg = <0x20078000 0x4000>;
0475 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
0476 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
0477 #dma-cells = <1>;
0478 arm,pl330-broken-no-flushp;
0479 arm,pl330-periph-burst;
0480 clocks = <&cru ACLK_DMA2>;
0481 clock-names = "apb_pclk";
0482 };
0483 };