Merge tag 'dt-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 7 May 2013 18:06:17 +0000 (11:06 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 7 May 2013 18:06:17 +0000 (11:06 -0700)
Pull ARM SoC device tree updates (part 2) from Arnd Bergmann:
 "These are mostly new device tree bindings for existing drivers, as
  well as changes to the device tree source files to add support for
  those devices, and a couple of new boards, most notably Samsung's
  Exynos5 based Chromebook.

  The changes depend on earlier platform specific updates and touch the
  usual platforms: omap, exynos, tegra, mxs, mvebu and davinci."

* tag 'dt-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (169 commits)
  ARM: exynos: dts: cros5250: add EC device
  ARM: dts: Add sbs-battery for exynos5250-snow
  ARM: dts: Add i2c-arbitrator bus for exynos5250-snow
  ARM: dts: add mshc controller node for Exynos4x12 SoCs
  ARM: dts: Add chip-id controller node on Exynos4/5 SoC
  ARM: EXYNOS: Create virtual I/O mapping for Chip-ID controller using device tree
  ARM: davinci: da850-evm: add SPI flash support
  ARM: davinci: da850: override SPI DT node device name
  ARM: davinci: da850: add SPI1 DT node
  spi/davinci: add DT binding documentation
  spi/davinci: no wildcards in DT compatible property
  ARM: dts: mvebu: Convert mvebu device tree files to 64 bits
  ARM: dts: mvebu: introduce internal-regs node
  ARM: dts: mvebu: Convert all the mvebu files to use the range property
  ARM: dts: mvebu: move all peripherals inside soc
  ARM: dts: mvebu: fix cpus section indentation
  ARM: davinci: da850: add EHRPWM & ECAP DT node
  ARM/dts: OMAP3: fix pinctrl-single configuration
  ARM: dts: Add OMAP3430 SDP NOR flash memory binding
  ARM: dts: Add NOR flash bindings for OMAP2420 H4
  ...

143 files changed:
Documentation/devicetree/bindings/arm/omap/l3-noc.txt
Documentation/devicetree/bindings/arm/omap/timer.txt
Documentation/devicetree/bindings/arm/samsung/sysreg.txt [new file with mode: 0644]
Documentation/devicetree/bindings/dma/fsl-mxs-dma.txt
Documentation/devicetree/bindings/fb/mxsfb.txt
Documentation/devicetree/bindings/gpio/gpio-omap.txt
Documentation/devicetree/bindings/gpu/samsung-g2d.txt [new file with mode: 0644]
Documentation/devicetree/bindings/i2c/i2c-mxs.txt
Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt [new file with mode: 0644]
Documentation/devicetree/bindings/mmc/mxs-mmc.txt
Documentation/devicetree/bindings/mtd/gpmi-nand.txt
Documentation/devicetree/bindings/pinctrl/fsl,mxs-pinctrl.txt
Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt
Documentation/devicetree/bindings/sound/nvidia,tegra-audio-trimslice.txt
Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt
Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt
Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.txt
Documentation/devicetree/bindings/spi/mxs-spi.txt
Documentation/devicetree/bindings/spi/spi-davinci.txt [new file with mode: 0644]
Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
Documentation/devicetree/bindings/usb/exynos-usb.txt
Documentation/devicetree/bindings/usb/omap-usb.txt
Documentation/devicetree/bindings/video/samsung-fimd.txt [new file with mode: 0644]
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/am335x-bone.dts
arch/arm/boot/dts/am335x-evm.dts
arch/arm/boot/dts/am335x-evmsk.dts
arch/arm/boot/dts/am33xx.dtsi
arch/arm/boot/dts/am3517-evm.dts
arch/arm/boot/dts/am3517_mt_ventoux.dts
arch/arm/boot/dts/armada-370-db.dts
arch/arm/boot/dts/armada-370-mirabox.dts
arch/arm/boot/dts/armada-370-rd.dts
arch/arm/boot/dts/armada-370-xp.dtsi
arch/arm/boot/dts/armada-370.dtsi
arch/arm/boot/dts/armada-xp-db.dts
arch/arm/boot/dts/armada-xp-gp.dts
arch/arm/boot/dts/armada-xp-mv78230.dtsi
arch/arm/boot/dts/armada-xp-mv78260.dtsi
arch/arm/boot/dts/armada-xp-mv78460.dtsi
arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
arch/arm/boot/dts/armada-xp.dtsi
arch/arm/boot/dts/cros5250-common.dtsi
arch/arm/boot/dts/da850-evm.dts
arch/arm/boot/dts/da850.dtsi
arch/arm/boot/dts/exynos4.dtsi
arch/arm/boot/dts/exynos4210-origen.dts
arch/arm/boot/dts/exynos4210-smdkv310.dts
arch/arm/boot/dts/exynos4210.dtsi
arch/arm/boot/dts/exynos4412-origen.dts
arch/arm/boot/dts/exynos4412-smdk4412.dts
arch/arm/boot/dts/exynos4412.dtsi
arch/arm/boot/dts/exynos4x12.dtsi
arch/arm/boot/dts/exynos5250-arndale.dts
arch/arm/boot/dts/exynos5250-pinctrl.dtsi [new file with mode: 0644]
arch/arm/boot/dts/exynos5250-smdk5250.dts
arch/arm/boot/dts/exynos5250-snow.dts
arch/arm/boot/dts/exynos5250.dtsi
arch/arm/boot/dts/exynos5440-sd5v1.dts [new file with mode: 0644]
arch/arm/boot/dts/exynos5440-ssdk5440.dts
arch/arm/boot/dts/exynos5440.dtsi
arch/arm/boot/dts/imx23-evk.dts
arch/arm/boot/dts/imx23-olinuxino.dts
arch/arm/boot/dts/imx23.dtsi
arch/arm/boot/dts/imx28-apf28dev.dts
arch/arm/boot/dts/imx28-apx4devkit.dts
arch/arm/boot/dts/imx28-cfa10049.dts
arch/arm/boot/dts/imx28-evk.dts
arch/arm/boot/dts/imx28-m28evk.dts
arch/arm/boot/dts/imx28.dtsi
arch/arm/boot/dts/imx6qdl.dtsi
arch/arm/boot/dts/omap2.dtsi
arch/arm/boot/dts/omap2420-h4.dts
arch/arm/boot/dts/omap2420.dtsi
arch/arm/boot/dts/omap2430.dtsi
arch/arm/boot/dts/omap3-beagle-xm.dts
arch/arm/boot/dts/omap3-beagle.dts
arch/arm/boot/dts/omap3-devkit8000.dts [new file with mode: 0644]
arch/arm/boot/dts/omap3-evm.dts
arch/arm/boot/dts/omap3-igep.dtsi [new file with mode: 0644]
arch/arm/boot/dts/omap3-igep0020.dts [new file with mode: 0644]
arch/arm/boot/dts/omap3-igep0030.dts [new file with mode: 0644]
arch/arm/boot/dts/omap3-overo.dtsi
arch/arm/boot/dts/omap3.dtsi
arch/arm/boot/dts/omap3430-sdp.dts [new file with mode: 0644]
arch/arm/boot/dts/omap34xx.dtsi [new file with mode: 0644]
arch/arm/boot/dts/omap36xx.dtsi
arch/arm/boot/dts/omap4-panda-a4.dts
arch/arm/boot/dts/omap4-panda-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/omap4-panda-es.dts
arch/arm/boot/dts/omap4-panda.dts
arch/arm/boot/dts/omap4-sdp.dts
arch/arm/boot/dts/omap4-var-som.dts
arch/arm/boot/dts/omap4.dtsi
arch/arm/boot/dts/omap443x.dtsi [new file with mode: 0644]
arch/arm/boot/dts/omap4460.dtsi [new file with mode: 0644]
arch/arm/boot/dts/omap5-evm.dts
arch/arm/boot/dts/omap5.dtsi
arch/arm/boot/dts/tegra114-dalmore.dts
arch/arm/boot/dts/tegra114.dtsi
arch/arm/boot/dts/tegra20-colibri-512.dtsi
arch/arm/boot/dts/tegra20-harmony.dts
arch/arm/boot/dts/tegra20-medcom-wide.dts
arch/arm/boot/dts/tegra20-paz00.dts
arch/arm/boot/dts/tegra20-plutux.dts
arch/arm/boot/dts/tegra20-seaboard.dts
arch/arm/boot/dts/tegra20-tamonten.dtsi
arch/arm/boot/dts/tegra20-tec.dts
arch/arm/boot/dts/tegra20-trimslice.dts
arch/arm/boot/dts/tegra20-ventana.dts
arch/arm/boot/dts/tegra20-whistler.dts
arch/arm/boot/dts/tegra20.dtsi
arch/arm/boot/dts/tegra30-beaver.dts
arch/arm/boot/dts/tegra30-cardhu-a02.dts
arch/arm/boot/dts/tegra30-cardhu-a04.dts
arch/arm/boot/dts/tegra30-cardhu.dtsi
arch/arm/boot/dts/tegra30.dtsi
arch/arm/boot/dts/twl4030.dtsi
arch/arm/boot/dts/twl6030.dtsi
arch/arm/mach-davinci/da8xx-dt.c
arch/arm/mach-exynos/common.c
arch/arm/mach-exynos/include/mach/map.h
arch/arm/mach-mxs/mach-mxs.c
arch/arm/mach-omap2/board-generic.c
arch/arm/mach-omap2/omap_hwmod.c
arch/arm/mach-omap2/pmu.c
arch/arm/mach-omap2/timer.c
arch/arm/plat-omap/dmtimer.c
arch/arm/plat-omap/include/plat/dmtimer.h
drivers/dma/mxs-dma.c
drivers/i2c/busses/i2c-mxs.c
drivers/mmc/host/mxs-mmc.c
drivers/mtd/nand/gpmi-nand/gpmi-nand.c
drivers/mtd/nand/gpmi-nand/gpmi-nand.h
drivers/net/ethernet/freescale/fec.h
drivers/net/ethernet/freescale/fec_main.c
drivers/spi/spi-davinci.c
drivers/spi/spi-mxs.c
drivers/tty/serial/mxs-auart.c
drivers/video/Kconfig
drivers/video/mxsfb.c
include/linux/mxsfb.h [deleted file]
include/linux/spi/mxs-spi.h

index 6888a5efc860b7ad4c64274aeab6bb77346e4ef9..c0105de55cbd7f229ecf813b2acc44d8fd70a216 100644 (file)
@@ -6,6 +6,7 @@ provided by Arteris.
 Required properties:
 - compatible : Should be "ti,omap3-l3-smx" for OMAP3 family
                Should be "ti,omap4-l3-noc" for OMAP4 family
+- reg: Contains L3 register address range for each noc domain.
 - ti,hwmods: "l3_main_1", ... One hwmod for each noc domain.
 
 Examples:
index 8732d4d41f8ba538ce708e6c40677b1560bdeb90..d02e27c764ecc4facab9bceeffa756693d8c0a98 100644 (file)
@@ -1,7 +1,20 @@
 OMAP Timer bindings
 
 Required properties:
-- compatible:          Must be "ti,omap2-timer" for OMAP2+ controllers.
+- compatible:          Should be set to one of the below. Please note that
+                       OMAP44xx devices have timer instances that are 100%
+                       register compatible with OMAP3xxx devices as well as
+                       newer timers that are not 100% register compatible.
+                       So for OMAP44xx devices timer instances may use
+                       different compatible strings.
+
+                       ti,omap2420-timer (applicable to OMAP24xx devices)
+                       ti,omap3430-timer (applicable to OMAP3xxx/44xx devices)
+                       ti,omap4430-timer (applicable to OMAP44xx devices)
+                       ti,omap5430-timer (applicable to OMAP543x devices)
+                       ti,am335x-timer (applicable to AM335x devices)
+                       ti,am335x-timer-1ms (applicable to AM335x devices)
+
 - reg:                 Contains timer register address range (base address and
                        length).
 - interrupts:          Contains the interrupt information for the timer. The
@@ -22,7 +35,7 @@ Optional properties:
 Example:
 
 timer12: timer@48304000 {
-       compatible = "ti,omap2-timer";
+       compatible = "ti,omap3430-timer";
        reg = <0x48304000 0x400>;
        interrupts = <95>;
        ti,hwmods = "timer12"
diff --git a/Documentation/devicetree/bindings/arm/samsung/sysreg.txt b/Documentation/devicetree/bindings/arm/samsung/sysreg.txt
new file mode 100644 (file)
index 0000000..5039c0a
--- /dev/null
@@ -0,0 +1,7 @@
+SAMSUNG S5P/Exynos SoC series System Registers (SYSREG)
+
+Properties:
+ - name : should be 'sysreg';
+ - compatible : should contain "samsung,<chip name>-sysreg", "syscon";
+   For Exynos4 SoC series it should be "samsung,exynos4-sysreg", "syscon";
+ - reg : offset and length of the register set.
index ded0398d3bdc3f95d453f2c06165446a1fe5db84..a4873e5e3e36de172c49f59108360e32aca9fefd 100644 (file)
@@ -3,17 +3,58 @@
 Required properties:
 - compatible : Should be "fsl,<chip>-dma-apbh" or "fsl,<chip>-dma-apbx"
 - reg : Should contain registers location and length
+- interrupts : Should contain the interrupt numbers of DMA channels.
+  If a channel is empty/reserved, 0 should be filled in place.
+- #dma-cells : Must be <1>.  The number cell specifies the channel ID.
+- dma-channels : Number of channels supported by the DMA controller
+
+Optional properties:
+- interrupt-names : Name of DMA channel interrupts
 
 Supported chips:
 imx23, imx28.
 
 Examples:
-dma-apbh@80004000 {
+
+dma_apbh: dma-apbh@80004000 {
        compatible = "fsl,imx28-dma-apbh";
-       reg = <0x80004000 2000>;
+       reg = <0x80004000 0x2000>;
+       interrupts = <82 83 84 85
+                     88 88 88 88
+                     88 88 88 88
+                     87 86 0 0>;
+       interrupt-names = "ssp0", "ssp1", "ssp2", "ssp3",
+                         "gpmi0", "gmpi1", "gpmi2", "gmpi3",
+                         "gpmi4", "gmpi5", "gpmi6", "gmpi7",
+                         "hsadc", "lcdif", "empty", "empty";
+       #dma-cells = <1>;
+       dma-channels = <16>;
 };
 
-dma-apbx@80024000 {
+dma_apbx: dma-apbx@80024000 {
        compatible = "fsl,imx28-dma-apbx";
-       reg = <0x80024000 2000>;
+       reg = <0x80024000 0x2000>;
+       interrupts = <78 79 66 0
+                     80 81 68 69
+                     70 71 72 73
+                     74 75 76 77>;
+       interrupt-names = "auart4-rx", "aurat4-tx", "spdif-tx", "empty",
+                         "saif0", "saif1", "i2c0", "i2c1",
+                         "auart0-rx", "auart0-tx", "auart1-rx", "auart1-tx",
+                         "auart2-rx", "auart2-tx", "auart3-rx", "auart3-tx";
+       #dma-cells = <1>;
+       dma-channels = <16>;
+};
+
+DMA clients connected to the MXS DMA controller must use the format
+described in the dma.txt file.
+
+Examples:
+
+auart0: serial@8006a000 {
+       compatible = "fsl,imx28-auart", "fsl,imx23-auart";
+       reg = <0x8006a000 0x2000>;
+       interrupts = <112>;
+       dmas = <&dma_apbx 8>, <&dma_apbx 9>;
+       dma-names = "rx", "tx";
 };
index b41e5e52a676c4cf28f7c0529e9cb64d46a3b0a6..96ec5179c8a00199e2056ee574c3c55aef37bae3 100644 (file)
@@ -5,9 +5,16 @@ Required properties:
   imx23 and imx28.
 - reg: Address and length of the register set for lcdif
 - interrupts: Should contain lcdif interrupts
+- display : phandle to display node (see below for details)
 
-Optional properties:
-- panel-enable-gpios : Should specify the gpio for panel enable
+* display node
+
+Required properties:
+- bits-per-pixel : <16> for RGB565, <32> for RGB888/666.
+- bus-width : number of data lines.  Could be <8>, <16>, <18> or <24>.
+
+Required sub-node:
+- display-timings : Refer to binding doc display-timing.txt for details.
 
 Examples:
 
@@ -15,5 +22,28 @@ lcdif@80030000 {
        compatible = "fsl,imx28-lcdif";
        reg = <0x80030000 2000>;
        interrupts = <38 86>;
-       panel-enable-gpios = <&gpio3 30 0>;
+
+       display: display {
+               bits-per-pixel = <32>;
+               bus-width = <24>;
+
+               display-timings {
+                       native-mode = <&timing0>;
+                       timing0: timing0 {
+                               clock-frequency = <33500000>;
+                               hactive = <800>;
+                               vactive = <480>;
+                               hfront-porch = <164>;
+                               hback-porch = <89>;
+                               hsync-len = <10>;
+                               vback-porch = <23>;
+                               vfront-porch = <10>;
+                               vsync-len = <10>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               de-active = <1>;
+                               pixelclk-active = <0>;
+                       };
+               };
+       };
 };
index 1b524c0c79fe3a22535280f5149d97559b45faf2..8d950522e7fa4220f0d018636650cfb104a2c272 100644 (file)
@@ -5,12 +5,12 @@ Required properties:
   - "ti,omap2-gpio" for OMAP2 controllers
   - "ti,omap3-gpio" for OMAP3 controllers
   - "ti,omap4-gpio" for OMAP4 controllers
+- gpio-controller : Marks the device node as a GPIO controller.
 - #gpio-cells : Should be two.
   - first cell is the pin number
   - second cell is used to specify optional parameters (unused)
-- gpio-controller : Marks the device node as a GPIO controller.
+- interrupt-controller: Mark the device node as an interrupt controller.
 - #interrupt-cells : Should be 2.
-- interrupt-controller: Mark the device node as an interrupt controller
   The first cell is the GPIO number.
   The second cell is used to specify flags:
     bits[3:0] trigger type and level flags:
@@ -32,8 +32,8 @@ Example:
 gpio4: gpio4 {
     compatible = "ti,omap4-gpio";
     ti,hwmods = "gpio4";
-    #gpio-cells = <2>;
     gpio-controller;
-    #interrupt-cells = <2>;
+    #gpio-cells = <2>;
     interrupt-controller;
+    #interrupt-cells = <2>;
 };
diff --git a/Documentation/devicetree/bindings/gpu/samsung-g2d.txt b/Documentation/devicetree/bindings/gpu/samsung-g2d.txt
new file mode 100644 (file)
index 0000000..2b14a94
--- /dev/null
@@ -0,0 +1,20 @@
+* Samsung 2D Graphics Accelerator
+
+Required properties:
+  - compatible : value should be one among the following:
+       (a) "samsung,s5pv210-g2d" for G2D IP present in S5PV210 & Exynos4210 SoC
+       (b) "samsung,exynos4212-g2d" for G2D IP present in Exynos4x12 SoCs
+       (c) "samsung,exynos5250-g2d" for G2D IP present in Exynos5250 SoC
+
+  - reg : Physical base address of the IP registers and length of memory
+         mapped region.
+
+  - interrupts : G2D interrupt number to the CPU.
+
+Example:
+       g2d@12800000 {
+               compatible = "samsung,s5pv210-g2d";
+               reg = <0x12800000 0x1000>;
+               interrupts = <0 89 0>;
+               status = "disabled";
+       };
index 7a3fe9e5f4cbb1a95cd23f2241f649afb4e3df87..4e1c8ac01eba54da7685cbbaf69109e1ff69634a 100644 (file)
@@ -3,10 +3,13 @@
 Required properties:
 - compatible: Should be "fsl,<chip>-i2c"
 - reg: Should contain registers location and length
-- interrupts: Should contain ERROR and DMA interrupts
+- interrupts: Should contain ERROR interrupt number
 - clock-frequency: Desired I2C bus clock frequency in Hz.
                    Only 100000Hz and 400000Hz modes are supported.
-- fsl,i2c-dma-channel: APBX DMA channel for the I2C
+- dmas: DMA specifier, consisting of a phandle to DMA controller node
+  and I2C DMA channel ID.
+  Refer to dma.txt and fsl-mxs-dma.txt for details.
+- dma-names: Must be "rx-tx".
 
 Examples:
 
@@ -15,7 +18,8 @@ i2c0: i2c@80058000 {
        #size-cells = <0>;
        compatible = "fsl,imx28-i2c";
        reg = <0x80058000 2000>;
-       interrupts = <111 68>;
+       interrupts = <111>;
        clock-frequency = <100000>;
-       fsl,i2c-dma-channel = <6>;
+       dmas = <&dma_apbx 6>;
+       dma-names = "rx-tx";
 };
diff --git a/Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt b/Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt
new file mode 100644 (file)
index 0000000..ef77cc7
--- /dev/null
@@ -0,0 +1,60 @@
+NVIDIA Tegra20/Tegra30/Tegra114 I2C controller driver.
+
+Required properties:
+- compatible : should be:
+       "nvidia,tegra114-i2c"
+       "nvidia,tegra30-i2c"
+       "nvidia,tegra20-i2c"
+       "nvidia,tegra20-i2c-dvc"
+  Details of compatible are as follows:
+  nvidia,tegra20-i2c-dvc: Tegra20 has specific I2C controller called as DVC I2C
+       controller. This only support master mode of I2C communication. Register
+       interface/offset and interrupts handling are different than generic I2C
+       controller. Driver of DVC I2C controller is only compatible with
+       "nvidia,tegra20-i2c-dvc".
+  nvidia,tegra20-i2c: Tegra20 has 4 generic I2C controller. This can support
+       master and slave mode of I2C communication. The i2c-tegra driver only
+       support master mode of I2C communication. Driver of I2C controller is
+       only compatible with "nvidia,tegra20-i2c".
+  nvidia,tegra30-i2c: Tegra30 has 5 generic I2C controller. This controller is
+       very much similar to Tegra20 I2C controller with additional feature:
+       Continue Transfer Support. This feature helps to implement M_NO_START
+       as per I2C core API transfer flags. Driver of I2C controller is
+       compatible with "nvidia,tegra30-i2c" to enable the continue transfer
+       support. This is also compatible with "nvidia,tegra20-i2c" without
+       continue transfer support.
+  nvidia,tegra114-i2c: Tegra114 has 5 generic I2C controller. This controller is
+       very much similar to Tegra30 I2C controller with some hardware
+       modification:
+        - Tegra30/Tegra20 I2C controller has 2 clock source called div-clk and
+          fast-clk. Tegra114 has only one clock source called as div-clk and
+          hence clock mechanism is changed in I2C controller.
+        - Tegra30/Tegra20 I2C controller has enabled per packet transfer by
+          default and there is no way to disable it. Tegra114 has this
+          interrupt disable by default and SW need to enable explicitly.
+       Due to above changes, Tegra114 I2C driver makes incompatible with
+       previous hardware driver. Hence, tegra114 I2C controller is compatible
+       with "nvidia,tegra114-i2c".
+- reg: Should contain I2C controller registers physical address and length.
+- interrupts: Should contain I2C controller interrupts.
+- address-cells: Address cells for I2C device address.
+- size-cells: Size of the I2C device address.
+- clocks: Clock ID as per
+               Documentation/devicetree/bindings/clock/tegra<chip-id>.txt
+       for I2C controller.
+- clock-names: Name of the clock:
+       Tegra20/Tegra30 I2C controller: "div-clk and "fast-clk".
+       Tegra114 I2C controller: "div-clk".
+
+Example:
+
+       i2c@7000c000 {
+               compatible = "nvidia,tegra20-i2c";
+               reg = <0x7000c000 0x100>;
+               interrupts = <0 38 0x04>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&tegra_car 12>, <&tegra_car 124>;
+               clock-names = "div-clk", "fast-clk";
+               status = "disabled";
+       };
index 54949f6faedebf3ba54825bd62fb1a1ab254cf95..515addc200706293b21c654453a3dc8ba78eaa4c 100644 (file)
@@ -9,15 +9,19 @@ and the properties used by the mxsmmc driver.
 Required properties:
 - compatible: Should be "fsl,<chip>-mmc".  The supported chips include
   imx23 and imx28.
-- interrupts: Should contain ERROR and DMA interrupts
-- fsl,ssp-dma-channel: APBH DMA channel for the SSP
+- interrupts: Should contain ERROR interrupt number
+- dmas: DMA specifier, consisting of a phandle to DMA controller node
+  and SSP DMA channel ID.
+  Refer to dma.txt and fsl-mxs-dma.txt for details.
+- dma-names: Must be "rx-tx".
 
 Examples:
 
 ssp0: ssp@80010000 {
        compatible = "fsl,imx28-mmc";
        reg = <0x80010000 2000>;
-       interrupts = <96 82>;
-       fsl,ssp-dma-channel = <0>;
+       interrupts = <96>;
+       dmas = <&dma_apbh 0>;
+       dma-names = "rx-tx";
        bus-width = <8>;
 };
index 3fb3f9015365d0c15d1b4219838d6d16bef9cc53..551b2a179d016df4bd9bb8e611f38633d57d6640 100644 (file)
@@ -7,10 +7,12 @@ Required properties:
   - compatible : should be "fsl,<chip>-gpmi-nand"
   - reg : should contain registers location and length for gpmi and bch.
   - reg-names: Should contain the reg names "gpmi-nand" and "bch"
-  - interrupts : The first is the DMA interrupt number for GPMI.
-                 The second is the BCH interrupt number.
-  - interrupt-names : The interrupt names "gpmi-dma", "bch";
-  - fsl,gpmi-dma-channel : Should contain the dma channel it uses.
+  - interrupts : BCH interrupt number.
+  - interrupt-names : Should be "bch".
+  - dmas: DMA specifier, consisting of a phandle to DMA controller node
+    and GPMI DMA channel ID.
+    Refer to dma.txt and fsl-mxs-dma.txt for details.
+  - dma-names: Must be "rx-tx".
 
 Optional properties:
   - nand-on-flash-bbt: boolean to enable on flash bbt option if not
@@ -27,9 +29,10 @@ gpmi-nand@8000c000 {
        #size-cells = <1>;
        reg = <0x8000c000 2000>, <0x8000a000 2000>;
        reg-names = "gpmi-nand", "bch";
-       interrupts = <88>, <41>;
-       interrupt-names = "gpmi-dma", "bch";
-       fsl,gpmi-dma-channel = <4>;
+       interrupts = <41>;
+       interrupt-names = "bch";
+       dmas = <&dma_apbh 4>;
+       dma-names = "rx-tx";
 
        partition@0 {
        ...
index f7e8e8f4d9a3387a280406fcc92ccd2bb5baad83..3077370c89af75c22b60fd59f83ea1dc841eea37 100644 (file)
@@ -70,6 +70,10 @@ Optional subnode-properties:
     0: Disable the internal pull-up
     1: Enable the internal pull-up
 
+Note that when enabling the pull-up, the internal pad keeper gets disabled.
+Also, some pins doesn't have a pull up, in that case, setting the fsl,pull-up
+will only disable the internal pad keeper.
+
 Examples:
 
 pinctrl@80018000 {
index b77a97c9101e2bf4a3daa1367cc8ecf4cf8b3b8a..05ffecb571037cb562778cb243a84555384345d1 100644 (file)
@@ -2,6 +2,11 @@ NVIDIA Tegra audio complex
 
 Required properties:
 - compatible : "nvidia,tegra-audio-alc5632"
+- clocks : Must contain an entry for each entry in clock-names.
+- clock-names : Must include the following entries:
+  "pll_a" (The Tegra clock of that name),
+  "pll_a_out0" (The Tegra clock of that name),
+  "mclk" (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk)
 - nvidia,model : The user-visible name of this sound complex.
 - nvidia,audio-routing : A list of the connections between audio components.
   Each entry is a pair of strings, the first being the connection's sink,
@@ -56,4 +61,7 @@ sound {
 
        nvidia,i2s-controller = <&tegra_i2s1>;
        nvidia,audio-codec = <&alc5632>;
+
+       clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 93>;
+       clock-names = "pll_a", "pll_a_out0", "mclk";
 };
index 04b14cfb1f16ba1a7180066c2970d9a0829a92bf..ef1fe735827914611661293049f0dca05ba57d00 100644 (file)
@@ -2,6 +2,11 @@ NVIDIA Tegra audio complex for TrimSlice
 
 Required properties:
 - compatible : "nvidia,tegra-audio-trimslice"
+- clocks : Must contain an entry for each entry in clock-names.
+- clock-names : Must include the following entries:
+  "pll_a" (The Tegra clock of that name),
+  "pll_a_out0" (The Tegra clock of that name),
+  "mclk" (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk)
 - nvidia,i2s-controller : The phandle of the Tegra I2S1 controller
 - nvidia,audio-codec : The phandle of the WM8903 audio codec
 
@@ -11,4 +16,6 @@ sound {
        compatible = "nvidia,tegra-audio-trimslice";
        nvidia,i2s-controller = <&tegra_i2s1>;
        nvidia,audio-codec = <&codec>;
+       clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 93>;
+       clock-names = "pll_a", "pll_a_out0", "mclk";
 };
index c4dd39ce6165c0b25eedd4a9eabadb0f440687c8..d14510613a7fdf1ac076320a04468976aa88811a 100644 (file)
@@ -2,6 +2,11 @@ NVIDIA Tegra audio complex
 
 Required properties:
 - compatible : "nvidia,tegra-audio-wm8753"
+- clocks : Must contain an entry for each entry in clock-names.
+- clock-names : Must include the following entries:
+  "pll_a" (The Tegra clock of that name),
+  "pll_a_out0" (The Tegra clock of that name),
+  "mclk" (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk)
 - nvidia,model : The user-visible name of this sound complex.
 - nvidia,audio-routing : A list of the connections between audio components.
   Each entry is a pair of strings, the first being the connection's sink,
@@ -50,5 +55,8 @@ sound {
 
        nvidia,i2s-controller = <&i2s1>;
        nvidia,audio-codec = <&wm8753>;
+
+       clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 93>;
+       clock-names = "pll_a", "pll_a_out0", "mclk";
 };
 
index d5b0da8bf1d8e2b3b400cfcde94425e8d0cba9e8..3bf722deb722265422283b4b897c37ffc74d31ae 100644 (file)
@@ -2,6 +2,11 @@ NVIDIA Tegra audio complex
 
 Required properties:
 - compatible : "nvidia,tegra-audio-wm8903"
+- clocks : Must contain an entry for each entry in clock-names.
+- clock-names : Must include the following entries:
+  "pll_a" (The Tegra clock of that name),
+  "pll_a_out0" (The Tegra clock of that name),
+  "mclk" (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk)
 - nvidia,model : The user-visible name of this sound complex.
 - nvidia,audio-routing : A list of the connections between audio components.
   Each entry is a pair of strings, the first being the connection's sink,
@@ -67,5 +72,8 @@ sound {
        nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
        nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */
        nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */
+
+       clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 93>;
+       clock-names = "pll_a", "pll_a_out0", "mclk";
 };
 
index be35d34e8b26dd9701dd7b85acd2bbb6c3d5e451..ad589b16363988460afb2f697535a0c8dfaa47e4 100644 (file)
@@ -2,6 +2,11 @@ NVIDIA Tegra audio complex
 
 Required properties:
 - compatible : "nvidia,tegra-audio-wm9712"
+- clocks : Must contain an entry for each entry in clock-names.
+- clock-names : Must include the following entries:
+  "pll_a" (The Tegra clock of that name),
+  "pll_a_out0" (The Tegra clock of that name),
+  "mclk" (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk)
 - nvidia,model : The user-visible name of this sound complex.
 - nvidia,audio-routing : A list of the connections between audio components.
   Each entry is a pair of strings, the first being the connection's sink,
@@ -48,4 +53,7 @@ sound {
                "Mic", "MIC1";
 
        nvidia,ac97-controller = <&ac97>;
+
+       clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 93>;
+       clock-names = "pll_a", "pll_a_out0", "mclk";
 };
index e2e13957c2a4102179f4a28f7ef1bedd21e91c1c..3499b73293c20562b1036215016e37c2265d57ff 100644 (file)
@@ -3,8 +3,11 @@
 Required properties:
 - compatible: Should be "fsl,<soc>-spi", where soc is "imx23" or "imx28"
 - reg: Offset and length of the register set for the device
-- interrupts: Should contain SSP interrupts (error irq first, dma irq second)
-- fsl,ssp-dma-channel: APBX DMA channel for the SSP
+- interrupts: Should contain SSP ERROR interrupt
+- dmas: DMA specifier, consisting of a phandle to DMA controller node
+  and SSP DMA channel ID.
+  Refer to dma.txt and fsl-mxs-dma.txt for details.
+- dma-names: Must be "rx-tx".
 
 Optional properties:
 - clock-frequency : Input clock frequency to the SPI block in Hz.
@@ -17,6 +20,7 @@ ssp0: ssp@80010000 {
        #size-cells = <0>;
        compatible = "fsl,imx28-spi";
        reg = <0x80010000 0x2000>;
-       interrupts = <96 82>;
-       fsl,ssp-dma-channel = <0>;
+       interrupts = <96>;
+       dmas = <&dma_apbh 0>;
+       dma-names = "rx-tx";
 };
diff --git a/Documentation/devicetree/bindings/spi/spi-davinci.txt b/Documentation/devicetree/bindings/spi/spi-davinci.txt
new file mode 100644 (file)
index 0000000..6d0ac8d
--- /dev/null
@@ -0,0 +1,51 @@
+Davinci SPI controller device bindings
+
+Required properties:
+- #address-cells: number of cells required to define a chip select
+       address on the SPI bus. Should be set to 1.
+- #size-cells: should be zero.
+- compatible:
+       - "ti,dm6441-spi" for SPI used similar to that on DM644x SoC family
+       - "ti,da830-spi" for SPI used similar to that on DA8xx SoC family
+- reg: Offset and length of SPI controller register space
+- num-cs: Number of chip selects
+- ti,davinci-spi-intr-line: interrupt line used to connect the SPI
+       IP to the interrupt controller within the SoC. Possible values
+       are 0 and 1. Manual says one of the two possible interrupt
+       lines can be tied to the interrupt controller. Set this
+       based on a specifc SoC configuration.
+- interrupts: interrupt number mapped to CPU.
+- clocks: spi clk phandle
+
+Example of a NOR flash slave device (n25q032) connected to DaVinci
+SPI controller device over the SPI bus.
+
+spi0:spi@20BF0000 {
+       #address-cells                  = <1>;
+       #size-cells                     = <0>;
+       compatible                      = "ti,dm6446-spi";
+       reg                             = <0x20BF0000 0x1000>;
+       num-cs                          = <4>;
+       ti,davinci-spi-intr-line        = <0>;
+       interrupts                      = <338>;
+       clocks                          = <&clkspi>;
+
+       flash: n25q032@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "st,m25p32";
+               spi-max-frequency = <25000000>;
+               reg = <0>;
+
+               partition@0 {
+                       label = "u-boot-spl";
+                       reg = <0x0 0x80000>;
+                       read-only;
+               };
+
+               partition@1 {
+                       label = "test";
+                       reg = <0x80000 0x380000>;
+               };
+       };
+};
index 273a8d5b330014c1e7aa2227b76e16f2668dab25..2c00ec64628e26c6c87591b238d979509d7e3f66 100644 (file)
@@ -5,20 +5,18 @@ Required properties:
   imx23 and imx28.
 - reg : Address and length of the register set for the device
 - interrupts : Should contain the auart interrupt numbers
-
-Optional properties:
-- fsl,auart-dma-channel : The DMA channels, the first is for RX, the other
-               is for TX. If you add this property, it also means that you
-               will enable the DMA support for the auart.
-               Note: due to the hardware bug in imx23(see errata : 2836),
-               only the imx28 can enable the DMA support for the auart.
+- dmas: DMA specifier, consisting of a phandle to DMA controller node
+  and AUART DMA channel ID.
+  Refer to dma.txt and fsl-mxs-dma.txt for details.
+- dma-names: "rx" for RX channel, "tx" for TX channel.
 
 Example:
 auart0: serial@8006a000 {
        compatible = "fsl,imx28-auart", "fsl,imx23-auart";
        reg = <0x8006a000 0x2000>;
-       interrupts = <112 70 71>;
-       fsl,auart-dma-channel = <8 9>;
+       interrupts = <112>;
+       dmas = <&dma_apbx 8>, <&dma_apbx 9>;
+       dma-names = "rx", "tx";
 };
 
 Note: Each auart port should have an alias correctly numbered in "aliases"
index f66fcddba46fa629af4b9d79fbc0657918f81bda..b3abde736017a2491cbca67ee867633bcd08d395 100644 (file)
@@ -10,6 +10,8 @@ Required properties:
  - reg: physical base address of the controller and length of memory mapped
    region.
  - interrupts: interrupt number to the cpu.
+ - clocks: from common clock binding: handle to usb clock.
+ - clock-names: from common clock binding: Shall be "usbhost".
 
 Optional properties:
  - samsung,vbus-gpio:  if present, specifies the GPIO that
@@ -22,6 +24,9 @@ Example:
                reg = <0x12110000 0x100>;
                interrupts = <0 71 0>;
                samsung,vbus-gpio = <&gpx2 6 1 3 3>;
+
+               clocks = <&clock 285>;
+               clock-names = "usbhost";
        };
 
 OHCI
@@ -31,10 +36,15 @@ Required properties:
  - reg: physical base address of the controller and length of memory mapped
    region.
  - interrupts: interrupt number to the cpu.
+ - clocks: from common clock binding: handle to usb clock.
+ - clock-names: from common clock binding: Shall be "usbhost".
 
 Example:
        usb@12120000 {
                compatible = "samsung,exynos4210-ohci";
                reg = <0x12120000 0x100>;
                interrupts = <0 71 0>;
+
+               clocks = <&clock 285>;
+               clock-names = "usbhost";
        };
index 662f0f1d23150b236bb9c5af15a376a0052afc39..d4769f343d6cfbdaeb5ba16880d450e339145d6b 100644 (file)
@@ -18,6 +18,7 @@ OMAP MUSB GLUE
    represents PERIPHERAL.
  - power : Should be "50". This signifies the controller can supply upto
    100mA when operating in host mode.
+ - usb-phy : the phandle for the PHY device
 
 Optional properties:
  - ctrl-module : phandle of the control module this glue uses to write to
diff --git a/Documentation/devicetree/bindings/video/samsung-fimd.txt b/Documentation/devicetree/bindings/video/samsung-fimd.txt
new file mode 100644 (file)
index 0000000..778838a
--- /dev/null
@@ -0,0 +1,65 @@
+Device-Tree bindings for Samsung SoC display controller (FIMD)
+
+FIMD (Fully Interactive Mobile Display) is the Display Controller for the
+Samsung series of SoCs which transfers the image data from a video memory
+buffer to an external LCD interface.
+
+Required properties:
+- compatible: value should be one of the following
+               "samsung,s3c2443-fimd"; /* for S3C24XX SoCs */
+               "samsung,s3c6400-fimd"; /* for S3C64XX SoCs */
+               "samsung,s5p6440-fimd"; /* for S5P64X0 SoCs */
+               "samsung,s5pc100-fimd"; /* for S5PC100 SoC  */
+               "samsung,s5pv210-fimd"; /* for S5PV210 SoC */
+               "samsung,exynos4210-fimd"; /* for Exynos4 SoCs */
+               "samsung,exynos5250-fimd"; /* for Exynos5 SoCs */
+
+- reg: physical base address and length of the FIMD registers set.
+
+- interrupt-parent: should be the phandle of the fimd controller's
+               parent interrupt controller.
+
+- interrupts: should contain a list of all FIMD IP block interrupts in the
+                order: FIFO Level, VSYNC, LCD_SYSTEM. The interrupt specifier
+                format depends on the interrupt controller used.
+
+- interrupt-names: should contain the interrupt names: "fifo", "vsync",
+       "lcd_sys", in the same order as they were listed in the interrupts
+        property.
+
+- pinctrl-0: pin control group to be used for this controller.
+
+- pinctrl-names: must contain a "default" entry.
+
+- clocks: must include clock specifiers corresponding to entries in the
+         clock-names property.
+
+- clock-names: list of clock names sorted in the same order as the clocks
+               property. Must contain "sclk_fimd" and "fimd".
+
+Optional Properties:
+- samsung,power-domain: a phandle to FIMD power domain node.
+
+Example:
+
+SoC specific DT entry:
+
+       fimd@11c00000 {
+               compatible = "samsung,exynos4210-fimd";
+               interrupt-parent = <&combiner>;
+               reg = <0x11c00000 0x20000>;
+               interrupt-names = "fifo", "vsync", "lcd_sys";
+               interrupts = <11 0>, <11 1>, <11 2>;
+               clocks = <&clock 140>, <&clock 283>;
+               clock-names = "sclk_fimd", "fimd";
+               samsung,power-domain = <&pd_lcd0>;
+               status = "disabled";
+       };
+
+Board specific DT entry:
+
+       fimd@11c00000 {
+               pinctrl-0 = <&lcd_clk &lcd_data24 &pwm1_out>;
+               pinctrl-names = "default";
+               status = "okay";
+       };
index 2ab88e91e65f3cfecb603a05736e7d22d73035af..e6611eaa288520b5dfee6bed813e5666f715402e 100644 (file)
@@ -53,6 +53,7 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
        exynos4412-smdk4412.dtb \
        exynos4412-origen.dtb \
        exynos5250-arndale.dtb \
+       exynos5440-sd5v1.dtb \
        exynos5250-smdk5250.dtb \
        exynos5250-snow.dtb \
        exynos5440-ssdk5440.dtb
@@ -134,10 +135,14 @@ dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \
        imx28-tx28.dtb
 dtb-$(CONFIG_ARCH_NOMADIK) += ste-nomadik-s8815.dtb
 dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
+       omap3430-sdp.dtb \
        omap3-beagle.dtb \
+       omap3-devkit8000.dtb \
        omap3-beagle-xm.dtb \
        omap3-evm.dtb \
        omap3-tobi.dtb \
+       omap3-igep0020.dtb \
+       omap3-igep0030.dtb \
        omap4-panda.dtb \
        omap4-panda-a4.dtb \
        omap4-panda-es.dtb \
index 11b240c5d3238e7a76699be74f0f1085de4f5c4b..5302f79c05b719e3317bb0e3431c144073691724 100644 (file)
@@ -43,7 +43,7 @@
                        status = "okay";
                };
 
-               i2c1: i2c@44e0b000 {
+               i2c0: i2c@44e0b000 {
                        status = "okay";
                        clock-frequency = <400000>;
 
 
                led@2 {
                        label = "beaglebone:green:heartbeat";
-                       gpios = <&gpio2 21 0>;
+                       gpios = <&gpio1 21 0>;
                        linux,default-trigger = "heartbeat";
                        default-state = "off";
                };
 
                led@3 {
                        label = "beaglebone:green:mmc0";
-                       gpios = <&gpio2 22 0>;
+                       gpios = <&gpio1 22 0>;
                        linux,default-trigger = "mmc0";
                        default-state = "off";
                };
 
                led@4 {
                        label = "beaglebone:green:usr2";
-                       gpios = <&gpio2 23 0>;
+                       gpios = <&gpio1 23 0>;
                        default-state = "off";
                };
 
                led@5 {
                        label = "beaglebone:green:usr3";
-                       gpios = <&gpio2 24 0>;
+                       gpios = <&gpio1 24 0>;
                        default-state = "off";
                };
        };
index d6496440fcea496b2d93a3b91b8005101ccc2efa..0423298a26fe634e174b4138cac7ee2ee28f6a2c 100644 (file)
@@ -51,7 +51,7 @@
                        status = "okay";
                };
 
-               i2c1: i2c@44e0b000 {
+               i2c0: i2c@44e0b000 {
                        status = "okay";
                        clock-frequency = <400000>;
 
@@ -60,7 +60,7 @@
                        };
                };
 
-               i2c2: i2c@4802a000 {
+               i2c1: i2c@4802a000 {
                        status = "okay";
                        clock-frequency = <100000>;
 
                debounce-delay-ms = <5>;
                col-scan-delay-us = <2>;
 
-               row-gpios = <&gpio2 25 0        /* Bank1, pin25 */
-                            &gpio2 26 0        /* Bank1, pin26 */
-                            &gpio2 27 0>;      /* Bank1, pin27 */
+               row-gpios = <&gpio1 25 0        /* Bank1, pin25 */
+                            &gpio1 26 0        /* Bank1, pin26 */
+                            &gpio1 27 0>;      /* Bank1, pin27 */
 
-               col-gpios = <&gpio2 21 0        /* Bank1, pin21 */
-                            &gpio2 22 0>;      /* Bank1, pin22 */
+               col-gpios = <&gpio1 21 0        /* Bank1, pin21 */
+                            &gpio1 22 0>;      /* Bank1, pin22 */
 
                linux,keymap = <0x0000008b      /* MENU */
                                0x0100009e      /* BACK */
                switch@9 {
                        label = "volume-up";
                        linux,code = <115>;
-                       gpios = <&gpio1 2 1>;
+                       gpios = <&gpio0 2 1>;
                        gpio-key,wakeup;
                };
 
                switch@10 {
                        label = "volume-down";
                        linux,code = <114>;
-                       gpios = <&gpio1 3 1>;
+                       gpios = <&gpio0 3 1>;
                        gpio-key,wakeup;
                };
        };
index f5a6162a4ff22c0137fc97346c03d26cca11e8b7..f67c360844f482f20338c9b18b5ff0b76f2de542 100644 (file)
@@ -58,7 +58,7 @@
                        status = "okay";
                };
 
-               i2c1: i2c@44e0b000 {
+               i2c0: i2c@44e0b000 {
                        status = "okay";
                        clock-frequency = <400000>;
 
 
                led@1 {
                        label = "evmsk:green:usr0";
-                       gpios = <&gpio2 4 0>;
+                       gpios = <&gpio1 4 0>;
                        default-state = "off";
                };
 
                led@2 {
                        label = "evmsk:green:usr1";
-                       gpios = <&gpio2 5 0>;
+                       gpios = <&gpio1 5 0>;
                        default-state = "off";
                };
 
                led@3 {
                        label = "evmsk:green:mmc0";
-                       gpios = <&gpio2 6 0>;
+                       gpios = <&gpio1 6 0>;
                        linux,default-trigger = "mmc0";
                        default-state = "off";
                };
 
                led@4 {
                        label = "evmsk:green:heartbeat";
-                       gpios = <&gpio2 7 0>;
+                       gpios = <&gpio1 7 0>;
                        linux,default-trigger = "heartbeat";
                        default-state = "off";
                };
                switch@1 {
                        label = "button0";
                        linux,code = <0x100>;
-                       gpios = <&gpio3 3 0>;
+                       gpios = <&gpio2 3 0>;
                };
 
                switch@2 {
                        label = "button1";
                        linux,code = <0x101>;
-                       gpios = <&gpio3 2 0>;
+                       gpios = <&gpio2 2 0>;
                };
 
                switch@3 {
                        label = "button2";
                        linux,code = <0x102>;
-                       gpios = <&gpio1 30 0>;
+                       gpios = <&gpio0 30 0>;
                        gpio-key,wakeup;
                };
 
                switch@4 {
                        label = "button3";
                        linux,code = <0x103>;
-                       gpios = <&gpio3 5 0>;
+                       gpios = <&gpio2 5 0>;
                };
        };
 };
index 91fe4f148f80cec2f74f55781dea2e1bf58115f9..d1101103aa51fe8911dab9c01bacd56421469494 100644 (file)
@@ -21,6 +21,8 @@
                serial3 = &uart4;
                serial4 = &uart5;
                serial5 = &uart6;
+               d_can0 = &dcan0;
+               d_can1 = &dcan1;
        };
 
        cpus {
@@ -87,7 +89,7 @@
                        reg = <0x48200000 0x1000>;
                };
 
-               gpio1: gpio@44e07000 {
+               gpio0: gpio@44e07000 {
                        compatible = "ti,omap4-gpio";
                        ti,hwmods = "gpio1";
                        gpio-controller;
                        interrupts = <96>;
                };
 
-               gpio2: gpio@4804c000 {
+               gpio1: gpio@4804c000 {
                        compatible = "ti,omap4-gpio";
                        ti,hwmods = "gpio2";
                        gpio-controller;
                        interrupts = <98>;
                };
 
-               gpio3: gpio@481ac000 {
+               gpio2: gpio@481ac000 {
                        compatible = "ti,omap4-gpio";
                        ti,hwmods = "gpio3";
                        gpio-controller;
                        interrupts = <32>;
                };
 
-               gpio4: gpio@481ae000 {
+               gpio3: gpio@481ae000 {
                        compatible = "ti,omap4-gpio";
                        ti,hwmods = "gpio4";
                        gpio-controller;
                        status = "disabled";
                };
 
-               i2c1: i2c@44e0b000 {
+               i2c0: i2c@44e0b000 {
                        compatible = "ti,omap4-i2c";
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                };
 
-               i2c2: i2c@4802a000 {
+               i2c1: i2c@4802a000 {
                        compatible = "ti,omap4-i2c";
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                };
 
-               i2c3: i2c@4819c000 {
+               i2c2: i2c@4819c000 {
                        compatible = "ti,omap4-i2c";
                        #address-cells = <1>;
                        #size-cells = <0>;
                dcan0: d_can@481cc000 {
                        compatible = "bosch,d_can";
                        ti,hwmods = "d_can0";
-                       reg = <0x481cc000 0x2000>;
+                       reg = <0x481cc000 0x2000
+                               0x44e10644 0x4>;
                        interrupts = <52>;
                        status = "disabled";
                };
                dcan1: d_can@481d0000 {
                        compatible = "bosch,d_can";
                        ti,hwmods = "d_can1";
-                       reg = <0x481d0000 0x2000>;
+                       reg = <0x481d0000 0x2000
+                               0x44e10644 0x4>;
                        interrupts = <55>;
                        status = "disabled";
                };
 
                timer1: timer@44e31000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,am335x-timer-1ms";
                        reg = <0x44e31000 0x400>;
                        interrupts = <67>;
                        ti,hwmods = "timer1";
                };
 
                timer2: timer@48040000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,am335x-timer";
                        reg = <0x48040000 0x400>;
                        interrupts = <68>;
                        ti,hwmods = "timer2";
                };
 
                timer3: timer@48042000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,am335x-timer";
                        reg = <0x48042000 0x400>;
                        interrupts = <69>;
                        ti,hwmods = "timer3";
                };
 
                timer4: timer@48044000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,am335x-timer";
                        reg = <0x48044000 0x400>;
                        interrupts = <92>;
                        ti,hwmods = "timer4";
                };
 
                timer5: timer@48046000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,am335x-timer";
                        reg = <0x48046000 0x400>;
                        interrupts = <93>;
                        ti,hwmods = "timer5";
                };
 
                timer6: timer@48048000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,am335x-timer";
                        reg = <0x48048000 0x400>;
                        interrupts = <94>;
                        ti,hwmods = "timer6";
                };
 
                timer7: timer@4804a000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,am335x-timer";
                        reg = <0x4804a000 0x400>;
                        interrupts = <95>;
                        ti,hwmods = "timer7";
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x48030000 0x400>;
-                       interrupt = <65>;
+                       interrupts = <65>;
                        ti,spi-num-cs = <2>;
                        ti,hwmods = "spi0";
                        status = "disabled";
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x481a0000 0x400>;
-                       interrupt = <125>;
+                       interrupts = <125>;
                        ti,spi-num-cs = <2>;
                        ti,hwmods = "spi1";
                        status = "disabled";
index 474f760ecadfcb2aa5a4927f1bcab14a7dfe8fa8..e9b5bdae4908bba91e92cb807d99ae8e7da3c877 100644 (file)
@@ -7,7 +7,7 @@
  */
 /dts-v1/;
 
-/include/ "omap3.dtsi"
+/include/ "omap34xx.dtsi"
 
 / {
        model = "TI AM3517 EVM (AM3517/05)";
index 5eb26d7d9b4e652b955723e99179c51a05566d66..556868388a23a0cc76531dd4202a19b2ed3ff137 100644 (file)
@@ -7,7 +7,7 @@
  */
 /dts-v1/;
 
-/include/ "omap3.dtsi"
+/include/ "omap34xx.dtsi"
 
 / {
        model = "TeeJet Mt.Ventoux";
index 6403acdbb75fe5db201026750d23fd105585769a..2353b1f13704b66e39284757b5442f5256bf01ba 100644 (file)
        };
 
        soc {
-               serial@d0012000 {
-                       clock-frequency = <200000000>;
-                       status = "okay";
-               };
-               sata@d00a0000 {
-                       nr-ports = <2>;
-                       status = "okay";
-               };
-
-               mdio {
-                       phy0: ethernet-phy@0 {
-                               reg = <0>;
+               internal-regs {
+                       serial@12000 {
+                               clock-frequency = <200000000>;
+                               status = "okay";
                        };
-
-                       phy1: ethernet-phy@1 {
-                               reg = <1>;
+                       sata@a0000 {
+                               nr-ports = <2>;
+                               status = "okay";
                        };
-               };
 
-               ethernet@d0070000 {
-                       status = "okay";
-                       phy = <&phy0>;
-                       phy-mode = "rgmii-id";
-               };
-               ethernet@d0074000 {
-                       status = "okay";
-                       phy = <&phy1>;
-                       phy-mode = "rgmii-id";
-               };
+                       mdio {
+                               phy0: ethernet-phy@0 {
+                                       reg = <0>;
+                               };
 
-               mvsdio@d00d4000 {
-                       pinctrl-0 = <&sdio_pins1>;
-                       pinctrl-names = "default";
-                       /*
-                        * This device is disabled by default, because
-                        * using the SD card connector requires
-                        * changing the default CON40 connector
-                        * "DB-88F6710_MPP_2xRGMII_DEVICE_Jumper" to a
-                        * different connector
-                        * "DB-88F6710_MPP_RGMII_SD_Jumper".
-                        */
-                       status = "disabled";
-                       /* No CD or WP GPIOs */
-               };
+                               phy1: ethernet-phy@1 {
+                                       reg = <1>;
+                               };
+                       };
 
-               usb@d0050000 {
-                       status = "okay";
-               };
+                       ethernet@70000 {
+                               status = "okay";
+                               phy = <&phy0>;
+                               phy-mode = "rgmii-id";
+                       };
+                       ethernet@74000 {
+                               status = "okay";
+                               phy = <&phy1>;
+                               phy-mode = "rgmii-id";
+                       };
 
-               usb@d0051000 {
-                       status = "okay";
-               };
+                       mvsdio@d4000 {
+                               pinctrl-0 = <&sdio_pins1>;
+                               pinctrl-names = "default";
+                               /*
+                                * This device is disabled by default, because
+                                * using the SD card connector requires
+                                * changing the default CON40 connector
+                                * "DB-88F6710_MPP_2xRGMII_DEVICE_Jumper" to a
+                                * different connector
+                                * "DB-88F6710_MPP_RGMII_SD_Jumper".
+                                */
+                               status = "disabled";
+                               /* No CD or WP GPIOs */
+                       };
 
-               spi0: spi@d0010600 {
-                       status = "okay";
+                       usb@50000 {
+                               status = "okay";
+                       };
 
-                       spi-flash@0 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               compatible = "mx25l25635e";
-                               reg = <0>; /* Chip select 0 */
-                               spi-max-frequency = <50000000>;
+                       usb@51000 {
+                               status = "okay";
                        };
-               };
 
-               pcie-controller {
-                       status = "okay";
-                       /*
-                        * The two PCIe units are accessible through
-                        * both standard PCIe slots and mini-PCIe
-                        * slots on the board.
-                        */
-                       pcie@1,0 {
-                               /* Port 0, Lane 0 */
+                       spi0: spi@10600 {
                                status = "okay";
+
+                               spi-flash@0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+                                       compatible = "mx25l25635e";
+                                       reg = <0>; /* Chip select 0 */
+                                       spi-max-frequency = <50000000>;
+                               };
                        };
-                       pcie@2,0 {
-                               /* Port 1, Lane 0 */
+
+                       pcie-controller {
                                status = "okay";
+                               /*
+                                * The two PCIe units are accessible through
+                                * both standard PCIe slots and mini-PCIe
+                                * slots on the board.
+                                */
+                               pcie@1,0 {
+                                       /* Port 0, Lane 0 */
+                                       status = "okay";
+                               };
+                               pcie@2,0 {
+                                       /* Port 1, Lane 0 */
+                                       status = "okay";
+                               };
                        };
                };
        };
index 58ee79372206e2100c08d106d1baef256553076d..14e36e19d5152caedc8e8056a723fa885c3495ce 100644 (file)
        };
 
        soc {
-               serial@d0012000 {
-                       clock-frequency = <200000000>;
-                       status = "okay";
-               };
-               timer@d0020300 {
-                       clock-frequency = <600000000>;
-                       status = "okay";
-               };
-
-               pinctrl {
-                       pwr_led_pin: pwr-led-pin {
-                               marvell,pins = "mpp63";
-                               marvell,function = "gpo";
+               internal-regs {
+                       serial@12000 {
+                               clock-frequency = <200000000>;
+                               status = "okay";
                        };
-
-                       stat_led_pins: stat-led-pins {
-                               marvell,pins = "mpp64", "mpp65";
-                               marvell,function = "gpio";
+                       timer@20300 {
+                               clock-frequency = <600000000>;
+                               status = "okay";
                        };
-               };
 
-               gpio_leds {
-                       compatible = "gpio-leds";
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pwr_led_pin &stat_led_pins>;
+                       pinctrl {
+                               pwr_led_pin: pwr-led-pin {
+                                       marvell,pins = "mpp63";
+                                       marvell,function = "gpo";
+                               };
 
-                       green_pwr_led {
-                               label = "mirabox:green:pwr";
-                               gpios = <&gpio1 31 1>;
-                               linux,default-trigger = "heartbeat";
+                               stat_led_pins: stat-led-pins {
+                                       marvell,pins = "mpp64", "mpp65";
+                                       marvell,function = "gpio";
+                               };
                        };
 
-                       blue_stat_led {
-                               label = "mirabox:blue:stat";
-                               gpios = <&gpio2 0 1>;
-                               linux,default-trigger = "cpu0";
+                       gpio_leds {
+                               compatible = "gpio-leds";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pwr_led_pin &stat_led_pins>;
+
+                               green_pwr_led {
+                                       label = "mirabox:green:pwr";
+                                       gpios = <&gpio1 31 1>;
+                                       linux,default-trigger = "heartbeat";
+                               };
+
+                               blue_stat_led {
+                                       label = "mirabox:blue:stat";
+                                       gpios = <&gpio2 0 1>;
+                                       linux,default-trigger = "cpu0";
+                               };
+
+                               green_stat_led {
+                                       label = "mirabox:green:stat";
+                                       gpios = <&gpio2 1 1>;
+                                       default-state = "off";
+                               };
                        };
 
-                       green_stat_led {
-                               label = "mirabox:green:stat";
-                               gpios = <&gpio2 1 1>;
-                               default-state = "off";
-                       };
-               };
+                       mdio {
+                               phy0: ethernet-phy@0 {
+                                       reg = <0>;
+                               };
 
-               mdio {
-                       phy0: ethernet-phy@0 {
-                               reg = <0>;
+                               phy1: ethernet-phy@1 {
+                                       reg = <1>;
+                               };
                        };
-
-                       phy1: ethernet-phy@1 {
-                               reg = <1>;
+                       ethernet@70000 {
+                               status = "okay";
+                               phy = <&phy0>;
+                               phy-mode = "rgmii-id";
+                       };
+                       ethernet@74000 {
+                               status = "okay";
+                               phy = <&phy1>;
+                               phy-mode = "rgmii-id";
                        };
-               };
-               ethernet@d0070000 {
-                       status = "okay";
-                       phy = <&phy0>;
-                       phy-mode = "rgmii-id";
-               };
-               ethernet@d0074000 {
-                       status = "okay";
-                       phy = <&phy1>;
-                       phy-mode = "rgmii-id";
-               };
-
-               mvsdio@d00d4000 {
-                       pinctrl-0 = <&sdio_pins3>;
-                       pinctrl-names = "default";
-                       status = "okay";
-                       /*
-                        * No CD or WP GPIOs: SDIO interface used for
-                        * Wifi/Bluetooth chip
-                        */
-               };
-
-               usb@d0050000 {
-                       status = "okay";
-               };
 
-               usb@d0051000 {
-                       status = "okay";
-               };
+                       mvsdio@d4000 {
+                               pinctrl-0 = <&sdio_pins3>;
+                               pinctrl-names = "default";
+                               status = "okay";
+                               /*
+                                * No CD or WP GPIOs: SDIO interface used for
+                                * Wifi/Bluetooth chip
+                                */
+                       };
 
-               i2c@d0011000 {
-                       status = "okay";
-                       clock-frequency = <100000>;
-                       pca9505: pca9505@25 {
-                               compatible = "nxp,pca9505";
-                               gpio-controller;
-                               #gpio-cells = <2>;
-                               reg = <0x25>;
+                       usb@50000 {
+                               status = "okay";
                        };
-               };
 
-               pcie-controller {
-                       status = "okay";
+                       usb@51000 {
+                               status = "okay";
+                       };
 
-                       /* Internal mini-PCIe connector */
-                       pcie@1,0 {
-                               /* Port 0, Lane 0 */
+                       i2c@11000 {
                                status = "okay";
+                               clock-frequency = <100000>;
+                               pca9505: pca9505@25 {
+                                       compatible = "nxp,pca9505";
+                                       gpio-controller;
+                                       #gpio-cells = <2>;
+                                       reg = <0x25>;
+                               };
                        };
 
-                       /* Connected on the PCB to a USB 3.0 XHCI controller */
-                       pcie@2,0 {
-                               /* Port 1, Lane 0 */
+                       pcie-controller {
                                status = "okay";
+
+                               /* Internal mini-PCIe connector */
+                               pcie@1,0 {
+                                       /* Port 0, Lane 0 */
+                                       status = "okay";
+                               };
+
+                               /* Connected on the PCB to a USB 3.0 XHCI controller */
+                               pcie@2,0 {
+                                       /* Port 1, Lane 0 */
+                                       status = "okay";
+                               };
                        };
                };
        };
index 516dec31b46900dfb855ae8dd441bf5c30601da3..130f8390a7e42d2f1e92057399cd6a6f54183cdc 100644 (file)
        };
 
        soc {
-               serial@d0012000 {
-                       clock-frequency = <200000000>;
-                       status = "okay";
-               };
-               sata@d00a0000 {
-                       nr-ports = <2>;
-                       status = "okay";
-               };
-
-               mdio {
-                       phy0: ethernet-phy@0 {
-                               reg = <0>;
+               internal-regs {
+                       serial@12000 {
+                               clock-frequency = <200000000>;
+                               status = "okay";
                        };
+                       sata@a0000 {
+                               nr-ports = <2>;
+                               status = "okay";
+                       };
+
+                       mdio {
+                               phy0: ethernet-phy@0 {
+                                       reg = <0>;
+                               };
 
-                       phy1: ethernet-phy@1 {
-                               reg = <1>;
+                               phy1: ethernet-phy@1 {
+                                       reg = <1>;
+                               };
                        };
-               };
 
-               ethernet@d0070000 {
-                       status = "okay";
-                       phy = <&phy0>;
-                       phy-mode = "sgmii";
-               };
-               ethernet@d0074000 {
-                       status = "okay";
-                       phy = <&phy1>;
-                       phy-mode = "rgmii-id";
-               };
+                       ethernet@70000 {
+                               status = "okay";
+                               phy = <&phy0>;
+                               phy-mode = "sgmii";
+                       };
+                       ethernet@74000 {
+                               status = "okay";
+                               phy = <&phy1>;
+                               phy-mode = "rgmii-id";
+                       };
 
-               mvsdio@d00d4000 {
-                       pinctrl-0 = <&sdio_pins1>;
-                       pinctrl-names = "default";
-                       status = "okay";
-                       /* No CD or WP GPIOs */
-               };
+                       mvsdio@d4000 {
+                               pinctrl-0 = <&sdio_pins1>;
+                               pinctrl-names = "default";
+                               status = "okay";
+                               /* No CD or WP GPIOs */
+                       };
 
-               usb@d0050000 {
-                       status = "okay";
-               };
+                       usb@50000 {
+                               status = "okay";
+                       };
 
-               usb@d0051000 {
-                       status = "okay";
-               };
-       };
+                       usb@51000 {
+                               status = "okay";
+                       };
 
-       gpio-keys {
-               compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               button@1 {
-                       label = "Software Button";
-                       linux,code = <116>;
-                       gpios = <&gpio0 6 1>;
+                       gpio-keys {
+                               compatible = "gpio-keys";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               button@1 {
+                                       label = "Software Button";
+                                       linux,code = <116>;
+                                       gpios = <&gpio0 6 1>;
+                               };
+                       };
                };
        };
-};
+ };
index 9693f796bcfe1d13617933db8b78412174384e77..272bbc65fab05b809b9df0a57497c14d37eac302 100644 (file)
@@ -16,7 +16,7 @@
  * 370 and Armada XP SoC.
  */
 
-/include/ "skeleton.dtsi"
+/include/ "skeleton64.dtsi"
 
 / {
        model = "Marvell Armada 370 and XP SoC";
                };
        };
 
-       mpic: interrupt-controller@d0020000 {
-             compatible = "marvell,mpic";
-             #interrupt-cells = <1>;
-             #size-cells = <1>;
-             interrupt-controller;
-       };
-
-       coherency-fabric@d0020200 {
-               compatible = "marvell,coherency-fabric";
-               reg = <0xd0020200 0xb0>,
-                     <0xd0021810 0x1c>;
-       };
-
        soc {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "simple-bus";
                interrupt-parent = <&mpic>;
-               ranges;
+               ranges = <0 0 0xd0000000 0x100000>;
+
+               internal-regs {
+                       compatible = "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       mpic: interrupt-controller@20000 {
+                               compatible = "marvell,mpic";
+                               #interrupt-cells = <1>;
+                               #size-cells = <1>;
+                               interrupt-controller;
+                       };
+
+                       coherency-fabric@20200 {
+                               compatible = "marvell,coherency-fabric";
+                               reg = <0x20200 0xb0>, <0x21810 0x1c>;
+                       };
 
-               serial@d0012000 {
+                       serial@12000 {
                                compatible = "snps,dw-apb-uart";
-                               reg = <0xd0012000 0x100>;
+                               reg = <0x12000 0x100>;
                                reg-shift = <2>;
                                interrupts = <41>;
                                reg-io-width = <1>;
                                status = "disabled";
-               };
-               serial@d0012100 {
+                       };
+                       serial@12100 {
                                compatible = "snps,dw-apb-uart";
-                               reg = <0xd0012100 0x100>;
+                               reg = <0x12100 0x100>;
                                reg-shift = <2>;
                                interrupts = <42>;
                                reg-io-width = <1>;
                                status = "disabled";
-               };
-
-               timer@d0020300 {
-                              compatible = "marvell,armada-370-xp-timer";
-                              reg = <0xd0020300 0x30>,
-                              <0xd0021040 0x30>;
-                              interrupts = <37>, <38>, <39>, <40>, <5>, <6>;
-                              clocks = <&coreclk 2>;
-               };
-
-               sata@d00a0000 {
-                       compatible = "marvell,orion-sata";
-                       reg = <0xd00a0000 0x2400>;
-                       interrupts = <55>;
-                       clocks = <&gateclk 15>, <&gateclk 30>;
-                       clock-names = "0", "1";
-                       status = "disabled";
-               };
+                       };
+
+                       timer@20300 {
+                               compatible = "marvell,armada-370-xp-timer";
+                               reg = <0x20300 0x30>, <0x21040 0x30>;
+                               interrupts = <37>, <38>, <39>, <40>, <5>, <6>;
+                               clocks = <&coreclk 2>;
+                       };
+
+                       sata@a0000 {
+                               compatible = "marvell,orion-sata";
+                               reg = <0xa0000 0x2400>;
+                               interrupts = <55>;
+                               clocks = <&gateclk 15>, <&gateclk 30>;
+                               clock-names = "0", "1";
+                               status = "disabled";
+                       };
 
-               mdio {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "marvell,orion-mdio";
-                       reg = <0xd0072004 0x4>;
-               };
+                       mdio {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "marvell,orion-mdio";
+                               reg = <0x72004 0x4>;
+                       };
 
-               ethernet@d0070000 {
+                       ethernet@70000 {
                                compatible = "marvell,armada-370-neta";
-                               reg = <0xd0070000 0x2500>;
+                               reg = <0x70000 0x2500>;
                                interrupts = <8>;
                                clocks = <&gateclk 4>;
                                status = "disabled";
-               };
+                       };
 
-               ethernet@d0074000 {
+                       ethernet@74000 {
                                compatible = "marvell,armada-370-neta";
-                               reg = <0xd0074000 0x2500>;
+                               reg = <0x74000 0x2500>;
                                interrupts = <10>;
                                clocks = <&gateclk 3>;
                                status = "disabled";
-               };
-
-               i2c0: i2c@d0011000 {
-                       compatible = "marvell,mv64xxx-i2c";
-                       reg = <0xd0011000 0x20>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <31>;
-                       timeout-ms = <1000>;
-                       clocks = <&coreclk 0>;
-                       status = "disabled";
-               };
-
-               i2c1: i2c@d0011100 {
-                       compatible = "marvell,mv64xxx-i2c";
-                       reg = <0xd0011100 0x20>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <32>;
-                       timeout-ms = <1000>;
-                       clocks = <&coreclk 0>;
-                       status = "disabled";
-               };
-
-               rtc@10300 {
-                       compatible = "marvell,orion-rtc";
-                       reg = <0xd0010300 0x20>;
-                       interrupts = <50>;
-               };
-
-               mvsdio@d00d4000 {
-                       compatible = "marvell,orion-sdio";
-                       reg = <0xd00d4000 0x200>;
-                       interrupts = <54>;
-                       clocks = <&gateclk 17>;
-                       status = "disabled";
-               };
-
-               usb@d0050000 {
-                       compatible = "marvell,orion-ehci";
-                       reg = <0xd0050000 0x500>;
-                       interrupts = <45>;
-                       status = "disabled";
-               };
-
-               usb@d0051000 {
-                       compatible = "marvell,orion-ehci";
-                       reg = <0xd0051000 0x500>;
-                       interrupts = <46>;
-                       status = "disabled";
-               };
-
-               spi0: spi@d0010600 {
-                       compatible = "marvell,orion-spi";
-                       reg = <0xd0010600 0x28>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       interrupts = <30>;
-                       clocks = <&coreclk 0>;
-                       status = "disabled";
-               };
-
-               spi1: spi@d0010680 {
-                       compatible = "marvell,orion-spi";
-                       reg = <0xd0010680 0x28>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       interrupts = <92>;
-                       clocks = <&coreclk 0>;
-                       status = "disabled";
-               };
-
-               devbus-bootcs@d0010400 {
-                       compatible = "marvell,mvebu-devbus";
-                       reg = <0xd0010400 0x8>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       clocks = <&coreclk 0>;
-                       status = "disabled";
-               };
-
-               devbus-cs0@d0010408 {
-                       compatible = "marvell,mvebu-devbus";
-                       reg = <0xd0010408 0x8>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       clocks = <&coreclk 0>;
-                       status = "disabled";
-               };
-
-               devbus-cs1@d0010410 {
-                       compatible = "marvell,mvebu-devbus";
-                       reg = <0xd0010410 0x8>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       clocks = <&coreclk 0>;
-                       status = "disabled";
-               };
+                       };
+
+                       i2c0: i2c@11000 {
+                               compatible = "marvell,mv64xxx-i2c";
+                               reg = <0x11000 0x20>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <31>;
+                               timeout-ms = <1000>;
+                               clocks = <&coreclk 0>;
+                               status = "disabled";
+                       };
+
+                       i2c1: i2c@11100 {
+                               compatible = "marvell,mv64xxx-i2c";
+                               reg = <0x11100 0x20>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <32>;
+                               timeout-ms = <1000>;
+                               clocks = <&coreclk 0>;
+                               status = "disabled";
+                       };
+
+                       rtc@10300 {
+                               compatible = "marvell,orion-rtc";
+                               reg = <0x10300 0x20>;
+                               interrupts = <50>;
+                       };
+
+                       mvsdio@d4000 {
+                               compatible = "marvell,orion-sdio";
+                               reg = <0xd4000 0x200>;
+                               interrupts = <54>;
+                               clocks = <&gateclk 17>;
+                               status = "disabled";
+                       };
 
-               devbus-cs2@d0010418 {
-                       compatible = "marvell,mvebu-devbus";
-                       reg = <0xd0010418 0x8>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       clocks = <&coreclk 0>;
-                       status = "disabled";
-               };
+                       usb@50000 {
+                               compatible = "marvell,orion-ehci";
+                               reg = <0x50000 0x500>;
+                               interrupts = <45>;
+                               status = "disabled";
+                       };
 
-               devbus-cs3@d0010420 {
-                       compatible = "marvell,mvebu-devbus";
-                       reg = <0xd0010420 0x8>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       clocks = <&coreclk 0>;
-                       status = "disabled";
+                       usb@51000 {
+                               compatible = "marvell,orion-ehci";
+                               reg = <0x51000 0x500>;
+                               interrupts = <46>;
+                               status = "disabled";
+                       };
+
+                       spi0: spi@10600 {
+                               compatible = "marvell,orion-spi";
+                               reg = <0x10600 0x28>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               cell-index = <0>;
+                               interrupts = <30>;
+                               clocks = <&coreclk 0>;
+                               status = "disabled";
+                       };
+
+                       spi1: spi@10680 {
+                               compatible = "marvell,orion-spi";
+                               reg = <0x10680 0x28>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               cell-index = <1>;
+                               interrupts = <92>;
+                               clocks = <&coreclk 0>;
+                               status = "disabled";
+                       };
+
+                       devbus-bootcs@10400 {
+                               compatible = "marvell,mvebu-devbus";
+                               reg = <0x10400 0x8>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               clocks = <&coreclk 0>;
+                               status = "disabled";
+                       };
+
+                       devbus-cs0@10408 {
+                               compatible = "marvell,mvebu-devbus";
+                               reg = <0x10408 0x8>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               clocks = <&coreclk 0>;
+                               status = "disabled";
+                       };
+
+                       devbus-cs1@10410 {
+                               compatible = "marvell,mvebu-devbus";
+                               reg = <0x10410 0x8>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               clocks = <&coreclk 0>;
+                               status = "disabled";
+                       };
+
+                       devbus-cs2@10418 {
+                               compatible = "marvell,mvebu-devbus";
+                               reg = <0x10418 0x8>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               clocks = <&coreclk 0>;
+                               status = "disabled";
+                       };
+
+                       devbus-cs3@10420 {
+                               compatible = "marvell,mvebu-devbus";
+                               reg = <0x10420 0x8>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               clocks = <&coreclk 0>;
+                               status = "disabled";
+                       };
                };
        };
-};
-
+ };
index 18f6eb47cc50b492ad8e8cb2b01eb3bc8b3785f9..b2c1b5af9749cd0f0b358d32dfbb159c7deab280 100644 (file)
  */
 
 /include/ "armada-370-xp.dtsi"
+/include/ "skeleton.dtsi"
 
 / {
        model = "Marvell Armada 370 family SoC";
        compatible = "marvell,armada370", "marvell,armada-370-xp";
-       L2: l2-cache {
-               compatible = "marvell,aurora-outer-cache";
-               reg = <0xd0008000 0x1000>;
-               cache-id-part = <0x100>;
-               wt-override;
-       };
 
        aliases {
                gpio0 = &gpio0;
                gpio2 = &gpio2;
        };
 
-       mpic: interrupt-controller@d0020000 {
-             reg = <0xd0020a00 0x1d0>,
-                   <0xd0021870 0x58>;
-       };
-
        soc {
-               system-controller@d0018200 {
+               ranges = <0 0xd0000000 0x100000>;
+               internal-regs {
+                       system-controller@18200 {
                                compatible = "marvell,armada-370-xp-system-controller";
-                               reg = <0xd0018200 0x100>;
-               };
-
-               pinctrl {
-                       compatible = "marvell,mv88f6710-pinctrl";
-                       reg = <0xd0018000 0x38>;
-
-                       sdio_pins1: sdio-pins1 {
-                             marvell,pins = "mpp9",  "mpp11", "mpp12",
-                                            "mpp13", "mpp14", "mpp15";
-                             marvell,function = "sd0";
+                               reg = <0x18200 0x100>;
                        };
 
-                       sdio_pins2: sdio-pins2 {
-                             marvell,pins = "mpp47", "mpp48", "mpp49",
-                                            "mpp50", "mpp51", "mpp52";
-                             marvell,function = "sd0";
+                       L2: l2-cache {
+                               compatible = "marvell,aurora-outer-cache";
+                               reg = <0xd0008000 0x1000>;
+                               cache-id-part = <0x100>;
+                               wt-override;
                        };
 
-                       sdio_pins3: sdio-pins3 {
-                             marvell,pins = "mpp48", "mpp49", "mpp50",
-                                            "mpp51", "mpp52", "mpp53";
-                             marvell,function = "sd0";
+                       mpic: interrupt-controller@20000 {
+                               reg = <0x20a00 0x1d0>, <0x21870 0x58>;
                        };
-               };
-
-               gpio0: gpio@d0018100 {
-                       compatible = "marvell,orion-gpio";
-                       reg = <0xd0018100 0x40>;
-                       ngpios = <32>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupts-cells = <2>;
-                       interrupts = <82>, <83>, <84>, <85>;
-               };
-
-               gpio1: gpio@d0018140 {
-                       compatible = "marvell,orion-gpio";
-                       reg = <0xd0018140 0x40>;
-                       ngpios = <32>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupts-cells = <2>;
-                       interrupts = <87>, <88>, <89>, <90>;
-               };
-
-               gpio2: gpio@d0018180 {
-                       compatible = "marvell,orion-gpio";
-                       reg = <0xd0018180 0x40>;
-                       ngpios = <2>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupts-cells = <2>;
-                       interrupts = <91>;
-               };
 
-               coreclk: mvebu-sar@d0018230 {
-                       compatible = "marvell,armada-370-core-clock";
-                       reg = <0xd0018230 0x08>;
-                       #clock-cells = <1>;
-               };
-
-               gateclk: clock-gating-control@d0018220 {
-                       compatible = "marvell,armada-370-gating-clock";
-                       reg = <0xd0018220 0x4>;
-                       clocks = <&coreclk 0>;
-                       #clock-cells = <1>;
-               };
-
-               xor@d0060800 {
-                       compatible = "marvell,orion-xor";
-                       reg = <0xd0060800 0x100
-                              0xd0060A00 0x100>;
-                       status = "okay";
-
-                       xor00 {
-                               interrupts = <51>;
-                               dmacap,memcpy;
-                               dmacap,xor;
+                       pinctrl {
+                               compatible = "marvell,mv88f6710-pinctrl";
+                               reg = <0x18000 0x38>;
+
+                               sdio_pins1: sdio-pins1 {
+                                       marvell,pins = "mpp9",  "mpp11", "mpp12",
+                                                       "mpp13", "mpp14", "mpp15";
+                                       marvell,function = "sd0";
+                               };
+
+                               sdio_pins2: sdio-pins2 {
+                                       marvell,pins = "mpp47", "mpp48", "mpp49",
+                                                       "mpp50", "mpp51", "mpp52";
+                                       marvell,function = "sd0";
+                               };
+
+                               sdio_pins3: sdio-pins3 {
+                                       marvell,pins = "mpp48", "mpp49", "mpp50",
+                                                       "mpp51", "mpp52", "mpp53";
+                                       marvell,function = "sd0";
+                               };
                        };
-                       xor01 {
-                               interrupts = <52>;
-                               dmacap,memcpy;
-                               dmacap,xor;
-                               dmacap,memset;
-                       };
-               };
-
-               xor@d0060900 {
-                       compatible = "marvell,orion-xor";
-                       reg = <0xd0060900 0x100
-                              0xd0060b00 0x100>;
-                       status = "okay";
 
-                       xor10 {
-                               interrupts = <94>;
-                               dmacap,memcpy;
-                               dmacap,xor;
+                       gpio0: gpio@18100 {
+                               compatible = "marvell,orion-gpio";
+                               reg = <0x18100 0x40>;
+                               ngpios = <32>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupts-cells = <2>;
+                               interrupts = <82>, <83>, <84>, <85>;
                        };
-                       xor11 {
-                               interrupts = <95>;
-                               dmacap,memcpy;
-                               dmacap,xor;
-                               dmacap,memset;
-                       };
-               };
 
-               usb@d0050000 {
-                       clocks = <&coreclk 0>;
-               };
-
-               usb@d0051000 {
-                       clocks = <&coreclk 0>;
-               };
+                       gpio1: gpio@18140 {
+                               compatible = "marvell,orion-gpio";
+                               reg = <0x18140 0x40>;
+                               ngpios = <32>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupts-cells = <2>;
+                               interrupts = <87>, <88>, <89>, <90>;
+                       };
 
-               thermal@d0018300 {
-                       compatible = "marvell,armada370-thermal";
-                       reg = <0xd0018300 0x4
-                              0xd0018304 0x4>;
-                       status = "okay";
-               };
+                       gpio2: gpio@18180 {
+                               compatible = "marvell,orion-gpio";
+                               reg = <0x18180 0x40>;
+                               ngpios = <2>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupts-cells = <2>;
+                               interrupts = <91>;
+                       };
 
-               pcie-controller {
-                       compatible = "marvell,armada-370-pcie";
-                       status = "disabled";
-                       device_type = "pci";
+                       coreclk: mvebu-sar@18230 {
+                               compatible = "marvell,armada-370-core-clock";
+                               reg = <0x18230 0x08>;
+                               #clock-cells = <1>;
+                       };
 
-                       #address-cells = <3>;
-                       #size-cells = <2>;
+                       gateclk: clock-gating-control@18220 {
+                               compatible = "marvell,armada-370-gating-clock";
+                               reg = <0x18220 0x4>;
+                               clocks = <&coreclk 0>;
+                               #clock-cells = <1>;
+                       };
 
-                       bus-range = <0x00 0xff>;
+                       xor@60800 {
+                               compatible = "marvell,orion-xor";
+                               reg = <0x60800 0x100
+                                      0x60A00 0x100>;
+                               status = "okay";
+
+                               xor00 {
+                                       interrupts = <51>;
+                                       dmacap,memcpy;
+                                       dmacap,xor;
+                               };
+                               xor01 {
+                                       interrupts = <52>;
+                                       dmacap,memcpy;
+                                       dmacap,xor;
+                                       dmacap,memset;
+                               };
+                       };
 
-                       reg = <0xd0040000 0x2000>, <0xd0080000 0x2000>;
+                       xor@60900 {
+                               compatible = "marvell,orion-xor";
+                               reg = <0x60900 0x100
+                                      0x60b00 0x100>;
+                               status = "okay";
+
+                               xor10 {
+                                       interrupts = <94>;
+                                       dmacap,memcpy;
+                                       dmacap,xor;
+                               };
+                               xor11 {
+                                       interrupts = <95>;
+                                       dmacap,memcpy;
+                                       dmacap,xor;
+                                       dmacap,memset;
+                               };
+                       };
 
-                       reg-names = "pcie0.0", "pcie1.0";
+                       usb@50000 {
+                               clocks = <&coreclk 0>;
+                       };
 
-                       ranges = <0x82000000 0 0xd0040000 0xd0040000 0 0x00002000   /* Port 0.0 registers */
-                                 0x82000000 0 0xd0080000 0xd0080000 0 0x00002000   /* Port 1.0 registers */
-                                 0x82000000 0 0xe0000000 0xe0000000 0 0x08000000   /* non-prefetchable memory */
-                                 0x81000000 0 0          0xe8000000 0 0x00100000>; /* downstream I/O */
+                       usb@51000 {
+                               clocks = <&coreclk 0>;
+                       };
 
-                       pcie@1,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82000800 0 0xd0040000 0 0x2000>;
-                               reg = <0x0800 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 58>;
-                               marvell,pcie-port = <0>;
-                               marvell,pcie-lane = <0>;
-                               clocks = <&gateclk 5>;
-                               status = "disabled";
+                       thermal@18300 {
+                               compatible = "marvell,armada370-thermal";
+                               reg = <0x18300 0x4
+                                       0x18304 0x4>;
+                               status = "okay";
                        };
 
-                       pcie@2,0 {
+                       pcie-controller {
+                               compatible = "marvell,armada-370-pcie";
+                               status = "disabled";
                                device_type = "pci";
-                               assigned-addresses = <0x82002800 0 0xd0080000 0 0x2000>;
-                               reg = <0x1000 0 0 0 0>;
+
                                #address-cells = <3>;
                                #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 62>;
-                               marvell,pcie-port = <1>;
-                               marvell,pcie-lane = <0>;
-                               clocks = <&gateclk 9>;
-                               status = "disabled";
+
+                               bus-range = <0x00 0xff>;
+
+                               reg = <0x40000 0x2000>, <0x80000 0x2000>;
+
+                               reg-names = "pcie0.0", "pcie1.0";
+
+                               ranges = <0x82000000 0 0x40000 0x40000 0 0x00002000   /* Port 0.0 registers */
+                                       0x82000000 0 0x80000 0x80000 0 0x00002000   /* Port 1.0 registers */
+                                       0x82000000 0 0xe0000000 0xe0000000 0 0x08000000   /* non-prefetchable memory */
+                                       0x81000000 0 0          0xe8000000 0 0x00100000>; /* downstream I/O */
+
+                               pcie@1,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
+                                       reg = <0x0800 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 58>;
+                                       marvell,pcie-port = <0>;
+                                       marvell,pcie-lane = <0>;
+                                       clocks = <&gateclk 5>;
+                                       status = "disabled";
+                               };
+
+                               pcie@2,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
+                                       reg = <0x1000 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 62>;
+                                       marvell,pcie-port = <1>;
+                                       marvell,pcie-lane = <0>;
+                                       clocks = <&gateclk 9>;
+                                       status = "disabled";
+                               };
                        };
                };
        };
index 54cc5bb705fb0e1fcb38bbd2d82340ec28473533..d6cc8bf8272e387281c30a0130914c1e961fa69f 100644 (file)
 
        memory {
                device_type = "memory";
-               reg = <0x00000000 0x80000000>; /* 2 GB */
+               reg = <0 0x00000000 0 0x80000000>; /* 2 GB */
        };
 
        soc {
-               serial@d0012000 {
-                       clock-frequency = <250000000>;
-                       status = "okay";
-               };
-               serial@d0012100 {
-                       clock-frequency = <250000000>;
-                       status = "okay";
-               };
-               serial@d0012200 {
-                       clock-frequency = <250000000>;
-                       status = "okay";
-               };
-               serial@d0012300 {
-                       clock-frequency = <250000000>;
-                       status = "okay";
-               };
-
-               sata@d00a0000 {
-                       nr-ports = <2>;
-                       status = "okay";
-               };
-
-               mdio {
-                       phy0: ethernet-phy@0 {
-                               reg = <0>;
+               internal-regs {
+                       serial@12000 {
+                               clock-frequency = <250000000>;
+                               status = "okay";
                        };
-
-                       phy1: ethernet-phy@1 {
-                               reg = <1>;
+                       serial@12100 {
+                               clock-frequency = <250000000>;
+                               status = "okay";
                        };
-
-                       phy2: ethernet-phy@2 {
-                               reg = <25>;
+                       serial@12200 {
+                               clock-frequency = <250000000>;
+                               status = "okay";
                        };
-
-                       phy3: ethernet-phy@3 {
-                               reg = <27>;
+                       serial@12300 {
+                               clock-frequency = <250000000>;
+                               status = "okay";
                        };
-               };
-
-               ethernet@d0070000 {
-                       status = "okay";
-                       phy = <&phy0>;
-                       phy-mode = "rgmii-id";
-               };
-               ethernet@d0074000 {
-                       status = "okay";
-                       phy = <&phy1>;
-                       phy-mode = "rgmii-id";
-               };
-               ethernet@d0030000 {
-                       status = "okay";
-                       phy = <&phy2>;
-                       phy-mode = "sgmii";
-               };
-               ethernet@d0034000 {
-                       status = "okay";
-                       phy = <&phy3>;
-                       phy-mode = "sgmii";
-               };
-
-               mvsdio@d00d4000 {
-                       pinctrl-0 = <&sdio_pins>;
-                       pinctrl-names = "default";
-                       status = "okay";
-                       /* No CD or WP GPIOs */
-               };
 
-               usb@d0050000 {
-                       status = "okay";
-               };
+                       sata@a0000 {
+                               nr-ports = <2>;
+                               status = "okay";
+                       };
 
-               usb@d0051000 {
-                       status = "okay";
-               };
+                       mdio {
+                               phy0: ethernet-phy@0 {
+                                       reg = <0>;
+                               };
 
-               usb@d0052000 {
-                       status = "okay";
-               };
+                               phy1: ethernet-phy@1 {
+                                       reg = <1>;
+                               };
 
-               spi0: spi@d0010600 {
-                       status = "okay";
+                               phy2: ethernet-phy@2 {
+                                       reg = <25>;
+                               };
 
-                       spi-flash@0 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               compatible = "m25p64";
-                               reg = <0>; /* Chip select 0 */
-                               spi-max-frequency = <20000000>;
+                               phy3: ethernet-phy@3 {
+                                       reg = <27>;
+                               };
                        };
-               };
 
-               pcie-controller {
-                       status = "okay";
+                       ethernet@70000 {
+                               status = "okay";
+                               phy = <&phy0>;
+                               phy-mode = "rgmii-id";
+                       };
+                       ethernet@74000 {
+                               status = "okay";
+                               phy = <&phy1>;
+                               phy-mode = "rgmii-id";
+                       };
+                       ethernet@30000 {
+                               status = "okay";
+                               phy = <&phy2>;
+                               phy-mode = "sgmii";
+                       };
+                       ethernet@34000 {
+                               status = "okay";
+                               phy = <&phy3>;
+                               phy-mode = "sgmii";
+                       };
 
-                       /*
-                        * All 6 slots are physically present as
-                        * standard PCIe slots on the board.
-                        */
-                       pcie@1,0 {
-                               /* Port 0, Lane 0 */
+                       mvsdio@d4000 {
+                               pinctrl-0 = <&sdio_pins>;
+                               pinctrl-names = "default";
                                status = "okay";
+                               /* No CD or WP GPIOs */
                        };
-                       pcie@2,0 {
-                               /* Port 0, Lane 1 */
+
+                       usb@50000 {
                                status = "okay";
                        };
-                       pcie@3,0 {
-                               /* Port 0, Lane 2 */
+
+                       usb@51000 {
                                status = "okay";
                        };
-                       pcie@4,0 {
-                               /* Port 0, Lane 3 */
+
+                       usb@52000 {
                                status = "okay";
                        };
-                       pcie@9,0 {
-                               /* Port 2, Lane 0 */
+
+                       spi0: spi@10600 {
                                status = "okay";
+
+                               spi-flash@0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+                                       compatible = "m25p64";
+                                       reg = <0>; /* Chip select 0 */
+                                       spi-max-frequency = <20000000>;
+                               };
                        };
-                       pcie@10,0 {
-                               /* Port 3, Lane 0 */
+
+                       pcie-controller {
                                status = "okay";
+
+                               /*
+                                * All 6 slots are physically present as
+                                * standard PCIe slots on the board.
+                                */
+                               pcie@1,0 {
+                                       /* Port 0, Lane 0 */
+                                       status = "okay";
+                               };
+                               pcie@2,0 {
+                                       /* Port 0, Lane 1 */
+                                       status = "okay";
+                               };
+                               pcie@3,0 {
+                                       /* Port 0, Lane 2 */
+                                       status = "okay";
+                               };
+                               pcie@4,0 {
+                                       /* Port 0, Lane 3 */
+                                       status = "okay";
+                               };
+                               pcie@9,0 {
+                                       /* Port 2, Lane 0 */
+                                       status = "okay";
+                               };
+                               pcie@10,0 {
+                                       /* Port 3, Lane 0 */
+                                       status = "okay";
+                               };
                        };
                };
        };
index 04f28a712b985e1ed1d3a44b49b779d6083d73a5..26ad06fc147ed78f9446bb5119a1e6e001867dba 100644 (file)
 
        memory {
                device_type = "memory";
-
                /*
-                * 4 GB of plug-in RAM modules by default but only 3GB
-                * are visible, the amount of memory available can be
-                * changed by the bootloader according the size of the
-                * module actually plugged
+                 * 8 GB of plug-in RAM modules by default.The amount
+                 * of memory available can be changed by the
+                 * bootloader according the size of the module
+                 * actually plugged. Only 7GB are usable because
+                 * addresses from 0xC0000000 to 0xffffffff are used by
+                 * the internal registers of the SoC.
                 */
-               reg = <0x00000000 0xC0000000>;
+               reg = <0x00000000 0x00000000 0x00000000 0xC0000000>,
+                     <0x00000001 0x00000000 0x00000001 0x00000000>;
        };
 
        soc {
-               serial@d0012000 {
-                       clock-frequency = <250000000>;
-                       status = "okay";
-               };
-               serial@d0012100 {
-                       clock-frequency = <250000000>;
-                       status = "okay";
-               };
-               serial@d0012200 {
-                       clock-frequency = <250000000>;
-                       status = "okay";
-               };
-               serial@d0012300 {
-                       clock-frequency = <250000000>;
-                       status = "okay";
-               };
-
-               sata@d00a0000 {
-                       nr-ports = <2>;
-                       status = "okay";
-               };
-
-               mdio {
-                       phy0: ethernet-phy@0 {
-                               reg = <16>;
+               internal-regs {
+                       serial@12000 {
+                               clock-frequency = <250000000>;
+                               status = "okay";
                        };
-
-                       phy1: ethernet-phy@1 {
-                               reg = <17>;
+                       serial@12100 {
+                               clock-frequency = <250000000>;
+                               status = "okay";
                        };
-
-                       phy2: ethernet-phy@2 {
-                               reg = <18>;
+                       serial@12200 {
+                               clock-frequency = <250000000>;
+                               status = "okay";
+                       };
+                       serial@12300 {
+                               clock-frequency = <250000000>;
+                               status = "okay";
                        };
 
-                       phy3: ethernet-phy@3 {
-                               reg = <19>;
+                       sata@a0000 {
+                               nr-ports = <2>;
+                               status = "okay";
                        };
-               };
 
-               ethernet@d0070000 {
-                       status = "okay";
-                       phy = <&phy0>;
-                       phy-mode = "rgmii-id";
-               };
-               ethernet@d0074000 {
-                       status = "okay";
-                       phy = <&phy1>;
-                       phy-mode = "rgmii-id";
-               };
-               ethernet@d0030000 {
-                       status = "okay";
-                       phy = <&phy2>;
-                       phy-mode = "rgmii-id";
-               };
-               ethernet@d0034000 {
-                       status = "okay";
-                       phy = <&phy3>;
-                       phy-mode = "rgmii-id";
-               };
+                       mdio {
+                               phy0: ethernet-phy@0 {
+                                       reg = <16>;
+                               };
 
-               spi0: spi@d0010600 {
-                       status = "okay";
+                               phy1: ethernet-phy@1 {
+                                       reg = <17>;
+                               };
 
-                       spi-flash@0 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               compatible = "n25q128a13";
-                               reg = <0>; /* Chip select 0 */
-                               spi-max-frequency = <108000000>;
-                       };
-               };
+                               phy2: ethernet-phy@2 {
+                                       reg = <18>;
+                               };
 
-               devbus-bootcs@d0010400 {
-                       status = "okay";
-                       ranges = <0 0xf0000000 0x1000000>; /* @addr 0xf000000, size 0x1000000 */
-
-                       /* Device Bus parameters are required */
-
-                       /* Read parameters */
-                       devbus,bus-width    = <8>;
-                       devbus,turn-off-ps  = <60000>;
-                       devbus,badr-skew-ps = <0>;
-                       devbus,acc-first-ps = <124000>;
-                       devbus,acc-next-ps  = <248000>;
-                       devbus,rd-setup-ps  = <0>;
-                       devbus,rd-hold-ps   = <0>;
-
-                       /* Write parameters */
-                       devbus,sync-enable = <0>;
-                       devbus,wr-high-ps  = <60000>;
-                       devbus,wr-low-ps   = <60000>;
-                       devbus,ale-wr-ps   = <60000>;
-
-                       /* NOR 16 MiB */
-                       nor@0 {
-                               compatible = "cfi-flash";
-                               reg = <0 0x1000000>;
-                               bank-width = <2>;
+                               phy3: ethernet-phy@3 {
+                                       reg = <19>;
+                               };
                        };
-               };
 
-               pcie-controller {
-                       status = "okay";
+                       ethernet@70000 {
+                               status = "okay";
+                               phy = <&phy0>;
+                               phy-mode = "rgmii-id";
+                       };
+                       ethernet@74000 {
+                               status = "okay";
+                               phy = <&phy1>;
+                               phy-mode = "rgmii-id";
+                       };
+                       ethernet@30000 {
+                               status = "okay";
+                               phy = <&phy2>;
+                               phy-mode = "rgmii-id";
+                       };
+                       ethernet@34000 {
+                               status = "okay";
+                               phy = <&phy3>;
+                               phy-mode = "rgmii-id";
+                       };
 
-                       /*
-                        * The 3 slots are physically present as
-                        * standard PCIe slots on the board.
-                        */
-                       pcie@1,0 {
-                               /* Port 0, Lane 0 */
+                       spi0: spi@10600 {
                                status = "okay";
+
+                               spi-flash@0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+                                       compatible = "n25q128a13";
+                                       reg = <0>; /* Chip select 0 */
+                                       spi-max-frequency = <108000000>;
+                               };
                        };
-                       pcie@9,0 {
-                               /* Port 2, Lane 0 */
+
+                       devbus-bootcs@10400 {
                                status = "okay";
+                               ranges = <0 0xf0000000 0x1000000>; /* @addr 0xf000000, size 0x1000000 */
+
+                               /* Device Bus parameters are required */
+
+                               /* Read parameters */
+                               devbus,bus-width    = <8>;
+                               devbus,turn-off-ps  = <60000>;
+                               devbus,badr-skew-ps = <0>;
+                               devbus,acc-first-ps = <124000>;
+                               devbus,acc-next-ps  = <248000>;
+                               devbus,rd-setup-ps  = <0>;
+                               devbus,rd-hold-ps   = <0>;
+
+                               /* Write parameters */
+                               devbus,sync-enable = <0>;
+                               devbus,wr-high-ps  = <60000>;
+                               devbus,wr-low-ps   = <60000>;
+                               devbus,ale-wr-ps   = <60000>;
+
+                               /* NOR 16 MiB */
+                               nor@0 {
+                                       compatible = "cfi-flash";
+                                       reg = <0 0x1000000>;
+                                       bank-width = <2>;
+                               };
                        };
-                       pcie@10,0 {
-                               /* Port 3, Lane 0 */
+
+                       pcie-controller {
                                status = "okay";
+
+                               /*
+                                * The 3 slots are physically present as
+                                * standard PCIe slots on the board.
+                                */
+                               pcie@1,0 {
+                                       /* Port 0, Lane 0 */
+                                       status = "okay";
+                               };
+                               pcie@9,0 {
+                                       /* Port 2, Lane 0 */
+                                       status = "okay";
+                               };
+                               pcie@10,0 {
+                                       /* Port 3, Lane 0 */
+                                       status = "okay";
+                               };
                        };
                };
        };
index c2c78459a4d4efdf0add2e4c7c1137cd5b76140e..f8eaa383e07fbdc6904711d72699bc2df6eb0190 100644 (file)
        };
 
        cpus {
-           #address-cells = <1>;
-           #size-cells = <0>;
-
-           cpu@0 {
-               device_type = "cpu";
-               compatible = "marvell,sheeva-v7";
-               reg = <0>;
-               clocks = <&cpuclk 0>;
-           };
-
-           cpu@1 {
-               device_type = "cpu";
-               compatible = "marvell,sheeva-v7";
-               reg = <1>;
-               clocks = <&cpuclk 1>;
-           };
-       };
-
-       soc {
-               pinctrl {
-                       compatible = "marvell,mv78230-pinctrl";
-                       reg = <0xd0018000 0x38>;
-
-                       sdio_pins: sdio-pins {
-                               marvell,pins = "mpp30", "mpp31", "mpp32",
-                                              "mpp33", "mpp34", "mpp35";
-                               marvell,function = "sd0";
-                       };
-               };
-
-               gpio0: gpio@d0018100 {
-                       compatible = "marvell,orion-gpio";
-                       reg = <0xd0018100 0x40>;
-                       ngpios = <32>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupts-cells = <2>;
-                       interrupts = <82>, <83>, <84>, <85>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "marvell,sheeva-v7";
+                       reg = <0>;
+                       clocks = <&cpuclk 0>;
                };
 
-               gpio1: gpio@d0018140 {
-                       compatible = "marvell,orion-gpio";
-                       reg = <0xd0018140 0x40>;
-                       ngpios = <17>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupts-cells = <2>;
-                       interrupts = <87>, <88>, <89>;
+               cpu@1 {
+                       device_type = "cpu";
+                       compatible = "marvell,sheeva-v7";
+                       reg = <1>;
+                       clocks = <&cpuclk 1>;
                };
+       };
 
-               /*
-                * MV78230 has 2 PCIe units Gen2.0: One unit can be
-                * configured as x4 or quad x1 lanes. One unit is
-                * x4/x1.
-                */
-               pcie-controller {
-                       compatible = "marvell,armada-xp-pcie";
-                       status = "disabled";
-                       device_type = "pci";
-
-                       #address-cells = <3>;
-                       #size-cells = <2>;
-
-                       bus-range = <0x00 0xff>;
-
-                       ranges = <0x82000000 0 0xd0040000 0xd0040000 0 0x00002000   /* Port 0.0 registers */
-                                 0x82000000 0 0xd0042000 0xd0042000 0 0x00002000   /* Port 2.0 registers */
-                                 0x82000000 0 0xd0044000 0xd0044000 0 0x00002000   /* Port 0.1 registers */
-                                 0x82000000 0 0xd0048000 0xd0048000 0 0x00002000   /* Port 0.2 registers */
-                                 0x82000000 0 0xd004c000 0xd004c000 0 0x00002000   /* Port 0.3 registers */
-                                 0x82000000 0 0xe0000000 0xe0000000 0 0x08000000   /* non-prefetchable memory */
-                                 0x81000000 0 0          0xe8000000 0 0x00100000>; /* downstream I/O */
-
-                       pcie@1,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82000800 0 0xd0040000 0 0x2000>;
-                               reg = <0x0800 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 58>;
-                               marvell,pcie-port = <0>;
-                               marvell,pcie-lane = <0>;
-                               clocks = <&gateclk 5>;
-                               status = "disabled";
+       soc {
+               internal-regs {
+                       pinctrl {
+                               compatible = "marvell,mv78230-pinctrl";
+                               reg = <0x18000 0x38>;
+
+                               sdio_pins: sdio-pins {
+                                       marvell,pins = "mpp30", "mpp31", "mpp32",
+                                                      "mpp33", "mpp34", "mpp35";
+                                       marvell,function = "sd0";
+                               };
                        };
 
-                       pcie@2,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82000800 0 0xd0044000 0 0x2000>;
-                               reg = <0x1000 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 59>;
-                               marvell,pcie-port = <0>;
-                               marvell,pcie-lane = <1>;
-                               clocks = <&gateclk 6>;
-                               status = "disabled";
+                       gpio0: gpio@18100 {
+                               compatible = "marvell,orion-gpio";
+                               reg = <0x18100 0x40>;
+                               ngpios = <32>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupts-cells = <2>;
+                               interrupts = <82>, <83>, <84>, <85>;
                        };
 
-                       pcie@3,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82000800 0 0xd0048000 0 0x2000>;
-                               reg = <0x1800 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 60>;
-                               marvell,pcie-port = <0>;
-                               marvell,pcie-lane = <2>;
-                               clocks = <&gateclk 7>;
-                               status = "disabled";
+                       gpio1: gpio@18140 {
+                               compatible = "marvell,orion-gpio";
+                               reg = <0x18140 0x40>;
+                               ngpios = <17>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupts-cells = <2>;
+                               interrupts = <87>, <88>, <89>;
                        };
 
-                       pcie@4,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82000800 0 0xd004c000 0 0x2000>;
-                               reg = <0x2000 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 61>;
-                               marvell,pcie-port = <0>;
-                               marvell,pcie-lane = <3>;
-                               clocks = <&gateclk 8>;
+                       /*
+                        * MV78230 has 2 PCIe units Gen2.0: One unit can be
+                        * configured as x4 or quad x1 lanes. One unit is
+                        * x4/x1.
+                        */
+                       pcie-controller {
+                               compatible = "marvell,armada-xp-pcie";
                                status = "disabled";
-                       };
-
-                       pcie@9,0 {
                                device_type = "pci";
-                               assigned-addresses = <0x82000800 0 0xd0042000 0 0x2000>;
-                               reg = <0x4800 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 99>;
-                               marvell,pcie-port = <2>;
-                               marvell,pcie-lane = <0>;
-                               clocks = <&gateclk 26>;
-                               status = "disabled";
+
+#address-cells = <3>;
+#size-cells = <2>;
+
+                               bus-range = <0x00 0xff>;
+
+                               ranges = <0x82000000 0 0x40000 0x40000 0 0x00002000   /* Port 0.0 registers */
+                                       0x82000000 0 0x42000 0x42000 0 0x00002000   /* Port 2.0 registers */
+                                       0x82000000 0 0x44000 0x44000 0 0x00002000   /* Port 0.1 registers */
+                                       0x82000000 0 0x48000 0x48000 0 0x00002000   /* Port 0.2 registers */
+                                       0x82000000 0 0x4c000 0x4c000 0 0x00002000   /* Port 0.3 registers */
+                                       0x82000000 0 0xe0000000 0xe0000000 0 0x08000000   /* non-prefetchable memory */
+                                       0x81000000 0 0    0xe8000000 0 0x00100000>; /* downstream I/O */
+
+                               pcie@1,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
+                                       reg = <0x0800 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 58>;
+                                       marvell,pcie-port = <0>;
+                                       marvell,pcie-lane = <0>;
+                                       clocks = <&gateclk 5>;
+                                       status = "disabled";
+                               };
+
+                               pcie@2,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
+                                       reg = <0x1000 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 59>;
+                                       marvell,pcie-port = <0>;
+                                       marvell,pcie-lane = <1>;
+                                       clocks = <&gateclk 6>;
+                                       status = "disabled";
+                               };
+
+                               pcie@3,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82000800 0 0x48000 0 0x2000>;
+                                       reg = <0x1800 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 60>;
+                                       marvell,pcie-port = <0>;
+                                       marvell,pcie-lane = <2>;
+                                       clocks = <&gateclk 7>;
+                                       status = "disabled";
+                               };
+
+                               pcie@4,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82000800 0 0x4c000 0 0x2000>;
+                                       reg = <0x2000 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 61>;
+                                       marvell,pcie-port = <0>;
+                                       marvell,pcie-lane = <3>;
+                                       clocks = <&gateclk 8>;
+                                       status = "disabled";
+                               };
+
+                               pcie@9,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82000800 0 0x42000 0 0x2000>;
+                                       reg = <0x4800 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 99>;
+                                       marvell,pcie-port = <2>;
+                                       marvell,pcie-lane = <0>;
+                                       clocks = <&gateclk 26>;
+                                       status = "disabled";
+                               };
                        };
                };
        };
index 885bf229eef7d176048b77d7e19025190db3557a..f4029f015aff8008fee6b8eb98db44e139d48670 100644 (file)
        };
 
        cpus {
-           #address-cells = <1>;
-           #size-cells = <0>;
-
-           cpu@0 {
-               device_type = "cpu";
-               compatible = "marvell,sheeva-v7";
-               reg = <0>;
-               clocks = <&cpuclk 0>;
-           };
-
-           cpu@1 {
-               device_type = "cpu";
-               compatible = "marvell,sheeva-v7";
-               reg = <1>;
-               clocks = <&cpuclk 1>;
-           };
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "marvell,sheeva-v7";
+                       reg = <0>;
+                       clocks = <&cpuclk 0>;
+               };
+
+               cpu@1 {
+                       device_type = "cpu";
+                       compatible = "marvell,sheeva-v7";
+                       reg = <1>;
+                       clocks = <&cpuclk 1>;
+               };
        };
 
        soc {
-               pinctrl {
-                       compatible = "marvell,mv78260-pinctrl";
-                       reg = <0xd0018000 0x38>;
-
-                       sdio_pins: sdio-pins {
-                               marvell,pins = "mpp30", "mpp31", "mpp32",
-                                              "mpp33", "mpp34", "mpp35";
-                               marvell,function = "sd0";
+               internal-regs {
+                       pinctrl {
+                               compatible = "marvell,mv78260-pinctrl";
+                               reg = <0x18000 0x38>;
+
+                               sdio_pins: sdio-pins {
+                                       marvell,pins = "mpp30", "mpp31", "mpp32",
+                                                      "mpp33", "mpp34", "mpp35";
+                                       marvell,function = "sd0";
+                               };
                        };
-               };
 
-               gpio0: gpio@d0018100 {
-                       compatible = "marvell,orion-gpio";
-                       reg = <0xd0018100 0x40>;
-                       ngpios = <32>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupts-cells = <2>;
-                       interrupts = <82>, <83>, <84>, <85>;
-               };
+                       gpio0: gpio@18100 {
+                               compatible = "marvell,orion-gpio";
+                               reg = <0x18100 0x40>;
+                               ngpios = <32>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupts-cells = <2>;
+                               interrupts = <82>, <83>, <84>, <85>;
+                       };
 
-               gpio1: gpio@d0018140 {
-                       compatible = "marvell,orion-gpio";
-                       reg = <0xd0018140 0x40>;
-                       ngpios = <32>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupts-cells = <2>;
-                       interrupts = <87>, <88>, <89>, <90>;
-               };
+                       gpio1: gpio@18140 {
+                               compatible = "marvell,orion-gpio";
+                               reg = <0x18140 0x40>;
+                               ngpios = <32>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupts-cells = <2>;
+                               interrupts = <87>, <88>, <89>, <90>;
+                       };
 
-               gpio2: gpio@d0018180 {
-                       compatible = "marvell,orion-gpio";
-                       reg = <0xd0018180 0x40>;
-                       ngpios = <3>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupts-cells = <2>;
-                       interrupts = <91>;
-               };
+                       gpio2: gpio@18180 {
+                               compatible = "marvell,orion-gpio";
+                               reg = <0x18180 0x40>;
+                               ngpios = <3>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupts-cells = <2>;
+                               interrupts = <91>;
+                       };
 
-               ethernet@d0034000 {
+                       ethernet@34000 {
                                compatible = "marvell,armada-370-neta";
-                               reg = <0xd0034000 0x2500>;
+                               reg = <0x34000 0x2500>;
                                interrupts = <14>;
                                clocks = <&gateclk 1>;
                                status = "disabled";
-               };
-
-               /*
-                * MV78260 has 3 PCIe units Gen2.0: Two units can be
-                * configured as x4 or quad x1 lanes. One unit is
-                * x4/x1.
-                */
-               pcie-controller {
-                       compatible = "marvell,armada-xp-pcie";
-                       status = "disabled";
-                       device_type = "pci";
-
-                       #address-cells = <3>;
-                       #size-cells = <2>;
-
-                       bus-range = <0x00 0xff>;
-
-                       ranges = <0x82000000 0 0xd0040000 0xd0040000 0 0x00002000   /* Port 0.0 registers */
-                                 0x82000000 0 0xd0042000 0xd0042000 0 0x00002000   /* Port 2.0 registers */
-                                 0x82000000 0 0xd0044000 0xd0044000 0 0x00002000   /* Port 0.1 registers */
-                                 0x82000000 0 0xd0048000 0xd0048000 0 0x00002000   /* Port 0.2 registers */
-                                 0x82000000 0 0xd004c000 0xd004c000 0 0x00002000   /* Port 0.3 registers */
-                                 0x82000000 0 0xd0080000 0xd0080000 0 0x00002000   /* Port 1.0 registers */
-                                 0x82000000 0 0xd0082000 0xd0082000 0 0x00002000   /* Port 3.0 registers */
-                                 0x82000000 0 0xe0000000 0xe0000000 0 0x08000000   /* non-prefetchable memory */
-                                 0x81000000 0 0          0xe8000000 0 0x00100000>; /* downstream I/O */
-
-                       pcie@1,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82000800 0 0xd0040000 0 0x2000>;
-                               reg = <0x0800 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 58>;
-                               marvell,pcie-port = <0>;
-                               marvell,pcie-lane = <0>;
-                               clocks = <&gateclk 5>;
-                               status = "disabled";
-                       };
-
-                       pcie@2,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82000800 0 0xd0044000 0 0x2000>;
-                               reg = <0x1000 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 59>;
-                               marvell,pcie-port = <0>;
-                               marvell,pcie-lane = <1>;
-                               clocks = <&gateclk 6>;
-                               status = "disabled";
                        };
 
-                       pcie@3,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82000800 0 0xd0048000 0 0x2000>;
-                               reg = <0x1800 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 60>;
-                               marvell,pcie-port = <0>;
-                               marvell,pcie-lane = <2>;
-                               clocks = <&gateclk 7>;
+                       /*
+                        * MV78260 has 3 PCIe units Gen2.0: Two units can be
+                        * configured as x4 or quad x1 lanes. One unit is
+                        * x4/x1.
+                        */
+                       pcie-controller {
+                               compatible = "marvell,armada-xp-pcie";
                                status = "disabled";
-                       };
-
-                       pcie@4,0 {
                                device_type = "pci";
-                               assigned-addresses = <0x82000800 0 0xd004c000 0 0x2000>;
-                               reg = <0x2000 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 61>;
-                               marvell,pcie-port = <0>;
-                               marvell,pcie-lane = <3>;
-                               clocks = <&gateclk 8>;
-                               status = "disabled";
-                       };
 
-                       pcie@9,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82000800 0 0xd0042000 0 0x2000>;
-                               reg = <0x4800 0 0 0 0>;
                                #address-cells = <3>;
                                #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 99>;
-                               marvell,pcie-port = <2>;
-                               marvell,pcie-lane = <0>;
-                               clocks = <&gateclk 26>;
-                               status = "disabled";
-                       };
 
-                       pcie@10,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82000800 0 0xd0082000 0 0x2000>;
-                               reg = <0x5000 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 103>;
-                               marvell,pcie-port = <3>;
-                               marvell,pcie-lane = <0>;
-                               clocks = <&gateclk 27>;
-                               status = "disabled";
+                               bus-range = <0x00 0xff>;
+
+                               ranges = <0x82000000 0 0x40000 0x40000 0 0x00002000   /* Port 0.0 registers */
+                                       0x82000000 0 0x42000 0x42000 0 0x00002000   /* Port 2.0 registers */
+                                       0x82000000 0 0x44000 0x44000 0 0x00002000   /* Port 0.1 registers */
+                                       0x82000000 0 0x48000 0x48000 0 0x00002000   /* Port 0.2 registers */
+                                       0x82000000 0 0x4c000 0x4c000 0 0x00002000   /* Port 0.3 registers */
+                                       0x82000000 0 0x80000 0x80000 0 0x00002000   /* Port 1.0 registers */
+                                       0x82000000 0 0x82000 0x82000 0 0x00002000   /* Port 3.0 registers */
+                                       0x82000000 0 0xe0000000 0xe0000000 0 0x08000000   /* non-prefetchable memory */
+                                       0x81000000 0 0    0xe8000000 0 0x00100000>; /* downstream I/O */
+
+                               pcie@1,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
+                                       reg = <0x0800 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 58>;
+                                       marvell,pcie-port = <0>;
+                                       marvell,pcie-lane = <0>;
+                                       clocks = <&gateclk 5>;
+                                       status = "disabled";
+                               };
+
+                               pcie@2,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
+                                       reg = <0x1000 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 59>;
+                                       marvell,pcie-port = <0>;
+                                       marvell,pcie-lane = <1>;
+                                       clocks = <&gateclk 6>;
+                                       status = "disabled";
+                               };
+
+                               pcie@3,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82000800 0 0x48000 0 0x2000>;
+                                       reg = <0x1800 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 60>;
+                                       marvell,pcie-port = <0>;
+                                       marvell,pcie-lane = <2>;
+                                       clocks = <&gateclk 7>;
+                                       status = "disabled";
+                               };
+
+                               pcie@4,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82000800 0 0x4c000 0 0x2000>;
+                                       reg = <0x2000 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 61>;
+                                       marvell,pcie-port = <0>;
+                                       marvell,pcie-lane = <3>;
+                                       clocks = <&gateclk 8>;
+                                       status = "disabled";
+                               };
+
+                               pcie@9,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82000800 0 0x42000 0 0x2000>;
+                                       reg = <0x4800 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 99>;
+                                       marvell,pcie-port = <2>;
+                                       marvell,pcie-lane = <0>;
+                                       clocks = <&gateclk 26>;
+                                       status = "disabled";
+                               };
+
+                               pcie@10,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82000800 0 0x82000 0 0x2000>;
+                                       reg = <0x5000 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 103>;
+                                       marvell,pcie-port = <3>;
+                                       marvell,pcie-lane = <0>;
+                                       clocks = <&gateclk 27>;
+                                       status = "disabled";
+                               };
                        };
                };
        };
index 23a5ac4490a858b7be95b035a69d76b24f24463c..6ab56bd35de926aaab239966f87bb78b193dac2d 100644 (file)
 
 
        cpus {
-           #address-cells = <1>;
-           #size-cells = <0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
 
-           cpu@0 {
-               device_type = "cpu";
-               compatible = "marvell,sheeva-v7";
-               reg = <0>;
-               clocks = <&cpuclk 0>;
-           };
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "marvell,sheeva-v7";
+                       reg = <0>;
+                       clocks = <&cpuclk 0>;
+               };
 
-           cpu@1 {
-               device_type = "cpu";
-               compatible = "marvell,sheeva-v7";
-               reg = <1>;
-               clocks = <&cpuclk 1>;
-           };
+               cpu@1 {
+                       device_type = "cpu";
+                       compatible = "marvell,sheeva-v7";
+                       reg = <1>;
+                       clocks = <&cpuclk 1>;
+               };
 
-           cpu@2 {
-               device_type = "cpu";
-               compatible = "marvell,sheeva-v7";
-               reg = <2>;
-               clocks = <&cpuclk 2>;
-           };
+               cpu@2 {
+                       device_type = "cpu";
+                       compatible = "marvell,sheeva-v7";
+                       reg = <2>;
+                       clocks = <&cpuclk 2>;
+               };
 
-           cpu@3 {
-               device_type = "cpu";
-               compatible = "marvell,sheeva-v7";
-               reg = <3>;
-               clocks = <&cpuclk 3>;
-           };
+               cpu@3 {
+                       device_type = "cpu";
+                       compatible = "marvell,sheeva-v7";
+                       reg = <3>;
+                       clocks = <&cpuclk 3>;
+               };
        };
 
        soc {
-               pinctrl {
-                       compatible = "marvell,mv78460-pinctrl";
-                       reg = <0xd0018000 0x38>;
+               internal-regs {
+                       pinctrl {
+                               compatible = "marvell,mv78460-pinctrl";
+                               reg = <0x18000 0x38>;
 
-                       sdio_pins: sdio-pins {
-                               marvell,pins = "mpp30", "mpp31", "mpp32",
-                                              "mpp33", "mpp34", "mpp35";
-                               marvell,function = "sd0";
+                               sdio_pins: sdio-pins {
+                                       marvell,pins = "mpp30", "mpp31", "mpp32",
+                                                      "mpp33", "mpp34", "mpp35";
+                                       marvell,function = "sd0";
+                               };
                        };
-               };
 
-               gpio0: gpio@d0018100 {
-                       compatible = "marvell,orion-gpio";
-                       reg = <0xd0018100 0x40>;
-                       ngpios = <32>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupts-cells = <2>;
-                       interrupts = <82>, <83>, <84>, <85>;
-               };
+                       gpio0: gpio@18100 {
+                               compatible = "marvell,orion-gpio";
+                               reg = <0x18100 0x40>;
+                               ngpios = <32>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupts-cells = <2>;
+                               interrupts = <82>, <83>, <84>, <85>;
+                       };
 
-               gpio1: gpio@d0018140 {
-                       compatible = "marvell,orion-gpio";
-                       reg = <0xd0018140 0x40>;
-                       ngpios = <32>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupts-cells = <2>;
-                       interrupts = <87>, <88>, <89>, <90>;
-               };
+                       gpio1: gpio@18140 {
+                               compatible = "marvell,orion-gpio";
+                               reg = <0x18140 0x40>;
+                               ngpios = <32>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupts-cells = <2>;
+                               interrupts = <87>, <88>, <89>, <90>;
+                       };
 
-               gpio2: gpio@d0018180 {
-                       compatible = "marvell,orion-gpio";
-                       reg = <0xd0018180 0x40>;
-                       ngpios = <3>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupts-cells = <2>;
-                       interrupts = <91>;
-               };
+                       gpio2: gpio@18180 {
+                               compatible = "marvell,orion-gpio";
+                               reg = <0x18180 0x40>;
+                               ngpios = <3>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupts-cells = <2>;
+                               interrupts = <91>;
+                       };
 
-               ethernet@d0034000 {
+                       ethernet@34000 {
                                compatible = "marvell,armada-370-neta";
-                               reg = <0xd0034000 0x2500>;
+                               reg = <0x34000 0x2500>;
                                interrupts = <14>;
                                clocks = <&gateclk 1>;
                                status = "disabled";
-               };
+                       };
 
-               /*
-                * MV78460 has 4 PCIe units Gen2.0: Two units can be
-                * configured as x4 or quad x1 lanes. Two units are
-                * x4/x1.
-                */
-               pcie-controller {
-                       compatible = "marvell,armada-xp-pcie";
-                       status = "disabled";
-                       device_type = "pci";
+                       /*
+                        * MV78460 has 4 PCIe units Gen2.0: Two units can be
+                        * configured as x4 or quad x1 lanes. Two units are
+                        * x4/x1.
+                        */
+                       pcie-controller {
+                               compatible = "marvell,armada-xp-pcie";
+                               status = "disabled";
+                               device_type = "pci";
 
-                       #address-cells = <3>;
-                       #size-cells = <2>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
 
-                       bus-range = <0x00 0xff>;
+                               bus-range = <0x00 0xff>;
 
-                       ranges = <0x82000000 0 0xd0040000 0xd0040000 0 0x00002000   /* Port 0.0 registers */
-                                 0x82000000 0 0xd0042000 0xd0042000 0 0x00002000   /* Port 2.0 registers */
-                                 0x82000000 0 0xd0044000 0xd0044000 0 0x00002000   /* Port 0.1 registers */
-                                 0x82000000 0 0xd0048000 0xd0048000 0 0x00002000   /* Port 0.2 registers */
-                                 0x82000000 0 0xd004c000 0xd004c000 0 0x00002000   /* Port 0.3 registers */
-                                 0x82000000 0 0xd0080000 0xd0080000 0 0x00002000   /* Port 1.0 registers */
-                                 0x82000000 0 0xd0082000 0xd0082000 0 0x00002000   /* Port 3.0 registers */
-                                 0x82000000 0 0xd0084000 0xd0084000 0 0x00002000   /* Port 1.1 registers */
-                                 0x82000000 0 0xd0088000 0xd0088000 0 0x00002000   /* Port 1.2 registers */
-                                 0x82000000 0 0xd008c000 0xd008c000 0 0x00002000   /* Port 1.3 registers */
-                                 0x82000000 0 0xe0000000 0xe0000000 0 0x08000000   /* non-prefetchable memory */
-                                 0x81000000 0 0          0xe8000000 0 0x00100000>; /* downstream I/O */
+                               ranges = <0x82000000 0 0x40000 0x40000 0 0x00002000   /* Port 0.0 registers */
+                                       0x82000000 0 0x42000 0x42000 0 0x00002000   /* Port 2.0 registers */
+                                       0x82000000 0 0x44000 0x44000 0 0x00002000   /* Port 0.1 registers */
+                                       0x82000000 0 0x48000 0x48000 0 0x00002000   /* Port 0.2 registers */
+                                       0x82000000 0 0x4c000 0x4c000 0 0x00002000   /* Port 0.3 registers */
+                                       0x82000000 0 0x80000 0x80000 0 0x00002000   /* Port 1.0 registers */
+                                       0x82000000 0 0x82000 0x82000 0 0x00002000   /* Port 3.0 registers */
+                                       0x82000000 0 0x84000 0x84000 0 0x00002000   /* Port 1.1 registers */
+                                       0x82000000 0 0x88000 0x88000 0 0x00002000   /* Port 1.2 registers */
+                                       0x82000000 0 0x8c000 0x8c000 0 0x00002000   /* Port 1.3 registers */
+                                       0x82000000 0 0xe0000000 0xe0000000 0 0x08000000   /* non-prefetchable memory */
+                                       0x81000000 0 0    0xe8000000 0 0x00100000>; /* downstream I/O */
 
-                       pcie@1,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82000800 0 0xd0040000 0 0x2000>;
-                               reg = <0x0800 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 58>;
-                               marvell,pcie-port = <0>;
-                               marvell,pcie-lane = <0>;
-                               clocks = <&gateclk 5>;
-                               status = "disabled";
-                       };
+                               pcie@1,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
+                                       reg = <0x0800 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 58>;
+                                       marvell,pcie-port = <0>;
+                                       marvell,pcie-lane = <0>;
+                                       clocks = <&gateclk 5>;
+                                       status = "disabled";
+                               };
 
-                       pcie@2,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82001000 0 0xd0044000 0 0x2000>;
-                               reg = <0x1000 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 59>;
-                               marvell,pcie-port = <0>;
-                               marvell,pcie-lane = <1>;
-                               clocks = <&gateclk 6>;
-                               status = "disabled";
-                       };
+                               pcie@2,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82001000 0 0x44000 0 0x2000>;
+                                       reg = <0x1000 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 59>;
+                                       marvell,pcie-port = <0>;
+                                       marvell,pcie-lane = <1>;
+                                       clocks = <&gateclk 6>;
+                                       status = "disabled";
+                               };
 
-                       pcie@3,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82001800 0 0xd0048000 0 0x2000>;
-                               reg = <0x1800 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 60>;
-                               marvell,pcie-port = <0>;
-                               marvell,pcie-lane = <2>;
-                               clocks = <&gateclk 7>;
-                               status = "disabled";
-                       };
+                               pcie@3,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82001800 0 0x48000 0 0x2000>;
+                                       reg = <0x1800 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 60>;
+                                       marvell,pcie-port = <0>;
+                                       marvell,pcie-lane = <2>;
+                                       clocks = <&gateclk 7>;
+                                       status = "disabled";
+                               };
 
-                       pcie@4,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82002000 0 0xd004c000 0 0x2000>;
-                               reg = <0x2000 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 61>;
-                               marvell,pcie-port = <0>;
-                               marvell,pcie-lane = <3>;
-                               clocks = <&gateclk 8>;
-                               status = "disabled";
-                       };
+                               pcie@4,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82002000 0 0x4c000 0 0x2000>;
+                                       reg = <0x2000 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 61>;
+                                       marvell,pcie-port = <0>;
+                                       marvell,pcie-lane = <3>;
+                                       clocks = <&gateclk 8>;
+                                       status = "disabled";
+                               };
 
-                       pcie@5,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82002800 0 0xd0080000 0 0x2000>;
-                               reg = <0x2800 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 62>;
-                               marvell,pcie-port = <1>;
-                               marvell,pcie-lane = <0>;
-                               clocks = <&gateclk 9>;
-                               status = "disabled";
-                       };
+                               pcie@5,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
+                                       reg = <0x2800 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 62>;
+                                       marvell,pcie-port = <1>;
+                                       marvell,pcie-lane = <0>;
+                                       clocks = <&gateclk 9>;
+                                       status = "disabled";
+                               };
 
-                       pcie@6,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82003000 0 0xd0084000 0 0x2000>;
-                               reg = <0x3000 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 63>;
-                               marvell,pcie-port = <1>;
-                               marvell,pcie-lane = <1>;
-                               clocks = <&gateclk 10>;
-                               status = "disabled";
-                       };
+                               pcie@6,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82003000 0 0x84000 0 0x2000>;
+                                       reg = <0x3000 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 63>;
+                                       marvell,pcie-port = <1>;
+                                       marvell,pcie-lane = <1>;
+                                       clocks = <&gateclk 10>;
+                                       status = "disabled";
+                               };
 
-                       pcie@7,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82003800 0 0xd0088000 0 0x2000>;
-                               reg = <0x3800 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 64>;
-                               marvell,pcie-port = <1>;
-                               marvell,pcie-lane = <2>;
-                               clocks = <&gateclk 11>;
-                               status = "disabled";
-                       };
+                               pcie@7,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82003800 0 0x88000 0 0x2000>;
+                                       reg = <0x3800 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 64>;
+                                       marvell,pcie-port = <1>;
+                                       marvell,pcie-lane = <2>;
+                                       clocks = <&gateclk 11>;
+                                       status = "disabled";
+                               };
 
-                       pcie@8,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82004000 0 0xd008c000 0 0x2000>;
-                               reg = <0x4000 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 65>;
-                               marvell,pcie-port = <1>;
-                               marvell,pcie-lane = <3>;
-                               clocks = <&gateclk 12>;
-                               status = "disabled";
-                       };
-                       pcie@9,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82004800 0 0xd0042000 0 0x2000>;
-                               reg = <0x4800 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 99>;
-                               marvell,pcie-port = <2>;
-                               marvell,pcie-lane = <0>;
-                               clocks = <&gateclk 26>;
-                               status = "disabled";
-                       };
+                               pcie@8,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82004000 0 0x8c000 0 0x2000>;
+                                       reg = <0x4000 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 65>;
+                                       marvell,pcie-port = <1>;
+                                       marvell,pcie-lane = <3>;
+                                       clocks = <&gateclk 12>;
+                                       status = "disabled";
+                               };
+                               pcie@9,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82004800 0 0x42000 0 0x2000>;
+                                       reg = <0x4800 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 99>;
+                                       marvell,pcie-port = <2>;
+                                       marvell,pcie-lane = <0>;
+                                       clocks = <&gateclk 26>;
+                                       status = "disabled";
+                               };
 
-                       pcie@10,0 {
-                               device_type = "pci";
-                               assigned-addresses = <0x82005000 0 0xd0082000 0 0x2000>;
-                               reg = <0x5000 0 0 0 0>;
-                               #address-cells = <3>;
-                               #size-cells = <2>;
-                               #interrupt-cells = <1>;
-                               ranges;
-                               interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &mpic 103>;
-                               marvell,pcie-port = <3>;
-                               marvell,pcie-lane = <0>;
-                               clocks = <&gateclk 27>;
-                               status = "disabled";
+                               pcie@10,0 {
+                                       device_type = "pci";
+                                       assigned-addresses = <0x82005000 0 0x82000 0 0x2000>;
+                                       reg = <0x5000 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       #interrupt-cells = <1>;
+                                       ranges;
+                                       interrupt-map-mask = <0 0 0 0>;
+                                       interrupt-map = <0 0 0 0 &mpic 103>;
+                                       marvell,pcie-port = <3>;
+                                       marvell,pcie-lane = <0>;
+                                       clocks = <&gateclk 27>;
+                                       status = "disabled";
+                               };
                        };
                };
        };
- };
+};
index 9d04f04d4e39eae0a2eb5e059bdab179e01223c7..f14d36c4615984399b71c36e920ed84be96fcb74 100644 (file)
 
        memory {
                device_type = "memory";
-               reg = <0x00000000 0xC0000000>; /* 3 GB */
+               reg = <0 0x00000000 0 0xC0000000>; /* 3 GB */
        };
 
        soc {
-               serial@d0012000 {
-                       clock-frequency = <250000000>;
-                       status = "okay";
-               };
-               serial@d0012100 {
-                       clock-frequency = <250000000>;
-                       status = "okay";
-               };
-               pinctrl {
-                       led_pins: led-pins-0 {
-                               marvell,pins = "mpp49", "mpp51", "mpp53";
-                               marvell,function = "gpio";
+               internal-regs {
+                       serial@12000 {
+                               clock-frequency = <250000000>;
+                               status = "okay";
                        };
-               };
-               leds {
-                       compatible = "gpio-leds";
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&led_pins>;
-
-                       red_led {
-                               label = "red_led";
-                               gpios = <&gpio1 17 1>;
-                               default-state = "off";
+                       serial@12100 {
+                               clock-frequency = <250000000>;
+                               status = "okay";
                        };
-
-                       yellow_led {
-                               label = "yellow_led";
-                               gpios = <&gpio1 19 1>;
-                               default-state = "off";
+                       pinctrl {
+                               led_pins: led-pins-0 {
+                                       marvell,pins = "mpp49", "mpp51", "mpp53";
+                                       marvell,function = "gpio";
+                               };
                        };
-
-                       green_led {
-                               label = "green_led";
-                               gpios = <&gpio1 21 1>;
-                               default-state = "off";
-                               linux,default-trigger = "heartbeat";
+                       leds {
+                               compatible = "gpio-leds";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&led_pins>;
+
+                               red_led {
+                                       label = "red_led";
+                                       gpios = <&gpio1 17 1>;
+                                       default-state = "off";
+                               };
+
+                               yellow_led {
+                                       label = "yellow_led";
+                                       gpios = <&gpio1 19 1>;
+                                       default-state = "off";
+                               };
+
+                               green_led {
+                                       label = "green_led";
+                                       gpios = <&gpio1 21 1>;
+                                       default-state = "off";
+                                       linux,default-trigger = "heartbeat";
+                               };
                        };
-               };
 
-               gpio_keys {
-                       compatible = "gpio-keys";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+                       gpio_keys {
+                               compatible = "gpio-keys";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
 
-                       button@1 {
-                               label = "Init Button";
-                               linux,code = <116>;
-                               gpios = <&gpio1 28 0>;
+                               button@1 {
+                                       label = "Init Button";
+                                       linux,code = <116>;
+                                       gpios = <&gpio1 28 0>;
+                               };
                        };
-               };
 
-               mdio {
-                       phy0: ethernet-phy@0 {
-                               reg = <0>;
-                       };
+                       mdio {
+                               phy0: ethernet-phy@0 {
+                                       reg = <0>;
+                               };
 
-                       phy1: ethernet-phy@1 {
-                               reg = <1>;
-                       };
+                               phy1: ethernet-phy@1 {
+                                       reg = <1>;
+                               };
 
-                       phy2: ethernet-phy@2 {
-                               reg = <2>;
-                       };
+                               phy2: ethernet-phy@2 {
+                                       reg = <2>;
+                               };
 
-                       phy3: ethernet-phy@3 {
-                               reg = <3>;
+                               phy3: ethernet-phy@3 {
+                                       reg = <3>;
+                               };
                        };
-               };
 
-               ethernet@d0070000 {
-                       status = "okay";
-                       phy = <&phy0>;
-                       phy-mode = "sgmii";
-               };
-               ethernet@d0074000 {
-                       status = "okay";
-                       phy = <&phy1>;
-                       phy-mode = "sgmii";
-               };
-               ethernet@d0030000 {
-                       status = "okay";
-                       phy = <&phy2>;
-                       phy-mode = "sgmii";
-               };
-               ethernet@d0034000 {
-                       status = "okay";
-                       phy = <&phy3>;
-                       phy-mode = "sgmii";
-               };
-               i2c@d0011000 {
-                       status = "okay";
-                       clock-frequency = <400000>;
-               };
-               i2c@d0011100 {
-                       status = "okay";
-                       clock-frequency = <400000>;
+                       ethernet@70000 {
+                               status = "okay";
+                               phy = <&phy0>;
+                               phy-mode = "sgmii";
+                       };
+                       ethernet@74000 {
+                               status = "okay";
+                               phy = <&phy1>;
+                               phy-mode = "sgmii";
+                       };
+                       ethernet@30000 {
+                               status = "okay";
+                               phy = <&phy2>;
+                               phy-mode = "sgmii";
+                       };
+                       ethernet@34000 {
+                               status = "okay";
+                               phy = <&phy3>;
+                               phy-mode = "sgmii";
+                       };
+                       i2c@11000 {
+                               status = "okay";
+                               clock-frequency = <400000>;
+                       };
+                       i2c@11100 {
+                               status = "okay";
+                               clock-frequency = <400000>;
 
-                       s35390a: s35390a@30 {
-                               compatible = "s35390a";
-                               reg = <0x30>;
+                               s35390a: s35390a@30 {
+                                       compatible = "s35390a";
+                                       reg = <0x30>;
+                               };
+                       };
+                       sata@a0000 {
+                               nr-ports = <2>;
+                               status = "okay";
+                       };
+                       usb@50000 {
+                               status = "okay";
+                       };
+                       usb@51000 {
+                               status = "okay";
                        };
-               };
-               sata@d00a0000 {
-                       nr-ports = <2>;
-                       status = "okay";
-               };
-               usb@d0050000 {
-                       status = "okay";
-               };
-               usb@d0051000 {
-                       status = "okay";
-               };
 
-               devbus-bootcs@d0010400 {
-                       status = "okay";
-                       ranges = <0 0xf0000000 0x8000000>; /* @addr 0xf000000, size 0x8000000 */
-
-                       /* Device Bus parameters are required */
-
-                       /* Read parameters */
-                       devbus,bus-width    = <8>;
-                       devbus,turn-off-ps  = <60000>;
-                       devbus,badr-skew-ps = <0>;
-                       devbus,acc-first-ps = <124000>;
-                       devbus,acc-next-ps  = <248000>;
-                       devbus,rd-setup-ps  = <0>;
-                       devbus,rd-hold-ps   = <0>;
-
-                       /* Write parameters */
-                       devbus,sync-enable = <0>;
-                       devbus,wr-high-ps  = <60000>;
-                       devbus,wr-low-ps   = <60000>;
-                       devbus,ale-wr-ps   = <60000>;
-
-                       /* NOR 128 MiB */
-                       nor@0 {
-                               compatible = "cfi-flash";
-                               reg = <0 0x8000000>;
-                               bank-width = <2>;
+                       devbus-bootcs@10400 {
+                               status = "okay";
+                               ranges = <0 0xf0000000 0x8000000>; /* @addr 0xf000000, size 0x8000000 */
+
+                               /* Device Bus parameters are required */
+
+                               /* Read parameters */
+                               devbus,bus-width    = <8>;
+                               devbus,turn-off-ps  = <60000>;
+                               devbus,badr-skew-ps = <0>;
+                               devbus,acc-first-ps = <124000>;
+                               devbus,acc-next-ps  = <248000>;
+                               devbus,rd-setup-ps  = <0>;
+                               devbus,rd-hold-ps   = <0>;
+
+                               /* Write parameters */
+                               devbus,sync-enable = <0>;
+                               devbus,wr-high-ps  = <60000>;
+                               devbus,wr-low-ps   = <60000>;
+                               devbus,ale-wr-ps   = <60000>;
+
+                               /* NOR 128 MiB */
+                               nor@0 {
+                                       compatible = "cfi-flash";
+                                       reg = <0 0x8000000>;
+                                       bank-width = <2>;
+                               };
                        };
-               };
 
-               pcie-controller {
-                       status = "okay";
-                       /* Internal mini-PCIe connector */
-                       pcie@1,0 {
-                               /* Port 0, Lane 0 */
+                       pcie-controller {
                                status = "okay";
+                               /* Internal mini-PCIe connector */
+                               pcie@1,0 {
+                                       /* Port 0, Lane 0 */
+                                       status = "okay";
+                               };
                        };
                };
        };
index 29dfeb6d4a2689f5b6a43c7a8b6527142d1d0ad3..bacab11c10dc8151eb7f2b6eb8cf0d2905a52f0e 100644 (file)
        model = "Marvell Armada XP family SoC";
        compatible = "marvell,armadaxp", "marvell,armada-370-xp";
 
-       L2: l2-cache {
-               compatible = "marvell,aurora-system-cache";
-               reg = <0xd0008000 0x1000>;
-               cache-id-part = <0x100>;
-               wt-override;
-       };
+       soc {
+               internal-regs {
+                       L2: l2-cache {
+                               compatible = "marvell,aurora-system-cache";
+                               reg = <0x08000 0x1000>;
+                               cache-id-part = <0x100>;
+                               wt-override;
+                       };
 
-       mpic: interrupt-controller@d0020000 {
-             reg = <0xd0020a00 0x2d0>,
-                   <0xd0021070 0x58>;
-       };
+                       mpic: interrupt-controller@20000 {
+                             reg = <0x20a00 0x2d0>, <0x21070 0x58>;
+                       };
 
-       armada-370-xp-pmsu@d0022000 {
-               compatible = "marvell,armada-370-xp-pmsu";
-               reg = <0xd0022100 0x430>,
-                     <0xd0020800 0x20>;
-       };
+                       armada-370-xp-pmsu@22000 {
+                               compatible = "marvell,armada-370-xp-pmsu";
+                               reg = <0x22100 0x430>, <0x20800 0x20>;
+                       };
 
-       soc {
-               serial@d0012200 {
+                       serial@12200 {
                                compatible = "snps,dw-apb-uart";
-                               reg = <0xd0012200 0x100>;
+                               reg = <0x12200 0x100>;
                                reg-shift = <2>;
                                interrupts = <43>;
                                reg-io-width = <1>;
                                status = "disabled";
-               };
-               serial@d0012300 {
+                       };
+                       serial@12300 {
                                compatible = "snps,dw-apb-uart";
-                               reg = <0xd0012300 0x100>;
+                               reg = <0x12300 0x100>;
                                reg-shift = <2>;
                                interrupts = <44>;
                                reg-io-width = <1>;
                                status = "disabled";
-               };
+                       };
 
-               timer@d0020300 {
+                       timer@20300 {
                                marvell,timer-25Mhz;
-               };
+                       };
 
-               coreclk: mvebu-sar@d0018230 {
-                       compatible = "marvell,armada-xp-core-clock";
-                       reg = <0xd0018230 0x08>;
-                       #clock-cells = <1>;
-               };
+                       coreclk: mvebu-sar@18230 {
+                               compatible = "marvell,armada-xp-core-clock";
+                               reg = <0x18230 0x08>;
+                               #clock-cells = <1>;
+                       };
 
-               cpuclk: clock-complex@d0018700 {
-                       #clock-cells = <1>;
-                       compatible = "marvell,armada-xp-cpu-clock";
-                       reg = <0xd0018700 0xA0>;
-                       clocks = <&coreclk 1>;
-               };
+                       cpuclk: clock-complex@18700 {
+                               #clock-cells = <1>;
+                               compatible = "marvell,armada-xp-cpu-clock";
+                               reg = <0x18700 0xA0>;
+                               clocks = <&coreclk 1>;
+                       };
 
-               gateclk: clock-gating-control@d0018220 {
-                       compatible = "marvell,armada-xp-gating-clock";
-                       reg = <0xd0018220 0x4>;
-                       clocks = <&coreclk 0>;
-                       #clock-cells = <1>;
-               };
+                       gateclk: clock-gating-control@18220 {
+                               compatible = "marvell,armada-xp-gating-clock";
+                               reg = <0x18220 0x4>;
+                               clocks = <&coreclk 0>;
+                               #clock-cells = <1>;
+                       };
 
-               system-controller@d0018200 {
+                       system-controller@18200 {
                                compatible = "marvell,armada-370-xp-system-controller";
-                               reg = <0xd0018200 0x500>;
-               };
+                               reg = <0x18200 0x500>;
+                       };
 
-               ethernet@d0030000 {
+                       ethernet@30000 {
                                compatible = "marvell,armada-370-neta";
-                               reg = <0xd0030000 0x2500>;
+                               reg = <0x30000 0x2500>;
                                interrupts = <12>;
                                clocks = <&gateclk 2>;
                                status = "disabled";
-               };
-
-               xor@d0060900 {
-                       compatible = "marvell,orion-xor";
-                       reg = <0xd0060900 0x100
-                              0xd0060b00 0x100>;
-                       clocks = <&gateclk 22>;
-                       status = "okay";
-
-                       xor10 {
-                               interrupts = <51>;
-                               dmacap,memcpy;
-                               dmacap,xor;
-                       };
-                       xor11 {
-                               interrupts = <52>;
-                               dmacap,memcpy;
-                               dmacap,xor;
-                               dmacap,memset;
                        };
-               };
 
-               xor@d00f0900 {
-                       compatible = "marvell,orion-xor";
-                       reg = <0xd00F0900 0x100
-                              0xd00F0B00 0x100>;
-                       clocks = <&gateclk 28>;
-                       status = "okay";
-
-                       xor00 {
-                               interrupts = <94>;
-                               dmacap,memcpy;
-                               dmacap,xor;
+                       xor@60900 {
+                               compatible = "marvell,orion-xor";
+                               reg = <0x60900 0x100
+                                      0x60b00 0x100>;
+                               clocks = <&gateclk 22>;
+                               status = "okay";
+
+                               xor10 {
+                                       interrupts = <51>;
+                                       dmacap,memcpy;
+                                       dmacap,xor;
+                               };
+                               xor11 {
+                                       interrupts = <52>;
+                                       dmacap,memcpy;
+                                       dmacap,xor;
+                                       dmacap,memset;
+                               };
                        };
-                       xor01 {
-                               interrupts = <95>;
-                               dmacap,memcpy;
-                               dmacap,xor;
-                               dmacap,memset;
+
+                       xor@f0900 {
+                               compatible = "marvell,orion-xor";
+                               reg = <0xF0900 0x100
+                                      0xF0B00 0x100>;
+                               clocks = <&gateclk 28>;
+                               status = "okay";
+
+                               xor00 {
+                                       interrupts = <94>;
+                                       dmacap,memcpy;
+                                       dmacap,xor;
+                               };
+                               xor01 {
+                                       interrupts = <95>;
+                                       dmacap,memcpy;
+                                       dmacap,xor;
+                                       dmacap,memset;
+                               };
                        };
-               };
 
-               usb@d0050000 {
-                       clocks = <&gateclk 18>;
-               };
+                       usb@50000 {
+                               clocks = <&gateclk 18>;
+                       };
 
-               usb@d0051000 {
-                       clocks = <&gateclk 19>;
-               };
+                       usb@51000 {
+                               clocks = <&gateclk 19>;
+                       };
 
-               usb@d0052000 {
-                       compatible = "marvell,orion-ehci";
-                       reg = <0xd0052000 0x500>;
-                       interrupts = <47>;
-                       clocks = <&gateclk 20>;
-                       status = "disabled";
-               };
+                       usb@52000 {
+                               compatible = "marvell,orion-ehci";
+                               reg = <0x52000 0x500>;
+                               interrupts = <47>;
+                               clocks = <&gateclk 20>;
+                               status = "disabled";
+                       };
 
-               thermal@d00182b0 {
-                       compatible = "marvell,armadaxp-thermal";
-                       reg = <0xd00182b0 0x4
-                              0xd00184d0 0x4>;
-                       status = "okay";
+                       thermal@182b0 {
+                               compatible = "marvell,armadaxp-thermal";
+                               reg = <0x182b0 0x4
+                                       0x184d0 0x4>;
+                               status = "okay";
+                       };
                };
        };
 };
index 62eceb4f0d3fa74fc0fe010e3f4ce5b494dc1738..0a61bbb9102fa712fee3c4b04d96efd240f99a86 100644 (file)
        chosen {
        };
 
+       pinctrl@11400000 {
+               /*
+                * Disabled pullups since external part has its own pullups and
+                * double-pulling gets us out of spec in some cases.
+                */
+               i2c2_bus: i2c2-bus {
+                       samsung,pin-pud = <0>;
+               };
+       };
+
        i2c@12C60000 {
                samsung,i2c-sda-delay = <100>;
                samsung,i2c-max-bus-freq = <378000>;
-               gpios = <&gpb3 0 2 3 0>,
-                       <&gpb3 1 2 3 0>;
 
                max77686@09 {
                        compatible = "maxim,max77686";
        i2c@12C70000 {
                samsung,i2c-sda-delay = <100>;
                samsung,i2c-max-bus-freq = <378000>;
-               gpios = <&gpb3 2 2 3 0>,
-                       <&gpb3 3 2 3 0>;
        };
 
        i2c@12C80000 {
                samsung,i2c-sda-delay = <100>;
                samsung,i2c-max-bus-freq = <66000>;
 
-               /*
-                * Disabled pullups since external part has its own pullups and
-                * double-pulling gets us out of spec in some cases.
-                */
-               gpios = <&gpa0 6 3 0 0>,
-                       <&gpa0 7 3 0 0>;
-
                hdmiddc@50 {
                        compatible = "samsung,exynos5-hdmiddc";
                        reg = <0x50>;
        i2c@12C90000 {
                samsung,i2c-sda-delay = <100>;
                samsung,i2c-max-bus-freq = <66000>;
-               gpios = <&gpa1 2 3 3 0>,
-                       <&gpa1 3 3 3 0>;
        };
 
        i2c@12CA0000 {
-               status = "disabled";
+               samsung,i2c-sda-delay = <100>;
+               samsung,i2c-max-bus-freq = <66000>;
        };
 
        i2c@12CB0000 {
                samsung,i2c-sda-delay = <100>;
                samsung,i2c-max-bus-freq = <66000>;
-               gpios = <&gpa2 2 3 3 0>,
-                       <&gpa2 3 3 3 0>;
        };
 
        i2c@12CC0000 {
        i2c@12CD0000 {
                samsung,i2c-sda-delay = <100>;
                samsung,i2c-max-bus-freq = <66000>;
-               gpios = <&gpb2 2 3 3 0>,
-                       <&gpb2 3 3 3 0>;
        };
 
        i2c@12CE0000 {
                samsung,dw-mshc-ciu-div = <3>;
                samsung,dw-mshc-sdr-timing = <2 3>;
                samsung,dw-mshc-ddr-timing = <1 2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4 &sd0_bus8>;
 
                slot@0 {
                        reg = <0>;
                        bus-width = <8>;
-                       gpios = <&gpc0 0 2 0 3>, <&gpc0 1 2 0 3>,
-                               <&gpc1 0 2 3 3>, <&gpc1 1 2 3 3>,
-                               <&gpc1 2 2 3 3>, <&gpc1 3 2 3 3>,
-                               <&gpc0 3 2 3 3>, <&gpc0 4 2 3 3>,
-                               <&gpc0 5 2 3 3>, <&gpc0 6 2 3 3>;
                };
        };
 
                samsung,dw-mshc-ciu-div = <3>;
                samsung,dw-mshc-sdr-timing = <2 3>;
                samsung,dw-mshc-ddr-timing = <1 2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
 
                slot@0 {
                        reg = <0>;
                        bus-width = <4>;
-                       samsung,cd-pinmux-gpio = <&gpc3 2 2 3 3>;
-                       wp-gpios = <&gpc2 1 0 0 3>;
-                       gpios = <&gpc3 0 2 0 3>, <&gpc3 1 2 0 3>,
-                               <&gpc3 3 2 3 3>, <&gpc3 4 2 3 3>,
-                               <&gpc3 5 2 3 3>, <&gpc3 6 2 3 3>;
+                       wp-gpios = <&gpc2 1 0>;
                };
        };
 
                samsung,dw-mshc-ciu-div = <3>;
                samsung,dw-mshc-sdr-timing = <2 3>;
                samsung,dw-mshc-ddr-timing = <1 2>;
+               /* See board-specific dts files for pin setup */
 
                slot@0 {
                        reg = <0>;
                        bus-width = <4>;
-                       /* See board-specific dts files for GPIOs */
                };
        };
 
        };
 
        spi_1: spi@12d30000 {
-               gpios = <&gpa2 4 2 3 0>,
-                       <&gpa2 6 2 3 0>,
-                       <&gpa2 7 2 3 0>;
                samsung,spi-src-clk = <0>;
                num-cs = <1>;
        };
        };
 
        hdmi {
-               hpd-gpio = <&gpx3 7 0xf 1 3>;
+               hpd-gpio = <&gpx3 7 0>;
        };
 
        gpio-keys {
 
                power {
                        label = "Power";
-                       gpios = <&gpx1 3 0 0x10000 0>;
+                       gpios = <&gpx1 3 1>;
                        linux,code = <116>; /* KEY_POWER */
                        gpio-key,wakeup;
                };
index c5834a6c5bf4a555c8c725dc82abc6f9e6f72f25..c914357c0d894c67a8d1a985e182d409f4ec68ce 100644 (file)
                        pinctrl-names = "default";
                        pinctrl-0 = <&mmc0_pins>;
                };
+               spi1: spi@1f0e000 {
+                       status = "okay";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&spi1_pins &spi1_cs0_pin>;
+                       flash: m25p80@0 {
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               compatible = "m25p64";
+                               spi-max-frequency = <30000000>;
+                               reg = <0>;
+                               partition@0 {
+                                       label = "U-Boot-SPL";
+                                       reg = <0x00000000 0x00010000>;
+                                       read-only;
+                               };
+                               partition@1 {
+                                       label = "U-Boot";
+                                       reg = <0x00010000 0x00080000>;
+                                       read-only;
+                               };
+                               partition@2 {
+                                       label = "U-Boot-Env";
+                                       reg = <0x00090000 0x00010000>;
+                                       read-only;
+                               };
+                               partition@3 {
+                                       label = "Kernel";
+                                       reg = <0x000a0000 0x00280000>;
+                               };
+                               partition@4 {
+                                       label = "Filesystem";
+                                       reg = <0x00320000 0x00400000>;
+                               };
+                               partition@5 {
+                                       label = "MAC-Address";
+                                       reg = <0x007f0000 0x00010000>;
+                                       read-only;
+                               };
+                       };
+               };
        };
        nand_cs3@62000000 {
                status = "okay";
index 3ade343f13cc437aa86a04202f4054db751e8fb9..2c88313d2c7af6730772f4a4e53c8797fd6fda8d 100644 (file)
                                        0x28 0x00222222  0x00ffffff
                                >;
                        };
+                       ehrpwm0a_pins: pinmux_ehrpwm0a_pins {
+                               pinctrl-single,bits = <
+                                       /* EPWM0A */
+                                       0xc 0x00000002 0x0000000f
+                               >;
+                       };
+                       ehrpwm0b_pins: pinmux_ehrpwm0b_pins {
+                               pinctrl-single,bits = <
+                                       /* EPWM0B */
+                                       0xc 0x00000020 0x000000f0
+                               >;
+                       };
+                       ehrpwm1a_pins: pinmux_ehrpwm1a_pins {
+                               pinctrl-single,bits = <
+                                       /* EPWM1A */
+                                       0x14 0x00000002 0x0000000f
+                               >;
+                       };
+                       ehrpwm1b_pins: pinmux_ehrpwm1b_pins {
+                               pinctrl-single,bits = <
+                                       /* EPWM1B */
+                                       0x14 0x00000020 0x000000f0
+                               >;
+                       };
+                       ecap0_pins: pinmux_ecap0_pins {
+                               pinctrl-single,bits = <
+                                       /* ECAP0_APWM0 */
+                                       0x8 0x20000000 0xf0000000
+                               >;
+                       };
+                       ecap1_pins: pinmux_ecap1_pins {
+                               pinctrl-single,bits = <
+                                       /* ECAP1_APWM1 */
+                                       0x4 0x40000000 0xf0000000
+                               >;
+                       };
+                       ecap2_pins: pinmux_ecap2_pins {
+                               pinctrl-single,bits = <
+                                       /* ECAP2_APWM2 */
+                                       0x4 0x00000004 0x0000000f
+                               >;
+                       };
+                       spi1_pins: pinmux_spi_pins {
+                               pinctrl-single,bits = <
+                                       /* SIMO, SOMI, CLK */
+                                       0x14 0x00110100 0x00ff0f00
+                               >;
+                       };
+                       spi1_cs0_pin: pinmux_spi1_cs0 {
+                               pinctrl-single,bits = <
+                                       /* CS0 */
+                                       0x14 0x00000010 0x000000f0
+                               >;
+                       };
                };
                serial0: serial@1c42000 {
                        compatible = "ns16550a";
                        interrupts = <16>;
                        status = "disabled";
                };
+               ehrpwm0: ehrpwm@01f00000 {
+                       compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm";
+                       #pwm-cells = <3>;
+                       reg = <0x300000 0x2000>;
+                       status = "disabled";
+               };
+               ehrpwm1: ehrpwm@01f02000 {
+                       compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm";
+                       #pwm-cells = <3>;
+                       reg = <0x302000 0x2000>;
+                       status = "disabled";
+               };
+               ecap0: ecap@01f06000 {
+                       compatible = "ti,da850-ecap", "ti,am33xx-ecap";
+                       #pwm-cells = <3>;
+                       reg = <0x306000 0x80>;
+                       status = "disabled";
+               };
+               ecap1: ecap@01f07000 {
+                       compatible = "ti,da850-ecap", "ti,am33xx-ecap";
+                       #pwm-cells = <3>;
+                       reg = <0x307000 0x80>;
+                       status = "disabled";
+               };
+               ecap2: ecap@01f08000 {
+                       compatible = "ti,da850-ecap", "ti,am33xx-ecap";
+                       #pwm-cells = <3>;
+                       reg = <0x308000 0x80>;
+                       status = "disabled";
+               };
+               spi1: spi@1f0e000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "ti,da830-spi";
+                       reg = <0x30e000 0x1000>;
+                       num-cs = <4>;
+                       ti,davinci-spi-intr-line = <1>;
+                       interrupts = <56>;
+                       status = "disabled";
+               };
        };
        nand_cs3@62000000 {
                compatible = "ti,davinci-nand";
index 9ac47d51c40738063aa8ab5e317a9dee43ca3d29..7cfbbd3b7732bdaa0869420ddd12a09a31f67092 100644 (file)
                i2c7 = &i2c_7;
        };
 
+       chipid@10000000 {
+               compatible = "samsung,exynos4210-chipid";
+               reg = <0x10000000 0x100>;
+       };
+
        pd_mfc: mfc-power-domain@10023C40 {
                compatible = "samsung,exynos4210-pd";
                reg = <0x10023C40 0x20>;
                reg = <0x10440000 0x1000>;
        };
 
+       sys_reg: sysreg {
+               compatible = "samsung,exynos4-sysreg", "syscon";
+               reg = <0x10010000 0x400>;
+       };
+
        watchdog@10060000 {
                compatible = "samsung,s3c2410-wdt";
                reg = <0x10060000 0x100>;
                interrupts = <0 58 0>;
                clocks = <&clock 317>;
                clock-names = "i2c";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c0_bus>;
                status = "disabled";
        };
 
                interrupts = <0 59 0>;
                clocks = <&clock 318>;
                clock-names = "i2c";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c1_bus>;
                status = "disabled";
        };
 
                #size-cells = <0>;
                clocks = <&clock 327>, <&clock 159>;
                clock-names = "spi", "spi_busclk0";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi0_bus>;
                status = "disabled";
        };
 
                #size-cells = <0>;
                clocks = <&clock 328>, <&clock 160>;
                clock-names = "spi", "spi_busclk0";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi1_bus>;
                status = "disabled";
        };
 
                #size-cells = <0>;
                clocks = <&clock 329>, <&clock 161>;
                clock-names = "spi", "spi_busclk0";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi2_bus>;
                status = "disabled";
        };
 
                        #dma-requests = <1>;
                };
        };
+
+       fimd: fimd@11c00000 {
+               compatible = "samsung,exynos4210-fimd";
+               interrupt-parent = <&combiner>;
+               reg = <0x11c00000 0x20000>;
+               interrupt-names = "fifo", "vsync", "lcd_sys";
+               interrupts = <11 0>, <11 1>, <11 2>;
+               clocks = <&clock 140>, <&clock 283>;
+               clock-names = "sclk_fimd", "fimd";
+               samsung,power-domain = <&pd_lcd0>;
+               status = "disabled";
+       };
 };
index 1b30bc8e2654f123ff0624b02e095fdb22b70e1d..524b90846df5fe7e8a9abf56d94634bb39b592c8 100644 (file)
                status = "okay";
        };
 
+       g2d@12800000 {
+               status = "okay";
+       };
+
        codec@13400000 {
                samsung,mfc-r = <0x43000000 0x800000>;
                samsung,mfc-l = <0x51000000 0x800000>;
index f52c86e2d424059b1a391ace03f9d87e7fc2119d..91332b72acf547c0f3dfd859c01784d0961d069d 100644 (file)
        };
 
        sdhci@12530000 {
-               samsung,sdhci-bus-width = <4>;
-               linux,mmc_cap_4_bit_data;
-               samsung,sdhci-cd-internal;
-               gpio-cd = <&gpk2 2 2 3 3>;
-               gpios = <&gpk2 0 2 0 3>,
-                       <&gpk2 1 2 0 3>,
-                       <&gpk2 3 2 3 3>,
-                       <&gpk2 4 2 3 3>,
-                       <&gpk2 5 2 3 3>,
-                       <&gpk2 6 2 3 3>;
+               bus-width = <4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
+               status = "okay";
+       };
+
+       g2d@12800000 {
                status = "okay";
        };
 
                status = "okay";
        };
 
+       pinctrl@11000000 {
+               keypad_rows: keypad-rows {
+                       samsung,pins = "gpx2-0", "gpx2-1";
+                       samsung,pin-function = <3>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <0>;
+               };
+
+               keypad_cols: keypad-cols {
+                       samsung,pins = "gpx1-0", "gpx1-1", "gpx1-2", "gpx1-3",
+                                      "gpx1-4", "gpx1-5", "gpx1-6", "gpx1-7";
+                       samsung,pin-function = <3>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+       };
+
        keypad@100A0000 {
                samsung,keypad-num-rows = <2>;
                samsung,keypad-num-columns = <8>;
                linux,keypad-no-autorepeat;
                linux,keypad-wakeup;
+               pinctrl-names = "default";
+               pinctrl-0 = <&keypad_rows &keypad_cols>;
                status = "okay";
 
-               row-gpios = <&gpx2 0 3 3 0>,
-                           <&gpx2 1 3 3 0>;
-
-               col-gpios = <&gpx1 0 3 0 0>,
-                           <&gpx1 1 3 0 0>,
-                           <&gpx1 2 3 0 0>,
-                           <&gpx1 3 3 0 0>,
-                           <&gpx1 4 3 0 0>,
-                           <&gpx1 5 3 0 0>,
-                           <&gpx1 6 3 0 0>,
-                           <&gpx1 7 3 0 0>;
-
                key_1 {
                        keypad,row = <0>;
                        keypad,column = <3>;
                #address-cells = <1>;
                #size-cells = <0>;
                samsung,i2c-sda-delay = <100>;
-               samsung,i2c-max-bus-freq = <20000>;
-               gpios = <&gpd1 0 2 3 0>,
-                       <&gpd1 1 2 3 0>;
+               samsung,i2c-max-bus-freq = <100000>;
                status = "okay";
 
                eeprom@50 {
        };
 
        spi_2: spi@13940000 {
-               gpios = <&gpc1 1 5 3 0>,
-                       <&gpc1 3 5 3 0>,
-                       <&gpc1 4 5 3 0>;
                status = "okay";
 
                w25x80@0 {
                        spi-max-frequency = <1000000>;
 
                        controller-data {
-                               cs-gpio = <&gpc1 2 1 0 3>;
+                               cs-gpio = <&gpc1 2 0>;
                                samsung,spi-feedback-delay = <0>;
                        };
 
index 15143bdbafb8625a0dfa32d61329355a35db387c..66e6b03bf35e71b54f7c95cbf5e33bb6744464e0 100644 (file)
                reg = <0x100C0000 0x100>;
                interrupts = <2 4>;
        };
+
+       g2d@12800000 {
+               compatible = "samsung,s5pv210-g2d";
+               reg = <0x12800000 0x1000>;
+               interrupts = <0 89 0>;
+               status = "disabled";
+       };
 };
index 1fecf7666dc082fd0984667dd914b7eb9c0b737a..1c21bad32ca9090c9673b2d68dabba20a2e563a1 100644 (file)
                status = "okay";
        };
 
+       fimd@11c00000 {
+               pinctrl-0 = <&lcd_clk &lcd_data24 &pwm1_out>;
+               pinctrl-names = "default";
+               status = "okay";
+       };
+
+       display-timings {
+               native-mode = <&timing0>;
+               timing0: timing {
+                       clock-frequency = <50000>;
+                       hactive = <1024>;
+                       vactive = <600>;
+                       hfront-porch = <64>;
+                       hback-porch = <16>;
+                       hsync-len = <48>;
+                       vback-porch = <64>;
+                       vfront-porch = <16>;
+                       vsync-len = <3>;
+               };
+       };
+
        serial@13800000 {
                status = "okay";
        };
index 874beeaef99d802f09e414d447dcb32ab28e88ad..dd564310d4a53ed1406330ce1dcae924d4ac2499 100644 (file)
                bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc";
        };
 
+       g2d@10800000 {
+               status = "okay";
+       };
+
+       g2d@10800000 {
+               status = "okay";
+       };
+
        sdhci@12530000 {
                bus-width = <4>;
                pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>;
index d75c047e80a96ca0ed31fb7f6ecf612e41d11262..7f428272fee646980bea4e3d5d745eecbe6983ab 100644 (file)
                                        <0x7 0 &gic 1 12 0>;
                };
        };
+
+       mshc@12550000 {
+               compatible = "samsung,exynos4412-dw-mshc";
+               reg = <0x12550000 0x1000>;
+               interrupts = <0 77 0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
 };
index 7496b8d633eaa060df987b525b4ed4eb4d12984a..e3380a7a285c103fd86c1121f0a73bded0536917 100644 (file)
                reg = <0x106E0000 0x1000>;
                interrupts = <0 72 0>;
        };
+
+       g2d@10800000 {
+               compatible = "samsung,exynos4212-g2d";
+               reg = <0x10800000 0x1000>;
+               interrupts = <0 89 0>;
+               status = "disabled";
+       };
 };
index 5de019cb0e5830db4ca757132b6069caa755957d..02cfc76d002fb69fa0db98fa34e4ba112310acfa 100644 (file)
                bootargs = "console=ttySAC2,115200";
        };
 
+       codec@11000000 {
+               samsung,mfc-r = <0x43000000 0x800000>;
+               samsung,mfc-l = <0x51000000 0x800000>;
+       };
+
        i2c@12C60000 {
-               status = "disabled";
+               samsung,i2c-sda-delay = <100>;
+               samsung,i2c-max-bus-freq = <20000>;
+               samsung,i2c-slave-addr = <0x66>;
+
+               s5m8767_pmic@66 {
+                       compatible = "samsung,s5m8767-pmic";
+                       reg = <0x66>;
+
+                       s5m8767,pmic-buck2-dvs-voltage = <1300000>;
+                       s5m8767,pmic-buck3-dvs-voltage = <1100000>;
+                       s5m8767,pmic-buck4-dvs-voltage = <1200000>;
+                       s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 0>,
+                                                       <&gpd1 1 0>,
+                                                       <&gpd1 2 0>;
+                       s5m8767,pmic-buck-ds-gpios = <&gpx2 3 0>,
+                                                       <&gpx2 4 0>,
+                                                       <&gpx2 5 0>;
+                       regulators {
+                               ldo1_reg: LDO1 {
+                                       regulator-name = "VDD_ALIVE_1.0V";
+                                       regulator-min-microvolt = <1100000>;
+                                       regulator-max-microvolt = <1100000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               ldo2_reg: LDO2 {
+                                       regulator-name = "VDD_28IO_DP_1.35V";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               ldo3_reg: LDO3 {
+                                       regulator-name = "VDD_COMMON1_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               ldo4_reg: LDO4 {
+                                       regulator-name = "VDD_IOPERI_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       op_mode = <1>;
+                               };
+
+                               ldo5_reg: LDO5 {
+                                       regulator-name = "VDD_EXT_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               ldo6_reg: LDO6 {
+                                       regulator-name = "VDD_MPLL_1.1V";
+                                       regulator-min-microvolt = <1100000>;
+                                       regulator-max-microvolt = <1100000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               ldo7_reg: LDO7 {
+                                       regulator-name = "VDD_XPLL_1.1V";
+                                       regulator-min-microvolt = <1100000>;
+                                       regulator-max-microvolt = <1100000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               ldo8_reg: LDO8 {
+                                       regulator-name = "VDD_COMMON2_1.0V";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               ldo9_reg: LDO9 {
+                                       regulator-name = "VDD_33ON_3.0V";
+                                       regulator-min-microvolt = <3000000>;
+                                       regulator-max-microvolt = <3000000>;
+                                       op_mode = <1>;
+                               };
+
+                               ldo10_reg: LDO10 {
+                                       regulator-name = "VDD_COMMON3_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               ldo11_reg: LDO11 {
+                                       regulator-name = "VDD_ABB2_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               ldo12_reg: LDO12 {
+                                       regulator-name = "VDD_USB_3.0V";
+                                       regulator-min-microvolt = <3000000>;
+                                       regulator-max-microvolt = <3000000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               ldo13_reg: LDO13 {
+                                       regulator-name = "VDDQ_C2C_W_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               ldo14_reg: LDO14 {
+                                       regulator-name = "VDD18_ABB0_3_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               ldo15_reg: LDO15 {
+                                       regulator-name = "VDD10_COMMON4_1.0V";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               ldo16_reg: LDO16 {
+                                       regulator-name = "VDD18_HSIC_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               ldo17_reg: LDO17 {
+                                       regulator-name = "VDDQ_MMC2_3_2.8V";
+                                       regulator-min-microvolt = <2800000>;
+                                       regulator-max-microvolt = <2800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               ldo18_reg: LDO18 {
+                                       regulator-name = "VDD_33ON_2.8V";
+                                       regulator-min-microvolt = <2800000>;
+                                       regulator-max-microvolt = <2800000>;
+                                       op_mode = <1>;
+                               };
+
+                               ldo22_reg: LDO22 {
+                                       regulator-name = "EXT_33_OFF";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       op_mode = <1>;
+                               };
+
+                               ldo23_reg: LDO23 {
+                                       regulator-name = "EXT_28_OFF";
+                                       regulator-min-microvolt = <2800000>;
+                                       regulator-max-microvolt = <2800000>;
+                                       op_mode = <1>;
+                               };
+
+                               ldo25_reg: LDO25 {
+                                       regulator-name = "PVDD_LDO25";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       op_mode = <1>;
+                               };
+
+                               ldo26_reg: LDO26 {
+                                       regulator-name = "EXT_18_OFF";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       op_mode = <1>;
+                               };
+
+                               buck1_reg: BUCK1 {
+                                       regulator-name = "vdd_mif";
+                                       regulator-min-microvolt = <950000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               buck2_reg: BUCK2 {
+                                       regulator-name = "vdd_arm";
+                                       regulator-min-microvolt = <925000>;
+                                       regulator-max-microvolt = <1300000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               buck3_reg: BUCK3 {
+                                       regulator-name = "vdd_int";
+                                       regulator-min-microvolt = <900000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               buck4_reg: BUCK4 {
+                                       regulator-name = "vdd_g3d";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               buck5_reg: BUCK5 {
+                                       regulator-name = "VDD_MEM_1.35V";
+                                       regulator-min-microvolt = <750000>;
+                                       regulator-max-microvolt = <1355000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       op_mode = <1>;
+                               };
+
+                               buck9_reg: BUCK9 {
+                                       regulator-name = "VDD_33_OFF_EXT1";
+                                       regulator-min-microvolt = <750000>;
+                                       regulator-max-microvolt = <3000000>;
+                                       op_mode = <1>;
+                               };
+                       };
+               };
        };
 
        i2c@12C70000 {
                samsung,dw-mshc-ciu-div = <3>;
                samsung,dw-mshc-sdr-timing = <2 3>;
                samsung,dw-mshc-ddr-timing = <1 2>;
+               vmmc-supply = <&mmc_reg>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
 
                slot@0 {
                        reg = <0>;
                        bus-width = <8>;
-                       gpios = <&gpc0 0 2 0 3>, <&gpc0 1 2 0 3>,
-                               <&gpc0 3 2 3 3>, <&gpc0 4 2 3 3>,
-                               <&gpc0 5 2 3 3>, <&gpc0 6 2 3 3>,
-                               <&gpc1 0 2 3 3>, <&gpc1 1 2 3 3>,
-                               <&gpc1 2 2 3 3>, <&gpc1 3 2 3 3>;
                };
        };
 
                samsung,dw-mshc-ciu-div = <3>;
                samsung,dw-mshc-sdr-timing = <2 3>;
                samsung,dw-mshc-ddr-timing = <1 2>;
+               vmmc-supply = <&mmc_reg>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
 
                slot@0 {
                        reg = <0>;
                        bus-width = <4>;
-                       samsung,cd-pinmux-gpio = <&gpc3 2 2 3 3>;
-                       gpios = <&gpc3 0 2 0 3>, <&gpc3 1 2 0 3>,
-                               <&gpc3 3 2 3 3>, <&gpc3 4 2 3 3>,
-                               <&gpc3 5 2 3 3>, <&gpc3 6 2 3 3>;
+                       disable-wp;
                };
        };
 
                status = "disabled";
        };
 
+       gpio_keys {
+               compatible = "gpio-keys";
+
+               menu {
+                       label = "SW-TACT2";
+                       gpios = <&gpx1 4 1>;
+                       linux,code = <139>;
+                       gpio-key,wakeup;
+               };
+
+               home {
+                       label = "SW-TACT3";
+                       gpios = <&gpx1 5 1>;
+                       linux,code = <102>;
+                       gpio-key,wakeup;
+               };
+
+               up {
+                       label = "SW-TACT4";
+                       gpios = <&gpx1 6 1>;
+                       linux,code = <103>;
+                       gpio-key,wakeup;
+               };
+
+               down {
+                       label = "SW-TACT5";
+                       gpios = <&gpx1 7 1>;
+                       linux,code = <108>;
+                       gpio-key,wakeup;
+               };
+
+               back {
+                       label = "SW-TACT6";
+                       gpios = <&gpx2 0 1>;
+                       linux,code = <158>;
+                       gpio-key,wakeup;
+               };
+
+               wakeup {
+                       label = "SW-TACT7";
+                       gpios = <&gpx2 1 1>;
+                       linux,code = <143>;
+                       gpio-key,wakeup;
+               };
+       };
+
+       hdmi {
+               hpd-gpio = <&gpx3 7 2>;
+               vdd_osc-supply = <&ldo10_reg>;
+               vdd_pll-supply = <&ldo8_reg>;
+               vdd-supply = <&ldo8_reg>;
+       };
+
+       mmc_reg: voltage-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_33ON_2.8V";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+               gpio = <&gpx1 1 1>;
+               enable-active-high;
+       };
+
+       reg_hdmi_en: fixedregulator@0 {
+               compatible = "regulator-fixed";
+               regulator-name = "hdmi-en";
+       };
+
        fixed-rate-clocks {
                xxti {
                        compatible = "samsung,clock-xxti";
diff --git a/arch/arm/boot/dts/exynos5250-pinctrl.dtsi b/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
new file mode 100644 (file)
index 0000000..d1650fb
--- /dev/null
@@ -0,0 +1,783 @@
+/*
+ * Samsung's Exynos5250 SoC pin-mux and pin-config device tree source
+ *
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd.
+ *             http://www.samsung.com
+ *
+ * Samsung's Exynos5250 SoC pin-mux and pin-config optiosn are listed as device
+ * tree nodes are listed in this file.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+/ {
+       pinctrl@11400000 {
+               gpa0: gpa0 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpa1: gpa1 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpa2: gpa2 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpb0: gpb0 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpb1: gpb1 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpb2: gpb2 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpb3: gpb3 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpc0: gpc0 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpc1: gpc1 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpc2: gpc2 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpc3: gpc3 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpd0: gpd0 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpd1: gpd1 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpy0: gpy0 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+               };
+
+               gpy1: gpy1 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+               };
+
+               gpy2: gpy2 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+               };
+
+               gpy3: gpy3 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+               };
+
+               gpy4: gpy4 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+               };
+
+               gpy5: gpy5 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+               };
+
+               gpy6: gpy6 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+               };
+
+               gpc4: gpc4 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpx0: gpx0 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       interrupt-parent = <&combiner>;
+                       #interrupt-cells = <2>;
+                       interrupts = <23 0>, <24 0>, <25 0>, <25 1>,
+                                    <26 0>, <26 1>, <27 0>, <27 1>;
+               };
+
+               gpx1: gpx1 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       interrupt-parent = <&combiner>;
+                       #interrupt-cells = <2>;
+                       interrupts = <28 0>, <28 1>, <29 0>, <29 1>,
+                                    <30 0>, <30 1>, <31 0>, <31 1>;
+               };
+
+               gpx2: gpx2 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpx3: gpx3 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               uart0_data: uart0-data {
+                       samsung,pins = "gpa0-0", "gpa0-1";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               uart0_fctl: uart0-fctl {
+                       samsung,pins = "gpa0-2", "gpa0-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samaung,pin-drv = <0>;
+               };
+
+               i2c2_bus: i2c2-bus {
+                       samsung,pins = "gpa0-6", "gpa0-7";
+                       samsung,pin-function = <3>;
+                       samsung,pin-pud = <3>;
+                       samaung,pin-drv = <0>;
+               };
+
+               i2c2_hs_bus: i2c2-hs-bus {
+                       samsung,pins = "gpa0-6", "gpa0-7";
+                       samsung,pin-function = <4>;
+                       samsung,pin-pud = <3>;
+                       samaung,pin-drv = <0>;
+               };
+
+               uart2_data: uart2-data {
+                       samsung,pins = "gpa1-0", "gpa1-1";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               uart2_fctl: uart2-fctl {
+                       samsung,pins = "gpa1-2", "gpa1-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samaung,pin-drv = <0>;
+               };
+
+               i2c3_bus: i2c3-bus {
+                       samsung,pins = "gpa1-2", "gpa1-3";
+                       samsung,pin-function = <3>;
+                       samsung,pin-pud = <3>;
+                       samaung,pin-drv = <0>;
+               };
+
+               i2c3_hs_bus: i2c3-hs-bus {
+                       samsung,pins = "gpa1-2", "gpa1-3";
+                       samsung,pin-function = <4>;
+                       samsung,pin-pud = <3>;
+                       samaung,pin-drv = <0>;
+               };
+
+               uart3_data: uart3-data {
+                       samsung,pins = "gpa1-4", "gpa1-4";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               spi0_bus: spi0-bus {
+                       samsung,pins = "gpa2-0", "gpa2-2", "gpa2-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <0>;
+               };
+
+               i2c4_bus: i2c4-bus {
+                       samsung,pins = "gpa2-0", "gpa2-1";
+                       samsung,pin-function = <3>;
+                       samsung,pin-pud = <3>;
+                       samaung,pin-drv = <0>;
+               };
+
+               i2c5_bus: i2c5-bus {
+                       samsung,pins = "gpa2-2", "gpa2-3";
+                       samsung,pin-function = <3>;
+                       samsung,pin-pud = <3>;
+                       samaung,pin-drv = <0>;
+               };
+
+               spi1_bus: spi1-bus {
+                       samsung,pins = "gpa2-4", "gpa2-6", "gpa2-7";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <0>;
+               };
+
+               i2s1_bus: i2s1-bus {
+                       samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
+                                       "gpb0-4";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               pcm1_bus: pcm1-bus {
+                       samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
+                                       "gpb0-4";
+                       samsung,pin-function = <3>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               ac97_bus: ac97-bus {
+                       samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
+                                       "gpb0-4";
+                       samsung,pin-function = <4>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               i2s2_bus: i2s2-bus {
+                       samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
+                                       "gpb1-4";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               pcm2_bus: pcm2-bus {
+                       samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
+                                       "gpb1-4";
+                       samsung,pin-function = <3>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               spdif_bus: spdif-bus {
+                       samsung,pins = "gpb1-0", "gpb1-1";
+                       samsung,pin-function = <4>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               spi2_bus: spi2-bus {
+                       samsung,pins = "gpb1-1", "gpb1-3", "gpb1-4";
+                       samsung,pin-function = <5>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <0>;
+               };
+
+               i2c6_bus: i2c6-bus {
+                       samsung,pins = "gpb1-3", "gpb1-4";
+                       samsung,pin-function = <4>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <0>;
+               };
+
+               i2c7_bus: i2c7-bus {
+                       samsung,pins = "gpb2-2", "gpb2-3";
+                       samsung,pin-function = <3>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <0>;
+               };
+
+               i2c0_bus: i2c0-bus {
+                       samsung,pins = "gpb3-0", "gpb3-1";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <0>;
+               };
+
+               i2c1_bus: i2c1-bus {
+                       samsung,pins = "gpb3-2", "gpb3-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <0>;
+               };
+
+               i2c0_hs_bus: i2c0-hs-bus {
+                       samsung,pins = "gpb3-0", "gpb3-1";
+                       samsung,pin-function = <4>;
+                       samsung,pin-pud = <3>;
+                       samaung,pin-drv = <0>;
+               };
+
+               i2c1_hs_bus: i2c1-hs-bus {
+                       samsung,pins = "gpb3-2", "gpb3-3";
+                       samsung,pin-function = <4>;
+                       samsung,pin-pud = <3>;
+                       samaung,pin-drv = <0>;
+               };
+
+               sd0_clk: sd0-clk {
+                       samsung,pins = "gpc0-0";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd0_cmd: sd0-cmd {
+                       samsung,pins = "gpc0-1";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd0_cd: sd0-cd {
+                       samsung,pins = "gpc0-2";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd0_bus1: sd0-bus-width1 {
+                       samsung,pins = "gpc0-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd0_bus4: sd0-bus-width4 {
+                       samsung,pins = "gpc0-3", "gpc0-4", "gpc0-5", "gpc0-6";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd0_bus8: sd0-bus-width8 {
+                       samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd1_clk: sd1-clk {
+                       samsung,pins = "gpc2-0";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd1_cmd: sd1-cmd {
+                       samsung,pins = "gpc2-1";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd1_cd: sd1-cd {
+                       samsung,pins = "gpc2-2";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd1_bus1: sd1-bus-width1 {
+                       samsung,pins = "gpc2-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd1_bus4: sd1-bus-width4 {
+                       samsung,pins = "gpc2-3", "gpc2-4", "gpc2-5", "gpc2-6";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd2_clk: sd2-clk {
+                       samsung,pins = "gpc3-0";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd2_cmd: sd2-cmd {
+                       samsung,pins = "gpc3-1";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd2_cd: sd2-cd {
+                       samsung,pins = "gpc3-2";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd2_bus1: sd2-bus-width1 {
+                       samsung,pins = "gpc3-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd2_bus4: sd2-bus-width4 {
+                       samsung,pins = "gpc3-3", "gpc3-4", "gpc3-5", "gpc3-6";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd2_bus8: sd2-bus-width8 {
+                       samsung,pins = "gpc4-3", "gpc4-4", "gpc4-5", "gpc4-6";
+                       samsung,pin-function = <3>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd3_clk: sd3-clk {
+                       samsung,pins = "gpc4-0";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd3_cmd: sd3-cmd {
+                       samsung,pins = "gpc4-1";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd3_cd: sd3-cd {
+                       samsung,pins = "gpc4-2";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd3_bus1: sd3-bus-width1 {
+                       samsung,pins = "gpc4-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <3>;
+               };
+
+               sd3_bus4: sd3-bus-width4 {
+                       samsung,pins = "gpc4-3", "gpc4-4", "gpc4-5", "gpc4-6";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <3>;
+               };
+
+               uart1_data: uart1-data {
+                       samsung,pins = "gpd0-0", "gpd0-1";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               uart1_fctl: uart1-fctl {
+                       samsung,pins = "gpd0-2", "gpd0-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samaung,pin-drv = <0>;
+               };
+       };
+
+       pinctrl@13400000 {
+               gpe0: gpe0 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpe1: gpe1 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpf0: gpf0 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpf1: gpf1 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpg0: gpg0 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpg1: gpg1 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpg2: gpg2 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gph0: gph0 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gph1: gph1 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               cam_gpio_a: cam-gpio-a {
+                       samsung,pins = "gpe0-0", "gpe0-1", "gpe0-2", "gpe0-3",
+                                      "gpe0-4", "gpe0-5", "gpe0-6", "gpe0-7",
+                                      "gpe1-0", "gpe1-1";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               cam_gpio_b: cam-gpio-b {
+                       samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3",
+                                      "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
+                       samsung,pin-function = <3>;
+                       samsung,pin-pud = <0>;
+                       samaung,pin-drv = <0>;
+               };
+
+               cam_i2c2_bus: cam-i2c2-bus {
+                       samsung,pins = "gpe0-6", "gpe1-0";
+                       samsung,pin-function = <4>;
+                       samsung,pin-pud = <3>;
+                       samaung,pin-drv = <0>;
+               };
+
+               cam_spi1_bus: cam-spi1-bus {
+                       samsung,pins = "gpe0-4", "gpe0-5", "gpf0-2", "gpf0-3";
+                       samsung,pin-function = <4>;
+                       samsung,pin-pud = <0>;
+                       samaung,pin-drv = <0>;
+               };
+
+               cam_i2c1_bus: cam-i2c1-bus {
+                       samsung,pins = "gpf0-2", "gpf0-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samaung,pin-drv = <0>;
+               };
+
+               cam_i2c0_bus: cam-i2c0-bus {
+                       samsung,pins = "gpf0-0", "gpf0-1";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <3>;
+                       samaung,pin-drv = <0>;
+               };
+
+               cam_spi0_bus: cam-spi0-bus {
+                       samsung,pins = "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samaung,pin-drv = <0>;
+               };
+
+               cam_bayrgb_bus: cam-bayrgb-bus {
+                       samsung,pins = "gpg0-0", "gpg0-1", "gpg0-2", "gpg0-3",
+                                      "gpg0-4", "gpg0-5", "gpg0-6", "gpg0-7",
+                                      "gpg1-0", "gpg1-1", "gpg1-2", "gpg1-3",
+                                      "gpg1-4", "gpg1-5", "gpg1-6", "gpg1-7",
+                                      "gpg2-0", "gpg2-1";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samaung,pin-drv = <0>;
+               };
+
+               cam_port_a: cam-port-a {
+                       samsung,pins = "gph0-0", "gph0-1", "gph0-2", "gph0-3",
+                                      "gph1-0", "gph1-1", "gph1-2", "gph1-3",
+                                      "gph1-4", "gph1-5", "gph1-6", "gph1-7";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samaung,pin-drv = <0>;
+               };
+       };
+
+       pinctrl@10d10000 {
+               gpv0: gpv0 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpv1: gpv1 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpv2: gpv2 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpv3: gpv3 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpv4: gpv4 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               c2c_rxd: c2c-rxd {
+                       samsung,pins = "gpv0-0", "gpv0-1", "gpv0-2", "gpv0-3",
+                                      "gpv0-4", "gpv0-5", "gpv0-6", "gpv0-7",
+                                      "gpv1-0", "gpv1-1", "gpv1-2", "gpv1-3",
+                                      "gpv1-4", "gpv1-5", "gpv1-6", "gpv1-7";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samaung,pin-drv = <0>;
+               };
+
+               c2c_txd: c2c-txd {
+                       samsung,pins = "gpv2-0", "gpv2-1", "gpv2-2", "gpv2-3",
+                                      "gpv2-4", "gpv2-5", "gpv2-6", "gpv2-7",
+                                      "gpv3-0", "gpv3-1", "gpv3-2", "gpv3-3",
+                                      "gpv3-4", "gpv3-5", "gpv3-6", "gpv3-7";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samaung,pin-drv = <0>;
+               };
+       };
+
+       pinctrl@03680000 {
+               gpz: gpz {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               i2s0_bus: i2s0-bus {
+                       samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
+                                       "gpz-4", "gpz-5", "gpz-6";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+       };
+};
index 872ae1f93c75288823d52118bce7e716967c859f..26d856ba50a108cf3a1ba59d243a997028ecec69 100644 (file)
@@ -30,8 +30,6 @@
        i2c@12C60000 {
                samsung,i2c-sda-delay = <100>;
                samsung,i2c-max-bus-freq = <20000>;
-               gpios = <&gpb3 0 2 3 0>,
-                       <&gpb3 1 2 3 0>;
 
                eeprom@50 {
                        compatible = "samsung,s524ad0xd1";
@@ -42,8 +40,6 @@
        i2c@12C70000 {
                samsung,i2c-sda-delay = <100>;
                samsung,i2c-max-bus-freq = <20000>;
-               gpios = <&gpb3 2 2 3 0>,
-                       <&gpb3 3 2 3 0>;
 
                eeprom@51 {
                        compatible = "samsung,s524ad0xd1";
@@ -74,8 +70,6 @@
        i2c@12C80000 {
                samsung,i2c-sda-delay = <100>;
                samsung,i2c-max-bus-freq = <66000>;
-               gpios = <&gpa0 6 3 3 0>,
-                       <&gpa0 7 3 3 0>;
 
                hdmiddc@50 {
                        compatible = "samsung,exynos5-hdmiddc";
                samsung,dw-mshc-ciu-div = <3>;
                samsung,dw-mshc-sdr-timing = <2 3>;
                samsung,dw-mshc-ddr-timing = <1 2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
 
                slot@0 {
                        reg = <0>;
                        bus-width = <8>;
-                       gpios = <&gpc0 0 2 0 3>, <&gpc0 1 2 0 3>,
-                               <&gpc1 0 2 3 3>, <&gpc1 1 2 3 3>,
-                               <&gpc1 2 2 3 3>, <&gpc1 3 2 3 3>,
-                               <&gpc0 3 2 3 3>, <&gpc0 4 2 3 3>,
-                               <&gpc0 5 2 3 3>, <&gpc0 6 2 3 3>;
                };
        };
 
                samsung,dw-mshc-ciu-div = <3>;
                samsung,dw-mshc-sdr-timing = <2 3>;
                samsung,dw-mshc-ddr-timing = <1 2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
 
                slot@0 {
                        reg = <0>;
                        bus-width = <4>;
-                       samsung,cd-pinmux-gpio = <&gpc3 2 2 3 3>;
                        disable-wp;
-                       gpios = <&gpc3 0 2 0 3>, <&gpc3 1 2 0 3>,
-                               <&gpc3 3 2 3 3>, <&gpc3 4 2 3 3>,
-                               <&gpc3 5 2 3 3>, <&gpc3 6 2 3 3>,
-                               <&gpc4 3 3 3 3>, <&gpc4 3 3 3 3>,
-                               <&gpc4 5 3 3 3>, <&gpc4 6 3 3 3>;
                };
        };
 
        };
 
        spi_1: spi@12d30000 {
-               gpios = <&gpa2 4 2 3 0>,
-                       <&gpa2 6 2 3 0>,
-                       <&gpa2 7 2 3 0>;
-
                w25q80bw@0 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        spi-max-frequency = <1000000>;
 
                        controller-data {
-                               cs-gpio = <&gpa2 5 1 0 3>;
+                               cs-gpio = <&gpa2 5 0>;
                                samsung,spi-feedback-delay = <0>;
                        };
 
        };
 
        hdmi {
-               hpd-gpio = <&gpx3 7 0xf 1 3>;
+               hpd-gpio = <&gpx3 7 0>;
        };
 
        codec@11000000 {
        };
 
        i2s0: i2s@03830000 {
-               gpios = <&gpz 0 2 0 0>, <&gpz 1 2 0 0>, <&gpz 2 2 0 0>,
-                       <&gpz 3 2 0 0>, <&gpz 4 2 0 0>, <&gpz 5 2 0 0>,
-                       <&gpz 6 2 0 0>;
+               status = "okay";
        };
 
        i2s1: i2s@12D60000 {
                samsung,lane-count = <4>;
        };
 
+       display-timings {
+               native-mode = <&timing0>;
+               timing0: timing@0 {
+                       /* 1280x800 */
+                       clock-frequency = <50000>;
+                       hactive = <1280>;
+                       vactive = <800>;
+                       hfront-porch = <4>;
+                       hback-porch = <4>;
+                       hsync-len = <4>;
+                       vback-porch = <4>;
+                       vfront-porch = <4>;
+                       vsync-len = <4>;
+               };
+       };
+
        fixed-rate-clocks {
                xxti {
                        compatible = "samsung,clock-xxti";
index babd9f9b1bf9fdc955303b6c0f758ba0a35337d8..bf4744bab445635a8c8c719c443f845ad069c2a9 100644 (file)
        model = "Google Snow";
        compatible = "google,snow", "samsung,exynos5250";
 
+       aliases {
+               i2c104 = &i2c_104;
+       };
+
+       pinctrl@11400000 {
+               sd3_clk: sd3-clk {
+                       samsung,pin-drv = <0>;
+               };
+
+               sd3_cmd: sd3-cmd {
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <0>;
+               };
+
+               sd3_bus4: sd3-bus-width4 {
+                       samsung,pin-drv = <0>;
+               };
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
 
                lid-switch {
                        label = "Lid";
-                       gpios = <&gpx3 5 0 0x10000 0>;
+                       gpios = <&gpx3 5 1>;
                        linux,input-type = <5>; /* EV_SW */
                        linux,code = <0>; /* SW_LID */
                        debounce-interval = <1>;
                };
        };
 
+       i2c-arbitrator {
+               compatible = "i2c-arb-gpio-challenge";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               i2c-parent = <&{/i2c@12CA0000}>;
+
+               our-claim-gpio = <&gpf0 3 1>;
+               their-claim-gpios = <&gpe0 4 1>;
+               slew-delay-us = <10>;
+               wait-retry-us = <3000>;
+               wait-free-us = <50000>;
+
+               /* Use ID 104 as a hint that we're on physical bus 4 */
+               i2c_104: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       battery: sbs-battery@b {
+                               compatible = "sbs,sbs-battery";
+                               reg = <0xb>;
+                               sbs,poll-retry-count = <1>;
+                       };
+
+                       ec: embedded-controller {
+                               compatible = "google,cros-ec-i2c";
+                               reg = <0x1e>;
+                               interrupts = <6 0>;
+                               interrupt-parent = <&gpx1>;
+                               wakeup-source;
+
+                               keyboard-controller {
+                                       compatible = "google,cros-ec-keyb";
+                                       keypad,num-rows = <8>;
+                                       keypad,num-columns = <13>;
+                                       google,needs-ghost-filter;
+                                       linux,keymap = <0x0001003a      /* CAPSLK */
+                                                       0x0002003b      /* F1 */
+                                                       0x00030030      /* B */
+                                                       0x00040044      /* F10 */
+                                                       0x00060031      /* N */
+                                                       0x0008000d      /* = */
+                                                       0x000a0064      /* R_ALT */
+
+                                                       0x01010001      /* ESC */
+                                                       0x0102003e      /* F4 */
+                                                       0x01030022      /* G */
+                                                       0x01040041      /* F7 */
+                                                       0x01060023      /* H */
+                                                       0x01080028      /* ' */
+                                                       0x01090043      /* F9 */
+                                                       0x010b000e      /* BKSPACE */
+
+                                                       0x0200001d      /* L_CTRL */
+                                                       0x0201000f      /* TAB */
+                                                       0x0202003d      /* F3 */
+                                                       0x02030014      /* T */
+                                                       0x02040040      /* F6 */
+                                                       0x0205001b      /* ] */
+                                                       0x02060015      /* Y */
+                                                       0x02070056      /* 102ND */
+                                                       0x0208001a      /* [ */
+                                                       0x02090042      /* F8 */
+
+                                                       0x03010029      /* GRAVE */
+                                                       0x0302003c      /* F2 */
+                                                       0x03030006      /* 5 */
+                                                       0x0304003f      /* F5 */
+                                                       0x03060007      /* 6 */
+                                                       0x0308000c      /* - */
+                                                       0x030b002b      /* \ */
+
+                                                       0x04000061      /* R_CTRL */
+                                                       0x0401001e      /* A */
+                                                       0x04020020      /* D */
+                                                       0x04030021      /* F */
+                                                       0x0404001f      /* S */
+                                                       0x04050025      /* K */
+                                                       0x04060024      /* J */
+                                                       0x04080027      /* ; */
+                                                       0x04090026      /* L */
+                                                       0x040b001c      /* ENTER */
+
+                                                       0x0501002c      /* Z */
+                                                       0x0502002e      /* C */
+                                                       0x0503002f      /* V */
+                                                       0x0504002d      /* X */
+                                                       0x05050033      /* , */
+                                                       0x05060032      /* M */
+                                                       0x0507002a      /* L_SHIFT */
+                                                       0x05080035      /* / */
+                                                       0x05090034      /* . */
+                                                       0x050B0039      /* SPACE */
+
+                                                       0x06010002      /* 1 */
+                                                       0x06020004      /* 3 */
+                                                       0x06030005      /* 4 */
+                                                       0x06040003      /* 2 */
+                                                       0x06050009      /* 8 */
+                                                       0x06060008      /* 7 */
+                                                       0x0608000b      /* 0 */
+                                                       0x0609000a      /* 9 */
+                                                       0x060a0038      /* L_ALT */
+                                                       0x060b006c      /* DOWN */
+                                                       0x060c006a      /* RIGHT */
+
+                                                       0x07010010      /* Q */
+                                                       0x07020012      /* E */
+                                                       0x07030013      /* R */
+                                                       0x07040011      /* W */
+                                                       0x07050017      /* I */
+                                                       0x07060016      /* U */
+                                                       0x07070036      /* R_SHIFT */
+                                                       0x07080019      /* P */
+                                                       0x07090018      /* O */
+                                                       0x070b0067      /* UP */
+                                                       0x070c0069>;    /* LEFT */
+                               };
+                       };
+               };
+       };
+
        /*
         * On Snow we've got SIP WiFi and so can keep drive strengths low to
         * reduce EMI.
         */
        dwmmc3@12230000 {
                slot@0 {
-                       gpios = <&gpc4 0 2 0 0>, <&gpc4 1 2 3 0>,
-                               <&gpc4 3 2 3 0>, <&gpc4 4 2 3 0>,
-                               <&gpc4 5 2 3 0>, <&gpc4 6 2 3 0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>;
                };
        };
 
index 28758e5dd15cd2a69e1d198b24c7dc2a6c8546b1..98dfc3ea5c0bee94a80a08da8c5d994d84125977 100644 (file)
@@ -18,6 +18,7 @@
 */
 
 /include/ "skeleton.dtsi"
+/include/ "exynos5250-pinctrl.dtsi"
 
 / {
        compatible = "samsung,exynos5250";
                i2c6 = &i2c_6;
                i2c7 = &i2c_7;
                i2c8 = &i2c_8;
+               pinctrl0 = &pinctrl_0;
+               pinctrl1 = &pinctrl_1;
+               pinctrl2 = &pinctrl_2;
+               pinctrl3 = &pinctrl_3;
+       };
+
+       chipid@10000000 {
+               compatible = "samsung,exynos4210-chipid";
+               reg = <0x10000000 0x100>;
        };
 
        pd_gsc: gsc-power-domain@0x10044000 {
        };
 
        gic:interrupt-controller@10481000 {
-               compatible = "arm,cortex-a9-gic";
+               compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
                #interrupt-cells = <3>;
                interrupt-controller;
-               reg = <0x10481000 0x1000>, <0x10482000 0x2000>;
+               reg = <0x10481000 0x1000>,
+                     <0x10482000 0x1000>,
+                     <0x10484000 0x2000>,
+                     <0x10486000 0x2000>;
+               interrupts = <1 9 0xf04>;
+       };
+
+       timer {
+               compatible = "arm,armv7-timer";
+               interrupts = <1 13 0xf08>,
+                            <1 14 0xf08>,
+                            <1 11 0xf08>,
+                            <1 10 0xf08>;
        };
 
        combiner:interrupt-controller@10440000 {
                interrupts = <1 2>, <22 4>;
        };
 
+       pinctrl_0: pinctrl@11400000 {
+               compatible = "samsung,exynos5250-pinctrl";
+               reg = <0x11400000 0x1000>;
+               interrupts = <0 46 0>;
+
+               wakup_eint: wakeup-interrupt-controller {
+                       compatible = "samsung,exynos4210-wakeup-eint";
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 32 0>;
+               };
+       };
+
+       pinctrl_1: pinctrl@13400000 {
+               compatible = "samsung,exynos5250-pinctrl";
+               reg = <0x13400000 0x1000>;
+               interrupts = <0 45 0>;
+       };
+
+       pinctrl_2: pinctrl@10d10000 {
+               compatible = "samsung,exynos5250-pinctrl";
+               reg = <0x10d10000 0x1000>;
+               interrupts = <0 50 0>;
+       };
+
+       pinctrl_3: pinctrl@03680000 {
+               compatible = "samsung,exynos5250-pinctrl";
+               reg = <0x0368000 0x1000>;
+               interrupts = <0 47 0>;
+       };
+
        watchdog {
                compatible = "samsung,s3c2410-wdt";
                reg = <0x101D0000 0x100>;
                #size-cells = <0>;
                clocks = <&clock 294>;
                clock-names = "i2c";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c0_bus>;
        };
 
        i2c_1: i2c@12C70000 {
                #size-cells = <0>;
                clocks = <&clock 295>;
                clock-names = "i2c";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c1_bus>;
        };
 
        i2c_2: i2c@12C80000 {
                #size-cells = <0>;
                clocks = <&clock 296>;
                clock-names = "i2c";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c2_bus>;
        };
 
        i2c_3: i2c@12C90000 {
                #size-cells = <0>;
                clocks = <&clock 297>;
                clock-names = "i2c";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c3_bus>;
        };
 
        i2c_4: i2c@12CA0000 {
                #size-cells = <0>;
                clocks = <&clock 298>;
                clock-names = "i2c";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c4_bus>;
        };
 
        i2c_5: i2c@12CB0000 {
                #size-cells = <0>;
                clocks = <&clock 299>;
                clock-names = "i2c";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c5_bus>;
        };
 
        i2c_6: i2c@12CC0000 {
                #size-cells = <0>;
                clocks = <&clock 300>;
                clock-names = "i2c";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c6_bus>;
        };
 
        i2c_7: i2c@12CD0000 {
                #size-cells = <0>;
                clocks = <&clock 301>;
                clock-names = "i2c";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c7_bus>;
        };
 
        i2c_8: i2c@12CE0000 {
                #size-cells = <0>;
                clocks = <&clock 304>, <&clock 154>;
                clock-names = "spi", "spi_busclk0";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi0_bus>;
        };
 
        spi_1: spi@12d30000 {
                #size-cells = <0>;
                clocks = <&clock 305>, <&clock 155>;
                clock-names = "spi", "spi_busclk0";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi1_bus>;
        };
 
        spi_2: spi@12d40000 {
                #size-cells = <0>;
                clocks = <&clock 306>, <&clock 156>;
                clock-names = "spi", "spi_busclk0";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi2_bus>;
        };
 
        dwmmc_0: dwmmc0@12200000 {
                samsung,supports-rstclr;
                samsung,supports-secdai;
                samsung,idma-addr = <0x03000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2s0_bus>;
        };
 
        i2s1: i2s@12D60000 {
                dmas = <&pdma1 12
                        &pdma1 11>;
                dma-names = "tx", "rx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2s1_bus>;
        };
 
        i2s2: i2s@12D70000 {
                dmas = <&pdma0 12
                        &pdma0 11>;
                dma-names = "tx", "rx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2s2_bus>;
        };
 
        usb@12110000 {
                compatible = "samsung,exynos4210-ehci";
                reg = <0x12110000 0x100>;
                interrupts = <0 71 0>;
+
+               clocks = <&clock 285>;
+               clock-names = "usbhost";
        };
 
        usb@12120000 {
                compatible = "samsung,exynos4210-ohci";
                reg = <0x12120000 0x100>;
                interrupts = <0 71 0>;
+
+               clocks = <&clock 285>;
+               clock-names = "usbhost";
        };
 
        amba {
                };
        };
 
-       gpio-controllers {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               gpio-controller;
-               ranges;
-
-               gpa0: gpio-controller@11400000 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400000 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpa1: gpio-controller@11400020 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400020 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpa2: gpio-controller@11400040 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400040 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpb0: gpio-controller@11400060 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400060 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpb1: gpio-controller@11400080 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400080 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpb2: gpio-controller@114000A0 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x114000A0 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpb3: gpio-controller@114000C0 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x114000C0 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpc0: gpio-controller@114000E0 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x114000E0 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpc1: gpio-controller@11400100 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400100 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpc2: gpio-controller@11400120 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400120 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpc3: gpio-controller@11400140 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400140 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpc4: gpio-controller@114002E0 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x114002E0 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpd0: gpio-controller@11400160 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400160 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpd1: gpio-controller@11400180 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400180 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpy0: gpio-controller@114001A0 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x114001A0 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpy1: gpio-controller@114001C0 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x114001C0 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpy2: gpio-controller@114001E0 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x114001E0 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpy3: gpio-controller@11400200 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400200 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpy4: gpio-controller@11400220 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400220 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpy5: gpio-controller@11400240 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400240 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpy6: gpio-controller@11400260 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400260 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpx0: gpio-controller@11400C00 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400C00 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpx1: gpio-controller@11400C20 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400C20 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpx2: gpio-controller@11400C40 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400C40 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpx3: gpio-controller@11400C60 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x11400C60 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpe0: gpio-controller@13400000 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x13400000 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpe1: gpio-controller@13400020 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x13400020 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpf0: gpio-controller@13400040 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x13400040 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpf1: gpio-controller@13400060 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x13400060 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpg0: gpio-controller@13400080 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x13400080 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpg1: gpio-controller@134000A0 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x134000A0 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpg2: gpio-controller@134000C0 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x134000C0 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gph0: gpio-controller@134000E0 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x134000E0 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gph1: gpio-controller@13400100 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x13400100 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpv0: gpio-controller@10D10000 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x10D10000 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpv1: gpio-controller@10D10020 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x10D10020 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpv2: gpio-controller@10D10040 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x10D10060 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpv3: gpio-controller@10D10060 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x10D10080 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpv4: gpio-controller@10D10080 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x10D100C0 0x20>;
-                       #gpio-cells = <4>;
-               };
-
-               gpz: gpio-controller@03860000 {
-                       compatible = "samsung,exynos4-gpio";
-                       reg = <0x03860000 0x20>;
-                       #gpio-cells = <4>;
-               };
-       };
-
-
        gsc_0:  gsc@0x13e00000 {
                compatible = "samsung,exynos5-gsc";
                reg = <0x13e00000 0x1000>;
                        samsung,enable-mask = <1>;
                };
        };
+
+       fimd {
+               compatible = "samsung,exynos5250-fimd";
+               interrupt-parent = <&combiner>;
+               reg = <0x14400000 0x40000>;
+               interrupt-names = "fifo", "vsync", "lcd_sys";
+               interrupts = <18 4>, <18 5>, <18 6>;
+               clocks = <&clock 133>, <&clock 339>;
+               clock-names = "sclk_fimd", "fimd";
+       };
 };
diff --git a/arch/arm/boot/dts/exynos5440-sd5v1.dts b/arch/arm/boot/dts/exynos5440-sd5v1.dts
new file mode 100644 (file)
index 0000000..ef747b5
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * SAMSUNG SD5v1 board device tree source
+ *
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd.
+ *             http://www.samsung.com
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+/dts-v1/;
+/include/ "exynos5440.dtsi"
+
+/ {
+       model = "SAMSUNG SD5v1 board based on EXYNOS5440";
+       compatible = "samsung,sd5v1", "samsung,exynos5440";
+
+       chosen {
+               bootargs = "root=/dev/sda2 rw rootwait ignore_loglevel early_printk no_console_suspend mem=2048M@0x80000000 console=ttySAC0,115200";
+       };
+
+       fixed-rate-clocks {
+               xtal {
+                       compatible = "samsung,clock-xtal";
+                       clock-frequency = <50000000>;
+               };
+       };
+
+       gmac: ethernet@00230000 {
+               fixed_phy;
+               phy_addr = <1>;
+       };
+
+       spi {
+               status = "disabled";
+       };
+
+};
index a21eb4cbe893e11a7eccfe4ae440e00a92a6542a..d55042beb5c55f29739a5b8082a6bbed53e89d80 100644 (file)
        model = "SAMSUNG SSDK5440 board based on EXYNOS5440";
        compatible = "samsung,ssdk5440", "samsung,exynos5440";
 
-       memory {
-               reg = <0x80000000 0x80000000>;
-       };
-
        chosen {
-               bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x81000000,8M console=ttySAC0,115200 init=/linuxrc";
+               bootargs = "root=/dev/sda2 rw rootwait ignore_loglevel early_printk no_console_suspend mem=2048M@0x80000000 console=ttySAC0,115200";
        };
 
        spi {
index 48cc96aa0b5fb87a1db0144a6b3b26095783708d..f6b1c8973845821913215a7d59cca615ae23f482 100644 (file)
                compatible = "arm,cortex-a15-gic";
                #interrupt-cells = <3>;
                interrupt-controller;
-               reg = <0x2E1000 0x1000>, <0x2E2000 0x1000>;
+               reg =   <0x2E1000 0x1000>,
+                       <0x2E2000 0x1000>,
+                       <0x2E4000 0x2000>,
+                       <0x2E6000 0x2000>;
+               interrupts = <1 9 0xf04>;
        };
 
        cpus {
                };
        };
 
+       arm-pmu {
+               compatible = "arm,cortex-a15-pmu", "arm,cortex-a9-pmu";
+               interrupts = <0 52 4>,
+                            <0 53 4>,
+                            <0 54 4>,
+                            <0 55 4>;
+       };
+
        timer {
                compatible = "arm,cortex-a15-timer",
                             "arm,armv7-timer";
                clock-frequency = <50000000>;
        };
 
+       cpufreq@160000 {
+               compatible = "samsung,exynos5440-cpufreq";
+               reg = <0x160000 0x1000>;
+               interrupts = <0 57 0>;
+               operating-points = <
+                               /* KHz    uV */
+                               1200000 1025000
+                               1000000 975000
+                               800000  925000
+               >;
+       };
+
        serial@B0000 {
                compatible = "samsung,exynos4210-uart";
                reg = <0xB0000 0x1000>;
        pinctrl {
                compatible = "samsung,exynos5440-pinctrl";
                reg = <0xE0000 0x1000>;
+               interrupts = <0 37 0>, <0 38 0>, <0 39 0>, <0 40 0>,
+                            <0 41 0>, <0 42 0>, <0 43 0>, <0 44 0>;
                interrupt-controller;
                #interrupt-cells = <2>;
                #gpio-cells = <2>;
                clock-names = "watchdog";
        };
 
+       gmac: ethernet@00230000 {
+               compatible = "snps,dwmac-3.70a";
+               reg = <0x00230000 0x8000>;
+               interrupt-parent = <&gic>;
+               interrupts = <0 31 4>;
+               interrupt-names = "macirq";
+               phy-mode = "sgmii";
+               clocks = <&clock 25>;
+               clock-names = "stmmaceth";
+       };
+
        amba {
                #address-cells = <1>;
                #size-cells = <1>;
                interrupt-parent = <&gic>;
                ranges;
 
-               pdma0: pdma@121A0000 {
+               pdma0: pdma@00121000 {
                        compatible = "arm,pl330", "arm,primecell";
-                       reg = <0x120000 0x1000>;
-                       interrupts = <0 34 0>;
-                       clocks = <&clock 21>;
+                       reg = <0x121000 0x1000>;
+                       interrupts = <0 46 0>;
+                       clocks = <&clock 8>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
                        #dma-channels = <8>;
                        #dma-requests = <32>;
                };
 
-               pdma1: pdma@121B0000 {
+               pdma1: pdma@00120000 {
                        compatible = "arm,pl330", "arm,primecell";
-                       reg = <0x121000 0x1000>;
-                       interrupts = <0 35 0>;
-                       clocks = <&clock 21>;
+                       reg = <0x120000 0x1000>;
+                       interrupts = <0 47 0>;
+                       clocks = <&clock 8>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
                        #dma-channels = <8>;
index 035c13f9d3c05b3410dfb13ae7c50325712e550e..da0588a041317f91c20a384c8cce6794b0d1d4df 100644 (file)
                        lcdif@80030000 {
                                pinctrl-names = "default";
                                pinctrl-0 = <&lcdif_24bit_pins_a>;
-                               panel-enable-gpios = <&gpio1 18 0>;
+                               lcd-supply = <&reg_lcd_3v3>;
+                               display = <&display>;
                                status = "okay";
+
+                               display: display {
+                                       bits-per-pixel = <32>;
+                                       bus-width = <24>;
+
+                                       display-timings {
+                                               native-mode = <&timing0>;
+                                               timing0: timing0 {
+                                                       clock-frequency = <9200000>;
+                                                       hactive = <480>;
+                                                       vactive = <272>;
+                                                       hback-porch = <15>;
+                                                       hfront-porch = <8>;
+                                                       vback-porch = <12>;
+                                                       vfront-porch = <4>;
+                                                       hsync-len = <1>;
+                                                       vsync-len = <1>;
+                                                       hsync-active = <0>;
+                                                       vsync-active = <0>;
+                                                       de-active = <1>;
+                                                       pixelclk-active = <0>;
+                                               };
+                                       };
+                               };
                        };
                };
 
                        regulator-max-microvolt = <3300000>;
                        gpio = <&gpio1 29 0>;
                };
+
+               reg_lcd_3v3: lcd-3v3 {
+                       compatible = "regulator-fixed";
+                       regulator-name = "lcd-3v3";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&gpio1 18 0>;
+                       enable-active-high;
+               };
        };
 
        backlight {
index e7484e4ea659ca261149476a6e7fc6c07dd85690..d107c4af321ff374807ba7a1486d54816be708a0 100644 (file)
@@ -29,6 +29,7 @@
                                pinctrl-names = "default";
                                pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>;
                                bus-width = <4>;
+                               broken-cd;
                                status = "okay";
                        };
 
index ad2d79324cd36bfa9aced19a9ef227c0e3599971..73fd7d0887b52f4505d908902fd99aaf0fe941c8 100644 (file)
                                reg = <0x80000000 0x2000>;
                        };
 
-                       dma-apbh@80004000 {
+                       dma_apbh: dma-apbh@80004000 {
                                compatible = "fsl,imx23-dma-apbh";
                                reg = <0x80004000 0x2000>;
+                               interrupts = <0 14 20 0
+                                             13 13 13 13>;
+                               interrupt-names = "empty", "ssp0", "ssp1", "empty",
+                                                 "gpmi0", "gpmi1", "gpmi2", "gpmi3";
+                               #dma-cells = <1>;
+                               dma-channels = <8>;
                                clocks = <&clks 15>;
                        };
 
@@ -70,6 +76,8 @@
                                interrupt-names = "gpmi-dma", "bch";
                                clocks = <&clks 34>;
                                clock-names = "gpmi_io";
+                               dmas = <&dma_apbh 4>;
+                               dma-names = "rx-tx";
                                fsl,gpmi-dma-channel = <4>;
                                status = "disabled";
                        };
@@ -78,6 +86,8 @@
                                reg = <0x80010000 0x2000>;
                                interrupts = <15 14>;
                                clocks = <&clks 33>;
+                               dmas = <&dma_apbh 1>;
+                               dma-names = "rx-tx";
                                fsl,ssp-dma-channel = <1>;
                                status = "disabled";
                        };
                                status = "disabled";
                        };
 
-                       dma-apbx@80024000 {
+                       dma_apbx: dma-apbx@80024000 {
                                compatible = "fsl,imx23-dma-apbx";
                                reg = <0x80024000 0x2000>;
+                               interrupts = <7 5 9 26
+                                             19 0 25 23
+                                             60 58 9 0
+                                             0 0 0 0>;
+                               interrupt-names = "audio-adc", "audio-dac", "spdif-tx", "i2c",
+                                                 "saif0", "empty", "auart0-rx", "auart0-tx",
+                                                 "auart1-rx", "auart1-tx", "saif1", "empty",
+                                                 "empty", "empty", "empty", "empty";
+                               #dma-cells = <1>;
+                               dma-channels = <16>;
                                clocks = <&clks 16>;
                        };
 
                                reg = <0x80034000 0x2000>;
                                interrupts = <2 20>;
                                clocks = <&clks 33>;
+                               dmas = <&dma_apbh 2>;
+                               dma-names = "rx-tx";
                                fsl,ssp-dma-channel = <2>;
                                status = "disabled";
                        };
 
                        saif0: saif@80042000 {
                                reg = <0x80042000 0x2000>;
+                               dmas = <&dma_apbx 4>;
+                               dma-names = "rx-tx";
                                status = "disabled";
                        };
 
 
                        saif1: saif@80046000 {
                                reg = <0x80046000 0x2000>;
+                               dmas = <&dma_apbx 10>;
+                               dma-names = "rx-tx";
                                status = "disabled";
                        };
 
                        audio-out@80048000 {
                                reg = <0x80048000 0x2000>;
+                               dmas = <&dma_apbx 1>;
+                               dma-names = "tx";
                                status = "disabled";
                        };
 
                        audio-in@8004c000 {
                                reg = <0x8004c000 0x2000>;
+                               dmas = <&dma_apbx 0>;
+                               dma-names = "rx";
                                status = "disabled";
                        };
 
 
                        spdif@80054000 {
                                reg = <0x80054000 2000>;
+                               dmas = <&dma_apbx 2>;
+                               dma-names = "tx";
                                status = "disabled";
                        };
 
                        i2c@80058000 {
                                reg = <0x80058000 0x2000>;
+                               dmas = <&dma_apbx 3>;
+                               dma-names = "rx-tx";
                                status = "disabled";
                        };
 
                                reg = <0x8006c000 0x2000>;
                                interrupts = <24 25 23>;
                                clocks = <&clks 32>;
+                               dmas = <&dma_apbx 6>, <&dma_apbx 7>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
                                reg = <0x8006e000 0x2000>;
                                interrupts = <59 60 58>;
                                clocks = <&clks 32>;
+                               dmas = <&dma_apbx 8>, <&dma_apbx 9>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
index 6d8865bfb4b7cee90b12910d98f46a1e6acda564..3d905d16cbec6f3d3a87f62b6e597b7fe7f67705 100644 (file)
                                pinctrl-names = "default";
                                pinctrl-0 = <&lcdif_16bit_pins_a
                                                &lcdif_pins_apf28dev>;
+                               display = <&display>;
                                status = "okay";
+
+                               display: display {
+                                       bits-per-pixel = <16>;
+                                       bus-width = <16>;
+
+                                       display-timings {
+                                               native-mode = <&timing0>;
+                                               timing0: timing0 {
+                                                       clock-frequency = <33000033>;
+                                                       hactive = <800>;
+                                                       vactive = <480>;
+                                                       hback-porch = <96>;
+                                                       hfront-porch = <96>;
+                                                       vback-porch = <20>;
+                                                       vfront-porch = <21>;
+                                                       hsync-len = <64>;
+                                                       vsync-len = <4>;
+                                                       hsync-active = <1>;
+                                                       vsync-active = <1>;
+                                                       de-active = <1>;
+                                                       pixelclk-active = <0>;
+                                               };
+                                       };
+                               };
                        };
                };
 
index 5171667a7763f47cc967efdf7481e0eb73e4090c..43bf3c796cba9cfef5d45032ebcf05b6807dcd4c 100644 (file)
                                pinctrl-names = "default";
                                pinctrl-0 = <&lcdif_24bit_pins_a
                                             &lcdif_pins_apx4>;
+                               display = <&display>;
                                status = "okay";
+
+                               display: display {
+                                       bits-per-pixel = <32>;
+                                       bus-width = <24>;
+
+                                       display-timings {
+                                               native-mode = <&timing0>;
+                                               timing0: timing0 {
+                                                       clock-frequency = <30000000>;
+                                                       hactive = <800>;
+                                                       vactive = <480>;
+                                                       hback-porch = <88>;
+                                                       hfront-porch = <40>;
+                                                       vback-porch = <32>;
+                                                       vfront-porch = <13>;
+                                                       hsync-len = <48>;
+                                                       vsync-len = <3>;
+                                                       hsync-active = <1>;
+                                                       vsync-active = <1>;
+                                                       de-active = <1>;
+                                                       pixelclk-active = <0>;
+                                               };
+                                       };
+                               };
                        };
                };
 
index a0d3e9f1738e097326594f2291283b15ebf1897d..063e62059890e4f07885e66f02327dd58123ed6c 100644 (file)
@@ -30,7 +30,6 @@
                                        reg = <0>;
                                        fsl,pinmux-ids = <
                                                0x0073 /* MX28_PAD_GPMI_D7__GPIO_0_7 */
-                                               0x1153 /* MX28_PAD_LCD_D22__GPIO_1_21 */
                                                0x1163 /* MX28_PAD_LCD_D22__GPIO_1_22 */
                                                0x1173 /* MX28_PAD_LCD_D22__GPIO_1_23 */
                                                0x2153 /* MX28_PAD_SSP2_D5__GPIO_2_21 */
                                        fsl,voltage = <1>;
                                        fsl,pull-up = <0>;
                                };
+
+                               w1_gpio_pins: w1-gpio@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x1153 /* MX28_PAD_LCD_D21__GPIO_1_21 */
+                                       >;
+                                       fsl,drive-strength = <1>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>; /* 0 will enable the keeper */
+                               };
                        };
 
                        lcdif@80030000 {
                                pinctrl-names = "default";
                                pinctrl-0 = <&lcdif_18bit_pins_cfa10049
                                             &lcdif_pins_cfa10049>;
+                               display = <&display>;
                                status = "okay";
+
+                               display: display {
+                                       bits-per-pixel = <32>;
+                                       bus-width = <18>;
+
+                                       display-timings {
+                                               native-mode = <&timing0>;
+                                               timing0: timing0 {
+                                                       clock-frequency = <9216000>;
+                                                       hactive = <320>;
+                                                       vactive = <480>;
+                                                       hback-porch = <2>;
+                                                       hfront-porch = <2>;
+                                                       vback-porch = <2>;
+                                                       vfront-porch = <2>;
+                                                       hsync-len = <15>;
+                                                       vsync-len = <15>;
+                                                       hsync-active = <0>;
+                                                       vsync-active = <0>;
+                                                       de-active = <1>;
+                                                       pixelclk-active = <1>;
+                                               };
+                                       };
+                               };
                        };
                };
 
                        usbphy1: usbphy@8007e000 {
                                status = "okay";
                        };
+
+                       lradc@80050000 {
+                               status = "okay";
+                               fsl,lradc-touchscreen-wires = <4>;
+                       };
                };
        };
 
                pwms = <&pwm 3 5000000>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
+
+       };
+
+       onewire@0 {
+               compatible = "w1-gpio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&w1_gpio_pins>;
+               status = "okay";
+               gpios = <&gpio1 21 0>;
        };
 };
index 2da316e04409f103c44fcf4ff35fe5dc48a93924..3637bf3b1d597c6690bd34c5f7e4b8109104043d 100644 (file)
                                pinctrl-names = "default";
                                pinctrl-0 = <&lcdif_24bit_pins_a
                                             &lcdif_pins_evk>;
-                               panel-enable-gpios = <&gpio3 30 0>;
+                               lcd-supply = <&reg_lcd_3v3>;
+                               display = <&display>;
                                status = "okay";
+
+                               display: display {
+                                       bits-per-pixel = <32>;
+                                       bus-width = <24>;
+
+                                       display-timings {
+                                               native-mode = <&timing0>;
+                                               timing0: timing0 {
+                                                       clock-frequency = <33500000>;
+                                                       hactive = <800>;
+                                                       vactive = <480>;
+                                                       hback-porch = <89>;
+                                                       hfront-porch = <164>;
+                                                       vback-porch = <23>;
+                                                       vfront-porch = <10>;
+                                                       hsync-len = <10>;
+                                                       vsync-len = <10>;
+                                                       hsync-active = <0>;
+                                                       vsync-active = <0>;
+                                                       de-active = <1>;
+                                                       pixelclk-active = <0>;
+                                               };
+                                       };
+                               };
                        };
 
                        can0: can@80032000 {
                        gpio = <&gpio3 8 0>;
                        enable-active-high;
                };
+
+               reg_lcd_3v3: lcd-3v3 {
+                       compatible = "regulator-fixed";
+                       regulator-name = "lcd-3v3";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&gpio3 30 0>;
+                       enable-active-high;
+               };
        };
 
        sound {
index fd36e1cca1042306476c54d4038603780af358a1..5aa44e05c9f5dd4df4204ea5af31601c234cf8ee 100644 (file)
                                pinctrl-names = "default";
                                pinctrl-0 = <&lcdif_24bit_pins_a
                                             &lcdif_pins_m28>;
+                               display = <&display>;
                                status = "okay";
+
+                               display: display {
+                                       bits-per-pixel = <16>;
+                                       bus-width = <18>;
+
+                                       display-timings {
+                                               native-mode = <&timing0>;
+                                               timing0: timing0 {
+                                                       clock-frequency = <33260000>;
+                                                       hactive = <800>;
+                                                       vactive = <480>;
+                                                       hback-porch = <0>;
+                                                       hfront-porch = <256>;
+                                                       vback-porch = <0>;
+                                                       vfront-porch = <45>;
+                                                       hsync-len = <1>;
+                                                       vsync-len = <1>;
+                                                       hsync-active = <0>;
+                                                       vsync-active = <0>;
+                                                       de-active = <1>;
+                                                       pixelclk-active = <1>;
+                                               };
+                                       };
+                               };
                        };
 
                        can0: can@80032000 {
                        phy-mode = "rmii";
                        pinctrl-names = "default";
                        pinctrl-0 = <&mac0_pins_a>;
+                       clocks = <&clks 57>, <&clks 57>;
+                       clock-names = "ipg", "ahb";
                        status = "okay";
                };
 
index 64af2381c1b0cc43a87f2fccca21ca454f036917..600f7cb51f3e58ae78f88649f3b52b12c170e5d1 100644 (file)
                        hsadc@80002000 {
                                reg = <0x80002000 0x2000>;
                                interrupts = <13 87>;
+                               dmas = <&dma_apbh 12>;
+                               dma-names = "rx";
                                status = "disabled";
                        };
 
-                       dma-apbh@80004000 {
+                       dma_apbh: dma-apbh@80004000 {
                                compatible = "fsl,imx28-dma-apbh";
                                reg = <0x80004000 0x2000>;
+                               interrupts = <82 83 84 85
+                                             88 88 88 88
+                                             88 88 88 88
+                                             87 86 0 0>;
+                               interrupt-names = "ssp0", "ssp1", "ssp2", "ssp3",
+                                                 "gpmi0", "gmpi1", "gpmi2", "gmpi3",
+                                                 "gpmi4", "gmpi5", "gpmi6", "gmpi7",
+                                                 "hsadc", "lcdif", "empty", "empty";
+                               #dma-cells = <1>;
+                               dma-channels = <16>;
                                clocks = <&clks 25>;
                        };
 
@@ -86,6 +98,8 @@
                                interrupt-names = "gpmi-dma", "bch";
                                clocks = <&clks 50>;
                                clock-names = "gpmi_io";
+                               dmas = <&dma_apbh 4>;
+                               dma-names = "rx-tx";
                                fsl,gpmi-dma-channel = <4>;
                                status = "disabled";
                        };
                                reg = <0x80010000 0x2000>;
                                interrupts = <96 82>;
                                clocks = <&clks 46>;
+                               dmas = <&dma_apbh 0>;
+                               dma-names = "rx-tx";
                                fsl,ssp-dma-channel = <0>;
                                status = "disabled";
                        };
                                reg = <0x80012000 0x2000>;
                                interrupts = <97 83>;
                                clocks = <&clks 47>;
+                               dmas = <&dma_apbh 1>;
+                               dma-names = "rx-tx";
                                fsl,ssp-dma-channel = <1>;
                                status = "disabled";
                        };
                                reg = <0x80014000 0x2000>;
                                interrupts = <98 84>;
                                clocks = <&clks 48>;
+                               dmas = <&dma_apbh 2>;
+                               dma-names = "rx-tx";
                                fsl,ssp-dma-channel = <2>;
                                status = "disabled";
                        };
                                reg = <0x80016000 0x2000>;
                                interrupts = <99 85>;
                                clocks = <&clks 49>;
+                               dmas = <&dma_apbh 3>;
+                               dma-names = "rx-tx";
                                fsl,ssp-dma-channel = <3>;
                                status = "disabled";
                        };
                                status = "disabled";
                        };
 
-                       dma-apbx@80024000 {
+                       dma_apbx: dma-apbx@80024000 {
                                compatible = "fsl,imx28-dma-apbx";
                                reg = <0x80024000 0x2000>;
+                               interrupts = <78 79 66 0
+                                             80 81 68 69
+                                             70 71 72 73
+                                             74 75 76 77>;
+                               interrupt-names = "auart4-rx", "aurat4-tx", "spdif-tx", "empty",
+                                                 "saif0", "saif1", "i2c0", "i2c1",
+                                                 "auart0-rx", "auart0-tx", "auart1-rx", "auart1-tx",
+                                                 "auart2-rx", "auart2-tx", "auart3-rx", "auart3-tx";
+                               #dma-cells = <1>;
+                               dma-channels = <16>;
                                clocks = <&clks 26>;
                        };
 
                                reg = <0x80030000 0x2000>;
                                interrupts = <38 86>;
                                clocks = <&clks 55>;
+                               dmas = <&dma_apbh 13>;
+                               dma-names = "rx";
                                status = "disabled";
                        };
 
                                reg = <0x80042000 0x2000>;
                                interrupts = <59 80>;
                                clocks = <&clks 53>;
+                               dmas = <&dma_apbx 4>;
+                               dma-names = "rx-tx";
                                fsl,saif-dma-channel = <4>;
                                status = "disabled";
                        };
                                reg = <0x80046000 0x2000>;
                                interrupts = <58 81>;
                                clocks = <&clks 54>;
+                               dmas = <&dma_apbx 5>;
+                               dma-names = "rx-tx";
                                fsl,saif-dma-channel = <5>;
                                status = "disabled";
                        };
                        spdif@80054000 {
                                reg = <0x80054000 0x2000>;
                                interrupts = <45 66>;
+                               dmas = <&dma_apbx 2>;
+                               dma-names = "tx";
                                status = "disabled";
                        };
 
                                reg = <0x80058000 0x2000>;
                                interrupts = <111 68>;
                                clock-frequency = <100000>;
+                               dmas = <&dma_apbx 6>;
+                               dma-names = "rx-tx";
                                fsl,i2c-dma-channel = <6>;
                                status = "disabled";
                        };
                                reg = <0x8005a000 0x2000>;
                                interrupts = <110 69>;
                                clock-frequency = <100000>;
+                               dmas = <&dma_apbx 7>;
+                               dma-names = "rx-tx";
                                fsl,i2c-dma-channel = <7>;
                                status = "disabled";
                        };
                                compatible = "fsl,imx28-auart", "fsl,imx23-auart";
                                reg = <0x8006a000 0x2000>;
                                interrupts = <112 70 71>;
+                               dmas = <&dma_apbx 8>, <&dma_apbx 9>;
+                               dma-names = "rx", "tx";
                                fsl,auart-dma-channel = <8 9>;
                                clocks = <&clks 45>;
                                status = "disabled";
                                compatible = "fsl,imx28-auart", "fsl,imx23-auart";
                                reg = <0x8006c000 0x2000>;
                                interrupts = <113 72 73>;
+                               dmas = <&dma_apbx 10>, <&dma_apbx 11>;
+                               dma-names = "rx", "tx";
                                clocks = <&clks 45>;
                                status = "disabled";
                        };
                                compatible = "fsl,imx28-auart", "fsl,imx23-auart";
                                reg = <0x8006e000 0x2000>;
                                interrupts = <114 74 75>;
+                               dmas = <&dma_apbx 12>, <&dma_apbx 13>;
+                               dma-names = "rx", "tx";
                                clocks = <&clks 45>;
                                status = "disabled";
                        };
                                compatible = "fsl,imx28-auart", "fsl,imx23-auart";
                                reg = <0x80070000 0x2000>;
                                interrupts = <115 76 77>;
+                               dmas = <&dma_apbx 14>, <&dma_apbx 15>;
+                               dma-names = "rx", "tx";
                                clocks = <&clks 45>;
                                status = "disabled";
                        };
                                compatible = "fsl,imx28-auart", "fsl,imx23-auart";
                                reg = <0x80072000 0x2000>;
                                interrupts = <116 78 79>;
+                               dmas = <&dma_apbx 0>, <&dma_apbx 1>;
+                               dma-names = "rx", "tx";
                                clocks = <&clks 45>;
                                status = "disabled";
                        };
                        compatible = "fsl,imx28-fec";
                        reg = <0x800f0000 0x4000>;
                        interrupts = <101>;
-                       clocks = <&clks 57>, <&clks 57>;
-                       clock-names = "ipg", "ahb";
+                       clocks = <&clks 57>, <&clks 57>, <&clks 64>;
+                       clock-names = "ipg", "ahb", "enet_out";
                        status = "disabled";
                };
 
index 3cca7d39529dc3ed4d7efb4fe19cbb11a51ae635..9e8296e4c3434afdf61004e62e2af83c9bbc8490 100644 (file)
                interrupt-parent = <&intc>;
                ranges;
 
-               dma-apbh@00110000 {
+               dma_apbh: dma-apbh@00110000 {
                        compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
                        reg = <0x00110000 0x2000>;
+                       interrupts = <0 13 0x04>, <0 13 0x04>, <0 13 0x04>, <0 13 0x04>;
+                       interrupt-names = "gpmi0", "gpmi1", "gpmi2", "gpmi3";
+                       #dma-cells = <1>;
+                       dma-channels = <4>;
                        clocks = <&clks 106>;
                };
 
@@ -83,6 +87,8 @@
                                 <&clks 150>, <&clks 149>;
                        clock-names = "gpmi_io", "gpmi_apb", "gpmi_bch",
                                      "gpmi_bch_apb", "per1_bch";
+                       dmas = <&dma_apbh 0>;
+                       dma-names = "rx-tx";
                        fsl,gpmi-dma-channel = <0>;
                        status = "disabled";
                };
index 761c4b69b25b2c3a661322a96ee5c7f41c839c70..37aa7487d4d86791be2ad6f51065708f31fcaa80 100644 (file)
                };
        };
 
+       pmu {
+               compatible = "arm,arm1136-pmu";
+               interrupts = <3>;
+       };
+
        soc {
                compatible = "ti,omap-infra";
                mpu {
                        reg = <0x480FE000 0x1000>;
                };
 
+               sdma: dma-controller@48056000 {
+                       compatible = "ti,omap2430-sdma", "ti,omap2420-sdma";
+                       reg = <0x48056000 0x1000>;
+                       interrupts = <12>,
+                                    <13>,
+                                    <14>,
+                                    <15>;
+                       #dma-cells = <1>;
+                       #dma-channels = <32>;
+                       #dma-requests = <64>;
+               };
+
                uart1: serial@4806a000 {
                        compatible = "ti,omap2-uart";
                        ti,hwmods = "uart1";
                };
 
                timer2: timer@4802a000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap2420-timer";
                        reg = <0x4802a000 0x400>;
                        interrupts = <38>;
                        ti,hwmods = "timer2";
                };
 
                timer3: timer@48078000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap2420-timer";
                        reg = <0x48078000 0x400>;
                        interrupts = <39>;
                        ti,hwmods = "timer3";
                };
 
                timer4: timer@4807a000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap2420-timer";
                        reg = <0x4807a000 0x400>;
                        interrupts = <40>;
                        ti,hwmods = "timer4";
                };
 
                timer5: timer@4807c000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap2420-timer";
                        reg = <0x4807c000 0x400>;
                        interrupts = <41>;
                        ti,hwmods = "timer5";
                };
 
                timer6: timer@4807e000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap2420-timer";
                        reg = <0x4807e000 0x400>;
                        interrupts = <42>;
                        ti,hwmods = "timer6";
                };
 
                timer7: timer@48080000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap2420-timer";
                        reg = <0x48080000 0x400>;
                        interrupts = <43>;
                        ti,hwmods = "timer7";
                };
 
                timer8: timer@48082000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap2420-timer";
                        reg = <0x48082000 0x400>;
                        interrupts = <44>;
                        ti,hwmods = "timer8";
                };
 
                timer9: timer@48084000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap2420-timer";
                        reg = <0x48084000 0x400>;
                        interrupts = <45>;
                        ti,hwmods = "timer9";
                };
 
                timer10: timer@48086000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap2420-timer";
                        reg = <0x48086000 0x400>;
                        interrupts = <46>;
                        ti,hwmods = "timer10";
                };
 
                timer11: timer@48088000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap2420-timer";
                        reg = <0x48088000 0x400>;
                        interrupts = <47>;
                        ti,hwmods = "timer11";
                };
 
                timer12: timer@4808a000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap2420-timer";
                        reg = <0x4808a000 0x400>;
                        interrupts = <48>;
                        ti,hwmods = "timer12";
index 9b0d07746cba8fc4c8c9f3d89f8a7660a098197a..68282ee13e2692770c1f1222016e369a0f4ed6d3 100644 (file)
                reg = <0x80000000 0x4000000>; /* 64 MB */
        };
 };
+
+&gpmc {
+       ranges = <0 0 0x08000000 0x04000000>;
+
+       nor@0,0 {
+               compatible = "cfi-flash";
+               linux,mtd-name= "intel,ge28f256l18b85";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0 0 0x04000000>;
+               bank-width = <2>;
+
+               gpmc,mux-add-data = <2>;
+               gpmc,cs-on-ns = <10>;
+               gpmc,cs-rd-off-ns = <160>;
+               gpmc,cs-wr-off-ns = <160>;
+               gpmc,adv-on-ns = <20>;
+               gpmc,adv-rd-off-ns = <50>;
+               gpmc,adv-wr-off-ns = <50>;
+               gpmc,oe-on-ns = <60>;
+               gpmc,oe-off-ns = <120>;
+               gpmc,we-on-ns = <60>;
+               gpmc,we-off-ns = <120>;
+               gpmc,rd-cycle-ns = <170>;
+               gpmc,wr-cycle-ns = <170>;
+               gpmc,access-ns = <150>;
+               gpmc,page-burst-access-ns = <10>;
+
+               partition@0 {
+                       label = "bootloader";
+                       reg = <0 0x20000>;
+               };
+               partition@0x20000 {
+                       label = "params";
+                       reg = <0x20000 0x20000>;
+               };
+               partition@0x40000 {
+                       label = "kernel";
+                       reg = <0x40000 0x200000>;
+               };
+               partition@0x240000 {
+                       label = "file-system";
+                       reg = <0x240000 0x3dc0000>;
+               };
+       };
+};
index af6560908905595dbd2a535c013948afa7ef7637..da5b285b73bedd96c1c4abf462f408ce394e60f9 100644 (file)
                        pinctrl-single,function-mask = <0x3f>;
                };
 
+               gpio1: gpio@48018000 {
+                       compatible = "ti,omap2-gpio";
+                       reg = <0x48018000 0x200>;
+                       interrupts = <29>;
+                       ti,hwmods = "gpio1";
+                       ti,gpio-always-on;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+               };
+
+               gpio2: gpio@4801a000 {
+                       compatible = "ti,omap2-gpio";
+                       reg = <0x4801a000 0x200>;
+                       interrupts = <30>;
+                       ti,hwmods = "gpio2";
+                       ti,gpio-always-on;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+               };
+
+               gpio3: gpio@4801c000 {
+                       compatible = "ti,omap2-gpio";
+                       reg = <0x4801c000 0x200>;
+                       interrupts = <31>;
+                       ti,hwmods = "gpio3";
+                       ti,gpio-always-on;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+               };
+
+               gpio4: gpio@4801e000 {
+                       compatible = "ti,omap2-gpio";
+                       reg = <0x4801e000 0x200>;
+                       interrupts = <32>;
+                       ti,hwmods = "gpio4";
+                       ti,gpio-always-on;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+               };
+
+               gpmc: gpmc@6800a000 {
+                       compatible = "ti,omap2420-gpmc";
+                       reg = <0x6800a000 0x1000>;
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       interrupts = <20>;
+                       gpmc,num-cs = <8>;
+                       gpmc,num-waitpins = <4>;
+                       ti,hwmods = "gpmc";
+               };
+
                mcbsp1: mcbsp@48074000 {
                        compatible = "ti,omap2420-mcbsp";
                        reg = <0x48074000 0xff>;
@@ -37,6 +96,9 @@
                                     <60>; /* RX interrupt */
                        interrupt-names = "tx", "rx";
                        ti,hwmods = "mcbsp1";
+                       dmas = <&sdma 31>,
+                              <&sdma 32>;
+                       dma-names = "tx", "rx";
                };
 
                mcbsp2: mcbsp@48076000 {
                                     <63>; /* RX interrupt */
                        interrupt-names = "tx", "rx";
                        ti,hwmods = "mcbsp2";
+                       dmas = <&sdma 33>,
+                              <&sdma 34>;
+                       dma-names = "tx", "rx";
                };
 
                timer1: timer@48028000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap2420-timer";
                        reg = <0x48028000 0x400>;
                        interrupts = <37>;
                        ti,hwmods = "timer1";
index c3924457c9b62de16b2709434c98e99f280b3c47..054bc4439568a917a8d28c0c5ebbd5c6dffaf00c 100644 (file)
                        pinctrl-single,function-mask = <0x3f>;
                };
 
+               gpio1: gpio@4900c000 {
+                       compatible = "ti,omap2-gpio";
+                       reg = <0x4900c000 0x200>;
+                       interrupts = <29>;
+                       ti,hwmods = "gpio1";
+                       ti,gpio-always-on;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+               };
+
+               gpio2: gpio@4900e000 {
+                       compatible = "ti,omap2-gpio";
+                       reg = <0x4900e000 0x200>;
+                       interrupts = <30>;
+                       ti,hwmods = "gpio2";
+                       ti,gpio-always-on;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+               };
+
+               gpio3: gpio@49010000 {
+                       compatible = "ti,omap2-gpio";
+                       reg = <0x49010000 0x200>;
+                       interrupts = <31>;
+                       ti,hwmods = "gpio3";
+                       ti,gpio-always-on;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+               };
+
+               gpio4: gpio@49012000 {
+                       compatible = "ti,omap2-gpio";
+                       reg = <0x49012000 0x200>;
+                       interrupts = <32>;
+                       ti,hwmods = "gpio4";
+                       ti,gpio-always-on;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+               };
+
+               gpio5: gpio@480b6000 {
+                       compatible = "ti,omap2-gpio";
+                       reg = <0x480b6000 0x200>;
+                       interrupts = <33>;
+                       ti,hwmods = "gpio5";
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+               };
+
+               gpmc: gpmc@6e000000 {
+                       compatible = "ti,omap2430-gpmc";
+                       reg = <0x6e000000 0x1000>;
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       interrupts = <20>;
+                       gpmc,num-cs = <8>;
+                       gpmc,num-waitpins = <4>;
+                       ti,hwmods = "gpmc";
+               };
+
                mcbsp1: mcbsp@48074000 {
                        compatible = "ti,omap2430-mcbsp";
                        reg = <0x48074000 0xff>;
                        interrupt-names = "common", "tx", "rx", "rx_overflow";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp1";
+                       dmas = <&sdma 31>,
+                              <&sdma 32>;
+                       dma-names = "tx", "rx";
                };
 
                mcbsp2: mcbsp@48076000 {
                        interrupt-names = "common", "tx", "rx";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp2";
+                       dmas = <&sdma 33>,
+                              <&sdma 34>;
+                       dma-names = "tx", "rx";
                };
 
                mcbsp3: mcbsp@4808c000 {
                        interrupt-names = "common", "tx", "rx";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp3";
+                       dmas = <&sdma 17>,
+                              <&sdma 18>;
+                       dma-names = "tx", "rx";
                };
 
                mcbsp4: mcbsp@4808e000 {
                        interrupt-names = "common", "tx", "rx";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp4";
+                       dmas = <&sdma 19>,
+                              <&sdma 20>;
+                       dma-names = "tx", "rx";
                };
 
                mcbsp5: mcbsp@48096000 {
                        interrupt-names = "common", "tx", "rx";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp5";
+                       dmas = <&sdma 21>,
+                              <&sdma 22>;
+                       dma-names = "tx", "rx";
                };
 
                timer1: timer@49018000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap2420-timer";
                        reg = <0x49018000 0x400>;
                        interrupts = <37>;
                        ti,hwmods = "timer1";
index 3705a81c1fc25eac3b03d4b90be08f6fef7387f9..5a31964ae3396e0fa34ad632003ad8d1306f355b 100644 (file)
        model = "TI OMAP3 BeagleBoard xM";
        compatible = "ti,omap3-beagle-xm, ti,omap3-beagle", "ti,omap3";
 
+       cpus {
+               cpu@0 {
+                       cpu0-supply = <&vcc>;
+               };
+       };
+
        memory {
                device_type = "memory";
                reg = <0x80000000 0x20000000>; /* 512 MB */
 
        leds {
                compatible = "gpio-leds";
-               pmu_stat {
-                       label = "beagleboard::pmu_stat";
-                       gpios = <&twl_gpio 19 0>; /* LEDB */
-               };
 
                heartbeat {
                        label = "beagleboard::usr0";
                };
        };
 
+       pwmleds {
+               compatible = "pwm-leds";
+
+               pmu_stat {
+                       label = "beagleboard::pmu_stat";
+                       pwms = <&twl_pwmled 1 7812500>;
+                       max-brightness = <127>;
+               };
+       };
+
        sound {
                compatible = "ti,omap-twl4030";
                ti,model = "omap3beagle";
         */
        ti,pulldowns = <0x03a1c4>;
 };
+
+&usb_otg_hs {
+       interface-type = <0>;
+       mode = <3>;
+       power = <50>;
+};
index 02d23f15fd867fafe2172a1eb75e60beab51a5c7..6eec69997607563e948575ade339b4f1aef3fd2b 100644 (file)
@@ -7,12 +7,18 @@
  */
 /dts-v1/;
 
-/include/ "omap3.dtsi"
+/include/ "omap34xx.dtsi"
 
 / {
        model = "TI OMAP3 BeagleBoard";
        compatible = "ti,omap3-beagle", "ti,omap3";
 
+       cpus {
+               cpu@0 {
+                       cpu0-supply = <&vcc>;
+               };
+       };
+
        memory {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
diff --git a/arch/arm/boot/dts/omap3-devkit8000.dts b/arch/arm/boot/dts/omap3-devkit8000.dts
new file mode 100644 (file)
index 0000000..8a5cdcc
--- /dev/null
@@ -0,0 +1,169 @@
+/*
+ * Author: Anil Kumar <anilk4.v@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/dts-v1/;
+
+/include/ "omap34xx.dtsi"
+/ {
+       model = "TimLL OMAP3 Devkit8000";
+       compatible = "timll,omap3-devkit8000", "ti,omap3";
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x10000000>;  /* 256 MB */
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               heartbeat {
+                       label = "devkit8000::led1";
+                       gpios = <&gpio6 26 0>;  /* 186 -> LED1 */
+                       default-state = "on";
+                       linux,default-trigger = "heartbeat";
+               };
+
+               mmc {
+                       label = "devkit8000::led2";
+                       gpios = <&gpio6 3 0>;   /* 163 -> LED2 */
+                       default-state = "on";
+                       linux,default-trigger = "none";
+               };
+
+               usr {
+                       label = "devkit8000::led3";
+                       gpios = <&gpio6 4 0>;   /* 164 -> LED3 */
+                       default-state = "on";
+                       linux,default-trigger = "usr";
+                };
+
+       };
+
+       sound {
+               compatible = "ti,omap-twl4030";
+               ti,model = "devkit8000";
+
+               ti,mcbsp = <&mcbsp2>;
+               ti,codec = <&twl_audio>;
+               ti,audio-routing =
+                       "Ext Spk", "PREDRIVEL",
+                       "Ext Spk", "PREDRIVER",
+                       "MAINMIC", "Main Mic",
+                       "Main Mic", "Mic Bias 1";
+       };
+};
+
+&i2c1 {
+       clock-frequency = <2600000>;
+
+       twl: twl@48 {
+               reg = <0x48>;
+               interrupts = <7>;       /* SYS_NIRQ cascaded to intc */
+
+               twl_audio: audio {
+                       compatible = "ti,twl4030-audio";
+                       codec {
+                       };
+               };
+       };
+};
+
+&i2c2 {
+       status = "disabled";
+};
+
+&i2c3 {
+       status = "disabled";
+};
+
+/include/ "twl4030.dtsi"
+
+&mmc1 {
+       vmmc-supply = <&vmmc1>;
+       vmmc_aux-supply = <&vsim>;
+       bus-width = <8>;
+};
+
+&mmc2 {
+       status = "disabled";
+};
+
+&mmc3 {
+       status = "disabled";
+};
+
+&wdt2 {
+       status = "disabled";
+};
+
+&mcbsp1 {
+       status = "disabled";
+};
+
+&mcbsp3 {
+       status = "disabled";
+};
+
+&mcbsp4 {
+       status = "disabled";
+};
+
+&mcbsp5 {
+       status = "disabled";
+};
+
+&gpmc {
+       ranges = <0 0 0x30000000 0x04>;       /* CS0: NAND */
+
+       nand@0,0 {
+               reg = <0 0 0>; /* CS0, offset 0 */
+               nand-bus-width = <16>;
+
+               gpmc,sync-clk = <0>;
+               gpmc,cs-on = <0>;
+               gpmc,cs-rd-off = <44>;
+               gpmc,cs-wr-off = <44>;
+               gpmc,adv-on = <6>;
+               gpmc,adv-rd-off = <34>;
+               gpmc,adv-wr-off = <44>;
+               gpmc,we-off = <40>;
+               gpmc,oe-off = <54>;
+               gpmc,access = <64>;
+               gpmc,rd-cycle = <82>;
+               gpmc,wr-cycle = <82>;
+               gpmc,wr-access = <40>;
+               gpmc,wr-data-mux-bus = <0>;
+
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               x-loader@0 {
+                       label = "X-Loader";
+                       reg = <0 0x80000>;
+               };
+
+               bootloaders@80000 {
+                       label = "U-Boot";
+                       reg = <0x80000 0x1e0000>;
+               };
+
+               bootloaders_env@260000 {
+                       label = "U-Boot Env";
+                       reg = <0x260000 0x20000>;
+               };
+
+               kernel@280000 {
+                       label = "Kernel";
+                       reg = <0x280000 0x400000>;
+               };
+
+               filesystem@680000 {
+                       label = "File System";
+                       reg = <0x680000 0xf980000>;
+               };
+       };
+};
index e8ba1c247a39bf28622276e07a75bf6137baf463..05f51e10ddd6730fcccc83a594f74cb550e7f181 100644 (file)
@@ -7,12 +7,18 @@
  */
 /dts-v1/;
 
-/include/ "omap3.dtsi"
+/include/ "omap34xx.dtsi"
 
 / {
        model = "TI OMAP3 EVM (OMAP3530, AM/DM37x)";
        compatible = "ti,omap3-evm", "ti,omap3";
 
+       cpus {
+               cpu@0 {
+                       cpu0-supply = <&vcc>;
+               };
+       };
+
        memory {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
@@ -59,3 +65,9 @@
 &twl_gpio {
        ti,use-leds;
 };
+
+&usb_otg_hs {
+       interface-type = <0>;
+       mode = <3>;
+       power = <50>;
+};
diff --git a/arch/arm/boot/dts/omap3-igep.dtsi b/arch/arm/boot/dts/omap3-igep.dtsi
new file mode 100644 (file)
index 0000000..f8fe3b7
--- /dev/null
@@ -0,0 +1,122 @@
+/*
+ * Device Tree Source for IGEP Technology devices
+ *
+ * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk>
+ * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/dts-v1/;
+
+/include/ "omap34xx.dtsi"
+
+/ {
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x20000000>; /* 512 MB */
+       };
+
+       sound {
+               compatible = "ti,omap-twl4030";
+               ti,model = "igep2";
+               ti,mcbsp = <&mcbsp2>;
+               ti,codec = <&twl_audio>;
+       };
+};
+
+&omap3_pmx_core {
+       uart1_pins: pinmux_uart1_pins {
+               pinctrl-single,pins = <
+                       0x152 0x100     /* uart1_rx.uart1_rx INPUT | MODE0 */
+                       0x14c 0         /* uart1_tx.uart1_tx OUTPUT | MODE0 */
+               >;
+       };
+
+       uart2_pins: pinmux_uart2_pins {
+               pinctrl-single,pins = <
+                       0x14a 0x100     /* uart2_rx.uart2_rx INPUT | MODE0 */
+                       0x148 0         /* uart2_tx.uart2_tx OUTPUT | MODE0 */
+               >;
+       };
+
+       uart3_pins: pinmux_uart3_pins {
+               pinctrl-single,pins = <
+                       0x16e 0x100     /* uart3_rx.uart3_rx INPUT | MODE0 */
+                       0x170 0         /* uart3_tx.uart3_tx OUTPUT | MODE0 */
+               >;
+       };
+
+       mmc1_pins: pinmux_mmc1_pins {
+               pinctrl-single,pins = <
+                       0x114 0x0118    /* sdmmc1_clk.sdmmc1_clk INPUT PULLUP | MODE 0 */
+                       0x116 0x0118    /* sdmmc1_cmd.sdmmc1_cmd INPUT PULLUP | MODE 0 */
+                       0x118 0x0118    /* sdmmc1_dat0.sdmmc1_dat0 INPUT PULLUP | MODE 0 */
+                       0x11a 0x0118    /* sdmmc1_dat1.sdmmc1_dat1 INPUT PULLUP | MODE 0 */
+                       0x11c 0x0118    /* sdmmc1_dat2.sdmmc1_dat2 INPUT PULLUP | MODE 0 */
+                       0x11e 0x0118    /* sdmmc1_dat3.sdmmc1_dat3 INPUT PULLUP | MODE 0 */
+                       0x120 0x0100    /* sdmmc1_dat4.sdmmc1_dat4 INPUT | MODE 0 */
+                       0x122 0x0100    /* sdmmc1_dat5.sdmmc1_dat5 INPUT | MODE 0 */
+                       0x124 0x0100    /* sdmmc1_dat6.sdmmc1_dat6 INPUT | MODE 0 */
+                       0x126 0x0100    /* sdmmc1_dat7.sdmmc1_dat7 INPUT | MODE 0 */
+               >;
+       };
+};
+
+&i2c1 {
+       clock-frequency = <2600000>;
+
+       twl: twl@48 {
+               reg = <0x48>;
+               interrupts = <7>; /* SYS_NIRQ cascaded to intc */
+               interrupt-parent = <&intc>;
+
+               twl_audio: audio {
+                       compatible = "ti,twl4030-audio";
+                       codec {
+                             };
+               };
+       };
+};
+
+/include/ "twl4030.dtsi"
+
+&i2c2 {
+       clock-frequency = <400000>;
+};
+
+&mmc1 {
+      pinctrl-names = "default";
+      pinctrl-0 = <&mmc1_pins>;
+      vmmc-supply = <&vmmc1>;
+      vmmc_aux-supply = <&vsim>;
+      bus-width = <8>;
+};
+
+&mmc2 {
+       status = "disabled";
+};
+
+&mmc3 {
+       status = "disabled";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_pins>;
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart2_pins>;
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart3_pins>;
+};
+
+&twl_gpio {
+       ti,use-leds;
+};
diff --git a/arch/arm/boot/dts/omap3-igep0020.dts b/arch/arm/boot/dts/omap3-igep0020.dts
new file mode 100644 (file)
index 0000000..e2b9849
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Device Tree Source for IGEPv2 board
+ *
+ * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk>
+ * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+/include/ "omap3-igep.dtsi"
+
+/ {
+       model = "IGEPv2";
+       compatible = "isee,omap3-igep0020", "ti,omap3";
+
+       leds {
+               compatible = "gpio-leds";
+               boot {
+                        label = "omap3:green:boot";
+                        gpios = <&gpio1 26 0>;
+                        default-state = "on";
+               };
+
+               user0 {
+                        label = "omap3:red:user0";
+                        gpios = <&gpio1 27 0>;
+                        default-state = "off";
+               };
+
+               user1 {
+                        label = "omap3:red:user1";
+                        gpios = <&gpio1 28 0>;
+                        default-state = "off";
+               };
+
+               user2 {
+                       label = "omap3:green:user1";
+                       gpios = <&twl_gpio 19 1>;
+               };
+       };
+};
+
+&i2c3 {
+       clock-frequency = <100000>;
+
+       /*
+        * Display monitor features are burnt in the EEPROM
+        * as EDID data.
+        */
+       eeprom@50 {
+               compatible = "ti,eeprom";
+               reg = <0x50>;
+       };
+};
diff --git a/arch/arm/boot/dts/omap3-igep0030.dts b/arch/arm/boot/dts/omap3-igep0030.dts
new file mode 100644 (file)
index 0000000..9dc48d2
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Device Tree Source for IGEP COM Module
+ *
+ * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk>
+ * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+/include/ "omap3-igep.dtsi"
+
+/ {
+       model = "IGEP COM Module";
+       compatible = "isee,omap3-igep0030", "ti,omap3";
+
+       leds {
+               compatible = "gpio-leds";
+               boot {
+                        label = "omap3:green:boot";
+                        gpios = <&twl_gpio 13 1>;
+                        default-state = "on";
+               };
+
+               user0 {
+                        label = "omap3:red:user0";
+                        gpios = <&twl_gpio 18 1>; /* LEDA */
+                        default-state = "off";
+               };
+
+               user1 {
+                        label = "omap3:green:user1";
+                        gpios = <&twl_gpio 19 1>; /* LEDB */
+                        default-state = "off";
+               };
+
+               user2 {
+                        label = "omap3:red:user1";
+                        gpios = <&gpio1 16 1>;
+                        default-state = "off";
+               };
+       };
+};
index 89808ce016734dd8436e75ae5dad38523ce56671..d4a7280d18b7cdfc82f4bfaa71177a60b09c9ca5 100644 (file)
  */
 /dts-v1/;
 
-/include/ "omap3.dtsi"
+/include/ "omap34xx.dtsi"
 
 / {
-       leds {
-               compatible = "gpio-leds";
+       pwmleds {
+               compatible = "pwm-leds";
+
                overo {
                        label = "overo:blue:COM";
-                       gpios = <&twl_gpio 19 0>;
-                       linux,default-trigger = "mmc0";
+                       pwms = <&twl_pwmled 1 7812500>;
+                       max-brightness = <127>;
                };
        };
+
+       sound {
+               compatible = "ti,omap-twl4030";
+               ti,model = "overo";
+
+               ti,mcbsp = <&mcbsp2>;
+               ti,codec = <&twl_audio>;
+       };
 };
 
 &i2c1 {
                reg = <0x48>;
                interrupts = <7>; /* SYS_NIRQ cascaded to intc */
                interrupt-parent = <&intc>;
+
+               twl_audio: audio {
+                       compatible = "ti,twl4030-audio";
+                       codec {
+                       };
+               };
        };
 };
 
@@ -55,3 +70,9 @@
 &twl_gpio {
        ti,use-leds;
 };
+
+&usb_otg_hs {
+       interface-type = <0>;
+       mode = <3>;
+       power = <50>;
+};
index a14f74bbce7c0079238486899ba3037dcf926c62..4ad03d9dbf0ce653fb655416ec3fdc76eb54bdde 100644 (file)
                };
        };
 
+       pmu {
+               compatible = "arm,cortex-a8-pmu";
+               interrupts = <3>;
+               ti,hwmods = "debugss";
+       };
+
        /*
-        * The soc node represents the soc top level view. It is uses for IPs
+        * The soc node represents the soc top level view. It is used for IPs
         * that are not memory mapped in the MPU view or for the MPU itself.
         */
        soc {
                        reg = <0x48200000 0x1000>;
                };
 
+               sdma: dma-controller@48056000 {
+                       compatible = "ti,omap3630-sdma", "ti,omap3430-sdma";
+                       reg = <0x48056000 0x1000>;
+                       interrupts = <12>,
+                                    <13>,
+                                    <14>,
+                                    <15>;
+                       #dma-cells = <1>;
+                       #dma-channels = <32>;
+                       #dma-requests = <96>;
+               };
+
                omap3_pmx_core: pinmux@48002030 {
                        compatible = "ti,omap3-padconf", "pinctrl-single";
                        reg = <0x48002030 0x05cc>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        pinctrl-single,register-width = <16>;
-                       pinctrl-single,function-mask = <0x7fff>;
+                       pinctrl-single,function-mask = <0x7f1f>;
                };
 
-               omap3_pmx_wkup: pinmux@0x48002a58 {
+               omap3_pmx_wkup: pinmux@0x48002a00 {
                        compatible = "ti,omap3-padconf", "pinctrl-single";
-                       reg = <0x48002a58 0x5c>;
+                       reg = <0x48002a00 0x5c>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        pinctrl-single,register-width = <16>;
-                       pinctrl-single,function-mask = <0x7fff>;
+                       pinctrl-single,function-mask = <0x7f1f>;
                };
 
                gpio1: gpio@48310000 {
                        compatible = "ti,omap3-gpio";
+                       reg = <0x48310000 0x200>;
+                       interrupts = <29>;
                        ti,hwmods = "gpio1";
+                       ti,gpio-always-on;
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                gpio2: gpio@49050000 {
                        compatible = "ti,omap3-gpio";
+                       reg = <0x49050000 0x200>;
+                       interrupts = <30>;
                        ti,hwmods = "gpio2";
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                gpio3: gpio@49052000 {
                        compatible = "ti,omap3-gpio";
+                       reg = <0x49052000 0x200>;
+                       interrupts = <31>;
                        ti,hwmods = "gpio3";
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                gpio4: gpio@49054000 {
                        compatible = "ti,omap3-gpio";
+                       reg = <0x49054000 0x200>;
+                       interrupts = <32>;
                        ti,hwmods = "gpio4";
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                gpio5: gpio@49056000 {
                        compatible = "ti,omap3-gpio";
+                       reg = <0x49056000 0x200>;
+                       interrupts = <33>;
                        ti,hwmods = "gpio5";
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                gpio6: gpio@49058000 {
                        compatible = "ti,omap3-gpio";
+                       reg = <0x49058000 0x200>;
+                       interrupts = <34>;
                        ti,hwmods = "gpio6";
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                uart1: serial@4806a000 {
                        #size-cells = <0>;
                        ti,hwmods = "mcspi1";
                        ti,spi-num-cs = <4>;
+                       dmas = <&sdma 35>,
+                              <&sdma 36>,
+                              <&sdma 37>,
+                              <&sdma 38>,
+                              <&sdma 39>,
+                              <&sdma 40>,
+                              <&sdma 41>,
+                              <&sdma 42>;
+                       dma-names = "tx0", "rx0", "tx1", "rx1",
+                                   "tx2", "rx2", "tx3", "rx3";
                };
 
                mcspi2: spi@4809a000 {
                        #size-cells = <0>;
                        ti,hwmods = "mcspi2";
                        ti,spi-num-cs = <2>;
+                       dmas = <&sdma 43>,
+                              <&sdma 44>,
+                              <&sdma 45>,
+                              <&sdma 46>;
+                       dma-names = "tx0", "rx0", "tx1", "rx1";
                };
 
                mcspi3: spi@480b8000 {
                        #size-cells = <0>;
                        ti,hwmods = "mcspi3";
                        ti,spi-num-cs = <2>;
+                       dmas = <&sdma 15>,
+                              <&sdma 16>,
+                              <&sdma 23>,
+                              <&sdma 24>;
+                       dma-names = "tx0", "rx0", "tx1", "rx1";
                };
 
                mcspi4: spi@480ba000 {
                        #size-cells = <0>;
                        ti,hwmods = "mcspi4";
                        ti,spi-num-cs = <1>;
+                       dmas = <&sdma 70>, <&sdma 71>;
+                       dma-names = "tx0", "rx0";
                };
 
                mmc1: mmc@4809c000 {
                        compatible = "ti,omap3-hsmmc";
                        ti,hwmods = "mmc1";
                        ti,dual-volt;
+                       dmas = <&sdma 61>, <&sdma 62>;
+                       dma-names = "tx", "rx";
                };
 
                mmc2: mmc@480b4000 {
                        compatible = "ti,omap3-hsmmc";
                        ti,hwmods = "mmc2";
+                       dmas = <&sdma 47>, <&sdma 48>;
+                       dma-names = "tx", "rx";
                };
 
                mmc3: mmc@480ad000 {
                        compatible = "ti,omap3-hsmmc";
                        ti,hwmods = "mmc3";
+                       dmas = <&sdma 77>, <&sdma 78>;
+                       dma-names = "tx", "rx";
                };
 
                wdt2: wdt@48314000 {
                        interrupt-names = "common", "tx", "rx";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp1";
+                       dmas = <&sdma 31>,
+                              <&sdma 32>;
+                       dma-names = "tx", "rx";
                };
 
                mcbsp2: mcbsp@49022000 {
                        interrupt-names = "common", "tx", "rx", "sidetone";
                        ti,buffer-size = <1280>;
                        ti,hwmods = "mcbsp2", "mcbsp2_sidetone";
+                       dmas = <&sdma 33>,
+                              <&sdma 34>;
+                       dma-names = "tx", "rx";
                };
 
                mcbsp3: mcbsp@49024000 {
                        interrupt-names = "common", "tx", "rx", "sidetone";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp3", "mcbsp3_sidetone";
+                       dmas = <&sdma 17>,
+                              <&sdma 18>;
+                       dma-names = "tx", "rx";
                };
 
                mcbsp4: mcbsp@49026000 {
                        interrupt-names = "common", "tx", "rx";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp4";
+                       dmas = <&sdma 19>,
+                              <&sdma 20>;
+                       dma-names = "tx", "rx";
                };
 
                mcbsp5: mcbsp@48096000 {
                        interrupt-names = "common", "tx", "rx";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp5";
+                       dmas = <&sdma 21>,
+                              <&sdma 22>;
+                       dma-names = "tx", "rx";
                };
 
                timer1: timer@48318000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap3430-timer";
                        reg = <0x48318000 0x400>;
                        interrupts = <37>;
                        ti,hwmods = "timer1";
                };
 
                timer2: timer@49032000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap3430-timer";
                        reg = <0x49032000 0x400>;
                        interrupts = <38>;
                        ti,hwmods = "timer2";
                };
 
                timer3: timer@49034000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap3430-timer";
                        reg = <0x49034000 0x400>;
                        interrupts = <39>;
                        ti,hwmods = "timer3";
                };
 
                timer4: timer@49036000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap3430-timer";
                        reg = <0x49036000 0x400>;
                        interrupts = <40>;
                        ti,hwmods = "timer4";
                };
 
                timer5: timer@49038000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap3430-timer";
                        reg = <0x49038000 0x400>;
                        interrupts = <41>;
                        ti,hwmods = "timer5";
                };
 
                timer6: timer@4903a000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap3430-timer";
                        reg = <0x4903a000 0x400>;
                        interrupts = <42>;
                        ti,hwmods = "timer6";
                };
 
                timer7: timer@4903c000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap3430-timer";
                        reg = <0x4903c000 0x400>;
                        interrupts = <43>;
                        ti,hwmods = "timer7";
                };
 
                timer8: timer@4903e000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap3430-timer";
                        reg = <0x4903e000 0x400>;
                        interrupts = <44>;
                        ti,hwmods = "timer8";
                };
 
                timer9: timer@49040000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap3430-timer";
                        reg = <0x49040000 0x400>;
                        interrupts = <45>;
                        ti,hwmods = "timer9";
                };
 
                timer10: timer@48086000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap3430-timer";
                        reg = <0x48086000 0x400>;
                        interrupts = <46>;
                        ti,hwmods = "timer10";
                };
 
                timer11: timer@48088000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap3430-timer";
                        reg = <0x48088000 0x400>;
                        interrupts = <47>;
                        ti,hwmods = "timer11";
                };
 
                timer12: timer@48304000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap3430-timer";
                        reg = <0x48304000 0x400>;
                        interrupts = <95>;
                        ti,hwmods = "timer12";
                        };
                };
 
+               gpmc: gpmc@6e000000 {
+                       compatible = "ti,omap3430-gpmc";
+                       ti,hwmods = "gpmc";
+                       reg = <0x6e000000 0x02d0>;
+                       interrupts = <20>;
+                       gpmc,num-cs = <8>;
+                       gpmc,num-waitpins = <4>;
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+               };
+
+               usb_otg_hs: usb_otg_hs@480ab000 {
+                       compatible = "ti,omap3-musb";
+                       reg = <0x480ab000 0x1000>;
+                       interrupts = <0 92 0x4>, <0 93 0x4>;
+                       interrupt-names = "mc", "dma";
+                       ti,hwmods = "usb_otg_hs";
+                       usb-phy = <&usb2_phy>;
+                       multipoint = <1>;
+                       num-eps = <16>;
+                       ram-bits = <12>;
+               };
        };
 };
diff --git a/arch/arm/boot/dts/omap3430-sdp.dts b/arch/arm/boot/dts/omap3430-sdp.dts
new file mode 100644 (file)
index 0000000..144ae43
--- /dev/null
@@ -0,0 +1,190 @@
+/*
+ * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/dts-v1/;
+
+/include/ "omap34xx.dtsi"
+
+/ {
+       model = "TI OMAP3430 SDP";
+       compatible = "ti,omap3430-sdp", "ti,omap3";
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x10000000>; /* 256 MB */
+       };
+};
+
+&i2c1 {
+       clock-frequency = <2600000>;
+
+       twl: twl@48 {
+               reg = <0x48>;
+               interrupts = <7>; /* SYS_NIRQ cascaded to intc */
+       };
+};
+
+/include/ "twl4030.dtsi"
+
+&mmc1 {
+       vmmc-supply = <&vmmc1>;
+       vmmc_aux-supply = <&vsim>;
+       bus-width = <8>;
+};
+
+&mmc2 {
+       status = "disabled";
+};
+
+&mmc3 {
+       status = "disabled";
+};
+
+&gpmc {
+       ranges = <0 0 0x10000000 0x08000000>,
+                <1 0 0x28000000 0x08000000>,
+                <2 0 0x20000000 0x10000000>;
+
+       nor@0,0 {
+               compatible = "cfi-flash";
+               linux,mtd-name= "intel,pf48f6000m0y1be";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0 0 0x08000000>;
+               bank-width = <2>;
+
+               gpmc,mux-add-data = <2>;
+               gpmc,cs-on-ns = <0>;
+               gpmc,cs-rd-off-ns = <186>;
+               gpmc,cs-wr-off-ns = <186>;
+               gpmc,adv-on-ns = <12>;
+               gpmc,adv-rd-off-ns = <48>;
+               gpmc,adv-wr-off-ns = <48>;
+               gpmc,oe-on-ns = <54>;
+               gpmc,oe-off-ns = <168>;
+               gpmc,we-on-ns = <54>;
+               gpmc,we-off-ns = <168>;
+               gpmc,rd-cycle-ns = <186>;
+               gpmc,wr-cycle-ns = <186>;
+               gpmc,access-ns = <114>;
+               gpmc,page-burst-access-ns = <6>;
+               gpmc,bus-turnaround-ns = <12>;
+               gpmc,cycle2cycle-delay-ns = <18>;
+               gpmc,wr-data-mux-bus-ns = <90>;
+               gpmc,wr-access-ns = <186>;
+               gpmc,cycle2cycle-samecsen;
+               gpmc,cycle2cycle-diffcsen;
+
+               partition@0 {
+                       label = "bootloader-nor";
+                       reg = <0 0x40000>;
+               };
+               partition@0x40000 {
+                       label = "params-nor";
+                       reg = <0x40000 0x40000>;
+               };
+               partition@0x80000 {
+                       label = "kernel-nor";
+                       reg = <0x80000 0x200000>;
+               };
+               partition@0x280000 {
+                       label = "filesystem-nor";
+                       reg = <0x240000 0x7d80000>;
+               };
+       };
+
+       nand@1,0 {
+               linux,mtd-name= "micron,mt29f1g08abb";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <1 0 0x08000000>;
+               nand-bus-width = <8>;
+
+               ti,nand-ecc-opt = "sw";
+               gpmc,device-nand;
+               gpmc,cs-on-ns = <0>;
+               gpmc,cs-rd-off-ns = <36>;
+               gpmc,cs-wr-off-ns = <36>;
+               gpmc,adv-on-ns = <6>;
+               gpmc,adv-rd-off-ns = <24>;
+               gpmc,adv-wr-off-ns = <36>;
+               gpmc,oe-on-ns = <6>;
+               gpmc,oe-off-ns = <48>;
+               gpmc,we-on-ns = <6>;
+               gpmc,we-off-ns = <30>;
+               gpmc,rd-cycle-ns = <72>;
+               gpmc,wr-cycle-ns = <72>;
+               gpmc,access-ns = <54>;
+               gpmc,wr-access-ns = <30>;
+
+               partition@0 {
+                       label = "xloader-nand";
+                       reg = <0 0x80000>;
+               };
+               partition@0x80000 {
+                       label = "bootloader-nand";
+                       reg = <0x80000 0x140000>;
+               };
+               partition@0x1c0000 {
+                       label = "params-nand";
+                       reg = <0x1c0000 0xc0000>;
+               };
+               partition@0x280000 {
+                       label = "kernel-nand";
+                       reg = <0x280000 0x500000>;
+               };
+               partition@0x780000 {
+                       label = "filesystem-nand";
+                       reg = <0x780000 0x7880000>;
+               };
+       };
+
+       onenand@2,0 {
+               linux,mtd-name= "samsung,kfm2g16q2m-deb8";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <2 0 0x10000000>;
+
+               gpmc,device-width = <2>;
+               gpmc,mux-add-data = <2>;
+               gpmc,cs-on-ns = <0>;
+               gpmc,cs-rd-off-ns = <84>;
+               gpmc,cs-wr-off-ns = <72>;
+               gpmc,adv-on-ns = <0>;
+               gpmc,adv-rd-off-ns = <18>;
+               gpmc,adv-wr-off-ns = <18>;
+               gpmc,oe-on-ns = <30>;
+               gpmc,oe-off-ns = <84>;
+               gpmc,we-on-ns = <0>;
+               gpmc,we-off-ns = <42>;
+               gpmc,rd-cycle-ns = <108>;
+               gpmc,wr-cycle-ns = <96>;
+               gpmc,access-ns = <78>;
+               gpmc,wr-data-mux-bus-ns = <30>;
+
+               partition@0 {
+                       label = "xloader-onenand";
+                       reg = <0 0x80000>;
+               };
+               partition@0x80000 {
+                       label = "bootloader-onenand";
+                       reg = <0x80000 0x40000>;
+               };
+               partition@0xc0000 {
+                       label = "params-onenand";
+                       reg = <0xc0000 0x20000>;
+               };
+               partition@0xe0000 {
+                       label = "kernel-onenand";
+                       reg = <0xe0000 0x200000>;
+               };
+               partition@0x2e0000 {
+                       label = "filesystem-onenand";
+                       reg = <0x2e0000 0xfd20000>;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/omap34xx.dtsi b/arch/arm/boot/dts/omap34xx.dtsi
new file mode 100644 (file)
index 0000000..75ed4ae
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * Device Tree Source for OMAP34xx/OMAP35xx SoC
+ *
+ * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/include/ "omap3.dtsi"
+
+/ {
+       cpus {
+               cpu@0 {
+                       /* OMAP343x/OMAP35xx variants OPP1-5 */
+                       operating-points = <
+                               /* kHz    uV */
+                               125000   975000
+                               250000  1075000
+                               500000  1200000
+                               550000  1270000
+                               600000  1350000
+                       >;
+                       clock-latency = <300000>; /* From legacy driver */
+               };
+       };
+};
index 96bf0287cb9f92028b14b4f7e2c093d8fac57d5e..b89233e43b0f6af39690941eb664a3306d9b1d33 100644 (file)
                serial3 = &uart4;
        };
 
+       cpus {
+               /* OMAP3630/OMAP37xx 'standard device' variants OPP50 to OPP130 */
+               cpu@0 {
+                       operating-points = <
+                               /* kHz    uV */
+                               300000   975000
+                               600000  1075000
+                               800000  1200000
+                       >;
+                       clock-latency = <300000>; /* From legacy driver */
+               };
+       };
+
        ocp {
                uart4: serial@49042000 {
                        compatible = "ti,omap3-uart";
index 75466d2abfb555a54e2ab41764f56e5f86010854..e30cdf0f5ac15683e448aac5e2e66e207d20ecfe 100644 (file)
@@ -5,7 +5,10 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-/include/ "omap4-panda.dts"
+/dts-v1/;
+
+/include/ "omap443x.dtsi"
+/include/ "omap4-panda-common.dtsi"
 
 /* Pandaboard Rev A4+ have external pullups on SCL & SDA */
 &dss_hdmi_pins {
diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
new file mode 100644 (file)
index 0000000..03bd60d
--- /dev/null
@@ -0,0 +1,251 @@
+/*
+ * Copyright (C) 2011-2013 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/include/ "elpida_ecb240abacn.dtsi"
+
+/ {
+       model = "TI OMAP4 PandaBoard";
+       compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4";
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x40000000>; /* 1 GB */
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               heartbeat {
+                       label = "pandaboard::status1";
+                       gpios = <&gpio1 7 0>;
+                       linux,default-trigger = "heartbeat";
+               };
+
+               mmc {
+                       label = "pandaboard::status2";
+                       gpios = <&gpio1 8 0>;
+                       linux,default-trigger = "mmc0";
+               };
+       };
+
+       sound: sound {
+               compatible = "ti,abe-twl6040";
+               ti,model = "PandaBoard";
+
+               ti,mclk-freq = <38400000>;
+
+               ti,mcpdm = <&mcpdm>;
+
+               ti,twl6040 = <&twl6040>;
+
+               /* Audio routing */
+               ti,audio-routing =
+                       "Headset Stereophone", "HSOL",
+                       "Headset Stereophone", "HSOR",
+                       "Ext Spk", "HFL",
+                       "Ext Spk", "HFR",
+                       "Line Out", "AUXL",
+                       "Line Out", "AUXR",
+                       "HSMIC", "Headset Mic",
+                       "Headset Mic", "Headset Mic Bias",
+                       "AFML", "Line In",
+                       "AFMR", "Line In";
+       };
+};
+
+&omap4_pmx_core {
+       pinctrl-names = "default";
+       pinctrl-0 = <
+                       &twl6040_pins
+                       &mcpdm_pins
+                       &mcbsp1_pins
+                       &dss_hdmi_pins
+                       &tpd12s015_pins
+       >;
+
+       twl6040_pins: pinmux_twl6040_pins {
+               pinctrl-single,pins = <
+                       0xe0 0x3        /* hdq_sio.gpio_127 OUTPUT | MODE3 */
+                       0x160 0x100     /* sys_nirq2.sys_nirq2 INPUT | MODE0 */
+               >;
+       };
+
+       mcpdm_pins: pinmux_mcpdm_pins {
+               pinctrl-single,pins = <
+                       0xc6 0x108      /* abe_pdm_ul_data.abe_pdm_ul_data INPUT PULLDOWN | MODE0 */
+                       0xc8 0x108      /* abe_pdm_dl_data.abe_pdm_dl_data INPUT PULLDOWN | MODE0 */
+                       0xca 0x118      /* abe_pdm_frame.abe_pdm_frame INPUT PULLUP | MODE0 */
+                       0xcc 0x108      /* abe_pdm_lb_clk.abe_pdm_lb_clk INPUT PULLDOWN | MODE0 */
+                       0xce 0x108      /* abe_clks.abe_clks INPUT PULLDOWN | MODE0 */
+               >;
+       };
+
+       mcbsp1_pins: pinmux_mcbsp1_pins {
+               pinctrl-single,pins = <
+                       0xbe 0x100      /* abe_mcbsp1_clkx.abe_mcbsp1_clkx INPUT | MODE0 */
+                       0xc0 0x108      /* abe_mcbsp1_dr.abe_mcbsp1_dr INPUT PULLDOWN | MODE0 */
+                       0xc2 0x8                /* abe_mcbsp1_dx.abe_mcbsp1_dx OUTPUT PULLDOWN | MODE0 */
+                       0xc4 0x100      /* abe_mcbsp1_fsx.abe_mcbsp1_fsx INPUT | MODE0 */
+               >;
+       };
+
+       dss_hdmi_pins: pinmux_dss_hdmi_pins {
+               pinctrl-single,pins = <
+                       0x5a 0x118      /* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
+                       0x5c 0x118      /* hdmi_scl.hdmi_scl INPUT PULLUP | MODE 0 */
+                       0x5e 0x118      /* hdmi_sda.hdmi_sda INPUT PULLUP | MODE 0 */
+               >;
+       };
+
+       tpd12s015_pins: pinmux_tpd12s015_pins {
+               pinctrl-single,pins = <
+                       0x22 0x3        /* gpmc_a17.gpio_41 OUTPUT | MODE3 */
+                       0x48 0x3        /* gpmc_nbe1.gpio_60 OUTPUT | MODE3 */
+                       0x58 0x10b      /* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */
+               >;
+       };
+
+       i2c1_pins: pinmux_i2c1_pins {
+               pinctrl-single,pins = <
+                       0xe2 0x118        /* i2c1_scl PULLUP | INPUTENABLE | MODE0 */
+                       0xe4 0x118        /* i2c1_sda PULLUP | INPUTENABLE | MODE0 */
+               >;
+       };
+
+       i2c2_pins: pinmux_i2c2_pins {
+               pinctrl-single,pins = <
+                       0xe6 0x118        /* i2c2_scl PULLUP | INPUTENABLE | MODE0 */
+                       0xe8 0x118        /* i2c2_sda PULLUP | INPUTENABLE | MODE0 */
+               >;
+       };
+
+       i2c3_pins: pinmux_i2c3_pins {
+               pinctrl-single,pins = <
+                       0xea 0x118        /* i2c3_scl PULLUP | INPUTENABLE | MODE0 */
+                       0xec 0x118     /* i2c3_sda PULLUP | INPUTENABLE | MODE0 */
+               >;
+       };
+
+       i2c4_pins: pinmux_i2c4_pins {
+               pinctrl-single,pins = <
+                       0xee 0x118        /* i2c4_scl PULLUP | INPUTENABLE | MODE0 */
+                       0xf0 0x118     /* i2c4_sda PULLUP | INPUTENABLE | MODE0 */
+               >;
+       };
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+
+       clock-frequency = <400000>;
+
+       twl: twl@48 {
+               reg = <0x48>;
+               /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */
+               interrupts = <0 7 4>; /* IRQ_SYS_1N cascaded to gic */
+               interrupt-parent = <&gic>;
+       };
+
+       twl6040: twl@4b {
+               compatible = "ti,twl6040";
+               reg = <0x4b>;
+               /* SPI = 0, IRQ# = 119, 4 = active high level-sensitive */
+               interrupts = <0 119 4>; /* IRQ_SYS_2N cascaded to gic */
+               interrupt-parent = <&gic>;
+               ti,audpwron-gpio = <&gpio4 31 0>;  /* gpio line 127 */
+
+               vio-supply = <&v1v8>;
+               v2v1-supply = <&v2v1>;
+               enable-active-high;
+       };
+};
+
+/include/ "twl6030.dtsi"
+
+&i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2_pins>;
+
+       clock-frequency = <400000>;
+};
+
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c3_pins>;
+
+       clock-frequency = <100000>;
+
+       /*
+        * Display monitor features are burnt in their EEPROM as EDID data.
+        * The EEPROM is connected as I2C slave device.
+        */
+       eeprom@50 {
+               compatible = "ti,eeprom";
+               reg = <0x50>;
+       };
+};
+
+&i2c4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c4_pins>;
+
+       clock-frequency = <400000>;
+};
+
+&mmc1 {
+       vmmc-supply = <&vmmc>;
+       bus-width = <8>;
+};
+
+&mmc2 {
+       status = "disabled";
+};
+
+&mmc3 {
+       status = "disabled";
+};
+
+&mmc4 {
+       status = "disabled";
+};
+
+&mmc5 {
+       ti,non-removable;
+       bus-width = <4>;
+};
+
+&emif1 {
+       cs1-used;
+       device-handle = <&elpida_ECB240ABACN>;
+};
+
+&emif2 {
+       cs1-used;
+       device-handle = <&elpida_ECB240ABACN>;
+};
+
+&mcbsp2 {
+       status = "disabled";
+};
+
+&mcbsp3 {
+       status = "disabled";
+};
+
+&dmic {
+       status = "disabled";
+};
+
+&twl_usb_comparator {
+       usb-supply = <&vusb>;
+};
+
+&usb_otg_hs {
+       interface-type = <1>;
+       mode = <3>;
+       power = <50>;
+};
index 73bc1a67e444480ff08ec414848981ec27fe7e39..f1d8c217ce1274949b6f6b09d9d728eac21c6a06 100644 (file)
@@ -5,7 +5,10 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-/include/ "omap4-panda.dts"
+/dts-v1/;
+
+/include/ "omap4460.dtsi"
+/include/ "omap4-panda-common.dtsi"
 
 /* Audio routing is differnet between PandaBoard4430 and PandaBoardES */
 &sound {
index 4122efe31cfdf04ed6218ca970c7c661372d94e2..f8b221f0168ee05920c8f4e2d91a905f3362ab62 100644 (file)
@@ -7,202 +7,5 @@
  */
 /dts-v1/;
 
-/include/ "omap4.dtsi"
-/include/ "elpida_ecb240abacn.dtsi"
-
-/ {
-       model = "TI OMAP4 PandaBoard";
-       compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4";
-
-       memory {
-               device_type = "memory";
-               reg = <0x80000000 0x40000000>; /* 1 GB */
-       };
-
-       leds {
-               compatible = "gpio-leds";
-               heartbeat {
-                       label = "pandaboard::status1";
-                       gpios = <&gpio1 7 0>;
-                       linux,default-trigger = "heartbeat";
-               };
-
-               mmc {
-                       label = "pandaboard::status2";
-                       gpios = <&gpio1 8 0>;
-                       linux,default-trigger = "mmc0";
-               };
-       };
-
-       sound: sound {
-               compatible = "ti,abe-twl6040";
-               ti,model = "PandaBoard";
-
-               ti,mclk-freq = <38400000>;
-
-               ti,mcpdm = <&mcpdm>;
-
-               ti,twl6040 = <&twl6040>;
-
-               /* Audio routing */
-               ti,audio-routing =
-                       "Headset Stereophone", "HSOL",
-                       "Headset Stereophone", "HSOR",
-                       "Ext Spk", "HFL",
-                       "Ext Spk", "HFR",
-                       "Line Out", "AUXL",
-                       "Line Out", "AUXR",
-                       "HSMIC", "Headset Mic",
-                       "Headset Mic", "Headset Mic Bias",
-                       "AFML", "Line In",
-                       "AFMR", "Line In";
-       };
-};
-
-&omap4_pmx_core {
-       pinctrl-names = "default";
-       pinctrl-0 = <
-                       &twl6040_pins
-                       &mcpdm_pins
-                       &mcbsp1_pins
-                       &dss_hdmi_pins
-                       &tpd12s015_pins
-       >;
-
-       twl6040_pins: pinmux_twl6040_pins {
-               pinctrl-single,pins = <
-                       0xe0 0x3        /* hdq_sio.gpio_127 OUTPUT | MODE3 */
-                       0x160 0x100     /* sys_nirq2.sys_nirq2 INPUT | MODE0 */
-               >;
-       };
-
-       mcpdm_pins: pinmux_mcpdm_pins {
-               pinctrl-single,pins = <
-                       0xc6 0x108      /* abe_pdm_ul_data.abe_pdm_ul_data INPUT PULLDOWN | MODE0 */
-                       0xc8 0x108      /* abe_pdm_dl_data.abe_pdm_dl_data INPUT PULLDOWN | MODE0 */
-                       0xca 0x118      /* abe_pdm_frame.abe_pdm_frame INPUT PULLUP | MODE0 */
-                       0xcc 0x108      /* abe_pdm_lb_clk.abe_pdm_lb_clk INPUT PULLDOWN | MODE0 */
-                       0xce 0x108      /* abe_clks.abe_clks INPUT PULLDOWN | MODE0 */
-               >;
-       };
-
-       mcbsp1_pins: pinmux_mcbsp1_pins {
-               pinctrl-single,pins = <
-                       0xbe 0x100      /* abe_mcbsp1_clkx.abe_mcbsp1_clkx INPUT | MODE0 */
-                       0xc0 0x108      /* abe_mcbsp1_dr.abe_mcbsp1_dr INPUT PULLDOWN | MODE0 */
-                       0xc2 0x8                /* abe_mcbsp1_dx.abe_mcbsp1_dx OUTPUT PULLDOWN | MODE0 */
-                       0xc4 0x100      /* abe_mcbsp1_fsx.abe_mcbsp1_fsx INPUT | MODE0 */
-               >;
-       };
-
-       dss_hdmi_pins: pinmux_dss_hdmi_pins {
-               pinctrl-single,pins = <
-                       0x5a 0x118      /* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
-                       0x5c 0x118      /* hdmi_scl.hdmi_scl INPUT PULLUP | MODE 0 */
-                       0x5e 0x118      /* hdmi_sda.hdmi_sda INPUT PULLUP | MODE 0 */
-               >;
-       };
-
-       tpd12s015_pins: pinmux_tpd12s015_pins {
-               pinctrl-single,pins = <
-                       0x22 0x3        /* gpmc_a17.gpio_41 OUTPUT | MODE3 */
-                       0x48 0x3        /* gpmc_nbe1.gpio_60 OUTPUT | MODE3 */
-                       0x58 0x10b      /* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */
-               >;
-       };
-};
-
-&i2c1 {
-       clock-frequency = <400000>;
-
-       twl: twl@48 {
-               reg = <0x48>;
-               /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */
-               interrupts = <0 7 4>; /* IRQ_SYS_1N cascaded to gic */
-               interrupt-parent = <&gic>;
-       };
-
-       twl6040: twl@4b {
-               compatible = "ti,twl6040";
-               reg = <0x4b>;
-               /* SPI = 0, IRQ# = 119, 4 = active high level-sensitive */
-               interrupts = <0 119 4>; /* IRQ_SYS_2N cascaded to gic */
-               interrupt-parent = <&gic>;
-               ti,audpwron-gpio = <&gpio4 31 0>;  /* gpio line 127 */
-
-               vio-supply = <&v1v8>;
-               v2v1-supply = <&v2v1>;
-               enable-active-high;
-       };
-};
-
-/include/ "twl6030.dtsi"
-
-&i2c2 {
-       clock-frequency = <400000>;
-};
-
-&i2c3 {
-       clock-frequency = <100000>;
-
-       /*
-        * Display monitor features are burnt in their EEPROM as EDID data.
-        * The EEPROM is connected as I2C slave device.
-        */
-       eeprom@50 {
-               compatible = "ti,eeprom";
-               reg = <0x50>;
-       };
-};
-
-&i2c4 {
-       clock-frequency = <400000>;
-};
-
-&mmc1 {
-       vmmc-supply = <&vmmc>;
-       bus-width = <8>;
-};
-
-&mmc2 {
-       status = "disabled";
-};
-
-&mmc3 {
-       status = "disabled";
-};
-
-&mmc4 {
-       status = "disabled";
-};
-
-&mmc5 {
-       ti,non-removable;
-       bus-width = <4>;
-};
-
-&emif1 {
-       cs1-used;
-       device-handle = <&elpida_ECB240ABACN>;
-};
-
-&emif2 {
-       cs1-used;
-       device-handle = <&elpida_ECB240ABACN>;
-};
-
-&mcbsp2 {
-       status = "disabled";
-};
-
-&mcbsp3 {
-       status = "disabled";
-};
-
-&dmic {
-       status = "disabled";
-};
-
-&twl_usb_comparator {
-       usb-supply = <&vusb>;
-};
+/include/ "omap443x.dtsi"
+/include/ "omap4-panda-common.dtsi"
index 43e5258a9372b673d8c7a7866e30bbd5181148fa..c387bdc1b1d1bea48c940524aa91113df7584fd9 100644 (file)
@@ -7,7 +7,7 @@
  */
 /dts-v1/;
 
-/include/ "omap4.dtsi"
+/include/ "omap443x.dtsi"
 /include/ "elpida_ecb240abacn.dtsi"
 
 / {
                };
        };
 
+       pwmleds {
+               compatible = "pwm-leds";
+               kpad {
+                       label = "omap4::keypad";
+                       pwms = <&twl_pwm 0 7812500>;
+                       max-brightness = <127>;
+               };
+
+               charging {
+                       label = "omap4:green:chrg";
+                       pwms = <&twl_pwmled 0 7812500>;
+                       max-brightness = <255>;
+               };
+       };
+
+       backlight {
+               compatible = "pwm-backlight";
+               pwms = <&twl_pwm 1 7812500>;
+               brightness-levels = <
+                               0 10 20 30 40
+                               50 60 70 80 90
+                               100 110 120 127
+                               >;
+               default-brightness-level = <13>;
+       };
+
        sound {
                compatible = "ti,abe-twl6040";
                ti,model = "SDP4430";
                        0x58 0x10b      /* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */
                >;
        };
+
+       i2c1_pins: pinmux_i2c1_pins {
+               pinctrl-single,pins = <
+                       0xe2 0x118        /* i2c1_scl PULLUP | INPUTENABLE | MODE0 */
+                       0xe4 0x118       /* i2c1_sda PULLUP | INPUTENABLE | MODE0 */
+               >;
+       };
+
+       i2c2_pins: pinmux_i2c2_pins {
+               pinctrl-single,pins = <
+                        0xe6 0x118        /* i2c2_scl PULLUP | INPUTENABLE | MODE0 */
+                        0xe8 0x118        /* i2c2_sda PULLUP | INPUTENABLE | MODE0 */
+               >;
+       };
+
+       i2c3_pins: pinmux_i2c3_pins {
+               pinctrl-single,pins = <
+                       0xea 0x118        /* i2c3_scl PULLUP | INPUTENABLE | MODE0 */
+                       0xec 0x118     /* i2c3_sda PULLUP | INPUTENABLE | MODE0 */
+               >;
+       };
+
+       i2c4_pins: pinmux_i2c4_pins {
+               pinctrl-single,pins = <
+                       0xee 0x118        /* i2c4_scl PULLUP | INPUTENABLE | MODE0 */
+                       0xf0 0x118     /* i2c4_sda PULLUP | INPUTENABLE | MODE0 */
+               >;
+       };
 };
 
 &i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+
        clock-frequency = <400000>;
 
        twl: twl@48 {
 /include/ "twl6030.dtsi"
 
 &i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2_pins>;
+
        clock-frequency = <400000>;
 };
 
 &i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c3_pins>;
+
        clock-frequency = <400000>;
 
        /*
 };
 
 &i2c4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c4_pins>;
+
        clock-frequency = <400000>;
 
        /*
 &twl_usb_comparator {
        usb-supply = <&vusb>;
 };
+
+&usb_otg_hs {
+       interface-type = <1>;
+       mode = <3>;
+       power = <50>;
+};
index 6601e6af6092f78d11757a8c34e1ec69ca6e9fa7..222a413c2c5162d235fe96d0ee3568035d0928fd 100644 (file)
@@ -7,7 +7,7 @@
  */
 /dts-v1/;
 
-/include/ "omap4.dtsi"
+/include/ "omap443x.dtsi"
 
 / {
        model = "Variscite OMAP4 SOM";
index b7db1a2b6ca7a9a3200a1087372d9c988dcab5a7..2a5642882c8af8810601a3763808e60014831d07 100644 (file)
                #size-cells = <1>;
                ranges;
                ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3";
+               reg = <0x44000000 0x1000>,
+                     <0x44800000 0x2000>,
+                     <0x45000000 0x1000>;
+               interrupts = <0 9 0x4>,
+                            <0 10 0x4>;
 
                counter32k: counter@4a304000 {
                        compatible = "ti,omap-counter32k";
                        pinctrl-single,function-mask = <0x7fff>;
                };
 
+               sdma: dma-controller@4a056000 {
+                       compatible = "ti,omap4430-sdma";
+                       reg = <0x4a056000 0x1000>;
+                       interrupts = <0 12 0x4>,
+                                    <0 13 0x4>,
+                                    <0 14 0x4>,
+                                    <0 15 0x4>;
+                       #dma-cells = <1>;
+                       #dma-channels = <32>;
+                       #dma-requests = <127>;
+               };
+
                gpio1: gpio@4a310000 {
                        compatible = "ti,omap4-gpio";
                        reg = <0x4a310000 0x200>;
                        interrupts = <0 29 0x4>;
                        ti,hwmods = "gpio1";
+                       ti,gpio-always-on;
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                gpio2: gpio@48055000 {
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                gpio3: gpio@48057000 {
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                gpio4: gpio@48059000 {
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                gpio5: gpio@4805b000 {
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                gpio6: gpio@4805d000 {
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
+               };
+
+               gpmc: gpmc@50000000 {
+                       compatible = "ti,omap4430-gpmc";
+                       reg = <0x50000000 0x1000>;
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       interrupts = <0 20 0x4>;
+                       gpmc,num-cs = <8>;
+                       gpmc,num-waitpins = <4>;
+                       ti,hwmods = "gpmc";
                };
 
                uart1: serial@4806a000 {
                        #size-cells = <0>;
                        ti,hwmods = "mcspi1";
                        ti,spi-num-cs = <4>;
+                       dmas = <&sdma 35>,
+                              <&sdma 36>,
+                              <&sdma 37>,
+                              <&sdma 38>,
+                              <&sdma 39>,
+                              <&sdma 40>,
+                              <&sdma 41>,
+                              <&sdma 42>;
+                       dma-names = "tx0", "rx0", "tx1", "rx1",
+                                   "tx2", "rx2", "tx3", "rx3";
                };
 
                mcspi2: spi@4809a000 {
                        #size-cells = <0>;
                        ti,hwmods = "mcspi2";
                        ti,spi-num-cs = <2>;
+                       dmas = <&sdma 43>,
+                              <&sdma 44>,
+                              <&sdma 45>,
+                              <&sdma 46>;
+                       dma-names = "tx0", "rx0", "tx1", "rx1";
                };
 
                mcspi3: spi@480b8000 {
                        #size-cells = <0>;
                        ti,hwmods = "mcspi3";
                        ti,spi-num-cs = <2>;
+                       dmas = <&sdma 15>, <&sdma 16>;
+                       dma-names = "tx0", "rx0";
                };
 
                mcspi4: spi@480ba000 {
                        #size-cells = <0>;
                        ti,hwmods = "mcspi4";
                        ti,spi-num-cs = <1>;
+                       dmas = <&sdma 70>, <&sdma 71>;
+                       dma-names = "tx0", "rx0";
                };
 
                mmc1: mmc@4809c000 {
                        ti,hwmods = "mmc1";
                        ti,dual-volt;
                        ti,needs-special-reset;
+                       dmas = <&sdma 61>, <&sdma 62>;
+                       dma-names = "tx", "rx";
                };
 
                mmc2: mmc@480b4000 {
                        interrupts = <0 86 0x4>;
                        ti,hwmods = "mmc2";
                        ti,needs-special-reset;
+                       dmas = <&sdma 47>, <&sdma 48>;
+                       dma-names = "tx", "rx";
                };
 
                mmc3: mmc@480ad000 {
                        interrupts = <0 94 0x4>;
                        ti,hwmods = "mmc3";
                        ti,needs-special-reset;
+                       dmas = <&sdma 77>, <&sdma 78>;
+                       dma-names = "tx", "rx";
                };
 
                mmc4: mmc@480d1000 {
                        interrupts = <0 96 0x4>;
                        ti,hwmods = "mmc4";
                        ti,needs-special-reset;
+                       dmas = <&sdma 57>, <&sdma 58>;
+                       dma-names = "tx", "rx";
                };
 
                mmc5: mmc@480d5000 {
                        interrupts = <0 59 0x4>;
                        ti,hwmods = "mmc5";
                        ti,needs-special-reset;
+                       dmas = <&sdma 59>, <&sdma 60>;
+                       dma-names = "tx", "rx";
                };
 
                wdt2: wdt@4a314000 {
                        reg-names = "mpu", "dma";
                        interrupts = <0 112 0x4>;
                        ti,hwmods = "mcpdm";
+                       dmas = <&sdma 65>,
+                              <&sdma 66>;
+                       dma-names = "up_link", "dn_link";
                };
 
                dmic: dmic@4012e000 {
                        reg-names = "mpu", "dma";
                        interrupts = <0 114 0x4>;
                        ti,hwmods = "dmic";
+                       dmas = <&sdma 67>;
+                       dma-names = "up_link";
                };
 
                mcbsp1: mcbsp@40122000 {
                        interrupt-names = "common";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp1";
+                       dmas = <&sdma 33>,
+                              <&sdma 34>;
+                       dma-names = "tx", "rx";
                };
 
                mcbsp2: mcbsp@40124000 {
                        interrupt-names = "common";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp2";
+                       dmas = <&sdma 17>,
+                              <&sdma 18>;
+                       dma-names = "tx", "rx";
                };
 
                mcbsp3: mcbsp@40126000 {
                        interrupt-names = "common";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp3";
+                       dmas = <&sdma 19>,
+                              <&sdma 20>;
+                       dma-names = "tx", "rx";
                };
 
                mcbsp4: mcbsp@48096000 {
                        interrupt-names = "common";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp4";
+                       dmas = <&sdma 31>,
+                              <&sdma 32>;
+                       dma-names = "tx", "rx";
                };
 
                keypad: keypad@4a31c000 {
                        #size-cells = <1>;
                        ranges;
                        ti,hwmods = "ocp2scp_usb_phy";
+                       usb2_phy: usb2phy@4a0ad080 {
+                               compatible = "ti,omap-usb2";
+                               reg = <0x4a0ad080 0x58>;
+                               ctrl-module = <&omap_control_usb>;
+                       };
                };
 
                timer1: timer@4a318000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap3430-timer";
                        reg = <0x4a318000 0x80>;
                        interrupts = <0 37 0x4>;
                        ti,hwmods = "timer1";
                };
 
                timer2: timer@48032000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap3430-timer";
                        reg = <0x48032000 0x80>;
                        interrupts = <0 38 0x4>;
                        ti,hwmods = "timer2";
                };
 
                timer3: timer@48034000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap4430-timer";
                        reg = <0x48034000 0x80>;
                        interrupts = <0 39 0x4>;
                        ti,hwmods = "timer3";
                };
 
                timer4: timer@48036000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap4430-timer";
                        reg = <0x48036000 0x80>;
                        interrupts = <0 40 0x4>;
                        ti,hwmods = "timer4";
                };
 
                timer5: timer@40138000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap4430-timer";
                        reg = <0x40138000 0x80>,
                              <0x49038000 0x80>;
                        interrupts = <0 41 0x4>;
                };
 
                timer6: timer@4013a000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap4430-timer";
                        reg = <0x4013a000 0x80>,
                              <0x4903a000 0x80>;
                        interrupts = <0 42 0x4>;
                };
 
                timer7: timer@4013c000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap4430-timer";
                        reg = <0x4013c000 0x80>,
                              <0x4903c000 0x80>;
                        interrupts = <0 43 0x4>;
                };
 
                timer8: timer@4013e000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap4430-timer";
                        reg = <0x4013e000 0x80>,
                              <0x4903e000 0x80>;
                        interrupts = <0 44 0x4>;
                };
 
                timer9: timer@4803e000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap4430-timer";
                        reg = <0x4803e000 0x80>;
                        interrupts = <0 45 0x4>;
                        ti,hwmods = "timer9";
                };
 
                timer10: timer@48086000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap3430-timer";
                        reg = <0x48086000 0x80>;
                        interrupts = <0 46 0x4>;
                        ti,hwmods = "timer10";
                };
 
                timer11: timer@48088000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap4430-timer";
                        reg = <0x48088000 0x80>;
                        interrupts = <0 47 0x4>;
                        ti,hwmods = "timer11";
                                interrupts = <0 77 0x4>;
                        };
                };
+
+               omap_control_usb: omap-control-usb@4a002300 {
+                       compatible = "ti,omap-control-usb";
+                       reg = <0x4a002300 0x4>,
+                             <0x4a00233c 0x4>;
+                       reg-names = "control_dev_conf", "otghs_control";
+                       ti,type = <1>;
+               };
+
+               usb_otg_hs: usb_otg_hs@4a0ab000 {
+                       compatible = "ti,omap4-musb";
+                       reg = <0x4a0ab000 0x7ff>;
+                       interrupts = <0 92 0x4>, <0 93 0x4>;
+                       interrupt-names = "mc", "dma";
+                       ti,hwmods = "usb_otg_hs";
+                       usb-phy = <&usb2_phy>;
+                       multipoint = <1>;
+                       num-eps = <16>;
+                       ram-bits = <12>;
+                       ti,has-mailbox;
+               };
        };
 };
diff --git a/arch/arm/boot/dts/omap443x.dtsi b/arch/arm/boot/dts/omap443x.dtsi
new file mode 100644 (file)
index 0000000..cccf39a
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Device Tree Source for OMAP443x SoC
+ *
+ * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/include/ "omap4.dtsi"
+
+/ {
+       cpus {
+               cpu@0 {
+                       /* OMAP443x variants OPP50-OPPNT */
+                       operating-points = <
+                               /* kHz    uV */
+                               300000  1025000
+                               600000  1200000
+                               800000  1313000
+                               1008000 1375000
+                       >;
+                       clock-latency = <300000>; /* From legacy driver */
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/omap4460.dtsi b/arch/arm/boot/dts/omap4460.dtsi
new file mode 100644 (file)
index 0000000..7c2c23c
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Device Tree Source for OMAP4460 SoC
+ *
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+/include/ "omap4.dtsi"
+
+/ {
+       cpus {
+               /* OMAP446x 'standard device' variants OPP50 to OPPTurbo */
+               cpu@0 {
+                       operating-points = <
+                               /* kHz    uV */
+                               350000   975000
+                               700000  1075000
+                               920000  1200000
+                       >;
+                       clock-latency = <300000>; /* From legacy driver */
+               };
+       };
+
+       pmu {
+               compatible = "arm,cortex-a9-pmu";
+               interrupts = <0 54 0x4>,
+                            <0 55 0x4>;
+               ti,hwmods = "debugss";
+       };
+};
index 8722c15bbba2869a0fcd617517b132d930c05899..982acd19477d94f731740be19de6194e1813832c 100644 (file)
@@ -16,7 +16,7 @@
 
        memory {
                device_type = "memory";
-               reg = <0x80000000 0x80000000>; /* 2 GB */
+               reg = <0x80000000 0x7F000000>; /* 2032 MB */
        };
 
        vmmcsd_fixed: fixedregulator-mmcsd {
                        0x15a 0x100     /* abemcbsp2_clkx.abemcbsp2_clkx INPUT | MODE0 */
                >;
        };
+
+        i2c1_pins: pinmux_i2c1_pins {
+                pinctrl-single,pins = <
+                        0x1b2 0x118        /* i2c1_scl PULLUP | INPUTENABLE | MODE0 */
+                        0x1b4 0x118        /* i2c1_sda PULLUP | INPUTENABLE | MODE0 */
+                >;
+        };
+
+       i2c2_pins: pinmux_i2c2_pins {
+               pinctrl-single,pins = <
+                       0x178 0x100        /* i2c2_scl INPUTENABLE | MODE0 */
+                       0x17a 0x100        /* i2c2_sda INPUTENABLE | MODE0 */
+               >;
+       };
+
+       i2c3_pins: pinmux_i2c3_pins {
+               pinctrl-single,pins = <
+                       0x13a 0x100        /* i2c3_scl INPUTENABLE | MODE0 */
+                       0x13c 0x100     /* i2c3_sda INPUTENABLE | MODE0 */
+               >;
+       };
+
+       i2c4_pins: pinmux_i2c4_pins {
+               pinctrl-single,pins = <
+                       0xb8 0x100        /* i2c4_scl INPUTENABLE | MODE0 */
+                       0xba 0x100     /* i2c4_sda INPUTENABLE | MODE0 */
+               >;
+       };
+
+       i2c5_pins: pinmux_i2c5_pins {
+               pinctrl-single,pins = <
+                       0x184 0x100        /* i2c5_scl INPUTENABLE | MODE0 */
+                       0x186 0x100     /* i2c5_sda INPUTENABLE | MODE0 */
+               >;
+       };
+
+       mcspi2_pins: pinmux_mcspi2_pins {
+               pinctrl-single,pins = <
+                       0xbc 0x100      /*  MCSPI2_CLK INPUTENABLE | MODE0 */
+                       0xbe 0x100      /*  MCSPI2_SIMO INPUTENABLE | MODE0 */
+                       0xc0 0x118      /*  MCSPI2_SOMI PULLUP | INPUTENABLE | MODE0*/
+                       0xc2 0x0        /*  MCSPI2_CS MODE0*/
+               >;
+       };
+
+       mcspi3_pins: pinmux_mcspi3_pins {
+               pinctrl-single,pins = <
+                       0x78 0x101      /*  MCSPI2_SOMI INPUTENABLE | MODE1 */
+                       0x7a 0x101      /*  MCSPI2_CS INPUTENABLE | MODE1 */
+                       0x7c 0x101      /*  MCSPI2_SIMO INPUTENABLE | MODE1 */
+                       0x7e 0x101      /*  MCSPI2_CLK INPUTENABLE | MODE1 */
+               >;
+       };
+
+       mcspi4_pins: pinmux_mcspi4_pins {
+               pinctrl-single,pins = <
+                       0x164 0x101     /*  MCSPI2_CLK INPUTENABLE | MODE1 */
+                       0x168 0x101     /*  MCSPI2_SIMO INPUTENABLE | MODE1 */
+                       0x16a 0x101     /*  MCSPI2_SOMI INPUTENABLE | MODE1 */
+                       0x16c 0x101     /*  MCSPI2_CS INPUTENABLE | MODE1 */
+               >;
+       };
 };
 
 &mmc1 {
        status = "disabled";
 };
 
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+
+       clock-frequency = <400000>;
+};
+
 &i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2_pins>;
+
        clock-frequency = <400000>;
 
        /* Pressure Sensor */
        };
 };
 
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c3_pins>;
+
+       clock-frequency = <400000>;
+};
+
 &i2c4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c4_pins>;
+
        clock-frequency = <400000>;
 
        /* Temperature Sensor */
        };
 };
 
+&i2c5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c5_pins>;
+
+       clock-frequency = <400000>;
+};
+
 &keypad {
        keypad,num-rows = <8>;
        keypad,num-columns = <8>;
        cs1-used;
        device-handle = <&samsung_K3PE0E000B>;
 };
+
+&mcspi1 {
+
+};
+
+&mcspi2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcspi2_pins>;
+};
+
+&mcspi3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcspi3_pins>;
+};
+
+&mcspi4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcspi4_pins>;
+};
index 790bb2a4b3434d47a500005da78ec20d385afd48..3dd7ff825828630ef96ac5ddc2f7f95d532c1242 100644 (file)
@@ -18,6 +18,9 @@
 /include/ "skeleton.dtsi"
 
 / {
+       #address-cells = <1>;
+       #size-cells = <1>;
+
        compatible = "ti,omap5";
        interrupt-parent = <&gic>;
 
        cpus {
                cpu@0 {
                        compatible = "arm,cortex-a15";
-                       timer {
-                               compatible = "arm,armv7-timer";
-                               /* 14th PPI IRQ, active low level-sensitive */
-                               interrupts = <1 14 0x308>;
-                               clock-frequency = <6144000>;
-                       };
                };
                cpu@1 {
                        compatible = "arm,cortex-a15";
-                       timer {
-                               compatible = "arm,armv7-timer";
-                               /* 14th PPI IRQ, active low level-sensitive */
-                               interrupts = <1 14 0x308>;
-                               clock-frequency = <6144000>;
-                       };
                };
        };
 
+       timer {
+               compatible = "arm,armv7-timer";
+               /* PPI secure/nonsecure IRQ, active low level-sensitive */
+               interrupts = <1 13 0x308>,
+                            <1 14 0x308>,
+                            <1 11 0x308>,
+                            <1 10 0x308>;
+               clock-frequency = <6144000>;
+       };
+
+       gic: interrupt-controller@48211000 {
+               compatible = "arm,cortex-a15-gic";
+               interrupt-controller;
+               #interrupt-cells = <3>;
+               reg = <0x48211000 0x1000>,
+                     <0x48212000 0x1000>,
+                     <0x48214000 0x2000>,
+                     <0x48216000 0x2000>;
+       };
+
        /*
         * The soc node represents the soc top level view. It is uses for IPs
         * that are not memory mapped in the MPU view or for the MPU itself.
                #size-cells = <1>;
                ranges;
                ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3";
+               reg = <0x44000000 0x2000>,
+                     <0x44800000 0x3000>,
+                     <0x45000000 0x4000>;
+               interrupts = <0 9 0x4>,
+                            <0 10 0x4>;
 
                counter32k: counter@4ae04000 {
                        compatible = "ti,omap-counter32k";
                        pinctrl-single,function-mask = <0x7fff>;
                };
 
-               gic: interrupt-controller@48211000 {
-                       compatible = "arm,cortex-a15-gic";
-                       interrupt-controller;
-                       #interrupt-cells = <3>;
-                       reg = <0x48211000 0x1000>,
-                             <0x48212000 0x1000>;
+               sdma: dma-controller@4a056000 {
+                       compatible = "ti,omap4430-sdma";
+                       reg = <0x4a056000 0x1000>;
+                       interrupts = <0 12 0x4>,
+                                    <0 13 0x4>,
+                                    <0 14 0x4>,
+                                    <0 15 0x4>;
+                       #dma-cells = <1>;
+                       #dma-channels = <32>;
+                       #dma-requests = <127>;
                };
 
                gpio1: gpio@4ae10000 {
                        reg = <0x4ae10000 0x200>;
                        interrupts = <0 29 0x4>;
                        ti,hwmods = "gpio1";
+                       ti,gpio-always-on;
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                gpio2: gpio@48055000 {
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                gpio3: gpio@48057000 {
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                gpio4: gpio@48059000 {
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                gpio5: gpio@4805b000 {
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                gpio6: gpio@4805d000 {
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                gpio7: gpio@48051000 {
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
                };
 
                gpio8: gpio@48053000 {
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
+               };
+
+               gpmc: gpmc@50000000 {
+                       compatible = "ti,omap4430-gpmc";
+                       reg = <0x50000000 0x1000>;
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       interrupts = <0 20 0x4>;
+                       gpmc,num-cs = <8>;
+                       gpmc,num-waitpins = <4>;
+                       ti,hwmods = "gpmc";
                };
 
                i2c1: i2c@48070000 {
                        ti,hwmods = "i2c5";
                };
 
+               mcspi1: spi@48098000 {
+                       compatible = "ti,omap4-mcspi";
+                       reg = <0x48098000 0x200>;
+                       interrupts = <0 65 0x4>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       ti,hwmods = "mcspi1";
+                       ti,spi-num-cs = <4>;
+                       dmas = <&sdma 35>,
+                              <&sdma 36>,
+                              <&sdma 37>,
+                              <&sdma 38>,
+                              <&sdma 39>,
+                              <&sdma 40>,
+                              <&sdma 41>,
+                              <&sdma 42>;
+                       dma-names = "tx0", "rx0", "tx1", "rx1",
+                                   "tx2", "rx2", "tx3", "rx3";
+               };
+
+               mcspi2: spi@4809a000 {
+                       compatible = "ti,omap4-mcspi";
+                       reg = <0x4809a000 0x200>;
+                       interrupts = <0 66 0x4>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       ti,hwmods = "mcspi2";
+                       ti,spi-num-cs = <2>;
+                       dmas = <&sdma 43>,
+                              <&sdma 44>,
+                              <&sdma 45>,
+                              <&sdma 46>;
+                       dma-names = "tx0", "rx0", "tx1", "rx1";
+               };
+
+               mcspi3: spi@480b8000 {
+                       compatible = "ti,omap4-mcspi";
+                       reg = <0x480b8000 0x200>;
+                       interrupts = <0 91 0x4>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       ti,hwmods = "mcspi3";
+                       ti,spi-num-cs = <2>;
+                       dmas = <&sdma 15>, <&sdma 16>;
+                       dma-names = "tx0", "rx0";
+               };
+
+               mcspi4: spi@480ba000 {
+                       compatible = "ti,omap4-mcspi";
+                       reg = <0x480ba000 0x200>;
+                       interrupts = <0 48 0x4>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       ti,hwmods = "mcspi4";
+                       ti,spi-num-cs = <1>;
+                       dmas = <&sdma 70>, <&sdma 71>;
+                       dma-names = "tx0", "rx0";
+               };
+
                uart1: serial@4806a000 {
                        compatible = "ti,omap4-uart";
                        reg = <0x4806a000 0x100>;
                        ti,hwmods = "mmc1";
                        ti,dual-volt;
                        ti,needs-special-reset;
+                       dmas = <&sdma 61>, <&sdma 62>;
+                       dma-names = "tx", "rx";
                };
 
                mmc2: mmc@480b4000 {
                        interrupts = <0 86 0x4>;
                        ti,hwmods = "mmc2";
                        ti,needs-special-reset;
+                       dmas = <&sdma 47>, <&sdma 48>;
+                       dma-names = "tx", "rx";
                };
 
                mmc3: mmc@480ad000 {
                        interrupts = <0 94 0x4>;
                        ti,hwmods = "mmc3";
                        ti,needs-special-reset;
+                       dmas = <&sdma 77>, <&sdma 78>;
+                       dma-names = "tx", "rx";
                };
 
                mmc4: mmc@480d1000 {
                        interrupts = <0 96 0x4>;
                        ti,hwmods = "mmc4";
                        ti,needs-special-reset;
+                       dmas = <&sdma 57>, <&sdma 58>;
+                       dma-names = "tx", "rx";
                };
 
                mmc5: mmc@480d5000 {
                        interrupts = <0 59 0x4>;
                        ti,hwmods = "mmc5";
                        ti,needs-special-reset;
+                       dmas = <&sdma 59>, <&sdma 60>;
+                       dma-names = "tx", "rx";
                };
 
                keypad: keypad@4ae1c000 {
                        compatible = "ti,omap4-keypad";
+                       reg = <0x4ae1c000 0x400>;
                        ti,hwmods = "kbd";
                };
 
                        reg-names = "mpu", "dma";
                        interrupts = <0 112 0x4>;
                        ti,hwmods = "mcpdm";
+                       dmas = <&sdma 65>,
+                              <&sdma 66>;
+                       dma-names = "up_link", "dn_link";
                };
 
                dmic: dmic@4012e000 {
                        reg-names = "mpu", "dma";
                        interrupts = <0 114 0x4>;
                        ti,hwmods = "dmic";
+                       dmas = <&sdma 67>;
+                       dma-names = "up_link";
                };
 
                mcbsp1: mcbsp@40122000 {
                        interrupt-names = "common";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp1";
+                       dmas = <&sdma 33>,
+                              <&sdma 34>;
+                       dma-names = "tx", "rx";
                };
 
                mcbsp2: mcbsp@40124000 {
                        interrupt-names = "common";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp2";
+                       dmas = <&sdma 17>,
+                              <&sdma 18>;
+                       dma-names = "tx", "rx";
                };
 
                mcbsp3: mcbsp@40126000 {
                        interrupt-names = "common";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp3";
+                       dmas = <&sdma 19>,
+                              <&sdma 20>;
+                       dma-names = "tx", "rx";
                };
 
                timer1: timer@4ae18000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap5430-timer";
                        reg = <0x4ae18000 0x80>;
                        interrupts = <0 37 0x4>;
                        ti,hwmods = "timer1";
                };
 
                timer2: timer@48032000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap5430-timer";
                        reg = <0x48032000 0x80>;
                        interrupts = <0 38 0x4>;
                        ti,hwmods = "timer2";
                };
 
                timer3: timer@48034000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap5430-timer";
                        reg = <0x48034000 0x80>;
                        interrupts = <0 39 0x4>;
                        ti,hwmods = "timer3";
                };
 
                timer4: timer@48036000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap5430-timer";
                        reg = <0x48036000 0x80>;
                        interrupts = <0 40 0x4>;
                        ti,hwmods = "timer4";
                };
 
                timer5: timer@40138000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap5430-timer";
                        reg = <0x40138000 0x80>,
                              <0x49038000 0x80>;
                        interrupts = <0 41 0x4>;
                };
 
                timer6: timer@4013a000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap5430-timer";
                        reg = <0x4013a000 0x80>,
                              <0x4903a000 0x80>;
                        interrupts = <0 42 0x4>;
                };
 
                timer7: timer@4013c000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap5430-timer";
                        reg = <0x4013c000 0x80>,
                              <0x4903c000 0x80>;
                        interrupts = <0 43 0x4>;
                };
 
                timer8: timer@4013e000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap5430-timer";
                        reg = <0x4013e000 0x80>,
                              <0x4903e000 0x80>;
                        interrupts = <0 44 0x4>;
                };
 
                timer9: timer@4803e000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap5430-timer";
                        reg = <0x4803e000 0x80>;
                        interrupts = <0 45 0x4>;
                        ti,hwmods = "timer9";
                };
 
                timer10: timer@48086000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap5430-timer";
                        reg = <0x48086000 0x80>;
                        interrupts = <0 46 0x4>;
                        ti,hwmods = "timer10";
                };
 
                timer11: timer@48088000 {
-                       compatible = "ti,omap2-timer";
+                       compatible = "ti,omap5430-timer";
                        reg = <0x48088000 0x80>;
                        interrupts = <0 47 0x4>;
                        ti,hwmods = "timer11";
                        ti,timer-pwm;
                };
 
+               wdt2: wdt@4ae14000 {
+                       compatible = "ti,omap5-wdt", "ti,omap3-wdt";
+                       reg = <0x4ae14000 0x80>;
+                       interrupts = <0 80 0x4>;
+                       ti,hwmods = "wd_timer2";
+               };
+
                emif1: emif@0x4c000000 {
                        compatible      = "ti,emif-4d5";
                        ti,hwmods       = "emif1";
                        hw-caps-ll-interface;
                        hw-caps-temp-alert;
                };
+
+               omap_control_usb: omap-control-usb@4a002300 {
+                       compatible = "ti,omap-control-usb";
+                       reg = <0x4a002300 0x4>,
+                             <0x4a002370 0x4>;
+                       reg-names = "control_dev_conf", "phy_power_usb";
+                       ti,type = <2>;
+               };
+
+               omap_dwc3@4a020000 {
+                       compatible = "ti,dwc3";
+                       ti,hwmods = "usb_otg_ss";
+                       reg = <0x4a020000 0x1000>;
+                       interrupts = <0 93 4>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       utmi-mode = <2>;
+                       ranges;
+                       dwc3@4a030000 {
+                               compatible = "synopsys,dwc3";
+                               reg = <0x4a030000 0x1000>;
+                               interrupts = <0 92 4>;
+                               usb-phy = <&usb2_phy>, <&usb3_phy>;
+                               tx-fifo-resize;
+                       };
+               };
+
+               ocp2scp {
+                       compatible = "ti,omap-ocp2scp";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       ti,hwmods = "ocp2scp1";
+                       usb2_phy: usb2phy@4a084000 {
+                               compatible = "ti,omap-usb2";
+                               reg = <0x4a084000 0x7c>;
+                               ctrl-module = <&omap_control_usb>;
+                       };
+
+                       usb3_phy: usb3phy@4a084400 {
+                               compatible = "ti,omap-usb3";
+                               reg = <0x4a084400 0x80>,
+                                     <0x4a084800 0x64>,
+                                     <0x4a084c00 0x40>;
+                               reg-names = "phy_rx", "phy_tx", "pll_ctrl";
+                               ctrl-module = <&omap_control_usb>;
+                       };
+               };
        };
 };
index 616990dc92dba2a6ee1f5aec7177a22d21018e45..72c1f27af7f37da20524ee92504192aa3e4b6169 100644 (file)
                reg = <0x80000000 0x40000000>;
        };
 
+       pinmux {
+               pinctrl-names = "default";
+               pinctrl-0 = <&state_default>;
+
+               state_default: pinmux {
+                       clk1_out_pw4 {
+                               nvidia,pins = "clk1_out_pw4";
+                               nvidia,function = "extperiph1";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       dap1_din_pn1 {
+                               nvidia,pins = "dap1_din_pn1";
+                               nvidia,function = "i2s0";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <1>;
+                               nvidia,enable-input = <1>;
+                       };
+                       dap1_dout_pn2 {
+                               nvidia,pins = "dap1_dout_pn2",
+                                               "dap1_fs_pn0",
+                                               "dap1_sclk_pn3";
+                               nvidia,function = "i2s0";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       dap2_din_pa4 {
+                               nvidia,pins = "dap2_din_pa4";
+                               nvidia,function = "i2s1";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <1>;
+                               nvidia,enable-input = <1>;
+                       };
+                       dap2_dout_pa5 {
+                               nvidia,pins = "dap2_dout_pa5",
+                                               "dap2_fs_pa2",
+                                               "dap2_sclk_pa3";
+                               nvidia,function = "i2s1";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       dap4_din_pp5 {
+                               nvidia,pins = "dap4_din_pp5",
+                                               "dap4_dout_pp6",
+                                               "dap4_fs_pp4",
+                                               "dap4_sclk_pp7";
+                               nvidia,function = "i2s3";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       dvfs_pwm_px0 {
+                               nvidia,pins = "dvfs_pwm_px0",
+                                               "dvfs_clk_px2";
+                               nvidia,function = "cldvfs";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       ulpi_clk_py0 {
+                               nvidia,pins = "ulpi_clk_py0",
+                                               "ulpi_data0_po1",
+                                               "ulpi_data1_po2",
+                                               "ulpi_data2_po3",
+                                               "ulpi_data3_po4",
+                                               "ulpi_data4_po5",
+                                               "ulpi_data5_po6",
+                                               "ulpi_data6_po7",
+                                               "ulpi_data7_po0";
+                               nvidia,function = "ulpi";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       ulpi_dir_py1 {
+                               nvidia,pins = "ulpi_dir_py1",
+                                               "ulpi_nxt_py2";
+                               nvidia,function = "ulpi";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <1>;
+                               nvidia,enable-input = <1>;
+                       };
+                       ulpi_stp_py3 {
+                               nvidia,pins = "ulpi_stp_py3";
+                               nvidia,function = "ulpi";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       cam_i2c_scl_pbb1 {
+                               nvidia,pins = "cam_i2c_scl_pbb1",
+                                               "cam_i2c_sda_pbb2";
+                               nvidia,function = "i2c3";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                               nvidia,lock = <0>;
+                               nvidia,open-drain = <0>;
+                       };
+                       cam_mclk_pcc0 {
+                               nvidia,pins = "cam_mclk_pcc0",
+                                               "pbb0";
+                               nvidia,function = "vi_alt3";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                               nvidia,lock = <0>;
+                       };
+                       gen2_i2c_scl_pt5 {
+                               nvidia,pins = "gen2_i2c_scl_pt5",
+                                               "gen2_i2c_sda_pt6";
+                               nvidia,function = "i2c2";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                               nvidia,lock = <0>;
+                               nvidia,open-drain = <0>;
+                       };
+                       gmi_a16_pj7 {
+                               nvidia,pins = "gmi_a16_pj7";
+                               nvidia,function = "uartd";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       gmi_a17_pb0 {
+                               nvidia,pins = "gmi_a17_pb0",
+                                               "gmi_a18_pb1";
+                               nvidia,function = "uartd";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <1>;
+                               nvidia,enable-input = <1>;
+                       };
+                       gmi_a19_pk7 {
+                               nvidia,pins = "gmi_a19_pk7";
+                               nvidia,function = "uartd";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       gmi_ad5_pg5 {
+                               nvidia,pins = "gmi_ad5_pg5",
+                                               "gmi_cs6_n_pi3",
+                                               "gmi_wr_n_pi0";
+                               nvidia,function = "spi4";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       gmi_ad6_pg6 {
+                               nvidia,pins = "gmi_ad6_pg6",
+                                               "gmi_ad7_pg7";
+                               nvidia,function = "spi4";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       gmi_ad12_ph4 {
+                               nvidia,pins = "gmi_ad12_ph4";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       gmi_ad9_ph1 {
+                               nvidia,pins = "gmi_ad9_ph1";
+                               nvidia,function = "pwm1";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       gmi_cs1_n_pj2 {
+                               nvidia,pins = "gmi_cs1_n_pj2",
+                                               "gmi_oe_n_pi1";
+                               nvidia,function = "soc";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <1>;
+                               nvidia,enable-input = <1>;
+                       };
+                       clk2_out_pw5 {
+                               nvidia,pins = "clk2_out_pw5";
+                               nvidia,function = "extperiph2";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       sdmmc1_clk_pz0 {
+                               nvidia,pins = "sdmmc1_clk_pz0";
+                               nvidia,function = "sdmmc1";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       sdmmc1_cmd_pz1 {
+                               nvidia,pins = "sdmmc1_cmd_pz1",
+                                               "sdmmc1_dat0_py7",
+                                               "sdmmc1_dat1_py6",
+                                               "sdmmc1_dat2_py5",
+                                               "sdmmc1_dat3_py4";
+                               nvidia,function = "sdmmc1";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       sdmmc1_wp_n_pv3 {
+                               nvidia,pins = "sdmmc1_wp_n_pv3";
+                               nvidia,function = "spi4";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       sdmmc3_clk_pa6 {
+                               nvidia,pins = "sdmmc3_clk_pa6";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       sdmmc3_cmd_pa7 {
+                               nvidia,pins = "sdmmc3_cmd_pa7",
+                                               "sdmmc3_dat0_pb7",
+                                               "sdmmc3_dat1_pb6",
+                                               "sdmmc3_dat2_pb5",
+                                               "sdmmc3_dat3_pb4",
+                                               "kb_col4_pq4",
+                                               "sdmmc3_clk_lb_out_pee4",
+                                               "sdmmc3_clk_lb_in_pee5";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       sdmmc4_clk_pcc4 {
+                               nvidia,pins = "sdmmc4_clk_pcc4";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       sdmmc4_cmd_pt7 {
+                               nvidia,pins = "sdmmc4_cmd_pt7",
+                                               "sdmmc4_dat0_paa0",
+                                               "sdmmc4_dat1_paa1",
+                                               "sdmmc4_dat2_paa2",
+                                               "sdmmc4_dat3_paa3",
+                                               "sdmmc4_dat4_paa4",
+                                               "sdmmc4_dat5_paa5",
+                                               "sdmmc4_dat6_paa6",
+                                               "sdmmc4_dat7_paa7";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       clk_32k_out_pa0 {
+                               nvidia,pins = "clk_32k_out_pa0";
+                               nvidia,function = "blink";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       kb_col0_pq0 {
+                               nvidia,pins = "kb_col0_pq0",
+                                               "kb_col1_pq1",
+                                               "kb_col2_pq2",
+                                               "kb_row0_pr0",
+                                               "kb_row1_pr1",
+                                               "kb_row2_pr2";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       dap3_din_pp1 {
+                               nvidia,pins = "dap3_din_pp1",
+                                               "dap3_sclk_pp3";
+                               nvidia,function = "displayb";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <1>;
+                               nvidia,enable-input = <0>;
+                       };
+                       pv0 {
+                               nvidia,pins = "pv0";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <1>;
+                               nvidia,enable-input = <0>;
+                       };
+                       kb_row7_pr7 {
+                               nvidia,pins = "kb_row7_pr7";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       kb_row10_ps2 {
+                               nvidia,pins = "kb_row10_ps2";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <1>;
+                               nvidia,enable-input = <1>;
+                       };
+                       kb_row9_ps1 {
+                               nvidia,pins = "kb_row9_ps1";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       pwr_i2c_scl_pz6 {
+                               nvidia,pins = "pwr_i2c_scl_pz6",
+                                               "pwr_i2c_sda_pz7";
+                               nvidia,function = "i2cpwr";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                               nvidia,lock = <0>;
+                               nvidia,open-drain = <0>;
+                       };
+                       sys_clk_req_pz5 {
+                               nvidia,pins = "sys_clk_req_pz5";
+                               nvidia,function = "sysclk";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       core_pwr_req {
+                               nvidia,pins = "core_pwr_req";
+                               nvidia,function = "pwron";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       cpu_pwr_req {
+                               nvidia,pins = "cpu_pwr_req";
+                               nvidia,function = "cpu";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       pwr_int_n {
+                               nvidia,pins = "pwr_int_n";
+                               nvidia,function = "pmi";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <1>;
+                               nvidia,enable-input = <1>;
+                       };
+                       reset_out_n {
+                               nvidia,pins = "reset_out_n";
+                               nvidia,function = "reset_out_n";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       clk3_out_pee0 {
+                               nvidia,pins = "clk3_out_pee0";
+                               nvidia,function = "extperiph3";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       gen1_i2c_scl_pc4 {
+                               nvidia,pins = "gen1_i2c_scl_pc4",
+                                               "gen1_i2c_sda_pc5";
+                               nvidia,function = "i2c1";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                               nvidia,lock = <0>;
+                               nvidia,open-drain = <0>;
+                       };
+                       uart2_cts_n_pj5 {
+                               nvidia,pins = "uart2_cts_n_pj5";
+                               nvidia,function = "uartb";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <1>;
+                               nvidia,enable-input = <1>;
+                       };
+                       uart2_rts_n_pj6 {
+                               nvidia,pins = "uart2_rts_n_pj6";
+                               nvidia,function = "uartb";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       uart2_rxd_pc3 {
+                               nvidia,pins = "uart2_rxd_pc3";
+                               nvidia,function = "irda";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <1>;
+                               nvidia,enable-input = <1>;
+                       };
+                       uart2_txd_pc2 {
+                               nvidia,pins = "uart2_txd_pc2";
+                               nvidia,function = "irda";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       uart3_cts_n_pa1 {
+                               nvidia,pins = "uart3_cts_n_pa1",
+                                               "uart3_rxd_pw7";
+                               nvidia,function = "uartc";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <1>;
+                               nvidia,enable-input = <1>;
+                       };
+                       uart3_rts_n_pc0 {
+                               nvidia,pins = "uart3_rts_n_pc0",
+                                               "uart3_txd_pw6";
+                               nvidia,function = "uartc";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       owr {
+                               nvidia,pins = "owr";
+                               nvidia,function = "owr";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       hdmi_cec_pee3 {
+                               nvidia,pins = "hdmi_cec_pee3";
+                               nvidia,function = "cec";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                               nvidia,lock = <0>;
+                               nvidia,open-drain = <0>;
+                       };
+                       ddc_scl_pv4 {
+                               nvidia,pins = "ddc_scl_pv4",
+                                               "ddc_sda_pv5";
+                               nvidia,function = "i2c4";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                               nvidia,lock = <0>;
+                               nvidia,rcv-sel = <1>;
+                       };
+                       spdif_in_pk6 {
+                               nvidia,pins = "spdif_in_pk6";
+                               nvidia,function = "usb";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                               nvidia,lock = <0>;
+                       };
+                       usb_vbus_en0_pn4 {
+                               nvidia,pins = "usb_vbus_en0_pn4";
+                               nvidia,function = "usb";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                               nvidia,lock = <0>;
+                               nvidia,open-drain = <1>;
+                       };
+                       gpio_x6_aud_px6 {
+                               nvidia,pins = "gpio_x6_aud_px6";
+                               nvidia,function = "spi6";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <1>;
+                               nvidia,enable-input = <1>;
+                       };
+                       gpio_x4_aud_px4 {
+                               nvidia,pins = "gpio_x4_aud_px4",
+                                               "gpio_x7_aud_px7";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <1>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       gpio_x5_aud_px5 {
+                               nvidia,pins = "gpio_x5_aud_px5";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       gpio_w2_aud_pw2 {
+                               nvidia,pins = "gpio_w2_aud_pw2";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       gpio_w3_aud_pw3 {
+                               nvidia,pins = "gpio_w3_aud_pw3";
+                               nvidia,function = "spi6";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       gpio_x1_aud_px1 {
+                               nvidia,pins = "gpio_x1_aud_px1";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <1>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       gpio_x3_aud_px3 {
+                               nvidia,pins = "gpio_x3_aud_px3";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       dap3_fs_pp0 {
+                               nvidia,pins = "dap3_fs_pp0";
+                               nvidia,function = "i2s2";
+                               nvidia,pull = <1>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       dap3_dout_pp2 {
+                               nvidia,pins = "dap3_dout_pp2";
+                               nvidia,function = "i2s2";
+                               nvidia,pull = <1>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       pv1 {
+                               nvidia,pins = "pv1";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       pbb3 {
+                               nvidia,pins = "pbb3",
+                                               "pbb5",
+                                               "pbb6",
+                                               "pbb7";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <1>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       pcc1 {
+                               nvidia,pins = "pcc1",
+                                               "pcc2";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <1>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       gmi_ad0_pg0 {
+                               nvidia,pins = "gmi_ad0_pg0",
+                                               "gmi_ad1_pg1";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       gmi_ad10_ph2 {
+                               nvidia,pins = "gmi_ad10_ph2",
+                                               "gmi_ad11_ph3",
+                                               "gmi_ad13_ph5",
+                                               "gmi_ad8_ph0",
+                                               "gmi_clk_pk1";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <1>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       gmi_ad2_pg2 {
+                               nvidia,pins = "gmi_ad2_pg2",
+                                               "gmi_ad3_pg3";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       gmi_adv_n_pk0 {
+                               nvidia,pins = "gmi_adv_n_pk0",
+                                               "gmi_cs0_n_pj0",
+                                               "gmi_cs2_n_pk3",
+                                               "gmi_cs4_n_pk2",
+                                               "gmi_cs7_n_pi6",
+                                               "gmi_dqs_p_pj3",
+                                               "gmi_iordy_pi5",
+                                               "gmi_wp_n_pc7";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       gmi_cs3_n_pk4 {
+                               nvidia,pins = "gmi_cs3_n_pk4";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       clk2_req_pcc5 {
+                               nvidia,pins = "clk2_req_pcc5";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       kb_col3_pq3 {
+                               nvidia,pins = "kb_col3_pq3",
+                                               "kb_col6_pq6",
+                                               "kb_col7_pq7";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       kb_col5_pq5 {
+                               nvidia,pins = "kb_col5_pq5";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <2>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       kb_row3_pr3 {
+                               nvidia,pins = "kb_row3_pr3",
+                                               "kb_row4_pr4",
+                                               "kb_row6_pr6",
+                                               "kb_row8_ps0";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <1>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       clk3_req_pee1 {
+                               nvidia,pins = "clk3_req_pee1";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       pu4 {
+                               nvidia,pins = "pu4";
+                               nvidia,function = "displayb";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <0>;
+                       };
+                       pu5 {
+                               nvidia,pins = "pu5",
+                                               "pu6";
+                               nvidia,function = "displayb";
+                               nvidia,pull = <0>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       hdmi_int_pn7 {
+                               nvidia,pins = "hdmi_int_pn7";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <1>;
+                               nvidia,tristate = <0>;
+                               nvidia,enable-input = <1>;
+                       };
+                       clk1_req_pee2 {
+                               nvidia,pins = "clk1_req_pee2",
+                                               "usb_vbus_en1_pn5";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <1>;
+                               nvidia,tristate = <1>;
+                               nvidia,enable-input = <0>;
+                       };
+
+                       drive_sdio1 {
+                               nvidia,pins = "drive_sdio1";
+                               nvidia,high-speed-mode = <1>;
+                               nvidia,schmitt = <0>;
+                               nvidia,low-power-mode = <3>;
+                               nvidia,pull-down-strength = <36>;
+                               nvidia,pull-up-strength = <20>;
+                               nvidia,slew-rate-rising = <2>;
+                               nvidia,slew-rate-falling = <2>;
+                       };
+                       drive_sdio3 {
+                               nvidia,pins = "drive_sdio3";
+                               nvidia,high-speed-mode = <1>;
+                               nvidia,schmitt = <0>;
+                               nvidia,low-power-mode = <3>;
+                               nvidia,pull-down-strength = <22>;
+                               nvidia,pull-up-strength = <36>;
+                               nvidia,slew-rate-rising = <0>;
+                               nvidia,slew-rate-falling = <0>;
+                       };
+                       drive_gma {
+                               nvidia,pins = "drive_gma";
+                               nvidia,high-speed-mode = <1>;
+                               nvidia,schmitt = <0>;
+                               nvidia,low-power-mode = <3>;
+                               nvidia,pull-down-strength = <2>;
+                               nvidia,pull-up-strength = <1>;
+                               nvidia,slew-rate-rising = <0>;
+                               nvidia,slew-rate-falling = <0>;
+                               nvidia,drive-type = <1>;
+                       };
+               };
+       };
+
        serial@70006300 {
                status = "okay";
        };
 
+       i2c@7000c000 {
+               status = "okay";
+               clock-frequency = <100000>;
+
+               battery: smart-battery {
+                       compatible = "ti,bq20z45", "sbs,sbs-battery";
+                       reg = <0xb>;
+                       battery-name = "battery";
+                       sbs,i2c-retry-count = <2>;
+                       sbs,poll-retry-count = <100>;
+               };
+       };
+
+       i2c@7000d000 {
+               status = "okay";
+               clock-frequency = <400000>;
+
+               tps51632 {
+                       compatible = "ti,tps51632";
+                       reg = <0x43>;
+                       regulator-name = "vdd-cpu";
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1520000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+
+               tps65090 {
+                       compatible = "ti,tps65090";
+                       reg = <0x48>;
+                       interrupt-parent = <&gpio>;
+                       interrupts = <72 0x04>; /* gpio PJ0 */
+
+                       vsys1-supply = <&vdd_ac_bat_reg>;
+                       vsys2-supply = <&vdd_ac_bat_reg>;
+                       vsys3-supply = <&vdd_ac_bat_reg>;
+                       infet1-supply = <&vdd_ac_bat_reg>;
+                       infet2-supply = <&vdd_ac_bat_reg>;
+                       infet3-supply = <&tps65090_dcdc2_reg>;
+                       infet4-supply = <&tps65090_dcdc2_reg>;
+                       infet5-supply = <&tps65090_dcdc2_reg>;
+                       infet6-supply = <&tps65090_dcdc2_reg>;
+                       infet7-supply = <&tps65090_dcdc2_reg>;
+                       vsys-l1-supply = <&vdd_ac_bat_reg>;
+                       vsys-l2-supply = <&vdd_ac_bat_reg>;
+
+                       regulators {
+                               tps65090_dcdc1_reg: dcdc1 {
+                                       regulator-name = "vdd-sys-5v0";
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               tps65090_dcdc2_reg: dcdc2 {
+                                       regulator-name = "vdd-sys-3v3";
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               dcdc3 {
+                                       regulator-name = "vdd-ao";
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               fet1 {
+                                       regulator-name = "vdd-lcd-bl";
+                               };
+
+                               fet3 {
+                                       regulator-name = "vdd-modem-3v3";
+                               };
+
+                               fet4 {
+                                       regulator-name = "avdd-lcd";
+                               };
+
+                               fet5 {
+                                       regulator-name = "vdd-lvds";
+                               };
+
+                               fet6 {
+                                       regulator-name = "vdd-sd-slot";
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               fet7 {
+                                       regulator-name = "vdd-com-3v3";
+                               };
+
+                               ldo1 {
+                                       regulator-name = "vdd-sby-5v0";
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo2 {
+                                       regulator-name = "vdd-sby-3v3";
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                       };
+               };
+       };
+
        pmc {
                nvidia,invert-interrupt;
        };
 
+       sdhci@78000400 {
+               cd-gpios = <&gpio 170 1>; /* gpio PV2 */
+               bus-width = <4>;
+               status = "okay";
+       };
+
+       sdhci@78000600 {
+               bus-width = <8>;
+               status = "okay";
+               non-removable;
+       };
+
        clocks {
                compatible = "simple-bus";
                #address-cells = <1>;
                        clock-frequency = <32768>;
                };
        };
+
+       regulators {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               vdd_ac_bat_reg: regulator@0 {
+                       compatible = "regulator-fixed";
+                       reg = <0>;
+                       regulator-name = "vdd_ac_bat";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       regulator-always-on;
+               };
+
+               dvdd_ts_reg: regulator@1 {
+                       compatible = "regulator-fixed";
+                       reg = <1>;
+                       regulator-name = "dvdd_ts";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       enable-active-high;
+                       gpio = <&gpio 61 0>; /* GPIO PH5 */
+               };
+
+               lcd_bl_en_reg: regulator@2 {
+                       compatible = "regulator-fixed";
+                       reg = <2>;
+                       regulator-name = "lcd_bl_en";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       enable-active-high;
+                       gpio = <&gpio 58 0>; /* GPIO PH2 */
+               };
+
+               usb1_vbus_reg: regulator@3 {
+                       compatible = "regulator-fixed";
+                       reg = <3>;
+                       regulator-name = "usb1_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       enable-active-high;
+                       gpio = <&gpio 108 0>; /* GPIO PN4 */
+                       gpio-open-drain;
+                       vin-supply = <&tps65090_dcdc1_reg>;
+               };
+
+               usb3_vbus_reg: regulator@4 {
+                       compatible = "regulator-fixed";
+                       reg = <4>;
+                       regulator-name = "usb2_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       enable-active-high;
+                       gpio = <&gpio 86 0>; /* GPIO PK6 */
+                       gpio-open-drain;
+                       vin-supply = <&tps65090_dcdc1_reg>;
+               };
+
+               vdd_hdmi_reg: regulator@5 {
+                       compatible = "regulator-fixed";
+                       reg = <5>;
+                       regulator-name = "vdd_hdmi_5v0";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       enable-active-high;
+                       gpio = <&gpio 81 0>; /* GPIO PK1 */
+                       vin-supply = <&tps65090_dcdc1_reg>;
+               };
+       };
 };
index c1110a9b2a9122f319c81cdff5ceae681caf06ff..629415ffd8dc8c893781195b00aa479f61775f2f 100644 (file)
@@ -4,6 +4,13 @@
        compatible = "nvidia,tegra114";
        interrupt-parent = <&gic>;
 
+       aliases {
+               serial0 = &uarta;
+               serial1 = &uartb;
+               serial2 = &uartc;
+               serial3 = &uartd;
+       };
+
        gic: interrupt-controller {
                compatible = "arm,cortex-a15-gic";
                #interrupt-cells = <3>;
                #clock-cells = <1>;
        };
 
+       apbdma: dma {
+               compatible = "nvidia,tegra114-apbdma";
+               reg = <0x6000a000 0x1400>;
+               interrupts = <0 104 0x04
+                             0 105 0x04
+                             0 106 0x04
+                             0 107 0x04
+                             0 108 0x04
+                             0 109 0x04
+                             0 110 0x04
+                             0 111 0x04
+                             0 112 0x04
+                             0 113 0x04
+                             0 114 0x04
+                             0 115 0x04
+                             0 116 0x04
+                             0 117 0x04
+                             0 118 0x04
+                             0 119 0x04
+                             0 128 0x04
+                             0 129 0x04
+                             0 130 0x04
+                             0 131 0x04
+                             0 132 0x04
+                             0 133 0x04
+                             0 134 0x04
+                             0 135 0x04
+                             0 136 0x04
+                             0 137 0x04
+                             0 138 0x04
+                             0 139 0x04
+                             0 140 0x04
+                             0 141 0x04
+                             0 142 0x04
+                             0 143 0x04>;
+               clocks = <&tegra_car 34>;
+       };
+
        ahb: ahb {
                compatible = "nvidia,tegra114-ahb", "nvidia,tegra30-ahb";
                reg = <0x6000c004 0x14c>;
                       0x70003000 0x40c>;       /* Mux registers */
        };
 
-       serial@70006000 {
+       /*
+        * There are two serial driver i.e. 8250 based simple serial
+        * driver and APB DMA based serial driver for higher baudrate
+        * and performace. To enable the 8250 based driver, the compatible
+        * is "nvidia,tegra114-uart", "nvidia,tegra20-uart" and to enable
+        * the APB DMA based serial driver, the comptible is
+        * "nvidia,tegra114-hsuart", "nvidia,tegra30-hsuart".
+        */
+       uarta: serial@70006000 {
                compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
                reg = <0x70006000 0x40>;
                reg-shift = <2>;
                interrupts = <0 36 0x04>;
+               nvidia,dma-request-selector = <&apbdma 8>;
                status = "disabled";
                clocks = <&tegra_car 6>;
        };
 
-       serial@70006040 {
+       uartb: serial@70006040 {
                compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
                reg = <0x70006040 0x40>;
                reg-shift = <2>;
                interrupts = <0 37 0x04>;
+               nvidia,dma-request-selector = <&apbdma 9>;
                status = "disabled";
                clocks = <&tegra_car 192>;
        };
 
-       serial@70006200 {
+       uartc: serial@70006200 {
                compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
                reg = <0x70006200 0x100>;
                reg-shift = <2>;
                interrupts = <0 46 0x04>;
+               nvidia,dma-request-selector = <&apbdma 10>;
                status = "disabled";
                clocks = <&tegra_car 55>;
        };
 
-       serial@70006300 {
+       uartd: serial@70006300 {
                compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
                reg = <0x70006300 0x100>;
                reg-shift = <2>;
                interrupts = <0 90 0x04>;
+               nvidia,dma-request-selector = <&apbdma 19>;
                status = "disabled";
                clocks = <&tegra_car 65>;
        };
 
+       pwm: pwm {
+               compatible = "nvidia,tegra114-pwm", "nvidia,tegra20-pwm";
+               reg = <0x7000a000 0x100>;
+               #pwm-cells = <2>;
+               clocks = <&tegra_car 17>;
+               status = "disabled";
+       };
+
+       i2c@7000c000 {
+               compatible = "nvidia,tegra114-i2c";
+               reg = <0x7000c000 0x100>;
+               interrupts = <0 38 0x04>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&tegra_car 12>;
+               clock-names = "div-clk";
+               status = "disabled";
+       };
+
+       i2c@7000c400 {
+               compatible = "nvidia,tegra114-i2c";
+               reg = <0x7000c400 0x100>;
+               interrupts = <0 84 0x04>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&tegra_car 54>;
+               clock-names = "div-clk";
+               status = "disabled";
+       };
+
+       i2c@7000c500 {
+               compatible = "nvidia,tegra114-i2c";
+               reg = <0x7000c500 0x100>;
+               interrupts = <0 92 0x04>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&tegra_car 67>;
+               clock-names = "div-clk";
+               status = "disabled";
+       };
+
+       i2c@7000c700 {
+               compatible = "nvidia,tegra114-i2c";
+               reg = <0x7000c700 0x100>;
+               interrupts = <0 120 0x04>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&tegra_car 103>;
+               clock-names = "div-clk";
+               status = "disabled";
+       };
+
+       i2c@7000d000 {
+               compatible = "nvidia,tegra114-i2c";
+               reg = <0x7000d000 0x100>;
+               interrupts = <0 53 0x04>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&tegra_car 47>;
+               clock-names = "div-clk";
+               status = "disabled";
+       };
+
+       spi@7000d400 {
+               compatible = "nvidia,tegra114-spi";
+               reg = <0x7000d400 0x200>;
+               interrupts = <0 59 0x04>;
+               nvidia,dma-request-selector = <&apbdma 15>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&tegra_car 41>;
+               clock-names = "spi";
+               status = "disabled";
+       };
+
+       spi@7000d600 {
+               compatible = "nvidia,tegra114-spi";
+               reg = <0x7000d600 0x200>;
+               interrupts = <0 82 0x04>;
+               nvidia,dma-request-selector = <&apbdma 16>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&tegra_car 44>;
+               clock-names = "spi";
+               status = "disabled";
+       };
+
+       spi@7000d800 {
+               compatible = "nvidia,tegra114-spi";
+               reg = <0x7000d800 0x200>;
+               interrupts = <0 83 0x04>;
+               nvidia,dma-request-selector = <&apbdma 17>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&tegra_car 46>;
+               clock-names = "spi";
+               status = "disabled";
+       };
+
+       spi@7000da00 {
+               compatible = "nvidia,tegra114-spi";
+               reg = <0x7000da00 0x200>;
+               interrupts = <0 93 0x04>;
+               nvidia,dma-request-selector = <&apbdma 18>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&tegra_car 68>;
+               clock-names = "spi";
+               status = "disabled";
+       };
+
+       spi@7000dc00 {
+               compatible = "nvidia,tegra114-spi";
+               reg = <0x7000dc00 0x200>;
+               interrupts = <0 94 0x04>;
+               nvidia,dma-request-selector = <&apbdma 27>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&tegra_car 104>;
+               clock-names = "spi";
+               status = "disabled";
+       };
+
+       spi@7000de00 {
+               compatible = "nvidia,tegra114-spi";
+               reg = <0x7000de00 0x200>;
+               interrupts = <0 79 0x04>;
+               nvidia,dma-request-selector = <&apbdma 28>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&tegra_car 105>;
+               clock-names = "spi";
+               status = "disabled";
+       };
+
        rtc {
                compatible = "nvidia,tegra114-rtc", "nvidia,tegra20-rtc";
                reg = <0x7000e000 0x100>;
                clocks = <&tegra_car 4>;
        };
 
+       kbc {
+               compatible = "nvidia,tegra114-kbc";
+               reg = <0x7000e200 0x100>;
+               interrupts = <0 85 0x04>;
+               clocks = <&tegra_car 36>;
+               status = "disabled";
+       };
+
        pmc {
                compatible = "nvidia,tegra114-pmc";
                reg = <0x7000e400 0x400>;
                nvidia,ahb = <&ahb>;
        };
 
+       sdhci@78000000 {
+               compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci";
+               reg = <0x78000000 0x200>;
+               interrupts = <0 14 0x04>;
+               clocks = <&tegra_car 14>;
+               status = "disable";
+       };
+
+       sdhci@78000200 {
+               compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci";
+               reg = <0x78000200 0x200>;
+               interrupts = <0 15 0x04>;
+               clocks = <&tegra_car 9>;
+               status = "disable";
+       };
+
+       sdhci@78000400 {
+               compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci";
+               reg = <0x78000400 0x200>;
+               interrupts = <0 19 0x04>;
+               clocks = <&tegra_car 69>;
+               status = "disable";
+       };
+
+       sdhci@78000600 {
+               compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci";
+               reg = <0x78000600 0x200>;
+               interrupts = <0 31 0x04>;
+               clocks = <&tegra_car 15>;
+               status = "disable";
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
index 4e3afdef28a87e4fc9b8fb97a0bc5105a0a53f1f..a573b94b7c93eafb313e42bf8dfde31e9ecfcd6a 100644 (file)
                };
        };
 
+       pmc {
+               nvidia,suspend-mode = <2>;
+               nvidia,cpu-pwr-good-time = <5000>;
+               nvidia,cpu-pwr-off-time = <5000>;
+               nvidia,core-pwr-good-time = <3845 3845>;
+               nvidia,core-pwr-off-time = <3875>;
+               nvidia,sys-clock-req-active-high;
+       };
+
        memory-controller@7000f400 {
                emc-table@83250 {
                        reg = <83250>;
                        "Mic", "MIC1";
 
                nvidia,ac97-controller = <&ac97>;
+
+               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 
        regulators {
index ae9d5a20834e542c364bd146474f803148f41d2d..e7d5de4e00b99e57628298cd5c3d4c3fb4fb67fd 100644 (file)
 
        pmc {
                nvidia,invert-interrupt;
+               nvidia,suspend-mode = <2>;
+               nvidia,cpu-pwr-good-time = <5000>;
+               nvidia,cpu-pwr-off-time = <5000>;
+               nvidia,core-pwr-good-time = <3845 3845>;
+               nvidia,core-pwr-off-time = <3875>;
+               nvidia,sys-clock-req-active-high;
        };
 
        usb@c5000000 {
                };
        };
 
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               power {
+                       label = "Power";
+                       gpios = <&gpio 170 1>; /* gpio PV2, active low */
+                       linux,code = <116>; /* KEY_POWER */
+                       gpio-key,wakeup;
+               };
+       };
+
        kbc {
                status = "okay";
                nvidia,debounce-delay-ms = <2>;
                nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
                nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */
                nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */
+
+               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index a2d6d6541f83ebc8bf3e73d7cff4b0b1848959ef..ace23437da8902ec212df6124ec80d05c5bd7d72 100644 (file)
@@ -6,6 +6,10 @@
        model = "Avionic Design Medcom-Wide board";
        compatible = "ad,medcom-wide", "ad,tamonten", "nvidia,tegra20";
 
+       pwm {
+               status = "okay";
+       };
+
        i2c@7000c000 {
                wm8903: wm8903@1a {
                        compatible = "wlf,wm8903";
@@ -54,5 +58,8 @@
 
                nvidia,spkr-en-gpios = <&wm8903 2 0>;
                nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
+
+               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index fd60940e40636949aba4aa23e5ca5acd7efdf7ea..e3e0c9977df451a778006bc71d75d3aec9022f93 100644 (file)
 
        pmc {
                nvidia,invert-interrupt;
+               nvidia,suspend-mode = <2>;
+               nvidia,cpu-pwr-good-time = <2000>;
+               nvidia,cpu-pwr-off-time = <0>;
+               nvidia,core-pwr-good-time = <3845 3845>;
+               nvidia,core-pwr-off-time = <0>;
+               nvidia,sys-clock-req-active-high;
        };
 
        usb@c5000000 {
        sdhci@c8000600 {
                status = "okay";
                bus-width = <8>;
+               non-removable;
        };
 
        clocks {
                nvidia,audio-codec = <&alc5632>;
                nvidia,i2s-controller = <&tegra_i2s1>;
                nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
+
+               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index 289480026fbfadd52308a49f3134b43edb2e04db..1a17cc30bb9d47b002998d0fd2073e3d99aa95c2 100644 (file)
@@ -52,5 +52,8 @@
 
                nvidia,spkr-en-gpios = <&wm8903 2 0>;
                nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
+
+               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index 4ee700a33ca55e4fbf00c0202cc85217d02ee10f..cee4c34010fed6fa1d1ce96a1c45bebccf97a974 100644 (file)
 
        pmc {
                nvidia,invert-interrupt;
+               nvidia,suspend-mode = <2>;
+               nvidia,cpu-pwr-good-time = <5000>;
+               nvidia,cpu-pwr-off-time = <5000>;
+               nvidia,core-pwr-good-time = <3845 3845>;
+               nvidia,core-pwr-off-time = <3875>;
+               nvidia,sys-clock-req-active-high;
        };
 
        memory-controller@7000f400 {
                status = "okay";
                power-gpios = <&gpio 86 0>; /* gpio PK6 */
                bus-width = <4>;
+               keep-power-in-suspend;
        };
 
        sdhci@c8000400 {
        sdhci@c8000600 {
                status = "okay";
                bus-width = <8>;
+               non-removable;
        };
 
        clocks {
 
                nvidia,spkr-en-gpios = <&wm8903 2 0>;
                nvidia,hp-det-gpios = <&gpio 185 0>; /* gpio PX1 */
+
+               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index c190257259182b6668c156b46ea8259957435e9b..50b3ec16b93aa20e6a70f42fe0e0825657e93eb4 100644 (file)
 
        pmc {
                nvidia,invert-interrupt;
+               nvidia,suspend-mode = <2>;
+               nvidia,cpu-pwr-good-time = <5000>;
+               nvidia,cpu-pwr-off-time = <5000>;
+               nvidia,core-pwr-good-time = <3845 3845>;
+               nvidia,core-pwr-off-time = <3875>;
+               nvidia,sys-clock-req-active-high;
        };
 
        usb@c5008000 {
index 402b21004bef5859908d00d4191878a44ff44260..742f0b38d21df42524a2bc9c0ccd3d1fb60e0e7c 100644 (file)
@@ -52,5 +52,8 @@
 
                nvidia,spkr-en-gpios = <&wm8903 2 0>;
                nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
+
+               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index a9f3f06580f5fc9c82a7b5e4c9f281bcbb9b2eb2..9cc78a15d739860393edb0b227aba930444cb59f 100644 (file)
                };
        };
 
+       pmc {
+               nvidia,suspend-mode = <2>;
+               nvidia,cpu-pwr-good-time = <5000>;
+               nvidia,cpu-pwr-off-time = <5000>;
+               nvidia,core-pwr-good-time = <3845 3845>;
+               nvidia,core-pwr-off-time = <3875>;
+               nvidia,sys-clock-req-active-high;
+       };
+
        usb@c5000000 {
                status = "okay";
                nvidia,vbus-gpio = <&gpio 170 0>; /* gpio PV2 */
                };
        };
 
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               power {
+                       label = "Power";
+                       gpios = <&gpio 190 1>; /* gpio PX6, active low */
+                       linux,code = <116>; /* KEY_POWER */
+                       gpio-key,wakeup;
+               };
+       };
+
        poweroff {
                compatible = "gpio-poweroff";
                gpios = <&gpio 191 1>; /* gpio PX7, active low */
                compatible = "nvidia,tegra-audio-trimslice";
                nvidia,i2s-controller = <&tegra_i2s1>;
                nvidia,audio-codec = <&codec>;
+
+               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index f544806e9618d6aa8cdf70dc4ef59078fc992aa4..dd38f1f038347e6d328f1af6b0757d7fa03b9c36 100644 (file)
 
        pmc {
                nvidia,invert-interrupt;
+               nvidia,suspend-mode = <2>;
+               nvidia,cpu-pwr-good-time = <2000>;
+               nvidia,cpu-pwr-off-time = <100>;
+               nvidia,core-pwr-good-time = <3845 3845>;
+               nvidia,core-pwr-off-time = <458>;
+               nvidia,sys-clock-req-active-high;
        };
 
        usb@c5000000 {
                status = "okay";
                power-gpios = <&gpio 86 0>; /* gpio PK6 */
                bus-width = <4>;
+               keep-power-in-suspend;
        };
 
        sdhci@c8000400 {
        sdhci@c8000600 {
                status = "okay";
                bus-width = <8>;
+               non-removable;
        };
 
        clocks {
                };
        };
 
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               power {
+                       label = "Power";
+                       gpios = <&gpio 170 1>; /* gpio PV2, active low */
+                       linux,code = <116>; /* KEY_POWER */
+                       gpio-key,wakeup;
+               };
+       };
+
        regulators {
                compatible = "simple-bus";
                #address-cells = <1>;
                nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
                nvidia,int-mic-en-gpios = <&gpio 184 0>; /* gpio PX0 */
                nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */
+
+               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index 258cf945f515265b02dafbb419170519259a1bd0..d2567f83aaffd19584e45c8d080a560e74d1172d 100644 (file)
 
        pmc {
                nvidia,invert-interrupt;
+               nvidia,suspend-mode = <2>;
+               nvidia,cpu-pwr-good-time = <2000>;
+               nvidia,cpu-pwr-off-time = <1000>;
+               nvidia,core-pwr-good-time = <0 3845>;
+               nvidia,core-pwr-off-time = <93727>;
+               nvidia,core-power-req-active-high;
+               nvidia,sys-clock-req-active-high;
+               nvidia,combined-power-req;
        };
 
        usb@c5000000 {
        sdhci@c8000600 {
                status = "okay";
                bus-width = <8>;
+               non-removable;
        };
 
        clocks {
                nvidia,repeat-delay-ms = <160>;
                nvidia,kbc-row-pins = <0 1 2>;
                nvidia,kbc-col-pins = <16 17>;
+               nvidia,wakeup-source;
                linux,keymap = <0x00000074      /* KEY_POWER */
                                0x01000066      /* KEY_HOME */
                                0x0101009E      /* KEY_BACK */
 
                nvidia,i2s-controller = <&tegra_i2s1>;
                nvidia,audio-codec = <&codec>;
+
+               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index fc7febc2b386ade8311ff18b11a6e938ebacd885..56a91106041b31ca91a6ef9559e11abcc8f2cc1e 100644 (file)
                compatible = "nvidia,tegra20-das";
                reg = <0x70000c00 0x80>;
        };
-       
+
        tegra_ac97: ac97 {
                compatible = "nvidia,tegra20-ac97";
                reg = <0x70002000 0x200>;
                reg = <0x7000a000 0x100>;
                #pwm-cells = <2>;
                clocks = <&tegra_car 17>;
+               status = "disabled";
        };
 
        rtc {
                #size-cells = <0>;
        };
 
-       phy1: usb-phy@c5000400 {
-               compatible = "nvidia,tegra20-usb-phy";
-               reg = <0xc5000400 0x3c00>;
-               phy_type = "utmi";
-               nvidia,has-legacy-mode;
-               clocks = <&tegra_car 22>, <&tegra_car 127>;
-               clock-names = "phy", "pll_u";
-       };
-
-       phy2: usb-phy@c5004400 {
-               compatible = "nvidia,tegra20-usb-phy";
-               reg = <0xc5004400 0x3c00>;
-               phy_type = "ulpi";
-               clocks = <&tegra_car 94>, <&tegra_car 127>;
-               clock-names = "phy", "pll_u";
-       };
-
-       phy3: usb-phy@c5008400 {
-               compatible = "nvidia,tegra20-usb-phy";
-               reg = <0xc5008400 0x3C00>;
-               phy_type = "utmi";
-               clocks = <&tegra_car 22>, <&tegra_car 127>;
-               clock-names = "phy", "pll_u";
-       };
-
        usb@c5000000 {
                compatible = "nvidia,tegra20-ehci", "usb-ehci";
                reg = <0xc5000000 0x4000>;
                status = "disabled";
        };
 
+       phy1: usb-phy@c5000400 {
+               compatible = "nvidia,tegra20-usb-phy";
+               reg = <0xc5000400 0x3c00>;
+               phy_type = "utmi";
+               nvidia,has-legacy-mode;
+               clocks = <&tegra_car 22>, <&tegra_car 127>;
+               clock-names = "phy", "pll_u";
+       };
+
        usb@c5004000 {
                compatible = "nvidia,tegra20-ehci", "usb-ehci";
                reg = <0xc5004000 0x4000>;
                status = "disabled";
        };
 
+       phy2: usb-phy@c5004400 {
+               compatible = "nvidia,tegra20-usb-phy";
+               reg = <0xc5004400 0x3c00>;
+               phy_type = "ulpi";
+               clocks = <&tegra_car 93>, <&tegra_car 127>;
+               clock-names = "phy", "pll_u";
+       };
+
        usb@c5008000 {
                compatible = "nvidia,tegra20-ehci", "usb-ehci";
                reg = <0xc5008000 0x4000>;
                status = "disabled";
        };
 
+       phy3: usb-phy@c5008400 {
+               compatible = "nvidia,tegra20-usb-phy";
+               reg = <0xc5008400 0x3c00>;
+               phy_type = "utmi";
+               clocks = <&tegra_car 22>, <&tegra_car 127>;
+               clock-names = "phy", "pll_u";
+       };
+
        sdhci@c8000000 {
                compatible = "nvidia,tegra20-sdhci";
                reg = <0xc8000000 0x200>;
index 6248b2445b32e3df61b0344b3a436f69edef1f62..b732f7c13a662a81024c7efcf07b50b106ef7362 100644 (file)
        pmc {
                status = "okay";
                nvidia,invert-interrupt;
+               nvidia,suspend-mode = <2>;
+               nvidia,cpu-pwr-good-time = <2000>;
+               nvidia,cpu-pwr-off-time = <200>;
+               nvidia,core-pwr-good-time = <3845 3845>;
+               nvidia,core-pwr-off-time = <0>;
+               nvidia,core-power-req-active-high;
+               nvidia,sys-clock-req-active-high;
        };
 
        sdhci@78000000 {
        sdhci@78000600 {
                status = "okay";
                bus-width = <8>;
+               non-removable;
        };
 
        clocks {
index adc88aa50eb634e5c36b002f6a06420aa6917a7c..e392bd2dab9b5af322d39a5363e4e9cd479ef723 100644 (file)
@@ -88,6 +88,7 @@
                status = "okay";
                power-gpios = <&gpio 28 0>; /* gpio PD4 */
                bus-width = <4>;
+               keep-power-in-suspend;
        };
 };
 
index 08163e145d57d10691f85ae6de770321d5f168f4..d0db6c7e774fa5de34fdb7b2a8609724a66db444 100644 (file)
                status = "okay";
                power-gpios = <&gpio 27 0>; /* gpio PD3 */
                bus-width = <4>;
+               keep-power-in-suspend;
        };
 };
index 65bf2b63174e772c2c8856f91d4fed51b182bdca..01b4c26fad965d1f315da0eeaef94c98bfecd9fd 100644 (file)
        pmc {
                status = "okay";
                nvidia,invert-interrupt;
+               nvidia,suspend-mode = <2>;
+               nvidia,cpu-pwr-good-time = <2000>;
+               nvidia,cpu-pwr-off-time = <200>;
+               nvidia,core-pwr-good-time = <3845 3845>;
+               nvidia,core-pwr-off-time = <0>;
+               nvidia,core-power-req-active-high;
+               nvidia,sys-clock-req-active-high;
        };
 
        sdhci@78000000 {
        sdhci@78000600 {
                status = "okay";
                bus-width = <8>;
+               non-removable;
        };
 
        clocks {
 
                nvidia,spkr-en-gpios = <&wm8903 2 0>;
                nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
+
+               clocks = <&tegra_car 184>, <&tegra_car 185>, <&tegra_car 120>;
+               clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index 9fe7a92b4c8508e4925abf76205b08202d02e07f..15ded605142aa1cbe0d47c8e040649f22b99b47c 100644 (file)
                reg = <0x7000a000 0x100>;
                #pwm-cells = <2>;
                clocks = <&tegra_car 17>;
+               status = "disabled";
        };
 
        rtc {
index ed0bc9546837d8f40f3bf873e20055717c5d1451..b3034da00a37bfe6a5361420bc2fb8d99101fb5a 100644 (file)
                compatible = "ti,twl4030-wdt";
        };
 
+       vcc: regulator-vdd1 {
+               compatible = "ti,twl4030-vdd1";
+               regulator-min-microvolt = <600000>;
+               regulator-max-microvolt = <1450000>;
+       };
+
        vdac: regulator-vdac {
                compatible = "ti,twl4030-vdac";
                regulator-min-microvolt = <1800000>;
@@ -67,7 +73,7 @@
                #interrupt-cells = <1>;
        };
 
-       twl4030-usb {
+       usb2_phy: twl4030-usb {
                compatible = "ti,twl4030-usb";
                interrupts = <10>, <4>;
                usb1v5-supply = <&vusb1v5>;
                usb3v1-supply = <&vusb3v1>;
                usb_mode = <1>;
        };
+
+       twl_pwm: pwm {
+               compatible = "ti,twl4030-pwm";
+               #pwm-cells = <2>;
+       };
+
+       twl_pwmled: pwmled {
+               compatible = "ti,twl4030-pwmled";
+               #pwm-cells = <2>;
+       };
 };
index 9996cfc5ee809a8854817757aded21e59b861161..2e3bd3172b2366227a78f8404f191e4d0e6e8be6 100644 (file)
                compatible = "ti,twl6030-usb";
                interrupts = <4>, <10>;
        };
+
+       twl_pwm: pwm {
+               /* provides two PWMs (id 0, 1 for PWM1 and PWM2) */
+               compatible = "ti,twl6030-pwm";
+               #pwm-cells = <2>;
+       };
+
+       twl_pwmled: pwmled {
+               /* provides one PWM (id 0 for Charging indicator LED) */
+               compatible = "ti,twl6030-pwmled";
+               #pwm-cells = <2>;
+       };
 };
index b1c0a59582751a12142bbbac473dce3c01819fb9..961aea8bbad5358a503612926b15ecbc8d42fd79 100644 (file)
@@ -41,6 +41,12 @@ static struct of_dev_auxdata da850_auxdata_lookup[] __initdata = {
        OF_DEV_AUXDATA("ti,davinci-i2c", 0x01c22000, "i2c_davinci.1", NULL),
        OF_DEV_AUXDATA("ti,davinci-wdt", 0x01c21000, "watchdog", NULL),
        OF_DEV_AUXDATA("ti,da830-mmc", 0x01c40000, "da830-mmc.0", NULL),
+       OF_DEV_AUXDATA("ti,da850-ehrpwm", 0x01f00000, "ehrpwm", NULL),
+       OF_DEV_AUXDATA("ti,da850-ehrpwm", 0x01f02000, "ehrpwm", NULL),
+       OF_DEV_AUXDATA("ti,da850-ecap", 0x01f06000, "ecap", NULL),
+       OF_DEV_AUXDATA("ti,da850-ecap", 0x01f07000, "ecap", NULL),
+       OF_DEV_AUXDATA("ti,da850-ecap", 0x01f08000, "ecap", NULL),
+       OF_DEV_AUXDATA("ti,da830-spi", 0x01f0e000, "spi_davinci.1", NULL),
        {}
 };
 
index 46089fe247053dbea41a91afaa4154277aa1038a..d126f26dbbf1e6d7a22f18e1d993154045fb2be5 100644 (file)
@@ -120,17 +120,6 @@ static struct map_desc exynos_iodesc[] __initdata = {
        },
 };
 
-#ifdef CONFIG_ARCH_EXYNOS5
-static struct map_desc exynos5440_iodesc[] __initdata = {
-       {
-               .virtual        = (unsigned long)S5P_VA_CHIPID,
-               .pfn            = __phys_to_pfn(EXYNOS5440_PA_CHIPID),
-               .length         = SZ_4K,
-               .type           = MT_DEVICE,
-       },
-};
-#endif
-
 static struct map_desc exynos4_iodesc[] __initdata = {
        {
                .virtual        = (unsigned long)S3C_VA_SYS,
@@ -348,6 +337,31 @@ void __init exynos_init_late(void)
        exynos_pm_late_initcall();
 }
 
+#ifdef CONFIG_OF
+int __init exynos_fdt_map_chipid(unsigned long node, const char *uname,
+                                       int depth, void *data)
+{
+       struct map_desc iodesc;
+       __be32 *reg;
+       unsigned long len;
+
+       if (!of_flat_dt_is_compatible(node, "samsung,exynos4210-chipid") &&
+               !of_flat_dt_is_compatible(node, "samsung,exynos5440-clock"))
+               return 0;
+
+       reg = of_get_flat_dt_prop(node, "reg", &len);
+       if (reg == NULL || len != (sizeof(unsigned long) * 2))
+               return 0;
+
+       iodesc.pfn = __phys_to_pfn(be32_to_cpu(reg[0]));
+       iodesc.length = be32_to_cpu(reg[1]) - 1;
+       iodesc.virtual = (unsigned long)S5P_VA_CHIPID;
+       iodesc.type = MT_DEVICE;
+       iotable_init(&iodesc, 1);
+       return 1;
+}
+#endif
+
 /*
  * exynos_map_io
  *
@@ -356,19 +370,12 @@ void __init exynos_init_late(void)
 
 void __init exynos_init_io(struct map_desc *mach_desc, int size)
 {
-       struct map_desc *iodesc = exynos_iodesc;
-       int iodesc_sz = ARRAY_SIZE(exynos_iodesc);
-#if defined(CONFIG_OF) && defined(CONFIG_ARCH_EXYNOS5)
-       unsigned long root = of_get_flat_dt_root();
-
-       /* initialize the io descriptors we need for initialization */
-       if (of_flat_dt_is_compatible(root, "samsung,exynos5440")) {
-               iodesc = exynos5440_iodesc;
-               iodesc_sz = ARRAY_SIZE(exynos5440_iodesc);
-       }
+#ifdef CONFIG_OF
+       if (initial_boot_params)
+               of_scan_flat_dt(exynos_fdt_map_chipid, NULL);
+       else
 #endif
-
-       iotable_init(iodesc, iodesc_sz);
+               iotable_init(exynos_iodesc, ARRAY_SIZE(exynos_iodesc));
 
        if (mach_desc)
                iotable_init(mach_desc, size);
index 99e0a79f3b1f622a48bf4421a3d64776183de402..92b29bb583cbb560a1b25e576ee5cb0b7095f88a 100644 (file)
@@ -56,7 +56,6 @@
 #define EXYNOS4_PA_ONENAND_DMA         0x0C600000
 
 #define EXYNOS_PA_CHIPID               0x10000000
-#define EXYNOS5440_PA_CHIPID           0x00160000
 
 #define EXYNOS4_PA_SYSCON              0x10010000
 #define EXYNOS5_PA_SYSCON              0x10050100
index b5c1bdd3dcdf7259ea7061814af1653bffb19648..5b62b6489d4bbdec32809ce8597af258478bab93 100644 (file)
@@ -22,7 +22,6 @@
 #include <linux/irqchip.h>
 #include <linux/irqchip/mxs.h>
 #include <linux/micrel_phy.h>
-#include <linux/mxsfb.h>
 #include <linux/of_address.h>
 #include <linux/of_platform.h>
 #include <linux/phy.h>
@@ -61,106 +60,6 @@ static inline void __mxs_togl(u32 mask, void __iomem *reg)
        __raw_writel(mask, reg + MXS_TOG_ADDR);
 }
 
-static struct fb_videomode mx23evk_video_modes[] = {
-       {
-               .name           = "Samsung-LMS430HF02",
-               .refresh        = 60,
-               .xres           = 480,
-               .yres           = 272,
-               .pixclock       = 108096, /* picosecond (9.2 MHz) */
-               .left_margin    = 15,
-               .right_margin   = 8,
-               .upper_margin   = 12,
-               .lower_margin   = 4,
-               .hsync_len      = 1,
-               .vsync_len      = 1,
-       },
-};
-
-static struct fb_videomode mx28evk_video_modes[] = {
-       {
-               .name           = "Seiko-43WVF1G",
-               .refresh        = 60,
-               .xres           = 800,
-               .yres           = 480,
-               .pixclock       = 29851, /* picosecond (33.5 MHz) */
-               .left_margin    = 89,
-               .right_margin   = 164,
-               .upper_margin   = 23,
-               .lower_margin   = 10,
-               .hsync_len      = 10,
-               .vsync_len      = 10,
-       },
-};
-
-static struct fb_videomode m28evk_video_modes[] = {
-       {
-               .name           = "Ampire AM-800480R2TMQW-T01H",
-               .refresh        = 60,
-               .xres           = 800,
-               .yres           = 480,
-               .pixclock       = 30066, /* picosecond (33.26 MHz) */
-               .left_margin    = 0,
-               .right_margin   = 256,
-               .upper_margin   = 0,
-               .lower_margin   = 45,
-               .hsync_len      = 1,
-               .vsync_len      = 1,
-       },
-};
-
-static struct fb_videomode apx4devkit_video_modes[] = {
-       {
-               .name           = "HannStar PJ70112A",
-               .refresh        = 60,
-               .xres           = 800,
-               .yres           = 480,
-               .pixclock       = 33333, /* picosecond (30.00 MHz) */
-               .left_margin    = 88,
-               .right_margin   = 40,
-               .upper_margin   = 32,
-               .lower_margin   = 13,
-               .hsync_len      = 48,
-               .vsync_len      = 3,
-               .sync           = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
-       },
-};
-
-static struct fb_videomode apf28dev_video_modes[] = {
-       {
-               .name = "LW700",
-               .refresh = 60,
-               .xres = 800,
-               .yres = 480,
-               .pixclock = 30303, /* picosecond */
-               .left_margin = 96,
-               .right_margin = 96, /* at least 3 & 1 */
-               .upper_margin = 0x14,
-               .lower_margin = 0x15,
-               .hsync_len = 64,
-               .vsync_len = 4,
-               .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
-       },
-};
-
-static struct fb_videomode cfa10049_video_modes[] = {
-       {
-               .name           = "Himax HX8357-B",
-               .refresh        = 60,
-               .xres           = 320,
-               .yres           = 480,
-               .pixclock       = 108506, /* picosecond (9.216 MHz) */
-               .left_margin    = 2,
-               .right_margin   = 2,
-               .upper_margin   = 2,
-               .lower_margin   = 2,
-               .hsync_len      = 15,
-               .vsync_len      = 15,
-       },
-};
-
-static struct mxsfb_platform_data mxsfb_pdata __initdata;
-
 /*
  * MX28EVK_FLEXCAN_SWITCH is shared between both flexcan controllers
  */
@@ -191,8 +90,6 @@ static void mx28evk_flexcan1_switch(int enable)
 static struct flexcan_platform_data flexcan_pdata[2];
 
 static struct of_dev_auxdata mxs_auxdata_lookup[] __initdata = {
-       OF_DEV_AUXDATA("fsl,imx23-lcdif", 0x80030000, NULL, &mxsfb_pdata),
-       OF_DEV_AUXDATA("fsl,imx28-lcdif", 0x80030000, NULL, &mxsfb_pdata),
        OF_DEV_AUXDATA("fsl,imx28-flexcan", 0x80032000, NULL, &flexcan_pdata[0]),
        OF_DEV_AUXDATA("fsl,imx28-flexcan", 0x80034000, NULL, &flexcan_pdata[1]),
        { /* sentinel */ }
@@ -342,16 +239,6 @@ static void __init update_fec_mac_prop(enum mac_oui oui)
        }
 }
 
-static void __init imx23_evk_init(void)
-{
-       mxsfb_pdata.mode_list = mx23evk_video_modes;
-       mxsfb_pdata.mode_count = ARRAY_SIZE(mx23evk_video_modes);
-       mxsfb_pdata.default_bpp = 32;
-       mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT;
-       mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT |
-                               MXSFB_SYNC_DOTCLK_FAILING_ACT;
-}
-
 static inline void enable_clk_enet_out(void)
 {
        struct clk *clk = clk_get_sys("enet_out", NULL);
@@ -362,16 +249,8 @@ static inline void enable_clk_enet_out(void)
 
 static void __init imx28_evk_init(void)
 {
-       enable_clk_enet_out();
        update_fec_mac_prop(OUI_FSL);
 
-       mxsfb_pdata.mode_list = mx28evk_video_modes;
-       mxsfb_pdata.mode_count = ARRAY_SIZE(mx28evk_video_modes);
-       mxsfb_pdata.default_bpp = 32;
-       mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT;
-       mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT |
-                               MXSFB_SYNC_DOTCLK_FAILING_ACT;
-
        mxs_saif_clkmux_select(MXS_DIGCTL_SAIF_CLKMUX_EXTMSTR0);
 }
 
@@ -384,20 +263,6 @@ static void __init imx28_evk_post_init(void)
        }
 }
 
-static void __init m28evk_init(void)
-{
-       mxsfb_pdata.mode_list = m28evk_video_modes;
-       mxsfb_pdata.mode_count = ARRAY_SIZE(m28evk_video_modes);
-       mxsfb_pdata.default_bpp = 16;
-       mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT;
-       mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT;
-}
-
-static void __init sc_sps1_init(void)
-{
-       enable_clk_enet_out();
-}
-
 static int apx4devkit_phy_fixup(struct phy_device *phy)
 {
        phy->dev_flags |= MICREL_PHY_50MHZ_CLK;
@@ -411,13 +276,6 @@ static void __init apx4devkit_init(void)
        if (IS_BUILTIN(CONFIG_PHYLIB))
                phy_register_fixup_for_uid(PHY_ID_KSZ8051, MICREL_PHY_ID_MASK,
                                           apx4devkit_phy_fixup);
-
-       mxsfb_pdata.mode_list = apx4devkit_video_modes;
-       mxsfb_pdata.mode_count = ARRAY_SIZE(apx4devkit_video_modes);
-       mxsfb_pdata.default_bpp = 32;
-       mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT;
-       mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT |
-                               MXSFB_SYNC_DOTCLK_FAILING_ACT;
 }
 
 #define ENET0_MDC__GPIO_4_0    MXS_GPIO_NR(4, 0)
@@ -496,52 +354,24 @@ static void __init tx28_post_init(void)
 
 static void __init cfa10049_init(void)
 {
-       enable_clk_enet_out();
        update_fec_mac_prop(OUI_CRYSTALFONTZ);
-
-       mxsfb_pdata.mode_list = cfa10049_video_modes;
-       mxsfb_pdata.mode_count = ARRAY_SIZE(cfa10049_video_modes);
-       mxsfb_pdata.default_bpp = 32;
-       mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT;
-       mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT;
 }
 
 static void __init cfa10037_init(void)
 {
-       enable_clk_enet_out();
        update_fec_mac_prop(OUI_CRYSTALFONTZ);
 }
 
-static void __init apf28_init(void)
-{
-       enable_clk_enet_out();
-
-       mxsfb_pdata.mode_list = apf28dev_video_modes;
-       mxsfb_pdata.mode_count = ARRAY_SIZE(apf28dev_video_modes);
-       mxsfb_pdata.default_bpp = 16;
-       mxsfb_pdata.ld_intf_width = STMLCDIF_16BIT;
-       mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT |
-                               MXSFB_SYNC_DOTCLK_FAILING_ACT;
-}
-
 static void __init mxs_machine_init(void)
 {
        if (of_machine_is_compatible("fsl,imx28-evk"))
                imx28_evk_init();
-       else if (of_machine_is_compatible("fsl,imx23-evk"))
-               imx23_evk_init();
-       else if (of_machine_is_compatible("denx,m28evk"))
-               m28evk_init();
        else if (of_machine_is_compatible("bluegiga,apx4devkit"))
                apx4devkit_init();
        else if (of_machine_is_compatible("crystalfontz,cfa10037"))
                cfa10037_init();
        else if (of_machine_is_compatible("crystalfontz,cfa10049"))
                cfa10049_init();
-       else if (of_machine_is_compatible("armadeus,imx28-apf28"))
-               apf28_init();
-       else if (of_machine_is_compatible("schulercontrol,imx28-sps1"))
-               sc_sps1_init();
 
        of_platform_populate(NULL, of_default_bus_match_table,
                             mxs_auxdata_lookup, NULL);
index 78813b3972098faf7860be9a90ce4fd94b1ac1dc..88aa6b1835c3674f4483e2df155ed9e9b0fa613f 100644 (file)
@@ -110,6 +110,7 @@ MACHINE_END
 
 static const char *omap3_gp_boards_compat[] __initdata = {
        "ti,omap3-beagle",
+       "timll,omap3-devkit8000",
        NULL,
 };
 
index 93f213b6a78422ae51abe2c963fac9554f009480..d25a95fe99216c582f97b0a0aee860c3573eaf68 100644 (file)
 #include <linux/slab.h>
 #include <linux/bootmem.h>
 #include <linux/cpu.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
 
 #include <asm/system_misc.h>
 
@@ -2349,6 +2351,34 @@ static int _shutdown(struct omap_hwmod *oh)
        return 0;
 }
 
+/**
+ * of_dev_hwmod_lookup - look up needed hwmod from dt blob
+ * @np: struct device_node *
+ * @oh: struct omap_hwmod *
+ *
+ * Parse the dt blob and find out needed hwmod. Recursive function is
+ * implemented to take care hierarchical dt blob parsing.
+ * Return: The device node on success or NULL on failure.
+ */
+static struct device_node *of_dev_hwmod_lookup(struct device_node *np,
+                                               struct omap_hwmod *oh)
+{
+       struct device_node *np0 = NULL, *np1 = NULL;
+       const char *p;
+
+       for_each_child_of_node(np, np0) {
+               if (of_find_property(np0, "ti,hwmods", NULL)) {
+                       p = of_get_property(np0, "ti,hwmods", NULL);
+                       if (!strcmp(p, oh->name))
+                               return np0;
+                       np1 = of_dev_hwmod_lookup(np0, oh);
+                       if (np1)
+                               return np1;
+               }
+       }
+       return NULL;
+}
+
 /**
  * _init_mpu_rt_base - populate the virtual address for a hwmod
  * @oh: struct omap_hwmod * to locate the virtual address
@@ -2361,7 +2391,8 @@ static int _shutdown(struct omap_hwmod *oh)
 static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data)
 {
        struct omap_hwmod_addr_space *mem;
-       void __iomem *va_start;
+       void __iomem *va_start = NULL;
+       struct device_node *np;
 
        if (!oh)
                return;
@@ -2375,10 +2406,18 @@ static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data)
        if (!mem) {
                pr_debug("omap_hwmod: %s: no MPU register target found\n",
                         oh->name);
-               return;
+
+               /* Extract the IO space from device tree blob */
+               if (!of_have_populated_dt())
+                       return;
+
+               np = of_dev_hwmod_lookup(of_find_node_by_name(NULL, "ocp"), oh);
+               if (np)
+                       va_start = of_iomap(np, 0);
+       } else {
+               va_start = ioremap(mem->pa_start, mem->pa_end - mem->pa_start);
        }
 
-       va_start = ioremap(mem->pa_start, mem->pa_end - mem->pa_start);
        if (!va_start) {
                pr_err("omap_hwmod: %s: Could not ioremap\n", oh->name);
                return;
@@ -2410,7 +2449,8 @@ static int __init _init(struct omap_hwmod *oh, void *data)
        if (oh->_state != _HWMOD_STATE_REGISTERED)
                return 0;
 
-       _init_mpu_rt_base(oh, NULL);
+       if (oh->class->sysc)
+               _init_mpu_rt_base(oh, NULL);
 
        r = _init_clocks(oh, NULL);
        if (r < 0) {
index 9debf822687c7a0a11724ed4ea218237d2cd1ce6..9ace8eae7ee8b1444aa9b0634764d2ad93871ecb 100644 (file)
@@ -11,6 +11,8 @@
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  */
+#include <linux/of.h>
+
 #include <asm/pmu.h>
 
 #include "soc.h"
@@ -63,6 +65,15 @@ static int __init omap_init_pmu(void)
        unsigned oh_num;
        char **oh_names;
 
+       /* XXX Remove this check when the CTI driver is available */
+       if (cpu_is_omap443x()) {
+               pr_info("ARM PMU: not yet supported on OMAP4430 due to missing CTI driver\n");
+               return 0;
+       }
+
+       if (of_have_populated_dt())
+               return 0;
+
        /*
         * To create an ARM-PMU device the following HWMODs
         * are required for the various OMAP2+ devices.
@@ -75,9 +86,6 @@ static int __init omap_init_pmu(void)
        if (cpu_is_omap443x()) {
                oh_num = ARRAY_SIZE(omap4430_pmu_oh_names);
                oh_names = omap4430_pmu_oh_names;
-               /* XXX Remove the next two lines when CTI driver available */
-               pr_info("ARM PMU: not yet supported on OMAP4430 due to missing CTI driver\n");
-               return 0;
        } else if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
                oh_num = ARRAY_SIZE(omap3_pmu_oh_names);
                oh_names = omap3_pmu_oh_names;
index f12aa6c15da4db1da20a4abbda6368b48a4d3b1a..02e1d56a3fe56891e6f1eefd1465003e8d74edce 100644 (file)
@@ -133,7 +133,12 @@ static struct property device_disabled = {
 };
 
 static struct of_device_id omap_timer_match[] __initdata = {
-       { .compatible = "ti,omap2-timer", },
+       { .compatible = "ti,omap2420-timer", },
+       { .compatible = "ti,omap3430-timer", },
+       { .compatible = "ti,omap4430-timer", },
+       { .compatible = "ti,omap5430-timer", },
+       { .compatible = "ti,am335x-timer", },
+       { .compatible = "ti,am335x-timer-1ms", },
        { }
 };
 
index e6dbc8dbe6a68457acf5515a238551f61fc65e78..869254cebf842fd39de14d6a7932976b8b1bae87 100644 (file)
@@ -52,6 +52,13 @@ static u32 omap_reserved_systimers;
 static LIST_HEAD(omap_timer_list);
 static DEFINE_SPINLOCK(dm_timer_lock);
 
+enum {
+       REQUEST_ANY = 0,
+       REQUEST_BY_ID,
+       REQUEST_BY_CAP,
+       REQUEST_BY_NODE,
+};
+
 /**
  * omap_dm_timer_read_reg - read timer registers in posted and non-posted mode
  * @timer:      timer pointer over which read operation to perform
@@ -177,29 +184,82 @@ int omap_dm_timer_reserve_systimer(int id)
        return 0;
 }
 
-struct omap_dm_timer *omap_dm_timer_request(void)
+static struct omap_dm_timer *_omap_dm_timer_request(int req_type, void *data)
 {
        struct omap_dm_timer *timer = NULL, *t;
+       struct device_node *np = NULL;
        unsigned long flags;
-       int ret = 0;
+       u32 cap = 0;
+       int id = 0;
+
+       switch (req_type) {
+       case REQUEST_BY_ID:
+               id = *(int *)data;
+               break;
+       case REQUEST_BY_CAP:
+               cap = *(u32 *)data;
+               break;
+       case REQUEST_BY_NODE:
+               np = (struct device_node *)data;
+               break;
+       default:
+               /* REQUEST_ANY */
+               break;
+       }
 
        spin_lock_irqsave(&dm_timer_lock, flags);
        list_for_each_entry(t, &omap_timer_list, node) {
                if (t->reserved)
                        continue;
 
-               timer = t;
-               timer->reserved = 1;
-               break;
+               switch (req_type) {
+               case REQUEST_BY_ID:
+                       if (id == t->pdev->id) {
+                               timer = t;
+                               timer->reserved = 1;
+                               goto found;
+                       }
+                       break;
+               case REQUEST_BY_CAP:
+                       if (cap == (t->capability & cap)) {
+                               /*
+                                * If timer is not NULL, we have already found
+                                * one timer but it was not an exact match
+                                * because it had more capabilites that what
+                                * was required. Therefore, unreserve the last
+                                * timer found and see if this one is a better
+                                * match.
+                                */
+                               if (timer)
+                                       timer->reserved = 0;
+                               timer = t;
+                               timer->reserved = 1;
+
+                               /* Exit loop early if we find an exact match */
+                               if (t->capability == cap)
+                                       goto found;
+                       }
+                       break;
+               case REQUEST_BY_NODE:
+                       if (np == t->pdev->dev.of_node) {
+                               timer = t;
+                               timer->reserved = 1;
+                               goto found;
+                       }
+                       break;
+               default:
+                       /* REQUEST_ANY */
+                       timer = t;
+                       timer->reserved = 1;
+                       goto found;
+               }
        }
+found:
        spin_unlock_irqrestore(&dm_timer_lock, flags);
 
-       if (timer) {
-               ret = omap_dm_timer_prepare(timer);
-               if (ret) {
-                       timer->reserved = 0;
-                       timer = NULL;
-               }
+       if (timer && omap_dm_timer_prepare(timer)) {
+               timer->reserved = 0;
+               timer = NULL;
        }
 
        if (!timer)
@@ -207,43 +267,23 @@ struct omap_dm_timer *omap_dm_timer_request(void)
 
        return timer;
 }
+
+struct omap_dm_timer *omap_dm_timer_request(void)
+{
+       return _omap_dm_timer_request(REQUEST_ANY, NULL);
+}
 EXPORT_SYMBOL_GPL(omap_dm_timer_request);
 
 struct omap_dm_timer *omap_dm_timer_request_specific(int id)
 {
-       struct omap_dm_timer *timer = NULL, *t;
-       unsigned long flags;
-       int ret = 0;
-
        /* Requesting timer by ID is not supported when device tree is used */
        if (of_have_populated_dt()) {
-               pr_warn("%s: Please use omap_dm_timer_request_by_cap()\n",
+               pr_warn("%s: Please use omap_dm_timer_request_by_cap/node()\n",
                        __func__);
                return NULL;
        }
 
-       spin_lock_irqsave(&dm_timer_lock, flags);
-       list_for_each_entry(t, &omap_timer_list, node) {
-               if (t->pdev->id == id && !t->reserved) {
-                       timer = t;
-                       timer->reserved = 1;
-                       break;
-               }
-       }
-       spin_unlock_irqrestore(&dm_timer_lock, flags);
-
-       if (timer) {
-               ret = omap_dm_timer_prepare(timer);
-               if (ret) {
-                       timer->reserved = 0;
-                       timer = NULL;
-               }
-       }
-
-       if (!timer)
-               pr_debug("%s: timer%d request failed!\n", __func__, id);
-
-       return timer;
+       return _omap_dm_timer_request(REQUEST_BY_ID, &id);
 }
 EXPORT_SYMBOL_GPL(omap_dm_timer_request_specific);
 
@@ -258,46 +298,25 @@ EXPORT_SYMBOL_GPL(omap_dm_timer_request_specific);
  */
 struct omap_dm_timer *omap_dm_timer_request_by_cap(u32 cap)
 {
-       struct omap_dm_timer *timer = NULL, *t;
-       unsigned long flags;
+       return _omap_dm_timer_request(REQUEST_BY_CAP, &cap);
+}
+EXPORT_SYMBOL_GPL(omap_dm_timer_request_by_cap);
 
-       if (!cap)
+/**
+ * omap_dm_timer_request_by_node - Request a timer by device-tree node
+ * @np:                Pointer to device-tree timer node
+ *
+ * Request a timer based upon a device node pointer. Returns pointer to
+ * timer handle on success and a NULL pointer on failure.
+ */
+struct omap_dm_timer *omap_dm_timer_request_by_node(struct device_node *np)
+{
+       if (!np)
                return NULL;
 
-       spin_lock_irqsave(&dm_timer_lock, flags);
-       list_for_each_entry(t, &omap_timer_list, node) {
-               if ((!t->reserved) && ((t->capability & cap) == cap)) {
-                       /*
-                        * If timer is not NULL, we have already found one timer
-                        * but it was not an exact match because it had more
-                        * capabilites that what was required. Therefore,
-                        * unreserve the last timer found and see if this one
-                        * is a better match.
-                        */
-                       if (timer)
-                               timer->reserved = 0;
-
-                       timer = t;
-                       timer->reserved = 1;
-
-                       /* Exit loop early if we find an exact match */
-                       if (t->capability == cap)
-                               break;
-               }
-       }
-       spin_unlock_irqrestore(&dm_timer_lock, flags);
-
-       if (timer && omap_dm_timer_prepare(timer)) {
-               timer->reserved = 0;
-               timer = NULL;
-       }
-
-       if (!timer)
-               pr_debug("%s: timer request failed!\n", __func__);
-
-       return timer;
+       return _omap_dm_timer_request(REQUEST_BY_NODE, np);
 }
-EXPORT_SYMBOL_GPL(omap_dm_timer_request_by_cap);
+EXPORT_SYMBOL_GPL(omap_dm_timer_request_by_node);
 
 int omap_dm_timer_free(struct omap_dm_timer *timer)
 {
@@ -314,7 +333,21 @@ EXPORT_SYMBOL_GPL(omap_dm_timer_free);
 
 void omap_dm_timer_enable(struct omap_dm_timer *timer)
 {
+       int c;
+
        pm_runtime_get_sync(&timer->pdev->dev);
+
+       if (!(timer->capability & OMAP_TIMER_ALWON)) {
+               if (timer->get_context_loss_count) {
+                       c = timer->get_context_loss_count(&timer->pdev->dev);
+                       if (c != timer->ctx_loss_count) {
+                               omap_timer_restore_context(timer);
+                               timer->ctx_loss_count = c;
+                       }
+               } else {
+                       omap_timer_restore_context(timer);
+               }
+       }
 }
 EXPORT_SYMBOL_GPL(omap_dm_timer_enable);
 
@@ -409,13 +442,6 @@ int omap_dm_timer_start(struct omap_dm_timer *timer)
 
        omap_dm_timer_enable(timer);
 
-       if (!(timer->capability & OMAP_TIMER_ALWON)) {
-               if (timer->get_context_loss_count &&
-                       timer->get_context_loss_count(&timer->pdev->dev) !=
-                               timer->ctx_loss_count)
-                       omap_timer_restore_context(timer);
-       }
-
        l = omap_dm_timer_read_reg(timer, OMAP_TIMER_CTRL_REG);
        if (!(l & OMAP_TIMER_CTRL_ST)) {
                l |= OMAP_TIMER_CTRL_ST;
@@ -440,12 +466,6 @@ int omap_dm_timer_stop(struct omap_dm_timer *timer)
 
        __omap_dm_timer_stop(timer, timer->posted, rate);
 
-       if (!(timer->capability & OMAP_TIMER_ALWON)) {
-               if (timer->get_context_loss_count)
-                       timer->ctx_loss_count =
-                               timer->get_context_loss_count(&timer->pdev->dev);
-       }
-
        /*
         * Since the register values are computed and written within
         * __omap_dm_timer_stop, we need to use read to retrieve the
@@ -552,13 +572,6 @@ int omap_dm_timer_set_load_start(struct omap_dm_timer *timer, int autoreload,
 
        omap_dm_timer_enable(timer);
 
-       if (!(timer->capability & OMAP_TIMER_ALWON)) {
-               if (timer->get_context_loss_count &&
-                       timer->get_context_loss_count(&timer->pdev->dev) !=
-                               timer->ctx_loss_count)
-                       omap_timer_restore_context(timer);
-       }
-
        l = omap_dm_timer_read_reg(timer, OMAP_TIMER_CTRL_REG);
        if (autoreload) {
                l |= OMAP_TIMER_CTRL_AR;
@@ -769,6 +782,8 @@ int omap_dm_timers_active(void)
 }
 EXPORT_SYMBOL_GPL(omap_dm_timers_active);
 
+static const struct of_device_id omap_timer_match[];
+
 /**
  * omap_dm_timer_probe - probe function called for every registered device
  * @pdev:      pointer to current timer platform device
@@ -782,7 +797,11 @@ static int omap_dm_timer_probe(struct platform_device *pdev)
        struct omap_dm_timer *timer;
        struct resource *mem, *irq;
        struct device *dev = &pdev->dev;
-       struct dmtimer_platform_data *pdata = pdev->dev.platform_data;
+       const struct of_device_id *match;
+       const struct dmtimer_platform_data *pdata;
+
+       match = of_match_device(of_match_ptr(omap_timer_match), dev);
+       pdata = match ? match->data : dev->platform_data;
 
        if (!pdata && !dev->of_node) {
                dev_err(dev, "%s: no platform data.\n", __func__);
@@ -823,12 +842,14 @@ static int omap_dm_timer_probe(struct platform_device *pdev)
                        timer->capability |= OMAP_TIMER_SECURE;
        } else {
                timer->id = pdev->id;
-               timer->errata = pdata->timer_errata;
                timer->capability = pdata->timer_capability;
                timer->reserved = omap_dm_timer_reserved_systimer(timer->id);
                timer->get_context_loss_count = pdata->get_context_loss_count;
        }
 
+       if (pdata)
+               timer->errata = pdata->timer_errata;
+
        timer->irq = irq->start;
        timer->pdev = pdev;
 
@@ -881,8 +902,34 @@ static int omap_dm_timer_remove(struct platform_device *pdev)
        return ret;
 }
 
+static const struct dmtimer_platform_data omap3plus_pdata = {
+       .timer_errata = OMAP_TIMER_ERRATA_I103_I767,
+};
+
 static const struct of_device_id omap_timer_match[] = {
-       { .compatible = "ti,omap2-timer", },
+       {
+               .compatible = "ti,omap2420-timer",
+       },
+       {
+               .compatible = "ti,omap3430-timer",
+               .data = &omap3plus_pdata,
+       },
+       {
+               .compatible = "ti,omap4430-timer",
+               .data = &omap3plus_pdata,
+       },
+       {
+               .compatible = "ti,omap5430-timer",
+               .data = &omap3plus_pdata,
+       },
+       {
+               .compatible = "ti,am335x-timer",
+               .data = &omap3plus_pdata,
+       },
+       {
+               .compatible = "ti,am335x-timer-1ms",
+               .data = &omap3plus_pdata,
+       },
        {},
 };
 MODULE_DEVICE_TABLE(of, omap_timer_match);
index a3fbc48c332ecd0ebcf02023d43209d8d1a00690..fb92abb91628a2e06f6aebc54f03a724a79c23ee 100644 (file)
@@ -128,6 +128,7 @@ int omap_dm_timer_reserve_systimer(int id);
 struct omap_dm_timer *omap_dm_timer_request(void);
 struct omap_dm_timer *omap_dm_timer_request_specific(int timer_id);
 struct omap_dm_timer *omap_dm_timer_request_by_cap(u32 cap);
+struct omap_dm_timer *omap_dm_timer_request_by_node(struct device_node *np);
 int omap_dm_timer_free(struct omap_dm_timer *timer);
 void omap_dm_timer_enable(struct omap_dm_timer *timer);
 void omap_dm_timer_disable(struct omap_dm_timer *timer);
index 8f6d30d37c45bd4e995f160e4e85fc55d81b1fe5..b48a79c288454ec61676fbd4416fdfafc53187fd 100644 (file)
@@ -27,6 +27,7 @@
 #include <linux/stmp_device.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
+#include <linux/of_dma.h>
 
 #include <asm/irq.h>
 
@@ -139,6 +140,8 @@ struct mxs_dma_engine {
        struct dma_device               dma_device;
        struct device_dma_parameters    dma_parms;
        struct mxs_dma_chan             mxs_chans[MXS_DMA_CHANNELS];
+       struct platform_device          *pdev;
+       unsigned int                    nr_channels;
 };
 
 struct mxs_dma_type {
@@ -350,10 +353,8 @@ static int mxs_dma_alloc_chan_resources(struct dma_chan *chan)
        struct mxs_dma_engine *mxs_dma = mxs_chan->mxs_dma;
        int ret;
 
-       if (!data)
-               return -EINVAL;
-
-       mxs_chan->chan_irq = data->chan_irq;
+       if (data)
+               mxs_chan->chan_irq = data->chan_irq;
 
        mxs_chan->ccw = dma_alloc_coherent(mxs_dma->dma_device.dev,
                                CCW_BLOCK_SIZE, &mxs_chan->ccw_phys,
@@ -665,8 +666,55 @@ err_out:
        return ret;
 }
 
+struct mxs_dma_filter_param {
+       struct device_node *of_node;
+       unsigned int chan_id;
+};
+
+static bool mxs_dma_filter_fn(struct dma_chan *chan, void *fn_param)
+{
+       struct mxs_dma_filter_param *param = fn_param;
+       struct mxs_dma_chan *mxs_chan = to_mxs_dma_chan(chan);
+       struct mxs_dma_engine *mxs_dma = mxs_chan->mxs_dma;
+       int chan_irq;
+
+       if (mxs_dma->dma_device.dev->of_node != param->of_node)
+               return false;
+
+       if (chan->chan_id != param->chan_id)
+               return false;
+
+       chan_irq = platform_get_irq(mxs_dma->pdev, param->chan_id);
+       if (chan_irq < 0)
+               return false;
+
+       mxs_chan->chan_irq = chan_irq;
+
+       return true;
+}
+
+struct dma_chan *mxs_dma_xlate(struct of_phandle_args *dma_spec,
+                              struct of_dma *ofdma)
+{
+       struct mxs_dma_engine *mxs_dma = ofdma->of_dma_data;
+       dma_cap_mask_t mask = mxs_dma->dma_device.cap_mask;
+       struct mxs_dma_filter_param param;
+
+       if (dma_spec->args_count != 1)
+               return NULL;
+
+       param.of_node = ofdma->of_node;
+       param.chan_id = dma_spec->args[0];
+
+       if (param.chan_id >= mxs_dma->nr_channels)
+               return NULL;
+
+       return dma_request_channel(mask, mxs_dma_filter_fn, &param);
+}
+
 static int __init mxs_dma_probe(struct platform_device *pdev)
 {
+       struct device_node *np = pdev->dev.of_node;
        const struct platform_device_id *id_entry;
        const struct of_device_id *of_id;
        const struct mxs_dma_type *dma_type;
@@ -674,10 +722,16 @@ static int __init mxs_dma_probe(struct platform_device *pdev)
        struct resource *iores;
        int ret, i;
 
-       mxs_dma = kzalloc(sizeof(*mxs_dma), GFP_KERNEL);
+       mxs_dma = devm_kzalloc(&pdev->dev, sizeof(*mxs_dma), GFP_KERNEL);
        if (!mxs_dma)
                return -ENOMEM;
 
+       ret = of_property_read_u32(np, "dma-channels", &mxs_dma->nr_channels);
+       if (ret) {
+               dev_err(&pdev->dev, "failed to read dma-channels\n");
+               return ret;
+       }
+
        of_id = of_match_device(mxs_dma_dt_ids, &pdev->dev);
        if (of_id)
                id_entry = of_id->data;
@@ -689,24 +743,13 @@ static int __init mxs_dma_probe(struct platform_device *pdev)
        mxs_dma->dev_id = dma_type->id;
 
        iores = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+       mxs_dma->base = devm_ioremap_resource(&pdev->dev, iores);
+       if (IS_ERR(mxs_dma->base))
+               return PTR_ERR(mxs_dma->base);
 
-       if (!request_mem_region(iores->start, resource_size(iores),
-                               pdev->name)) {
-               ret = -EBUSY;
-               goto err_request_region;
-       }
-
-       mxs_dma->base = ioremap(iores->start, resource_size(iores));
-       if (!mxs_dma->base) {
-               ret = -ENOMEM;
-               goto err_ioremap;
-       }
-
-       mxs_dma->clk = clk_get(&pdev->dev, NULL);
-       if (IS_ERR(mxs_dma->clk)) {
-               ret = PTR_ERR(mxs_dma->clk);
-               goto err_clk;
-       }
+       mxs_dma->clk = devm_clk_get(&pdev->dev, NULL);
+       if (IS_ERR(mxs_dma->clk))
+               return PTR_ERR(mxs_dma->clk);
 
        dma_cap_set(DMA_SLAVE, mxs_dma->dma_device.cap_mask);
        dma_cap_set(DMA_CYCLIC, mxs_dma->dma_device.cap_mask);
@@ -732,8 +775,9 @@ static int __init mxs_dma_probe(struct platform_device *pdev)
 
        ret = mxs_dma_init(mxs_dma);
        if (ret)
-               goto err_init;
+               return ret;
 
+       mxs_dma->pdev = pdev;
        mxs_dma->dma_device.dev = &pdev->dev;
 
        /* mxs_dma gets 65535 bytes maximum sg size */
@@ -751,22 +795,19 @@ static int __init mxs_dma_probe(struct platform_device *pdev)
        ret = dma_async_device_register(&mxs_dma->dma_device);
        if (ret) {
                dev_err(mxs_dma->dma_device.dev, "unable to register\n");
-               goto err_init;
+               return ret;
+       }
+
+       ret = of_dma_controller_register(np, mxs_dma_xlate, mxs_dma);
+       if (ret) {
+               dev_err(mxs_dma->dma_device.dev,
+                       "failed to register controller\n");
+               dma_async_device_unregister(&mxs_dma->dma_device);
        }
 
        dev_info(mxs_dma->dma_device.dev, "initialized\n");
 
        return 0;
-
-err_init:
-       clk_put(mxs_dma->clk);
-err_clk:
-       iounmap(mxs_dma->base);
-err_ioremap:
-       release_mem_region(iores->start, resource_size(iores));
-err_request_region:
-       kfree(mxs_dma);
-       return ret;
 }
 
 static struct platform_driver mxs_dma_driver = {
index c67d89fc6254ba672f95bf9046449490db82d3f3..2039f230482db0565c0e4357bc9ae8f38a34757f 100644 (file)
@@ -31,7 +31,6 @@
 #include <linux/of_i2c.h>
 #include <linux/dma-mapping.h>
 #include <linux/dmaengine.h>
-#include <linux/fsl/mxs-dma.h>
 
 #define DRIVER_NAME "mxs-i2c"
 
@@ -118,9 +117,7 @@ struct mxs_i2c_dev {
        uint32_t timing1;
 
        /* DMA support components */
-       int                             dma_channel;
        struct dma_chan                 *dmach;
-       struct mxs_dma_data             dma_data;
        uint32_t                        pio_data[2];
        uint32_t                        addr_data;
        struct scatterlist              sg_io[2];
@@ -581,21 +578,6 @@ static const struct i2c_algorithm mxs_i2c_algo = {
        .functionality = mxs_i2c_func,
 };
 
-static bool mxs_i2c_dma_filter(struct dma_chan *chan, void *param)
-{
-       struct mxs_i2c_dev *i2c = param;
-
-       if (!mxs_dma_is_apbx(chan))
-               return false;
-
-       if (chan->chan_id != i2c->dma_channel)
-               return false;
-
-       chan->private = &i2c->dma_data;
-
-       return true;
-}
-
 static void mxs_i2c_derive_timing(struct mxs_i2c_dev *i2c, int speed)
 {
        /* The I2C block clock run at 24MHz */
@@ -640,17 +622,6 @@ static int mxs_i2c_get_ofdata(struct mxs_i2c_dev *i2c)
        struct device_node *node = dev->of_node;
        int ret;
 
-       /*
-        * TODO: This is a temporary solution and should be changed
-        * to use generic DMA binding later when the helpers get in.
-        */
-       ret = of_property_read_u32(node, "fsl,i2c-dma-channel",
-                                  &i2c->dma_channel);
-       if (ret) {
-               dev_err(dev, "Failed to get DMA channel!\n");
-               return -ENODEV;
-       }
-
        ret = of_property_read_u32(node, "clock-frequency", &speed);
        if (ret) {
                dev_warn(dev, "No I2C speed selected, using 100kHz\n");
@@ -670,8 +641,7 @@ static int mxs_i2c_probe(struct platform_device *pdev)
        struct pinctrl *pinctrl;
        struct resource *res;
        resource_size_t res_size;
-       int err, irq, dmairq;
-       dma_cap_mask_t mask;
+       int err, irq;
 
        pinctrl = devm_pinctrl_get_select_default(dev);
        if (IS_ERR(pinctrl))
@@ -683,9 +653,8 @@ static int mxs_i2c_probe(struct platform_device *pdev)
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        irq = platform_get_irq(pdev, 0);
-       dmairq = platform_get_irq(pdev, 1);
 
-       if (!res || irq < 0 || dmairq < 0)
+       if (!res || irq < 0)
                return -ENOENT;
 
        res_size = resource_size(res);
@@ -711,10 +680,7 @@ static int mxs_i2c_probe(struct platform_device *pdev)
        }
 
        /* Setup the DMA */
-       dma_cap_zero(mask);
-       dma_cap_set(DMA_SLAVE, mask);
-       i2c->dma_data.chan_irq = dmairq;
-       i2c->dmach = dma_request_channel(mask, mxs_i2c_dma_filter, i2c);
+       i2c->dmach = dma_request_slave_channel(dev, "rx-tx");
        if (!i2c->dmach) {
                dev_err(dev, "Failed to request dma\n");
                return -ENODEV;
index 146a53bfab7115be0d7aa72b3efcd46a6ead697e..4278a1787d086a22d671e492e26e1294ef688a9d 100644 (file)
@@ -552,22 +552,6 @@ static const struct mmc_host_ops mxs_mmc_ops = {
        .enable_sdio_irq = mxs_mmc_enable_sdio_irq,
 };
 
-static bool mxs_mmc_dma_filter(struct dma_chan *chan, void *param)
-{
-       struct mxs_mmc_host *host = param;
-       struct mxs_ssp *ssp = &host->ssp;
-
-       if (!mxs_dma_is_apbh(chan))
-               return false;
-
-       if (chan->chan_id != ssp->dma_channel)
-               return false;
-
-       chan->private = &ssp->dma_data;
-
-       return true;
-}
-
 static struct platform_device_id mxs_ssp_ids[] = {
        {
                .name = "imx23-mmc",
@@ -595,20 +579,17 @@ static int mxs_mmc_probe(struct platform_device *pdev)
        struct device_node *np = pdev->dev.of_node;
        struct mxs_mmc_host *host;
        struct mmc_host *mmc;
-       struct resource *iores, *dmares;
+       struct resource *iores;
        struct pinctrl *pinctrl;
-       int ret = 0, irq_err, irq_dma;
-       dma_cap_mask_t mask;
+       int ret = 0, irq_err;
        struct regulator *reg_vmmc;
        enum of_gpio_flags flags;
        struct mxs_ssp *ssp;
        u32 bus_width = 0;
 
        iores = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       dmares = platform_get_resource(pdev, IORESOURCE_DMA, 0);
        irq_err = platform_get_irq(pdev, 0);
-       irq_dma = platform_get_irq(pdev, 1);
-       if (!iores || irq_err < 0 || irq_dma < 0)
+       if (!iores || irq_err < 0)
                return -EINVAL;
 
        mmc = mmc_alloc_host(sizeof(struct mxs_mmc_host), &pdev->dev);
@@ -624,23 +605,7 @@ static int mxs_mmc_probe(struct platform_device *pdev)
                goto out_mmc_free;
        }
 
-       if (np) {
-               ssp->devid = (enum mxs_ssp_id) of_id->data;
-               /*
-                * TODO: This is a temporary solution and should be changed
-                * to use generic DMA binding later when the helpers get in.
-                */
-               ret = of_property_read_u32(np, "fsl,ssp-dma-channel",
-                                          &ssp->dma_channel);
-               if (ret) {
-                       dev_err(mmc_dev(host->mmc),
-                               "failed to get dma channel\n");
-                       goto out_mmc_free;
-               }
-       } else {
-               ssp->devid = pdev->id_entry->driver_data;
-               ssp->dma_channel = dmares->start;
-       }
+       ssp->devid = (enum mxs_ssp_id) of_id->data;
 
        host->mmc = mmc;
        host->sdio_irq_en = 0;
@@ -670,10 +635,7 @@ static int mxs_mmc_probe(struct platform_device *pdev)
 
        mxs_mmc_reset(host);
 
-       dma_cap_zero(mask);
-       dma_cap_set(DMA_SLAVE, mask);
-       ssp->dma_data.chan_irq = irq_dma;
-       ssp->dmach = dma_request_channel(mask, mxs_mmc_dma_filter, host);
+       ssp->dmach = dma_request_slave_channel(&pdev->dev, "rx-tx");
        if (!ssp->dmach) {
                dev_err(mmc_dev(host->mmc),
                        "%s: failed to request dma\n", __func__);
index 717881a3d1b88cc64ad87e12fe0a0d68716254b5..25ecfa1822a8fc75cf485b41c51602ad04a0489b 100644 (file)
@@ -36,7 +36,6 @@
 #define GPMI_NAND_GPMI_REGS_ADDR_RES_NAME  "gpmi-nand"
 #define GPMI_NAND_BCH_REGS_ADDR_RES_NAME   "bch"
 #define GPMI_NAND_BCH_INTERRUPT_RES_NAME   "bch"
-#define GPMI_NAND_DMA_INTERRUPT_RES_NAME   "gpmi-dma"
 
 /* add our owner bbt descriptor */
 static uint8_t scan_ff_pattern[] = { 0xff };
@@ -420,28 +419,6 @@ static void release_bch_irq(struct gpmi_nand_data *this)
                free_irq(i, this);
 }
 
-static bool gpmi_dma_filter(struct dma_chan *chan, void *param)
-{
-       struct gpmi_nand_data *this = param;
-       int dma_channel = (int)this->private;
-
-       if (!mxs_dma_is_apbh(chan))
-               return false;
-       /*
-        * only catch the GPMI dma channels :
-        *      for mx23 :      MX23_DMA_GPMI0 ~ MX23_DMA_GPMI3
-        *              (These four channels share the same IRQ!)
-        *
-        *      for mx28 :      MX28_DMA_GPMI0 ~ MX28_DMA_GPMI7
-        *              (These eight channels share the same IRQ!)
-        */
-       if (dma_channel == chan->chan_id) {
-               chan->private = &this->dma_data;
-               return true;
-       }
-       return false;
-}
-
 static void release_dma_channels(struct gpmi_nand_data *this)
 {
        unsigned int i;
@@ -455,36 +432,10 @@ static void release_dma_channels(struct gpmi_nand_data *this)
 static int acquire_dma_channels(struct gpmi_nand_data *this)
 {
        struct platform_device *pdev = this->pdev;
-       struct resource *r_dma;
-       struct device_node *dn;
-       u32 dma_channel;
-       int ret;
        struct dma_chan *dma_chan;
-       dma_cap_mask_t mask;
-
-       /* dma channel, we only use the first one. */
-       dn = pdev->dev.of_node;
-       ret = of_property_read_u32(dn, "fsl,gpmi-dma-channel", &dma_channel);
-       if (ret) {
-               pr_err("unable to get DMA channel from dt.\n");
-               goto acquire_err;
-       }
-       this->private = (void *)dma_channel;
-
-       /* gpmi dma interrupt */
-       r_dma = platform_get_resource_byname(pdev, IORESOURCE_IRQ,
-                                       GPMI_NAND_DMA_INTERRUPT_RES_NAME);
-       if (!r_dma) {
-               pr_err("Can't get resource for DMA\n");
-               goto acquire_err;
-       }
-       this->dma_data.chan_irq = r_dma->start;
 
        /* request dma channel */
-       dma_cap_zero(mask);
-       dma_cap_set(DMA_SLAVE, mask);
-
-       dma_chan = dma_request_channel(mask, gpmi_dma_filter, this);
+       dma_chan = dma_request_slave_channel(&pdev->dev, "rx-tx");
        if (!dma_chan) {
                pr_err("Failed to request DMA channel.\n");
                goto acquire_err;
index 0729477312772da0e56ee13743fc5d7399200bc3..a7685e3a87486b86713fef19da82e9bbad3c6253 100644 (file)
@@ -20,7 +20,7 @@
 #include <linux/mtd/nand.h>
 #include <linux/platform_device.h>
 #include <linux/dma-mapping.h>
-#include <linux/fsl/mxs-dma.h>
+#include <linux/dmaengine.h>
 
 #define GPMI_CLK_MAX 5 /* MX6Q needs five clocks */
 struct resources {
@@ -180,7 +180,6 @@ struct gpmi_nand_data {
        /* DMA channels */
 #define DMA_CHANS              8
        struct dma_chan         *dma_chans[DMA_CHANS];
-       struct mxs_dma_data     dma_data;
        enum dma_ops_type       last_dma_type;
        enum dma_ops_type       dma_type;
        struct completion       dma_done;
index d44f65bac1d4e4f97f74dcfedd477510ec9fbeaf..ceb4d43c132db30f4b82c09a2f100e1f6c98652b 100644 (file)
@@ -214,6 +214,7 @@ struct fec_enet_private {
 
        struct clk *clk_ipg;
        struct clk *clk_ahb;
+       struct clk *clk_enet_out;
        struct clk *clk_ptp;
 
        /* The saved address of a sent-in-place packet/buffer, for skfree(). */
index b9748f14ea78315678e0222751f430cd09fc31ec..e25bf832e6b3e1f5695f7075537cef6d711c3706 100644 (file)
@@ -1883,18 +1883,23 @@ fec_probe(struct platform_device *pdev)
                goto failed_clk;
        }
 
+       /* enet_out is optional, depends on board */
+       fep->clk_enet_out = devm_clk_get(&pdev->dev, "enet_out");
+       if (IS_ERR(fep->clk_enet_out))
+               fep->clk_enet_out = NULL;
+
        fep->clk_ptp = devm_clk_get(&pdev->dev, "ptp");
        fep->bufdesc_ex =
                pdev->id_entry->driver_data & FEC_QUIRK_HAS_BUFDESC_EX;
        if (IS_ERR(fep->clk_ptp)) {
-               ret = PTR_ERR(fep->clk_ptp);
+               fep->clk_ptp = NULL;
                fep->bufdesc_ex = 0;
        }
 
        clk_prepare_enable(fep->clk_ahb);
        clk_prepare_enable(fep->clk_ipg);
-       if (!IS_ERR(fep->clk_ptp))
-               clk_prepare_enable(fep->clk_ptp);
+       clk_prepare_enable(fep->clk_enet_out);
+       clk_prepare_enable(fep->clk_ptp);
 
        reg_phy = devm_regulator_get(&pdev->dev, "phy");
        if (!IS_ERR(reg_phy)) {
@@ -1962,8 +1967,8 @@ failed_irq:
 failed_regulator:
        clk_disable_unprepare(fep->clk_ahb);
        clk_disable_unprepare(fep->clk_ipg);
-       if (!IS_ERR(fep->clk_ptp))
-               clk_disable_unprepare(fep->clk_ptp);
+       clk_disable_unprepare(fep->clk_enet_out);
+       clk_disable_unprepare(fep->clk_ptp);
 failed_pin:
 failed_clk:
 failed_ioremap:
@@ -1985,6 +1990,7 @@ fec_drv_remove(struct platform_device *pdev)
        clk_disable_unprepare(fep->clk_ptp);
        if (fep->ptp_clock)
                ptp_clock_unregister(fep->ptp_clock);
+       clk_disable_unprepare(fep->clk_enet_out);
        clk_disable_unprepare(fep->clk_ahb);
        clk_disable_unprepare(fep->clk_ipg);
        for (i = 0; i < FEC_IRQ_NUM; i++) {
@@ -2010,6 +2016,7 @@ fec_suspend(struct device *dev)
                fec_stop(ndev);
                netif_device_detach(ndev);
        }
+       clk_disable_unprepare(fep->clk_enet_out);
        clk_disable_unprepare(fep->clk_ahb);
        clk_disable_unprepare(fep->clk_ipg);
 
@@ -2022,6 +2029,7 @@ fec_resume(struct device *dev)
        struct net_device *ndev = dev_get_drvdata(dev);
        struct fec_enet_private *fep = netdev_priv(ndev);
 
+       clk_prepare_enable(fep->clk_enet_out);
        clk_prepare_enable(fep->clk_ahb);
        clk_prepare_enable(fep->clk_ipg);
        if (netif_running(ndev)) {
index 8234d2259722f08401b0caf916c1e1fb2b15a5cc..2e8f24a1fb952cbfd86b161ad50ac3e315d0850b 100644 (file)
@@ -776,10 +776,10 @@ rx_dma_failed:
 #if defined(CONFIG_OF)
 static const struct of_device_id davinci_spi_of_match[] = {
        {
-               .compatible = "ti,dm644x-spi",
+               .compatible = "ti,dm6441-spi",
        },
        {
-               .compatible = "ti,da8xx-spi",
+               .compatible = "ti,da830-spi",
                .data = (void *)SPI_VERSION_2,
        },
        { },
index a1d5778e2bbb9ecec1a41a0e101a93f0ebf6e508..84982768cd108beec37f67e303203c5c3ad5ecad 100644 (file)
@@ -490,21 +490,6 @@ static int mxs_spi_transfer_one(struct spi_master *master,
        return status;
 }
 
-static bool mxs_ssp_dma_filter(struct dma_chan *chan, void *param)
-{
-       struct mxs_ssp *ssp = param;
-
-       if (!mxs_dma_is_apbh(chan))
-               return false;
-
-       if (chan->chan_id != ssp->dma_channel)
-               return false;
-
-       chan->private = &ssp->dma_data;
-
-       return true;
-}
-
 static const struct of_device_id mxs_spi_dt_ids[] = {
        { .compatible = "fsl,imx23-spi", .data = (void *) IMX23_SSP, },
        { .compatible = "fsl,imx28-spi", .data = (void *) IMX28_SSP, },
@@ -520,13 +505,12 @@ static int mxs_spi_probe(struct platform_device *pdev)
        struct spi_master *master;
        struct mxs_spi *spi;
        struct mxs_ssp *ssp;
-       struct resource *iores, *dmares;
+       struct resource *iores;
        struct pinctrl *pinctrl;
        struct clk *clk;
        void __iomem *base;
-       int devid, dma_channel, clk_freq;
-       int ret = 0, irq_err, irq_dma;
-       dma_cap_mask_t mask;
+       int devid, clk_freq;
+       int ret = 0, irq_err;
 
        /*
         * Default clock speed for the SPI core. 160MHz seems to
@@ -537,8 +521,7 @@ static int mxs_spi_probe(struct platform_device *pdev)
 
        iores = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        irq_err = platform_get_irq(pdev, 0);
-       irq_dma = platform_get_irq(pdev, 1);
-       if (!iores || irq_err < 0 || irq_dma < 0)
+       if (!iores || irq_err < 0)
                return -EINVAL;
 
        base = devm_ioremap_resource(&pdev->dev, iores);
@@ -553,32 +536,11 @@ static int mxs_spi_probe(struct platform_device *pdev)
        if (IS_ERR(clk))
                return PTR_ERR(clk);
 
-       if (np) {
-               devid = (enum mxs_ssp_id) of_id->data;
-               /*
-                * TODO: This is a temporary solution and should be changed
-                * to use generic DMA binding later when the helpers get in.
-                */
-               ret = of_property_read_u32(np, "fsl,ssp-dma-channel",
-                                          &dma_channel);
-               if (ret) {
-                       dev_err(&pdev->dev,
-                               "Failed to get DMA channel\n");
-                       return -EINVAL;
-               }
-
-               ret = of_property_read_u32(np, "clock-frequency",
-                                          &clk_freq);
-               if (ret)
-                       clk_freq = clk_freq_default;
-       } else {
-               dmares = platform_get_resource(pdev, IORESOURCE_DMA, 0);
-               if (!dmares)
-                       return -EINVAL;
-               devid = pdev->id_entry->driver_data;
-               dma_channel = dmares->start;
+       devid = (enum mxs_ssp_id) of_id->data;
+       ret = of_property_read_u32(np, "clock-frequency",
+                                  &clk_freq);
+       if (ret)
                clk_freq = clk_freq_default;
-       }
 
        master = spi_alloc_master(&pdev->dev, sizeof(*spi));
        if (!master)
@@ -597,7 +559,6 @@ static int mxs_spi_probe(struct platform_device *pdev)
        ssp->clk = clk;
        ssp->base = base;
        ssp->devid = devid;
-       ssp->dma_channel = dma_channel;
 
        init_completion(&spi->c);
 
@@ -606,10 +567,7 @@ static int mxs_spi_probe(struct platform_device *pdev)
        if (ret)
                goto out_master_free;
 
-       dma_cap_zero(mask);
-       dma_cap_set(DMA_SLAVE, mask);
-       ssp->dma_data.chan_irq = irq_dma;
-       ssp->dmach = dma_request_channel(mask, mxs_ssp_dma_filter, ssp);
+       ssp->dmach = dma_request_slave_channel(&pdev->dev, "rx-tx");
        if (!ssp->dmach) {
                dev_err(ssp->dev, "Failed to request DMA\n");
                ret = -ENODEV;
index 62e7d3b015a15c0415e2bc70b75e1ab68d3a66f5..4f5f161896a139852e46f93f30239be979838bda 100644 (file)
@@ -35,7 +35,7 @@
 #include <linux/pinctrl/consumer.h>
 #include <linux/of_device.h>
 #include <linux/dma-mapping.h>
-#include <linux/fsl/mxs-dma.h>
+#include <linux/dmaengine.h>
 
 #include <asm/cacheflush.h>
 
@@ -148,11 +148,6 @@ struct mxs_auart_port {
        struct device *dev;
 
        /* for DMA */
-       struct mxs_dma_data dma_data;
-       int dma_channel_rx, dma_channel_tx;
-       int dma_irq_rx, dma_irq_tx;
-       int dma_channel;
-
        struct scatterlist tx_sgl;
        struct dma_chan *tx_dma_chan;
        void *tx_dma_buf;
@@ -440,20 +435,6 @@ static u32 mxs_auart_get_mctrl(struct uart_port *u)
        return mctrl;
 }
 
-static bool mxs_auart_dma_filter(struct dma_chan *chan, void *param)
-{
-       struct mxs_auart_port *s = param;
-
-       if (!mxs_dma_is_apbx(chan))
-               return false;
-
-       if (s->dma_channel == chan->chan_id) {
-               chan->private = &s->dma_data;
-               return true;
-       }
-       return false;
-}
-
 static int mxs_auart_dma_prep_rx(struct mxs_auart_port *s);
 static void dma_rx_callback(void *arg)
 {
@@ -545,21 +526,11 @@ static void mxs_auart_dma_exit(struct mxs_auart_port *s)
 
 static int mxs_auart_dma_init(struct mxs_auart_port *s)
 {
-       dma_cap_mask_t mask;
-
        if (auart_dma_enabled(s))
                return 0;
 
-       /* We do not get the right DMA channels. */
-       if (s->dma_channel_rx == -1 || s->dma_channel_tx == -1)
-               return -EINVAL;
-
        /* init for RX */
-       dma_cap_zero(mask);
-       dma_cap_set(DMA_SLAVE, mask);
-       s->dma_channel = s->dma_channel_rx;
-       s->dma_data.chan_irq = s->dma_irq_rx;
-       s->rx_dma_chan = dma_request_channel(mask, mxs_auart_dma_filter, s);
+       s->rx_dma_chan = dma_request_slave_channel(s->dev, "rx");
        if (!s->rx_dma_chan)
                goto err_out;
        s->rx_dma_buf = kzalloc(UART_XMIT_SIZE, GFP_KERNEL | GFP_DMA);
@@ -567,9 +538,7 @@ static int mxs_auart_dma_init(struct mxs_auart_port *s)
                goto err_out;
 
        /* init for TX */
-       s->dma_channel = s->dma_channel_tx;
-       s->dma_data.chan_irq = s->dma_irq_tx;
-       s->tx_dma_chan = dma_request_channel(mask, mxs_auart_dma_filter, s);
+       s->tx_dma_chan = dma_request_slave_channel(s->dev, "tx");
        if (!s->tx_dma_chan)
                goto err_out;
        s->tx_dma_buf = kzalloc(UART_XMIT_SIZE, GFP_KERNEL | GFP_DMA);
@@ -1020,7 +989,6 @@ static int serial_mxs_probe_dt(struct mxs_auart_port *s,
                struct platform_device *pdev)
 {
        struct device_node *np = pdev->dev.of_node;
-       u32 dma_channel[2];
        int ret;
 
        if (!np)
@@ -1034,20 +1002,8 @@ static int serial_mxs_probe_dt(struct mxs_auart_port *s,
        }
        s->port.line = ret;
 
-       s->dma_irq_rx = platform_get_irq(pdev, 1);
-       s->dma_irq_tx = platform_get_irq(pdev, 2);
+       s->flags |= MXS_AUART_DMA_CONFIG;
 
-       ret = of_property_read_u32_array(np, "fsl,auart-dma-channel",
-                                       dma_channel, 2);
-       if (ret == 0) {
-               s->dma_channel_rx = dma_channel[0];
-               s->dma_channel_tx = dma_channel[1];
-
-               s->flags |= MXS_AUART_DMA_CONFIG;
-       } else {
-               s->dma_channel_rx = -1;
-               s->dma_channel_tx = -1;
-       }
        return 0;
 }
 
index ab5ba3d49e1445d3e30b67be73471a103b90f70d..c04ccdf60eaa21ddd4d441b07ad6b3201ce62614 100644 (file)
@@ -2428,6 +2428,8 @@ config FB_MXS
        select FB_CFB_FILLRECT
        select FB_CFB_COPYAREA
        select FB_CFB_IMAGEBLIT
+       select FB_MODE_HELPERS
+       select OF_VIDEOMODE
        help
          Framebuffer support for the MXS SoC.
 
index 45169cbaba6e288e714e2ce414dff1061a4569af..1b2c26d1658c65ed2fd73bb8a43462f537fe7f4a 100644 (file)
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/of_device.h>
-#include <linux/of_gpio.h>
+#include <video/of_display_timing.h>
 #include <linux/platform_device.h>
 #include <linux/clk.h>
 #include <linux/dma-mapping.h>
 #include <linux/io.h>
 #include <linux/pinctrl/consumer.h>
-#include <linux/mxsfb.h>
+#include <linux/fb.h>
+#include <linux/regulator/consumer.h>
+#include <video/videomode.h>
 
 #define REG_SET        4
 #define REG_CLR        8
 #define VDCTRL0_ENABLE_PRESENT         (1 << 28)
 #define VDCTRL0_VSYNC_ACT_HIGH         (1 << 27)
 #define VDCTRL0_HSYNC_ACT_HIGH         (1 << 26)
-#define VDCTRL0_DOTCLK_ACT_FAILING     (1 << 25)
+#define VDCTRL0_DOTCLK_ACT_FALLING     (1 << 25)
 #define VDCTRL0_ENABLE_ACT_HIGH                (1 << 24)
 #define VDCTRL0_VSYNC_PERIOD_UNIT      (1 << 21)
 #define VDCTRL0_VSYNC_PULSE_WIDTH_UNIT (1 << 20)
 #define BLUE 2
 #define TRANSP 3
 
+#define STMLCDIF_8BIT  1 /** pixel data bus to the display is of 8 bit width */
+#define STMLCDIF_16BIT 0 /** pixel data bus to the display is of 16 bit width */
+#define STMLCDIF_18BIT 2 /** pixel data bus to the display is of 18 bit width */
+#define STMLCDIF_24BIT 3 /** pixel data bus to the display is of 24 bit width */
+
+#define MXSFB_SYNC_DATA_ENABLE_HIGH_ACT        (1 << 6)
+#define MXSFB_SYNC_DOTCLK_FALLING_ACT  (1 << 7) /* negtive edge sampling */
+
 enum mxsfb_devtype {
        MXSFB_V3,
        MXSFB_V4,
@@ -168,8 +178,8 @@ struct mxsfb_info {
        unsigned ld_intf_width;
        unsigned dotclk_delay;
        const struct mxsfb_devdata *devdata;
-       int mapped;
        u32 sync;
+       struct regulator *reg_lcd;
 };
 
 #define mxsfb_is_v3(host) (host->devdata->ipversion == 3)
@@ -329,9 +339,19 @@ static void mxsfb_enable_controller(struct fb_info *fb_info)
 {
        struct mxsfb_info *host = to_imxfb_host(fb_info);
        u32 reg;
+       int ret;
 
        dev_dbg(&host->pdev->dev, "%s\n", __func__);
 
+       if (host->reg_lcd) {
+               ret = regulator_enable(host->reg_lcd);
+               if (ret) {
+                       dev_err(&host->pdev->dev,
+                               "lcd regulator enable failed:   %d\n", ret);
+                       return;
+               }
+       }
+
        clk_prepare_enable(host->clk);
        clk_set_rate(host->clk, PICOS2KHZ(fb_info->var.pixclock) * 1000U);
 
@@ -353,6 +373,7 @@ static void mxsfb_disable_controller(struct fb_info *fb_info)
        struct mxsfb_info *host = to_imxfb_host(fb_info);
        unsigned loop;
        u32 reg;
+       int ret;
 
        dev_dbg(&host->pdev->dev, "%s\n", __func__);
 
@@ -376,6 +397,13 @@ static void mxsfb_disable_controller(struct fb_info *fb_info)
        clk_disable_unprepare(host->clk);
 
        host->enabled = 0;
+
+       if (host->reg_lcd) {
+               ret = regulator_disable(host->reg_lcd);
+               if (ret)
+                       dev_err(&host->pdev->dev,
+                               "lcd regulator disable failed: %d\n", ret);
+       }
 }
 
 static int mxsfb_set_par(struct fb_info *fb_info)
@@ -459,8 +487,8 @@ static int mxsfb_set_par(struct fb_info *fb_info)
                vdctrl0 |= VDCTRL0_VSYNC_ACT_HIGH;
        if (host->sync & MXSFB_SYNC_DATA_ENABLE_HIGH_ACT)
                vdctrl0 |= VDCTRL0_ENABLE_ACT_HIGH;
-       if (host->sync & MXSFB_SYNC_DOTCLK_FAILING_ACT)
-               vdctrl0 |= VDCTRL0_DOTCLK_ACT_FAILING;
+       if (host->sync & MXSFB_SYNC_DOTCLK_FALLING_ACT)
+               vdctrl0 |= VDCTRL0_DOTCLK_ACT_FALLING;
 
        writel(vdctrl0, host->base + LCDC_VDCTRL0);
 
@@ -679,14 +707,105 @@ static int mxsfb_restore_mode(struct mxsfb_info *host)
        return 0;
 }
 
+static int mxsfb_init_fbinfo_dt(struct mxsfb_info *host)
+{
+       struct fb_info *fb_info = &host->fb_info;
+       struct fb_var_screeninfo *var = &fb_info->var;
+       struct device *dev = &host->pdev->dev;
+       struct device_node *np = host->pdev->dev.of_node;
+       struct device_node *display_np;
+       struct device_node *timings_np;
+       struct display_timings *timings;
+       u32 width;
+       int i;
+       int ret = 0;
+
+       display_np = of_parse_phandle(np, "display", 0);
+       if (!display_np) {
+               dev_err(dev, "failed to find display phandle\n");
+               return -ENOENT;
+       }
+
+       ret = of_property_read_u32(display_np, "bus-width", &width);
+       if (ret < 0) {
+               dev_err(dev, "failed to get property bus-width\n");
+               goto put_display_node;
+       }
+
+       switch (width) {
+       case 8:
+               host->ld_intf_width = STMLCDIF_8BIT;
+               break;
+       case 16:
+               host->ld_intf_width = STMLCDIF_16BIT;
+               break;
+       case 18:
+               host->ld_intf_width = STMLCDIF_18BIT;
+               break;
+       case 24:
+               host->ld_intf_width = STMLCDIF_24BIT;
+               break;
+       default:
+               dev_err(dev, "invalid bus-width value\n");
+               ret = -EINVAL;
+               goto put_display_node;
+       }
+
+       ret = of_property_read_u32(display_np, "bits-per-pixel",
+                                  &var->bits_per_pixel);
+       if (ret < 0) {
+               dev_err(dev, "failed to get property bits-per-pixel\n");
+               goto put_display_node;
+       }
+
+       timings = of_get_display_timings(display_np);
+       if (!timings) {
+               dev_err(dev, "failed to get display timings\n");
+               ret = -ENOENT;
+               goto put_display_node;
+       }
+
+       timings_np = of_find_node_by_name(display_np,
+                                         "display-timings");
+       if (!timings_np) {
+               dev_err(dev, "failed to find display-timings node\n");
+               ret = -ENOENT;
+               goto put_display_node;
+       }
+
+       for (i = 0; i < of_get_child_count(timings_np); i++) {
+               struct videomode vm;
+               struct fb_videomode fb_vm;
+
+               ret = videomode_from_timing(timings, &vm, i);
+               if (ret < 0)
+                       goto put_timings_node;
+               ret = fb_videomode_from_videomode(&vm, &fb_vm);
+               if (ret < 0)
+                       goto put_timings_node;
+
+               if (vm.data_flags & DISPLAY_FLAGS_DE_HIGH)
+                       host->sync |= MXSFB_SYNC_DATA_ENABLE_HIGH_ACT;
+               if (vm.data_flags & DISPLAY_FLAGS_PIXDATA_NEGEDGE)
+                       host->sync |= MXSFB_SYNC_DOTCLK_FALLING_ACT;
+               fb_add_videomode(&fb_vm, &fb_info->modelist);
+       }
+
+put_timings_node:
+       of_node_put(timings_np);
+put_display_node:
+       of_node_put(display_np);
+       return ret;
+}
+
 static int mxsfb_init_fbinfo(struct mxsfb_info *host)
 {
        struct fb_info *fb_info = &host->fb_info;
        struct fb_var_screeninfo *var = &fb_info->var;
-       struct mxsfb_platform_data *pdata = host->pdev->dev.platform_data;
        dma_addr_t fb_phys;
        void *fb_virt;
-       unsigned fb_size = pdata->fb_size;
+       unsigned fb_size;
+       int ret;
 
        fb_info->fbops = &mxsfb_ops;
        fb_info->flags = FBINFO_FLAG_DEFAULT | FBINFO_READS_FAST;
@@ -696,40 +815,22 @@ static int mxsfb_init_fbinfo(struct mxsfb_info *host)
        fb_info->fix.visual = FB_VISUAL_TRUECOLOR,
        fb_info->fix.accel = FB_ACCEL_NONE;
 
-       var->bits_per_pixel = pdata->default_bpp ? pdata->default_bpp : 16;
+       ret = mxsfb_init_fbinfo_dt(host);
+       if (ret)
+               return ret;
+
        var->nonstd = 0;
        var->activate = FB_ACTIVATE_NOW;
        var->accel_flags = 0;
        var->vmode = FB_VMODE_NONINTERLACED;
 
-       host->dotclk_delay = pdata->dotclk_delay;
-       host->ld_intf_width = pdata->ld_intf_width;
-
        /* Memory allocation for framebuffer */
-       if (pdata->fb_phys) {
-               if (!fb_size)
-                       return -EINVAL;
-
-               fb_phys = pdata->fb_phys;
-
-               if (!request_mem_region(fb_phys, fb_size, host->pdev->name))
-                       return -ENOMEM;
+       fb_size = SZ_2M;
+       fb_virt = alloc_pages_exact(fb_size, GFP_DMA);
+       if (!fb_virt)
+               return -ENOMEM;
 
-               fb_virt = ioremap(fb_phys, fb_size);
-               if (!fb_virt) {
-                       release_mem_region(fb_phys, fb_size);
-                       return -ENOMEM;
-               }
-               host->mapped = 1;
-       } else {
-               if (!fb_size)
-                       fb_size = SZ_2M; /* default */
-               fb_virt = alloc_pages_exact(fb_size, GFP_DMA);
-               if (!fb_virt)
-                       return -ENOMEM;
-
-               fb_phys = virt_to_phys(fb_virt);
-       }
+       fb_phys = virt_to_phys(fb_virt);
 
        fb_info->fix.smem_start = fb_phys;
        fb_info->screen_base = fb_virt;
@@ -745,13 +846,7 @@ static void mxsfb_free_videomem(struct mxsfb_info *host)
 {
        struct fb_info *fb_info = &host->fb_info;
 
-       if (host->mapped) {
-               iounmap(fb_info->screen_base);
-               release_mem_region(fb_info->fix.smem_start,
-                               fb_info->screen_size);
-       } else {
-               free_pages_exact(fb_info->screen_base, fb_info->fix.smem_len);
-       }
+       free_pages_exact(fb_info->screen_base, fb_info->fix.smem_len);
 }
 
 static struct platform_device_id mxsfb_devtype[] = {
@@ -778,47 +873,35 @@ static int mxsfb_probe(struct platform_device *pdev)
 {
        const struct of_device_id *of_id =
                        of_match_device(mxsfb_dt_ids, &pdev->dev);
-       struct mxsfb_platform_data *pdata = pdev->dev.platform_data;
        struct resource *res;
        struct mxsfb_info *host;
        struct fb_info *fb_info;
        struct fb_modelist *modelist;
        struct pinctrl *pinctrl;
-       int panel_enable;
-       enum of_gpio_flags flags;
-       int i, ret;
+       int ret;
 
        if (of_id)
                pdev->id_entry = of_id->data;
 
-       if (!pdata) {
-               dev_err(&pdev->dev, "No platformdata. Giving up\n");
-               return -ENODEV;
-       }
-
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        if (!res) {
                dev_err(&pdev->dev, "Cannot get memory IO resource\n");
                return -ENODEV;
        }
 
-       if (!request_mem_region(res->start, resource_size(res), pdev->name))
-               return -EBUSY;
-
        fb_info = framebuffer_alloc(sizeof(struct mxsfb_info), &pdev->dev);
        if (!fb_info) {
                dev_err(&pdev->dev, "Failed to allocate fbdev\n");
-               ret = -ENOMEM;
-               goto error_alloc_info;
+               return -ENOMEM;
        }
 
        host = to_imxfb_host(fb_info);
 
-       host->base = ioremap(res->start, resource_size(res));
-       if (!host->base) {
+       host->base = devm_ioremap_resource(&pdev->dev, res);
+       if (IS_ERR(host->base)) {
                dev_err(&pdev->dev, "ioremap failed\n");
-               ret = -ENOMEM;
-               goto error_ioremap;
+               ret = PTR_ERR(host->base);
+               goto fb_release;
        }
 
        host->pdev = pdev;
@@ -829,47 +912,31 @@ static int mxsfb_probe(struct platform_device *pdev)
        pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
        if (IS_ERR(pinctrl)) {
                ret = PTR_ERR(pinctrl);
-               goto error_getpin;
+               goto fb_release;
        }
 
-       host->clk = clk_get(&host->pdev->dev, NULL);
+       host->clk = devm_clk_get(&host->pdev->dev, NULL);
        if (IS_ERR(host->clk)) {
                ret = PTR_ERR(host->clk);
-               goto error_getclock;
+               goto fb_release;
        }
 
-       panel_enable = of_get_named_gpio_flags(pdev->dev.of_node,
-                                              "panel-enable-gpios", 0, &flags);
-       if (gpio_is_valid(panel_enable)) {
-               unsigned long f = GPIOF_OUT_INIT_HIGH;
-               if (flags == OF_GPIO_ACTIVE_LOW)
-                       f = GPIOF_OUT_INIT_LOW;
-               ret = devm_gpio_request_one(&pdev->dev, panel_enable,
-                                           f, "panel-enable");
-               if (ret) {
-                       dev_err(&pdev->dev,
-                               "failed to request gpio %d: %d\n",
-                               panel_enable, ret);
-                       goto error_panel_enable;
-               }
-       }
+       host->reg_lcd = devm_regulator_get(&pdev->dev, "lcd");
+       if (IS_ERR(host->reg_lcd))
+               host->reg_lcd = NULL;
 
-       fb_info->pseudo_palette = kmalloc(sizeof(u32) * 16, GFP_KERNEL);
+       fb_info->pseudo_palette = devm_kzalloc(&pdev->dev, sizeof(u32) * 16,
+                                              GFP_KERNEL);
        if (!fb_info->pseudo_palette) {
                ret = -ENOMEM;
-               goto error_pseudo_pallette;
+               goto fb_release;
        }
 
        INIT_LIST_HEAD(&fb_info->modelist);
 
-       host->sync = pdata->sync;
-
        ret = mxsfb_init_fbinfo(host);
        if (ret != 0)
-               goto error_init_fb;
-
-       for (i = 0; i < pdata->mode_count; i++)
-               fb_add_videomode(&pdata->mode_list[i], &fb_info->modelist);
+               goto fb_release;
 
        modelist = list_first_entry(&fb_info->modelist,
                        struct fb_modelist, list);
@@ -883,7 +950,7 @@ static int mxsfb_probe(struct platform_device *pdev)
        ret = register_framebuffer(fb_info);
        if (ret != 0) {
                dev_err(&pdev->dev,"Failed to register framebuffer\n");
-               goto error_register;
+               goto fb_destroy;
        }
 
        if (!host->enabled) {
@@ -896,22 +963,12 @@ static int mxsfb_probe(struct platform_device *pdev)
 
        return 0;
 
-error_register:
+fb_destroy:
        if (host->enabled)
                clk_disable_unprepare(host->clk);
        fb_destroy_modelist(&fb_info->modelist);
-error_init_fb:
-       kfree(fb_info->pseudo_palette);
-error_pseudo_pallette:
-error_panel_enable:
-       clk_put(host->clk);
-error_getclock:
-error_getpin:
-       iounmap(host->base);
-error_ioremap:
+fb_release:
        framebuffer_release(fb_info);
-error_alloc_info:
-       release_mem_region(res->start, resource_size(res));
 
        return ret;
 }
@@ -920,19 +977,14 @@ static int mxsfb_remove(struct platform_device *pdev)
 {
        struct fb_info *fb_info = platform_get_drvdata(pdev);
        struct mxsfb_info *host = to_imxfb_host(fb_info);
-       struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 
        if (host->enabled)
                mxsfb_disable_controller(fb_info);
 
        unregister_framebuffer(fb_info);
-       kfree(fb_info->pseudo_palette);
        mxsfb_free_videomem(host);
-       iounmap(host->base);
-       clk_put(host->clk);
 
        framebuffer_release(fb_info);
-       release_mem_region(res->start, resource_size(res));
 
        platform_set_drvdata(pdev, NULL);
 
diff --git a/include/linux/mxsfb.h b/include/linux/mxsfb.h
deleted file mode 100644 (file)
index f80af86..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-#ifndef __LINUX_MXSFB_H
-#define __LINUX_MXSFB_H
-
-#include <linux/fb.h>
-
-#define STMLCDIF_8BIT 1        /** pixel data bus to the display is of 8 bit width */
-#define STMLCDIF_16BIT 0 /** pixel data bus to the display is of 16 bit width */
-#define STMLCDIF_18BIT 2 /** pixel data bus to the display is of 18 bit width */
-#define STMLCDIF_24BIT 3 /** pixel data bus to the display is of 24 bit width */
-
-#define MXSFB_SYNC_DATA_ENABLE_HIGH_ACT        (1 << 6)
-#define MXSFB_SYNC_DOTCLK_FAILING_ACT  (1 << 7) /* failing/negtive edge sampling */
-
-struct mxsfb_platform_data {
-       struct fb_videomode *mode_list;
-       unsigned mode_count;
-
-       unsigned default_bpp;
-
-       unsigned dotclk_delay;  /* refer manual HW_LCDIF_VDCTRL4 register */
-       unsigned ld_intf_width; /* refer STMLCDIF_* macros */
-
-       unsigned fb_size;       /* Size of the video memory. If zero a
-                                * default will be used
-                                */
-       unsigned long fb_phys;  /* physical address for the video memory. If
-                                * zero the framebuffer memory will be dynamically
-                                * allocated. If specified,fb_size must also be specified.
-                                * fb_phys must be unused by Linux.
-                                */
-       u32 sync;               /* sync mask, contains MXSFB specifics not
-                                * carried in fb_info->var.sync
-                                */
-};
-
-#endif /* __LINUX_MXSFB_H */
index 61ae1306db23f55ca4a9dd30ab9f61bb03e3ef88..4835486f58e5abbe71d2535a6f563241ae4d3126 100644 (file)
@@ -24,7 +24,7 @@
 #ifndef __LINUX_SPI_MXS_SPI_H__
 #define __LINUX_SPI_MXS_SPI_H__
 
-#include <linux/fsl/mxs-dma.h>
+#include <linux/dmaengine.h>
 
 #define ssp_is_old(host)       ((host)->devid == IMX23_SSP)
 
@@ -137,9 +137,7 @@ struct mxs_ssp {
        unsigned int                    clk_rate;
        enum mxs_ssp_id                 devid;
 
-       int                             dma_channel;
        struct dma_chan                 *dmach;
-       struct mxs_dma_data             dma_data;
        unsigned int                    dma_dir;
        enum dma_transfer_direction     slave_dirn;
        u32                             ssp_pio_words[SSP_PIO_NUM];