Home | History | Annotate | Download | only in dts
      1 // SPDX-License-Identifier: GPL-2.0+
      2 
      3 #include <dt-bindings/gpio/gpio.h>
      4 #include <dt-bindings/interrupt-controller/irq.h>
      5 #include <dt-bindings/interrupt-controller/arm-gic.h>
      6 #include <dt-bindings/pinctrl/rockchip.h>
      7 #include <dt-bindings/clock/rk3288-cru.h>
      8 #include <dt-bindings/power-domain/rk3288.h>
      9 #include <dt-bindings/thermal/thermal.h>
     10 #include <dt-bindings/video/rk3288.h>
     11 #include "skeleton.dtsi"
     12 
     13 / {
     14 	compatible = "rockchip,rk3288";
     15 
     16 	interrupt-parent = <&gic>;
     17 	aliases {
     18 		gpio0 = &gpio0;
     19 		gpio1 = &gpio1;
     20 		gpio2 = &gpio2;
     21 		gpio3 = &gpio3;
     22 		gpio4 = &gpio4;
     23 		gpio5 = &gpio5;
     24 		gpio6 = &gpio6;
     25 		gpio7 = &gpio7;
     26 		gpio8 = &gpio8;
     27 		i2c0 = &i2c0;
     28 		i2c1 = &i2c1;
     29 		i2c2 = &i2c2;
     30 		i2c3 = &i2c3;
     31 		i2c4 = &i2c4;
     32 		i2c5 = &i2c5;
     33 		mmc0 = &emmc;
     34 		mmc1 = &sdmmc;
     35 		mmc2 = &sdio0;
     36 		mmc3 = &sdio1;
     37 		mshc0 = &emmc;
     38 		mshc1 = &sdmmc;
     39 		mshc2 = &sdio0;
     40 		mshc3 = &sdio1;
     41 		serial0 = &uart0;
     42 		serial1 = &uart1;
     43 		serial2 = &uart2;
     44 		serial3 = &uart3;
     45 		serial4 = &uart4;
     46 		spi0 = &spi0;
     47 		spi1 = &spi1;
     48 		spi2 = &spi2;
     49 	};
     50 
     51 	cpus {
     52 		#address-cells = <1>;
     53 		#size-cells = <0>;
     54 		enable-method = "rockchip,rk3066-smp";
     55 		rockchip,pmu = <&pmu>;
     56 
     57 		cpu0: cpu@500 {
     58 			device_type = "cpu";
     59 			compatible = "arm,cortex-a12";
     60 			reg = <0x500>;
     61 			operating-points = <
     62 				/* KHz    uV */
     63 				1800000 1400000
     64 				1704000 1350000
     65 				1608000 1300000
     66 				1512000 1250000
     67 				1416000 1200000
     68 				1200000 1100000
     69 				1008000 1050000
     70 				 816000 1000000
     71 				 696000  950000
     72 				 600000  900000
     73 				 408000  900000
     74 				 216000  900000
     75 				 126000  900000
     76 			>;
     77 			#cooling-cells = <2>; /* min followed by max */
     78 			clock-latency = <40000>;
     79 			clocks = <&cru ARMCLK>;
     80 			resets = <&cru SRST_CORE0>;
     81 		};
     82 		cpu@501 {
     83 			device_type = "cpu";
     84 			compatible = "arm,cortex-a12";
     85 			reg = <0x501>;
     86 			resets = <&cru SRST_CORE1>;
     87 		};
     88 		cpu@502 {
     89 			device_type = "cpu";
     90 			compatible = "arm,cortex-a12";
     91 			reg = <0x502>;
     92 			resets = <&cru SRST_CORE2>;
     93 		};
     94 		cpu@503 {
     95 			device_type = "cpu";
     96 			compatible = "arm,cortex-a12";
     97 			reg = <0x503>;
     98 			resets = <&cru SRST_CORE3>;
     99 		};
    100 	};
    101 
    102 	amba {
    103 		compatible = "arm,amba-bus";
    104 		#address-cells = <1>;
    105 		#size-cells = <1>;
    106 		ranges;
    107 
    108 		dmac_peri: dma-controller@ff250000 {
    109 			compatible = "arm,pl330", "arm,primecell";
    110 			broken-no-flushp;
    111 			reg = <0xff250000 0x4000>;
    112 			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
    113 				     <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
    114 			#dma-cells = <1>;
    115 			clocks = <&cru ACLK_DMAC2>;
    116 			clock-names = "apb_pclk";
    117 		};
    118 
    119 		dmac_bus_ns: dma-controller@ff600000 {
    120 			compatible = "arm,pl330", "arm,primecell";
    121 			broken-no-flushp;
    122 			reg = <0xff600000 0x4000>;
    123 			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
    124 				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
    125 			#dma-cells = <1>;
    126 			clocks = <&cru ACLK_DMAC1>;
    127 			clock-names = "apb_pclk";
    128 			status = "disabled";
    129 		};
    130 
    131 		dmac_bus_s: dma-controller@ffb20000 {
    132 			compatible = "arm,pl330", "arm,primecell";
    133 			broken-no-flushp;
    134 			reg = <0xffb20000 0x4000>;
    135 			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
    136 				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
    137 			#dma-cells = <1>;
    138 			clocks = <&cru ACLK_DMAC1>;
    139 			clock-names = "apb_pclk";
    140 		};
    141 	};
    142 
    143 	xin24m: oscillator {
    144 		compatible = "fixed-clock";
    145 		clock-frequency = <24000000>;
    146 		clock-output-names = "xin24m";
    147 		#clock-cells = <0>;
    148 	};
    149 
    150 	timer {
    151 	        arm,use-physical-timer;
    152 		compatible = "arm,armv7-timer";
    153 		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
    154 			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
    155 			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
    156 			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
    157 		clock-frequency = <24000000>;
    158 		always-on;
    159 	};
    160 
    161 	display-subsystem {
    162 		compatible = "rockchip,display-subsystem";
    163 		ports = <&vopl_out>, <&vopb_out>;
    164 	};
    165 
    166 	sdmmc: dwmmc@ff0c0000 {
    167 		compatible = "rockchip,rk3288-dw-mshc";
    168 		max-frequency = <150000000>;
    169 		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
    170 			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
    171 		clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
    172 		fifo-depth = <0x100>;
    173 		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
    174 		reg = <0xff0c0000 0x4000>;
    175 		status = "disabled";
    176 	};
    177 
    178 	sdio0: dwmmc@ff0d0000 {
    179 		compatible = "rockchip,rk3288-dw-mshc";
    180 		max-frequency = <150000000>;
    181 		clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
    182 			 <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
    183 		clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
    184 		fifo-depth = <0x100>;
    185 		interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
    186 		reg = <0xff0d0000 0x4000>;
    187 		status = "disabled";
    188 	};
    189 
    190 	sdio1: dwmmc@ff0e0000 {
    191 		compatible = "rockchip,rk3288-dw-mshc";
    192 		max-frequency = <150000000>;
    193 		clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>,
    194 			 <&cru SCLK_SDIO1_DRV>, <&cru SCLK_SDIO1_SAMPLE>;
    195 		clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
    196 		fifo-depth = <0x100>;
    197 		interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
    198 		reg = <0xff0e0000 0x4000>;
    199 		status = "disabled";
    200 	};
    201 
    202 	emmc: dwmmc@ff0f0000 {
    203 		compatible = "rockchip,rk3288-dw-mshc";
    204 		max-frequency = <150000000>;
    205 		clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
    206 			 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
    207 		clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
    208 		fifo-depth = <0x100>;
    209 		interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
    210 		reg = <0xff0f0000 0x4000>;
    211 		status = "disabled";
    212 	};
    213 
    214 	saradc: saradc@ff100000 {
    215 		compatible = "rockchip,saradc";
    216 		reg = <0xff100000 0x100>;
    217 		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
    218 		#io-channel-cells = <1>;
    219 		clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
    220 		clock-names = "saradc", "apb_pclk";
    221 		status = "disabled";
    222 	};
    223 
    224 	spi0: spi@ff110000 {
    225 		compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
    226 		clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
    227 		clock-names = "spiclk", "apb_pclk";
    228 		dmas = <&dmac_peri 11>, <&dmac_peri 12>;
    229 		dma-names = "tx", "rx";
    230 		interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
    231 		pinctrl-names = "default";
    232 		pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
    233 		reg = <0xff110000 0x1000>;
    234 		#address-cells = <1>;
    235 		#size-cells = <0>;
    236 		status = "disabled";
    237 	};
    238 
    239 	spi1: spi@ff120000 {
    240 		compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
    241 		clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
    242 		clock-names = "spiclk", "apb_pclk";
    243 		dmas = <&dmac_peri 13>, <&dmac_peri 14>;
    244 		dma-names = "tx", "rx";
    245 		interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
    246 		pinctrl-names = "default";
    247 		pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
    248 		reg = <0xff120000 0x1000>;
    249 		#address-cells = <1>;
    250 		#size-cells = <0>;
    251 		status = "disabled";
    252 	};
    253 
    254 	spi2: spi@ff130000 {
    255 		compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
    256 		clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
    257 		clock-names = "spiclk", "apb_pclk";
    258 		dmas = <&dmac_peri 15>, <&dmac_peri 16>;
    259 		dma-names = "tx", "rx";
    260 		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
    261 		pinctrl-names = "default";
    262 		pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
    263 		reg = <0xff130000 0x1000>;
    264 		#address-cells = <1>;
    265 		#size-cells = <0>;
    266 		status = "disabled";
    267 	};
    268 
    269 	i2c1: i2c@ff140000 {
    270 		compatible = "rockchip,rk3288-i2c";
    271 		reg = <0xff140000 0x1000>;
    272 		interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
    273 		#address-cells = <1>;
    274 		#size-cells = <0>;
    275 		clock-names = "i2c";
    276 		clocks = <&cru PCLK_I2C1>;
    277 		pinctrl-names = "default";
    278 		pinctrl-0 = <&i2c1_xfer>;
    279 		status = "disabled";
    280 	};
    281 
    282 	i2c3: i2c@ff150000 {
    283 		compatible = "rockchip,rk3288-i2c";
    284 		reg = <0xff150000 0x1000>;
    285 		interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
    286 		#address-cells = <1>;
    287 		#size-cells = <0>;
    288 		clock-names = "i2c";
    289 		clocks = <&cru PCLK_I2C3>;
    290 		pinctrl-names = "default";
    291 		pinctrl-0 = <&i2c3_xfer>;
    292 		status = "disabled";
    293 	};
    294 
    295 	i2c4: i2c@ff160000 {
    296 		compatible = "rockchip,rk3288-i2c";
    297 		reg = <0xff160000 0x1000>;
    298 		interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
    299 		#address-cells = <1>;
    300 		#size-cells = <0>;
    301 		clock-names = "i2c";
    302 		clocks = <&cru PCLK_I2C4>;
    303 		pinctrl-names = "default";
    304 		pinctrl-0 = <&i2c4_xfer>;
    305 		status = "disabled";
    306 	};
    307 
    308 	i2c5: i2c@ff170000 {
    309 		compatible = "rockchip,rk3288-i2c";
    310 		reg = <0xff170000 0x1000>;
    311 		interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
    312 		#address-cells = <1>;
    313 		#size-cells = <0>;
    314 		clock-names = "i2c";
    315 		clocks = <&cru PCLK_I2C5>;
    316 		pinctrl-names = "default";
    317 		pinctrl-0 = <&i2c5_xfer>;
    318 		status = "disabled";
    319 	};
    320 	uart0: serial@ff180000 {
    321 		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
    322 		reg = <0xff180000 0x100>;
    323 		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
    324 		reg-shift = <2>;
    325 		reg-io-width = <4>;
    326 		clock-frequency = <24000000>;
    327 		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
    328 		clock-names = "baudclk", "apb_pclk";
    329 		pinctrl-names = "default";
    330 		pinctrl-0 = <&uart0_xfer>;
    331 		status = "disabled";
    332 	};
    333 
    334 	uart1: serial@ff190000 {
    335 		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
    336 		reg = <0xff190000 0x100>;
    337 		interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
    338 		reg-shift = <2>;
    339 		reg-io-width = <4>;
    340 		clock-frequency = <24000000>;
    341 		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
    342 		clock-names = "baudclk", "apb_pclk";
    343 		pinctrl-names = "default";
    344 		pinctrl-0 = <&uart1_xfer>;
    345 		status = "disabled";
    346 	};
    347 
    348 	uart2: serial@ff690000 {
    349 		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
    350 		reg = <0xff690000 0x100>;
    351 		interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
    352 		reg-shift = <2>;
    353 		reg-io-width = <4>;
    354 		clock-frequency = <24000000>;
    355 		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
    356 		clock-names = "baudclk", "apb_pclk";
    357 		pinctrl-names = "default";
    358 		pinctrl-0 = <&uart2_xfer>;
    359 		status = "disabled";
    360 	};
    361 	uart3: serial@ff1b0000 {
    362 		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
    363 		reg = <0xff1b0000 0x100>;
    364 		interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
    365 		reg-shift = <2>;
    366 		reg-io-width = <4>;
    367 		clock-frequency = <24000000>;
    368 		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
    369 		clock-names = "baudclk", "apb_pclk";
    370 		pinctrl-names = "default";
    371 		pinctrl-0 = <&uart3_xfer>;
    372 		status = "disabled";
    373 	};
    374 
    375 	uart4: serial@ff1c0000 {
    376 		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
    377 		reg = <0xff1c0000 0x100>;
    378 		interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
    379 		reg-shift = <2>;
    380 		reg-io-width = <4>;
    381 		clock-frequency = <24000000>;
    382 		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
    383 		clock-names = "baudclk", "apb_pclk";
    384 		pinctrl-names = "default";
    385 		pinctrl-0 = <&uart4_xfer>;
    386 		status = "disabled";
    387 	};
    388 	thermal: thermal-zones {
    389 		#include "rk3288-thermal.dtsi"
    390 	};
    391 
    392 	tsadc: tsadc@ff280000 {
    393 		compatible = "rockchip,rk3288-tsadc";
    394 		reg = <0xff280000 0x100>;
    395 		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
    396 		clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
    397 		clock-names = "tsadc", "apb_pclk";
    398 		resets = <&cru SRST_TSADC>;
    399 		reset-names = "tsadc-apb";
    400 		pinctrl-names = "otp_out";
    401 		pinctrl-0 = <&otp_out>;
    402 		#thermal-sensor-cells = <1>;
    403 		hw-shut-temp = <125000>;
    404 		status = "disabled";
    405 	};
    406 
    407 	gmac: ethernet@ff290000 {
    408 		compatible = "rockchip,rk3288-gmac";
    409 		reg = <0xff290000 0x10000>;
    410 		interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
    411 		interrupt-names = "macirq";
    412 		rockchip,grf = <&grf>;
    413 		clocks = <&cru SCLK_MAC>,
    414 			<&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
    415 			<&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
    416 			<&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
    417 		clock-names = "stmmaceth",
    418 			"mac_clk_rx", "mac_clk_tx",
    419 			"clk_mac_ref", "clk_mac_refout",
    420 			"aclk_mac", "pclk_mac";
    421 	};
    422 
    423 	usb_host0_ehci: usb@ff500000 {
    424 		compatible = "generic-ehci";
    425 		reg = <0xff500000 0x100>;
    426 		interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
    427 		clocks = <&cru HCLK_USBHOST0>;
    428 		clock-names = "usbhost";
    429 		phys = <&usbphy1>;
    430 		phy-names = "usb";
    431 		status = "disabled";
    432 	};
    433 
    434 	/* NOTE: ohci@ff520000 doesn't actually work on hardware */
    435 
    436 	usb_host1: usb@ff540000 {
    437 		compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
    438 				"snps,dwc2";
    439 		reg = <0xff540000 0x40000>;
    440 		interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
    441 		clocks = <&cru HCLK_USBHOST1>;
    442 		clock-names = "otg";
    443 		phys = <&usbphy2>;
    444 		phy-names = "usb2-phy";
    445 		status = "disabled";
    446 	};
    447 
    448 	usb_otg: usb@ff580000 {
    449 		compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
    450 				"snps,dwc2";
    451 		reg = <0xff580000 0x40000>;
    452 		interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
    453 		clocks = <&cru HCLK_OTG0>;
    454 		clock-names = "otg";
    455 		dr_mode = "otg";
    456 		phys = <&usbphy0>;
    457 		phy-names = "usb2-phy";
    458 		status = "disabled";
    459 	};
    460 
    461 	usb_hsic: usb@ff5c0000 {
    462 		compatible = "generic-ehci";
    463 		reg = <0xff5c0000 0x100>;
    464 		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
    465 		clocks = <&cru HCLK_HSIC>;
    466 		clock-names = "usbhost";
    467 		status = "disabled";
    468 	};
    469 
    470 	dmc: dmc@ff610000 {
    471 		u-boot,dm-pre-reloc;
    472 		compatible = "rockchip,rk3288-dmc", "syscon";
    473 		rockchip,cru = <&cru>;
    474 		rockchip,grf = <&grf>;
    475 		rockchip,pmu = <&pmu>;
    476 		rockchip,sgrf = <&sgrf>;
    477 		rockchip,noc = <&noc>;
    478 		reg = <0xff610000 0x3fc
    479 		       0xff620000 0x294
    480 		       0xff630000 0x3fc
    481 		       0xff640000 0x294>;
    482 		rockchip,sram = <&ddr_sram>;
    483 		clocks = <&cru PCLK_DDRUPCTL0>, <&cru PCLK_PUBL0>,
    484 			 <&cru PCLK_DDRUPCTL1>, <&cru PCLK_PUBL1>,
    485 			 <&cru ARMCLK>;
    486 		clock-names = "pclk_ddrupctl0", "pclk_publ0",
    487 			      "pclk_ddrupctl1", "pclk_publ1",
    488 			      "arm_clk";
    489 	};
    490 
    491 	i2c0: i2c@ff650000 {
    492 		compatible = "rockchip,rk3288-i2c";
    493 		reg = <0xff650000 0x1000>;
    494 		interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
    495 		#address-cells = <1>;
    496 		#size-cells = <0>;
    497 		clock-names = "i2c";
    498 		clocks = <&cru PCLK_I2C0>;
    499 		pinctrl-names = "default";
    500 		pinctrl-0 = <&i2c0_xfer>;
    501 		status = "disabled";
    502 	};
    503 
    504 	i2c2: i2c@ff660000 {
    505 		compatible = "rockchip,rk3288-i2c";
    506 		reg = <0xff660000 0x1000>;
    507 		interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
    508 		#address-cells = <1>;
    509 		#size-cells = <0>;
    510 		clock-names = "i2c";
    511 		clocks = <&cru PCLK_I2C2>;
    512 		pinctrl-names = "default";
    513 		pinctrl-0 = <&i2c2_xfer>;
    514 		status = "disabled";
    515 	};
    516 
    517 	pwm0: pwm@ff680000 {
    518 		compatible = "rockchip,rk3288-pwm";
    519 		reg = <0xff680000 0x10>;
    520 		#pwm-cells = <3>;
    521 		pinctrl-names = "default";
    522 		pinctrl-0 = <&pwm0_pin>;
    523 		clocks = <&cru PCLK_PWM>;
    524 		clock-names = "pwm";
    525 		rockchip,grf = <&grf>;
    526 		status = "disabled";
    527 	};
    528 
    529 	pwm1: pwm@ff680010 {
    530 		compatible = "rockchip,rk3288-pwm";
    531 		reg = <0xff680010 0x10>;
    532 		#pwm-cells = <3>;
    533 		pinctrl-names = "default";
    534 		pinctrl-0 = <&pwm1_pin>;
    535 		clocks = <&cru PCLK_PWM>;
    536 		clock-names = "pwm";
    537 		rockchip,grf = <&grf>;
    538 		status = "disabled";
    539 	};
    540 
    541 	pwm2: pwm@ff680020 {
    542 		compatible = "rockchip,rk3288-pwm";
    543 		reg = <0xff680020 0x10>;
    544 		#pwm-cells = <3>;
    545 		pinctrl-names = "default";
    546 		pinctrl-0 = <&pwm2_pin>;
    547 		clocks = <&cru PCLK_PWM>;
    548 		clock-names = "pwm";
    549 		rockchip,grf = <&grf>;
    550 		status = "disabled";
    551 	};
    552 
    553 	pwm3: pwm@ff680030 {
    554 		compatible = "rockchip,rk3288-pwm";
    555 		reg = <0xff680030 0x10>;
    556 		#pwm-cells = <2>;
    557 		pinctrl-names = "default";
    558 		pinctrl-0 = <&pwm3_pin>;
    559 		clocks = <&cru PCLK_PWM>;
    560 		clock-names = "pwm";
    561 		rockchip,grf = <&grf>;
    562 		status = "disabled";
    563 	};
    564 
    565 	bus_intmem@ff700000 {
    566 		compatible = "mmio-sram";
    567 		reg = <0xff700000 0x18000>;
    568 		#address-cells = <1>;
    569 		#size-cells = <1>;
    570 		ranges = <0 0xff700000 0x18000>;
    571 		smp-sram@0 {
    572 			compatible = "rockchip,rk3066-smp-sram";
    573 			reg = <0x00 0x10>;
    574 		};
    575 		ddr_sram: ddr-sram@1000 {
    576 			compatible = "rockchip,rk3288-ddr-sram";
    577 			reg = <0x1000 0x4000>;
    578 		};
    579 	};
    580 
    581 	sram@ff720000 {
    582 		compatible = "rockchip,rk3288-pmu-sram", "mmio-sram";
    583 		reg = <0xff720000 0x1000>;
    584 	};
    585 
    586 	pmu: power-management@ff730000 {
    587 		u-boot,dm-pre-reloc;
    588 		compatible = "rockchip,rk3288-pmu", "syscon";
    589 		reg = <0xff730000 0x100>;
    590 	};
    591 
    592 	sgrf: syscon@ff740000 {
    593 		u-boot,dm-pre-reloc;
    594 		compatible = "rockchip,rk3288-sgrf", "syscon";
    595 		reg = <0xff740000 0x1000>;
    596 	};
    597 
    598 	cru: clock-controller@ff760000 {
    599 		compatible = "rockchip,rk3288-cru";
    600 		reg = <0xff760000 0x1000>;
    601 		rockchip,grf = <&grf>;
    602 		u-boot,dm-pre-reloc;
    603 		#clock-cells = <1>;
    604 		#reset-cells = <1>;
    605 		assigned-clocks = <&cru PLL_GPLL>, <&cru PLL_CPLL>,
    606 				  <&cru PLL_NPLL>, <&cru ACLK_CPU>,
    607 				  <&cru HCLK_CPU>, <&cru PCLK_CPU>,
    608 				  <&cru ACLK_PERI>, <&cru HCLK_PERI>,
    609 				  <&cru PCLK_PERI>;
    610 		assigned-clock-rates = <594000000>, <400000000>,
    611 				       <500000000>, <300000000>,
    612 				       <150000000>, <75000000>,
    613 				       <300000000>, <150000000>,
    614 				       <75000000>;
    615 	};
    616 
    617 	grf: syscon@ff770000 {
    618 		u-boot,dm-pre-reloc;
    619 		compatible = "rockchip,rk3288-grf", "syscon";
    620 		reg = <0xff770000 0x1000>;
    621 	};
    622 
    623 	wdt: watchdog@ff800000 {
    624 		compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
    625 		reg = <0xff800000 0x100>;
    626 		clocks = <&cru PCLK_WDT>;
    627 		interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
    628 		status = "disabled";
    629 	};
    630 
    631 	spdif: sound@ff88b0000 {
    632 		compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
    633 		reg = <0xff8b0000 0x10000>;
    634 		#sound-dai-cells = <0>;
    635 		clock-names = "hclk", "mclk";
    636 		clocks = <&cru HCLK_SPDIF8CH>, <&cru SCLK_SPDIF8CH>;
    637 		dmas = <&dmac_bus_s 3>;
    638 		dma-names = "tx";
    639 		interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
    640 		pinctrl-names = "default";
    641 		pinctrl-0 = <&spdif_tx>;
    642 		rockchip,grf = <&grf>;
    643 		status = "disabled";
    644 	};
    645 
    646 	i2s: i2s@ff890000 {
    647 		compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
    648 		reg = <0xff890000 0x10000>;
    649 		interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
    650 		#address-cells = <1>;
    651 		#size-cells = <0>;
    652 		dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>;
    653 		dma-names = "tx", "rx";
    654 		clock-names = "i2s_hclk", "i2s_clk";
    655 		clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
    656 		pinctrl-names = "default";
    657 		pinctrl-0 = <&i2s0_bus>;
    658 		status = "disabled";
    659 	};
    660 
    661 	vopb: vop@ff930000 {
    662 		u-boot,dm-pre-reloc;
    663 		compatible = "rockchip,rk3288-vop";
    664 		reg = <0xff930000 0x19c>;
    665 		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
    666 		clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
    667 		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
    668 		resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>;
    669 		reset-names = "axi", "ahb", "dclk";
    670 		iommus = <&vopb_mmu>;
    671 		power-domains = <&power RK3288_PD_VIO>;
    672 		status = "disabled";
    673 		vopb_out: port {
    674 			#address-cells = <1>;
    675 			#size-cells = <0>;
    676 			vopb_out_edp: endpoint@0 {
    677 				reg = <0>;
    678 				remote-endpoint = <&edp_in_vopb>;
    679 			};
    680 			vopb_out_hdmi: endpoint@1 {
    681 				reg = <1>;
    682 				remote-endpoint = <&hdmi_in_vopb>;
    683 			};
    684 			vopb_out_lvds: endpoint@2 {
    685 				reg = <2>;
    686 				remote-endpoint = <&lvds_in_vopb>;
    687 			};
    688 			vopb_out_mipi: endpoint@3 {
    689 				reg = <3>;
    690 				remote-endpoint = <&mipi_in_vopb>;
    691 			};
    692 
    693 		};
    694 	};
    695 
    696 	vopb_mmu: iommu@ff930300 {
    697 		compatible = "rockchip,iommu";
    698 		reg = <0xff930300 0x100>;
    699 		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
    700 		interrupt-names = "vopb_mmu";
    701 		power-domains = <&power RK3288_PD_VIO>;
    702 		#iommu-cells = <0>;
    703 		status = "disabled";
    704 	};
    705 
    706 	vopl: vop@ff940000 {
    707 		compatible = "rockchip,rk3288-vop";
    708 		reg = <0xff940000 0x19c>;
    709 		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
    710 		clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
    711 		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
    712 		resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
    713 		reset-names = "axi", "ahb", "dclk";
    714 		iommus = <&vopl_mmu>;
    715 		power-domains = <&power RK3288_PD_VIO>;
    716 		status = "disabled";
    717 		u-boot,dm-pre-reloc;
    718 		vopl_out: port {
    719 			#address-cells = <1>;
    720 			#size-cells = <0>;
    721 			vopl_out_edp: endpoint@0 {
    722 				reg = <0>;
    723 				remote-endpoint = <&edp_in_vopl>;
    724 			};
    725 			vopl_out_hdmi: endpoint@1 {
    726 				reg = <1>;
    727 				remote-endpoint = <&hdmi_in_vopl>;
    728 			};
    729 			vopl_out_lvds: endpoint@2 {
    730 				reg = <2>;
    731 				remote-endpoint = <&lvds_in_vopl>;
    732 			};
    733 			vopl_out_mipi: endpoint@3 {
    734 				reg = <3>;
    735 				remote-endpoint = <&mipi_in_vopl>;
    736 			};
    737 
    738 		};
    739 	};
    740 
    741 	vopl_mmu: iommu@ff940300 {
    742 		compatible = "rockchip,iommu";
    743 		reg = <0xff940300 0x100>;
    744 		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
    745 		interrupt-names = "vopl_mmu";
    746 		power-domains = <&power RK3288_PD_VIO>;
    747 		#iommu-cells = <0>;
    748 		status = "disabled";
    749 	};
    750 
    751 	edp: edp@ff970000 {
    752 		compatible = "rockchip,rk3288-edp";
    753 		reg = <0xff970000 0x4000>;
    754 		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
    755 		clocks = <&cru SCLK_EDP>, <&cru SCLK_EDP_24M>, <&cru PCLK_EDP_CTRL>;
    756 		rockchip,grf = <&grf>;
    757 		clock-names = "clk_edp", "clk_edp_24m", "pclk_edp";
    758 		resets = <&cru 111>;
    759 		reset-names = "edp";
    760 		power-domains = <&power RK3288_PD_VIO>;
    761 		status = "disabled";
    762 		ports {
    763 			edp_in: port {
    764 				#address-cells = <1>;
    765 				#size-cells = <0>;
    766 				edp_in_vopb: endpoint@0 {
    767 					reg = <0>;
    768 					remote-endpoint = <&vopb_out_edp>;
    769 				};
    770 				edp_in_vopl: endpoint@1 {
    771 					reg = <1>;
    772 					remote-endpoint = <&vopl_out_edp>;
    773 				};
    774 			};
    775 		};
    776 	};
    777 
    778 	hdmi: hdmi@ff980000 {
    779 		compatible = "rockchip,rk3288-dw-hdmi";
    780 		reg = <0xff980000 0x20000>;
    781 		reg-io-width = <4>;
    782 		ddc-i2c-bus = <&i2c5>;
    783 		rockchip,grf = <&grf>;
    784 		interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
    785 		clocks = <&cru  PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
    786 		clock-names = "iahb", "isfr";
    787 		status = "disabled";
    788 		ports {
    789 			hdmi_in: port {
    790 				#address-cells = <1>;
    791 				#size-cells = <0>;
    792 				hdmi_in_vopb: endpoint@0 {
    793 					reg = <0>;
    794 					remote-endpoint = <&vopb_out_hdmi>;
    795 				};
    796 				hdmi_in_vopl: endpoint@1 {
    797 					reg = <1>;
    798 					remote-endpoint = <&vopl_out_hdmi>;
    799 				};
    800 			};
    801 		};
    802 	};
    803 
    804 	lvds: lvds@ff96c000 {
    805 		compatible = "rockchip,rk3288-lvds";
    806 		reg = <0xff96c000 0x4000>;
    807 		clocks = <&cru PCLK_LVDS_PHY>;
    808 		clock-names = "pclk_lvds";
    809 		pinctrl-names = "default";
    810 		pinctrl-0 = <&lcdc0_ctl>;
    811 		rockchip,grf = <&grf>;
    812 		status = "disabled";
    813 		ports {
    814 			#address-cells = <1>;
    815 			#size-cells = <0>;
    816 			lvds_in: port@0 {
    817 				reg = <0>;
    818 				#address-cells = <1>;
    819 				#size-cells = <0>;
    820 				lvds_in_vopb: endpoint@0 {
    821 					reg = <0>;
    822 					remote-endpoint = <&vopb_out_lvds>;
    823 				};
    824 				lvds_in_vopl: endpoint@1 {
    825 					reg = <1>;
    826 					remote-endpoint = <&vopl_out_lvds>;
    827 				};
    828 			};
    829 		};
    830 	};
    831 
    832 	mipi_dsi0: mipi@ff960000 {
    833 		compatible = "rockchip,rk3288_mipi_dsi";
    834 		reg = <0xff960000 0x4000>;
    835 		clocks = <&cru PCLK_MIPI_DSI0>;
    836 		clock-names = "pclk_mipi";
    837 		/*pinctrl-names = "default";
    838 		pinctrl-0 = <&lcdc0_ctl>;*/
    839 		rockchip,grf = <&grf>;
    840 		#address-cells = <1>;
    841 		#size-cells = <0>;
    842 		status = "disabled";
    843 		ports {
    844 			#address-cells = <1>;
    845 			#size-cells = <0>;
    846 			reg = <1>;
    847 			mipi_in: port {
    848 				#address-cells = <1>;
    849 				#size-cells = <0>;
    850 				mipi_in_vopb: endpoint@0 {
    851 					reg = <0>;
    852 					remote-endpoint = <&vopb_out_mipi>;
    853 				};
    854 				mipi_in_vopl: endpoint@1 {
    855 					reg = <1>;
    856 					remote-endpoint = <&vopl_out_mipi>;
    857 				};
    858 			};
    859 		};
    860 	};
    861 
    862 	hdmi_audio: hdmi_audio {
    863 		compatible = "rockchip,rk3288-hdmi-audio";
    864 		i2s-controller = <&i2s>;
    865 		status = "disable";
    866 	};
    867 
    868 	vpu: video-codec@ff9a0000 {
    869 		compatible = "rockchip,rk3288-vpu";
    870 		reg = <0xff9a0000 0x800>;
    871 		interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
    872 				<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
    873 		interrupt-names = "vepu", "vdpu";
    874 		clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
    875 		clock-names = "aclk_vcodec", "hclk_vcodec";
    876 		power-domains = <&power RK3288_PD_VIDEO>;
    877 		iommus = <&vpu_mmu>;
    878 	};
    879 
    880 	vpu_mmu: iommu@ff9a0800 {
    881 		compatible = "rockchip,iommu";
    882 		reg = <0xff9a0800 0x100>;
    883 		interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
    884 		interrupt-names = "vpu_mmu";
    885 		power-domains = <&power RK3288_PD_VIDEO>;
    886 		#iommu-cells = <0>;
    887 	};
    888 
    889 	gpu: gpu@ffa30000 {
    890 		compatible = "arm,malit764",
    891 			     "arm,malit76x",
    892 			     "arm,malit7xx",
    893 			     "arm,mali-midgard";
    894 		reg = <0xffa30000 0x10000>;
    895 		interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
    896 			     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
    897 			     <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
    898 		interrupt-names = "JOB", "MMU", "GPU";
    899 		clocks = <&cru ACLK_GPU>;
    900 		clock-names = "aclk_gpu";
    901 		operating-points = <
    902 			/* KHz uV */
    903 			100000 950000
    904 			200000 950000
    905 			300000 1000000
    906 			400000 1100000
    907 			/* 500000 1200000 - See crosbug.com/p/33857 */
    908 			600000 1250000
    909 		>;
    910 		power-domains = <&power RK3288_PD_GPU>;
    911 		status = "disabled";
    912 	};
    913 
    914 	noc: syscon@ffac0000 {
    915 		u-boot,dm-pre-reloc;
    916 		compatible = "rockchip,rk3288-noc", "syscon";
    917 		reg = <0xffac0000 0x2000>;
    918 	};
    919 
    920 	efuse: efuse@ffb40000 {
    921 		compatible = "rockchip,rk3288-efuse";
    922 		reg = <0xffb40000 0x10000>;
    923 		status = "disabled";
    924 	};
    925 
    926 	gic: interrupt-controller@ffc01000 {
    927 		compatible = "arm,gic-400";
    928 		interrupt-controller;
    929 		#interrupt-cells = <3>;
    930 		#address-cells = <0>;
    931 
    932 		reg = <0xffc01000 0x1000>,
    933 		      <0xffc02000 0x1000>,
    934 		      <0xffc04000 0x2000>,
    935 		      <0xffc06000 0x2000>;
    936 		interrupts = <GIC_PPI 9 0xf04>;
    937 	};
    938 
    939 	cpuidle: cpuidle {
    940 		compatible = "rockchip,rk3288-cpuidle";
    941 	};
    942 
    943 	usbphy: phy {
    944 		compatible = "rockchip,rk3288-usb-phy";
    945 		rockchip,grf = <&grf>;
    946 		#address-cells = <1>;
    947 		#size-cells = <0>;
    948 		status = "disabled";
    949 
    950 		usbphy0: usb-phy0 {
    951 			#phy-cells = <0>;
    952 			reg = <0x320>;
    953 			clocks = <&cru SCLK_OTGPHY0>;
    954 			clock-names = "phyclk";
    955 		};
    956 
    957 		usbphy1: usb-phy1 {
    958 			#phy-cells = <0>;
    959 			reg = <0x334>;
    960 			clocks = <&cru SCLK_OTGPHY1>;
    961 			clock-names = "phyclk";
    962 		};
    963 
    964 		usbphy2: usb-phy2 {
    965 			#phy-cells = <0>;
    966 			reg = <0x348>;
    967 			clocks = <&cru SCLK_OTGPHY2>;
    968 			clock-names = "phyclk";
    969 		};
    970 	};
    971 
    972 	pinctrl: pinctrl {
    973 		compatible = "rockchip,rk3288-pinctrl";
    974 		rockchip,grf = <&grf>;
    975 		rockchip,pmu = <&pmu>;
    976 		#address-cells = <1>;
    977 		#size-cells = <1>;
    978 		ranges;
    979 
    980 		gpio0: gpio0@ff750000 {
    981 			compatible = "rockchip,gpio-bank";
    982 			reg =	<0xff750000 0x100>;
    983 			interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
    984 			clocks = <&cru PCLK_GPIO0>;
    985 
    986 			gpio-controller;
    987 			#gpio-cells = <2>;
    988 
    989 			interrupt-controller;
    990 			#interrupt-cells = <2>;
    991 		};
    992 
    993 		gpio1: gpio1@ff780000 {
    994 			compatible = "rockchip,gpio-bank";
    995 			reg = <0xff780000 0x100>;
    996 			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
    997 			clocks = <&cru PCLK_GPIO1>;
    998 
    999 			gpio-controller;
   1000 			#gpio-cells = <2>;
   1001 
   1002 			interrupt-controller;
   1003 			#interrupt-cells = <2>;
   1004 		};
   1005 
   1006 		gpio2: gpio2@ff790000 {
   1007 			compatible = "rockchip,gpio-bank";
   1008 			reg = <0xff790000 0x100>;
   1009 			interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
   1010 			clocks = <&cru PCLK_GPIO2>;
   1011 
   1012 			gpio-controller;
   1013 			#gpio-cells = <2>;
   1014 
   1015 			interrupt-controller;
   1016 			#interrupt-cells = <2>;
   1017 		};
   1018 
   1019 		gpio3: gpio3@ff7a0000 {
   1020 			compatible = "rockchip,gpio-bank";
   1021 			reg = <0xff7a0000 0x100>;
   1022 			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
   1023 			clocks = <&cru PCLK_GPIO3>;
   1024 
   1025 			gpio-controller;
   1026 			#gpio-cells = <2>;
   1027 
   1028 			interrupt-controller;
   1029 			#interrupt-cells = <2>;
   1030 		};
   1031 
   1032 		gpio4: gpio4@ff7b0000 {
   1033 			compatible = "rockchip,gpio-bank";
   1034 			reg = <0xff7b0000 0x100>;
   1035 			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
   1036 			clocks = <&cru PCLK_GPIO4>;
   1037 
   1038 			gpio-controller;
   1039 			#gpio-cells = <2>;
   1040 
   1041 			interrupt-controller;
   1042 			#interrupt-cells = <2>;
   1043 		};
   1044 
   1045 		gpio5: gpio5@ff7c0000 {
   1046 			compatible = "rockchip,gpio-bank";
   1047 			reg = <0xff7c0000 0x100>;
   1048 			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
   1049 			clocks = <&cru PCLK_GPIO5>;
   1050 
   1051 			gpio-controller;
   1052 			#gpio-cells = <2>;
   1053 
   1054 			interrupt-controller;
   1055 			#interrupt-cells = <2>;
   1056 		};
   1057 
   1058 		gpio6: gpio6@ff7d0000 {
   1059 			compatible = "rockchip,gpio-bank";
   1060 			reg = <0xff7d0000 0x100>;
   1061 			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
   1062 			clocks = <&cru PCLK_GPIO6>;
   1063 
   1064 			gpio-controller;
   1065 			#gpio-cells = <2>;
   1066 
   1067 			interrupt-controller;
   1068 			#interrupt-cells = <2>;
   1069 		};
   1070 
   1071 		gpio7: gpio7@ff7e0000 {
   1072 			compatible = "rockchip,gpio-bank";
   1073 			reg = <0xff7e0000 0x100>;
   1074 			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
   1075 			clocks = <&cru PCLK_GPIO7>;
   1076 
   1077 			gpio-controller;
   1078 			#gpio-cells = <2>;
   1079 
   1080 			interrupt-controller;
   1081 			#interrupt-cells = <2>;
   1082 		};
   1083 
   1084 		gpio8: gpio8@ff7f0000 {
   1085 			compatible = "rockchip,gpio-bank";
   1086 			reg = <0xff7f0000 0x100>;
   1087 			interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
   1088 			clocks = <&cru PCLK_GPIO8>;
   1089 
   1090 			gpio-controller;
   1091 			#gpio-cells = <2>;
   1092 
   1093 			interrupt-controller;
   1094 			#interrupt-cells = <2>;
   1095 		};
   1096 
   1097 		pcfg_pull_up: pcfg-pull-up {
   1098 			bias-pull-up;
   1099 		};
   1100 
   1101 		pcfg_pull_down: pcfg-pull-down {
   1102 			bias-pull-down;
   1103 		};
   1104 
   1105 		pcfg_pull_none: pcfg-pull-none {
   1106 			bias-disable;
   1107 		};
   1108 
   1109 		pcfg_pull_none_12ma: pcfg-pull-none-12ma {
   1110 			bias-disable;
   1111 			drive-strength = <12>;
   1112 		};
   1113 
   1114 		sleep {
   1115 			global_pwroff: global-pwroff {
   1116 				rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>;
   1117 			};
   1118 
   1119 			ddrio_pwroff: ddrio-pwroff {
   1120 				rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>;
   1121 			};
   1122 
   1123 			ddr0_retention: ddr0-retention {
   1124 				rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_up>;
   1125 			};
   1126 
   1127 			ddr1_retention: ddr1-retention {
   1128 				rockchip,pins = <0 3 RK_FUNC_1 &pcfg_pull_up>;
   1129 			};
   1130 		};
   1131 
   1132 		i2c0 {
   1133 			i2c0_xfer: i2c0-xfer {
   1134 				rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>,
   1135 						<0 16 RK_FUNC_1 &pcfg_pull_none>;
   1136 			};
   1137 		};
   1138 
   1139 		i2c1 {
   1140 			i2c1_xfer: i2c1-xfer {
   1141 				rockchip,pins = <8 4 RK_FUNC_1 &pcfg_pull_none>,
   1142 						<8 5 RK_FUNC_1 &pcfg_pull_none>;
   1143 			};
   1144 		};
   1145 
   1146 		i2c2 {
   1147 			i2c2_xfer: i2c2-xfer {
   1148 				rockchip,pins = <6 9 RK_FUNC_1 &pcfg_pull_none>,
   1149 						<6 10 RK_FUNC_1 &pcfg_pull_none>;
   1150 			};
   1151 		};
   1152 
   1153 		i2c3 {
   1154 			i2c3_xfer: i2c3-xfer {
   1155 				rockchip,pins = <2 16 RK_FUNC_1 &pcfg_pull_none>,
   1156 						<2 17 RK_FUNC_1 &pcfg_pull_none>;
   1157 			};
   1158 		};
   1159 
   1160 		i2c4 {
   1161 			i2c4_xfer: i2c4-xfer {
   1162 				rockchip,pins = <7 17 RK_FUNC_1 &pcfg_pull_none>,
   1163 						<7 18 RK_FUNC_1 &pcfg_pull_none>;
   1164 			};
   1165 		};
   1166 
   1167 		i2c5 {
   1168 			i2c5_xfer: i2c5-xfer {
   1169 				rockchip,pins = <7 19 RK_FUNC_1 &pcfg_pull_none>,
   1170 						<7 20 RK_FUNC_1 &pcfg_pull_none>;
   1171 			};
   1172 		};
   1173 
   1174 		i2s0 {
   1175 			i2s0_bus: i2s0-bus {
   1176 				rockchip,pins = <6 0 RK_FUNC_1 &pcfg_pull_none>,
   1177 						<6 1 RK_FUNC_1 &pcfg_pull_none>,
   1178 						<6 2 RK_FUNC_1 &pcfg_pull_none>,
   1179 						<6 3 RK_FUNC_1 &pcfg_pull_none>,
   1180 						<6 4 RK_FUNC_1 &pcfg_pull_none>,
   1181 						<6 8 RK_FUNC_1 &pcfg_pull_none>;
   1182 			};
   1183 		};
   1184 
   1185 		lcdc0 {
   1186 			lcdc0_ctl: lcdc0-ctl {
   1187 				rockchip,pins = <1 24 RK_FUNC_1 &pcfg_pull_none>,
   1188 						<1 25 RK_FUNC_1 &pcfg_pull_none>,
   1189 						<1 26 RK_FUNC_1 &pcfg_pull_none>,
   1190 						<1 27 RK_FUNC_1 &pcfg_pull_none>;
   1191 			};
   1192 		};
   1193 
   1194 		sdmmc {
   1195 			sdmmc_clk: sdmmc-clk {
   1196 				rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>;
   1197 			};
   1198 
   1199 			sdmmc_cmd: sdmmc-cmd {
   1200 				rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>;
   1201 			};
   1202 
   1203 			sdmmc_cd: sdmcc-cd {
   1204 				rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>;
   1205 			};
   1206 
   1207 			sdmmc_bus1: sdmmc-bus1 {
   1208 				rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>;
   1209 			};
   1210 
   1211 			sdmmc_bus4: sdmmc-bus4 {
   1212 				rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>,
   1213 						<6 17 RK_FUNC_1 &pcfg_pull_up>,
   1214 						<6 18 RK_FUNC_1 &pcfg_pull_up>,
   1215 						<6 19 RK_FUNC_1 &pcfg_pull_up>;
   1216 			};
   1217 		};
   1218 
   1219 		sdio0 {
   1220 			sdio0_bus1: sdio0-bus1 {
   1221 				rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>;
   1222 			};
   1223 
   1224 			sdio0_bus4: sdio0-bus4 {
   1225 				rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>,
   1226 						<4 21 RK_FUNC_1 &pcfg_pull_up>,
   1227 						<4 22 RK_FUNC_1 &pcfg_pull_up>,
   1228 						<4 23 RK_FUNC_1 &pcfg_pull_up>;
   1229 			};
   1230 
   1231 			sdio0_cmd: sdio0-cmd {
   1232 				rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_up>;
   1233 			};
   1234 
   1235 			sdio0_clk: sdio0-clk {
   1236 				rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none>;
   1237 			};
   1238 
   1239 			sdio0_cd: sdio0-cd {
   1240 				rockchip,pins = <4 26 RK_FUNC_1 &pcfg_pull_up>;
   1241 			};
   1242 
   1243 			sdio0_wp: sdio0-wp {
   1244 				rockchip,pins = <4 27 RK_FUNC_1 &pcfg_pull_up>;
   1245 			};
   1246 
   1247 			sdio0_pwr: sdio0-pwr {
   1248 				rockchip,pins = <4 28 RK_FUNC_1 &pcfg_pull_up>;
   1249 			};
   1250 
   1251 			sdio0_bkpwr: sdio0-bkpwr {
   1252 				rockchip,pins = <4 29 RK_FUNC_1 &pcfg_pull_up>;
   1253 			};
   1254 
   1255 			sdio0_int: sdio0-int {
   1256 				rockchip,pins = <4 30 RK_FUNC_1 &pcfg_pull_up>;
   1257 			};
   1258 		};
   1259 
   1260 		sdio1 {
   1261 			sdio1_bus1: sdio1-bus1 {
   1262 				rockchip,pins = <3 24 RK_FUNC_4 &pcfg_pull_up>;
   1263 			};
   1264 
   1265 			sdio1_bus4: sdio1-bus4 {
   1266 				rockchip,pins = <3 24 RK_FUNC_4 &pcfg_pull_up>,
   1267 						<3 25 RK_FUNC_4 &pcfg_pull_up>,
   1268 						<3 26 RK_FUNC_4 &pcfg_pull_up>,
   1269 						<3 27 RK_FUNC_4 &pcfg_pull_up>;
   1270 			};
   1271 
   1272 			sdio1_cd: sdio1-cd {
   1273 				rockchip,pins = <3 28 RK_FUNC_4 &pcfg_pull_up>;
   1274 			};
   1275 
   1276 			sdio1_wp: sdio1-wp {
   1277 				rockchip,pins = <3 29 RK_FUNC_4 &pcfg_pull_up>;
   1278 			};
   1279 
   1280 			sdio1_bkpwr: sdio1-bkpwr {
   1281 				rockchip,pins = <3 30 RK_FUNC_4 &pcfg_pull_up>;
   1282 			};
   1283 
   1284 			sdio1_int: sdio1-int {
   1285 				rockchip,pins = <3 31 RK_FUNC_4 &pcfg_pull_up>;
   1286 			};
   1287 
   1288 			sdio1_cmd: sdio1-cmd {
   1289 				rockchip,pins = <4 6 RK_FUNC_4 &pcfg_pull_up>;
   1290 			};
   1291 
   1292 			sdio1_clk: sdio1-clk {
   1293 				rockchip,pins = <4 7 RK_FUNC_4 &pcfg_pull_none>;
   1294 			};
   1295 
   1296 			sdio1_pwr: sdio1-pwr {
   1297 				rockchip,pins = <4 9 RK_FUNC_4 &pcfg_pull_up>;
   1298 			};
   1299 		};
   1300 
   1301 		emmc {
   1302 			emmc_clk: emmc-clk {
   1303 				rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none>;
   1304 			};
   1305 
   1306 			emmc_cmd: emmc-cmd {
   1307 				rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_up>;
   1308 			};
   1309 
   1310 			emmc_pwr: emmc-pwr {
   1311 				rockchip,pins = <3 9 RK_FUNC_2 &pcfg_pull_up>;
   1312 			};
   1313 
   1314 			emmc_bus1: emmc-bus1 {
   1315 				rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>;
   1316 			};
   1317 
   1318 			emmc_bus4: emmc-bus4 {
   1319 				rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
   1320 						<3 1 RK_FUNC_2 &pcfg_pull_up>,
   1321 						<3 2 RK_FUNC_2 &pcfg_pull_up>,
   1322 						<3 3 RK_FUNC_2 &pcfg_pull_up>;
   1323 			};
   1324 
   1325 			emmc_bus8: emmc-bus8 {
   1326 				rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
   1327 						<3 1 RK_FUNC_2 &pcfg_pull_up>,
   1328 						<3 2 RK_FUNC_2 &pcfg_pull_up>,
   1329 						<3 3 RK_FUNC_2 &pcfg_pull_up>,
   1330 						<3 4 RK_FUNC_2 &pcfg_pull_up>,
   1331 						<3 5 RK_FUNC_2 &pcfg_pull_up>,
   1332 						<3 6 RK_FUNC_2 &pcfg_pull_up>,
   1333 						<3 7 RK_FUNC_2 &pcfg_pull_up>;
   1334 			};
   1335 		};
   1336 
   1337 		spi0 {
   1338 			spi0_clk: spi0-clk {
   1339 				rockchip,pins = <5 12 RK_FUNC_1 &pcfg_pull_up>;
   1340 			};
   1341 			spi0_cs0: spi0-cs0 {
   1342 				rockchip,pins = <5 13 RK_FUNC_1 &pcfg_pull_up>;
   1343 			};
   1344 			spi0_tx: spi0-tx {
   1345 				rockchip,pins = <5 14 RK_FUNC_1 &pcfg_pull_up>;
   1346 			};
   1347 			spi0_rx: spi0-rx {
   1348 				rockchip,pins = <5 15 RK_FUNC_1 &pcfg_pull_up>;
   1349 			};
   1350 			spi0_cs1: spi0-cs1 {
   1351 				rockchip,pins = <5 16 RK_FUNC_1 &pcfg_pull_up>;
   1352 			};
   1353 		};
   1354 		spi1 {
   1355 			spi1_clk: spi1-clk {
   1356 				rockchip,pins = <7 12 RK_FUNC_2 &pcfg_pull_up>;
   1357 			};
   1358 			spi1_cs0: spi1-cs0 {
   1359 				rockchip,pins = <7 13 RK_FUNC_2 &pcfg_pull_up>;
   1360 			};
   1361 			spi1_rx: spi1-rx {
   1362 				rockchip,pins = <7 14 RK_FUNC_2 &pcfg_pull_up>;
   1363 			};
   1364 			spi1_tx: spi1-tx {
   1365 				rockchip,pins = <7 15 RK_FUNC_2 &pcfg_pull_up>;
   1366 			};
   1367 		};
   1368 
   1369 		spi2 {
   1370 			spi2_cs1: spi2-cs1 {
   1371 				rockchip,pins = <8 3 RK_FUNC_1 &pcfg_pull_up>;
   1372 			};
   1373 			spi2_clk: spi2-clk {
   1374 				rockchip,pins = <8 6 RK_FUNC_1 &pcfg_pull_up>;
   1375 			};
   1376 			spi2_cs0: spi2-cs0 {
   1377 				rockchip,pins = <8 7 RK_FUNC_1 &pcfg_pull_up>;
   1378 			};
   1379 			spi2_rx: spi2-rx {
   1380 				rockchip,pins = <8 8 RK_FUNC_1 &pcfg_pull_up>;
   1381 			};
   1382 			spi2_tx: spi2-tx {
   1383 				rockchip,pins = <8 9 RK_FUNC_1 &pcfg_pull_up>;
   1384 			};
   1385 		};
   1386 
   1387 		uart0 {
   1388 			uart0_xfer: uart0-xfer {
   1389 				rockchip,pins = <4 16 RK_FUNC_1 &pcfg_pull_up>,
   1390 						<4 17 RK_FUNC_1 &pcfg_pull_none>;
   1391 			};
   1392 
   1393 			uart0_cts: uart0-cts {
   1394 				rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_none>;
   1395 			};
   1396 
   1397 			uart0_rts: uart0-rts {
   1398 				rockchip,pins = <4 19 RK_FUNC_1 &pcfg_pull_none>;
   1399 			};
   1400 		};
   1401 
   1402 		uart1 {
   1403 			uart1_xfer: uart1-xfer {
   1404 				rockchip,pins = <5 8 RK_FUNC_1 &pcfg_pull_up>,
   1405 						<5 9 RK_FUNC_1 &pcfg_pull_none>;
   1406 			};
   1407 
   1408 			uart1_cts: uart1-cts {
   1409 				rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_none>;
   1410 			};
   1411 
   1412 			uart1_rts: uart1-rts {
   1413 				rockchip,pins = <5 11 RK_FUNC_1 &pcfg_pull_none>;
   1414 			};
   1415 		};
   1416 
   1417 		uart2 {
   1418 			uart2_xfer: uart2-xfer {
   1419 				rockchip,pins = <7 22 RK_FUNC_1 &pcfg_pull_up>,
   1420 						<7 23 RK_FUNC_1 &pcfg_pull_none>;
   1421 			};
   1422 			/* no rts / cts for uart2 */
   1423 		};
   1424 
   1425 		uart3 {
   1426 			uart3_xfer: uart3-xfer {
   1427 				rockchip,pins = <7 7 RK_FUNC_1 &pcfg_pull_up>,
   1428 						<7 8 RK_FUNC_1 &pcfg_pull_none>;
   1429 			};
   1430 
   1431 			uart3_cts: uart3-cts {
   1432 				rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_none>;
   1433 			};
   1434 
   1435 			uart3_rts: uart3-rts {
   1436 				rockchip,pins = <7 10 RK_FUNC_1 &pcfg_pull_none>;
   1437 			};
   1438 		};
   1439 
   1440 		uart4 {
   1441 			uart4_xfer: uart4-xfer {
   1442 				rockchip,pins = <5 12 3 &pcfg_pull_up>,
   1443 						<5 13 3 &pcfg_pull_none>;
   1444 			};
   1445 
   1446 			uart4_cts: uart4-cts {
   1447 				rockchip,pins = <5 14 3 &pcfg_pull_none>;
   1448 			};
   1449 
   1450 			uart4_rts: uart4-rts {
   1451 				rockchip,pins = <5 15 3 &pcfg_pull_none>;
   1452 			};
   1453 		};
   1454 
   1455 		tsadc {
   1456 			otp_out: otp-out {
   1457 				rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>;
   1458 			};
   1459 		};
   1460 
   1461 		pwm0 {
   1462 			pwm0_pin: pwm0-pin {
   1463 				rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>;
   1464 			};
   1465 		};
   1466 
   1467 		pwm1 {
   1468 			pwm1_pin: pwm1-pin {
   1469 				rockchip,pins = <7 1 RK_FUNC_1 &pcfg_pull_none>;
   1470 			};
   1471 		};
   1472 
   1473 		pwm2 {
   1474 			pwm2_pin: pwm2-pin {
   1475 				rockchip,pins = <7 22 RK_FUNC_3 &pcfg_pull_none>;
   1476 			};
   1477 		};
   1478 
   1479 		pwm3 {
   1480 			pwm3_pin: pwm3-pin {
   1481 				rockchip,pins = <7 23 RK_FUNC_3 &pcfg_pull_none>;
   1482 			};
   1483 		};
   1484 
   1485 		gmac {
   1486 			rgmii_pins: rgmii-pins {
   1487 				rockchip,pins = <3 30 3 &pcfg_pull_none>,
   1488 						<3 31 3 &pcfg_pull_none>,
   1489 						<3 26 3 &pcfg_pull_none>,
   1490 						<3 27 3 &pcfg_pull_none>,
   1491 						<3 28 3 &pcfg_pull_none_12ma>,
   1492 						<3 29 3 &pcfg_pull_none_12ma>,
   1493 						<3 24 3 &pcfg_pull_none_12ma>,
   1494 						<3 25 3 &pcfg_pull_none_12ma>,
   1495 						<4 0 3 &pcfg_pull_none>,
   1496 						<4 5 3 &pcfg_pull_none>,
   1497 						<4 6 3 &pcfg_pull_none>,
   1498 						<4 9 3 &pcfg_pull_none_12ma>,
   1499 						<4 4 3 &pcfg_pull_none_12ma>,
   1500 						<4 1 3 &pcfg_pull_none>,
   1501 						<4 3 3 &pcfg_pull_none>;
   1502 			};
   1503 
   1504 			rmii_pins: rmii-pins {
   1505 				rockchip,pins = <3 30 3 &pcfg_pull_none>,
   1506 						<3 31 3 &pcfg_pull_none>,
   1507 						<3 28 3 &pcfg_pull_none>,
   1508 						<3 29 3 &pcfg_pull_none>,
   1509 						<4 0 3 &pcfg_pull_none>,
   1510 						<4 5 3 &pcfg_pull_none>,
   1511 						<4 4 3 &pcfg_pull_none>,
   1512 						<4 1 3 &pcfg_pull_none>,
   1513 						<4 2 3 &pcfg_pull_none>,
   1514 						<4 3 3 &pcfg_pull_none>;
   1515 			};
   1516 		};
   1517 
   1518 		spdif {
   1519 			spdif_tx: spdif-tx {
   1520 				rockchip,pins = <RK_GPIO6 11 RK_FUNC_1 &pcfg_pull_none>;
   1521 			};
   1522 		};
   1523 	};
   1524 
   1525 	power: power-controller {
   1526 		compatible = "rockchip,rk3288-power-controller";
   1527 		#power-domain-cells = <1>;
   1528 		rockchip,pmu = <&pmu>;
   1529 		#address-cells = <1>;
   1530 		#size-cells = <0>;
   1531 
   1532 		pd_gpu {
   1533 			reg = <RK3288_PD_GPU>;
   1534 			clocks = <&cru ACLK_GPU>;
   1535 		};
   1536 
   1537 		pd_hevc {
   1538 			reg = <RK3288_PD_HEVC>;
   1539 			clocks = <&cru ACLK_HEVC>,
   1540 				 <&cru SCLK_HEVC_CABAC>,
   1541 				 <&cru SCLK_HEVC_CORE>,
   1542 				 <&cru HCLK_HEVC>;
   1543 		};
   1544 
   1545 		pd_vio {
   1546 			reg = <RK3288_PD_VIO>;
   1547 			clocks = <&cru ACLK_IEP>,
   1548 				 <&cru ACLK_ISP>,
   1549 				 <&cru ACLK_RGA>,
   1550 				 <&cru ACLK_VIP>,
   1551 				 <&cru ACLK_VOP0>,
   1552 				 <&cru ACLK_VOP1>,
   1553 				 <&cru DCLK_VOP0>,
   1554 				 <&cru DCLK_VOP1>,
   1555 				 <&cru HCLK_IEP>,
   1556 				 <&cru HCLK_ISP>,
   1557 				 <&cru HCLK_RGA>,
   1558 				 <&cru HCLK_VIP>,
   1559 				 <&cru HCLK_VOP0>,
   1560 				 <&cru HCLK_VOP1>,
   1561 				 <&cru PCLK_EDP_CTRL>,
   1562 				 <&cru PCLK_HDMI_CTRL>,
   1563 				 <&cru PCLK_LVDS_PHY>,
   1564 				 <&cru PCLK_MIPI_CSI>,
   1565 				 <&cru PCLK_MIPI_DSI0>,
   1566 				 <&cru PCLK_MIPI_DSI1>,
   1567 				 <&cru SCLK_EDP_24M>,
   1568 				 <&cru SCLK_EDP>,
   1569 				 <&cru SCLK_HDMI_CEC>,
   1570 				 <&cru SCLK_HDMI_HDCP>,
   1571 				 <&cru SCLK_ISP_JPE>,
   1572 				 <&cru SCLK_ISP>,
   1573 				 <&cru SCLK_RGA>;
   1574 		};
   1575 
   1576 		pd_video {
   1577 			reg = <RK3288_PD_VIDEO>;
   1578 			clocks = <&cru ACLK_VCODEC>,
   1579 				 <&cru HCLK_VCODEC>;
   1580 		};
   1581 	};
   1582 };
   1583