Linux Audio

Check our new training course

Loading...
v6.2
   1/*
   2 * Copyright 2012 Stefan Roese
   3 * Stefan Roese <sr@denx.de>
   4 *
   5 * This file is dual-licensed: you can use it either under the terms
   6 * of the GPL or the X11 license, at your option. Note that this dual
   7 * licensing only applies to this file, and not this project as a
   8 * whole.
   9 *
  10 *  a) This library is free software; you can redistribute it and/or
  11 *     modify it under the terms of the GNU General Public License as
  12 *     published by the Free Software Foundation; either version 2 of the
  13 *     License, or (at your option) any later version.
  14 *
  15 *     This library is distributed in the hope that it will be useful,
  16 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
  17 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18 *     GNU General Public License for more details.
  19 *
  20 * Or, alternatively,
  21 *
  22 *  b) Permission is hereby granted, free of charge, to any person
  23 *     obtaining a copy of this software and associated documentation
  24 *     files (the "Software"), to deal in the Software without
  25 *     restriction, including without limitation the rights to use,
  26 *     copy, modify, merge, publish, distribute, sublicense, and/or
  27 *     sell copies of the Software, and to permit persons to whom the
  28 *     Software is furnished to do so, subject to the following
  29 *     conditions:
  30 *
  31 *     The above copyright notice and this permission notice shall be
  32 *     included in all copies or substantial portions of the Software.
  33 *
  34 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  35 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  36 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  37 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  38 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  39 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  40 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  41 *     OTHER DEALINGS IN THE SOFTWARE.
  42 */
  43
 
 
  44#include <dt-bindings/thermal/thermal.h>
 
 
  45#include <dt-bindings/dma/sun4i-a10.h>
  46#include <dt-bindings/clock/sun4i-a10-ccu.h>
  47#include <dt-bindings/reset/sun4i-a10-ccu.h>
  48
  49/ {
  50	#address-cells = <1>;
  51	#size-cells = <1>;
  52	interrupt-parent = <&intc>;
  53
  54	aliases {
  55		ethernet0 = &emac;
  56	};
  57
  58	chosen {
  59		#address-cells = <1>;
  60		#size-cells = <1>;
  61		ranges;
  62
  63		framebuffer-lcd0-hdmi {
  64			compatible = "allwinner,simple-framebuffer",
  65				     "simple-framebuffer";
  66			allwinner,pipeline = "de_be0-lcd0-hdmi";
  67			clocks = <&ccu CLK_AHB_LCD0>, <&ccu CLK_AHB_HDMI0>,
  68				 <&ccu CLK_AHB_DE_BE0>, <&ccu CLK_DE_BE0>,
  69				 <&ccu CLK_TCON0_CH1>, <&ccu CLK_DRAM_DE_BE0>;
  70			status = "disabled";
  71		};
  72
  73		framebuffer-fe0-lcd0-hdmi {
  74			compatible = "allwinner,simple-framebuffer",
  75				     "simple-framebuffer";
  76			allwinner,pipeline = "de_fe0-de_be0-lcd0-hdmi";
  77			clocks = <&ccu CLK_AHB_LCD0>, <&ccu CLK_AHB_HDMI0>,
  78				 <&ccu CLK_AHB_DE_BE0>, <&ccu CLK_AHB_DE_FE0>,
  79				 <&ccu CLK_DE_BE0>, <&ccu CLK_DE_FE0>,
  80				 <&ccu CLK_TCON0_CH1>, <&ccu CLK_HDMI>,
  81				 <&ccu CLK_DRAM_DE_FE0>, <&ccu CLK_DRAM_DE_BE0>;
  82			status = "disabled";
  83		};
  84
  85		framebuffer-fe0-lcd0 {
  86			compatible = "allwinner,simple-framebuffer",
  87				     "simple-framebuffer";
  88			allwinner,pipeline = "de_fe0-de_be0-lcd0";
  89			clocks = <&ccu CLK_AHB_LCD0>, <&ccu CLK_AHB_DE_BE0>,
  90				 <&ccu CLK_AHB_DE_FE0>, <&ccu CLK_DE_BE0>,
  91				 <&ccu CLK_DE_FE0>, <&ccu CLK_TCON0_CH0>,
  92				 <&ccu CLK_DRAM_DE_FE0>, <&ccu CLK_DRAM_DE_BE0>;
  93			status = "disabled";
  94		};
  95
  96		framebuffer-fe0-lcd0-tve0 {
  97			compatible = "allwinner,simple-framebuffer",
  98				     "simple-framebuffer";
  99			allwinner,pipeline = "de_fe0-de_be0-lcd0-tve0";
 100			clocks = <&ccu CLK_AHB_TVE0>, <&ccu CLK_AHB_LCD0>,
 101				 <&ccu CLK_AHB_DE_BE0>, <&ccu CLK_AHB_DE_FE0>,
 102				 <&ccu CLK_DE_BE0>, <&ccu CLK_DE_FE0>,
 103				 <&ccu CLK_TCON0_CH1>, <&ccu CLK_DRAM_TVE0>,
 104				 <&ccu CLK_DRAM_DE_FE0>, <&ccu CLK_DRAM_DE_BE0>;
 105			status = "disabled";
 106		};
 107	};
 108
 109	cpus {
 110		#address-cells = <1>;
 111		#size-cells = <0>;
 112		cpu0: cpu@0 {
 113			device_type = "cpu";
 114			compatible = "arm,cortex-a8";
 115			reg = <0x0>;
 116			clocks = <&ccu CLK_CPU>;
 117			clock-latency = <244144>; /* 8 32k periods */
 118			operating-points =
 119				/* kHz	  uV */
 120				<1008000 1400000>,
 121				<912000	1350000>,
 122				<864000	1300000>,
 123				<624000	1250000>;
 
 124			#cooling-cells = <2>;
 
 
 125		};
 126	};
 127
 128	thermal-zones {
 129		cpu-thermal {
 130			/* milliseconds */
 131			polling-delay-passive = <250>;
 132			polling-delay = <1000>;
 133			thermal-sensors = <&rtp>;
 134
 135			cooling-maps {
 136				map0 {
 137					trip = <&cpu_alert0>;
 138					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
 139				};
 140			};
 141
 142			trips {
 143				cpu_alert0: cpu-alert0 {
 144					/* milliCelsius */
 145					temperature = <85000>;
 146					hysteresis = <2000>;
 147					type = "passive";
 148				};
 149
 150				cpu_crit: cpu-crit {
 151					/* milliCelsius */
 152					temperature = <100000>;
 153					hysteresis = <2000>;
 154					type = "critical";
 155				};
 156			};
 157		};
 158	};
 159
 
 
 
 
 160	clocks {
 161		#address-cells = <1>;
 162		#size-cells = <1>;
 163		ranges;
 164
 165		osc24M: clk-24M {
 
 
 
 
 
 
 166			#clock-cells = <0>;
 167			compatible = "fixed-clock";
 
 
 
 
 
 
 
 168			clock-frequency = <24000000>;
 169			clock-output-names = "osc24M";
 170		};
 171
 172		osc32k: clk-32k {
 
 
 
 
 
 
 
 
 
 173			#clock-cells = <0>;
 174			compatible = "fixed-clock";
 175			clock-frequency = <32768>;
 176			clock-output-names = "osc32k";
 177		};
 178	};
 179
 180	de: display-engine {
 181		compatible = "allwinner,sun4i-a10-display-engine";
 182		allwinner,pipelines = <&fe0>, <&fe1>;
 183		status = "disabled";
 184	};
 
 
 185
 186	pmu {
 187		compatible = "arm,cortex-a8-pmu";
 188		interrupts = <3>;
 189	};
 
 
 
 
 190
 191	reserved-memory {
 192		#address-cells = <1>;
 193		#size-cells = <1>;
 194		ranges;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 195
 196		/* Address must be kept in the lower 256 MiBs of DRAM for VE. */
 197		default-pool {
 198			compatible = "shared-dma-pool";
 199			size = <0x6000000>;
 200			alloc-ranges = <0x40000000 0x10000000>;
 201			reusable;
 202			linux,cma-default;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 203		};
 204	};
 205
 206	soc {
 207		compatible = "simple-bus";
 208		#address-cells = <1>;
 209		#size-cells = <1>;
 210		ranges;
 211
 212		system-control@1c00000 {
 213			compatible = "allwinner,sun4i-a10-system-control";
 214			reg = <0x01c00000 0x30>;
 215			#address-cells = <1>;
 216			#size-cells = <1>;
 217			ranges;
 218
 219			sram_a: sram@0 {
 220				compatible = "mmio-sram";
 221				reg = <0x00000000 0xc000>;
 222				#address-cells = <1>;
 223				#size-cells = <1>;
 224				ranges = <0 0x00000000 0xc000>;
 225
 226				emac_sram: sram-section@8000 {
 227					compatible = "allwinner,sun4i-a10-sram-a3-a4";
 228					reg = <0x8000 0x4000>;
 229					status = "disabled";
 230				};
 231			};
 232
 233			sram_d: sram@10000 {
 234				compatible = "mmio-sram";
 235				reg = <0x00010000 0x1000>;
 236				#address-cells = <1>;
 237				#size-cells = <1>;
 238				ranges = <0 0x00010000 0x1000>;
 239
 240				otg_sram: sram-section@0 {
 241					compatible = "allwinner,sun4i-a10-sram-d";
 242					reg = <0x0000 0x1000>;
 243					status = "disabled";
 244				};
 245			};
 246
 247			sram_c: sram@1d00000 {
 248				compatible = "mmio-sram";
 249				reg = <0x01d00000 0xd0000>;
 250				#address-cells = <1>;
 251				#size-cells = <1>;
 252				ranges = <0 0x01d00000 0xd0000>;
 253
 254				ve_sram: sram-section@0 {
 255					compatible = "allwinner,sun4i-a10-sram-c1";
 256					reg = <0x000000 0x80000>;
 257				};
 258			};
 259		};
 260
 261		dma: dma-controller@1c02000 {
 262			compatible = "allwinner,sun4i-a10-dma";
 263			reg = <0x01c02000 0x1000>;
 264			interrupts = <27>;
 265			clocks = <&ccu CLK_AHB_DMA>;
 266			#dma-cells = <2>;
 267		};
 268
 269		nfc: nand-controller@1c03000 {
 270			compatible = "allwinner,sun4i-a10-nand";
 271			reg = <0x01c03000 0x1000>;
 272			interrupts = <37>;
 273			clocks = <&ccu CLK_AHB_NAND>, <&ccu CLK_NAND>;
 274			clock-names = "ahb", "mod";
 275			dmas = <&dma SUN4I_DMA_DEDICATED 3>;
 276			dma-names = "rxtx";
 277			status = "disabled";
 278			#address-cells = <1>;
 279			#size-cells = <0>;
 280		};
 281
 282		spi0: spi@1c05000 {
 283			compatible = "allwinner,sun4i-a10-spi";
 284			reg = <0x01c05000 0x1000>;
 285			interrupts = <10>;
 286			clocks = <&ccu CLK_AHB_SPI0>, <&ccu CLK_SPI0>;
 287			clock-names = "ahb", "mod";
 288			dmas = <&dma SUN4I_DMA_DEDICATED 27>,
 289			       <&dma SUN4I_DMA_DEDICATED 26>;
 290			dma-names = "rx", "tx";
 291			status = "disabled";
 292			#address-cells = <1>;
 293			#size-cells = <0>;
 294		};
 295
 296		spi1: spi@1c06000 {
 297			compatible = "allwinner,sun4i-a10-spi";
 298			reg = <0x01c06000 0x1000>;
 299			interrupts = <11>;
 300			clocks = <&ccu CLK_AHB_SPI1>, <&ccu CLK_SPI1>;
 301			clock-names = "ahb", "mod";
 302			dmas = <&dma SUN4I_DMA_DEDICATED 9>,
 303			       <&dma SUN4I_DMA_DEDICATED 8>;
 304			dma-names = "rx", "tx";
 305			pinctrl-names = "default";
 306			pinctrl-0 = <&spi1_pins>, <&spi1_cs0_pin>;
 307			status = "disabled";
 308			#address-cells = <1>;
 309			#size-cells = <0>;
 310		};
 311
 312		emac: ethernet@1c0b000 {
 313			compatible = "allwinner,sun4i-a10-emac";
 314			reg = <0x01c0b000 0x1000>;
 315			interrupts = <55>;
 316			clocks = <&ccu CLK_AHB_EMAC>;
 317			allwinner,sram = <&emac_sram 1>;
 318			pinctrl-names = "default";
 319			pinctrl-0 = <&emac_pins>;
 320			status = "disabled";
 321		};
 322
 323		mdio: mdio@1c0b080 {
 324			compatible = "allwinner,sun4i-a10-mdio";
 325			reg = <0x01c0b080 0x14>;
 326			status = "disabled";
 327			#address-cells = <1>;
 328			#size-cells = <0>;
 329		};
 330
 331		tcon0: lcd-controller@1c0c000 {
 332			compatible = "allwinner,sun4i-a10-tcon";
 333			reg = <0x01c0c000 0x1000>;
 334			interrupts = <44>;
 335			resets = <&ccu RST_TCON0>;
 336			reset-names = "lcd";
 337			clocks = <&ccu CLK_AHB_LCD0>,
 338				 <&ccu CLK_TCON0_CH0>,
 339				 <&ccu CLK_TCON0_CH1>;
 340			clock-names = "ahb",
 341				      "tcon-ch0",
 342				      "tcon-ch1";
 343			clock-output-names = "tcon0-pixel-clock";
 344			#clock-cells = <0>;
 345			dmas = <&dma SUN4I_DMA_DEDICATED 14>;
 346
 347			ports {
 348				#address-cells = <1>;
 349				#size-cells = <0>;
 350
 351				tcon0_in: port@0 {
 352					#address-cells = <1>;
 353					#size-cells = <0>;
 354					reg = <0>;
 355
 356					tcon0_in_be0: endpoint@0 {
 357						reg = <0>;
 358						remote-endpoint = <&be0_out_tcon0>;
 359					};
 360
 361					tcon0_in_be1: endpoint@1 {
 362						reg = <1>;
 363						remote-endpoint = <&be1_out_tcon0>;
 364					};
 365				};
 366
 367				tcon0_out: port@1 {
 368					#address-cells = <1>;
 369					#size-cells = <0>;
 370					reg = <1>;
 371
 372					tcon0_out_hdmi: endpoint@1 {
 373						reg = <1>;
 374						remote-endpoint = <&hdmi_in_tcon0>;
 375						allwinner,tcon-channel = <1>;
 376					};
 377				};
 378			};
 379		};
 380
 381		tcon1: lcd-controller@1c0d000 {
 382			compatible = "allwinner,sun4i-a10-tcon";
 383			reg = <0x01c0d000 0x1000>;
 384			interrupts = <45>;
 385			resets = <&ccu RST_TCON1>;
 386			reset-names = "lcd";
 387			clocks = <&ccu CLK_AHB_LCD1>,
 388				 <&ccu CLK_TCON1_CH0>,
 389				 <&ccu CLK_TCON1_CH1>;
 390			clock-names = "ahb",
 391				      "tcon-ch0",
 392				      "tcon-ch1";
 393			clock-output-names = "tcon1-pixel-clock";
 394			#clock-cells = <0>;
 395			dmas = <&dma SUN4I_DMA_DEDICATED 15>;
 396
 397			ports {
 398				#address-cells = <1>;
 399				#size-cells = <0>;
 400
 401				tcon1_in: port@0 {
 402					#address-cells = <1>;
 403					#size-cells = <0>;
 404					reg = <0>;
 405
 406					tcon1_in_be0: endpoint@0 {
 407						reg = <0>;
 408						remote-endpoint = <&be0_out_tcon1>;
 409					};
 410
 411					tcon1_in_be1: endpoint@1 {
 412						reg = <1>;
 413						remote-endpoint = <&be1_out_tcon1>;
 414					};
 415				};
 416
 417				tcon1_out: port@1 {
 418					#address-cells = <1>;
 419					#size-cells = <0>;
 420					reg = <1>;
 421
 422					tcon1_out_hdmi: endpoint@1 {
 423						reg = <1>;
 424						remote-endpoint = <&hdmi_in_tcon1>;
 425						allwinner,tcon-channel = <1>;
 426					};
 427				};
 428			};
 429		};
 430
 431		video-codec@1c0e000 {
 432			compatible = "allwinner,sun4i-a10-video-engine";
 433			reg = <0x01c0e000 0x1000>;
 434			clocks = <&ccu CLK_AHB_VE>, <&ccu CLK_VE>,
 435				 <&ccu CLK_DRAM_VE>;
 436			clock-names = "ahb", "mod", "ram";
 437			resets = <&ccu RST_VE>;
 438			interrupts = <53>;
 439			allwinner,sram = <&ve_sram 1>;
 440		};
 441
 442		mmc0: mmc@1c0f000 {
 443			compatible = "allwinner,sun4i-a10-mmc";
 444			reg = <0x01c0f000 0x1000>;
 445			clocks = <&ccu CLK_AHB_MMC0>, <&ccu CLK_MMC0>;
 446			clock-names = "ahb", "mmc";
 
 
 
 
 
 
 447			interrupts = <32>;
 448			pinctrl-names = "default";
 449			pinctrl-0 = <&mmc0_pins>;
 450			status = "disabled";
 451			#address-cells = <1>;
 452			#size-cells = <0>;
 453		};
 454
 455		mmc1: mmc@1c10000 {
 456			compatible = "allwinner,sun4i-a10-mmc";
 457			reg = <0x01c10000 0x1000>;
 458			clocks = <&ccu CLK_AHB_MMC1>, <&ccu CLK_MMC1>;
 459			clock-names = "ahb", "mmc";
 
 
 
 
 
 
 460			interrupts = <33>;
 461			status = "disabled";
 462			#address-cells = <1>;
 463			#size-cells = <0>;
 464		};
 465
 466		mmc2: mmc@1c11000 {
 467			compatible = "allwinner,sun4i-a10-mmc";
 468			reg = <0x01c11000 0x1000>;
 469			clocks = <&ccu CLK_AHB_MMC2>, <&ccu CLK_MMC2>;
 470			clock-names = "ahb", "mmc";
 
 
 
 
 
 
 471			interrupts = <34>;
 472			status = "disabled";
 473			#address-cells = <1>;
 474			#size-cells = <0>;
 475		};
 476
 477		mmc3: mmc@1c12000 {
 478			compatible = "allwinner,sun4i-a10-mmc";
 479			reg = <0x01c12000 0x1000>;
 480			clocks = <&ccu CLK_AHB_MMC3>, <&ccu CLK_MMC3>;
 481			clock-names = "ahb", "mmc";
 
 
 
 
 
 
 482			interrupts = <35>;
 483			status = "disabled";
 484			#address-cells = <1>;
 485			#size-cells = <0>;
 486		};
 487
 488		usb_otg: usb@1c13000 {
 489			compatible = "allwinner,sun4i-a10-musb";
 490			reg = <0x01c13000 0x0400>;
 491			clocks = <&ccu CLK_AHB_OTG>;
 492			interrupts = <38>;
 493			interrupt-names = "mc";
 494			phys = <&usbphy 0>;
 495			phy-names = "usb";
 496			extcon = <&usbphy 0>;
 497			allwinner,sram = <&otg_sram 1>;
 498			dr_mode = "otg";
 499			status = "disabled";
 500		};
 501
 502		usbphy: phy@1c13400 {
 503			#phy-cells = <1>;
 504			compatible = "allwinner,sun4i-a10-usb-phy";
 505			reg = <0x01c13400 0x10>, <0x01c14800 0x4>, <0x01c1c800 0x4>;
 506			reg-names = "phy_ctrl", "pmu1", "pmu2";
 507			clocks = <&ccu CLK_USB_PHY>;
 508			clock-names = "usb_phy";
 509			resets = <&ccu RST_USB_PHY0>,
 510				 <&ccu RST_USB_PHY1>,
 511				 <&ccu RST_USB_PHY2>;
 512			reset-names = "usb0_reset", "usb1_reset", "usb2_reset";
 513			status = "disabled";
 514		};
 515
 516		ehci0: usb@1c14000 {
 517			compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
 518			reg = <0x01c14000 0x100>;
 519			interrupts = <39>;
 520			clocks = <&ccu CLK_AHB_EHCI0>;
 521			phys = <&usbphy 1>;
 522			phy-names = "usb";
 523			status = "disabled";
 524		};
 525
 526		ohci0: usb@1c14400 {
 527			compatible = "allwinner,sun4i-a10-ohci", "generic-ohci";
 528			reg = <0x01c14400 0x100>;
 529			interrupts = <64>;
 530			clocks = <&ccu CLK_USB_OHCI0>, <&ccu CLK_AHB_OHCI0>;
 531			phys = <&usbphy 1>;
 532			phy-names = "usb";
 533			status = "disabled";
 534		};
 535
 536		crypto: crypto-engine@1c15000 {
 537			compatible = "allwinner,sun4i-a10-crypto";
 538			reg = <0x01c15000 0x1000>;
 539			interrupts = <86>;
 540			clocks = <&ccu CLK_AHB_SS>, <&ccu CLK_SS>;
 541			clock-names = "ahb", "mod";
 542		};
 543
 544		hdmi: hdmi@1c16000 {
 545			compatible = "allwinner,sun4i-a10-hdmi";
 546			reg = <0x01c16000 0x1000>;
 547			interrupts = <58>;
 548			clocks = <&ccu CLK_AHB_HDMI0>, <&ccu CLK_HDMI>,
 549				 <&ccu CLK_PLL_VIDEO0_2X>,
 550				 <&ccu CLK_PLL_VIDEO1_2X>;
 551			clock-names = "ahb", "mod", "pll-0", "pll-1";
 552			dmas = <&dma SUN4I_DMA_NORMAL 16>,
 553			       <&dma SUN4I_DMA_NORMAL 16>,
 554			       <&dma SUN4I_DMA_DEDICATED 24>;
 555			dma-names = "ddc-tx", "ddc-rx", "audio-tx";
 556			status = "disabled";
 557
 558			ports {
 559				#address-cells = <1>;
 560				#size-cells = <0>;
 561
 562				hdmi_in: port@0 {
 563					#address-cells = <1>;
 564					#size-cells = <0>;
 565					reg = <0>;
 566
 567					hdmi_in_tcon0: endpoint@0 {
 568						reg = <0>;
 569						remote-endpoint = <&tcon0_out_hdmi>;
 570					};
 571
 572					hdmi_in_tcon1: endpoint@1 {
 573						reg = <1>;
 574						remote-endpoint = <&tcon1_out_hdmi>;
 575					};
 576				};
 577
 578				hdmi_out: port@1 {
 579					reg = <1>;
 580				};
 581			};
 582		};
 583
 584		spi2: spi@1c17000 {
 585			compatible = "allwinner,sun4i-a10-spi";
 586			reg = <0x01c17000 0x1000>;
 587			interrupts = <12>;
 588			clocks = <&ccu CLK_AHB_SPI2>, <&ccu CLK_SPI2>;
 589			clock-names = "ahb", "mod";
 590			dmas = <&dma SUN4I_DMA_DEDICATED 29>,
 591			       <&dma SUN4I_DMA_DEDICATED 28>;
 592			dma-names = "rx", "tx";
 593			status = "disabled";
 594			#address-cells = <1>;
 595			#size-cells = <0>;
 596		};
 597
 598		ahci: sata@1c18000 {
 599			compatible = "allwinner,sun4i-a10-ahci";
 600			reg = <0x01c18000 0x1000>;
 601			interrupts = <56>;
 602			clocks = <&ccu CLK_AHB_SATA>, <&ccu CLK_SATA>;
 603			status = "disabled";
 604		};
 605
 606		ehci1: usb@1c1c000 {
 607			compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
 608			reg = <0x01c1c000 0x100>;
 609			interrupts = <40>;
 610			clocks = <&ccu CLK_AHB_EHCI1>;
 611			phys = <&usbphy 2>;
 612			phy-names = "usb";
 613			status = "disabled";
 614		};
 615
 616		ohci1: usb@1c1c400 {
 617			compatible = "allwinner,sun4i-a10-ohci", "generic-ohci";
 618			reg = <0x01c1c400 0x100>;
 619			interrupts = <65>;
 620			clocks = <&ccu CLK_USB_OHCI1>, <&ccu CLK_AHB_OHCI1>;
 621			phys = <&usbphy 2>;
 622			phy-names = "usb";
 623			status = "disabled";
 624		};
 625
 626		csi1: csi@1c1d000 {
 627			compatible = "allwinner,sun4i-a10-csi1";
 628			reg = <0x01c1d000 0x1000>;
 629			interrupts = <43>;
 630			clocks = <&ccu CLK_AHB_CSI1>, <&ccu CLK_DRAM_CSI1>;
 631			clock-names = "bus", "ram";
 632			resets = <&ccu RST_CSI1>;
 633			status = "disabled";
 634		};
 635
 636		spi3: spi@1c1f000 {
 637			compatible = "allwinner,sun4i-a10-spi";
 638			reg = <0x01c1f000 0x1000>;
 639			interrupts = <50>;
 640			clocks = <&ccu CLK_AHB_SPI3>, <&ccu CLK_SPI3>;
 641			clock-names = "ahb", "mod";
 642			dmas = <&dma SUN4I_DMA_DEDICATED 31>,
 643			       <&dma SUN4I_DMA_DEDICATED 30>;
 644			dma-names = "rx", "tx";
 645			status = "disabled";
 646			#address-cells = <1>;
 647			#size-cells = <0>;
 648		};
 649
 650		ccu: clock@1c20000 {
 651			compatible = "allwinner,sun4i-a10-ccu";
 652			reg = <0x01c20000 0x400>;
 653			clocks = <&osc24M>, <&osc32k>;
 654			clock-names = "hosc", "losc";
 655			#clock-cells = <1>;
 656			#reset-cells = <1>;
 657		};
 658
 659		intc: interrupt-controller@1c20400 {
 660			compatible = "allwinner,sun4i-a10-ic";
 661			reg = <0x01c20400 0x400>;
 662			interrupt-controller;
 663			#interrupt-cells = <1>;
 664		};
 665
 666		pio: pinctrl@1c20800 {
 667			compatible = "allwinner,sun4i-a10-pinctrl";
 668			reg = <0x01c20800 0x400>;
 669			interrupts = <28>;
 670			clocks = <&ccu CLK_APB0_PIO>, <&osc24M>, <&osc32k>;
 671			clock-names = "apb", "hosc", "losc";
 672			gpio-controller;
 673			interrupt-controller;
 674			#interrupt-cells = <3>;
 675			#gpio-cells = <3>;
 676
 677			can0_ph_pins: can0-ph-pins {
 678				pins = "PH20", "PH21";
 679				function = "can";
 680			};
 681
 682			/omit-if-no-ref/
 683			csi1_8bits_pg_pins: csi1-8bits-pg-pins {
 684				pins = "PG0", "PG2", "PG3", "PG4", "PG5",
 685				       "PG6", "PG7", "PG8", "PG9", "PG10",
 686				       "PG11";
 687				function = "csi1";
 688			};
 689
 690			/omit-if-no-ref/
 691			csi1_24bits_ph_pins: csi1-24bits-ph-pins {
 692				pins = "PH0", "PH1", "PH2", "PH3", "PH4",
 693				       "PH5", "PH6", "PH7", "PH8", "PH9",
 694				       "PH10", "PH11", "PH12", "PH13", "PH14",
 695				       "PH15", "PH16", "PH17", "PH18", "PH19",
 696				       "PH20", "PH21", "PH22", "PH23", "PH24",
 697				       "PH25", "PH26", "PH27";
 698				function = "csi1";
 699			};
 700
 701			/omit-if-no-ref/
 702			csi1_clk_pg_pin: csi1-clk-pg-pin {
 703				pins = "PG1";
 704				function = "csi1";
 
 705			};
 706
 707			emac_pins: emac0-pins {
 708				pins = "PA0", "PA1", "PA2",
 709				       "PA3", "PA4", "PA5", "PA6",
 710				       "PA7", "PA8", "PA9", "PA10",
 711				       "PA11", "PA12", "PA13", "PA14",
 712				       "PA15", "PA16";
 713				function = "emac";
 714			};
 715
 716			i2c0_pins: i2c0-pins {
 717				pins = "PB0", "PB1";
 718				function = "i2c0";
 
 
 719			};
 720
 721			i2c1_pins: i2c1-pins {
 722				pins = "PB18", "PB19";
 723				function = "i2c1";
 
 
 724			};
 725
 726			i2c2_pins: i2c2-pins {
 727				pins = "PB20", "PB21";
 728				function = "i2c2";
 
 
 729			};
 730
 731			ir0_rx_pins: ir0-rx-pin {
 732				pins = "PB4";
 733				function = "ir0";
 
 
 734			};
 735
 736			ir0_tx_pins: ir0-tx-pin {
 737				pins = "PB3";
 738				function = "ir0";
 
 
 
 739			};
 740
 741			ir1_rx_pins: ir1-rx-pin {
 742				pins = "PB23";
 743				function = "ir1";
 
 
 744			};
 745
 746			ir1_tx_pins: ir1-tx-pin {
 747				pins = "PB22";
 748				function = "ir1";
 
 
 749			};
 750
 751			mmc0_pins: mmc0-pins {
 752				pins = "PF0", "PF1", "PF2",
 753				       "PF3", "PF4", "PF5";
 754				function = "mmc0";
 755				drive-strength = <30>;
 756				bias-pull-up;
 757			};
 758
 759			ps2_ch0_pins: ps2-ch0-pins {
 760				pins = "PI20", "PI21";
 761				function = "ps2";
 
 
 762			};
 763
 764			ps2_ch1_ph_pins: ps2-ch1-ph-pins {
 765				pins = "PH12", "PH13";
 766				function = "ps2";
 
 
 767			};
 768
 769			pwm0_pin: pwm0-pin {
 770				pins = "PB2";
 771				function = "pwm";
 
 
 772			};
 773
 774			pwm1_pin: pwm1-pin {
 775				pins = "PI3";
 776				function = "pwm";
 
 
 777			};
 778
 779			spdif_tx_pin: spdif-tx-pin {
 780				pins = "PB13";
 781				function = "spdif";
 782				bias-pull-up;
 
 783			};
 784
 785			spi0_pi_pins: spi0-pi-pins {
 786				pins = "PI11", "PI12", "PI13";
 787				function = "spi0";
 
 
 788			};
 789
 790			spi0_cs0_pi_pin: spi0-cs0-pi-pin {
 791				pins = "PI10";
 792				function = "spi0";
 
 
 793			};
 794
 795			spi1_pins: spi1-pins {
 796				pins = "PI17", "PI18", "PI19";
 797				function = "spi1";
 
 
 798			};
 799
 800			spi1_cs0_pin: spi1-cs0-pin {
 801				pins = "PI16";
 802				function = "spi1";
 
 
 803			};
 804
 805			spi2_pb_pins: spi2-pb-pins {
 806				pins = "PB15", "PB16", "PB17";
 807				function = "spi2";
 
 
 808			};
 809
 810			spi2_pc_pins: spi2-pc-pins {
 811				pins = "PC20", "PC21", "PC22";
 812				function = "spi2";
 
 
 813			};
 814
 815			spi2_cs0_pb_pin: spi2-cs0-pb-pin {
 816				pins = "PB14";
 817				function = "spi2";
 
 
 818			};
 819
 820			spi2_cs0_pc_pins: spi2-cs0-pc-pin {
 821				pins = "PC19";
 822				function = "spi2";
 
 
 823			};
 824
 825			uart0_pb_pins: uart0-pb-pins {
 826				pins = "PB22", "PB23";
 827				function = "uart0";
 828			};
 829
 830			uart0_pf_pins: uart0-pf-pins {
 831				pins = "PF2", "PF4";
 832				function = "uart0";
 833			};
 834
 835			uart1_pins: uart1-pins {
 836				pins = "PA10", "PA11";
 837				function = "uart1";
 838			};
 839		};
 840
 841		timer@1c20c00 {
 842			compatible = "allwinner,sun4i-a10-timer";
 843			reg = <0x01c20c00 0x90>;
 844			interrupts = <22>,
 845				     <23>,
 846				     <24>,
 847				     <25>,
 848				     <67>,
 849				     <68>;
 850			clocks = <&osc24M>;
 851		};
 852
 853		wdt: watchdog@1c20c90 {
 854			compatible = "allwinner,sun4i-a10-wdt";
 855			reg = <0x01c20c90 0x10>;
 856			interrupts = <24>;
 857			clocks = <&osc24M>;
 858		};
 859
 860		rtc: rtc@1c20d00 {
 861			compatible = "allwinner,sun4i-a10-rtc";
 862			reg = <0x01c20d00 0x20>;
 863			interrupts = <24>;
 864		};
 865
 866		pwm: pwm@1c20e00 {
 867			compatible = "allwinner,sun4i-a10-pwm";
 868			reg = <0x01c20e00 0xc>;
 869			clocks = <&osc24M>;
 870			#pwm-cells = <3>;
 871			status = "disabled";
 872		};
 873
 874		spdif: spdif@1c21000 {
 875			#sound-dai-cells = <0>;
 876			compatible = "allwinner,sun4i-a10-spdif";
 877			reg = <0x01c21000 0x400>;
 878			interrupts = <13>;
 879			clocks = <&ccu CLK_APB0_SPDIF>, <&ccu CLK_SPDIF>;
 880			clock-names = "apb", "spdif";
 881			dmas = <&dma SUN4I_DMA_NORMAL 2>,
 882			       <&dma SUN4I_DMA_NORMAL 2>;
 883			dma-names = "rx", "tx";
 884			status = "disabled";
 885		};
 886
 887		ir0: ir@1c21800 {
 888			compatible = "allwinner,sun4i-a10-ir";
 889			clocks = <&ccu CLK_APB0_IR0>, <&ccu CLK_IR0>;
 890			clock-names = "apb", "ir";
 891			interrupts = <5>;
 892			reg = <0x01c21800 0x40>;
 893			status = "disabled";
 894		};
 895
 896		ir1: ir@1c21c00 {
 897			compatible = "allwinner,sun4i-a10-ir";
 898			clocks = <&ccu CLK_APB0_IR1>, <&ccu CLK_IR1>;
 899			clock-names = "apb", "ir";
 900			interrupts = <6>;
 901			reg = <0x01c21c00 0x40>;
 902			status = "disabled";
 903		};
 904
 905		i2s0: i2s@1c22400 {
 906			#sound-dai-cells = <0>;
 907			compatible = "allwinner,sun4i-a10-i2s";
 908			reg = <0x01c22400 0x400>;
 909			interrupts = <16>;
 910			clocks = <&ccu CLK_APB0_I2S0>, <&ccu CLK_I2S0>;
 911			clock-names = "apb", "mod";
 912			dmas = <&dma SUN4I_DMA_NORMAL 3>,
 913			       <&dma SUN4I_DMA_NORMAL 3>;
 914			dma-names = "rx", "tx";
 915			status = "disabled";
 916		};
 917
 918		lradc: lradc@1c22800 {
 919			compatible = "allwinner,sun4i-a10-lradc-keys";
 920			reg = <0x01c22800 0x100>;
 921			interrupts = <31>;
 922			status = "disabled";
 923		};
 924
 925		codec: codec@1c22c00 {
 926			#sound-dai-cells = <0>;
 927			compatible = "allwinner,sun4i-a10-codec";
 928			reg = <0x01c22c00 0x40>;
 929			interrupts = <30>;
 930			clocks = <&ccu CLK_APB0_CODEC>, <&ccu CLK_CODEC>;
 931			clock-names = "apb", "codec";
 932			dmas = <&dma SUN4I_DMA_NORMAL 19>,
 933			       <&dma SUN4I_DMA_NORMAL 19>;
 934			dma-names = "rx", "tx";
 935			status = "disabled";
 936		};
 937
 938		sid: eeprom@1c23800 {
 939			compatible = "allwinner,sun4i-a10-sid";
 940			reg = <0x01c23800 0x10>;
 941		};
 942
 943		rtp: rtp@1c25000 {
 944			compatible = "allwinner,sun4i-a10-ts";
 945			reg = <0x01c25000 0x100>;
 946			interrupts = <29>;
 947			#thermal-sensor-cells = <0>;
 948		};
 949
 950		uart0: serial@1c28000 {
 951			compatible = "snps,dw-apb-uart";
 952			reg = <0x01c28000 0x400>;
 953			interrupts = <1>;
 954			reg-shift = <2>;
 955			reg-io-width = <4>;
 956			clocks = <&ccu CLK_APB1_UART0>;
 957			status = "disabled";
 958		};
 959
 960		uart1: serial@1c28400 {
 961			compatible = "snps,dw-apb-uart";
 962			reg = <0x01c28400 0x400>;
 963			interrupts = <2>;
 964			reg-shift = <2>;
 965			reg-io-width = <4>;
 966			clocks = <&ccu CLK_APB1_UART1>;
 967			status = "disabled";
 968		};
 969
 970		uart2: serial@1c28800 {
 971			compatible = "snps,dw-apb-uart";
 972			reg = <0x01c28800 0x400>;
 973			interrupts = <3>;
 974			reg-shift = <2>;
 975			reg-io-width = <4>;
 976			clocks = <&ccu CLK_APB1_UART2>;
 977			status = "disabled";
 978		};
 979
 980		uart3: serial@1c28c00 {
 981			compatible = "snps,dw-apb-uart";
 982			reg = <0x01c28c00 0x400>;
 983			interrupts = <4>;
 984			reg-shift = <2>;
 985			reg-io-width = <4>;
 986			clocks = <&ccu CLK_APB1_UART3>;
 987			status = "disabled";
 988		};
 989
 990		uart4: serial@1c29000 {
 991			compatible = "snps,dw-apb-uart";
 992			reg = <0x01c29000 0x400>;
 993			interrupts = <17>;
 994			reg-shift = <2>;
 995			reg-io-width = <4>;
 996			clocks = <&ccu CLK_APB1_UART4>;
 997			status = "disabled";
 998		};
 999
1000		uart5: serial@1c29400 {
1001			compatible = "snps,dw-apb-uart";
1002			reg = <0x01c29400 0x400>;
1003			interrupts = <18>;
1004			reg-shift = <2>;
1005			reg-io-width = <4>;
1006			clocks = <&ccu CLK_APB1_UART5>;
1007			status = "disabled";
1008		};
1009
1010		uart6: serial@1c29800 {
1011			compatible = "snps,dw-apb-uart";
1012			reg = <0x01c29800 0x400>;
1013			interrupts = <19>;
1014			reg-shift = <2>;
1015			reg-io-width = <4>;
1016			clocks = <&ccu CLK_APB1_UART6>;
1017			status = "disabled";
1018		};
1019
1020		uart7: serial@1c29c00 {
1021			compatible = "snps,dw-apb-uart";
1022			reg = <0x01c29c00 0x400>;
1023			interrupts = <20>;
1024			reg-shift = <2>;
1025			reg-io-width = <4>;
1026			clocks = <&ccu CLK_APB1_UART7>;
1027			status = "disabled";
1028		};
1029
1030		ps20: ps2@1c2a000 {
1031			compatible = "allwinner,sun4i-a10-ps2";
1032			reg = <0x01c2a000 0x400>;
1033			interrupts = <62>;
1034			clocks = <&ccu CLK_APB1_PS20>;
1035			status = "disabled";
1036		};
1037
1038		ps21: ps2@1c2a400 {
1039			compatible = "allwinner,sun4i-a10-ps2";
1040			reg = <0x01c2a400 0x400>;
1041			interrupts = <63>;
1042			clocks = <&ccu CLK_APB1_PS21>;
1043			status = "disabled";
1044		};
1045
1046		i2c0: i2c@1c2ac00 {
1047			compatible = "allwinner,sun4i-a10-i2c";
1048			reg = <0x01c2ac00 0x400>;
1049			interrupts = <7>;
1050			clocks = <&ccu CLK_APB1_I2C0>;
1051			pinctrl-names = "default";
1052			pinctrl-0 = <&i2c0_pins>;
1053			status = "disabled";
1054			#address-cells = <1>;
1055			#size-cells = <0>;
1056		};
1057
1058		i2c1: i2c@1c2b000 {
1059			compatible = "allwinner,sun4i-a10-i2c";
1060			reg = <0x01c2b000 0x400>;
1061			interrupts = <8>;
1062			clocks = <&ccu CLK_APB1_I2C1>;
1063			pinctrl-names = "default";
1064			pinctrl-0 = <&i2c1_pins>;
1065			status = "disabled";
1066			#address-cells = <1>;
1067			#size-cells = <0>;
1068		};
1069
1070		i2c2: i2c@1c2b400 {
1071			compatible = "allwinner,sun4i-a10-i2c";
1072			reg = <0x01c2b400 0x400>;
1073			interrupts = <9>;
1074			clocks = <&ccu CLK_APB1_I2C2>;
1075			pinctrl-names = "default";
1076			pinctrl-0 = <&i2c2_pins>;
1077			status = "disabled";
1078			#address-cells = <1>;
1079			#size-cells = <0>;
1080		};
1081
1082		can0: can@1c2bc00 {
1083			compatible = "allwinner,sun4i-a10-can";
1084			reg = <0x01c2bc00 0x400>;
1085			interrupts = <26>;
1086			clocks = <&ccu CLK_APB1_CAN>;
1087			status = "disabled";
1088		};
1089
1090		mali: gpu@1c40000 {
1091			compatible = "allwinner,sun4i-a10-mali", "arm,mali-400";
1092			reg = <0x01c40000 0x10000>;
1093			interrupts = <69>,
1094				     <70>,
1095				     <71>,
1096				     <72>,
1097				     <73>;
1098			interrupt-names = "gp",
1099					  "gpmmu",
1100					  "pp0",
1101					  "ppmmu0",
1102					  "pmu";
1103			clocks = <&ccu CLK_AHB_GPU>, <&ccu CLK_GPU>;
1104			clock-names = "bus", "core";
1105			resets = <&ccu RST_GPU>;
1106
1107			assigned-clocks = <&ccu CLK_GPU>;
1108			assigned-clock-rates = <384000000>;
1109		};
1110
1111		fe0: display-frontend@1e00000 {
1112			compatible = "allwinner,sun4i-a10-display-frontend";
1113			reg = <0x01e00000 0x20000>;
1114			interrupts = <47>;
1115			clocks = <&ccu CLK_AHB_DE_FE0>, <&ccu CLK_DE_FE0>,
1116				 <&ccu CLK_DRAM_DE_FE0>;
1117			clock-names = "ahb", "mod",
1118				      "ram";
1119			resets = <&ccu RST_DE_FE0>;
1120
1121			ports {
1122				#address-cells = <1>;
1123				#size-cells = <0>;
1124
1125				fe0_out: port@1 {
1126					#address-cells = <1>;
1127					#size-cells = <0>;
1128					reg = <1>;
1129
1130					fe0_out_be0: endpoint@0 {
1131						reg = <0>;
1132						remote-endpoint = <&be0_in_fe0>;
1133					};
1134
1135					fe0_out_be1: endpoint@1 {
1136						reg = <1>;
1137						remote-endpoint = <&be1_in_fe0>;
1138					};
1139				};
1140			};
1141		};
1142
1143		fe1: display-frontend@1e20000 {
1144			compatible = "allwinner,sun4i-a10-display-frontend";
1145			reg = <0x01e20000 0x20000>;
1146			interrupts = <48>;
1147			clocks = <&ccu CLK_AHB_DE_FE1>, <&ccu CLK_DE_FE1>,
1148				 <&ccu CLK_DRAM_DE_FE1>;
1149			clock-names = "ahb", "mod",
1150				      "ram";
1151			resets = <&ccu RST_DE_FE1>;
1152
1153			ports {
1154				#address-cells = <1>;
1155				#size-cells = <0>;
1156
1157				fe1_out: port@1 {
1158					#address-cells = <1>;
1159					#size-cells = <0>;
1160					reg = <1>;
1161
1162					fe1_out_be0: endpoint@0 {
1163						reg = <0>;
1164						remote-endpoint = <&be0_in_fe1>;
1165					};
1166
1167					fe1_out_be1: endpoint@1 {
1168						reg = <1>;
1169						remote-endpoint = <&be1_in_fe1>;
1170					};
1171				};
1172			};
1173		};
1174
1175		be1: display-backend@1e40000 {
1176			compatible = "allwinner,sun4i-a10-display-backend";
1177			reg = <0x01e40000 0x10000>;
1178			interrupts = <48>;
1179			clocks = <&ccu CLK_AHB_DE_BE1>, <&ccu CLK_DE_BE1>,
1180				 <&ccu CLK_DRAM_DE_BE1>;
1181			clock-names = "ahb", "mod",
1182				      "ram";
1183			resets = <&ccu RST_DE_BE1>;
1184
1185			ports {
1186				#address-cells = <1>;
1187				#size-cells = <0>;
1188
1189				be1_in: port@0 {
1190					#address-cells = <1>;
1191					#size-cells = <0>;
1192					reg = <0>;
1193
1194					be1_in_fe0: endpoint@0 {
1195						reg = <0>;
1196						remote-endpoint = <&fe0_out_be1>;
1197					};
1198
1199					be1_in_fe1: endpoint@1 {
1200						reg = <1>;
1201						remote-endpoint = <&fe1_out_be1>;
1202					};
1203				};
1204
1205				be1_out: port@1 {
1206					#address-cells = <1>;
1207					#size-cells = <0>;
1208					reg = <1>;
1209
1210					be1_out_tcon0: endpoint@0 {
1211						reg = <0>;
1212						remote-endpoint = <&tcon0_in_be1>;
1213					};
1214
1215					be1_out_tcon1: endpoint@1 {
1216						reg = <1>;
1217						remote-endpoint = <&tcon1_in_be1>;
1218					};
1219				};
1220			};
1221		};
1222
1223		be0: display-backend@1e60000 {
1224			compatible = "allwinner,sun4i-a10-display-backend";
1225			reg = <0x01e60000 0x10000>;
1226			interrupts = <47>;
1227			clocks = <&ccu CLK_AHB_DE_BE0>, <&ccu CLK_DE_BE0>,
1228				 <&ccu CLK_DRAM_DE_BE0>;
1229			clock-names = "ahb", "mod",
1230				      "ram";
1231			resets = <&ccu RST_DE_BE0>;
1232
1233			ports {
1234				#address-cells = <1>;
1235				#size-cells = <0>;
1236
1237				be0_in: port@0 {
1238					#address-cells = <1>;
1239					#size-cells = <0>;
1240					reg = <0>;
1241
1242					be0_in_fe0: endpoint@0 {
1243						reg = <0>;
1244						remote-endpoint = <&fe0_out_be0>;
1245					};
1246
1247					be0_in_fe1: endpoint@1 {
1248						reg = <1>;
1249						remote-endpoint = <&fe1_out_be0>;
1250					};
1251				};
1252
1253				be0_out: port@1 {
1254					#address-cells = <1>;
1255					#size-cells = <0>;
1256					reg = <1>;
1257
1258					be0_out_tcon0: endpoint@0 {
1259						reg = <0>;
1260						remote-endpoint = <&tcon0_in_be0>;
1261					};
1262
1263					be0_out_tcon1: endpoint@1 {
1264						reg = <1>;
1265						remote-endpoint = <&tcon1_in_be0>;
1266					};
1267				};
1268			};
1269		};
1270	};
1271};
v4.10.11
   1/*
   2 * Copyright 2012 Stefan Roese
   3 * Stefan Roese <sr@denx.de>
   4 *
   5 * This file is dual-licensed: you can use it either under the terms
   6 * of the GPL or the X11 license, at your option. Note that this dual
   7 * licensing only applies to this file, and not this project as a
   8 * whole.
   9 *
  10 *  a) This library is free software; you can redistribute it and/or
  11 *     modify it under the terms of the GNU General Public License as
  12 *     published by the Free Software Foundation; either version 2 of the
  13 *     License, or (at your option) any later version.
  14 *
  15 *     This library is distributed in the hope that it will be useful,
  16 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
  17 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18 *     GNU General Public License for more details.
  19 *
  20 * Or, alternatively,
  21 *
  22 *  b) Permission is hereby granted, free of charge, to any person
  23 *     obtaining a copy of this software and associated documentation
  24 *     files (the "Software"), to deal in the Software without
  25 *     restriction, including without limitation the rights to use,
  26 *     copy, modify, merge, publish, distribute, sublicense, and/or
  27 *     sell copies of the Software, and to permit persons to whom the
  28 *     Software is furnished to do so, subject to the following
  29 *     conditions:
  30 *
  31 *     The above copyright notice and this permission notice shall be
  32 *     included in all copies or substantial portions of the Software.
  33 *
  34 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  35 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  36 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  37 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  38 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  39 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  40 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  41 *     OTHER DEALINGS IN THE SOFTWARE.
  42 */
  43
  44#include "skeleton.dtsi"
  45
  46#include <dt-bindings/thermal/thermal.h>
  47
  48#include <dt-bindings/clock/sun4i-a10-pll2.h>
  49#include <dt-bindings/dma/sun4i-a10.h>
  50#include <dt-bindings/pinctrl/sun4i-a10.h>
 
  51
  52/ {
 
 
  53	interrupt-parent = <&intc>;
  54
  55	aliases {
  56		ethernet0 = &emac;
  57	};
  58
  59	chosen {
  60		#address-cells = <1>;
  61		#size-cells = <1>;
  62		ranges;
  63
  64		framebuffer@0 {
  65			compatible = "allwinner,simple-framebuffer",
  66				     "simple-framebuffer";
  67			allwinner,pipeline = "de_be0-lcd0-hdmi";
  68			clocks = <&ahb_gates 36>, <&ahb_gates 43>,
  69				 <&ahb_gates 44>, <&de_be0_clk>,
  70				 <&tcon0_ch1_clk>, <&dram_gates 26>;
  71			status = "disabled";
  72		};
  73
  74		framebuffer@1 {
  75			compatible = "allwinner,simple-framebuffer",
  76				     "simple-framebuffer";
  77			allwinner,pipeline = "de_fe0-de_be0-lcd0-hdmi";
  78			clocks = <&ahb_gates 36>, <&ahb_gates 43>,
  79				 <&ahb_gates 44>, <&ahb_gates 46>,
  80				 <&de_be0_clk>, <&de_fe0_clk>, <&tcon0_ch1_clk>,
  81				 <&dram_gates 25>, <&dram_gates 26>;
 
  82			status = "disabled";
  83		};
  84
  85		framebuffer@2 {
  86			compatible = "allwinner,simple-framebuffer",
  87				     "simple-framebuffer";
  88			allwinner,pipeline = "de_fe0-de_be0-lcd0";
  89			clocks = <&ahb_gates 36>, <&ahb_gates 44>, <&ahb_gates 46>,
  90				 <&de_be0_clk>, <&de_fe0_clk>, <&tcon0_ch0_clk>,
  91				 <&dram_gates 25>, <&dram_gates 26>;
 
  92			status = "disabled";
  93		};
  94
  95		framebuffer@3 {
  96			compatible = "allwinner,simple-framebuffer",
  97				     "simple-framebuffer";
  98			allwinner,pipeline = "de_fe0-de_be0-lcd0-tve0";
  99			clocks = <&ahb_gates 34>, <&ahb_gates 36>,
 100				 <&ahb_gates 44>, <&ahb_gates 46>,
 101				 <&de_be0_clk>, <&de_fe0_clk>,
 102				 <&tcon0_ch1_clk>, <&dram_gates 5>,
 103				 <&dram_gates 25>, <&dram_gates 26>;
 104			status = "disabled";
 105		};
 106	};
 107
 108	cpus {
 109		#address-cells = <1>;
 110		#size-cells = <0>;
 111		cpu0: cpu@0 {
 112			device_type = "cpu";
 113			compatible = "arm,cortex-a8";
 114			reg = <0x0>;
 115			clocks = <&cpu>;
 116			clock-latency = <244144>; /* 8 32k periods */
 117			operating-points = <
 118				/* kHz	  uV */
 119				1008000 1400000
 120				912000	1350000
 121				864000	1300000
 122				624000	1250000
 123				>;
 124			#cooling-cells = <2>;
 125			cooling-min-level = <0>;
 126			cooling-max-level = <3>;
 127		};
 128	};
 129
 130	thermal-zones {
 131		cpu_thermal {
 132			/* milliseconds */
 133			polling-delay-passive = <250>;
 134			polling-delay = <1000>;
 135			thermal-sensors = <&rtp>;
 136
 137			cooling-maps {
 138				map0 {
 139					trip = <&cpu_alert0>;
 140					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
 141				};
 142			};
 143
 144			trips {
 145				cpu_alert0: cpu_alert0 {
 146					/* milliCelsius */
 147					temperature = <850000>;
 148					hysteresis = <2000>;
 149					type = "passive";
 150				};
 151
 152				cpu_crit: cpu_crit {
 153					/* milliCelsius */
 154					temperature = <100000>;
 155					hysteresis = <2000>;
 156					type = "critical";
 157				};
 158			};
 159		};
 160	};
 161
 162	memory {
 163		reg = <0x40000000 0x80000000>;
 164	};
 165
 166	clocks {
 167		#address-cells = <1>;
 168		#size-cells = <1>;
 169		ranges;
 170
 171		/*
 172		 * This is a dummy clock, to be used as placeholder on
 173		 * other mux clocks when a specific parent clock is not
 174		 * yet implemented. It should be dropped when the driver
 175		 * is complete.
 176		 */
 177		dummy: dummy {
 178			#clock-cells = <0>;
 179			compatible = "fixed-clock";
 180			clock-frequency = <0>;
 181		};
 182
 183		osc24M: clk@01c20050 {
 184			#clock-cells = <0>;
 185			compatible = "allwinner,sun4i-a10-osc-clk";
 186			reg = <0x01c20050 0x4>;
 187			clock-frequency = <24000000>;
 188			clock-output-names = "osc24M";
 189		};
 190
 191		osc3M: osc3M_clk {
 192			compatible = "fixed-factor-clock";
 193			#clock-cells = <0>;
 194			clock-div = <8>;
 195			clock-mult = <1>;
 196			clocks = <&osc24M>;
 197			clock-output-names = "osc3M";
 198		};
 199
 200		osc32k: clk@0 {
 201			#clock-cells = <0>;
 202			compatible = "fixed-clock";
 203			clock-frequency = <32768>;
 204			clock-output-names = "osc32k";
 205		};
 
 206
 207		pll1: clk@01c20000 {
 208			#clock-cells = <0>;
 209			compatible = "allwinner,sun4i-a10-pll1-clk";
 210			reg = <0x01c20000 0x4>;
 211			clocks = <&osc24M>;
 212			clock-output-names = "pll1";
 213		};
 214
 215		pll2: clk@01c20008 {
 216			#clock-cells = <1>;
 217			compatible = "allwinner,sun4i-a10-pll2-clk";
 218			reg = <0x01c20008 0x8>;
 219			clocks = <&osc24M>;
 220			clock-output-names = "pll2-1x", "pll2-2x",
 221					     "pll2-4x", "pll2-8x";
 222		};
 223
 224		pll3: clk@01c20010 {
 225			#clock-cells = <0>;
 226			compatible = "allwinner,sun4i-a10-pll3-clk";
 227			reg = <0x01c20010 0x4>;
 228			clocks = <&osc3M>;
 229			clock-output-names = "pll3";
 230		};
 231
 232		pll3x2: pll3x2_clk {
 233			compatible = "fixed-factor-clock";
 234			#clock-cells = <0>;
 235			clock-div = <1>;
 236			clock-mult = <2>;
 237			clocks = <&pll3>;
 238			clock-output-names = "pll3-2x";
 239		};
 240
 241		pll4: clk@01c20018 {
 242			#clock-cells = <0>;
 243			compatible = "allwinner,sun4i-a10-pll1-clk";
 244			reg = <0x01c20018 0x4>;
 245			clocks = <&osc24M>;
 246			clock-output-names = "pll4";
 247		};
 248
 249		pll5: clk@01c20020 {
 250			#clock-cells = <1>;
 251			compatible = "allwinner,sun4i-a10-pll5-clk";
 252			reg = <0x01c20020 0x4>;
 253			clocks = <&osc24M>;
 254			clock-output-names = "pll5_ddr", "pll5_other";
 255		};
 256
 257		pll6: clk@01c20028 {
 258			#clock-cells = <1>;
 259			compatible = "allwinner,sun4i-a10-pll6-clk";
 260			reg = <0x01c20028 0x4>;
 261			clocks = <&osc24M>;
 262			clock-output-names = "pll6_sata", "pll6_other", "pll6";
 263		};
 264
 265		pll7: clk@01c20030 {
 266			#clock-cells = <0>;
 267			compatible = "allwinner,sun4i-a10-pll3-clk";
 268			reg = <0x01c20030 0x4>;
 269			clocks = <&osc3M>;
 270			clock-output-names = "pll7";
 271		};
 272
 273		pll7x2: pll7x2_clk {
 274			compatible = "fixed-factor-clock";
 275			#clock-cells = <0>;
 276			clock-div = <1>;
 277			clock-mult = <2>;
 278			clocks = <&pll7>;
 279			clock-output-names = "pll7-2x";
 280		};
 281
 282		/* dummy is 200M */
 283		cpu: cpu@01c20054 {
 284			#clock-cells = <0>;
 285			compatible = "allwinner,sun4i-a10-cpu-clk";
 286			reg = <0x01c20054 0x4>;
 287			clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>;
 288			clock-output-names = "cpu";
 289		};
 290
 291		axi: axi@01c20054 {
 292			#clock-cells = <0>;
 293			compatible = "allwinner,sun4i-a10-axi-clk";
 294			reg = <0x01c20054 0x4>;
 295			clocks = <&cpu>;
 296			clock-output-names = "axi";
 297		};
 298
 299		axi_gates: clk@01c2005c {
 300			#clock-cells = <1>;
 301			compatible = "allwinner,sun4i-a10-axi-gates-clk";
 302			reg = <0x01c2005c 0x4>;
 303			clocks = <&axi>;
 304			clock-indices = <0>;
 305			clock-output-names = "axi_dram";
 306		};
 307
 308		ahb: ahb@01c20054 {
 309			#clock-cells = <0>;
 310			compatible = "allwinner,sun4i-a10-ahb-clk";
 311			reg = <0x01c20054 0x4>;
 312			clocks = <&axi>;
 313			clock-output-names = "ahb";
 314		};
 315
 316		ahb_gates: clk@01c20060 {
 317			#clock-cells = <1>;
 318			compatible = "allwinner,sun4i-a10-ahb-gates-clk";
 319			reg = <0x01c20060 0x8>;
 320			clocks = <&ahb>;
 321			clock-indices = <0>, <1>,
 322					<2>, <3>,
 323					<4>, <5>, <6>,
 324					<7>, <8>, <9>,
 325					<10>, <11>, <12>,
 326					<13>, <14>, <16>,
 327					<17>, <18>, <20>,
 328					<21>, <22>, <23>,
 329					<24>, <25>, <26>,
 330					<32>, <33>, <34>,
 331					<35>, <36>, <37>,
 332					<40>, <41>, <43>,
 333					<44>, <45>,
 334					<46>, <47>,
 335					<50>, <52>;
 336			clock-output-names = "ahb_usb0", "ahb_ehci0",
 337					     "ahb_ohci0", "ahb_ehci1",
 338					     "ahb_ohci1", "ahb_ss", "ahb_dma",
 339					     "ahb_bist", "ahb_mmc0", "ahb_mmc1",
 340					     "ahb_mmc2", "ahb_mmc3", "ahb_ms",
 341					     "ahb_nand", "ahb_sdram", "ahb_ace",
 342					     "ahb_emac", "ahb_ts", "ahb_spi0",
 343					     "ahb_spi1", "ahb_spi2", "ahb_spi3",
 344					     "ahb_pata", "ahb_sata", "ahb_gps",
 345					     "ahb_ve", "ahb_tvd", "ahb_tve0",
 346					     "ahb_tve1", "ahb_lcd0", "ahb_lcd1",
 347					     "ahb_csi0", "ahb_csi1", "ahb_hdmi",
 348					     "ahb_de_be0", "ahb_de_be1",
 349					     "ahb_de_fe0", "ahb_de_fe1",
 350					     "ahb_mp", "ahb_mali400";
 351		};
 352
 353		apb0: apb0@01c20054 {
 354			#clock-cells = <0>;
 355			compatible = "allwinner,sun4i-a10-apb0-clk";
 356			reg = <0x01c20054 0x4>;
 357			clocks = <&ahb>;
 358			clock-output-names = "apb0";
 359		};
 360
 361		apb0_gates: clk@01c20068 {
 362			#clock-cells = <1>;
 363			compatible = "allwinner,sun4i-a10-apb0-gates-clk";
 364			reg = <0x01c20068 0x4>;
 365			clocks = <&apb0>;
 366			clock-indices = <0>, <1>,
 367					<2>, <3>,
 368					<5>, <6>,
 369					<7>, <10>;
 370			clock-output-names = "apb0_codec", "apb0_spdif",
 371					     "apb0_ac97", "apb0_iis",
 372					     "apb0_pio", "apb0_ir0",
 373					     "apb0_ir1", "apb0_keypad";
 374		};
 375
 376		apb1: clk@01c20058 {
 377			#clock-cells = <0>;
 378			compatible = "allwinner,sun4i-a10-apb1-clk";
 379			reg = <0x01c20058 0x4>;
 380			clocks = <&osc24M>, <&pll6 1>, <&osc32k>;
 381			clock-output-names = "apb1";
 382		};
 383
 384		apb1_gates: clk@01c2006c {
 385			#clock-cells = <1>;
 386			compatible = "allwinner,sun4i-a10-apb1-gates-clk";
 387			reg = <0x01c2006c 0x4>;
 388			clocks = <&apb1>;
 389			clock-indices = <0>, <1>,
 390					<2>, <4>,
 391					<5>, <6>,
 392					<7>, <16>,
 393					<17>, <18>,
 394					<19>, <20>,
 395					<21>, <22>,
 396					<23>;
 397			clock-output-names = "apb1_i2c0", "apb1_i2c1",
 398					     "apb1_i2c2", "apb1_can",
 399					     "apb1_scr", "apb1_ps20",
 400					     "apb1_ps21", "apb1_uart0",
 401					     "apb1_uart1", "apb1_uart2",
 402					     "apb1_uart3", "apb1_uart4",
 403					     "apb1_uart5", "apb1_uart6",
 404					     "apb1_uart7";
 405		};
 406
 407		nand_clk: clk@01c20080 {
 408			#clock-cells = <0>;
 409			compatible = "allwinner,sun4i-a10-mod0-clk";
 410			reg = <0x01c20080 0x4>;
 411			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
 412			clock-output-names = "nand";
 413		};
 414
 415		ms_clk: clk@01c20084 {
 416			#clock-cells = <0>;
 417			compatible = "allwinner,sun4i-a10-mod0-clk";
 418			reg = <0x01c20084 0x4>;
 419			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
 420			clock-output-names = "ms";
 421		};
 422
 423		mmc0_clk: clk@01c20088 {
 424			#clock-cells = <1>;
 425			compatible = "allwinner,sun4i-a10-mmc-clk";
 426			reg = <0x01c20088 0x4>;
 427			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
 428			clock-output-names = "mmc0",
 429					     "mmc0_output",
 430					     "mmc0_sample";
 431		};
 432
 433		mmc1_clk: clk@01c2008c {
 434			#clock-cells = <1>;
 435			compatible = "allwinner,sun4i-a10-mmc-clk";
 436			reg = <0x01c2008c 0x4>;
 437			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
 438			clock-output-names = "mmc1",
 439					     "mmc1_output",
 440					     "mmc1_sample";
 441		};
 442
 443		mmc2_clk: clk@01c20090 {
 444			#clock-cells = <1>;
 445			compatible = "allwinner,sun4i-a10-mmc-clk";
 446			reg = <0x01c20090 0x4>;
 447			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
 448			clock-output-names = "mmc2",
 449					     "mmc2_output",
 450					     "mmc2_sample";
 451		};
 452
 453		mmc3_clk: clk@01c20094 {
 454			#clock-cells = <1>;
 455			compatible = "allwinner,sun4i-a10-mmc-clk";
 456			reg = <0x01c20094 0x4>;
 457			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
 458			clock-output-names = "mmc3",
 459					     "mmc3_output",
 460					     "mmc3_sample";
 461		};
 462
 463		ts_clk: clk@01c20098 {
 464			#clock-cells = <0>;
 465			compatible = "allwinner,sun4i-a10-mod0-clk";
 466			reg = <0x01c20098 0x4>;
 467			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
 468			clock-output-names = "ts";
 469		};
 470
 471		ss_clk: clk@01c2009c {
 472			#clock-cells = <0>;
 473			compatible = "allwinner,sun4i-a10-mod0-clk";
 474			reg = <0x01c2009c 0x4>;
 475			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
 476			clock-output-names = "ss";
 477		};
 478
 479		spi0_clk: clk@01c200a0 {
 480			#clock-cells = <0>;
 481			compatible = "allwinner,sun4i-a10-mod0-clk";
 482			reg = <0x01c200a0 0x4>;
 483			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
 484			clock-output-names = "spi0";
 485		};
 486
 487		spi1_clk: clk@01c200a4 {
 488			#clock-cells = <0>;
 489			compatible = "allwinner,sun4i-a10-mod0-clk";
 490			reg = <0x01c200a4 0x4>;
 491			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
 492			clock-output-names = "spi1";
 493		};
 494
 495		spi2_clk: clk@01c200a8 {
 496			#clock-cells = <0>;
 497			compatible = "allwinner,sun4i-a10-mod0-clk";
 498			reg = <0x01c200a8 0x4>;
 499			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
 500			clock-output-names = "spi2";
 501		};
 502
 503		pata_clk: clk@01c200ac {
 504			#clock-cells = <0>;
 505			compatible = "allwinner,sun4i-a10-mod0-clk";
 506			reg = <0x01c200ac 0x4>;
 507			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
 508			clock-output-names = "pata";
 509		};
 510
 511		ir0_clk: clk@01c200b0 {
 512			#clock-cells = <0>;
 513			compatible = "allwinner,sun4i-a10-mod0-clk";
 514			reg = <0x01c200b0 0x4>;
 515			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
 516			clock-output-names = "ir0";
 517		};
 518
 519		ir1_clk: clk@01c200b4 {
 520			#clock-cells = <0>;
 521			compatible = "allwinner,sun4i-a10-mod0-clk";
 522			reg = <0x01c200b4 0x4>;
 523			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
 524			clock-output-names = "ir1";
 525		};
 526
 527		spdif_clk: clk@01c200c0 {
 528			#clock-cells = <0>;
 529			compatible = "allwinner,sun4i-a10-mod1-clk";
 530			reg = <0x01c200c0 0x4>;
 531			clocks = <&pll2 SUN4I_A10_PLL2_8X>,
 532				 <&pll2 SUN4I_A10_PLL2_4X>,
 533				 <&pll2 SUN4I_A10_PLL2_2X>,
 534				 <&pll2 SUN4I_A10_PLL2_1X>;
 535			clock-output-names = "spdif";
 536		};
 537
 538		usb_clk: clk@01c200cc {
 539			#clock-cells = <1>;
 540			#reset-cells = <1>;
 541			compatible = "allwinner,sun4i-a10-usb-clk";
 542			reg = <0x01c200cc 0x4>;
 543			clocks = <&pll6 1>;
 544			clock-output-names = "usb_ohci0", "usb_ohci1",
 545					     "usb_phy";
 546		};
 547
 548		spi3_clk: clk@01c200d4 {
 549			#clock-cells = <0>;
 550			compatible = "allwinner,sun4i-a10-mod0-clk";
 551			reg = <0x01c200d4 0x4>;
 552			clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
 553			clock-output-names = "spi3";
 554		};
 555
 556		dram_gates: clk@01c20100 {
 557			#clock-cells = <1>;
 558			compatible = "allwinner,sun4i-a10-dram-gates-clk";
 559			reg = <0x01c20100 0x4>;
 560			clocks = <&pll5 0>;
 561			clock-indices = <0>,
 562					<1>, <2>,
 563					<3>,
 564					<4>,
 565					<5>, <6>,
 566					<15>,
 567					<24>, <25>,
 568					<26>, <27>,
 569					<28>, <29>;
 570			clock-output-names = "dram_ve",
 571					     "dram_csi0", "dram_csi1",
 572					     "dram_ts",
 573					     "dram_tvd",
 574					     "dram_tve0", "dram_tve1",
 575					     "dram_output",
 576					     "dram_de_fe1", "dram_de_fe0",
 577					     "dram_de_be0", "dram_de_be1",
 578					     "dram_de_mp", "dram_ace";
 579		};
 580
 581		de_be0_clk: clk@01c20104 {
 582			#clock-cells = <0>;
 583			#reset-cells = <0>;
 584			compatible = "allwinner,sun4i-a10-display-clk";
 585			reg = <0x01c20104 0x4>;
 586			clocks = <&pll3>, <&pll7>, <&pll5 1>;
 587			clock-output-names = "de-be0";
 588		};
 589
 590		de_be1_clk: clk@01c20108 {
 591			#clock-cells = <0>;
 592			#reset-cells = <0>;
 593			compatible = "allwinner,sun4i-a10-display-clk";
 594			reg = <0x01c20108 0x4>;
 595			clocks = <&pll3>, <&pll7>, <&pll5 1>;
 596			clock-output-names = "de-be1";
 597		};
 598
 599		de_fe0_clk: clk@01c2010c {
 600			#clock-cells = <0>;
 601			#reset-cells = <0>;
 602			compatible = "allwinner,sun4i-a10-display-clk";
 603			reg = <0x01c2010c 0x4>;
 604			clocks = <&pll3>, <&pll7>, <&pll5 1>;
 605			clock-output-names = "de-fe0";
 606		};
 607
 608		de_fe1_clk: clk@01c20110 {
 609			#clock-cells = <0>;
 610			#reset-cells = <0>;
 611			compatible = "allwinner,sun4i-a10-display-clk";
 612			reg = <0x01c20110 0x4>;
 613			clocks = <&pll3>, <&pll7>, <&pll5 1>;
 614			clock-output-names = "de-fe1";
 615		};
 616
 617
 618		tcon0_ch0_clk: clk@01c20118 {
 619			#clock-cells = <0>;
 620			#reset-cells = <1>;
 621			compatible = "allwinner,sun4i-a10-tcon-ch0-clk";
 622			reg = <0x01c20118 0x4>;
 623			clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
 624			clock-output-names = "tcon0-ch0-sclk";
 625
 626		};
 627
 628		tcon1_ch0_clk: clk@01c2011c {
 629			#clock-cells = <0>;
 630			#reset-cells = <1>;
 631			compatible = "allwinner,sun4i-a10-tcon-ch1-clk";
 632			reg = <0x01c2011c 0x4>;
 633			clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
 634			clock-output-names = "tcon1-ch0-sclk";
 635
 636		};
 637
 638		tcon0_ch1_clk: clk@01c2012c {
 639			#clock-cells = <0>;
 640			compatible = "allwinner,sun4i-a10-tcon-ch0-clk";
 641			reg = <0x01c2012c 0x4>;
 642			clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
 643			clock-output-names = "tcon0-ch1-sclk";
 644
 645		};
 646
 647		tcon1_ch1_clk: clk@01c20130 {
 648			#clock-cells = <0>;
 649			compatible = "allwinner,sun4i-a10-tcon-ch1-clk";
 650			reg = <0x01c20130 0x4>;
 651			clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
 652			clock-output-names = "tcon1-ch1-sclk";
 653
 654		};
 655
 656		ve_clk: clk@01c2013c {
 657			#clock-cells = <0>;
 658			#reset-cells = <0>;
 659			compatible = "allwinner,sun4i-a10-ve-clk";
 660			reg = <0x01c2013c 0x4>;
 661			clocks = <&pll4>;
 662			clock-output-names = "ve";
 663		};
 664
 665		codec_clk: clk@01c20140 {
 666			#clock-cells = <0>;
 667			compatible = "allwinner,sun4i-a10-codec-clk";
 668			reg = <0x01c20140 0x4>;
 669			clocks = <&pll2 SUN4I_A10_PLL2_1X>;
 670			clock-output-names = "codec";
 671		};
 672	};
 673
 674	soc@01c00000 {
 675		compatible = "simple-bus";
 676		#address-cells = <1>;
 677		#size-cells = <1>;
 678		ranges;
 679
 680		sram-controller@01c00000 {
 681			compatible = "allwinner,sun4i-a10-sram-controller";
 682			reg = <0x01c00000 0x30>;
 683			#address-cells = <1>;
 684			#size-cells = <1>;
 685			ranges;
 686
 687			sram_a: sram@00000000 {
 688				compatible = "mmio-sram";
 689				reg = <0x00000000 0xc000>;
 690				#address-cells = <1>;
 691				#size-cells = <1>;
 692				ranges = <0 0x00000000 0xc000>;
 693
 694				emac_sram: sram-section@8000 {
 695					compatible = "allwinner,sun4i-a10-sram-a3-a4";
 696					reg = <0x8000 0x4000>;
 697					status = "disabled";
 698				};
 699			};
 700
 701			sram_d: sram@00010000 {
 702				compatible = "mmio-sram";
 703				reg = <0x00010000 0x1000>;
 704				#address-cells = <1>;
 705				#size-cells = <1>;
 706				ranges = <0 0x00010000 0x1000>;
 707
 708				otg_sram: sram-section@0000 {
 709					compatible = "allwinner,sun4i-a10-sram-d";
 710					reg = <0x0000 0x1000>;
 711					status = "disabled";
 712				};
 713			};
 
 
 
 
 
 
 
 
 
 
 
 
 
 714		};
 715
 716		dma: dma-controller@01c02000 {
 717			compatible = "allwinner,sun4i-a10-dma";
 718			reg = <0x01c02000 0x1000>;
 719			interrupts = <27>;
 720			clocks = <&ahb_gates 6>;
 721			#dma-cells = <2>;
 722		};
 723
 724		nfc: nand@01c03000 {
 725			compatible = "allwinner,sun4i-a10-nand";
 726			reg = <0x01c03000 0x1000>;
 727			interrupts = <37>;
 728			clocks = <&ahb_gates 13>, <&nand_clk>;
 729			clock-names = "ahb", "mod";
 730			dmas = <&dma SUN4I_DMA_DEDICATED 3>;
 731			dma-names = "rxtx";
 732			status = "disabled";
 733			#address-cells = <1>;
 734			#size-cells = <0>;
 735		};
 736
 737		spi0: spi@01c05000 {
 738			compatible = "allwinner,sun4i-a10-spi";
 739			reg = <0x01c05000 0x1000>;
 740			interrupts = <10>;
 741			clocks = <&ahb_gates 20>, <&spi0_clk>;
 742			clock-names = "ahb", "mod";
 743			dmas = <&dma SUN4I_DMA_DEDICATED 27>,
 744			       <&dma SUN4I_DMA_DEDICATED 26>;
 745			dma-names = "rx", "tx";
 746			status = "disabled";
 747			#address-cells = <1>;
 748			#size-cells = <0>;
 749		};
 750
 751		spi1: spi@01c06000 {
 752			compatible = "allwinner,sun4i-a10-spi";
 753			reg = <0x01c06000 0x1000>;
 754			interrupts = <11>;
 755			clocks = <&ahb_gates 21>, <&spi1_clk>;
 756			clock-names = "ahb", "mod";
 757			dmas = <&dma SUN4I_DMA_DEDICATED 9>,
 758			       <&dma SUN4I_DMA_DEDICATED 8>;
 759			dma-names = "rx", "tx";
 
 
 760			status = "disabled";
 761			#address-cells = <1>;
 762			#size-cells = <0>;
 763		};
 764
 765		emac: ethernet@01c0b000 {
 766			compatible = "allwinner,sun4i-a10-emac";
 767			reg = <0x01c0b000 0x1000>;
 768			interrupts = <55>;
 769			clocks = <&ahb_gates 17>;
 770			allwinner,sram = <&emac_sram 1>;
 
 
 771			status = "disabled";
 772		};
 773
 774		mdio: mdio@01c0b080 {
 775			compatible = "allwinner,sun4i-a10-mdio";
 776			reg = <0x01c0b080 0x14>;
 777			status = "disabled";
 778			#address-cells = <1>;
 779			#size-cells = <0>;
 780		};
 781
 782		mmc0: mmc@01c0f000 {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 783			compatible = "allwinner,sun4i-a10-mmc";
 784			reg = <0x01c0f000 0x1000>;
 785			clocks = <&ahb_gates 8>,
 786				 <&mmc0_clk 0>,
 787				 <&mmc0_clk 1>,
 788				 <&mmc0_clk 2>;
 789			clock-names = "ahb",
 790				      "mmc",
 791				      "output",
 792				      "sample";
 793			interrupts = <32>;
 
 
 794			status = "disabled";
 795			#address-cells = <1>;
 796			#size-cells = <0>;
 797		};
 798
 799		mmc1: mmc@01c10000 {
 800			compatible = "allwinner,sun4i-a10-mmc";
 801			reg = <0x01c10000 0x1000>;
 802			clocks = <&ahb_gates 9>,
 803				 <&mmc1_clk 0>,
 804				 <&mmc1_clk 1>,
 805				 <&mmc1_clk 2>;
 806			clock-names = "ahb",
 807				      "mmc",
 808				      "output",
 809				      "sample";
 810			interrupts = <33>;
 811			status = "disabled";
 812			#address-cells = <1>;
 813			#size-cells = <0>;
 814		};
 815
 816		mmc2: mmc@01c11000 {
 817			compatible = "allwinner,sun4i-a10-mmc";
 818			reg = <0x01c11000 0x1000>;
 819			clocks = <&ahb_gates 10>,
 820				 <&mmc2_clk 0>,
 821				 <&mmc2_clk 1>,
 822				 <&mmc2_clk 2>;
 823			clock-names = "ahb",
 824				      "mmc",
 825				      "output",
 826				      "sample";
 827			interrupts = <34>;
 828			status = "disabled";
 829			#address-cells = <1>;
 830			#size-cells = <0>;
 831		};
 832
 833		mmc3: mmc@01c12000 {
 834			compatible = "allwinner,sun4i-a10-mmc";
 835			reg = <0x01c12000 0x1000>;
 836			clocks = <&ahb_gates 11>,
 837				 <&mmc3_clk 0>,
 838				 <&mmc3_clk 1>,
 839				 <&mmc3_clk 2>;
 840			clock-names = "ahb",
 841				      "mmc",
 842				      "output",
 843				      "sample";
 844			interrupts = <35>;
 845			status = "disabled";
 846			#address-cells = <1>;
 847			#size-cells = <0>;
 848		};
 849
 850		usb_otg: usb@01c13000 {
 851			compatible = "allwinner,sun4i-a10-musb";
 852			reg = <0x01c13000 0x0400>;
 853			clocks = <&ahb_gates 0>;
 854			interrupts = <38>;
 855			interrupt-names = "mc";
 856			phys = <&usbphy 0>;
 857			phy-names = "usb";
 858			extcon = <&usbphy 0>;
 859			allwinner,sram = <&otg_sram 1>;
 
 860			status = "disabled";
 861		};
 862
 863		usbphy: phy@01c13400 {
 864			#phy-cells = <1>;
 865			compatible = "allwinner,sun4i-a10-usb-phy";
 866			reg = <0x01c13400 0x10 0x01c14800 0x4 0x01c1c800 0x4>;
 867			reg-names = "phy_ctrl", "pmu1", "pmu2";
 868			clocks = <&usb_clk 8>;
 869			clock-names = "usb_phy";
 870			resets = <&usb_clk 0>, <&usb_clk 1>, <&usb_clk 2>;
 
 
 871			reset-names = "usb0_reset", "usb1_reset", "usb2_reset";
 872			status = "disabled";
 873		};
 874
 875		ehci0: usb@01c14000 {
 876			compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
 877			reg = <0x01c14000 0x100>;
 878			interrupts = <39>;
 879			clocks = <&ahb_gates 1>;
 880			phys = <&usbphy 1>;
 881			phy-names = "usb";
 882			status = "disabled";
 883		};
 884
 885		ohci0: usb@01c14400 {
 886			compatible = "allwinner,sun4i-a10-ohci", "generic-ohci";
 887			reg = <0x01c14400 0x100>;
 888			interrupts = <64>;
 889			clocks = <&usb_clk 6>, <&ahb_gates 2>;
 890			phys = <&usbphy 1>;
 891			phy-names = "usb";
 892			status = "disabled";
 893		};
 894
 895		crypto: crypto-engine@01c15000 {
 896			compatible = "allwinner,sun4i-a10-crypto";
 897			reg = <0x01c15000 0x1000>;
 898			interrupts = <86>;
 899			clocks = <&ahb_gates 5>, <&ss_clk>;
 900			clock-names = "ahb", "mod";
 901		};
 902
 903		spi2: spi@01c17000 {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 904			compatible = "allwinner,sun4i-a10-spi";
 905			reg = <0x01c17000 0x1000>;
 906			interrupts = <12>;
 907			clocks = <&ahb_gates 22>, <&spi2_clk>;
 908			clock-names = "ahb", "mod";
 909			dmas = <&dma SUN4I_DMA_DEDICATED 29>,
 910			       <&dma SUN4I_DMA_DEDICATED 28>;
 911			dma-names = "rx", "tx";
 912			status = "disabled";
 913			#address-cells = <1>;
 914			#size-cells = <0>;
 915		};
 916
 917		ahci: sata@01c18000 {
 918			compatible = "allwinner,sun4i-a10-ahci";
 919			reg = <0x01c18000 0x1000>;
 920			interrupts = <56>;
 921			clocks = <&pll6 0>, <&ahb_gates 25>;
 922			status = "disabled";
 923		};
 924
 925		ehci1: usb@01c1c000 {
 926			compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
 927			reg = <0x01c1c000 0x100>;
 928			interrupts = <40>;
 929			clocks = <&ahb_gates 3>;
 930			phys = <&usbphy 2>;
 931			phy-names = "usb";
 932			status = "disabled";
 933		};
 934
 935		ohci1: usb@01c1c400 {
 936			compatible = "allwinner,sun4i-a10-ohci", "generic-ohci";
 937			reg = <0x01c1c400 0x100>;
 938			interrupts = <65>;
 939			clocks = <&usb_clk 7>, <&ahb_gates 4>;
 940			phys = <&usbphy 2>;
 941			phy-names = "usb";
 942			status = "disabled";
 943		};
 944
 945		spi3: spi@01c1f000 {
 
 
 
 
 
 
 
 
 
 
 946			compatible = "allwinner,sun4i-a10-spi";
 947			reg = <0x01c1f000 0x1000>;
 948			interrupts = <50>;
 949			clocks = <&ahb_gates 23>, <&spi3_clk>;
 950			clock-names = "ahb", "mod";
 951			dmas = <&dma SUN4I_DMA_DEDICATED 31>,
 952			       <&dma SUN4I_DMA_DEDICATED 30>;
 953			dma-names = "rx", "tx";
 954			status = "disabled";
 955			#address-cells = <1>;
 956			#size-cells = <0>;
 957		};
 958
 959		intc: interrupt-controller@01c20400 {
 
 
 
 
 
 
 
 
 
 960			compatible = "allwinner,sun4i-a10-ic";
 961			reg = <0x01c20400 0x400>;
 962			interrupt-controller;
 963			#interrupt-cells = <1>;
 964		};
 965
 966		pio: pinctrl@01c20800 {
 967			compatible = "allwinner,sun4i-a10-pinctrl";
 968			reg = <0x01c20800 0x400>;
 969			interrupts = <28>;
 970			clocks = <&apb0_gates 5>, <&osc24M>, <&osc32k>;
 971			clock-names = "apb", "hosc", "losc";
 972			gpio-controller;
 973			interrupt-controller;
 974			#interrupt-cells = <3>;
 975			#gpio-cells = <3>;
 976
 977			emac_pins_a: emac0@0 {
 978				allwinner,pins = "PA0", "PA1", "PA2",
 979						"PA3", "PA4", "PA5", "PA6",
 980						"PA7", "PA8", "PA9", "PA10",
 981						"PA11", "PA12", "PA13", "PA14",
 982						"PA15", "PA16";
 983				allwinner,function = "emac";
 984				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
 985				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
 
 
 986			};
 987
 988			i2c0_pins_a: i2c0@0 {
 989				allwinner,pins = "PB0", "PB1";
 990				allwinner,function = "i2c0";
 991				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
 992				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
 
 
 
 
 993			};
 994
 995			i2c1_pins_a: i2c1@0 {
 996				allwinner,pins = "PB18", "PB19";
 997				allwinner,function = "i2c1";
 998				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
 999				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1000			};
1001
1002			i2c2_pins_a: i2c2@0 {
1003				allwinner,pins = "PB20", "PB21";
1004				allwinner,function = "i2c2";
1005				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1006				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
 
 
1007			};
1008
1009			ir0_rx_pins_a: ir0@0 {
1010				allwinner,pins = "PB4";
1011				allwinner,function = "ir0";
1012				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1013				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1014			};
1015
1016			ir0_tx_pins_a: ir0@1 {
1017				allwinner,pins = "PB3";
1018				allwinner,function = "ir0";
1019				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1020				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1021			};
1022
1023			ir1_rx_pins_a: ir1@0 {
1024				allwinner,pins = "PB23";
1025				allwinner,function = "ir1";
1026				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1027				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1028			};
1029
1030			ir1_tx_pins_a: ir1@1 {
1031				allwinner,pins = "PB22";
1032				allwinner,function = "ir1";
1033				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1034				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1035			};
1036
1037			mmc0_pins_a: mmc0@0 {
1038				allwinner,pins = "PF0", "PF1", "PF2",
1039						 "PF3", "PF4", "PF5";
1040				allwinner,function = "mmc0";
1041				allwinner,drive = <SUN4I_PINCTRL_30_MA>;
1042				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1043			};
1044
1045			mmc0_cd_pin_reference_design: mmc0_cd_pin@0 {
1046				allwinner,pins = "PH1";
1047				allwinner,function = "gpio_in";
1048				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1049				allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
1050			};
1051
1052			ps20_pins_a: ps20@0 {
1053				allwinner,pins = "PI20", "PI21";
1054				allwinner,function = "ps2";
1055				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1056				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1057			};
1058
1059			ps21_pins_a: ps21@0 {
1060				allwinner,pins = "PH12", "PH13";
1061				allwinner,function = "ps2";
1062				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1063				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
 
1064			};
1065
1066			pwm0_pins_a: pwm0@0 {
1067				allwinner,pins = "PB2";
1068				allwinner,function = "pwm";
1069				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1070				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1071			};
1072
1073			pwm1_pins_a: pwm1@0 {
1074				allwinner,pins = "PI3";
1075				allwinner,function = "pwm";
1076				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1077				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1078			};
1079
1080			spdif_tx_pins_a: spdif@0 {
1081				allwinner,pins = "PB13";
1082				allwinner,function = "spdif";
1083				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1084				allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
1085			};
1086
1087			spi0_pins_a: spi0@0 {
1088				allwinner,pins = "PI11", "PI12", "PI13";
1089				allwinner,function = "spi0";
1090				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1091				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1092			};
1093
1094			spi0_cs0_pins_a: spi0_cs0@0 {
1095				allwinner,pins = "PI10";
1096				allwinner,function = "spi0";
1097				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1098				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1099			};
1100
1101			spi1_pins_a: spi1@0 {
1102				allwinner,pins = "PI17", "PI18", "PI19";
1103				allwinner,function = "spi1";
1104				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1105				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1106			};
1107
1108			spi1_cs0_pins_a: spi1_cs0@0 {
1109				allwinner,pins = "PI16";
1110				allwinner,function = "spi1";
1111				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1112				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1113			};
1114
1115			spi2_pins_a: spi2@0 {
1116				allwinner,pins = "PC20", "PC21", "PC22";
1117				allwinner,function = "spi2";
1118				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1119				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1120			};
1121
1122			spi2_pins_b: spi2@1 {
1123				allwinner,pins = "PB15", "PB16", "PB17";
1124				allwinner,function = "spi2";
1125				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1126				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1127			};
1128
1129			spi2_cs0_pins_a: spi2_cs0@0 {
1130				allwinner,pins = "PC19";
1131				allwinner,function = "spi2";
1132				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1133				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1134			};
1135
1136			spi2_cs0_pins_b: spi2_cs0@1 {
1137				allwinner,pins = "PB14";
1138				allwinner,function = "spi2";
1139				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1140				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1141			};
1142
1143			uart0_pins_a: uart0@0 {
1144				allwinner,pins = "PB22", "PB23";
1145				allwinner,function = "uart0";
1146				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1147				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1148			};
1149
1150			uart0_pins_b: uart0@1 {
1151				allwinner,pins = "PF2", "PF4";
1152				allwinner,function = "uart0";
1153				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1154				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1155			};
1156
1157			uart1_pins_a: uart1@0 {
1158				allwinner,pins = "PA10", "PA11";
1159				allwinner,function = "uart1";
1160				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1161				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
 
 
 
 
 
 
 
 
1162			};
1163		};
1164
1165		timer@01c20c00 {
1166			compatible = "allwinner,sun4i-a10-timer";
1167			reg = <0x01c20c00 0x90>;
1168			interrupts = <22>;
 
 
 
 
 
1169			clocks = <&osc24M>;
1170		};
1171
1172		wdt: watchdog@01c20c90 {
1173			compatible = "allwinner,sun4i-a10-wdt";
1174			reg = <0x01c20c90 0x10>;
 
 
1175		};
1176
1177		rtc: rtc@01c20d00 {
1178			compatible = "allwinner,sun4i-a10-rtc";
1179			reg = <0x01c20d00 0x20>;
1180			interrupts = <24>;
1181		};
1182
1183		pwm: pwm@01c20e00 {
1184			compatible = "allwinner,sun4i-a10-pwm";
1185			reg = <0x01c20e00 0xc>;
1186			clocks = <&osc24M>;
1187			#pwm-cells = <3>;
1188			status = "disabled";
1189		};
1190
1191		spdif: spdif@01c21000 {
1192			#sound-dai-cells = <0>;
1193			compatible = "allwinner,sun4i-a10-spdif";
1194			reg = <0x01c21000 0x400>;
1195			interrupts = <13>;
1196			clocks = <&apb0_gates 1>, <&spdif_clk>;
1197			clock-names = "apb", "spdif";
1198			dmas = <&dma SUN4I_DMA_NORMAL 2>,
1199			       <&dma SUN4I_DMA_NORMAL 2>;
1200			dma-names = "rx", "tx";
1201			status = "disabled";
1202		};
1203
1204		ir0: ir@01c21800 {
1205			compatible = "allwinner,sun4i-a10-ir";
1206			clocks = <&apb0_gates 6>, <&ir0_clk>;
1207			clock-names = "apb", "ir";
1208			interrupts = <5>;
1209			reg = <0x01c21800 0x40>;
1210			status = "disabled";
1211		};
1212
1213		ir1: ir@01c21c00 {
1214			compatible = "allwinner,sun4i-a10-ir";
1215			clocks = <&apb0_gates 7>, <&ir1_clk>;
1216			clock-names = "apb", "ir";
1217			interrupts = <6>;
1218			reg = <0x01c21c00 0x40>;
1219			status = "disabled";
1220		};
1221
1222		lradc: lradc@01c22800 {
 
 
 
 
 
 
 
 
 
 
 
 
 
1223			compatible = "allwinner,sun4i-a10-lradc-keys";
1224			reg = <0x01c22800 0x100>;
1225			interrupts = <31>;
1226			status = "disabled";
1227		};
1228
1229		codec: codec@01c22c00 {
1230			#sound-dai-cells = <0>;
1231			compatible = "allwinner,sun4i-a10-codec";
1232			reg = <0x01c22c00 0x40>;
1233			interrupts = <30>;
1234			clocks = <&apb0_gates 0>, <&codec_clk>;
1235			clock-names = "apb", "codec";
1236			dmas = <&dma SUN4I_DMA_NORMAL 19>,
1237			       <&dma SUN4I_DMA_NORMAL 19>;
1238			dma-names = "rx", "tx";
1239			status = "disabled";
1240		};
1241
1242		sid: eeprom@01c23800 {
1243			compatible = "allwinner,sun4i-a10-sid";
1244			reg = <0x01c23800 0x10>;
1245		};
1246
1247		rtp: rtp@01c25000 {
1248			compatible = "allwinner,sun4i-a10-ts";
1249			reg = <0x01c25000 0x100>;
1250			interrupts = <29>;
1251			#thermal-sensor-cells = <0>;
1252		};
1253
1254		uart0: serial@01c28000 {
1255			compatible = "snps,dw-apb-uart";
1256			reg = <0x01c28000 0x400>;
1257			interrupts = <1>;
1258			reg-shift = <2>;
1259			reg-io-width = <4>;
1260			clocks = <&apb1_gates 16>;
1261			status = "disabled";
1262		};
1263
1264		uart1: serial@01c28400 {
1265			compatible = "snps,dw-apb-uart";
1266			reg = <0x01c28400 0x400>;
1267			interrupts = <2>;
1268			reg-shift = <2>;
1269			reg-io-width = <4>;
1270			clocks = <&apb1_gates 17>;
1271			status = "disabled";
1272		};
1273
1274		uart2: serial@01c28800 {
1275			compatible = "snps,dw-apb-uart";
1276			reg = <0x01c28800 0x400>;
1277			interrupts = <3>;
1278			reg-shift = <2>;
1279			reg-io-width = <4>;
1280			clocks = <&apb1_gates 18>;
1281			status = "disabled";
1282		};
1283
1284		uart3: serial@01c28c00 {
1285			compatible = "snps,dw-apb-uart";
1286			reg = <0x01c28c00 0x400>;
1287			interrupts = <4>;
1288			reg-shift = <2>;
1289			reg-io-width = <4>;
1290			clocks = <&apb1_gates 19>;
1291			status = "disabled";
1292		};
1293
1294		uart4: serial@01c29000 {
1295			compatible = "snps,dw-apb-uart";
1296			reg = <0x01c29000 0x400>;
1297			interrupts = <17>;
1298			reg-shift = <2>;
1299			reg-io-width = <4>;
1300			clocks = <&apb1_gates 20>;
1301			status = "disabled";
1302		};
1303
1304		uart5: serial@01c29400 {
1305			compatible = "snps,dw-apb-uart";
1306			reg = <0x01c29400 0x400>;
1307			interrupts = <18>;
1308			reg-shift = <2>;
1309			reg-io-width = <4>;
1310			clocks = <&apb1_gates 21>;
1311			status = "disabled";
1312		};
1313
1314		uart6: serial@01c29800 {
1315			compatible = "snps,dw-apb-uart";
1316			reg = <0x01c29800 0x400>;
1317			interrupts = <19>;
1318			reg-shift = <2>;
1319			reg-io-width = <4>;
1320			clocks = <&apb1_gates 22>;
1321			status = "disabled";
1322		};
1323
1324		uart7: serial@01c29c00 {
1325			compatible = "snps,dw-apb-uart";
1326			reg = <0x01c29c00 0x400>;
1327			interrupts = <20>;
1328			reg-shift = <2>;
1329			reg-io-width = <4>;
1330			clocks = <&apb1_gates 23>;
1331			status = "disabled";
1332		};
1333
1334		i2c0: i2c@01c2ac00 {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1335			compatible = "allwinner,sun4i-a10-i2c";
1336			reg = <0x01c2ac00 0x400>;
1337			interrupts = <7>;
1338			clocks = <&apb1_gates 0>;
 
 
1339			status = "disabled";
1340			#address-cells = <1>;
1341			#size-cells = <0>;
1342		};
1343
1344		i2c1: i2c@01c2b000 {
1345			compatible = "allwinner,sun4i-a10-i2c";
1346			reg = <0x01c2b000 0x400>;
1347			interrupts = <8>;
1348			clocks = <&apb1_gates 1>;
 
 
1349			status = "disabled";
1350			#address-cells = <1>;
1351			#size-cells = <0>;
1352		};
1353
1354		i2c2: i2c@01c2b400 {
1355			compatible = "allwinner,sun4i-a10-i2c";
1356			reg = <0x01c2b400 0x400>;
1357			interrupts = <9>;
1358			clocks = <&apb1_gates 2>;
 
 
1359			status = "disabled";
1360			#address-cells = <1>;
1361			#size-cells = <0>;
1362		};
1363
1364		ps20: ps2@01c2a000 {
1365			compatible = "allwinner,sun4i-a10-ps2";
1366			reg = <0x01c2a000 0x400>;
1367			interrupts = <62>;
1368			clocks = <&apb1_gates 6>;
1369			status = "disabled";
1370		};
1371
1372		ps21: ps2@01c2a400 {
1373			compatible = "allwinner,sun4i-a10-ps2";
1374			reg = <0x01c2a400 0x400>;
1375			interrupts = <63>;
1376			clocks = <&apb1_gates 7>;
1377			status = "disabled";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1378		};
1379	};
1380};