Linux Audio

Check our new training course

Loading...
v4.17
   1/*
   2 * This file is dual-licensed: you can use it either under the terms
   3 * of the GPL or the X11 license, at your option. Note that this dual
   4 * licensing only applies to this file, and not this project as a
   5 * whole.
   6 *
   7 *  a) This file is free software; you can redistribute it and/or
   8 *     modify it under the terms of the GNU General Public License as
   9 *     published by the Free Software Foundation; either version 2 of the
  10 *     License, or (at your option) any later version.
  11 *
  12 *     This file is distributed in the hope that it will be useful,
  13 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
  14 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15 *     GNU General Public License for more details.
  16 *
  17 * Or, alternatively,
  18 *
  19 *  b) Permission is hereby granted, free of charge, to any person
  20 *     obtaining a copy of this software and associated documentation
  21 *     files (the "Software"), to deal in the Software without
  22 *     restriction, including without limitation the rights to use,
  23 *     copy, modify, merge, publish, distribute, sublicense, and/or
  24 *     sell copies of the Software, and to permit persons to whom the
  25 *     Software is furnished to do so, subject to the following
  26 *     conditions:
  27 *
  28 *     The above copyright notice and this permission notice shall be
  29 *     included in all copies or substantial portions of the Software.
  30 *
  31 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  32 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  33 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  34 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  35 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  36 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  37 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  38 *     OTHER DEALINGS IN THE SOFTWARE.
  39 */
  40
  41#include <dt-bindings/gpio/gpio.h>
  42#include <dt-bindings/interrupt-controller/irq.h>
  43#include <dt-bindings/interrupt-controller/arm-gic.h>
  44#include <dt-bindings/pinctrl/rockchip.h>
  45#include <dt-bindings/clock/rk3288-cru.h>
  46#include <dt-bindings/power/rk3288-power.h>
  47#include <dt-bindings/thermal/thermal.h>
  48#include <dt-bindings/power/rk3288-power.h>
  49#include <dt-bindings/soc/rockchip,boot-mode.h>
  50
  51/ {
  52	#address-cells = <2>;
  53	#size-cells = <2>;
  54
  55	compatible = "rockchip,rk3288";
  56
  57	interrupt-parent = <&gic>;
  58
  59	aliases {
  60		ethernet0 = &gmac;
  61		i2c0 = &i2c0;
  62		i2c1 = &i2c1;
  63		i2c2 = &i2c2;
  64		i2c3 = &i2c3;
  65		i2c4 = &i2c4;
  66		i2c5 = &i2c5;
  67		mshc0 = &emmc;
  68		mshc1 = &sdmmc;
  69		mshc2 = &sdio0;
  70		mshc3 = &sdio1;
  71		serial0 = &uart0;
  72		serial1 = &uart1;
  73		serial2 = &uart2;
  74		serial3 = &uart3;
  75		serial4 = &uart4;
  76		spi0 = &spi0;
  77		spi1 = &spi1;
  78		spi2 = &spi2;
  79	};
  80
  81	arm-pmu {
  82		compatible = "arm,cortex-a12-pmu";
  83		interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
  84			     <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
  85			     <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
  86			     <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
  87		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
  88	};
  89
  90	cpus {
  91		#address-cells = <1>;
  92		#size-cells = <0>;
  93		enable-method = "rockchip,rk3066-smp";
  94		rockchip,pmu = <&pmu>;
  95
  96		cpu0: cpu@500 {
  97			device_type = "cpu";
  98			compatible = "arm,cortex-a12";
  99			reg = <0x500>;
 100			resets = <&cru SRST_CORE0>;
 101			operating-points = <
 102				/* KHz    uV */
 103				1608000 1350000
 104				1512000 1300000
 105				1416000 1200000
 106				1200000 1100000
 107				1008000 1050000
 108				 816000 1000000
 109				 696000  950000
 110				 600000  900000
 111				 408000  900000
 112				 312000  900000
 113				 216000  900000
 114				 126000  900000
 115			>;
 116			#cooling-cells = <2>; /* min followed by max */
 117			clock-latency = <40000>;
 118			clocks = <&cru ARMCLK>;
 119		};
 120		cpu1: cpu@501 {
 121			device_type = "cpu";
 122			compatible = "arm,cortex-a12";
 123			reg = <0x501>;
 124			resets = <&cru SRST_CORE1>;
 125		};
 126		cpu2: cpu@502 {
 127			device_type = "cpu";
 128			compatible = "arm,cortex-a12";
 129			reg = <0x502>;
 130			resets = <&cru SRST_CORE2>;
 131		};
 132		cpu3: cpu@503 {
 133			device_type = "cpu";
 134			compatible = "arm,cortex-a12";
 135			reg = <0x503>;
 136			resets = <&cru SRST_CORE3>;
 137		};
 138	};
 139
 140	amba {
 141		compatible = "simple-bus";
 142		#address-cells = <2>;
 143		#size-cells = <2>;
 144		ranges;
 145
 146		dmac_peri: dma-controller@ff250000 {
 147			compatible = "arm,pl330", "arm,primecell";
 148			reg = <0x0 0xff250000 0x0 0x4000>;
 149			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
 150				     <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
 151			#dma-cells = <1>;
 152			arm,pl330-broken-no-flushp;
 153			clocks = <&cru ACLK_DMAC2>;
 154			clock-names = "apb_pclk";
 155		};
 156
 157		dmac_bus_ns: dma-controller@ff600000 {
 158			compatible = "arm,pl330", "arm,primecell";
 159			reg = <0x0 0xff600000 0x0 0x4000>;
 160			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
 161				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
 162			#dma-cells = <1>;
 163			arm,pl330-broken-no-flushp;
 164			clocks = <&cru ACLK_DMAC1>;
 165			clock-names = "apb_pclk";
 166			status = "disabled";
 167		};
 168
 169		dmac_bus_s: dma-controller@ffb20000 {
 170			compatible = "arm,pl330", "arm,primecell";
 171			reg = <0x0 0xffb20000 0x0 0x4000>;
 172			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
 173				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
 174			#dma-cells = <1>;
 175			arm,pl330-broken-no-flushp;
 176			clocks = <&cru ACLK_DMAC1>;
 177			clock-names = "apb_pclk";
 178		};
 179	};
 180
 181	reserved-memory {
 182		#address-cells = <2>;
 183		#size-cells = <2>;
 184		ranges;
 185
 186		/*
 187		 * The rk3288 cannot use the memory area above 0xfe000000
 188		 * for dma operations for some reason. While there is
 189		 * probably a better solution available somewhere, we
 190		 * haven't found it yet and while devices with 2GB of ram
 191		 * are not affected, this issue prevents 4GB from booting.
 192		 * So to make these devices at least bootable, block
 193		 * this area for the time being until the real solution
 194		 * is found.
 195		 */
 196		dma-unusable@fe000000 {
 197			reg = <0x0 0xfe000000 0x0 0x1000000>;
 198		};
 199	};
 200
 201	xin24m: oscillator {
 202		compatible = "fixed-clock";
 203		clock-frequency = <24000000>;
 204		clock-output-names = "xin24m";
 205		#clock-cells = <0>;
 206	};
 207
 208	timer {
 209		compatible = "arm,armv7-timer";
 210		arm,cpu-registers-not-fw-configured;
 211		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
 212			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
 213			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
 214			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
 215		clock-frequency = <24000000>;
 216	};
 217
 218	timer: timer@ff810000 {
 219		compatible = "rockchip,rk3288-timer";
 220		reg = <0x0 0xff810000 0x0 0x20>;
 221		interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
 222		clocks = <&xin24m>, <&cru PCLK_TIMER>;
 223		clock-names = "timer", "pclk";
 224	};
 225
 226	display-subsystem {
 227		compatible = "rockchip,display-subsystem";
 228		ports = <&vopl_out>, <&vopb_out>;
 229	};
 230
 231	sdmmc: dwmmc@ff0c0000 {
 232		compatible = "rockchip,rk3288-dw-mshc";
 233		max-frequency = <150000000>;
 234		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
 235			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
 236		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
 237		fifo-depth = <0x100>;
 238		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
 239		reg = <0x0 0xff0c0000 0x0 0x4000>;
 240		resets = <&cru SRST_MMC0>;
 241		reset-names = "reset";
 242		status = "disabled";
 243	};
 244
 245	sdio0: dwmmc@ff0d0000 {
 246		compatible = "rockchip,rk3288-dw-mshc";
 247		max-frequency = <150000000>;
 248		clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
 249			 <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
 250		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
 251		fifo-depth = <0x100>;
 252		interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
 253		reg = <0x0 0xff0d0000 0x0 0x4000>;
 254		resets = <&cru SRST_SDIO0>;
 255		reset-names = "reset";
 256		status = "disabled";
 257	};
 258
 259	sdio1: dwmmc@ff0e0000 {
 260		compatible = "rockchip,rk3288-dw-mshc";
 261		max-frequency = <150000000>;
 262		clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>,
 263			 <&cru SCLK_SDIO1_DRV>, <&cru SCLK_SDIO1_SAMPLE>;
 264		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
 265		fifo-depth = <0x100>;
 266		interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
 267		reg = <0x0 0xff0e0000 0x0 0x4000>;
 268		resets = <&cru SRST_SDIO1>;
 269		reset-names = "reset";
 270		status = "disabled";
 271	};
 272
 273	emmc: dwmmc@ff0f0000 {
 274		compatible = "rockchip,rk3288-dw-mshc";
 275		max-frequency = <150000000>;
 276		clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
 277			 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
 278		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
 279		fifo-depth = <0x100>;
 280		interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
 281		reg = <0x0 0xff0f0000 0x0 0x4000>;
 282		resets = <&cru SRST_EMMC>;
 283		reset-names = "reset";
 284		status = "disabled";
 285	};
 286
 287	saradc: saradc@ff100000 {
 288		compatible = "rockchip,saradc";
 289		reg = <0x0 0xff100000 0x0 0x100>;
 290		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
 291		#io-channel-cells = <1>;
 292		clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
 293		clock-names = "saradc", "apb_pclk";
 294		resets = <&cru SRST_SARADC>;
 295		reset-names = "saradc-apb";
 296		status = "disabled";
 297	};
 298
 299	spi0: spi@ff110000 {
 300		compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
 301		clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
 302		clock-names = "spiclk", "apb_pclk";
 303		dmas = <&dmac_peri 11>, <&dmac_peri 12>;
 304		dma-names = "tx", "rx";
 305		interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
 306		pinctrl-names = "default";
 307		pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
 308		reg = <0x0 0xff110000 0x0 0x1000>;
 309		#address-cells = <1>;
 310		#size-cells = <0>;
 311		status = "disabled";
 312	};
 313
 314	spi1: spi@ff120000 {
 315		compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
 316		clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
 317		clock-names = "spiclk", "apb_pclk";
 318		dmas = <&dmac_peri 13>, <&dmac_peri 14>;
 319		dma-names = "tx", "rx";
 320		interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
 321		pinctrl-names = "default";
 322		pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
 323		reg = <0x0 0xff120000 0x0 0x1000>;
 324		#address-cells = <1>;
 325		#size-cells = <0>;
 326		status = "disabled";
 327	};
 328
 329	spi2: spi@ff130000 {
 330		compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
 331		clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
 332		clock-names = "spiclk", "apb_pclk";
 333		dmas = <&dmac_peri 15>, <&dmac_peri 16>;
 334		dma-names = "tx", "rx";
 335		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
 336		pinctrl-names = "default";
 337		pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
 338		reg = <0x0 0xff130000 0x0 0x1000>;
 339		#address-cells = <1>;
 340		#size-cells = <0>;
 341		status = "disabled";
 342	};
 343
 344	i2c1: i2c@ff140000 {
 345		compatible = "rockchip,rk3288-i2c";
 346		reg = <0x0 0xff140000 0x0 0x1000>;
 347		interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
 348		#address-cells = <1>;
 349		#size-cells = <0>;
 350		clock-names = "i2c";
 351		clocks = <&cru PCLK_I2C1>;
 352		pinctrl-names = "default";
 353		pinctrl-0 = <&i2c1_xfer>;
 354		status = "disabled";
 355	};
 356
 357	i2c3: i2c@ff150000 {
 358		compatible = "rockchip,rk3288-i2c";
 359		reg = <0x0 0xff150000 0x0 0x1000>;
 360		interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
 361		#address-cells = <1>;
 362		#size-cells = <0>;
 363		clock-names = "i2c";
 364		clocks = <&cru PCLK_I2C3>;
 365		pinctrl-names = "default";
 366		pinctrl-0 = <&i2c3_xfer>;
 367		status = "disabled";
 368	};
 369
 370	i2c4: i2c@ff160000 {
 371		compatible = "rockchip,rk3288-i2c";
 372		reg = <0x0 0xff160000 0x0 0x1000>;
 373		interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
 374		#address-cells = <1>;
 375		#size-cells = <0>;
 376		clock-names = "i2c";
 377		clocks = <&cru PCLK_I2C4>;
 378		pinctrl-names = "default";
 379		pinctrl-0 = <&i2c4_xfer>;
 380		status = "disabled";
 381	};
 382
 383	i2c5: i2c@ff170000 {
 384		compatible = "rockchip,rk3288-i2c";
 385		reg = <0x0 0xff170000 0x0 0x1000>;
 386		interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
 387		#address-cells = <1>;
 388		#size-cells = <0>;
 389		clock-names = "i2c";
 390		clocks = <&cru PCLK_I2C5>;
 391		pinctrl-names = "default";
 392		pinctrl-0 = <&i2c5_xfer>;
 393		status = "disabled";
 394	};
 395
 396	uart0: serial@ff180000 {
 397		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
 398		reg = <0x0 0xff180000 0x0 0x100>;
 399		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
 400		reg-shift = <2>;
 401		reg-io-width = <4>;
 402		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
 403		clock-names = "baudclk", "apb_pclk";
 404		pinctrl-names = "default";
 405		pinctrl-0 = <&uart0_xfer>;
 406		status = "disabled";
 407	};
 408
 409	uart1: serial@ff190000 {
 410		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
 411		reg = <0x0 0xff190000 0x0 0x100>;
 412		interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
 413		reg-shift = <2>;
 414		reg-io-width = <4>;
 415		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
 416		clock-names = "baudclk", "apb_pclk";
 417		pinctrl-names = "default";
 418		pinctrl-0 = <&uart1_xfer>;
 419		status = "disabled";
 420	};
 421
 422	uart2: serial@ff690000 {
 423		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
 424		reg = <0x0 0xff690000 0x0 0x100>;
 425		interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
 426		reg-shift = <2>;
 427		reg-io-width = <4>;
 428		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
 429		clock-names = "baudclk", "apb_pclk";
 430		pinctrl-names = "default";
 431		pinctrl-0 = <&uart2_xfer>;
 432		status = "disabled";
 433	};
 434
 435	uart3: serial@ff1b0000 {
 436		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
 437		reg = <0x0 0xff1b0000 0x0 0x100>;
 438		interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
 439		reg-shift = <2>;
 440		reg-io-width = <4>;
 441		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
 442		clock-names = "baudclk", "apb_pclk";
 443		pinctrl-names = "default";
 444		pinctrl-0 = <&uart3_xfer>;
 445		status = "disabled";
 446	};
 447
 448	uart4: serial@ff1c0000 {
 449		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
 450		reg = <0x0 0xff1c0000 0x0 0x100>;
 451		interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
 452		reg-shift = <2>;
 453		reg-io-width = <4>;
 454		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
 455		clock-names = "baudclk", "apb_pclk";
 456		pinctrl-names = "default";
 457		pinctrl-0 = <&uart4_xfer>;
 458		status = "disabled";
 459	};
 460
 461	thermal-zones {
 462		reserve_thermal: reserve_thermal {
 463			polling-delay-passive = <1000>; /* milliseconds */
 464			polling-delay = <5000>; /* milliseconds */
 465
 466			thermal-sensors = <&tsadc 0>;
 467		};
 468
 469		cpu_thermal: cpu_thermal {
 470			polling-delay-passive = <100>; /* milliseconds */
 471			polling-delay = <5000>; /* milliseconds */
 472
 473			thermal-sensors = <&tsadc 1>;
 474
 475			trips {
 476				cpu_alert0: cpu_alert0 {
 477					temperature = <70000>; /* millicelsius */
 478					hysteresis = <2000>; /* millicelsius */
 479					type = "passive";
 480				};
 481				cpu_alert1: cpu_alert1 {
 482					temperature = <75000>; /* millicelsius */
 483					hysteresis = <2000>; /* millicelsius */
 484					type = "passive";
 485				};
 486				cpu_crit: cpu_crit {
 487					temperature = <90000>; /* millicelsius */
 488					hysteresis = <2000>; /* millicelsius */
 489					type = "critical";
 490				};
 491			};
 492
 493			cooling-maps {
 494				map0 {
 495					trip = <&cpu_alert0>;
 496					cooling-device =
 497						<&cpu0 THERMAL_NO_LIMIT 6>;
 498				};
 499				map1 {
 500					trip = <&cpu_alert1>;
 501					cooling-device =
 502						<&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
 503				};
 504			};
 505		};
 506
 507		gpu_thermal: gpu_thermal {
 508			polling-delay-passive = <100>; /* milliseconds */
 509			polling-delay = <5000>; /* milliseconds */
 510
 511			thermal-sensors = <&tsadc 2>;
 512
 513			trips {
 514				gpu_alert0: gpu_alert0 {
 515					temperature = <70000>; /* millicelsius */
 516					hysteresis = <2000>; /* millicelsius */
 517					type = "passive";
 518				};
 519				gpu_crit: gpu_crit {
 520					temperature = <90000>; /* millicelsius */
 521					hysteresis = <2000>; /* millicelsius */
 522					type = "critical";
 523				};
 524			};
 525
 526			cooling-maps {
 527				map0 {
 528					trip = <&gpu_alert0>;
 529					cooling-device =
 530						<&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
 531				};
 532			};
 533		};
 534	};
 535
 536	tsadc: tsadc@ff280000 {
 537		compatible = "rockchip,rk3288-tsadc";
 538		reg = <0x0 0xff280000 0x0 0x100>;
 539		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
 540		clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
 541		clock-names = "tsadc", "apb_pclk";
 542		resets = <&cru SRST_TSADC>;
 543		reset-names = "tsadc-apb";
 544		pinctrl-names = "init", "default", "sleep";
 545		pinctrl-0 = <&otp_gpio>;
 546		pinctrl-1 = <&otp_out>;
 547		pinctrl-2 = <&otp_gpio>;
 548		#thermal-sensor-cells = <1>;
 549		rockchip,hw-tshut-temp = <95000>;
 550		status = "disabled";
 551	};
 552
 553	gmac: ethernet@ff290000 {
 554		compatible = "rockchip,rk3288-gmac";
 555		reg = <0x0 0xff290000 0x0 0x10000>;
 556		interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
 557				<GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
 558		interrupt-names = "macirq", "eth_wake_irq";
 559		rockchip,grf = <&grf>;
 560		clocks = <&cru SCLK_MAC>,
 561			<&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
 562			<&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
 563			<&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
 564		clock-names = "stmmaceth",
 565			"mac_clk_rx", "mac_clk_tx",
 566			"clk_mac_ref", "clk_mac_refout",
 567			"aclk_mac", "pclk_mac";
 568		resets = <&cru SRST_MAC>;
 569		reset-names = "stmmaceth";
 570		status = "disabled";
 571	};
 572
 573	usb_host0_ehci: usb@ff500000 {
 574		compatible = "generic-ehci";
 575		reg = <0x0 0xff500000 0x0 0x100>;
 576		interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
 577		clocks = <&cru HCLK_USBHOST0>;
 578		clock-names = "usbhost";
 579		phys = <&usbphy1>;
 580		phy-names = "usb";
 581		status = "disabled";
 582	};
 583
 584	/* NOTE: ohci@ff520000 doesn't actually work on hardware */
 585
 586	usb_host1: usb@ff540000 {
 587		compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
 588				"snps,dwc2";
 589		reg = <0x0 0xff540000 0x0 0x40000>;
 590		interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
 591		clocks = <&cru HCLK_USBHOST1>;
 592		clock-names = "otg";
 593		dr_mode = "host";
 594		phys = <&usbphy2>;
 595		phy-names = "usb2-phy";
 596		status = "disabled";
 597	};
 598
 599	usb_otg: usb@ff580000 {
 600		compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
 601				"snps,dwc2";
 602		reg = <0x0 0xff580000 0x0 0x40000>;
 603		interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
 604		clocks = <&cru HCLK_OTG0>;
 605		clock-names = "otg";
 606		dr_mode = "otg";
 607		g-np-tx-fifo-size = <16>;
 608		g-rx-fifo-size = <275>;
 609		g-tx-fifo-size = <256 128 128 64 64 32>;
 
 610		phys = <&usbphy0>;
 611		phy-names = "usb2-phy";
 612		status = "disabled";
 613	};
 614
 615	usb_hsic: usb@ff5c0000 {
 616		compatible = "generic-ehci";
 617		reg = <0x0 0xff5c0000 0x0 0x100>;
 618		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
 619		clocks = <&cru HCLK_HSIC>;
 620		clock-names = "usbhost";
 621		status = "disabled";
 622	};
 623
 624	i2c0: i2c@ff650000 {
 625		compatible = "rockchip,rk3288-i2c";
 626		reg = <0x0 0xff650000 0x0 0x1000>;
 627		interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
 628		#address-cells = <1>;
 629		#size-cells = <0>;
 630		clock-names = "i2c";
 631		clocks = <&cru PCLK_I2C0>;
 632		pinctrl-names = "default";
 633		pinctrl-0 = <&i2c0_xfer>;
 634		status = "disabled";
 635	};
 636
 637	i2c2: i2c@ff660000 {
 638		compatible = "rockchip,rk3288-i2c";
 639		reg = <0x0 0xff660000 0x0 0x1000>;
 640		interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
 641		#address-cells = <1>;
 642		#size-cells = <0>;
 643		clock-names = "i2c";
 644		clocks = <&cru PCLK_I2C2>;
 645		pinctrl-names = "default";
 646		pinctrl-0 = <&i2c2_xfer>;
 647		status = "disabled";
 648	};
 649
 650	pwm0: pwm@ff680000 {
 651		compatible = "rockchip,rk3288-pwm";
 652		reg = <0x0 0xff680000 0x0 0x10>;
 653		#pwm-cells = <3>;
 654		pinctrl-names = "default";
 655		pinctrl-0 = <&pwm0_pin>;
 656		clocks = <&cru PCLK_PWM>;
 657		clock-names = "pwm";
 658		status = "disabled";
 659	};
 660
 661	pwm1: pwm@ff680010 {
 662		compatible = "rockchip,rk3288-pwm";
 663		reg = <0x0 0xff680010 0x0 0x10>;
 664		#pwm-cells = <3>;
 665		pinctrl-names = "default";
 666		pinctrl-0 = <&pwm1_pin>;
 667		clocks = <&cru PCLK_PWM>;
 668		clock-names = "pwm";
 669		status = "disabled";
 670	};
 671
 672	pwm2: pwm@ff680020 {
 673		compatible = "rockchip,rk3288-pwm";
 674		reg = <0x0 0xff680020 0x0 0x10>;
 675		#pwm-cells = <3>;
 676		pinctrl-names = "default";
 677		pinctrl-0 = <&pwm2_pin>;
 678		clocks = <&cru PCLK_PWM>;
 679		clock-names = "pwm";
 680		status = "disabled";
 681	};
 682
 683	pwm3: pwm@ff680030 {
 684		compatible = "rockchip,rk3288-pwm";
 685		reg = <0x0 0xff680030 0x0 0x10>;
 686		#pwm-cells = <2>;
 687		pinctrl-names = "default";
 688		pinctrl-0 = <&pwm3_pin>;
 689		clocks = <&cru PCLK_PWM>;
 690		clock-names = "pwm";
 691		status = "disabled";
 692	};
 693
 694	bus_intmem@ff700000 {
 695		compatible = "mmio-sram";
 696		reg = <0x0 0xff700000 0x0 0x18000>;
 697		#address-cells = <1>;
 698		#size-cells = <1>;
 699		ranges = <0 0x0 0xff700000 0x18000>;
 700		smp-sram@0 {
 701			compatible = "rockchip,rk3066-smp-sram";
 702			reg = <0x00 0x10>;
 703		};
 704	};
 705
 706	sram@ff720000 {
 707		compatible = "rockchip,rk3288-pmu-sram", "mmio-sram";
 708		reg = <0x0 0xff720000 0x0 0x1000>;
 709	};
 710
 711	pmu: power-management@ff730000 {
 712		compatible = "rockchip,rk3288-pmu", "syscon", "simple-mfd";
 713		reg = <0x0 0xff730000 0x0 0x100>;
 714
 715		power: power-controller {
 716			compatible = "rockchip,rk3288-power-controller";
 717			#power-domain-cells = <1>;
 718			#address-cells = <1>;
 719			#size-cells = <0>;
 720
 721			assigned-clocks = <&cru SCLK_EDP_24M>;
 722			assigned-clock-parents = <&xin24m>;
 723
 724			/*
 725			 * Note: Although SCLK_* are the working clocks
 726			 * of device without including on the NOC, needed for
 727			 * synchronous reset.
 728			 *
 729			 * The clocks on the which NOC:
 730			 * ACLK_IEP/ACLK_VIP/ACLK_VOP0 are on ACLK_VIO0_NIU.
 731			 * ACLK_ISP/ACLK_VOP1 are on ACLK_VIO1_NIU.
 732			 * ACLK_RGA is on ACLK_RGA_NIU.
 733			 * The others (HCLK_*,PLCK_*) are on HCLK_VIO_NIU.
 734			 *
 735			 * Which clock are device clocks:
 736			 *	clocks		devices
 737			 *	*_IEP		IEP:Image Enhancement Processor
 738			 *	*_ISP		ISP:Image Signal Processing
 739			 *	*_VIP		VIP:Video Input Processor
 740			 *	*_VOP*		VOP:Visual Output Processor
 741			 *	*_RGA		RGA
 742			 *	*_EDP*		EDP
 743			 *	*_LVDS_*	LVDS
 744			 *	*_HDMI		HDMI
 745			 *	*_MIPI_*	MIPI
 746			 */
 747			pd_vio@RK3288_PD_VIO {
 748				reg = <RK3288_PD_VIO>;
 749				clocks = <&cru ACLK_IEP>,
 750					 <&cru ACLK_ISP>,
 751					 <&cru ACLK_RGA>,
 752					 <&cru ACLK_VIP>,
 753					 <&cru ACLK_VOP0>,
 754					 <&cru ACLK_VOP1>,
 755					 <&cru DCLK_VOP0>,
 756					 <&cru DCLK_VOP1>,
 757					 <&cru HCLK_IEP>,
 758					 <&cru HCLK_ISP>,
 759					 <&cru HCLK_RGA>,
 760					 <&cru HCLK_VIP>,
 761					 <&cru HCLK_VOP0>,
 762					 <&cru HCLK_VOP1>,
 763					 <&cru PCLK_EDP_CTRL>,
 764					 <&cru PCLK_HDMI_CTRL>,
 765					 <&cru PCLK_LVDS_PHY>,
 766					 <&cru PCLK_MIPI_CSI>,
 767					 <&cru PCLK_MIPI_DSI0>,
 768					 <&cru PCLK_MIPI_DSI1>,
 769					 <&cru SCLK_EDP_24M>,
 770					 <&cru SCLK_EDP>,
 771					 <&cru SCLK_ISP_JPE>,
 772					 <&cru SCLK_ISP>,
 773					 <&cru SCLK_RGA>;
 774				pm_qos = <&qos_vio0_iep>,
 775					 <&qos_vio1_vop>,
 776					 <&qos_vio1_isp_w0>,
 777					 <&qos_vio1_isp_w1>,
 778					 <&qos_vio0_vop>,
 779					 <&qos_vio0_vip>,
 780					 <&qos_vio2_rga_r>,
 781					 <&qos_vio2_rga_w>,
 782					 <&qos_vio1_isp_r>;
 783			};
 784
 785			/*
 786			 * Note: The following 3 are HEVC(H.265) clocks,
 787			 * and on the ACLK_HEVC_NIU (NOC).
 788			 */
 789			pd_hevc@RK3288_PD_HEVC {
 790				reg = <RK3288_PD_HEVC>;
 791				clocks = <&cru ACLK_HEVC>,
 792					 <&cru SCLK_HEVC_CABAC>,
 793					 <&cru SCLK_HEVC_CORE>;
 794				pm_qos = <&qos_hevc_r>,
 795					 <&qos_hevc_w>;
 796			};
 797
 798			/*
 799			 * Note: ACLK_VCODEC/HCLK_VCODEC are VCODEC
 800			 * (video endecoder & decoder) clocks that on the
 801			 * ACLK_VCODEC_NIU and HCLK_VCODEC_NIU (NOC).
 802			 */
 803			pd_video@RK3288_PD_VIDEO {
 804				reg = <RK3288_PD_VIDEO>;
 805				clocks = <&cru ACLK_VCODEC>,
 806					 <&cru HCLK_VCODEC>;
 807				pm_qos = <&qos_video>;
 808			};
 809
 810			/*
 811			 * Note: ACLK_GPU is the GPU clock,
 812			 * and on the ACLK_GPU_NIU (NOC).
 813			 */
 814			pd_gpu@RK3288_PD_GPU {
 815				reg = <RK3288_PD_GPU>;
 816				clocks = <&cru ACLK_GPU>;
 817				pm_qos = <&qos_gpu_r>,
 818					 <&qos_gpu_w>;
 819			};
 820		};
 821
 822		reboot-mode {
 823			compatible = "syscon-reboot-mode";
 824			offset = <0x94>;
 825			mode-normal = <BOOT_NORMAL>;
 826			mode-recovery = <BOOT_RECOVERY>;
 827			mode-bootloader = <BOOT_FASTBOOT>;
 828			mode-loader = <BOOT_BL_DOWNLOAD>;
 829		};
 830	};
 831
 832	sgrf: syscon@ff740000 {
 833		compatible = "rockchip,rk3288-sgrf", "syscon";
 834		reg = <0x0 0xff740000 0x0 0x1000>;
 835	};
 836
 837	cru: clock-controller@ff760000 {
 838		compatible = "rockchip,rk3288-cru";
 839		reg = <0x0 0xff760000 0x0 0x1000>;
 840		rockchip,grf = <&grf>;
 841		#clock-cells = <1>;
 842		#reset-cells = <1>;
 843		assigned-clocks = <&cru PLL_GPLL>, <&cru PLL_CPLL>,
 844				  <&cru PLL_NPLL>, <&cru ACLK_CPU>,
 845				  <&cru HCLK_CPU>, <&cru PCLK_CPU>,
 846				  <&cru ACLK_PERI>, <&cru HCLK_PERI>,
 847				  <&cru PCLK_PERI>;
 848		assigned-clock-rates = <594000000>, <400000000>,
 849				       <500000000>, <300000000>,
 850				       <150000000>, <75000000>,
 851				       <300000000>, <150000000>,
 852				       <75000000>;
 853	};
 854
 855	grf: syscon@ff770000 {
 856		compatible = "rockchip,rk3288-grf", "syscon", "simple-mfd";
 857		reg = <0x0 0xff770000 0x0 0x1000>;
 858
 859		edp_phy: edp-phy {
 860			compatible = "rockchip,rk3288-dp-phy";
 861			clocks = <&cru SCLK_EDP_24M>;
 862			clock-names = "24m";
 863			#phy-cells = <0>;
 864			status = "disabled";
 865		};
 866
 867		io_domains: io-domains {
 868			compatible = "rockchip,rk3288-io-voltage-domain";
 869			status = "disabled";
 870		};
 871
 872		usbphy: usbphy {
 873			compatible = "rockchip,rk3288-usb-phy";
 874			#address-cells = <1>;
 875			#size-cells = <0>;
 876			status = "disabled";
 877
 878			usbphy0: usb-phy@320 {
 879				#phy-cells = <0>;
 880				reg = <0x320>;
 881				clocks = <&cru SCLK_OTGPHY0>;
 882				clock-names = "phyclk";
 883				#clock-cells = <0>;
 884			};
 885
 886			usbphy1: usb-phy@334 {
 887				#phy-cells = <0>;
 888				reg = <0x334>;
 889				clocks = <&cru SCLK_OTGPHY1>;
 890				clock-names = "phyclk";
 891				#clock-cells = <0>;
 892			};
 893
 894			usbphy2: usb-phy@348 {
 895				#phy-cells = <0>;
 896				reg = <0x348>;
 897				clocks = <&cru SCLK_OTGPHY2>;
 898				clock-names = "phyclk";
 899				#clock-cells = <0>;
 900			};
 901		};
 902	};
 903
 904	wdt: watchdog@ff800000 {
 905		compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
 906		reg = <0x0 0xff800000 0x0 0x100>;
 907		clocks = <&cru PCLK_WDT>;
 908		interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
 909		status = "disabled";
 910	};
 911
 912	spdif: sound@ff88b0000 {
 913		compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
 914		reg = <0x0 0xff8b0000 0x0 0x10000>;
 915		#sound-dai-cells = <0>;
 916		clock-names = "hclk", "mclk";
 917		clocks = <&cru HCLK_SPDIF8CH>, <&cru SCLK_SPDIF8CH>;
 918		dmas = <&dmac_bus_s 3>;
 919		dma-names = "tx";
 920		interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
 921		pinctrl-names = "default";
 922		pinctrl-0 = <&spdif_tx>;
 923		rockchip,grf = <&grf>;
 924		status = "disabled";
 925	};
 926
 927	i2s: i2s@ff890000 {
 928		compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
 929		reg = <0x0 0xff890000 0x0 0x10000>;
 930		#sound-dai-cells = <0>;
 931		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
 932		#address-cells = <1>;
 933		#size-cells = <0>;
 934		dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>;
 935		dma-names = "tx", "rx";
 936		clock-names = "i2s_hclk", "i2s_clk";
 937		clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
 938		pinctrl-names = "default";
 939		pinctrl-0 = <&i2s0_bus>;
 940		rockchip,playback-channels = <8>;
 941		rockchip,capture-channels = <2>;
 942		status = "disabled";
 943	};
 944
 945	crypto: cypto-controller@ff8a0000 {
 946		compatible = "rockchip,rk3288-crypto";
 947		reg = <0x0 0xff8a0000 0x0 0x4000>;
 948		interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
 949		clocks = <&cru ACLK_CRYPTO>, <&cru HCLK_CRYPTO>,
 950			 <&cru SCLK_CRYPTO>, <&cru ACLK_DMAC1>;
 951		clock-names = "aclk", "hclk", "sclk", "apb_pclk";
 952		resets = <&cru SRST_CRYPTO>;
 953		reset-names = "crypto-rst";
 954		status = "okay";
 955	};
 956
 957	iep_mmu: iommu@ff900800 {
 958		compatible = "rockchip,iommu";
 959		reg = <0x0 0xff900800 0x0 0x40>;
 960		interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
 961		interrupt-names = "iep_mmu";
 962		#iommu-cells = <0>;
 963		status = "disabled";
 964	};
 965
 966	isp_mmu: iommu@ff914000 {
 967		compatible = "rockchip,iommu";
 968		reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
 969		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
 970		interrupt-names = "isp_mmu";
 971		#iommu-cells = <0>;
 972		rockchip,disable-mmu-reset;
 973		status = "disabled";
 974	};
 975
 976	rga: rga@ff920000 {
 977		compatible = "rockchip,rk3288-rga";
 978		reg = <0x0 0xff920000 0x0 0x180>;
 979		interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
 980		clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru SCLK_RGA>;
 981		clock-names = "aclk", "hclk", "sclk";
 982		power-domains = <&power RK3288_PD_VIO>;
 983		resets = <&cru SRST_RGA_CORE>, <&cru SRST_RGA_AXI>, <&cru SRST_RGA_AHB>;
 984		reset-names = "core", "axi", "ahb";
 985	};
 986
 987	vopb: vop@ff930000 {
 988		compatible = "rockchip,rk3288-vop";
 989		reg = <0x0 0xff930000 0x0 0x19c>;
 990		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
 991		clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
 992		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
 993		power-domains = <&power RK3288_PD_VIO>;
 994		resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>;
 995		reset-names = "axi", "ahb", "dclk";
 996		iommus = <&vopb_mmu>;
 997		status = "disabled";
 998
 999		vopb_out: port {
1000			#address-cells = <1>;
1001			#size-cells = <0>;
1002
1003			vopb_out_hdmi: endpoint@0 {
1004				reg = <0>;
1005				remote-endpoint = <&hdmi_in_vopb>;
1006			};
1007
1008			vopb_out_edp: endpoint@1 {
1009				reg = <1>;
1010				remote-endpoint = <&edp_in_vopb>;
1011			};
1012
1013			vopb_out_mipi: endpoint@2 {
1014				reg = <2>;
1015				remote-endpoint = <&mipi_in_vopb>;
1016			};
1017
1018			vopb_out_lvds: endpoint@3 {
1019				reg = <3>;
1020				remote-endpoint = <&lvds_in_vopb>;
1021			};
1022		};
1023	};
1024
1025	vopb_mmu: iommu@ff930300 {
1026		compatible = "rockchip,iommu";
1027		reg = <0x0 0xff930300 0x0 0x100>;
1028		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
1029		interrupt-names = "vopb_mmu";
1030		power-domains = <&power RK3288_PD_VIO>;
1031		#iommu-cells = <0>;
1032		status = "disabled";
1033	};
1034
1035	vopl: vop@ff940000 {
1036		compatible = "rockchip,rk3288-vop";
1037		reg = <0x0 0xff940000 0x0 0x19c>;
1038		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
1039		clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
1040		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
1041		power-domains = <&power RK3288_PD_VIO>;
1042		resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
1043		reset-names = "axi", "ahb", "dclk";
1044		iommus = <&vopl_mmu>;
1045		status = "disabled";
1046
1047		vopl_out: port {
1048			#address-cells = <1>;
1049			#size-cells = <0>;
1050
1051			vopl_out_hdmi: endpoint@0 {
1052				reg = <0>;
1053				remote-endpoint = <&hdmi_in_vopl>;
1054			};
1055
1056			vopl_out_edp: endpoint@1 {
1057				reg = <1>;
1058				remote-endpoint = <&edp_in_vopl>;
1059			};
1060
1061			vopl_out_mipi: endpoint@2 {
1062				reg = <2>;
1063				remote-endpoint = <&mipi_in_vopl>;
1064			};
1065
1066			vopl_out_lvds: endpoint@3 {
1067				reg = <3>;
1068				remote-endpoint = <&lvds_in_vopl>;
1069			};
1070		};
1071	};
1072
1073	vopl_mmu: iommu@ff940300 {
1074		compatible = "rockchip,iommu";
1075		reg = <0x0 0xff940300 0x0 0x100>;
1076		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
1077		interrupt-names = "vopl_mmu";
1078		power-domains = <&power RK3288_PD_VIO>;
1079		#iommu-cells = <0>;
1080		status = "disabled";
1081	};
1082
1083	mipi_dsi: mipi@ff960000 {
1084		compatible = "rockchip,rk3288-mipi-dsi", "snps,dw-mipi-dsi";
1085		reg = <0x0 0xff960000 0x0 0x4000>;
1086		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
1087		clocks = <&cru SCLK_MIPIDSI_24M>, <&cru PCLK_MIPI_DSI0>;
1088		clock-names = "ref", "pclk";
1089		power-domains = <&power RK3288_PD_VIO>;
1090		rockchip,grf = <&grf>;
1091		#address-cells = <1>;
1092		#size-cells = <0>;
1093		status = "disabled";
1094
1095		ports {
 
 
 
 
1096			mipi_in: port {
1097				#address-cells = <1>;
1098				#size-cells = <0>;
1099				mipi_in_vopb: endpoint@0 {
1100					reg = <0>;
1101					remote-endpoint = <&vopb_out_mipi>;
1102				};
1103				mipi_in_vopl: endpoint@1 {
1104					reg = <1>;
1105					remote-endpoint = <&vopl_out_mipi>;
1106				};
1107			};
1108		};
1109	};
1110
1111	lvds: lvds@ff96c000 {
1112		compatible = "rockchip,rk3288-lvds";
1113		reg = <0x0 0xff96c000 0x0 0x4000>;
1114		clocks = <&cru PCLK_LVDS_PHY>;
1115		clock-names = "pclk_lvds";
1116		pinctrl-names = "lcdc";
1117		pinctrl-0 = <&lcdc_ctl>;
1118		power-domains = <&power RK3288_PD_VIO>;
1119		rockchip,grf = <&grf>;
1120		status = "disabled";
1121
1122		ports {
1123			#address-cells = <1>;
1124			#size-cells = <0>;
1125
1126			lvds_in: port@0 {
1127				reg = <0>;
1128
1129				#address-cells = <1>;
1130				#size-cells = <0>;
1131
1132				lvds_in_vopb: endpoint@0 {
1133					reg = <0>;
1134					remote-endpoint = <&vopb_out_lvds>;
1135				};
1136				lvds_in_vopl: endpoint@1 {
1137					reg = <1>;
1138					remote-endpoint = <&vopl_out_lvds>;
1139				};
1140			};
1141		};
1142	};
1143
1144	edp: dp@ff970000 {
1145		compatible = "rockchip,rk3288-dp";
1146		reg = <0x0 0xff970000 0x0 0x4000>;
1147		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1148		clocks = <&cru SCLK_EDP>, <&cru PCLK_EDP_CTRL>;
1149		clock-names = "dp", "pclk";
1150		phys = <&edp_phy>;
1151		phy-names = "dp";
1152		resets = <&cru SRST_EDP>;
1153		reset-names = "dp";
1154		rockchip,grf = <&grf>;
1155		status = "disabled";
1156
1157		ports {
1158			#address-cells = <1>;
1159			#size-cells = <0>;
1160			edp_in: port@0 {
1161				reg = <0>;
1162				#address-cells = <1>;
1163				#size-cells = <0>;
1164				edp_in_vopb: endpoint@0 {
1165					reg = <0>;
1166					remote-endpoint = <&vopb_out_edp>;
1167				};
1168				edp_in_vopl: endpoint@1 {
1169					reg = <1>;
1170					remote-endpoint = <&vopl_out_edp>;
1171				};
1172			};
1173		};
1174	};
1175
1176	hdmi: hdmi@ff980000 {
1177		compatible = "rockchip,rk3288-dw-hdmi";
1178		reg = <0x0 0xff980000 0x0 0x20000>;
1179		reg-io-width = <4>;
1180		#sound-dai-cells = <0>;
1181		rockchip,grf = <&grf>;
1182		interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
1183		clocks = <&cru  PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>, <&cru SCLK_HDMI_CEC>;
1184		clock-names = "iahb", "isfr", "cec";
1185		power-domains = <&power RK3288_PD_VIO>;
1186		status = "disabled";
1187
1188		ports {
1189			hdmi_in: port {
1190				#address-cells = <1>;
1191				#size-cells = <0>;
1192				hdmi_in_vopb: endpoint@0 {
1193					reg = <0>;
1194					remote-endpoint = <&vopb_out_hdmi>;
1195				};
1196				hdmi_in_vopl: endpoint@1 {
1197					reg = <1>;
1198					remote-endpoint = <&vopl_out_hdmi>;
1199				};
1200			};
1201		};
1202	};
1203
1204	vpu_mmu: iommu@ff9a0800 {
1205		compatible = "rockchip,iommu";
1206		reg = <0x0 0xff9a0800 0x0 0x100>;
1207		interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1208		interrupt-names = "vpu_mmu";
1209		#iommu-cells = <0>;
1210		status = "disabled";
1211	};
1212
1213	hevc_mmu: iommu@ff9c0440 {
1214		compatible = "rockchip,iommu";
1215		reg = <0x0 0xff9c0440 0x0 0x40>, <0x0 0xff9c0480 0x0 0x40>;
1216		interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
1217		interrupt-names = "hevc_mmu";
1218		#iommu-cells = <0>;
1219		status = "disabled";
1220	};
1221
1222	gpu: gpu@ffa30000 {
1223		compatible = "rockchip,rk3288-mali", "arm,mali-t760";
1224		reg = <0x0 0xffa30000 0x0 0x10000>;
1225		interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
1226			     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
1227			     <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
1228		interrupt-names = "job", "mmu", "gpu";
1229		clocks = <&cru ACLK_GPU>;
1230		operating-points-v2 = <&gpu_opp_table>;
1231		power-domains = <&power RK3288_PD_GPU>;
1232		status = "disabled";
1233	};
1234
1235	gpu_opp_table: gpu-opp-table {
1236		compatible = "operating-points-v2";
1237
1238		opp@100000000 {
1239			opp-hz = /bits/ 64 <100000000>;
1240			opp-microvolt = <950000>;
1241		};
1242		opp@200000000 {
1243			opp-hz = /bits/ 64 <200000000>;
1244			opp-microvolt = <950000>;
1245		};
1246		opp@300000000 {
1247			opp-hz = /bits/ 64 <300000000>;
1248			opp-microvolt = <1000000>;
1249		};
1250		opp@400000000 {
1251			opp-hz = /bits/ 64 <400000000>;
1252			opp-microvolt = <1100000>;
1253		};
1254		opp@500000000 {
1255			opp-hz = /bits/ 64 <500000000>;
1256			opp-microvolt = <1200000>;
1257		};
1258		opp@600000000 {
1259			opp-hz = /bits/ 64 <600000000>;
1260			opp-microvolt = <1250000>;
1261		};
1262	};
1263
1264	qos_gpu_r: qos@ffaa0000 {
1265		compatible = "syscon";
1266		reg = <0x0 0xffaa0000 0x0 0x20>;
1267	};
1268
1269	qos_gpu_w: qos@ffaa0080 {
1270		compatible = "syscon";
1271		reg = <0x0 0xffaa0080 0x0 0x20>;
1272	};
1273
1274	qos_vio1_vop: qos@ffad0000 {
1275		compatible = "syscon";
1276		reg = <0x0 0xffad0000 0x0 0x20>;
1277	};
1278
1279	qos_vio1_isp_w0: qos@ffad0100 {
1280		compatible = "syscon";
1281		reg = <0x0 0xffad0100 0x0 0x20>;
1282	};
1283
1284	qos_vio1_isp_w1: qos@ffad0180 {
1285		compatible = "syscon";
1286		reg = <0x0 0xffad0180 0x0 0x20>;
1287	};
1288
1289	qos_vio0_vop: qos@ffad0400 {
1290		compatible = "syscon";
1291		reg = <0x0 0xffad0400 0x0 0x20>;
1292	};
1293
1294	qos_vio0_vip: qos@ffad0480 {
1295		compatible = "syscon";
1296		reg = <0x0 0xffad0480 0x0 0x20>;
1297	};
1298
1299	qos_vio0_iep: qos@ffad0500 {
1300		compatible = "syscon";
1301		reg = <0x0 0xffad0500 0x0 0x20>;
1302	};
1303
1304	qos_vio2_rga_r: qos@ffad0800 {
1305		compatible = "syscon";
1306		reg = <0x0 0xffad0800 0x0 0x20>;
1307	};
1308
1309	qos_vio2_rga_w: qos@ffad0880 {
1310		compatible = "syscon";
1311		reg = <0x0 0xffad0880 0x0 0x20>;
1312	};
1313
1314	qos_vio1_isp_r: qos@ffad0900 {
1315		compatible = "syscon";
1316		reg = <0x0 0xffad0900 0x0 0x20>;
1317	};
1318
1319	qos_video: qos@ffae0000 {
1320		compatible = "syscon";
1321		reg = <0x0 0xffae0000 0x0 0x20>;
1322	};
1323
1324	qos_hevc_r: qos@ffaf0000 {
1325		compatible = "syscon";
1326		reg = <0x0 0xffaf0000 0x0 0x20>;
1327	};
1328
1329	qos_hevc_w: qos@ffaf0080 {
1330		compatible = "syscon";
1331		reg = <0x0 0xffaf0080 0x0 0x20>;
1332	};
1333
1334	gic: interrupt-controller@ffc01000 {
1335		compatible = "arm,gic-400";
1336		interrupt-controller;
1337		#interrupt-cells = <3>;
1338		#address-cells = <0>;
1339
1340		reg = <0x0 0xffc01000 0x0 0x1000>,
1341		      <0x0 0xffc02000 0x0 0x2000>,
1342		      <0x0 0xffc04000 0x0 0x2000>,
1343		      <0x0 0xffc06000 0x0 0x2000>;
1344		interrupts = <GIC_PPI 9 0xf04>;
1345	};
1346
1347	efuse: efuse@ffb40000 {
1348		compatible = "rockchip,rk3288-efuse";
1349		reg = <0x0 0xffb40000 0x0 0x20>;
1350		#address-cells = <1>;
1351		#size-cells = <1>;
1352		clocks = <&cru PCLK_EFUSE256>;
1353		clock-names = "pclk_efuse";
1354
1355		cpu_leakage: cpu_leakage@17 {
1356			reg = <0x17 0x1>;
1357		};
1358	};
1359
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1360	pinctrl: pinctrl {
1361		compatible = "rockchip,rk3288-pinctrl";
1362		rockchip,grf = <&grf>;
1363		rockchip,pmu = <&pmu>;
1364		#address-cells = <2>;
1365		#size-cells = <2>;
1366		ranges;
1367
1368		gpio0: gpio0@ff750000 {
1369			compatible = "rockchip,gpio-bank";
1370			reg = <0x0 0xff750000 0x0 0x100>;
1371			interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
1372			clocks = <&cru PCLK_GPIO0>;
1373
1374			gpio-controller;
1375			#gpio-cells = <2>;
1376
1377			interrupt-controller;
1378			#interrupt-cells = <2>;
1379		};
1380
1381		gpio1: gpio1@ff780000 {
1382			compatible = "rockchip,gpio-bank";
1383			reg = <0x0 0xff780000 0x0 0x100>;
1384			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1385			clocks = <&cru PCLK_GPIO1>;
1386
1387			gpio-controller;
1388			#gpio-cells = <2>;
1389
1390			interrupt-controller;
1391			#interrupt-cells = <2>;
1392		};
1393
1394		gpio2: gpio2@ff790000 {
1395			compatible = "rockchip,gpio-bank";
1396			reg = <0x0 0xff790000 0x0 0x100>;
1397			interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
1398			clocks = <&cru PCLK_GPIO2>;
1399
1400			gpio-controller;
1401			#gpio-cells = <2>;
1402
1403			interrupt-controller;
1404			#interrupt-cells = <2>;
1405		};
1406
1407		gpio3: gpio3@ff7a0000 {
1408			compatible = "rockchip,gpio-bank";
1409			reg = <0x0 0xff7a0000 0x0 0x100>;
1410			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
1411			clocks = <&cru PCLK_GPIO3>;
1412
1413			gpio-controller;
1414			#gpio-cells = <2>;
1415
1416			interrupt-controller;
1417			#interrupt-cells = <2>;
1418		};
1419
1420		gpio4: gpio4@ff7b0000 {
1421			compatible = "rockchip,gpio-bank";
1422			reg = <0x0 0xff7b0000 0x0 0x100>;
1423			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
1424			clocks = <&cru PCLK_GPIO4>;
1425
1426			gpio-controller;
1427			#gpio-cells = <2>;
1428
1429			interrupt-controller;
1430			#interrupt-cells = <2>;
1431		};
1432
1433		gpio5: gpio5@ff7c0000 {
1434			compatible = "rockchip,gpio-bank";
1435			reg = <0x0 0xff7c0000 0x0 0x100>;
1436			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1437			clocks = <&cru PCLK_GPIO5>;
1438
1439			gpio-controller;
1440			#gpio-cells = <2>;
1441
1442			interrupt-controller;
1443			#interrupt-cells = <2>;
1444		};
1445
1446		gpio6: gpio6@ff7d0000 {
1447			compatible = "rockchip,gpio-bank";
1448			reg = <0x0 0xff7d0000 0x0 0x100>;
1449			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
1450			clocks = <&cru PCLK_GPIO6>;
1451
1452			gpio-controller;
1453			#gpio-cells = <2>;
1454
1455			interrupt-controller;
1456			#interrupt-cells = <2>;
1457		};
1458
1459		gpio7: gpio7@ff7e0000 {
1460			compatible = "rockchip,gpio-bank";
1461			reg = <0x0 0xff7e0000 0x0 0x100>;
1462			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1463			clocks = <&cru PCLK_GPIO7>;
1464
1465			gpio-controller;
1466			#gpio-cells = <2>;
1467
1468			interrupt-controller;
1469			#interrupt-cells = <2>;
1470		};
1471
1472		gpio8: gpio8@ff7f0000 {
1473			compatible = "rockchip,gpio-bank";
1474			reg = <0x0 0xff7f0000 0x0 0x100>;
1475			interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1476			clocks = <&cru PCLK_GPIO8>;
1477
1478			gpio-controller;
1479			#gpio-cells = <2>;
1480
1481			interrupt-controller;
1482			#interrupt-cells = <2>;
1483		};
1484
1485		hdmi {
1486			hdmi_cec_c0: hdmi-cec-c0 {
1487				rockchip,pins = <7 RK_PC0 RK_FUNC_2 &pcfg_pull_none>;
1488			};
1489
1490			hdmi_cec_c7: hdmi-cec-c7 {
1491				rockchip,pins = <7 RK_PC7 RK_FUNC_4 &pcfg_pull_none>;
1492			};
1493
1494			hdmi_ddc: hdmi-ddc {
1495				rockchip,pins = <7 19 RK_FUNC_2 &pcfg_pull_none>,
1496						<7 20 RK_FUNC_2 &pcfg_pull_none>;
1497			};
1498		};
1499
1500		pcfg_pull_up: pcfg-pull-up {
1501			bias-pull-up;
1502		};
1503
1504		pcfg_pull_down: pcfg-pull-down {
1505			bias-pull-down;
1506		};
1507
1508		pcfg_pull_none: pcfg-pull-none {
1509			bias-disable;
1510		};
1511
1512		pcfg_pull_none_12ma: pcfg-pull-none-12ma {
1513			bias-disable;
1514			drive-strength = <12>;
1515		};
1516
1517		sleep {
1518			global_pwroff: global-pwroff {
1519				rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>;
1520			};
1521
1522			ddrio_pwroff: ddrio-pwroff {
1523				rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>;
1524			};
1525
1526			ddr0_retention: ddr0-retention {
1527				rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_up>;
1528			};
1529
1530			ddr1_retention: ddr1-retention {
1531				rockchip,pins = <0 3 RK_FUNC_1 &pcfg_pull_up>;
1532			};
1533		};
1534
1535		edp {
1536			edp_hpd: edp-hpd {
1537				rockchip,pins = <7 11 RK_FUNC_2 &pcfg_pull_down>;
1538			};
1539		};
1540
1541		i2c0 {
1542			i2c0_xfer: i2c0-xfer {
1543				rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>,
1544						<0 16 RK_FUNC_1 &pcfg_pull_none>;
1545			};
1546		};
1547
1548		i2c1 {
1549			i2c1_xfer: i2c1-xfer {
1550				rockchip,pins = <8 4 RK_FUNC_1 &pcfg_pull_none>,
1551						<8 5 RK_FUNC_1 &pcfg_pull_none>;
1552			};
1553		};
1554
1555		i2c2 {
1556			i2c2_xfer: i2c2-xfer {
1557				rockchip,pins = <6 9 RK_FUNC_1 &pcfg_pull_none>,
1558						<6 10 RK_FUNC_1 &pcfg_pull_none>;
1559			};
1560		};
1561
1562		i2c3 {
1563			i2c3_xfer: i2c3-xfer {
1564				rockchip,pins = <2 16 RK_FUNC_1 &pcfg_pull_none>,
1565						<2 17 RK_FUNC_1 &pcfg_pull_none>;
1566			};
1567		};
1568
1569		i2c4 {
1570			i2c4_xfer: i2c4-xfer {
1571				rockchip,pins = <7 17 RK_FUNC_1 &pcfg_pull_none>,
1572						<7 18 RK_FUNC_1 &pcfg_pull_none>;
1573			};
1574		};
1575
1576		i2c5 {
1577			i2c5_xfer: i2c5-xfer {
1578				rockchip,pins = <7 19 RK_FUNC_1 &pcfg_pull_none>,
1579						<7 20 RK_FUNC_1 &pcfg_pull_none>;
1580			};
1581		};
1582
1583		i2s0 {
1584			i2s0_bus: i2s0-bus {
1585				rockchip,pins = <6 0 RK_FUNC_1 &pcfg_pull_none>,
1586						<6 1 RK_FUNC_1 &pcfg_pull_none>,
1587						<6 2 RK_FUNC_1 &pcfg_pull_none>,
1588						<6 3 RK_FUNC_1 &pcfg_pull_none>,
1589						<6 4 RK_FUNC_1 &pcfg_pull_none>,
1590						<6 8 RK_FUNC_1 &pcfg_pull_none>;
1591			};
1592		};
1593
1594		lcdc {
1595			lcdc_ctl: lcdc-ctl {
1596				rockchip,pins = <1 24 RK_FUNC_1 &pcfg_pull_none>,
1597						<1 25 RK_FUNC_1 &pcfg_pull_none>,
1598						<1 26 RK_FUNC_1 &pcfg_pull_none>,
1599						<1 27 RK_FUNC_1 &pcfg_pull_none>;
1600			};
1601		};
1602
1603		sdmmc {
1604			sdmmc_clk: sdmmc-clk {
1605				rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>;
1606			};
1607
1608			sdmmc_cmd: sdmmc-cmd {
1609				rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>;
1610			};
1611
1612			sdmmc_cd: sdmmc-cd {
1613				rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>;
1614			};
1615
1616			sdmmc_bus1: sdmmc-bus1 {
1617				rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>;
1618			};
1619
1620			sdmmc_bus4: sdmmc-bus4 {
1621				rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>,
1622						<6 17 RK_FUNC_1 &pcfg_pull_up>,
1623						<6 18 RK_FUNC_1 &pcfg_pull_up>,
1624						<6 19 RK_FUNC_1 &pcfg_pull_up>;
1625			};
1626		};
1627
1628		sdio0 {
1629			sdio0_bus1: sdio0-bus1 {
1630				rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>;
1631			};
1632
1633			sdio0_bus4: sdio0-bus4 {
1634				rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>,
1635						<4 21 RK_FUNC_1 &pcfg_pull_up>,
1636						<4 22 RK_FUNC_1 &pcfg_pull_up>,
1637						<4 23 RK_FUNC_1 &pcfg_pull_up>;
1638			};
1639
1640			sdio0_cmd: sdio0-cmd {
1641				rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_up>;
1642			};
1643
1644			sdio0_clk: sdio0-clk {
1645				rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none>;
1646			};
1647
1648			sdio0_cd: sdio0-cd {
1649				rockchip,pins = <4 26 RK_FUNC_1 &pcfg_pull_up>;
1650			};
1651
1652			sdio0_wp: sdio0-wp {
1653				rockchip,pins = <4 27 RK_FUNC_1 &pcfg_pull_up>;
1654			};
1655
1656			sdio0_pwr: sdio0-pwr {
1657				rockchip,pins = <4 28 RK_FUNC_1 &pcfg_pull_up>;
1658			};
1659
1660			sdio0_bkpwr: sdio0-bkpwr {
1661				rockchip,pins = <4 29 RK_FUNC_1 &pcfg_pull_up>;
1662			};
1663
1664			sdio0_int: sdio0-int {
1665				rockchip,pins = <4 30 RK_FUNC_1 &pcfg_pull_up>;
1666			};
1667		};
1668
1669		sdio1 {
1670			sdio1_bus1: sdio1-bus1 {
1671				rockchip,pins = <3 24 4 &pcfg_pull_up>;
1672			};
1673
1674			sdio1_bus4: sdio1-bus4 {
1675				rockchip,pins = <3 24 4 &pcfg_pull_up>,
1676						<3 25 4 &pcfg_pull_up>,
1677						<3 26 4 &pcfg_pull_up>,
1678						<3 27 4 &pcfg_pull_up>;
1679			};
1680
1681			sdio1_cd: sdio1-cd {
1682				rockchip,pins = <3 28 4 &pcfg_pull_up>;
1683			};
1684
1685			sdio1_wp: sdio1-wp {
1686				rockchip,pins = <3 29 4 &pcfg_pull_up>;
1687			};
1688
1689			sdio1_bkpwr: sdio1-bkpwr {
1690				rockchip,pins = <3 30 4 &pcfg_pull_up>;
1691			};
1692
1693			sdio1_int: sdio1-int {
1694				rockchip,pins = <3 31 4 &pcfg_pull_up>;
1695			};
1696
1697			sdio1_cmd: sdio1-cmd {
1698				rockchip,pins = <4 6 4 &pcfg_pull_up>;
1699			};
1700
1701			sdio1_clk: sdio1-clk {
1702				rockchip,pins = <4 7 4 &pcfg_pull_none>;
1703			};
1704
1705			sdio1_pwr: sdio1-pwr {
1706				rockchip,pins = <4 9 4 &pcfg_pull_up>;
1707			};
1708		};
1709
1710		emmc {
1711			emmc_clk: emmc-clk {
1712				rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none>;
1713			};
1714
1715			emmc_cmd: emmc-cmd {
1716				rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_up>;
1717			};
1718
1719			emmc_pwr: emmc-pwr {
1720				rockchip,pins = <3 9 RK_FUNC_2 &pcfg_pull_up>;
1721			};
1722
1723			emmc_bus1: emmc-bus1 {
1724				rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>;
1725			};
1726
1727			emmc_bus4: emmc-bus4 {
1728				rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1729						<3 1 RK_FUNC_2 &pcfg_pull_up>,
1730						<3 2 RK_FUNC_2 &pcfg_pull_up>,
1731						<3 3 RK_FUNC_2 &pcfg_pull_up>;
1732			};
1733
1734			emmc_bus8: emmc-bus8 {
1735				rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1736						<3 1 RK_FUNC_2 &pcfg_pull_up>,
1737						<3 2 RK_FUNC_2 &pcfg_pull_up>,
1738						<3 3 RK_FUNC_2 &pcfg_pull_up>,
1739						<3 4 RK_FUNC_2 &pcfg_pull_up>,
1740						<3 5 RK_FUNC_2 &pcfg_pull_up>,
1741						<3 6 RK_FUNC_2 &pcfg_pull_up>,
1742						<3 7 RK_FUNC_2 &pcfg_pull_up>;
1743			};
1744		};
1745
1746		spi0 {
1747			spi0_clk: spi0-clk {
1748				rockchip,pins = <5 12 RK_FUNC_1 &pcfg_pull_up>;
1749			};
1750			spi0_cs0: spi0-cs0 {
1751				rockchip,pins = <5 13 RK_FUNC_1 &pcfg_pull_up>;
1752			};
1753			spi0_tx: spi0-tx {
1754				rockchip,pins = <5 14 RK_FUNC_1 &pcfg_pull_up>;
1755			};
1756			spi0_rx: spi0-rx {
1757				rockchip,pins = <5 15 RK_FUNC_1 &pcfg_pull_up>;
1758			};
1759			spi0_cs1: spi0-cs1 {
1760				rockchip,pins = <5 16 RK_FUNC_1 &pcfg_pull_up>;
1761			};
1762		};
1763		spi1 {
1764			spi1_clk: spi1-clk {
1765				rockchip,pins = <7 12 RK_FUNC_2 &pcfg_pull_up>;
1766			};
1767			spi1_cs0: spi1-cs0 {
1768				rockchip,pins = <7 13 RK_FUNC_2 &pcfg_pull_up>;
1769			};
1770			spi1_rx: spi1-rx {
1771				rockchip,pins = <7 14 RK_FUNC_2 &pcfg_pull_up>;
1772			};
1773			spi1_tx: spi1-tx {
1774				rockchip,pins = <7 15 RK_FUNC_2 &pcfg_pull_up>;
1775			};
1776		};
1777
1778		spi2 {
1779			spi2_cs1: spi2-cs1 {
1780				rockchip,pins = <8 3 RK_FUNC_1 &pcfg_pull_up>;
1781			};
1782			spi2_clk: spi2-clk {
1783				rockchip,pins = <8 6 RK_FUNC_1 &pcfg_pull_up>;
1784			};
1785			spi2_cs0: spi2-cs0 {
1786				rockchip,pins = <8 7 RK_FUNC_1 &pcfg_pull_up>;
1787			};
1788			spi2_rx: spi2-rx {
1789				rockchip,pins = <8 8 RK_FUNC_1 &pcfg_pull_up>;
1790			};
1791			spi2_tx: spi2-tx {
1792				rockchip,pins = <8 9 RK_FUNC_1 &pcfg_pull_up>;
1793			};
1794		};
1795
1796		uart0 {
1797			uart0_xfer: uart0-xfer {
1798				rockchip,pins = <4 16 RK_FUNC_1 &pcfg_pull_up>,
1799						<4 17 RK_FUNC_1 &pcfg_pull_none>;
1800			};
1801
1802			uart0_cts: uart0-cts {
1803				rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_up>;
1804			};
1805
1806			uart0_rts: uart0-rts {
1807				rockchip,pins = <4 19 RK_FUNC_1 &pcfg_pull_none>;
1808			};
1809		};
1810
1811		uart1 {
1812			uart1_xfer: uart1-xfer {
1813				rockchip,pins = <5 8 RK_FUNC_1 &pcfg_pull_up>,
1814						<5 9 RK_FUNC_1 &pcfg_pull_none>;
1815			};
1816
1817			uart1_cts: uart1-cts {
1818				rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_up>;
1819			};
1820
1821			uart1_rts: uart1-rts {
1822				rockchip,pins = <5 11 RK_FUNC_1 &pcfg_pull_none>;
1823			};
1824		};
1825
1826		uart2 {
1827			uart2_xfer: uart2-xfer {
1828				rockchip,pins = <7 22 RK_FUNC_1 &pcfg_pull_up>,
1829						<7 23 RK_FUNC_1 &pcfg_pull_none>;
1830			};
1831			/* no rts / cts for uart2 */
1832		};
1833
1834		uart3 {
1835			uart3_xfer: uart3-xfer {
1836				rockchip,pins = <7 7 RK_FUNC_1 &pcfg_pull_up>,
1837						<7 8 RK_FUNC_1 &pcfg_pull_none>;
1838			};
1839
1840			uart3_cts: uart3-cts {
1841				rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_up>;
1842			};
1843
1844			uart3_rts: uart3-rts {
1845				rockchip,pins = <7 10 RK_FUNC_1 &pcfg_pull_none>;
1846			};
1847		};
1848
1849		uart4 {
1850			uart4_xfer: uart4-xfer {
1851				rockchip,pins = <5 12 3 &pcfg_pull_up>,
1852						<5 13 3 &pcfg_pull_none>;
1853			};
1854
1855			uart4_cts: uart4-cts {
1856				rockchip,pins = <5 14 3 &pcfg_pull_up>;
1857			};
1858
1859			uart4_rts: uart4-rts {
1860				rockchip,pins = <5 15 3 &pcfg_pull_none>;
1861			};
1862		};
1863
1864		tsadc {
1865			otp_gpio: otp-gpio {
1866				rockchip,pins = <0 10 RK_FUNC_GPIO &pcfg_pull_none>;
1867			};
1868
1869			otp_out: otp-out {
1870				rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>;
1871			};
1872		};
1873
1874		pwm0 {
1875			pwm0_pin: pwm0-pin {
1876				rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>;
1877			};
1878		};
1879
1880		pwm1 {
1881			pwm1_pin: pwm1-pin {
1882				rockchip,pins = <7 1 RK_FUNC_1 &pcfg_pull_none>;
1883			};
1884		};
1885
1886		pwm2 {
1887			pwm2_pin: pwm2-pin {
1888				rockchip,pins = <7 22 3 &pcfg_pull_none>;
1889			};
1890		};
1891
1892		pwm3 {
1893			pwm3_pin: pwm3-pin {
1894				rockchip,pins = <7 23 3 &pcfg_pull_none>;
1895			};
1896		};
1897
1898		gmac {
1899			rgmii_pins: rgmii-pins {
1900				rockchip,pins = <3 30 3 &pcfg_pull_none>,
1901						<3 31 3 &pcfg_pull_none>,
1902						<3 26 3 &pcfg_pull_none>,
1903						<3 27 3 &pcfg_pull_none>,
1904						<3 28 3 &pcfg_pull_none_12ma>,
1905						<3 29 3 &pcfg_pull_none_12ma>,
1906						<3 24 3 &pcfg_pull_none_12ma>,
1907						<3 25 3 &pcfg_pull_none_12ma>,
1908						<4 0 3 &pcfg_pull_none>,
1909						<4 5 3 &pcfg_pull_none>,
1910						<4 6 3 &pcfg_pull_none>,
1911						<4 9 3 &pcfg_pull_none_12ma>,
1912						<4 4 3 &pcfg_pull_none_12ma>,
1913						<4 1 3 &pcfg_pull_none>,
1914						<4 3 3 &pcfg_pull_none>;
1915			};
1916
1917			rmii_pins: rmii-pins {
1918				rockchip,pins = <3 30 3 &pcfg_pull_none>,
1919						<3 31 3 &pcfg_pull_none>,
1920						<3 28 3 &pcfg_pull_none>,
1921						<3 29 3 &pcfg_pull_none>,
1922						<4 0 3 &pcfg_pull_none>,
1923						<4 5 3 &pcfg_pull_none>,
1924						<4 4 3 &pcfg_pull_none>,
1925						<4 1 3 &pcfg_pull_none>,
1926						<4 2 3 &pcfg_pull_none>,
1927						<4 3 3 &pcfg_pull_none>;
1928			};
1929		};
1930
1931		spdif {
1932			spdif_tx: spdif-tx {
1933				rockchip,pins = <RK_GPIO6 11 RK_FUNC_1 &pcfg_pull_none>;
1934			};
1935		};
1936	};
1937};
v4.6
   1/*
   2 * This file is dual-licensed: you can use it either under the terms
   3 * of the GPL or the X11 license, at your option. Note that this dual
   4 * licensing only applies to this file, and not this project as a
   5 * whole.
   6 *
   7 *  a) This file is free software; you can redistribute it and/or
   8 *     modify it under the terms of the GNU General Public License as
   9 *     published by the Free Software Foundation; either version 2 of the
  10 *     License, or (at your option) any later version.
  11 *
  12 *     This file is distributed in the hope that it will be useful,
  13 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
  14 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15 *     GNU General Public License for more details.
  16 *
  17 * Or, alternatively,
  18 *
  19 *  b) Permission is hereby granted, free of charge, to any person
  20 *     obtaining a copy of this software and associated documentation
  21 *     files (the "Software"), to deal in the Software without
  22 *     restriction, including without limitation the rights to use,
  23 *     copy, modify, merge, publish, distribute, sublicense, and/or
  24 *     sell copies of the Software, and to permit persons to whom the
  25 *     Software is furnished to do so, subject to the following
  26 *     conditions:
  27 *
  28 *     The above copyright notice and this permission notice shall be
  29 *     included in all copies or substantial portions of the Software.
  30 *
  31 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  32 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  33 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  34 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  35 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  36 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  37 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  38 *     OTHER DEALINGS IN THE SOFTWARE.
  39 */
  40
  41#include <dt-bindings/gpio/gpio.h>
  42#include <dt-bindings/interrupt-controller/irq.h>
  43#include <dt-bindings/interrupt-controller/arm-gic.h>
  44#include <dt-bindings/pinctrl/rockchip.h>
  45#include <dt-bindings/clock/rk3288-cru.h>
 
  46#include <dt-bindings/thermal/thermal.h>
  47#include <dt-bindings/power/rk3288-power.h>
  48#include "skeleton.dtsi"
  49
  50/ {
 
 
 
  51	compatible = "rockchip,rk3288";
  52
  53	interrupt-parent = <&gic>;
  54
  55	aliases {
  56		ethernet0 = &gmac;
  57		i2c0 = &i2c0;
  58		i2c1 = &i2c1;
  59		i2c2 = &i2c2;
  60		i2c3 = &i2c3;
  61		i2c4 = &i2c4;
  62		i2c5 = &i2c5;
  63		mshc0 = &emmc;
  64		mshc1 = &sdmmc;
  65		mshc2 = &sdio0;
  66		mshc3 = &sdio1;
  67		serial0 = &uart0;
  68		serial1 = &uart1;
  69		serial2 = &uart2;
  70		serial3 = &uart3;
  71		serial4 = &uart4;
  72		spi0 = &spi0;
  73		spi1 = &spi1;
  74		spi2 = &spi2;
  75	};
  76
  77	arm-pmu {
  78		compatible = "arm,cortex-a12-pmu";
  79		interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
  80			     <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
  81			     <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
  82			     <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
  83		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
  84	};
  85
  86	cpus {
  87		#address-cells = <1>;
  88		#size-cells = <0>;
  89		enable-method = "rockchip,rk3066-smp";
  90		rockchip,pmu = <&pmu>;
  91
  92		cpu0: cpu@500 {
  93			device_type = "cpu";
  94			compatible = "arm,cortex-a12";
  95			reg = <0x500>;
  96			resets = <&cru SRST_CORE0>;
  97			operating-points = <
  98				/* KHz    uV */
  99				1608000 1350000
 100				1512000 1300000
 101				1416000 1200000
 102				1200000 1100000
 103				1008000 1050000
 104				 816000 1000000
 105				 696000  950000
 106				 600000  900000
 107				 408000  900000
 108				 312000  900000
 109				 216000  900000
 110				 126000  900000
 111			>;
 112			#cooling-cells = <2>; /* min followed by max */
 113			clock-latency = <40000>;
 114			clocks = <&cru ARMCLK>;
 115		};
 116		cpu1: cpu@501 {
 117			device_type = "cpu";
 118			compatible = "arm,cortex-a12";
 119			reg = <0x501>;
 120			resets = <&cru SRST_CORE1>;
 121		};
 122		cpu2: cpu@502 {
 123			device_type = "cpu";
 124			compatible = "arm,cortex-a12";
 125			reg = <0x502>;
 126			resets = <&cru SRST_CORE2>;
 127		};
 128		cpu3: cpu@503 {
 129			device_type = "cpu";
 130			compatible = "arm,cortex-a12";
 131			reg = <0x503>;
 132			resets = <&cru SRST_CORE3>;
 133		};
 134	};
 135
 136	amba {
 137		compatible = "simple-bus";
 138		#address-cells = <1>;
 139		#size-cells = <1>;
 140		ranges;
 141
 142		dmac_peri: dma-controller@ff250000 {
 143			compatible = "arm,pl330", "arm,primecell";
 144			reg = <0xff250000 0x4000>;
 145			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
 146				     <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
 147			#dma-cells = <1>;
 148			arm,pl330-broken-no-flushp;
 149			clocks = <&cru ACLK_DMAC2>;
 150			clock-names = "apb_pclk";
 151		};
 152
 153		dmac_bus_ns: dma-controller@ff600000 {
 154			compatible = "arm,pl330", "arm,primecell";
 155			reg = <0xff600000 0x4000>;
 156			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
 157				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
 158			#dma-cells = <1>;
 159			arm,pl330-broken-no-flushp;
 160			clocks = <&cru ACLK_DMAC1>;
 161			clock-names = "apb_pclk";
 162			status = "disabled";
 163		};
 164
 165		dmac_bus_s: dma-controller@ffb20000 {
 166			compatible = "arm,pl330", "arm,primecell";
 167			reg = <0xffb20000 0x4000>;
 168			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
 169				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
 170			#dma-cells = <1>;
 171			arm,pl330-broken-no-flushp;
 172			clocks = <&cru ACLK_DMAC1>;
 173			clock-names = "apb_pclk";
 174		};
 175	};
 176
 177	reserved-memory {
 178		#address-cells = <1>;
 179		#size-cells = <1>;
 180		ranges;
 181
 182		/*
 183		 * The rk3288 cannot use the memory area above 0xfe000000
 184		 * for dma operations for some reason. While there is
 185		 * probably a better solution available somewhere, we
 186		 * haven't found it yet and while devices with 2GB of ram
 187		 * are not affected, this issue prevents 4GB from booting.
 188		 * So to make these devices at least bootable, block
 189		 * this area for the time being until the real solution
 190		 * is found.
 191		 */
 192		dma-unusable@fe000000 {
 193			reg = <0xfe000000 0x1000000>;
 194		};
 195	};
 196
 197	xin24m: oscillator {
 198		compatible = "fixed-clock";
 199		clock-frequency = <24000000>;
 200		clock-output-names = "xin24m";
 201		#clock-cells = <0>;
 202	};
 203
 204	timer {
 205		compatible = "arm,armv7-timer";
 206		arm,cpu-registers-not-fw-configured;
 207		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
 208			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
 209			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
 210			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
 211		clock-frequency = <24000000>;
 212	};
 213
 214	timer: timer@ff810000 {
 215		compatible = "rockchip,rk3288-timer";
 216		reg = <0xff810000 0x20>;
 217		interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
 218		clocks = <&xin24m>, <&cru PCLK_TIMER>;
 219		clock-names = "timer", "pclk";
 220	};
 221
 222	display-subsystem {
 223		compatible = "rockchip,display-subsystem";
 224		ports = <&vopl_out>, <&vopb_out>;
 225	};
 226
 227	sdmmc: dwmmc@ff0c0000 {
 228		compatible = "rockchip,rk3288-dw-mshc";
 229		clock-freq-min-max = <400000 150000000>;
 230		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
 231			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
 232		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
 233		fifo-depth = <0x100>;
 234		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
 235		reg = <0xff0c0000 0x4000>;
 
 
 236		status = "disabled";
 237	};
 238
 239	sdio0: dwmmc@ff0d0000 {
 240		compatible = "rockchip,rk3288-dw-mshc";
 241		clock-freq-min-max = <400000 150000000>;
 242		clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
 243			 <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
 244		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
 245		fifo-depth = <0x100>;
 246		interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
 247		reg = <0xff0d0000 0x4000>;
 
 
 248		status = "disabled";
 249	};
 250
 251	sdio1: dwmmc@ff0e0000 {
 252		compatible = "rockchip,rk3288-dw-mshc";
 253		clock-freq-min-max = <400000 150000000>;
 254		clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>,
 255			 <&cru SCLK_SDIO1_DRV>, <&cru SCLK_SDIO1_SAMPLE>;
 256		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
 257		fifo-depth = <0x100>;
 258		interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
 259		reg = <0xff0e0000 0x4000>;
 
 
 260		status = "disabled";
 261	};
 262
 263	emmc: dwmmc@ff0f0000 {
 264		compatible = "rockchip,rk3288-dw-mshc";
 265		clock-freq-min-max = <400000 150000000>;
 266		clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
 267			 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
 268		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
 269		fifo-depth = <0x100>;
 270		interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
 271		reg = <0xff0f0000 0x4000>;
 
 
 272		status = "disabled";
 273	};
 274
 275	saradc: saradc@ff100000 {
 276		compatible = "rockchip,saradc";
 277		reg = <0xff100000 0x100>;
 278		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
 279		#io-channel-cells = <1>;
 280		clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
 281		clock-names = "saradc", "apb_pclk";
 
 
 282		status = "disabled";
 283	};
 284
 285	spi0: spi@ff110000 {
 286		compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
 287		clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
 288		clock-names = "spiclk", "apb_pclk";
 289		dmas = <&dmac_peri 11>, <&dmac_peri 12>;
 290		dma-names = "tx", "rx";
 291		interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
 292		pinctrl-names = "default";
 293		pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
 294		reg = <0xff110000 0x1000>;
 295		#address-cells = <1>;
 296		#size-cells = <0>;
 297		status = "disabled";
 298	};
 299
 300	spi1: spi@ff120000 {
 301		compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
 302		clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
 303		clock-names = "spiclk", "apb_pclk";
 304		dmas = <&dmac_peri 13>, <&dmac_peri 14>;
 305		dma-names = "tx", "rx";
 306		interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
 307		pinctrl-names = "default";
 308		pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
 309		reg = <0xff120000 0x1000>;
 310		#address-cells = <1>;
 311		#size-cells = <0>;
 312		status = "disabled";
 313	};
 314
 315	spi2: spi@ff130000 {
 316		compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
 317		clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
 318		clock-names = "spiclk", "apb_pclk";
 319		dmas = <&dmac_peri 15>, <&dmac_peri 16>;
 320		dma-names = "tx", "rx";
 321		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
 322		pinctrl-names = "default";
 323		pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
 324		reg = <0xff130000 0x1000>;
 325		#address-cells = <1>;
 326		#size-cells = <0>;
 327		status = "disabled";
 328	};
 329
 330	i2c1: i2c@ff140000 {
 331		compatible = "rockchip,rk3288-i2c";
 332		reg = <0xff140000 0x1000>;
 333		interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
 334		#address-cells = <1>;
 335		#size-cells = <0>;
 336		clock-names = "i2c";
 337		clocks = <&cru PCLK_I2C1>;
 338		pinctrl-names = "default";
 339		pinctrl-0 = <&i2c1_xfer>;
 340		status = "disabled";
 341	};
 342
 343	i2c3: i2c@ff150000 {
 344		compatible = "rockchip,rk3288-i2c";
 345		reg = <0xff150000 0x1000>;
 346		interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
 347		#address-cells = <1>;
 348		#size-cells = <0>;
 349		clock-names = "i2c";
 350		clocks = <&cru PCLK_I2C3>;
 351		pinctrl-names = "default";
 352		pinctrl-0 = <&i2c3_xfer>;
 353		status = "disabled";
 354	};
 355
 356	i2c4: i2c@ff160000 {
 357		compatible = "rockchip,rk3288-i2c";
 358		reg = <0xff160000 0x1000>;
 359		interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
 360		#address-cells = <1>;
 361		#size-cells = <0>;
 362		clock-names = "i2c";
 363		clocks = <&cru PCLK_I2C4>;
 364		pinctrl-names = "default";
 365		pinctrl-0 = <&i2c4_xfer>;
 366		status = "disabled";
 367	};
 368
 369	i2c5: i2c@ff170000 {
 370		compatible = "rockchip,rk3288-i2c";
 371		reg = <0xff170000 0x1000>;
 372		interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
 373		#address-cells = <1>;
 374		#size-cells = <0>;
 375		clock-names = "i2c";
 376		clocks = <&cru PCLK_I2C5>;
 377		pinctrl-names = "default";
 378		pinctrl-0 = <&i2c5_xfer>;
 379		status = "disabled";
 380	};
 381
 382	uart0: serial@ff180000 {
 383		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
 384		reg = <0xff180000 0x100>;
 385		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
 386		reg-shift = <2>;
 387		reg-io-width = <4>;
 388		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
 389		clock-names = "baudclk", "apb_pclk";
 390		pinctrl-names = "default";
 391		pinctrl-0 = <&uart0_xfer>;
 392		status = "disabled";
 393	};
 394
 395	uart1: serial@ff190000 {
 396		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
 397		reg = <0xff190000 0x100>;
 398		interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
 399		reg-shift = <2>;
 400		reg-io-width = <4>;
 401		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
 402		clock-names = "baudclk", "apb_pclk";
 403		pinctrl-names = "default";
 404		pinctrl-0 = <&uart1_xfer>;
 405		status = "disabled";
 406	};
 407
 408	uart2: serial@ff690000 {
 409		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
 410		reg = <0xff690000 0x100>;
 411		interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
 412		reg-shift = <2>;
 413		reg-io-width = <4>;
 414		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
 415		clock-names = "baudclk", "apb_pclk";
 416		pinctrl-names = "default";
 417		pinctrl-0 = <&uart2_xfer>;
 418		status = "disabled";
 419	};
 420
 421	uart3: serial@ff1b0000 {
 422		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
 423		reg = <0xff1b0000 0x100>;
 424		interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
 425		reg-shift = <2>;
 426		reg-io-width = <4>;
 427		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
 428		clock-names = "baudclk", "apb_pclk";
 429		pinctrl-names = "default";
 430		pinctrl-0 = <&uart3_xfer>;
 431		status = "disabled";
 432	};
 433
 434	uart4: serial@ff1c0000 {
 435		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
 436		reg = <0xff1c0000 0x100>;
 437		interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
 438		reg-shift = <2>;
 439		reg-io-width = <4>;
 440		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
 441		clock-names = "baudclk", "apb_pclk";
 442		pinctrl-names = "default";
 443		pinctrl-0 = <&uart4_xfer>;
 444		status = "disabled";
 445	};
 446
 447	thermal-zones {
 448		#include "rk3288-thermal.dtsi"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 449	};
 450
 451	tsadc: tsadc@ff280000 {
 452		compatible = "rockchip,rk3288-tsadc";
 453		reg = <0xff280000 0x100>;
 454		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
 455		clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
 456		clock-names = "tsadc", "apb_pclk";
 457		resets = <&cru SRST_TSADC>;
 458		reset-names = "tsadc-apb";
 459		pinctrl-names = "init", "default", "sleep";
 460		pinctrl-0 = <&otp_gpio>;
 461		pinctrl-1 = <&otp_out>;
 462		pinctrl-2 = <&otp_gpio>;
 463		#thermal-sensor-cells = <1>;
 464		rockchip,hw-tshut-temp = <95000>;
 465		status = "disabled";
 466	};
 467
 468	gmac: ethernet@ff290000 {
 469		compatible = "rockchip,rk3288-gmac";
 470		reg = <0xff290000 0x10000>;
 471		interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
 472		interrupt-names = "macirq";
 
 473		rockchip,grf = <&grf>;
 474		clocks = <&cru SCLK_MAC>,
 475			<&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
 476			<&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
 477			<&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
 478		clock-names = "stmmaceth",
 479			"mac_clk_rx", "mac_clk_tx",
 480			"clk_mac_ref", "clk_mac_refout",
 481			"aclk_mac", "pclk_mac";
 482		resets = <&cru SRST_MAC>;
 483		reset-names = "stmmaceth";
 484		status = "disabled";
 485	};
 486
 487	usb_host0_ehci: usb@ff500000 {
 488		compatible = "generic-ehci";
 489		reg = <0xff500000 0x100>;
 490		interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
 491		clocks = <&cru HCLK_USBHOST0>;
 492		clock-names = "usbhost";
 493		phys = <&usbphy1>;
 494		phy-names = "usb";
 495		status = "disabled";
 496	};
 497
 498	/* NOTE: ohci@ff520000 doesn't actually work on hardware */
 499
 500	usb_host1: usb@ff540000 {
 501		compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
 502				"snps,dwc2";
 503		reg = <0xff540000 0x40000>;
 504		interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
 505		clocks = <&cru HCLK_USBHOST1>;
 506		clock-names = "otg";
 507		dr_mode = "host";
 508		phys = <&usbphy2>;
 509		phy-names = "usb2-phy";
 510		status = "disabled";
 511	};
 512
 513	usb_otg: usb@ff580000 {
 514		compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
 515				"snps,dwc2";
 516		reg = <0xff580000 0x40000>;
 517		interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
 518		clocks = <&cru HCLK_OTG0>;
 519		clock-names = "otg";
 520		dr_mode = "otg";
 521		g-np-tx-fifo-size = <16>;
 522		g-rx-fifo-size = <275>;
 523		g-tx-fifo-size = <256 128 128 64 64 32>;
 524		g-use-dma;
 525		phys = <&usbphy0>;
 526		phy-names = "usb2-phy";
 527		status = "disabled";
 528	};
 529
 530	usb_hsic: usb@ff5c0000 {
 531		compatible = "generic-ehci";
 532		reg = <0xff5c0000 0x100>;
 533		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
 534		clocks = <&cru HCLK_HSIC>;
 535		clock-names = "usbhost";
 536		status = "disabled";
 537	};
 538
 539	i2c0: i2c@ff650000 {
 540		compatible = "rockchip,rk3288-i2c";
 541		reg = <0xff650000 0x1000>;
 542		interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
 543		#address-cells = <1>;
 544		#size-cells = <0>;
 545		clock-names = "i2c";
 546		clocks = <&cru PCLK_I2C0>;
 547		pinctrl-names = "default";
 548		pinctrl-0 = <&i2c0_xfer>;
 549		status = "disabled";
 550	};
 551
 552	i2c2: i2c@ff660000 {
 553		compatible = "rockchip,rk3288-i2c";
 554		reg = <0xff660000 0x1000>;
 555		interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
 556		#address-cells = <1>;
 557		#size-cells = <0>;
 558		clock-names = "i2c";
 559		clocks = <&cru PCLK_I2C2>;
 560		pinctrl-names = "default";
 561		pinctrl-0 = <&i2c2_xfer>;
 562		status = "disabled";
 563	};
 564
 565	pwm0: pwm@ff680000 {
 566		compatible = "rockchip,rk3288-pwm";
 567		reg = <0xff680000 0x10>;
 568		#pwm-cells = <3>;
 569		pinctrl-names = "default";
 570		pinctrl-0 = <&pwm0_pin>;
 571		clocks = <&cru PCLK_PWM>;
 572		clock-names = "pwm";
 573		status = "disabled";
 574	};
 575
 576	pwm1: pwm@ff680010 {
 577		compatible = "rockchip,rk3288-pwm";
 578		reg = <0xff680010 0x10>;
 579		#pwm-cells = <3>;
 580		pinctrl-names = "default";
 581		pinctrl-0 = <&pwm1_pin>;
 582		clocks = <&cru PCLK_PWM>;
 583		clock-names = "pwm";
 584		status = "disabled";
 585	};
 586
 587	pwm2: pwm@ff680020 {
 588		compatible = "rockchip,rk3288-pwm";
 589		reg = <0xff680020 0x10>;
 590		#pwm-cells = <3>;
 591		pinctrl-names = "default";
 592		pinctrl-0 = <&pwm2_pin>;
 593		clocks = <&cru PCLK_PWM>;
 594		clock-names = "pwm";
 595		status = "disabled";
 596	};
 597
 598	pwm3: pwm@ff680030 {
 599		compatible = "rockchip,rk3288-pwm";
 600		reg = <0xff680030 0x10>;
 601		#pwm-cells = <2>;
 602		pinctrl-names = "default";
 603		pinctrl-0 = <&pwm3_pin>;
 604		clocks = <&cru PCLK_PWM>;
 605		clock-names = "pwm";
 606		status = "disabled";
 607	};
 608
 609	bus_intmem@ff700000 {
 610		compatible = "mmio-sram";
 611		reg = <0xff700000 0x18000>;
 612		#address-cells = <1>;
 613		#size-cells = <1>;
 614		ranges = <0 0xff700000 0x18000>;
 615		smp-sram@0 {
 616			compatible = "rockchip,rk3066-smp-sram";
 617			reg = <0x00 0x10>;
 618		};
 619	};
 620
 621	sram@ff720000 {
 622		compatible = "rockchip,rk3288-pmu-sram", "mmio-sram";
 623		reg = <0xff720000 0x1000>;
 624	};
 625
 626	pmu: power-management@ff730000 {
 627		compatible = "rockchip,rk3288-pmu", "syscon", "simple-mfd";
 628		reg = <0xff730000 0x100>;
 629
 630		power: power-controller {
 631			compatible = "rockchip,rk3288-power-controller";
 632			#power-domain-cells = <1>;
 633			#address-cells = <1>;
 634			#size-cells = <0>;
 635
 636			assigned-clocks = <&cru SCLK_EDP_24M>;
 637			assigned-clock-parents = <&xin24m>;
 638
 639			/*
 640			 * Note: Although SCLK_* are the working clocks
 641			 * of device without including on the NOC, needed for
 642			 * synchronous reset.
 643			 *
 644			 * The clocks on the which NOC:
 645			 * ACLK_IEP/ACLK_VIP/ACLK_VOP0 are on ACLK_VIO0_NIU.
 646			 * ACLK_ISP/ACLK_VOP1 are on ACLK_VIO1_NIU.
 647			 * ACLK_RGA is on ACLK_RGA_NIU.
 648			 * The others (HCLK_*,PLCK_*) are on HCLK_VIO_NIU.
 649			 *
 650			 * Which clock are device clocks:
 651			 *	clocks		devices
 652			 *	*_IEP		IEP:Image Enhancement Processor
 653			 *	*_ISP		ISP:Image Signal Processing
 654			 *	*_VIP		VIP:Video Input Processor
 655			 *	*_VOP*		VOP:Visual Output Processor
 656			 *	*_RGA		RGA
 657			 *	*_EDP*		EDP
 658			 *	*_LVDS_*	LVDS
 659			 *	*_HDMI		HDMI
 660			 *	*_MIPI_*	MIPI
 661			 */
 662			pd_vio {
 663				reg = <RK3288_PD_VIO>;
 664				clocks = <&cru ACLK_IEP>,
 665					 <&cru ACLK_ISP>,
 666					 <&cru ACLK_RGA>,
 667					 <&cru ACLK_VIP>,
 668					 <&cru ACLK_VOP0>,
 669					 <&cru ACLK_VOP1>,
 670					 <&cru DCLK_VOP0>,
 671					 <&cru DCLK_VOP1>,
 672					 <&cru HCLK_IEP>,
 673					 <&cru HCLK_ISP>,
 674					 <&cru HCLK_RGA>,
 675					 <&cru HCLK_VIP>,
 676					 <&cru HCLK_VOP0>,
 677					 <&cru HCLK_VOP1>,
 678					 <&cru PCLK_EDP_CTRL>,
 679					 <&cru PCLK_HDMI_CTRL>,
 680					 <&cru PCLK_LVDS_PHY>,
 681					 <&cru PCLK_MIPI_CSI>,
 682					 <&cru PCLK_MIPI_DSI0>,
 683					 <&cru PCLK_MIPI_DSI1>,
 684					 <&cru SCLK_EDP_24M>,
 685					 <&cru SCLK_EDP>,
 686					 <&cru SCLK_ISP_JPE>,
 687					 <&cru SCLK_ISP>,
 688					 <&cru SCLK_RGA>;
 
 
 
 
 
 
 
 
 
 689			};
 690
 691			/*
 692			 * Note: The following 3 are HEVC(H.265) clocks,
 693			 * and on the ACLK_HEVC_NIU (NOC).
 694			 */
 695			pd_hevc {
 696				reg = <RK3288_PD_HEVC>;
 697				clocks = <&cru ACLK_HEVC>,
 698					 <&cru SCLK_HEVC_CABAC>,
 699					 <&cru SCLK_HEVC_CORE>;
 
 
 700			};
 701
 702			/*
 703			 * Note: ACLK_VCODEC/HCLK_VCODEC are VCODEC
 704			 * (video endecoder & decoder) clocks that on the
 705			 * ACLK_VCODEC_NIU and HCLK_VCODEC_NIU (NOC).
 706			 */
 707			pd_video {
 708				reg = <RK3288_PD_VIDEO>;
 709				clocks = <&cru ACLK_VCODEC>,
 710					 <&cru HCLK_VCODEC>;
 
 711			};
 712
 713			/*
 714			 * Note: ACLK_GPU is the GPU clock,
 715			 * and on the ACLK_GPU_NIU (NOC).
 716			 */
 717			pd_gpu {
 718				reg = <RK3288_PD_GPU>;
 719				clocks = <&cru ACLK_GPU>;
 
 
 720			};
 721		};
 
 
 
 
 
 
 
 
 
 722	};
 723
 724	sgrf: syscon@ff740000 {
 725		compatible = "rockchip,rk3288-sgrf", "syscon";
 726		reg = <0xff740000 0x1000>;
 727	};
 728
 729	cru: clock-controller@ff760000 {
 730		compatible = "rockchip,rk3288-cru";
 731		reg = <0xff760000 0x1000>;
 732		rockchip,grf = <&grf>;
 733		#clock-cells = <1>;
 734		#reset-cells = <1>;
 735		assigned-clocks = <&cru PLL_GPLL>, <&cru PLL_CPLL>,
 736				  <&cru PLL_NPLL>, <&cru ACLK_CPU>,
 737				  <&cru HCLK_CPU>, <&cru PCLK_CPU>,
 738				  <&cru ACLK_PERI>, <&cru HCLK_PERI>,
 739				  <&cru PCLK_PERI>;
 740		assigned-clock-rates = <594000000>, <400000000>,
 741				       <500000000>, <300000000>,
 742				       <150000000>, <75000000>,
 743				       <300000000>, <150000000>,
 744				       <75000000>;
 745	};
 746
 747	grf: syscon@ff770000 {
 748		compatible = "rockchip,rk3288-grf", "syscon";
 749		reg = <0xff770000 0x1000>;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 750	};
 751
 752	wdt: watchdog@ff800000 {
 753		compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
 754		reg = <0xff800000 0x100>;
 755		clocks = <&cru PCLK_WDT>;
 756		interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
 757		status = "disabled";
 758	};
 759
 760	spdif: sound@ff88b0000 {
 761		compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
 762		reg = <0xff8b0000 0x10000>;
 763		#sound-dai-cells = <0>;
 764		clock-names = "hclk", "mclk";
 765		clocks = <&cru HCLK_SPDIF8CH>, <&cru SCLK_SPDIF8CH>;
 766		dmas = <&dmac_bus_s 3>;
 767		dma-names = "tx";
 768		interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
 769		pinctrl-names = "default";
 770		pinctrl-0 = <&spdif_tx>;
 771		rockchip,grf = <&grf>;
 772		status = "disabled";
 773	};
 774
 775	i2s: i2s@ff890000 {
 776		compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
 777		reg = <0xff890000 0x10000>;
 778		interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
 
 779		#address-cells = <1>;
 780		#size-cells = <0>;
 781		dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>;
 782		dma-names = "tx", "rx";
 783		clock-names = "i2s_hclk", "i2s_clk";
 784		clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
 785		pinctrl-names = "default";
 786		pinctrl-0 = <&i2s0_bus>;
 787		rockchip,playback-channels = <8>;
 788		rockchip,capture-channels = <2>;
 789		status = "disabled";
 790	};
 791
 792	crypto: cypto-controller@ff8a0000 {
 793		compatible = "rockchip,rk3288-crypto";
 794		reg = <0xff8a0000 0x4000>;
 795		interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
 796		clocks = <&cru ACLK_CRYPTO>, <&cru HCLK_CRYPTO>,
 797			 <&cru SCLK_CRYPTO>, <&cru ACLK_DMAC1>;
 798		clock-names = "aclk", "hclk", "sclk", "apb_pclk";
 799		resets = <&cru SRST_CRYPTO>;
 800		reset-names = "crypto-rst";
 801		status = "okay";
 802	};
 803
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 804	vopb: vop@ff930000 {
 805		compatible = "rockchip,rk3288-vop";
 806		reg = <0xff930000 0x19c>;
 807		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
 808		clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
 809		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
 810		power-domains = <&power RK3288_PD_VIO>;
 811		resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>;
 812		reset-names = "axi", "ahb", "dclk";
 813		iommus = <&vopb_mmu>;
 814		status = "disabled";
 815
 816		vopb_out: port {
 817			#address-cells = <1>;
 818			#size-cells = <0>;
 819
 820			vopb_out_hdmi: endpoint@0 {
 821				reg = <0>;
 822				remote-endpoint = <&hdmi_in_vopb>;
 823			};
 
 
 
 
 
 
 824			vopb_out_mipi: endpoint@2 {
 825				reg = <2>;
 826				remote-endpoint = <&mipi_in_vopb>;
 827			};
 
 
 
 
 
 828		};
 829	};
 830
 831	vopb_mmu: iommu@ff930300 {
 832		compatible = "rockchip,iommu";
 833		reg = <0xff930300 0x100>;
 834		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
 835		interrupt-names = "vopb_mmu";
 836		power-domains = <&power RK3288_PD_VIO>;
 837		#iommu-cells = <0>;
 838		status = "disabled";
 839	};
 840
 841	vopl: vop@ff940000 {
 842		compatible = "rockchip,rk3288-vop";
 843		reg = <0xff940000 0x19c>;
 844		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
 845		clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
 846		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
 847		power-domains = <&power RK3288_PD_VIO>;
 848		resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
 849		reset-names = "axi", "ahb", "dclk";
 850		iommus = <&vopl_mmu>;
 851		status = "disabled";
 852
 853		vopl_out: port {
 854			#address-cells = <1>;
 855			#size-cells = <0>;
 856
 857			vopl_out_hdmi: endpoint@0 {
 858				reg = <0>;
 859				remote-endpoint = <&hdmi_in_vopl>;
 860			};
 
 
 
 
 
 
 861			vopl_out_mipi: endpoint@2 {
 862				reg = <2>;
 863				remote-endpoint = <&mipi_in_vopl>;
 864			};
 
 
 
 
 
 865		};
 866	};
 867
 868	vopl_mmu: iommu@ff940300 {
 869		compatible = "rockchip,iommu";
 870		reg = <0xff940300 0x100>;
 871		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
 872		interrupt-names = "vopl_mmu";
 873		power-domains = <&power RK3288_PD_VIO>;
 874		#iommu-cells = <0>;
 875		status = "disabled";
 876	};
 877
 878	mipi_dsi: mipi@ff960000 {
 879		compatible = "rockchip,rk3288-mipi-dsi", "snps,dw-mipi-dsi";
 880		reg = <0xff960000 0x4000>;
 881		interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
 882		clocks = <&cru SCLK_MIPIDSI_24M>, <&cru PCLK_MIPI_DSI0>;
 883		clock-names = "ref", "pclk";
 
 884		rockchip,grf = <&grf>;
 885		#address-cells = <1>;
 886		#size-cells = <0>;
 887		status = "disabled";
 888
 889		ports {
 890			#address-cells = <1>;
 891			#size-cells = <0>;
 892			reg = <1>;
 893
 894			mipi_in: port {
 895				#address-cells = <1>;
 896				#size-cells = <0>;
 897				mipi_in_vopb: endpoint@0 {
 898					reg = <0>;
 899					remote-endpoint = <&vopb_out_mipi>;
 900				};
 901				mipi_in_vopl: endpoint@1 {
 902					reg = <1>;
 903					remote-endpoint = <&vopl_out_mipi>;
 904				};
 905			};
 906		};
 907	};
 908
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 909	hdmi: hdmi@ff980000 {
 910		compatible = "rockchip,rk3288-dw-hdmi";
 911		reg = <0xff980000 0x20000>;
 912		reg-io-width = <4>;
 
 913		rockchip,grf = <&grf>;
 914		interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
 915		clocks = <&cru  PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
 916		clock-names = "iahb", "isfr";
 917		power-domains = <&power RK3288_PD_VIO>;
 918		status = "disabled";
 919
 920		ports {
 921			hdmi_in: port {
 922				#address-cells = <1>;
 923				#size-cells = <0>;
 924				hdmi_in_vopb: endpoint@0 {
 925					reg = <0>;
 926					remote-endpoint = <&vopb_out_hdmi>;
 927				};
 928				hdmi_in_vopl: endpoint@1 {
 929					reg = <1>;
 930					remote-endpoint = <&vopl_out_hdmi>;
 931				};
 932			};
 933		};
 934	};
 935
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 936	gic: interrupt-controller@ffc01000 {
 937		compatible = "arm,gic-400";
 938		interrupt-controller;
 939		#interrupt-cells = <3>;
 940		#address-cells = <0>;
 941
 942		reg = <0xffc01000 0x1000>,
 943		      <0xffc02000 0x1000>,
 944		      <0xffc04000 0x2000>,
 945		      <0xffc06000 0x2000>;
 946		interrupts = <GIC_PPI 9 0xf04>;
 947	};
 948
 949	efuse: efuse@ffb40000 {
 950		compatible = "rockchip,rockchip-efuse";
 951		reg = <0xffb40000 0x20>;
 952		#address-cells = <1>;
 953		#size-cells = <1>;
 954		clocks = <&cru PCLK_EFUSE256>;
 955		clock-names = "pclk_efuse";
 956
 957		cpu_leakage: cpu_leakage@17 {
 958			reg = <0x17 0x1>;
 959		};
 960	};
 961
 962	usbphy: phy {
 963		compatible = "rockchip,rk3288-usb-phy";
 964		rockchip,grf = <&grf>;
 965		#address-cells = <1>;
 966		#size-cells = <0>;
 967		status = "disabled";
 968
 969		usbphy0: usb-phy0 {
 970			#phy-cells = <0>;
 971			reg = <0x320>;
 972			clocks = <&cru SCLK_OTGPHY0>;
 973			clock-names = "phyclk";
 974			#clock-cells = <0>;
 975		};
 976
 977		usbphy1: usb-phy1 {
 978			#phy-cells = <0>;
 979			reg = <0x334>;
 980			clocks = <&cru SCLK_OTGPHY1>;
 981			clock-names = "phyclk";
 982			#clock-cells = <0>;
 983		};
 984
 985		usbphy2: usb-phy2 {
 986			#phy-cells = <0>;
 987			reg = <0x348>;
 988			clocks = <&cru SCLK_OTGPHY2>;
 989			clock-names = "phyclk";
 990			#clock-cells = <0>;
 991		};
 992	};
 993
 994	pinctrl: pinctrl {
 995		compatible = "rockchip,rk3288-pinctrl";
 996		rockchip,grf = <&grf>;
 997		rockchip,pmu = <&pmu>;
 998		#address-cells = <1>;
 999		#size-cells = <1>;
1000		ranges;
1001
1002		gpio0: gpio0@ff750000 {
1003			compatible = "rockchip,gpio-bank";
1004			reg =	<0xff750000 0x100>;
1005			interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
1006			clocks = <&cru PCLK_GPIO0>;
1007
1008			gpio-controller;
1009			#gpio-cells = <2>;
1010
1011			interrupt-controller;
1012			#interrupt-cells = <2>;
1013		};
1014
1015		gpio1: gpio1@ff780000 {
1016			compatible = "rockchip,gpio-bank";
1017			reg = <0xff780000 0x100>;
1018			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1019			clocks = <&cru PCLK_GPIO1>;
1020
1021			gpio-controller;
1022			#gpio-cells = <2>;
1023
1024			interrupt-controller;
1025			#interrupt-cells = <2>;
1026		};
1027
1028		gpio2: gpio2@ff790000 {
1029			compatible = "rockchip,gpio-bank";
1030			reg = <0xff790000 0x100>;
1031			interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
1032			clocks = <&cru PCLK_GPIO2>;
1033
1034			gpio-controller;
1035			#gpio-cells = <2>;
1036
1037			interrupt-controller;
1038			#interrupt-cells = <2>;
1039		};
1040
1041		gpio3: gpio3@ff7a0000 {
1042			compatible = "rockchip,gpio-bank";
1043			reg = <0xff7a0000 0x100>;
1044			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
1045			clocks = <&cru PCLK_GPIO3>;
1046
1047			gpio-controller;
1048			#gpio-cells = <2>;
1049
1050			interrupt-controller;
1051			#interrupt-cells = <2>;
1052		};
1053
1054		gpio4: gpio4@ff7b0000 {
1055			compatible = "rockchip,gpio-bank";
1056			reg = <0xff7b0000 0x100>;
1057			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
1058			clocks = <&cru PCLK_GPIO4>;
1059
1060			gpio-controller;
1061			#gpio-cells = <2>;
1062
1063			interrupt-controller;
1064			#interrupt-cells = <2>;
1065		};
1066
1067		gpio5: gpio5@ff7c0000 {
1068			compatible = "rockchip,gpio-bank";
1069			reg = <0xff7c0000 0x100>;
1070			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1071			clocks = <&cru PCLK_GPIO5>;
1072
1073			gpio-controller;
1074			#gpio-cells = <2>;
1075
1076			interrupt-controller;
1077			#interrupt-cells = <2>;
1078		};
1079
1080		gpio6: gpio6@ff7d0000 {
1081			compatible = "rockchip,gpio-bank";
1082			reg = <0xff7d0000 0x100>;
1083			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
1084			clocks = <&cru PCLK_GPIO6>;
1085
1086			gpio-controller;
1087			#gpio-cells = <2>;
1088
1089			interrupt-controller;
1090			#interrupt-cells = <2>;
1091		};
1092
1093		gpio7: gpio7@ff7e0000 {
1094			compatible = "rockchip,gpio-bank";
1095			reg = <0xff7e0000 0x100>;
1096			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1097			clocks = <&cru PCLK_GPIO7>;
1098
1099			gpio-controller;
1100			#gpio-cells = <2>;
1101
1102			interrupt-controller;
1103			#interrupt-cells = <2>;
1104		};
1105
1106		gpio8: gpio8@ff7f0000 {
1107			compatible = "rockchip,gpio-bank";
1108			reg = <0xff7f0000 0x100>;
1109			interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1110			clocks = <&cru PCLK_GPIO8>;
1111
1112			gpio-controller;
1113			#gpio-cells = <2>;
1114
1115			interrupt-controller;
1116			#interrupt-cells = <2>;
1117		};
1118
1119		hdmi {
 
 
 
 
 
 
 
 
1120			hdmi_ddc: hdmi-ddc {
1121				rockchip,pins = <7 19 RK_FUNC_2 &pcfg_pull_none>,
1122						<7 20 RK_FUNC_2 &pcfg_pull_none>;
1123			};
1124		};
1125
1126		pcfg_pull_up: pcfg-pull-up {
1127			bias-pull-up;
1128		};
1129
1130		pcfg_pull_down: pcfg-pull-down {
1131			bias-pull-down;
1132		};
1133
1134		pcfg_pull_none: pcfg-pull-none {
1135			bias-disable;
1136		};
1137
1138		pcfg_pull_none_12ma: pcfg-pull-none-12ma {
1139			bias-disable;
1140			drive-strength = <12>;
1141		};
1142
1143		sleep {
1144			global_pwroff: global-pwroff {
1145				rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>;
1146			};
1147
1148			ddrio_pwroff: ddrio-pwroff {
1149				rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>;
1150			};
1151
1152			ddr0_retention: ddr0-retention {
1153				rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_up>;
1154			};
1155
1156			ddr1_retention: ddr1-retention {
1157				rockchip,pins = <0 3 RK_FUNC_1 &pcfg_pull_up>;
1158			};
1159		};
1160
 
 
 
 
 
 
1161		i2c0 {
1162			i2c0_xfer: i2c0-xfer {
1163				rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>,
1164						<0 16 RK_FUNC_1 &pcfg_pull_none>;
1165			};
1166		};
1167
1168		i2c1 {
1169			i2c1_xfer: i2c1-xfer {
1170				rockchip,pins = <8 4 RK_FUNC_1 &pcfg_pull_none>,
1171						<8 5 RK_FUNC_1 &pcfg_pull_none>;
1172			};
1173		};
1174
1175		i2c2 {
1176			i2c2_xfer: i2c2-xfer {
1177				rockchip,pins = <6 9 RK_FUNC_1 &pcfg_pull_none>,
1178						<6 10 RK_FUNC_1 &pcfg_pull_none>;
1179			};
1180		};
1181
1182		i2c3 {
1183			i2c3_xfer: i2c3-xfer {
1184				rockchip,pins = <2 16 RK_FUNC_1 &pcfg_pull_none>,
1185						<2 17 RK_FUNC_1 &pcfg_pull_none>;
1186			};
1187		};
1188
1189		i2c4 {
1190			i2c4_xfer: i2c4-xfer {
1191				rockchip,pins = <7 17 RK_FUNC_1 &pcfg_pull_none>,
1192						<7 18 RK_FUNC_1 &pcfg_pull_none>;
1193			};
1194		};
1195
1196		i2c5 {
1197			i2c5_xfer: i2c5-xfer {
1198				rockchip,pins = <7 19 RK_FUNC_1 &pcfg_pull_none>,
1199						<7 20 RK_FUNC_1 &pcfg_pull_none>;
1200			};
1201		};
1202
1203		i2s0 {
1204			i2s0_bus: i2s0-bus {
1205				rockchip,pins = <6 0 RK_FUNC_1 &pcfg_pull_none>,
1206						<6 1 RK_FUNC_1 &pcfg_pull_none>,
1207						<6 2 RK_FUNC_1 &pcfg_pull_none>,
1208						<6 3 RK_FUNC_1 &pcfg_pull_none>,
1209						<6 4 RK_FUNC_1 &pcfg_pull_none>,
1210						<6 8 RK_FUNC_1 &pcfg_pull_none>;
 
 
 
 
 
 
 
 
 
1211			};
1212		};
1213
1214		sdmmc {
1215			sdmmc_clk: sdmmc-clk {
1216				rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>;
1217			};
1218
1219			sdmmc_cmd: sdmmc-cmd {
1220				rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>;
1221			};
1222
1223			sdmmc_cd: sdmmc-cd {
1224				rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>;
1225			};
1226
1227			sdmmc_bus1: sdmmc-bus1 {
1228				rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>;
1229			};
1230
1231			sdmmc_bus4: sdmmc-bus4 {
1232				rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>,
1233						<6 17 RK_FUNC_1 &pcfg_pull_up>,
1234						<6 18 RK_FUNC_1 &pcfg_pull_up>,
1235						<6 19 RK_FUNC_1 &pcfg_pull_up>;
1236			};
1237		};
1238
1239		sdio0 {
1240			sdio0_bus1: sdio0-bus1 {
1241				rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>;
1242			};
1243
1244			sdio0_bus4: sdio0-bus4 {
1245				rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>,
1246						<4 21 RK_FUNC_1 &pcfg_pull_up>,
1247						<4 22 RK_FUNC_1 &pcfg_pull_up>,
1248						<4 23 RK_FUNC_1 &pcfg_pull_up>;
1249			};
1250
1251			sdio0_cmd: sdio0-cmd {
1252				rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_up>;
1253			};
1254
1255			sdio0_clk: sdio0-clk {
1256				rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none>;
1257			};
1258
1259			sdio0_cd: sdio0-cd {
1260				rockchip,pins = <4 26 RK_FUNC_1 &pcfg_pull_up>;
1261			};
1262
1263			sdio0_wp: sdio0-wp {
1264				rockchip,pins = <4 27 RK_FUNC_1 &pcfg_pull_up>;
1265			};
1266
1267			sdio0_pwr: sdio0-pwr {
1268				rockchip,pins = <4 28 RK_FUNC_1 &pcfg_pull_up>;
1269			};
1270
1271			sdio0_bkpwr: sdio0-bkpwr {
1272				rockchip,pins = <4 29 RK_FUNC_1 &pcfg_pull_up>;
1273			};
1274
1275			sdio0_int: sdio0-int {
1276				rockchip,pins = <4 30 RK_FUNC_1 &pcfg_pull_up>;
1277			};
1278		};
1279
1280		sdio1 {
1281			sdio1_bus1: sdio1-bus1 {
1282				rockchip,pins = <3 24 4 &pcfg_pull_up>;
1283			};
1284
1285			sdio1_bus4: sdio1-bus4 {
1286				rockchip,pins = <3 24 4 &pcfg_pull_up>,
1287						<3 25 4 &pcfg_pull_up>,
1288						<3 26 4 &pcfg_pull_up>,
1289						<3 27 4 &pcfg_pull_up>;
1290			};
1291
1292			sdio1_cd: sdio1-cd {
1293				rockchip,pins = <3 28 4 &pcfg_pull_up>;
1294			};
1295
1296			sdio1_wp: sdio1-wp {
1297				rockchip,pins = <3 29 4 &pcfg_pull_up>;
1298			};
1299
1300			sdio1_bkpwr: sdio1-bkpwr {
1301				rockchip,pins = <3 30 4 &pcfg_pull_up>;
1302			};
1303
1304			sdio1_int: sdio1-int {
1305				rockchip,pins = <3 31 4 &pcfg_pull_up>;
1306			};
1307
1308			sdio1_cmd: sdio1-cmd {
1309				rockchip,pins = <4 6 4 &pcfg_pull_up>;
1310			};
1311
1312			sdio1_clk: sdio1-clk {
1313				rockchip,pins = <4 7 4 &pcfg_pull_none>;
1314			};
1315
1316			sdio1_pwr: sdio1-pwr {
1317				rockchip,pins = <4 9 4 &pcfg_pull_up>;
1318			};
1319		};
1320
1321		emmc {
1322			emmc_clk: emmc-clk {
1323				rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none>;
1324			};
1325
1326			emmc_cmd: emmc-cmd {
1327				rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_up>;
1328			};
1329
1330			emmc_pwr: emmc-pwr {
1331				rockchip,pins = <3 9 RK_FUNC_2 &pcfg_pull_up>;
1332			};
1333
1334			emmc_bus1: emmc-bus1 {
1335				rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>;
1336			};
1337
1338			emmc_bus4: emmc-bus4 {
1339				rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1340						<3 1 RK_FUNC_2 &pcfg_pull_up>,
1341						<3 2 RK_FUNC_2 &pcfg_pull_up>,
1342						<3 3 RK_FUNC_2 &pcfg_pull_up>;
1343			};
1344
1345			emmc_bus8: emmc-bus8 {
1346				rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1347						<3 1 RK_FUNC_2 &pcfg_pull_up>,
1348						<3 2 RK_FUNC_2 &pcfg_pull_up>,
1349						<3 3 RK_FUNC_2 &pcfg_pull_up>,
1350						<3 4 RK_FUNC_2 &pcfg_pull_up>,
1351						<3 5 RK_FUNC_2 &pcfg_pull_up>,
1352						<3 6 RK_FUNC_2 &pcfg_pull_up>,
1353						<3 7 RK_FUNC_2 &pcfg_pull_up>;
1354			};
1355		};
1356
1357		spi0 {
1358			spi0_clk: spi0-clk {
1359				rockchip,pins = <5 12 RK_FUNC_1 &pcfg_pull_up>;
1360			};
1361			spi0_cs0: spi0-cs0 {
1362				rockchip,pins = <5 13 RK_FUNC_1 &pcfg_pull_up>;
1363			};
1364			spi0_tx: spi0-tx {
1365				rockchip,pins = <5 14 RK_FUNC_1 &pcfg_pull_up>;
1366			};
1367			spi0_rx: spi0-rx {
1368				rockchip,pins = <5 15 RK_FUNC_1 &pcfg_pull_up>;
1369			};
1370			spi0_cs1: spi0-cs1 {
1371				rockchip,pins = <5 16 RK_FUNC_1 &pcfg_pull_up>;
1372			};
1373		};
1374		spi1 {
1375			spi1_clk: spi1-clk {
1376				rockchip,pins = <7 12 RK_FUNC_2 &pcfg_pull_up>;
1377			};
1378			spi1_cs0: spi1-cs0 {
1379				rockchip,pins = <7 13 RK_FUNC_2 &pcfg_pull_up>;
1380			};
1381			spi1_rx: spi1-rx {
1382				rockchip,pins = <7 14 RK_FUNC_2 &pcfg_pull_up>;
1383			};
1384			spi1_tx: spi1-tx {
1385				rockchip,pins = <7 15 RK_FUNC_2 &pcfg_pull_up>;
1386			};
1387		};
1388
1389		spi2 {
1390			spi2_cs1: spi2-cs1 {
1391				rockchip,pins = <8 3 RK_FUNC_1 &pcfg_pull_up>;
1392			};
1393			spi2_clk: spi2-clk {
1394				rockchip,pins = <8 6 RK_FUNC_1 &pcfg_pull_up>;
1395			};
1396			spi2_cs0: spi2-cs0 {
1397				rockchip,pins = <8 7 RK_FUNC_1 &pcfg_pull_up>;
1398			};
1399			spi2_rx: spi2-rx {
1400				rockchip,pins = <8 8 RK_FUNC_1 &pcfg_pull_up>;
1401			};
1402			spi2_tx: spi2-tx {
1403				rockchip,pins = <8 9 RK_FUNC_1 &pcfg_pull_up>;
1404			};
1405		};
1406
1407		uart0 {
1408			uart0_xfer: uart0-xfer {
1409				rockchip,pins = <4 16 RK_FUNC_1 &pcfg_pull_up>,
1410						<4 17 RK_FUNC_1 &pcfg_pull_none>;
1411			};
1412
1413			uart0_cts: uart0-cts {
1414				rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_up>;
1415			};
1416
1417			uart0_rts: uart0-rts {
1418				rockchip,pins = <4 19 RK_FUNC_1 &pcfg_pull_none>;
1419			};
1420		};
1421
1422		uart1 {
1423			uart1_xfer: uart1-xfer {
1424				rockchip,pins = <5 8 RK_FUNC_1 &pcfg_pull_up>,
1425						<5 9 RK_FUNC_1 &pcfg_pull_none>;
1426			};
1427
1428			uart1_cts: uart1-cts {
1429				rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_up>;
1430			};
1431
1432			uart1_rts: uart1-rts {
1433				rockchip,pins = <5 11 RK_FUNC_1 &pcfg_pull_none>;
1434			};
1435		};
1436
1437		uart2 {
1438			uart2_xfer: uart2-xfer {
1439				rockchip,pins = <7 22 RK_FUNC_1 &pcfg_pull_up>,
1440						<7 23 RK_FUNC_1 &pcfg_pull_none>;
1441			};
1442			/* no rts / cts for uart2 */
1443		};
1444
1445		uart3 {
1446			uart3_xfer: uart3-xfer {
1447				rockchip,pins = <7 7 RK_FUNC_1 &pcfg_pull_up>,
1448						<7 8 RK_FUNC_1 &pcfg_pull_none>;
1449			};
1450
1451			uart3_cts: uart3-cts {
1452				rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_up>;
1453			};
1454
1455			uart3_rts: uart3-rts {
1456				rockchip,pins = <7 10 RK_FUNC_1 &pcfg_pull_none>;
1457			};
1458		};
1459
1460		uart4 {
1461			uart4_xfer: uart4-xfer {
1462				rockchip,pins = <5 12 3 &pcfg_pull_up>,
1463						<5 13 3 &pcfg_pull_none>;
1464			};
1465
1466			uart4_cts: uart4-cts {
1467				rockchip,pins = <5 14 3 &pcfg_pull_up>;
1468			};
1469
1470			uart4_rts: uart4-rts {
1471				rockchip,pins = <5 15 3 &pcfg_pull_none>;
1472			};
1473		};
1474
1475		tsadc {
1476			otp_gpio: otp-gpio {
1477				rockchip,pins = <0 10 RK_FUNC_GPIO &pcfg_pull_none>;
1478			};
1479
1480			otp_out: otp-out {
1481				rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>;
1482			};
1483		};
1484
1485		pwm0 {
1486			pwm0_pin: pwm0-pin {
1487				rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>;
1488			};
1489		};
1490
1491		pwm1 {
1492			pwm1_pin: pwm1-pin {
1493				rockchip,pins = <7 1 RK_FUNC_1 &pcfg_pull_none>;
1494			};
1495		};
1496
1497		pwm2 {
1498			pwm2_pin: pwm2-pin {
1499				rockchip,pins = <7 22 3 &pcfg_pull_none>;
1500			};
1501		};
1502
1503		pwm3 {
1504			pwm3_pin: pwm3-pin {
1505				rockchip,pins = <7 23 3 &pcfg_pull_none>;
1506			};
1507		};
1508
1509		gmac {
1510			rgmii_pins: rgmii-pins {
1511				rockchip,pins = <3 30 3 &pcfg_pull_none>,
1512						<3 31 3 &pcfg_pull_none>,
1513						<3 26 3 &pcfg_pull_none>,
1514						<3 27 3 &pcfg_pull_none>,
1515						<3 28 3 &pcfg_pull_none_12ma>,
1516						<3 29 3 &pcfg_pull_none_12ma>,
1517						<3 24 3 &pcfg_pull_none_12ma>,
1518						<3 25 3 &pcfg_pull_none_12ma>,
1519						<4 0 3 &pcfg_pull_none>,
1520						<4 5 3 &pcfg_pull_none>,
1521						<4 6 3 &pcfg_pull_none>,
1522						<4 9 3 &pcfg_pull_none_12ma>,
1523						<4 4 3 &pcfg_pull_none_12ma>,
1524						<4 1 3 &pcfg_pull_none>,
1525						<4 3 3 &pcfg_pull_none>;
1526			};
1527
1528			rmii_pins: rmii-pins {
1529				rockchip,pins = <3 30 3 &pcfg_pull_none>,
1530						<3 31 3 &pcfg_pull_none>,
1531						<3 28 3 &pcfg_pull_none>,
1532						<3 29 3 &pcfg_pull_none>,
1533						<4 0 3 &pcfg_pull_none>,
1534						<4 5 3 &pcfg_pull_none>,
1535						<4 4 3 &pcfg_pull_none>,
1536						<4 1 3 &pcfg_pull_none>,
1537						<4 2 3 &pcfg_pull_none>,
1538						<4 3 3 &pcfg_pull_none>;
1539			};
1540		};
1541
1542		spdif {
1543			spdif_tx: spdif-tx {
1544				rockchip,pins = <RK_GPIO6 11 RK_FUNC_1 &pcfg_pull_none>;
1545			};
1546		};
1547	};
1548};