]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge tag 'dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 2 Jul 2013 21:23:01 +0000 (14:23 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 2 Jul 2013 21:23:01 +0000 (14:23 -0700)
Pull ARM SoC device tree changes from Arnd Bergmann:
 "These changes from 30 individual branches for the most part update
  device tree files, but there are also a few source code changes that
  have crept in this time, usually in order to atomically move over a
  driver from using hardcoded data to DT probing.

  A number of platforms change their DT files to use the C preprocessor,
  which is causing a bit of churn, but that is hopefully only this once"

* tag 'dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (372 commits)
  ARM: at91: dt: rm9200ek: add spi support
  ARM: at91: dt: rm9200: add spi support
  ARM: at91/DT: at91sam9n12: add SPI DMA client infos
  ARM: at91/DT: sama5d3: add SPI DMA client infos
  ARM: at91/DT: fix SPI compatibility string
  ARM: Kirkwood: Fix the internal register ranges translation
  ARM: dts: bcm281xx: change comment to C89 style
  ARM: mmc: bcm281xx SDHCI driver (dt mods)
  ARM: nomadik: add the new clocks to the device tree
  clk: nomadik: implement the Nomadik clocks properly
  ARM: dts: omap5-uevm: Provide USB Host PHY clock frequency
  ARM: dts: omap4-panda: Fix DVI EDID reads
  ARM: dts: omap4-panda: Add USB Host support
  arm: mvebu: enable mini-PCIe connectors on Armada 370 RD
  ARM: shmobile: irqpin: add a DT property to enable masking on parent
  ARM: dts: AM43x EPOS EVM support
  ARM: dts: OMAP5: Add bandgap DT entry
  ARM: dts: AM33XX: Add pinmux configuration for CPSW to am335x EVM
  ARM: dts: AM33XX: Add pinmux configuration for CPSW to EVMsk
  ARM: dts: AM33XX: Add pinmux configuration for CPSW to beaglebone
  ...

297 files changed:
Documentation/devicetree/bindings/arm/omap/omap.txt
Documentation/devicetree/bindings/arm/ste-nomadik.txt
Documentation/devicetree/bindings/bus/imx-weim.txt [new file with mode: 0644]
Documentation/devicetree/bindings/clock/altr_socfpga.txt
Documentation/devicetree/bindings/clock/exynos4-clock.txt
Documentation/devicetree/bindings/clock/nvidia,tegra114-car.txt
Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt
Documentation/devicetree/bindings/clock/nvidia,tegra30-car.txt
Documentation/devicetree/bindings/clock/st,nomadik.txt [new file with mode: 0644]
Documentation/devicetree/bindings/gpu/samsung-g2d.txt
Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt [new file with mode: 0644]
Documentation/devicetree/bindings/media/s5p-mfc.txt
Documentation/devicetree/bindings/mfd/ab8500.txt
Documentation/devicetree/bindings/mmc/bcm,kona-sdhci.txt [new file with mode: 0644]
Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt
Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
Documentation/devicetree/bindings/usb/exynos-usb.txt
Documentation/devicetree/bindings/video/exynos_dp.txt
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/am4372.dtsi [new file with mode: 0644]
arch/arm/boot/dts/am43x-epos-evm.dts [new file with mode: 0644]
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-mv78460.dtsi
arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
arch/arm/boot/dts/armada-xp.dtsi
arch/arm/boot/dts/at91-ariag25.dts
arch/arm/boot/dts/at91-foxg20.dts [new file with mode: 0644]
arch/arm/boot/dts/at91rm9200.dtsi
arch/arm/boot/dts/at91rm9200ek.dts
arch/arm/boot/dts/at91sam9260.dtsi
arch/arm/boot/dts/at91sam9263.dtsi
arch/arm/boot/dts/at91sam9263ek.dts
arch/arm/boot/dts/at91sam9g20ek_common.dtsi
arch/arm/boot/dts/at91sam9g45.dtsi
arch/arm/boot/dts/at91sam9m10g45ek.dts
arch/arm/boot/dts/at91sam9n12.dtsi
arch/arm/boot/dts/at91sam9n12ek.dts
arch/arm/boot/dts/at91sam9x5.dtsi
arch/arm/boot/dts/at91sam9x5ek.dtsi
arch/arm/boot/dts/bcm11351-brt.dts
arch/arm/boot/dts/bcm11351.dtsi
arch/arm/boot/dts/bcm2835-rpi-b.dts
arch/arm/boot/dts/ccu8540.dts [new file with mode: 0644]
arch/arm/boot/dts/ccu9540.dts
arch/arm/boot/dts/dbx5x0.dtsi
arch/arm/boot/dts/dove-cubox.dts
arch/arm/boot/dts/exynos4.dtsi
arch/arm/boot/dts/exynos4210-origen.dts
arch/arm/boot/dts/exynos4210-pinctrl.dtsi
arch/arm/boot/dts/exynos4210.dtsi
arch/arm/boot/dts/exynos4412-odroidx.dts
arch/arm/boot/dts/exynos4412-origen.dts
arch/arm/boot/dts/exynos4412-smdk4412.dts
arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
arch/arm/boot/dts/exynos4x12.dtsi
arch/arm/boot/dts/exynos5250-arndale.dts
arch/arm/boot/dts/exynos5250-pinctrl.dtsi
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
arch/arm/boot/dts/exynos5440-ssdk5440.dts
arch/arm/boot/dts/exynos5440.dtsi
arch/arm/boot/dts/href.dtsi
arch/arm/boot/dts/hrefprev60.dts
arch/arm/boot/dts/hrefv60plus.dts
arch/arm/boot/dts/imx23.dtsi
arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts [new file with mode: 0644]
arch/arm/boot/dts/imx27-phytec-phycore-som.dts [new file with mode: 0644]
arch/arm/boot/dts/imx27-phytec-phycore.dts [deleted file]
arch/arm/boot/dts/imx27.dtsi
arch/arm/boot/dts/imx28-apf28dev.dts
arch/arm/boot/dts/imx28-cfa10036.dts
arch/arm/boot/dts/imx28-cfa10049.dts
arch/arm/boot/dts/imx28-cfa10055.dts [new file with mode: 0644]
arch/arm/boot/dts/imx28-cfa10057.dts [new file with mode: 0644]
arch/arm/boot/dts/imx28-m28evk.dts
arch/arm/boot/dts/imx28.dtsi
arch/arm/boot/dts/imx51-apf51.dts
arch/arm/boot/dts/imx51.dtsi
arch/arm/boot/dts/imx53-m53evk.dts [new file with mode: 0644]
arch/arm/boot/dts/imx53-mba53.dts
arch/arm/boot/dts/imx53-qsb.dts
arch/arm/boot/dts/imx53-tqma53.dtsi
arch/arm/boot/dts/imx53-tx53.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx53.dtsi
arch/arm/boot/dts/imx6dl-sabreauto.dts
arch/arm/boot/dts/imx6dl-sabresd.dts
arch/arm/boot/dts/imx6dl.dtsi
arch/arm/boot/dts/imx6q-phytec-pbab01.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6q-sabreauto.dts
arch/arm/boot/dts/imx6q-sabresd.dts
arch/arm/boot/dts/imx6q.dtsi
arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
arch/arm/boot/dts/imx6qdl-sabresd.dtsi
arch/arm/boot/dts/imx6qdl.dtsi
arch/arm/boot/dts/imx6sl-evk.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6sl.dtsi [new file with mode: 0644]
arch/arm/boot/dts/kirkwood-6281.dtsi
arch/arm/boot/dts/kirkwood-6282.dtsi
arch/arm/boot/dts/kirkwood-cloudbox.dts
arch/arm/boot/dts/kirkwood-dns320.dts
arch/arm/boot/dts/kirkwood-dns325.dts
arch/arm/boot/dts/kirkwood-dnskw.dtsi
arch/arm/boot/dts/kirkwood-dockstar.dts
arch/arm/boot/dts/kirkwood-dreamplug.dts
arch/arm/boot/dts/kirkwood-goflexnet.dts
arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts
arch/arm/boot/dts/kirkwood-ib62x0.dts
arch/arm/boot/dts/kirkwood-iconnect.dts
arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
arch/arm/boot/dts/kirkwood-is2.dts
arch/arm/boot/dts/kirkwood-km_kirkwood.dts
arch/arm/boot/dts/kirkwood-lsxl.dtsi
arch/arm/boot/dts/kirkwood-mplcec4.dts
arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts
arch/arm/boot/dts/kirkwood-ns2-common.dtsi
arch/arm/boot/dts/kirkwood-ns2.dts
arch/arm/boot/dts/kirkwood-ns2lite.dts
arch/arm/boot/dts/kirkwood-ns2max.dts
arch/arm/boot/dts/kirkwood-ns2mini.dts
arch/arm/boot/dts/kirkwood-nsa310.dts
arch/arm/boot/dts/kirkwood-openblocks_a6.dts
arch/arm/boot/dts/kirkwood-sheevaplug-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/kirkwood-sheevaplug-esata.dts [new file with mode: 0644]
arch/arm/boot/dts/kirkwood-sheevaplug.dts [new file with mode: 0644]
arch/arm/boot/dts/kirkwood-topkick.dts
arch/arm/boot/dts/kirkwood-ts219-6281.dts
arch/arm/boot/dts/kirkwood-ts219-6282.dts
arch/arm/boot/dts/kirkwood-ts219.dtsi
arch/arm/boot/dts/kirkwood.dtsi
arch/arm/boot/dts/lpc32xx.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
arch/arm/boot/dts/omap3-evm.dts
arch/arm/boot/dts/omap3-igep.dtsi
arch/arm/boot/dts/omap3-igep0020.dts
arch/arm/boot/dts/omap3-igep0030.dts
arch/arm/boot/dts/omap3-overo.dtsi
arch/arm/boot/dts/omap3-tobi.dts
arch/arm/boot/dts/omap3.dtsi
arch/arm/boot/dts/omap3430-sdp.dts
arch/arm/boot/dts/omap34xx.dtsi
arch/arm/boot/dts/omap36xx.dtsi
arch/arm/boot/dts/omap4-panda-a4.dts
arch/arm/boot/dts/omap4-panda-common.dtsi
arch/arm/boot/dts/omap4-panda-es.dts
arch/arm/boot/dts/omap4-panda.dts
arch/arm/boot/dts/omap4-sdp-es23plus.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
arch/arm/boot/dts/omap4460.dtsi
arch/arm/boot/dts/omap5-evm.dts [deleted file]
arch/arm/boot/dts/omap5-uevm.dts [new file with mode: 0644]
arch/arm/boot/dts/omap5.dtsi
arch/arm/boot/dts/picoxcell-pc3x2.dtsi
arch/arm/boot/dts/picoxcell-pc3x3.dtsi
arch/arm/boot/dts/prima2.dtsi
arch/arm/boot/dts/pxa2xx.dtsi
arch/arm/boot/dts/r8a73a4.dtsi
arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts [new file with mode: 0644]
arch/arm/boot/dts/r8a7740.dtsi
arch/arm/boot/dts/r8a7779.dtsi
arch/arm/boot/dts/r8a7790.dtsi
arch/arm/boot/dts/s3c2416-pinctrl.dtsi [new file with mode: 0644]
arch/arm/boot/dts/s3c2416-smdk2416.dts [new file with mode: 0644]
arch/arm/boot/dts/s3c2416.dtsi [new file with mode: 0644]
arch/arm/boot/dts/s3c24xx.dtsi [new file with mode: 0644]
arch/arm/boot/dts/sama5d3.dtsi
arch/arm/boot/dts/sh7372.dtsi
arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
arch/arm/boot/dts/sh73a0.dtsi
arch/arm/boot/dts/snowball.dts
arch/arm/boot/dts/socfpga.dtsi
arch/arm/boot/dts/socfpga_cyclone5.dts
arch/arm/boot/dts/socfpga_vt.dts
arch/arm/boot/dts/spear13xx.dtsi
arch/arm/boot/dts/spear3xx.dtsi
arch/arm/boot/dts/spear600.dtsi
arch/arm/boot/dts/ste-nomadik-s8815.dts
arch/arm/boot/dts/ste-nomadik-stn8815.dtsi
arch/arm/boot/dts/stuib.dtsi
arch/arm/boot/dts/sun4i-a10-cubieboard.dts
arch/arm/boot/dts/sun4i-a10.dtsi
arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts [new file with mode: 0644]
arch/arm/boot/dts/sun5i-a10s.dtsi [new file with mode: 0644]
arch/arm/boot/dts/sun5i-a13-olinuxino.dts
arch/arm/boot/dts/sun5i-a13.dtsi
arch/arm/boot/dts/tegra114-dalmore.dts
arch/arm/boot/dts/tegra114-pluto.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-iris-512.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_omap3.dtsi [new file with mode: 0644]
arch/arm/boot/dts/usb_a9260.dts
arch/arm/boot/dts/usb_a9263.dts
arch/arm/boot/dts/usb_a9g20.dts
arch/arm/boot/dts/usb_a9g20_common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/usb_a9g20_lpw.dts [new file with mode: 0644]
arch/arm/boot/dts/vf610-pinfunc.h [new file with mode: 0644]
arch/arm/boot/dts/vf610-twr.dts [new file with mode: 0644]
arch/arm/boot/dts/vf610.dtsi [new file with mode: 0644]
arch/arm/boot/dts/vt8500-bv07.dts
arch/arm/boot/dts/vt8500.dtsi
arch/arm/boot/dts/wm8505-ref.dts
arch/arm/boot/dts/wm8505.dtsi
arch/arm/boot/dts/wm8650-mid.dts
arch/arm/boot/dts/wm8650.dtsi
arch/arm/boot/dts/wm8750-apc8750.dts [new file with mode: 0644]
arch/arm/boot/dts/wm8750.dtsi [new file with mode: 0644]
arch/arm/boot/dts/wm8850-w70v2.dts
arch/arm/boot/dts/wm8850.dtsi
arch/arm/boot/dts/zynq-7000.dtsi
arch/arm/boot/dts/zynq-zc702.dts
arch/arm/boot/dts/zynq-zc706.dts [new file with mode: 0644]
arch/arm/boot/dts/zynq-zed.dts [new file with mode: 0644]
arch/arm/configs/at91_dt_defconfig
arch/arm/configs/at91sam9260_9g20_defconfig
arch/arm/configs/at91sam9263_defconfig
arch/arm/configs/nhk8815_defconfig
arch/arm/mach-at91/Kconfig.non_dt
arch/arm/mach-at91/Makefile
arch/arm/mach-at91/at91sam9g45.c
arch/arm/mach-at91/at91sam9x5.c
arch/arm/mach-at91/board-usb-a926x.c [deleted file]
arch/arm/mach-imx/clk-imx51-imx53.c
arch/arm/mach-imx/mach-imx53.c
arch/arm/mach-mxs/Kconfig
arch/arm/mach-mxs/mach-mxs.c
arch/arm/mach-nomadik/Kconfig
arch/arm/mach-nomadik/cpu-8815.c
arch/arm/mach-omap2/cclock33xx_data.c
arch/arm/mach-s3c24xx/Kconfig
arch/arm/mach-s3c24xx/Makefile
arch/arm/mach-s3c24xx/mach-s3c2416-dt.c [new file with mode: 0644]
arch/arm/mach-shmobile/Kconfig
arch/arm/mach-shmobile/Makefile
arch/arm/mach-shmobile/board-armadillo800eva-reference.c [new file with mode: 0644]
arch/arm/mach-shmobile/include/mach/r8a7740.h
arch/arm/mach-shmobile/intc-r8a7740.c
arch/arm/mach-shmobile/setup-r8a7740.c
arch/arm/mach-ux500/cpu-db8500.c
arch/arm/mach-zynq/common.c
drivers/bus/Kconfig
drivers/bus/Makefile
drivers/bus/imx-weim.c [new file with mode: 0644]
drivers/clk/clk-nomadik.c
drivers/clk/samsung/clk-exynos4.c
drivers/clocksource/nomadik-mtu.c
drivers/crypto/ux500/cryp/cryp_core.c
drivers/crypto/ux500/hash/hash_core.c
drivers/irqchip/irq-renesas-intc-irqpin.c
drivers/pinctrl/pinctrl-nomadik.c
drivers/regulator/ab8500.c
include/dt-bindings/clock/tegra114-car.h [new file with mode: 0644]
include/dt-bindings/clock/tegra20-car.h [new file with mode: 0644]
include/dt-bindings/clock/tegra30-car.h [new file with mode: 0644]
include/dt-bindings/dma/at91.h [new file with mode: 0644]
include/dt-bindings/gpio/tegra-gpio.h [new file with mode: 0644]
include/dt-bindings/pinctrl/am33xx.h [new file with mode: 0644]
include/dt-bindings/pinctrl/omap.h [new file with mode: 0644]

index f8288ea1b530eb1674faf84cb57564b3f8996547..6d498c758b450a2c1a6b2d40271ef17df0298a23 100644 (file)
@@ -56,3 +56,6 @@ Boards:
 
 - OMAP5 EVM : Evaluation Module
   compatible = "ti,omap5-evm", "ti,omap5"
+
+- AM43x EPOS EVM
+  compatible = "ti,am43x-epos-evm", "ti,am4372", "ti,am43"
index 19bca04b81c91c3dab487177f88a3057dd991f92..6256ec31666d51cb833c5d78ecfcf30293cefed2 100644 (file)
@@ -3,6 +3,11 @@ ST-Ericsson Nomadik Device Tree Bindings
 For various board the "board" node may contain specific properties
 that pertain to this particular board, such as board-specific GPIOs.
 
+Required root node property: src
+- Nomadik System and reset controller used for basic chip control, clock
+  and reset line control.
+- compatible: must be "stericsson,nomadik,src"
+
 Boards with the Nomadik SoC include:
 
 S8815 "MiniKit" manufactured by Calao Systems:
diff --git a/Documentation/devicetree/bindings/bus/imx-weim.txt b/Documentation/devicetree/bindings/bus/imx-weim.txt
new file mode 100644 (file)
index 0000000..cedc2a9
--- /dev/null
@@ -0,0 +1,49 @@
+Device tree bindings for i.MX Wireless External Interface Module (WEIM)
+
+The term "wireless" does not imply that the WEIM is literally an interface
+without wires. It simply means that this module was originally designed for
+wireless and mobile applications that use low-power technology.
+
+The actual devices are instantiated from the child nodes of a WEIM node.
+
+Required properties:
+
+ - compatible:         Should be set to "fsl,imx6q-weim"
+ - reg:                        A resource specifier for the register space
+                       (see the example below)
+ - clocks:             the clock, see the example below.
+ - #address-cells:     Must be set to 2 to allow memory address translation
+ - #size-cells:                Must be set to 1 to allow CS address passing
+ - ranges:             Must be set up to reflect the memory layout with four
+                       integer values for each chip-select line in use:
+
+                          <cs-number> 0 <physical address of mapping> <size>
+
+Timing property for child nodes. It is mandatory, not optional.
+
+ - fsl,weim-cs-timing: The timing array, contains 6 timing values for the
+                       child node. We can get the CS index from the child
+                       node's "reg" property. This property contains the values
+                       for the registers EIM_CSnGCR1, EIM_CSnGCR2, EIM_CSnRCR1,
+                       EIM_CSnRCR2, EIM_CSnWCR1, EIM_CSnWCR2 in this order.
+
+Example for an imx6q-sabreauto board, the NOR flash connected to the WEIM:
+
+       weim: weim@021b8000 {
+               compatible = "fsl,imx6q-weim";
+               reg = <0x021b8000 0x4000>;
+               clocks = <&clks 196>;
+               #address-cells = <2>;
+               #size-cells = <1>;
+               ranges = <0 0 0x08000000 0x08000000>;
+
+               nor@0,0 {
+                       compatible = "cfi-flash";
+                       reg = <0 0 0x02000000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       bank-width = <2>;
+                       fsl,weim-cs-timing = <0x00620081 0x00000001 0x1c022000
+                                       0x0000c000 0x1404a38e 0x00000000>;
+               };
+       };
index bd0c8416a5c82cbfd6b6c021b73556438bf5caa2..0045433eae1f81ef4b3263ba18fa0e6ec8c018e6 100644 (file)
@@ -9,6 +9,9 @@ Required properties:
        "altr,socfpga-pll-clock" - for a PLL clock
        "altr,socfpga-perip-clock" - The peripheral clock divided from the
                PLL clock.
+       "altr,socfpga-gate-clk" - Clocks that directly feed peripherals and
+               can get gated.
+
 - reg : shall be the control register offset from CLOCK_MANAGER's base for the clock.
 - clocks : shall be the input parent clock phandle for the clock. This is
        either an oscillator or a pll output.
@@ -16,3 +19,7 @@ Required properties:
 
 Optional properties:
 - fixed-divider : If clocks have a fixed divider value, use this property.
+- clk-gate : For "socfpga-gate-clk", clk-gate contains the gating register
+        and the bit index.
+- div-reg : For "socfpga-gate-clk", div-reg contains the divider register, bit shift,
+        and width.
index ea5e26f16aecd8bd45817f4cbae932c523f8906b..14d5c2af26f4bec06f4fb507db6d647a3eb25255 100644 (file)
@@ -102,6 +102,7 @@ Exynos4 SoC and this is specified where applicable.
   sclk_spi0_isp       174     Exynos4x12
   sclk_spi1_isp       175     Exynos4x12
   sclk_uart_isp       176     Exynos4x12
+  sclk_fimg2d         177
 
              [Peripheral Clock Gates]
 
@@ -129,7 +130,7 @@ Exynos4 SoC and this is specified where applicable.
   smmu_mfcl           274
   smmu_mfcr           275
   g3d                 276
-  g2d                 277     Exynos4210
+  g2d                 277
   rotator             278     Exynos4210
   mdma                279     Exynos4210
   smmu_g2d            280     Exynos4210
index d6cb083b90a2c5675e42f253982645cf2a16a27d..0c80c267710451918297675c1e47f2020e183cff 100644 (file)
@@ -12,253 +12,9 @@ Required properties :
 - clocks : Should contain phandle and clock specifiers for two clocks:
   the 32 KHz "32k_in", and the board-specific oscillator "osc".
 - #clock-cells : Should be 1.
-  In clock consumers, this cell represents the clock ID exposed by the CAR.
-
-  The first 160 clocks are numbered to match the bits in the CAR's CLK_OUT_ENB
-  registers. These IDs often match those in the CAR's RST_DEVICES registers,
-  but not in all cases. Some bits in CLK_OUT_ENB affect multiple clocks. In
-  this case, those clocks are assigned IDs above 160 in order to highlight
-  this issue. Implementations that interpret these clock IDs as bit values
-  within the CLK_OUT_ENB or RST_DEVICES registers should be careful to
-  explicitly handle these special cases.
-
-  The balance of the clocks controlled by the CAR are assigned IDs of 160 and
-  above.
-
-  0    unassigned
-  1    unassigned
-  2    unassigned
-  3    unassigned
-  4    rtc
-  5    timer
-  6    uarta
-  7    unassigned      (register bit affects uartb and vfir)
-  8    unassigned
-  9    sdmmc2
-  10   unassigned      (register bit affects spdif_in and spdif_out)
-  11   i2s1
-  12   i2c1
-  13   ndflash
-  14   sdmmc1
-  15   sdmmc4
-  16   unassigned
-  17   pwm
-  18   i2s2
-  19   epp
-  20   unassigned      (register bit affects vi and vi_sensor)
-  21   2d
-  22   usbd
-  23   isp
-  24   3d
-  25   unassigned
-  26   disp2
-  27   disp1
-  28   host1x
-  29   vcp
-  30   i2s0
-  31   unassigned
-
-  32   unassigned
-  33   unassigned
-  34   apbdma
-  35   unassigned
-  36   kbc
-  37   unassigned
-  38   unassigned
-  39   unassigned      (register bit affects fuse and fuse_burn)
-  40   kfuse
-  41   sbc1
-  42   nor
-  43   unassigned
-  44   sbc2
-  45   unassigned
-  46   sbc3
-  47   i2c5
-  48   dsia
-  49   unassigned
-  50   mipi
-  51   hdmi
-  52   csi
-  53   unassigned
-  54   i2c2
-  55   uartc
-  56   mipi-cal
-  57   emc
-  58   usb2
-  59   usb3
-  60   msenc
-  61   vde
-  62   bsea
-  63   bsev
-
-  64   unassigned
-  65   uartd
-  66   unassigned
-  67   i2c3
-  68   sbc4
-  69   sdmmc3
-  70   unassigned
-  71   owr
-  72   afi
-  73   csite
-  74   unassigned
-  75   unassigned
-  76   la
-  77   trace
-  78   soc_therm
-  79   dtv
-  80   ndspeed
-  81   i2cslow
-  82   dsib
-  83   tsec
-  84   unassigned
-  85   unassigned
-  86   unassigned
-  87   unassigned
-  88   unassigned
-  89   xusb_host
-  90   unassigned
-  91   msenc
-  92   csus
-  93   unassigned
-  94   unassigned
-  95   unassigned      (bit affects xusb_dev and xusb_dev_src)
-
-  96   unassigned
-  97   unassigned
-  98   unassigned
-  99   mselect
-  100  tsensor
-  101  i2s3
-  102  i2s4
-  103  i2c4
-  104  sbc5
-  105  sbc6
-  106  d_audio
-  107  apbif
-  108  dam0
-  109  dam1
-  110  dam2
-  111  hda2codec_2x
-  112  unassigned
-  113  audio0_2x
-  114  audio1_2x
-  115  audio2_2x
-  116  audio3_2x
-  117  audio4_2x
-  118  spdif_2x
-  119  actmon
-  120  extern1
-  121  extern2
-  122  extern3
-  123  unassigned
-  124  unassigned
-  125  hda
-  126  unassigned
-  127  se
-
-  128  hda2hdmi
-  129  unassigned
-  130  unassigned
-  131  unassigned
-  132  unassigned
-  133  unassigned
-  134  unassigned
-  135  unassigned
-  136  unassigned
-  137  unassigned
-  138  unassigned
-  139  unassigned
-  140  unassigned
-  141  unassigned
-  142  unassigned
-  143  unassigned      (bit affects xusb_falcon_src, xusb_fs_src,
-                        xusb_host_src and xusb_ss_src)
-  144  cilab
-  145  cilcd
-  146  cile
-  147  dsialp
-  148  dsiblp
-  149  unassigned
-  150  dds
-  151  unassigned
-  152  dp2
-  153  amx
-  154  adx
-  155  unassigned      (bit affects dfll_ref and dfll_soc)
-  156  xusb_ss
-
-  192  uartb
-  193  vfir
-  194  spdif_in
-  195  spdif_out
-  196  vi
-  197  vi_sensor
-  198  fuse
-  199  fuse_burn
-  200  clk_32k
-  201  clk_m
-  202  clk_m_div2
-  203  clk_m_div4
-  204  pll_ref
-  205  pll_c
-  206  pll_c_out1
-  207  pll_c2
-  208  pll_c3
-  209  pll_m
-  210  pll_m_out1
-  211  pll_p
-  212  pll_p_out1
-  213  pll_p_out2
-  214  pll_p_out3
-  215  pll_p_out4
-  216  pll_a
-  217  pll_a_out0
-  218  pll_d
-  219  pll_d_out0
-  220  pll_d2
-  221  pll_d2_out0
-  222  pll_u
-  223  pll_u_480M
-  224  pll_u_60M
-  225  pll_u_48M
-  226  pll_u_12M
-  227  pll_x
-  228  pll_x_out0
-  229  pll_re_vco
-  230  pll_re_out
-  231  pll_e_out0
-  232  spdif_in_sync
-  233  i2s0_sync
-  234  i2s1_sync
-  235  i2s2_sync
-  236  i2s3_sync
-  237  i2s4_sync
-  238  vimclk_sync
-  239  audio0
-  240  audio1
-  241  audio2
-  242  audio3
-  243  audio4
-  244  spdif
-  245  clk_out_1
-  246  clk_out_2
-  247  clk_out_3
-  248  blink
-  252  xusb_host_src
-  253  xusb_falcon_src
-  254  xusb_fs_src
-  255  xusb_ss_src
-  256  xusb_dev_src
-  257  xusb_dev
-  258  xusb_hs_src
-  259  sclk
-  260  hclk
-  261  pclk
-  262  cclk_g
-  263  cclk_lp
-  264  dfll_ref
-  265  dfll_soc
+  In clock consumers, this cell represents the clock ID exposed by the
+  CAR. The assignments may be found in header file
+  <dt-bindings/clock/tegra114-car.h>.
 
 Example SoC include file:
 
@@ -270,7 +26,7 @@ Example SoC include file:
        };
 
        usb@c5004000 {
-               clocks = <&tegra_car 58>; /* usb2 */
+               clocks = <&tegra_car TEGRA114_CLK_USB2>;
        };
 };
 
index e885680f6b4524116d27331f1c44904c9c082e85..fcfed5bf73fb8ad6c862457165445577bd25694f 100644 (file)
@@ -12,155 +12,9 @@ Required properties :
 - clocks : Should contain phandle and clock specifiers for two clocks:
   the 32 KHz "32k_in", and the board-specific oscillator "osc".
 - #clock-cells : Should be 1.
-  In clock consumers, this cell represents the clock ID exposed by the CAR.
-
-  The first 96 clocks are numbered to match the bits in the CAR's CLK_OUT_ENB
-  registers. These IDs often match those in the CAR's RST_DEVICES registers,
-  but not in all cases. Some bits in CLK_OUT_ENB affect multiple clocks. In
-  this case, those clocks are assigned IDs above 95 in order to highlight
-  this issue. Implementations that interpret these clock IDs as bit values
-  within the CLK_OUT_ENB or RST_DEVICES registers should be careful to
-  explicitly handle these special cases.
-
-  The balance of the clocks controlled by the CAR are assigned IDs of 96 and
-  above.
-
-  0    cpu
-  1    unassigned
-  2    unassigned
-  3    ac97
-  4    rtc
-  5    tmr
-  6    uart1
-  7    unassigned      (register bit affects uart2 and vfir)
-  8    gpio
-  9    sdmmc2
-  10   unassigned      (register bit affects spdif_in and spdif_out)
-  11   i2s1
-  12   i2c1
-  13   ndflash
-  14   sdmmc1
-  15   sdmmc4
-  16   twc
-  17   pwm
-  18   i2s2
-  19   epp
-  20   unassigned      (register bit affects vi and vi_sensor)
-  21   2d
-  22   usbd
-  23   isp
-  24   3d
-  25   ide
-  26   disp2
-  27   disp1
-  28   host1x
-  29   vcp
-  30   unassigned
-  31   cache2
-
-  32   mem
-  33   ahbdma
-  34   apbdma
-  35   unassigned
-  36   kbc
-  37   stat_mon
-  38   pmc
-  39   fuse
-  40   kfuse
-  41   sbc1
-  42   snor
-  43   spi1
-  44   sbc2
-  45   xio
-  46   sbc3
-  47   dvc
-  48   dsi
-  49   unassigned      (register bit affects tvo and cve)
-  50   mipi
-  51   hdmi
-  52   csi
-  53   tvdac
-  54   i2c2
-  55   uart3
-  56   unassigned
-  57   emc
-  58   usb2
-  59   usb3
-  60   mpe
-  61   vde
-  62   bsea
-  63   bsev
-
-  64   speedo
-  65   uart4
-  66   uart5
-  67   i2c3
-  68   sbc4
-  69   sdmmc3
-  70   pcie
-  71   owr
-  72   afi
-  73   csite
-  74   unassigned
-  75   avpucq
-  76   la
-  77   unassigned
-  78   unassigned
-  79   unassigned
-  80   unassigned
-  81   unassigned
-  82   unassigned
-  83   unassigned
-  84   irama
-  85   iramb
-  86   iramc
-  87   iramd
-  88   cram2
-  89   audio_2x        a/k/a audio_2x_sync_clk
-  90   clk_d
-  91   unassigned
-  92   sus
-  93   cdev2
-  94   cdev1
-  95   unassigned
-
-  96   uart2
-  97   vfir
-  98   spdif_in
-  99   spdif_out
-  100  vi
-  101  vi_sensor
-  102  tvo
-  103  cve
-  104  osc
-  105  clk_32k         a/k/a clk_s
-  106  clk_m
-  107  sclk
-  108  cclk
-  109  hclk
-  110  pclk
-  111  blink
-  112  pll_a
-  113  pll_a_out0
-  114  pll_c
-  115  pll_c_out1
-  116  pll_d
-  117  pll_d_out0
-  118  pll_e
-  119  pll_m
-  120  pll_m_out1
-  121  pll_p
-  122  pll_p_out1
-  123  pll_p_out2
-  124  pll_p_out3
-  125  pll_p_out4
-  126  pll_s
-  127  pll_u
-  128  pll_x
-  129  cop             a/k/a avp
-  130  audio           a/k/a audio_sync_clk
-  131  pll_ref
-  132  twd
+  In clock consumers, this cell represents the clock ID exposed by the
+  CAR. The assignments may be found in header file
+  <dt-bindings/clock/tegra20-car.h>.
 
 Example SoC include file:
 
@@ -172,7 +26,7 @@ Example SoC include file:
        };
 
        usb@c5004000 {
-               clocks = <&tegra_car 58>; /* usb2 */
+               clocks = <&tegra_car TEGRA20_CLK_USB2>;
        };
 };
 
index f3da3be5fcadc460fdaa84fb172107b7c8111f02..0f714081e986b5c722d29d42a3599bd2399369cc 100644 (file)
@@ -12,212 +12,9 @@ Required properties :
 - clocks : Should contain phandle and clock specifiers for two clocks:
   the 32 KHz "32k_in", and the board-specific oscillator "osc".
 - #clock-cells : Should be 1.
-  In clock consumers, this cell represents the clock ID exposed by the CAR.
-
-  The first 130 clocks are numbered to match the bits in the CAR's CLK_OUT_ENB
-  registers. These IDs often match those in the CAR's RST_DEVICES registers,
-  but not in all cases. Some bits in CLK_OUT_ENB affect multiple clocks. In
-  this case, those clocks are assigned IDs above 160 in order to highlight
-  this issue. Implementations that interpret these clock IDs as bit values
-  within the CLK_OUT_ENB or RST_DEVICES registers should be careful to
-  explicitly handle these special cases.
-
-  The balance of the clocks controlled by the CAR are assigned IDs of 160 and
-  above.
-
-  0    cpu
-  1    unassigned
-  2    unassigned
-  3    unassigned
-  4    rtc
-  5    timer
-  6    uarta
-  7    unassigned      (register bit affects uartb and vfir)
-  8    gpio
-  9    sdmmc2
-  10   unassigned      (register bit affects spdif_in and spdif_out)
-  11   i2s1
-  12   i2c1
-  13   ndflash
-  14   sdmmc1
-  15   sdmmc4
-  16   unassigned
-  17   pwm
-  18   i2s2
-  19   epp
-  20   unassigned      (register bit affects vi and vi_sensor)
-  21   2d
-  22   usbd
-  23   isp
-  24   3d
-  25   unassigned
-  26   disp2
-  27   disp1
-  28   host1x
-  29   vcp
-  30   i2s0
-  31   cop_cache
-
-  32   mc
-  33   ahbdma
-  34   apbdma
-  35   unassigned
-  36   kbc
-  37   statmon
-  38   pmc
-  39   unassigned      (register bit affects fuse and fuse_burn)
-  40   kfuse
-  41   sbc1
-  42   nor
-  43   unassigned
-  44   sbc2
-  45   unassigned
-  46   sbc3
-  47   i2c5
-  48   dsia
-  49   unassigned      (register bit affects cve and tvo)
-  50   mipi
-  51   hdmi
-  52   csi
-  53   tvdac
-  54   i2c2
-  55   uartc
-  56   unassigned
-  57   emc
-  58   usb2
-  59   usb3
-  60   mpe
-  61   vde
-  62   bsea
-  63   bsev
-
-  64   speedo
-  65   uartd
-  66   uarte
-  67   i2c3
-  68   sbc4
-  69   sdmmc3
-  70   pcie
-  71   owr
-  72   afi
-  73   csite
-  74   pciex
-  75   avpucq
-  76   la
-  77   unassigned
-  78   unassigned
-  79   dtv
-  80   ndspeed
-  81   i2cslow
-  82   dsib
-  83   unassigned
-  84   irama
-  85   iramb
-  86   iramc
-  87   iramd
-  88   cram2
-  89   unassigned
-  90   audio_2x        a/k/a audio_2x_sync_clk
-  91   unassigned
-  92   csus
-  93   cdev2
-  94   cdev1
-  95   unassigned
-
-  96   cpu_g
-  97   cpu_lp
-  98   3d2
-  99   mselect
-  100  tsensor
-  101  i2s3
-  102  i2s4
-  103  i2c4
-  104  sbc5
-  105  sbc6
-  106  d_audio
-  107  apbif
-  108  dam0
-  109  dam1
-  110  dam2
-  111  hda2codec_2x
-  112  atomics
-  113  audio0_2x
-  114  audio1_2x
-  115  audio2_2x
-  116  audio3_2x
-  117  audio4_2x
-  118  audio5_2x
-  119  actmon
-  120  extern1
-  121  extern2
-  122  extern3
-  123  sata_oob
-  124  sata
-  125  hda
-  127  se
-  128  hda2hdmi
-  129  sata_cold
-
-  160  uartb
-  161  vfir
-  162  spdif_in
-  163  spdif_out
-  164  vi
-  165  vi_sensor
-  166  fuse
-  167  fuse_burn
-  168  cve
-  169  tvo
-
-  170  clk_32k
-  171  clk_m
-  172  clk_m_div2
-  173  clk_m_div4
-  174  pll_ref
-  175  pll_c
-  176  pll_c_out1
-  177  pll_m
-  178  pll_m_out1
-  179  pll_p
-  180  pll_p_out1
-  181  pll_p_out2
-  182  pll_p_out3
-  183  pll_p_out4
-  184  pll_a
-  185  pll_a_out0
-  186  pll_d
-  187  pll_d_out0
-  188  pll_d2
-  189  pll_d2_out0
-  190  pll_u
-  191  pll_x
-  192  pll_x_out0
-  193  pll_e
-  194  spdif_in_sync
-  195  i2s0_sync
-  196  i2s1_sync
-  197  i2s2_sync
-  198  i2s3_sync
-  199  i2s4_sync
-  200  vimclk
-  201  audio0
-  202  audio1
-  203  audio2
-  204  audio3
-  205  audio4
-  206  audio5
-  207  clk_out_1 (extern1)
-  208  clk_out_2 (extern2)
-  209  clk_out_3 (extern3)
-  210  sclk
-  211  blink
-  212  cclk_g
-  213  cclk_lp
-  214  twd
-  215  cml0
-  216  cml1
-  217  hclk
-  218  pclk
+  In clock consumers, this cell represents the clock ID exposed by the
+  CAR. The assignments may be found in header file
+  <dt-bindings/clock/tegra30-car.h>.
 
 Example SoC include file:
 
@@ -229,7 +26,7 @@ Example SoC include file:
        };
 
        usb@c5004000 {
-               clocks = <&tegra_car 58>; /* usb2 */
+               clocks = <&tegra_car TEGRA30_CLK_USB2>;
        };
 };
 
diff --git a/Documentation/devicetree/bindings/clock/st,nomadik.txt b/Documentation/devicetree/bindings/clock/st,nomadik.txt
new file mode 100644 (file)
index 0000000..7fc0977
--- /dev/null
@@ -0,0 +1,104 @@
+ST Microelectronics Nomadik SRC System Reset and Control
+
+This binding uses the common clock binding:
+Documentation/devicetree/bindings/clock/clock-bindings.txt
+
+The Nomadik SRC controller is responsible of controlling chrystals,
+PLLs and clock gates.
+
+Required properties for the SRC node:
+- compatible: must be "stericsson,nomadik-src"
+- reg: must contain the SRC register base and size
+
+Optional properties for the SRC node:
+- disable-sxtalo: if present this will disable the SXTALO
+  i.e. the driver output for the slow 32kHz chrystal, if the
+  board has its own circuitry for providing this oscillator
+- disable-mxtal: if present this will disable the MXTALO,
+  i.e. the driver output for the main (~19.2 MHz) chrystal,
+  if the board has its own circuitry for providing this
+  osciallator
+
+
+PLL nodes: these nodes represent the two PLLs on the system,
+which should both have the main chrystal, represented as a
+fixed frequency clock, as parent.
+
+Required properties for the two PLL nodes:
+- compatible: must be "st,nomadik-pll-clock"
+- clock-cells: must be 0
+- clock-id: must be 1 or 2 for PLL1 and PLL2 respectively
+- clocks: this clock will have main chrystal as parent
+
+
+HCLK nodes: these represent the clock gates on individual
+lines from the HCLK clock tree and the gate for individual
+lines from the PCLK clock tree.
+
+Requires properties for the HCLK nodes:
+- compatible: must be "st,nomadik-hclk-clock"
+- clock-cells: must be 0
+- clock-id: must be the clock ID from 0 to 63 according to
+  this table:
+
+       0:  HCLKDMA0
+       1:  HCLKSMC
+       2:  HCLKSDRAM
+       3:  HCLKDMA1
+       4:  HCLKCLCD
+       5:  PCLKIRDA
+       6:  PCLKSSP
+       7:  PCLKUART0
+       8:  PCLKSDI
+       9:  PCLKI2C0
+       10: PCLKI2C1
+       11: PCLKUART1
+       12: PCLMSP0
+       13: HCLKUSB
+       14: HCLKDIF
+       15: HCLKSAA
+       16: HCLKSVA
+       17: PCLKHSI
+       18: PCLKXTI
+       19: PCLKUART2
+       20: PCLKMSP1
+       21: PCLKMSP2
+       22: PCLKOWM
+       23: HCLKHPI
+       24: PCLKSKE
+       25: PCLKHSEM
+       26: HCLK3D
+       27: HCLKHASH
+       28: HCLKCRYP
+       29: PCLKMSHC
+       30: HCLKUSBM
+       31: HCLKRNG
+       (32, 33, 34, 35 RESERVED)
+       36: CLDCLK
+       37: IRDACLK
+       38: SSPICLK
+       39: UART0CLK
+       40: SDICLK
+       41: I2C0CLK
+       42: I2C1CLK
+       43: UART1CLK
+       44: MSPCLK0
+       45: USBCLK
+       46: DIFCLK
+       47: IPI2CCLK
+       48: IPBMCCLK
+       49: HSICLKRX
+       50: HSICLKTX
+       51: UART2CLK
+       52: MSPCLK1
+       53: MSPCLK2
+       54: OWMCLK
+       (55 RESERVED)
+       56: SKECLK
+       (57 RESERVED)
+       58: 3DCLK
+       59: PCLKMSP3
+       60: MSPCLK3
+       61: MSHCCLK
+       62: USBMCLK
+       63: RNGCCLK
index 2b14a940eb7554d742b57b9788bc27695330de15..3f454ffc654a4c969d40542de5056b69f94c2961 100644 (file)
@@ -10,11 +10,16 @@ Required properties:
          mapped region.
 
   - interrupts : G2D interrupt number to the CPU.
+  - clocks : from common clock binding: handle to G2D clocks.
+  - clock-names : from common clock binding: must contain "sclk_fimg2d" and
+                 "fimg2d", corresponding to entries in the clocks property.
 
 Example:
        g2d@12800000 {
                compatible = "samsung,s5pv210-g2d";
                reg = <0x12800000 0x1000>;
                interrupts = <0 89 0>;
+               clocks = <&clock 177>, <&clock 277>;
+               clock-names = "sclk_fimg2d", "fimg2d";
                status = "disabled";
        };
diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt b/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt
new file mode 100644 (file)
index 0000000..1f8b0c5
--- /dev/null
@@ -0,0 +1,16 @@
+DT bindings for the R-/SH-Mobile irqpin controller
+
+Required properties:
+
+- compatible: has to be "renesas,intc-irqpin"
+- #interrupt-cells: has to be <2>: an interrupt index and flags, as defined in
+  interrupts.txt in this directory
+
+Optional properties:
+
+- any properties, listed in interrupts.txt, and any standard resource allocation
+  properties
+- sense-bitfield-width: width of a single sense bitfield in the SENSE register,
+  if different from the default 4 bits
+- control-parent: disable and enable interrupts on the parent interrupt
+  controller, needed for some broken implementations
index bf0182d8da257d392ce315a6d2b1b749cb740a51..df37b0230c75c6c7952447da58fca87e501d8b96 100644 (file)
@@ -15,6 +15,9 @@ Required properties:
          mapped region.
 
   - interrupts : MFC interrupt number to the CPU.
+  - clocks : from common clock binding: handle to mfc clocks.
+  - clock-names : from common clock binding: must contain "sclk_mfc" and "mfc",
+                 corresponding to entries in the clocks property.
 
   - samsung,mfc-r : Base address of the first memory bank used by MFC
                    for DMA contiguous memory allocation and its size.
@@ -34,6 +37,8 @@ mfc: codec@13400000 {
        reg = <0x13400000 0x10000>;
        interrupts = <0 94 0>;
        samsung,power-domain = <&pd_mfc>;
+       clocks = <&clock 170>, <&clock 273>;
+       clock-names = "sclk_mfc", "mfc";
 };
 
 Board specific DT entry:
index c3a14e0ad0addf57715902618482a5593344f8da..cd9e90c5d1715b495d03448d35235dddb0b6d051 100644 (file)
@@ -120,7 +120,7 @@ ab8500 {
                                   "USB_LINK_STATUS",
                                   "USB_ADP_PROBE_PLUG",
                                   "USB_ADP_PROBE_UNPLUG";
-                vddulpivio18-supply = <&ab8500_ldo_initcore_reg>;
+                vddulpivio18-supply = <&ab8500_ldo_intcore_reg>;
                 v-ape-supply = <&db8500_vape_reg>;
                 musb_1v8-supply = <&db8500_vsmps2_reg>;
         };
diff --git a/Documentation/devicetree/bindings/mmc/bcm,kona-sdhci.txt b/Documentation/devicetree/bindings/mmc/bcm,kona-sdhci.txt
new file mode 100644 (file)
index 0000000..094ae01
--- /dev/null
@@ -0,0 +1,16 @@
+Broadcom BCM281xx SDHCI
+
+This file documents differences between the core properties in mmc.txt
+and the properties present in the bcm281xx SDHCI
+
+Required properties:
+- compatible : Should be "bcm,kona-sdhci"
+
+Example:
+
+sdio2: sdio@0x3f1a0000 {
+       compatible = "bcm,kona-sdhci";
+       reg = <0x3f1a0000 0x10000>;
+       interrupts = <0x0 74 0x4>;
+};
+
index bcfdab5d442ea0808ecba98a3a3306bce885ff54..3a7caf7a744a98d0b08538b157c12441e31d2987 100644 (file)
@@ -58,7 +58,7 @@ Some requirements for using fsl,imx-pinctrl binding:
 
 Examples:
 usdhc@0219c000 { /* uSDHC4 */
-       fsl,card-wired;
+       non-removable;
        vmmc-supply = <&reg_3p3v>;
        status = "okay";
        pinctrl-names = "default";
index c70fca146e91d087a81fb05ebaafd0e0fa20d227..e15cfc4bb39ea64c8ecd0edd1cc42a614bc61e4e 100644 (file)
@@ -21,8 +21,18 @@ Required Properties:
 
   - gpio-controller: identifies the node as a gpio controller and pin bank.
   - #gpio-cells: number of cells in GPIO specifier. Since the generic GPIO
-    binding is used, the amount of cells must be specified as 2. See generic
-    GPIO binding documentation for description of particular cells.
+    binding is used, the amount of cells must be specified as 2. See the below
+    mentioned gpio binding representation for description of particular cells.
+
+       Eg: <&gpx2 6 0>
+       <[phandle of the gpio controller node]
+       [pin number within the gpio controller]
+       [flags]>
+
+       Values for gpio specifier:
+       - Pin number: is a value between 0 to 7.
+       - Flags: 0 - Active High
+                1 - Active Low
 
 - Pin mux/config groups as child nodes: The pin mux (selecting pin function
   mode) and pin config (pull up/down, driver strength) settings are represented
@@ -266,3 +276,33 @@ Example 4: Set up the default pin state for uart controller.
 
                pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
        }
+
+Example 5: A display port client node that supports 'default' pinctrl state
+          and gpio binding.
+
+       display-port-controller {
+               /* ... */
+
+               samsung,hpd-gpio = <&gpx2 6 0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&dp_hpd>;
+       };
+
+Example 6: Request the gpio for display port controller
+
+       static int exynos_dp_probe(struct platform_device *pdev)
+       {
+               int hpd_gpio, ret;
+               struct device *dev = &pdev->dev;
+               struct device_node *dp_node = dev->of_node;
+
+               /* ... */
+
+               hpd_gpio = of_get_named_gpio(dp_node, "samsung,hpd-gpio", 0);
+
+               /* ... */
+
+               ret = devm_gpio_request_one(&pdev->dev, hpd_gpio, GPIOF_IN,
+                                           "hpd_gpio");
+               /* ... */
+       }
index b3abde736017a2491cbca67ee867633bcd08d395..d967ba16de60e17639059c998f9dc66264a235ed 100644 (file)
@@ -48,3 +48,37 @@ Example:
                clocks = <&clock 285>;
                clock-names = "usbhost";
        };
+
+DWC3
+Required properties:
+ - compatible: should be "samsung,exynos5250-dwusb3" for USB 3.0 DWC3
+              controller.
+ - #address-cells, #size-cells : should be '1' if the device has sub-nodes
+                                with 'reg' property.
+ - ranges: allows valid 1:1 translation between child's address space and
+          parent's address space
+ - clocks: Clock IDs array as required by the controller.
+ - clock-names: names of clocks correseponding to IDs in the clock property
+
+Sub-nodes:
+The dwc3 core should be added as subnode to Exynos dwc3 glue.
+- dwc3 :
+   The binding details of dwc3 can be found in:
+   Documentation/devicetree/bindings/usb/dwc3.txt
+
+Example:
+       usb@12000000 {
+               compatible = "samsung,exynos5250-dwusb3";
+               clocks = <&clock 286>;
+               clock-names = "usbdrd30";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               dwc3 {
+                       compatible = "synopsys,dwc3";
+                       reg = <0x12000000 0x10000>;
+                       interrupts = <0 72 0>;
+                       usb-phy = <&usb2_phy &usb3_phy>;
+               };
+       };
index c60da67a5d7662b81d34d6f01adc944ceb90e0a7..84f10c16cb383497b0fc5a736d4ce03a59668c4c 100644 (file)
@@ -21,6 +21,10 @@ Required properties for dp-controller:
                of memory mapped region.
        -interrupts:
                interrupt combiner values.
+       -clocks:
+               from common clock binding: handle to dp clock.
+       -clock-names:
+               from common clock binding: Shall be "dp".
        -interrupt-parent:
                phandle to Interrupt combiner node.
        -samsung,color-space:
@@ -61,6 +65,8 @@ SOC specific portion:
                reg = <0x145b0000 0x10000>;
                interrupts = <10 3>;
                interrupt-parent = <&combiner>;
+               clocks = <&clock 342>;
+               clock-names = "dp";
 
                dptx-phy {
                        reg = <0x10040720>;
index f9eae2f0ae5d6fa32d62f3d71f22cee7967471b3..962c0eee3039a02580f7feb59966370061c2e486 100644 (file)
@@ -16,11 +16,13 @@ dtb-$(CONFIG_ARCH_AT91) += at91sam9263ek.dtb
 dtb-$(CONFIG_ARCH_AT91) += tny_a9263.dtb
 dtb-$(CONFIG_ARCH_AT91) += usb_a9263.dtb
 # sam9g20
+dtb-$(CONFIG_ARCH_AT91) += at91-foxg20.dtb
 dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek.dtb
 dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek_2mmc.dtb
 dtb-$(CONFIG_ARCH_AT91) += kizbox.dtb
 dtb-$(CONFIG_ARCH_AT91) += tny_a9g20.dtb
 dtb-$(CONFIG_ARCH_AT91) += usb_a9g20.dtb
+dtb-$(CONFIG_ARCH_AT91) += usb_a9g20_lpw.dtb
 # sam9g45
 dtb-$(CONFIG_ARCH_AT91) += at91sam9m10g45ek.dtb
 dtb-$(CONFIG_ARCH_AT91) += pm9g45.dtb
@@ -86,6 +88,8 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \
        kirkwood-ns2max.dtb \
        kirkwood-ns2mini.dtb \
        kirkwood-nsa310.dtb \
+       kirkwood-sheevaplug.dtb \
+       kirkwood-sheevaplug-esata.dtb \
        kirkwood-topkick.dtb \
        kirkwood-ts219-6281.dtb \
        kirkwood-ts219-6282.dtb \
@@ -105,13 +109,15 @@ dtb-$(CONFIG_ARCH_MXC) += \
        imx27-apf27.dtb \
        imx27-apf27dev.dtb \
        imx27-pdk.dtb \
-       imx27-phytec-phycore.dtb \
+       imx27-phytec-phycore-som.dtb \
+       imx27-phytec-phycore-rdk.dtb \
        imx31-bug.dtb \
        imx51-apf51.dtb \
        imx51-apf51dev.dtb \
        imx51-babbage.dtb \
        imx53-ard.dtb \
        imx53-evk.dtb \
+       imx53-m53evk.dtb \
        imx53-mba53.dtb \
        imx53-qsb.dtb \
        imx53-smd.dtb \
@@ -119,10 +125,13 @@ dtb-$(CONFIG_ARCH_MXC) += \
        imx6dl-sabresd.dtb \
        imx6dl-wandboard.dtb \
        imx6q-arm2.dtb \
+       imx6q-phytec-pbab01.dtb \
        imx6q-sabreauto.dtb \
        imx6q-sabrelite.dtb \
        imx6q-sabresd.dtb \
-       imx6q-sbc6x.dtb
+       imx6q-sbc6x.dtb \
+       imx6sl-evk.dtb \
+       vf610-twr.dtb
 dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \
        imx23-olinuxino.dtb \
        imx23-stmp378x_devb.dtb \
@@ -132,6 +141,8 @@ dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \
        imx28-cfa10036.dtb \
        imx28-cfa10037.dtb \
        imx28-cfa10049.dtb \
+       imx28-cfa10055.dtb \
+       imx28-cfa10057.dtb \
        imx28-evk.dtb \
        imx28-m28evk.dtb \
        imx28-sps1.dtb \
@@ -151,19 +162,26 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
        omap4-panda-es.dtb \
        omap4-var-som.dtb \
        omap4-sdp.dtb \
-       omap5-evm.dtb \
+       omap4-sdp-es23plus.dtb \
+       omap5-uevm.dtb \
        am335x-evm.dtb \
        am335x-evmsk.dtb \
-       am335x-bone.dtb
+       am335x-bone.dtb \
+       am3517-evm.dtb \
+       am3517_mt_ventoux.dtb \
+       am43x-epos-evm.dtb
 dtb-$(CONFIG_ARCH_ORION5X) += orion5x-lacie-ethernet-disk-mini-v2.dtb
 dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb
 dtb-$(CONFIG_ARCH_U8500) += snowball.dtb \
        hrefprev60.dtb \
        hrefv60plus.dtb \
+       ccu8540.dtb \
        ccu9540.dtb
+dtb-$(CONFIG_ARCH_S3C24XX) += s3c2416-smdk2416.dtb
 dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \
        r8a7740-armadillo800eva.dtb \
        r8a7778-bockw.dtb \
+       r8a7740-armadillo800eva-reference.dtb \
        r8a7779-marzen-reference.dtb \
        r8a7790-lager.dtb \
        sh73a0-kzm9g.dtb \
@@ -183,6 +201,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += \
        sun4i-a10-cubieboard.dtb \
        sun4i-a10-mini-xplus.dtb \
        sun4i-a10-hackberry.dtb \
+       sun5i-a10s-olinuxino-micro.dtb \
        sun5i-a13-olinuxino.dtb
 dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
        tegra20-iris-512.dtb \
@@ -210,8 +229,11 @@ dtb-$(CONFIG_ARCH_VIRT) += xenvm-4.2.dtb
 dtb-$(CONFIG_ARCH_VT8500) += vt8500-bv07.dtb \
        wm8505-ref.dtb \
        wm8650-mid.dtb \
+       wm8750-apc8750.dtb \
        wm8850-w70v2.dtb
-dtb-$(CONFIG_ARCH_ZYNQ) += zynq-zc702.dtb
+dtb-$(CONFIG_ARCH_ZYNQ) += zynq-zc702.dtb \
+       zynq-zc706.dtb \
+       zynq-zed.dtb
 
 targets += dtbs
 targets += $(dtb-y)
index 5302f79c05b719e3317bb0e3431c144073691724..04feaf8f142088b9d632bda910627afb86de5949 100644 (file)
@@ -7,7 +7,7 @@
  */
 /dts-v1/;
 
-/include/ "am33xx.dtsi"
+#include "am33xx.dtsi"
 
 / {
        model = "TI AM335x BeagleBone";
 
        am33xx_pinmux: pinmux@44e10800 {
                pinctrl-names = "default";
-               pinctrl-0 = <&user_leds_s0>;
+               pinctrl-0 = <&clkout2_pin>;
 
                user_leds_s0: user_leds_s0 {
                        pinctrl-single,pins = <
-                               0x54 0x7        /* gpmc_a5.gpio1_21, OUTPUT | MODE7 */
-                               0x58 0x17       /* gpmc_a6.gpio1_22, OUTPUT_PULLUP | MODE7 */
-                               0x5c 0x7        /* gpmc_a7.gpio1_23, OUTPUT | MODE7 */
-                               0x60 0x17       /* gpmc_a8.gpio1_24, OUTPUT_PULLUP | MODE7 */
+                               0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)  /* gpmc_a5.gpio1_21 */
+                               0x58 (PIN_OUTPUT_PULLUP | MUX_MODE7)    /* gpmc_a6.gpio1_22 */
+                               0x5c (PIN_OUTPUT_PULLDOWN | MUX_MODE7)  /* gpmc_a7.gpio1_23 */
+                               0x60 (PIN_OUTPUT_PULLUP | MUX_MODE7)    /* gpmc_a8.gpio1_24 */
+                       >;
+               };
+
+               i2c0_pins: pinmux_i2c0_pins {
+                       pinctrl-single,pins = <
+                               0x188 (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c0_sda.i2c0_sda */
+                               0x18c (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c0_scl.i2c0_scl */
+                       >;
+               };
+
+               uart0_pins: pinmux_uart0_pins {
+                       pinctrl-single,pins = <
+                               0x170 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart0_rxd.uart0_rxd */
+                               0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
+                       >;
+               };
+
+               clkout2_pin: pinmux_clkout2_pin {
+                       pinctrl-single,pins = <
+                               0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */
+                       >;
+               };
+
+               cpsw_default: cpsw_default {
+                       pinctrl-single,pins = <
+                               /* Slave 1 */
+                               0x110 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mii1_rxerr.mii1_rxerr */
+                               0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txen.mii1_txen */
+                               0x118 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mii1_rxdv.mii1_rxdv */
+                               0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd3.mii1_txd3 */
+                               0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd2.mii1_txd2 */
+                               0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd1.mii1_txd1 */
+                               0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd0.mii1_txd0 */
+                               0x12c (PIN_INPUT_PULLUP | MUX_MODE0)    /* mii1_txclk.mii1_txclk */
+                               0x130 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mii1_rxclk.mii1_rxclk */
+                               0x134 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mii1_rxd3.mii1_rxd3 */
+                               0x138 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mii1_rxd2.mii1_rxd2 */
+                               0x13c (PIN_INPUT_PULLUP | MUX_MODE0)    /* mii1_rxd1.mii1_rxd1 */
+                               0x140 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mii1_rxd0.mii1_rxd0 */
+                       >;
+               };
+
+               cpsw_sleep: cpsw_sleep {
+                       pinctrl-single,pins = <
+                               /* Slave 1 reset value */
+                               0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                       >;
+               };
+
+               davinci_mdio_default: davinci_mdio_default {
+                       pinctrl-single,pins = <
+                               /* MDIO */
+                               0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)    /* mdio_data.mdio_data */
+                               0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0)                   /* mdio_clk.mdio_clk */
+                       >;
+               };
+
+               davinci_mdio_sleep: davinci_mdio_sleep {
+                       pinctrl-single,pins = <
+                               /* MDIO reset value */
+                               0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
                        >;
                };
        };
 
        ocp {
-               uart1: serial@44e09000 {
+               uart0: serial@44e09000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart0_pins>;
+
                        status = "okay";
                };
 
                i2c0: i2c@44e0b000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c0_pins>;
+
                        status = "okay";
                        clock-frequency = <400000>;
 
        };
 
        leds {
+               pinctrl-names = "default";
+               pinctrl-0 = <&user_leds_s0>;
+
                compatible = "gpio-leds";
 
                led@2 {
                        label = "beaglebone:green:heartbeat";
-                       gpios = <&gpio1 21 0>;
+                       gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                        default-state = "off";
                };
 
                led@3 {
                        label = "beaglebone:green:mmc0";
-                       gpios = <&gpio1 22 0>;
+                       gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "mmc0";
                        default-state = "off";
                };
 
                led@4 {
                        label = "beaglebone:green:usr2";
-                       gpios = <&gpio1 23 0>;
+                       gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
                led@5 {
                        label = "beaglebone:green:usr3";
-                       gpios = <&gpio1 24 0>;
+                       gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
        };
 &cpsw_emac1 {
        phy_id = <&davinci_mdio>, <1>;
 };
+
+&mac {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&cpsw_default>;
+       pinctrl-1 = <&cpsw_sleep>;
+
+};
+
+&davinci_mdio {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&davinci_mdio_default>;
+       pinctrl-1 = <&davinci_mdio_sleep>;
+};
index 0423298a26fe634e174b4138cac7ee2ee28f6a2c..a16bb9691cc6832b84e48564781234b17a13f6e5 100644 (file)
@@ -7,7 +7,7 @@
  */
 /dts-v1/;
 
-/include/ "am33xx.dtsi"
+#include "am33xx.dtsi"
 
 / {
        model = "TI AM335x EVM";
 
        am33xx_pinmux: pinmux@44e10800 {
                pinctrl-names = "default";
-               pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0>;
+               pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0 &clkout2_pin>;
 
                matrix_keypad_s0: matrix_keypad_s0 {
                        pinctrl-single,pins = <
-                               0x54 0x7        /* gpmc_a5.gpio1_21, OUTPUT | MODE7 */
-                               0x58 0x7        /* gpmc_a6.gpio1_22, OUTPUT | MODE7 */
-                               0x64 0x27       /* gpmc_a9.gpio1_25, INPUT | MODE7 */
-                               0x68 0x27       /* gpmc_a10.gpio1_26, INPUT | MODE7 */
-                               0x6c 0x27       /* gpmc_a11.gpio1_27, INPUT | MODE7 */
+                               0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)  /* gpmc_a5.gpio1_21 */
+                               0x58 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)  /* gpmc_a6.gpio1_22 */
+                               0x64 (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* gpmc_a9.gpio1_25 */
+                               0x68 (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* gpmc_a10.gpio1_26 */
+                               0x6c (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* gpmc_a11.gpio1_27 */
                        >;
                };
 
                volume_keys_s0: volume_keys_s0 {
                        pinctrl-single,pins = <
-                               0x150 0x27      /* spi0_sclk.gpio0_2, INPUT | MODE7 */
-                               0x154 0x27      /* spi0_d0.gpio0_3, INPUT | MODE7 */
+                               0x150 (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* spi0_sclk.gpio0_2 */
+                               0x154 (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* spi0_d0.gpio0_3 */
+                       >;
+               };
+
+               i2c0_pins: pinmux_i2c0_pins {
+                       pinctrl-single,pins = <
+                               0x188 (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c0_sda.i2c0_sda */
+                               0x18c (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c0_scl.i2c0_scl */
+                       >;
+               };
+
+               i2c1_pins: pinmux_i2c1_pins {
+                       pinctrl-single,pins = <
+                               0x158 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_d1.i2c1_sda */
+                               0x15c (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_cs0.i2c1_scl */
+                       >;
+               };
+
+               uart0_pins: pinmux_uart0_pins {
+                       pinctrl-single,pins = <
+                               0x170 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart0_rxd.uart0_rxd */
+                               0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
+                       >;
+               };
+
+               clkout2_pin: pinmux_clkout2_pin {
+                       pinctrl-single,pins = <
+                               0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */
+                       >;
+               };
+
+               nandflash_pins_s0: nandflash_pins_s0 {
+                       pinctrl-single,pins = <
+                               0x0 (PIN_INPUT_PULLUP | MUX_MODE0)      /* gpmc_ad0.gpmc_ad0 */
+                               0x4 (PIN_INPUT_PULLUP | MUX_MODE0)      /* gpmc_ad1.gpmc_ad1 */
+                               0x8 (PIN_INPUT_PULLUP | MUX_MODE0)      /* gpmc_ad2.gpmc_ad2 */
+                               0xc (PIN_INPUT_PULLUP | MUX_MODE0)      /* gpmc_ad3.gpmc_ad3 */
+                               0x10 (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_ad4.gpmc_ad4 */
+                               0x14 (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_ad5.gpmc_ad5 */
+                               0x18 (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_ad6.gpmc_ad6 */
+                               0x1c (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_ad7.gpmc_ad7 */
+                               0x70 (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_wait0.gpmc_wait0 */
+                               0x74 (PIN_INPUT_PULLUP | MUX_MODE7)     /* gpmc_wpn.gpio0_30 */
+                               0x7c (PIN_OUTPUT | MUX_MODE0)           /* gpmc_csn0.gpmc_csn0  */
+                               0x90 (PIN_OUTPUT | MUX_MODE0)           /* gpmc_advn_ale.gpmc_advn_ale */
+                               0x94 (PIN_OUTPUT | MUX_MODE0)           /* gpmc_oen_ren.gpmc_oen_ren */
+                               0x98 (PIN_OUTPUT | MUX_MODE0)           /* gpmc_wen.gpmc_wen */
+                               0x9c (PIN_OUTPUT | MUX_MODE0)           /* gpmc_be0n_cle.gpmc_be0n_cle */
+                       >;
+               };
+
+               ecap0_pins: backlight_pins {
+                       pinctrl-single,pins = <
+                               0x164 0x0       /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */
+                       >;
+               };
+
+               cpsw_default: cpsw_default {
+                       pinctrl-single,pins = <
+                               /* Slave 1 */
+                               0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */
+                               0x118 (PIN_INPUT_PULLDOWN | MUX_MODE2)  /* mii1_rxdv.rgmii1_rctl */
+                               0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd3.rgmii1_td3 */
+                               0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd2.rgmii1_td2 */
+                               0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */
+                               0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */
+                               0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */
+                               0x130 (PIN_INPUT_PULLDOWN | MUX_MODE2)  /* mii1_rxclk.rgmii1_rclk */
+                               0x134 (PIN_INPUT_PULLDOWN | MUX_MODE2)  /* mii1_rxd3.rgmii1_rd3 */
+                               0x138 (PIN_INPUT_PULLDOWN | MUX_MODE2)  /* mii1_rxd2.rgmii1_rd2 */
+                               0x13c (PIN_INPUT_PULLDOWN | MUX_MODE2)  /* mii1_rxd1.rgmii1_rd1 */
+                               0x140 (PIN_INPUT_PULLDOWN | MUX_MODE2)  /* mii1_rxd0.rgmii1_rd0 */
+                       >;
+               };
+
+               cpsw_sleep: cpsw_sleep {
+                       pinctrl-single,pins = <
+                               /* Slave 1 reset value */
+                               0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                       >;
+               };
+
+               davinci_mdio_default: davinci_mdio_default {
+                       pinctrl-single,pins = <
+                               /* MDIO */
+                               0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)    /* mdio_data.mdio_data */
+                               0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0)                   /* mdio_clk.mdio_clk */
+                       >;
+               };
+
+               davinci_mdio_sleep: davinci_mdio_sleep {
+                       pinctrl-single,pins = <
+                               /* MDIO reset value */
+                               0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
                        >;
                };
        };
 
        ocp {
-               uart1: serial@44e09000 {
+               uart0: serial@44e09000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart0_pins>;
+
                        status = "okay";
                };
 
                i2c0: i2c@44e0b000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c0_pins>;
+
                        status = "okay";
                        clock-frequency = <400000>;
 
                };
 
                i2c1: i2c@4802a000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c1_pins>;
+
                        status = "okay";
                        clock-frequency = <100000>;
 
                                reg = <0x48>;
                        };
                };
+
+               elm: elm@48080000 {
+                       status = "okay";
+               };
+
+               epwmss0: epwmss@48300000 {
+                       status = "okay";
+
+                       ecap0: ecap@48300100 {
+                               status = "okay";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&ecap0_pins>;
+                       };
+               };
+
+               gpmc: gpmc@50000000 {
+                       status = "okay";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&nandflash_pins_s0>;
+                       ranges = <0 0 0x08000000 0x10000000>;   /* CS0: NAND */
+                       nand@0,0 {
+                               reg = <0 0 0>; /* CS0, offset 0 */
+                               nand-bus-width = <8>;
+                               ti,nand-ecc-opt = "bch8";
+                               gpmc,device-nand = "true";
+                               gpmc,device-width = <1>;
+                               gpmc,sync-clk-ps = <0>;
+                               gpmc,cs-on-ns = <0>;
+                               gpmc,cs-rd-off-ns = <44>;
+                               gpmc,cs-wr-off-ns = <44>;
+                               gpmc,adv-on-ns = <6>;
+                               gpmc,adv-rd-off-ns = <34>;
+                               gpmc,adv-wr-off-ns = <44>;
+                               gpmc,we-on-ns = <0>;
+                               gpmc,we-off-ns = <40>;
+                               gpmc,oe-on-ns = <0>;
+                               gpmc,oe-off-ns = <54>;
+                               gpmc,access-ns = <64>;
+                               gpmc,rd-cycle-ns = <82>;
+                               gpmc,wr-cycle-ns = <82>;
+                               gpmc,wait-on-read = "true";
+                               gpmc,wait-on-write = "true";
+                               gpmc,bus-turnaround-ns = <0>;
+                               gpmc,cycle2cycle-delay-ns = <0>;
+                               gpmc,clk-activation-ns = <0>;
+                               gpmc,wait-monitoring-ns = <0>;
+                               gpmc,wr-access-ns = <40>;
+                               gpmc,wr-data-mux-bus-ns = <0>;
+
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               elm_id = <&elm>;
+
+                               /* MTD partition table */
+                               partition@0 {
+                                       label = "SPL1";
+                                       reg = <0x00000000 0x000020000>;
+                               };
+
+                               partition@1 {
+                                       label = "SPL2";
+                                       reg = <0x00020000 0x00020000>;
+                               };
+
+                               partition@2 {
+                                       label = "SPL3";
+                                       reg = <0x00040000 0x00020000>;
+                               };
+
+                               partition@3 {
+                                       label = "SPL4";
+                                       reg = <0x00060000 0x00020000>;
+                               };
+
+                               partition@4 {
+                                       label = "U-boot";
+                                       reg = <0x00080000 0x001e0000>;
+                               };
+
+                               partition@5 {
+                                       label = "environment";
+                                       reg = <0x00260000 0x00020000>;
+                               };
+
+                               partition@6 {
+                                       label = "Kernel";
+                                       reg = <0x00280000 0x00500000>;
+                               };
+
+                               partition@7 {
+                                       label = "File-System";
+                                       reg = <0x00780000 0x0F880000>;
+                               };
+                       };
+               };
        };
 
        vbat: fixedregulator@0 {
                debounce-delay-ms = <5>;
                col-scan-delay-us = <2>;
 
-               row-gpios = <&gpio1 25 0        /* Bank1, pin25 */
-                            &gpio1 26 0        /* Bank1, pin26 */
-                            &gpio1 27 0>;      /* Bank1, pin27 */
+               row-gpios = <&gpio1 25 GPIO_ACTIVE_HIGH         /* Bank1, pin25 */
+                            &gpio1 26 GPIO_ACTIVE_HIGH         /* Bank1, pin26 */
+                            &gpio1 27 GPIO_ACTIVE_HIGH>;       /* Bank1, pin27 */
 
-               col-gpios = <&gpio1 21 0        /* Bank1, pin21 */
-                            &gpio1 22 0>;      /* Bank1, pin22 */
+               col-gpios = <&gpio1 21 GPIO_ACTIVE_HIGH         /* Bank1, pin21 */
+                            &gpio1 22 GPIO_ACTIVE_HIGH>;       /* Bank1, pin22 */
 
                linux,keymap = <0x0000008b      /* MENU */
                                0x0100009e      /* BACK */
                switch@9 {
                        label = "volume-up";
                        linux,code = <115>;
-                       gpios = <&gpio0 2 1>;
+                       gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
                        gpio-key,wakeup;
                };
 
                switch@10 {
                        label = "volume-down";
                        linux,code = <114>;
-                       gpios = <&gpio0 3 1>;
+                       gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
                        gpio-key,wakeup;
                };
        };
+
+       backlight {
+               compatible = "pwm-backlight";
+               pwms = <&ecap0 0 50000 0>;
+               brightness-levels = <0 51 53 56 62 75 101 152 255>;
+               default-brightness-level = <8>;
+       };
 };
 
-/include/ "tps65910.dtsi"
+#include "tps65910.dtsi"
 
 &tps {
        vcc1-supply = <&vbat>;
        };
 };
 
+&mac {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&cpsw_default>;
+       pinctrl-1 = <&cpsw_sleep>;
+};
+
+&davinci_mdio {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&davinci_mdio_default>;
+       pinctrl-1 = <&davinci_mdio_sleep>;
+};
+
 &cpsw_emac0 {
        phy_id = <&davinci_mdio>, <0>;
 };
index f67c360844f482f20338c9b18b5ff0b76f2de542..9e00eef9b74b3827faede6e2530c893fac28e4c4 100644 (file)
@@ -13,7 +13,7 @@
 
 /dts-v1/;
 
-/include/ "am33xx.dtsi"
+#include "am33xx.dtsi"
 
 / {
        model = "TI AM335x EVM-SK";
 
        am33xx_pinmux: pinmux@44e10800 {
                pinctrl-names = "default";
-               pinctrl-0 = <&user_leds_s0 &gpio_keys_s0>;
+               pinctrl-0 = <&gpio_keys_s0 &clkout2_pin>;
 
                user_leds_s0: user_leds_s0 {
                        pinctrl-single,pins = <
-                               0x10 0x7        /* gpmc_ad4.gpio1_4, OUTPUT | MODE7 */
-                               0x14 0x7        /* gpmc_ad5.gpio1_5, OUTPUT | MODE7 */
-                               0x18 0x7        /* gpmc_ad6.gpio1_6, OUTPUT | MODE7 */
-                               0x1c 0x7        /* gpmc_ad7.gpio1_7, OUTPUT | MODE7 */
+                               0x10 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)  /* gpmc_ad4.gpio1_4 */
+                               0x14 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)  /* gpmc_ad5.gpio1_5 */
+                               0x18 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)  /* gpmc_ad6.gpio1_6 */
+                               0x1c (PIN_OUTPUT_PULLDOWN | MUX_MODE7)  /* gpmc_ad7.gpio1_7 */
                        >;
                };
 
                gpio_keys_s0: gpio_keys_s0 {
                        pinctrl-single,pins = <
-                               0x94 0x27       /* gpmc_oen_ren.gpio2_3, INPUT | MODE7 */
-                               0x90 0x27       /* gpmc_advn_ale.gpio2_2, INPUT | MODE7 */
-                               0x70 0x27       /* gpmc_wait0.gpio0_30, INPUT | MODE7 */
-                               0x9c 0x27       /* gpmc_ben0_cle.gpio2_5, INPUT | MODE7 */
+                               0x94 (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* gpmc_oen_ren.gpio2_3 */
+                               0x90 (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* gpmc_advn_ale.gpio2_2 */
+                               0x70 (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* gpmc_wait0.gpio0_30 */
+                               0x9c (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* gpmc_ben0_cle.gpio2_5 */
+                       >;
+               };
+
+               i2c0_pins: pinmux_i2c0_pins {
+                       pinctrl-single,pins = <
+                               0x188 (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c0_sda.i2c0_sda */
+                               0x18c (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c0_scl.i2c0_scl */
+                       >;
+               };
+
+               uart0_pins: pinmux_uart0_pins {
+                       pinctrl-single,pins = <
+                               0x170 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart0_rxd.uart0_rxd */
+                               0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)         /* uart0_txd.uart0_txd */
+                       >;
+               };
+
+               clkout2_pin: pinmux_clkout2_pin {
+                       pinctrl-single,pins = <
+                               0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3)         /* xdma_event_intr1.clkout2 */
+                       >;
+               };
+
+               ecap2_pins: backlight_pins {
+                       pinctrl-single,pins = <
+                               0x19c 0x4       /* mcasp0_ahclkr.ecap2_in_pwm2_out MODE4 */
+                       >;
+               };
+
+               cpsw_default: cpsw_default {
+                       pinctrl-single,pins = <
+                               /* Slave 1 */
+                               0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */
+                               0x118 (PIN_INPUT_PULLDOWN | MUX_MODE2)  /* mii1_rxdv.rgmii1_rctl */
+                               0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd3.rgmii1_td3 */
+                               0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd2.rgmii1_td2 */
+                               0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */
+                               0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */
+                               0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */
+                               0x130 (PIN_INPUT_PULLDOWN | MUX_MODE2)  /* mii1_rxclk.rgmii1_rclk */
+                               0x134 (PIN_INPUT_PULLDOWN | MUX_MODE2)  /* mii1_rxd3.rgmii1_rd3 */
+                               0x138 (PIN_INPUT_PULLDOWN | MUX_MODE2)  /* mii1_rxd2.rgmii1_rd2 */
+                               0x13c (PIN_INPUT_PULLDOWN | MUX_MODE2)  /* mii1_rxd1.rgmii1_rd1 */
+                               0x140 (PIN_INPUT_PULLDOWN | MUX_MODE2)  /* mii1_rxd0.rgmii1_rd0 */
+
+                               /* Slave 2 */
+                               0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_a0.rgmii2_tctl */
+                               0x44 (PIN_INPUT_PULLDOWN | MUX_MODE2)   /* gpmc_a1.rgmii2_rctl */
+                               0x48 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_a2.rgmii2_td3 */
+                               0x4c (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_a3.rgmii2_td2 */
+                               0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_a4.rgmii2_td1 */
+                               0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_a5.rgmii2_td0 */
+                               0x58 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_a6.rgmii2_tclk */
+                               0x5c (PIN_INPUT_PULLDOWN | MUX_MODE2)   /* gpmc_a7.rgmii2_rclk */
+                               0x60 (PIN_INPUT_PULLDOWN | MUX_MODE2)   /* gpmc_a8.rgmii2_rd3 */
+                               0x64 (PIN_INPUT_PULLDOWN | MUX_MODE2)   /* gpmc_a9.rgmii2_rd2 */
+                               0x68 (PIN_INPUT_PULLDOWN | MUX_MODE2)   /* gpmc_a10.rgmii2_rd1 */
+                               0x6c (PIN_INPUT_PULLDOWN | MUX_MODE2)   /* gpmc_a11.rgmii2_rd0 */
+                       >;
+               };
+
+               cpsw_sleep: cpsw_sleep {
+                       pinctrl-single,pins = <
+                               /* Slave 1 reset value */
+                               0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+
+                               /* Slave 2 reset value*/
+                               0x40 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x44 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x48 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x4c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x50 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x54 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x58 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x5c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x60 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x64 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x68 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x6c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                       >;
+               };
+
+               davinci_mdio_default: davinci_mdio_default {
+                       pinctrl-single,pins = <
+                               /* MDIO */
+                               0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)    /* mdio_data.mdio_data */
+                               0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0)                   /* mdio_clk.mdio_clk */
+                       >;
+               };
+
+               davinci_mdio_sleep: davinci_mdio_sleep {
+                       pinctrl-single,pins = <
+                               /* MDIO reset value */
+                               0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
                        >;
                };
        };
 
        ocp {
-               uart1: serial@44e09000 {
+               uart0: serial@44e09000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart0_pins>;
+
                        status = "okay";
                };
 
                i2c0: i2c@44e0b000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c0_pins>;
+
                        status = "okay";
                        clock-frequency = <400000>;
 
                                st,max-limit-z = <750>;
                        };
                };
+
+               epwmss2: epwmss@48304000 {
+                       status = "okay";
+
+                       ecap2: ecap@48304100 {
+                               status = "okay";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&ecap2_pins>;
+                       };
+               };
        };
 
        vbat: fixedregulator@0 {
        };
 
        leds {
+               pinctrl-names = "default";
+               pinctrl-0 = <&user_leds_s0>;
+
                compatible = "gpio-leds";
 
                led@1 {
                        label = "evmsk:green:usr0";
-                       gpios = <&gpio1 4 0>;
+                       gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
                led@2 {
                        label = "evmsk:green:usr1";
-                       gpios = <&gpio1 5 0>;
+                       gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
                led@3 {
                        label = "evmsk:green:mmc0";
-                       gpios = <&gpio1 6 0>;
+                       gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "mmc0";
                        default-state = "off";
                };
 
                led@4 {
                        label = "evmsk:green:heartbeat";
-                       gpios = <&gpio1 7 0>;
+                       gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                        default-state = "off";
                };
                switch@1 {
                        label = "button0";
                        linux,code = <0x100>;
-                       gpios = <&gpio2 3 0>;
+                       gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
                };
 
                switch@2 {
                        label = "button1";
                        linux,code = <0x101>;
-                       gpios = <&gpio2 2 0>;
+                       gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
                };
 
                switch@3 {
                        label = "button2";
                        linux,code = <0x102>;
-                       gpios = <&gpio0 30 0>;
+                       gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>;
                        gpio-key,wakeup;
                };
 
                switch@4 {
                        label = "button3";
                        linux,code = <0x103>;
-                       gpios = <&gpio2 5 0>;
+                       gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
                };
        };
+
+       backlight {
+               compatible = "pwm-backlight";
+               pwms = <&ecap2 0 50000 1>;
+               brightness-levels = <0 58 61 66 75 90 125 170 255>;
+               default-brightness-level = <8>;
+       };
 };
 
-/include/ "tps65910.dtsi"
+#include "tps65910.dtsi"
 
 &tps {
        vcc1-supply = <&vbat>;
                };
        };
 };
+
+&mac {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&cpsw_default>;
+       pinctrl-1 = <&cpsw_sleep>;
+};
+
+&davinci_mdio {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&davinci_mdio_default>;
+       pinctrl-1 = <&davinci_mdio_sleep>;
+};
index 77aa1b0cf6a74f474704d032a388c8543cffc7d7..0d4df90477f7334f8ec4e25028bb6d4698d6d0e8 100644 (file)
@@ -8,26 +8,33 @@
  * kind, whether express or implied.
  */
 
-/include/ "skeleton.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/am33xx.h>
+
+#include "skeleton.dtsi"
 
 / {
        compatible = "ti,am33xx";
        interrupt-parent = <&intc>;
 
        aliases {
-               serial0 = &uart1;
-               serial1 = &uart2;
-               serial2 = &uart3;
-               serial3 = &uart4;
-               serial4 = &uart5;
-               serial5 = &uart6;
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+               serial3 = &uart3;
+               serial4 = &uart4;
+               serial5 = &uart5;
                d_can0 = &dcan0;
                d_can1 = &dcan1;
        };
 
        cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
                cpu@0 {
                        compatible = "arm,cortex-a8";
+                       device_type = "cpu";
+                       reg = <0>;
 
                        /*
                         * To consider voltage drop between PMIC and SoC,
                        interrupts = <62>;
                };
 
-               uart1: serial@44e09000 {
+               uart0: serial@44e09000 {
                        compatible = "ti,omap3-uart";
                        ti,hwmods = "uart1";
                        clock-frequency = <48000000>;
                        status = "disabled";
                };
 
-               uart2: serial@48022000 {
+               uart1: serial@48022000 {
                        compatible = "ti,omap3-uart";
                        ti,hwmods = "uart2";
                        clock-frequency = <48000000>;
                        status = "disabled";
                };
 
-               uart3: serial@48024000 {
+               uart2: serial@48024000 {
                        compatible = "ti,omap3-uart";
                        ti,hwmods = "uart3";
                        clock-frequency = <48000000>;
                        status = "disabled";
                };
 
-               uart4: serial@481a6000 {
+               uart3: serial@481a6000 {
                        compatible = "ti,omap3-uart";
                        ti,hwmods = "uart4";
                        clock-frequency = <48000000>;
                        status = "disabled";
                };
 
-               uart5: serial@481a8000 {
+               uart4: serial@481a8000 {
                        compatible = "ti,omap3-uart";
                        ti,hwmods = "uart5";
                        clock-frequency = <48000000>;
                        status = "disabled";
                };
 
-               uart6: serial@481aa000 {
+               uart5: serial@481aa000 {
                        compatible = "ti,omap3-uart";
                        ti,hwmods = "uart6";
                        clock-frequency = <48000000>;
                        ti,hwmods = "usb_otg_hs";
                };
 
+               epwmss0: epwmss@48300000 {
+                       compatible = "ti,am33xx-pwmss";
+                       reg = <0x48300000 0x10>;
+                       ti,hwmods = "epwmss0";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       status = "disabled";
+                       ranges = <0x48300100 0x48300100 0x80   /* ECAP */
+                                 0x48300180 0x48300180 0x80   /* EQEP */
+                                 0x48300200 0x48300200 0x80>; /* EHRPWM */
+
+                       ecap0: ecap@48300100 {
+                               compatible = "ti,am33xx-ecap";
+                               #pwm-cells = <3>;
+                               reg = <0x48300100 0x80>;
+                               ti,hwmods = "ecap0";
+                               status = "disabled";
+                       };
+
+                       ehrpwm0: ehrpwm@48300200 {
+                               compatible = "ti,am33xx-ehrpwm";
+                               #pwm-cells = <3>;
+                               reg = <0x48300200 0x80>;
+                               ti,hwmods = "ehrpwm0";
+                               status = "disabled";
+                       };
+               };
+
+               epwmss1: epwmss@48302000 {
+                       compatible = "ti,am33xx-pwmss";
+                       reg = <0x48302000 0x10>;
+                       ti,hwmods = "epwmss1";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       status = "disabled";
+                       ranges = <0x48302100 0x48302100 0x80   /* ECAP */
+                                 0x48302180 0x48302180 0x80   /* EQEP */
+                                 0x48302200 0x48302200 0x80>; /* EHRPWM */
+
+                       ecap1: ecap@48302100 {
+                               compatible = "ti,am33xx-ecap";
+                               #pwm-cells = <3>;
+                               reg = <0x48302100 0x80>;
+                               ti,hwmods = "ecap1";
+                               status = "disabled";
+                       };
+
+                       ehrpwm1: ehrpwm@48302200 {
+                               compatible = "ti,am33xx-ehrpwm";
+                               #pwm-cells = <3>;
+                               reg = <0x48302200 0x80>;
+                               ti,hwmods = "ehrpwm1";
+                               status = "disabled";
+                       };
+               };
+
+               epwmss2: epwmss@48304000 {
+                       compatible = "ti,am33xx-pwmss";
+                       reg = <0x48304000 0x10>;
+                       ti,hwmods = "epwmss2";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       status = "disabled";
+                       ranges = <0x48304100 0x48304100 0x80   /* ECAP */
+                                 0x48304180 0x48304180 0x80   /* EQEP */
+                                 0x48304200 0x48304200 0x80>; /* EHRPWM */
+
+                       ecap2: ecap@48304100 {
+                               compatible = "ti,am33xx-ecap";
+                               #pwm-cells = <3>;
+                               reg = <0x48304100 0x80>;
+                               ti,hwmods = "ecap2";
+                               status = "disabled";
+                       };
+
+                       ehrpwm2: ehrpwm@48304200 {
+                               compatible = "ti,am33xx-ehrpwm";
+                               #pwm-cells = <3>;
+                               reg = <0x48304200 0x80>;
+                               ti,hwmods = "ehrpwm2";
+                               status = "disabled";
+                       };
+               };
+
                mac: ethernet@4a100000 {
                        compatible = "ti,cpsw";
                        ti,hwmods = "cpgmac0";
                        ti,hwmods = "wkup_m3";
                };
 
+               elm: elm@48080000 {
+                       compatible = "ti,am3352-elm";
+                       reg = <0x48080000 0x2000>;
+                       interrupts = <4>;
+                       ti,hwmods = "elm";
+                       status = "disabled";
+               };
+
                gpmc: gpmc@50000000 {
                        compatible = "ti,am3352-gpmc";
                        ti,hwmods = "gpmc";
index e9b5bdae4908bba91e92cb807d99ae8e7da3c877..e99dfaf70052f3dd993aa93588b6e47470befee2 100644 (file)
@@ -7,7 +7,7 @@
  */
 /dts-v1/;
 
-/include/ "omap34xx.dtsi"
+#include "omap34xx.dtsi"
 
 / {
        model = "TI AM3517 EVM (AM3517/05)";
index 556868388a23a0cc76531dd4202a19b2ed3ff137..fdf5ce63c8e603c8076f654e512dae00ca5be6b3 100644 (file)
@@ -7,7 +7,7 @@
  */
 /dts-v1/;
 
-/include/ "omap34xx.dtsi"
+#include "omap34xx.dtsi"
 
 / {
        model = "TeeJet Mt.Ventoux";
diff --git a/arch/arm/boot/dts/am4372.dtsi b/arch/arm/boot/dts/am4372.dtsi
new file mode 100644 (file)
index 0000000..ddc1df7
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Device Tree Source for AM4372 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 <dt-bindings/interrupt-controller/arm-gic.h>
+
+#include "skeleton.dtsi"
+
+/ {
+       compatible = "ti,am4372", "ti,am43";
+       interrupt-parent = <&gic>;
+
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       cpus {
+               cpu@0 {
+                       compatible = "arm,cortex-a9";
+               };
+       };
+
+       gic: interrupt-controller@48241000 {
+               compatible = "arm,cortex-a9-gic";
+               interrupt-controller;
+               #interrupt-cells = <3>;
+               reg = <0x48241000 0x1000>,
+                     <0x48240100 0x0100>;
+       };
+
+       ocp {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               uart0: serial@44e09000 {
+                       compatible = "ti,am4372-uart","ti,omap2-uart";
+                       reg = <0x44e09000 0x2000>;
+                       interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               timer1: timer@44e31000 {
+                       compatible = "ti,am4372-timer-1ms","ti,am335x-timer-1ms";
+                       reg = <0x44e31000 0x400>;
+                       interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
+                       ti,timer-alwon;
+               };
+
+               timer2: timer@48040000  {
+                       compatible = "ti,am4372-timer","ti,am335x-timer";
+                       reg = <0x48040000  0x400>;
+                       interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               counter32k: counter@44e86000 {
+                       compatible = "ti,am4372-counter32k","ti,omap-counter32k";
+                       reg = <0x44e86000 0x40>;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/am43x-epos-evm.dts b/arch/arm/boot/dts/am43x-epos-evm.dts
new file mode 100644 (file)
index 0000000..74174d4
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ * 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.
+ */
+
+/* AM43x EPOS EVM */
+
+/dts-v1/;
+
+#include "am4372.dtsi"
+
+/ {
+       model = "TI AM43x EPOS EVM";
+       compatible = "ti,am43x-epos-evm","ti,am4372","ti,am43";
+};
index 2353b1f13704b66e39284757b5442f5256bf01ba..beee1699d49eb553a474a9186b508b6fb1da4230 100644 (file)
@@ -74,6 +74,7 @@
                                 */
                                status = "disabled";
                                /* No CD or WP GPIOs */
+                               broken-cd;
                        };
 
                        usb@50000 {
index 14e36e19d5152caedc8e8056a723fa885c3495ce..45b107763e3b7c88f1632ef8bf00adb6027258b5 100644 (file)
@@ -99,6 +99,7 @@
                                 * No CD or WP GPIOs: SDIO interface used for
                                 * Wifi/Bluetooth chip
                                 */
+                                broken-cd;
                        };
 
                        usb@50000 {
index 130f8390a7e42d2f1e92057399cd6a6f54183cdc..a3a2fedb87267dd21f3146d4434e91f0f80bd614 100644 (file)
@@ -64,6 +64,7 @@
                                pinctrl-names = "default";
                                status = "okay";
                                /* No CD or WP GPIOs */
+                               broken-cd;
                        };
 
                        usb@50000 {
                                        gpios = <&gpio0 6 1>;
                                };
                        };
+
+                       pcie-controller {
+                               status = "okay";
+
+                               /* Internal mini-PCIe connector */
+                               pcie@1,0 {
+                                       /* Port 0, Lane 0 */
+                                       status = "okay";
+                               };
+
+                               /* Internal mini-PCIe connector */
+                               pcie@2,0 {
+                                       /* Port 1, Lane 0 */
+                                       status = "okay";
+                               };
+                       };
                };
        };
  };
index 52a1f5efc086b4d7bc5a99360f302f328af54ab3..90b117624abb2230105855b70fbdf313fa73a05e 100644 (file)
        model = "Marvell Armada 370 and XP SoC";
        compatible = "marvell,armada-370-xp";
 
+       aliases {
+               eth0 = &eth0;
+               eth1 = &eth1;
+       };
+
        cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
                cpu@0 {
                        compatible = "marvell,sheeva-v7";
+                       device_type = "cpu";
+                       reg = <0>;
                };
        };
 
                                reg = <0x72004 0x4>;
                        };
 
-                       ethernet@70000 {
+                       eth0: ethernet@70000 {
                                compatible = "marvell,armada-370-neta";
                                reg = <0x70000 0x4000>;
                                interrupts = <8>;
                                status = "disabled";
                        };
 
-                       ethernet@74000 {
+                       eth1: ethernet@74000 {
                                compatible = "marvell,armada-370-neta";
                                reg = <0x74000 0x4000>;
                                interrupts = <10>;
                                reg = <0xd4000 0x200>;
                                interrupts = <54>;
                                clocks = <&gateclk 17>;
+                               bus-width = <4>;
+                               cap-sdio-irq;
+                               cap-sd-highspeed;
+                               cap-mmc-highspeed;
                                status = "disabled";
                        };
 
index aee2b1866ce2ede35fbd58a6bbea1e29ac6b16ea..fa3dfc6b4c6a88c27d459f7587df7f334d1cd386 100644 (file)
 
                                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 */
index d6cc8bf8272e387281c30a0130914c1e961fa69f..e28e68ff864dbd40c2aca2a00d25e74cc0f70137 100644 (file)
        };
 
        soc {
+               ranges = <0          0 0xd0000000 0x100000      /* Internal registers 1MiB */
+                         0xe0000000 0 0xe0000000 0x8100000     /* PCIe */
+                         0xf0000000 0 0xf0000000 0x1000000>;   /* Device Bus, NOR 16MiB   */
+
                internal-regs {
                        serial@12000 {
                                clock-frequency = <250000000>;
                                pinctrl-names = "default";
                                status = "okay";
                                /* No CD or WP GPIOs */
+                               broken-cd;
                        };
 
                        usb@50000 {
                                        status = "okay";
                                };
                        };
+
+                       devbus-bootcs@10400 {
+                               status = "okay";
+                               ranges = <0 0xf0000000 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>;
+                               };
+                       };
                };
        };
 };
index 76db557adbe7bf36b43265019ec99c1870b90e26..c87b2de29c30161a1c032c21d80c07c422ecb2f6 100644 (file)
                                phy-mode = "rgmii-id";
                        };
 
+                       /* Front-side USB slot */
+                       usb@50000 {
+                               status = "okay";
+                       };
+
+                       /* Back-side USB slot */
+                       usb@51000 {
+                               status = "okay";
+                       };
+
                        spi0: spi@10600 {
                                status = "okay";
 
index 488ca5eb9a55fa646df8771c56dec7f5b224202f..c7b1f4d5c1c76f9c2ef710b00190c7080ef1829c 100644 (file)
@@ -23,6 +23,7 @@
                gpio0 = &gpio0;
                gpio1 = &gpio1;
                gpio2 = &gpio2;
+               eth3 = &eth3;
        };
 
 
                                interrupts = <91>;
                        };
 
-                       ethernet@34000 {
+                       eth3: ethernet@34000 {
                                compatible = "marvell,armada-370-neta";
                                reg = <0x34000 0x4000>;
                                interrupts = <14>;
index fdea75c73411997bcb68ab86bc1ccd349a2caadd..8f510458ea863150575213056e333fe90e2ccb81 100644 (file)
                                nr-ports = <2>;
                                status = "okay";
                        };
+
+                       /* Front side USB 0 */
                        usb@50000 {
                                status = "okay";
                        };
+
+                       /* Front side USB 1 */
                        usb@51000 {
                                status = "okay";
                        };
 
+                       /* USB interface in the mini-PCIe connector */
+                       usb@52000 {
+                               status = "okay";
+                       };
+
                        devbus-bootcs@10400 {
                                status = "okay";
                                ranges = <0 0xf0000000 0x8000000>; /* @addr 0xf000000, size 0x8000000 */
index 1ee8540b0ebaf516d940ca020473e21b2fa964ba..416eb94818449c7d2ff78ecae2e453be614e6830 100644 (file)
        model = "Marvell Armada XP family SoC";
        compatible = "marvell,armadaxp", "marvell,armada-370-xp";
 
+       aliases {
+               eth2 = &eth2;
+       };
+
        soc {
                internal-regs {
                        L2: l2-cache {
@@ -86,7 +90,7 @@
                                reg = <0x18200 0x500>;
                        };
 
-                       ethernet@30000 {
+                       eth2: ethernet@30000 {
                                compatible = "marvell,armada-370-neta";
                                reg = <0x30000 0x4000>;
                                interrupts = <12>;
index 5ede7678f2985e28e12b0d2777674993cc768434..cce45f5177f9f0aef6b40e0e775617f47398c48e 100644 (file)
@@ -21,6 +21,7 @@
                serial3 = &usart2;
                serial4 = &usart3;
                serial5 = &uart0;
+               serial6 = &uart1;
        };
 
        chosen {
                                status = "okay";
                        };
 
+                       /*
+                        * UART0/1 pins are marked as GPIO on
+                        * Aria documentation.
+                        * Change to "okay" if you need additional serial ports
+                        */
                        uart0: serial@f8040000 {
-                               compatible = "atmel,at91sam9260-usart";
-                               reg = <0xf8040000 0x200>;
-                               interrupts = <15 4 5>;
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&pinctrl_uart0>;
-                               status = "okay";
+                               status = "disabled";
+                       };
+
+                       uart1: serial@f8044000 {
+                               status = "disabled";
                        };
 
                        adc0: adc@f804c000 {
                                        };
                                };
                        };
+
+                       rtc@fffffeb0 {
+                               status = "okay";
+                       };
                };
 
                usb0: ohci@00600000 {
diff --git a/arch/arm/boot/dts/at91-foxg20.dts b/arch/arm/boot/dts/at91-foxg20.dts
new file mode 100644 (file)
index 0000000..cbe9673
--- /dev/null
@@ -0,0 +1,157 @@
+/*
+ * at91-foxg20.dts - Device Tree file for Acme Systems FoxG20 board
+ *
+ * Based on DT files for at91sam9g20ek evaluation board (AT91SAM9G20 SoC)
+ *
+ * Copyright (C) 2013 Douglas Gilbert <dgilbert@interlog.com>
+ *
+ * Licensed under GPLv2 or later.
+ */
+/dts-v1/;
+#include "at91sam9g20.dtsi"
+
+/ {
+       model = "Acme Systems FoxG20";
+       compatible = "acme,foxg20", "atmel,at91sam9g20", "atmel,at91sam9";
+
+       chosen {
+               bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait";
+       };
+
+       memory {
+               reg = <0x20000000 0x4000000>;
+       };
+
+       clocks {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               main_clock: clock@0 {
+                       compatible = "atmel,osc", "fixed-clock";
+                       clock-frequency = <18432000>;
+               };
+       };
+
+       ahb {
+               apb {
+                       usb1: gadget@fffa4000 {
+                               atmel,vbus-gpio = <&pioC 6 GPIO_ACTIVE_HIGH>;
+                               status = "okay";
+                       };
+
+                       mmc0: mmc@fffa8000 {
+                               pinctrl-0 = <
+                                       &pinctrl_mmc0_clk
+                                       &pinctrl_mmc0_slot1_cmd_dat0
+                                       &pinctrl_mmc0_slot1_dat1_3>;
+                               status = "okay";
+
+                               slot@1 {
+                                       reg = <1>;
+                                       bus-width = <4>;
+                               };
+                       };
+
+                       usart0: serial@fffb0000 {
+                               pinctrl-0 =
+                                       <&pinctrl_usart0
+                                        &pinctrl_usart0_rts
+                                        &pinctrl_usart0_cts
+                                       >;
+                               status = "okay";
+                       };
+
+                       usart1: serial@fffb4000 {
+                               status = "okay";
+                       };
+
+                       usart2: serial@fffb8000 {
+                               status = "okay";
+                       };
+
+                       macb0: ethernet@fffc4000 {
+                               phy-mode = "rmii";
+                               status = "okay";
+                       };
+
+                       usart3: serial@fffd0000 {
+                               status = "okay";
+                       };
+
+                       uart0: serial@fffd4000 {
+                               status = "okay";
+                       };
+
+                       uart1: serial@fffd8000 {
+                               status = "okay";
+                       };
+
+                       dbgu: serial@fffff200 {
+                               status = "okay";
+                       };
+
+                       pinctrl@fffff400 {
+                               board {
+                                       pinctrl_pck0_as_mck: pck0_as_mck {
+                                               atmel,pins =
+                                                       <AT91_PIOC 1 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+                               };
+
+                               mmc0_slot1 {
+                                       pinctrl_board_mmc0_slot1: mmc0_slot1-board {
+                                               atmel,pins =
+                                                       <AT91_PIOC 9 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;   /* CD pin */
+                                       };
+                               };
+
+                               i2c0 {
+                                       pinctrl_i2c0: i2c0-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOA 23 AT91_PERIPH_A AT91_PINCTRL_MULTI_DRIVE    /* TWD (SDA), open drain */
+                                                        AT91_PIOA 24 AT91_PERIPH_A AT91_PINCTRL_MULTI_DRIVE>;  /* TWCK (SCL), open drain */
+                                       };
+                               };
+                       };
+
+                       watchdog@fffffd40 {
+                               status = "okay";
+                       };
+               };
+
+               usb0: ohci@00500000 {
+                       num-ports = <2>;
+                       status = "okay";
+               };
+       };
+
+       i2c@0 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c0>;
+               i2c-gpio,delay-us = <5>;        /* ~85 kHz */
+               status = "okay";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               /* red LED marked "PC7" near mini USB (device) receptacle */
+               user_led {
+                       label = "user_led";
+                       gpios = <&pioC 7 GPIO_ACTIVE_HIGH>;     /* PC7 */
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+
+               btn {
+                       label = "Button";
+                       gpios = <&pioC 4 GPIO_ACTIVE_LOW>;
+                       linux,code = <0x103>;
+                       gpio-key,wakeup;
+               };
+       };
+};
index 4aad0d9f5462d4e71154711b3bb0dd86f8bdc231..92b9e21389db6c7d800cf97ecabf39133819f88c 100644 (file)
                ssc2 = &ssc2;
        };
        cpus {
-               cpu@0 {
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
                        compatible = "arm,arm920t";
+                       device_type = "cpu";
                };
        };
 
                                        };
                                };
 
+                               tcb0 {
+                                       pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
+                                               atmel,pins = <AT91_PIOA 13 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
+                                               atmel,pins = <AT91_PIOA 14 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
+                                               atmel,pins = <AT91_PIOA 15 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
+                                               atmel,pins = <AT91_PIOA 17 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
+                                               atmel,pins = <AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
+                                               atmel,pins = <AT91_PIOA 21 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
+                                               atmel,pins = <AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
+                                               atmel,pins = <AT91_PIOA 20 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
+                                               atmel,pins = <AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+                               };
+
+                               tcb1 {
+                                       pinctrl_tcb1_tclk0: tcb1_tclk0-0 {
+                                               atmel,pins = <AT91_PIOA 27 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tclk1: tcb1_tclk1-0 {
+                                               atmel,pins = <AT91_PIOA 28 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tclk2: tcb1_tclk2-0 {
+                                               atmel,pins = <AT91_PIOA 29 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tioa0: tcb1_tioa0-0 {
+                                               atmel,pins = <AT91_PIOB 6 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tioa1: tcb1_tioa1-0 {
+                                               atmel,pins = <AT91_PIOB 8 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tioa2: tcb1_tioa2-0 {
+                                               atmel,pins = <AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tiob0: tcb1_tiob0-0 {
+                                               atmel,pins = <AT91_PIOB 7 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tiob1: tcb1_tiob1-0 {
+                                               atmel,pins = <AT91_PIOB 9 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tiob2: tcb1_tiob2-0 {
+                                               atmel,pins = <AT91_PIOB 11 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+                               };
+
+                               spi0 {
+                                       pinctrl_spi0: spi0-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA0 periph A SPI0_MISO pin */
+                                                        AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA1 periph A SPI0_MOSI pin */
+                                                        AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PA2 periph A SPI0_SPCK pin */
+                                       };
+                               };
+
                                pioA: gpio@fffff400 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffff400 0x200>;
                                interrupts = <11 IRQ_TYPE_LEVEL_HIGH 2>;
                                status = "disabled";
                        };
+
+                       spi0: spi@fffe0000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "atmel,at91rm9200-spi";
+                               reg = <0xfffe0000 0x200>;
+                               interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_spi0>;
+                               status = "disabled";
+                       };
                };
 
                nand0: nand@40000000 {
index 14058125d123af81516b2a86dfab14a2b04a4624..d2d72c3b44c42bd45060dcc3b4566cb624c9b7f1 100644 (file)
                                atmel,vbus-gpio = <&pioD 4 GPIO_ACTIVE_HIGH>;
                                status = "okay";
                        };
+
+                       spi0: spi@fffe0000 {
+                               status = "okay";
+                               cs-gpios = <&pioA 3 0>, <0>, <0>, <0>;
+                               mtd_dataflash@0 {
+                                       compatible = "atmel,at45", "atmel,dataflash";
+                                       spi-max-frequency = <15000000>;
+                                       reg = <0>;
+                               };
+                       };
                };
 
                usb0: ohci@00300000 {
index 44851b977069491ac3b5e62c41d182257aca7126..c7ccbcbffb3e6b283e6f7976271f42703fc7b90e 100644 (file)
                ssc0 = &ssc0;
        };
        cpus {
-               cpu@0 {
-                       compatible = "arm,arm926ejs";
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       compatible = "arm,arm926ej-s";
+                       device_type = "cpu";
                };
        };
 
                                        };
                                };
 
+                               i2c_gpio0 {
+                                       pinctrl_i2c_gpio0: i2c_gpio0-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOA 23 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE
+                                                        AT91_PIOA 24 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>;
+                                       };
+                               };
+
+                               tcb0 {
+                                       pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
+                                               atmel,pins = <AT91_PIOA 25 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
+                                               atmel,pins = <AT91_PIOB 6 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
+                                               atmel,pins = <AT91_PIOB 7 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
+                                               atmel,pins = <AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
+                                               atmel,pins = <AT91_PIOA 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
+                                               atmel,pins = <AT91_PIOA 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
+                                               atmel,pins = <AT91_PIOC 9 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
+                                               atmel,pins = <AT91_PIOC 7 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
+                                               atmel,pins = <AT91_PIOC 6 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+                               };
+
+                               tcb1 {
+                                       pinctrl_tcb1_tclk0: tcb1_tclk0-0 {
+                                               atmel,pins = <AT91_PIOB 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tclk1: tcb1_tclk1-0 {
+                                               atmel,pins = <AT91_PIOB 17 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tclk2: tcb1_tclk2-0 {
+                                               atmel,pins = <AT91_PIOC 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tioa0: tcb1_tioa0-0 {
+                                               atmel,pins = <AT91_PIOB 0 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tioa1: tcb1_tioa1-0 {
+                                               atmel,pins = <AT91_PIOB 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tioa2: tcb1_tioa2-0 {
+                                               atmel,pins = <AT91_PIOB 3 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tiob0: tcb1_tiob0-0 {
+                                               atmel,pins = <AT91_PIOB 1 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tiob1: tcb1_tiob1-0 {
+                                               atmel,pins = <AT91_PIOB 18 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tiob2: tcb1_tiob2-0 {
+                                               atmel,pins = <AT91_PIOB 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+                               };
+
                                pioA: gpio@fffff400 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffff400 0x200>;
                i2c-gpio,delay-us = <2>;        /* ~100 kHz */
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c_gpio0>;
                status = "disabled";
        };
 };
index d9cf51a01b609279c16d15275880b79d8cb11449..d5bd65f7460258daa91bb4a5227071b2b67fc5de 100644 (file)
                ssc1 = &ssc1;
        };
        cpus {
-               cpu@0 {
-                       compatible = "arm,arm926ejs";
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       compatible = "arm,arm926ej-s";
+                       device_type = "cpu";
                };
        };
 
                                        };
                                };
 
+                               tcb0 {
+                                       pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
+                                               atmel,pins = <AT91_PIOB 28 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
+                                               atmel,pins = <AT91_PIOC 28 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
+                                               atmel,pins = <AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
+                                               atmel,pins = <AT91_PIOE 18 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
+                                               atmel,pins = <AT91_PIOE 8 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
+                                               atmel,pins = <AT91_PIOB 17 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
+                                               atmel,pins = <AT91_PIOE 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
+                                               atmel,pins = <AT91_PIOE 9 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
+                                               atmel,pins = <AT91_PIOB 18 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+                               };
+
                                pioA: gpio@fffff200 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffff200 0x200>;
index eff1afb8130405599e2f68df39922844bf09abd8..70f835b55c0bd91bb07949bf309ca674264bc82e 100644 (file)
                                        reg = <0>;
                                };
                        };
+
+                       watchdog@fffffd40 {
+                               status = "okay";
+                       };
                };
 
                nand0: nand@40000000 {
index c7ffc32918f920207a6f354fa017e91ee7beffc1..137354689ad0a6dfdd08d07b348cd8cf08705e42 100644 (file)
                                        reg = <1>;
                                };
                        };
+
+                       watchdog@fffffd40 {
+                               status = "okay";
+                       };
                };
 
                nand0: nand@40000000 {
index f0091af6c285331143222372c96e0216e2faa6a3..c3e514837074c1874412e88cb294fd4ec976a2ba 100644 (file)
@@ -10,6 +10,7 @@
  */
 
 #include "skeleton.dtsi"
+#include <dt-bindings/dma/at91.h>
 #include <dt-bindings/pinctrl/at91.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/gpio/gpio.h>
                ssc1 = &ssc1;
        };
        cpus {
-               cpu@0 {
-                       compatible = "arm,arm926ejs";
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       compatible = "arm,arm926ej-s";
+                       device_type = "cpu";
                };
        };
 
                                        };
                                };
 
+                               tcb0 {
+                                       pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
+                                               atmel,pins = <AT91_PIOD 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
+                                               atmel,pins = <AT91_PIOD 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
+                                               atmel,pins = <AT91_PIOC 10 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
+                                               atmel,pins = <AT91_PIOD 20 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
+                                               atmel,pins = <AT91_PIOD 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
+                                               atmel,pins = <AT91_PIOD 22 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
+                                               atmel,pins = <AT91_PIOD 30 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
+                                               atmel,pins = <AT91_PIOD 31 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
+                                               atmel,pins = <AT91_PIOA 26 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+                               };
+
+                               tcb1 {
+                                       pinctrl_tcb1_tclk0: tcb1_tclk0-0 {
+                                               atmel,pins = <AT91_PIOA 0 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tclk1: tcb1_tclk1-0 {
+                                               atmel,pins = <AT91_PIOA 3 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tclk2: tcb1_tclk2-0 {
+                                               atmel,pins = <AT91_PIOD 9 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tioa0: tcb1_tioa0-0 {
+                                               atmel,pins = <AT91_PIOA 1 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tioa1: tcb1_tioa1-0 {
+                                               atmel,pins = <AT91_PIOA 4 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tioa2: tcb1_tioa2-0 {
+                                               atmel,pins = <AT91_PIOD 7 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tiob0: tcb1_tiob0-0 {
+                                               atmel,pins = <AT91_PIOA 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tiob1: tcb1_tiob1-0 {
+                                               atmel,pins = <AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tiob2: tcb1_tiob2-0 {
+                                               atmel,pins = <AT91_PIOD 8 AT91_PERIPH_B AT91_PINCTRL_NONE>;
+                                       };
+                               };
+
                                pioA: gpio@fffff200 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffff200 0x200>;
                                compatible = "atmel,hsmci";
                                reg = <0xfff80000 0x600>;
                                interrupts = <11 IRQ_TYPE_LEVEL_HIGH 0>;
-                               dmas = <&dma 1 0>;
+                               dmas = <&dma 1 AT91_DMA_CFG_PER_ID(0)>;
                                dma-names = "rxtx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                compatible = "atmel,hsmci";
                                reg = <0xfffd0000 0x600>;
                                interrupts = <29 IRQ_TYPE_LEVEL_HIGH 0>;
-                               dmas = <&dma 1 13>;
+                               dmas = <&dma 1 AT91_DMA_CFG_PER_ID(13)>;
                                dma-names = "rxtx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                pinctrl-0 = <&pinctrl_spi1>;
                                status = "disabled";
                        };
+
+                       usb2: gadget@fff78000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "atmel,at91sam9rl-udc";
+                               reg = <0x00600000 0x80000
+                                      0xfff78000 0x400>;
+                               interrupts = <27 IRQ_TYPE_LEVEL_HIGH 0>;
+                               status = "disabled";
+
+                               ep0 {
+                                       reg = <0>;
+                                       atmel,fifo-size = <64>;
+                                       atmel,nb-banks = <1>;
+                               };
+
+                               ep1 {
+                                       reg = <1>;
+                                       atmel,fifo-size = <1024>;
+                                       atmel,nb-banks = <2>;
+                                       atmel,can-dma;
+                                       atmel,can-isoc;
+                               };
+
+                               ep2 {
+                                       reg = <2>;
+                                       atmel,fifo-size = <1024>;
+                                       atmel,nb-banks = <2>;
+                                       atmel,can-dma;
+                                       atmel,can-isoc;
+                               };
+
+                               ep3 {
+                                       reg = <3>;
+                                       atmel,fifo-size = <1024>;
+                                       atmel,nb-banks = <3>;
+                                       atmel,can-dma;
+                               };
+
+                               ep4 {
+                                       reg = <4>;
+                                       atmel,fifo-size = <1024>;
+                                       atmel,nb-banks = <3>;
+                                       atmel,can-dma;
+                               };
+
+                               ep5 {
+                                       reg = <5>;
+                                       atmel,fifo-size = <1024>;
+                                       atmel,nb-banks = <3>;
+                                       atmel,can-dma;
+                                       atmel,can-isoc;
+                               };
+
+                               ep6 {
+                                       reg = <6>;
+                                       atmel,fifo-size = <1024>;
+                                       atmel,nb-banks = <3>;
+                                       atmel,can-dma;
+                                       atmel,can-isoc;
+                               };
+                       };
                };
 
                nand0: nand@40000000 {
index 89c50d108d440674219e668110d9d333ab8c1d3b..a4b00e5c61c09faca05f8e5b9e2604394982cba8 100644 (file)
                                status = "okay";
                        };
 
+                       watchdog@fffffd40 {
+                               status = "okay";
+                       };
+
                        mmc0: mmc@fff80000 {
                                pinctrl-0 = <
                                        &pinctrl_board_mmc0
                                        reg = <0>;
                                };
                        };
+
+                       usb2: gadget@fff78000 {
+                               atmel,vbus-gpio = <&pioB 19 GPIO_ACTIVE_HIGH>;
+                               status = "okay";
+                       };
                };
 
                nand0: nand@40000000 {
index d864f7a9d2e07d829f55f67b52a2bb07d9b9a92c..bb7f564b3a557fda71f0f9289e1fd7b7225ee73d 100644 (file)
@@ -8,6 +8,7 @@
  */
 
 #include "skeleton.dtsi"
+#include <dt-bindings/dma/at91.h>
 #include <dt-bindings/pinctrl/at91.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/gpio/gpio.h>
                ssc0 = &ssc0;
        };
        cpus {
-               cpu@0 {
-                       compatible = "arm,arm926ejs";
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       compatible = "arm,arm926ej-s";
+                       device_type = "cpu";
                };
        };
 
@@ -93,7 +98,7 @@
                                compatible = "atmel,hsmci";
                                reg = <0xf0008000 0x600>;
                                interrupts = <12 IRQ_TYPE_LEVEL_HIGH 0>;
-                               dmas = <&dma 1 0>;
+                               dmas = <&dma 1 AT91_DMA_CFG_PER_ID(0)>;
                                dma-names = "rxtx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                        };
                                };
 
+                               tcb0 {
+                                       pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
+                                               atmel,pins = <AT91_PIOA 24 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
+                                               atmel,pins = <AT91_PIOA 25 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
+                                               atmel,pins = <AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
+                                               atmel,pins = <AT91_PIOA 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
+                                               atmel,pins = <AT91_PIOA 22 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
+                                               atmel,pins = <AT91_PIOA 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
+                                               atmel,pins = <AT91_PIOA 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
+                                               atmel,pins = <AT91_PIOA 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
+                                               atmel,pins = <AT91_PIOA 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+                               };
+
+                               tcb1 {
+                                       pinctrl_tcb1_tclk0: tcb1_tclk0-0 {
+                                               atmel,pins = <AT91_PIOC 4 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tclk1: tcb1_tclk1-0 {
+                                               atmel,pins = <AT91_PIOC 7 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tclk2: tcb1_tclk2-0 {
+                                               atmel,pins = <AT91_PIOC 14 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tioa0: tcb1_tioa0-0 {
+                                               atmel,pins = <AT91_PIOC 2 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tioa1: tcb1_tioa1-0 {
+                                               atmel,pins = <AT91_PIOC 5 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tioa2: tcb1_tioa2-0 {
+                                               atmel,pins = <AT91_PIOC 12 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tiob0: tcb1_tiob0-0 {
+                                               atmel,pins = <AT91_PIOC 3 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tiob1: tcb1_tiob1-0 {
+                                               atmel,pins = <AT91_PIOC 6 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tiob2: tcb1_tiob2-0 {
+                                               atmel,pins = <AT91_PIOC 13 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+                               };
+
                                pioA: gpio@fffff400 {
                                        compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
                                        reg = <0xfffff400 0x200>;
                                compatible = "atmel,at91sam9x5-i2c";
                                reg = <0xf8010000 0x100>;
                                interrupts = <9 IRQ_TYPE_LEVEL_HIGH 6>;
-                               dmas = <&dma 1 13>,
-                                      <&dma 1 14>;
+                               dmas = <&dma 1 AT91_DMA_CFG_PER_ID(13)>,
+                                      <&dma 1 AT91_DMA_CFG_PER_ID(14)>;
                                dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                compatible = "atmel,at91sam9x5-i2c";
                                reg = <0xf8014000 0x100>;
                                interrupts = <10 IRQ_TYPE_LEVEL_HIGH 6>;
-                               dmas = <&dma 1 15>,
-                                      <&dma 1 16>;
+                               dmas = <&dma 1 AT91_DMA_CFG_PER_ID(15)>,
+                                      <&dma 1 AT91_DMA_CFG_PER_ID(16)>;
                                dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                compatible = "atmel,at91rm9200-spi";
                                reg = <0xf0000000 0x100>;
                                interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
+                               dmas = <&dma 1 AT91_DMA_CFG_PER_ID(1)>,
+                                      <&dma 1 AT91_DMA_CFG_PER_ID(2)>;
+                               dma-names = "tx", "rx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi0>;
                                status = "disabled";
                                compatible = "atmel,at91rm9200-spi";
                                reg = <0xf0004000 0x100>;
                                interrupts = <14 IRQ_TYPE_LEVEL_HIGH 3>;
+                               dmas = <&dma 1 AT91_DMA_CFG_PER_ID(3)>,
+                                      <&dma 1 AT91_DMA_CFG_PER_ID(4)>;
+                               dma-names = "tx", "rx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi1>;
                                status = "disabled";
                        };
+
+                       watchdog@fffffe40 {
+                               compatible = "atmel,at91sam9260-wdt";
+                               reg = <0xfffffe40 0x10>;
+                               status = "disabled";
+                       };
                };
 
                nand0: nand@40000000 {
index 2e67cd5e47eb665ea8b1a508cd4ab861dfe40f47..d59b70c6a6a0dbadafcded2baaba38f12270aff4 100644 (file)
                                        reg = <0>;
                                };
                        };
+
+                       watchdog@fffffe40 {
+                               status = "okay";
+                       };
                };
 
                nand0: nand@40000000 {
index af91599488e9aa56aadd64f60ed52c921087a002..57d45f5bea09e77c72585fade7041521311bbf34 100644 (file)
@@ -10,6 +10,7 @@
  */
 
 #include "skeleton.dtsi"
+#include <dt-bindings/dma/at91.h>
 #include <dt-bindings/pinctrl/at91.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/gpio/gpio.h>
                ssc0 = &ssc0;
        };
        cpus {
-               cpu@0 {
-                       compatible = "arm,arm926ejs";
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       compatible = "arm,arm926ej-s";
+                       device_type = "cpu";
                };
        };
 
                                        };
                                };
 
+                               tcb0 {
+                                       pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
+                                               atmel,pins = <AT91_PIOA 24 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
+                                               atmel,pins = <AT91_PIOA 25 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
+                                               atmel,pins = <AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
+                                               atmel,pins = <AT91_PIOA 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
+                                               atmel,pins = <AT91_PIOA 22 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
+                                               atmel,pins = <AT91_PIOA 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
+                                               atmel,pins = <AT91_PIOA 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
+                                               atmel,pins = <AT91_PIOA 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
+                                               atmel,pins = <AT91_PIOA 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+                                       };
+                               };
+
+                               tcb1 {
+                                       pinctrl_tcb1_tclk0: tcb1_tclk0-0 {
+                                               atmel,pins = <AT91_PIOC 4 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tclk1: tcb1_tclk1-0 {
+                                               atmel,pins = <AT91_PIOC 7 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tclk2: tcb1_tclk2-0 {
+                                               atmel,pins = <AT91_PIOC 14 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tioa0: tcb1_tioa0-0 {
+                                               atmel,pins = <AT91_PIOC 2 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tioa1: tcb1_tioa1-0 {
+                                               atmel,pins = <AT91_PIOC 5 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tioa2: tcb1_tioa2-0 {
+                                               atmel,pins = <AT91_PIOC 12 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tiob0: tcb1_tiob0-0 {
+                                               atmel,pins = <AT91_PIOC 3 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tiob1: tcb1_tiob1-0 {
+                                               atmel,pins = <AT91_PIOC 6 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+
+                                       pinctrl_tcb1_tiob2: tcb1_tiob2-0 {
+                                               atmel,pins = <AT91_PIOC 13 AT91_PERIPH_C AT91_PINCTRL_NONE>;
+                                       };
+                               };
+
                                pioA: gpio@fffff400 {
                                        compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
                                        reg = <0xfffff400 0x200>;
                                compatible = "atmel,hsmci";
                                reg = <0xf0008000 0x600>;
                                interrupts = <12 IRQ_TYPE_LEVEL_HIGH 0>;
-                               dmas = <&dma0 1 0>;
+                               dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(0)>;
                                dma-names = "rxtx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                compatible = "atmel,hsmci";
                                reg = <0xf000c000 0x600>;
                                interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0>;
-                               dmas = <&dma1 1 0>;
+                               dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(0)>;
                                dma-names = "rxtx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                compatible = "atmel,at91sam9x5-i2c";
                                reg = <0xf8010000 0x100>;
                                interrupts = <9 IRQ_TYPE_LEVEL_HIGH 6>;
-                               dmas = <&dma0 1 7>,
-                                      <&dma0 1 8>;
+                               dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(7)>,
+                                      <&dma0 1 AT91_DMA_CFG_PER_ID(8)>;
                                dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                compatible = "atmel,at91sam9x5-i2c";
                                reg = <0xf8014000 0x100>;
                                interrupts = <10 IRQ_TYPE_LEVEL_HIGH 6>;
-                               dmas = <&dma1 1 5>,
-                                      <&dma1 1 6>;
+                               dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(5)>,
+                                      <&dma1 1 AT91_DMA_CFG_PER_ID(6)>;
                                dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                compatible = "atmel,at91sam9x5-i2c";
                                reg = <0xf8018000 0x100>;
                                interrupts = <11 IRQ_TYPE_LEVEL_HIGH 6>;
-                               dmas = <&dma0 1 9>,
-                                      <&dma0 1 10>;
+                               dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(9)>,
+                                      <&dma0 1 AT91_DMA_CFG_PER_ID(10)>;
                                dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                        };
 
+                       uart0: serial@f8040000 {
+                               compatible = "atmel,at91sam9260-usart";
+                               reg = <0xf8040000 0x200>;
+                               interrupts = <15 IRQ_TYPE_LEVEL_HIGH 5>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_uart0>;
+                               status = "disabled";
+                       };
+
+                       uart1: serial@f8044000 {
+                               compatible = "atmel,at91sam9260-usart";
+                               reg = <0xf8044000 0x200>;
+                               interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_uart1>;
+                               status = "disabled";
+                       };
+
                        adc0: adc@f804c000 {
                                compatible = "atmel,at91sam9260-adc";
                                reg = <0xf804c000 0x100>;
                                compatible = "atmel,at91rm9200-spi";
                                reg = <0xf0000000 0x100>;
                                interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
+                               dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(1)>,
+                                      <&dma0 1 AT91_DMA_CFG_PER_ID(2)>;
+                               dma-names = "tx", "rx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi0>;
                                status = "disabled";
                                compatible = "atmel,at91rm9200-spi";
                                reg = <0xf0004000 0x100>;
                                interrupts = <14 IRQ_TYPE_LEVEL_HIGH 3>;
+                               dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(1)>,
+                                      <&dma1 1 AT91_DMA_CFG_PER_ID(2)>;
+                               dma-names = "tx", "rx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi1>;
                                status = "disabled";
                        };
 
+                       usb2: gadget@f803c000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "atmel,at91sam9rl-udc";
+                               reg = <0x00500000 0x80000
+                                      0xf803c000 0x400>;
+                               interrupts = <23 IRQ_TYPE_LEVEL_HIGH 0>;
+                               status = "disabled";
+
+                               ep0 {
+                                       reg = <0>;
+                                       atmel,fifo-size = <64>;
+                                       atmel,nb-banks = <1>;
+                               };
+
+                               ep1 {
+                                       reg = <1>;
+                                       atmel,fifo-size = <1024>;
+                                       atmel,nb-banks = <2>;
+                                       atmel,can-dma;
+                                       atmel,can-isoc;
+                               };
+
+                               ep2 {
+                                       reg = <2>;
+                                       atmel,fifo-size = <1024>;
+                                       atmel,nb-banks = <2>;
+                                       atmel,can-dma;
+                                       atmel,can-isoc;
+                               };
+
+                               ep3 {
+                                       reg = <3>;
+                                       atmel,fifo-size = <1024>;
+                                       atmel,nb-banks = <3>;
+                                       atmel,can-dma;
+                               };
+
+                               ep4 {
+                                       reg = <4>;
+                                       atmel,fifo-size = <1024>;
+                                       atmel,nb-banks = <3>;
+                                       atmel,can-dma;
+                               };
+
+                               ep5 {
+                                       reg = <5>;
+                                       atmel,fifo-size = <1024>;
+                                       atmel,nb-banks = <3>;
+                                       atmel,can-dma;
+                                       atmel,can-isoc;
+                               };
+
+                               ep6 {
+                                       reg = <6>;
+                                       atmel,fifo-size = <1024>;
+                                       atmel,nb-banks = <3>;
+                                       atmel,can-dma;
+                                       atmel,can-isoc;
+                               };
+                       };
+
+                       watchdog@fffffe40 {
+                               compatible = "atmel,at91sam9260-wdt";
+                               reg = <0xfffffe40 0x10>;
+                               status = "disabled";
+                       };
+
                        rtc@fffffeb0 {
-                               compatible = "atmel,at91rm9200-rtc";
+                               compatible = "atmel,at91sam9x5-rtc";
                                reg = <0xfffffeb0 0x40>;
                                interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
                                status = "disabled";
index 19c8ebb303f442e5e3207ae1db57cc08ccd113af..b753855b20584320d00c9b38c0a4c40d972a1b1b 100644 (file)
                                status = "okay";
                        };
 
+                       usb2: gadget@f803c000 {
+                               atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
+                               status = "okay";
+                       };
+
                        i2c0: i2c@f8010000 {
                                status = "okay";
                        };
                                        reg = <0>;
                                };
                        };
+
+                       watchdog@fffffe40 {
+                               status = "okay";
+                       };
                };
 
                usb0: ohci@00600000 {
index 248067cf7069cc5d710bdb528a6e9cad42ff1273..67ec524098b53516e54961e19d84e6be1e517e30 100644 (file)
@@ -13,7 +13,7 @@
 
 /dts-v1/;
 
-/include/ "bcm11351.dtsi"
+#include "bcm11351.dtsi"
 
 / {
        model = "BCM11351 BRT board";
                status = "okay";
        };
 
+       sdio0: sdio@0x3f180000 {
+               max-frequency = <48000000>;
+               status = "okay";
+       };
+
+       sdio1: sdio@0x3f190000 {
+               non-removable;
+               max-frequency = <48000000>;
+               status = "okay";
+       };
+
+       sdio3: sdio@0x3f1b0000 {
+               max-frequency = <48000000>;
+               status = "okay";
+       };
+
+
 };
index 41b2c6c33f095e44cf695dbfaa5d325e094c7630..17979d5f23b4a5a2d543e54f66108cdcc64a5045 100644 (file)
  * GNU General Public License for more details.
  */
 
-/include/ "skeleton.dtsi"
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+#include "skeleton.dtsi"
 
 / {
        model = "BCM11351 SoC";
@@ -33,7 +36,7 @@
 
        smc@0x3404c000 {
                compatible = "bcm,bcm11351-smc", "bcm,kona-smc";
-               reg = <0x3404c000 0x400>; //1 KiB in SRAM
+               reg = <0x3404c000 0x400>; /* 1 KiB in SRAM */
        };
 
        uart@3e000000 {
@@ -41,7 +44,7 @@
                status = "disabled";
                reg = <0x3e000000 0x1000>;
                clock-frequency = <13000000>;
-               interrupts = <0x0 67 0x4>;
+               interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
                reg-shift = <2>;
                reg-io-width = <4>;
        };
        timer@35006000 {
                compatible = "bcm,kona-timer";
                reg = <0x35006000 0x1000>;
-               interrupts = <0x0 7 0x4>;
+               interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <32768>;
        };
 
+       sdio0: sdio@0x3f180000 {
+               compatible = "bcm,kona-sdhci";
+               reg = <0x3f180000 0x10000>;
+               interrupts = <0x0 77 0x4>;
+               status = "disabled";
+       };
+
+       sdio1: sdio@0x3f190000 {
+               compatible = "bcm,kona-sdhci";
+               reg = <0x3f190000 0x10000>;
+               interrupts = <0x0 76 0x4>;
+               status = "disabled";
+       };
+
+       sdio2: sdio@0x3f1a0000 {
+               compatible = "bcm,kona-sdhci";
+               reg = <0x3f1a0000 0x10000>;
+               interrupts = <0x0 74 0x4>;
+               status = "disabled";
+       };
+
+       sdio3: sdio@0x3f1b0000 {
+               compatible = "bcm,kona-sdhci";
+               reg = <0x3f1b0000 0x10000>;
+               interrupts = <0x0 73 0x4>;
+               status = "disabled";
+       };
+
 };
index aafda174a605b67c278580c0ce30a8669ef1ae20..6e9deb786a7d1e4d6a19ee5a1613da8dde882bc0 100644 (file)
@@ -8,6 +8,17 @@
        memory {
                reg = <0 0x10000000>;
        };
+
+       leds {
+               compatible = "gpio-leds";
+
+               act {
+                       label = "ACT";
+                       gpios = <&gpio 16 1>;
+                       default-state = "keep";
+                       linux,default-trigger = "heartbeat";
+               };
+       };
 };
 
 &gpio {
diff --git a/arch/arm/boot/dts/ccu8540.dts b/arch/arm/boot/dts/ccu8540.dts
new file mode 100644 (file)
index 0000000..48ff034
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2013 ST-Ericsson AB
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+#include "dbx5x0.dtsi"
+
+/ {
+       model = "ST-Ericsson U8540 platform with Device Tree";
+       compatible = "st-ericsson,ccu8540", "st-ericsson,u8540";
+
+       memory@0 {
+               reg = <0x20000000 0x1f000000>, <0xc0000000 0x3f000000>;
+       };
+
+       soc {
+               prcmu@80157000 {
+                       reg = <0x80157000 0x2000>, <0x801b0000 0x8000>, <0x801b8000 0x3000>;
+                       reg-names = "prcmu", "prcmu-tcpm", "prcmu-tcdm";
+               };
+
+               uart@80120000 {
+                       status = "okay";
+               };
+
+               uart@80121000 {
+                       status = "okay";
+               };
+
+               uart@80007000 {
+                       status = "okay";
+               };
+       };
+};
index 04305463f00dc4361ee42f77a39b84194aaf2765..ed29ec7288e4ca32c607a079b1657e5010c3c958 100644 (file)
@@ -10,7 +10,7 @@
  */
 
 /dts-v1/;
-/include/ "dbx5x0.dtsi"
+#include "dbx5x0.dtsi"
 
 / {
        model = "ST-Ericsson CCU9540 platform with Device Tree";
@@ -20,7 +20,7 @@
                reg = <0x00000000 0x20000000>;
        };
 
-       soc-u9500 {
+       soc {
                uart@80120000 {
                        status = "okay";
                };
@@ -52,7 +52,7 @@
                // WLAN SDIO channel
                sdi1_per2@80118000 {
                        arm,primecell-periphid = <0x10480180>;
-                       max-frequency = <50000000>;
+                       max-frequency = <100000000>;
                        bus-width = <4>;
 
                        status = "okay";
index b6bc4ff17f26481be92cff13ab9d2e46880ead41..a082f0ba1ddb2b8642fd8622b2535d7d912f86b2 100644 (file)
@@ -9,10 +9,11 @@
  * http://www.gnu.org/copyleft/gpl.html
  */
 
-/include/ "skeleton.dtsi"
+#include <dt-bindings/interrupt-controller/irq.h>
+#include "skeleton.dtsi"
 
 / {
-       soc-u9500 {
+       soc {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "stericsson,db8500";
                L2: l2-cache {
                        compatible = "arm,pl310-cache";
                        reg = <0xa0412000 0x1000>;
-                       interrupts = <0 13 4>;
+                       interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>;
                        cache-unified;
                        cache-level = <2>;
                };
 
                pmu {
                        compatible = "arm,cortex-a9-pmu";
-                       interrupts = <0 7 0x4>;
+                       interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                timer@a0410600 {
                        compatible = "arm,cortex-a9-twd-timer";
                        reg = <0xa0410600 0x20>;
-                       interrupts = <1 13 0x304>;
+                       interrupts = <1 13 0x304>; /* IRQ level high per-CPU */
                };
 
                rtc@80154000 {
                        compatible = "arm,rtc-pl031", "arm,primecell";
                        reg = <0x80154000 0x1000>;
-                       interrupts = <0 18 0x4>;
+                       interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                gpio0: gpio@8012e000 {
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
                        reg =  <0x8012e000 0x80>;
-                       interrupts = <0 119 0x4>;
+                       interrupts = <0 119 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                        st,supports-sleepmode;
@@ -70,7 +71,7 @@
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
                        reg =  <0x8012e080 0x80>;
-                       interrupts = <0 120 0x4>;
+                       interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                        st,supports-sleepmode;
@@ -83,7 +84,7 @@
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
                        reg =  <0x8000e000 0x80>;
-                       interrupts = <0 121 0x4>;
+                       interrupts = <0 121 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                        st,supports-sleepmode;
@@ -96,7 +97,7 @@
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
                        reg =  <0x8000e080 0x80>;
-                       interrupts = <0 122 0x4>;
+                       interrupts = <0 122 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                        st,supports-sleepmode;
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
                        reg =  <0x8000e100 0x80>;
-                       interrupts = <0 123 0x4>;
+                       interrupts = <0 123 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                        st,supports-sleepmode;
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
                        reg =  <0x8000e180 0x80>;
-                       interrupts = <0 124 0x4>;
+                       interrupts = <0 124 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                        st,supports-sleepmode;
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
                        reg =  <0x8011e000 0x80>;
-                       interrupts = <0 125 0x4>;
+                       interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                        st,supports-sleepmode;
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
                        reg =  <0x8011e080 0x80>;
-                       interrupts = <0 126 0x4>;
+                       interrupts = <0 126 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                        st,supports-sleepmode;
                        compatible = "stericsson,db8500-gpio",
                                "st,nomadik-gpio";
                        reg =  <0xa03fe000 0x80>;
-                       interrupts = <0 127 0x4>;
+                       interrupts = <0 127 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                        st,supports-sleepmode;
                };
 
                pinctrl {
-                       compatible = "stericsson,nmk-pinctrl";
+                       compatible = "stericsson,db8500-pinctrl";
                        prcm = <&prcmu>;
                };
 
-               usb@a03e0000 {
+               usb_per5@a03e0000 {
                        compatible = "stericsson,db8500-musb",
                                "mentor,musb";
                        reg = <0xa03e0000 0x10000>;
-                       interrupts = <0 23 0x4>;
-               };
-
-               dma-controller@801C0000 {
-                       compatible = "stericsson,db8500-dma40",
-                                       "stericsson,dma40";
+                       interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "mc";
+
+                       dr_mode = "otg";
+
+                       dmas = <&dma 38 0 0x2>, /* Logical - DevToMem */
+                              <&dma 38 0 0x0>, /* Logical - MemToDev */
+                              <&dma 37 0 0x2>, /* Logical - DevToMem */
+                              <&dma 37 0 0x0>, /* Logical - MemToDev */
+                              <&dma 36 0 0x2>, /* Logical - DevToMem */
+                              <&dma 36 0 0x0>, /* Logical - MemToDev */
+                              <&dma 19 0 0x2>, /* Logical - DevToMem */
+                              <&dma 19 0 0x0>, /* Logical - MemToDev */
+                              <&dma 18 0 0x2>, /* Logical - DevToMem */
+                              <&dma 18 0 0x0>, /* Logical - MemToDev */
+                              <&dma 17 0 0x2>, /* Logical - DevToMem */
+                              <&dma 17 0 0x0>, /* Logical - MemToDev */
+                              <&dma 16 0 0x2>, /* Logical - DevToMem */
+                              <&dma 16 0 0x0>, /* Logical - MemToDev */
+                              <&dma 39 0 0x2>, /* Logical - DevToMem */
+                              <&dma 39 0 0x0>; /* Logical - MemToDev */
+
+                       dma-names = "iep_1_9",  "oep_1_9",
+                                   "iep_2_10", "oep_2_10",
+                                   "iep_3_11", "oep_3_11",
+                                   "iep_4_12", "oep_4_12",
+                                   "iep_5_13", "oep_5_13",
+                                   "iep_6_14", "oep_6_14",
+                                   "iep_7_15", "oep_7_15",
+                                   "iep_8",    "oep_8";
+               };
+
+               dma: dma-controller@801C0000 {
+                       compatible = "stericsson,db8500-dma40", "stericsson,dma40";
                        reg = <0x801C0000 0x1000 0x40010000 0x800>;
-                       interrupts = <0 25 0x4>;
+                       reg-names = "base", "lcpa";
+                       interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
+
+                       #dma-cells = <3>;
+                       memcpy-channels = <56 57 58 59 60>;
                };
 
                prcmu: prcmu@80157000 {
                        compatible = "stericsson,db8500-prcmu";
                        reg = <0x80157000 0x2000>, <0x801b0000 0x8000>, <0x801b8000 0x1000>;
                        reg-names = "prcmu", "prcmu-tcpm", "prcmu-tcdm";
-                       interrupts = <0 47 0x4>;
+                       interrupts = <0 47 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        interrupt-controller;
                        thermal@801573c0 {
                                compatible = "stericsson,db8500-thermal";
                                reg = <0x801573c0 0x40>;
-                               interrupts = <21 0x4>, <22 0x4>;
+                               interrupts = <21 IRQ_TYPE_LEVEL_HIGH>,
+                                            <22 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-names = "IRQ_HOTMON_LOW", "IRQ_HOTMON_HIGH";
                                status = "disabled";
                         };
                        ab8500 {
                                compatible = "stericsson,ab8500";
                                interrupt-parent = <&intc>;
-                               interrupts = <0 40 0x4>;
+                               interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
 
                                ab8500-rtc {
                                        compatible = "stericsson,ab8500-rtc";
-                                       interrupts = <17 0x4
-                                                     18 0x4>;
+                                       interrupts = <17 IRQ_TYPE_LEVEL_HIGH
+                                                     18 IRQ_TYPE_LEVEL_HIGH>;
                                        interrupt-names = "60S", "ALARM";
                                };
 
                                ab8500-gpadc {
                                        compatible = "stericsson,ab8500-gpadc";
-                                       interrupts = <32 0x4
-                                                     39 0x4>;
+                                       interrupts = <32 IRQ_TYPE_LEVEL_HIGH
+                                                     39 IRQ_TYPE_LEVEL_HIGH>;
                                        interrupt-names = "HW_CONV_END", "SW_CONV_END";
                                        vddadc-supply = <&ab8500_ldo_tvout_reg>;
                                };
 
                                ab8500_usb {
                                        compatible = "stericsson,ab8500-usb";
-                                       interrupts = < 90 0x4
-                                                      96 0x4
-                                                      14 0x4
-                                                      15 0x4
-                                                      79 0x4
-                                                      74 0x4
-                                                      75 0x4>;
+                                       interrupts = < 90 IRQ_TYPE_LEVEL_HIGH
+                                                      96 IRQ_TYPE_LEVEL_HIGH
+                                                      14 IRQ_TYPE_LEVEL_HIGH
+                                                      15 IRQ_TYPE_LEVEL_HIGH
+                                                      79 IRQ_TYPE_LEVEL_HIGH
+                                                      74 IRQ_TYPE_LEVEL_HIGH
+                                                      75 IRQ_TYPE_LEVEL_HIGH>;
                                        interrupt-names = "ID_WAKEUP_R",
                                                          "ID_WAKEUP_F",
                                                          "VBUS_DET_F",
                                                          "USB_LINK_STATUS",
                                                          "USB_ADP_PROBE_PLUG",
                                                          "USB_ADP_PROBE_UNPLUG";
-                                       vddulpivio18-supply = <&ab8500_ldo_initcore_reg>;
+                                       vddulpivio18-supply = <&ab8500_ldo_intcore_reg>;
                                        v-ape-supply = <&db8500_vape_reg>;
                                        musb_1v8-supply = <&db8500_vsmps2_reg>;
                                };
 
                                ab8500-ponkey {
                                        compatible = "stericsson,ab8500-poweron-key";
-                                       interrupts = <6 0x4
-                                                     7 0x4>;
+                                       interrupts = <6 IRQ_TYPE_LEVEL_HIGH
+                                                     7 IRQ_TYPE_LEVEL_HIGH>;
                                        interrupt-names = "ONKEY_DBF", "ONKEY_DBR";
                                };
 
                                codec: ab8500-codec {
                                        compatible = "stericsson,ab8500-codec";
 
+                                       V-AUD-supply = <&ab8500_ldo_audio_reg>;
+                                       V-AMIC1-supply = <&ab8500_ldo_anamic1_reg>;
+                                       V-AMIC2-supply = <&ab8500_ldo_anamic2_reg>;
+                                       V-DMIC-supply = <&ab8500_ldo_dmic_reg>;
+
                                        stericsson,earpeice-cmv = <950>; /* Units in mV. */
                                };
 
                                        };
 
                                        // supply for v-intcore12; VINTCORE12 LDO
-                                       ab8500_ldo_initcore_reg: ab8500_ldo_initcore {
-                                               regulator-compatible = "ab8500_ldo_initcore";
+                                       ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
+                                               regulator-compatible = "ab8500_ldo_intcore";
                                        };
 
                                        // supply for tvout; gpadc; TVOUT LDO
                                                regulator-compatible = "ab8500_ldo_audio";
                                        };
 
-                                       // supply for v-anamic1 VAMic1-LDO
+                                       // supply for v-anamic1 VAMIC1 LDO
                                        ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
                                                regulator-compatible = "ab8500_ldo_anamic1";
                                        };
 
                                        // supply for v-amic2; VAMIC2 LDO; reuse constants for AMIC1
-                                       ab8500_ldo_amamic2_reg: ab8500_ldo_amamic2 {
-                                               regulator-compatible = "ab8500_ldo_amamic2";
+                                       ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
+                                               regulator-compatible = "ab8500_ldo_anamic2";
                                        };
 
                                        // supply for v-dmic; VDMIC LDO
                i2c@80004000 {
                        compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
                        reg = <0x80004000 0x1000>;
-                       interrupts = <0 21 0x4>;
+                       interrupts = <0 21 IRQ_TYPE_LEVEL_HIGH>;
                        arm,primecell-periphid = <0x180024>;
 
                        #address-cells = <1>;
                i2c@80122000 {
                        compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
                        reg = <0x80122000 0x1000>;
-                       interrupts = <0 22 0x4>;
+                       interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
                        arm,primecell-periphid = <0x180024>;
 
                        #address-cells = <1>;
                i2c@80128000 {
                        compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
                        reg = <0x80128000 0x1000>;
-                       interrupts = <0 55 0x4>;
+                       interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
                        arm,primecell-periphid = <0x180024>;
 
                        #address-cells = <1>;
                i2c@80110000 {
                        compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
                        reg = <0x80110000 0x1000>;
-                       interrupts = <0 12 0x4>;
+                       interrupts = <0 12 IRQ_TYPE_LEVEL_HIGH>;
                        arm,primecell-periphid = <0x180024>;
 
                        #address-cells = <1>;
                i2c@8012a000 {
                        compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
                        reg = <0x8012a000 0x1000>;
-                       interrupts = <0 51 0x4>;
+                       interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH>;
                        arm,primecell-periphid = <0x180024>;
 
                        #address-cells = <1>;
                ssp@80002000 {
                        compatible = "arm,pl022", "arm,primecell";
                        reg = <0x80002000 0x1000>;
-                       interrupts = <0 14 0x4>;
+                       interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
-
-                       // Add one of these for each child device
-                       cs-gpios = <&gpio0 31 0x4 &gpio4 14 0x4 &gpio4 16 0x4
-                                   &gpio6 22 0x4 &gpio7 0 0x4>;
-
                };
 
                uart@80120000 {
                        compatible = "arm,pl011", "arm,primecell";
                        reg = <0x80120000 0x1000>;
-                       interrupts = <0 11 0x4>;
+                       interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
+
+                       dmas = <&dma 13 0 0x2>, /* Logical - DevToMem */
+                              <&dma 13 0 0x0>; /* Logical - MemToDev */
+                       dma-names = "rx", "tx";
+
                        status = "disabled";
                };
+
                uart@80121000 {
                        compatible = "arm,pl011", "arm,primecell";
                        reg = <0x80121000 0x1000>;
-                       interrupts = <0 19 0x4>;
+                       interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>;
+
+                       dmas = <&dma 12 0 0x2>, /* Logical - DevToMem */
+                              <&dma 12 0 0x0>; /* Logical - MemToDev */
+                       dma-names = "rx", "tx";
+
                        status = "disabled";
                };
+
                uart@80007000 {
                        compatible = "arm,pl011", "arm,primecell";
                        reg = <0x80007000 0x1000>;
-                       interrupts = <0 26 0x4>;
+                       interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>;
+
+                       dmas = <&dma 11 0 0x2>, /* Logical - DevToMem */
+                              <&dma 11 0 0x0>; /* Logical - MemToDev */
+                       dma-names = "rx", "tx";
+
                        status = "disabled";
                };
 
                sdi0_per1@80126000 {
                        compatible = "arm,pl18x", "arm,primecell";
                        reg = <0x80126000 0x1000>;
-                       interrupts = <0 60 0x4>;
+                       interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
+
+                       dmas = <&dma 29 0 0x2>, /* Logical - DevToMem */
+                              <&dma 29 0 0x0>; /* Logical - MemToDev */
+                       dma-names = "rx", "tx";
+
                        status = "disabled";
                };
 
                sdi1_per2@80118000 {
                        compatible = "arm,pl18x", "arm,primecell";
                        reg = <0x80118000 0x1000>;
-                       interrupts = <0 50 0x4>;
+                       interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>;
+
+                       dmas = <&dma 32 0 0x2>, /* Logical - DevToMem */
+                              <&dma 32 0 0x0>; /* Logical - MemToDev */
+                       dma-names = "rx", "tx";
+
                        status = "disabled";
                };
 
                sdi2_per3@80005000 {
                        compatible = "arm,pl18x", "arm,primecell";
                        reg = <0x80005000 0x1000>;
-                       interrupts = <0 41 0x4>;
+                       interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>;
+
+                       dmas = <&dma 28 0 0x2>, /* Logical - DevToMem */
+                              <&dma 28 0 0x0>; /* Logical - MemToDev */
+                       dma-names = "rx", "tx";
+
                        status = "disabled";
                };
 
                sdi3_per2@80119000 {
                        compatible = "arm,pl18x", "arm,primecell";
                        reg = <0x80119000 0x1000>;
-                       interrupts = <0 59 0x4>;
+                       interrupts = <0 59 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
                sdi4_per2@80114000 {
                        compatible = "arm,pl18x", "arm,primecell";
                        reg = <0x80114000 0x1000>;
-                       interrupts = <0 99 0x4>;
+                       interrupts = <0 99 IRQ_TYPE_LEVEL_HIGH>;
+
+                       dmas = <&dma 42 0 0x2>, /* Logical - DevToMem */
+                              <&dma 42 0 0x0>; /* Logical - MemToDev */
+                       dma-names = "rx", "tx";
+
                        status = "disabled";
                };
 
                sdi5_per3@80008000 {
                        compatible = "arm,pl18x", "arm,primecell";
                        reg = <0x80008000 0x1000>;
-                       interrupts = <0 100 0x4>;
+                       interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
                msp0: msp@80123000 {
                        compatible = "stericsson,ux500-msp-i2s";
                        reg = <0x80123000 0x1000>;
-                       interrupts = <0 31 0x4>;
+                       interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
                        v-ape-supply = <&db8500_vape_reg>;
                        status = "disabled";
                };
                msp1: msp@80124000 {
                        compatible = "stericsson,ux500-msp-i2s";
                        reg = <0x80124000 0x1000>;
-                       interrupts = <0 62 0x4>;
+                       interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>;
                        v-ape-supply = <&db8500_vape_reg>;
                        status = "disabled";
                };
                msp2: msp@80117000 {
                        compatible = "stericsson,ux500-msp-i2s";
                        reg = <0x80117000 0x1000>;
-                       interrupts = <0 98 0x4>;
+                       interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
                        v-ape-supply = <&db8500_vape_reg>;
                        status = "disabled";
                };
                msp3: msp@80125000 {
                        compatible = "stericsson,ux500-msp-i2s";
                        reg = <0x80125000 0x1000>;
-                       interrupts = <0 62 0x4>;
+                       interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>;
                        v-ape-supply = <&db8500_vape_reg>;
                        status = "disabled";
                };
 
                        status = "disabled";
                };
+
+               cryp@a03cb000 {
+                       compatible = "stericsson,ux500-cryp";
+                       reg = <0xa03cb000 0x1000>;
+                       interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>;
+
+                       v-ape-supply = <&db8500_vape_reg>;
+               };
+
+               hash@a03c2000 {
+                       compatible = "stericsson,ux500-hash";
+                       reg = <0xa03c2000 0x1000>;
+
+                       v-ape-supply = <&db8500_vape_reg>;
+               };
        };
 };
index 7e3065abd7512eaccc203feefd60345ac931e7f0..5cae2ab69762a8298a694b21f1ee71c753a4a60c 100644 (file)
                        gpio = <&gpio0 1 0>;
                };
        };
+
+       clocks {
+               /* 25MHz reference crystal */
+               ref25: oscillator {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <25000000>;
+               };
+       };
 };
 
 &uart0 { status = "okay"; };
 &sata0 { status = "okay"; };
-&i2c0 { status = "okay"; };
+
+&i2c0 {
+       status = "okay";
+       clock-frequency = <100000>;
+
+       si5351: clock-generator {
+               compatible = "silabs,si5351a-msop";
+               reg = <0x60>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               #clock-cells = <1>;
+
+               /* connect xtal input to 25MHz reference */
+               clocks = <&ref25>;
+
+               /* connect xtal input as source of pll0 and pll1 */
+               silabs,pll-source = <0 0>, <1 0>;
+
+               clkout0 {
+                       reg = <0>;
+                       silabs,drive-strength = <8>;
+                       silabs,multisynth-source = <0>;
+                       silabs,clock-source = <0>;
+                       silabs,pll-master;
+               };
+
+               clkout1 {
+                       reg = <1>;
+                       silabs,drive-strength = <8>;
+                       silabs,multisynth-source = <1>;
+                       silabs,clock-source = <0>;
+                       silabs,pll-master;
+               };
+
+               clkout2 {
+                       reg = <2>;
+                       silabs,multisynth-source = <1>;
+                       silabs,clock-source = <0>;
+               };
+       };
+};
 
 &sdio0 {
        status = "okay";
index 359694c7891803e23964394f0722cd89243e266e..bed40ee2e4f675f4bcb934b54d2f54d714ffca40 100644 (file)
                reg = <0x13400000 0x10000>;
                interrupts = <0 94 0>;
                samsung,power-domain = <&pd_mfc>;
+               clocks = <&clock 170>, <&clock 273>;
+               clock-names = "sclk_mfc", "mfc";
                status = "disabled";
        };
 
index 524b90846df5fe7e8a9abf56d94634bb39b592c8..08609b8bdaf1e069d4344f1f9fe43318bc3bfb6d 100644 (file)
                enable-active-high;
        };
 
+       tmu@100C0000 {
+               status = "okay";
+       };
+
        sdhci@12530000 {
                bus-width = <4>;
                pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>;
                status = "okay";
        };
 
+       i2c@13860000 {
+               status = "okay";
+               samsung,i2c-sda-delay = <100>;
+               samsung,i2c-max-bus-freq = <20000>;
+               pinctrl-0 = <&i2c0_bus>;
+               pinctrl-names = "default";
+
+               max8997_pmic@66 {
+                       compatible = "maxim,max8997-pmic";
+                       reg = <0x66>;
+                       interrupt-parent = <&gpx0>;
+                       interrupts = <4 0>, <3 0>;
+
+                       max8997,pmic-buck1-dvs-voltage = <1350000>;
+                       max8997,pmic-buck2-dvs-voltage = <1100000>;
+                       max8997,pmic-buck5-dvs-voltage = <1200000>;
+
+                       regulators {
+                               ldo1_reg: LDO1 {
+                                       regulator-name = "VDD_ABB_3.3V";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                               };
+
+                               ldo2_reg: LDO2 {
+                                       regulator-name = "VDD_ALIVE_1.1V";
+                                       regulator-min-microvolt = <1100000>;
+                                       regulator-max-microvolt = <1100000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo3_reg: LDO3 {
+                                       regulator-name = "VMIPI_1.1V";
+                                       regulator-min-microvolt = <1100000>;
+                                       regulator-max-microvolt = <1100000>;
+                               };
+
+                               ldo4_reg: LDO4 {
+                                       regulator-name = "VDD_RTC_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo6_reg: LDO6 {
+                                       regulator-name = "VMIPI_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo7_reg: LDO7 {
+                                       regulator-name = "VDD_AUD_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                               };
+
+                               ldo8_reg: LDO8 {
+                                       regulator-name = "VADC_3.3V";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                               };
+
+                               ldo9_reg: LDO9 {
+                                       regulator-name = "DVDD_SWB_2.8V";
+                                       regulator-min-microvolt = <2800000>;
+                                       regulator-max-microvolt = <2800000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo10_reg: LDO10 {
+                                       regulator-name = "VDD_PLL_1.1V";
+                                       regulator-min-microvolt = <1100000>;
+                                       regulator-max-microvolt = <1100000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo11_reg: LDO11 {
+                                       regulator-name = "VDD_AUD_3V";
+                                       regulator-min-microvolt = <3000000>;
+                                       regulator-max-microvolt = <3000000>;
+                               };
+
+                               ldo14_reg: LDO14 {
+                                       regulator-name = "AVDD18_SWB_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo17_reg: LDO17 {
+                                       regulator-name = "VDD_SWB_3.3V";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo21_reg: LDO21 {
+                                       regulator-name = "VDD_MIF_1.2V";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                               };
+
+                               buck1_reg: BUCK1 {
+                                       regulator-name = "VDD_ARM_1.2V";
+                                       regulator-min-microvolt = <950000>;
+                                       regulator-max-microvolt = <1350000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               buck2_reg: BUCK2 {
+                                       regulator-name = "VDD_INT_1.1V";
+                                       regulator-min-microvolt = <900000>;
+                                       regulator-max-microvolt = <1100000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               buck3_reg: BUCK3 {
+                                       regulator-name = "VDD_G3D_1.1V";
+                                       regulator-min-microvolt = <900000>;
+                                       regulator-max-microvolt = <1100000>;
+                               };
+
+                               buck5_reg: BUCK5 {
+                                       regulator-name = "VDDQ_M1M2_1.2V";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                               };
+
+                               buck7_reg: BUCK7 {
+                                       regulator-name = "VDD_LCD_3.3V";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-boot-on;
+                                       regulator-always-on;
+                               };
+                       };
+               };
+       };
+
        gpio_keys {
                compatible = "gpio-keys";
                #address-cells = <1>;
                        clock-frequency = <24000000>;
                };
        };
+
+       fimd@11c00000 {
+               pinctrl-0 = <&lcd_en &lcd_clk &lcd_data24 &pwm0_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>;
+               };
+       };
 };
index 55a2efb763d1c014fb5d06804abea8bc67fa382d..553bceae8967cd8bcb211693b1656f6ebbc5f3ca 100644 (file)
                        samsung,pin-pud = <3>;
                        samsung,pin-drv = <0>;
                };
+
+               pwm0_out: pwm0-out {
+                       samsung,pins = "gpd0-0";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               pwm1_out: pwm1-out {
+                       samsung,pins = "gpd0-1";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               pwm2_out: pwm2-out {
+                       samsung,pins = "gpd0-2";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               pwm3_out: pwm3-out {
+                       samsung,pins = "gpd0-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               lcd_ctrl: lcd-ctrl {
+                       samsung,pins = "gpd0-0", "gpd0-1";
+                       samsung,pin-function = <3>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               lcd_sync: lcd-sync {
+                       samsung,pins = "gpf0-0", "gpf0-1";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               lcd_en: lcd-en {
+                       samsung,pins = "gpe3-4";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               lcd_clk: lcd-clk {
+                       samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               lcd_data16: lcd-data-width16 {
+                       samsung,pins = "gpf0-7", "gpf1-0", "gpf1-1", "gpf1-2",
+                                       "gpf1-3", "gpf1-6", "gpf1-7", "gpf2-0",
+                                       "gpf2-1", "gpf2-2", "gpf2-3", "gpf2-7",
+                                       "gpf3-0", "gpf3-1", "gpf3-2", "gpf3-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               lcd_data18: lcd-data-width18 {
+                       samsung,pins = "gpf0-6", "gpf0-7", "gpf1-0", "gpf1-1",
+                                       "gpf1-2", "gpf1-3", "gpf1-6", "gpf1-7",
+                                       "gpf2-0", "gpf2-1", "gpf2-2", "gpf2-3",
+                                       "gpf2-6", "gpf2-7", "gpf3-0", "gpf3-1",
+                                       "gpf3-2", "gpf3-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               lcd_data24: lcd-data-width24 {
+                       samsung,pins = "gpf0-4", "gpf0-5", "gpf0-6", "gpf0-7",
+                                       "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3",
+                                       "gpf1-4", "gpf1-5", "gpf1-6", "gpf1-7",
+                                       "gpf2-0", "gpf2-1", "gpf2-2", "gpf2-3",
+                                       "gpf2-4", "gpf2-5", "gpf2-6", "gpf2-7",
+                                       "gpf3-0", "gpf3-1", "gpf3-2", "gpf3-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
        };
 
        pinctrl@11000000 {
index 54710de829086f8b94fd0202a696f967dea72733..d4f8067e89baa8fa6be6856f3e5163e7af99084c 100644 (file)
                interrupt-parent = <&combiner>;
                reg = <0x100C0000 0x100>;
                interrupts = <2 4>;
+               clocks = <&clock 383>;
+               clock-names = "tmu_apbif";
+               status = "disabled";
        };
 
        g2d@12800000 {
                compatible = "samsung,s5pv210-g2d";
                reg = <0x12800000 0x1000>;
                interrupts = <0 89 0>;
+               clocks = <&clock 177>, <&clock 277>;
+               clock-names = "sclk_fimg2d", "fimg2d";
                status = "disabled";
        };
 };
index 53bc8bf779849cf0f814f4d5cb05d4b2d59d1a72..867d9452619b7aeeb5763db2271b23a1463db16d 100644 (file)
@@ -43,6 +43,7 @@
                #size-cells = <0>;
                pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
                pinctrl-names = "default";
+               vmmc-supply = <&ldo20_reg &buck8_reg>;
                status = "okay";
 
                num-slots = <1>;
@@ -78,6 +79,7 @@
                bus-width = <4>;
                pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
                pinctrl-names = "default";
+               vmmc-supply = <&ldo4_reg &ldo21_reg>;
                status = "okay";
        };
 
                        clock-frequency = <24000000>;
                };
        };
+
+       i2c@13860000 {
+               pinctrl-0 = <&i2c0_bus>;
+               pinctrl-names = "default";
+               status = "okay";
+
+               max77686: pmic@09 {
+                       compatible = "maxim,max77686";
+                       reg = <0x09>;
+
+                       voltage-regulators {
+                               ldo1_reg: LDO1 {
+                                       regulator-name = "VDD_ALIVE_1.0V";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo2_reg: LDO2 {
+                                       regulator-name = "VDDQ_M1_2_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo3_reg: LDO3 {
+                                       regulator-name = "VDDQ_EXT_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo4_reg: LDO4 {
+                                       regulator-name = "VDDQ_MMC2_2.8V";
+                                       regulator-min-microvolt = <2800000>;
+                                       regulator-max-microvolt = <2800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo5_reg: LDO5 {
+                                       regulator-name = "VDDQ_MMC1_3_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo6_reg: LDO6 {
+                                       regulator-name = "VDD10_MPLL_1.0V";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo7_reg: LDO7 {
+                                       regulator-name = "VDD10_XPLL_1.0V";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo11_reg: LDO11 {
+                                       regulator-name = "VDD18_ABB1_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo12_reg: LDO12 {
+                                       regulator-name = "VDD33_USB_3.3V";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo13_reg: LDO13 {
+                                       regulator-name = "VDDQ_C2C_W_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo14_reg: LDO14 {
+                                       regulator-name = "VDD18_ABB0_2_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo15_reg: LDO15 {
+                                       regulator-name = "VDD10_HSIC_1.0V";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo16_reg: LDO16 {
+                                       regulator-name = "VDD18_HSIC_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo20_reg: LDO20 {
+                                       regulator-name = "LDO20_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-boot-on;
+                               };
+
+                               ldo21_reg: LDO21 {
+                                       regulator-name = "LDO21_3.3V";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo25_reg: LDO25 {
+                                       regulator-name = "VDDQ_LCD_1.8V";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               buck1_reg: BUCK1 {
+                                       regulator-name = "vdd_mif";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               buck2_reg: BUCK2 {
+                                       regulator-name = "vdd_arm";
+                                       regulator-min-microvolt = <900000>;
+                                       regulator-max-microvolt = <1300000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               buck3_reg: BUCK3 {
+                                       regulator-name = "vdd_int";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               buck4_reg: BUCK4 {
+                                       regulator-name = "vdd_g3d";
+                                       regulator-min-microvolt = <900000>;
+                                       regulator-max-microvolt = <1100000>;
+                                       regulator-microvolt-offset = <50000>;
+                               };
+
+                               buck5_reg: BUCK5 {
+                                       regulator-name = "VDDQ_CKEM1_2_1.2V";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               buck6_reg: BUCK6 {
+                                       regulator-name = "BUCK6_1.35V";
+                                       regulator-min-microvolt = <1350000>;
+                                       regulator-max-microvolt = <1350000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               buck7_reg: BUCK7 {
+                                       regulator-name = "BUCK7_2.0V";
+                                       regulator-min-microvolt = <2000000>;
+                                       regulator-max-microvolt = <2000000>;
+                                       regulator-always-on;
+                               };
+
+                               buck8_reg: BUCK8 {
+                                       regulator-name = "BUCK8_2.8V";
+                                       regulator-min-microvolt = <2800000>;
+                                       regulator-max-microvolt = <2800000>;
+                                       regulator-always-on;
+                               };
+                       };
+               };
+       };
 };
index 1c21bad32ca9090c9673b2d68dabba20a2e563a1..ca73c42f77e1ae25742a4baef1172705533d3662 100644 (file)
                enable-active-high;
        };
 
+       pinctrl@11000000 {
+               keypad_rows: keypad-rows {
+                       samsung,pins = "gpx2-0", "gpx2-1", "gpx2-2";
+                       samsung,pin-function = <3>;
+                       samsung,pin-pud = <3>;
+                       samsung,pin-drv = <0>;
+               };
+
+               keypad_cols: keypad-cols {
+                       samsung,pins = "gpx1-0", "gpx1-1";
+                       samsung,pin-function = <3>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+       };
+
+       keypad@100A0000 {
+               samsung,keypad-num-rows = <3>;
+               samsung,keypad-num-columns = <2>;
+               linux,keypad-no-autorepeat;
+               linux,keypad-wakeup;
+               pinctrl-0 = <&keypad_rows &keypad_cols>;
+               pinctrl-names = "default";
+               status = "okay";
+
+               key_home {
+                       keypad,row = <0>;
+                       keypad,column = <0>;
+                       linux,code = <102>;
+               };
+
+               key_down {
+                       keypad,row = <0>;
+                       keypad,column = <1>;
+                       linux,code = <108>;
+               };
+
+               key_up {
+                       keypad,row = <1>;
+                       keypad,column = <0>;
+                       linux,code = <103>;
+               };
+
+               key_menu {
+                       keypad,row = <1>;
+                       keypad,column = <1>;
+                       linux,code = <139>;
+               };
+
+               key_back {
+                       keypad,row = <2>;
+                       keypad,column = <0>;
+                       linux,code = <158>;
+               };
+
+               key_enter {
+                       keypad,row = <2>;
+                       keypad,column = <1>;
+                       linux,code = <28>;
+               };
+       };
+
+       g2d@10800000 {
+               status = "okay";
+       };
+
        sdhci@12530000 {
                bus-width = <4>;
                pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>;
index dd564310d4a53ed1406330ce1dcae924d4ac2499..a8ba195c41ac5896bcceefebb9ac2b3b0eab6f78 100644 (file)
                status = "okay";
        };
 
-       g2d@10800000 {
+       pinctrl@11000000 {
+               keypad_rows: keypad-rows {
+                       samsung,pins = "gpx2-0", "gpx2-1", "gpx2-2";
+                       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 = <3>;
+               samsung,keypad-num-columns = <8>;
+               linux,keypad-no-autorepeat;
+               linux,keypad-wakeup;
+               pinctrl-0 = <&keypad_rows &keypad_cols>;
+               pinctrl-names = "default";
                status = "okay";
+
+               key_1 {
+                       keypad,row = <1>;
+                       keypad,column = <3>;
+                       linux,code = <2>;
+               };
+
+               key_2 {
+                       keypad,row = <1>;
+                       keypad,column = <4>;
+                       linux,code = <3>;
+               };
+
+               key_3 {
+                       keypad,row = <1>;
+                       keypad,column = <5>;
+                       linux,code = <4>;
+               };
+
+               key_4 {
+                       keypad,row = <1>;
+                       keypad,column = <6>;
+                       linux,code = <5>;
+               };
+
+               key_5 {
+                       keypad,row = <1>;
+                       keypad,column = <7>;
+                       linux,code = <6>;
+               };
+
+               key_A {
+                       keypad,row = <2>;
+                       keypad,column = <6>;
+                       linux,code = <30>;
+               };
+
+               key_B {
+                       keypad,row = <2>;
+                       keypad,column = <7>;
+                       linux,code = <48>;
+               };
+
+               key_C {
+                       keypad,row = <0>;
+                       keypad,column = <5>;
+                       linux,code = <46>;
+               };
+
+               key_D {
+                       keypad,row = <2>;
+                       keypad,column = <5>;
+                       linux,code = <32>;
+               };
+
+               key_E {
+                       keypad,row = <0>;
+                       keypad,column = <7>;
+                       linux,code = <18>;
+               };
        };
 
        sdhci@12530000 {
index 099cec79e2ae43906c077b9500a12dcbb8d14ab8..704290f7c5c099243957ccfd8cccbd25448b88b1 100644 (file)
                        samsung,pin-drv = <3>;
                };
 
-               keypad_col0: keypad-col0 {
-                       samsung,pins = "gpl2-0";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               keypad_col1: keypad-col1 {
-                       samsung,pins = "gpl2-1";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               keypad_col2: keypad-col2 {
-                       samsung,pins = "gpl2-2";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               keypad_col3: keypad-col3 {
-                       samsung,pins = "gpl2-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               keypad_col4: keypad-col4 {
-                       samsung,pins = "gpl2-4";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               keypad_col5: keypad-col5 {
-                       samsung,pins = "gpl2-5";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               keypad_col6: keypad-col6 {
-                       samsung,pins = "gpl2-6";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               keypad_col7: keypad-col7 {
-                       samsung,pins = "gpl2-7";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
                cam_port_b: cam-port-b {
                        samsung,pins = "gpm0-0", "gpm0-1", "gpm0-2", "gpm0-3",
                                        "gpm0-4", "gpm0-5", "gpm0-6", "gpm0-7",
index e3380a7a285c103fd86c1121f0a73bded0536917..35cb2099d55e703d576ff0d50f4f96f8ba6f031e 100644 (file)
                pinctrl3 = &pinctrl_3;
        };
 
-       combiner:interrupt-controller@10440000 {
-               interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>,
-                            <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>,
-                            <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>,
-                            <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>,
-                            <0 16 0>, <0 17 0>, <0 18 0>, <0 19 0>;
-       };
-
        clock: clock-controller@0x10030000 {
                compatible = "samsung,exynos4412-clock";
                reg = <0x10030000 0x20000>;
@@ -77,6 +69,8 @@
                compatible = "samsung,exynos4212-g2d";
                reg = <0x10800000 0x1000>;
                interrupts = <0 89 0>;
+               clocks = <&clock 177>, <&clock 277>;
+               clock-names = "sclk_fimg2d", "fimg2d";
                status = "disabled";
        };
 };
index 02cfc76d002fb69fa0db98fa34e4ba112310acfa..c6db281a34307cbba22237fa658599c8c53af7dd 100644 (file)
                        clock-frequency = <24000000>;
                };
        };
+
+       dp-controller {
+               samsung,color-space = <0>;
+               samsung,dynamic-range = <0>;
+               samsung,ycbcr-coeff = <0>;
+               samsung,color-depth = <1>;
+               samsung,link-rate = <0x0a>;
+               samsung,lane-count = <4>;
+       };
+
+       fimd: fimd@14400000 {
+               display-timings {
+                       native-mode = <&timing0>;
+                       timing0: timing@0 {
+                               /* 2560x1600 DP panel */
+                               clock-frequency = <50000>;
+                               hactive = <2560>;
+                               vactive = <1600>;
+                               hfront-porch = <48>;
+                               hback-porch = <80>;
+                               hsync-len = <32>;
+                               vback-porch = <16>;
+                               vfront-porch = <8>;
+                               vsync-len = <6>;
+                       };
+               };
+       };
+
+       rtc {
+               status = "okay";
+       };
 };
index ded558bb0f3bb88219655656976134f6ac749810..724a22f9b1c8f732513321becc6c7f6e65f4cb7d 100644 (file)
                        samsung,pin-pud = <0>;
                        samaung,pin-drv = <0>;
                };
+
+               dp_hpd: dp_hpd {
+                       samsung,pins = "gpx0-7";
+                       samsung,pin-function = <3>;
+                       samsung,pin-pud = <0>;
+                       samaung,pin-drv = <0>;
+               };
        };
 
        pinctrl@13400000 {
index 3e0c792e2767e8e8e8ad1151963dd16c90135782..1e21200b6d85aaf020720e9ca22b78cab1fe7b29 100644 (file)
                };
        };
 
+       vdd:fixed-regulator@0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd-supply";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+       };
+
+       dbvdd:fixed-regulator@1 {
+               compatible = "regulator-fixed";
+               regulator-name = "dbvdd-supply";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       spkvdd:fixed-regulator@2 {
+               compatible = "regulator-fixed";
+               regulator-name = "spkvdd-supply";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+
        i2c@12C70000 {
                samsung,i2c-sda-delay = <100>;
                samsung,i2c-max-bus-freq = <20000>;
                };
 
                wm8994: wm8994@1a {
-                        compatible = "wlf,wm8994";
-                        reg = <0x1a>;
+                       compatible = "wlf,wm8994";
+                       reg = <0x1a>;
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       AVDD2-supply = <&vdd>;
+                       CPVDD-supply = <&vdd>;
+                       DBVDD-supply = <&dbvdd>;
+                       SPKVDD1-supply = <&spkvdd>;
+                       SPKVDD2-supply = <&spkvdd>;
                };
        };
 
                samsung,color-depth = <1>;
                samsung,link-rate = <0x0a>;
                samsung,lane-count = <4>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&dp_hpd>;
        };
 
        display-timings {
index d449feb7e1438256499c192fb687fdc110e930e0..05244f150dd94ed1d97604196d201eaecea96561 100644 (file)
                };
        };
 
+       rtc {
+               status = "okay";
+       };
+
        /*
         * On Snow we've got SIP WiFi and so can keep drive strengths low to
         * reduce EMI.
index fc9fb3d526e25aff898f4e226284e7204413d2ac..54a35e64c781f68136a002ed03c1369e0a146c86 100644 (file)
                pinctrl-0 = <&i2s2_bus>;
        };
 
+       usb@12000000 {
+               compatible = "samsung,exynos5250-dwusb3";
+               clocks = <&clock 286>;
+               clock-names = "usbdrd30";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               dwc3 {
+                       compatible = "synopsys,dwc3";
+                       reg = <0x12000000 0x10000>;
+                       interrupts = <0 72 0>;
+                       usb-phy = <&usb2_phy &usb3_phy>;
+               };
+       };
+
+       usb3_phy: usbphy@12100000 {
+               compatible = "samsung,exynos5250-usb3phy";
+               reg = <0x12100000 0x100>;
+               clocks = <&clock 1>, <&clock 286>;
+               clock-names = "ext_xtal", "usbdrd30";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               usbphy-sys {
+                       reg = <0x10040704 0x8>;
+               };
+       };
+
        usb@12110000 {
                compatible = "samsung,exynos4210-ehci";
                reg = <0x12110000 0x100>;
                clock-names = "usbhost";
        };
 
-       usbphy@12130000 {
+       usb2_phy: usbphy@12130000 {
                compatible = "samsung,exynos5250-usb2phy";
                reg = <0x12130000 0x100>;
                clocks = <&clock 1>, <&clock 285>;
                reg = <0x145b0000 0x1000>;
                interrupts = <10 3>;
                interrupt-parent = <&combiner>;
+               clocks = <&clock 342>;
+               clock-names = "dp";
                #address-cells = <1>;
                #size-cells = <0>;
 
index ef747b52b67411ecc23c613148fac985be6a2df6..f722a0263ac8b41ae4a8e1ba35312328a1f78e8a 100644 (file)
@@ -17,7 +17,7 @@
        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";
+               bootargs = "root=/dev/sda2 rw rootwait ignore_loglevel early_printk no_console_suspend mem=2048M@0x80000000 mem=6144M@0x100000000 console=ttySAC0,115200";
        };
 
        fixed-rate-clocks {
index f96de398c965d51989188941e3cfa32f6b4a6562..ba88cfd2486fa4db487dbd2db57606a6d042115a 100644 (file)
        compatible = "samsung,ssdk5440", "samsung,exynos5440";
 
        chosen {
-               bootargs = "root=/dev/sda2 rw rootwait ignore_loglevel early_printk no_console_suspend mem=2048M@0x80000000 console=ttySAC0,115200";
+               bootargs = "root=/dev/sda2 rw rootwait ignore_loglevel early_printk no_console_suspend mem=2048M@0x80000000 mem=6144M@0x100000000 console=ttySAC0,115200";
        };
 
-       spi {
-               status = "disabled";
+       spi_0: spi@D0000 {
+
+               flash: w25q128@0 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "winbond,w25q128";
+                       spi-max-frequency = <15625000>;
+                       reg = <0>;
+                       controller-data {
+                               samsung,spi-feedback-delay = <0>;
+                       };
+
+                       partition@00000 {
+                               label = "BootLoader";
+                               reg = <0x60000 0x80000>;
+                               read-only;
+                       };
+
+                       partition@e0000 {
+                               label = "Recovery-Kernel";
+                               reg = <0xe0000 0x300000>;
+                               read-only;
+                       };
+
+                       partition@3e0000 {
+                               label = "CRAM-FS";
+                               reg = <0x3e0000 0x700000>;
+                               read-only;
+                       };
+
+                       partition@ae0000 {
+                               label = "User-Data";
+                               reg = <0xae0000 0x520000>;
+                       };
+
+               };
+
        };
 
        fixed-rate-clocks {
index b7ffc4dfe2196ab7faca0a81552ab8b67160f559..bfcb907b7e3356aeca194d19f580bb97ed1b7be2 100644 (file)
 
        interrupt-parent = <&gic>;
 
+       aliases {
+               spi0 = &spi_0;
+       };
+
        clock: clock-controller@0x160000 {
                compatible = "samsung,exynos5440-clock";
                reg = <0x160000 0x1000>;
                #size-cells = <0>;
 
                cpu@0 {
+                       device_type = "cpu";
                        compatible = "arm,cortex-a15";
                        reg = <0>;
                };
                cpu@1 {
+                       device_type = "cpu";
                        compatible = "arm,cortex-a15";
                        reg = <1>;
                };
                cpu@2 {
+                       device_type = "cpu";
                        compatible = "arm,cortex-a15";
                        reg = <2>;
                };
                cpu@3 {
+                       device_type = "cpu";
                        compatible = "arm,cortex-a15";
                        reg = <3>;
                };
                interrupts = <0 57 0>;
                operating-points = <
                                /* KHz    uV */
+                               1500000 1100000
+                               1400000 1075000
+                               1300000 1050000
                                1200000 1025000
+                               1100000 1000000
                                1000000 975000
+                               900000  950000
                                800000  925000
                >;
        };
                clock-names = "uart", "clk_uart_baud0";
        };
 
-       spi {
-               compatible = "samsung,exynos4210-spi";
-               reg = <0xD0000 0x1000>;
+       spi_0: spi@D0000 {
+               compatible = "samsung,exynos5440-spi";
+               reg = <0xD0000 0x100>;
                interrupts = <0 4 0>;
-               tx-dma-channel = <&pdma0 5>; /* preliminary */
-               rx-dma-channel = <&pdma0 4>; /* preliminary */
                #address-cells = <1>;
                #size-cells = <0>;
+               samsung,spi-src-clk = <0>;
+               num-cs = <1>;
                clocks = <&clock 21>, <&clock 16>;
                clock-names = "spi", "spi_busclk0";
        };
                compatible = "arm,amba-bus";
                interrupt-parent = <&gic>;
                ranges;
-
-               pdma0: pdma@00121000 {
-                       compatible = "arm,pl330", "arm,primecell";
-                       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@00120000 {
-                       compatible = "arm,pl330", "arm,primecell";
-                       reg = <0x120000 0x1000>;
-                       interrupts = <0 47 0>;
-                       clocks = <&clock 8>;
-                       clock-names = "apb_pclk";
-                       #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
-               };
        };
 
        rtc {
                interrupts = <0 17 0>, <0 16 0>;
                clocks = <&clock 21>;
                clock-names = "rtc";
-               status = "disabled";
+       };
+
+       sata@210000 {
+               compatible = "snps,exynos5440-ahci";
+               reg = <0x210000 0x10000>;
+               interrupts = <0 30 0>;
+               clocks = <&clock 23>;
+               clock-names = "sata";
+       };
+
+       ohci@220000 {
+               compatible = "samsung,exynos5440-ohci";
+               reg = <0x220000 0x1000>;
+               interrupts = <0 29 0>;
+               clocks = <&clock 24>;
+               clock-names = "usbhost";
+       };
+
+       ehci@221000 {
+               compatible = "samsung,exynos5440-ehci";
+               reg = <0x221000 0x1000>;
+               interrupts = <0 29 0>;
+               clocks = <&clock 24>;
+               clock-names = "usbhost";
        };
 
        pcie@290000 {
index c0bc426952eacdbd46d3ccab4d0b6b8b656d9194..9db41b9d83588323ab7981d6144e56e6e94a2856 100644 (file)
@@ -9,7 +9,8 @@
  * http://www.gnu.org/copyleft/gpl.html
  */
 
-/include/ "dbx5x0.dtsi"
+#include <dt-bindings/interrupt-controller/irq.h>
+#include "dbx5x0.dtsi"
 
 / {
        memory {
@@ -27,7 +28,7 @@
                };
        };
 
-       soc-u9500 {
+       soc {
                uart@80120000 {
                        status = "okay";
                };
                                compatible = "tc3589x";
                                reg = <0x42>;
                                interrupt-parent = <&gpio6>;
-                               interrupts = <25 0x1>;
+                               interrupts = <25 IRQ_TYPE_EDGE_RISING>;
 
                                interrupt-controller;
                                #interrupt-cells = <2>;
 
                                tc3589x_gpio: tc3589x_gpio {
                                        compatible = "tc3589x-gpio";
-                                       interrupts = <0 0x1>;
+                                       interrupts = <0 IRQ_TYPE_EDGE_RISING>;
 
                                        interrupt-controller;
                                        #interrupt-cells = <2>;
                };
 
                i2c@80128000 {
-                       lp5521@0x33 {
-                               compatible = "lp5521";
+                       lp5521@33 {
+                               compatible = "national,lp5521";
                                reg = <0x33>;
+                               label = "lp5521_pri";
+                               clock-mode = /bits/ 8 <2>;
+                               chan0 {
+                                       led-cur = /bits/ 8 <0x2f>;
+                                       max-cur = /bits/ 8 <0x5f>;
+                               };
+                               chan1 {
+                                       led-cur = /bits/ 8 <0x2f>;
+                                       max-cur = /bits/ 8 <0x5f>;
+                               };
+                               chan2 {
+                                       led-cur = /bits/ 8 <0x2f>;
+                                       max-cur = /bits/ 8 <0x5f>;
+                               };
                        };
-
-                       lp5521@0x34 {
-                               compatible = "lp5521";
+                       lp5521@34 {
+                               compatible = "national,lp5521";
                                reg = <0x34>;
+                               label = "lp5521_sec";
+                               clock-mode = /bits/ 8 <2>;
+                               chan0 {
+                                       led-cur = /bits/ 8 <0x2f>;
+                                       max-cur = /bits/ 8 <0x5f>;
+                               };
+                               chan1 {
+                                       led-cur = /bits/ 8 <0x2f>;
+                                       max-cur = /bits/ 8 <0x5f>;
+                               };
+                               chan2 {
+                                       led-cur = /bits/ 8 <0x2f>;
+                                       max-cur = /bits/ 8 <0x5f>;
+                               };
                        };
-
-                       bh1780@0x29 {
+                       bh1780@29 {
                                compatible = "rohm,bh1780gli";
                                reg = <0x33>;
                        };
                // External Micro SD slot
                sdi0_per1@80126000 {
                        arm,primecell-periphid = <0x10480180>;
-                       max-frequency = <50000000>;
+                       max-frequency = <100000000>;
                        bus-width = <4>;
                        mmc-cap-sd-highspeed;
                        mmc-cap-mmc-highspeed;
                // WLAN SDIO channel
                sdi1_per2@80118000 {
                        arm,primecell-periphid = <0x10480180>;
-                       max-frequency = <50000000>;
+                       max-frequency = <100000000>;
                        bus-width = <4>;
 
                        status = "okay";
                // PoP:ed eMMC
                sdi2_per3@80005000 {
                        arm,primecell-periphid = <0x10480180>;
-                       max-frequency = <50000000>;
+                       max-frequency = <100000000>;
                        bus-width = <8>;
                        mmc-cap-mmc-highspeed;
 
                // On-board eMMC
                sdi4_per2@80114000 {
                        arm,primecell-periphid = <0x10480180>;
-                       max-frequency = <50000000>;
+                       max-frequency = <100000000>;
                        bus-width = <8>;
                        mmc-cap-mmc-highspeed;
                        vmmc-supply = <&ab8500_ldo_aux2_reg>;
                                                regulator-name = "V-MMC-SD";
                                        };
 
-                                       ab8500_ldo_initcore_reg: ab8500_ldo_initcore {
+                                       ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
                                                regulator-name = "V-INTCORE";
                                        };
 
                                                regulator-name = "V-AMIC1";
                                        };
 
-                                       ab8500_ldo_amamic2_reg: ab8500_ldo_amamic2 {
+                                       ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
                                                regulator-name = "V-AMIC2";
                                        };
 
index c2d2748159238a0f830fc452887792c9a39f2062..c6bb07df2d1dd3670e4cd49a199300eb5d178f78 100644 (file)
@@ -10,9 +10,9 @@
  */
 
 /dts-v1/;
-/include/ "dbx5x0.dtsi"
-/include/ "href.dtsi"
-/include/ "stuib.dtsi"
+#include "dbx5x0.dtsi"
+#include "href.dtsi"
+#include "stuib.dtsi"
 
 / {
        model = "ST-Ericsson HREF (pre-v60) platform with Device Tree";
@@ -24,7 +24,7 @@
                };
        };
 
-       soc-u9500 {
+       soc {
                prcmu@80157000 {
                        ab8500@5 {
                                ab8500-gpio {
@@ -41,7 +41,7 @@
                };
 
                i2c@80110000 {
-                       bu21013_tp@0x5c {
+                       bu21013_tp@5c {
                                reset-gpio = <&tc3589x_gpio 13 0x4>;
                        };
                };
index 2b587a74b8136f9d396deedffd9bd43c9bd28f54..3d580d6447f9e68a17abd5ab61ecea85b7272a6b 100644 (file)
@@ -10,9 +10,9 @@
  */
 
 /dts-v1/;
-/include/ "dbx5x0.dtsi"
-/include/ "href.dtsi"
-/include/ "stuib.dtsi"
+#include "dbx5x0.dtsi"
+#include "href.dtsi"
+#include "stuib.dtsi"
 
 / {
        model = "ST-Ericsson HREF (v60+) platform with Device Tree";
@@ -24,7 +24,7 @@
                };
        };
 
-       soc-u9500 {
+       soc {
                i2c@80110000 {
                        bu21013_tp@0x5c {
                                reset-gpio = <&gpio4 15 0x4>;
@@ -34,7 +34,7 @@
                // External Micro SD slot
                sdi0_per1@80126000 {
                        arm,primecell-periphid = <0x10480180>;
-                       max-frequency = <50000000>;
+                       max-frequency = <100000000>;
                        bus-width = <4>;
                        mmc-cap-sd-highspeed;
                        mmc-cap-mmc-highspeed;
@@ -48,7 +48,7 @@
                // WLAN SDIO channel
                sdi1_per2@80118000 {
                        arm,primecell-periphid = <0x10480180>;
-                       max-frequency = <50000000>;
+                       max-frequency = <100000000>;
                        bus-width = <4>;
 
                        status = "okay";
@@ -57,7 +57,7 @@
                // PoP:ed eMMC
                sdi2_per3@80005000 {
                        arm,primecell-periphid = <0x10480180>;
-                       max-frequency = <50000000>;
+                       max-frequency = <100000000>;
                        bus-width = <8>;
                        mmc-cap-mmc-highspeed;
 
@@ -67,7 +67,7 @@
                // On-board eMMC
                sdi4_per2@80114000 {
                        arm,primecell-periphid = <0x10480180>;
-                       max-frequency = <50000000>;
+                       max-frequency = <100000000>;
                        bus-width = <8>;
                        mmc-cap-mmc-highspeed;
                        vmmc-supply = <&ab8500_ldo_aux2_reg>;
                                                regulator-name = "V-MMC-SD";
                                        };
 
-                                       ab8500_ldo_initcore_reg: ab8500_ldo_initcore {
+                                       ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
                                                regulator-name = "V-INTCORE";
                                        };
 
                                                regulator-name = "V-AMIC1";
                                        };
 
-                                       ab8500_ldo_amamic2_reg: ab8500_ldo_amamic2 {
+                                       ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
                                                regulator-name = "V-AMIC2";
                                        };
 
index 73fd7d0887b52f4505d908902fd99aaf0fe941c8..587ceef81e45a5eeb6cb6da0ff5f643f29892669 100644 (file)
        };
 
        cpus {
-               cpu@0 {
-                       compatible = "arm,arm926ejs";
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       compatible = "arm,arm926ej-s";
+                       device_type = "cpu";
                };
        };
 
diff --git a/arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts b/arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts
new file mode 100644 (file)
index 0000000..e7ed978
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include "imx27-phytec-phycore-som.dts"
+
+/ {
+       model = "Phytec pcm970";
+       compatible = "phytec,imx27-pcm970", "phytec,imx27-pcm038", "fsl,imx27";
+};
+
+&cspi1 {
+       fsl,spi-num-chipselects = <2>;
+       cs-gpios = <&gpio4 28 0>, <&gpio4 27 0>;
+};
+
+&sdhci2 {
+       bus-width = <4>;
+       cd-gpios = <&gpio3 29 0>;
+       wp-gpios = <&gpio3 28 0>;
+       vmmc-supply = <&vmmc1_reg>;
+       status = "okay";
+};
+
+&uart1 {
+       fsl,uart-has-rtscts;
+};
+
+&uart2 {
+       fsl,uart-has-rtscts;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx27-phytec-phycore-som.dts b/arch/arm/boot/dts/imx27-phytec-phycore-som.dts
new file mode 100644 (file)
index 0000000..f010565
--- /dev/null
@@ -0,0 +1,179 @@
+/*
+ * Copyright 2012 Sascha Hauer, Pengutronix
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+#include "imx27.dtsi"
+
+/ {
+       model = "Phytec pcm038";
+       compatible = "phytec,imx27-pcm038", "fsl,imx27";
+
+       memory {
+               reg = <0x0 0x0>;
+       };
+
+       soc {
+               aipi@10000000 { /* aipi1 */
+                       serial@1000a000 {
+                               status = "okay";
+                       };
+
+                       i2c@1001d000 {
+                               clock-frequency = <400000>;
+                               status = "okay";
+                               at24@52 {
+                                       compatible = "at,24c32";
+                                       pagesize = <32>;
+                                       reg = <0x52>;
+                               };
+                               pcf8563@51 {
+                                       compatible = "nxp,pcf8563";
+                                       reg = <0x51>;
+                               };
+                               lm75@4a {
+                                       compatible = "national,lm75";
+                                       reg = <0x4a>;
+                               };
+                       };
+               };
+
+               aipi@10020000 { /* aipi2 */
+                       ethernet@1002b000 {
+                               phy-reset-gpios = <&gpio3 30 0>;
+                               status = "okay";
+                       };
+               };
+       };
+
+       nor_flash@c0000000 {
+               compatible = "cfi-flash";
+               bank-width = <2>;
+               reg = <0xc0000000 0x02000000>;
+               linux,mtd-name = "physmap-flash.0";
+               #address-cells = <1>;
+               #size-cells = <1>;
+       };
+};
+
+&cspi1 {
+       fsl,spi-num-chipselects = <1>;
+       cs-gpios = <&gpio4 28 0>;
+       status = "okay";
+
+       pmic: mc13783@0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "fsl,mc13783";
+               spi-max-frequency = <20000000>;
+               reg = <0>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <23 0x4>;
+               fsl,mc13xxx-uses-adc;
+               fsl,mc13xxx-uses-rtc;
+
+               regulators {
+                       sw1a_reg: sw1a {
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       sw1b_reg: sw1b {
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       sw2a_reg: sw2a {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       sw2b_reg: sw2b {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       sw3_reg: sw3 {
+                               regulator-min-microvolt = <5000000>;
+                               regulator-max-microvolt = <5000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       vaudio_reg: vaudio {
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       violo_reg: violo {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       viohi_reg: viohi {
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       vgen_reg: vgen {
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <1500000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       vcam_reg: vcam {
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                       };
+
+                       vrf1_reg: vrf1 {
+                               regulator-min-microvolt = <2775000>;
+                               regulator-max-microvolt = <2775000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       vrf2_reg: vrf2 {
+                               regulator-min-microvolt = <2775000>;
+                               regulator-max-microvolt = <2775000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       vmmc1_reg: vmmc1 {
+                               regulator-min-microvolt = <1600000>;
+                               regulator-max-microvolt = <3000000>;
+                       };
+
+                       gpo1_reg: gpo1 { };
+
+                       pwgt1spi_reg: pwgt1spi {
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&nfc {
+       nand-bus-width = <8>;
+       nand-ecc-mode = "hw";
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx27-phytec-phycore.dts b/arch/arm/boot/dts/imx27-phytec-phycore.dts
deleted file mode 100644 (file)
index fe64e3a..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright 2012 Sascha Hauer, Pengutronix
- *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
- *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-/dts-v1/;
-#include "imx27.dtsi"
-
-/ {
-       model = "Phytec pcm038";
-       compatible = "phytec,imx27-pcm038", "fsl,imx27";
-
-       memory {
-               reg = <0x0 0x0>;
-       };
-
-       soc {
-               aipi@10000000 { /* aipi1 */
-                       serial@1000a000 {
-                               fsl,uart-has-rtscts;
-                               status = "okay";
-                       };
-
-                       serial@1000b000 {
-                               fsl,uart-has-rtscts;
-                               status = "okay";
-                       };
-
-                       serial@1000c000 {
-                               fsl,uart-has-rtscts;
-                               status = "okay";
-                       };
-
-                       i2c@1001d000 {
-                               clock-frequency = <400000>;
-                               status = "okay";
-                               at24@52 {
-                                       compatible = "at,24c32";
-                                       pagesize = <32>;
-                                       reg = <0x52>;
-                               };
-                               pcf8563@51 {
-                                       compatible = "nxp,pcf8563";
-                                       reg = <0x51>;
-                               };
-                               lm75@4a {
-                                       compatible = "national,lm75";
-                                       reg = <0x4a>;
-                               };
-                       };
-               };
-
-               aipi@10020000 { /* aipi2 */
-                       ethernet@1002b000 {
-                               status = "okay";
-                       };
-               };
-       };
-
-       nor_flash@c0000000 {
-               compatible = "cfi-flash";
-               bank-width = <2>;
-               reg = <0xc0000000 0x02000000>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-       };
-};
-
-&nfc {
-       nand-bus-width = <8>;
-       nand-ecc-mode = "hw";
-       status = "okay";
-};
index 75bd11386516df223cec5e77cb9692a1545d9d7e..0695264ddf1b4bd7cf87b0c0f5dec096a744dbbc 100644 (file)
@@ -25,6 +25,9 @@
                gpio3 = &gpio4;
                gpio4 = &gpio5;
                gpio5 = &gpio6;
+               spi0 = &cspi1;
+               spi1 = &cspi2;
+               spi2 = &cspi3;
        };
 
        avic: avic-interrupt-controller@e0000000 {
                        reg = <0x10000000 0x20000>;
                        ranges;
 
+                       dma: dma@10001000 {
+                               compatible = "fsl,imx27-dma";
+                               reg = <0x10001000 0x1000>;
+                               interrupts = <32>;
+                               clocks = <&clks 50>, <&clks 70>;
+                               clock-names = "ipg", "ahb";
+                               #dma-cells = <1>;
+                               #dma-channels = <16>;
+                       };
+
                        wdog: wdog@10002000 {
                                compatible = "fsl,imx27-wdt", "fsl,imx21-wdt";
                                reg = <0x10002000 0x1000>;
                                clock-names = "ipg", "per";
                        };
 
+                       pwm0: pwm@10006000 {
+                               compatible = "fsl,imx27-pwm";
+                               reg = <0x10006000 0x1000>;
+                               interrupts = <23>;
+                               clocks = <&clks 34>, <&clks 61>;
+                               clock-names = "ipg", "per";
+                       };
+
                        uart1: serial@1000a000 {
                                compatible = "fsl,imx27-uart", "fsl,imx21-uart";
                                reg = <0x1000a000 0x1000>;
                                status = "disabled";
                        };
 
+                       sdhci1: sdhci@10013000 {
+                               compatible = "fsl,imx27-mmc", "fsl,imx21-mmc";
+                               reg = <0x10013000 0x1000>;
+                               interrupts = <11>;
+                               clocks = <&clks 30>, <&clks 60>;
+                               clock-names = "ipg", "per";
+                               dmas = <&dma 7>;
+                               dma-names = "rx-tx";
+                               status = "disabled";
+                       };
+
+                       sdhci2: sdhci@10014000 {
+                               compatible = "fsl,imx27-mmc", "fsl,imx21-mmc";
+                               reg = <0x10014000 0x1000>;
+                               interrupts = <10>;
+                               clocks = <&clks 29>, <&clks 60>;
+                               clock-names = "ipg", "per";
+                               dmas = <&dma 6>;
+                               dma-names = "rx-tx";
+                               status = "disabled";
+                       };
+
                        gpio1: gpio@10015000 {
                                compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
                                reg = <0x10015000 0x100>;
                                status = "disabled";
                        };
 
+                       sdhci3: sdhci@1001e000 {
+                               compatible = "fsl,imx27-mmc", "fsl,imx21-mmc";
+                               reg = <0x1001e000 0x1000>;
+                               interrupts = <9>;
+                               clocks = <&clks 28>, <&clks 60>;
+                               clock-names = "ipg", "per";
+                               dmas = <&dma 36>;
+                               dma-names = "rx-tx";
+                               status = "disabled";
+                       };
+
                        gpt6: timer@1001f000 {
                                compatible = "fsl,imx27-gpt", "fsl,imx1-gpt";
                                reg = <0x1001f000 0x1000>;
                        reg = <0x10020000 0x20000>;
                        ranges;
 
+                       coda: coda@10023000 {
+                               compatible = "fsl,imx27-vpu";
+                               reg = <0x10023000 0x0200>;
+                               interrupts = <53>;
+                               clocks = <&clks 57>, <&clks 66>;
+                               clock-names = "per", "ahb";
+                               iram = <&iram>;
+                       };
+
+                       clks: ccm@10027000{
+                               compatible = "fsl,imx27-ccm";
+                               reg = <0x10027000 0x1000>;
+                               #clock-cells = <1>;
+                       };
+
                        fec: ethernet@1002b000 {
                                compatible = "fsl,imx27-fec";
                                reg = <0x1002b000 0x4000>;
                                clock-names = "ipg", "ahb", "ptp";
                                status = "disabled";
                        };
-
-                       clks: ccm@10027000{
-                               compatible = "fsl,imx27-ccm";
-                               reg = <0x10027000 0x1000>;
-                               #clock-cells = <1>;
-                       };
                };
 
+               iram: iram@ffff4c00 {
+                       compatible = "mmio-sram";
+                       reg = <0xffff4c00 0xb400>;
+               };
 
                nfc: nand@d8000000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
-
                        compatible = "fsl,imx27-nand";
                        reg = <0xd8000000 0x1000>;
                        interrupts = <29>;
index 3d905d16cbec6f3d3a87f62b6e597b7fe7f67705..b602494c152b3a82a89c544adffb761cf2a64820 100644 (file)
 
                apbx@80040000 {
                        lradc@80050000 {
+                               fsl,lradc-touchscreen-wires = <4>;
                                status = "okay";
                        };
 
index 1594694532b96d845507d2700b3613dca5020b6d..94c4476972c3fe3b53e3a619981acce652cda8e5 100644 (file)
                                        fsl,voltage = <1>;
                                        fsl,pull-up = <0>;
                                };
+
+                               usb0_otg_cfa10036: otg-10036@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x0142 /* MX28_PAD_GPMI_READY0__USB0_ID */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+
                        };
 
                        ssp0: ssp@80010000 {
                };
 
                apbx@80040000 {
-                       pwm: pwm@80064000 {
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&pwm4_pins_a>;
-                               status = "okay";
-                       };
-
                        duart: serial@80074000 {
                                pinctrl-names = "default";
                                pinctrl-0 = <&duart_pins_b>;
                        i2c0: i2c@80058000 {
                                pinctrl-names = "default";
                                pinctrl-0 = <&i2c0_pins_b>;
+                               clock-frequency = <400000>;
                                status = "okay";
 
-                               ssd1307: oled@3c {
-                                       compatible = "solomon,ssd1307fb-i2c";
+                               ssd1306: oled@3c {
+                                       compatible = "solomon,ssd1306fb-i2c";
                                        reg = <0x3c>;
-                                       pwms = <&pwm 4 3000>;
                                        reset-gpios = <&gpio2 7 0>;
+                                       solomon,height = <32>;
+                                       solomon,width = <128>;
+                                       solomon,page-offset = <0>;
                                };
                        };
+
+                       usbphy0: usbphy@8007c000 {
+                               status = "okay";
+                       };
+               };
+       };
+
+       ahb@80080000 {
+               usb0: usb@80080000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&usb0_otg_cfa10036>;
+                       status = "okay";
                };
        };
 
index 063e62059890e4f07885e66f02327dd58123ed6c..04b2f769ffbd9c030bbd175376fe03fb2545b7dd 100644 (file)
@@ -33,7 +33,7 @@
                                                0x1163 /* MX28_PAD_LCD_D22__GPIO_1_22 */
                                                0x1173 /* MX28_PAD_LCD_D22__GPIO_1_23 */
                                                0x2153 /* MX28_PAD_SSP2_D5__GPIO_2_21 */
-                                               0x3173 /* MX28_PAD_LCD_RESET__GPIO_3_23 */
+                                               0x3053 /* MX28_PAD_AUART1_TX__GPIO_3_5 */
                                        >;
                                        fsl,drive-strength = <0>;
                                        fsl,voltage = <1>;
 
                apbx@80040000 {
                        pwm: pwm@80064000 {
-                               pinctrl-names = "default", "default";
-                               pinctrl-1 = <&pwm3_pins_b>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pwm3_pins_b>;
                                status = "okay";
                        };
 
                gpio-sck = <&gpio2 16 0>;
                gpio-mosi = <&gpio2 17 0>;
                gpio-miso = <&gpio2 18 0>;
-               cs-gpios = <&gpio3 23 0>;
+               cs-gpios = <&gpio3 5 0>;
                num-chipselects = <1>;
                #address-cells = <1>;
                #size-cells = <0>;
diff --git a/arch/arm/boot/dts/imx28-cfa10055.dts b/arch/arm/boot/dts/imx28-cfa10055.dts
new file mode 100644 (file)
index 0000000..1581112
--- /dev/null
@@ -0,0 +1,179 @@
+/*
+ * Copyright 2013 Crystalfontz America, Inc.
+ *                               Free Electrons
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*
+ * The CFA-10055 is an expansion board for the CFA-10036 module and
+ * CFA-10037, thus we need to include the CFA-10037 DTS.
+ */
+/include/ "imx28-cfa10037.dts"
+
+/ {
+       model = "Crystalfontz CFA-10055 Board";
+       compatible = "crystalfontz,cfa10055", "crystalfontz,cfa10037", "crystalfontz,cfa10036", "fsl,imx28";
+
+       apb@80000000 {
+               apbh@80000000 {
+                       pinctrl@80018000 {
+                               pinctrl-names = "default", "default";
+                               pinctrl-1 = <&hog_pins_cfa10055
+                                       &hog_pins_cfa10055_pullup>;
+
+                               hog_pins_cfa10055: hog-10055@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x3053 /* MX28_PAD_AUART1_TX__GPIO_3_5 */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+
+                               hog_pins_cfa10055_pullup: hog-10055-pullup@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x31e3 /* MX28_PAD_LCD_RESET__GPIO_3_30 */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <1>;
+                               };
+
+                               spi2_pins_cfa10055: spi2-cfa10055@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x2103 /* MX28_PAD_SSP2_SCK__GPIO_2_16 */
+                                               0x2113 /* MX28_PAD_SSP2_CMD__GPIO_2_17 */
+                                               0x2123 /* MX28_PAD_SSP2_D0__GPIO_2_18 */
+                                       >;
+                                       fsl,drive-strength = <1>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <1>;
+                               };
+
+                               lcdif_18bit_pins_cfa10055: lcdif-18bit@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x1000 /* MX28_PAD_LCD_D00__LCD_D0 */
+                                               0x1010 /* MX28_PAD_LCD_D01__LCD_D1 */
+                                               0x1020 /* MX28_PAD_LCD_D02__LCD_D2 */
+                                               0x1030 /* MX28_PAD_LCD_D03__LCD_D3 */
+                                               0x1040 /* MX28_PAD_LCD_D04__LCD_D4 */
+                                               0x1050 /* MX28_PAD_LCD_D05__LCD_D5 */
+                                               0x1060 /* MX28_PAD_LCD_D06__LCD_D6 */
+                                               0x1070 /* MX28_PAD_LCD_D07__LCD_D7 */
+                                               0x1080 /* MX28_PAD_LCD_D08__LCD_D8 */
+                                               0x1090 /* MX28_PAD_LCD_D09__LCD_D9 */
+                                               0x10a0 /* MX28_PAD_LCD_D10__LCD_D10 */
+                                               0x10b0 /* MX28_PAD_LCD_D11__LCD_D11 */
+                                               0x10c0 /* MX28_PAD_LCD_D12__LCD_D12 */
+                                               0x10d0 /* MX28_PAD_LCD_D13__LCD_D13 */
+                                               0x10e0 /* MX28_PAD_LCD_D14__LCD_D14 */
+                                               0x10f0 /* MX28_PAD_LCD_D15__LCD_D15 */
+                                               0x1100 /* MX28_PAD_LCD_D16__LCD_D16 */
+                                               0x1110 /* MX28_PAD_LCD_D17__LCD_D17 */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+
+                               lcdif_pins_cfa10055: lcdif-evk@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */
+                                               0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */
+                                               0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */
+                                               0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+                       };
+
+                       lcdif@80030000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&lcdif_18bit_pins_cfa10055
+                                            &lcdif_pins_cfa10055>;
+                               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>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+
+               apbx@80040000 {
+                       lradc@80050000 {
+                               fsl,lradc-touchscreen-wires = <4>;
+                               status = "okay";
+                       };
+
+                       pwm: pwm@80064000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pwm3_pins_b>;
+                               status = "okay";
+                       };
+               };
+       };
+
+       spi2 {
+               compatible = "spi-gpio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi2_pins_cfa10055>;
+               status = "okay";
+               gpio-sck = <&gpio2 16 0>;
+               gpio-mosi = <&gpio2 17 0>;
+               gpio-miso = <&gpio2 18 0>;
+               cs-gpios = <&gpio3 5 0>;
+               num-chipselects = <1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               hx8357: hx8357@0 {
+                       compatible = "himax,hx8357b", "himax,hx8357";
+                       reg = <0>;
+                       spi-max-frequency = <100000>;
+                       spi-cpol;
+                       spi-cpha;
+                       gpios-reset = <&gpio3 30 0>;
+               };
+       };
+
+       backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm 3 5000000>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <6>;
+       };
+};
diff --git a/arch/arm/boot/dts/imx28-cfa10057.dts b/arch/arm/boot/dts/imx28-cfa10057.dts
new file mode 100644 (file)
index 0000000..2da713c
--- /dev/null
@@ -0,0 +1,191 @@
+/*
+ * Copyright 2013 Crystalfontz America, Inc.
+ * Copyright 2012 Free Electrons
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*
+ * The CFA-10057 is an expansion board for the CFA-10036 module, thus we
+ * need to include the CFA-10036 DTS.
+ */
+/include/ "imx28-cfa10036.dts"
+
+/ {
+       model = "Crystalfontz CFA-10057 Board";
+       compatible = "crystalfontz,cfa10057", "crystalfontz,cfa10036", "fsl,imx28";
+
+       apb@80000000 {
+               apbh@80000000 {
+                       pinctrl@80018000 {
+                               pinctrl-names = "default", "default";
+                               pinctrl-1 = <&hog_pins_cfa10057
+                                       &hog_pins_cfa10057_pullup>;
+
+                               hog_pins_cfa10057: hog-10057@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x0073 /* MX28_PAD_GPMI_D7__GPIO_0_7 */
+                                               0x3053 /* MX28_PAD_AUART1_TX__GPIO_3_5 */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+
+                               hog_pins_cfa10057_pullup: hog-10057-pullup@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x2133 /* MX28_PAD_SSP2_D3__GPIO_2_19 */
+                                               0x3183 /* MX28_PAD_I2C0_SCL__GPIO_3_24 */
+                                               0x3193 /* MX28_PAD_I2C0_SDA__GPIO_3_25 */
+                                               0x31a3 /* MX28_PAD_SAIF_SDATA0__GPIO_3_26 */
+                                               0x31e3 /* MX28_PAD_LCD_RESET__GPIO_3_30 */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <1>;
+                               };
+
+                               lcdif_18bit_pins_cfa10057: lcdif-18bit@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x1000 /* MX28_PAD_LCD_D00__LCD_D0 */
+                                               0x1010 /* MX28_PAD_LCD_D01__LCD_D1 */
+                                               0x1020 /* MX28_PAD_LCD_D02__LCD_D2 */
+                                               0x1030 /* MX28_PAD_LCD_D03__LCD_D3 */
+                                               0x1040 /* MX28_PAD_LCD_D04__LCD_D4 */
+                                               0x1050 /* MX28_PAD_LCD_D05__LCD_D5 */
+                                               0x1060 /* MX28_PAD_LCD_D06__LCD_D6 */
+                                               0x1070 /* MX28_PAD_LCD_D07__LCD_D7 */
+                                               0x1080 /* MX28_PAD_LCD_D08__LCD_D8 */
+                                               0x1090 /* MX28_PAD_LCD_D09__LCD_D9 */
+                                               0x10a0 /* MX28_PAD_LCD_D10__LCD_D10 */
+                                               0x10b0 /* MX28_PAD_LCD_D11__LCD_D11 */
+                                               0x10c0 /* MX28_PAD_LCD_D12__LCD_D12 */
+                                               0x10d0 /* MX28_PAD_LCD_D13__LCD_D13 */
+                                               0x10e0 /* MX28_PAD_LCD_D14__LCD_D14 */
+                                               0x10f0 /* MX28_PAD_LCD_D15__LCD_D15 */
+                                               0x1100 /* MX28_PAD_LCD_D16__LCD_D16 */
+                                               0x1110 /* MX28_PAD_LCD_D17__LCD_D17 */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+
+                               lcdif_pins_cfa10057: lcdif-evk@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */
+                                               0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */
+                                               0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */
+                                               0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+                       };
+
+                       lcdif@80030000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&lcdif_18bit_pins_cfa10057
+                                            &lcdif_pins_cfa10057>;
+                               display = <&display>;
+                               status = "okay";
+
+                               display: display {
+                                       bits-per-pixel = <32>;
+                                       bus-width = <18>;
+
+                                       display-timings {
+                                               native-mode = <&timing0>;
+                                               timing0: timing0 {
+                                                       clock-frequency = <30000000>;
+                                                       hactive = <480>;
+                                                       vactive = <800>;
+                                                       hfront-porch = <12>;
+                                                       hback-porch = <2>;
+                                                       vfront-porch = <5>;
+                                                       vback-porch = <3>;
+                                                       hsync-len = <2>;
+                                                       vsync-len = <2>;
+                                                       hsync-active = <0>;
+                                                       vsync-active = <0>;
+                                                       de-active = <1>;
+                                                       pixelclk-active = <1>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+
+               apbx@80040000 {
+                       lradc@80050000 {
+                               fsl,lradc-touchscreen-wires = <4>;
+                               status = "okay";
+                       };
+
+                       pwm: pwm@80064000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pwm3_pins_b>;
+                               status = "okay";
+                       };
+
+                       i2c1: i2c@8005a000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&i2c1_pins_a>;
+                               status = "okay";
+                       };
+
+                       usbphy1: usbphy@8007e000 {
+                               status = "okay";
+                       };
+               };
+       };
+
+       ahb@80080000 {
+               usb1: usb@80090000 {
+                       vbus-supply = <&reg_usb1_vbus>;
+                       pinctrl-0 = <&usbphy1_pins_a>;
+                       pinctrl-names = "default";
+                       status = "okay";
+               };
+       };
+
+       regulators {
+               compatible = "simple-bus";
+
+               reg_usb1_vbus: usb1_vbus {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb1_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio0 7 1>;
+               };
+       };
+
+       ahb@80080000 {
+               mac0: ethernet@800f0000 {
+                       phy-mode = "rmii";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&mac0_pins_a>;
+                       phy-reset-gpios = <&gpio2 21 0>;
+                       phy-reset-duration = <100>;
+                       status = "okay";
+               };
+       };
+
+       backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm 3 5000000>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <7>;
+       };
+};
index 5aa44e05c9f5dd4df4204ea5af31601c234cf8ee..880df2f13be8d761d679e980e4e756dd9e401d91 100644 (file)
 
                        auart0: serial@8006a000 {
                                pinctrl-names = "default";
-                               pinctrl-0 = <&auart0_2pins_a>;
+                               pinctrl-0 = <&auart0_pins_a>;
+                               status = "okay";
+                       };
+
+                       auart1: serial@8006c000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&auart1_pins_a>;
+                               status = "okay";
+                       };
+
+                       auart2: serial@8006e000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&auart2_2pins_b>;
                                status = "okay";
                        };
                };
index 600f7cb51f3e58ae78f88649f3b52b12c170e5d1..195451bf7706e058d54377a95ea0e301f9440b63 100644 (file)
        };
 
        cpus {
-               cpu@0 {
-                       compatible = "arm,arm926ejs";
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       compatible = "arm,arm926ej-s";
+                       device_type = "cpu";
                };
        };
 
                                        fsl,pull-up = <0>;
                                };
 
+                               auart2_2pins_b: auart2-2pins@1 {
+                                       reg = <1>;
+                                       fsl,pinmux-ids = <
+                                               0x3080 /* MX28_PAD_AUART2_RX__AUART2_RX */
+                                               0x3090 /* MX28_PAD_AUART2_TX__AUART2_TX */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+
                                auart3_pins_a: auart3@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
                                        fsl,pull-up = <0>;
                                };
 
+                               auart3_2pins_b: auart3-2pins@1 {
+                                       reg = <1>;
+                                       fsl,pinmux-ids = <
+                                               0x30c0 /* MX28_PAD_AUART3_RX__AUART3_RX */
+                                               0x30d0 /* MX28_PAD_AUART3_TX__AUART3_TX */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+
+                               auart4_2pins_a: auart4@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               0x2181 /* MX28_PAD_SSP3_SCK__AUART4_TX */
+                                               0x2191 /* MX28_PAD_SSP3_MOSI__AUART4_RX */
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+
                                mac0_pins_a: mac0@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
                        };
 
                        digctl@8001c000 {
-                               compatible = "fsl,imx28-digctl";
+                               compatible = "fsl,imx28-digctl", "fsl,imx23-digctl";
                                reg = <0x8001c000 0x2000>;
                                interrupts = <89>;
                                status = "disabled";
index 2bcf6981d490b637d5fb9c62381c56c705498274..8f7f9ac0b989bb18f6e093929d5037a33db9a095 100644 (file)
        status = "okay";
 };
 
+&nfc {
+       nand-bus-width = <8>;
+       nand-ecc-mode = "hw";
+       nand-on-flash-bbt;
+       status = "okay";
+};
+
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3_2>;
index 53fdde69bbf4a1254d4119629398a6f4c64ec81b..25764b505a619c7e5ff943aa3e4c6769b1256e07 100644 (file)
                                };
                        };
 
+                       usbphy0: usbphy@0 {
+                               compatible = "usb-nop-xceiv";
+                               clocks = <&clks 124>;
+                               clock-names = "main_clk";
+                               status = "okay";
+                       };
+
                        usbotg: usb@73f80000 {
                                compatible = "fsl,imx51-usb", "fsl,imx27-usb";
                                reg = <0x73f80000 0x0200>;
                                interrupts = <18>;
+                               clocks = <&clks 108>;
+                               fsl,usbmisc = <&usbmisc 0>;
+                               fsl,usbphy = <&usbphy0>;
                                status = "disabled";
                        };
 
                                compatible = "fsl,imx51-usb", "fsl,imx27-usb";
                                reg = <0x73f80200 0x0200>;
                                interrupts = <14>;
+                               clocks = <&clks 108>;
+                               fsl,usbmisc = <&usbmisc 1>;
                                status = "disabled";
                        };
 
                                compatible = "fsl,imx51-usb", "fsl,imx27-usb";
                                reg = <0x73f80400 0x0200>;
                                interrupts = <16>;
+                               clocks = <&clks 108>;
+                               fsl,usbmisc = <&usbmisc 2>;
                                status = "disabled";
                        };
 
                                compatible = "fsl,imx51-usb", "fsl,imx27-usb";
                                reg = <0x73f80600 0x0200>;
                                interrupts = <17>;
+                               clocks = <&clks 108>;
+                               fsl,usbmisc = <&usbmisc 3>;
                                status = "disabled";
                        };
 
+                       usbmisc: usbmisc@73f80800 {
+                               #index-cells = <1>;
+                               compatible = "fsl,imx51-usbmisc";
+                               reg = <0x73f80800 0x200>;
+                               clocks = <&clks 108>;
+                       };
+
                        gpio1: gpio@73f84000 {
                                compatible = "fsl,imx51-gpio", "fsl,imx35-gpio";
                                reg = <0x73f84000 0x4000>;
diff --git a/arch/arm/boot/dts/imx53-m53evk.dts b/arch/arm/boot/dts/imx53-m53evk.dts
new file mode 100644 (file)
index 0000000..7d304d0
--- /dev/null
@@ -0,0 +1,259 @@
+/*
+ * Copyright (C) 2013 Marek Vasut <marex@denx.de>
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+#include "imx53.dtsi"
+
+/ {
+       model = "DENX M53EVK";
+       compatible = "denx,imx53-m53evk", "fsl,imx53";
+
+       memory {
+               reg = <0x70000000 0x20000000>;
+       };
+
+       soc {
+               display@di1 {
+                       compatible = "fsl,imx-parallel-display";
+                       crtcs = <&ipu 1>;
+                       interface-pix-fmt = "bgr666";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_ipu_disp2_1>;
+
+                       display-timings {
+                               800x480p60 {
+                                       native-mode;
+                                       clock-frequency = <31500000>;
+                                       hactive = <800>;
+                                       vactive = <480>;
+                                       hfront-porch = <40>;
+                                       hback-porch = <88>;
+                                       hsync-len = <128>;
+                                       vback-porch = <33>;
+                                       vfront-porch = <9>;
+                                       vsync-len = <3>;
+                                       vsync-active = <1>;
+                               };
+                       };
+               };
+       };
+
+       backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm1 0 3000>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <6>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pin_gpio>;
+
+               user1 {
+                       label = "user1";
+                       gpios = <&gpio2 8 0>;
+                       linux,default-trigger = "heartbeat";
+               };
+
+               user2 {
+                       label = "user2";
+                       gpios = <&gpio2 9 0>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       regulators {
+               compatible = "simple-bus";
+
+               reg_3p2v: 3p2v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "3P2V";
+                       regulator-min-microvolt = <3200000>;
+                       regulator-max-microvolt = <3200000>;
+                       regulator-always-on;
+               };
+       };
+
+       sound {
+               compatible = "fsl,imx53-m53evk-sgtl5000",
+                            "fsl,imx-audio-sgtl5000";
+               model = "imx53-m53evk-sgtl5000";
+               ssi-controller = <&ssi2>;
+               audio-codec = <&sgtl5000>;
+               audio-routing =
+                       "MIC_IN", "Mic Jack",
+                       "Mic Jack", "Mic Bias",
+                       "LINE_IN", "Line In Jack",
+                       "Headphone Jack", "HP_OUT",
+                       "Ext Spk", "LINE_OUT";
+               mux-int-port = <2>;
+               mux-ext-port = <4>;
+       };
+};
+
+&audmux {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_audmux_2>;
+       status = "okay";
+};
+
+&can1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can1_3>;
+       status = "okay";
+};
+
+&can2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can2_1>;
+       status = "okay";
+};
+
+&esdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_esdhc1_1>;
+       cd-gpios = <&gpio1 1 0>;
+       wp-gpios = <&gpio1 9 0>;
+       status = "okay";
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec_1>;
+       phy-mode = "rmii";
+       status = "okay";
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1_2>;
+       status = "okay";
+
+       sgtl5000: codec@0a {
+               compatible = "fsl,sgtl5000";
+               reg = <0x0a>;
+               VDDA-supply = <&reg_3p2v>;
+               VDDIO-supply = <&reg_3p2v>;
+               clocks = <&clks 150>;
+       };
+};
+
+&i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2_2>;
+       clock-frequency = <400000>;
+       status = "okay";
+
+       stmpe610@41 {
+               compatible = "st,stmpe610";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x41>;
+               id = <0>;
+               blocks = <0x5>;
+               interrupts = <6 0x0>;
+               interrupt-parent = <&gpio7>;
+               irq-trigger = <0x1>;
+
+               stmpe_touchscreen {
+                       compatible = "stmpe,ts";
+                       reg = <0>;
+                       ts,sample-time = <4>;
+                       ts,mod-12b = <1>;
+                       ts,ref-sel = <0>;
+                       ts,adc-freq = <1>;
+                       ts,ave-ctrl = <3>;
+                       ts,touch-det-delay = <3>;
+                       ts,settling = <4>;
+                       ts,fraction-z = <7>;
+                       ts,i-drive = <1>;
+               };
+       };
+
+       eeprom: eeprom@50 {
+               compatible = "atmel,24c128";
+               reg = <0x50>;
+               pagesize = <32>;
+       };
+
+       rtc: rtc@68 {
+               compatible = "stm,m41t62";
+               reg = <0x68>;
+       };
+};
+
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3_1>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       hog {
+               pinctrl_hog: hoggrp {
+                       fsl,pins = <
+                               MX53_PAD_GPIO_0__CCM_SSI_EXT1_CLK       0x80000000
+                               MX53_PAD_EIM_EB3__GPIO2_31              0x80000000
+                               MX53_PAD_PATA_DA_0__GPIO7_6             0x80000000
+                               MX53_PAD_DISP0_DAT8__PWM1_PWMO          0x5
+
+                       >;
+               };
+
+               led_pin_gpio: led_gpio@0 {
+                       fsl,pins = <
+                               MX53_PAD_PATA_DATA8__GPIO2_8            0x80000000
+                               MX53_PAD_PATA_DATA9__GPIO2_9            0x80000000
+                       >;
+               };
+       };
+};
+
+&nfc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_nand_1>;
+       nand-bus-width = <8>;
+       nand-ecc-mode = "hw";
+       status = "okay";
+};
+
+&pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm1_1>;
+       status = "okay";
+};
+
+&ssi2 {
+       fsl,mode = "i2s-slave";
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_2>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2_1>;
+       status = "okay";
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3_1>;
+       status = "okay";
+};
index 445a01119cc546869f49a8ce66bd1ba58d98768c..aaa33bc99f78fe6ea3877713482cc35203186868 100644 (file)
 / {
        model = "TQ MBa53 starter kit";
        compatible = "tq,mba53", "tq,tqma53", "fsl,imx53";
+
+       reg_backlight: fixed@0 {
+               compatible = "regulator-fixed";
+               regulator-name = "lcd-supply";
+               gpio = <&gpio2 5 0>;
+               startup-delay-us = <5000>;
+               enable-active-low;
+       };
+
+       backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm2 0 50000 0 0>;
+               brightness-levels = <0 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100>;
+               default-brightness-level = <10>;
+               enable-gpios = <&gpio7 7 0>;
+               power-supply = <&reg_backlight>;
+       };
+
+       disp1: display@disp1 {
+               compatible = "fsl,imx-parallel-display";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_disp1_1>;
+               crtcs = <&ipu 1>;
+               interface-pix-fmt = "rgb24";
+               status = "disabled";
+       };
+
+       reg_3p2v: 3p2v {
+               compatible = "regulator-fixed";
+               regulator-name = "3P2V";
+               regulator-min-microvolt = <3200000>;
+               regulator-max-microvolt = <3200000>;
+               regulator-always-on;
+       };
+
+       sound {
+               compatible = "tq,imx53-mba53-sgtl5000",
+                            "fsl,imx-audio-sgtl5000";
+               model = "imx53-mba53-sgtl5000";
+               ssi-controller = <&ssi2>;
+               audio-codec = <&codec>;
+               audio-routing =
+                       "MIC_IN", "Mic Jack",
+                       "Mic Jack", "Mic Bias",
+                       "Headphone Jack", "HP_OUT";
+               mux-int-port = <2>;
+               mux-ext-port = <5>;
+       };
+};
+
+&ldb {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lvds1_1>;
+       status = "disabled";
 };
 
 &iomuxc {
        lvds1 {
                pinctrl_lvds1_1: lvds1-grp1 {
                        fsl,pins = <
-                               MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3 0x10000
-                               MX53_PAD_LVDS0_CLK_P__LDB_LVDS0_CLK 0x10000
-                               MX53_PAD_LVDS0_TX2_P__LDB_LVDS0_TX2 0x10000
-                               MX53_PAD_LVDS0_TX1_P__LDB_LVDS0_TX1 0x10000
-                               MX53_PAD_LVDS0_TX0_P__LDB_LVDS0_TX0 0x10000
+                               MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3 0x80000000
+                               MX53_PAD_LVDS0_CLK_P__LDB_LVDS0_CLK 0x80000000
+                               MX53_PAD_LVDS0_TX2_P__LDB_LVDS0_TX2 0x80000000
+                               MX53_PAD_LVDS0_TX1_P__LDB_LVDS0_TX1 0x80000000
+                               MX53_PAD_LVDS0_TX0_P__LDB_LVDS0_TX0 0x80000000
                        >;
                };
 
                pinctrl_lvds1_2: lvds1-grp2 {
                        fsl,pins = <
-                               MX53_PAD_LVDS1_TX3_P__LDB_LVDS1_TX3 0x10000
-                               MX53_PAD_LVDS1_TX2_P__LDB_LVDS1_TX2 0x10000
-                               MX53_PAD_LVDS1_CLK_P__LDB_LVDS1_CLK 0x10000
-                               MX53_PAD_LVDS1_TX1_P__LDB_LVDS1_TX1 0x10000
-                               MX53_PAD_LVDS1_TX0_P__LDB_LVDS1_TX0 0x10000
+                               MX53_PAD_LVDS1_TX3_P__LDB_LVDS1_TX3 0x80000000
+                               MX53_PAD_LVDS1_TX2_P__LDB_LVDS1_TX2 0x80000000
+                               MX53_PAD_LVDS1_CLK_P__LDB_LVDS1_CLK 0x80000000
+                               MX53_PAD_LVDS1_TX1_P__LDB_LVDS1_TX1 0x80000000
+                               MX53_PAD_LVDS1_TX0_P__LDB_LVDS1_TX0 0x80000000
                        >;
                };
        };
        disp1 {
                pinctrl_disp1_1: disp1-grp1 {
                        fsl,pins = <
-                               MX53_PAD_EIM_DA10__IPU_DI1_PIN15   0x10000 /* DISP1_DRDY */
-                               MX53_PAD_EIM_D23__IPU_DI1_PIN2     0x10000 /* DISP1_HSYNC */
-                               MX53_PAD_EIM_EB3__IPU_DI1_PIN3     0x10000 /* DISP1_VSYNC */
-                               MX53_PAD_EIM_D26__IPU_DISP1_DAT_22 0x10000
-                               MX53_PAD_EIM_D27__IPU_DISP1_DAT_23 0x10000
-                               MX53_PAD_EIM_D30__IPU_DISP1_DAT_21 0x10000
-                               MX53_PAD_EIM_D31__IPU_DISP1_DAT_20 0x10000
-                               MX53_PAD_EIM_A24__IPU_DISP1_DAT_19 0x10000
-                               MX53_PAD_EIM_A23__IPU_DISP1_DAT_18 0x10000
-                               MX53_PAD_EIM_A22__IPU_DISP1_DAT_17 0x10000
-                               MX53_PAD_EIM_A21__IPU_DISP1_DAT_16 0x10000
-                               MX53_PAD_EIM_A20__IPU_DISP1_DAT_15 0x10000
-                               MX53_PAD_EIM_A19__IPU_DISP1_DAT_14 0x10000
-                               MX53_PAD_EIM_A18__IPU_DISP1_DAT_13 0x10000
-                               MX53_PAD_EIM_A17__IPU_DISP1_DAT_12 0x10000
-                               MX53_PAD_EIM_EB0__IPU_DISP1_DAT_11 0x10000
-                               MX53_PAD_EIM_EB1__IPU_DISP1_DAT_10 0x10000
-                               MX53_PAD_EIM_DA0__IPU_DISP1_DAT_9  0x10000
-                               MX53_PAD_EIM_DA1__IPU_DISP1_DAT_8  0x10000
-                               MX53_PAD_EIM_DA2__IPU_DISP1_DAT_7  0x10000
-                               MX53_PAD_EIM_DA3__IPU_DISP1_DAT_6  0x10000
-                               MX53_PAD_EIM_DA4__IPU_DISP1_DAT_5  0x10000
-                               MX53_PAD_EIM_DA5__IPU_DISP1_DAT_4  0x10000
-                               MX53_PAD_EIM_DA6__IPU_DISP1_DAT_3  0x10000
-                               MX53_PAD_EIM_DA7__IPU_DISP1_DAT_2  0x10000
-                               MX53_PAD_EIM_DA8__IPU_DISP1_DAT_1  0x10000
-                               MX53_PAD_EIM_DA9__IPU_DISP1_DAT_0  0x10000
+                               MX53_PAD_EIM_A16__IPU_DI1_DISP_CLK 0x80000000 /* DISP1_CLK */
+                               MX53_PAD_EIM_DA10__IPU_DI1_PIN15   0x80000000 /* DISP1_DRDY */
+                               MX53_PAD_EIM_D23__IPU_DI1_PIN2     0x80000000 /* DISP1_HSYNC */
+                               MX53_PAD_EIM_EB3__IPU_DI1_PIN3     0x80000000 /* DISP1_VSYNC */
+                               MX53_PAD_EIM_D26__IPU_DISP1_DAT_22 0x80000000
+                               MX53_PAD_EIM_D27__IPU_DISP1_DAT_23 0x80000000
+                               MX53_PAD_EIM_D30__IPU_DISP1_DAT_21 0x80000000
+                               MX53_PAD_EIM_D31__IPU_DISP1_DAT_20 0x80000000
+                               MX53_PAD_EIM_A24__IPU_DISP1_DAT_19 0x80000000
+                               MX53_PAD_EIM_A23__IPU_DISP1_DAT_18 0x80000000
+                               MX53_PAD_EIM_A22__IPU_DISP1_DAT_17 0x80000000
+                               MX53_PAD_EIM_A21__IPU_DISP1_DAT_16 0x80000000
+                               MX53_PAD_EIM_A20__IPU_DISP1_DAT_15 0x80000000
+                               MX53_PAD_EIM_A19__IPU_DISP1_DAT_14 0x80000000
+                               MX53_PAD_EIM_A18__IPU_DISP1_DAT_13 0x80000000
+                               MX53_PAD_EIM_A17__IPU_DISP1_DAT_12 0x80000000
+                               MX53_PAD_EIM_EB0__IPU_DISP1_DAT_11 0x80000000
+                               MX53_PAD_EIM_EB1__IPU_DISP1_DAT_10 0x80000000
+                               MX53_PAD_EIM_DA0__IPU_DISP1_DAT_9  0x80000000
+                               MX53_PAD_EIM_DA1__IPU_DISP1_DAT_8  0x80000000
+                               MX53_PAD_EIM_DA2__IPU_DISP1_DAT_7  0x80000000
+                               MX53_PAD_EIM_DA3__IPU_DISP1_DAT_6  0x80000000
+                               MX53_PAD_EIM_DA4__IPU_DISP1_DAT_5  0x80000000
+                               MX53_PAD_EIM_DA5__IPU_DISP1_DAT_4  0x80000000
+                               MX53_PAD_EIM_DA6__IPU_DISP1_DAT_3  0x80000000
+                               MX53_PAD_EIM_DA7__IPU_DISP1_DAT_2  0x80000000
+                               MX53_PAD_EIM_DA8__IPU_DISP1_DAT_1  0x80000000
+                               MX53_PAD_EIM_DA9__IPU_DISP1_DAT_0  0x80000000
+                       >;
+               };
+       };
+
+       tve {
+               pinctrl_vga_sync_1: vgasync-grp1 {
+                       fsl,pins = <
+                               /* VGA_VSYNC, HSYNC with max drive strength */
+                               MX53_PAD_EIM_CS1__IPU_DI1_PIN6     0xe6
+                               MX53_PAD_EIM_DA15__IPU_DI1_PIN4    0xe6
                        >;
                };
        };
        status = "okay";
 };
 
+&audmux {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_audmux_1>;
+};
+
 &i2c2 {
        codec: sgtl5000@a {
                compatible = "fsl,sgtl5000";
                reg = <0x0a>;
+               clocks = <&clks 150>;
+               VDDA-supply = <&reg_3p2v>;
+               VDDIO-supply = <&reg_3p2v>;
        };
 
        expander: pca9554@20 {
                compatible = "pca9554";
                reg = <0x20>;
                interrupts = <109>;
+               #gpio-cells = <2>;
+               gpio-controller;
        };
 
        sensor2: lm75@49 {
 };
 
 &fec {
+       phy-reset-gpios = <&gpio7 6 0>;
        status = "okay";
 };
 
        status = "okay";
 };
 
+&usbotg {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usbh1 {
+       status = "okay";
+};
+
 &uart1 {
        status = "okay";
 };
 
+&ssi2 {
+       fsl,mode = "i2s-slave";
+       status = "okay";
+};
+
 &uart2 {
        status = "okay";
 };
 &i2c3 {
        status = "okay";
 };
+
+&tve {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_vga_sync_1>;
+       ddc = <&i2c3>;
+       fsl,tve-mode = "vga";
+       fsl,hsync-pin = <4>;
+       fsl,vsync-pin = <6>;
+       status = "okay";
+};
index 8f0e9ae0e3e606d149b61722b9a9c5e7fe0e2a10..512a1f60825345b41241da26bb9ca68f5bf8854d 100644 (file)
                reg = <0x70000000 0x40000000>;
        };
 
+       display@di0 {
+               compatible = "fsl,imx-parallel-display";
+               crtcs = <&ipu 0>;
+               interface-pix-fmt = "rgb565";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_ipu_disp0_1>;
+               status = "disabled";
+               display-timings {
+                       claawvga {
+                               native-mode;
+                               clock-frequency = <27000000>;
+                               hactive = <800>;
+                               vactive = <480>;
+                               hback-porch = <40>;
+                               hfront-porch = <60>;
+                               vback-porch = <10>;
+                               vfront-porch = <10>;
+                               hsync-len = <20>;
+                               vsync-len = <10>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               de-active = <1>;
+                               pixelclk-active = <0>;
+                       };
+               };
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
 
                reg = <0x0a>;
                VDDA-supply = <&reg_3p2v>;
                VDDIO-supply = <&reg_3p2v>;
+               clocks = <&clks 150>;
        };
 };
 
        phy-reset-gpios = <&gpio7 6 0>;
        status = "okay";
 };
+
+&usbh1 {
+       status = "okay";
+};
+
+&usbotg {
+       status = "okay";
+};
index 38bed3ed7c1a169d3874d9a5721bb18e6f668da0..abd72af545bf0409ce9556afdb47dcffbf8fcea0 100644 (file)
@@ -35,7 +35,9 @@
 
 &esdhc2 {
        pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_esdhc2_1>;
+       pinctrl-0 = <&pinctrl_esdhc2_1>,
+                   <&pinctrl_tqma53_esdhc2_2>;
+       vmmc-supply = <&reg_3p3v>;
        wp-gpios = <&gpio1 2 0>;
        cd-gpios = <&gpio1 4 0>;
        status = "disabled";
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_hog>;
 
+       esdhc2_2 {
+               pinctrl_tqma53_esdhc2_2: esdhc2-tqma53-grp2 {
+                       fsl,pins = <
+                               MX53_PAD_GPIO_4__GPIO1_4        0x80000000 /* SD2_CD */
+                               MX53_PAD_GPIO_2__GPIO1_2        0x80000000 /* SD2_WP */
+                       >;
+               };
+       };
+
        i2s {
                pinctrl_i2s_1: i2s-grp1 {
                        fsl,pins = <
-                                MX53_PAD_GPIO_19__GPIO4_5           0x10000 /* I2S_MCLK */
-                                MX53_PAD_KEY_COL0__AUDMUX_AUD5_TXC  0x10000 /* I2S_SCLK */
-                                MX53_PAD_KEY_ROW0__AUDMUX_AUD5_TXD  0x10000 /* I2S_DOUT */
-                                MX53_PAD_KEY_COL1__AUDMUX_AUD5_TXFS 0x10000 /* I2S_LRCLK */
-                                MX53_PAD_KEY_ROW1__AUDMUX_AUD5_RXD  0x10000 /* I2S_DIN */
+                                MX53_PAD_KEY_COL0__AUDMUX_AUD5_TXC  0x80000000 /* I2S_SCLK */
+                                MX53_PAD_KEY_ROW0__AUDMUX_AUD5_TXD  0x80000000 /* I2S_DOUT */
+                                MX53_PAD_KEY_COL1__AUDMUX_AUD5_TXFS 0x80000000 /* I2S_LRCLK */
+                                MX53_PAD_KEY_ROW1__AUDMUX_AUD5_RXD  0x80000000 /* I2S_DIN */
                        >;
                };
        };
        hog {
                pinctrl_hog: hoggrp {
                        fsl,pins = <
-                                MX53_PAD_EIM_CS1__IPU_DI1_PIN6  0x10000 /* VSYNC */
-                                MX53_PAD_EIM_DA15__IPU_DI1_PIN4 0x10000 /* HSYNC */
-                                MX53_PAD_PATA_DA_1__GPIO7_7     0x10000 /* LCD_BLT_EN */
-                                MX53_PAD_PATA_DA_2__GPIO7_8     0x10000 /* LCD_RESET */
-                                MX53_PAD_PATA_DATA5__GPIO2_5    0x10000 /* LCD_POWER */
-                                MX53_PAD_PATA_DATA6__GPIO2_6    0x10000 /* PMIC_INT */
-                                MX53_PAD_PATA_DATA14__GPIO2_14  0x10000 /* CSI_RST */
-                                MX53_PAD_PATA_DATA15__GPIO2_15  0x10000 /* CSI_PWDN */
-                                MX53_PAD_GPIO_0__GPIO1_0        0x10000 /* SYSTEM_DOWN */
-                                MX53_PAD_GPIO_3__GPIO1_3        0x10000
+                                MX53_PAD_GPIO_0__CCM_SSI_EXT1_CLK 0x80000000 /* SSI_MCLK */
+                                MX53_PAD_PATA_DA_1__GPIO7_7     0x80000000 /* LCD_BLT_EN */
+                                MX53_PAD_PATA_DA_2__GPIO7_8     0x80000000 /* LCD_RESET */
+                                MX53_PAD_PATA_DATA5__GPIO2_5    0x80000000 /* LCD_POWER */
+                                MX53_PAD_PATA_DATA6__GPIO2_6    0x80000000 /* PMIC_INT */
+                                MX53_PAD_PATA_DATA14__GPIO2_14  0x80000000 /* CSI_RST */
+                                MX53_PAD_PATA_DATA15__GPIO2_15  0x80000000 /* CSI_PWDN */
+                                MX53_PAD_GPIO_19__GPIO4_5       0x80000000 /* #SYSTEM_DOWN */
+                                MX53_PAD_GPIO_3__GPIO1_3        0x80000000
+                                MX53_PAD_PATA_DA_0__GPIO7_6     0x80000000 /* #PHY_RESET */
+                                MX53_PAD_GPIO_1__PWM2_PWMO      0x80000000 /* LCD_CONTRAST */
                        >;
                };
        };
                reg = <0x8>;
                fsl,mc13xxx-uses-rtc;
                interrupt-parent = <&gpio2>;
-               interrupts = <6 8>; /* PDATA_DATA6, low active */
+               interrupts = <6 4>; /* PATA_DATA6, active high */
        };
 
        sensor1: lm75@48 {
diff --git a/arch/arm/boot/dts/imx53-tx53.dtsi b/arch/arm/boot/dts/imx53-tx53.dtsi
new file mode 100644 (file)
index 0000000..f494766
--- /dev/null
@@ -0,0 +1,122 @@
+/*
+ * Copyright 2013 Steffen Trumtrar <s.trumtrar@pengutronix.de>
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/include/ "imx53.dtsi"
+
+/ {
+       model = "Ka-Ro TX53";
+       compatible = "karo,tx53", "fsl,imx53";
+
+       memory {
+               reg = <0x70000000 0x40000000>; /* Up to 1GiB */
+       };
+
+       regulators {
+               compatible = "simple-bus";
+
+               reg_3p3v: 3p3v {
+                       compatible = "regulator-fixed";
+                       regulator-name = "3P3V";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+       };
+};
+
+&can1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can1_2>;
+       status = "disabled";
+};
+
+&can2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can2_1>;
+       status = "disabled";
+};
+
+&ecspi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1_2>;
+       status = "disabled";
+};
+
+&esdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_esdhc1_2>;
+       status = "disabled";
+};
+
+&esdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_esdhc2_1>;
+       status = "disabled";
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec_1>;
+       phy-mode = "rmii";
+       status = "disabled";
+};
+
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3_2>;
+       status = "disabled";
+};
+
+&owire {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_owire_1>;
+       status = "disabled";
+};
+
+&pwm2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm2_1>;
+       status = "disabled";
+};
+
+&ssi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_audmux_1>;
+       status = "disabled";
+};
+
+&ssi2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_audmux_2>;
+       status = "disabled";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_2>,
+                   <&pinctrl_uart1_3>;
+       fsl,uart-has-rtscts;
+       status = "disabled";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2_2>;
+       fsl,uart-has-rtscts;
+       status = "disabled";
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3_1>;
+       fsl,uart-has-rtscts;
+       status = "disabled";
+};
index eb83aa039b8b91bd44655322bb19a850f2b26039..3895fbba8fce7fff6302f9b30deb72049c24f003 100644 (file)
@@ -27,6 +27,9 @@
                gpio4 = &gpio5;
                gpio5 = &gpio6;
                gpio6 = &gpio7;
+               i2c0 = &i2c1;
+               i2c1 = &i2c2;
+               i2c2 = &i2c3;
        };
 
        tzic: tz-interrupt-controller@0fffc000 {
                                };
                        };
 
+                       usbphy0: usbphy@0 {
+                               compatible = "usb-nop-xceiv";
+                               clocks = <&clks 124>;
+                               clock-names = "main_clk";
+                               status = "okay";
+                       };
+
+                       usbphy1: usbphy@1 {
+                               compatible = "usb-nop-xceiv";
+                               clocks = <&clks 125>;
+                               clock-names = "main_clk";
+                               status = "okay";
+                       };
+
                        usbotg: usb@53f80000 {
                                compatible = "fsl,imx53-usb", "fsl,imx27-usb";
                                reg = <0x53f80000 0x0200>;
                                interrupts = <18>;
+                               clocks = <&clks 108>;
+                               fsl,usbmisc = <&usbmisc 0>;
+                               fsl,usbphy = <&usbphy0>;
                                status = "disabled";
                        };
 
                                compatible = "fsl,imx53-usb", "fsl,imx27-usb";
                                reg = <0x53f80200 0x0200>;
                                interrupts = <14>;
+                               clocks = <&clks 108>;
+                               fsl,usbmisc = <&usbmisc 1>;
+                               fsl,usbphy = <&usbphy1>;
                                status = "disabled";
                        };
 
                                compatible = "fsl,imx53-usb", "fsl,imx27-usb";
                                reg = <0x53f80400 0x0200>;
                                interrupts = <16>;
+                               clocks = <&clks 108>;
+                               fsl,usbmisc = <&usbmisc 2>;
                                status = "disabled";
                        };
 
                                compatible = "fsl,imx53-usb", "fsl,imx27-usb";
                                reg = <0x53f80600 0x0200>;
                                interrupts = <17>;
+                               clocks = <&clks 108>;
+                               fsl,usbmisc = <&usbmisc 3>;
                                status = "disabled";
                        };
 
+                       usbmisc: usbmisc@53f80800 {
+                               #index-cells = <1>;
+                               compatible = "fsl,imx53-usbmisc";
+                               reg = <0x53f80800 0x200>;
+                               clocks = <&clks 108>;
+                       };
+
                        gpio1: gpio@53f84000 {
                                compatible = "fsl,imx53-gpio", "fsl,imx35-gpio";
                                reg = <0x53f84000 0x4000>;
                                                        MX53_PAD_KEY_ROW1__AUDMUX_AUD5_RXD  0x80000000
                                                >;
                                        };
+
+                                       pinctrl_audmux_2: audmuxgrp-2 {
+                                               fsl,pins = <
+                                                       MX53_PAD_SD2_DATA3__AUDMUX_AUD4_TXC     0x80000000
+                                                       MX53_PAD_SD2_DATA2__AUDMUX_AUD4_TXD     0x80000000
+                                                       MX53_PAD_SD2_DATA1__AUDMUX_AUD4_TXFS    0x80000000
+                                                       MX53_PAD_SD2_DATA0__AUDMUX_AUD4_RXD     0x80000000
+                                               >;
+                                       };
+
+                                       pinctrl_audmux_3: audmuxgrp-3 {
+                                               fsl,pins = <
+                                                       MX53_PAD_CSI0_DAT4__AUDMUX_AUD3_TXC     0x80000000
+                                                       MX53_PAD_CSI0_DAT5__AUDMUX_AUD3_TXD     0x80000000
+                                                       MX53_PAD_CSI0_DAT6__AUDMUX_AUD3_TXFS    0x80000000
+                                                       MX53_PAD_CSI0_DAT7__AUDMUX_AUD3_RXD     0x80000000
+                                               >;
+                                       };
                                };
 
                                fec {
                                                        MX53_PAD_FEC_TXD0__FEC_TDATA_0   0x80000000
                                                >;
                                        };
+
+                                       pinctrl_fec_2: fecgrp-2 {
+                                               fsl,pins = <
+                                                       MX53_PAD_FEC_MDC__FEC_MDC        0x80000000
+                                                       MX53_PAD_FEC_MDIO__FEC_MDIO      0x80000000
+                                                       MX53_PAD_FEC_REF_CLK__FEC_TX_CLK 0x80000000
+                                                       MX53_PAD_FEC_RX_ER__FEC_RX_ER    0x80000000
+                                                       MX53_PAD_FEC_CRS_DV__FEC_RX_DV   0x80000000
+                                                       MX53_PAD_FEC_RXD1__FEC_RDATA_1   0x80000000
+                                                       MX53_PAD_FEC_RXD0__FEC_RDATA_0   0x80000000
+                                                       MX53_PAD_FEC_TX_EN__FEC_TX_EN    0x80000000
+                                                       MX53_PAD_FEC_TXD1__FEC_TDATA_1   0x80000000
+                                                       MX53_PAD_FEC_TXD0__FEC_TDATA_0   0x80000000
+                                                       MX53_PAD_KEY_ROW1__FEC_COL       0x80000000
+                                                       MX53_PAD_KEY_COL3__FEC_CRS       0x80000000
+                                                       MX53_PAD_KEY_COL2__FEC_RDATA_2   0x80000000
+                                                       MX53_PAD_KEY_COL0__FEC_RDATA_3   0x80000000
+                                                       MX53_PAD_KEY_COL1__FEC_RX_CLK    0x80000000
+                                                       MX53_PAD_KEY_ROW2__FEC_TDATA_2   0x80000000
+                                                       MX53_PAD_GPIO_19__FEC_TDATA_3    0x80000000
+                                                       MX53_PAD_KEY_ROW0__FEC_TX_ER     0x80000000
+                                               >;
+                                       };
                                };
 
                                csi {
                                                        MX53_PAD_CSI0_PIXCLK__IPU_CSI0_PIXCLK   0x1d5
                                                >;
                                        };
+
+                                       pinctrl_csi_2: csigrp-2 {
+                                               fsl,pins = <
+                                                       MX53_PAD_CSI0_VSYNC__IPU_CSI0_VSYNC     0x1d5
+                                                       MX53_PAD_CSI0_MCLK__IPU_CSI0_HSYNC      0x1d5
+                                                       MX53_PAD_CSI0_PIXCLK__IPU_CSI0_PIXCLK   0x1d5
+                                                       MX53_PAD_CSI0_DAT19__IPU_CSI0_D_19      0x1d5
+                                                       MX53_PAD_CSI0_DAT18__IPU_CSI0_D_18      0x1d5
+                                                       MX53_PAD_CSI0_DAT17__IPU_CSI0_D_17      0x1d5
+                                                       MX53_PAD_CSI0_DAT16__IPU_CSI0_D_16      0x1d5
+                                                       MX53_PAD_CSI0_DAT15__IPU_CSI0_D_15      0x1d5
+                                                       MX53_PAD_CSI0_DAT14__IPU_CSI0_D_14      0x1d5
+                                                       MX53_PAD_CSI0_DAT13__IPU_CSI0_D_13      0x1d5
+                                                       MX53_PAD_CSI0_DAT12__IPU_CSI0_D_12      0x1d5
+                                               >;
+                                       };
                                };
 
                                cspi {
                                                        MX53_PAD_SD1_CLK__CSPI_SCLK   0x1d5
                                                >;
                                        };
+
+                                       pinctrl_cspi_2: cspigrp-2 {
+                                               fsl,pins = <
+                                                       MX53_PAD_EIM_D22__CSPI_MISO 0x1d5
+                                                       MX53_PAD_EIM_D28__CSPI_MOSI 0x1d5
+                                                       MX53_PAD_EIM_D21__CSPI_SCLK 0x1d5
+                                               >;
+                                       };
                                };
 
                                ecspi1 {
                                                        MX53_PAD_EIM_D18__ECSPI1_MOSI 0x80000000
                                                >;
                                        };
+
+                                       pinctrl_ecspi1_2: ecspi1grp-2 {
+                                               fsl,pins = <
+                                                       MX53_PAD_GPIO_19__ECSPI1_RDY    0x80000000
+                                                       MX53_PAD_EIM_EB2__ECSPI1_SS0    0x80000000
+                                                       MX53_PAD_EIM_D16__ECSPI1_SCLK   0x80000000
+                                                       MX53_PAD_EIM_D17__ECSPI1_MISO   0x80000000
+                                                       MX53_PAD_EIM_D18__ECSPI1_MOSI   0x80000000
+                                                       MX53_PAD_EIM_D19__ECSPI1_SS1    0x80000000
+                                               >;
+                                       };
+                               };
+
+                               ecspi2 {
+                                       pinctrl_ecspi2_1: ecspi2grp-1 {
+                                               fsl,pins = <
+                                                       MX53_PAD_EIM_OE__ECSPI2_MISO  0x80000000
+                                                       MX53_PAD_EIM_CS1__ECSPI2_MOSI 0x80000000
+                                                       MX53_PAD_EIM_CS0__ECSPI2_SCLK 0x80000000
+                                               >;
+                                       };
                                };
 
                                esdhc1 {
                                                        MX53_PAD_KEY_ROW2__CAN1_RXCAN 0x80000000
                                                >;
                                        };
+
+                                       pinctrl_can1_3: can1grp-3 {
+                                               fsl,pins = <
+                                                       MX53_PAD_GPIO_7__CAN1_TXCAN     0x80000000
+                                                       MX53_PAD_GPIO_8__CAN1_RXCAN     0x80000000
+                                               >;
+                                       };
                                };
 
                                can2 {
                                                        MX53_PAD_CSI0_DAT9__I2C1_SCL 0xc0000000
                                                >;
                                        };
+
+                                       pinctrl_i2c1_2: i2c1grp-2 {
+                                               fsl,pins = <
+                                                       MX53_PAD_EIM_D21__I2C1_SCL      0xc0000000
+                                                       MX53_PAD_EIM_D28__I2C1_SDA      0xc0000000
+                                               >;
+                                       };
                                };
 
                                i2c2 {
                                                        MX53_PAD_KEY_COL3__I2C2_SCL 0xc0000000
                                                >;
                                        };
+
+                                       pinctrl_i2c2_2: i2c2grp-2 {
+                                               fsl,pins = <
+                                                       MX53_PAD_EIM_D16__I2C2_SDA      0xc0000000
+                                                       MX53_PAD_EIM_EB2__I2C2_SCL      0xc0000000
+                                               >;
+                                       };
                                };
 
                                i2c3 {
                                        };
                                };
 
+                               ipu_disp0 {
+                                       pinctrl_ipu_disp0_1: ipudisp0grp-1 {
+                                               fsl,pins = <
+                                               MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK 0x5
+                                               MX53_PAD_DI0_PIN15__IPU_DI0_PIN15               0x5
+                                               MX53_PAD_DI0_PIN2__IPU_DI0_PIN2         0x5
+                                               MX53_PAD_DI0_PIN3__IPU_DI0_PIN3                 0x5
+                                               MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0            0x5
+                                               MX53_PAD_DISP0_DAT1__IPU_DISP0_DAT_1            0x5
+                                               MX53_PAD_DISP0_DAT2__IPU_DISP0_DAT_2            0x5
+                                               MX53_PAD_DISP0_DAT3__IPU_DISP0_DAT_3            0x5
+                                               MX53_PAD_DISP0_DAT4__IPU_DISP0_DAT_4            0x5
+                                               MX53_PAD_DISP0_DAT5__IPU_DISP0_DAT_5            0x5
+                                               MX53_PAD_DISP0_DAT6__IPU_DISP0_DAT_6            0x5
+                                               MX53_PAD_DISP0_DAT7__IPU_DISP0_DAT_7            0x5
+                                               MX53_PAD_DISP0_DAT8__IPU_DISP0_DAT_8            0x5
+                                               MX53_PAD_DISP0_DAT9__IPU_DISP0_DAT_9            0x5
+                                               MX53_PAD_DISP0_DAT10__IPU_DISP0_DAT_10          0x5
+                                               MX53_PAD_DISP0_DAT11__IPU_DISP0_DAT_11          0x5
+                                               MX53_PAD_DISP0_DAT12__IPU_DISP0_DAT_12          0x5
+                                               MX53_PAD_DISP0_DAT13__IPU_DISP0_DAT_13          0x5
+                                               MX53_PAD_DISP0_DAT14__IPU_DISP0_DAT_14          0x5
+                                               MX53_PAD_DISP0_DAT15__IPU_DISP0_DAT_15          0x5
+                                               MX53_PAD_DISP0_DAT16__IPU_DISP0_DAT_16          0x5
+                                               MX53_PAD_DISP0_DAT17__IPU_DISP0_DAT_17          0x5
+                                               MX53_PAD_DISP0_DAT18__IPU_DISP0_DAT_18          0x5
+                                               MX53_PAD_DISP0_DAT19__IPU_DISP0_DAT_19          0x5
+                                               MX53_PAD_DISP0_DAT20__IPU_DISP0_DAT_20          0x5
+                                               MX53_PAD_DISP0_DAT21__IPU_DISP0_DAT_21          0x5
+                                               MX53_PAD_DISP0_DAT22__IPU_DISP0_DAT_22          0x5
+                                               MX53_PAD_DISP0_DAT23__IPU_DISP0_DAT_23          0x5
+                                               >;
+                                       };
+                               };
+
+                               ipu_disp1 {
+                                       pinctrl_ipu_disp1_1: ipudisp1grp-1 {
+                                               fsl,pins = <
+                                                       MX53_PAD_EIM_DA9__IPU_DISP1_DAT_0       0x5
+                                                       MX53_PAD_EIM_DA8__IPU_DISP1_DAT_1       0x5
+                                                       MX53_PAD_EIM_DA7__IPU_DISP1_DAT_2       0x5
+                                                       MX53_PAD_EIM_DA6__IPU_DISP1_DAT_3       0x5
+                                                       MX53_PAD_EIM_DA5__IPU_DISP1_DAT_4       0x5
+                                                       MX53_PAD_EIM_DA4__IPU_DISP1_DAT_5       0x5
+                                                       MX53_PAD_EIM_DA3__IPU_DISP1_DAT_6       0x5
+                                                       MX53_PAD_EIM_DA2__IPU_DISP1_DAT_7       0x5
+                                                       MX53_PAD_EIM_DA1__IPU_DISP1_DAT_8       0x5
+                                                       MX53_PAD_EIM_DA0__IPU_DISP1_DAT_9       0x5
+                                                       MX53_PAD_EIM_EB1__IPU_DISP1_DAT_10      0x5
+                                                       MX53_PAD_EIM_EB0__IPU_DISP1_DAT_11      0x5
+                                                       MX53_PAD_EIM_A17__IPU_DISP1_DAT_12      0x5
+                                                       MX53_PAD_EIM_A18__IPU_DISP1_DAT_13      0x5
+                                                       MX53_PAD_EIM_A19__IPU_DISP1_DAT_14      0x5
+                                                       MX53_PAD_EIM_A20__IPU_DISP1_DAT_15      0x5
+                                                       MX53_PAD_EIM_A21__IPU_DISP1_DAT_16      0x5
+                                                       MX53_PAD_EIM_A22__IPU_DISP1_DAT_17      0x5
+                                                       MX53_PAD_EIM_A23__IPU_DISP1_DAT_18      0x5
+                                                       MX53_PAD_EIM_A24__IPU_DISP1_DAT_19      0x5
+                                                       MX53_PAD_EIM_D31__IPU_DISP1_DAT_20      0x5
+                                                       MX53_PAD_EIM_D30__IPU_DISP1_DAT_21      0x5
+                                                       MX53_PAD_EIM_D26__IPU_DISP1_DAT_22      0x5
+                                                       MX53_PAD_EIM_D27__IPU_DISP1_DAT_23      0x5
+                                                       MX53_PAD_EIM_A16__IPU_DI1_DISP_CLK      0x5
+                                                       MX53_PAD_EIM_DA13__IPU_DI1_D0_CS        0x5
+                                                       MX53_PAD_EIM_DA14__IPU_DI1_D1_CS        0x5
+                                                       MX53_PAD_EIM_DA15__IPU_DI1_PIN1         0x5
+                                                       MX53_PAD_EIM_DA11__IPU_DI1_PIN2         0x5
+                                                       MX53_PAD_EIM_DA12__IPU_DI1_PIN3         0x5
+                                                       MX53_PAD_EIM_A25__IPU_DI1_PIN12         0x5
+                                                       MX53_PAD_EIM_DA10__IPU_DI1_PIN15        0x5
+                                               >;
+                                       };
+                               };
+
+                               ipu_disp2 {
+                                       pinctrl_ipu_disp2_1: ipudisp2grp-1 {
+                                               fsl,pins = <
+                                                       MX53_PAD_LVDS0_TX0_P__LDB_LVDS0_TX0     0x80000000
+                                                       MX53_PAD_LVDS0_TX1_P__LDB_LVDS0_TX1     0x80000000
+                                                       MX53_PAD_LVDS0_TX2_P__LDB_LVDS0_TX2     0x80000000
+                                                       MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3     0x80000000
+                                                       MX53_PAD_LVDS0_CLK_P__LDB_LVDS0_CLK     0x80000000
+                                                       MX53_PAD_LVDS1_TX0_P__LDB_LVDS1_TX0     0x80000000
+                                                       MX53_PAD_LVDS1_TX1_P__LDB_LVDS1_TX1     0x80000000
+                                                       MX53_PAD_LVDS1_TX2_P__LDB_LVDS1_TX2     0x80000000
+                                                       MX53_PAD_LVDS1_TX3_P__LDB_LVDS1_TX3     0x80000000
+                                                       MX53_PAD_LVDS1_CLK_P__LDB_LVDS1_CLK     0x80000000
+                                               >;
+                                       };
+                               };
+
+                               nand {
+                                       pinctrl_nand_1: nandgrp-1 {
+                                               fsl,pins = <
+                                                       MX53_PAD_NANDF_WE_B__EMI_NANDF_WE_B     0x4
+                                                       MX53_PAD_NANDF_RE_B__EMI_NANDF_RE_B     0x4
+                                                       MX53_PAD_NANDF_CLE__EMI_NANDF_CLE       0x4
+                                                       MX53_PAD_NANDF_ALE__EMI_NANDF_ALE       0x4
+                                                       MX53_PAD_NANDF_WP_B__EMI_NANDF_WP_B     0xe0
+                                                       MX53_PAD_NANDF_RB0__EMI_NANDF_RB_0      0xe0
+                                                       MX53_PAD_NANDF_CS0__EMI_NANDF_CS_0      0x4
+                                                       MX53_PAD_PATA_DATA0__EMI_NANDF_D_0      0xa4
+                                                       MX53_PAD_PATA_DATA1__EMI_NANDF_D_1      0xa4
+                                                       MX53_PAD_PATA_DATA2__EMI_NANDF_D_2      0xa4
+                                                       MX53_PAD_PATA_DATA3__EMI_NANDF_D_3      0xa4
+                                                       MX53_PAD_PATA_DATA4__EMI_NANDF_D_4      0xa4
+                                                       MX53_PAD_PATA_DATA5__EMI_NANDF_D_5      0xa4
+                                                       MX53_PAD_PATA_DATA6__EMI_NANDF_D_6      0xa4
+                                                       MX53_PAD_PATA_DATA7__EMI_NANDF_D_7      0xa4
+                                               >;
+                                       };
+                               };
+
                                owire {
                                        pinctrl_owire_1: owiregrp-1 {
                                                fsl,pins = <
                                        };
                                };
 
+                               pwm1 {
+                                       pinctrl_pwm1_1: pwm1grp-1 {
+                                               fsl,pins = <
+                                                       MX53_PAD_DISP0_DAT8__PWM1_PWMO  0x5
+                                               >;
+                                       };
+                               };
+
+                               pwm2 {
+                                       pinctrl_pwm2_1: pwm2grp-1 {
+                                               fsl,pins = <
+                                                       MX53_PAD_GPIO_1__PWM2_PWMO      0x80000000
+                                               >;
+                                       };
+                               };
+
                                uart1 {
                                        pinctrl_uart1_1: uart1grp-1 {
                                                fsl,pins = <
                                                        MX53_PAD_PATA_DMACK__UART1_RXD_MUX 0x1c5
                                                >;
                                        };
+
+                                       pinctrl_uart1_3: uart1grp-3 {
+                                               fsl,pins = <
+                                                       MX53_PAD_PATA_RESET_B__UART1_CTS 0x1c5
+                                                       MX53_PAD_PATA_IORDY__UART1_RTS   0x1c5
+                                               >;
+                                       };
                                };
 
                                uart2 {
                                                        MX53_PAD_PATA_DMARQ__UART2_TXD_MUX     0x1c5
                                                >;
                                        };
+
+                                       pinctrl_uart2_2: uart2grp-2 {
+                                               fsl,pins = <
+                                                       MX53_PAD_PATA_BUFFER_EN__UART2_RXD_MUX  0x1c5
+                                                       MX53_PAD_PATA_DMARQ__UART2_TXD_MUX      0x1c5
+                                                       MX53_PAD_PATA_DIOR__UART2_RTS           0x1c5
+                                                       MX53_PAD_PATA_INTRQ__UART2_CTS          0x1c5
+                                               >;
+                                       };
                                };
 
                                uart3 {
                                                >;
                                        };
                                };
-
                        };
 
                        gpr: iomuxc-gpr@53fa8000 {
                                clock-names = "ipg", "ahb", "ptp";
                                status = "disabled";
                        };
+
+                       tve: tve@63ff0000 {
+                               compatible = "fsl,imx53-tve";
+                               reg = <0x63ff0000 0x1000>;
+                               interrupts = <92>;
+                               clocks = <&clks 69>, <&clks 116>;
+                               clock-names = "tve", "di_sel";
+                               crtcs = <&ipu 1>;
+                               status = "disabled";
+                       };
                };
        };
 };
index 7adcec360213833b25035c895aed4e002489b0b0..95da71185a4a737031f2fd4b815b6155cfb01211 100644 (file)
                        >;
                };
        };
+
+       ecspi1 {
+               pinctrl_ecspi1_sabreauto: ecspi1-sabreauto {
+                       fsl,pins = <
+                               MX6DL_PAD_EIM_D19__GPIO3_IO19  0x80000000
+                       >;
+               };
+       };
 };
index 7efb05db4783cfd553ee1d89ae78a46c1f69e165..8989df2b89e5e130d6f4a749c5ee66566540eed8 100644 (file)
@@ -29,6 +29,7 @@
                                MX6DL_PAD_NANDF_D1__GPIO2_IO01 0x80000000
                                MX6DL_PAD_NANDF_D2__GPIO2_IO02 0x80000000
                                MX6DL_PAD_NANDF_D3__GPIO2_IO03 0x80000000
+                               MX6DL_PAD_GPIO_0__CCM_CLKO1    0x130b0
                        >;
                };
        };
index 5bcdf3a90bb39f36493409f28da7b98fef1259f4..2b3ecd67935017eb694a4bc54741d059d115136b 100644 (file)
 
                cpu@0 {
                        compatible = "arm,cortex-a9";
+                       device_type = "cpu";
                        reg = <0>;
                        next-level-cache = <&L2>;
                };
 
                cpu@1 {
                        compatible = "arm,cortex-a9";
+                       device_type = "cpu";
                        reg = <1>;
                        next-level-cache = <&L2>;
                };
                                compatible = "fsl,imx6dl-iomuxc";
                                reg = <0x020e0000 0x4000>;
 
+                               audmux {
+                                       pinctrl_audmux_2: audmux-2 {
+                                               fsl,pins = <
+                                                       MX6DL_PAD_CSI0_DAT7__AUD3_RXD  0x80000000
+                                                       MX6DL_PAD_CSI0_DAT4__AUD3_TXC  0x80000000
+                                                       MX6DL_PAD_CSI0_DAT5__AUD3_TXD  0x80000000
+                                                       MX6DL_PAD_CSI0_DAT6__AUD3_TXFS 0x80000000
+                                               >;
+                                       };
+                               };
+
+                               ecspi1 {
+                                       pinctrl_ecspi1_1: ecspi1grp-1 {
+                                               fsl,pins = <
+                                                       MX6DL_PAD_EIM_D17__ECSPI1_MISO 0x100b1
+                                                       MX6DL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1
+                                                       MX6DL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1
+                                               >;
+                                       };
+                               };
+
                                enet {
                                        pinctrl_enet_1: enetgrp-1 {
                                                fsl,pins = <
                                        };
                                };
 
+                               gpmi-nand {
+                                       pinctrl_gpmi_nand_1: gpmi-nand-1 {
+                                               fsl,pins = <
+                                                       MX6DL_PAD_NANDF_CLE__NAND_CLE     0xb0b1
+                                                       MX6DL_PAD_NANDF_ALE__NAND_ALE     0xb0b1
+                                                       MX6DL_PAD_NANDF_WP_B__NAND_WP_B   0xb0b1
+                                                       MX6DL_PAD_NANDF_RB0__NAND_READY_B 0xb000
+                                                       MX6DL_PAD_NANDF_CS0__NAND_CE0_B   0xb0b1
+                                                       MX6DL_PAD_NANDF_CS1__NAND_CE1_B   0xb0b1
+                                                       MX6DL_PAD_SD4_CMD__NAND_RE_B      0xb0b1
+                                                       MX6DL_PAD_SD4_CLK__NAND_WE_B      0xb0b1
+                                                       MX6DL_PAD_NANDF_D0__NAND_DATA00   0xb0b1
+                                                       MX6DL_PAD_NANDF_D1__NAND_DATA01   0xb0b1
+                                                       MX6DL_PAD_NANDF_D2__NAND_DATA02   0xb0b1
+                                                       MX6DL_PAD_NANDF_D3__NAND_DATA03   0xb0b1
+                                                       MX6DL_PAD_NANDF_D4__NAND_DATA04   0xb0b1
+                                                       MX6DL_PAD_NANDF_D5__NAND_DATA05   0xb0b1
+                                                       MX6DL_PAD_NANDF_D6__NAND_DATA06   0xb0b1
+                                                       MX6DL_PAD_NANDF_D7__NAND_DATA07   0xb0b1
+                                                       MX6DL_PAD_SD4_DAT0__NAND_DQS      0x00b1
+                                               >;
+                                       };
+                               };
+
+                               i2c1 {
+                                       pinctrl_i2c1_2: i2c1grp-2 {
+                                               fsl,pins = <
+                                                       MX6DL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1
+                                                       MX6DL_PAD_CSI0_DAT9__I2C1_SCL 0x4001b8b1
+                                               >;
+                                       };
+                               };
+
                                uart1 {
                                        pinctrl_uart1_1: uart1grp-1 {
                                                fsl,pins = <
                                        };
                                };
 
+                               weim {
+                                       pinctrl_weim_cs0_1: weim_cs0grp-1 {
+                                               fsl,pins = <
+                                                       MX6DL_PAD_EIM_CS0__EIM_CS0_B   0xb0b1
+                                               >;
+                                       };
+
+                                       pinctrl_weim_nor_1: weim_norgrp-1 {
+                                               fsl,pins = <
+                                                       MX6DL_PAD_EIM_OE__EIM_OE_B     0xb0b1
+                                                       MX6DL_PAD_EIM_RW__EIM_RW       0xb0b1
+                                                       MX6DL_PAD_EIM_WAIT__EIM_WAIT_B 0xb060
+                                                       /* data */
+                                                       MX6DL_PAD_EIM_D16__EIM_DATA16 0x1b0b0
+                                                       MX6DL_PAD_EIM_D17__EIM_DATA17 0x1b0b0
+                                                       MX6DL_PAD_EIM_D18__EIM_DATA18 0x1b0b0
+                                                       MX6DL_PAD_EIM_D19__EIM_DATA19 0x1b0b0
+                                                       MX6DL_PAD_EIM_D20__EIM_DATA20 0x1b0b0
+                                                       MX6DL_PAD_EIM_D21__EIM_DATA21 0x1b0b0
+                                                       MX6DL_PAD_EIM_D22__EIM_DATA22 0x1b0b0
+                                                       MX6DL_PAD_EIM_D23__EIM_DATA23 0x1b0b0
+                                                       MX6DL_PAD_EIM_D24__EIM_DATA24 0x1b0b0
+                                                       MX6DL_PAD_EIM_D25__EIM_DATA25 0x1b0b0
+                                                       MX6DL_PAD_EIM_D26__EIM_DATA26 0x1b0b0
+                                                       MX6DL_PAD_EIM_D27__EIM_DATA27 0x1b0b0
+                                                       MX6DL_PAD_EIM_D28__EIM_DATA28 0x1b0b0
+                                                       MX6DL_PAD_EIM_D29__EIM_DATA29 0x1b0b0
+                                                       MX6DL_PAD_EIM_D30__EIM_DATA30 0x1b0b0
+                                                       MX6DL_PAD_EIM_D31__EIM_DATA31 0x1b0b0
+                                                       /* address */
+                                                       MX6DL_PAD_EIM_A23__EIM_ADDR23 0xb0b1
+                                                       MX6DL_PAD_EIM_A22__EIM_ADDR22 0xb0b1
+                                                       MX6DL_PAD_EIM_A21__EIM_ADDR21 0xb0b1
+                                                       MX6DL_PAD_EIM_A20__EIM_ADDR20 0xb0b1
+                                                       MX6DL_PAD_EIM_A19__EIM_ADDR19 0xb0b1
+                                                       MX6DL_PAD_EIM_A18__EIM_ADDR18 0xb0b1
+                                                       MX6DL_PAD_EIM_A17__EIM_ADDR17 0xb0b1
+                                                       MX6DL_PAD_EIM_A16__EIM_ADDR16 0xb0b1
+                                                       MX6DL_PAD_EIM_DA15__EIM_AD15  0xb0b1
+                                                       MX6DL_PAD_EIM_DA14__EIM_AD14  0xb0b1
+                                                       MX6DL_PAD_EIM_DA13__EIM_AD13  0xb0b1
+                                                       MX6DL_PAD_EIM_DA12__EIM_AD12  0xb0b1
+                                                       MX6DL_PAD_EIM_DA11__EIM_AD11  0xb0b1
+                                                       MX6DL_PAD_EIM_DA10__EIM_AD10  0xb0b1
+                                                       MX6DL_PAD_EIM_DA9__EIM_AD09   0xb0b1
+                                                       MX6DL_PAD_EIM_DA8__EIM_AD08   0xb0b1
+                                                       MX6DL_PAD_EIM_DA7__EIM_AD07   0xb0b1
+                                                       MX6DL_PAD_EIM_DA6__EIM_AD06   0xb0b1
+                                                       MX6DL_PAD_EIM_DA5__EIM_AD05   0xb0b1
+                                                       MX6DL_PAD_EIM_DA4__EIM_AD04   0xb0b1
+                                                       MX6DL_PAD_EIM_DA3__EIM_AD03   0xb0b1
+                                                       MX6DL_PAD_EIM_DA2__EIM_AD02   0xb0b1
+                                                       MX6DL_PAD_EIM_DA1__EIM_AD01   0xb0b1
+                                                       MX6DL_PAD_EIM_DA0__EIM_AD00   0xb0b1
+                                               >;
+                                       };
+
+                               };
 
                        };
 
diff --git a/arch/arm/boot/dts/imx6q-phytec-pbab01.dts b/arch/arm/boot/dts/imx6q-phytec-pbab01.dts
new file mode 100644 (file)
index 0000000..7d37ec6
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2013 Christian Hemp, Phytec Messtechnik GmbH
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+#include "imx6q-phytec-pfla02.dtsi"
+
+/ {
+       model = "Phytec phyFLEX-i.MX6 Quad Carrier-Board";
+       compatible = "phytec,imx6q-pbab01", "phytec,imx6q-pfla02", "fsl,imx6q";
+};
+
+&fec {
+       status = "okay";
+};
+
+&uart4 {
+       status = "okay";
+};
+
+&usdhc2 {
+       status = "okay";
+};
+
+&usdhc3 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi b/arch/arm/boot/dts/imx6q-phytec-pfla02.dtsi
new file mode 100644 (file)
index 0000000..f5e1981
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2013 Christian Hemp, Phytec Messtechnik GmbH
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+#include "imx6q.dtsi"
+
+/ {
+       model = "Phytec phyFLEX-i.MX6 Ouad";
+       compatible = "phytec,imx6q-pfla02", "fsl,imx6q";
+
+       memory {
+               reg = <0x10000000 0x80000000>;
+       };
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       hog {
+               pinctrl_hog: hoggrp {
+                       fsl,pins = <
+                               MX6Q_PAD_EIM_D23__GPIO3_IO23    0x80000000
+                       >;
+               };
+       };
+
+       pfla02 {
+               pinctrl_usdhc3_pfla02: usdhc3grp-pfla02 {
+                       fsl,pins = <
+                               MX6Q_PAD_ENET_RXD0__GPIO1_IO27  0x80000000
+                               MX6Q_PAD_ENET_TXD1__GPIO1_IO29  0x80000000
+                       >;
+               };
+       };
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet_3>;
+       phy-mode = "rgmii";
+       phy-reset-gpios = <&gpio3 23 0>;
+       status = "disabled";
+};
+
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4_1>;
+       status = "disabled";
+};
+
+&usdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc2_2>;
+       cd-gpios = <&gpio1 4 0>;
+       wp-gpios = <&gpio1 2 0>;
+       status = "disabled";
+};
+
+&usdhc3 {
+        pinctrl-names = "default";
+        pinctrl-0 = <&pinctrl_usdhc3_2
+                    &pinctrl_usdhc3_pfla02>;
+        cd-gpios = <&gpio1 27 0>;
+        wp-gpios = <&gpio1 29 0>;
+        status = "disabled";
+};
index 49d6f2831ec985f94c4c00e0fd97ce05db7326b3..09a75807bc6d2190fecbf1fb1f251978c8e8197e 100644 (file)
                        >;
                };
        };
+
+       ecspi1 {
+               pinctrl_ecspi1_sabreauto: ecspi1-sabreauto {
+                       fsl,pins = <
+                               MX6Q_PAD_EIM_D19__GPIO3_IO19  0x80000000
+                       >;
+               };
+       };
 };
index 442051350225a81b262083c132b5c099e54095c6..0038228c508cb2dd64a96ce30ee9e8512b1182ed 100644 (file)
@@ -33,6 +33,7 @@
                                MX6Q_PAD_NANDF_D1__GPIO2_IO01 0x80000000
                                MX6Q_PAD_NANDF_D2__GPIO2_IO02 0x80000000
                                MX6Q_PAD_NANDF_D3__GPIO2_IO03 0x80000000
+                               MX6Q_PAD_GPIO_0__CCM_CLKO1    0x130b0
                        >;
                };
        };
index 21e675848bd1e75a0568af6fae28f0264da05887..ba09dc32324e7a5c182880f099e6a6a3fe638f9d 100644 (file)
@@ -18,6 +18,7 @@
 
                cpu@0 {
                        compatible = "arm,cortex-a9";
+                       device_type = "cpu";
                        reg = <0>;
                        next-level-cache = <&L2>;
                        operating-points = <
 
                cpu@1 {
                        compatible = "arm,cortex-a9";
+                       device_type = "cpu";
                        reg = <1>;
                        next-level-cache = <&L2>;
                };
 
                cpu@2 {
                        compatible = "arm,cortex-a9";
+                       device_type = "cpu";
                        reg = <2>;
                        next-level-cache = <&L2>;
                };
 
                cpu@3 {
                        compatible = "arm,cortex-a9";
+                       device_type = "cpu";
                        reg = <3>;
                        next-level-cache = <&L2>;
                };
                                                        MX6Q_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
                                                >;
                                        };
+
+                                       pinctrl_enet_3: enetgrp-3 {
+                                               fsl,pins = <
+                                                       MX6Q_PAD_ENET_MDIO__ENET_MDIO       0x1b0b0
+                                                       MX6Q_PAD_ENET_MDC__ENET_MDC         0x1b0b0
+                                                       MX6Q_PAD_RGMII_TXC__RGMII_TXC       0x1b0b0
+                                                       MX6Q_PAD_RGMII_TD0__RGMII_TD0       0x1b0b0
+                                                       MX6Q_PAD_RGMII_TD1__RGMII_TD1       0x1b0b0
+                                                       MX6Q_PAD_RGMII_TD2__RGMII_TD2       0x1b0b0
+                                                       MX6Q_PAD_RGMII_TD3__RGMII_TD3       0x1b0b0
+                                                       MX6Q_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0
+                                                       MX6Q_PAD_ENET_REF_CLK__ENET_TX_CLK  0x1b0b0
+                                                       MX6Q_PAD_RGMII_RXC__RGMII_RXC       0x1b0b0
+                                                       MX6Q_PAD_RGMII_RD0__RGMII_RD0       0x1b0b0
+                                                       MX6Q_PAD_RGMII_RD1__RGMII_RD1       0x1b0b0
+                                                       MX6Q_PAD_RGMII_RD2__RGMII_RD2       0x1b0b0
+                                                       MX6Q_PAD_RGMII_RD3__RGMII_RD3       0x1b0b0
+                                                       MX6Q_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
+                                                       MX6Q_PAD_ENET_TX_EN__ENET_TX_EN     0x1b0b0
+                                               >;
+                                       };
                                };
 
                                gpmi-nand {
                                                        MX6Q_PAD_NANDF_RB0__NAND_READY_B 0xb000
                                                        MX6Q_PAD_NANDF_CS0__NAND_CE0_B   0xb0b1
                                                        MX6Q_PAD_NANDF_CS1__NAND_CE1_B   0xb0b1
-                                                       MX6Q_PAD_NANDF_CS2__NAND_CE2_B   0xb0b1
-                                                       MX6Q_PAD_NANDF_CS3__NAND_CE3_B   0xb0b1
                                                        MX6Q_PAD_SD4_CMD__NAND_RE_B      0xb0b1
                                                        MX6Q_PAD_SD4_CLK__NAND_WE_B      0xb0b1
                                                        MX6Q_PAD_NANDF_D0__NAND_DATA00   0xb0b1
                                                        MX6Q_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
                                                >;
                                        };
+
+                                       pinctrl_i2c1_2: i2c1grp-2 {
+                                               fsl,pins = <
+                                                       MX6Q_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1
+                                                       MX6Q_PAD_CSI0_DAT9__I2C1_SCL 0x4001b8b1
+                                               >;
+                                       };
                                };
 
                                i2c2 {
                                                        MX6Q_PAD_NANDF_D7__SD2_DATA7 0x17059
                                                >;
                                        };
+
+                                       pinctrl_usdhc2_2: usdhc2grp-2 {
+                                               fsl,pins = <
+                                                       MX6Q_PAD_SD2_CMD__SD2_CMD    0x17059
+                                                       MX6Q_PAD_SD2_CLK__SD2_CLK    0x10059
+                                                       MX6Q_PAD_SD2_DAT0__SD2_DATA0 0x17059
+                                                       MX6Q_PAD_SD2_DAT1__SD2_DATA1 0x17059
+                                                       MX6Q_PAD_SD2_DAT2__SD2_DATA2 0x17059
+                                                       MX6Q_PAD_SD2_DAT3__SD2_DATA3 0x17059
+                                               >;
+                                       };
                                };
 
                                usdhc3 {
                                                >;
                                        };
                                };
+
+                               weim {
+                                       pinctrl_weim_cs0_1: weim_cs0grp-1 {
+                                               fsl,pins = <
+                                                       MX6Q_PAD_EIM_CS0__EIM_CS0_B   0xb0b1
+                                               >;
+                                       };
+
+                                       pinctrl_weim_nor_1: weimnorgrp-1 {
+                                               fsl,pins = <
+                                                       MX6Q_PAD_EIM_OE__EIM_OE_B     0xb0b1
+                                                       MX6Q_PAD_EIM_RW__EIM_RW       0xb0b1
+                                                       MX6Q_PAD_EIM_WAIT__EIM_WAIT_B 0xb060
+                                                       /* data */
+                                                       MX6Q_PAD_EIM_D16__EIM_DATA16 0x1b0b0
+                                                       MX6Q_PAD_EIM_D17__EIM_DATA17 0x1b0b0
+                                                       MX6Q_PAD_EIM_D18__EIM_DATA18 0x1b0b0
+                                                       MX6Q_PAD_EIM_D19__EIM_DATA19 0x1b0b0
+                                                       MX6Q_PAD_EIM_D20__EIM_DATA20 0x1b0b0
+                                                       MX6Q_PAD_EIM_D21__EIM_DATA21 0x1b0b0
+                                                       MX6Q_PAD_EIM_D22__EIM_DATA22 0x1b0b0
+                                                       MX6Q_PAD_EIM_D23__EIM_DATA23 0x1b0b0
+                                                       MX6Q_PAD_EIM_D24__EIM_DATA24 0x1b0b0
+                                                       MX6Q_PAD_EIM_D25__EIM_DATA25 0x1b0b0
+                                                       MX6Q_PAD_EIM_D26__EIM_DATA26 0x1b0b0
+                                                       MX6Q_PAD_EIM_D27__EIM_DATA27 0x1b0b0
+                                                       MX6Q_PAD_EIM_D28__EIM_DATA28 0x1b0b0
+                                                       MX6Q_PAD_EIM_D29__EIM_DATA29 0x1b0b0
+                                                       MX6Q_PAD_EIM_D30__EIM_DATA30 0x1b0b0
+                                                       MX6Q_PAD_EIM_D31__EIM_DATA31 0x1b0b0
+                                                       /* address */
+                                                       MX6Q_PAD_EIM_A23__EIM_ADDR23 0xb0b1
+                                                       MX6Q_PAD_EIM_A22__EIM_ADDR22 0xb0b1
+                                                       MX6Q_PAD_EIM_A21__EIM_ADDR21 0xb0b1
+                                                       MX6Q_PAD_EIM_A20__EIM_ADDR20 0xb0b1
+                                                       MX6Q_PAD_EIM_A19__EIM_ADDR19 0xb0b1
+                                                       MX6Q_PAD_EIM_A18__EIM_ADDR18 0xb0b1
+                                                       MX6Q_PAD_EIM_A17__EIM_ADDR17 0xb0b1
+                                                       MX6Q_PAD_EIM_A16__EIM_ADDR16 0xb0b1
+                                                       MX6Q_PAD_EIM_DA15__EIM_AD15  0xb0b1
+                                                       MX6Q_PAD_EIM_DA14__EIM_AD14  0xb0b1
+                                                       MX6Q_PAD_EIM_DA13__EIM_AD13  0xb0b1
+                                                       MX6Q_PAD_EIM_DA12__EIM_AD12  0xb0b1
+                                                       MX6Q_PAD_EIM_DA11__EIM_AD11  0xb0b1
+                                                       MX6Q_PAD_EIM_DA10__EIM_AD10  0xb0b1
+                                                       MX6Q_PAD_EIM_DA9__EIM_AD09   0xb0b1
+                                                       MX6Q_PAD_EIM_DA8__EIM_AD08   0xb0b1
+                                                       MX6Q_PAD_EIM_DA7__EIM_AD07   0xb0b1
+                                                       MX6Q_PAD_EIM_DA6__EIM_AD06   0xb0b1
+                                                       MX6Q_PAD_EIM_DA5__EIM_AD05   0xb0b1
+                                                       MX6Q_PAD_EIM_DA4__EIM_AD04   0xb0b1
+                                                       MX6Q_PAD_EIM_DA3__EIM_AD03   0xb0b1
+                                                       MX6Q_PAD_EIM_DA2__EIM_AD02   0xb0b1
+                                                       MX6Q_PAD_EIM_DA1__EIM_AD01   0xb0b1
+                                                       MX6Q_PAD_EIM_DA0__EIM_AD00   0xb0b1
+                                               >;
+                                       };
+
+                               };
                        };
                };
 
index 4d237cffcc41dc62af43b6855f93a1267377fe60..e994011220e779bf237be1a254bcd7ef9524cb25 100644 (file)
        };
 };
 
+&ecspi1 {
+       fsl,spi-num-chipselects = <1>;
+       cs-gpios = <&gpio3 19 0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1_1 &pinctrl_ecspi1_sabreauto>;
+       status = "disabled"; /* pin conflict with WEIM NOR */
+
+       flash: m25p80@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "st,m25p32";
+               spi-max-frequency = <20000000>;
+               reg = <0>;
+       };
+};
+
 &fec {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_enet_2>;
        status = "okay";
 };
 
+&gpmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpmi_nand_1>;
+       status = "okay";
+};
+
 &uart4 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart4_1>;
        wp-gpios = <&gpio1 13 0>;
        status = "okay";
 };
+
+&weim {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_weim_nor_1 &pinctrl_weim_cs0_1>;
+       #address-cells = <2>;
+       #size-cells = <1>;
+       ranges = <0 0 0x08000000 0x08000000>;
+       status = "disabled"; /* pin conflict with SPI NOR */
+
+       nor@0,0 {
+               compatible = "cfi-flash";
+               reg = <0 0 0x02000000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               bank-width = <2>;
+               fsl,weim-cs-timing = <0x00620081 0x00000001 0x1c022000
+                               0x0000c000 0x1404a38e 0x00000000>;
+       };
+};
index e21f6a89cf0f580f2baeb80e5a87eec099442a09..6e5dfdb32416847184875a6652aeea70281a9850 100644 (file)
                        gpio = <&gpio3 22 0>;
                        enable-active-high;
                };
+
+               reg_audio: wm8962_supply {
+                       compatible = "regulator-fixed";
+                       regulator-name = "wm8962-supply";
+                       gpio = <&gpio4 10 0>;
+                       enable-active-high;
+               };
        };
 
        gpio-keys {
                        linux,code = <114>; /* KEY_VOLUMEDOWN */
                };
        };
+
+       sound {
+               compatible = "fsl,imx6q-sabresd-wm8962",
+                          "fsl,imx-audio-wm8962";
+               model = "wm8962-audio";
+               ssi-controller = <&ssi2>;
+               audio-codec = <&codec>;
+               audio-routing =
+                       "Headphone Jack", "HPOUTL",
+                       "Headphone Jack", "HPOUTR",
+                       "Ext Spk", "SPKOUTL",
+                       "Ext Spk", "SPKOUTR",
+                       "MICBIAS", "AMIC",
+                       "IN3R", "MICBIAS",
+                       "DMIC", "MICBIAS",
+                       "DMICDAT", "DMIC";
+               mux-int-port = <2>;
+               mux-ext-port = <3>;
+       };
+};
+
+&audmux {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_audmux_2>;
+       status = "okay";
 };
 
 &fec {
        status = "okay";
 };
 
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1_2>;
+       status = "okay";
+
+       codec: wm8962@1a {
+               compatible = "wlf,wm8962";
+               reg = <0x1a>;
+               clocks = <&clks 169>;
+               DCVDD-supply = <&reg_audio>;
+               DBVDD-supply = <&reg_audio>;
+               AVDD-supply = <&reg_audio>;
+               CPVDD-supply = <&reg_audio>;
+               MICVDD-supply = <&reg_audio>;
+               PLLVDD-supply = <&reg_audio>;
+               SPKVDD1-supply = <&reg_audio>;
+               SPKVDD2-supply = <&reg_audio>;
+               gpio-cfg = <
+                       0x0000 /* 0:Default */
+                       0x0000 /* 1:Default */
+                       0x0013 /* 2:FN_DMICCLK */
+                       0x0000 /* 3:Default */
+                       0x8014 /* 4:FN_DMICCDAT */
+                       0x0000 /* 5:Default */
+               >;
+       };
+};
+
+&ssi2 {
+       fsl,mode = "i2s-slave";
+       status = "okay";
+};
+
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1_1>;
index 9e8296e4c3434afdf61004e62e2af83c9bbc8490..f21d259080fd925846e0cc73957bc08866366ace 100644 (file)
                        interrupts = <0 92 0x04>;
                        cache-unified;
                        cache-level = <2>;
+                       arm,tag-latency = <4 2 3>;
+                       arm,data-latency = <4 2 3>;
                };
 
                pmu {
                                status = "disabled";
                        };
 
-                       usbmisc: usbmisc: usbmisc@02184800 {
+                       usbmisc: usbmisc@02184800 {
                                #index-cells = <1>;
                                compatible = "fsl,imx6q-usbmisc";
                                reg = <0x02184800 0x200>;
                                reg = <0x021b4000 0x4000>;
                        };
 
-                       weim@021b8000 {
+                       weim: weim@021b8000 {
+                               compatible = "fsl,imx6q-weim";
                                reg = <0x021b8000 0x4000>;
                                interrupts = <0 14 0x04>;
+                               clocks = <&clks 196>;
                        };
 
                        ocotp@021bc000 {
                                reg = <0x021bc000 0x4000>;
                        };
 
-                       ocotp@021c0000 {
-                               reg = <0x021c0000 0x4000>;
-                               interrupts = <0 21 0x04>;
-                       };
-
                        tzasc@021d0000 { /* TZASC1 */
                                reg = <0x021d0000 0x4000>;
                                interrupts = <0 108 0x04>;
diff --git a/arch/arm/boot/dts/imx6sl-evk.dts b/arch/arm/boot/dts/imx6sl-evk.dts
new file mode 100644 (file)
index 0000000..2886a59
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2013 Freescale Semiconductor, Inc.
+ *
+ * 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 "imx6sl.dtsi"
+
+/ {
+       model = "Freescale i.MX6 SoloLite EVK Board";
+       compatible = "fsl,imx6sl-evk", "fsl,imx6sl";
+
+       memory {
+               reg = <0x80000000 0x40000000>;
+       };
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec_1>;
+       phy-mode = "rmii";
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       hog {
+               pinctrl_hog: hoggrp {
+                       fsl,pins = <
+                               MX6SL_PAD_KEY_ROW7__GPIO4_IO07    0x17059
+                               MX6SL_PAD_KEY_COL7__GPIO4_IO06    0x17059
+                               MX6SL_PAD_SD2_DAT7__GPIO5_IO00    0x17059
+                               MX6SL_PAD_SD2_DAT6__GPIO4_IO29    0x17059
+                               MX6SL_PAD_REF_CLK_32K__GPIO3_IO22 0x17059
+                       >;
+               };
+       };
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_1>;
+       status = "okay";
+};
+
+&usdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc1_1>;
+       bus-width = <8>;
+       cd-gpios = <&gpio4 7 0>;
+       wp-gpios = <&gpio4 6 0>;
+       status = "okay";
+};
+
+&usdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc2_1>;
+       cd-gpios = <&gpio5 0 0>;
+       wp-gpios = <&gpio4 29 0>;
+       status = "okay";
+};
+
+&usdhc3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc3_1>;
+       cd-gpios = <&gpio3 22 0>;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi
new file mode 100644 (file)
index 0000000..c5e5da0
--- /dev/null
@@ -0,0 +1,779 @@
+/*
+ * Copyright 2013 Freescale Semiconductor, Inc.
+ *
+ * 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 "skeleton.dtsi"
+#include "imx6sl-pinfunc.h"
+#include <dt-bindings/clock/imx6sl-clock.h>
+
+/ {
+       aliases {
+               serial0 = &uart1;
+               serial1 = &uart2;
+               serial2 = &uart3;
+               serial3 = &uart4;
+               serial4 = &uart5;
+               gpio0 = &gpio1;
+               gpio1 = &gpio2;
+               gpio2 = &gpio3;
+               gpio3 = &gpio4;
+               gpio4 = &gpio5;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       compatible = "arm,cortex-a9";
+                       device_type = "cpu";
+                       reg = <0x0>;
+                       next-level-cache = <&L2>;
+               };
+       };
+
+       intc: interrupt-controller@00a01000 {
+               compatible = "arm,cortex-a9-gic";
+               #interrupt-cells = <3>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               interrupt-controller;
+               reg = <0x00a01000 0x1000>,
+                     <0x00a00100 0x100>;
+       };
+
+       clocks {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ckil {
+                       compatible = "fixed-clock";
+                       clock-frequency = <32768>;
+               };
+
+               osc {
+                       compatible = "fixed-clock";
+                       clock-frequency = <24000000>;
+               };
+       };
+
+       soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               interrupt-parent = <&intc>;
+               ranges;
+
+               L2: l2-cache@00a02000 {
+                       compatible = "arm,pl310-cache";
+                       reg = <0x00a02000 0x1000>;
+                       interrupts = <0 92 0x04>;
+                       cache-unified;
+                       cache-level = <2>;
+                       arm,tag-latency = <4 2 3>;
+                       arm,data-latency = <4 2 3>;
+               };
+
+               pmu {
+                       compatible = "arm,cortex-a9-pmu";
+                       interrupts = <0 94 0x04>;
+               };
+
+               aips1: aips-bus@02000000 {
+                       compatible = "fsl,aips-bus", "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0x02000000 0x100000>;
+                       ranges;
+
+                       spba: spba-bus@02000000 {
+                               compatible = "fsl,spba-bus", "simple-bus";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               reg = <0x02000000 0x40000>;
+                               ranges;
+
+                               spdif: spdif@02004000 {
+                                       reg = <0x02004000 0x4000>;
+                                       interrupts = <0 52 0x04>;
+                               };
+
+                               ecspi1: ecspi@02008000 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
+                                       reg = <0x02008000 0x4000>;
+                                       interrupts = <0 31 0x04>;
+                                       clocks = <&clks IMX6SL_CLK_ECSPI1>,
+                                                <&clks IMX6SL_CLK_ECSPI1>;
+                                       clock-names = "ipg", "per";
+                                       status = "disabled";
+                               };
+
+                               ecspi2: ecspi@0200c000 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
+                                       reg = <0x0200c000 0x4000>;
+                                       interrupts = <0 32 0x04>;
+                                       clocks = <&clks IMX6SL_CLK_ECSPI2>,
+                                                <&clks IMX6SL_CLK_ECSPI2>;
+                                       clock-names = "ipg", "per";
+                                       status = "disabled";
+                               };
+
+                               ecspi3: ecspi@02010000 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
+                                       reg = <0x02010000 0x4000>;
+                                       interrupts = <0 33 0x04>;
+                                       clocks = <&clks IMX6SL_CLK_ECSPI3>,
+                                                <&clks IMX6SL_CLK_ECSPI3>;
+                                       clock-names = "ipg", "per";
+                                       status = "disabled";
+                               };
+
+                               ecspi4: ecspi@02014000 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
+                                       reg = <0x02014000 0x4000>;
+                                       interrupts = <0 34 0x04>;
+                                       clocks = <&clks IMX6SL_CLK_ECSPI4>,
+                                                <&clks IMX6SL_CLK_ECSPI4>;
+                                       clock-names = "ipg", "per";
+                                       status = "disabled";
+                               };
+
+                               uart5: serial@02018000 {
+                                       compatible = "fsl,imx6sl-uart", "fsl,imx21-uart";
+                                       reg = <0x02018000 0x4000>;
+                                       interrupts = <0 30 0x04>;
+                                       clocks = <&clks IMX6SL_CLK_UART>,
+                                                <&clks IMX6SL_CLK_UART_SERIAL>;
+                                       clock-names = "ipg", "per";
+                                       status = "disabled";
+                               };
+
+                               uart1: serial@02020000 {
+                                       compatible = "fsl,imx6sl-uart", "fsl,imx21-uart";
+                                       reg = <0x02020000 0x4000>;
+                                       interrupts = <0 26 0x04>;
+                                       clocks = <&clks IMX6SL_CLK_UART>,
+                                                <&clks IMX6SL_CLK_UART_SERIAL>;
+                                       clock-names = "ipg", "per";
+                                       status = "disabled";
+                               };
+
+                               uart2: serial@02024000 {
+                                       compatible = "fsl,imx6sl-uart", "fsl,imx21-uart";
+                                       reg = <0x02024000 0x4000>;
+                                       interrupts = <0 27 0x04>;
+                                       clocks = <&clks IMX6SL_CLK_UART>,
+                                                <&clks IMX6SL_CLK_UART_SERIAL>;
+                                       clock-names = "ipg", "per";
+                                       status = "disabled";
+                               };
+
+                               ssi1: ssi@02028000 {
+                                       compatible = "fsl,imx6sl-ssi","fsl,imx21-ssi";
+                                       reg = <0x02028000 0x4000>;
+                                       interrupts = <0 46 0x04>;
+                                       clocks = <&clks IMX6SL_CLK_SSI1>;
+                                       fsl,fifo-depth = <15>;
+                                       status = "disabled";
+                               };
+
+                               ssi2: ssi@0202c000 {
+                                       compatible = "fsl,imx6sl-ssi","fsl,imx21-ssi";
+                                       reg = <0x0202c000 0x4000>;
+                                       interrupts = <0 47 0x04>;
+                                       clocks = <&clks IMX6SL_CLK_SSI2>;
+                                       fsl,fifo-depth = <15>;
+                                       status = "disabled";
+                               };
+
+                               ssi3: ssi@02030000 {
+                                       compatible = "fsl,imx6sl-ssi","fsl,imx21-ssi";
+                                       reg = <0x02030000 0x4000>;
+                                       interrupts = <0 48 0x04>;
+                                       clocks = <&clks IMX6SL_CLK_SSI3>;
+                                       fsl,fifo-depth = <15>;
+                                       status = "disabled";
+                               };
+
+                               uart3: serial@02034000 {
+                                       compatible = "fsl,imx6sl-uart", "fsl,imx21-uart";
+                                       reg = <0x02034000 0x4000>;
+                                       interrupts = <0 28 0x04>;
+                                       clocks = <&clks IMX6SL_CLK_UART>,
+                                                <&clks IMX6SL_CLK_UART_SERIAL>;
+                                       clock-names = "ipg", "per";
+                                       status = "disabled";
+                               };
+
+                               uart4: serial@02038000 {
+                                       compatible = "fsl,imx6sl-uart", "fsl,imx21-uart";
+                                       reg = <0x02038000 0x4000>;
+                                       interrupts = <0 29 0x04>;
+                                       clocks = <&clks IMX6SL_CLK_UART>,
+                                                <&clks IMX6SL_CLK_UART_SERIAL>;
+                                       clock-names = "ipg", "per";
+                                       status = "disabled";
+                               };
+                       };
+
+                       pwm1: pwm@02080000 {
+                               #pwm-cells = <2>;
+                               compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
+                               reg = <0x02080000 0x4000>;
+                               interrupts = <0 83 0x04>;
+                               clocks = <&clks IMX6SL_CLK_PWM1>,
+                                        <&clks IMX6SL_CLK_PWM1>;
+                               clock-names = "ipg", "per";
+                       };
+
+                       pwm2: pwm@02084000 {
+                               #pwm-cells = <2>;
+                               compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
+                               reg = <0x02084000 0x4000>;
+                               interrupts = <0 84 0x04>;
+                               clocks = <&clks IMX6SL_CLK_PWM2>,
+                                        <&clks IMX6SL_CLK_PWM2>;
+                               clock-names = "ipg", "per";
+                       };
+
+                       pwm3: pwm@02088000 {
+                               #pwm-cells = <2>;
+                               compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
+                               reg = <0x02088000 0x4000>;
+                               interrupts = <0 85 0x04>;
+                               clocks = <&clks IMX6SL_CLK_PWM3>,
+                                        <&clks IMX6SL_CLK_PWM3>;
+                               clock-names = "ipg", "per";
+                       };
+
+                       pwm4: pwm@0208c000 {
+                               #pwm-cells = <2>;
+                               compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
+                               reg = <0x0208c000 0x4000>;
+                               interrupts = <0 86 0x04>;
+                               clocks = <&clks IMX6SL_CLK_PWM4>,
+                                        <&clks IMX6SL_CLK_PWM4>;
+                               clock-names = "ipg", "per";
+                       };
+
+                       gpt: gpt@02098000 {
+                               compatible = "fsl,imx6sl-gpt";
+                               reg = <0x02098000 0x4000>;
+                               interrupts = <0 55 0x04>;
+                               clocks = <&clks IMX6SL_CLK_GPT>,
+                                        <&clks IMX6SL_CLK_GPT_SERIAL>;
+                               clock-names = "ipg", "per";
+                       };
+
+                       gpio1: gpio@0209c000 {
+                               compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
+                               reg = <0x0209c000 0x4000>;
+                               interrupts = <0 66 0x04 0 67 0x04>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpio2: gpio@020a0000 {
+                               compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
+                               reg = <0x020a0000 0x4000>;
+                               interrupts = <0 68 0x04 0 69 0x04>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpio3: gpio@020a4000 {
+                               compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
+                               reg = <0x020a4000 0x4000>;
+                               interrupts = <0 70 0x04 0 71 0x04>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpio4: gpio@020a8000 {
+                               compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
+                               reg = <0x020a8000 0x4000>;
+                               interrupts = <0 72 0x04 0 73 0x04>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpio5: gpio@020ac000 {
+                               compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
+                               reg = <0x020ac000 0x4000>;
+                               interrupts = <0 74 0x04 0 75 0x04>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       kpp: kpp@020b8000 {
+                               reg = <0x020b8000 0x4000>;
+                               interrupts = <0 82 0x04>;
+                       };
+
+                       wdog1: wdog@020bc000 {
+                               compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
+                               reg = <0x020bc000 0x4000>;
+                               interrupts = <0 80 0x04>;
+                               clocks = <&clks IMX6SL_CLK_DUMMY>;
+                       };
+
+                       wdog2: wdog@020c0000 {
+                               compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
+                               reg = <0x020c0000 0x4000>;
+                               interrupts = <0 81 0x04>;
+                               clocks = <&clks IMX6SL_CLK_DUMMY>;
+                               status = "disabled";
+                       };
+
+                       clks: ccm@020c4000 {
+                               compatible = "fsl,imx6sl-ccm";
+                               reg = <0x020c4000 0x4000>;
+                               interrupts = <0 87 0x04 0 88 0x04>;
+                               #clock-cells = <1>;
+                       };
+
+                       anatop: anatop@020c8000 {
+                               compatible = "fsl,imx6sl-anatop", "syscon", "simple-bus";
+                               reg = <0x020c8000 0x1000>;
+                               interrupts = <0 49 0x04 0 54 0x04 0 127 0x04>;
+
+                               regulator-1p1@110 {
+                                       compatible = "fsl,anatop-regulator";
+                                       regulator-name = "vdd1p1";
+                                       regulator-min-microvolt = <800000>;
+                                       regulator-max-microvolt = <1375000>;
+                                       regulator-always-on;
+                                       anatop-reg-offset = <0x110>;
+                                       anatop-vol-bit-shift = <8>;
+                                       anatop-vol-bit-width = <5>;
+                                       anatop-min-bit-val = <4>;
+                                       anatop-min-voltage = <800000>;
+                                       anatop-max-voltage = <1375000>;
+                               };
+
+                               regulator-3p0@120 {
+                                       compatible = "fsl,anatop-regulator";
+                                       regulator-name = "vdd3p0";
+                                       regulator-min-microvolt = <2800000>;
+                                       regulator-max-microvolt = <3150000>;
+                                       regulator-always-on;
+                                       anatop-reg-offset = <0x120>;
+                                       anatop-vol-bit-shift = <8>;
+                                       anatop-vol-bit-width = <5>;
+                                       anatop-min-bit-val = <0>;
+                                       anatop-min-voltage = <2625000>;
+                                       anatop-max-voltage = <3400000>;
+                               };
+
+                               regulator-2p5@130 {
+                                       compatible = "fsl,anatop-regulator";
+                                       regulator-name = "vdd2p5";
+                                       regulator-min-microvolt = <2100000>;
+                                       regulator-max-microvolt = <2850000>;
+                                       regulator-always-on;
+                                       anatop-reg-offset = <0x130>;
+                                       anatop-vol-bit-shift = <8>;
+                                       anatop-vol-bit-width = <5>;
+                                       anatop-min-bit-val = <0>;
+                                       anatop-min-voltage = <2100000>;
+                                       anatop-max-voltage = <2850000>;
+                               };
+
+                               reg_arm: regulator-vddcore@140 {
+                                       compatible = "fsl,anatop-regulator";
+                                       regulator-name = "cpu";
+                                       regulator-min-microvolt = <725000>;
+                                       regulator-max-microvolt = <1450000>;
+                                       regulator-always-on;
+                                       anatop-reg-offset = <0x140>;
+                                       anatop-vol-bit-shift = <0>;
+                                       anatop-vol-bit-width = <5>;
+                                       anatop-delay-reg-offset = <0x170>;
+                                       anatop-delay-bit-shift = <24>;
+                                       anatop-delay-bit-width = <2>;
+                                       anatop-min-bit-val = <1>;
+                                       anatop-min-voltage = <725000>;
+                                       anatop-max-voltage = <1450000>;
+                               };
+
+                               reg_pu: regulator-vddpu@140 {
+                                       compatible = "fsl,anatop-regulator";
+                                       regulator-name = "vddpu";
+                                       regulator-min-microvolt = <725000>;
+                                       regulator-max-microvolt = <1450000>;
+                                       regulator-always-on;
+                                       anatop-reg-offset = <0x140>;
+                                       anatop-vol-bit-shift = <9>;
+                                       anatop-vol-bit-width = <5>;
+                                       anatop-delay-reg-offset = <0x170>;
+                                       anatop-delay-bit-shift = <26>;
+                                       anatop-delay-bit-width = <2>;
+                                       anatop-min-bit-val = <1>;
+                                       anatop-min-voltage = <725000>;
+                                       anatop-max-voltage = <1450000>;
+                               };
+
+                               reg_soc: regulator-vddsoc@140 {
+                                       compatible = "fsl,anatop-regulator";
+                                       regulator-name = "vddsoc";
+                                       regulator-min-microvolt = <725000>;
+                                       regulator-max-microvolt = <1450000>;
+                                       regulator-always-on;
+                                       anatop-reg-offset = <0x140>;
+                                       anatop-vol-bit-shift = <18>;
+                                       anatop-vol-bit-width = <5>;
+                                       anatop-delay-reg-offset = <0x170>;
+                                       anatop-delay-bit-shift = <28>;
+                                       anatop-delay-bit-width = <2>;
+                                       anatop-min-bit-val = <1>;
+                                       anatop-min-voltage = <725000>;
+                                       anatop-max-voltage = <1450000>;
+                               };
+                       };
+
+                       usbphy1: usbphy@020c9000 {
+                               compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy";
+                               reg = <0x020c9000 0x1000>;
+                               interrupts = <0 44 0x04>;
+                               clocks = <&clks IMX6SL_CLK_USBPHY1>;
+                       };
+
+                       usbphy2: usbphy@020ca000 {
+                               compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy";
+                               reg = <0x020ca000 0x1000>;
+                               interrupts = <0 45 0x04>;
+                               clocks = <&clks IMX6SL_CLK_USBPHY2>;
+                       };
+
+                       snvs@020cc000 {
+                               compatible = "fsl,sec-v4.0-mon", "simple-bus";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0 0x020cc000 0x4000>;
+
+                               snvs-rtc-lp@34 {
+                                       compatible = "fsl,sec-v4.0-mon-rtc-lp";
+                                       reg = <0x34 0x58>;
+                                       interrupts = <0 19 0x04 0 20 0x04>;
+                               };
+                       };
+
+                       epit1: epit@020d0000 {
+                               reg = <0x020d0000 0x4000>;
+                               interrupts = <0 56 0x04>;
+                       };
+
+                       epit2: epit@020d4000 {
+                               reg = <0x020d4000 0x4000>;
+                               interrupts = <0 57 0x04>;
+                       };
+
+                       src: src@020d8000 {
+                               compatible = "fsl,imx6sl-src", "fsl,imx51-src";
+                               reg = <0x020d8000 0x4000>;
+                               interrupts = <0 91 0x04 0 96 0x04>;
+                               #reset-cells = <1>;
+                       };
+
+                       gpc: gpc@020dc000 {
+                               compatible = "fsl,imx6sl-gpc", "fsl,imx6q-gpc";
+                               reg = <0x020dc000 0x4000>;
+                               interrupts = <0 89 0x04>;
+                       };
+
+                       iomuxc: iomuxc@020e0000 {
+                               compatible = "fsl,imx6sl-iomuxc";
+                               reg = <0x020e0000 0x4000>;
+
+                               fec {
+                                       pinctrl_fec_1: fecgrp-1 {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_FEC_MDC__FEC_MDC         0x1b0b0
+                                                       MX6SL_PAD_FEC_MDIO__FEC_MDIO       0x1b0b0
+                                                       MX6SL_PAD_FEC_CRS_DV__FEC_RX_DV    0x1b0b0
+                                                       MX6SL_PAD_FEC_RXD0__FEC_RX_DATA0   0x1b0b0
+                                                       MX6SL_PAD_FEC_RXD1__FEC_RX_DATA1   0x1b0b0
+                                                       MX6SL_PAD_FEC_TX_EN__FEC_TX_EN     0x1b0b0
+                                                       MX6SL_PAD_FEC_TXD0__FEC_TX_DATA0   0x1b0b0
+                                                       MX6SL_PAD_FEC_TXD1__FEC_TX_DATA1   0x1b0b0
+                                                       MX6SL_PAD_FEC_REF_CLK__FEC_REF_OUT 0x4001b0a8
+                                               >;
+                                       };
+                               };
+
+                               uart1 {
+                                       pinctrl_uart1_1: uart1grp-1 {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_UART1_RXD__UART1_RX_DATA 0x1b0b1
+                                                       MX6SL_PAD_UART1_TXD__UART1_TX_DATA 0x1b0b1
+                                               >;
+                                       };
+                               };
+
+                               usdhc1 {
+                                       pinctrl_usdhc1_1: usdhc1grp-1 {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_SD1_CMD__SD1_CMD    0x17059
+                                                       MX6SL_PAD_SD1_CLK__SD1_CLK    0x10059
+                                                       MX6SL_PAD_SD1_DAT0__SD1_DATA0 0x17059
+                                                       MX6SL_PAD_SD1_DAT1__SD1_DATA1 0x17059
+                                                       MX6SL_PAD_SD1_DAT2__SD1_DATA2 0x17059
+                                                       MX6SL_PAD_SD1_DAT3__SD1_DATA3 0x17059
+                                                       MX6SL_PAD_SD1_DAT4__SD1_DATA4 0x17059
+                                                       MX6SL_PAD_SD1_DAT5__SD1_DATA5 0x17059
+                                                       MX6SL_PAD_SD1_DAT6__SD1_DATA6 0x17059
+                                                       MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x17059
+                                               >;
+                                       };
+                               };
+
+                               usdhc2 {
+                                       pinctrl_usdhc2_1: usdhc2grp-1 {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_SD2_CMD__SD2_CMD    0x17059
+                                                       MX6SL_PAD_SD2_CLK__SD2_CLK    0x10059
+                                                       MX6SL_PAD_SD2_DAT0__SD2_DATA0 0x17059
+                                                       MX6SL_PAD_SD2_DAT1__SD2_DATA1 0x17059
+                                                       MX6SL_PAD_SD2_DAT2__SD2_DATA2 0x17059
+                                                       MX6SL_PAD_SD2_DAT3__SD2_DATA3 0x17059
+                                               >;
+                                       };
+                               };
+
+                               usdhc3 {
+                                       pinctrl_usdhc3_1: usdhc3grp-1 {
+                                               fsl,pins = <
+                                                       MX6SL_PAD_SD3_CMD__SD3_CMD    0x17059
+                                                       MX6SL_PAD_SD3_CLK__SD3_CLK    0x10059
+                                                       MX6SL_PAD_SD3_DAT0__SD3_DATA0 0x17059
+                                                       MX6SL_PAD_SD3_DAT1__SD3_DATA1 0x17059
+                                                       MX6SL_PAD_SD3_DAT2__SD3_DATA2 0x17059
+                                                       MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x17059
+                                               >;
+                                       };
+                               };
+                       };
+
+                       csi: csi@020e4000 {
+                               reg = <0x020e4000 0x4000>;
+                               interrupts = <0 7 0x04>;
+                       };
+
+                       spdc: spdc@020e8000 {
+                               reg = <0x020e8000 0x4000>;
+                               interrupts = <0 6 0x04>;
+                       };
+
+                       sdma: sdma@020ec000 {
+                               compatible = "fsl,imx6sl-sdma", "fsl,imx35-sdma";
+                               reg = <0x020ec000 0x4000>;
+                               interrupts = <0 2 0x04>;
+                               clocks = <&clks IMX6SL_CLK_SDMA>,
+                                        <&clks IMX6SL_CLK_SDMA>;
+                               clock-names = "ipg", "ahb";
+                               fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6sl.bin";
+                       };
+
+                       pxp: pxp@020f0000 {
+                               reg = <0x020f0000 0x4000>;
+                               interrupts = <0 98 0x04>;
+                       };
+
+                       epdc: epdc@020f4000 {
+                               reg = <0x020f4000 0x4000>;
+                               interrupts = <0 97 0x04>;
+                       };
+
+                       lcdif: lcdif@020f8000 {
+                               reg = <0x020f8000 0x4000>;
+                               interrupts = <0 39 0x04>;
+                       };
+
+                       dcp: dcp@020fc000 {
+                               reg = <0x020fc000 0x4000>;
+                               interrupts = <0 99 0x04>;
+                       };
+               };
+
+               aips2: aips-bus@02100000 {
+                       compatible = "fsl,aips-bus", "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0x02100000 0x100000>;
+                       ranges;
+
+                       usbotg1: usb@02184000 {
+                               compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
+                               reg = <0x02184000 0x200>;
+                               interrupts = <0 43 0x04>;
+                               clocks = <&clks IMX6SL_CLK_USBOH3>;
+                               fsl,usbphy = <&usbphy1>;
+                               fsl,usbmisc = <&usbmisc 0>;
+                               status = "disabled";
+                       };
+
+                       usbotg2: usb@02184200 {
+                               compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
+                               reg = <0x02184200 0x200>;
+                               interrupts = <0 40 0x04>;
+                               clocks = <&clks IMX6SL_CLK_USBOH3>;
+                               fsl,usbphy = <&usbphy2>;
+                               fsl,usbmisc = <&usbmisc 1>;
+                               status = "disabled";
+                       };
+
+                       usbh: usb@02184400 {
+                               compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
+                               reg = <0x02184400 0x200>;
+                               interrupts = <0 42 0x04>;
+                               clocks = <&clks IMX6SL_CLK_USBOH3>;
+                               fsl,usbmisc = <&usbmisc 2>;
+                               status = "disabled";
+                       };
+
+                       usbmisc: usbmisc@02184800 {
+                               #index-cells = <1>;
+                               compatible = "fsl,imx6sl-usbmisc", "fsl,imx6q-usbmisc";
+                               reg = <0x02184800 0x200>;
+                               clocks = <&clks IMX6SL_CLK_USBOH3>;
+                       };
+
+                       fec: ethernet@02188000 {
+                               compatible = "fsl,imx6sl-fec", "fsl,imx25-fec";
+                               reg = <0x02188000 0x4000>;
+                               interrupts = <0 114 0x04>;
+                               clocks = <&clks IMX6SL_CLK_ENET_REF>,
+                                        <&clks IMX6SL_CLK_ENET_REF>;
+                               clock-names = "ipg", "ahb";
+                               status = "disabled";
+                       };
+
+                       usdhc1: usdhc@02190000 {
+                               compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
+                               reg = <0x02190000 0x4000>;
+                               interrupts = <0 22 0x04>;
+                               clocks = <&clks IMX6SL_CLK_USDHC1>,
+                                        <&clks IMX6SL_CLK_USDHC1>,
+                                        <&clks IMX6SL_CLK_USDHC1>;
+                               clock-names = "ipg", "ahb", "per";
+                               bus-width = <4>;
+                               status = "disabled";
+                       };
+
+                       usdhc2: usdhc@02194000 {
+                               compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
+                               reg = <0x02194000 0x4000>;
+                               interrupts = <0 23 0x04>;
+                               clocks = <&clks IMX6SL_CLK_USDHC2>,
+                                        <&clks IMX6SL_CLK_USDHC2>,
+                                        <&clks IMX6SL_CLK_USDHC2>;
+                               clock-names = "ipg", "ahb", "per";
+                               bus-width = <4>;
+                               status = "disabled";
+                       };
+
+                       usdhc3: usdhc@02198000 {
+                               compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
+                               reg = <0x02198000 0x4000>;
+                               interrupts = <0 24 0x04>;
+                               clocks = <&clks IMX6SL_CLK_USDHC3>,
+                                        <&clks IMX6SL_CLK_USDHC3>,
+                                        <&clks IMX6SL_CLK_USDHC3>;
+                               clock-names = "ipg", "ahb", "per";
+                               bus-width = <4>;
+                               status = "disabled";
+                       };
+
+                       usdhc4: usdhc@0219c000 {
+                               compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
+                               reg = <0x0219c000 0x4000>;
+                               interrupts = <0 25 0x04>;
+                               clocks = <&clks IMX6SL_CLK_USDHC4>,
+                                        <&clks IMX6SL_CLK_USDHC4>,
+                                        <&clks IMX6SL_CLK_USDHC4>;
+                               clock-names = "ipg", "ahb", "per";
+                               bus-width = <4>;
+                               status = "disabled";
+                       };
+
+                       i2c1: i2c@021a0000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
+                               reg = <0x021a0000 0x4000>;
+                               interrupts = <0 36 0x04>;
+                               clocks = <&clks IMX6SL_CLK_I2C1>;
+                               status = "disabled";
+                       };
+
+                       i2c2: i2c@021a4000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
+                               reg = <0x021a4000 0x4000>;
+                               interrupts = <0 37 0x04>;
+                               clocks = <&clks IMX6SL_CLK_I2C2>;
+                               status = "disabled";
+                       };
+
+                       i2c3: i2c@021a8000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
+                               reg = <0x021a8000 0x4000>;
+                               interrupts = <0 38 0x04>;
+                               clocks = <&clks IMX6SL_CLK_I2C3>;
+                               status = "disabled";
+                       };
+
+                       mmdc: mmdc@021b0000 {
+                               compatible = "fsl,imx6sl-mmdc", "fsl,imx6q-mmdc";
+                               reg = <0x021b0000 0x4000>;
+                       };
+
+                       rngb: rngb@021b4000 {
+                               reg = <0x021b4000 0x4000>;
+                               interrupts = <0 5 0x04>;
+                       };
+
+                       weim: weim@021b8000 {
+                               reg = <0x021b8000 0x4000>;
+                               interrupts = <0 14 0x04>;
+                       };
+
+                       ocotp: ocotp@021bc000 {
+                               compatible = "fsl,imx6sl-ocotp";
+                               reg = <0x021bc000 0x4000>;
+                       };
+
+                       audmux: audmux@021d8000 {
+                               compatible = "fsl,imx6sl-audmux", "fsl,imx31-audmux";
+                               reg = <0x021d8000 0x4000>;
+                               status = "disabled";
+                       };
+               };
+       };
+};
index 51376683dbcdd2875b2c77aa7bfa85fd5374980d..1e5bef0bead7e39d95a31b8fade75c112081c9a3 100644 (file)
                                status = "disabled";
                        };
                };
+
+               rtc@10300 {
+                       compatible = "marvell,kirkwood-rtc", "marvell,orion-rtc";
+                       reg = <0x10300 0x20>;
+                       interrupts = <53>;
+                       clocks = <&gate_clk 7>;
+               };
+
+               sata@80000 {
+                       compatible = "marvell,orion-sata";
+                       reg = <0x80000 0x5000>;
+                       interrupts = <21>;
+                       clocks = <&gate_clk 14>, <&gate_clk 15>;
+                       clock-names = "0", "1";
+                       status = "disabled";
+               };
+
+               mvsdio@90000 {
+                       compatible = "marvell,orion-sdio";
+                       reg = <0x90000 0x200>;
+                       interrupts = <28>;
+                       clocks = <&gate_clk 4>;
+                       bus-width = <4>;
+                       cap-sdio-irq;
+                       cap-sd-highspeed;
+                       cap-mmc-highspeed;
+                       status = "disabled";
+               };
        };
 };
index 66a751ab5516bd8a72de4738f874e68e275eb788..a63a1113726274f8ff56060c7a6abe41dd01b2d9 100644 (file)
                        };
                };
 
+               rtc@10300 {
+                       compatible = "marvell,kirkwood-rtc", "marvell,orion-rtc";
+                       reg = <0x10300 0x20>;
+                       interrupts = <53>;
+                       clocks = <&gate_clk 7>;
+               };
+
+               sata@80000 {
+                       compatible = "marvell,orion-sata";
+                       reg = <0x80000 0x5000>;
+                       interrupts = <21>;
+                       clocks = <&gate_clk 14>, <&gate_clk 15>;
+                       clock-names = "0", "1";
+                       status = "disabled";
+               };
+
+               mvsdio@90000 {
+                       compatible = "marvell,orion-sdio";
+                       reg = <0x90000 0x200>;
+                       interrupts = <28>;
+                       clocks = <&gate_clk 4>;
+                       bus-width = <4>;
+                       cap-sdio-irq;
+                       cap-sd-highspeed;
+                       cap-mmc-highspeed;
+                       status = "disabled";
+               };
+
                thermal@10078 {
                        compatible = "marvell,kirkwood-thermal";
                        reg = <0x10078 0x4>;
index 5f21d4e427b004c0d0085d19195a81afb75d7258..00c48d26de68024dd941ea4f35586d8d597c8699 100644 (file)
 
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
-                       pinctrl-0 = < &pmx_spi &pmx_uart0
-                                       &pmx_cloudbox_sata0 >;
-                       pinctrl-names = "default";
-
                        pmx_cloudbox_sata0: pmx-cloudbox-sata0 {
                                marvell,pins = "mpp15";
                                marvell,function = "sata0";
                };
 
                serial@12000 {
+                       pinctrl-0 = <&pmx_uart0>;
+                       pinctrl-names = "default";
                        clock-frequency = <166666667>;
                        status = "okay";
                };
 
                sata@80000 {
+                       pinctrl-0 = <&pmx_cloudbox_sata0>;
+                       pinctrl-names = "default";
                        status = "okay";
                        nr-ports = <1>;
                };
 
                spi@10600 {
+                       pinctrl-0 = <&pmx_spi>;
+                       pinctrl-names = "default";
                        status = "okay";
 
                        flash@0 {
index c9c44b2f62d7b6a4248a7f2d84125e14ce4b1284..14d4ceea30578f811195e404927be76a33e08087 100644 (file)
 
        gpio-leds {
                compatible = "gpio-leds";
+               pinctrl-0 = <&pmx_led_power &pmx_led_red_usb_320
+                            &pmx_led_red_left_hdd &pmx_led_red_right_hdd
+                            &pmx_led_white_usb>;
+               pinctrl-names = "default";
+
                blue-power {
                        label = "dns320:blue:power";
                        gpios = <&gpio0 26 1>; /* GPIO 26 Active Low */
@@ -46,6 +51,8 @@
                };
 
                serial@12100 {
+                       pinctrl-0 = <&pmx_uart1>;
+                       pinctrl-names = "default";
                        status = "okay";
                };
        };
index e4e4930dc5cf78b9318e9f7015980ab5bd5b90da..63872570e6ce475bf3067cd1955b454958bfe65b 100644 (file)
 
        gpio-leds {
                compatible = "gpio-leds";
+               pinctrl-0 = <&pmx_led_power &pmx_led_red_usb_325
+                            &pmx_led_red_left_hdd &pmx_led_red_right_hdd
+                            &pmx_led_white_usb>;
+               pinctrl-names = "default";
+
                white-power {
                        label = "dns325:white:power";
                        gpios = <&gpio0 26 1>; /* GPIO 26 Active Low */
index 6875ac00c17437c51a0e31c8dad0edf34ae64096..0afe1d07c8038913d4580cd125424ba5aabe126e 100644 (file)
@@ -9,6 +9,10 @@
                compatible = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-0 = <&pmx_button_power &pmx_button_unmount
+                            &pmx_button_reset>;
+               pinctrl-names = "default";
+
                button@1 {
                        label = "Power button";
                        linux,code = <116>;
@@ -29,6 +33,8 @@
        gpio_fan {
                /* Fan: ADDA AD045HB-G73 40mm 6000rpm@5v */
                compatible = "gpio-fan";
+               pinctrl-0 = <&pmx_fan_high_speed &pmx_fan_low_speed>;
+               pinctrl-names = "default";
                gpios = <&gpio1 14 1
                         &gpio1 13 1>;
                gpio-fan,speed-map = <0    0
 
        gpio_poweroff {
                compatible = "gpio-poweroff";
+               pinctrl-0 = <&pmx_power_off>;
+               pinctrl-names = "default";
                gpios = <&gpio1 4 0>;
        };
 
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
 
-                       pinctrl-0 = < &pmx_nand &pmx_uart1
-                                     &pmx_sata0 &pmx_sata1
-                                     &pmx_led_power
-                                     &pmx_led_red_right_hdd
-                                     &pmx_led_red_left_hdd
-                                     &pmx_led_red_usb_325
-                                     &pmx_button_power
-                                     &pmx_led_red_usb_320
-                                     &pmx_power_off &pmx_power_back_on
-                                     &pmx_power_sata0 &pmx_power_sata1
-                                     &pmx_present_sata0 &pmx_present_sata1
-                                     &pmx_led_white_usb &pmx_fan_tacho
-                                     &pmx_fan_high_speed &pmx_fan_low_speed
-                                     &pmx_button_unmount &pmx_button_reset
-                                     &pmx_temp_alarm >;
+                       pinctrl-0 = <&pmx_power_back_on &pmx_present_sata0
+                                    &pmx_present_sata1 &pmx_fan_tacho
+                                    &pmx_temp_alarm>;
                        pinctrl-names = "default";
 
                        pmx_sata0: pmx-sata0 {
                        };
                };
                sata@80000 {
+                       pinctrl-0 = <&pmx_sata0 &pmx_sata1>;
+                       pinctrl-names = "default";
                        status = "okay";
                        nr-ports = <2>;
                };
 
                nand@3000000 {
+                       pinctrl-0 = <&pmx_nand>;
+                       pinctrl-names = "default";
                        status = "okay";
                        chip-delay = <35>;
 
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-0 = <&pmx_power_sata0 &pmx_power_sata1>;
+               pinctrl-names = "default";
 
                sata0_power: regulator@1 {
                        compatible = "regulator-fixed";
index 0196cf6b0ef29c302e2628767d3284893cc851b9..7714742bb8d8cafc9b8be4be6fbec9b25317a6b3 100644 (file)
 
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
-
-                       pinctrl-0 = < &pmx_usb_power_enable
-                                     &pmx_led_green &pmx_led_orange >;
-                       pinctrl-names = "default";
-
                        pmx_usb_power_enable: pmx-usb-power-enable {
                                marvell,pins = "mpp29";
                                marvell,function = "gpio";
@@ -62,6 +57,8 @@
        };
        gpio-leds {
                compatible = "gpio-leds";
+               pinctrl-0 = <&pmx_led_green &pmx_led_orange>;
+               pinctrl-names = "default";
 
                health {
                        label = "status:green:health";
@@ -77,6 +74,8 @@
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-0 = <&pmx_usb_power_enable>;
+               pinctrl-names = "default";
 
                usb_power: regulator@1 {
                        compatible = "regulator-fixed";
index 289e51d86372895ff6428892fe199cbefa255520..36c7ba38d5000818768d8d275ab3af6d8b88ec6b 100644 (file)
 
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
-
-                       pinctrl-0 = < &pmx_spi
-                                     &pmx_led_bluetooth &pmx_led_wifi
-                                     &pmx_led_wifi_ap >;
-                       pinctrl-names = "default";
-
                        pmx_led_bluetooth: pmx-led-bluetooth {
                                marvell,pins = "mpp47";
                                marvell,function = "gpio";
@@ -43,6 +37,8 @@
 
                spi@10600 {
                        status = "okay";
+                       pinctrl-0 = <&pmx_spi>;
+                       pinctrl-names = "default";
 
                        m25p40@0 {
                                #address-cells = <1>;
                        pinctrl-names = "default";
                        status = "okay";
                        /* No CD or WP GPIOs */
+                       broken-cd;
                };
        };
 
        gpio-leds {
                compatible = "gpio-leds";
+               pinctrl-0 = <&pmx_led_bluetooth &pmx_led_wifi
+                            &pmx_led_wifi_ap >;
+               pinctrl-names = "default";
 
                bluetooth {
                        label = "dreamplug:blue:bluetooth";
index c3573be7b92c18d1bb0b577f200c8d0bcc170351..31caa64050657da5ccc5b0fb169e0e7fbbc25977 100644 (file)
 
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
-
-                       pinctrl-0 = < &pmx_usb_power_enable &pmx_led_orange
-                                     &pmx_led_left_cap_0 &pmx_led_left_cap_1
-                                     &pmx_led_left_cap_2 &pmx_led_left_cap_3
-                                     &pmx_led_right_cap_0 &pmx_led_right_cap_1
-                                     &pmx_led_right_cap_2 &pmx_led_right_cap_3
-                                   >;
-                       pinctrl-names = "default";
-
                        pmx_usb_power_enable: pmx-usb-power-enable {
                                marvell,pins = "mpp29";
                                marvell,function = "gpio";
        };
        gpio-leds {
                compatible = "gpio-leds";
+               pinctrl-0 = < &pmx_led_orange
+                             &pmx_led_left_cap_0 &pmx_led_left_cap_1
+                             &pmx_led_left_cap_2 &pmx_led_left_cap_3
+                             &pmx_led_right_cap_0 &pmx_led_right_cap_1
+                             &pmx_led_right_cap_2 &pmx_led_right_cap_3
+                           >;
+               pinctrl-names = "default";
 
                health {
                        label = "status:green:health";
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-0 = <&pmx_usb_power_enable>;
+               pinctrl-names = "default";
 
                usb_power: regulator@1 {
                        compatible = "regulator-fixed";
index 44fd97dfc1f36b58205e5976e33d1f160ddba95e..1e642f39b1541f9984495f8caa92e74e1c637786 100644 (file)
 
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
-
-                       pinctrl-0 = < &pmx_led_health_r &pmx_led_health_g
-                                     &pmx_led_wmode_r &pmx_led_wmode_g >;
-                       pinctrl-names = "default";
-
                        pmx_led_health_r: pmx-led-health-r {
                                marvell,pins = "mpp46";
                                marvell,function = "gpio";
 
                mvsdio@90000 {
                        status = "okay";
+                       /* No CD or WP GPIOs */
+                       broken-cd;
                };
        };
 
        gpio-leds {
                compatible = "gpio-leds";
+               pinctrl-0 = < &pmx_led_health_r &pmx_led_health_g
+                             &pmx_led_wmode_r &pmx_led_wmode_g >;
+               pinctrl-names = "default";
 
                health-r {
                        label = "guruplug:red:health";
index 5335b1aa8601309f1ce9dc1a75a21243be1364f0..20c4b081f420257881151b975f873d56cd7bd8e9 100644 (file)
 
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
-
-                       pinctrl-0 = < &pmx_nand
-                                     &pmx_led_os_red &pmx_power_off
-                                     &pmx_led_os_green &pmx_led_usb_transfer
-                                     &pmx_button_reset &pmx_button_usb_copy >;
-                       pinctrl-names = "default";
-
                        pmx_led_os_red: pmx-led-os-red {
                                marvell,pins = "mpp22";
                                marvell,function = "gpio";
@@ -61,6 +54,8 @@
 
                nand@3000000 {
                        status = "okay";
+                       pinctrl-0 = <&pmx_nand>;
+                       pinctrl-names = "default";
 
                        partition@0 {
                                label = "u-boot";
@@ -84,6 +79,9 @@
                compatible = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-0 = <&pmx_button_reset &pmx_button_usb_copy>;
+               pinctrl-names = "default";
+
                button@1 {
                        label = "USB Copy";
                        linux,code = <133>;
@@ -97,6 +95,9 @@
        };
        gpio-leds {
                compatible = "gpio-leds";
+               pinctrl-0 = <&pmx_led_os_red &pmx_led_os_green
+                            &pmx_led_usb_transfer>;
+               pinctrl-names = "default";
 
                green-os {
                        label = "ib62x0:green:os";
        };
        gpio_poweroff {
                compatible = "gpio-poweroff";
+               pinctrl-0 = <&pmx_power_off>;
+               pinctrl-names = "default";
                gpios = <&gpio0 24 0>;
        };
 
index e591d5df769f11af23c0358035ebbd9786628c64..441204e8abc6aa969b371a44ca2fd7dab97e9bcc 100644 (file)
 
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
-
-                       pinctrl-0 = < &pmx_gpio_12 &pmx_gpio_35
-                                     &pmx_gpio_41 &pmx_gpio_42
-                                     &pmx_gpio_43 &pmx_gpio_44
-                                     &pmx_gpio_45 &pmx_gpio_46
-                                     &pmx_gpio_47 &pmx_gpio_48 >;
-                       pinctrl-names = "default";
-
-                       pmx_gpio_12: pmx-gpio-12 {
+                       pmx_button_reset: pmx-button-reset {
                                marvell,pins = "mpp12";
                                marvell,function = "gpio";
                        };
-                       pmx_gpio_35: pmx-gpio-35 {
+                       pmx_button_otb: pmx-button-otb {
                                marvell,pins = "mpp35";
                                marvell,function = "gpio";
                        };
-                       pmx_gpio_41: pmx-gpio-41 {
+                       pmx_led_level: pmx-led-level {
                                marvell,pins = "mpp41";
                                marvell,function = "gpio";
                        };
-                       pmx_gpio_42: pmx-gpio-42 {
+                       pmx_led_power_blue: pmx-led-power-blue {
                                marvell,pins = "mpp42";
                                marvell,function = "gpio";
                        };
-                       pmx_gpio_43: pmx-gpio-43 {
+                       pmx_led_power_red: pmx-power-red {
                                marvell,pins = "mpp43";
                                marvell,function = "gpio";
                        };
-                       pmx_gpio_44: pmx-gpio-44 {
+                       pmx_led_usb1: pmx-led-usb1 {
                                marvell,pins = "mpp44";
                                marvell,function = "gpio";
                        };
-                       pmx_gpio_45: pmx-gpio-45 {
+                       pmx_led_usb2: pmx-led-usb2 {
                                marvell,pins = "mpp45";
                                marvell,function = "gpio";
                        };
-                       pmx_gpio_46: pmx-gpio-46 {
+                       pmx_led_usb3: pmx-led-usb3 {
                                marvell,pins = "mpp46";
                                marvell,function = "gpio";
                        };
-                       pmx_gpio_47: pmx-gpio-47 {
+                       pmx_led_usb4: pmx-led-usb4 {
                                marvell,pins = "mpp47";
                                marvell,function = "gpio";
                        };
-                       pmx_gpio_48: pmx-gpio-48 {
+                       pmx_led_otb: pmx-led-otb {
                                marvell,pins = "mpp48";
                                marvell,function = "gpio";
                        };
 
        gpio-leds {
                compatible = "gpio-leds";
+               pinctrl-0 = < &pmx_led_level &pmx_led_power_blue
+                             &pmx_led_power_red &pmx_led_usb1
+                             &pmx_led_usb2 &pmx_led_usb3
+                             &pmx_led_usb4 &pmx_led_otb >;
+               pinctrl-names = "default";
 
                led-level {
                        label = "led_level";
                compatible = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-0 = < &pmx_button_reset &pmx_button_otb >;
+               pinctrl-names = "default";
+
                button@1 {
                        label = "OTB Button";
                        linux,code = <133>;
index 3694e94f6e99dc93aaf91985f55c6245830a92af..00a7bfe5e83bbb060efc14d84489dad1ff588ea0 100644 (file)
 
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
-
-                       pinctrl-0 = < &pmx_button_reset &pmx_button_power
-                                     &pmx_led_backup &pmx_led_power
-                                     &pmx_button_otb &pmx_led_rebuild
-                                     &pmx_led_health
-                                     &pmx_led_sata_brt_ctrl_1
+                       pinctrl-0 = < &pmx_led_sata_brt_ctrl_1
                                      &pmx_led_sata_brt_ctrl_2
                                      &pmx_led_backup_brt_ctrl_1
                                      &pmx_led_backup_brt_ctrl_2
        };
        gpio-leds {
                compatible = "gpio-leds";
+               pinctrl-0 = < &pmx_led_backup &pmx_led_power
+                             &pmx_led_rebuild &pmx_led_health >;
+               pinctrl-names = "default";
 
                power_led {
                        label = "status:white:power_led";
                compatible = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-0 = <&pmx_button_reset &pmx_button_power
+                            &pmx_button_otb>;
+               pinctrl-names = "default";
+
+
                Power {
                        label = "Power Button";
                        linux,code = <116>;
index 0bdce0ad72772e588d8182ccdb3015ef1224775a..c3f036b86ccad52691ddcc4c564e4f77f4a6c911 100644 (file)
@@ -13,6 +13,8 @@
 
        ocp@f1000000 {
                sata@80000 {
+                       pinctrl-0 = <&pmx_ns2_sata0>;
+                       pinctrl-names = "default";
                        status = "okay";
                        nr-ports = <1>;
                };
index 5bbd0542cdd3b97848515a64fd55b49adfd0eaec..5d9f5ea787001ecf8f715f38c83e91e22c804cb5 100644 (file)
@@ -18,9 +18,7 @@
 
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
-
-                       pinctrl-0 = < &pmx_nand &pmx_i2c_gpio_sda
-                               &pmx_i2c_gpio_scl >;
+                       pinctrl-0 = < &pmx_i2c_gpio_sda &pmx_i2c_gpio_scl >;
                        pinctrl-names = "default";
 
                        pmx_i2c_gpio_sda: pmx-gpio-sda {
                };
 
                nand@3000000 {
+                       pinctrl-0 = <&pmx_nand>;
+                       pinctrl-names = "default";
                        status = "ok";
                        chip-delay = <25>;
                };
        };
+
+       i2c@0 {
+               compatible = "i2c-gpio";
+               gpios = < &gpio0 8 0            /* sda */
+                       &gpio0 9 0 >;           /* scl */
+               i2c-gpio,delay-us = <2>;        /* ~100 kHz */
+       };
 };
index 996c7fefd253956c03d1a70a12f7be2db90dfa8f..31b17f5b9d285cc3fdb956157fe2a79b0cdccb63 100644 (file)
@@ -8,16 +8,6 @@
 
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
-
-                       pinctrl-0 = < &pmx_power_hdd &pmx_usb_vbus
-                                     &pmx_fan_low &pmx_fan_high
-                                     &pmx_led_function_red &pmx_led_alarm
-                                     &pmx_led_info &pmx_led_power
-                                     &pmx_fan_lock &pmx_button_function
-                                     &pmx_power_switch &pmx_power_auto_switch
-                                     &pmx_led_function_blue >;
-                       pinctrl-names = "default";
-
                        pmx_power_hdd: pmx-power-hdd {
                                marvell,pins = "mpp10";
                                marvell,function = "gpo";
                compatible = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-0 = <&pmx_button_function &pmx_power_switch
+                            &pmx_power_auto_switch>;
+               pinctrl-names = "default";
+
                button@1 {
                        label = "Function Button";
                        linux,code = <357>;
 
        gpio_leds {
                compatible = "gpio-leds";
+               pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
+                            &pmx_led_info &pmx_led_power
+                            &pmx_led_function_blue>;
+               pinctrl-names = "default";
 
                led@1 {
                        label = "lsxl:blue:func";
 
        gpio_fan {
                compatible = "gpio-fan";
+               pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
+               pinctrl-names = "default";
                gpios = <&gpio0 19 1
                         &gpio0 18 1>;
                gpio-fan,speed-map = <0    3
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-0 = <&pmx_power_hdd &pmx_usb_vbus>;
+               pinctrl-names = "default";
 
                usb_power: regulator@1 {
                        compatible = "regulator-fixed";
index 90501cf129bbee8b648fa9d808c45cfb5a58a93e..6179333fd71f33e628146a5bce9ed68140ffdbf3 100644 (file)
 
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
-
-                       pinctrl-0 = < &pmx_nand &pmx_uart0
-                                     &pmx_led_health
-                                     &pmx_sata0 &pmx_sata1
-                                     &pmx_led_user1o
-                                     &pmx_led_user1g &pmx_led_user0o
-                                     &pmx_led_user0g &pmx_led_misc
-                                   >;
-                       pinctrl-names = "default";
-
                        pmx_led_health: pmx-led-health {
                                marvell,pins = "mpp7";
                                marvell,function = "gpo";
 
                 serial@12000 {
                         status = "ok";
+                        pinctrl-0 = <&pmx_uart0>;
+                        pinctrl-names = "default";
                 };
 
                 nand@3000000 {
+                        pinctrl-0 = <&pmx_nand>;
+                        pinctrl-names = "default";
                         status = "okay";
 
                         partition@0 {
                };
 
                sata@80000 {
+                       pinctrl-0 = <&pmx_sata0 &pmx_sata1>;
+                       pinctrl-names = "default";
                        nr-ports = <2>;
                        status = "okay";
-
                };
 
                mvsdio@90000 {
                        pinctrl-0 = <&pmx_sdio &pmx_sdio_cd>;
                        pinctrl-names = "default";
                        status = "okay";
-                       cd-gpios = <&gpio1 15 0>;
+                       cd-gpios = <&gpio1 15 1>;
                        /* No WP GPIO */
                };
 
 
        gpio-leds {
                compatible = "gpio-leds";
+               pinctrl-0 = < &pmx_led_health
+                             &pmx_led_user1o
+                             &pmx_led_user1g &pmx_led_user0o
+                             &pmx_led_user0g &pmx_led_misc
+                           >;
+               pinctrl-names = "default";
 
                health {
                        label = "status:green:health";
index 0f852b40f5c1111fbad856e8388dfebf4e590e96..ad6ade7d91912fb146adee2b929984ac3790e3ef 100644 (file)
 
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
-
-                       pinctrl-0 = < &pmx_uart0
-                                     &pmx_button_power
-                                     &pmx_button_backup
-                                     &pmx_button_reset
-                                     &pmx_led_blue_power
-                                     &pmx_led_blue_activity
-                                     &pmx_led_blue_disk1
-                                     &pmx_led_blue_disk2
-                                     &pmx_led_blue_backup >;
-                       pinctrl-names = "default";
-
                        pmx_button_power: pmx-button-power {
                                marvell,pins = "mpp47";
                                marvell,function = "gpio";
@@ -74,6 +62,8 @@
                };
 
                serial@12000 {
+                       pinctrl-0 = <&pmx_uart0>;
+                       pinctrl-names = "default";
                        status = "okay";
                };
 
 
        gpio-leds {
                compatible = "gpio-leds";
+               pinctrl-0 = < &pmx_led_blue_power &pmx_led_blue_activity
+                             &pmx_led_blue_disk1 &pmx_led_blue_disk2
+                             &pmx_led_blue_backup >;
+               pinctrl-names = "default";
 
                power_led {
                        label = "status:blue:power_led";
                compatible = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-0 = <&pmx_button_power &pmx_button_backup
+                            &pmx_button_reset>;
+               pinctrl-names = "default";
+
                button@1 {
                        label = "Power Button";
                        linux,code = <116>;     /* KEY_POWER */
index 6affd924fe11c48df75653970cb92cbac7954591..2afac04058167dc896283d452426e145bbcb4f5c 100644 (file)
@@ -8,10 +8,6 @@
 
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
-                       pinctrl-0 = < &pmx_spi &pmx_twsi0 &pmx_uart0
-                                       &pmx_ns2_sata0 &pmx_ns2_sata1>;
-                       pinctrl-names = "default";
-
                        pmx_ns2_sata0: pmx-ns2-sata0 {
                                marvell,pins = "mpp21";
                                marvell,function = "sata0";
                };
 
                serial@12000 {
+                       pinctrl-0 = <&pmx_uart0>;
+                       pinctrl-names = "default";
                        status = "okay";
                };
 
                spi@10600 {
+                       pinctrl-0 = <&pmx_spi>;
+                       pinctrl-names = "default";
                        status = "okay";
 
                        flash@0 {
@@ -45,6 +45,8 @@
                };
 
                i2c@11000 {
+                       pinctrl-0 = <&pmx_twsi0>;
+                       pinctrl-names = "default";
                        status = "okay";
 
                        eeprom@50 {
index f2d36ecf36d8f4d416da329d64a497cf820b2e65..b50e93d7796c27c6beb583733257d3795175169b 100644 (file)
@@ -13,6 +13,8 @@
 
        ocp@f1000000 {
                sata@80000 {
+                       pinctrl-0 = <&pmx_ns2_sata0>;
+                       pinctrl-names = "default";
                        status = "okay";
                        nr-ports = <1>;
                };
index b02eb4ea1bb4557d7d0b8cdbd61adc0c142a353b..af8259fe89552e610c6bd0122ae25638e81fb093 100644 (file)
@@ -13,6 +13,8 @@
 
        ocp@f1000000 {
                sata@80000 {
+                       pinctrl-0 = <&pmx_ns2_sata0>;
+                       pinctrl-names = "default";
                        status = "okay";
                        nr-ports = <1>;
                };
index bcec4d6cada7d155be9a4b0932f1464366f16a3f..85f24d227e17cffb41ad712b0fa81e6d0d9a88be 100644 (file)
@@ -13,6 +13,8 @@
 
        ocp@f1000000 {
                sata@80000 {
+                       pinctrl-0 = <&pmx_ns2_sata0 &pmx_ns2_sata1>;
+                       pinctrl-names = "default";
                        status = "okay";
                        nr-ports = <2>;
                };
index adab1ab257332c633cc46ec6e628ea2eadff27a7..329e530bffe72c32d3dc62165ea1284419baf2e7 100644 (file)
@@ -14,6 +14,8 @@
 
        ocp@f1000000 {
                sata@80000 {
+                       pinctrl-0 = <&pmx_ns2_sata0>;
+                       pinctrl-names = "default";
                        status = "okay";
                        nr-ports = <1>;
                };
index 9ddf218f2cbd5fbca848b390d68e756c12140954..69003598f5faa8287d593a03b9a5371e9254e4bb 100644 (file)
@@ -1,6 +1,7 @@
 /dts-v1/;
 
 /include/ "kirkwood.dtsi"
+/include/ "kirkwood-6281.dtsi"
 
 / {
        model = "ZyXEL NSA310";
 
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
-                       pinctrl-0 = < &pmx_led_esata_green
-                                     &pmx_led_esata_red
-                                     &pmx_led_usb_green
-                                     &pmx_led_usb_red
-                                     &pmx_usb_power_off
-                                     &pmx_led_sys_green
-                                     &pmx_led_sys_red
-                                     &pmx_btn_reset
-                                     &pmx_btn_copy
-                                     &pmx_led_copy_green
-                                     &pmx_led_copy_red
-                                     &pmx_led_hdd_green
-                                     &pmx_led_hdd_red
-                                     &pmx_unknown
-                                     &pmx_btn_power
-                                     &pmx_pwr_off >;
+                       pinctrl-0 = <&pmx_unknown>;
                        pinctrl-names = "default";
 
                        pmx_led_esata_green: pmx-led-esata-green {
                compatible = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-0 = <&pmx_btn_reset &pmx_btn_copy &pmx_btn_power>;
+               pinctrl-names = "default";
 
                button@1 {
                        label = "Power Button";
 
        gpio-leds {
                compatible = "gpio-leds";
+               pinctrl-0 = <&pmx_led_esata_green &pmx_led_esata_red
+                            &pmx_led_usb_green &pmx_led_usb_red
+                            &pmx_led_sys_green &pmx_led_sys_red
+                            &pmx_led_copy_green &pmx_led_copy_red
+                            &pmx_led_hdd_green &pmx_led_hdd_red>;
+               pinctrl-names = "default";
 
                green-sys {
                        label = "nsa310:green:sys";
 
        gpio_poweroff {
                compatible = "gpio-poweroff";
+               pinctrl-0 = <&pmx_pwr_off>;
+               pinctrl-names = "default";
                gpios = <&gpio1 16 0>;
        };
 
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-0 = <&pmx_usb_power_off>;
+               pinctrl-names = "default";
 
                usb0_power_off: regulator@1 {
                        compatible = "regulator-fixed";
index d27f7245f8e71a07539b041121b66cb06e2402a7..38dc8517d777244fb75f9848cccb449b80a338d3 100644 (file)
        ocp@f1000000 {
                serial@12000 {
                        status = "ok";
+                       pinctrl-0 = <&pmx_uart0>;
+                       pinctrl-names = "default";
                };
 
                serial@12100 {
                        status = "ok";
+                       pinctrl-0 = <&pmx_uart1>;
+                       pinctrl-names = "default";
                };
 
                nand@3000000 {
                        chip-delay = <25>;
                        status = "okay";
+                       pinctrl-0 = <&pmx_nand>;
+                       pinctrl-names = "default";
 
                        partition@0 {
                                label = "uboot";
@@ -67,6 +73,8 @@
 
                i2c@11100 {
                        status = "okay";
+                       pinctrl-0 = <&pmx_twsi1>;
+                       pinctrl-names = "default";
 
                        s35390a: s35390a@30 {
                                compatible = "s35390a";
                };
 
                pinctrl: pinctrl@10000 {
-                       pinctrl-0 = < &pmx_nand &pmx_uart0
-                               &pmx_uart1 &pmx_twsi1
-                               &pmx_dip_sw0 &pmx_dip_sw1
-                               &pmx_dip_sw2 &pmx_dip_sw3
-                               &pmx_gpio_0 &pmx_gpio_1
-                               &pmx_gpio_2 &pmx_gpio_3
-                               &pmx_gpio_4 &pmx_gpio_5
-                               &pmx_gpio_6 &pmx_gpio_7
-                               &pmx_led_red &pmx_led_green
-                               &pmx_led_yellow >;
+                       pinctrl-0 = <&pmx_dip_switches &pmx_gpio_header>;
                        pinctrl-names = "default";
 
                        pmx_uart0: pmx-uart0 {
                                marvell,function = "sysrst";
                        };
 
-                       pmx_dip_sw0: pmx-dip-sw0 {
-                               marvell,pins = "mpp20";
-                               marvell,function = "gpio";
-                       };
-
-                       pmx_dip_sw1: pmx-dip-sw1 {
-                               marvell,pins = "mpp21";
-                               marvell,function = "gpio";
-                       };
-
-                       pmx_dip_sw2: pmx-dip-sw2 {
-                               marvell,pins = "mpp22";
-                               marvell,function = "gpio";
-                       };
-
-                       pmx_dip_sw3: pmx-dip-sw3 {
-                               marvell,pins = "mpp23";
-                               marvell,function = "gpio";
-                       };
-
-                       pmx_gpio_0: pmx-gpio-0 {
-                               marvell,pins = "mpp24";
-                               marvell,function = "gpio";
-                       };
-
-                       pmx_gpio_1: pmx-gpio-1 {
-                               marvell,pins = "mpp25";
-                               marvell,function = "gpio";
-                       };
-
-                       pmx_gpio_2: pmx-gpio-2 {
-                               marvell,pins = "mpp26";
+                       pmx_dip_switches: pmx-dip-switches {
+                               marvell,pins = "mpp20", "mpp21", "mpp22", "mpp23";
                                marvell,function = "gpio";
                        };
 
-                       pmx_gpio_3: pmx-gpio-3 {
-                               marvell,pins = "mpp27";
-                               marvell,function = "gpio";
-                       };
-
-                       pmx_gpio_4: pmx-gpio-4 {
-                               marvell,pins = "mpp28";
-                               marvell,function = "gpio";
-                       };
-
-                       pmx_gpio_5: pmx-gpio-5 {
-                               marvell,pins = "mpp29";
-                               marvell,function = "gpio";
-                       };
-
-                       pmx_gpio_6: pmx-gpio-6 {
-                               marvell,pins = "mpp30";
-                               marvell,function = "gpio";
-                       };
-
-                       pmx_gpio_7: pmx-gpio-7 {
-                               marvell,pins = "mpp31";
+                       pmx_gpio_header: pmx-gpio-header {
+                               marvell,pins = "mpp24", "mpp25", "mpp26", "mpp27",
+                                              "mpp28", "mpp29", "mpp30", "mpp31";
                                marvell,function = "gpio";
                        };
 
                                marvell,function = "gpio";
                        };
 
-                       pmx_led_red: pmx-led-red {
-                               marvell,pins = "mpp41";
-                               marvell,function = "gpio";
-                       };
-
-                       pmx_led_green: pmx-led-green {
-                               marvell,pins = "mpp42";
-                               marvell,function = "gpio";
-                       };
-
-                       pmx_led_yellow: pmx-led-yellow {
-                               marvell,pins = "mpp43";
+                       pmx_leds: pmx-leds {
+                               marvell,pins = "mpp41", "mpp42", "mpp43";
                                marvell,function = "gpio";
                        };
                };
 
        gpio-leds {
                compatible = "gpio-leds";
+               pinctrl-0 = <&pmx_leds>;
+               pinctrl-names = "default";
 
                led-red {
                        label = "obsa6:red:stat";
                        gpios = <&gpio1 11 1>;
                };
         };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&pmx_gpio_init>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               button@1 {
+                       label = "Init Button";
+                       linux,code = <116>;
+                       gpios = <&gpio1 6 0>;
+               };
+       };
 };
diff --git a/arch/arm/boot/dts/kirkwood-sheevaplug-common.dtsi b/arch/arm/boot/dts/kirkwood-sheevaplug-common.dtsi
new file mode 100644 (file)
index 0000000..f7143f1
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * kirkwood-sheevaplug-common.dts - Common parts for Sheevaplugs
+ *
+ * Copyright (C) 2013 Simon Baatz <gmbnomis@gmail.com>
+ *
+ * Licensed under GPLv2
+ */
+
+/include/ "kirkwood.dtsi"
+/include/ "kirkwood-6281.dtsi"
+
+/ {
+       memory {
+               device_type = "memory";
+               reg = <0x00000000 0x20000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200n8 earlyprintk";
+       };
+
+       ocp@f1000000 {
+               pinctrl: pinctrl@10000 {
+
+                       pmx_usb_power_enable: pmx-usb-power-enable {
+                               marvell,pins = "mpp29";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_red: pmx-led-red {
+                               marvell,pins = "mpp46";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_blue: pmx-led-blue {
+                               marvell,pins = "mpp49";
+                               marvell,function = "gpio";
+                       };
+                       pmx_sdio_cd: pmx-sdio-cd {
+                               marvell,pins = "mpp44";
+                               marvell,function = "gpio";
+                       };
+                       pmx_sdio_wp: pmx-sdio-wp {
+                               marvell,pins = "mpp47";
+                               marvell,function = "gpio";
+                       };
+               };
+               serial@12000 {
+                       pinctrl-0 = <&pmx_uart0>;
+                       pinctrl-names = "default";
+                       status = "okay";
+               };
+
+               nand@3000000 {
+                       pinctrl-0 = <&pmx_nand>;
+                       pinctrl-names = "default";
+                       status = "okay";
+
+                       partition@0 {
+                               label = "u-boot";
+                               reg = <0x0000000 0x100000>;
+                       };
+
+                       partition@100000 {
+                               label = "uImage";
+                               reg = <0x0100000 0x400000>;
+                       };
+
+                       partition@500000 {
+                               label = "root";
+                               reg = <0x0500000 0x1fb00000>;
+                       };
+               };
+       };
+
+       regulators {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-0 = <&pmx_usb_power_enable>;
+               pinctrl-names = "default";
+
+               usb_power: regulator@1 {
+                       compatible = "regulator-fixed";
+                       reg = <1>;
+                       regulator-name = "USB Power";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       enable-active-high;
+                       regulator-always-on;
+                       regulator-boot-on;
+                       gpio = <&gpio0 29 0>;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/kirkwood-sheevaplug-esata.dts b/arch/arm/boot/dts/kirkwood-sheevaplug-esata.dts
new file mode 100644 (file)
index 0000000..f620ce4
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * kirkwood-sheevaplug-esata.dts - Device tree file for eSATA Sheevaplug
+ *
+ * Copyright (C) 2013 Simon Baatz <gmbnomis@gmail.com>
+ *
+ * Licensed under GPLv2
+ */
+
+/dts-v1/;
+
+/include/ "kirkwood-sheevaplug-common.dtsi"
+
+/ {
+       model = "Globalscale Technologies eSATA SheevaPlug";
+       compatible = "globalscale,sheevaplug-esata-rev13", "globalscale,sheevaplug-esata", "globalscale,sheevaplug", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+       ocp@f1000000 {
+               sata@80000 {
+                       status = "okay";
+                       nr-ports = <2>;
+               };
+
+               mvsdio@90000 {
+                       pinctrl-0 = <&pmx_sdio &pmx_sdio_cd &pmx_sdio_wp>;
+                       pinctrl-names = "default";
+                       status = "okay";
+                       cd-gpios = <&gpio1 12 1>;
+                       wp-gpios = <&gpio1 15 0>;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-0 = <&pmx_led_blue>;
+               pinctrl-names = "default";
+
+               health {
+                       label = "sheevaplug:blue:health";
+                       gpios = <&gpio1 17 1>;
+                       linux,default-trigger = "default-on";
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/kirkwood-sheevaplug.dts b/arch/arm/boot/dts/kirkwood-sheevaplug.dts
new file mode 100644 (file)
index 0000000..bf1dff2
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * kirkwood-sheevaplug-esata.dts - Device tree file for Sheevaplug
+ *
+ * Copyright (C) 2013 Simon Baatz <gmbnomis@gmail.com>
+ *
+ * Licensed under GPLv2
+ */
+
+/dts-v1/;
+
+/include/ "kirkwood-sheevaplug-common.dtsi"
+
+/ {
+       model = "Globalscale Technologies SheevaPlug";
+       compatible = "globalscale,sheevaplug", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+       ocp@f1000000 {
+               mvsdio@90000 {
+                       pinctrl-0 = <&pmx_sdio>;
+                       pinctrl-names = "default";
+                       status = "okay";
+                       /* No CD or WP GPIOs */
+                       broken-cd;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-0 = <&pmx_led_blue &pmx_led_red>;
+               pinctrl-names = "default";
+
+               health {
+                       label = "sheevaplug:blue:health";
+                       gpios = <&gpio1 17 1>;
+                       linux,default-trigger = "default-on";
+               };
+
+               misc {
+                       label = "sheevaplug:red:misc";
+                       gpios = <&gpio1 14 1>;
+               };
+       };
+};
index 66eb45b00b25218476c372a5bb1dfc20f3046fb0..f2052d7bc10f1ffc0ee39acc796a21227c5a432c 100644 (file)
 
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
-                       /*
-                        * GPIO LED layout
-                        *
-                        *       /-SYS_LED(2)
-                        *       |
-                        *       |   /-DISK_LED
-                        *       |   |
-                        *       |   |   /-WLAN_LED(2)
-                        *       |   |   |
-                        * [SW] [*] [*] [*]
-                        */
-
                        /*
                         * Switch positions
                         *
                         *     |   |   |
                         * PS [L] [I] [R] LEDS
                         */
-                       pinctrl-0 = < &pmx_led_disk_yellow
-                                     &pmx_sata0_pwr_enable
-                                     &pmx_led_sys_red
-                                     &pmx_led_sys_blue
-                                     &pmx_led_wifi_green
-                                     &pmx_sw_left
-                                     &pmx_sw_right
-                                     &pmx_sw_idle
-                                     &pmx_sw_left2
-                                     &pmx_led_wifi_yellow
-                                     &pmx_uart0
-                                     &pmx_nand
-                                     &pmx_twsi0 >;
+                       pinctrl-0 = <&pmx_sw_left &pmx_sw_right
+                                    &pmx_sw_idle &pmx_sw_left2>;
                        pinctrl-names = "default";
 
                        pmx_led_disk_yellow: pmx-led-disk-yellow {
 
                serial@12000 {
                        status = "ok";
+                       pinctrl-0 = <&pmx_uart0>;
+                       pinctrl-names = "default";
                };
 
                nand@3000000 {
                        status = "okay";
+                       pinctrl-0 = <&pmx_nand>;
+                       pinctrl-names = "default";
 
                        partition@0 {
                                label = "u-boot";
 
                i2c@11000 {
                        status = "ok";
+                       pinctrl-0 = <&pmx_twsi0>;
+                       pinctrl-names = "default";
                };
 
                mvsdio@90000 {
                        pinctrl-names = "default";
                        status = "okay";
                        /* No CD or WP GPIOs */
+                       broken-cd;
                };
        };
 
        gpio-leds {
+               /*
+                * GPIO LED layout
+                *
+                *       /-SYS_LED(2)
+                *       |
+                *       |   /-DISK_LED
+                *       |   |
+                *       |   |   /-WLAN_LED(2)
+                *       |   |   |
+                * [SW] [*] [*] [*]
+                */
+
                compatible = "gpio-leds";
+               pinctrl-0 = <&pmx_led_disk_yellow &pmx_led_sys_red
+                            &pmx_led_sys_blue &pmx_led_wifi_green
+                            &pmx_led_wifi_yellow>;
+               pinctrl-names = "default";
 
                disk {
                        label = "topkick:yellow:disk";
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-0 = <&pmx_sata0_pwr_enable>;
+               pinctrl-names = "default";
 
                sata0_power: regulator@1 {
                        compatible = "regulator-fixed";
index 42648ab77c617f306c34f92befd45eea1b3e23c0..6dd1038e4de401b4a601aa3e91a6603b7a1f60ab 100644 (file)
@@ -8,10 +8,7 @@
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
 
-                       pinctrl-0 = < &pmx_uart0 &pmx_uart1 &pmx_spi
-                                     &pmx_twsi0 &pmx_sata0 &pmx_sata1
-                                     &pmx_ram_size &pmx_reset_button
-                                     &pmx_USB_copy_button &pmx_board_id>;
+                       pinctrl-0 = <&pmx_ram_size &pmx_board_id>;
                        pinctrl-names = "default";
 
                        pmx_ram_size: pmx-ram-size {
@@ -39,6 +36,9 @@
                compatible = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-0 = <&pmx_reset_button &pmx_USB_copy_button>;
+               pinctrl-names = "default";
+
                button@1 {
                        label = "USB Copy";
                        linux,code = <133>;
index 95ceeb93ba5ada0ce4a6823a06b786287fb42cdb..6fdc5ffcaae54244c544cc2242ed96fe5f889265 100644 (file)
@@ -8,10 +8,7 @@
        ocp@f1000000 {
                pinctrl: pinctrl@10000 {
 
-                       pinctrl-0 = < &pmx_uart0 &pmx_uart1 &pmx_spi
-                                     &pmx_twsi0 &pmx_sata0 &pmx_sata1
-                                     &pmx_ram_size &pmx_reset_button
-                                     &pmx_USB_copy_button &pmx_board_id>;
+                       pinctrl-0 = <&pmx_ram_size &pmx_board_id>;
                        pinctrl-names = "default";
 
                        pmx_ram_size: pmx-ram-size {
                                marvell,function = "gpio";
                        };
                };
+               pcie-controller {
+                       status = "okay";
+
+                       pcie@2,0 {
+                               status = "okay";
+                       };
+               };
+
        };
 
        gpio_keys {
                compatible = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-0 = <&pmx_reset_button &pmx_USB_copy_button>;
+               pinctrl-names = "default";
+
                button@1 {
                        label = "USB Copy";
                        linux,code = <133>;
index 09c820fc177f94eadc2e6325eee5664f12f78823..0c9a94cd666c597dab629b8a9a7908f02e82abd6 100644 (file)
@@ -15,6 +15,8 @@
                i2c@11000 {
                        status = "okay";
                        clock-frequency = <400000>;
+                       pinctrl-0 = <&pmx_twsi0>;
+                       pinctrl-names = "default";
 
                        s35390a: s35390a@30 {
                                compatible = "s35390a";
                serial@12000 {
                        clock-frequency = <200000000>;
                        status = "okay";
+                       pinctrl-0 = <&pmx_uart0>;
+                       pinctrl-names = "default";
                };
                serial@12100 {
                        clock-frequency = <200000000>;
                        status = "okay";
+                       pinctrl-0 = <&pmx_uart1>;
+                       pinctrl-names = "default";
                };
                poweroff@12100 {
                        compatible = "qnap,power-off";
@@ -36,6 +42,8 @@
                };
                spi@10600 {
                        status = "okay";
+                       pinctrl-0 = <&pmx_spi>;
+                       pinctrl-names = "default";
 
                        m25p128@0 {
                                #address-cells = <1>;
@@ -74,6 +82,8 @@
                        };
                };
                sata@80000 {
+                       pinctrl-0 = <&pmx_sata0 &pmx_sata1>;
+                       pinctrl-names = "default";
                        status = "okay";
                        nr-ports = <2>;
                };
index 7eef88f00fea9532d91f81648554f97a9cb5f11d..9809fc1f105ccf683ede2fc11afee659a483a5dc 100644 (file)
@@ -4,6 +4,18 @@
        compatible = "marvell,kirkwood";
        interrupt-parent = <&intc>;
 
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "marvell,feroceon";
+                       clocks = <&core_clk 1>, <&core_clk 3>, <&gate_clk 11>;
+                       clock-names = "cpu_clk", "ddrclk", "powersave";
+               };
+       };
+
        aliases {
               gpio0 = &gpio0;
               gpio1 = &gpio1;
@@ -18,8 +30,9 @@
 
        ocp@f1000000 {
                compatible = "simple-bus";
-               ranges = <0x00000000 0xf1000000 0x4000000
+               ranges = <0x00000000 0xf1000000 0x0100000
                          0xe0000000 0xe0000000 0x8100000 /* PCIE */
+                         0xf4000000 0xf4000000 0x0000400
                          0xf5000000 0xf5000000 0x0000400>;
                #address-cells = <1>;
                #size-cells = <1>;
                        status = "disabled";
                };
 
-               rtc@10300 {
-                       compatible = "marvell,kirkwood-rtc", "marvell,orion-rtc";
-                       reg = <0x10300 0x20>;
-                       interrupts = <53>;
-                       clocks = <&gate_clk 7>;
-               };
-
                spi@10600 {
                        compatible = "marvell,orion-spi";
                        #address-cells = <1>;
                        status = "okay";
                };
 
-               sata@80000 {
-                       compatible = "marvell,orion-sata";
-                       reg = <0x80000 0x5000>;
-                       interrupts = <21>;
-                       clocks = <&gate_clk 14>, <&gate_clk 15>;
-                       clock-names = "0", "1";
-                       status = "disabled";
-               };
-
                nand@3000000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ale = <1>;
                        bank-width = <1>;
                        compatible = "marvell,orion-nand";
-                       reg = <0x3000000 0x400>;
+                       reg = <0xf4000000 0x400>;
                        chip-delay = <25>;
                        /* set partition map and/or chip-delay in board dts */
                        clocks = <&gate_clk 7>;
                        clocks = <&gate_clk 17>;
                        status = "okay";
                };
-
-               mvsdio@90000 {
-                       compatible = "marvell,orion-sdio";
-                       reg = <0x90000 0x200>;
-                       interrupts = <28>;
-                       clocks = <&gate_clk 4>;
-                       status = "disabled";
-               };
        };
 };
index 1582f484a86762976bc6f40d27429d0644a00672..3abebb75fc57c729ee7f615276862e60a6d51171 100644 (file)
        interrupt-parent = <&mic>;
 
        cpus {
-               cpu@0 {
-                       compatible = "arm,arm926ejs";
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       compatible = "arm,arm926ej-s";
+                       device_type = "cpu";
                };
        };
 
index 37aa7487d4d86791be2ad6f51065708f31fcaa80..a2bfcde858a6ec68f96fd123c515747f3c053004 100644 (file)
@@ -8,7 +8,10 @@
  * kind, whether express or implied.
  */
 
-/include/ "skeleton.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/omap.h>
+
+#include "skeleton.dtsi"
 
 / {
        compatible = "ti,omap2430", "ti,omap2420", "ti,omap2";
        };
 
        cpus {
-               cpu@0 {
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
                        compatible = "arm,arm1136jf-s";
+                       device_type = "cpu";
                };
        };
 
index 68282ee13e2692770c1f1222016e369a0f4ed6d3..224c08f472f42788d9903f70b67640cad47ddb9b 100644 (file)
@@ -7,7 +7,7 @@
  */
 /dts-v1/;
 
-/include/ "omap2420.dtsi"
+#include "omap2420.dtsi"
 
 / {
        model = "TI OMAP2420 H4 board";
index da5b285b73bedd96c1c4abf462f408ce394e60f9..c8f9c55169ead249c9f95add2f15ab99527dd01c 100644 (file)
@@ -8,7 +8,7 @@
  * kind, whether express or implied.
  */
 
-/include/ "omap2.dtsi"
+#include "omap2.dtsi"
 
 / {
        compatible = "ti,omap2420", "ti,omap2";
index 054bc4439568a917a8d28c0c5ebbd5c6dffaf00c..c535a5a2b27f9aa95b313c768893520b82d3a6c7 100644 (file)
@@ -8,7 +8,7 @@
  * kind, whether express or implied.
  */
 
-/include/ "omap2.dtsi"
+#include "omap2.dtsi"
 
 / {
        compatible = "ti,omap2430", "ti,omap2";
index 3046d1f81be004a320acf61d123c732a98266088..afdb16417d4e894bc2df369cd7c229a5b7161043 100644 (file)
@@ -7,7 +7,7 @@
  */
 /dts-v1/;
 
-/include/ "omap36xx.dtsi"
+#include "omap36xx.dtsi"
 
 / {
        model = "TI OMAP3 BeagleBoard xM";
 
                heartbeat {
                        label = "beagleboard::usr0";
-                       gpios = <&gpio5 22 0>; /* 150 -> D6 LED */
+                       gpios = <&gpio5 22 GPIO_ACTIVE_HIGH>; /* 150 -> D6 LED */
                        linux,default-trigger = "heartbeat";
                };
 
                mmc {
                        label = "beagleboard::usr1";
-                       gpios = <&gpio5 21 0>; /* 149 -> D7 LED */
+                       gpios = <&gpio5 21 GPIO_ACTIVE_HIGH>; /* 149 -> D7 LED */
                        linux,default-trigger = "mmc0";
                };
        };
                ti,mcbsp = <&mcbsp2>;
                ti,codec = <&twl_audio>;
        };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+
+               user {
+                       label = "user";
+                       gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+                       linux,code = <0x114>;
+                       gpio-key,wakeup;
+               };
+
+       };
+};
+
+&omap3_pmx_wkup {
+       gpio1_pins: pinmux_gpio1_pins {
+               pinctrl-single,pins = <
+                       0x0e (PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE4) /* sys_boot2.gpio_4 */
+               >;
+       };
 };
 
 &i2c1 {
@@ -75,7 +95,8 @@
        };
 };
 
-/include/ "twl4030.dtsi"
+#include "twl4030.dtsi"
+#include "twl4030_omap3.dtsi"
 
 &i2c2 {
        clock-frequency = <400000>;
        mode = <3>;
        power = <50>;
 };
+
+&omap3_pmx_core {
+       uart3_pins: pinmux_uart3_pins {
+               pinctrl-single,pins = <
+                       0x16e (PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
+                       0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx OUTPUT | MODE0 */
+               >;
+       };
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart3_pins>;
+};
+
+&gpio1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&gpio1_pins>;
+};
index 6eec69997607563e948575ade339b4f1aef3fd2b..dfd83103657aa85669499f747428e9449c1854ff 100644 (file)
@@ -7,7 +7,7 @@
  */
 /dts-v1/;
 
-/include/ "omap34xx.dtsi"
+#include "omap34xx.dtsi"
 
 / {
        model = "TI OMAP3 BeagleBoard";
                compatible = "gpio-leds";
                pmu_stat {
                        label = "beagleboard::pmu_stat";
-                       gpios = <&twl_gpio 19 0>; /* LEDB */
+                       gpios = <&twl_gpio 19 GPIO_ACTIVE_HIGH>; /* LEDB */
                };
 
                heartbeat {
                        label = "beagleboard::usr0";
-                       gpios = <&gpio5 22 0>; /* 150 -> D6 LED */
+                       gpios = <&gpio5 22 GPIO_ACTIVE_HIGH>; /* 150 -> D6 LED */
                        linux,default-trigger = "heartbeat";
                };
 
                mmc {
                        label = "beagleboard::usr1";
-                       gpios = <&gpio5 21 0>; /* 149 -> D7 LED */
+                       gpios = <&gpio5 21 GPIO_ACTIVE_HIGH>; /* 149 -> D7 LED */
                        linux,default-trigger = "mmc0";
                };
        };
                reset-supply = <&hsusb2_reset>;
                vcc-supply = <&hsusb2_power>;
        };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+
+               user {
+                       label = "user";
+                       gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+                       linux,code = <0x114>;
+                       gpio-key,wakeup;
+               };
+
+       };
+};
+
+&omap3_pmx_wkup {
+       gpio1_pins: pinmux_gpio1_pins {
+               pinctrl-single,pins = <
+                       0x14 (PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE4) /* sys_boot5.gpio_7 */
+               >;
+       };
 };
 
 &omap3_pmx_core {
 
        hsusbb2_pins: pinmux_hsusbb2_pins {
                pinctrl-single,pins = <
-                       0x5c0 0x3  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_clk OUTPUT */
-                       0x5c2 0x3  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_stp OUTPUT */
-                       0x5c4 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dir INPUT | PULLDOWN */
-                       0x5c6 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_nxt INPUT | PULLDOWN */
-                       0x5c8 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dat0 INPUT | PULLDOWN */
-                       0x5cA 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dat1 INPUT | PULLDOWN */
-                       0x1a4 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dat2 INPUT | PULLDOWN */
-                       0x1a6 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dat3 INPUT | PULLDOWN */
-                       0x1a8 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dat4 INPUT | PULLDOWN */
-                       0x1aa 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dat5 INPUT | PULLDOWN */
-                       0x1ac 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dat6 INPUT | PULLDOWN */
-                       0x1ae 0x10b  /* USBB2_ULPITLL_CLK_MUXMODE.usbb1_ulpiphy_dat7 INPUT | PULLDOWN */
+                       0x5c0 (PIN_OUTPUT | MUX_MODE3)          /* usbb2_ulpitll_clk.usbb1_ulpiphy_clk */
+                       0x5c2 (PIN_OUTPUT | MUX_MODE3)          /* usbb2_ulpitll_clk.usbb1_ulpiphy_stp */
+                       0x5c4 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* usbb2_ulpitll_clk.usbb1_ulpiphy_dir */
+                       0x5c6 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* usbb2_ulpitll_clk.usbb1_ulpiphy_nxt */
+                       0x5c8 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* usbb2_ulpitll_clk.usbb1_ulpiphy_dat0 */
+                       0x5cA (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* usbb2_ulpitll_clk.usbb1_ulpiphy_dat1 */
+                       0x1a4 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* usbb2_ulpitll_clk.usbb1_ulpiphy_dat2 */
+                       0x1a6 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* usbb2_ulpitll_clk.usbb1_ulpiphy_dat3 */
+                       0x1a8 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* usbb2_ulpitll_clk.usbb1_ulpiphy_dat4 */
+                       0x1aa (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* usbb2_ulpitll_clk.usbb1_ulpiphy_dat5 */
+                       0x1ac (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* usbb2_ulpitll_clk.usbb1_ulpiphy_dat6 */
+                       0x1ae (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* usbb2_ulpitll_clk.usbb1_ulpiphy_dat7 */
+               >;
+       };
+
+       uart3_pins: pinmux_uart3_pins {
+               pinctrl-single,pins = <
+                       0x16e (PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
+                       0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
                >;
        };
 };
        };
 };
 
-/include/ "twl4030.dtsi"
+#include "twl4030.dtsi"
+#include "twl4030_omap3.dtsi"
 
 &mmc1 {
        vmmc-supply = <&vmmc1>;
         */
        ti,pulldowns = <0x03a1c4>;
 };
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart3_pins>;
+};
+
+&gpio1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&gpio1_pins>;
+};
index 8a5cdcc6debd37a76e9247a395b3925f5fe00bee..af32eff9f4b78c00ada0a776fd5f7519e7122c9a 100644 (file)
@@ -7,7 +7,7 @@
  */
 /dts-v1/;
 
-/include/ "omap34xx.dtsi"
+#include "omap34xx.dtsi"
 / {
        model = "TimLL OMAP3 Devkit8000";
        compatible = "timll,omap3-devkit8000", "ti,omap3";
 
                heartbeat {
                        label = "devkit8000::led1";
-                       gpios = <&gpio6 26 0>;  /* 186 -> LED1 */
+                       gpios = <&gpio6 26 GPIO_ACTIVE_HIGH>;   /* 186 -> LED1 */
                        default-state = "on";
                        linux,default-trigger = "heartbeat";
                };
 
                mmc {
                        label = "devkit8000::led2";
-                       gpios = <&gpio6 3 0>;   /* 163 -> LED2 */
+                       gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>;    /* 163 -> LED2 */
                        default-state = "on";
                        linux,default-trigger = "none";
                };
 
                usr {
                        label = "devkit8000::led3";
-                       gpios = <&gpio6 4 0>;   /* 164 -> LED3 */
+                       gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>;    /* 164 -> LED3 */
                        default-state = "on";
                        linux,default-trigger = "usr";
                 };
@@ -80,7 +80,8 @@
        status = "disabled";
 };
 
-/include/ "twl4030.dtsi"
+#include "twl4030.dtsi"
+#include "twl4030_omap3.dtsi"
 
 &mmc1 {
        vmmc-supply = <&vmmc1>;
index 96d1c206a57b9f201309166faa466aafed927a8b..7d4329d179c43e24cae9bfaddb4c5b1fbc626535 100644 (file)
@@ -7,7 +7,7 @@
  */
 /dts-v1/;
 
-/include/ "omap34xx.dtsi"
+#include "omap34xx.dtsi"
 
 / {
        model = "TI OMAP3 EVM (OMAP3530, AM/DM37x)";
@@ -28,7 +28,7 @@
                compatible = "gpio-leds";
                ledb {
                        label = "omap3evm::ledb";
-                       gpios = <&twl_gpio 19 0>; /* LEDB */
+                       gpios = <&twl_gpio 19 GPIO_ACTIVE_HIGH>; /* LEDB */
                        linux,default-trigger = "default-on";
                };
        };
@@ -44,7 +44,8 @@
        };
 };
 
-/include/ "twl4030.dtsi"
+#include "twl4030.dtsi"
+#include "twl4030_omap3.dtsi"
 
 &i2c2 {
        clock-frequency = <400000>;
index f8fe3b748c3e676aa84d87ef06a5637aa73edecb..bc48b114eae6404cf0e12ff08113f0bfd6002cf5 100644 (file)
@@ -10,7 +10,7 @@
  */
 /dts-v1/;
 
-/include/ "omap34xx.dtsi"
+#include "omap34xx.dtsi"
 
 / {
        memory {
 &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 */
+                       0x152 (PIN_INPUT | MUX_MODE0)           /* uart1_rx.uart1_rx */
+                       0x14c (PIN_OUTPUT |MUX_MODE0)           /* uart1_tx.uart1_tx */
                >;
        };
 
        uart2_pins: pinmux_uart2_pins {
                pinctrl-single,pins = <
-                       0x14a 0x100     /* uart2_rx.uart2_rx INPUT | MODE0 */
-                       0x148 0         /* uart2_tx.uart2_tx OUTPUT | MODE0 */
+                       0x14a (PIN_INPUT | MUX_MODE0)           /* uart2_rx.uart2_rx */
+                       0x148 (PIN_OUTPUT | MUX_MODE0)          /* uart2_tx.uart2_tx */
                >;
        };
 
        uart3_pins: pinmux_uart3_pins {
                pinctrl-single,pins = <
-                       0x16e 0x100     /* uart3_rx.uart3_rx INPUT | MODE0 */
-                       0x170 0         /* uart3_tx.uart3_tx OUTPUT | MODE0 */
+                       0x16e (PIN_INPUT | MUX_MODE0)           /* uart3_rx.uart3_rx */
+                       0x170 (PIN_OUTPUT | MUX_MODE0)          /* uart3_tx.uart3_tx */
                >;
        };
 
        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 */
+                       0x114 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_clk.sdmmc1_clk */
+                       0x116 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_cmd.sdmmc1_cmd */
+                       0x118 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_dat0.sdmmc1_dat0 */
+                       0x11a (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_dat1.sdmmc1_dat1 */
+                       0x11c (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_dat2.sdmmc1_dat2 */
+                       0x11e (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_dat3.sdmmc1_dat3 */
+                       0x120 (PIN_INPUT | MUX_MODE0)           /* sdmmc1_dat4.sdmmc1_dat4 */
+                       0x122 (PIN_INPUT | MUX_MODE0)           /* sdmmc1_dat5.sdmmc1_dat5 */
+                       0x124 (PIN_INPUT | MUX_MODE0)           /* sdmmc1_dat6.sdmmc1_dat6 */
+                       0x126 (PIN_INPUT | MUX_MODE0)           /* sdmmc1_dat7.sdmmc1_dat7 */
+               >;
+       };
+
+       smsc911x_pins: pinmux_smsc911x_pins {
+               pinctrl-single,pins = <
+                       0x1a2 (PIN_INPUT | MUX_MODE4)           /* mcspi1_cs2.gpio_176 */
                >;
        };
 };
@@ -80,7 +86,8 @@
        };
 };
 
-/include/ "twl4030.dtsi"
+#include "twl4030.dtsi"
+#include "twl4030_omap3.dtsi"
 
 &i2c2 {
        clock-frequency = <400000>;
index e2b98490cc9ad4c26262f044e042a46d2f65b64d..e8c48284587cb0b741347b501f036f746eb22423 100644 (file)
@@ -9,7 +9,7 @@
  * published by the Free Software Foundation.
  */
 
-/include/ "omap3-igep.dtsi"
+#include "omap3-igep.dtsi"
 
 / {
        model = "IGEPv2";
                compatible = "gpio-leds";
                boot {
                         label = "omap3:green:boot";
-                        gpios = <&gpio1 26 0>;
+                        gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
                         default-state = "on";
                };
 
                user0 {
                         label = "omap3:red:user0";
-                        gpios = <&gpio1 27 0>;
+                        gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
                         default-state = "off";
                };
 
                user1 {
                         label = "omap3:red:user1";
-                        gpios = <&gpio1 28 0>;
+                        gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
                         default-state = "off";
                };
 
                user2 {
                        label = "omap3:green:user1";
-                       gpios = <&twl_gpio 19 1>;
+                       gpios = <&twl_gpio 19 GPIO_ACTIVE_LOW>;
                };
        };
+
+       vddvario: regulator-vddvario {
+                 compatible = "regulator-fixed";
+                 regulator-name = "vddvario";
+                 regulator-always-on;
+       };
+
+       vdd33a: regulator-vdd33a {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd33a";
+               regulator-always-on;
+       };
 };
 
 &i2c3 {
                reg = <0x50>;
        };
 };
+
+&gpmc {
+       ranges = <0 0 0x00000000 0x20000000>,
+                <5 0 0x2c000000 0x01000000>;
+
+       nand@0,0 {
+               linux,mtd-name= "micron,mt29c4g96maz";
+               reg = <0 0 0>;
+               nand-bus-width = <16>;
+               ti,nand-ecc-opt = "bch8";
+
+               gpmc,sync-clk-ps = <0>;
+               gpmc,cs-on-ns = <0>;
+               gpmc,cs-rd-off-ns = <44>;
+               gpmc,cs-wr-off-ns = <44>;
+               gpmc,adv-on-ns = <6>;
+               gpmc,adv-rd-off-ns = <34>;
+               gpmc,adv-wr-off-ns = <44>;
+               gpmc,we-off-ns = <40>;
+               gpmc,oe-off-ns = <54>;
+               gpmc,access-ns = <64>;
+               gpmc,rd-cycle-ns = <82>;
+               gpmc,wr-cycle-ns = <82>;
+               gpmc,wr-access-ns = <40>;
+               gpmc,wr-data-mux-bus-ns = <0>;
+
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partition@0 {
+                       label = "SPL";
+                       reg = <0 0x100000>;
+               };
+               partition@0x80000 {
+                       label = "U-Boot";
+                       reg = <0x100000 0x180000>;
+               };
+               partition@0x1c0000 {
+                       label = "Environment";
+                       reg = <0x280000 0x100000>;
+               };
+               partition@0x280000 {
+                       label = "Kernel";
+                       reg = <0x380000 0x300000>;
+               };
+               partition@0x780000 {
+                       label = "Filesystem";
+                       reg = <0x680000 0x1f980000>;
+               };
+       };
+
+       ethernet@5,0 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&smsc911x_pins>;
+               compatible = "smsc,lan9221", "smsc,lan9115";
+               reg = <5 0 0xff>;
+               bank-width = <2>;
+
+               gpmc,mux-add-data;
+               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;
+
+               interrupt-parent = <&gpio6>;
+               interrupts = <16 8>;
+               vmmc-supply = <&vddvario>;
+               vmmc_aux-supply = <&vdd33a>;
+               reg-io-width = <4>;
+
+               smsc,save-mac-address;
+       };
+};
index 9dc48d262ffbe1c30b20fe22529ad682f1d1bfc6..644d05383836f45dfe5612ad760d100fb12e9072 100644 (file)
@@ -9,7 +9,7 @@
  * published by the Free Software Foundation.
  */
 
-/include/ "omap3-igep.dtsi"
+#include "omap3-igep.dtsi"
 
 / {
        model = "IGEP COM Module";
                compatible = "gpio-leds";
                boot {
                         label = "omap3:green:boot";
-                        gpios = <&twl_gpio 13 1>;
+                        gpios = <&twl_gpio 13 GPIO_ACTIVE_LOW>;
                         default-state = "on";
                };
 
                user0 {
                         label = "omap3:red:user0";
-                        gpios = <&twl_gpio 18 1>; /* LEDA */
+                        gpios = <&twl_gpio 18 GPIO_ACTIVE_LOW>; /* LEDA */
                         default-state = "off";
                };
 
                user1 {
                         label = "omap3:green:user1";
-                        gpios = <&twl_gpio 19 1>; /* LEDB */
+                        gpios = <&twl_gpio 19 GPIO_ACTIVE_LOW>; /* LEDB */
                         default-state = "off";
                };
 
                user2 {
                         label = "omap3:red:user1";
-                        gpios = <&gpio1 16 1>;
+                        gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
                         default-state = "off";
                };
        };
 };
+
+&gpmc {
+       ranges = <0 0 0x00000000 0x20000000>;
+
+       nand@0,0 {
+               linux,mtd-name= "micron,mt29c4g96maz";
+               reg = <0 0 0>;
+               nand-bus-width = <16>;
+               ti,nand-ecc-opt = "bch8";
+
+               gpmc,sync-clk-ps = <0>;
+               gpmc,cs-on-ns = <0>;
+               gpmc,cs-rd-off-ns = <44>;
+               gpmc,cs-wr-off-ns = <44>;
+               gpmc,adv-on-ns = <6>;
+               gpmc,adv-rd-off-ns = <34>;
+               gpmc,adv-wr-off-ns = <44>;
+               gpmc,we-off-ns = <40>;
+               gpmc,oe-off-ns = <54>;
+               gpmc,access-ns = <64>;
+               gpmc,rd-cycle-ns = <82>;
+               gpmc,wr-cycle-ns = <82>;
+               gpmc,wr-access-ns = <40>;
+               gpmc,wr-data-mux-bus-ns = <0>;
+
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partition@0 {
+                       label = "SPL";
+                       reg = <0 0x100000>;
+               };
+               partition@0x80000 {
+                       label = "U-Boot";
+                       reg = <0x100000 0x180000>;
+               };
+               partition@0x1c0000 {
+                       label = "Environment";
+                       reg = <0x280000 0x100000>;
+               };
+               partition@0x280000 {
+                       label = "Kernel";
+                       reg = <0x380000 0x300000>;
+               };
+               partition@0x780000 {
+                       label = "Filesystem";
+                       reg = <0x680000 0x1f980000>;
+               };
+       };
+};
index a626c50041f6e91c8959f9aab674d3f0775a71d2..8f1abec78275635535f9faf4cdd03c60d2daf909 100644 (file)
@@ -11,7 +11,7 @@
  */
 /dts-v1/;
 
-/include/ "omap34xx.dtsi"
+#include "omap34xx.dtsi"
 
 / {
        pwmleds {
@@ -21,6 +21,7 @@
                        label = "overo:blue:COM";
                        pwms = <&twl_pwmled 1 7812500>;
                        max-brightness = <127>;
+                       linux,default-trigger = "mmc0";
                };
        };
 
@@ -49,7 +50,8 @@
        };
 };
 
-/include/ "twl4030.dtsi"
+#include "twl4030.dtsi"
+#include "twl4030_omap3.dtsi"
 
 /* i2c2 pins are used for gpio */
 &i2c2 {
        mode = <3>;
        power = <50>;
 };
+
+&omap3_pmx_core {
+       uart3_pins: pinmux_uart3_pins {
+               pinctrl-single,pins = <
+                       0x16e (PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
+                       0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
+               >;
+       };
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart3_pins>;
+};
index a13d12de77ffe72bc2f41b53e5e41d813657f36a..7e4ad2aec37a8c82c2b88e771bfa741c13500fa5 100644 (file)
@@ -10,7 +10,7 @@
  * Tobi expansion board is manufactured by Gumstix Inc.
  */
 
-/include/ "omap3-overo.dtsi"
+#include "omap3-overo.dtsi"
 
 / {
        model = "TI OMAP3 Gumstix Overo on Tobi";
                compatible = "gpio-leds";
                heartbeat {
                        label = "overo:red:gpio21";
-                       gpios = <&gpio1 21 0>;
+                       gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "heartbeat";
                };
        };
+
+       vddvario: regulator-vddvario {
+                 compatible = "regulator-fixed";
+                 regulator-name = "vddvario";
+                 regulator-always-on;
+       };
+
+       vdd33a: regulator-vdd33a {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd33a";
+               regulator-always-on;
+       };
+};
+
+&gpmc {
+       ranges = <5 0 0x2c000000 0x1000000>;    /* CS5 */
+
+       ethernet@5,0 {
+               compatible = "smsc,lan9221", "smsc,lan9115";
+               reg = <5 0 0xff>;
+               bank-width = <2>;
+
+               gpmc,mux-add-data;
+               gpmc,cs-on-ns = <0>;
+               gpmc,cs-rd-off-ns = <42>;
+               gpmc,cs-wr-off-ns = <36>;
+               gpmc,adv-on-ns = <6>;
+               gpmc,adv-rd-off-ns = <12>;
+               gpmc,adv-wr-off-ns = <12>;
+               gpmc,oe-on-ns = <0>;
+               gpmc,oe-off-ns = <42>;
+               gpmc,we-on-ns = <0>;
+               gpmc,we-off-ns = <36>;
+               gpmc,rd-cycle-ns = <60>;
+               gpmc,wr-cycle-ns = <54>;
+               gpmc,access-ns = <36>;
+               gpmc,page-burst-access-ns = <0>;
+               gpmc,bus-turnaround-ns = <0>;
+               gpmc,cycle2cycle-delay-ns = <0>;
+               gpmc,wr-data-mux-bus-ns = <18>;
+               gpmc,wr-access-ns = <42>;
+               gpmc,cycle2cycle-samecsen;
+               gpmc,cycle2cycle-diffcsen;
+
+               interrupt-parent = <&gpio6>;
+               interrupts = <16 IRQ_TYPE_LEVEL_LOW>;   /* GPIO 176 */
+               reg-io-width = <4>;
+       };
 };
 
 &i2c3 {
index 99ba6e14ebf3f5880660e3073aebda1fdce3e53b..7d95cda1fae4f0349bdfb582de99be2baf36dbf6 100644 (file)
@@ -8,7 +8,11 @@
  * kind, whether express or implied.
  */
 
-/include/ "skeleton.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/pinctrl/omap.h>
+
+#include "skeleton.dtsi"
 
 / {
        compatible = "ti,omap3430", "ti,omap3";
        };
 
        cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
                cpu@0 {
                        compatible = "arm,cortex-a8";
+                       device_type = "cpu";
+                       reg = <0x0>;
                };
        };
 
index 144ae43453c4218c06052a393dc9e25f6143f7d7..c4a1c0a977283c01f500052c3d06b259f2601947 100644 (file)
@@ -7,7 +7,7 @@
  */
 /dts-v1/;
 
-/include/ "omap34xx.dtsi"
+#include "omap34xx.dtsi"
 
 / {
        model = "TI OMAP3430 SDP";
@@ -28,7 +28,8 @@
        };
 };
 
-/include/ "twl4030.dtsi"
+#include "twl4030.dtsi"
+#include "twl4030_omap3.dtsi"
 
 &mmc1 {
        vmmc-supply = <&vmmc1>;
index 75ed4ae2e631efcbb73291a6322b10bb21237f1d..5355d6173748776f31b000beace07130515f7787 100644 (file)
@@ -8,7 +8,7 @@
  * kind, whether express or implied.
  */
 
-/include/ "omap3.dtsi"
+#include "omap3.dtsi"
 
 / {
        cpus {
index f3447bc1b0321bf3a0d8fa72d70fb204ee63cd73..f8b3765eb9becea27e0f6028b15bf9d56ab8b484 100644 (file)
@@ -8,7 +8,7 @@
  * kind, whether express or implied.
  */
 
-/include/ "omap3.dtsi"
+#include "omap3.dtsi"
 
 / {
        aliases {
index e30cdf0f5ac15683e448aac5e2e66e207d20ecfe..133f1b74e8aede2cb823790446d9ef4c201e66f6 100644 (file)
@@ -7,14 +7,14 @@
  */
 /dts-v1/;
 
-/include/ "omap443x.dtsi"
-/include/ "omap4-panda-common.dtsi"
+#include "omap443x.dtsi"
+#include "omap4-panda-common.dtsi"
 
 /* Pandaboard Rev A4+ have external pullups on SCL & SDA */
 &dss_hdmi_pins {
        pinctrl-single,pins = <
-               0x5a 0x118      /* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
-               0x5c 0x100      /* hdmi_scl.hdmi_scl INPUT | MODE 0 */
-               0x5e 0x100      /* hdmi_sda.hdmi_sda INPUT | MODE 0 */
+               0x5a (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_cec.hdmi_cec */
+               0x5c (PIN_INPUT | MUX_MODE0)            /* hdmi_scl.hdmi_scl */
+               0x5e (PIN_INPUT | MUX_MODE0)            /* hdmi_sda.hdmi_sda */
                >;
 };
index eeb734e257096b3d1e13b651e25e95576fe875fb..faa95b5b242ee437aeea84c8d4dde915a67c2031 100644 (file)
@@ -5,7 +5,7 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-/include/ "elpida_ecb240abacn.dtsi"
+#include "elpida_ecb240abacn.dtsi"
 
 / {
        model = "TI OMAP4 PandaBoard";
                reg = <0x80000000 0x40000000>; /* 1 GB */
        };
 
-       leds {
+       leds: leds {
                compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <
+                       &led_wkgpio_pins
+               >;
+
                heartbeat {
                        label = "pandaboard::status1";
-                       gpios = <&gpio1 7 0>;
+                       gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                };
 
                mmc {
                        label = "pandaboard::status2";
-                       gpios = <&gpio1 8 0>;
+                       gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "mmc0";
                };
        };
                        "AFML", "Line In",
                        "AFMR", "Line In";
        };
+
+       /*
+        * Temp hack: Need to be replaced with the proper gpio-controlled
+        * reset driver as soon it will be merged.
+        * http://thread.gmane.org/gmane.linux.drivers.devicetree/36830
+        */
+       /* HS USB Port 1 RESET */
+       hsusb1_reset: hsusb1_reset_reg {
+               compatible = "regulator-fixed";
+               regulator-name = "hsusb1_reset";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 30 0>;   /* gpio_62 */
+               startup-delay-us = <70000>;
+               enable-active-high;
+       };
+
+       /* HS USB Port 1 Power */
+       hsusb1_power: hsusb1_power_reg {
+               compatible = "regulator-fixed";
+               regulator-name = "hsusb1_vbus";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio1 1 0>;    /* gpio_1 */
+               startup-delay-us = <70000>;
+               enable-active-high;
+               /*
+                * boot-on is required along with always-on as the
+                * regulator framework doesn't enable the regulator
+                * if boot-on is not there.
+                */
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       /* HS USB Host PHY on PORT 1 */
+       hsusb1_phy: hsusb1_phy {
+               compatible = "usb-nop-xceiv";
+               reset-supply = <&hsusb1_reset>;
+               vcc-supply = <&hsusb1_power>;
+       /**
+        * FIXME:
+        * put the right clock phandle here when available
+        *      clocks = <&auxclk3>;
+        *      clock-names = "main_clk";
+        */
+               clock-frequency = <19200000>;
+       };
 };
 
 &omap4_pmx_wkup {
 
        twl6030_wkup_pins: pinmux_twl6030_wkup_pins {
                pinctrl-single,pins = <
-                       0x14 0x2        /* fref_clk0_out.sys_drm_msecure OUTPUT | MODE2 */
+                       0x14 (PIN_OUTPUT | MUX_MODE2)           /* fref_clk0_out.sys_drm_msecure */
                >;
        };
 };
                        &mcbsp1_pins
                        &dss_hdmi_pins
                        &tpd12s015_pins
+                       &hsusbb1_pins
        >;
 
        twl6030_pins: pinmux_twl6030_pins {
                pinctrl-single,pins = <
-                       0x15e 0x4118    /* sys_nirq1.sys_nirq1 OMAP_WAKEUP_EN | INPUT_PULLUP | MODE0 */
+                       0x15e (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0)        /* sys_nirq1.sys_nirq1 */
                >;
        };
 
        twl6040_pins: pinmux_twl6040_pins {
                pinctrl-single,pins = <
-                       0xe0 0x3        /* hdq_sio.gpio_127 OUTPUT | MODE3 */
-                       0x160 0x100     /* sys_nirq2.sys_nirq2 INPUT | MODE0 */
+                       0xe0 (PIN_OUTPUT | MUX_MODE3)   /* hdq_sio.gpio_127 */
+                       0x160 (PIN_INPUT | MUX_MODE0)   /* sys_nirq2.sys_nirq2 */
                >;
        };
 
        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 */
+                       0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_ul_data.abe_pdm_ul_data */
+                       0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_dl_data.abe_pdm_dl_data */
+                       0xca (PIN_INPUT_PULLUP   | MUX_MODE0)   /* abe_pdm_frame.abe_pdm_frame */
+                       0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_lb_clk.abe_pdm_lb_clk */
+                       0xce (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_clks.abe_clks */
                >;
        };
 
        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 */
+                       0xbe (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
+                       0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_mcbsp1_dr.abe_mcbsp1_dr */
+                       0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)  /* abe_mcbsp1_dx.abe_mcbsp1_dx */
+                       0xc4 (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
                >;
        };
 
        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 */
+                       0x5a (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_cec.hdmi_cec */
+                       0x5c (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_scl.hdmi_scl */
+                       0x5e (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_sda.hdmi_sda */
                >;
        };
 
        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 */
+                       0x22 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a17.gpio_41 */
+                       0x48 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_nbe1.gpio_60 */
+                       0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3)   /* hdmi_hpd.gpio_63 */
+               >;
+       };
+
+       hsusbb1_pins: pinmux_hsusbb1_pins {
+               pinctrl-single,pins = <
+                       0x82 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */
+                       0x84 (PIN_OUTPUT | MUX_MODE4)           /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */
+                       0x86 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */
+                       0x88 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */
+                       0x8a (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */
+                       0x8c (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */
+                       0x8e (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */
+                       0x90 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */
+                       0x92 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */
+                       0x94 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */
+                       0x96 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */
+                       0x98 (PIN_INPUT_PULLDOWN | MUX_MODE4)   /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */
                >;
        };
 
        i2c1_pins: pinmux_i2c1_pins {
                pinctrl-single,pins = <
-                       0xe2 0x118        /* i2c1_scl PULLUP | INPUTENABLE | MODE0 */
-                       0xe4 0x118        /* i2c1_sda PULLUP | INPUTENABLE | MODE0 */
+                       0xe2 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_scl */
+                       0xe4 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_sda */
                >;
        };
 
        i2c2_pins: pinmux_i2c2_pins {
                pinctrl-single,pins = <
-                       0xe6 0x118        /* i2c2_scl PULLUP | INPUTENABLE | MODE0 */
-                       0xe8 0x118        /* i2c2_sda PULLUP | INPUTENABLE | MODE0 */
+                       0xe6 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_scl */
+                       0xe8 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_sda */
                >;
        };
 
        i2c3_pins: pinmux_i2c3_pins {
                pinctrl-single,pins = <
-                       0xea 0x118        /* i2c3_scl PULLUP | INPUTENABLE | MODE0 */
-                       0xec 0x118     /* i2c3_sda PULLUP | INPUTENABLE | MODE0 */
+                       0xea (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_scl */
+                       0xec (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_sda */
                >;
        };
 
        i2c4_pins: pinmux_i2c4_pins {
                pinctrl-single,pins = <
-                       0xee 0x118        /* i2c4_scl PULLUP | INPUTENABLE | MODE0 */
-                       0xf0 0x118     /* i2c4_sda PULLUP | INPUTENABLE | MODE0 */
+                       0xee (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_scl */
+                       0xf0 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_sda */
+               >;
+       };
+};
+
+&omap4_pmx_wkup {
+       led_wkgpio_pins: pinmux_leds_wkpins {
+               pinctrl-single,pins = <
+                       0x1a (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk7 */
+                       0x1c (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk8 */
                >;
        };
 };
 
        twl: twl@48 {
                reg = <0x48>;
-               /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */
-               interrupts = <0 7 4>; /* IRQ_SYS_1N cascaded to gic */
+               /* IRQ# = 7 */
+               interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* 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 */
+               /* IRQ# = 119 */
+               interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
                interrupt-parent = <&gic>;
-               ti,audpwron-gpio = <&gpio4 31 0>;  /* gpio line 127 */
+               ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>;  /* gpio line 127 */
 
                vio-supply = <&v1v8>;
                v2v1-supply = <&v2v1>;
        };
 };
 
-/include/ "twl6030.dtsi"
+#include "twl6030.dtsi"
 
 &i2c2 {
        pinctrl-names = "default";
        mode = <3>;
        power = <50>;
 };
+
+&usbhshost {
+       port1-mode = "ehci-phy";
+};
+
+&usbhsehci {
+       phys = <&hsusb1_phy>;
+};
index f1d8c217ce1274949b6f6b09d9d728eac21c6a06..56c435468e94a8399f21236b7b553eea15bcc697 100644 (file)
@@ -7,8 +7,8 @@
  */
 /dts-v1/;
 
-/include/ "omap4460.dtsi"
-/include/ "omap4-panda-common.dtsi"
+#include "omap4460.dtsi"
+#include "omap4-panda-common.dtsi"
 
 /* Audio routing is differnet between PandaBoard4430 and PandaBoardES */
 &sound {
 /* PandaboardES has external pullups on SCL & SDA */
 &dss_hdmi_pins {
        pinctrl-single,pins = <
-               0x5a 0x118      /* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
-               0x5c 0x100      /* hdmi_scl.hdmi_scl INPUT | MODE 0 */
-               0x5e 0x100      /* hdmi_sda.hdmi_sda INPUT | MODE 0 */
+               0x5a (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_cec.hdmi_cec */
+               0x5c (PIN_INPUT | MUX_MODE0)            /* hdmi_scl.hdmi_scl */
+               0x5e (PIN_INPUT | MUX_MODE0)            /* hdmi_sda.hdmi_sda */
                >;
 };
+
+&omap4_pmx_core {
+       led_gpio_pins: gpio_led_pmx {
+               pinctrl-single,pins = <
+                       0xb6 (PIN_OUTPUT | MUX_MODE3)   /* gpio_110 */
+               >;
+       };
+};
+
+&led_wkgpio_pins {
+       pinctrl-single,pins = <
+               0x1c (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk8 */
+       >;
+};
+
+&leds {
+       pinctrl-0 = <
+               &led_gpio_pins
+               &led_wkgpio_pins
+       >;
+
+       heartbeat {
+               gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>;
+       };
+       mmc {
+               gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+       };
+};
index f8b221f0168ee05920c8f4e2d91a905f3362ab62..6189a8b77d7f2a61934cf08f77d1b3b26cc2e537 100644 (file)
@@ -7,5 +7,5 @@
  */
 /dts-v1/;
 
-/include/ "omap443x.dtsi"
-/include/ "omap4-panda-common.dtsi"
+#include "omap443x.dtsi"
+#include "omap4-panda-common.dtsi"
index b4a40ffbce31dc7a1547385ceee93d53a6ed24c0..aad5dda0f469ff7c3177ee26bbd29a4aabfaf7ad 100644 (file)
@@ -5,13 +5,13 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-/include/ "omap4-sdp.dts"
+#include "omap4-sdp.dts"
 
 /* SDP boards with 4430 ES2.3+ or 4460 have external pullups on SCL & SDA */
 &dss_hdmi_pins {
        pinctrl-single,pins = <
-               0x5a 0x118      /* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */
-               0x5c 0x100      /* hdmi_scl.hdmi_scl INPUT | MODE 0 */
-               0x5e 0x100      /* hdmi_sda.hdmi_sda INPUT | MODE 0 */
+               0x5a (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_cec.hdmi_cec */
+               0x5c (PIN_INPUT | MUX_MODE0)            /* hdmi_scl.hdmi_scl */
+               0x5e (PIN_INPUT | MUX_MODE0)            /* hdmi_sda.hdmi_sda */
                >;
 };
index 98505a2ef1622afecb200b05907076411219dc6b..7951b4ea500af37ac2a4f6b8f59e97cbf263d595 100644 (file)
@@ -7,8 +7,8 @@
  */
 /dts-v1/;
 
-/include/ "omap443x.dtsi"
-/include/ "elpida_ecb240abacn.dtsi"
+#include "omap443x.dtsi"
+#include "elpida_ecb240abacn.dtsi"
 
 / {
        model = "TI OMAP4 SDP board";
                compatible = "gpio-leds";
                debug0 {
                        label = "omap4:green:debug0";
-                       gpios = <&gpio2 29 0>; /* 61 */
+                       gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>; /* 61 */
                };
 
                debug1 {
                        label = "omap4:green:debug1";
-                       gpios = <&gpio1 30 0>; /* 30 */
+                       gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>; /* 30 */
                };
 
                debug2 {
                        label = "omap4:green:debug2";
-                       gpios = <&gpio1 7 0>; /* 7 */
+                       gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; /* 7 */
                };
 
                debug3 {
                        label = "omap4:green:debug3";
-                       gpios = <&gpio1 8 0>; /* 8 */
+                       gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; /* 8 */
                };
 
                debug4 {
                        label = "omap4:green:debug4";
-                       gpios = <&gpio2 18 0>; /* 50 */
+                       gpios = <&gpio2 18 GPIO_ACTIVE_HIGH>; /* 50 */
                };
 
                user1 {
                        label = "omap4:blue:user";
-                       gpios = <&gpio6 9 0>; /* 169 */
+                       gpios = <&gpio6 9 GPIO_ACTIVE_HIGH>; /* 169 */
                };
 
                user2 {
                        label = "omap4:red:user";
-                       gpios = <&gpio6 10 0>; /* 170 */
+                       gpios = <&gpio6 10 GPIO_ACTIVE_HIGH>; /* 170 */
                };
 
                user3 {
                        label = "omap4:green:user";
-                       gpios = <&gpio5 11 0>; /* 139 */
+                       gpios = <&gpio5 11 GPIO_ACTIVE_HIGH>; /* 139 */
                };
        };
 
 
        twl6030_wkup_pins: pinmux_twl6030_wkup_pins {
                pinctrl-single,pins = <
-                       0x14 0x2        /* fref_clk0_out.sys_drm_msecure OUTPUT | MODE2 */
+                       0x14 (PIN_OUTPUT | MUX_MODE2)           /* fref_clk0_out.sys_drm_msecure */
                >;
        };
 };
 
        uart2_pins: pinmux_uart2_pins {
                pinctrl-single,pins = <
-                       0xd8 0x118      /* uart2_cts.uart2_cts INPUT_PULLUP | MODE0 */
-                       0xda 0          /* uart2_rts.uart2_rts OUTPUT | MODE0 */
-                       0xdc 0x118      /* uart2_rx.uart2_rx INPUT_PULLUP | MODE0 */
-                       0xde 0          /* uart2_tx.uart2_tx OUTPUT | MODE0 */
+                       0xd8 (PIN_INPUT_PULLUP | MUX_MODE0)     /* uart2_cts.uart2_cts */
+                       0xda (PIN_OUTPUT | MUX_MODE0)           /* uart2_rts.uart2_rts */
+                       0xdc (PIN_INPUT_PULLUP | MUX_MODE0)     /* uart2_rx.uart2_rx */
+                       0xde (PIN_OUTPUT | MUX_MODE0)           /* uart2_tx.uart2_tx */
                >;
        };
 
        uart3_pins: pinmux_uart3_pins {
                pinctrl-single,pins = <
-                       0x100 0x118     /* uart3_cts_rctx.uart3_cts_rctx INPUT_PULLUP | MODE0 */
-                       0x102 0         /* uart3_rts_sd.uart3_rts_sd OUTPUT | MODE0 */
-                       0x104 0x100     /* uart3_rx_irrx.uart3_rx_irrx INPUT | MODE0 */
-                       0x106 0         /* uart3_tx_irtx.uart3_tx_irtx OUTPUT | MODE0 */
+                       0x100 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart3_cts_rctx.uart3_cts_rctx */
+                       0x102 (PIN_OUTPUT | MUX_MODE0)          /* uart3_rts_sd.uart3_rts_sd */
+                       0x104 (PIN_INPUT | MUX_MODE0)           /* uart3_rx_irrx.uart3_rx_irrx */
+                       0x106 (PIN_OUTPUT | MUX_MODE0)          /* uart3_tx_irtx.uart3_tx_irtx */
                >;
        };
 
        uart4_pins: pinmux_uart4_pins {
                pinctrl-single,pins = <
-                       0x11c 0x100     /* uart4_rx.uart4_rx INPUT | MODE0 */
-                       0x11e 0         /* uart4_tx.uart4_tx OUTPUT | MODE0 */
+                       0x11c (PIN_INPUT | MUX_MODE0)           /* uart4_rx.uart4_rx */
+                       0x11e (PIN_OUTPUT | MUX_MODE0)          /* uart4_tx.uart4_tx */
                >;
        };
 
        twl6030_pins: pinmux_twl6030_pins {
                pinctrl-single,pins = <
-                       0x15e 0x4118    /* sys_nirq1.sys_nirq1 OMAP_WAKEUP_EN | INPUT_PULLUP | MODE0 */
+                       0x15e (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0)        /* sys_nirq1.sys_nirq1 */
                >;
        };
 
        twl6040_pins: pinmux_twl6040_pins {
                pinctrl-single,pins = <
-                       0xe0 0x3        /* hdq_sio.gpio_127 OUTPUT | MODE3 */
-                       0x160 0x100     /* sys_nirq2.sys_nirq2 INPUT | MODE0 */
+                       0xe0 (PIN_OUTPUT | MUX_MODE3)           /* hdq_sio.gpio_127 */
+                       0x160 (PIN_INPUT | MUX_MODE0)           /* sys_nirq2.sys_nirq2 */
                >;
        };
 
        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 */
+                       0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_ul_data.abe_pdm_ul_data */
+                       0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_dl_data.abe_pdm_dl_data */
+                       0xca (PIN_INPUT_PULLUP | MUX_MODE0)     /* abe_pdm_frame.abe_pdm_frame */
+                       0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_pdm_lb_clk.abe_pdm_lb_clk */
+                       0xce (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_clks.abe_clks */
                >;
        };
 
        dmic_pins: pinmux_dmic_pins {
                pinctrl-single,pins = <
-                       0xd0 0          /* abe_dmic_clk1.abe_dmic_clk1 OUTPUT | MODE0 */
-                       0xd2 0x100      /* abe_dmic_din1.abe_dmic_din1 INPUT | MODE0 */
-                       0xd4 0x100      /* abe_dmic_din2.abe_dmic_din2 INPUT | MODE0 */
-                       0xd6 0x100      /* abe_dmic_din3.abe_dmic_din3 INPUT | MODE0 */
+                       0xd0 (PIN_OUTPUT | MUX_MODE0)           /* abe_dmic_clk1.abe_dmic_clk1 */
+                       0xd2 (PIN_INPUT | MUX_MODE0)            /* abe_dmic_din1.abe_dmic_din1 */
+                       0xd4 (PIN_INPUT | MUX_MODE0)            /* abe_dmic_din2.abe_dmic_din2 */
+                       0xd6 (PIN_INPUT | MUX_MODE0)            /* abe_dmic_din3.abe_dmic_din3 */
                >;
        };
 
        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 */
+                       0xbe (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
+                       0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_mcbsp1_dr.abe_mcbsp1_dr */
+                       0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)  /* abe_mcbsp1_dx.abe_mcbsp1_dx */
+                       0xc4 (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
                >;
        };
 
        mcbsp2_pins: pinmux_mcbsp2_pins {
                pinctrl-single,pins = <
-                       0xb6 0x100      /* abe_mcbsp2_clkx.abe_mcbsp2_clkx INPUT | MODE0 */
-                       0xb8 0x108      /* abe_mcbsp2_dr.abe_mcbsp2_dr INPUT PULLDOWN | MODE0 */
-                       0xba 0x8        /* abe_mcbsp2_dx.abe_mcbsp2_dx OUTPUT PULLDOWN | MODE0 */
-                       0xbc 0x100      /* abe_mcbsp2_fsx.abe_mcbsp2_fsx INPUT | MODE0 */
+                       0xb6 (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp2_clkx.abe_mcbsp2_clkx */
+                       0xb8 (PIN_INPUT_PULLDOWN | MUX_MODE0)   /* abe_mcbsp2_dr.abe_mcbsp2_dr */
+                       0xba (PIN_OUTPUT_PULLDOWN | MUX_MODE0)  /* abe_mcbsp2_dx.abe_mcbsp2_dx */
+                       0xbc (PIN_INPUT | MUX_MODE0)            /* abe_mcbsp2_fsx.abe_mcbsp2_fsx */
                >;
        };
 
        mcspi1_pins: pinmux_mcspi1_pins {
                pinctrl-single,pins = <
-                       0xf2 0x100      /*  mcspi1_clk.mcspi1_clk INPUT | MODE0 */
-                       0xf4 0x100      /*  mcspi1_somi.mcspi1_somi INPUT | MODE0 */
-                       0xf6 0x100      /*  mcspi1_simo.mcspi1_simo INPUT | MODE0 */
-                       0xf8 0x100      /*  mcspi1_cs0.mcspi1_cs0 INPUT | MODE0*/
+                       0xf2 (PIN_INPUT | MUX_MODE0)            /*  mcspi1_clk.mcspi1_clk */
+                       0xf4 (PIN_INPUT | MUX_MODE0)            /*  mcspi1_somi.mcspi1_somi */
+                       0xf6 (PIN_INPUT | MUX_MODE0)            /*  mcspi1_simo.mcspi1_simo */
+                       0xf8 (PIN_INPUT | MUX_MODE0)            /*  mcspi1_cs0.mcspi1_cs0 */
                >;
        };
 
        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 */
+                       0x5a (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_cec.hdmi_cec */
+                       0x5c (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_scl.hdmi_scl */
+                       0x5e (PIN_INPUT_PULLUP | MUX_MODE0)     /* hdmi_sda.hdmi_sda */
                >;
        };
 
        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 */
+                       0x22 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_a17.gpio_41 */
+                       0x48 (PIN_OUTPUT | MUX_MODE3)           /* gpmc_nbe1.gpio_60 */
+                       0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3)   /* hdmi_hpd.gpio_63 */
                >;
        };
 
        i2c1_pins: pinmux_i2c1_pins {
                pinctrl-single,pins = <
-                       0xe2 0x118        /* i2c1_scl PULLUP | INPUTENABLE | MODE0 */
-                       0xe4 0x118       /* i2c1_sda PULLUP | INPUTENABLE | MODE0 */
+                       0xe2 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_scl */
+                       0xe4 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c1_sda */
                >;
        };
 
        i2c2_pins: pinmux_i2c2_pins {
                pinctrl-single,pins = <
-                        0xe6 0x118        /* i2c2_scl PULLUP | INPUTENABLE | MODE0 */
-                        0xe8 0x118        /* i2c2_sda PULLUP | INPUTENABLE | MODE0 */
+                       0xe6 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_scl */
+                       0xe8 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c2_sda */
                >;
        };
 
        i2c3_pins: pinmux_i2c3_pins {
                pinctrl-single,pins = <
-                       0xea 0x118        /* i2c3_scl PULLUP | INPUTENABLE | MODE0 */
-                       0xec 0x118     /* i2c3_sda PULLUP | INPUTENABLE | MODE0 */
+                       0xea (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_scl */
+                       0xec (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c3_sda */
                >;
        };
 
        i2c4_pins: pinmux_i2c4_pins {
                pinctrl-single,pins = <
-                       0xee 0x118        /* i2c4_scl PULLUP | INPUTENABLE | MODE0 */
-                       0xf0 0x118     /* i2c4_sda PULLUP | INPUTENABLE | MODE0 */
+                       0xee (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_scl */
+                       0xf0 (PIN_INPUT_PULLUP | MUX_MODE0)     /* i2c4_sda */
                >;
        };
 };
        twl: twl@48 {
                reg = <0x48>;
                /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */
-               interrupts = <0 7 4>; /* IRQ_SYS_1N cascaded to gic */
+               interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
                interrupt-parent = <&gic>;
        };
 
                compatible = "ti,twl6040";
                reg = <0x4b>;
                /* SPI = 0, IRQ# = 119, 4 = active high level-sensitive */
-               interrupts = <0 119 4>; /* IRQ_SYS_2N cascaded to gic */
+               interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
                interrupt-parent = <&gic>;
                ti,audpwron-gpio = <&gpio4 31 0>;  /* gpio line 127 */
 
        };
 };
 
-/include/ "twl6030.dtsi"
+#include "twl6030.dtsi"
 
 &i2c2 {
        pinctrl-names = "default";
                spi-max-frequency = <24000000>;
                reg = <0>;
                interrupt-parent = <&gpio2>;
-               interrupts = <2 8>; /* gpio line 34, low triggered */
+               interrupts = <2 IRQ_TYPE_LEVEL_LOW>; /* gpio line 34 */
                vdd-supply = <&vdd_eth>;
        };
 };
index 7e04103779c43d1aa336ac6e57d983c87fbb6884..b41269e871dd2bc6f33a093010c4bd428713498b 100644 (file)
@@ -7,7 +7,7 @@
  */
 /dts-v1/;
 
-/include/ "omap443x.dtsi"
+#include "omap443x.dtsi"
 
 / {
        model = "Variscite OMAP4 SOM";
        twl: twl@48 {
                reg = <0x48>;
                /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */
-               interrupts = <0 7 4>; /* IRQ_SYS_1N cascaded to gic */
+               interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
                interrupt-parent = <&gic>;
        };
 };
 
-/include/ "twl6030.dtsi"
+#include "twl6030.dtsi"
 
 &i2c2 {
        clock-frequency = <400000>;
@@ -68,7 +68,7 @@
                spi-max-frequency = <24000000>;
                reg = <0>;
                interrupt-parent = <&gpio6>;
-               interrupts = <11 8>; /* gpio line 171, low triggered */
+               interrupts = <11 IRQ_TYPE_LEVEL_LOW>; /* gpio line 171 */
                vdd-supply = <&vdd_eth>;
        };
 };
index 2a5642882c8af8810601a3763808e60014831d07..22d9f2b593d461eb5bde36a35f24e2eaea40e298 100644 (file)
@@ -6,15 +6,11 @@
  * published by the Free Software Foundation.
  */
 
-/*
- * Carveout for multimedia usecases
- * It should be the last 48MB of the first 512MB memory part
- * In theory, it should not even exist. That zone should be reserved
- * dynamically during the .reserve callback.
- */
-/memreserve/ 0x9d000000 0x03000000;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/pinctrl/omap.h>
 
-/include/ "skeleton.dtsi"
+#include "skeleton.dtsi"
 
 / {
        compatible = "ti,omap4430", "ti,omap4";
        };
 
        cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
                cpu@0 {
                        compatible = "arm,cortex-a9";
+                       device_type = "cpu";
                        next-level-cache = <&L2>;
+                       reg = <0x0>;
                };
                cpu@1 {
                        compatible = "arm,cortex-a9";
+                       device_type = "cpu";
                        next-level-cache = <&L2>;
+                       reg = <0x1>;
                };
        };
 
@@ -56,7 +59,7 @@
        local-timer@0x48240600 {
                compatible = "arm,cortex-a9-twd-timer";
                reg = <0x48240600 0x20>;
-               interrupts = <1 13 0x304>;
+               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_HIGH)>;
        };
 
        /*
                reg = <0x44000000 0x1000>,
                      <0x44800000 0x2000>,
                      <0x45000000 0x1000>;
-               interrupts = <0 9 0x4>,
-                            <0 10 0x4>;
+               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
 
                counter32k: counter@4a304000 {
                        compatible = "ti,omap-counter32k";
                sdma: dma-controller@4a056000 {
                        compatible = "ti,omap4430-sdma";
                        reg = <0x4a056000 0x1000>;
-                       interrupts = <0 12 0x4>,
-                                    <0 13 0x4>,
-                                    <0 14 0x4>,
-                                    <0 15 0x4>;
+                       interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
                        #dma-cells = <1>;
                        #dma-channels = <32>;
                        #dma-requests = <127>;
                gpio1: gpio@4a310000 {
                        compatible = "ti,omap4-gpio";
                        reg = <0x4a310000 0x200>;
-                       interrupts = <0 29 0x4>;
+                       interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "gpio1";
                        ti,gpio-always-on;
                        gpio-controller;
                gpio2: gpio@48055000 {
                        compatible = "ti,omap4-gpio";
                        reg = <0x48055000 0x200>;
-                       interrupts = <0 30 0x4>;
+                       interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "gpio2";
                        gpio-controller;
                        #gpio-cells = <2>;
                gpio3: gpio@48057000 {
                        compatible = "ti,omap4-gpio";
                        reg = <0x48057000 0x200>;
-                       interrupts = <0 31 0x4>;
+                       interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "gpio3";
                        gpio-controller;
                        #gpio-cells = <2>;
                gpio4: gpio@48059000 {
                        compatible = "ti,omap4-gpio";
                        reg = <0x48059000 0x200>;
-                       interrupts = <0 32 0x4>;
+                       interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "gpio4";
                        gpio-controller;
                        #gpio-cells = <2>;
                gpio5: gpio@4805b000 {
                        compatible = "ti,omap4-gpio";
                        reg = <0x4805b000 0x200>;
-                       interrupts = <0 33 0x4>;
+                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "gpio5";
                        gpio-controller;
                        #gpio-cells = <2>;
                gpio6: gpio@4805d000 {
                        compatible = "ti,omap4-gpio";
                        reg = <0x4805d000 0x200>;
-                       interrupts = <0 34 0x4>;
+                       interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "gpio6";
                        gpio-controller;
                        #gpio-cells = <2>;
                        reg = <0x50000000 0x1000>;
                        #address-cells = <2>;
                        #size-cells = <1>;
-                       interrupts = <0 20 0x4>;
+                       interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
                        gpmc,num-cs = <8>;
                        gpmc,num-waitpins = <4>;
                        ti,hwmods = "gpmc";
                uart1: serial@4806a000 {
                        compatible = "ti,omap4-uart";
                        reg = <0x4806a000 0x100>;
-                       interrupts = <0 72 0x4>;
+                       interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "uart1";
                        clock-frequency = <48000000>;
                };
                uart2: serial@4806c000 {
                        compatible = "ti,omap4-uart";
                        reg = <0x4806c000 0x100>;
-                       interrupts = <0 73 0x4>;
+                       interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "uart2";
                        clock-frequency = <48000000>;
                };
                uart3: serial@48020000 {
                        compatible = "ti,omap4-uart";
                        reg = <0x48020000 0x100>;
-                       interrupts = <0 74 0x4>;
+                       interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "uart3";
                        clock-frequency = <48000000>;
                };
                uart4: serial@4806e000 {
                        compatible = "ti,omap4-uart";
                        reg = <0x4806e000 0x100>;
-                       interrupts = <0 70 0x4>;
+                       interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "uart4";
                        clock-frequency = <48000000>;
                };
                i2c1: i2c@48070000 {
                        compatible = "ti,omap4-i2c";
                        reg = <0x48070000 0x100>;
-                       interrupts = <0 56 0x4>;
+                       interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ti,hwmods = "i2c1";
                i2c2: i2c@48072000 {
                        compatible = "ti,omap4-i2c";
                        reg = <0x48072000 0x100>;
-                       interrupts = <0 57 0x4>;
+                       interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ti,hwmods = "i2c2";
                i2c3: i2c@48060000 {
                        compatible = "ti,omap4-i2c";
                        reg = <0x48060000 0x100>;
-                       interrupts = <0 61 0x4>;
+                       interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ti,hwmods = "i2c3";
                i2c4: i2c@48350000 {
                        compatible = "ti,omap4-i2c";
                        reg = <0x48350000 0x100>;
-                       interrupts = <0 62 0x4>;
+                       interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ti,hwmods = "i2c4";
                mcspi1: spi@48098000 {
                        compatible = "ti,omap4-mcspi";
                        reg = <0x48098000 0x200>;
-                       interrupts = <0 65 0x4>;
+                       interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ti,hwmods = "mcspi1";
                mcspi2: spi@4809a000 {
                        compatible = "ti,omap4-mcspi";
                        reg = <0x4809a000 0x200>;
-                       interrupts = <0 66 0x4>;
+                       interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ti,hwmods = "mcspi2";
                mcspi3: spi@480b8000 {
                        compatible = "ti,omap4-mcspi";
                        reg = <0x480b8000 0x200>;
-                       interrupts = <0 91 0x4>;
+                       interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ti,hwmods = "mcspi3";
                mcspi4: spi@480ba000 {
                        compatible = "ti,omap4-mcspi";
                        reg = <0x480ba000 0x200>;
-                       interrupts = <0 48 0x4>;
+                       interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ti,hwmods = "mcspi4";
                mmc1: mmc@4809c000 {
                        compatible = "ti,omap4-hsmmc";
                        reg = <0x4809c000 0x400>;
-                       interrupts = <0 83 0x4>;
+                       interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mmc1";
                        ti,dual-volt;
                        ti,needs-special-reset;
                mmc2: mmc@480b4000 {
                        compatible = "ti,omap4-hsmmc";
                        reg = <0x480b4000 0x400>;
-                       interrupts = <0 86 0x4>;
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mmc2";
                        ti,needs-special-reset;
                        dmas = <&sdma 47>, <&sdma 48>;
                mmc3: mmc@480ad000 {
                        compatible = "ti,omap4-hsmmc";
                        reg = <0x480ad000 0x400>;
-                       interrupts = <0 94 0x4>;
+                       interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mmc3";
                        ti,needs-special-reset;
                        dmas = <&sdma 77>, <&sdma 78>;
                mmc4: mmc@480d1000 {
                        compatible = "ti,omap4-hsmmc";
                        reg = <0x480d1000 0x400>;
-                       interrupts = <0 96 0x4>;
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mmc4";
                        ti,needs-special-reset;
                        dmas = <&sdma 57>, <&sdma 58>;
                mmc5: mmc@480d5000 {
                        compatible = "ti,omap4-hsmmc";
                        reg = <0x480d5000 0x400>;
-                       interrupts = <0 59 0x4>;
+                       interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mmc5";
                        ti,needs-special-reset;
                        dmas = <&sdma 59>, <&sdma 60>;
                wdt2: wdt@4a314000 {
                        compatible = "ti,omap4-wdt", "ti,omap3-wdt";
                        reg = <0x4a314000 0x80>;
-                       interrupts = <0 80 0x4>;
+                       interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "wd_timer2";
                };
 
                        reg = <0x40132000 0x7f>, /* MPU private access */
                              <0x49032000 0x7f>; /* L3 Interconnect */
                        reg-names = "mpu", "dma";
-                       interrupts = <0 112 0x4>;
+                       interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mcpdm";
                        dmas = <&sdma 65>,
                               <&sdma 66>;
                        reg = <0x4012e000 0x7f>, /* MPU private access */
                              <0x4902e000 0x7f>; /* L3 Interconnect */
                        reg-names = "mpu", "dma";
-                       interrupts = <0 114 0x4>;
+                       interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "dmic";
                        dmas = <&sdma 67>;
                        dma-names = "up_link";
                        reg = <0x40122000 0xff>, /* MPU private access */
                              <0x49022000 0xff>; /* L3 Interconnect */
                        reg-names = "mpu", "dma";
-                       interrupts = <0 17 0x4>;
+                       interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "common";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp1";
                        reg = <0x40124000 0xff>, /* MPU private access */
                              <0x49024000 0xff>; /* L3 Interconnect */
                        reg-names = "mpu", "dma";
-                       interrupts = <0 22 0x4>;
+                       interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "common";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp2";
                        reg = <0x40126000 0xff>, /* MPU private access */
                              <0x49026000 0xff>; /* L3 Interconnect */
                        reg-names = "mpu", "dma";
-                       interrupts = <0 23 0x4>;
+                       interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "common";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp3";
                        compatible = "ti,omap4-mcbsp";
                        reg = <0x48096000 0xff>; /* L4 Interconnect */
                        reg-names = "mpu";
-                       interrupts = <0 16 0x4>;
+                       interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "common";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp4";
                keypad: keypad@4a31c000 {
                        compatible = "ti,omap4-keypad";
                        reg = <0x4a31c000 0x80>;
-                       interrupts = <0 120 0x4>;
+                       interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
                        reg-names = "mpu";
                        ti,hwmods = "kbd";
                };
                emif1: emif@4c000000 {
                        compatible = "ti,emif-4d";
                        reg = <0x4c000000 0x100>;
-                       interrupts = <0 110 0x4>;
+                       interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "emif1";
                        phy-type = <1>;
                        hw-caps-read-idle-ctrl;
                emif2: emif@4d000000 {
                        compatible = "ti,emif-4d";
                        reg = <0x4d000000 0x100>;
-                       interrupts = <0 111 0x4>;
+                       interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "emif2";
                        phy-type = <1>;
                        hw-caps-read-idle-ctrl;
                timer1: timer@4a318000 {
                        compatible = "ti,omap3430-timer";
                        reg = <0x4a318000 0x80>;
-                       interrupts = <0 37 0x4>;
+                       interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer1";
                        ti,timer-alwon;
                };
                timer2: timer@48032000 {
                        compatible = "ti,omap3430-timer";
                        reg = <0x48032000 0x80>;
-                       interrupts = <0 38 0x4>;
+                       interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer2";
                };
 
                timer3: timer@48034000 {
                        compatible = "ti,omap4430-timer";
                        reg = <0x48034000 0x80>;
-                       interrupts = <0 39 0x4>;
+                       interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer3";
                };
 
                timer4: timer@48036000 {
                        compatible = "ti,omap4430-timer";
                        reg = <0x48036000 0x80>;
-                       interrupts = <0 40 0x4>;
+                       interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer4";
                };
 
                        compatible = "ti,omap4430-timer";
                        reg = <0x40138000 0x80>,
                              <0x49038000 0x80>;
-                       interrupts = <0 41 0x4>;
+                       interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer5";
                        ti,timer-dsp;
                };
                        compatible = "ti,omap4430-timer";
                        reg = <0x4013a000 0x80>,
                              <0x4903a000 0x80>;
-                       interrupts = <0 42 0x4>;
+                       interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer6";
                        ti,timer-dsp;
                };
                        compatible = "ti,omap4430-timer";
                        reg = <0x4013c000 0x80>,
                              <0x4903c000 0x80>;
-                       interrupts = <0 43 0x4>;
+                       interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer7";
                        ti,timer-dsp;
                };
                        compatible = "ti,omap4430-timer";
                        reg = <0x4013e000 0x80>,
                              <0x4903e000 0x80>;
-                       interrupts = <0 44 0x4>;
+                       interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer8";
                        ti,timer-pwm;
                        ti,timer-dsp;
                timer9: timer@4803e000 {
                        compatible = "ti,omap4430-timer";
                        reg = <0x4803e000 0x80>;
-                       interrupts = <0 45 0x4>;
+                       interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer9";
                        ti,timer-pwm;
                };
                timer10: timer@48086000 {
                        compatible = "ti,omap3430-timer";
                        reg = <0x48086000 0x80>;
-                       interrupts = <0 46 0x4>;
+                       interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer10";
                        ti,timer-pwm;
                };
                timer11: timer@48088000 {
                        compatible = "ti,omap4430-timer";
                        reg = <0x48088000 0x80>;
-                       interrupts = <0 47 0x4>;
+                       interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer11";
                        ti,timer-pwm;
                };
                usbhstll: usbhstll@4a062000 {
                        compatible = "ti,usbhs-tll";
                        reg = <0x4a062000 0x1000>;
-                       interrupts = <0 78 0x4>;
+                       interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "usb_tll_hs";
                };
 
                                compatible = "ti,ohci-omap3", "usb-ohci";
                                reg = <0x4a064800 0x400>;
                                interrupt-parent = <&gic>;
-                               interrupts = <0 76 0x4>;
+                               interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
                        usbhsehci: ehci@4a064c00 {
                                compatible = "ti,ehci-omap", "usb-ehci";
                                reg = <0x4a064c00 0x400>;
                                interrupt-parent = <&gic>;
-                               interrupts = <0 77 0x4>;
+                               interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
                        };
                };
 
                usb_otg_hs: usb_otg_hs@4a0ab000 {
                        compatible = "ti,omap4-musb";
                        reg = <0x4a0ab000 0x7ff>;
-                       interrupts = <0 92 0x4>, <0 93 0x4>;
+                       interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "mc", "dma";
                        ti,hwmods = "usb_otg_hs";
                        usb-phy = <&usb2_phy>;
index cccf39af4925de8b1ac531f791c2b0c610c40b9c..bcf455efe18de0a8141cbfa34c5856fb4b624a81 100644 (file)
@@ -8,7 +8,7 @@
  * kind, whether express or implied.
  */
 
-/include/ "omap4.dtsi"
+#include "omap4.dtsi"
 
 / {
        cpus {
                        clock-latency = <300000>; /* From legacy driver */
                };
        };
+
+       bandgap {
+               reg = <0x4a002260 0x4
+                      0x4a00232C 0x4>;
+               compatible = "ti,omap4430-bandgap";
+       };
 };
index 2cf227c860996f875cff974f811c50db2980ad19..c2f0f39b5a2482b6fd035432e92edb6af3b9d956 100644 (file)
@@ -7,7 +7,7 @@
  * version 2.  This program is licensed "as is" without any warranty of any
  * kind, whether express or implied.
  */
-/include/ "omap4.dtsi"
+#include "omap4.dtsi"
 
 / {
        cpus {
 
        pmu {
                compatible = "arm,cortex-a9-pmu";
-               interrupts = <0 54 0x4>,
-                            <0 55 0x4>;
+               interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
                ti,hwmods = "debugss";
        };
+
+       bandgap {
+               reg = <0x4a002260 0x4
+                      0x4a00232C 0x4
+                      0x4a002378 0x18>;
+               compatible = "ti,omap4460-bandgap";
+               interrupts = <0 126 IRQ_TYPE_LEVEL_HIGH>; /* talert */
+               gpios = <&gpio3 22 0>; /* tshut */
+       };
 };
diff --git a/arch/arm/boot/dts/omap5-evm.dts b/arch/arm/boot/dts/omap5-evm.dts
deleted file mode 100644 (file)
index 982acd1..0000000
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Copyright (C) 2012 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/ "omap5.dtsi"
-/include/ "samsung_k3pe0e000b.dtsi"
-
-/ {
-       model = "TI OMAP5 EVM board";
-       compatible = "ti,omap5-evm", "ti,omap5";
-
-       memory {
-               device_type = "memory";
-               reg = <0x80000000 0x7F000000>; /* 2032 MB */
-       };
-
-       vmmcsd_fixed: fixedregulator-mmcsd {
-               compatible = "regulator-fixed";
-               regulator-name = "vmmcsd_fixed";
-               regulator-min-microvolt = <3000000>;
-               regulator-max-microvolt = <3000000>;
-       };
-
-};
-
-&omap5_pmx_core {
-       pinctrl-names = "default";
-       pinctrl-0 = <
-                       &twl6040_pins
-                       &mcpdm_pins
-                       &dmic_pins
-                       &mcbsp1_pins
-                       &mcbsp2_pins
-       >;
-
-       twl6040_pins: pinmux_twl6040_pins {
-               pinctrl-single,pins = <
-                       0x18a 0x6       /* perslimbus2_clock.gpio5_145 OUTPUT | MODE6 */
-               >;
-       };
-
-       mcpdm_pins: pinmux_mcpdm_pins {
-               pinctrl-single,pins = <
-                       0x142 0x108     /* abe_clks.abe_clks INPUT PULLDOWN | MODE0 */
-                       0x15c 0x108     /* abemcpdm_ul_data.abemcpdm_ul_data INPUT PULLDOWN | MODE0 */
-                       0x15e 0x108     /* abemcpdm_dl_data.abemcpdm_dl_data INPUT PULLDOWN | MODE0 */
-                       0x160 0x118     /* abemcpdm_frame.abemcpdm_frame INPUT PULLUP | MODE0 */
-                       0x162 0x108     /* abemcpdm_lb_clk.abemcpdm_lb_clk INPUT PULLDOWN | MODE0 */
-               >;
-       };
-
-       dmic_pins: pinmux_dmic_pins {
-               pinctrl-single,pins = <
-                       0x144 0x100     /* abedmic_din1.abedmic_din1 INPUT | MODE0 */
-                       0x146 0x100     /* abedmic_din2.abedmic_din2 INPUT | MODE0 */
-                       0x148 0x100     /* abedmic_din3.abedmic_din3 INPUT | MODE0 */
-                       0x14a 0         /* abedmic_clk1.abedmic_clk1 OUTPUT | MODE0 */
-               >;
-       };
-
-       mcbsp1_pins: pinmux_mcbsp1_pins {
-               pinctrl-single,pins = <
-                       0x14c 0x101     /* abedmic_clk2.abemcbsp1_fsx INPUT | MODE1 */
-                       0x14e 0x9       /* abedmic_clk3.abemcbsp1_dx OUTPUT PULLDOWN | MODE1 */
-                       0x150 0x101     /* abeslimbus1_clock.abemcbsp1_clkx INPUT | MODE0 */
-                       0x152 0x109     /* abeslimbus1_data.abemcbsp1_dr INPUT PULLDOWN | MODE1 */
-               >;
-       };
-
-       mcbsp2_pins: pinmux_mcbsp2_pins {
-               pinctrl-single,pins = <
-                       0x154 0x108     /* abemcbsp2_dr.abemcbsp2_dr INPUT PULLDOWN | MODE0 */
-                       0x156 0x8       /* abemcbsp2_dx.abemcbsp2_dx OUTPUT PULLDOWN | MODE0 */
-                       0x158 0x100     /* abemcbsp2_fsx.abemcbsp2_fsx INPUT | MODE0 */
-                       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 {
-       vmmc-supply = <&vmmcsd_fixed>;
-       bus-width = <4>;
-};
-
-&mmc2 {
-       vmmc-supply = <&vmmcsd_fixed>;
-       bus-width = <8>;
-       ti,non-removable;
-};
-
-&mmc3 {
-       bus-width = <4>;
-       ti,non-removable;
-};
-
-&mmc4 {
-       status = "disabled";
-};
-
-&mmc5 {
-       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 */
-       bmp085@77 {
-               compatible = "bosch,bmp085";
-               reg = <0x77>;
-       };
-};
-
-&i2c3 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c3_pins>;
-
-       clock-frequency = <400000>;
-};
-
-&i2c4 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c4_pins>;
-
-       clock-frequency = <400000>;
-
-       /* Temperature Sensor */
-       tmp102@48{
-               compatible = "ti,tmp102";
-               reg = <0x48>;
-       };
-};
-
-&i2c5 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c5_pins>;
-
-       clock-frequency = <400000>;
-};
-
-&keypad {
-       keypad,num-rows = <8>;
-       keypad,num-columns = <8>;
-       linux,keymap = <0x02020073      /* VOLUP */
-                       0x02030072      /* VOLDOWM */
-                       0x020400e7      /* SEND */
-                       0x02050066      /* HOME */
-                       0x0206006b      /* END */
-                       0x020700d9>;    /* SEARCH */
-       linux,input-no-autorepeat;
-};
-
-&mcbsp3 {
-       status = "disabled";
-};
-
-&emif1 {
-       cs1-used;
-       device-handle = <&samsung_K3PE0E000B>;
-};
-
-&emif2 {
-       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>;
-};
diff --git a/arch/arm/boot/dts/omap5-uevm.dts b/arch/arm/boot/dts/omap5-uevm.dts
new file mode 100644 (file)
index 0000000..08b7267
--- /dev/null
@@ -0,0 +1,485 @@
+/*
+ * 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 "omap5.dtsi"
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+       model = "TI OMAP5 uEVM board";
+       compatible = "ti,omap5-uevm", "ti,omap5";
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x7F000000>; /* 2032 MB */
+       };
+
+       vmmcsd_fixed: fixedregulator-mmcsd {
+               compatible = "regulator-fixed";
+               regulator-name = "vmmcsd_fixed";
+               regulator-min-microvolt = <3000000>;
+               regulator-max-microvolt = <3000000>;
+       };
+
+       /* HS USB Port 2 RESET */
+       hsusb2_reset: hsusb2_reset_reg {
+               compatible = "regulator-fixed";
+               regulator-name = "hsusb2_reset";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio3 16 GPIO_ACTIVE_HIGH>; /* gpio3_80 HUB_NRESET */
+               startup-delay-us = <70000>;
+               enable-active-high;
+       };
+
+       /* HS USB Host PHY on PORT 2 */
+       hsusb2_phy: hsusb2_phy {
+               compatible = "usb-nop-xceiv";
+               reset-supply = <&hsusb2_reset>;
+       /**
+         * FIXME
+         * Put the right clock phandle here when available
+         *     clocks = <&auxclk1>;
+         *     clock-names = "main_clk";
+         */
+               clock-frequency = <19200000>;
+       };
+
+       /* HS USB Port 3 RESET */
+       hsusb3_reset: hsusb3_reset_reg {
+               compatible = "regulator-fixed";
+               regulator-name = "hsusb3_reset";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>; /* gpio3_79 ETH_NRESET */
+               startup-delay-us = <70000>;
+               enable-active-high;
+       };
+
+       /* HS USB Host PHY on PORT 3 */
+       hsusb3_phy: hsusb3_phy {
+               compatible = "usb-nop-xceiv";
+               reset-supply = <&hsusb3_reset>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               led@1 {
+                       label = "omap5:blue:usr1";
+                       gpios = <&gpio5 25 GPIO_ACTIVE_HIGH>; /* gpio5_153 D1 LED */
+                       linux,default-trigger = "heartbeat";
+                       default-state = "off";
+               };
+       };
+};
+
+&omap5_pmx_core {
+       pinctrl-names = "default";
+       pinctrl-0 = <
+                       &twl6040_pins
+                       &mcpdm_pins
+                       &dmic_pins
+                       &mcbsp1_pins
+                       &mcbsp2_pins
+                       &usbhost_pins
+                       &led_gpio_pins
+       >;
+
+       twl6040_pins: pinmux_twl6040_pins {
+               pinctrl-single,pins = <
+                       0x18a (PIN_OUTPUT | MUX_MODE6)  /* perslimbus2_clock.gpio5_145 */
+               >;
+       };
+
+       mcpdm_pins: pinmux_mcpdm_pins {
+               pinctrl-single,pins = <
+                       0x142 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* abe_clks.abe_clks */
+                       0x15c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* abemcpdm_ul_data.abemcpdm_ul_data */
+                       0x15e (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* abemcpdm_dl_data.abemcpdm_dl_data */
+                       0x160 (PIN_INPUT_PULLUP | MUX_MODE0)    /* abemcpdm_frame.abemcpdm_frame */
+                       0x162 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* abemcpdm_lb_clk.abemcpdm_lb_clk */
+               >;
+       };
+
+       dmic_pins: pinmux_dmic_pins {
+               pinctrl-single,pins = <
+                       0x144 (PIN_INPUT | MUX_MODE0)           /* abedmic_din1.abedmic_din1 */
+                       0x146 (PIN_INPUT | MUX_MODE0)           /* abedmic_din2.abedmic_din2 */
+                       0x148 (PIN_INPUT | MUX_MODE0)           /* abedmic_din3.abedmic_din3 */
+                       0x14a (PIN_OUTPUT | MUX_MODE0)          /* abedmic_clk1.abedmic_clk1 */
+               >;
+       };
+
+       mcbsp1_pins: pinmux_mcbsp1_pins {
+               pinctrl-single,pins = <
+                       0x14c (PIN_INPUT | MUX_MODE1)           /* abedmic_clk2.abemcbsp1_fsx */
+                       0x14e (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* abedmic_clk3.abemcbsp1_dx */
+                       0x150 (PIN_INPUT | MUX_MODE1)           /* abeslimbus1_clock.abemcbsp1_clkx */
+                       0x152 (PIN_INPUT_PULLDOWN | MUX_MODE1)  /* abeslimbus1_data.abemcbsp1_dr */
+               >;
+       };
+
+       mcbsp2_pins: pinmux_mcbsp2_pins {
+               pinctrl-single,pins = <
+                       0x154 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* abemcbsp2_dr.abemcbsp2_dr */
+                       0x156 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abemcbsp2_dx.abemcbsp2_dx */
+                       0x158 (PIN_INPUT | MUX_MODE0)           /* abemcbsp2_fsx.abemcbsp2_fsx */
+                       0x15a (PIN_INPUT | MUX_MODE0)           /* abemcbsp2_clkx.abemcbsp2_clkx */
+               >;
+       };
+
+       i2c1_pins: pinmux_i2c1_pins {
+               pinctrl-single,pins = <
+                       0x1b2 (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c1_scl */
+                       0x1b4 (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c1_sda */
+               >;
+       };
+
+       i2c5_pins: pinmux_i2c5_pins {
+               pinctrl-single,pins = <
+                       0x184 (PIN_INPUT | MUX_MODE0)           /* i2c5_scl */
+                       0x186 (PIN_INPUT | MUX_MODE0)           /* i2c5_sda */
+               >;
+       };
+
+       mcspi2_pins: pinmux_mcspi2_pins {
+               pinctrl-single,pins = <
+                       0xbc (PIN_INPUT | MUX_MODE0)            /*  mcspi2_clk */
+                       0xbe (PIN_INPUT | MUX_MODE0)            /*  mcspi2_simo */
+                       0xc0 (PIN_INPUT_PULLUP | MUX_MODE0)     /*  mcspi2_somi */
+                       0xc2 (PIN_OUTPUT | MUX_MODE0)           /*  mcspi2_cs */
+               >;
+       };
+
+       mcspi3_pins: pinmux_mcspi3_pins {
+               pinctrl-single,pins = <
+                       0x78 (PIN_INPUT | MUX_MODE1)            /*  mcspi2_somi */
+                       0x7a (PIN_INPUT | MUX_MODE1)            /*  mcspi2_cs */
+                       0x7c (PIN_INPUT | MUX_MODE1)            /*  mcspi2_simo */
+                       0x7e (PIN_INPUT | MUX_MODE1)            /*  mcspi2_clk */
+               >;
+       };
+
+       mcspi4_pins: pinmux_mcspi4_pins {
+               pinctrl-single,pins = <
+                       0x164 (PIN_INPUT | MUX_MODE1)           /*  mcspi2_clk */
+                       0x168 (PIN_INPUT | MUX_MODE1)           /*  mcspi2_simo */
+                       0x16a (PIN_INPUT | MUX_MODE1)           /*  mcspi2_somi */
+                       0x16c (PIN_INPUT | MUX_MODE1)           /*  mcspi2_cs */
+               >;
+       };
+
+       usbhost_pins: pinmux_usbhost_pins {
+               pinctrl-single,pins = <
+                       0x84 (PIN_INPUT | MUX_MODE0) /* usbb2_hsic_strobe */
+                       0x86 (PIN_INPUT | MUX_MODE0) /* usbb2_hsic_data */
+
+                       0x19e (PIN_INPUT | MUX_MODE0) /* usbb3_hsic_strobe */
+                       0x1a0 (PIN_INPUT | MUX_MODE0) /* usbb3_hsic_data */
+
+                       0x70 (PIN_OUTPUT | MUX_MODE6) /* gpio3_80 HUB_NRESET */
+                       0x6e (PIN_OUTPUT | MUX_MODE6) /* gpio3_79 ETH_NRESET */
+               >;
+       };
+
+       led_gpio_pins: pinmux_led_gpio_pins {
+               pinctrl-single,pins = <
+                       0x196 (PIN_OUTPUT | MUX_MODE6) /* uart3_cts_rctx.gpio5_153 */
+               >;
+       };
+
+       uart1_pins: pinmux_uart1_pins {
+               pinctrl-single,pins = <
+                       0x60 (PIN_OUTPUT | MUX_MODE0) /* uart1_tx.uart1_cts */
+                       0x62 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_tx.uart1_cts */
+                       0x64 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rx.uart1_rts */
+                       0x66 (PIN_OUTPUT | MUX_MODE0) /* uart1_rx.uart1_rts */
+               >;
+       };
+
+       uart3_pins: pinmux_uart3_pins {
+               pinctrl-single,pins = <
+                       0x19a (PIN_OUTPUT | MUX_MODE0) /* uart3_rts_irsd.uart3_tx_irtx */
+                       0x19c (PIN_INPUT_PULLUP | MUX_MODE0) /* uart3_rx_irrx.uart3_usbb3_hsic */
+               >;
+       };
+
+       uart5_pins: pinmux_uart5_pins {
+               pinctrl-single,pins = <
+                       0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart5_rx.uart5_rx */
+                       0x172 (PIN_OUTPUT | MUX_MODE0) /* uart5_tx.uart5_tx */
+                       0x174 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart5_cts.uart5_rts */
+                       0x176 (PIN_OUTPUT | MUX_MODE0) /* uart5_cts.uart5_rts */
+               >;
+       };
+
+};
+
+&omap5_pmx_wkup {
+       pinctrl-names = "default";
+       pinctrl-0 = <
+                       &usbhost_wkup_pins
+       >;
+
+       usbhost_wkup_pins: pinmux_usbhost_wkup_pins {
+               pinctrl-single,pins = <
+                       0x1A (PIN_OUTPUT | MUX_MODE0) /* fref_clk1_out, USB hub clk */
+               >;
+       };
+};
+
+&mmc1 {
+       vmmc-supply = <&vmmcsd_fixed>;
+       bus-width = <4>;
+};
+
+&mmc2 {
+       vmmc-supply = <&vmmcsd_fixed>;
+       bus-width = <8>;
+       ti,non-removable;
+};
+
+&mmc3 {
+       bus-width = <4>;
+       ti,non-removable;
+};
+
+&mmc4 {
+       status = "disabled";
+};
+
+&mmc5 {
+       status = "disabled";
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+
+       clock-frequency = <400000>;
+
+       palmas: palmas@48 {
+               compatible = "ti,palmas";
+               interrupts = <GIC_SPI 7 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */
+               interrupt-parent = <&gic>;
+               reg = <0x48>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+
+               palmas_pmic {
+                       compatible = "ti,palmas-pmic";
+                       interrupt-parent = <&palmas>;
+                       interrupts = <14 IRQ_TYPE_NONE>;
+                       interrupt-name = "short-irq";
+
+                       ti,ldo6-vibrator;
+
+                       regulators {
+                               smps123_reg: smps123 {
+                                       regulator-name = "smps123";
+                                       regulator-min-microvolt = < 600000>;
+                                       regulator-max-microvolt = <1500000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               smps45_reg: smps45 {
+                                       regulator-name = "smps45";
+                                       regulator-min-microvolt = < 600000>;
+                                       regulator-max-microvolt = <1310000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               smps6_reg: smps6 {
+                                       regulator-name = "smps6";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               smps7_reg: smps7 {
+                                       regulator-name = "smps7";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               smps8_reg: smps8 {
+                                       regulator-name = "smps8";
+                                       regulator-min-microvolt = < 600000>;
+                                       regulator-max-microvolt = <1310000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               smps9_reg: smps9 {
+                                       regulator-name = "smps9";
+                                       regulator-min-microvolt = <2100000>;
+                                       regulator-max-microvolt = <2100000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       ti,smps-range = <0x80>;
+                               };
+
+                               smps10_reg: smps10 {
+                                       regulator-name = "smps10";
+                                       regulator-min-microvolt = <5000000>;
+                                       regulator-max-microvolt = <5000000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo1_reg: ldo1 {
+                                       regulator-name = "ldo1";
+                                       regulator-min-microvolt = <2800000>;
+                                       regulator-max-microvolt = <2800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo2_reg: ldo2 {
+                                       regulator-name = "ldo2";
+                                       regulator-min-microvolt = <2900000>;
+                                       regulator-max-microvolt = <2900000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo3_reg: ldo3 {
+                                       regulator-name = "ldo3";
+                                       regulator-min-microvolt = <3000000>;
+                                       regulator-max-microvolt = <3000000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo4_reg: ldo4 {
+                                       regulator-name = "ldo4";
+                                       regulator-min-microvolt = <2200000>;
+                                       regulator-max-microvolt = <2200000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo5_reg: ldo5 {
+                                       regulator-name = "ldo5";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo6_reg: ldo6 {
+                                       regulator-name = "ldo6";
+                                       regulator-min-microvolt = <1500000>;
+                                       regulator-max-microvolt = <1500000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo7_reg: ldo7 {
+                                       regulator-name = "ldo7";
+                                       regulator-min-microvolt = <1500000>;
+                                       regulator-max-microvolt = <1500000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo8_reg: ldo8 {
+                                       regulator-name = "ldo8";
+                                       regulator-min-microvolt = <1500000>;
+                                       regulator-max-microvolt = <1500000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo9_reg: ldo9 {
+                                       regulator-name = "ldo9";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldoln_reg: ldoln {
+                                       regulator-name = "ldoln";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldousb_reg: ldousb {
+                                       regulator-name = "ldousb";
+                                       regulator-min-microvolt = <3250000>;
+                                       regulator-max-microvolt = <3250000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+                       };
+               };
+       };
+};
+
+&i2c5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c5_pins>;
+
+       clock-frequency = <400000>;
+};
+
+&mcbsp3 {
+       status = "disabled";
+};
+
+&usbhshost {
+       port2-mode = "ehci-hsic";
+       port3-mode = "ehci-hsic";
+};
+
+&usbhsehci {
+       phys = <0 &hsusb2_phy &hsusb3_phy>;
+};
+
+&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>;
+};
+
+&uart1 {
+        pinctrl-names = "default";
+        pinctrl-0 = <&uart1_pins>;
+};
+
+&uart3 {
+        pinctrl-names = "default";
+        pinctrl-0 = <&uart3_pins>;
+};
+
+&uart5 {
+        pinctrl-names = "default";
+        pinctrl-0 = <&uart5_pins>;
+};
index 635cae2830112906abe4bb6fd7058a58fa95d8b9..e643620417a9edb4bcabe2a447dbcf38b720f746 100644 (file)
@@ -7,15 +7,11 @@
  * Based on "omap4.dtsi"
  */
 
-/*
- * Carveout for multimedia usecases
- * It should be the last 48MB of the first 512MB memory part
- * In theory, it should not even exist. That zone should be reserved
- * dynamically during the .reserve callback.
- */
-/memreserve/ 0x9d000000 0x03000000;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/pinctrl/omap.h>
 
-/include/ "skeleton.dtsi"
+#include "skeleton.dtsi"
 
 / {
        #address-cells = <1>;
        };
 
        cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
                cpu@0 {
+                       device_type = "cpu";
                        compatible = "arm,cortex-a15";
+                       reg = <0x0>;
                };
                cpu@1 {
+                       device_type = "cpu";
                        compatible = "arm,cortex-a15";
+                       reg = <0x1>;
                };
        };
 
        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>;
+               /* PPI secure/nonsecure IRQ */
+               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 14 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 11 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 10 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>;
                clock-frequency = <6144000>;
        };
 
@@ -90,8 +93,8 @@
                reg = <0x44000000 0x2000>,
                      <0x44800000 0x3000>,
                      <0x45000000 0x4000>;
-               interrupts = <0 9 0x4>,
-                            <0 10 0x4>;
+               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
 
                counter32k: counter@4ae04000 {
                        compatible = "ti,omap-counter32k";
                sdma: dma-controller@4a056000 {
                        compatible = "ti,omap4430-sdma";
                        reg = <0x4a056000 0x1000>;
-                       interrupts = <0 12 0x4>,
-                                    <0 13 0x4>,
-                                    <0 14 0x4>,
-                                    <0 15 0x4>;
+                       interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
                        #dma-cells = <1>;
                        #dma-channels = <32>;
                        #dma-requests = <127>;
                gpio1: gpio@4ae10000 {
                        compatible = "ti,omap4-gpio";
                        reg = <0x4ae10000 0x200>;
-                       interrupts = <0 29 0x4>;
+                       interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "gpio1";
                        ti,gpio-always-on;
                        gpio-controller;
                gpio2: gpio@48055000 {
                        compatible = "ti,omap4-gpio";
                        reg = <0x48055000 0x200>;
-                       interrupts = <0 30 0x4>;
+                       interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "gpio2";
                        gpio-controller;
                        #gpio-cells = <2>;
                gpio3: gpio@48057000 {
                        compatible = "ti,omap4-gpio";
                        reg = <0x48057000 0x200>;
-                       interrupts = <0 31 0x4>;
+                       interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "gpio3";
                        gpio-controller;
                        #gpio-cells = <2>;
                gpio4: gpio@48059000 {
                        compatible = "ti,omap4-gpio";
                        reg = <0x48059000 0x200>;
-                       interrupts = <0 32 0x4>;
+                       interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "gpio4";
                        gpio-controller;
                        #gpio-cells = <2>;
                gpio5: gpio@4805b000 {
                        compatible = "ti,omap4-gpio";
                        reg = <0x4805b000 0x200>;
-                       interrupts = <0 33 0x4>;
+                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "gpio5";
                        gpio-controller;
                        #gpio-cells = <2>;
                gpio6: gpio@4805d000 {
                        compatible = "ti,omap4-gpio";
                        reg = <0x4805d000 0x200>;
-                       interrupts = <0 34 0x4>;
+                       interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "gpio6";
                        gpio-controller;
                        #gpio-cells = <2>;
                gpio7: gpio@48051000 {
                        compatible = "ti,omap4-gpio";
                        reg = <0x48051000 0x200>;
-                       interrupts = <0 35 0x4>;
+                       interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "gpio7";
                        gpio-controller;
                        #gpio-cells = <2>;
                gpio8: gpio@48053000 {
                        compatible = "ti,omap4-gpio";
                        reg = <0x48053000 0x200>;
-                       interrupts = <0 121 0x4>;
+                       interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "gpio8";
                        gpio-controller;
                        #gpio-cells = <2>;
                        reg = <0x50000000 0x1000>;
                        #address-cells = <2>;
                        #size-cells = <1>;
-                       interrupts = <0 20 0x4>;
+                       interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
                        gpmc,num-cs = <8>;
                        gpmc,num-waitpins = <4>;
                        ti,hwmods = "gpmc";
                i2c1: i2c@48070000 {
                        compatible = "ti,omap4-i2c";
                        reg = <0x48070000 0x100>;
-                       interrupts = <0 56 0x4>;
+                       interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ti,hwmods = "i2c1";
                i2c2: i2c@48072000 {
                        compatible = "ti,omap4-i2c";
                        reg = <0x48072000 0x100>;
-                       interrupts = <0 57 0x4>;
+                       interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ti,hwmods = "i2c2";
                i2c3: i2c@48060000 {
                        compatible = "ti,omap4-i2c";
                        reg = <0x48060000 0x100>;
-                       interrupts = <0 61 0x4>;
+                       interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ti,hwmods = "i2c3";
                i2c4: i2c@4807a000 {
                        compatible = "ti,omap4-i2c";
                        reg = <0x4807a000 0x100>;
-                       interrupts = <0 62 0x4>;
+                       interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ti,hwmods = "i2c4";
                i2c5: i2c@4807c000 {
                        compatible = "ti,omap4-i2c";
                        reg = <0x4807c000 0x100>;
-                       interrupts = <0 60 0x4>;
+                       interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ti,hwmods = "i2c5";
                mcspi1: spi@48098000 {
                        compatible = "ti,omap4-mcspi";
                        reg = <0x48098000 0x200>;
-                       interrupts = <0 65 0x4>;
+                       interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ti,hwmods = "mcspi1";
                mcspi2: spi@4809a000 {
                        compatible = "ti,omap4-mcspi";
                        reg = <0x4809a000 0x200>;
-                       interrupts = <0 66 0x4>;
+                       interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ti,hwmods = "mcspi2";
                mcspi3: spi@480b8000 {
                        compatible = "ti,omap4-mcspi";
                        reg = <0x480b8000 0x200>;
-                       interrupts = <0 91 0x4>;
+                       interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ti,hwmods = "mcspi3";
                mcspi4: spi@480ba000 {
                        compatible = "ti,omap4-mcspi";
                        reg = <0x480ba000 0x200>;
-                       interrupts = <0 48 0x4>;
+                       interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ti,hwmods = "mcspi4";
                uart1: serial@4806a000 {
                        compatible = "ti,omap4-uart";
                        reg = <0x4806a000 0x100>;
-                       interrupts = <0 72 0x4>;
+                       interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "uart1";
                        clock-frequency = <48000000>;
                };
                uart2: serial@4806c000 {
                        compatible = "ti,omap4-uart";
                        reg = <0x4806c000 0x100>;
-                       interrupts = <0 73 0x4>;
+                       interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "uart2";
                        clock-frequency = <48000000>;
                };
                uart3: serial@48020000 {
                        compatible = "ti,omap4-uart";
                        reg = <0x48020000 0x100>;
-                       interrupts = <0 74 0x4>;
+                       interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "uart3";
                        clock-frequency = <48000000>;
                };
                uart4: serial@4806e000 {
                        compatible = "ti,omap4-uart";
                        reg = <0x4806e000 0x100>;
-                       interrupts = <0 70 0x4>;
+                       interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "uart4";
                        clock-frequency = <48000000>;
                };
                uart5: serial@48066000 {
                        compatible = "ti,omap4-uart";
                        reg = <0x48066000 0x100>;
-                       interrupts = <0 105 0x4>;
+                       interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "uart5";
                        clock-frequency = <48000000>;
                };
                uart6: serial@48068000 {
                        compatible = "ti,omap4-uart";
                        reg = <0x48068000 0x100>;
-                       interrupts = <0 106 0x4>;
+                       interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "uart6";
                        clock-frequency = <48000000>;
                };
                mmc1: mmc@4809c000 {
                        compatible = "ti,omap4-hsmmc";
                        reg = <0x4809c000 0x400>;
-                       interrupts = <0 83 0x4>;
+                       interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mmc1";
                        ti,dual-volt;
                        ti,needs-special-reset;
                mmc2: mmc@480b4000 {
                        compatible = "ti,omap4-hsmmc";
                        reg = <0x480b4000 0x400>;
-                       interrupts = <0 86 0x4>;
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mmc2";
                        ti,needs-special-reset;
                        dmas = <&sdma 47>, <&sdma 48>;
                mmc3: mmc@480ad000 {
                        compatible = "ti,omap4-hsmmc";
                        reg = <0x480ad000 0x400>;
-                       interrupts = <0 94 0x4>;
+                       interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mmc3";
                        ti,needs-special-reset;
                        dmas = <&sdma 77>, <&sdma 78>;
                mmc4: mmc@480d1000 {
                        compatible = "ti,omap4-hsmmc";
                        reg = <0x480d1000 0x400>;
-                       interrupts = <0 96 0x4>;
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mmc4";
                        ti,needs-special-reset;
                        dmas = <&sdma 57>, <&sdma 58>;
                mmc5: mmc@480d5000 {
                        compatible = "ti,omap4-hsmmc";
                        reg = <0x480d5000 0x400>;
-                       interrupts = <0 59 0x4>;
+                       interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mmc5";
                        ti,needs-special-reset;
                        dmas = <&sdma 59>, <&sdma 60>;
                        reg = <0x40132000 0x7f>, /* MPU private access */
                              <0x49032000 0x7f>; /* L3 Interconnect */
                        reg-names = "mpu", "dma";
-                       interrupts = <0 112 0x4>;
+                       interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mcpdm";
                        dmas = <&sdma 65>,
                               <&sdma 66>;
                        reg = <0x4012e000 0x7f>, /* MPU private access */
                              <0x4902e000 0x7f>; /* L3 Interconnect */
                        reg-names = "mpu", "dma";
-                       interrupts = <0 114 0x4>;
+                       interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "dmic";
                        dmas = <&sdma 67>;
                        dma-names = "up_link";
                        reg = <0x40122000 0xff>, /* MPU private access */
                              <0x49022000 0xff>; /* L3 Interconnect */
                        reg-names = "mpu", "dma";
-                       interrupts = <0 17 0x4>;
+                       interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "common";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp1";
                        reg = <0x40124000 0xff>, /* MPU private access */
                              <0x49024000 0xff>; /* L3 Interconnect */
                        reg-names = "mpu", "dma";
-                       interrupts = <0 22 0x4>;
+                       interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "common";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp2";
                        reg = <0x40126000 0xff>, /* MPU private access */
                              <0x49026000 0xff>; /* L3 Interconnect */
                        reg-names = "mpu", "dma";
-                       interrupts = <0 23 0x4>;
+                       interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "common";
                        ti,buffer-size = <128>;
                        ti,hwmods = "mcbsp3";
                timer1: timer@4ae18000 {
                        compatible = "ti,omap5430-timer";
                        reg = <0x4ae18000 0x80>;
-                       interrupts = <0 37 0x4>;
+                       interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer1";
                        ti,timer-alwon;
                };
                timer2: timer@48032000 {
                        compatible = "ti,omap5430-timer";
                        reg = <0x48032000 0x80>;
-                       interrupts = <0 38 0x4>;
+                       interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer2";
                };
 
                timer3: timer@48034000 {
                        compatible = "ti,omap5430-timer";
                        reg = <0x48034000 0x80>;
-                       interrupts = <0 39 0x4>;
+                       interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer3";
                };
 
                timer4: timer@48036000 {
                        compatible = "ti,omap5430-timer";
                        reg = <0x48036000 0x80>;
-                       interrupts = <0 40 0x4>;
+                       interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer4";
                };
 
                        compatible = "ti,omap5430-timer";
                        reg = <0x40138000 0x80>,
                              <0x49038000 0x80>;
-                       interrupts = <0 41 0x4>;
+                       interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer5";
                        ti,timer-dsp;
                        ti,timer-pwm;
                        compatible = "ti,omap5430-timer";
                        reg = <0x4013a000 0x80>,
                              <0x4903a000 0x80>;
-                       interrupts = <0 42 0x4>;
+                       interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer6";
                        ti,timer-dsp;
                        ti,timer-pwm;
                        compatible = "ti,omap5430-timer";
                        reg = <0x4013c000 0x80>,
                              <0x4903c000 0x80>;
-                       interrupts = <0 43 0x4>;
+                       interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer7";
                        ti,timer-dsp;
                };
                        compatible = "ti,omap5430-timer";
                        reg = <0x4013e000 0x80>,
                              <0x4903e000 0x80>;
-                       interrupts = <0 44 0x4>;
+                       interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer8";
                        ti,timer-dsp;
                        ti,timer-pwm;
                timer9: timer@4803e000 {
                        compatible = "ti,omap5430-timer";
                        reg = <0x4803e000 0x80>;
-                       interrupts = <0 45 0x4>;
+                       interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer9";
                        ti,timer-pwm;
                };
                timer10: timer@48086000 {
                        compatible = "ti,omap5430-timer";
                        reg = <0x48086000 0x80>;
-                       interrupts = <0 46 0x4>;
+                       interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer10";
                        ti,timer-pwm;
                };
                timer11: timer@48088000 {
                        compatible = "ti,omap5430-timer";
                        reg = <0x48088000 0x80>;
-                       interrupts = <0 47 0x4>;
+                       interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer11";
                        ti,timer-pwm;
                };
                wdt2: wdt@4ae14000 {
                        compatible = "ti,omap5-wdt", "ti,omap3-wdt";
                        reg = <0x4ae14000 0x80>;
-                       interrupts = <0 80 0x4>;
+                       interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "wd_timer2";
                };
 
                        ti,hwmods       = "emif1";
                        phy-type        = <2>; /* DDR PHY type: Intelli PHY */
                        reg = <0x4c000000 0x400>;
-                       interrupts = <0 110 0x4>;
+                       interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
                        hw-caps-read-idle-ctrl;
                        hw-caps-ll-interface;
                        hw-caps-temp-alert;
                        ti,hwmods       = "emif2";
                        phy-type        = <2>; /* DDR PHY type: Intelli PHY */
                        reg = <0x4d000000 0x400>;
-                       interrupts = <0 111 0x4>;
+                       interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
                        hw-caps-read-idle-ctrl;
                        hw-caps-ll-interface;
                        hw-caps-temp-alert;
                        compatible = "ti,dwc3";
                        ti,hwmods = "usb_otg_ss";
                        reg = <0x4a020000 0x1000>;
-                       interrupts = <0 93 4>;
+                       interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        utmi-mode = <2>;
                        dwc3@4a030000 {
                                compatible = "synopsys,dwc3";
                                reg = <0x4a030000 0x1000>;
-                               interrupts = <0 92 4>;
+                               interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
                                usb-phy = <&usb2_phy>, <&usb3_phy>;
                                tx-fifo-resize;
                        };
                                ctrl-module = <&omap_control_usb>;
                        };
                };
+
+               usbhstll: usbhstll@4a062000 {
+                       compatible = "ti,usbhs-tll";
+                       reg = <0x4a062000 0x1000>;
+                       interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
+                       ti,hwmods = "usb_tll_hs";
+               };
+
+               usbhshost: usbhshost@4a064000 {
+                       compatible = "ti,usbhs-host";
+                       reg = <0x4a064000 0x800>;
+                       ti,hwmods = "usb_host_hs";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       usbhsohci: ohci@4a064800 {
+                               compatible = "ti,ohci-omap3", "usb-ohci";
+                               reg = <0x4a064800 0x400>;
+                               interrupt-parent = <&gic>;
+                               interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       usbhsehci: ehci@4a064c00 {
+                               compatible = "ti,ehci-omap", "usb-ehci";
+                               reg = <0x4a064c00 0x400>;
+                               interrupt-parent = <&gic>;
+                               interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
+               bandgap@4a0021e0 {
+                       reg = <0x4a0021e0 0xc
+                              0x4a00232c 0xc
+                              0x4a002380 0x2c
+                              0x4a0023C0 0x3c>;
+                       interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
+                       compatible = "ti,omap5430-bandgap";
+               };
        };
 };
index f0a8c2068ea7c902641894a5bbddb89e1920ae06..533919e96eaee8f70054a42e5e66db433143d6a4 100644 (file)
        #size-cells = <1>;
 
        cpus {
-               #address-cells = <1>;
+               #address-cells = <0>;
                #size-cells = <0>;
 
-               cpu@0 {
-                       compatible = "arm,1176jz-s";
+               cpu {
+                       compatible = "arm,arm1176jz-s";
+                       device_type = "cpu";
                        clock-frequency = <400000000>;
-                       reg = <0>;
                        d-cache-line-size = <32>;
                        d-cache-size = <32768>;
                        i-cache-line-size = <32>;
index daa962d191e691cab339d778c1a1d6a68a7fb125..ab3e80085511fef0a3911e4d9fc67d2f2d7c0d70 100644 (file)
        #size-cells = <1>;
 
        cpus {
-               #address-cells = <1>;
+               #address-cells = <0>;
                #size-cells = <0>;
 
-               cpu@0 {
-                       compatible = "arm,1176jz-s";
+               cpu {
+                       compatible = "arm,arm1176jz-s";
+                       device_type = "cpu";
                        cpu-clock = <&arm_clk>, "cpu";
-                       reg = <0>;
                        d-cache-line-size = <32>;
                        d-cache-size = <32768>;
                        i-cache-line-size = <32>;
index 3329719a9412b75c87a754cfdb10877c077bf206..02edd8965f8ae3f9f6f710a3290f4d84f7eb7a5e 100644 (file)
@@ -18,6 +18,8 @@
                #size-cells = <0>;
 
                cpu@0 {
+                       compatible = "arm,cortex-a9";
+                       device_type = "cpu";
                        reg = <0x0>;
                        d-cache-line-size = <32>;
                        i-cache-line-size = <32>;
index f18aad35e8b356bae596aaac27d2a2502684faf8..a5e90f078aa9fd56995b4191e773bdb1eda5ac76 100644 (file)
        };
 
        cpus {
-               cpu@0 {
-                       compatible = "arm,xscale";
+               #address-cells = <0>;
+               #size-cells = <0>;
+               cpu {
+                       compatible = "marvell,xscale";
+                       device_type = "cpu";
                };
        };
 
index fde2a337d1ff87e52be870e3457bb750781e4457..4ff2019c0e3032e286197346f34aa0fab3ca3bfc 100644 (file)
                        <0 0xf1004000 0 0x2000>,
                        <0 0xf1006000 0 0x2000>;
                interrupts = <1 9 0xf04>;
-
-               gic-cpuif@4 {
-                       compatible = "arm,gic-cpuif";
-                       cpuif-id = <4>;
-                       cpu = <&cpu0>;
-               };
        };
 
        timer {
diff --git a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
new file mode 100644 (file)
index 0000000..09ea22c
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Reference Device Tree Source for the armadillo 800 eva board
+ *
+ * Copyright (C) 2012 Renesas Solutions Corp.
+ *
+ * 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.
+ */
+
+/dts-v1/;
+/include/ "r8a7740.dtsi"
+
+/ {
+       model = "armadillo 800 eva reference";
+       compatible = "renesas,armadillo800eva-reference", "renesas,r8a7740";
+
+       chosen {
+               bootargs = "console=tty0 console=ttySC1,115200 earlyprintk=sh-sci.1,115200 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096 rw";
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x40000000 0x20000000>;
+       };
+
+       reg_3p3v: regulator@0 {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+};
+
+&i2c0 {
+       touchscreen: st1232@55 {
+               compatible = "sitronix,st1232";
+               reg = <0x55>;
+               interrupt-parent = <&irqpin1>;
+               interrupts = <2 0>; /* IRQ10: hwirq 2 on irqpin1 */
+       };
+};
index 798fa35c0005abd9bc365ee47ae18068a692f0df..24e93064382116b3c8dc7b8e5b11df4b1c5c9133 100644 (file)
        compatible = "renesas,r8a7740";
 
        cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
                cpu@0 {
                        compatible = "arm,cortex-a9";
+                       device_type = "cpu";
+                       reg = <0x0>;
                };
        };
+
+       gic: interrupt-controller@c2800000 {
+               compatible = "arm,cortex-a9-gic";
+               #interrupt-cells = <3>;
+               #address-cells = <1>;
+               interrupt-controller;
+               reg = <0xc2800000 0x1000>,
+                     <0xc2000000 0x1000>;
+       };
+
+       /* irqpin0: IRQ0 - IRQ7 */
+       irqpin0: irqpin@e6900000 {
+               compatible = "renesas,intc-irqpin";
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               reg = <0xe6900000 4>,
+                       <0xe6900010 4>,
+                       <0xe6900020 1>,
+                       <0xe6900040 1>,
+                       <0xe6900060 1>;
+               interrupt-parent = <&gic>;
+               interrupts = <0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4>;
+       };
+
+       /* irqpin1: IRQ8 - IRQ15 */
+       irqpin1: irqpin@e6900004 {
+               compatible = "renesas,intc-irqpin";
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               reg = <0xe6900004 4>,
+                       <0xe6900014 4>,
+                       <0xe6900024 1>,
+                       <0xe6900044 1>,
+                       <0xe6900064 1>;
+               interrupt-parent = <&gic>;
+               interrupts = <0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4>;
+       };
+
+       /* irqpin2: IRQ16 - IRQ23 */
+       irqpin2: irqpin@e6900008 {
+               compatible = "renesas,intc-irqpin";
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               reg = <0xe6900008 4>,
+                       <0xe6900018 4>,
+                       <0xe6900028 1>,
+                       <0xe6900048 1>,
+                       <0xe6900068 1>;
+               interrupt-parent = <&gic>;
+               interrupts = <0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4>;
+       };
+
+       /* irqpin3: IRQ24 - IRQ31 */
+       irqpin3: irqpin@e690000c {
+               compatible = "renesas,intc-irqpin";
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               reg = <0xe690000c 4>,
+                       <0xe690001c 4>,
+                       <0xe690002c 1>,
+                       <0xe690004c 1>,
+                       <0xe690006c 1>;
+               interrupt-parent = <&gic>;
+               interrupts = <0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4
+                             0 149 0x4>;
+       };
+
+       i2c0: i2c@fff20000 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "renesas,rmobile-iic";
+               reg = <0xfff20000 0x425>;
+               interrupt-parent = <&gic>;
+               interrupts = <0 201 0x4
+                             0 202 0x4
+                             0 203 0x4
+                             0 204 0x4>;
+       };
+
+       i2c1: i2c@e6c20000 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "renesas,rmobile-iic";
+               reg = <0xe6c20000 0x425>;
+               interrupt-parent = <&gic>;
+               interrupts = <0 70 0x4
+                             0 71 0x4
+                             0 72 0x4
+                             0 73 0x4>;
+       };
 };
index fe5c6f213271665364c85a12fe57eece00f70b8f..7f146c6bf7569dcf01d8c3a1933ba60eb736f579 100644 (file)
                       <0xf0000100 0x100>;
         };
 
+       irqpin0: irqpin@fe780010 {
+               compatible = "renesas,intc-irqpin";
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               reg = <0xfe78001c 4>,
+                       <0xfe780010 4>,
+                       <0xfe780024 4>,
+                       <0xfe780044 4>,
+                       <0xfe780064 4>;
+               interrupt-parent = <&gic>;
+               interrupts = <0 27 0x4
+                               0 28 0x4
+                               0 29 0x4
+                               0 30 0x4>;
+               sense-bitfield-width = <2>;
+       };
+
        i2c0: i2c@0xffc70000 {
                #address-cells = <1>;
                #size-cells = <0>;
index 7a1711027e41f7a739a4e06675e14d426289efcb..339d9b11721c0a235aee6dc297de37f96a9c981c 100644 (file)
                        <0 0xf1004000 0 0x2000>,
                        <0 0xf1006000 0 0x2000>;
                interrupts = <1 9 0xf04>;
-
-               gic-cpuif@4 {
-                       compatible = "arm,gic-cpuif";
-                       cpuif-id = <4>;
-                       cpu = <&cpu0>;
-               };
        };
 
        timer {
diff --git a/arch/arm/boot/dts/s3c2416-pinctrl.dtsi b/arch/arm/boot/dts/s3c2416-pinctrl.dtsi
new file mode 100644 (file)
index 0000000..527e319
--- /dev/null
@@ -0,0 +1,173 @@
+/*
+ * Samsung S3C2416 pinctrl settings
+ *
+ * Copyright (c) 2013 Heiko Stuebner <heiko@sntech.de>
+ *
+ * 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_0 {
+       /*
+        * Pin banks
+        */
+
+       gpa: gpa {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpb: gpb {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpc: gpc {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpd: gpd {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpe: gpe {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpf: gpf {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpg: gpg {
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gph: gph {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpj: gpj {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpk: gpk {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpl: gpl {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpm: gpm {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       /*
+        * Pin groups
+        */
+
+       uart0_data: uart0-data {
+               samsung,pins = "gph-0", "gph-1";
+               samsung,pin-function = <2>;
+       };
+
+       uart0_fctl: uart0-fctl {
+               samsung,pins = "gph-8", "gph-9";
+               samsung,pin-function = <2>;
+       };
+
+       uart1_data: uart1-data {
+               samsung,pins = "gph-2", "gph-3";
+               samsung,pin-function = <2>;
+       };
+
+       uart1_fctl: uart1-fctl {
+               samsung,pins = "gph-10", "gph-11";
+               samsung,pin-function = <2>;
+       };
+
+       uart2_data: uart2-data {
+               samsung,pins = "gph-4", "gph-5";
+               samsung,pin-function = <2>;
+       };
+
+       uart2_fctl: uart2-fctl {
+               samsung,pins = "gph-6", "gph-7";
+               samsung,pin-function = <2>;
+       };
+
+       uart3_data: uart3-data {
+               samsung,pins = "gph-6", "gph-7";
+               samsung,pin-function = <2>;
+       };
+
+       extuart_clk: extuart-clk {
+               samsung,pins = "gph-12";
+               samsung,pin-function = <2>;
+       };
+
+       i2c0_bus: i2c0-bus {
+               samsung,pins = "gpe-14", "gpe-15";
+               samsung,pin-function = <2>;
+       };
+
+       spi0_bus: spi0-bus {
+               samsung,pins = "gpe-11", "gpe-12", "gpe-13";
+               samsung,pin-function = <2>;
+       };
+
+       sd0_clk: sd0-clk {
+               samsung,pins = "gpe-5";
+               samsung,pin-function = <2>;
+       };
+
+       sd0_cmd: sd0-cmd {
+               samsung,pins = "gpe-6";
+               samsung,pin-function = <2>;
+       };
+
+       sd0_bus1: sd0-bus1 {
+               samsung,pins = "gpe-7";
+               samsung,pin-function = <2>;
+       };
+
+       sd0_bus4: sd0-bus4 {
+               samsung,pins = "gpe-8", "gpe-9", "gpe-10";
+               samsung,pin-function = <2>;
+       };
+
+       sd1_cmd: sd1-cmd {
+               samsung,pins = "gpl-8";
+               samsung,pin-function = <2>;
+       };
+
+       sd1_clk: sd1-clk {
+               samsung,pins = "gpl-9";
+               samsung,pin-function = <2>;
+       };
+
+       sd1_bus1: sd1-bus1 {
+               samsung,pins = "gpl-0";
+               samsung,pin-function = <2>;
+       };
+
+       sd1_bus4: sd1-bus4 {
+               samsung,pins = "gpl-1", "gpl-2", "gpl-3";
+               samsung,pin-function = <2>;
+       };
+};
diff --git a/arch/arm/boot/dts/s3c2416-smdk2416.dts b/arch/arm/boot/dts/s3c2416-smdk2416.dts
new file mode 100644 (file)
index 0000000..ad1dd09
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * SAMSUNG SMDK2416 board device tree source
+ *
+ * Copyright (c) 2013 Heiko Stuebner <heiko@sntech.de>
+ *
+ * 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/ "s3c2416.dtsi"
+
+/ {
+       model = "SMDK2416";
+       compatible = "samsung,s3c2416";
+
+       memory {
+               reg =  <0x30000000 0x4000000>;
+       };
+
+       serial@50000000 {
+               status = "okay";
+               pinctrl-names = "default";
+               pinctrl-0 = <&uart0_data>, <&uart0_fctl>;
+       };
+
+       serial@50004000 {
+               status = "okay";
+               pinctrl-names = "default";
+               pinctrl-0 = <&uart1_data>, <&uart1_fctl>;
+       };
+
+       serial@50008000 {
+               status = "okay";
+               pinctrl-names = "default";
+               pinctrl-0 = <&uart2_data>;
+       };
+
+       serial@5000C000 {
+               status = "okay";
+               pinctrl-names = "default";
+               pinctrl-0 = <&uart3_data>;
+       };
+
+       watchdog@53000000 {
+               status = "okay";
+       };
+
+       rtc@57000000 {
+               status = "okay";
+       };
+
+       sdhci@4AC00000 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&sd0_clk>, <&sd0_cmd>,
+                               <&sd0_bus1>, <&sd0_bus4>;
+               bus-width = <4>;
+               cd-gpios = <&gpf 1 0>;
+               cd-inverted;
+               status = "okay";
+       };
+
+       sdhci@4A800000 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&sd1_clk>, <&sd1_cmd>,
+                               <&sd1_bus1>, <&sd1_bus4>;
+               bus-width = <4>;
+               broken-cd;
+               status = "okay";
+       };
+};
diff --git a/arch/arm/boot/dts/s3c2416.dtsi b/arch/arm/boot/dts/s3c2416.dtsi
new file mode 100644 (file)
index 0000000..6809324
--- /dev/null
@@ -0,0 +1,79 @@
+/*
+ * Samsung's S3C2416 SoC device tree source
+ *
+ * Copyright (c) 2013 Heiko Stuebner <heiko@sntech.de>
+ *
+ * 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/ "s3c24xx.dtsi"
+/include/ "s3c2416-pinctrl.dtsi"
+
+/ {
+       model = "Samsung S3C2416 SoC";
+       compatible = "samsung,s3c2416";
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu {
+                       compatible = "arm,arm926ejs";
+               };
+       };
+
+       interrupt-controller@4a000000 {
+               compatible = "samsung,s3c2416-irq";
+       };
+
+       pinctrl@56000000 {
+               compatible = "samsung,s3c2416-pinctrl";
+       };
+
+       serial@50000000 {
+               compatible = "samsung,s3c2440-uart";
+       };
+
+       serial@50004000 {
+               compatible = "samsung,s3c2440-uart";
+       };
+
+       serial@50008000 {
+               compatible = "samsung,s3c2440-uart";
+       };
+
+       serial@5000C000 {
+               compatible = "samsung,s3c2440-uart";
+               reg = <0x5000C000 0x4000>;
+               interrupts = <1 18 24 4>, <1 18 25 4>;
+               status = "disabled";
+       };
+
+       sdhci@4AC00000 {
+               compatible = "samsung,s3c6410-sdhci";
+               reg = <0x4AC00000 0x100>;
+               interrupts = <0 0 21 3>;
+               status = "disabled";
+       };
+
+       sdhci@4A800000 {
+               compatible = "samsung,s3c6410-sdhci";
+               reg = <0x4A800000 0x100>;
+               interrupts = <0 0 20 3>;
+               status = "disabled";
+       };
+
+       watchdog@53000000 {
+               interrupts = <1 9 27 3>;
+       };
+
+       rtc@57000000 {
+               compatible = "samsung,s3c2416-rtc";
+       };
+
+       i2c@54000000 {
+               compatible = "samsung,s3c2440-i2c";
+       };
+};
diff --git a/arch/arm/boot/dts/s3c24xx.dtsi b/arch/arm/boot/dts/s3c24xx.dtsi
new file mode 100644 (file)
index 0000000..cab46ff
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ * Samsung's S3C24XX family device tree source
+ *
+ * Copyright (c) 2013 Heiko Stuebner <heiko@sntech.de>
+ *
+ * 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/ "skeleton.dtsi"
+
+/ {
+       compatible = "samsung,s3c24xx";
+       interrupt-parent = <&intc>;
+
+       aliases {
+               pinctrl0 = &pinctrl_0;
+       };
+
+       intc:interrupt-controller@4a000000 {
+               compatible = "samsung,s3c2410-irq";
+               reg = <0x4a000000 0x100>;
+               interrupt-controller;
+               #interrupt-cells = <4>;
+       };
+
+       pinctrl_0: pinctrl@56000000 {
+               reg = <0x56000000 0x1000>;
+
+               wakeup-interrupt-controller {
+                       compatible = "samsung,s3c2410-wakeup-eint";
+                       interrupts = <0 0 0 3>,
+                                    <0 0 1 3>,
+                                    <0 0 2 3>,
+                                    <0 0 3 3>,
+                                    <0 0 4 4>,
+                                    <0 0 5 4>;
+               };
+       };
+
+       timer@51000000 {
+               compatible = "samsung,s3c2410-pwm";
+               reg = <0x51000000 0x1000>;
+               interrupts = <0 0 10 3>, <0 0 11 3>, <0 0 12 3>, <0 0 13 3>, <0 0 14 3>;
+               #pwm-cells = <4>;
+       };
+
+       serial@50000000 {
+               compatible = "samsung,s3c2410-uart";
+               reg = <0x50000000 0x4000>;
+               interrupts = <1 28 0 4>, <1 28 1 4>;
+               status = "disabled";
+       };
+
+       serial@50004000 {
+               compatible = "samsung,s3c2410-uart";
+               reg = <0x50004000 0x4000>;
+               interrupts = <1 23 3 4>, <1 23 4 4>;
+               status = "disabled";
+       };
+
+       serial@50008000 {
+               compatible = "samsung,s3c2410-uart";
+               reg = <0x50008000 0x4000>;
+               interrupts = <1 15 6 4>, <1 15 7 4>;
+               status = "disabled";
+       };
+
+       watchdog@53000000 {
+               compatible = "samsung,s3c2410-wdt";
+               reg = <0x53000000 0x100>;
+               interrupts = <0 0 9 3>;
+               status = "disabled";
+       };
+
+       rtc@57000000 {
+               compatible = "samsung,s3c2410-rtc";
+               reg = <0x57000000 0x100>;
+               interrupts = <0 0 30 3>, <0 0 8 3>;
+               status = "disabled";
+       };
+
+       i2c@54000000 {
+               compatible = "samsung,s3c2410-i2c";
+               reg = <0x54000000 0x100>;
+               interrupts = <0 0 27 3>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+};
index d5922935523f5dae13ce41ee38088d6a9a137949..a1d5e25a66986492e3d44f5348102c64a6b3658a 100644 (file)
@@ -9,6 +9,7 @@
  */
 
 #include "skeleton.dtsi"
+#include <dt-bindings/dma/at91.h>
 #include <dt-bindings/pinctrl/at91.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/gpio/gpio.h>
                ssc1 = &ssc1;
        };
        cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
                cpu@0 {
+                       device_type = "cpu";
                        compatible = "arm,cortex-a5";
+                       reg = <0x0>;
                };
        };
 
@@ -63,7 +68,7 @@
                                compatible = "atmel,hsmci";
                                reg = <0xf0000000 0x600>;
                                interrupts = <21 IRQ_TYPE_LEVEL_HIGH 0>;
-                               dmas = <&dma0 2 0>;
+                               dmas = <&dma0 2 AT91_DMA_CFG_PER_ID(0)>;
                                dma-names = "rxtx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_dat4_7>;
                        spi0: spi@f0004000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
-                               compatible = "atmel,at91sam9x5-spi";
+                               compatible = "atmel,at91rm9200-spi";
                                reg = <0xf0004000 0x100>;
                                interrupts = <24 IRQ_TYPE_LEVEL_HIGH 3>;
+                               dmas = <&dma0 2 AT91_DMA_CFG_PER_ID(1)>,
+                                      <&dma0 2 AT91_DMA_CFG_PER_ID(2)>;
+                               dma-names = "tx", "rx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi0>;
                                status = "disabled";
                                compatible = "atmel,at91sam9x5-i2c";
                                reg = <0xf0014000 0x4000>;
                                interrupts = <18 IRQ_TYPE_LEVEL_HIGH 6>;
-                               dmas = <&dma0 2 7>,
-                                      <&dma0 2 8>;
+                               dmas = <&dma0 2 AT91_DMA_CFG_PER_ID(7)>,
+                                      <&dma0 2 AT91_DMA_CFG_PER_ID(8)>;
                                dma-names = "tx", "rx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_i2c0>;
                                compatible = "atmel,at91sam9x5-i2c";
                                reg = <0xf0018000 0x4000>;
                                interrupts = <19 IRQ_TYPE_LEVEL_HIGH 6>;
-                               dmas = <&dma0 2 9>,
-                                      <&dma0 2 10>;
+                               dmas = <&dma0 2 AT91_DMA_CFG_PER_ID(9)>,
+                                      <&dma0 2 AT91_DMA_CFG_PER_ID(10)>;
                                dma-names = "tx", "rx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_i2c1>;
                                compatible = "atmel,hsmci";
                                reg = <0xf8000000 0x600>;
                                interrupts = <22 IRQ_TYPE_LEVEL_HIGH 0>;
-                               dmas = <&dma1 2 0>;
+                               dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(0)>;
                                dma-names = "rxtx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3>;
                                compatible = "atmel,hsmci";
                                reg = <0xf8004000 0x600>;
                                interrupts = <23 IRQ_TYPE_LEVEL_HIGH 0>;
-                               dmas = <&dma1 2 1>;
+                               dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(1)>;
                                dma-names = "rxtx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_mmc2_clk_cmd_dat0 &pinctrl_mmc2_dat1_3>;
                        spi1: spi@f8008000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
-                               compatible = "atmel,at91sam9x5-spi";
+                               compatible = "atmel,at91rm9200-spi";
                                reg = <0xf8008000 0x100>;
                                interrupts = <25 IRQ_TYPE_LEVEL_HIGH 3>;
+                               dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(15)>,
+                                      <&dma1 2 AT91_DMA_CFG_PER_ID(16)>;
+                               dma-names = "tx", "rx";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi1>;
                                status = "disabled";
                                compatible = "atmel,at91sam9x5-i2c";
                                reg = <0xf801c000 0x4000>;
                                interrupts = <20 IRQ_TYPE_LEVEL_HIGH 6>;
-                               dmas = <&dma1 2 11>,
-                                      <&dma1 2 12>;
+                               dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(11)>,
+                                      <&dma1 2 AT91_DMA_CFG_PER_ID(12)>;
                                dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
index 677fc603f8b36c095f503976287166034f8f8f41..7bf020ecadf590d3dd6986830bce1f758dbc910e 100644 (file)
        compatible = "renesas,sh7372";
 
        cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
                cpu@0 {
                        compatible = "arm,cortex-a8";
+                       device_type = "cpu";
+                       reg = <0x0>;
                };
        };
 };
index 5972abb55f9cfbbf85cbc133eef788a9635e17d5..b6f759e830ed3fb35dfc4284f838d776aa6c760f 100644 (file)
        model = "KZM-A9-GT";
        compatible = "renesas,kzm9g-reference", "renesas,sh73a0";
 
+       cpus {
+               cpu@0 {
+                       cpu0-supply = <&vdd_dvfs>;
+                       operating-points = <
+                               /* kHz  uV */
+                               1196000 1315000
+                                598000 1175000
+                                398667 1065000
+                       >;
+                       voltage-tolerance = <1>; /* 1% */
+               };
+       };
+
        chosen {
                bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200";
        };
        };
 };
 
+&i2c0 {
+       as3711@40 {
+               compatible = "ams,as3711";
+               reg = <0x40>;
+
+               regulators {
+                       vdd_dvfs: sd1 {
+                               regulator-name = "1.315V CPU";
+                               regulator-min-microvolt = <1050000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+                       sd2 {
+                               regulator-name = "1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+                       sd4 {
+                               regulator-name = "1.215V";
+                               regulator-min-microvolt = <1215000>;
+                               regulator-max-microvolt = <1235000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+                       ldo2 {
+                               regulator-name = "2.8V CPU";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+                       ldo3 {
+                               regulator-name = "3.0V CPU";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+                       ldo4 {
+                               regulator-name = "2.8V";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+                       ldo5 {
+                               regulator-name = "2.8V #2";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+                       ldo7 {
+                               regulator-name = "1.15V CPU";
+                               regulator-min-microvolt = <1150000>;
+                               regulator-max-microvolt = <1150000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+                       ldo8 {
+                               regulator-name = "1.15V CPU #2";
+                               regulator-min-microvolt = <1150000>;
+                               regulator-max-microvolt = <1150000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+               };
+       };
+};
+
 &mmcif {
        bus-width = <8>;
        vmmc-supply = <&reg_1p8v>;
index ec40bf78289e1fe57e4817fe4e6e29be6c2d58e1..b9775025600364384556b5206db1128f8ecc2398 100644 (file)
                              0 32 0x4>;
        };
 
-       i2c0: i2c@0xe6820000 {
+       i2c0: i2c@e6820000 {
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "renesas,rmobile-iic";
                              0 170 0x4>;
        };
 
-       i2c1: i2c@0xe6822000 {
+       i2c1: i2c@e6822000 {
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "renesas,rmobile-iic";
                              0 54 0x4>;
        };
 
-       i2c2: i2c@0xe6824000 {
+       i2c2: i2c@e6824000 {
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "renesas,rmobile-iic";
                              0 174 0x4>;
        };
 
-       i2c3: i2c@0xe6826000 {
+       i2c3: i2c@e6826000 {
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "renesas,rmobile-iic";
                              0 186 0x4>;
        };
 
-       i2c4: i2c@0xe6828000 {
+       i2c4: i2c@e6828000 {
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "renesas,rmobile-iic";
                              0 190 0x4>;
        };
 
-       mmcif: mmcif@0x10010000 {
+       mmcif: mmcif@e6bd0000 {
                compatible = "renesas,sh-mmcif";
                reg = <0xe6bd0000 0x100>;
                interrupt-parent = <&gic>;
                status = "disabled";
        };
 
-       sdhi0: sdhi@0xee100000 {
+       sdhi0: sdhi@ee100000 {
                compatible = "renesas,r8a7740-sdhi";
                reg = <0xee100000 0x100>;
                interrupt-parent = <&gic>;
        };
 
        /* SDHI1 and SDHI2 have no CD pins, no need for CD IRQ */
-       sdhi1: sdhi@0xee120000 {
+       sdhi1: sdhi@ee120000 {
                compatible = "renesas,r8a7740-sdhi";
                reg = <0xee120000 0x100>;
                interrupt-parent = <&gic>;
                status = "disabled";
        };
 
-       sdhi2: sdhi@0xee140000 {
+       sdhi2: sdhi@ee140000 {
                compatible = "renesas,r8a7740-sdhi";
                reg = <0xee140000 0x100>;
                interrupt-parent = <&gic>;
index db5db24fd54407233b42aa1cc4b202e589eabdd0..fb9dce529da6898d236d25fa2edd4f745a12b688 100644 (file)
@@ -10,7 +10,7 @@
  */
 
 /dts-v1/;
-/include/ "dbx5x0.dtsi"
+#include "dbx5x0.dtsi"
 
 / {
        model = "Calao Systems Snowball platform with device tree";
@@ -82,7 +82,7 @@
                };
        };
 
-       soc-u9500 {
+       soc {
 
                sound {
                        compatible = "stericsson,snd-soc-mop500";
                        status = "okay";
                };
 
-               prcmu@80157000 {
-                       thermal@801573c0 {
-                               num-trips = <4>;
-
-                               trip0-temp = <70000>;
-                               trip0-type = "active";
-                               trip0-cdev-num = <1>;
-                               trip0-cdev-name0 = "thermal-cpufreq-0";
-
-                               trip1-temp = <75000>;
-                               trip1-type = "active";
-                               trip1-cdev-num = <1>;
-                               trip1-cdev-name0 = "thermal-cpufreq-0";
-
-                               trip2-temp = <80000>;
-                               trip2-type = "active";
-                               trip2-cdev-num = <1>;
-                               trip2-cdev-name0 = "thermal-cpufreq-0";
-
-                               trip3-temp = <85000>;
-                               trip3-type = "critical";
-                               trip3-cdev-num = <0>;
-
-                               status = "okay";
-                        };
-               };
-
                external-bus@50000000 {
                        status = "okay";
 
                        ethernet@0 {
                                compatible = "smsc,lan9115";
                                reg = <0 0x10000>;
-                               interrupts = <12 0x1>;
+                               interrupts = <12 IRQ_TYPE_EDGE_RISING>;
                                interrupt-parent = <&gpio4>;
                                vdd33a-supply = <&en_3v3_reg>;
                                vddvario-supply = <&db8500_vape_reg>;
                        };
                };
 
+               vmmci: regulator-gpio {
+                       gpios = <&gpio6 25 0x4>;
+                       enable-gpio = <&gpio7 4 0x4>;
+
+                       status = "okay";
+               };
+
                // External Micro SD slot
                sdi0_per1@80126000 {
                        arm,primecell-periphid = <0x10480180>;
-                       max-frequency = <50000000>;
+                       max-frequency = <100000000>;
                        bus-width = <4>;
                        mmc-cap-mmc-highspeed;
                        vmmc-supply = <&ab8500_ldo_aux3_reg>;
+                       vqmmc-supply = <&vmmci>;
 
                        cd-gpios  = <&gpio6 26 0x4>; // 218
                        cd-inverted;
                // On-board eMMC
                sdi4_per2@80114000 {
                        arm,primecell-periphid = <0x10480180>;
-                       max-frequency = <50000000>;
+                       max-frequency = <100000000>;
                        bus-width = <8>;
                        mmc-cap-mmc-highspeed;
                        vmmc-supply = <&ab8500_ldo_aux2_reg>;
                };
 
                i2c@80128000 {
-                       lp5521@0x33 {
+                       lp5521@33 {
                                // compatible = "lp5521";
                                reg = <0x33>;
                        };
-                       lp5521@0x34 {
+                       lp5521@34 {
                                // compatible = "lp5521";
                                reg = <0x34>;
                        };
-                       bh1780@0x29 {
+                       bh1780@29 {
                                // compatible = "rohm,bh1780gli";
                                reg = <0x33>;
                        };
                                };
                        };
 
+                       thermal@801573c0 {
+                               num-trips = <4>;
+
+                               trip0-temp = <70000>;
+                               trip0-type = "active";
+                               trip0-cdev-num = <1>;
+                               trip0-cdev-name0 = "thermal-cpufreq-0";
+
+                               trip1-temp = <75000>;
+                               trip1-type = "active";
+                               trip1-cdev-num = <1>;
+                               trip1-cdev-name0 = "thermal-cpufreq-0";
+
+                               trip2-temp = <80000>;
+                               trip2-type = "active";
+                               trip2-cdev-num = <1>;
+                               trip2-cdev-name0 = "thermal-cpufreq-0";
+
+                               trip3-temp = <85000>;
+                               trip3-type = "critical";
+                               trip3-cdev-num = <0>;
+
+                               status = "okay";
+                       };
+
                        ab8500 {
                                ab8500-gpio {
                                        compatible = "stericsson,ab8500-gpio";
                                                regulator-name = "V-MMC-SD";
                                        };
 
-                                       ab8500_ldo_initcore_reg: ab8500_ldo_initcore {
+                                       ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
                                                regulator-name = "V-INTCORE";
                                        };
 
                                                regulator-name = "V-AMIC1";
                                        };
 
-                                       ab8500_ldo_amamic2_reg: ab8500_ldo_amamic2 {
+                                       ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
                                                regulator-name = "V-AMIC2";
                                        };
 
index 16a6e13e08b41cc3e876d077acf14d2315a98b22..bee62a2cf6d653f9f151651ca8379d86d5a91f43 100644 (file)
@@ -23,6 +23,7 @@
 
        aliases {
                ethernet0 = &gmac0;
+               ethernet1 = &gmac1;
                serial0 = &uart0;
                serial1 = &uart1;
                timer0 = &timer0;
                                                compatible = "fixed-clock";
                                        };
 
+                                       f2s_periph_ref_clk: f2s_periph_ref_clk {
+                                               #clock-cells = <0>;
+                                               compatible = "fixed-clock";
+                                               clock-frequency = <10000000>;
+                                       };
+
                                        main_pll: main_pll {
                                                #address-cells = <1>;
                                                #size-cells = <0>;
                                                        reg = <0xD4>;
                                                };
                                        };
+
+                               mpu_periph_clk: mpu_periph_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&mpuclk>;
+                                       fixed-divider = <4>;
+                                       };
+
+                               mpu_l2_ram_clk: mpu_l2_ram_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&mpuclk>;
+                                       fixed-divider = <2>;
+                                       };
+
+                               l4_main_clk: l4_main_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&mainclk>;
+                                       clk-gate = <0x60 0>;
+                                       };
+
+                               l3_main_clk: l3_main_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&mainclk>;
+                                       };
+
+                               l3_mp_clk: l3_mp_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&mainclk>;
+                                       div-reg = <0x64 0 2>;
+                                       clk-gate = <0x60 1>;
+                                       };
+
+                               l3_sp_clk: l3_sp_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&mainclk>;
+                                       div-reg = <0x64 2 2>;
+                               };
+
+                               l4_mp_clk: l4_mp_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&mainclk>, <&per_base_clk>;
+                                       div-reg = <0x64 4 3>;
+                                       clk-gate = <0x60 2>;
+                                       };
+
+                               l4_sp_clk: l4_sp_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&mainclk>, <&per_base_clk>;
+                                       div-reg = <0x64 7 3>;
+                                       clk-gate = <0x60 3>;
+                                       };
+
+                               dbg_at_clk: dbg_at_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&dbg_base_clk>;
+                                       div-reg = <0x68 0 2>;
+                                       clk-gate = <0x60 4>;
+                                       };
+
+                               dbg_clk: dbg_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&dbg_base_clk>;
+                                       div-reg = <0x68 2 2>;
+                                       clk-gate = <0x60 5>;
+                                       };
+
+                               dbg_trace_clk: dbg_trace_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&dbg_base_clk>;
+                                       div-reg = <0x6C 0 3>;
+                                       clk-gate = <0x60 6>;
+                                       };
+
+                               dbg_timer_clk: dbg_timer_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&dbg_base_clk>;
+                                       clk-gate = <0x60 7>;
+                                       };
+
+                               cfg_clk: cfg_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&cfg_s2f_usr0_clk>;
+                                       clk-gate = <0x60 8>;
+                                       };
+
+                               s2f_user0_clk: s2f_user0_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&cfg_s2f_usr0_clk>;
+                                       clk-gate = <0x60 9>;
+                                       };
+
+                               emac_0_clk: emac_0_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&emac0_clk>;
+                                       clk-gate = <0xa0 0>;
+                                       };
+
+                               emac_1_clk: emac_1_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&emac1_clk>;
+                                       clk-gate = <0xa0 1>;
+                                       };
+
+                               usb_mp_clk: usb_mp_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&per_base_clk>;
+                                       clk-gate = <0xa0 2>;
+                                       div-reg = <0xa4 0 3>;
+                                       };
+
+                               spi_m_clk: spi_m_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&per_base_clk>;
+                                       clk-gate = <0xa0 3>;
+                                       div-reg = <0xa4 3 3>;
+                                       };
+
+                               can0_clk: can0_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&per_base_clk>;
+                                       clk-gate = <0xa0 4>;
+                                       div-reg = <0xa4 6 3>;
+                                       };
+
+                               can1_clk: can1_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&per_base_clk>;
+                                       clk-gate = <0xa0 5>;
+                                       div-reg = <0xa4 9 3>;
+                                       };
+
+                               gpio_db_clk: gpio_db_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&per_base_clk>;
+                                       clk-gate = <0xa0 6>;
+                                       div-reg = <0xa8 0 24>;
+                                       };
+
+                               s2f_user1_clk: s2f_user1_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&s2f_usr1_clk>;
+                                       clk-gate = <0xa0 7>;
+                                       };
+
+                               sdmmc_clk: sdmmc_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&f2s_periph_ref_clk>, <&main_nand_sdmmc_clk>, <&per_nand_mmc_clk>;
+                                       clk-gate = <0xa0 8>;
+                                       };
+
+                               nand_x_clk: nand_x_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&f2s_periph_ref_clk>, <&main_nand_sdmmc_clk>, <&per_nand_mmc_clk>;
+                                       clk-gate = <0xa0 9>;
+                                       };
+
+                               nand_clk: nand_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&f2s_periph_ref_clk>, <&main_nand_sdmmc_clk>, <&per_nand_mmc_clk>;
+                                       clk-gate = <0xa0 10>;
+                                       fixed-divider = <4>;
+                                       };
+
+                               qspi_clk: qspi_clk {
+                                       #clock-cells = <0>;
+                                       compatible = "altr,socfpga-gate-clk";
+                                       clocks = <&f2s_periph_ref_clk>, <&main_qspi_clk>, <&per_qspi_clk>;
+                                       clk-gate = <0xa0 11>;
+                                       };
                                };
                        };
 
-               gmac0: stmmac@ff700000 {
+               gmac0: ethernet@ff700000 {
                        compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
                        reg = <0xff700000 0x2000>;
                        interrupts = <0 115 4>;
                        interrupt-names = "macirq";
                        mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
-                       phy-mode = "gmii";
+                       clocks = <&emac0_clk>;
+                       clock-names = "stmmaceth";
+                       status = "disabled";
+               };
+
+               gmac1: ethernet@ff702000 {
+                       compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
+                       reg = <0xff702000 0x2000>;
+                       interrupts = <0 120 4>;
+                       interrupt-names = "macirq";
+                       mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
+                       clocks = <&emac1_clk>;
+                       clock-names = "stmmaceth";
+                       status = "disabled";
                };
 
                L2: l2-cache@fffef000 {
index 2495958f10168383b3a80e9ee26c707ceb54bb8c..973999d2c69759b7303073bb06db3cc3533417f0 100644 (file)
                reg = <0x0 0x40000000>; /* 1GB */
        };
 
+       aliases {
+               /* this allow the ethaddr uboot environmnet variable contents
+                * to be added to the gmac1 device tree blob.
+                */
+               ethernet0 = &gmac1;
+       };
+
        soc {
                clkmgr@ffd04000 {
                        clocks {
                        };
                };
 
+               ethernet@ff702000 {
+                       phy-mode = "rgmii";
+                       phy-addr = <0xffffffff>; /* probe for phy addr */
+                       status = "okay";
+               };
+
                timer0@ffc08000 {
                        clock-frequency = <100000000>;
                };
index 0bf035d607f051fc62fe0a762cbd9c5dd0c7911a..d1ec0cab2dee0daa986a8ddd75f10222cbcd25bb 100644 (file)
                        };
                };
 
+               ethernet@ff700000 {
+                       phy-mode = "gmii";
+                       status = "okay";
+               };
+
                timer0@ffc08000 {
                        clock-frequency = <7000000>;
                };
index 45597fd910505eb251d541d2ee72c460ec49f21c..4382547df58a70554abf0ca641175bc5cda2bc04 100644 (file)
 
                cpu@0 {
                        compatible = "arm,cortex-a9";
+                       device_type = "cpu";
                        reg = <0>;
                        next-level-cache = <&L2>;
                };
 
                cpu@1 {
                        compatible = "arm,cortex-a9";
+                       device_type = "cpu";
                        reg = <1>;
                        next-level-cache = <&L2>;
                };
index c2a852d43c4895fe543b0849f9580d594bca4531..f0e3fcf8e3237e2a63cc7e83579cb5f785efbec5 100644 (file)
        interrupt-parent = <&vic>;
 
        cpus {
-               cpu@0 {
-                       compatible = "arm,arm926ejs";
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       compatible = "arm,arm926ej-s";
+                       device_type = "cpu";
                };
        };
 
index 19f99dc4115e164c8903a3259ea873675be16ee2..9f60a7b6a42bf42e0b84584d94b48b7888ea58a0 100644 (file)
        compatible = "st,spear600";
 
        cpus {
-               cpu@0 {
-                       compatible = "arm,arm926ejs";
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       compatible = "arm,arm926ej-s";
+                       device_type = "cpu";
                };
        };
 
index 6f82d9368948856e8123b7193bbfc8230986f96f..16c3888b7b15005579ecef4fcdb0cb9d4678be70 100644 (file)
                };
        };
 
+       src@101e0000 {
+               /* These chrystal drivers are not used on this board */
+               disable-sxtalo;
+               disable-mxtalo;
+       };
+
+       pinctrl {
+               /* Hog CD pins */
+               pinctrl-names = "default";
+               pinctrl-0 = <&cd_default_mode>;
+
+               mmcsd-cd {
+                       cd_default_mode: cd_default {
+                               cd_default_cfg1 {
+                                       /* CD input GPIO */
+                                       ste,pins = "GPIO111_H21";
+                                       ste,input = <0>;
+                               };
+                               cd_default_cfg2 {
+                                       /* CD GPIO biasing */
+                                       ste,pins = "GPIO112_J21";
+                                       ste,output = <0>;
+                               };
+                       };
+               };
+               user-led {
+                       user_led_default_mode: user_led_default {
+                               user_led_default_cfg {
+                                       ste,pins = "GPIO2_C5";
+                                       ste,output = <1>;
+                               };
+                       };
+               };
+               user-button {
+                       user_button_default_mode: user_button_default {
+                               user_button_default_cfg {
+                                       ste,pins = "GPIO3_A4";
+                                       ste,input = <0>;
+                               };
+                       };
+               };
+       };
+
        /* Custom board node with GPIO pins to active etc */
        usb-s8815 {
                /* The S8815 is using this very GPIO pin for the SMSC91x IRQs */
                        gpios = <&gpio3 16 0x1>;
                };
        };
+
+       /* The user LED on the board is set up to be used for heartbeat */
+       leds {
+               compatible = "gpio-leds";
+               user-led {
+                       label = "user_led";
+                       gpios = <&gpio0 2 0x1>;
+                       default-state = "off";
+                       linux,default-trigger = "heartbeat";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&user_led_default_mode>;
+               };
+       };
+
+       /* User key mapped in as "escape" */
+       gpio-keys {
+               compatible = "gpio-keys";
+               user-button {
+                       label = "user_button";
+                       gpios = <&gpio0 3 0x1>;
+                       linux,code = <1>; /* KEY_ESC */
+                       gpio-key,wakeup;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&user_button_default_mode>;
+               };
+       };
 };
index 4a4aab395141b97b0f13e834896c76da13c8a977..a3acfa7b3dc9c65fe6abded6a17a97aee3c4729e 100644 (file)
                cache-level = <2>;
        };
 
-       mtu0 {
+       mtu0: mtu@101e2000 {
                /* Nomadik system timer */
+               compatible = "st,nomadik-mtu";
                reg = <0x101e2000 0x1000>;
                interrupt-parent = <&vica>;
                interrupts = <4>;
+               clocks = <&timclk>, <&pclk>;
+               clock-names = "timclk", "apb_pclk";
        };
 
-       mtu1 {
+       mtu1: mtu@101e3000 {
                /* Secondary timer */
                reg = <0x101e3000 0x1000>;
                interrupt-parent = <&vica>;
                interrupts = <5>;
+               clocks = <&timclk>, <&pclk>;
+               clock-names = "timclk", "apb_pclk";
        };
 
        gpio0: gpio@101e4000 {
@@ -45,6 +50,7 @@
                gpio-controller;
                #gpio-cells = <2>;
                gpio-bank = <0>;
+               clocks = <&pclk>;
        };
 
        gpio1: gpio@101e5000 {
@@ -57,6 +63,7 @@
                gpio-controller;
                #gpio-cells = <2>;
                gpio-bank = <1>;
+               clocks = <&pclk>;
        };
 
        gpio2: gpio@101e6000 {
@@ -69,6 +76,7 @@
                gpio-controller;
                #gpio-cells = <2>;
                gpio-bank = <2>;
+               clocks = <&pclk>;
        };
 
        gpio3: gpio@101e7000 {
                gpio-controller;
                #gpio-cells = <2>;
                gpio-bank = <3>;
+               clocks = <&pclk>;
        };
 
        pinctrl {
-               compatible = "stericsson,nmk-pinctrl-stn8815";
+               compatible = "stericsson,stn8815-pinctrl";
+               /* Pin configurations */
+               uart0 {
+                       uart0_default_mux: uart0_mux {
+                               u0_default_mux {
+                                       ste,function = "u0";
+                                       ste,pins = "u0_a_1";
+                               };
+                       };
+               };
+               uart1 {
+                       uart1_default_mux: uart1_mux {
+                               u1_default_mux {
+                                       ste,function = "u1";
+                                       ste,pins = "u1_a_1";
+                               };
+                       };
+               };
+               mmcsd {
+                       mmcsd_default_mux: mmcsd_mux {
+                               mmcsd_default_mux {
+                                       ste,function = "mmcsd";
+                                       ste,pins = "mmcsd_a_1";
+                               };
+                       };
+                       mmcsd_default_mode: mmcsd_default {
+                               mmcsd_default_cfg1 {
+                                       /* MCCLK */
+                                       ste,pins = "GPIO8_B10";
+                                       ste,output = <0>;
+                               };
+                               mmcsd_default_cfg2 {
+                                       /* MCCMDDIR, MCDAT0DIR, MCDAT31DIR */
+                                       ste,pins = "GPIO10_C11", "GPIO15_A12",
+                                       "GPIO16_C13";
+                                       ste,output = <1>;
+                               };
+                               mmcsd_default_cfg3 {
+                                       /* MCCMD, MCDAT3-0, MCMSFBCLK */
+                                       ste,pins = "GPIO9_A10", "GPIO11_B11",
+                                       "GPIO12_A11", "GPIO13_C12",
+                                       "GPIO14_B12", "GPIO24_C15";
+                                       ste,input = <1>;
+                               };
+                       };
+               };
+               i2c0 {
+                       i2c0_default_mode: i2c0_default {
+                               i2c0_default_cfg {
+                                       ste,pins = "GPIO62_D3", "GPIO63_D2";
+                                       ste,input = <1>;
+                               };
+                       };
+               };
+               i2c1 {
+                       i2c1_default_mode: i2c1_default {
+                               i2c1_default_cfg {
+                                       ste,pins = "GPIO53_L4", "GPIO54_L3";
+                                       ste,input = <1>;
+                               };
+                       };
+               };
+               i2c2 {
+                       i2c2_default_mode: i2c2_default {
+                               i2c2_default_cfg {
+                                       ste,pins = "GPIO73_C21", "GPIO74_C20";
+                                       ste,input = <1>;
+                               };
+                       };
+               };
+       };
+
+       src: src@101e0000 {
+               compatible = "stericsson,nomadik-src";
+               reg = <0x101e0000 0x1000>;
+               disable-sxtalo;
+               disable-mxtalo;
+
+               /*
+                * MXTAL "Main Chrystal" is a chrystal oscillator @19.2 MHz
+                * that is parent of TIMCLK, PLL1 and PLL2
+                */
+               mxtal: mxtal@19.2M {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <19200000>;
+               };
+
+               /*
+                * The 2.4 MHz TIMCLK reference clock is active at
+                * boot time, this is actually the MXTALCLK @19.2 MHz
+                * divided by 8. This clock is used by the timers and
+                * watchdog. See page 105 ff.
+                */
+               timclk: timclk@2.4M {
+                       #clock-cells = <0>;
+                       compatible = "fixed-factor-clock";
+                       clock-div = <8>;
+                       clock-mult = <1>;
+                       clocks = <&mxtal>;
+               };
+
+               /* PLL1 is locked to MXTALI and variable from 20.4 to 334 MHz */
+               pll1: pll1@0 {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-pll-clock";
+                       pll-id = <1>;
+                       clocks = <&mxtal>;
+               };
+
+               /* HCLK divides the PLL1 with 1,2,3 or 4 */
+               hclk: hclk@0 {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-hclk-clock";
+                       clocks = <&pll1>;
+               };
+               /* The PCLK domain uses HCLK right off */
+               pclk: pclk@0 {
+                       #clock-cells = <0>;
+                       compatible = "fixed-factor-clock";
+                       clock-div = <1>;
+                       clock-mult = <1>;
+                       clocks = <&hclk>;
+               };
+
+               /* PLL2 is usually 864 MHz and divided into a few fixed rates */
+               pll2: pll2@0 {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-pll-clock";
+                       pll-id = <2>;
+                       clocks = <&mxtal>;
+               };
+               clk216: clk216@216M {
+                       #clock-cells = <0>;
+                       compatible = "fixed-factor-clock";
+                       clock-div = <4>;
+                       clock-mult = <1>;
+                       clocks = <&pll2>;
+               };
+               clk108: clk108@108M {
+                       #clock-cells = <0>;
+                       compatible = "fixed-factor-clock";
+                       clock-div = <2>;
+                       clock-mult = <1>;
+                       clocks = <&clk216>;
+               };
+               clk72: clk72@72M {
+                       #clock-cells = <0>;
+                       compatible = "fixed-factor-clock";
+                       /* The data sheet does not say how this is derived */
+                       clock-div = <12>;
+                       clock-mult = <1>;
+                       clocks = <&pll2>;
+               };
+               clk48: clk48@48M {
+                       #clock-cells = <0>;
+                       compatible = "fixed-factor-clock";
+                       /* The data sheet does not say how this is derived */
+                       clock-div = <18>;
+                       clock-mult = <1>;
+                       clocks = <&pll2>;
+               };
+               clk27: clk27@27M {
+                       #clock-cells = <0>;
+                       compatible = "fixed-factor-clock";
+                       clock-div = <4>;
+                       clock-mult = <1>;
+                       clocks = <&clk108>;
+               };
+
+               /* This apparently exists as well */
+               ulpiclk: ulpiclk@60M {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <60000000>;
+               };
+
+               /*
+                * IP AMBA bus clocks, driving the bus side of the
+                * peripheral clocking, clock gates.
+                */
+
+               hclkdma0: hclkdma0@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <0>;
+                       clocks = <&hclk>;
+               };
+               hclksmc: hclksmc@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <1>;
+                       clocks = <&hclk>;
+               };
+               hclksdram: hclksdram@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <2>;
+                       clocks = <&hclk>;
+               };
+               hclkdma1: hclkdma1@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <3>;
+                       clocks = <&hclk>;
+               };
+               hclkclcd: hclkclcd@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <4>;
+                       clocks = <&hclk>;
+               };
+               pclkirda: pclkirda@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <5>;
+                       clocks = <&pclk>;
+               };
+               pclkssp: pclkssp@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <6>;
+                       clocks = <&pclk>;
+               };
+               pclkuart0: pclkuart0@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <7>;
+                       clocks = <&pclk>;
+               };
+               pclksdi: pclksdi@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <8>;
+                       clocks = <&pclk>;
+               };
+               pclki2c0: pclki2c0@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <9>;
+                       clocks = <&pclk>;
+               };
+               pclki2c1: pclki2c1@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <10>;
+                       clocks = <&pclk>;
+               };
+               pclkuart1: pclkuart1@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <11>;
+                       clocks = <&pclk>;
+               };
+               pclkmsp0: pclkmsp0@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <12>;
+                       clocks = <&pclk>;
+               };
+               hclkusb: hclkusb@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <13>;
+                       clocks = <&hclk>;
+               };
+               hclkdif: hclkdif@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <14>;
+                       clocks = <&hclk>;
+               };
+               hclksaa: hclksaa@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <15>;
+                       clocks = <&hclk>;
+               };
+               hclksva: hclksva@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <16>;
+                       clocks = <&hclk>;
+               };
+               pclkhsi: pclkhsi@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <17>;
+                       clocks = <&pclk>;
+               };
+               pclkxti: pclkxti@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <18>;
+                       clocks = <&pclk>;
+               };
+               pclkuart2: pclkuart2@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <19>;
+                       clocks = <&pclk>;
+               };
+               pclkmsp1: pclkmsp1@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <20>;
+                       clocks = <&pclk>;
+               };
+               pclkmsp2: pclkmsp2@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <21>;
+                       clocks = <&pclk>;
+               };
+               pclkowm: pclkowm@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <22>;
+                       clocks = <&pclk>;
+               };
+               hclkhpi: hclkhpi@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <23>;
+                       clocks = <&hclk>;
+               };
+               pclkske: pclkske@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <24>;
+                       clocks = <&pclk>;
+               };
+               pclkhsem: pclkhsem@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <25>;
+                       clocks = <&pclk>;
+               };
+               hclk3d: hclk3d@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <26>;
+                       clocks = <&hclk>;
+               };
+               hclkhash: hclkhash@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <27>;
+                       clocks = <&hclk>;
+               };
+               hclkcryp: hclkcryp@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <28>;
+                       clocks = <&hclk>;
+               };
+               pclkmshc: pclkmshc@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <29>;
+                       clocks = <&pclk>;
+               };
+               hclkusbm: hclkusbm@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <30>;
+                       clocks = <&hclk>;
+               };
+               hclkrng: hclkrng@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <31>;
+                       clocks = <&hclk>;
+               };
+
+               /* IP kernel clocks */
+               clcdclk: clcdclk@0 {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <36>;
+                       clocks = <&clk72 &clk48>;
+               };
+               irdaclk: irdaclk@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <37>;
+                       clocks = <&clk48>;
+               };
+               sspiclk: sspiclk@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <38>;
+                       clocks = <&clk48>;
+               };
+               uart0clk: uart0clk@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <39>;
+                       clocks = <&clk48>;
+               };
+               sdiclk: sdiclk@48M {
+                       /* Also called MCCLK in some documents */
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <40>;
+                       clocks = <&clk48>;
+               };
+               i2c0clk: i2c0clk@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <41>;
+                       clocks = <&clk48>;
+               };
+               i2c1clk: i2c1clk@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <42>;
+                       clocks = <&clk48>;
+               };
+               uart1clk: uart1clk@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <43>;
+                       clocks = <&clk48>;
+               };
+               mspclk0: mspclk0@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <44>;
+                       clocks = <&clk48>;
+               };
+               usbclk: usbclk@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <45>;
+                       clocks = <&clk48>; /* 48 MHz not ULPI */
+               };
+               difclk: difclk@72M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <46>;
+                       clocks = <&clk72>;
+               };
+               ipi2cclk: ipi2cclk@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <47>;
+                       clocks = <&clk48>; /* Guess */
+               };
+               ipbmcclk: ipbmcclk@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <48>;
+                       clocks = <&clk48>; /* Guess */
+               };
+               hsiclkrx: hsiclkrx@216M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <49>;
+                       clocks = <&clk216>;
+               };
+               hsiclktx: hsiclktx@108M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <50>;
+                       clocks = <&clk108>;
+               };
+               uart2clk: uart2clk@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <51>;
+                       clocks = <&clk48>;
+               };
+               mspclk1: mspclk1@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <52>;
+                       clocks = <&clk48>;
+               };
+               mspclk2: mspclk2@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <53>;
+                       clocks = <&clk48>;
+               };
+               owmclk: owmclk@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <54>;
+                       clocks = <&clk48>; /* Guess */
+               };
+               skeclk: skeclk@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <56>;
+                       clocks = <&clk48>; /* Guess */
+               };
+               x3dclk: x3dclk@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <58>;
+                       clocks = <&clk48>; /* Guess */
+               };
+               pclkmsp3: pclkmsp3@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <59>;
+                       clocks = <&pclk>;
+               };
+               mspclk3: mspclk3@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <60>;
+                       clocks = <&clk48>;
+               };
+               mshcclk: mshcclk@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <61>;
+                       clocks = <&clk48>; /* Guess */
+               };
+               usbmclk: usbmclk@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <62>;
+                       /* Stated as "48 MHz not ULPI clock" */
+                       clocks = <&clk48>;
+               };
+               rngcclk: rngcclk@48M {
+                       #clock-cells = <0>;
+                       compatible = "st,nomadik-src-clock";
+                       clock-id = <63>;
+                       clocks = <&clk48>; /* Guess */
+               };
        };
 
        /* A NAND flash of 128 MiB */
                        <0x41000000 0x2000>,    /* NAND Base ADDR */
                        <0x40800000 0x2000>;    /* NAND Base CMD */
                reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
+               clocks = <&hclksmc>;
                status = "okay";
 
                partition@0 {
                        <&gpio1 30 0>; /* scl */
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c0_default_mode>;
 
                stw4811@2d {
                           compatible = "st,stw4811";
                        <&gpio1 21 0>; /* scl */
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c1_default_mode>;
 
                camera@2d {
                           compatible = "st,camera";
                        <&gpio2 9 0>; /* scl */
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c2_default_mode>;
+
                stw4811@2d {
                           compatible = "st,stw4811-usb";
                           reg = <0x2d>;
                        reg = <0x101fd000 0x1000>;
                        interrupt-parent = <&vica>;
                        interrupts = <12>;
+                       clocks = <&uart0clk>, <&pclkuart0>;
+                       clock-names = "uartclk", "apb_pclk";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart0_default_mux>;
                };
 
                uart1: uart@101fb000 {
                        reg = <0x101fb000 0x1000>;
                        interrupt-parent = <&vica>;
                        interrupts = <17>;
+                       clocks = <&uart1clk>, <&pclkuart1>;
+                       clock-names = "uartclk", "apb_pclk";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart1_default_mux>;
                };
 
                uart2: uart@101f2000 {
                        reg = <0x101f2000 0x1000>;
                        interrupt-parent = <&vica>;
                        interrupts = <28>;
+                       clocks = <&uart2clk>, <&pclkuart2>;
+                       clock-names = "uartclk", "apb_pclk";
                        status = "disabled";
                };
 
                rng: rng@101b0000 {
                        compatible = "arm,primecell";
                        reg = <0x101b0000 0x1000>;
+                       clocks = <&rngcclk>, <&hclkrng>;
+                       clock-names = "rng", "apb_pclk";
                };
 
                rtc: rtc@101e8000 {
                        compatible = "arm,pl031", "arm,primecell";
                        reg = <0x101e8000 0x1000>;
+                       clocks = <&pclk>;
+                       clock-names = "apb_pclk";
                        interrupt-parent = <&vica>;
                        interrupts = <10>;
                };
                mmcsd: sdi@101f6000 {
                        compatible = "arm,pl18x", "arm,primecell";
                        reg = <0x101f6000 0x1000>;
+                       clocks = <&sdiclk>, <&pclksdi>;
+                       clock-names = "mclk", "apb_pclk";
                        interrupt-parent = <&vica>;
                        interrupts = <22>;
                        max-frequency = <48000000>;
                        mmc-cap-sd-highspeed;
                        cd-gpios = <&gpio3 15 0x1>;
                        cd-inverted;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>;
                };
        };
 };
index 615392a75676603678a56cbc9770abab35e15641..524e33240ad418e739e7dfd7a6d41cce642b3261 100644 (file)
@@ -9,13 +9,15 @@
  * http://www.gnu.org/copyleft/gpl.html
  */
 
+#include <dt-bindings/interrupt-controller/irq.h>
+
 / {
-       soc-u9500 {
+       soc {
                i2c@80004000 {
                        stmpe1601: stmpe1601@40 {
                                compatible = "st,stmpe1601";
                                reg = <0x40>;
-                               interrupts = <26 0x2>;
+                               interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
                                interrupt-parent = <&gpio6>;
                                interrupt-controller;
 
                };
 
                i2c@80110000 {
-                       bu21013_tp@0x5c {
-                               compatible = "rhom,bu21013_tp";
+                       bu21013_tp@5c {
+                               compatible = "rohm,bu21013_tp";
                                reg = <0x5c>;
                                touch-gpio = <&gpio2 20 0x4>;
                                avdd-supply = <&ab8500_ldo_aux1_reg>;
 
-                               rhom,touch-max-x = <384>;
-                               rhom,touch-max-y = <704>;
-                               rhom,flip-y;
+                               rohm,touch-max-x = <384>;
+                               rohm,touch-max-y = <704>;
+                               rohm,flip-y;
                        };
 
-                       bu21013_tp@0x5d {
-                               compatible = "rhom,bu21013_tp";
+                       bu21013_tp@5d {
+                               compatible = "rohm,bu21013_tp";
                                reg = <0x5d>;
                                touch-gpio = <&gpio2 20 0x4>;
                                avdd-supply = <&ab8500_ldo_aux1_reg>;
 
-                               rhom,touch-max-x = <384>;
-                               rhom,touch-max-y = <704>;
-                               rhom,flip-y;
+                               rohm,touch-max-x = <384>;
+                               rohm,touch-max-y = <704>;
+                               rohm,flip-y;
                        };
                };
        };
index b70fe0db6bb7583cd541d25b7573a057caec130d..0e22a285dfe0c72ed1a4593b47a388b14ea311ed 100644 (file)
                        pinctrl-0 = <&uart0_pins_a>;
                        status = "okay";
                };
+
+               i2c0: i2c@01c2ac00 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c0_pins_a>;
+                       status = "okay";
+               };
+
+               i2c1: i2c@01c2b000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c1_pins_a>;
+                       status = "okay";
+               };
        };
 
        leds {
index e7ef619a70a2531440400086cdac4ee6ae3b71eb..82e03d22f9139e9768cab8b8540aaa58145a8926 100644 (file)
        interrupt-parent = <&intc>;
 
        cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
                cpu@0 {
+                       device_type = "cpu";
                        compatible = "arm,cortex-a8";
+                       reg = <0x0>;
                };
        };
 
                pio: pinctrl@01c20800 {
                        compatible = "allwinner,sun4i-a10-pinctrl";
                        reg = <0x01c20800 0x400>;
+                       interrupts = <28>;
                        clocks = <&apb0_gates 5>;
                        gpio-controller;
+                       interrupt-controller;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        #gpio-cells = <3>;
                                allwinner,drive = <0>;
                                allwinner,pull = <0>;
                        };
+
+                       i2c0_pins_a: i2c0@0 {
+                               allwinner,pins = "PB0", "PB1";
+                               allwinner,function = "i2c0";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+
+                       i2c1_pins_a: i2c1@0 {
+                               allwinner,pins = "PB18", "PB19";
+                               allwinner,function = "i2c1";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+
+                       i2c2_pins_a: i2c2@0 {
+                               allwinner,pins = "PB20", "PB21";
+                               allwinner,function = "i2c2";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
                };
 
                timer@01c20c00 {
                        clocks = <&apb1_gates 23>;
                        status = "disabled";
                };
+
+               i2c0: i2c@01c2ac00 {
+                       compatible = "allwinner,sun4i-i2c";
+                       reg = <0x01c2ac00 0x400>;
+                       interrupts = <7>;
+                       clocks = <&apb1_gates 0>;
+                       clock-frequency = <100000>;
+                       status = "disabled";
+               };
+
+               i2c1: i2c@01c2b000 {
+                       compatible = "allwinner,sun4i-i2c";
+                       reg = <0x01c2b000 0x400>;
+                       interrupts = <8>;
+                       clocks = <&apb1_gates 1>;
+                       clock-frequency = <100000>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@01c2b400 {
+                       compatible = "allwinner,sun4i-i2c";
+                       reg = <0x01c2b400 0x400>;
+                       interrupts = <9>;
+                       clocks = <&apb1_gates 2>;
+                       clock-frequency = <100000>;
+                       status = "disabled";
+               };
        };
 };
diff --git a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
new file mode 100644 (file)
index 0000000..64dc0c4
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2013 Maxime Ripard
+ *
+ * Maxime Ripard <maxime.ripard@free-electrons.com>
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+/include/ "sun5i-a10s.dtsi"
+
+/ {
+       model = "Olimex A10s-Olinuxino Micro";
+       compatible = "olimex,a10s-olinuxino-micro", "allwinner,sun5i-a10s";
+
+       soc@01c20000 {
+               emac: ethernet@01c0b000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&emac_pins_a>;
+                       phy = <&phy1>;
+                       status = "okay";
+               };
+
+               mdio@01c0b080 {
+                       status = "okay";
+
+                       phy1: ethernet-phy@1 {
+                               reg = <1>;
+                       };
+               };
+
+               pinctrl@01c20800 {
+                       led_pins_olinuxino: led_pins@0 {
+                               allwinner,pins = "PE3";
+                               allwinner,function = "gpio_out";
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+               };
+
+               uart0: serial@01c28000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart0_pins_a>;
+                       status = "okay";
+               };
+
+               uart2: serial@01c28800 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart2_pins_a>;
+                       status = "okay";
+               };
+
+               uart3: serial@01c28c00 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart3_pins_a>;
+                       status = "okay";
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins_olinuxino>;
+
+               green {
+                       label = "a10s-olinuxino-micro:green:usr";
+                       gpios = <&pio 4 3 0>;
+                       default-state = "on";
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
new file mode 100644 (file)
index 0000000..2307ce8
--- /dev/null
@@ -0,0 +1,286 @@
+/*
+ * Copyright 2013 Maxime Ripard
+ *
+ * Maxime Ripard <maxime.ripard@free-electrons.com>
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/include/ "skeleton.dtsi"
+
+/ {
+       interrupt-parent = <&intc>;
+
+       cpus {
+               cpu@0 {
+                       compatible = "arm,cortex-a8";
+               };
+       };
+
+       memory {
+               reg = <0x40000000 0x20000000>;
+       };
+
+       clocks {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               /*
+                * This is a dummy clock, to be used as placeholder on
+                * other mux clocks when a specific parent clock is not
+                * yet implemented. It should be dropped when the driver
+                * is complete.
+                */
+               dummy: dummy {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <0>;
+               };
+
+               osc24M: osc24M@01c20050 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun4i-osc-clk";
+                       reg = <0x01c20050 0x4>;
+                       clock-frequency = <24000000>;
+               };
+
+               osc32k: osc32k {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <32768>;
+               };
+
+               pll1: pll1@01c20000 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun4i-pll1-clk";
+                       reg = <0x01c20000 0x4>;
+                       clocks = <&osc24M>;
+               };
+
+               /* dummy is 200M */
+               cpu: cpu@01c20054 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun4i-cpu-clk";
+                       reg = <0x01c20054 0x4>;
+                       clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>;
+               };
+
+               axi: axi@01c20054 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun4i-axi-clk";
+                       reg = <0x01c20054 0x4>;
+                       clocks = <&cpu>;
+               };
+
+               axi_gates: axi_gates@01c2005c {
+                       #clock-cells = <1>;
+                       compatible = "allwinner,sun4i-axi-gates-clk";
+                       reg = <0x01c2005c 0x4>;
+                       clocks = <&axi>;
+                       clock-output-names = "axi_dram";
+               };
+
+               ahb: ahb@01c20054 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun4i-ahb-clk";
+                       reg = <0x01c20054 0x4>;
+                       clocks = <&axi>;
+               };
+
+               ahb_gates: ahb_gates@01c20060 {
+                       #clock-cells = <1>;
+                       compatible = "allwinner,sun4i-ahb-gates-clk";
+                       reg = <0x01c20060 0x8>;
+                       clocks = <&ahb>;
+                       clock-output-names = "ahb_usb0", "ahb_ehci0",
+                               "ahb_ohci0", "ahb_ehci1", "ahb_ohci1", "ahb_ss",
+                               "ahb_dma", "ahb_bist", "ahb_mmc0", "ahb_mmc1",
+                               "ahb_mmc2", "ahb_mmc3", "ahb_ms", "ahb_nand",
+                               "ahb_sdram", "ahb_ace", "ahb_emac", "ahb_ts",
+                               "ahb_spi0", "ahb_spi1", "ahb_spi2", "ahb_spi3",
+                               "ahb_pata", "ahb_sata", "ahb_gps", "ahb_ve",
+                               "ahb_tvd", "ahb_tve0", "ahb_tve1", "ahb_lcd0",
+                               "ahb_lcd1", "ahb_csi0", "ahb_csi1", "ahb_hdmi",
+                               "ahb_de_be0", "ahb_de_be1", "ahb_de_fe0",
+                               "ahb_de_fe1", "ahb_mp", "ahb_mali400";
+               };
+
+               apb0: apb0@01c20054 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun4i-apb0-clk";
+                       reg = <0x01c20054 0x4>;
+                       clocks = <&ahb>;
+               };
+
+               apb0_gates: apb0_gates@01c20068 {
+                       #clock-cells = <1>;
+                       compatible = "allwinner,sun4i-apb0-gates-clk";
+                       reg = <0x01c20068 0x4>;
+                       clocks = <&apb0>;
+                       clock-output-names = "apb0_codec", "apb0_spdif",
+                               "apb0_ac97", "apb0_iis", "apb0_pio", "apb0_ir0",
+                               "apb0_ir1", "apb0_keypad";
+               };
+
+               /* dummy is pll62 */
+               apb1_mux: apb1_mux@01c20058 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun4i-apb1-mux-clk";
+                       reg = <0x01c20058 0x4>;
+                       clocks = <&osc24M>, <&dummy>, <&osc32k>;
+               };
+
+               apb1: apb1@01c20058 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun4i-apb1-clk";
+                       reg = <0x01c20058 0x4>;
+                       clocks = <&apb1_mux>;
+               };
+
+               apb1_gates: apb1_gates@01c2006c {
+                       #clock-cells = <1>;
+                       compatible = "allwinner,sun4i-apb1-gates-clk";
+                       reg = <0x01c2006c 0x4>;
+                       clocks = <&apb1>;
+                       clock-output-names = "apb1_i2c0", "apb1_i2c1",
+                               "apb1_i2c2", "apb1_can", "apb1_scr",
+                               "apb1_ps20", "apb1_ps21", "apb1_uart0",
+                               "apb1_uart1", "apb1_uart2", "apb1_uart3",
+                               "apb1_uart4", "apb1_uart5", "apb1_uart6",
+                               "apb1_uart7";
+               };
+       };
+
+       soc@01c20000 {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x01c20000 0x300000>;
+               ranges;
+
+               emac: ethernet@01c0b000 {
+                       compatible = "allwinner,sun4i-emac";
+                       reg = <0x01c0b000 0x1000>;
+                       interrupts = <55>;
+                       clocks = <&ahb_gates 17>;
+                       status = "disabled";
+               };
+
+               mdio@01c0b080 {
+                       compatible = "allwinner,sun4i-mdio";
+                       reg = <0x01c0b080 0x14>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               intc: interrupt-controller@01c20400 {
+                       compatible = "allwinner,sun4i-ic";
+                       reg = <0x01c20400 0x400>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+               };
+
+               pio: pinctrl@01c20800 {
+                       compatible = "allwinner,sun5i-a10s-pinctrl";
+                       reg = <0x01c20800 0x400>;
+                       interrupts = <28>;
+                       clocks = <&apb0_gates 5>;
+                       gpio-controller;
+                       interrupt-controller;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #gpio-cells = <3>;
+
+                       uart0_pins_a: uart0@0 {
+                               allwinner,pins = "PB19", "PB20";
+                               allwinner,function = "uart0";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+
+                       uart2_pins_a: uart2@0 {
+                               allwinner,pins = "PC18", "PC19";
+                               allwinner,function = "uart2";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+
+                       uart3_pins_a: uart3@0 {
+                               allwinner,pins = "PG9", "PG10";
+                               allwinner,function = "uart3";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+
+                       emac_pins_a: emac0@0 {
+                               allwinner,pins = "PA0", "PA1", "PA2",
+                                               "PA3", "PA4", "PA5", "PA6",
+                                               "PA7", "PA8", "PA9", "PA10",
+                                               "PA11", "PA12", "PA13", "PA14",
+                                               "PA15", "PA16";
+                               allwinner,function = "emac";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+               };
+
+               timer@01c20c00 {
+                       compatible = "allwinner,sun4i-timer";
+                       reg = <0x01c20c00 0x90>;
+                       interrupts = <22>;
+                       clocks = <&osc24M>;
+               };
+
+               wdt: watchdog@01c20c90 {
+                       compatible = "allwinner,sun4i-wdt";
+                       reg = <0x01c20c90 0x10>;
+               };
+
+               uart0: serial@01c28000 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x01c28000 0x400>;
+                       interrupts = <1>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clocks = <&apb1_gates 16>;
+                       status = "disabled";
+               };
+
+               uart1: serial@01c28400 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x01c28400 0x400>;
+                       interrupts = <2>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clocks = <&apb1_gates 17>;
+                       status = "disabled";
+               };
+
+               uart2: serial@01c28800 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x01c28800 0x400>;
+                       interrupts = <3>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clocks = <&apb1_gates 18>;
+                       status = "disabled";
+               };
+
+               uart3: serial@01c28c00 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x01c28c00 0x400>;
+                       interrupts = <4>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clocks = <&apb1_gates 19>;
+                       status = "disabled";
+               };
+       };
+};
index 3ca55067f86848eee329392d65d078fdd5b72faf..80497e376706ca930a1eb84cf6297f6277e09ce3 100644 (file)
                        pinctrl-0 = <&uart1_pins_b>;
                        status = "okay";
                };
+
+               i2c0: i2c@01c2ac00 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c0_pins_a>;
+                       status = "okay";
+               };
+
+               i2c1: i2c@01c2b000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c1_pins_a>;
+                       status = "okay";
+               };
+
+               i2c2: i2c@01c2b400 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c2_pins_a>;
+                       status = "okay";
+               };
        };
 
        leds {
index 31fa38f8cc9851788e1aea09f1c5853eb397ae7e..7363211daf8446754a20074a9ffd2cf99803c535 100644 (file)
        interrupt-parent = <&intc>;
 
        cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
                cpu@0 {
+                       device_type = "cpu";
                        compatible = "arm,cortex-a8";
+                       reg = <0x0>;
                };
        };
 
 
                ahb_gates: ahb_gates@01c20060 {
                        #clock-cells = <1>;
-                       compatible = "allwinner,sun4i-ahb-gates-clk";
+                       compatible = "allwinner,sun5i-a13-ahb-gates-clk";
                        reg = <0x01c20060 0x8>;
                        clocks = <&ahb>;
-                       clock-output-names = "ahb_usb0", "ahb_ehci0",
-                               "ahb_ohci0", "ahb_ehci1", "ahb_ohci1", "ahb_ss",
-                               "ahb_dma", "ahb_bist", "ahb_mmc0", "ahb_mmc1",
-                               "ahb_mmc2", "ahb_mmc3", "ahb_ms", "ahb_nand",
-                               "ahb_sdram", "ahb_ace", "ahb_emac", "ahb_ts",
-                               "ahb_spi0", "ahb_spi1", "ahb_spi2", "ahb_spi3",
-                               "ahb_pata", "ahb_sata", "ahb_gps", "ahb_ve",
-                               "ahb_tvd", "ahb_tve0", "ahb_tve1", "ahb_lcd0",
-                               "ahb_lcd1", "ahb_csi0", "ahb_csi1", "ahb_hdmi",
-                               "ahb_de_be0", "ahb_de_be1", "ahb_de_fe0",
-                               "ahb_de_fe1", "ahb_mp", "ahb_mali400";
+                       clock-output-names = "ahb_usbotg", "ahb_ehci", "ahb_ohci",
+                               "ahb_ss", "ahb_dma", "ahb_bist", "ahb_mmc0",
+                               "ahb_mmc1", "ahb_mmc2", "ahb_nand", "ahb_sdram",
+                               "ahb_spi0", "ahb_spi1", "ahb_spi2", "ahb_stimer",
+                               "ahb_ve", "ahb_lcd", "ahb_csi", "ahb_de_be",
+                               "ahb_de_fe", "ahb_iep", "ahb_mali400";
                };
 
                apb0: apb0@01c20054 {
 
                apb0_gates: apb0_gates@01c20068 {
                        #clock-cells = <1>;
-                       compatible = "allwinner,sun4i-apb0-gates-clk";
+                       compatible = "allwinner,sun5i-a13-apb0-gates-clk";
                        reg = <0x01c20068 0x4>;
                        clocks = <&apb0>;
-                       clock-output-names = "apb0_codec", "apb0_spdif",
-                               "apb0_ac97", "apb0_iis", "apb0_pio", "apb0_ir0",
-                               "apb0_ir1", "apb0_keypad";
+                       clock-output-names = "apb0_codec", "apb0_pio", "apb0_ir";
                };
 
-               /* dummy is pll62 */
+               /* dummy is pll6 */
                apb1_mux: apb1_mux@01c20058 {
                        #clock-cells = <0>;
                        compatible = "allwinner,sun4i-apb1-mux-clk";
 
                apb1_gates: apb1_gates@01c2006c {
                        #clock-cells = <1>;
-                       compatible = "allwinner,sun4i-apb1-gates-clk";
+                       compatible = "allwinner,sun5i-a13-apb1-gates-clk";
                        reg = <0x01c2006c 0x4>;
                        clocks = <&apb1>;
                        clock-output-names = "apb1_i2c0", "apb1_i2c1",
-                               "apb1_i2c2", "apb1_can", "apb1_scr",
-                               "apb1_ps20", "apb1_ps21", "apb1_uart0",
-                               "apb1_uart1", "apb1_uart2", "apb1_uart3",
-                               "apb1_uart4", "apb1_uart5", "apb1_uart6",
-                               "apb1_uart7";
+                               "apb1_i2c2", "apb1_uart1", "apb1_uart3";
                };
        };
 
                pio: pinctrl@01c20800 {
                        compatible = "allwinner,sun5i-a13-pinctrl";
                        reg = <0x01c20800 0x400>;
+                       interrupts = <28>;
                        clocks = <&apb0_gates 5>;
                        gpio-controller;
+                       interrupt-controller;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        #gpio-cells = <3>;
                                allwinner,drive = <0>;
                                allwinner,pull = <0>;
                        };
+
+                       i2c0_pins_a: i2c0@0 {
+                               allwinner,pins = "PB0", "PB1";
+                               allwinner,function = "i2c0";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+
+                       i2c1_pins_a: i2c1@0 {
+                               allwinner,pins = "PB15", "PB16";
+                               allwinner,function = "i2c1";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+
+                       i2c2_pins_a: i2c2@0 {
+                               allwinner,pins = "PB17", "PB18";
+                               allwinner,function = "i2c2";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
                };
 
                timer@01c20c00 {
                        clocks = <&apb1_gates 19>;
                        status = "disabled";
                };
+
+               i2c0: i2c@01c2ac00 {
+                       compatible = "allwinner,sun4i-i2c";
+                       reg = <0x01c2ac00 0x400>;
+                       interrupts = <7>;
+                       clocks = <&apb1_gates 0>;
+                       clock-frequency = <100000>;
+                       status = "disabled";
+               };
+
+               i2c1: i2c@01c2b000 {
+                       compatible = "allwinner,sun4i-i2c";
+                       reg = <0x01c2b000 0x400>;
+                       interrupts = <8>;
+                       clocks = <&apb1_gates 1>;
+                       clock-frequency = <100000>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@01c2b400 {
+                       compatible = "allwinner,sun4i-i2c";
+                       reg = <0x01c2b400 0x400>;
+                       interrupts = <9>;
+                       clocks = <&apb1_gates 2>;
+                       clock-frequency = <100000>;
+                       status = "disabled";
+               };
        };
 };
index 72c1f27af7f37da20524ee92504192aa3e4b6169..cb640eb6c9322db11ed2653c659d8c2d1f983b41 100644 (file)
@@ -1,6 +1,6 @@
 /dts-v1/;
 
-/include/ "tegra114.dtsi"
+#include "tegra114.dtsi"
 
 / {
        model = "NVIDIA Tegra114 Dalmore evaluation board";
                        battery-name = "battery";
                        sbs,i2c-retry-count = <2>;
                        sbs,poll-retry-count = <100>;
+                       power-supplies = <&charger>;
+               };
+
+               rt5640: rt5640 {
+                       compatible = "realtek,rt5640";
+                       reg = <0x1c>;
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(W, 3) GPIO_ACTIVE_HIGH>;
+                       realtek,ldo1-en-gpios =
+                               <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
                };
        };
 
                        compatible = "ti,tps65090";
                        reg = <0x48>;
                        interrupt-parent = <&gpio>;
-                       interrupts = <72 0x04>; /* gpio PJ0 */
+                       interrupts = <TEGRA_GPIO(J, 0) IRQ_TYPE_LEVEL_HIGH>;
 
                        vsys1-supply = <&vdd_ac_bat_reg>;
                        vsys2-supply = <&vdd_ac_bat_reg>;
                        vsys-l1-supply = <&vdd_ac_bat_reg>;
                        vsys-l2-supply = <&vdd_ac_bat_reg>;
 
+                       charger: charger {
+                               compatible = "ti,tps65090-charger";
+                               ti,enable-low-current-chrg;
+                       };
+
                        regulators {
                                tps65090_dcdc1_reg: dcdc1 {
                                        regulator-name = "vdd-sys-5v0";
                };
        };
 
+       spi@7000da00 {
+               status = "okay";
+               spi-max-frequency = <25000000>;
+               spi-flash@0 {
+                       compatible = "winbond,w25q32dw";
+                       reg = <0>;
+                       spi-max-frequency = <20000000>;
+               };
+       };
+
        pmc {
                nvidia,invert-interrupt;
        };
 
+       ahub {
+               i2s@70080400 {
+                       status = "okay";
+               };
+       };
+
        sdhci@78000400 {
-               cd-gpios = <&gpio 170 1>; /* gpio PV2 */
+               cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
                bus-width = <4>;
                status = "okay";
        };
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        enable-active-high;
-                       gpio = <&gpio 61 0>; /* GPIO PH5 */
+                       gpio = <&gpio TEGRA_GPIO(H, 5) GPIO_ACTIVE_HIGH>;
                };
 
                lcd_bl_en_reg: regulator@2 {
                        regulator-min-microvolt = <5000000>;
                        regulator-max-microvolt = <5000000>;
                        enable-active-high;
-                       gpio = <&gpio 58 0>; /* GPIO PH2 */
+                       gpio = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
                };
 
                usb1_vbus_reg: regulator@3 {
                        regulator-min-microvolt = <5000000>;
                        regulator-max-microvolt = <5000000>;
                        enable-active-high;
-                       gpio = <&gpio 108 0>; /* GPIO PN4 */
+                       gpio = <&gpio TEGRA_GPIO(N, 4) GPIO_ACTIVE_HIGH>;
                        gpio-open-drain;
                        vin-supply = <&tps65090_dcdc1_reg>;
                };
                        regulator-min-microvolt = <5000000>;
                        regulator-max-microvolt = <5000000>;
                        enable-active-high;
-                       gpio = <&gpio 86 0>; /* GPIO PK6 */
+                       gpio = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_HIGH>;
                        gpio-open-drain;
                        vin-supply = <&tps65090_dcdc1_reg>;
                };
                        regulator-min-microvolt = <5000000>;
                        regulator-max-microvolt = <5000000>;
                        enable-active-high;
-                       gpio = <&gpio 81 0>; /* GPIO PK1 */
+                       gpio = <&gpio TEGRA_GPIO(K, 1) GPIO_ACTIVE_HIGH>;
                        vin-supply = <&tps65090_dcdc1_reg>;
                };
        };
+
+       sound {
+               compatible = "nvidia,tegra-audio-rt5640-dalmore",
+                            "nvidia,tegra-audio-rt5640";
+               nvidia,model = "NVIDIA Tegra Dalmore";
+
+               nvidia,audio-routing =
+                       "Headphones", "HPOR",
+                       "Headphones", "HPOL",
+                       "Speakers", "SPORP",
+                       "Speakers", "SPORN",
+                       "Speakers", "SPOLP",
+                       "Speakers", "SPOLN";
+
+               nvidia,i2s-controller = <&tegra_i2s1>;
+               nvidia,audio-codec = <&rt5640>;
+
+               nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(R, 7) GPIO_ACTIVE_HIGH>;
+
+               clocks = <&tegra_car TEGRA114_CLK_PLL_A>,
+                        <&tegra_car TEGRA114_CLK_PLL_A_OUT0>,
+                        <&tegra_car TEGRA114_CLK_EXTERN1>;
+               clock-names = "pll_a", "pll_a_out0", "mclk";
+       };
 };
index 6bbc8efae9c0e88018c35bb4465db3f7c19801e5..d5f8d3e0bde2344cc00bd1583aae1ce8b7501692 100644 (file)
@@ -1,6 +1,6 @@
 /dts-v1/;
 
-/include/ "tegra114.dtsi"
+#include "tegra114.dtsi"
 
 / {
        model = "NVIDIA Tegra114 Pluto evaluation board";
index 629415ffd8dc8c893781195b00aa479f61775f2f..abf6c40d28c616f4ddabee03d81188a8657aca30 100644 (file)
@@ -1,4 +1,8 @@
-/include/ "skeleton.dtsi"
+#include <dt-bindings/clock/tegra114-car.h>
+#include <dt-bindings/gpio/tegra-gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+#include "skeleton.dtsi"
 
 / {
        compatible = "nvidia,tegra114";
                      <0x50042000 0x1000>,
                      <0x50044000 0x2000>,
                      <0x50046000 0x2000>;
-               interrupts = <1 9 0xf04>;
+               interrupts = <GIC_PPI 9
+                       (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
        };
 
        timer@60005000 {
                compatible = "nvidia,tegra114-timer", "nvidia,tegra20-timer";
                reg = <0x60005000 0x400>;
-               interrupts = <0 0 0x04
-                             0 1 0x04
-                             0 41 0x04
-                             0 42 0x04
-                             0 121 0x04
-                             0 122 0x04>;
-               clocks = <&tegra_car 5>;
+               interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA114_CLK_TIMER>;
        };
 
        tegra_car: clock {
        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>;
+               interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA114_CLK_APBDMA>;
        };
 
        ahb: ahb {
        gpio: gpio {
                compatible = "nvidia,tegra114-gpio", "nvidia,tegra30-gpio";
                reg = <0x6000d000 0x1000>;
-               interrupts = <0 32 0x04
-                             0 33 0x04
-                             0 34 0x04
-                             0 35 0x04
-                             0 55 0x04
-                             0 87 0x04
-                             0 89 0x04
-                             0 125 0x04>;
+               interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
                #gpio-cells = <2>;
                gpio-controller;
                #interrupt-cells = <2>;
                compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
                reg = <0x70006000 0x40>;
                reg-shift = <2>;
-               interrupts = <0 36 0x04>;
+               interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 8>;
                status = "disabled";
-               clocks = <&tegra_car 6>;
+               clocks = <&tegra_car TEGRA114_CLK_UARTA>;
        };
 
        uartb: serial@70006040 {
                compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
                reg = <0x70006040 0x40>;
                reg-shift = <2>;
-               interrupts = <0 37 0x04>;
+               interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 9>;
                status = "disabled";
-               clocks = <&tegra_car 192>;
+               clocks = <&tegra_car TEGRA114_CLK_UARTB>;
        };
 
        uartc: serial@70006200 {
                compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
                reg = <0x70006200 0x100>;
                reg-shift = <2>;
-               interrupts = <0 46 0x04>;
+               interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 10>;
                status = "disabled";
-               clocks = <&tegra_car 55>;
+               clocks = <&tegra_car TEGRA114_CLK_UARTC>;
        };
 
        uartd: serial@70006300 {
                compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
                reg = <0x70006300 0x100>;
                reg-shift = <2>;
-               interrupts = <0 90 0x04>;
+               interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 19>;
                status = "disabled";
-               clocks = <&tegra_car 65>;
+               clocks = <&tegra_car TEGRA114_CLK_UARTD>;
        };
 
        pwm: pwm {
                compatible = "nvidia,tegra114-pwm", "nvidia,tegra20-pwm";
                reg = <0x7000a000 0x100>;
                #pwm-cells = <2>;
-               clocks = <&tegra_car 17>;
+               clocks = <&tegra_car TEGRA114_CLK_PWM>;
                status = "disabled";
        };
 
        i2c@7000c000 {
                compatible = "nvidia,tegra114-i2c";
                reg = <0x7000c000 0x100>;
-               interrupts = <0 38 0x04>;
+               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 12>;
+               clocks = <&tegra_car TEGRA114_CLK_I2C1>;
                clock-names = "div-clk";
                status = "disabled";
        };
        i2c@7000c400 {
                compatible = "nvidia,tegra114-i2c";
                reg = <0x7000c400 0x100>;
-               interrupts = <0 84 0x04>;
+               interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 54>;
+               clocks = <&tegra_car TEGRA114_CLK_I2C2>;
                clock-names = "div-clk";
                status = "disabled";
        };
        i2c@7000c500 {
                compatible = "nvidia,tegra114-i2c";
                reg = <0x7000c500 0x100>;
-               interrupts = <0 92 0x04>;
+               interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 67>;
+               clocks = <&tegra_car TEGRA114_CLK_I2C3>;
                clock-names = "div-clk";
                status = "disabled";
        };
        i2c@7000c700 {
                compatible = "nvidia,tegra114-i2c";
                reg = <0x7000c700 0x100>;
-               interrupts = <0 120 0x04>;
+               interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 103>;
+               clocks = <&tegra_car TEGRA114_CLK_I2C4>;
                clock-names = "div-clk";
                status = "disabled";
        };
        i2c@7000d000 {
                compatible = "nvidia,tegra114-i2c";
                reg = <0x7000d000 0x100>;
-               interrupts = <0 53 0x04>;
+               interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 47>;
+               clocks = <&tegra_car TEGRA114_CLK_I2C5>;
                clock-names = "div-clk";
                status = "disabled";
        };
        spi@7000d400 {
                compatible = "nvidia,tegra114-spi";
                reg = <0x7000d400 0x200>;
-               interrupts = <0 59 0x04>;
+               interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 15>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 41>;
+               clocks = <&tegra_car TEGRA114_CLK_SBC1>;
                clock-names = "spi";
                status = "disabled";
        };
        spi@7000d600 {
                compatible = "nvidia,tegra114-spi";
                reg = <0x7000d600 0x200>;
-               interrupts = <0 82 0x04>;
+               interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 16>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 44>;
+               clocks = <&tegra_car TEGRA114_CLK_SBC2>;
                clock-names = "spi";
                status = "disabled";
        };
        spi@7000d800 {
                compatible = "nvidia,tegra114-spi";
                reg = <0x7000d800 0x200>;
-               interrupts = <0 83 0x04>;
+               interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 17>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 46>;
+               clocks = <&tegra_car TEGRA114_CLK_SBC3>;
                clock-names = "spi";
                status = "disabled";
        };
        spi@7000da00 {
                compatible = "nvidia,tegra114-spi";
                reg = <0x7000da00 0x200>;
-               interrupts = <0 93 0x04>;
+               interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 18>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 68>;
+               clocks = <&tegra_car TEGRA114_CLK_SBC4>;
                clock-names = "spi";
                status = "disabled";
        };
        spi@7000dc00 {
                compatible = "nvidia,tegra114-spi";
                reg = <0x7000dc00 0x200>;
-               interrupts = <0 94 0x04>;
+               interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 27>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 104>;
+               clocks = <&tegra_car TEGRA114_CLK_SBC5>;
                clock-names = "spi";
                status = "disabled";
        };
        spi@7000de00 {
                compatible = "nvidia,tegra114-spi";
                reg = <0x7000de00 0x200>;
-               interrupts = <0 79 0x04>;
+               interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 28>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 105>;
+               clocks = <&tegra_car TEGRA114_CLK_SBC6>;
                clock-names = "spi";
                status = "disabled";
        };
        rtc {
                compatible = "nvidia,tegra114-rtc", "nvidia,tegra20-rtc";
                reg = <0x7000e000 0x100>;
-               interrupts = <0 2 0x04>;
-               clocks = <&tegra_car 4>;
+               interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA114_CLK_RTC>;
        };
 
        kbc {
                compatible = "nvidia,tegra114-kbc";
                reg = <0x7000e200 0x100>;
-               interrupts = <0 85 0x04>;
-               clocks = <&tegra_car 36>;
+               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA114_CLK_KBC>;
                status = "disabled";
        };
 
        pmc {
                compatible = "nvidia,tegra114-pmc";
                reg = <0x7000e400 0x400>;
-               clocks = <&tegra_car 261>, <&clk32k_in>;
+               clocks = <&tegra_car TEGRA114_CLK_PCLK>, <&clk32k_in>;
                clock-names = "pclk", "clk32k_in";
        };
 
                nvidia,ahb = <&ahb>;
        };
 
+       ahub {
+               compatible = "nvidia,tegra114-ahub";
+               reg = <0x70080000 0x200>,
+                     <0x70080200 0x100>,
+                     <0x70081000 0x200>;
+               interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+               nvidia,dma-request-selector = <&apbdma 1>, <&apbdma 2>,
+                       <&apbdma 3>, <&apbdma 4>, <&apbdma 6>, <&apbdma 7>,
+                       <&apbdma 12>, <&apbdma 13>, <&apbdma 14>,
+                       <&apbdma 29>;
+               clocks = <&tegra_car TEGRA114_CLK_D_AUDIO>,
+                        <&tegra_car TEGRA114_CLK_APBIF>,
+                        <&tegra_car TEGRA114_CLK_I2S0>,
+                        <&tegra_car TEGRA114_CLK_I2S1>,
+                        <&tegra_car TEGRA114_CLK_I2S2>,
+                        <&tegra_car TEGRA114_CLK_I2S3>,
+                        <&tegra_car TEGRA114_CLK_I2S4>,
+                        <&tegra_car TEGRA114_CLK_DAM0>,
+                        <&tegra_car TEGRA114_CLK_DAM1>,
+                        <&tegra_car TEGRA114_CLK_DAM2>,
+                        <&tegra_car TEGRA114_CLK_SPDIF_IN>,
+                        <&tegra_car TEGRA114_CLK_AMX>,
+                        <&tegra_car TEGRA114_CLK_ADX>;
+               clock-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2",
+                             "i2s3", "i2s4", "dam0", "dam1", "dam2",
+                             "spdif_in", "amx", "adx";
+               ranges;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               tegra_i2s0: i2s@70080300 {
+                       compatible = "nvidia,tegra114-i2s", "nvidia,tegra30-i2s";
+                       reg = <0x70080300 0x100>;
+                       nvidia,ahub-cif-ids = <4 4>;
+                       clocks = <&tegra_car TEGRA114_CLK_I2S0>;
+                       status = "disabled";
+               };
+
+               tegra_i2s1: i2s@70080400 {
+                       compatible = "nvidia,tegra114-i2s", "nvidia,tegra30-i2s";
+                       reg = <0x70080400 0x100>;
+                       nvidia,ahub-cif-ids = <5 5>;
+                       clocks = <&tegra_car TEGRA114_CLK_I2S1>;
+                       status = "disabled";
+               };
+
+               tegra_i2s2: i2s@70080500 {
+                       compatible = "nvidia,tegra114-i2s", "nvidia,tegra30-i2s";
+                       reg = <0x70080500 0x100>;
+                       nvidia,ahub-cif-ids = <6 6>;
+                       clocks = <&tegra_car TEGRA114_CLK_I2S2>;
+                       status = "disabled";
+               };
+
+               tegra_i2s3: i2s@70080600 {
+                       compatible = "nvidia,tegra114-i2s", "nvidia,tegra30-i2s";
+                       reg = <0x70080600 0x100>;
+                       nvidia,ahub-cif-ids = <7 7>;
+                       clocks = <&tegra_car TEGRA114_CLK_I2S3>;
+                       status = "disabled";
+               };
+
+               tegra_i2s4: i2s@70080700 {
+                       compatible = "nvidia,tegra114-i2s", "nvidia,tegra30-i2s";
+                       reg = <0x70080700 0x100>;
+                       nvidia,ahub-cif-ids = <8 8>;
+                       clocks = <&tegra_car TEGRA114_CLK_I2S4>;
+                       status = "disabled";
+               };
+       };
+
        sdhci@78000000 {
                compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci";
                reg = <0x78000000 0x200>;
-               interrupts = <0 14 0x04>;
-               clocks = <&tegra_car 14>;
+               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA114_CLK_SDMMC1>;
                status = "disable";
        };
 
        sdhci@78000200 {
                compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci";
                reg = <0x78000200 0x200>;
-               interrupts = <0 15 0x04>;
-               clocks = <&tegra_car 9>;
+               interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA114_CLK_SDMMC2>;
                status = "disable";
        };
 
        sdhci@78000400 {
                compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci";
                reg = <0x78000400 0x200>;
-               interrupts = <0 19 0x04>;
-               clocks = <&tegra_car 69>;
+               interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA114_CLK_SDMMC3>;
                status = "disable";
        };
 
        sdhci@78000600 {
                compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci";
                reg = <0x78000600 0x200>;
-               interrupts = <0 31 0x04>;
-               clocks = <&tegra_car 15>;
+               interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA114_CLK_SDMMC4>;
                status = "disable";
        };
 
 
        timer {
                compatible = "arm,armv7-timer";
-               interrupts = <1 13 0xf08>,
-                            <1 14 0xf08>,
-                            <1 11 0xf08>,
-                            <1 10 0xf08>;
+               interrupts =
+                       <GIC_PPI 13
+                               (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                       <GIC_PPI 14
+                               (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                       <GIC_PPI 11
+                               (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                       <GIC_PPI 10
+                               (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
        };
 };
index c12af78e479cf3f7d69bfbcc21812287e549ac42..2fcb3f2ca160411f12575672e0cdd68319605865 100644 (file)
@@ -1,4 +1,4 @@
-/include/ "tegra20.dtsi"
+#include "tegra20.dtsi"
 
 / {
        model = "Toradex Colibri T20 512MB";
@@ -14,7 +14,8 @@
                        pll-supply = <&hdmi_pll_reg>;
 
                        nvidia,ddc-i2c-bus = <&i2c_ddc>;
-                       nvidia,hpd-gpio = <&gpio 111 0>; /* PN7 */
+                       nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
+                               GPIO_ACTIVE_HIGH>;
                };
        };
 
                pmic: tps6586x@34 {
                        compatible = "ti,tps6586x";
                        reg = <0x34>;
-                       interrupts = <0 86 0x4>;
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
 
                        ti,system-power-controller;
 
 
        ac97: ac97 {
                status = "okay";
-               nvidia,codec-reset-gpio = <&gpio 168 0>; /* gpio PV0 */
-               nvidia,codec-sync-gpio = <&gpio 120 0>; /* gpio PP0 */
+               nvidia,codec-reset-gpio = <&gpio TEGRA_GPIO(V, 0)
+                       GPIO_ACTIVE_HIGH>;
+               nvidia,codec-sync-gpio = <&gpio TEGRA_GPIO(P, 0)
+                       GPIO_ACTIVE_HIGH>;
        };
 
        usb@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio 169 1>; /* gpio PV1, active low */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
+                       GPIO_ACTIVE_LOW>;
        };
 
        usb-phy@c5004000 {
-               nvidia,phy-reset-gpio = <&gpio 169 1>; /* gpio PV1, active low */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
+                       GPIO_ACTIVE_LOW>;
        };
 
        sdhci@c8000600 {
-               cd-gpios = <&gpio 23 1>; /* gpio PC7 */
+               cd-gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_LOW>;
        };
 
        clocks {
 
                nvidia,ac97-controller = <&ac97>;
 
-               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
+                        <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
+                        <&tegra_car TEGRA20_CLK_CDEV1>;
                clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 
                        enable-active-high;
                        regulator-boot-on;
                        regulator-always-on;
-                       gpio = <&gpio 217 0>;
+                       gpio = <&gpio TEGRA_GPIO(BB, 1) GPIO_ACTIVE_HIGH>;
                };
        };
 };
index ec5293758753a8e04e42d6159576e045b3d57a90..d9f89cd879a7b860bd97981310bcd7b18f4d9b23 100644 (file)
@@ -1,6 +1,6 @@
 /dts-v1/;
 
-/include/ "tegra20.dtsi"
+#include "tegra20.dtsi"
 
 / {
        model = "NVIDIA Tegra20 Harmony evaluation board";
@@ -18,7 +18,8 @@
                        pll-supply = <&hdmi_pll_reg>;
 
                        nvidia,ddc-i2c-bus = <&hdmi_ddc>;
-                       nvidia,hpd-gpio = <&gpio 111 0>; /* PN7 */
+                       nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
+                               GPIO_ACTIVE_HIGH>;
                };
        };
 
                        compatible = "wlf,wm8903";
                        reg = <0x1a>;
                        interrupt-parent = <&gpio>;
-                       interrupts = <187 0x04>;
+                       interrupts = <TEGRA_GPIO(X, 3) IRQ_TYPE_LEVEL_HIGH>;
 
                        gpio-controller;
                        #gpio-cells = <2>;
                pmic: tps6586x@34 {
                        compatible = "ti,tps6586x";
                        reg = <0x34>;
-                       interrupts = <0 86 0x4>;
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
 
                        ti,system-power-controller;
 
 
        usb@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio 169 1>; /* gpio PV1, active low */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
+                       GPIO_ACTIVE_LOW>;
        };
 
        usb-phy@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio 169 1>; /* gpio PV1, active low */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
+                       GPIO_ACTIVE_LOW>;
        };
 
        usb@c5008000 {
 
        sdhci@c8000200 {
                status = "okay";
-               cd-gpios = <&gpio 69 1>; /* gpio PI5 */
-               wp-gpios = <&gpio 57 0>; /* gpio PH1 */
-               power-gpios = <&gpio 155 0>; /* gpio PT3 */
+               cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
+               wp-gpios = <&gpio TEGRA_GPIO(H, 1) GPIO_ACTIVE_HIGH>;
+               power-gpios = <&gpio TEGRA_GPIO(T, 3) GPIO_ACTIVE_HIGH>;
                bus-width = <4>;
        };
 
        sdhci@c8000600 {
                status = "okay";
-               cd-gpios = <&gpio 58 1>; /* gpio PH2 */
-               wp-gpios = <&gpio 59 0>; /* gpio PH3 */
-               power-gpios = <&gpio 70 0>; /* gpio PI6 */
+               cd-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_LOW>;
+               wp-gpios = <&gpio TEGRA_GPIO(H, 3) GPIO_ACTIVE_HIGH>;
+               power-gpios = <&gpio TEGRA_GPIO(I, 6) GPIO_ACTIVE_HIGH>;
                bus-width = <8>;
        };
 
 
                power {
                        label = "Power";
-                       gpios = <&gpio 170 1>; /* gpio PV2, active low */
+                       gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
                        linux,code = <116>; /* KEY_POWER */
                        gpio-key,wakeup;
                };
                        regulator-name = "vdd_1v5";
                        regulator-min-microvolt = <1500000>;
                        regulator-max-microvolt = <1500000>;
-                       gpio = <&pmic 0 0>;
+                       gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
                };
 
                regulator@2 {
                        regulator-name = "vdd_1v2";
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
-                       gpio = <&pmic 1 0>;
+                       gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
                        enable-active-high;
                };
 
                        regulator-name = "vdd_1v05";
                        regulator-min-microvolt = <1050000>;
                        regulator-max-microvolt = <1050000>;
-                       gpio = <&pmic 2 0>;
+                       gpio = <&pmic 2 GPIO_ACTIVE_HIGH>;
                        enable-active-high;
                        /* Hack until board-harmony-pcie.c is removed */
                        status = "disabled";
                        regulator-name = "vdd_pnl";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <2800000>;
-                       gpio = <&gpio 22 0>; /* gpio PC6 */
+                       gpio = <&gpio TEGRA_GPIO(C, 6) GPIO_ACTIVE_HIGH>;
                        enable-active-high;
                };
 
                        regulator-name = "vdd_bl";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <2800000>;
-                       gpio = <&gpio 176 0>; /* gpio PW0 */
+                       gpio = <&gpio TEGRA_GPIO(W, 0) GPIO_ACTIVE_HIGH>;
                        enable-active-high;
                };
        };
                nvidia,i2s-controller = <&tegra_i2s1>;
                nvidia,audio-codec = <&wm8903>;
 
-               nvidia,spkr-en-gpios = <&wm8903 2 0>;
-               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>;
+               nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
+               nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2)
+                       GPIO_ACTIVE_HIGH>;
+               nvidia,int-mic-en-gpios = <&gpio TEGRA_GPIO(X, 0)
+                       GPIO_ACTIVE_HIGH>;
+               nvidia,ext-mic-en-gpios = <&gpio TEGRA_GPIO(X, 1)
+                       GPIO_ACTIVE_HIGH>;
+
+               clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
+                        <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
+                        <&tegra_car TEGRA20_CLK_CDEV1>;
                clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index 9f64f708688197129fbbe7f2f3d8128726eab8a1..f2222bd74eab157f94ffcf884d9265765766f7d6 100644 (file)
@@ -1,6 +1,6 @@
 /dts-v1/;
 
-/include/ "tegra20-colibri-512.dtsi"
+#include "tegra20-colibri-512.dtsi"
 
 / {
        model = "Toradex Colibri T20 512MB on Iris";
@@ -80,7 +80,7 @@
                        regulator-max-microvolt = <5000000>;
                        regulator-boot-on;
                        regulator-always-on;
-                       gpio = <&gpio 178 0>;
+                       gpio = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_HIGH>;
                };
 
                vcc_sd_reg: regulator@1 {
index ace23437da8902ec212df6124ec80d05c5bd7d72..7580578903cfa21c23d8b458efbb1ad2770ccb0a 100644 (file)
@@ -1,6 +1,6 @@
 /dts-v1/;
 
-/include/ "tegra20-tamonten.dtsi"
+#include "tegra20-tamonten.dtsi"
 
 / {
        model = "Avionic Design Medcom-Wide board";
@@ -15,7 +15,7 @@
                        compatible = "wlf,wm8903";
                        reg = <0x1a>;
                        interrupt-parent = <&gpio>;
-                       interrupts = <187 0x04>;
+                       interrupts = <TEGRA_GPIO(X, 3) IRQ_TYPE_LEVEL_HIGH>;
 
                        gpio-controller;
                        #gpio-cells = <2>;
                nvidia,i2s-controller = <&tegra_i2s1>;
                nvidia,audio-codec = <&wm8903>;
 
-               nvidia,spkr-en-gpios = <&wm8903 2 0>;
-               nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
+               nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
+               nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_HIGH>;
 
-               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
+                        <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
+                        <&tegra_car TEGRA20_CLK_CDEV1>;
                clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index 1c17ffaff1ad8aaa5626928bcc75f4c79802bd25..cfd12763b1b2a605f5b950b2794e5fadafcaaeb4 100644 (file)
@@ -1,6 +1,6 @@
 /dts-v1/;
 
-/include/ "tegra20.dtsi"
+#include "tegra20.dtsi"
 
 / {
        model = "Toshiba AC100 / Dynabook AZ";
@@ -18,7 +18,8 @@
                        pll-supply = <&hdmi_pll_reg>;
 
                        nvidia,ddc-i2c-bus = <&hdmi_ddc>;
-                       nvidia,hpd-gpio = <&gpio 111 0>; /* PN7 */
+                       nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
+                               GPIO_ACTIVE_HIGH>;
                };
        };
 
        nvec {
                compatible = "nvidia,nvec";
                reg = <0x7000c500 0x100>;
-               interrupts = <0 92 0x04>;
+               interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
                clock-frequency = <80000>;
-               request-gpios = <&gpio 170 0>; /* gpio PV2 */
+               request-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>;
                slave-addr = <138>;
-               clocks = <&tegra_car 67>, <&tegra_car 124>;
+               clocks = <&tegra_car TEGRA20_CLK_I2C3>,
+                        <&tegra_car TEGRA20_CLK_PLL_P_OUT3>;
                clock-names = "div-clk", "fast-clk";
        };
 
                pmic: tps6586x@34 {
                        compatible = "ti,tps6586x";
                        reg = <0x34>;
-                       interrupts = <0 86 0x4>;
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
 
                        #gpio-cells = <2>;
                        gpio-controller;
 
        usb@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio 168 1>; /* gpio PV0, active low */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 0)
+                       GPIO_ACTIVE_LOW>;
        };
 
        usb-phy@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio 168 1>; /* gpio PV0, active low */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 0)
+                       GPIO_ACTIVE_LOW>;
        };
 
        usb@c5008000 {
 
        sdhci@c8000000 {
                status = "okay";
-               cd-gpios = <&gpio 173 1>; /* gpio PV5 */
-               wp-gpios = <&gpio 57 0>;  /* gpio PH1 */
-               power-gpios = <&gpio 169 0>; /* gpio PV1 */
+               cd-gpios = <&gpio TEGRA_GPIO(V, 5) GPIO_ACTIVE_LOW>;
+               wp-gpios = <&gpio TEGRA_GPIO(H, 1) GPIO_ACTIVE_HIGH>;
+               power-gpios = <&gpio TEGRA_GPIO(V, 1) GPIO_ACTIVE_HIGH>;
                bus-width = <4>;
        };
 
 
                power {
                        label = "Power";
-                       gpios = <&gpio 79 1>; /* gpio PJ7, active low */
+                       gpios = <&gpio TEGRA_GPIO(J, 7) GPIO_ACTIVE_LOW>;
                        linux,code = <116>; /* KEY_POWER */
                        gpio-key,wakeup;
                };
 
                wifi {
                        label = "wifi-led";
-                       gpios = <&gpio 24 0>; /* gpio PD0 */
+                       gpios = <&gpio TEGRA_GPIO(D, 0) GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "rfkill0";
                };
        };
 
                nvidia,audio-codec = <&alc5632>;
                nvidia,i2s-controller = <&tegra_i2s1>;
-               nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
+               nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2)
+                       GPIO_ACTIVE_HIGH>;
 
-               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
+                        <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
+                        <&tegra_car TEGRA20_CLK_CDEV1>;
                clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index 1a17cc30bb9d47b002998d0fd2073e3d99aa95c2..d7a358a6a647aa9668bebb24ffb76bfa6154055e 100644 (file)
@@ -1,6 +1,6 @@
 /dts-v1/;
 
-/include/ "tegra20-tamonten.dtsi"
+#include "tegra20-tamonten.dtsi"
 
 / {
        model = "Avionic Design Plutux board";
@@ -17,7 +17,7 @@
                        compatible = "wlf,wm8903";
                        reg = <0x1a>;
                        interrupt-parent = <&gpio>;
-                       interrupts = <187 0x04>;
+                       interrupts = <TEGRA_GPIO(X, 3) IRQ_TYPE_LEVEL_HIGH>;
 
                        gpio-controller;
                        #gpio-cells = <2>;
                nvidia,i2s-controller = <&tegra_i2s1>;
                nvidia,audio-codec = <&wm8903>;
 
-               nvidia,spkr-en-gpios = <&wm8903 2 0>;
-               nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
+               nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
+               nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_HIGH>;
 
-               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
+                        <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
+                        <&tegra_car TEGRA20_CLK_CDEV1>;
                clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index 009dafecf88b904ee95dc304a4885bffd92ff1e5..ab177b406b78053027f8fd512f71975e322c5087 100644 (file)
@@ -1,6 +1,6 @@
 /dts-v1/;
 
-/include/ "tegra20.dtsi"
+#include "tegra20.dtsi"
 
 / {
        model = "NVIDIA Seaboard";
@@ -18,7 +18,8 @@
                        pll-supply = <&hdmi_pll_reg>;
 
                        nvidia,ddc-i2c-bus = <&hdmi_ddc>;
-                       nvidia,hpd-gpio = <&gpio 111 0>; /* PN7 */
+                       nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
+                               GPIO_ACTIVE_HIGH>;
                };
        };
 
                        compatible = "wlf,wm8903";
                        reg = <0x1a>;
                        interrupt-parent = <&gpio>;
-                       interrupts = <187 0x04>;
+                       interrupts = <TEGRA_GPIO(X, 3) IRQ_TYPE_LEVEL_HIGH>;
 
                        gpio-controller;
                        #gpio-cells = <2>;
                        compatible = "isil,isl29018";
                        reg = <0x44>;
                        interrupt-parent = <&gpio>;
-                       interrupts = <202 0x04>; /* GPIO PZ2 */
+                       interrupts = <TEGRA_GPIO(Z, 2) IRQ_TYPE_LEVEL_HIGH>;
                };
 
                gyrometer@68 {
                        compatible = "invn,mpu3050";
                        reg = <0x68>;
                        interrupt-parent = <&gpio>;
-                       interrupts = <204 0x04>; /* gpio PZ4 */
+                       interrupts = <TEGRA_GPIO(Z, 4) IRQ_TYPE_LEVEL_HIGH>;
                };
        };
 
                pmic: tps6586x@34 {
                        compatible = "ti,tps6586x";
                        reg = <0x34>;
-                       interrupts = <0 86 0x4>;
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
 
                        ti,system-power-controller;
 
                        compatible = "ak,ak8975";
                        reg = <0xc>;
                        interrupt-parent = <&gpio>;
-                       interrupts = <109 0x04>; /* gpio PN5 */
+                       interrupts = <TEGRA_GPIO(N, 5) IRQ_TYPE_LEVEL_HIGH>;
                };
        };
 
 
        usb@c5000000 {
                status = "okay";
-               nvidia,vbus-gpio = <&gpio 24 0>; /* PD0 */
+               nvidia,vbus-gpio = <&gpio TEGRA_GPIO(D, 0) GPIO_ACTIVE_HIGH>;
                dr_mode = "otg";
        };
 
 
        usb@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio 169 1>; /* gpio PV1, active low */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
+                       GPIO_ACTIVE_LOW>;
        };
 
        usb-phy@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio 169 1>; /* gpio PV1, active low */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
+                       GPIO_ACTIVE_LOW>;
        };
 
        usb@c5008000 {
 
        sdhci@c8000000 {
                status = "okay";
-               power-gpios = <&gpio 86 0>; /* gpio PK6 */
+               power-gpios = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_HIGH>;
                bus-width = <4>;
                keep-power-in-suspend;
        };
 
        sdhci@c8000400 {
                status = "okay";
-               cd-gpios = <&gpio 69 1>; /* gpio PI5 */
-               wp-gpios = <&gpio 57 0>; /* gpio PH1 */
-               power-gpios = <&gpio 70 0>; /* gpio PI6 */
+               cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
+               wp-gpios = <&gpio TEGRA_GPIO(H, 1) GPIO_ACTIVE_HIGH>;
+               power-gpios = <&gpio TEGRA_GPIO(I, 6) GPIO_ACTIVE_HIGH>;
                bus-width = <4>;
        };
 
 
                power {
                        label = "Power";
-                       gpios = <&gpio 170 1>; /* gpio PV2, active low */
+                       gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
                        linux,code = <116>; /* KEY_POWER */
                        gpio-key,wakeup;
                };
 
                lid {
                        label = "Lid";
-                       gpios = <&gpio 23 0>; /* gpio PC7 */
+                       gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_HIGH>;
                        linux,input-type = <5>; /* EV_SW */
                        linux,code = <0>; /* SW_LID */
                        debounce-interval = <1>;
                        regulator-name = "vdd_1v5";
                        regulator-min-microvolt = <1500000>;
                        regulator-max-microvolt = <1500000>;
-                       gpio = <&pmic 0 0>;
+                       gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
                };
 
                regulator@2 {
                        regulator-name = "vdd_1v2";
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
-                       gpio = <&pmic 1 0>;
+                       gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
                        enable-active-high;
                };
 
                nvidia,i2s-controller = <&tegra_i2s1>;
                nvidia,audio-codec = <&wm8903>;
 
-               nvidia,spkr-en-gpios = <&wm8903 2 0>;
-               nvidia,hp-det-gpios = <&gpio 185 0>; /* gpio PX1 */
+               nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
+               nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(X, 1) GPIO_ACTIVE_HIGH>;
 
-               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
+                        <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
+                        <&tegra_car TEGRA20_CLK_CDEV1>;
                clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index fc2f7d6e70b23fef9d167e3541ba21cbe52d176f..c54faae7cfb31d25d68ff7802a81c5486312f479 100644 (file)
@@ -1,4 +1,4 @@
-/include/ "tegra20.dtsi"
+#include "tegra20.dtsi"
 
 / {
        model = "Avionic Design Tamonten SOM";
@@ -14,7 +14,8 @@
                        pll-supply = <&hdmi_pll_reg>;
 
                        nvidia,ddc-i2c-bus = <&hdmi_ddc>;
-                       nvidia,hpd-gpio = <&gpio 111 0>; /* PN7 */
+                       nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
+                               GPIO_ACTIVE_HIGH>;
                };
        };
 
                pmic: tps6586x@34 {
                        compatible = "ti,tps6586x";
                        reg = <0x34>;
-                       interrupts = <0 86 0x4>;
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
 
                        ti,system-power-controller;
 
        };
 
        sdhci@c8000600 {
-               cd-gpios = <&gpio 58 1>; /* gpio PH2 */
-               wp-gpios = <&gpio 59 0>; /* gpio PH3 */
+               cd-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_LOW>;
+               wp-gpios = <&gpio TEGRA_GPIO(H, 3) GPIO_ACTIVE_HIGH>;
                bus-width = <4>;
                status = "okay";
        };
index 742f0b38d21df42524a2bc9c0ccd3d1fb60e0e7c..c572c43751b180ac3e6112f0110a89dd046654d7 100644 (file)
@@ -1,6 +1,6 @@
 /dts-v1/;
 
-/include/ "tegra20-tamonten.dtsi"
+#include "tegra20-tamonten.dtsi"
 
 / {
        model = "Avionic Design Tamonten Evaluation Carrier";
@@ -17,7 +17,7 @@
                        compatible = "wlf,wm8903";
                        reg = <0x1a>;
                        interrupt-parent = <&gpio>;
-                       interrupts = <187 0x04>;
+                       interrupts = <TEGRA_GPIO(X, 3) IRQ_TYPE_LEVEL_HIGH>;
 
                        gpio-controller;
                        #gpio-cells = <2>;
                nvidia,i2s-controller = <&tegra_i2s1>;
                nvidia,audio-codec = <&wm8903>;
 
-               nvidia,spkr-en-gpios = <&wm8903 2 0>;
-               nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
+               nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
+               nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2)
+                       GPIO_ACTIVE_HIGH>;
 
-               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
+                        <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
+                        <&tegra_car TEGRA20_CLK_CDEV1>;
                clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index 0e65c00ec732415c2902112db584fa566584e87d..170159910455b1470928be4ccf98e39912da9d8d 100644 (file)
@@ -1,6 +1,6 @@
 /dts-v1/;
 
-/include/ "tegra20.dtsi"
+#include "tegra20.dtsi"
 
 / {
        model = "Compulab TrimSlice board";
@@ -18,7 +18,8 @@
                        pll-supply = <&hdmi_pll_reg>;
 
                        nvidia,ddc-i2c-bus = <&hdmi_ddc>;
-                       nvidia,hpd-gpio = <&gpio 111 0>; /* PN7 */
+                       nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
+                               GPIO_ACTIVE_HIGH>;
                };
        };
 
 
        usb@c5000000 {
                status = "okay";
-               nvidia,vbus-gpio = <&gpio 170 0>; /* gpio PV2 */
+               nvidia,vbus-gpio = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>;
        };
 
        usb-phy@c5000000 {
 
        usb@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio 168 1>; /* gpio PV0, active low */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 0)
+                       GPIO_ACTIVE_LOW>;
        };
 
        usb-phy@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio 168 1>; /* gpio PV0, active low */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 0)
+                       GPIO_ACTIVE_LOW>;
        };
 
        usb@c5008000 {
 
        sdhci@c8000600 {
                status = "okay";
-               cd-gpios = <&gpio 121 1>; /* gpio PP1 */
-               wp-gpios = <&gpio 122 0>; /* gpio PP2 */
+               cd-gpios = <&gpio TEGRA_GPIO(P, 1) GPIO_ACTIVE_LOW>;
+               wp-gpios = <&gpio TEGRA_GPIO(P, 2) GPIO_ACTIVE_HIGH>;
                bus-width = <4>;
        };
 
 
                power {
                        label = "Power";
-                       gpios = <&gpio 190 1>; /* gpio PX6, active low */
+                       gpios = <&gpio TEGRA_GPIO(X, 6) GPIO_ACTIVE_LOW>;
                        linux,code = <116>; /* KEY_POWER */
                        gpio-key,wakeup;
                };
 
        poweroff {
                compatible = "gpio-poweroff";
-               gpios = <&gpio 191 1>; /* gpio PX7, active low */
+               gpios = <&gpio TEGRA_GPIO(X, 7) GPIO_ACTIVE_LOW>;
        };
 
        regulators {
                nvidia,i2s-controller = <&tegra_i2s1>;
                nvidia,audio-codec = <&codec>;
 
-               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
+                        <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
+                        <&tegra_car TEGRA20_CLK_CDEV1>;
                clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index e00f89e645f9112f50e3294e7c2d21489032000f..7f8c28d1121fa9e6685b6ec2bd69755b405222e7 100644 (file)
@@ -1,6 +1,6 @@
 /dts-v1/;
 
-/include/ "tegra20.dtsi"
+#include "tegra20.dtsi"
 
 / {
        model = "NVIDIA Tegra20 Ventana evaluation board";
@@ -18,7 +18,8 @@
                        pll-supply = <&hdmi_pll_reg>;
 
                        nvidia,ddc-i2c-bus = <&hdmi_ddc>;
-                       nvidia,hpd-gpio = <&gpio 111 0>; /* PN7 */
+                       nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
+                               GPIO_ACTIVE_HIGH>;
                };
        };
 
                        compatible = "wlf,wm8903";
                        reg = <0x1a>;
                        interrupt-parent = <&gpio>;
-                       interrupts = <187 0x04>;
+                       interrupts = <TEGRA_GPIO(X, 3) IRQ_TYPE_LEVEL_HIGH>;
 
                        gpio-controller;
                        #gpio-cells = <2>;
                        compatible = "isil,isl29018";
                        reg = <0x44>;
                        interrupt-parent = <&gpio>;
-                       interrupts = <202 0x04>; /*gpio PZ2 */
+                       interrupts = <TEGRA_GPIO(Z, 2) IRQ_TYPE_LEVEL_HIGH>;
                };
        };
 
                pmic: tps6586x@34 {
                        compatible = "ti,tps6586x";
                        reg = <0x34>;
-                       interrupts = <0 86 0x4>;
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
 
                        ti,system-power-controller;
 
 
        usb@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio 169 1>; /* gpio PV1, active low */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
+                       GPIO_ACTIVE_LOW>;
        };
 
        usb-phy@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio 169 1>; /* gpio PV1, active low */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
+                       GPIO_ACTIVE_LOW>;
        };
 
        usb@c5008000 {
 
        sdhci@c8000000 {
                status = "okay";
-               power-gpios = <&gpio 86 0>; /* gpio PK6 */
+               power-gpios = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_HIGH>;
                bus-width = <4>;
                keep-power-in-suspend;
        };
 
        sdhci@c8000400 {
                status = "okay";
-               cd-gpios = <&gpio 69 1>; /* gpio PI5 */
-               wp-gpios = <&gpio 57 0>; /* gpio PH1 */
-               power-gpios = <&gpio 70 0>; /* gpio PI6 */
+               cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
+               wp-gpios = <&gpio TEGRA_GPIO(H, 1) GPIO_ACTIVE_HIGH>;
+               power-gpios = <&gpio TEGRA_GPIO(I, 6) GPIO_ACTIVE_HIGH>;
                bus-width = <4>;
        };
 
 
                power {
                        label = "Power";
-                       gpios = <&gpio 170 1>; /* gpio PV2, active low */
+                       gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
                        linux,code = <116>; /* KEY_POWER */
                        gpio-key,wakeup;
                };
                        regulator-name = "vdd_1v5";
                        regulator-min-microvolt = <1500000>;
                        regulator-max-microvolt = <1500000>;
-                       gpio = <&pmic 0 0>;
+                       gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
                };
 
                regulator@2 {
                        regulator-name = "vdd_1v2";
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
-                       gpio = <&pmic 1 0>;
+                       gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
                        enable-active-high;
                };
 
                        regulator-name = "vdd_pnl";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <2800000>;
-                       gpio = <&gpio 22 0>; /* gpio PC6 */
+                       gpio = <&gpio TEGRA_GPIO(C, 6) GPIO_ACTIVE_HIGH>;
                        enable-active-high;
                };
 
                        regulator-name = "vdd_bl";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <2800000>;
-                       gpio = <&gpio 176 0>; /* gpio PW0 */
+                       gpio = <&gpio TEGRA_GPIO(W, 0) GPIO_ACTIVE_HIGH>;
                        enable-active-high;
                };
        };
                nvidia,i2s-controller = <&tegra_i2s1>;
                nvidia,audio-codec = <&wm8903>;
 
-               nvidia,spkr-en-gpios = <&wm8903 2 0>;
-               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 */
+               nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
+               nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_HIGH>;
+               nvidia,int-mic-en-gpios = <&gpio TEGRA_GPIO(X, 0)
+                       GPIO_ACTIVE_HIGH>;
+               nvidia,ext-mic-en-gpios = <&gpio TEGRA_GPIO(X, 1)
+                       GPIO_ACTIVE_HIGH>;
 
-               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
+                        <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
+                        <&tegra_car TEGRA20_CLK_CDEV1>;
                clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index 3c24c9b92b440f6f1baef64b2c5874ca57b95f69..ea078ab8edebdfa664cf081c456eac7b00449cae 100644 (file)
@@ -1,6 +1,6 @@
 /dts-v1/;
 
-/include/ "tegra20.dtsi"
+#include "tegra20.dtsi"
 
 / {
        model = "NVIDIA Tegra20 Whistler evaluation board";
@@ -18,7 +18,8 @@
                        pll-supply = <&hdmi_pll_reg>;
 
                        nvidia,ddc-i2c-bus = <&hdmi_ddc>;
-                       nvidia,hpd-gpio = <&gpio 111 0>; /* PN7 */
+                       nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
+                               GPIO_ACTIVE_HIGH>;
                };
        };
 
                max8907@3c {
                        compatible = "maxim,max8907";
                        reg = <0x3c>;
-                       interrupts = <0 86 0x4>;
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
 
                        maxim,system-power-controller;
 
 
        usb@c5000000 {
                status = "okay";
-               nvidia,vbus-gpio = <&tca6416 0 0>; /* GPIO_PMU0 */
+               nvidia,vbus-gpio = <&tca6416 0 GPIO_ACTIVE_HIGH>;
        };
 
        usb-phy@c5000000 {
 
        usb@c5008000 {
                status = "okay";
-               nvidia,vbus-gpio = <&tca6416 1 0>; /* GPIO_PMU1 */
+               nvidia,vbus-gpio = <&tca6416 1 GPIO_ACTIVE_HIGH>;
        };
 
        usb-phy@c5008000 {
 
        sdhci@c8000400 {
                status = "okay";
-               cd-gpios = <&gpio 69 1>; /* gpio PI5 */
-               wp-gpios = <&gpio 173 0>; /* gpio PV5 */
+               cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
+               wp-gpios = <&gpio TEGRA_GPIO(V, 5) GPIO_ACTIVE_HIGH>;
                bus-width = <8>;
        };
 
                nvidia,i2s-controller = <&tegra_i2s1>;
                nvidia,audio-codec = <&codec>;
 
-               clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>;
+               clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
+                        <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
+                        <&tegra_car TEGRA20_CLK_CDEV1>;
                clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index 96d6d8a3aa7208751a3be3d7b4e4fb93a1eeba3e..9653fd8288d2c53f77336111ce9a2396e04eca82 100644 (file)
@@ -1,4 +1,8 @@
-/include/ "skeleton.dtsi"
+#include <dt-bindings/clock/tegra20-car.h>
+#include <dt-bindings/gpio/tegra-gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+#include "skeleton.dtsi"
 
 / {
        compatible = "nvidia,tegra20";
@@ -15,9 +19,9 @@
        host1x {
                compatible = "nvidia,tegra20-host1x", "simple-bus";
                reg = <0x50000000 0x00024000>;
-               interrupts = <0 65 0x04   /* mpcore syncpt */
-                             0 67 0x04>; /* mpcore general */
-               clocks = <&tegra_car 28>;
+               interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */
+                            <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /* general */
+               clocks = <&tegra_car TEGRA20_CLK_HOST1X>;
 
                #address-cells = <1>;
                #size-cells = <1>;
                mpe {
                        compatible = "nvidia,tegra20-mpe";
                        reg = <0x54040000 0x00040000>;
-                       interrupts = <0 68 0x04>;
-                       clocks = <&tegra_car 60>;
+                       interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA20_CLK_MPE>;
                };
 
                vi {
                        compatible = "nvidia,tegra20-vi";
                        reg = <0x54080000 0x00040000>;
-                       interrupts = <0 69 0x04>;
-                       clocks = <&tegra_car 100>;
+                       interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA20_CLK_VI>;
                };
 
                epp {
                        compatible = "nvidia,tegra20-epp";
                        reg = <0x540c0000 0x00040000>;
-                       interrupts = <0 70 0x04>;
-                       clocks = <&tegra_car 19>;
+                       interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA20_CLK_EPP>;
                };
 
                isp {
                        compatible = "nvidia,tegra20-isp";
                        reg = <0x54100000 0x00040000>;
-                       interrupts = <0 71 0x04>;
-                       clocks = <&tegra_car 23>;
+                       interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA20_CLK_ISP>;
                };
 
                gr2d {
                        compatible = "nvidia,tegra20-gr2d";
                        reg = <0x54140000 0x00040000>;
-                       interrupts = <0 72 0x04>;
-                       clocks = <&tegra_car 21>;
+                       interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA20_CLK_GR2D>;
                };
 
                gr3d {
                        compatible = "nvidia,tegra20-gr3d";
                        reg = <0x54180000 0x00040000>;
-                       clocks = <&tegra_car 24>;
+                       clocks = <&tegra_car TEGRA20_CLK_GR3D>;
                };
 
                dc@54200000 {
                        compatible = "nvidia,tegra20-dc";
                        reg = <0x54200000 0x00040000>;
-                       interrupts = <0 73 0x04>;
-                       clocks = <&tegra_car 27>, <&tegra_car 121>;
+                       interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA20_CLK_DISP1>,
+                                <&tegra_car TEGRA20_CLK_PLL_P>;
                        clock-names = "disp1", "parent";
 
                        rgb {
@@ -80,8 +85,9 @@
                dc@54240000 {
                        compatible = "nvidia,tegra20-dc";
                        reg = <0x54240000 0x00040000>;
-                       interrupts = <0 74 0x04>;
-                       clocks = <&tegra_car 26>, <&tegra_car 121>;
+                       interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA20_CLK_DISP2>,
+                                <&tegra_car TEGRA20_CLK_PLL_P>;
                        clock-names = "disp2", "parent";
 
                        rgb {
@@ -92,8 +98,9 @@
                hdmi {
                        compatible = "nvidia,tegra20-hdmi";
                        reg = <0x54280000 0x00040000>;
-                       interrupts = <0 75 0x04>;
-                       clocks = <&tegra_car 51>, <&tegra_car 117>;
+                       interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA20_CLK_HDMI>,
+                                <&tegra_car TEGRA20_CLK_PLL_D_OUT0>;
                        clock-names = "hdmi", "parent";
                        status = "disabled";
                };
                tvo {
                        compatible = "nvidia,tegra20-tvo";
                        reg = <0x542c0000 0x00040000>;
-                       interrupts = <0 76 0x04>;
-                       clocks = <&tegra_car 102>;
+                       interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA20_CLK_TVO>;
                        status = "disabled";
                };
 
                dsi {
                        compatible = "nvidia,tegra20-dsi";
                        reg = <0x54300000 0x00040000>;
-                       clocks = <&tegra_car 48>;
+                       clocks = <&tegra_car TEGRA20_CLK_DSI>;
                        status = "disabled";
                };
        };
        timer@50004600 {
                compatible = "arm,cortex-a9-twd-timer";
                reg = <0x50040600 0x20>;
-               interrupts = <1 13 0x304>;
-               clocks = <&tegra_car 132>;
+               interrupts = <GIC_PPI 13
+                       (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
+               clocks = <&tegra_car TEGRA20_CLK_TWD>;
        };
 
        intc: interrupt-controller {
        timer@60005000 {
                compatible = "nvidia,tegra20-timer";
                reg = <0x60005000 0x60>;
-               interrupts = <0 0 0x04
-                             0 1 0x04
-                             0 41 0x04
-                             0 42 0x04>;
-               clocks = <&tegra_car 5>;
+               interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA20_CLK_TIMER>;
        };
 
        tegra_car: clock {
        apbdma: dma {
                compatible = "nvidia,tegra20-apbdma";
                reg = <0x6000a000 0x1200>;
-               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>;
-               clocks = <&tegra_car 34>;
+               interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA20_CLK_APBDMA>;
        };
 
        ahb {
        gpio: gpio {
                compatible = "nvidia,tegra20-gpio";
                reg = <0x6000d000 0x1000>;
-               interrupts = <0 32 0x04
-                             0 33 0x04
-                             0 34 0x04
-                             0 35 0x04
-                             0 55 0x04
-                             0 87 0x04
-                             0 89 0x04>;
+               interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
                #gpio-cells = <2>;
                gpio-controller;
                #interrupt-cells = <2>;
        tegra_ac97: ac97 {
                compatible = "nvidia,tegra20-ac97";
                reg = <0x70002000 0x200>;
-               interrupts = <0 81 0x04>;
+               interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 12>;
-               clocks = <&tegra_car 3>;
+               clocks = <&tegra_car TEGRA20_CLK_AC97>;
                status = "disabled";
        };
 
        tegra_i2s1: i2s@70002800 {
                compatible = "nvidia,tegra20-i2s";
                reg = <0x70002800 0x200>;
-               interrupts = <0 13 0x04>;
+               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 2>;
-               clocks = <&tegra_car 11>;
+               clocks = <&tegra_car TEGRA20_CLK_I2S1>;
                status = "disabled";
        };
 
        tegra_i2s2: i2s@70002a00 {
                compatible = "nvidia,tegra20-i2s";
                reg = <0x70002a00 0x200>;
-               interrupts = <0 3 0x04>;
+               interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 1>;
-               clocks = <&tegra_car 18>;
+               clocks = <&tegra_car TEGRA20_CLK_I2S2>;
                status = "disabled";
        };
 
                compatible = "nvidia,tegra20-uart";
                reg = <0x70006000 0x40>;
                reg-shift = <2>;
-               interrupts = <0 36 0x04>;
+               interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 8>;
-               clocks = <&tegra_car 6>;
+               clocks = <&tegra_car TEGRA20_CLK_UARTA>;
                status = "disabled";
        };
 
                compatible = "nvidia,tegra20-uart";
                reg = <0x70006040 0x40>;
                reg-shift = <2>;
-               interrupts = <0 37 0x04>;
+               interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 9>;
-               clocks = <&tegra_car 96>;
+               clocks = <&tegra_car TEGRA20_CLK_UARTB>;
                status = "disabled";
        };
 
                compatible = "nvidia,tegra20-uart";
                reg = <0x70006200 0x100>;
                reg-shift = <2>;
-               interrupts = <0 46 0x04>;
+               interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 10>;
-               clocks = <&tegra_car 55>;
+               clocks = <&tegra_car TEGRA20_CLK_UARTC>;
                status = "disabled";
        };
 
                compatible = "nvidia,tegra20-uart";
                reg = <0x70006300 0x100>;
                reg-shift = <2>;
-               interrupts = <0 90 0x04>;
+               interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 19>;
-               clocks = <&tegra_car 65>;
+               clocks = <&tegra_car TEGRA20_CLK_UARTD>;
                status = "disabled";
        };
 
                compatible = "nvidia,tegra20-uart";
                reg = <0x70006400 0x100>;
                reg-shift = <2>;
-               interrupts = <0 91 0x04>;
+               interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 20>;
-               clocks = <&tegra_car 66>;
+               clocks = <&tegra_car TEGRA20_CLK_UARTE>;
                status = "disabled";
        };
 
                compatible = "nvidia,tegra20-pwm";
                reg = <0x7000a000 0x100>;
                #pwm-cells = <2>;
-               clocks = <&tegra_car 17>;
+               clocks = <&tegra_car TEGRA20_CLK_PWM>;
                status = "disabled";
        };
 
        rtc {
                compatible = "nvidia,tegra20-rtc";
                reg = <0x7000e000 0x100>;
-               interrupts = <0 2 0x04>;
-               clocks = <&tegra_car 4>;
+               interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA20_CLK_RTC>;
        };
 
        i2c@7000c000 {
                compatible = "nvidia,tegra20-i2c";
                reg = <0x7000c000 0x100>;
-               interrupts = <0 38 0x04>;
+               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 12>, <&tegra_car 124>;
+               clocks = <&tegra_car TEGRA20_CLK_I2C1>,
+                        <&tegra_car TEGRA20_CLK_PLL_P_OUT3>;
                clock-names = "div-clk", "fast-clk";
                status = "disabled";
        };
        spi@7000c380 {
                compatible = "nvidia,tegra20-sflash";
                reg = <0x7000c380 0x80>;
-               interrupts = <0 39 0x04>;
+               interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 11>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 43>;
+               clocks = <&tegra_car TEGRA20_CLK_SPI>;
                status = "disabled";
        };
 
        i2c@7000c400 {
                compatible = "nvidia,tegra20-i2c";
                reg = <0x7000c400 0x100>;
-               interrupts = <0 84 0x04>;
+               interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 54>, <&tegra_car 124>;
+               clocks = <&tegra_car TEGRA20_CLK_I2C2>,
+                        <&tegra_car TEGRA20_CLK_PLL_P_OUT3>;
                clock-names = "div-clk", "fast-clk";
                status = "disabled";
        };
        i2c@7000c500 {
                compatible = "nvidia,tegra20-i2c";
                reg = <0x7000c500 0x100>;
-               interrupts = <0 92 0x04>;
+               interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 67>, <&tegra_car 124>;
+               clocks = <&tegra_car TEGRA20_CLK_I2C3>,
+                        <&tegra_car TEGRA20_CLK_PLL_P_OUT3>;
                clock-names = "div-clk", "fast-clk";
                status = "disabled";
        };
        i2c@7000d000 {
                compatible = "nvidia,tegra20-i2c-dvc";
                reg = <0x7000d000 0x200>;
-               interrupts = <0 53 0x04>;
+               interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 47>, <&tegra_car 124>;
+               clocks = <&tegra_car TEGRA20_CLK_DVC>,
+                        <&tegra_car TEGRA20_CLK_PLL_P_OUT3>;
                clock-names = "div-clk", "fast-clk";
                status = "disabled";
        };
        spi@7000d400 {
                compatible = "nvidia,tegra20-slink";
                reg = <0x7000d400 0x200>;
-               interrupts = <0 59 0x04>;
+               interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 15>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 41>;
+               clocks = <&tegra_car TEGRA20_CLK_SBC1>;
                status = "disabled";
        };
 
        spi@7000d600 {
                compatible = "nvidia,tegra20-slink";
                reg = <0x7000d600 0x200>;
-               interrupts = <0 82 0x04>;
+               interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 16>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 44>;
+               clocks = <&tegra_car TEGRA20_CLK_SBC2>;
                status = "disabled";
        };
 
        spi@7000d800 {
                compatible = "nvidia,tegra20-slink";
                reg = <0x7000d800 0x200>;
-               interrupts = <0 83 0x04>;
+               interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 17>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 46>;
+               clocks = <&tegra_car TEGRA20_CLK_SBC3>;
                status = "disabled";
        };
 
        spi@7000da00 {
                compatible = "nvidia,tegra20-slink";
                reg = <0x7000da00 0x200>;
-               interrupts = <0 93 0x04>;
+               interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 18>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 68>;
+               clocks = <&tegra_car TEGRA20_CLK_SBC4>;
                status = "disabled";
        };
 
        kbc {
                compatible = "nvidia,tegra20-kbc";
                reg = <0x7000e200 0x100>;
-               interrupts = <0 85 0x04>;
-               clocks = <&tegra_car 36>;
+               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA20_CLK_KBC>;
                status = "disabled";
        };
 
        pmc {
                compatible = "nvidia,tegra20-pmc";
                reg = <0x7000e400 0x400>;
-               clocks = <&tegra_car 110>, <&clk32k_in>;
+               clocks = <&tegra_car TEGRA20_CLK_PCLK>, <&clk32k_in>;
                clock-names = "pclk", "clk32k_in";
        };
 
                compatible = "nvidia,tegra20-mc";
                reg = <0x7000f000 0x024
                       0x7000f03c 0x3c4>;
-               interrupts = <0 77 0x04>;
+               interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
        };
 
        iommu {
        usb@c5000000 {
                compatible = "nvidia,tegra20-ehci", "usb-ehci";
                reg = <0xc5000000 0x4000>;
-               interrupts = <0 20 0x04>;
+               interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
                phy_type = "utmi";
                nvidia,has-legacy-mode;
-               clocks = <&tegra_car 22>;
+               clocks = <&tegra_car TEGRA20_CLK_USBD>;
                nvidia,needs-double-reset;
                nvidia,phy = <&phy1>;
                status = "disabled";
                compatible = "nvidia,tegra20-usb-phy";
                reg = <0xc5000000 0x4000 0xc5000000 0x4000>;
                phy_type = "utmi";
-               clocks = <&tegra_car 22>,
-                        <&tegra_car 127>,
-                        <&tegra_car 106>,
-                        <&tegra_car 22>;
+               clocks = <&tegra_car TEGRA20_CLK_USBD>,
+                        <&tegra_car TEGRA20_CLK_PLL_U>,
+                        <&tegra_car TEGRA20_CLK_CLK_M>,
+                        <&tegra_car TEGRA20_CLK_USBD>;
                clock-names = "reg", "pll_u", "timer", "utmi-pads";
                nvidia,has-legacy-mode;
                hssync_start_delay = <9>;
        usb@c5004000 {
                compatible = "nvidia,tegra20-ehci", "usb-ehci";
                reg = <0xc5004000 0x4000>;
-               interrupts = <0 21 0x04>;
+               interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
                phy_type = "ulpi";
-               clocks = <&tegra_car 58>;
+               clocks = <&tegra_car TEGRA20_CLK_USB2>;
                nvidia,phy = <&phy2>;
                status = "disabled";
        };
                compatible = "nvidia,tegra20-usb-phy";
                reg = <0xc5004000 0x4000>;
                phy_type = "ulpi";
-               clocks = <&tegra_car 58>,
-                        <&tegra_car 127>,
-                        <&tegra_car 93>;
+               clocks = <&tegra_car TEGRA20_CLK_USB2>,
+                        <&tegra_car TEGRA20_CLK_PLL_U>,
+                        <&tegra_car TEGRA20_CLK_CDEV2>;
                clock-names = "reg", "pll_u", "ulpi-link";
                status = "disabled";
        };
        usb@c5008000 {
                compatible = "nvidia,tegra20-ehci", "usb-ehci";
                reg = <0xc5008000 0x4000>;
-               interrupts = <0 97 0x04>;
+               interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
                phy_type = "utmi";
-               clocks = <&tegra_car 59>;
+               clocks = <&tegra_car TEGRA20_CLK_USB3>;
                nvidia,phy = <&phy3>;
                status = "disabled";
        };
                compatible = "nvidia,tegra20-usb-phy";
                reg = <0xc5008000 0x4000 0xc5000000 0x4000>;
                phy_type = "utmi";
-               clocks = <&tegra_car 59>,
-                        <&tegra_car 127>,
-                        <&tegra_car 106>,
-                        <&tegra_car 22>;
+               clocks = <&tegra_car TEGRA20_CLK_USB3>,
+                        <&tegra_car TEGRA20_CLK_PLL_U>,
+                        <&tegra_car TEGRA20_CLK_CLK_M>,
+                        <&tegra_car TEGRA20_CLK_USBD>;
                clock-names = "reg", "pll_u", "timer", "utmi-pads";
                hssync_start_delay = <9>;
                idle_wait_delay = <17>;
        sdhci@c8000000 {
                compatible = "nvidia,tegra20-sdhci";
                reg = <0xc8000000 0x200>;
-               interrupts = <0 14 0x04>;
-               clocks = <&tegra_car 14>;
+               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA20_CLK_SDMMC1>;
                status = "disabled";
        };
 
        sdhci@c8000200 {
                compatible = "nvidia,tegra20-sdhci";
                reg = <0xc8000200 0x200>;
-               interrupts = <0 15 0x04>;
-               clocks = <&tegra_car 9>;
+               interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA20_CLK_SDMMC2>;
                status = "disabled";
        };
 
        sdhci@c8000400 {
                compatible = "nvidia,tegra20-sdhci";
                reg = <0xc8000400 0x200>;
-               interrupts = <0 19 0x04>;
-               clocks = <&tegra_car 69>;
+               interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA20_CLK_SDMMC3>;
                status = "disabled";
        };
 
        sdhci@c8000600 {
                compatible = "nvidia,tegra20-sdhci";
                reg = <0xc8000600 0x200>;
-               interrupts = <0 31 0x04>;
-               clocks = <&tegra_car 15>;
+               interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA20_CLK_SDMMC4>;
                status = "disabled";
        };
 
 
        pmu {
                compatible = "arm,cortex-a9-pmu";
-               interrupts = <0 56 0x04
-                             0 57 0x04>;
+               interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
        };
 };
index b732f7c13a662a81024c7efcf07b50b106ef7362..87c5f7b7c271fd7c8f58309b75d0168619919b2d 100644 (file)
@@ -1,13 +1,13 @@
 /dts-v1/;
 
-/include/ "tegra30.dtsi"
+#include "tegra30.dtsi"
 
 / {
        model = "NVIDIA Tegra30 Beaver evaluation board";
        compatible = "nvidia,beaver", "nvidia,tegra30";
 
        memory {
-               reg = <0x80000000 0x80000000>;
+               reg = <0x80000000 0x7ff00000>;
        };
 
        pinmux {
                status = "okay";
                clock-frequency = <100000>;
 
+               rt5640: rt5640 {
+                       compatible = "realtek,rt5640";
+                       reg = <0x1c>;
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(X, 3) GPIO_ACTIVE_HIGH>;
+                       realtek,ldo1-en-gpios =
+                               <&gpio TEGRA_GPIO(X, 2) GPIO_ACTIVE_HIGH>;
+               };
+
                tps62361 {
                        compatible = "ti,tps62361";
                        reg = <0x60>;
                        compatible = "ti,tps65911";
                        reg = <0x2d>;
 
-                       interrupts = <0 86 0x4>;
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
                        #interrupt-cells = <2>;
                        interrupt-controller;
 
 
        sdhci@78000000 {
                status = "okay";
-               cd-gpios = <&gpio 69 1>; /* gpio PI5 */
-               wp-gpios = <&gpio 155 0>; /* gpio PT3 */
-               power-gpios = <&gpio 31 0>; /* gpio PD7 */
+               cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
+               wp-gpios = <&gpio TEGRA_GPIO(T, 3) GPIO_ACTIVE_HIGH>;
+               power-gpios = <&gpio TEGRA_GPIO(D, 7) GPIO_ACTIVE_HIGH>;
                bus-width = <4>;
        };
 
                        regulator-boot-on;
                        regulator-always-on;
                        enable-active-high;
-                       gpio = <&pmic 0 0>; /* PMIC TPS65911 GPIO0 */
+                       gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
                };
 
                ddr_reg: regulator@2 {
                        regulator-always-on;
                        regulator-boot-on;
                        enable-active-high;
-                       gpio = <&pmic 7 0>; /* PMIC TPS65911 GPIO7 */
+                       gpio = <&pmic 7 GPIO_ACTIVE_HIGH>;
                        vin-supply = <&vdd_5v_in_reg>;
                };
 
                        regulator-always-on;
                        regulator-boot-on;
                        enable-active-high;
-                       gpio = <&gpio 30 0>; /* gpio PD6 */
+                       gpio = <&gpio TEGRA_GPIO(D, 6) GPIO_ACTIVE_HIGH>;
                        vin-supply = <&vdd_5v_in_reg>;
                };
 
                        regulator-min-microvolt = <5000000>;
                        regulator-max-microvolt = <5000000>;
                        enable-active-high;
-                       gpio = <&gpio 68 0>; /* GPIO PI4 */
+                       gpio = <&gpio TEGRA_GPIO(I, 4) GPIO_ACTIVE_HIGH>;
                        gpio-open-drain;
                        vin-supply = <&vdd_5v_in_reg>;
                };
                        regulator-min-microvolt = <5000000>;
                        regulator-max-microvolt = <5000000>;
                        enable-active-high;
-                       gpio = <&gpio 63 0>; /* GPIO PH7 */
+                       gpio = <&gpio TEGRA_GPIO(H, 7) GPIO_ACTIVE_HIGH>;
                        gpio-open-drain;
                        vin-supply = <&vdd_5v_in_reg>;
                };
                        regulator-always-on;
                        regulator-boot-on;
                        enable-active-high;
-                       gpio = <&pmic 6 0>; /* PMIC TPS65911 GPIO6 */
+                       gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
                        vin-supply = <&vdd_5v_in_reg>;
                };
 
                        regulator-always-on;
                        regulator-boot-on;
                        enable-active-high;
-                       gpio = <&gpio 95 0>; /* gpio PL7 */
+                       gpio = <&gpio TEGRA_GPIO(L, 7) GPIO_ACTIVE_HIGH>;
                        vin-supply = <&sys_3v3_reg>;
                };
        };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               gpled1 {
+                       label = "LED1"; /* CR5A1 (blue) */
+                       gpios = <&gpio TEGRA_GPIO(L, 1) GPIO_ACTIVE_HIGH>;
+               };
+               gpled2 {
+                       label = "LED2"; /* CR4A2 (green) */
+                       gpios = <&gpio TEGRA_GPIO(L, 0) GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       sound {
+               compatible = "nvidia,tegra-audio-rt5640-beaver",
+                            "nvidia,tegra-audio-rt5640";
+               nvidia,model = "NVIDIA Tegra Beaver";
+
+               nvidia,audio-routing =
+                       "Headphones", "HPOR",
+                       "Headphones", "HPOL";
+
+               nvidia,i2s-controller = <&tegra_i2s1>;
+               nvidia,audio-codec = <&rt5640>;
+
+               nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_HIGH>;
+
+               clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
+                        <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
+                        <&tegra_car TEGRA30_CLK_EXTERN1>;
+               clock-names = "pll_a", "pll_a_out0", "mclk";
+       };
 };
index e392bd2dab9b5af322d39a5363e4e9cd479ef723..1082c5ed90d18ecdd413cc43c5874cb7c27013ab 100644 (file)
@@ -1,6 +1,6 @@
 /dts-v1/;
 
-/include/ "tegra30-cardhu.dtsi"
+#include "tegra30-cardhu.dtsi"
 
 /* This dts file support the cardhu A02 version of board */
 
@@ -22,7 +22,7 @@
                        regulator-always-on;
                        regulator-boot-on;
                        enable-active-high;
-                       gpio = <&pmic 6 0>;
+                       gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
                };
 
                sys_3v3_reg: regulator@101 {
@@ -34,7 +34,7 @@
                        regulator-always-on;
                        regulator-boot-on;
                        enable-active-high;
-                       gpio = <&pmic 7 0>;
+                       gpio = <&pmic 7 GPIO_ACTIVE_HIGH>;
                };
 
                usb1_vbus_reg: regulator@102 {
@@ -44,7 +44,7 @@
                        regulator-min-microvolt = <5000000>;
                        regulator-max-microvolt = <5000000>;
                        enable-active-high;
-                       gpio = <&gpio 68 0>; /* GPIO PI4 */
+                       gpio = <&gpio TEGRA_GPIO(I, 4) GPIO_ACTIVE_HIGH>;
                        gpio-open-drain;
                        vin-supply = <&vdd_5v0_reg>;
                };
@@ -56,7 +56,7 @@
                        regulator-min-microvolt = <5000000>;
                        regulator-max-microvolt = <5000000>;
                        enable-active-high;
-                       gpio = <&gpio 63 0>; /* GPIO PH7 */
+                       gpio = <&gpio TEGRA_GPIO(H, 7) GPIO_ACTIVE_HIGH>;
                        gpio-open-drain;
                        vin-supply = <&vdd_5v0_reg>;
                };
@@ -68,7 +68,7 @@
                        regulator-min-microvolt = <5000000>;
                        regulator-max-microvolt = <5000000>;
                        enable-active-high;
-                       gpio = <&pmic 2 0>;
+                       gpio = <&pmic 2 GPIO_ACTIVE_HIGH>;
                };
 
                vdd_bl_reg: regulator@105 {
                        regulator-always-on;
                        regulator-boot-on;
                        enable-active-high;
-                       gpio = <&gpio 83 0>; /* GPIO PK3 */
+                       gpio = <&gpio TEGRA_GPIO(K, 3) GPIO_ACTIVE_HIGH>;
                };
        };
 
        sdhci@78000400 {
                status = "okay";
-               power-gpios = <&gpio 28 0>; /* gpio PD4 */
+               power-gpios = <&gpio TEGRA_GPIO(D, 4) GPIO_ACTIVE_HIGH>;
                bus-width = <4>;
                keep-power-in-suspend;
        };
index d0db6c7e774fa5de34fdb7b2a8609724a66db444..bf012bddaafba6691e3aefe99437e5a70b870fe2 100644 (file)
@@ -1,6 +1,6 @@
 /dts-v1/;
 
-/include/ "tegra30-cardhu.dtsi"
+#include "tegra30-cardhu.dtsi"
 
 /* This dts file support the cardhu A04 and later versions of board */
 
@@ -22,7 +22,7 @@
                        regulator-always-on;
                        regulator-boot-on;
                        enable-active-high;
-                       gpio = <&pmic 7 0>;
+                       gpio = <&pmic 7 GPIO_ACTIVE_HIGH>;
                };
 
                sys_3v3_reg: regulator@101 {
@@ -34,7 +34,7 @@
                        regulator-always-on;
                        regulator-boot-on;
                        enable-active-high;
-                       gpio = <&pmic 6 0>;
+                       gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
                };
 
                usb1_vbus_reg: regulator@102 {
@@ -44,7 +44,7 @@
                        regulator-min-microvolt = <5000000>;
                        regulator-max-microvolt = <5000000>;
                        enable-active-high;
-                       gpio = <&gpio 238 0>; /* GPIO PDD6 */
+                       gpio = <&gpio TEGRA_GPIO(DD, 6) GPIO_ACTIVE_HIGH>;
                        gpio-open-drain;
                        vin-supply = <&vdd_5v0_reg>;
                };
@@ -56,7 +56,7 @@
                        regulator-min-microvolt = <5000000>;
                        regulator-max-microvolt = <5000000>;
                        enable-active-high;
-                       gpio = <&gpio 236 0>; /* GPIO PDD4 */
+                       gpio = <&gpio TEGRA_GPIO(DD, 4) GPIO_ACTIVE_HIGH>;
                        gpio-open-drain;
                        vin-supply = <&vdd_5v0_reg>;
                };
@@ -68,7 +68,7 @@
                        regulator-min-microvolt = <5000000>;
                        regulator-max-microvolt = <5000000>;
                        enable-active-high;
-                       gpio = <&pmic 8 0>;
+                       gpio = <&pmic 8 GPIO_ACTIVE_HIGH>;
                };
 
                vdd_bl_reg: regulator@105 {
@@ -80,7 +80,7 @@
                        regulator-always-on;
                        regulator-boot-on;
                        enable-active-high;
-                       gpio = <&gpio 234 0>; /* GPIO PDD2 */
+                       gpio = <&gpio TEGRA_GPIO(DD, 2) GPIO_ACTIVE_HIGH>;
                };
 
                vdd_bl2_reg: regulator@106 {
                        regulator-always-on;
                        regulator-boot-on;
                        enable-active-high;
-                       gpio = <&gpio 232 0>; /* GPIO PDD0 */
+                       gpio = <&gpio TEGRA_GPIO(DD, 0) GPIO_ACTIVE_HIGH>;
                };
        };
 
        sdhci@78000400 {
                status = "okay";
-               power-gpios = <&gpio 27 0>; /* gpio PD3 */
+               power-gpios = <&gpio TEGRA_GPIO(D, 3) GPIO_ACTIVE_HIGH>;
                bus-width = <4>;
                keep-power-in-suspend;
        };
index 01b4c26fad965d1f315da0eeaef94c98bfecd9fd..f65b53d32416749244d1cc977d23c1e5bea64477 100644 (file)
@@ -1,4 +1,4 @@
-/include/ "tegra30.dtsi"
+#include "tegra30.dtsi"
 
 /**
  * This file contains common DT entry for all fab version of Cardhu.
                        compatible = "isil,isl29028";
                        reg = <0x44>;
                        interrupt-parent = <&gpio>;
-                       interrupts = <88 0x04>; /*gpio PL0 */
+                       interrupts = <TEGRA_GPIO(L, 0) IRQ_TYPE_LEVEL_HIGH>;
                };
        };
 
                        compatible = "wlf,wm8903";
                        reg = <0x1a>;
                        interrupt-parent = <&gpio>;
-                       interrupts = <179 0x04>; /* gpio PW3 */
+                       interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_LEVEL_HIGH>;
 
                        gpio-controller;
                        #gpio-cells = <2>;
                        compatible = "ti,tps65911";
                        reg = <0x2d>;
 
-                       interrupts = <0 86 0x4>;
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
                        #interrupt-cells = <2>;
                        interrupt-controller;
 
 
        sdhci@78000000 {
                status = "okay";
-               cd-gpios = <&gpio 69 1>; /* gpio PI5 */
-               wp-gpios = <&gpio 155 0>; /* gpio PT3 */
-               power-gpios = <&gpio 31 0>; /* gpio PD7 */
+               cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
+               wp-gpios = <&gpio TEGRA_GPIO(T, 3) GPIO_ACTIVE_HIGH>;
+               power-gpios = <&gpio TEGRA_GPIO(D, 7) GPIO_ACTIVE_HIGH>;
                bus-width = <4>;
        };
 
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        enable-active-high;
-                       gpio = <&gpio 220 0>; /* gpio PBB4 */
+                       gpio = <&gpio TEGRA_GPIO(BB, 4) GPIO_ACTIVE_HIGH>;
                        vin-supply = <&vio_reg>;
                };
 
                        regulator-boot-on;
                        regulator-always-on;
                        enable-active-high;
-                       gpio = <&pmic 0 0>; /* PMIC TPS65911 GPIO0 */
+                       gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
                };
 
                emmc_3v3_reg: regulator@3 {
                        regulator-always-on;
                        regulator-boot-on;
                        enable-active-high;
-                       gpio = <&gpio 25 0>; /* gpio PD1 */
+                       gpio = <&gpio TEGRA_GPIO(D, 1) GPIO_ACTIVE_HIGH>;
                        vin-supply = <&sys_3v3_reg>;
                };
 
                        regulator-min-microvolt = <3300000>;
                        regulator-max-microvolt = <3300000>;
                        enable-active-high;
-                       gpio = <&gpio 30 0>; /* gpio PD6 */
+                       gpio = <&gpio TEGRA_GPIO(D, 6) GPIO_ACTIVE_HIGH>;
                };
 
                pex_hvdd_3v3_reg: regulator@5 {
                        regulator-min-microvolt = <3300000>;
                        regulator-max-microvolt = <3300000>;
                        enable-active-high;
-                       gpio = <&gpio 95 0>; /* gpio PL7 */
+                       gpio = <&gpio TEGRA_GPIO(L, 7) GPIO_ACTIVE_HIGH>;
                        vin-supply = <&sys_3v3_reg>;
                };
 
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <2800000>;
                        enable-active-high;
-                       gpio = <&gpio 142 0>; /* gpio PR6 */
+                       gpio = <&gpio TEGRA_GPIO(R, 6) GPIO_ACTIVE_HIGH>;
                        vin-supply = <&sys_3v3_reg>;
                };
 
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <2800000>;
                        enable-active-high;
-                       gpio = <&gpio 143 0>; /* gpio PR7 */
+                       gpio = <&gpio TEGRA_GPIO(R, 7) GPIO_ACTIVE_HIGH>;
                        vin-supply = <&sys_3v3_reg>;
                };
 
                        regulator-min-microvolt = <3300000>;
                        regulator-max-microvolt = <3300000>;
                        enable-active-high;
-                       gpio = <&gpio 144 0>; /* gpio PS0 */
+                       gpio = <&gpio TEGRA_GPIO(S, 0) GPIO_ACTIVE_HIGH>;
                        vin-supply = <&sys_3v3_reg>;
                };
 
                        regulator-always-on;
                        regulator-boot-on;
                        enable-active-high;
-                       gpio = <&gpio 24 0>; /* gpio PD0 */
+                       gpio = <&gpio TEGRA_GPIO(D, 0) GPIO_ACTIVE_HIGH>;
                        vin-supply = <&sys_3v3_reg>;
                };
 
                        regulator-min-microvolt = <3300000>;
                        regulator-max-microvolt = <3300000>;
                        enable-active-high;
-                       gpio = <&gpio 94 0>; /* gpio PL6 */
+                       gpio = <&gpio TEGRA_GPIO(L, 6) GPIO_ACTIVE_HIGH>;
                        vin-supply = <&sys_3v3_reg>;
                };
 
                        regulator-always-on;
                        regulator-boot-on;
                        enable-active-high;
-                       gpio = <&gpio 92 0>; /* gpio PL4 */
+                       gpio = <&gpio TEGRA_GPIO(L, 4) GPIO_ACTIVE_HIGH>;
                        vin-supply = <&sys_3v3_reg>;
                };
 
                        regulator-min-microvolt = <5000000>;
                        regulator-max-microvolt = <5000000>;
                        enable-active-high;
-                       gpio = <&gpio 152 0>; /* GPIO PT0 */
+                       gpio = <&gpio TEGRA_GPIO(T, 0) GPIO_ACTIVE_HIGH>;
                        gpio-open-drain;
                        vin-supply = <&vdd_5v0_reg>;
                };
                nvidia,i2s-controller = <&tegra_i2s1>;
                nvidia,audio-codec = <&wm8903>;
 
-               nvidia,spkr-en-gpios = <&wm8903 2 0>;
-               nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */
+               nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
+               nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2)
+                       GPIO_ACTIVE_HIGH>;
 
-               clocks = <&tegra_car 184>, <&tegra_car 185>, <&tegra_car 120>;
+               clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
+                        <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
+                        <&tegra_car TEGRA30_CLK_EXTERN1>;
                clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 };
index 15ded605142aa1cbe0d47c8e040649f22b99b47c..d8783f0fae6354bd13a7939a7821d15bb830d054 100644 (file)
@@ -1,4 +1,8 @@
-/include/ "skeleton.dtsi"
+#include <dt-bindings/clock/tegra30-car.h>
+#include <dt-bindings/gpio/tegra-gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+#include "skeleton.dtsi"
 
 / {
        compatible = "nvidia,tegra30";
@@ -15,9 +19,9 @@
        host1x {
                compatible = "nvidia,tegra30-host1x", "simple-bus";
                reg = <0x50000000 0x00024000>;
-               interrupts = <0 65 0x04   /* mpcore syncpt */
-                             0 67 0x04>; /* mpcore general */
-               clocks = <&tegra_car 28>;
+               interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */
+                            <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /* general */
+               clocks = <&tegra_car TEGRA30_CLK_HOST1X>;
 
                #address-cells = <1>;
                #size-cells = <1>;
                mpe {
                        compatible = "nvidia,tegra30-mpe";
                        reg = <0x54040000 0x00040000>;
-                       interrupts = <0 68 0x04>;
-                       clocks = <&tegra_car 60>;
+                       interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA30_CLK_MPE>;
                };
 
                vi {
                        compatible = "nvidia,tegra30-vi";
                        reg = <0x54080000 0x00040000>;
-                       interrupts = <0 69 0x04>;
-                       clocks = <&tegra_car 164>;
+                       interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA30_CLK_VI>;
                };
 
                epp {
                        compatible = "nvidia,tegra30-epp";
                        reg = <0x540c0000 0x00040000>;
-                       interrupts = <0 70 0x04>;
-                       clocks = <&tegra_car 19>;
+                       interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA30_CLK_EPP>;
                };
 
                isp {
                        compatible = "nvidia,tegra30-isp";
                        reg = <0x54100000 0x00040000>;
-                       interrupts = <0 71 0x04>;
-                       clocks = <&tegra_car 23>;
+                       interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA30_CLK_ISP>;
                };
 
                gr2d {
                        compatible = "nvidia,tegra30-gr2d";
                        reg = <0x54140000 0x00040000>;
-                       interrupts = <0 72 0x04>;
-                       clocks = <&tegra_car 21>;
+                       interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA30_CLK_GR2D>;
                };
 
                gr3d {
@@ -69,8 +73,9 @@
                dc@54200000 {
                        compatible = "nvidia,tegra30-dc";
                        reg = <0x54200000 0x00040000>;
-                       interrupts = <0 73 0x04>;
-                       clocks = <&tegra_car 27>, <&tegra_car 179>;
+                       interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA30_CLK_DISP1>,
+                                <&tegra_car TEGRA30_CLK_PLL_P>;
                        clock-names = "disp1", "parent";
 
                        rgb {
@@ -81,8 +86,9 @@
                dc@54240000 {
                        compatible = "nvidia,tegra30-dc";
                        reg = <0x54240000 0x00040000>;
-                       interrupts = <0 74 0x04>;
-                       clocks = <&tegra_car 26>, <&tegra_car 179>;
+                       interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA30_CLK_DISP2>,
+                                <&tegra_car TEGRA30_CLK_PLL_P>;
                        clock-names = "disp2", "parent";
 
                        rgb {
@@ -93,8 +99,9 @@
                hdmi {
                        compatible = "nvidia,tegra30-hdmi";
                        reg = <0x54280000 0x00040000>;
-                       interrupts = <0 75 0x04>;
-                       clocks = <&tegra_car 51>, <&tegra_car 189>;
+                       interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA30_CLK_HDMI>,
+                                <&tegra_car TEGRA30_CLK_PLL_D2_OUT0>;
                        clock-names = "hdmi", "parent";
                        status = "disabled";
                };
                tvo {
                        compatible = "nvidia,tegra30-tvo";
                        reg = <0x542c0000 0x00040000>;
-                       interrupts = <0 76 0x04>;
-                       clocks = <&tegra_car 169>;
+                       interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA30_CLK_TVO>;
                        status = "disabled";
                };
 
                dsi {
                        compatible = "nvidia,tegra30-dsi";
                        reg = <0x54300000 0x00040000>;
-                       clocks = <&tegra_car 48>;
+                       clocks = <&tegra_car TEGRA30_CLK_DSIA>;
                        status = "disabled";
                };
        };
        timer@50004600 {
                compatible = "arm,cortex-a9-twd-timer";
                reg = <0x50040600 0x20>;
-               interrupts = <1 13 0xf04>;
-               clocks = <&tegra_car 214>;
+               interrupts = <GIC_PPI 13
+                       (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
+               clocks = <&tegra_car TEGRA30_CLK_TWD>;
        };
 
        intc: interrupt-controller {
        timer@60005000 {
                compatible = "nvidia,tegra30-timer", "nvidia,tegra20-timer";
                reg = <0x60005000 0x400>;
-               interrupts = <0 0 0x04
-                             0 1 0x04
-                             0 41 0x04
-                             0 42 0x04
-                             0 121 0x04
-                             0 122 0x04>;
-               clocks = <&tegra_car 5>;
+               interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA30_CLK_TIMER>;
        };
 
        tegra_car: clock {
        apbdma: dma {
                compatible = "nvidia,tegra30-apbdma", "nvidia,tegra20-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>;
+               interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA30_CLK_APBDMA>;
        };
 
        ahb: ahb {
        gpio: gpio {
                compatible = "nvidia,tegra30-gpio";
                reg = <0x6000d000 0x1000>;
-               interrupts = <0 32 0x04
-                             0 33 0x04
-                             0 34 0x04
-                             0 35 0x04
-                             0 55 0x04
-                             0 87 0x04
-                             0 89 0x04
-                             0 125 0x04>;
+               interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
                #gpio-cells = <2>;
                gpio-controller;
                #interrupt-cells = <2>;
                compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
                reg = <0x70006000 0x40>;
                reg-shift = <2>;
-               interrupts = <0 36 0x04>;
+               interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 8>;
-               clocks = <&tegra_car 6>;
+               clocks = <&tegra_car TEGRA30_CLK_UARTA>;
                status = "disabled";
        };
 
                compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
                reg = <0x70006040 0x40>;
                reg-shift = <2>;
-               interrupts = <0 37 0x04>;
+               interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 9>;
-               clocks = <&tegra_car 160>;
+               clocks = <&tegra_car TEGRA30_CLK_UARTB>;
                status = "disabled";
        };
 
                compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
                reg = <0x70006200 0x100>;
                reg-shift = <2>;
-               interrupts = <0 46 0x04>;
+               interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 10>;
-               clocks = <&tegra_car 55>;
+               clocks = <&tegra_car TEGRA30_CLK_UARTC>;
                status = "disabled";
        };
 
                compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
                reg = <0x70006300 0x100>;
                reg-shift = <2>;
-               interrupts = <0 90 0x04>;
+               interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 19>;
-               clocks = <&tegra_car 65>;
+               clocks = <&tegra_car TEGRA30_CLK_UARTD>;
                status = "disabled";
        };
 
                compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
                reg = <0x70006400 0x100>;
                reg-shift = <2>;
-               interrupts = <0 91 0x04>;
+               interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 20>;
-               clocks = <&tegra_car 66>;
+               clocks = <&tegra_car TEGRA30_CLK_UARTE>;
                status = "disabled";
        };
 
                compatible = "nvidia,tegra30-pwm", "nvidia,tegra20-pwm";
                reg = <0x7000a000 0x100>;
                #pwm-cells = <2>;
-               clocks = <&tegra_car 17>;
+               clocks = <&tegra_car TEGRA30_CLK_PWM>;
                status = "disabled";
        };
 
        rtc {
                compatible = "nvidia,tegra30-rtc", "nvidia,tegra20-rtc";
                reg = <0x7000e000 0x100>;
-               interrupts = <0 2 0x04>;
-               clocks = <&tegra_car 4>;
+               interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA30_CLK_RTC>;
        };
 
        i2c@7000c000 {
                compatible =  "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
                reg = <0x7000c000 0x100>;
-               interrupts = <0 38 0x04>;
+               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 12>, <&tegra_car 182>;
+               clocks = <&tegra_car TEGRA30_CLK_I2C1>,
+                        <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
                clock-names = "div-clk", "fast-clk";
                status = "disabled";
        };
        i2c@7000c400 {
                compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
                reg = <0x7000c400 0x100>;
-               interrupts = <0 84 0x04>;
+               interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 54>, <&tegra_car 182>;
+               clocks = <&tegra_car TEGRA30_CLK_I2C2>,
+                        <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
                clock-names = "div-clk", "fast-clk";
                status = "disabled";
        };
        i2c@7000c500 {
                compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
                reg = <0x7000c500 0x100>;
-               interrupts = <0 92 0x04>;
+               interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 67>, <&tegra_car 182>;
+               clocks = <&tegra_car TEGRA30_CLK_I2C3>,
+                        <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
                clock-names = "div-clk", "fast-clk";
                status = "disabled";
        };
        i2c@7000c700 {
                compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
                reg = <0x7000c700 0x100>;
-               interrupts = <0 120 0x04>;
+               interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 103>, <&tegra_car 182>;
+               clocks = <&tegra_car TEGRA30_CLK_I2C4>,
+                        <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
                clock-names = "div-clk", "fast-clk";
                status = "disabled";
        };
        i2c@7000d000 {
                compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
                reg = <0x7000d000 0x100>;
-               interrupts = <0 53 0x04>;
+               interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 47>, <&tegra_car 182>;
+               clocks = <&tegra_car TEGRA30_CLK_I2C5>,
+                        <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
                clock-names = "div-clk", "fast-clk";
                status = "disabled";
        };
        spi@7000d400 {
                compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
                reg = <0x7000d400 0x200>;
-               interrupts = <0 59 0x04>;
+               interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 15>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 41>;
+               clocks = <&tegra_car TEGRA30_CLK_SBC1>;
                status = "disabled";
        };
 
        spi@7000d600 {
                compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
                reg = <0x7000d600 0x200>;
-               interrupts = <0 82 0x04>;
+               interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 16>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 44>;
+               clocks = <&tegra_car TEGRA30_CLK_SBC2>;
                status = "disabled";
        };
 
        spi@7000d800 {
                compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
                reg = <0x7000d800 0x200>;
-               interrupts = <0 83 0x04>;
+               interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 17>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 46>;
+               clocks = <&tegra_car TEGRA30_CLK_SBC3>;
                status = "disabled";
        };
 
        spi@7000da00 {
                compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
                reg = <0x7000da00 0x200>;
-               interrupts = <0 93 0x04>;
+               interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 18>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 68>;
+               clocks = <&tegra_car TEGRA30_CLK_SBC4>;
                status = "disabled";
        };
 
        spi@7000dc00 {
                compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
                reg = <0x7000dc00 0x200>;
-               interrupts = <0 94 0x04>;
+               interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 27>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 104>;
+               clocks = <&tegra_car TEGRA30_CLK_SBC5>;
                status = "disabled";
        };
 
        spi@7000de00 {
                compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
                reg = <0x7000de00 0x200>;
-               interrupts = <0 79 0x04>;
+               interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 28>;
                #address-cells = <1>;
                #size-cells = <0>;
-               clocks = <&tegra_car 105>;
+               clocks = <&tegra_car TEGRA30_CLK_SBC6>;
                status = "disabled";
        };
 
        kbc {
                compatible = "nvidia,tegra30-kbc", "nvidia,tegra20-kbc";
                reg = <0x7000e200 0x100>;
-               interrupts = <0 85 0x04>;
-               clocks = <&tegra_car 36>;
+               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA30_CLK_KBC>;
                status = "disabled";
        };
 
        pmc {
                compatible = "nvidia,tegra30-pmc";
                reg = <0x7000e400 0x400>;
-               clocks = <&tegra_car 218>, <&clk32k_in>;
+               clocks = <&tegra_car TEGRA30_CLK_PCLK>, <&clk32k_in>;
                clock-names = "pclk", "clk32k_in";
        };
 
                       0x7000f03c 0x1b4
                       0x7000f200 0x028
                       0x7000f284 0x17c>;
-               interrupts = <0 77 0x04>;
+               interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
        };
 
        iommu {
                compatible = "nvidia,tegra30-ahub";
                reg = <0x70080000 0x200
                       0x70080200 0x100>;
-               interrupts = <0 103 0x04>;
+               interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
                nvidia,dma-request-selector = <&apbdma 1>;
-               clocks = <&tegra_car 106>, <&tegra_car 107>, <&tegra_car 30>,
-                        <&tegra_car 11>, <&tegra_car 18>, <&tegra_car 101>,
-                        <&tegra_car 102>, <&tegra_car 108>, <&tegra_car 109>,
-                        <&tegra_car 110>, <&tegra_car 162>;
+               clocks = <&tegra_car TEGRA30_CLK_D_AUDIO>,
+                        <&tegra_car TEGRA30_CLK_APBIF>,
+                        <&tegra_car TEGRA30_CLK_I2S0>,
+                        <&tegra_car TEGRA30_CLK_I2S1>,
+                        <&tegra_car TEGRA30_CLK_I2S2>,
+                        <&tegra_car TEGRA30_CLK_I2S3>,
+                        <&tegra_car TEGRA30_CLK_I2S4>,
+                        <&tegra_car TEGRA30_CLK_DAM0>,
+                        <&tegra_car TEGRA30_CLK_DAM1>,
+                        <&tegra_car TEGRA30_CLK_DAM2>,
+                        <&tegra_car TEGRA30_CLK_SPDIF_IN>;
                clock-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2",
                              "i2s3", "i2s4", "dam0", "dam1", "dam2",
                              "spdif_in";
                        compatible = "nvidia,tegra30-i2s";
                        reg = <0x70080300 0x100>;
                        nvidia,ahub-cif-ids = <4 4>;
-                       clocks = <&tegra_car 30>;
+                       clocks = <&tegra_car TEGRA30_CLK_I2S0>;
                        status = "disabled";
                };
 
                        compatible = "nvidia,tegra30-i2s";
                        reg = <0x70080400 0x100>;
                        nvidia,ahub-cif-ids = <5 5>;
-                       clocks = <&tegra_car 11>;
+                       clocks = <&tegra_car TEGRA30_CLK_I2S1>;
                        status = "disabled";
                };
 
                        compatible = "nvidia,tegra30-i2s";
                        reg = <0x70080500 0x100>;
                        nvidia,ahub-cif-ids = <6 6>;
-                       clocks = <&tegra_car 18>;
+                       clocks = <&tegra_car TEGRA30_CLK_I2S2>;
                        status = "disabled";
                };
 
                        compatible = "nvidia,tegra30-i2s";
                        reg = <0x70080600 0x100>;
                        nvidia,ahub-cif-ids = <7 7>;
-                       clocks = <&tegra_car 101>;
+                       clocks = <&tegra_car TEGRA30_CLK_I2S3>;
                        status = "disabled";
                };
 
                        compatible = "nvidia,tegra30-i2s";
                        reg = <0x70080700 0x100>;
                        nvidia,ahub-cif-ids = <8 8>;
-                       clocks = <&tegra_car 102>;
+                       clocks = <&tegra_car TEGRA30_CLK_I2S4>;
                        status = "disabled";
                };
        };
        sdhci@78000000 {
                compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
                reg = <0x78000000 0x200>;
-               interrupts = <0 14 0x04>;
-               clocks = <&tegra_car 14>;
+               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA30_CLK_SDMMC1>;
                status = "disabled";
        };
 
        sdhci@78000200 {
                compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
                reg = <0x78000200 0x200>;
-               interrupts = <0 15 0x04>;
-               clocks = <&tegra_car 9>;
+               interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA30_CLK_SDMMC2>;
                status = "disabled";
        };
 
        sdhci@78000400 {
                compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
                reg = <0x78000400 0x200>;
-               interrupts = <0 19 0x04>;
-               clocks = <&tegra_car 69>;
+               interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA30_CLK_SDMMC3>;
                status = "disabled";
        };
 
        sdhci@78000600 {
                compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
                reg = <0x78000600 0x200>;
-               interrupts = <0 31 0x04>;
-               clocks = <&tegra_car 15>;
+               interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA30_CLK_SDMMC4>;
                status = "disabled";
        };
 
 
        pmu {
                compatible = "arm,cortex-a9-pmu";
-               interrupts = <0 144 0x04
-                             0 145 0x04
-                             0 146 0x04
-                             0 147 0x04>;
+               interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
        };
 };
diff --git a/arch/arm/boot/dts/twl4030_omap3.dtsi b/arch/arm/boot/dts/twl4030_omap3.dtsi
new file mode 100644 (file)
index 0000000..c353ef0
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2013 Linaro, Ltd.
+ *
+ * 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.
+ */
+
+&twl {
+       pinctrl-names = "default";
+       pinctrl-0 = <&twl4030_pins>;
+};
+
+&omap3_pmx_core {
+       /*
+        * On most OMAP3 platforms, the twl4030 IRQ line is connected
+        * to the SYS_NIRQ line on OMAP.  Therefore, configure the
+        * defaults for the SYS_NIRQ pin here.
+        */
+       twl4030_pins: pinmux_twl4030_pins {
+               pinctrl-single,pins = <
+                       0x1b0 (PIN_INPUT_PULLUP | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* sys_nirq.sys_nirq */
+               >;
+       };
+};
index a604107eb474a67b898b17203a99a821e6587a3f..de0c24f5210a3a07d42ee225999541fbb8495353 100644 (file)
        memory {
                reg = <0x20000000 0x4000000>;
        };
+
+       ahb {
+               apb {
+                       shdwc@fffffd10 {
+                               atmel,wakeup-counter = <10>;
+                               atmel,wakeup-rtt-timer;
+                       };
+               };
+       };
 };
index f8ec36cb036b3360346f18fa58a0ea661895d498..290e60383baf4f6a23862996b8c5ecb38d33a2b0 100644 (file)
                                status = "okay";
                        };
 
+                       spi0: spi@fffa4000 {
+                               cs-gpios = <&pioB 15 GPIO_ACTIVE_HIGH>;
+                               status = "okay";
+                               mtd_dataflash@0 {
+                                       compatible = "atmel,at45", "atmel,dataflash";
+                                       reg = <0>;
+                                       spi-max-frequency = <15000000>;
+                               };
+                       };
+
+                       shdwc@fffffd10 {
+                               atmel,wakeup-counter = <10>;
+                               atmel,wakeup-rtt-timer;
+                       };
                };
 
                nand0: nand@40000000 {
index c979c06cf6979756cdcf2790ff5b37ec31a6a66f..ec77cf8f96956c9639885e4d7311148e979beb8d 100644 (file)
@@ -6,25 +6,9 @@
  * Licensed under GPLv2 or later.
  */
 /dts-v1/;
-#include "at91sam9g20.dtsi"
-#include "usb_a9260_common.dtsi"
+#include "usb_a9g20_common.dtsi"
 
 / {
        model = "Calao USB A9G20";
        compatible = "calao,usb-a9g20", "atmel,at91sam9g20", "atmel,at91sam9";
-
-       chosen {
-               bootargs = "mem=64M console=ttyS0,115200 root=/dev/mtdblock5 rw rootfstype=ubifs";
-       };
-
-       memory {
-               reg = <0x20000000 0x4000000>;
-       };
-
-       i2c@0 {
-               rv3029c2@56 {
-                       compatible = "rv3029c2";
-                       reg = <0x56>;
-               };
-       };
 };
diff --git a/arch/arm/boot/dts/usb_a9g20_common.dtsi b/arch/arm/boot/dts/usb_a9g20_common.dtsi
new file mode 100644 (file)
index 0000000..0b3b361
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * usb_a9g20.dts - Device Tree file for Caloa USB A9G20 board
+ *
+ *  Copyright (C) 2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
+ *
+ * Licensed under GPLv2 or later.
+ */
+
+#include "at91sam9g20.dtsi"
+#include "usb_a9260_common.dtsi"
+
+/ {
+       chosen {
+               bootargs = "mem=64M console=ttyS0,115200 root=/dev/mtdblock5 rw rootfstype=ubifs";
+       };
+
+       memory {
+               reg = <0x20000000 0x4000000>;
+       };
+
+       i2c@0 {
+               rv3029c2@56 {
+                       compatible = "rv3029c2";
+                       reg = <0x56>;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/usb_a9g20_lpw.dts b/arch/arm/boot/dts/usb_a9g20_lpw.dts
new file mode 100644 (file)
index 0000000..f8cb1b9
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * usb_a9g20_lpw.dts - Device Tree file for Caloa USB A9G20 Low Power board
+ *
+ *  Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
+ *
+ * Licensed under GPLv2 or later.
+ */
+/dts-v1/;
+#include "usb_a9g20_common.dtsi"
+
+/ {
+       model = "Calao USB A9G20 Low Power";
+       compatible = "calao,usb-a9g20-lpw", "calao,usb-a9g20", "atmel,at91sam9g20", "atmel,at91sam9";
+
+       ahb {
+               apb {
+                       spi1: spi@fffcc000 {
+                               cs-gpios = <&pioB 3 GPIO_ACTIVE_HIGH>;
+                               status = "okay";
+                               mmc-slot@0 {
+                                       compatible = "mmc-spi-slot";
+                                       reg = <0>;
+                                       voltage-ranges = <3200 3400>;
+                                       spi-max-frequency = <25000000>;
+                                       interrupt-parent = <&pioC>;
+                                       interrupts = <4 IRQ_TYPE_EDGE_BOTH>;
+                               };
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/vf610-pinfunc.h b/arch/arm/boot/dts/vf610-pinfunc.h
new file mode 100644 (file)
index 0000000..1ee681f
--- /dev/null
@@ -0,0 +1,810 @@
+/*
+ * Copyright 2013 Freescale Semiconductor, Inc.
+ *
+ * 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.
+ *
+ */
+
+#ifndef __DTS_VF610_PINFUNC_H
+#define __DTS_VF610_PINFUNC_H
+
+/*
+ * The pin function ID for VF610 is a tuple of:
+ * <mux_reg input_reg mux_mode input_val>
+ */
+
+#define ALT0   0x0
+#define ALT1   0x1
+#define ALT2   0x2
+#define ALT3   0x3
+#define ALT4   0x4
+#define ALT5   0x5
+#define ALT6   0x6
+#define ALT7   0x7
+
+
+#define VF610_PAD_PTA6__GPIO_0                 0x000 0x000 ALT0 0x0
+#define VF610_PAD_PTA6__RMII_CLKOUT            0x000 0x000 ALT1 0x0
+#define VF610_PAD_PTA6__RMII_CLKIN             0x000 0x2F0 ALT2 0x0
+#define VF610_PAD_PTA6__DCU1_TCON11            0x000 0x000 ALT4 0x0
+#define VF610_PAD_PTA6__DCU1_R2                        0x000 0x000 ALT7 0x0
+#define VF610_PAD_PTA8__GPIO_1                 0x004 0x000 ALT0 0x0
+#define VF610_PAD_PTA8__TCLK                   0x004 0x000 ALT1 0x0
+#define VF610_PAD_PTA8__DCU0_R0                        0x004 0x000 ALT4 0x0
+#define VF610_PAD_PTA8__MLB_CLK                        0x004 0x354 ALT7 0x0
+#define VF610_PAD_PTA9__GPIO_2                 0x008 0x000 ALT0 0x0
+#define VF610_PAD_PTA9__TDI                    0x008 0x000 ALT1 0x0
+#define VF610_PAD_PTA9__RMII_CLKOUT            0x008 0x000 ALT2 0x0
+#define VF610_PAD_PTA9__RMII_CLKIN             0x008 0x2F0 ALT3 0x1
+#define VF610_PAD_PTA9__DCU0_R1                        0x008 0x000 ALT4 0x0
+#define VF610_PAD_PTA9__WDOG_B                 0x008 0x000 ALT6 0x0
+#define VF610_PAD_PTA10__GPIO_3                        0x00C 0x000 ALT0 0x0
+#define VF610_PAD_PTA10__TDO                   0x00C 0x000 ALT1 0x0
+#define VF610_PAD_PTA10__EXT_AUDIO_MCLK                0x00C 0x2EC ALT2 0x0
+#define VF610_PAD_PTA10__DCU0_G0               0x00C 0x000 ALT4 0x0
+#define VF610_PAD_PTA10__ENET_TS_CLKIN         0x00C 0x2F4 ALT6 0x0
+#define VF610_PAD_PTA10__MLB_SIGNAL            0x00C 0x35C ALT7 0x0
+#define VF610_PAD_PTA11__GPIO_4                        0x010 0x000 ALT0 0x0
+#define VF610_PAD_PTA11__TMS                   0x010 0x000 ALT1 0x0
+#define VF610_PAD_PTA11__DCU0_G1               0x010 0x000 ALT4 0x0
+#define VF610_PAD_PTA11__MLB_DATA              0x010 0x358 ALT7 0x0
+#define VF610_PAD_PTA12__GPIO_5                        0x014 0x000 ALT0 0x0
+#define VF610_PAD_PTA12__TRACECK               0x014 0x000 ALT1 0x0
+#define VF610_PAD_PTA12__EXT_AUDIO_MCLK                0x014 0x2EC ALT2 0x1
+#define VF610_PAD_PTA12__VIU_DATA13            0x014 0x000 ALT6 0x0
+#define VF610_PAD_PTA12__I2C0_SCL              0x014 0x33C ALT7 0x0
+#define VF610_PAD_PTA16__GPIO_6                        0x018 0x000 ALT0 0x0
+#define VF610_PAD_PTA16__TRACED0               0x018 0x000 ALT1 0x0
+#define VF610_PAD_PTA16__USB0_VBUS_EN          0x018 0x000 ALT2 0x0
+#define VF610_PAD_PTA16__ADC1_SE0              0x018 0x000 ALT3 0x0
+#define VF610_PAD_PTA16__LCD29                 0x018 0x000 ALT4 0x0
+#define VF610_PAD_PTA16__SAI2_TX_BCLK          0x018 0x370 ALT5 0x0
+#define VF610_PAD_PTA16__VIU_DATA14            0x018 0x000 ALT6 0x0
+#define VF610_PAD_PTA16__I2C0_SDA              0x018 0x340 ALT7 0x0
+#define VF610_PAD_PTA17__GPIO_7                        0x01C 0x000 ALT0 0x0
+#define VF610_PAD_PTA17__TRACED1               0x01C 0x000 ALT1 0x0
+#define VF610_PAD_PTA17__USB0_VBUS_OC          0x01C 0x000 ALT2 0x0
+#define VF610_PAD_PTA17__ADC1_SE1              0x01C 0x000 ALT3 0x0
+#define VF610_PAD_PTA17__LCD30                 0x01C 0x000 ALT4 0x0
+#define VF610_PAD_PTA17__USB0_SOF_PULSE                0x01C 0x000 ALT5 0x0
+#define VF610_PAD_PTA17__VIU_DATA15            0x01C 0x000 ALT6 0x0
+#define VF610_PAD_PTA17__I2C1_SCL              0x01C 0x344 ALT7 0x0
+#define VF610_PAD_PTA18__GPIO_8                        0x020 0x000 ALT0 0x0
+#define VF610_PAD_PTA18__TRACED2               0x020 0x000 ALT1 0x0
+#define VF610_PAD_PTA18__ADC0_SE0              0x020 0x000 ALT2 0x0
+#define VF610_PAD_PTA18__FTM1_QD_PHA           0x020 0x334 ALT3 0x0
+#define VF610_PAD_PTA18__LCD31                 0x020 0x000 ALT4 0x0
+#define VF610_PAD_PTA18__SAI2_TX_DATA          0x020 0x000 ALT5 0x0
+#define VF610_PAD_PTA18__VIU_DATA16            0x020 0x000 ALT6 0x0
+#define VF610_PAD_PTA18__I2C1_SDA              0x020 0x348 ALT7 0x0
+#define VF610_PAD_PTA19__GPIO_9                        0x024 0x000 ALT0 0x0
+#define VF610_PAD_PTA19__TRACED3               0x024 0x000 ALT1 0x0
+#define VF610_PAD_PTA19__ADC0_SE1              0x024 0x000 ALT2 0x0
+#define VF610_PAD_PTA19__FTM1_QD_PHB           0x024 0x338 ALT3 0x0
+#define VF610_PAD_PTA19__LCD32                 0x024 0x000 ALT4 0x0
+#define VF610_PAD_PTA19__SAI2_TX_SYNC          0x024 0x000 ALT5 0x0
+#define VF610_PAD_PTA19__VIU_DATA17            0x024 0x000 ALT6 0x0
+#define VF610_PAD_PTA19__QSPI1_A_QSCK          0x024 0x374 ALT7 0x0
+#define VF610_PAD_PTA20__GPIO_10               0x028 0x000 ALT0 0x0
+#define VF610_PAD_PTA20__TRACED4               0x028 0x000 ALT1 0x0
+#define VF610_PAD_PTA20__LCD33                 0x028 0x000 ALT4 0x0
+#define VF610_PAD_PTA20__UART3_TX              0x028 0x394 ALT6 0x0
+#define VF610_PAD_PTA20__DCU1_HSYNC            0x028 0x000 ALT7 0x0
+#define VF610_PAD_PTA21__GPIO_11               0x02C 0x000 ALT0 0x0
+#define VF610_PAD_PTA21__TRACED5               0x02C 0x000 ALT1 0x0
+#define VF610_PAD_PTA21__SAI2_RX_BCLK          0x02C 0x364 ALT5 0x0
+#define VF610_PAD_PTA21__UART3_RX              0x02C 0x390 ALT6 0x0
+#define VF610_PAD_PTA21__DCU1_VSYNC            0x02C 0x000 ALT7 0x0
+#define VF610_PAD_PTA22__GPIO_12               0x030 0x000 ALT0 0x0
+#define VF610_PAD_PTA22__TRACED6               0x030 0x000 ALT1 0x0
+#define VF610_PAD_PTA22__SAI2_RX_DATA          0x030 0x368 ALT5 0x0
+#define VF610_PAD_PTA22__I2C2_SCL              0x030 0x34C ALT6 0x0
+#define VF610_PAD_PTA22__DCU1_TAG              0x030 0x000 ALT7 0x0
+#define VF610_PAD_PTA23__GPIO_13               0x034 0x000 ALT0 0x0
+#define VF610_PAD_PTA23__TRACED7               0x034 0x000 ALT1 0x0
+#define VF610_PAD_PTA23__SAI2_RX_SYNC          0x034 0x36C ALT5 0x0
+#define VF610_PAD_PTA23__I2C2_SDA              0x034 0x350 ALT6 0x0
+#define VF610_PAD_PTA23__DCU1_DE               0x034 0x000 ALT7 0x0
+#define VF610_PAD_PTA24__GPIO_14               0x038 0x000 ALT0 0x0
+#define VF610_PAD_PTA24__TRACED8               0x038 0x000 ALT1 0x0
+#define VF610_PAD_PTA24__USB1_VBUS_EN          0x038 0x000 ALT2 0x0
+#define VF610_PAD_PTA24__ESDHC1_CLK            0x038 0x000 ALT5 0x0
+#define VF610_PAD_PTA24__DCU1_TCON4            0x038 0x000 ALT6 0x0
+#define VF610_PAD_PTA24__DDR_TEST_PAD_CTRL     0x038 0x000 ALT7 0x0
+#define VF610_PAD_PTA25__GPIO_15               0x03C 0x000 ALT0 0x0
+#define VF610_PAD_PTA25__TRACED9               0x03C 0x000 ALT1 0x0
+#define VF610_PAD_PTA25__USB1_VBUS_OC          0x03C 0x000 ALT2 0x0
+#define VF610_PAD_PTA25__ESDHC1_CMD            0x03C 0x000 ALT5 0x0
+#define VF610_PAD_PTA25__DCU1_TCON5            0x03C 0x000 ALT6 0x0
+#define VF610_PAD_PTA26__GPIO_16               0x040 0x000 ALT0 0x0
+#define VF610_PAD_PTA26__TRACED10              0x040 0x000 ALT1 0x0
+#define VF610_PAD_PTA26__SAI3_TX_BCLK          0x040 0x000 ALT2 0x0
+#define VF610_PAD_PTA26__ESDHC1_DAT0           0x040 0x000 ALT5 0x0
+#define VF610_PAD_PTA26__DCU1_TCON6            0x040 0x000 ALT6 0x0
+#define VF610_PAD_PTA27__GPIO_17               0x044 0x000 ALT0 0x0
+#define VF610_PAD_PTA27__TRACED11              0x044 0x000 ALT1 0x0
+#define VF610_PAD_PTA27__SAI3_RX_BCLK          0x044 0x000 ALT2 0x0
+#define VF610_PAD_PTA27__ESDHC1_DAT1           0x044 0x000 ALT5 0x0
+#define VF610_PAD_PTA27__DCU1_TCON7            0x044 0x000 ALT6 0x0
+#define VF610_PAD_PTA28__GPIO_18               0x048 0x000 ALT0 0x0
+#define VF610_PAD_PTA28__TRACED12              0x048 0x000 ALT1 0x0
+#define VF610_PAD_PTA28__SAI3_RX_DATA          0x048 0x000 ALT2 0x0
+#define VF610_PAD_PTA28__ENET1_1588_TMR0       0x048 0x000 ALT3 0x0
+#define VF610_PAD_PTA28__UART4_TX              0x048 0x000 ALT4 0x0
+#define VF610_PAD_PTA28__ESDHC1_DATA2          0x048 0x000 ALT5 0x0
+#define VF610_PAD_PTA28__DCU1_TCON8            0x048 0x000 ALT6 0x0
+#define VF610_PAD_PTA29__GPIO_19               0x04C 0x000 ALT0 0x0
+#define VF610_PAD_PTA29__TRACED13              0x04C 0x000 ALT1 0x0
+#define VF610_PAD_PTA29__SAI3_TX_DATA          0x04C 0x000 ALT2 0x0
+#define VF610_PAD_PTA29__ENET1_1588_TMR1       0x04C 0x000 ALT3 0x0
+#define VF610_PAD_PTA29__UART4_RX              0x04C 0x000 ALT4 0x0
+#define VF610_PAD_PTA29__ESDHC1_DAT3           0x04C 0x000 ALT5 0x0
+#define VF610_PAD_PTA29__DCU1_TCON9            0x04C 0x000 ALT6 0x0
+#define VF610_PAD_PTA30__GPIO_20               0x050 0x000 ALT0 0x0
+#define VF610_PAD_PTA30__TRACED14              0x050 0x000 ALT1 0x0
+#define VF610_PAD_PTA30__SAI3_RX_SYNC          0x050 0x000 ALT2 0x0
+#define VF610_PAD_PTA30__ENET1_1588_TMR2       0x050 0x000 ALT3 0x0
+#define VF610_PAD_PTA30__UART4_RTS             0x050 0x000 ALT4 0x0
+#define VF610_PAD_PTA30__I2C3_SCL              0x050 0x000 ALT5 0x0
+#define VF610_PAD_PTA30__UART3_TX              0x050 0x394 ALT7 0x1
+#define VF610_PAD_PTA31__GPIO_21               0x054 0x000 ALT0 0x0
+#define VF610_PAD_PTA31__TRACED15              0x054 0x000 ALT1 0x0
+#define VF610_PAD_PTA31__SAI3_TX_SYNC          0x054 0x000 ALT2 0x0
+#define VF610_PAD_PTA31__ENET1_1588_TMR3       0x054 0x000 ALT3 0x0
+#define VF610_PAD_PTA31__UART4_CTS             0x054 0x000 ALT4 0x0
+#define VF610_PAD_PTA31__I2C3_SDA              0x054 0x000 ALT5 0x0
+#define VF610_PAD_PTA31__UART3_RX              0x054 0x390 ALT7 0x1
+#define VF610_PAD_PTB0__GPIO_22                        0x058 0x000 ALT0 0x0
+#define VF610_PAD_PTB0__FTM0_CH0               0x058 0x000 ALT1 0x0
+#define VF610_PAD_PTB0__ADC0_SE2               0x058 0x000 ALT2 0x0
+#define VF610_PAD_PTB0__TRACE_CTL              0x058 0x000 ALT3 0x0
+#define VF610_PAD_PTB0__LCD34                  0x058 0x000 ALT4 0x0
+#define VF610_PAD_PTB0__SAI2_RX_BCLK           0x058 0x364 ALT5 0x1
+#define VF610_PAD_PTB0__VIU_DATA18             0x058 0x000 ALT6 0x0
+#define VF610_PAD_PTB0__QSPI1_A_QPCS0          0x058 0x000 ALT7 0x0
+#define VF610_PAD_PTB1__GPIO_23                        0x05C 0x000 ALT0 0x0
+#define VF610_PAD_PTB1__FTM0_CH1               0x05C 0x000 ALT1 0x0
+#define VF610_PAD_PTB1__ADC0_SE3               0x05C 0x000 ALT2 0x0
+#define VF610_PAD_PTB1__SRC_RCON30             0x05C 0x000 ALT3 0x0
+#define VF610_PAD_PTB1__LCD35                  0x05C 0x000 ALT4 0x0
+#define VF610_PAD_PTB1__SAI2_RX_DATA           0x05C 0x368 ALT5 0x1
+#define VF610_PAD_PTB1__VIU_DATA19             0x05C 0x000 ALT6 0x0
+#define VF610_PAD_PTB1__QSPI1_A_DATA3          0x05C 0x000 ALT7 0x0
+#define VF610_PAD_PTB2__GPIO_24                        0x060 0x000 ALT0 0x0
+#define VF610_PAD_PTB2__FTM0_CH2               0x060 0x000 ALT1 0x0
+#define VF610_PAD_PTB2__ADC1_SE2               0x060 0x000 ALT2 0x0
+#define VF610_PAD_PTB2__SRC_RCON31             0x060 0x000 ALT3 0x0
+#define VF610_PAD_PTB2__LCD36                  0x060 0x000 ALT4 0x0
+#define VF610_PAD_PTB2__SAI2_RX_SYNC           0x060 0x36C ALT5 0x1
+#define VF610_PAD_PTB2__VIDEO_IN0_DATA20       0x060 0x000 ALT6 0x0
+#define VF610_PAD_PTB2__QSPI1_A_DATA2          0x060 0x000 ALT7 0x0
+#define VF610_PAD_PTB3__GPIO_25                        0x064 0x000 ALT0 0x0
+#define VF610_PAD_PTB3__FTM0_CH3               0x064 0x000 ALT1 0x0
+#define VF610_PAD_PTB3__ADC1_SE3               0x064 0x000 ALT2 0x0
+#define VF610_PAD_PTB3__PDB_EXTRIG             0x064 0x000 ALT3 0x0
+#define VF610_PAD_PTB3__LCD37                  0x064 0x000 ALT4 0x0
+#define VF610_PAD_PTB3__VIU_DATA21             0x064 0x000 ALT6 0x0
+#define VF610_PAD_PTB3__QSPI1_A_DATA1          0x064 0x000 ALT7 0x0
+#define VF610_PAD_PTB4__GPIO_26                        0x068 0x000 ALT0 0x0
+#define VF610_PAD_PTB4__FTM0_CH4               0x068 0x000 ALT1 0x0
+#define VF610_PAD_PTB4__UART1_TX               0x068 0x380 ALT2 0x0
+#define VF610_PAD_PTB4__ADC0_SE4               0x068 0x000 ALT3 0x0
+#define VF610_PAD_PTB4__LCD38                  0x068 0x000 ALT4 0x0
+#define VF610_PAD_PTB4__VIU_FID                        0x068 0x3A8 ALT5 0x0
+#define VF610_PAD_PTB4__VIU_DATA22             0x068 0x000 ALT6 0x0
+#define VF610_PAD_PTB4__QSPI1_A_DATA0          0x068 0x000 ALT7 0x0
+#define VF610_PAD_PTB5__GPIO_27                        0x06C 0x000 ALT0 0x0
+#define VF610_PAD_PTB5__FTM0_CH5               0x06C 0x000 ALT1 0x0
+#define VF610_PAD_PTB5__UART1_RX               0x06C 0x37C ALT2 0x0
+#define VF610_PAD_PTB5__ADC1_SE4               0x06C 0x000 ALT3 0x0
+#define VF610_PAD_PTB5__LCD39                  0x06C 0x000 ALT4 0x0
+#define VF610_PAD_PTB5__VIU_DE                 0x06C 0x3A4 ALT5 0x0
+#define VF610_PAD_PTB5__QSPI1_A_DQS            0x06C 0x000 ALT7 0x0
+#define VF610_PAD_PTB6__GPIO_28                        0x070 0x000 ALT0 0x0
+#define VF610_PAD_PTB6__FTM0_CH6               0x070 0x000 ALT1 0x0
+#define VF610_PAD_PTB6__UART1_RTS              0x070 0x000 ALT2 0x0
+#define VF610_PAD_PTB6__QSPI0_QPCS1_A          0x070 0x000 ALT3 0x0
+#define VF610_PAD_PTB6__LCD_LCD40              0x070 0x000 ALT4 0x0
+#define VF610_PAD_PTB6__FB_CLKOUT              0x070 0x000 ALT5 0x0
+#define VF610_PAD_PTB6__VIU_HSYNC              0x070 0x000 ALT6 0x0
+#define VF610_PAD_PTB6__UART2_TX               0x070 0x38C ALT7 0x0
+#define VF610_PAD_PTB7__GPIO_29                        0x074 0x000 ALT0 0x0
+#define VF610_PAD_PTB7__FTM0_CH7               0x074 0x000 ALT1 0x0
+#define VF610_PAD_PTB7__UART1_CTS              0x074 0x378 ALT2 0x0
+#define VF610_PAD_PTB7__QSPI0_B_QPCS1          0x074 0x000 ALT3 0x0
+#define VF610_PAD_PTB7__LCD41                  0x074 0x000 ALT4 0x0
+#define VF610_PAD_PTB7__VIU_VSYNC              0x074 0x000 ALT6 0x0
+#define VF610_PAD_PTB7__UART2_RX               0x074 0x388 ALT7 0x0
+#define VF610_PAD_PTB8__GPIO_30                        0x078 0x000 ALT0 0x0
+#define VF610_PAD_PTB8__FTM1_CH0               0x078 0x32C ALT1 0x0
+#define VF610_PAD_PTB8__FTM1_QD_PHA            0x078 0x334 ALT3 0x1
+#define VF610_PAD_PTB8__VIU_DE                 0x078 0x3A4 ALT5 0x1
+#define VF610_PAD_PTB8__DCU1_R6                        0x078 0x000 ALT7 0x0
+#define VF610_PAD_PTB9__GPIO_31                        0x07C 0x000 ALT0 0x0
+#define VF610_PAD_PTB9__FTM1_CH1               0x07C 0x330 ALT1 0x0
+#define VF610_PAD_PTB9__FTM1_QD_PHB            0x07C 0x338 ALT3 0x1
+#define VF610_PAD_PTB9__DCU1_R7                        0x07C 0x000 ALT7 0x0
+#define VF610_PAD_PTB10__GPIO_32               0x080 0x000 ALT0 0x0
+#define VF610_PAD_PTB10__UART0_TX              0x080 0x000 ALT1 0x0
+#define VF610_PAD_PTB10__DCU0_TCON4            0x080 0x000 ALT4 0x0
+#define VF610_PAD_PTB10__VIU_DE                        0x080 0x3A4 ALT5 0x2
+#define VF610_PAD_PTB10__CKO1                  0x080 0x000 ALT6 0x0
+#define VF610_PAD_PTB10__ENET_TS_CLKIN         0x080 0x2F4 ALT7 0x1
+#define VF610_PAD_PTB11__GPIO_33               0x084 0x000 ALT0 0x0
+#define VF610_PAD_PTB11__UART0_RX              0x084 0x000 ALT1 0x0
+#define VF610_PAD_PTB11__DCU0_TCON5            0x084 0x000 ALT4 0x0
+#define VF610_PAD_PTB11__SNVS_ALARM_OUT_B      0x084 0x000 ALT5 0x0
+#define VF610_PAD_PTB11__CKO2                  0x084 0x000 ALT6 0x0
+#define VF610_PAD_PTB11_ENET0_1588_TMR0                0x084 0x304 ALT7 0x0
+#define VF610_PAD_PTB12__GPIO_34               0x088 0x000 ALT0 0x0
+#define VF610_PAD_PTB12__UART0_RTS             0x088 0x000 ALT1 0x0
+#define VF610_PAD_PTB12__DSPI0_CS5             0x088 0x000 ALT3 0x0
+#define VF610_PAD_PTB12__DCU0_TCON6            0x088 0x000 ALT4 0x0
+#define VF610_PAD_PTB12__FB_AD1                        0x088 0x000 ALT5 0x0
+#define VF610_PAD_PTB12__NMI                   0x088 0x000 ALT6 0x0
+#define VF610_PAD_PTB12__ENET0_1588_TMR1       0x088 0x308 ALT7 0x0
+#define VF610_PAD_PTB13__GPIO_35               0x08C 0x000 ALT0 0x0
+#define VF610_PAD_PTB13__UART0_CTS             0x08C 0x000 ALT1 0x0
+#define VF610_PAD_PTB13__DSPI0_CS4             0x08C 0x000 ALT3 0x0
+#define VF610_PAD_PTB13__DCU0_TCON7            0x08C 0x000 ALT4 0x0
+#define VF610_PAD_PTB13__FB_AD0                        0x08C 0x000 ALT5 0x0
+#define VF610_PAD_PTB13__TRACE_CTL             0x08C 0x000 ALT6 0x0
+#define VF610_PAD_PTB14__GPIO_36               0x090 0x000 ALT0 0x0
+#define VF610_PAD_PTB14__CAN0_RX               0x090 0x000 ALT1 0x0
+#define VF610_PAD_PTB14__I2C0_SCL              0x090 0x33C ALT2 0x1
+#define VF610_PAD_PTB14__DCU0_TCON8            0x090 0x000 ALT4 0x0
+#define VF610_PAD_PTB14__DCU1_PCLK             0x090 0x000 ALT7 0x0
+#define VF610_PAD_PTB15__GPIO_37               0x094 0x000 ALT0 0x0
+#define VF610_PAD_PTB15__CAN0_TX               0x094 0x000 ALT1 0x0
+#define VF610_PAD_PTB15__I2C0_SDA              0x094 0x340 ALT2 0x1
+#define VF610_PAD_PTB15__DCU0_TCON9            0x094 0x000 ALT4 0x0
+#define VF610_PAD_PTB15__VIU_PIX_CLK           0x094 0x3AC ALT7 0x0
+#define VF610_PAD_PTB16__GPIO_38               0x098 0x000 ALT0 0x0
+#define VF610_PAD_PTB16__CAN1_RX               0x098 0x000 ALT1 0x0
+#define VF610_PAD_PTB16__I2C1_SCL              0x098 0x344 ALT2 0x1
+#define VF610_PAD_PTB16__DCU0_TCON10           0x098 0x000 ALT4 0x0
+#define VF610_PAD_PTB17__GPIO_39               0x09C 0x000 ALT0 0x0
+#define VF610_PAD_PTB17__CAN1_TX               0x09C 0x000 ALT1 0x0
+#define VF610_PAD_PTB17__I2C1_SDA              0x09C 0x348 ALT2 0x1
+#define VF610_PAD_PTB17__DCU0_TCON11           0x09C 0x000 ALT4 0x0
+#define VF610_PAD_PTB18__GPIO_40               0x0A0 0x000 ALT0 0x0
+#define VF610_PAD_PTB18__DSPI0_CS1             0x0A0 0x000 ALT1 0x0
+#define VF610_PAD_PTB18__EXT_AUDIO_MCLK                0x0A0 0x2EC ALT2 0x2
+#define VF610_PAD_PTB18__VIU_DATA9             0x0A0 0x000 ALT6 0x0
+#define VF610_PAD_PTB19__GPIO_41               0x0A4 0x000 ALT0 0x0
+#define VF610_PAD_PTB19__DSPI0_CS0             0x0A4 0x000 ALT1 0x0
+#define VF610_PAD_PTB19__VIU_DATA10            0x0A4 0x000 ALT6 0x0
+#define VF610_PAD_PTB20__GPIO_42               0x0A8 0x000 ALT0 0x0
+#define VF610_PAD_PTB20__DSPI0_SIN             0x0A8 0x000 ALT1 0x0
+#define VF610_PAD_PTB20__LCD42                 0x0A8 0x000 ALT4 0x0
+#define VF610_PAD_PTB20__VIU_DATA11            0x0A8 0x000 ALT6 0x0
+#define VF610_PAD_PTB21__GPIO_43               0x0AC 0x000 ALT0 0x0
+#define VF610_PAD_PTB21__DSPI0_SOUT            0x0AC 0x000 ALT1 0x0
+#define VF610_PAD_PTB21__LCD43                 0x0AC 0x000 ALT4 0x0
+#define VF610_PAD_PTB21__VIU_DATA12            0x0AC 0x000 ALT6 0x0
+#define VF610_PAD_PTB21__DCU1_PCLK             0x0AC 0x000 ALT7 0x0
+#define VF610_PAD_PTB22__GPIO_44               0x0B0 0x000 ALT0 0x0
+#define VF610_PAD_PTB22__DSPI0_SCK             0x0B0 0x000 ALT1 0x0
+#define VF610_PAD_PTB22__VLCD                  0x0B0 0x000 ALT4 0x0
+#define VF610_PAD_PTB22__VIU_FID               0x0B0 0x3A8 ALT5 0x1
+#define VF610_PAD_PTC0__GPIO_45                        0x0B4 0x000 ALT0 0x0
+#define VF610_PAD_PTC0__ENET_RMII0_MDC         0x0B4 0x000 ALT1 0x0
+#define VF610_PAD_PTC0__FTM1_CH0               0x0B4 0x32C ALT2 0x1
+#define VF610_PAD_PTC0__DSPI0_CS3              0x0B4 0x000 ALT3 0x0
+#define VF610_PAD_PTC0__ESAI_SCKT              0x0B4 0x310 ALT4 0x0
+#define VF610_PAD_PTC0__ESDHC0_CLK             0x0B4 0x000 ALT5 0x0
+#define VF610_PAD_PTC0__VIU_DATA0              0x0B4 0x000 ALT6 0x0
+#define VF610_PAD_PTC0__SRC_RCON18             0x0B4 0x398 ALT7 0x0
+#define VF610_PAD_PTC1__GPIO_46                        0x0B8 0x000 ALT0 0x0
+#define VF610_PAD_PTC1__ENET_RMII0_MDIO                0x0B8 0x000 ALT1 0x0
+#define VF610_PAD_PTC1__FTM1_CH1               0x0B8 0x330 ALT2 0x1
+#define VF610_PAD_PTC1__DSPI0_CS2              0x0B8 0x000 ALT3 0x0
+#define VF610_PAD_PTC1__ESAI_FST               0x0B8 0x30C ALT4 0x0
+#define VF610_PAD_PTC1__ESDHC0_CMD             0x0B8 0x000 ALT5 0x0
+#define VF610_PAD_PTC1__VIU_DATA1              0x0B8 0x000 ALT6 0x0
+#define VF610_PAD_PTC1__SRC_RCON19             0x0B8 0x39C ALT7 0x0
+#define VF610_PAD_PTC2__GPIO_47                        0x0BC 0x000 ALT0 0x0
+#define VF610_PAD_PTC2__ENET_RMII0_CRS         0x0BC 0x000 ALT1 0x0
+#define VF610_PAD_PTC2__UART1_TX               0x0BC 0x380 ALT2 0x1
+#define VF610_PAD_PTC2__ESAI_SDO0              0x0BC 0x314 ALT4 0x0
+#define VF610_PAD_PTC2__ESDHC0_DAT0            0x0BC 0x000 ALT5 0x0
+#define VF610_PAD_PTC2__VIU_DATA2              0x0BC 0x000 ALT6 0x0
+#define VF610_PAD_PTC2__SRC_RCON20             0x0BC 0x3A0 ALT7 0x0
+#define VF610_PAD_PTC3__GPIO_48                        0x0C0 0x000 ALT0 0x0
+#define VF610_PAD_PTC3__ENET_RMII0_RXD1                0x0C0 0x000 ALT1 0x0
+#define VF610_PAD_PTC3__UART1_RX               0x0C0 0x37C ALT2 0x1
+#define VF610_PAD_PTC3__ESAI_SDO1              0x0C0 0x318 ALT4 0x0
+#define VF610_PAD_PTC3__ESDHC0_DAT1            0x0C0 0x000 ALT5 0x0
+#define VF610_PAD_PTC3__VIU_DATA3              0x0C0 0x000 ALT6 0x0
+#define VF610_PAD_PTC3__DCU0_R0                        0x0C0 0x000 ALT7 0x0
+#define VF610_PAD_PTC4__GPIO_49                        0x0C4 0x000 ALT0 0x0
+#define VF610_PAD_PTC4__ENET_RMII0_RXD0                0x0C4 0x000 ALT1 0x0
+#define VF610_PAD_PTC4__UART1_RTS              0x0C4 0x000 ALT2 0x0
+#define VF610_PAD_PTC4__DSPI1_CS1              0x0C4 0x000 ALT3 0x0
+#define VF610_PAD_PTC4__ESAI_SDO2              0x0C4 0x31C ALT4 0x0
+#define VF610_PAD_PTC4__ESDHC0_DAT2            0x0C4 0x000 ALT5 0x0
+#define VF610_PAD_PTC4__VIU_DATA4              0x0C4 0x000 ALT6 0x0
+#define VF610_PAD_PTC4__DCU0_R1                        0x0C4 0x000 ALT7 0x0
+#define VF610_PAD_PTC5__GPIO_50                        0x0C8 0x000 ALT0 0x0
+#define VF610_PAD_PTC5__ENET_RMII0_RXER                0x0C8 0x000 ALT1 0x0
+#define VF610_PAD_PTC5__UART1_CTS              0x0C8 0x378 ALT2 0x1
+#define VF610_PAD_PTC5__DSPI1_CS0              0x0C8 0x300 ALT3 0x0
+#define VF610_PAD_PTC5__ESAI_SDO3              0x0C8 0x320 ALT4 0x0
+#define VF610_PAD_PTC5__ESDHC0_DAT3            0x0C8 0x000 ALT5 0x0
+#define VF610_PAD_PTC5__VIU_DATA5              0x0C8 0x000 ALT6 0x0
+#define VF610_PAD_PTC5__DCU0_G0                        0x0C8 0x000 ALT7 0x0
+#define VF610_PAD_PTC6__GPIO_51                        0x0CC 0x000 ALT0 0x0
+#define VF610_PAD_PTC6__ENET_RMII0_TXD1                0x0CC 0x000 ALT1 0x0
+#define VF610_PAD_PTC6__DSPI1_SIN              0x0CC 0x2FC ALT3 0x0
+#define VF610_PAD_PTC6__ESAI_SDI0              0x0CC 0x328 ALT4 0x0
+#define VF610_PAD_PTC6__ESDHC0_WP              0x0CC 0x000 ALT5 0x0
+#define VF610_PAD_PTC6__VIU_DATA6              0x0CC 0x000 ALT6 0x0
+#define VF610_PAD_PTC6__DCU0_G1                        0x0CC 0x000 ALT7 0x0
+#define VF610_PAD_PTC7__GPIO_52                        0x0D0 0x000 ALT0 0x0
+#define VF610_PAD_PTC7__ENET_RMII0_TXD0                0x0D0 0x000 ALT1 0x0
+#define VF610_PAD_PTC7__DSPI1_SOUT             0x0D0 0x000 ALT3 0x0
+#define VF610_PAD_PTC7__ESAI_SDI1              0x0D0 0x324 ALT4 0x0
+#define VF610_PAD_PTC7__VIU_DATA7              0x0D0 0x000 ALT6 0x0
+#define VF610_PAD_PTC7__DCU0_B0                        0x0D0 0x000 ALT7 0x0
+#define VF610_PAD_PTC8__GPIO_53                        0x0D4 0x000 ALT0 0x0
+#define VF610_PAD_PTC8__ENET_RMII0_TXEN                0x0D4 0x000 ALT1 0x0
+#define VF610_PAD_PTC8__DSPI1_SCK              0x0D4 0x2F8 ALT3 0x0
+#define VF610_PAD_PTC8__VIU_DATA8              0x0D4 0x000 ALT6 0x0
+#define VF610_PAD_PTC8__DCU0_B1                        0x0D4 0x000 ALT7 0x0
+#define VF610_PAD_PTC9__GPIO_54                        0x0D8 0x000 ALT0 0x0
+#define VF610_PAD_PTC9__ENET_RMII1_MDC         0x0D8 0x000 ALT1 0x0
+#define VF610_PAD_PTC9__ESAI_SCKT              0x0D8 0x310 ALT3 0x1
+#define VF610_PAD_PTC9__MLB_CLK                        0x0D8 0x354 ALT6 0x1
+#define VF610_PAD_PTC9__DEBUG_OUT0             0x0D8 0x000 ALT7 0x0
+#define VF610_PAD_PTC10__GPIO_55               0x0DC 0x000 ALT0 0x0
+#define VF610_PAD_PTC10__ENET_RMII1_MDIO       0x0DC 0x000 ALT1 0x0
+#define VF610_PAD_PTC10__ESAI_FST              0x0DC 0x30C ALT3 0x1
+#define VF610_PAD_PTC10__MLB_SIGNAL            0x0DC 0x35C ALT6 0x1
+#define VF610_PAD_PTC10__DEBUG_OUT1            0x0DC 0x000 ALT7 0x0
+#define VF610_PAD_PTC11__GPIO_56               0x0E0 0x000 ALT0 0x0
+#define VF610_PAD_PTC11__ENET_RMII1_CRS                0x0E0 0x000 ALT1 0x0
+#define VF610_PAD_PTC11__ESAI_SDO0             0x0E0 0x314 ALT3 0x1
+#define VF610_PAD_PTC11__MLB_DATA              0x0E0 0x358 ALT6 0x1
+#define VF610_PAD_PTC11__DEBUG_OUT             0x0E0 0x000 ALT7 0x0
+#define VF610_PAD_PTC12__GPIO_57               0x0E4 0x000 ALT0 0x0
+#define VF610_PAD_PTC12__ENET_RMII_RXD1                0x0E4 0x000 ALT1 0x0
+#define VF610_PAD_PTC12__ESAI_SDO1             0x0E4 0x318 ALT3 0x1
+#define VF610_PAD_PTC12__SAI2_TX_BCLK          0x0E4 0x370 ALT5 0x1
+#define VF610_PAD_PTC12__DEBUG_OUT3            0x0E4 0x000 ALT7 0x0
+#define VF610_PAD_PTC13__GPIO_58               0x0E8 0x000 ALT0 0x0
+#define VF610_PAD_PTC13__ENET_RMII1_RXD0       0x0E8 0x000 ALT1 0x0
+#define VF610_PAD_PTC13__ESAI_SDO2             0x0E8 0x31C ALT3 0x1
+#define VF610_PAD_PTC13__SAI2_RX_BCLK          0x0E8 0x364 ALT5 0x2
+#define VF610_PAD_PTC13__DEBUG_OUT4            0x0E8 0x000 ALT7 0x0
+#define VF610_PAD_PTC14__GPIO_59               0x0EC 0x000 ALT0 0x0
+#define VF610_PAD_PTC14__ENET_RMII1_RXER       0x0EC 0x000 ALT1 0x0
+#define VF610_PAD_PTC14__ESAI_SDO3             0x0EC 0x320 ALT3 0x1
+#define VF610_PAD_PTC14__UART5_TX              0x0EC 0x000 ALT4 0x0
+#define VF610_PAD_PTC14__SAI2_RX_DATA          0x0EC 0x368 ALT5 0x2
+#define VF610_PAD_PTC14__ADC0_SE6              0x0EC 0x000 ALT6 0x0
+#define VF610_PAD_PTC14__DEBUG_OUT5            0x0EC 0x000 ALT7 0x0
+#define VF610_PAD_PTC15__GPIO_60               0x0F0 0x000 ALT0 0x0
+#define VF610_PAD_PTC15__ENET_RMII1_TXD1       0x0F0 0x000 ALT1 0x0
+#define VF610_PAD_PTC15__ESAI_SDI0             0x0F0 0x328 ALT3 0x1
+#define VF610_PAD_PTC15__UART5_RX              0x0F0 0x000 ALT4 0x0
+#define VF610_PAD_PTC15__SAI2_TX_DATA          0x0F0 0x000 ALT5 0x0
+#define VF610_PAD_PTC15__ADC0_SE7              0x0F0 0x000 ALT6 0x0
+#define VF610_PAD_PTC15__DEBUG_OUT6            0x0F0 0x000 ALT7 0x0
+#define VF610_PAD_PTC16__GPIO_61               0x0F4 0x000 ALT0 0x0
+#define VF610_PAD_PTC16__ENET_RMII1_TXD0       0x0F4 0x000 ALT1 0x0
+#define VF610_PAD_PTC16__ESAI_SDI1             0x0F4 0x324 ALT3 0x1
+#define VF610_PAD_PTC16__UART5_RTS             0x0F4 0x000 ALT4 0x0
+#define VF610_PAD_PTC16__SAI2_RX_SYNC          0x0F4 0x36C ALT5 0x2
+#define VF610_PAD_PTC16__ADC1_SE6              0x0F4 0x000 ALT6 0x0
+#define VF610_PAD_PTC16__DEBUG_OUT7            0x0F4 0x000 ALT7 0x0
+#define VF610_PAD_PTC17__GPIO_62               0x0F8 0x000 ALT0 0x0
+#define VF610_PAD_PTC17__ENET_RMII1_TXEN       0x0F8 0x000 ALT1 0x0
+#define VF610_PAD_PTC17__ADC1_SE7              0x0F8 0x000 ALT3 0x0
+#define VF610_PAD_PTC17__UART5_CTS             0x0F8 0x000 ALT4 0x0
+#define VF610_PAD_PTC17__SAI2_TX_SYNC          0x0F8 0x374 ALT5 0x1
+#define VF610_PAD_PTC17__USB1_SOF_PULSE                0x0F8 0x000 ALT6 0x0
+#define VF610_PAD_PTC17__DEBUG_OUT8            0x0F8 0x000 ALT7 0x0
+#define VF610_PAD_PTD31__GPIO_63               0x0FC 0x000 ALT0 0x0
+#define VF610_PAD_PTD31__FB_AD31               0x0FC 0x000 ALT1 0x0
+#define VF610_PAD_PTD31__NF_IO15               0x0FC 0x000 ALT2 0x0
+#define VF610_PAD_PTD31__FTM3_CH0              0x0FC 0x000 ALT4 0x0
+#define VF610_PAD_PTD31__DSPI2_CS1             0x0FC 0x000 ALT5 0x0
+#define VF610_PAD_PTD31__DEBUG_OUT9            0x0FC 0x000 ALT7 0x0
+#define VF610_PAD_PTD30__GPIO_64               0x100 0x000 ALT0 0x0
+#define VF610_PAD_PTD30__FB_AD30               0x100 0x000 ALT1 0x0
+#define VF610_PAD_PTD30__NF_IO14               0x100 0x000 ALT2 0x0
+#define VF610_PAD_PTD30__FTM3_CH1              0x100 0x000 ALT4 0x0
+#define VF610_PAD_PTD30__DSPI2_CS0             0x100 0x000 ALT5 0x0
+#define VF610_PAD_PTD30__DEBUG_OUT10           0x100 0x000 ALT7 0x0
+#define VF610_PAD_PTD29__GPIO_65               0x104 0x000 ALT0 0x0
+#define VF610_PAD_PTD29__FB_AD29               0x104 0x000 ALT1 0x0
+#define VF610_PAD_PTD29__NF_IO13               0x104 0x000 ALT2 0x0
+#define VF610_PAD_PTD29__FTM3_CH2              0x104 0x000 ALT4 0x0
+#define VF610_PAD_PTD29__DSPI2_SIN             0x104 0x000 ALT5 0x0
+#define VF610_PAD_PTD29__DEBUG_OUT11           0x104 0x000 ALT7 0x0
+#define VF610_PAD_PTD28__GPIO_66               0x108 0x000 ALT0 0x0
+#define VF610_PAD_PTD28__FB_AD28               0x108 0x000 ALT1 0x0
+#define VF610_PAD_PTD28__NF_IO12               0x108 0x000 ALT2 0x0
+#define VF610_PAD_PTD28__I2C2_SCL              0x108 0x34C ALT3 0x1
+#define VF610_PAD_PTD28__FTM3_CH3              0x108 0x000 ALT4 0x0
+#define VF610_PAD_PTD28__DSPI2_SOUT            0x108 0x000 ALT5 0x0
+#define VF610_PAD_PTD28__DEBUG_OUT12           0x108 0x000 ALT7 0x0
+#define VF610_PAD_PTD27__GPIO_67               0x10C 0x000 ALT0 0x0
+#define VF610_PAD_PTD27__FB_AD27               0x10C 0x000 ALT1 0x0
+#define VF610_PAD_PTD27__NF_IO11               0x10C 0x000 ALT2 0x0
+#define VF610_PAD_PTD27__I2C2_SDA              0x10C 0x350 ALT3 0x1
+#define VF610_PAD_PTD27__FTM3_CH4              0x10C 0x000 ALT4 0x0
+#define VF610_PAD_PTD27__DSPI2_SCK             0x10C 0x000 ALT5 0x0
+#define VF610_PAD_PTD27__DEBUG_OUT13           0x10C 0x000 ALT7 0x0
+#define VF610_PAD_PTD26__GPIO_68               0x110 0x000 ALT0 0x0
+#define VF610_PAD_PTD26__FB_AD26               0x110 0x000 ALT1 0x0
+#define VF610_PAD_PTD26__NF_IO10               0x110 0x000 ALT2 0x0
+#define VF610_PAD_PTD26__FTM3_CH5              0x110 0x000 ALT4 0x0
+#define VF610_PAD_PTD26__ESDHC1_WP             0x110 0x000 ALT5 0x0
+#define VF610_PAD_PTD26__DEBUG_OUT14           0x110 0x000 ALT7 0x0
+#define VF610_PAD_PTD25__GPIO_69               0x114 0x000 ALT0 0x0
+#define VF610_PAD_PTD25__FB_AD25               0x114 0x000 ALT1 0x0
+#define VF610_PAD_PTD25__NF_IO9                        0x114 0x000 ALT2 0x0
+#define VF610_PAD_PTD25__FTM3_CH6              0x114 0x000 ALT4 0x0
+#define VF610_PAD_PTD25__DEBUG_OUT15           0x114 0x000 ALT7 0x0
+#define VF610_PAD_PTD24__GPIO_70               0x118 0x000 ALT0 0x0
+#define VF610_PAD_PTD24__FB_AD24               0x118 0x000 ALT1 0x0
+#define VF610_PAD_PTD24__NF_IO8                        0x118 0x000 ALT2 0x0
+#define VF610_PAD_PTD24__FTM3_CH7              0x118 0x000 ALT4 0x0
+#define VF610_PAD_PTD24__DEBUG_OUT16           0x118 0x000 ALT7 0x0
+#define VF610_PAD_PTD23__GPIO_71               0x11C 0x000 ALT0 0x0
+#define VF610_PAD_PTD23__FB_AD23               0x11C 0x000 ALT1 0x0
+#define VF610_PAD_PTD23__NF_IO7                        0x11C 0x000 ALT2 0x0
+#define VF610_PAD_PTD23__FTM2_CH0              0x11C 0x000 ALT3 0x0
+#define VF610_PAD_PTD23__ENET0_1588_TMR0       0x11C 0x304 ALT4 0x1
+#define VF610_PAD_PTD23__ESDHC0_DAT4           0x11C 0x000 ALT5 0x0
+#define VF610_PAD_PTD23__UART2_TX              0x11C 0x38C ALT6 0x1
+#define VF610_PAD_PTD23__DCU1_R3               0x11C 0x000 ALT7 0x0
+#define VF610_PAD_PTD22__GPIO_72               0x120 0x000 ALT0 0x0
+#define VF610_PAD_PTD22__FB_AD22               0x120 0x000 ALT1 0x0
+#define VF610_PAD_PTD22__NF_IO6                        0x120 0x000 ALT2 0x0
+#define VF610_PAD_PTD22__FTM2_CH1              0x120 0x000 ALT3 0x0
+#define VF610_PAD_PTD22__ENET0_1588_TMR1       0x120 0x308 ALT4 0x1
+#define VF610_PAD_PTD22__ESDHC0_DAT5           0x120 0x000 ALT5 0x0
+#define VF610_PAD_PTD22__UART2_RX              0x120 0x388 ALT6 0x1
+#define VF610_PAD_PTD22__DCU1_R4               0x120 0x000 ALT7 0x0
+#define VF610_PAD_PTD21__GPIO_73               0x124 0x000 ALT0 0x0
+#define VF610_PAD_PTD21__FB_AD21               0x124 0x000 ALT1 0x0
+#define VF610_PAD_PTD21__NF_IO5                        0x124 0x000 ALT2 0x0
+#define VF610_PAD_PTD21__ENET0_1588_TMR2       0x124 0x000 ALT4 0x0
+#define VF610_PAD_PTD21__ESDHC0_DAT6           0x124 0x000 ALT5 0x0
+#define VF610_PAD_PTD21__UART2_RTS             0x124 0x000 ALT6 0x0
+#define VF610_PAD_PTD21__DCU1_R5               0x124 0x000 ALT7 0x0
+#define VF610_PAD_PTD20__GPIO_74               0x128 0x000 ALT0 0x0
+#define VF610_PAD_PTD20__FB_AD20               0x128 0x000 ALT1 0x0
+#define VF610_PAD_PTD20__NF_IO4                        0x128 0x000 ALT2 0x0
+#define VF610_PAD_PTD20__ENET0_1588_TMR3       0x128 0x000 ALT4 0x0
+#define VF610_PAD_PTD20__ESDHC0_DAT7           0x128 0x000 ALT5 0x0
+#define VF610_PAD_PTD20__UART2_CTS             0x128 0x384 ALT6 0x0
+#define VF610_PAD_PTD20__DCU1_R0               0x128 0x000 ALT7 0x0
+#define VF610_PAD_PTD19__GPIO_75               0x12C 0x000 ALT0 0x0
+#define VF610_PAD_PTD19__FB_AD19               0x12C 0x000 ALT1 0x0
+#define VF610_PAD_PTD19__NF_IO3                        0x12C 0x000 ALT2 0x0
+#define VF610_PAD_PTD19__ESAI_SCKR             0x12C 0x000 ALT3 0x0
+#define VF610_PAD_PTD19__I2C0_SCL              0x12C 0x33C ALT4 0x2
+#define VF610_PAD_PTD19__FTM2_QD_PHA           0x12C 0x000 ALT5 0x0
+#define VF610_PAD_PTD19__DCU1_R1               0x12C 0x000 ALT7 0x0
+#define VF610_PAD_PTD18__GPIO_76               0x130 0x000 ALT0 0x0
+#define VF610_PAD_PTD18__FB_AD18               0x130 0x000 ALT1 0x0
+#define VF610_PAD_PTD18__NF_IO2                        0x130 0x000 ALT2 0x0
+#define VF610_PAD_PTD18__ESAI_FSR              0x130 0x000 ALT3 0x0
+#define VF610_PAD_PTD18__I2C0_SDA              0x130 0x340 ALT4 0x2
+#define VF610_PAD_PTD18__FTM2_QD_PHB           0x130 0x000 ALT5 0x0
+#define VF610_PAD_PTD18__DCU1_G0               0x130 0x000 ALT7 0x0
+#define VF610_PAD_PTD17__GPIO_77               0x134 0x000 ALT0 0x0
+#define VF610_PAD_PTD17__FB_AD17               0x134 0x000 ALT1 0x0
+#define VF610_PAD_PTD17__NF_IO1                        0x134 0x000 ALT2 0x0
+#define VF610_PAD_PTD17__ESAI_HCKR             0x134 0x000 ALT3 0x0
+#define VF610_PAD_PTD17__I2C1_SCL              0x134 0x344 ALT4 0x2
+#define VF610_PAD_PTD17__DCU1_G1               0x134 0x000 ALT7 0x0
+#define VF610_PAD_PTD16__GPIO_78               0x138 0x000 ALT0 0x0
+#define VF610_PAD_PTD16__FB_AD16               0x138 0x000 ALT1 0x0
+#define VF610_PAD_PTD16__NF_IO0                        0x138 0x000 ALT2 0x0
+#define VF610_PAD_PTD16__ESAI_HCKT             0x138 0x000 ALT3 0x0
+#define VF610_PAD_PTD16__I2C1_SDA              0x138 0x348 ALT4 0x2
+#define VF610_PAD_PTD16__DCU1_G2               0x138 0x000 ALT7 0x0
+#define VF610_PAD_PTD0__GPIO_79                        0x13C 0x000 ALT0 0x0
+#define VF610_PAD_PTD0__QSPI0_A_QSCK           0x13C 0x000 ALT1 0x0
+#define VF610_PAD_PTD0__UART2_TX               0x13C 0x38C ALT2 0x2
+#define VF610_PAD_PTD0__FB_AD15                        0x13C 0x000 ALT4 0x0
+#define VF610_PAD_PTD0__SPDIF_EXTCLK           0x13C 0x000 ALT5 0x0
+#define VF610_PAD_PTD0__DEBUG_OUT17            0x13C 0x000 ALT7 0x0
+#define VF610_PAD_PTD1__GPIO_80                        0x140 0x000 ALT0 0x0
+#define VF610_PAD_PTD1__QSPI0_A_CS0            0x140 0x000 ALT1 0x0
+#define VF610_PAD_PTD1__UART2_RX               0x140 0x388 ALT2 0x2
+#define VF610_PAD_PTD1__FB_AD14                        0x140 0x000 ALT4 0x0
+#define VF610_PAD_PTD1__SPDIF_IN1              0x140 0x000 ALT5 0x0
+#define VF610_PAD_PTD1__DEBUG_OUT18            0x140 0x000 ALT7 0x0
+#define VF610_PAD_PTD2__GPIO_81                        0x144 0x000 ALT0 0x0
+#define VF610_PAD_PTD2__QSPI0_A_DATA3          0x144 0x000 ALT1 0x0
+#define VF610_PAD_PTD2__UART2_RTS              0x144 0x000 ALT2 0x0
+#define VF610_PAD_PTD2__DSPI1_CS3              0x144 0x000 ALT3 0x0
+#define VF610_PAD_PTD2__FB_AD13                        0x144 0x000 ALT4 0x0
+#define VF610_PAD_PTD2__SPDIF_OUT1             0x144 0x000 ALT5 0x0
+#define VF610_PAD_PTD2__DEBUG_OUT19            0x144 0x000 ALT7 0x0
+#define VF610_PAD_PTD3__GPIO_82                        0x148 0x000 ALT0 0x0
+#define VF610_PAD_PTD3__QSPI0_A_DATA2          0x148 0x000 ALT1 0x0
+#define VF610_PAD_PTD3__UART2_CTS              0x148 0x384 ALT2 0x1
+#define VF610_PAD_PTD3__DSPI1_CS2              0x148 0x000 ALT3 0x0
+#define VF610_PAD_PTD3__FB_AD12                        0x148 0x000 ALT4 0x0
+#define VF610_PAD_PTD3__SPDIF_PLOCK            0x148 0x000 ALT5 0x0
+#define VF610_PAD_PTD3__DEBUG_OUT20            0x148 0x000 ALT7 0x0
+#define VF610_PAD_PTD4__GPIO_83                        0x14C 0x000 ALT0 0x0
+#define VF610_PAD_PTD4__QSPI0_A_DATA1          0x14C 0x000 ALT1 0x0
+#define VF610_PAD_PTD4__DSPI1_CS1              0x14C 0x000 ALT3 0x0
+#define VF610_PAD_PTD4__FB_AD11                        0x14C 0x000 ALT4 0x0
+#define VF610_PAD_PTD4__SPDIF_SRCLK            0x14C 0x000 ALT5 0x0
+#define VF610_PAD_PTD4__DEBUG_OUT21            0x14C 0x000 ALT7 0x0
+#define VF610_PAD_PTD5__GPIO_84                        0x150 0x000 ALT0 0x0
+#define VF610_PAD_PTD5__QSPI0_A_DATA0          0x150 0x000 ALT1 0x0
+#define VF610_PAD_PTD5__DSPI1_CS0              0x150 0x300 ALT3 0x1
+#define VF610_PAD_PTD5__FB_AD10                        0x150 0x000 ALT4 0x0
+#define VF610_PAD_PTD5__DEBUG_OUT22            0x150 0x000 ALT7 0x0
+#define VF610_PAD_PTD6__GPIO_85                        0x154 0x000 ALT0 0x0
+#define VF610_PAD_PTD6__QSPI1_A_DQS            0x154 0x000 ALT1 0x0
+#define VF610_PAD_PTD6__DSPI1_SIN              0x154 0x2FC ALT3 0x1
+#define VF610_PAD_PTD6__FB_AD9                 0x154 0x000 ALT4 0x0
+#define VF610_PAD_PTD6__DEBUG_OUT23            0x154 0x000 ALT7 0x0
+#define VF610_PAD_PTD7__GPIO_86                        0x158 0x000 ALT0 0x0
+#define VF610_PAD_PTD7__QSPI0_B_QSCK           0x158 0x000 ALT1 0x0
+#define VF610_PAD_PTD7__DSPI1_SOUT             0x158 0x000 ALT3 0x0
+#define VF610_PAD_PTD7__FB_AD8                 0x158 0x000 ALT4 0x0
+#define VF610_PAD_PTD7__DEBUG_OUT24            0x158 0x000 ALT7 0x0
+#define VF610_PAD_PTD8__GPIO_87                        0x15C 0x000 ALT0 0x0
+#define VF610_PAD_PTD8__QSPI0_B_CS0            0x15C 0x000 ALT1 0x0
+#define VF610_PAD_PTD8__FB_CLKOUT              0x15C 0x000 ALT2 0x0
+#define VF610_PAD_PTD8__DSPI1_SCK              0x15C 0x2F8 ALT3 0x1
+#define VF610_PAD_PTD8__FB_AD7                 0x15C 0x000 ALT4 0x0
+#define VF610_PAD_PTD8__DEBUG_OUT25            0x15C 0x000 ALT7 0x0
+#define VF610_PAD_PTD9__GPIO_88                        0x160 0x000 ALT0 0x0
+#define VF610_PAD_PTD9__QSPI0_B_DATA3          0x160 0x000 ALT1 0x0
+#define VF610_PAD_PTD9__DSPI3_CS1              0x160 0x000 ALT2 0x0
+#define VF610_PAD_PTD9__FB_AD6                 0x160 0x000 ALT4 0x0
+#define VF610_PAD_PTD9__SAI1_TX_SYNC           0x160 0x360 ALT6 0x0
+#define VF610_PAD_PTD9__DCU1_B0                        0x160 0x000 ALT7 0x0
+#define VF610_PAD_PTD10__GPIO_89               0x164 0x000 ALT0 0x0
+#define VF610_PAD_PTD10__QSPI0_B_DATA2         0x164 0x000 ALT1 0x0
+#define VF610_PAD_PTD10__DSPI3_CS0             0x164 0x000 ALT2 0x0
+#define VF610_PAD_PTD10__FB_AD5                        0x164 0x000 ALT4 0x0
+#define VF610_PAD_PTD10__DCU1_B1               0x164 0x000 ALT7 0x0
+#define VF610_PAD_PTD11__GPIO_90               0x168 0x000 ALT0 0x0
+#define VF610_PAD_PTD11__QSPI0_B_DATA1         0x168 0x000 ALT1 0x0
+#define VF610_PAD_PTD11__DSPI3_SIN             0x168 0x000 ALT2 0x0
+#define VF610_PAD_PTD11__FB_AD4                        0x168 0x000 ALT4 0x0
+#define VF610_PAD_PTD11__DEBUG_OUT26           0x168 0x000 ALT7 0x0
+#define VF610_PAD_PTD12__GPIO_91               0x16C 0x000 ALT0 0x0
+#define VF610_PAD_PTD12__QSPI0_B_DATA0         0x16C 0x000 ALT1 0x0
+#define VF610_PAD_PTD12__DSPI3_SOUT            0x16C 0x000 ALT2 0x0
+#define VF610_PAD_PTD12__FB_AD3                        0x16C 0x000 ALT4 0x0
+#define VF610_PAD_PTD12__DEBUG_OUT27           0x16C 0x000 ALT7 0x0
+#define VF610_PAD_PTD13__GPIO_92               0x170 0x000 ALT0 0x0
+#define VF610_PAD_PTD13__QSPI0_B_DQS           0x170 0x000 ALT1 0x0
+#define VF610_PAD_PTD13__DSPI3_SCK             0x170 0x000 ALT2 0x0
+#define VF610_PAD_PTD13__FB_AD2                        0x170 0x000 ALT4 0x0
+#define VF610_PAD_PTD13__DEBUG_OUT28           0x170 0x000 ALT7 0x0
+#define VF610_PAD_PTB23__GPIO_93               0x174 0x000 ALT0 0x0
+#define VF610_PAD_PTB23__SAI0_TX_BCLK          0x174 0x000 ALT1 0x0
+#define VF610_PAD_PTB23__UART1_TX              0x174 0x380 ALT2 0x2
+#define VF610_PAD_PTB23__SRC_RCON18            0x174 0x398 ALT3 0x1
+#define VF610_PAD_PTB23__FB_MUXED_ALE          0x174 0x000 ALT4 0x0
+#define VF610_PAD_PTB23__FB_TS_B               0x174 0x000 ALT5 0x0
+#define VF610_PAD_PTB23__UART3_RTS             0x174 0x000 ALT6 0x0
+#define VF610_PAD_PTB23__DCU1_G3               0x174 0x000 ALT7 0x0
+#define VF610_PAD_PTB24__GPIO_94               0x178 0x000 ALT0 0x0
+#define VF610_PAD_PTB24__SAI0_RX_BCLK          0x178 0x000 ALT1 0x0
+#define VF610_PAD_PTB24__UART1_RX              0x178 0x37C ALT2 0x2
+#define VF610_PAD_PTB24__SRC_RCON19            0x178 0x39C ALT3 0x1
+#define VF610_PAD_PTB24__FB_MUXED_TSIZ0                0x178 0x000 ALT4 0x0
+#define VF610_PAD_PTB24__NF_WE_B               0x178 0x000 ALT5 0x0
+#define VF610_PAD_PTB24__UART3_CTS             0x178 0x000 ALT6 0x0
+#define VF610_PAD_PTB24__DCU1_G4               0x178 0x000 ALT7 0x0
+#define VF610_PAD_PTB25__GPIO_95               0x17C 0x000 ALT0 0x0
+#define VF610_PAD_PTB25__SAI0_RX_DATA          0x17C 0x000 ALT1 0x0
+#define VF610_PAD_PTB25__UART1_RTS             0x17C 0x000 ALT2 0x0
+#define VF610_PAD_PTB25__SRC_RCON20            0x17C 0x3A0 ALT3 0x1
+#define VF610_PAD_PTB25__FB_CS1_B              0x17C 0x000 ALT4 0x0
+#define VF610_PAD_PTB25__NF_CE0_B              0x17C 0x000 ALT5 0x0
+#define VF610_PAD_PTB25__DCU1_G5               0x17C 0x000 ALT7 0x0
+#define VF610_PAD_PTB26__GPIO_96               0x180 0x000 ALT0 0x0
+#define VF610_PAD_PTB26__SAI0_TX_DATA          0x180 0x000 ALT1 0x0
+#define VF610_PAD_PTB26__UART1_CTS             0x180 0x378 ALT2 0x2
+#define VF610_PAD_PTB26__SRC_RCON21            0x180 0x000 ALT3 0x0
+#define VF610_PAD_PTB26__FB_CS0_B              0x180 0x000 ALT4 0x0
+#define VF610_PAD_PTB26__NF_CE1_B              0x180 0x000 ALT5 0x0
+#define VF610_PAD_PTB26__DCU1_G6               0x180 0x000 ALT7 0x0
+#define VF610_PAD_PTB27__GPIO_97               0x184 0x000 ALT0 0x0
+#define VF610_PAD_PTB27__SAI0_RX_SYNC          0x184 0x000 ALT1 0x0
+#define VF610_PAD_PTB27__SRC_RCON22            0x184 0x000 ALT3 0x0
+#define VF610_PAD_PTB27__FB_OE_B               0x184 0x000 ALT4 0x0
+#define VF610_PAD_PTB27__FB_MUXED_TBST_B       0x184 0x000 ALT5 0x0
+#define VF610_PAD_PTB27__NF_RE_B               0x184 0x000 ALT6 0x0
+#define VF610_PAD_PTB27__DCU1_G7               0x184 0x000 ALT7 0x0
+#define VF610_PAD_PTB28__GPIO_98               0x188 0x000 ALT0 0x0
+#define VF610_PAD_PTB28__SAI0_TX_SYNC          0x188 0x000 ALT1 0x0
+#define VF610_PAD_PTB28__SRC_RCON23            0x188 0x000 ALT3 0x0
+#define VF610_PAD_PTB28__FB_RW_B               0x188 0x000 ALT4 0x0
+#define VF610_PAD_PTB28__DCU1_B6               0x188 0x000 ALT7 0x0
+#define VF610_PAD_PTC26__GPIO_99               0x18C 0x000 ALT0 0x0
+#define VF610_PAD_PTC26__SAI1_TX_BCLK          0x18C 0x000 ALT1 0x0
+#define VF610_PAD_PTC26__DSPI0_CS5             0x18C 0x000 ALT2 0x0
+#define VF610_PAD_PTC26__SRC_RCON24            0x18C 0x000 ALT3 0x0
+#define VF610_PAD_PTC26__FB_TA_B               0x18C 0x000 ALT4 0x0
+#define VF610_PAD_PTC26__NF_RB_B               0x18C 0x000 ALT5 0x0
+#define VF610_PAD_PTC26__DCU1_B7               0x18C 0x000 ALT7 0x0
+#define VF610_PAD_PTC27__GPIO_100              0x190 0x000 ALT0 0x0
+#define VF610_PAD_PTC27__SAI1_RX_BCLK          0x190 0x000 ALT1 0x0
+#define VF610_PAD_PTC27__DSPI0_CS4             0x190 0x000 ALT2 0x0
+#define VF610_PAD_PTC27__SRC_RCON25            0x190 0x000 ALT3 0x0
+#define VF610_PAD_PTC27__FB_BE3_B              0x190 0x000 ALT4 0x0
+#define VF610_PAD_PTC27__FB_CS3_B              0x190 0x000 ALT5 0x0
+#define VF610_PAD_PTC27__NF_ALE                        0x190 0x000 ALT6 0x0
+#define VF610_PAD_PTC27__DCU1_B2               0x190 0x000 ALT7 0x0
+#define VF610_PAD_PTC28__GPIO_101              0x194 0x000 ALT0 0x0
+#define VF610_PAD_PTC28__SAI1_RX_DATA          0x194 0x000 ALT1 0x0
+#define VF610_PAD_PTC28__DSPI0_CS3             0x194 0x000 ALT2 0x0
+#define VF610_PAD_PTC28__SRC_RCON26            0x194 0x000 ALT3 0x0
+#define VF610_PAD_PTC28__FB_BE2_B              0x194 0x000 ALT4 0x0
+#define VF610_PAD_PTC28__FB_CS2_B              0x194 0x000 ALT5 0x0
+#define VF610_PAD_PTC28__NF_CLE                        0x194 0x000 ALT6 0x0
+#define VF610_PAD_PTC28__DCU1_B3               0x194 0x000 ALT7 0x0
+#define VF610_PAD_PTC29__GPIO_102              0x198 0x000 ALT0 0x0
+#define VF610_PAD_PTC29__SAI1_TX_DATA          0x198 0x000 ALT1 0x0
+#define VF610_PAD_PTC29__DSPI0_CS2             0x198 0x000 ALT2 0x0
+#define VF610_PAD_PTC29__SRC_RCON27            0x198 0x000 ALT3 0x0
+#define VF610_PAD_PTC29__FB_BE1_B              0x198 0x000 ALT4 0x0
+#define VF610_PAD_PTC29__FB_MUXED_TSIZE1       0x198 0x000 ALT5 0x0
+#define VF610_PAD_PTC29__DCU1_B4               0x198 0x000 ALT7 0x0
+#define VF610_PAD_PTC30__GPIO_103              0x19C 0x000 ALT0 0x0
+#define VF610_PAD_PTC30__SAI1_RX_SYNC          0x19C 0x000 ALT1 0x0
+#define VF610_PAD_PTC30__DSPI1_CS2             0x19C 0x000 ALT2 0x0
+#define VF610_PAD_PTC30__SRC_RCON28            0x19C 0x000 ALT3 0x0
+#define VF610_PAD_PTC30__FB_MUXED_BE0_B                0x19C 0x000 ALT4 0x0
+#define VF610_PAD_PTC30__FB_TSIZ0              0x19C 0x000 ALT5 0x0
+#define VF610_PAD_PTC30__ADC0_SE5              0x19C 0x000 ALT6 0x0
+#define VF610_PAD_PTC30__DCU1_B5               0x19C 0x000 ALT7 0x0
+#define VF610_PAD_PTC31__GPIO_104              0x1A0 0x000 ALT0 0x0
+#define VF610_PAD_PTC31__SAI1_TX_SYNC          0x1A0 0x360 ALT1 0x1
+#define VF610_PAD_PTC31__SRC_RCON29            0x1A0 0x000 ALT3 0x0
+#define VF610_PAD_PTC31__ADC1_SE5              0x1A0 0x000 ALT6 0x0
+#define VF610_PAD_PTC31__DCU1_B6               0x1A0 0x000 ALT7 0x0
+#define VF610_PAD_PTE0__GPIO_105               0x1A4 0x000 ALT0 0x0
+#define VF610_PAD_PTE0__DCU0_HSYNC             0x1A4 0x000 ALT1 0x0
+#define VF610_PAD_PTE0__SRC_BMODE1             0x1A4 0x000 ALT2 0x0
+#define VF610_PAD_PTE0__LCD0                   0x1A4 0x000 ALT4 0x0
+#define VF610_PAD_PTE0__DEBUG_OUT29            0x1A4 0x000 ALT7 0x0
+#define VF610_PAD_PTE1__GPIO_106               0x1A8 0x000 ALT0 0x0
+#define VF610_PAD_PTE1__DCU0_VSYNC             0x1A8 0x000 ALT1 0x0
+#define VF610_PAD_PTE1__SRC_BMODE0             0x1A8 0x000 ALT2 0x0
+#define VF610_PAD_PTE1__LCD1                   0x1A8 0x000 ALT4 0x0
+#define VF610_PAD_PTE1__DEBUG_OUT30            0x1A8 0x000 ALT7 0x0
+#define VF610_PAD_PTE2__GPIO_107               0x1AC 0x000 ALT0 0x0
+#define VF610_PAD_PTE2__DCU0_PCLK              0x1AC 0x000 ALT1 0x0
+#define VF610_PAD_PTE2__LCD2                   0x1AC 0x000 ALT4 0x0
+#define VF610_PAD_PTE2__DEBUG_OUT31            0x1AC 0x000 ALT7 0x0
+#define VF610_PAD_PTE3__GPIO_108               0x1B0 0x000 ALT0 0x0
+#define VF610_PAD_PTE3__DCU0_TAG               0x1B0 0x000 ALT1 0x0
+#define VF610_PAD_PTE3__LCD3                   0x1B0 0x000 ALT4 0x0
+#define VF610_PAD_PTE3__DEBUG_OUT32            0x1B0 0x000 ALT7 0x0
+#define VF610_PAD_PTE4__GPIO_109               0x1B4 0x000 ALT0 0x0
+#define VF610_PAD_PTE4__DCU0_DE                        0x1B4 0x000 ALT1 0x0
+#define VF610_PAD_PTE4__LCD4                   0x1B4 0x000 ALT4 0x0
+#define VF610_PAD_PTE4__DEBUG_OUT33            0x1B4 0x000 ALT7 0x0
+#define VF610_PAD_PTE5__GPIO_110               0x1B8 0x000 ALT0 0x0
+#define VF610_PAD_PTE5__DCU0_R0                        0x1B8 0x000 ALT1 0x0
+#define VF610_PAD_PTE5__LCD5                   0x1B8 0x000 ALT4 0x0
+#define VF610_PAD_PTE5__DEBUG_OUT34            0x1B8 0x000 ALT7 0x0
+#define VF610_PAD_PTE6__GPIO_111               0x1BC 0x000 ALT0 0x0
+#define VF610_PAD_PTE6__DCU0_R1                        0x1BC 0x000 ALT1 0x0
+#define VF610_PAD_PTE6__LCD6                   0x1BC 0x000 ALT4 0x0
+#define VF610_PAD_PTE6__DEBUG_OUT35            0x1BC 0x000 ALT7 0x0
+#define VF610_PAD_PTE7__GPIO_112               0x1C0 0x000 ALT0 0x0
+#define VF610_PAD_PTE7__DCU0_R2                        0x1C0 0x000 ALT1 0x0
+#define VF610_PAD_PTE7__SRC_RCON0              0x1C0 0x000 ALT3 0x0
+#define VF610_PAD_PTE7__LCD7                   0x1C0 0x000 ALT4 0x0
+#define VF610_PAD_PTE7__DEBUG_OUT36            0x1C0 0x000 ALT7 0x0
+#define VF610_PAD_PTE8__GPIO_113               0x1C4 0x000 ALT0 0x0
+#define VF610_PAD_PTE8__DCU0_R3                        0x1C4 0x000 ALT1 0x0
+#define VF610_PAD_PTE8__SRC_RCON1              0x1C4 0x000 ALT3 0x0
+#define VF610_PAD_PTE8__LCD8                   0x1C4 0x000 ALT4 0x0
+#define VF610_PAD_PTE8__DEBUG_OUT37            0x1C4 0x000 ALT7 0x0
+#define VF610_PAD_PTE9__GPIO_114               0x1C8 0x000 ALT0 0x0
+#define VF610_PAD_PTE9__DCU0_R4                        0x1C8 0x000 ALT1 0x0
+#define VF610_PAD_PTE9__SRC_RCON2              0x1C8 0x000 ALT3 0x0
+#define VF610_PAD_PTE9__LCD9                   0x1C8 0x000 ALT4 0x0
+#define VF610_PAD_PTE9__DEBUG_OUT38            0x1C8 0x000 ALT7 0x0
+#define VF610_PAD_PTE10__GPIO_115              0x1CC 0x000 ALT0 0x0
+#define VF610_PAD_PTE10__DCU0_R5               0x1CC 0x000 ALT1 0x0
+#define VF610_PAD_PTE10__SRC_RCON3             0x1CC 0x000 ALT3 0x0
+#define VF610_PAD_PTE10__LCD10                 0x1CC 0x000 ALT4 0x0
+#define VF610_PAD_PTE10__DEBUG_OUT39           0x1CC 0x000 ALT7 0x0
+#define VF610_PAD_PTE11__GPIO_116              0x1D0 0x000 ALT0 0x0
+#define VF610_PAD_PTE11__DCU0_R6               0x1D0 0x000 ALT1 0x0
+#define VF610_PAD_PTE11__SRC_RCON4             0x1D0 0x000 ALT3 0x0
+#define VF610_PAD_PTE11__LCD11                 0x1D0 0x000 ALT4 0x0
+#define VF610_PAD_PTE11__DEBUG_OUT40           0x1D0 0x000 ALT7 0x0
+#define VF610_PAD_PTE12__GPIO_117              0x1D4 0x000 ALT0 0x0
+#define VF610_PAD_PTE12__DCU0_R7               0x1D4 0x000 ALT1 0x0
+#define VF610_PAD_PTE12__DSPI1_CS3             0x1D4 0x000 ALT2 0x0
+#define VF610_PAD_PTE12__SRC_RCON5             0x1D4 0x000 ALT3 0x0
+#define VF610_PAD_PTE12__LCD12                 0x1D4 0x000 ALT4 0x0
+#define VF610_PAD_PTE12__LPT_ALT0              0x1D4 0x000 ALT7 0x0
+#define VF610_PAD_PTE13__GPIO_118              0x1D8 0x000 ALT0 0x0
+#define VF610_PAD_PTE13__DCU0_G0               0x1D8 0x000 ALT1 0x0
+#define VF610_PAD_PTE13__LCD13                 0x1D8 0x000 ALT4 0x0
+#define VF610_PAD_PTE13__DEBUG_OUT41           0x1D8 0x000 ALT7 0x0
+#define VF610_PAD_PTE14__GPIO_119              0x1DC 0x000 ALT0 0x0
+#define VF610_PAD_PTE14__DCU0_G1               0x1DC 0x000 ALT1 0x0
+#define VF610_PAD_PTE14__LCD14                 0x1DC 0x000 ALT4 0x0
+#define VF610_PAD_PTE14__DEBUG_OUT42           0x1DC 0x000 ALT7 0x0
+#define VF610_PAD_PTE15__GPIO_120              0x1E0 0x000 ALT0 0x0
+#define VF610_PAD_PTE15__DCU0_G2               0x1E0 0x000 ALT1 0x0
+#define VF610_PAD_PTE15__SRC_RCON6             0x1E0 0x000 ALT3 0x0
+#define VF610_PAD_PTE15__LCD15                 0x1E0 0x000 ALT4 0x0
+#define VF610_PAD_PTE15__DEBUG_OUT43           0x1E0 0x000 ALT7 0x0
+#define VF610_PAD_PTE16__GPIO_121              0x1E4 0x000 ALT0 0x0
+#define VF610_PAD_PTE16__DCU0_G3               0x1E4 0x000 ALT1 0x0
+#define VF610_PAD_PTE16__SRC_RCON7             0x1E4 0x000 ALT3 0x0
+#define VF610_PAD_PTE16__LCD16                 0x1E4 0x000 ALT4 0x0
+#define VF610_PAD_PTE17__GPIO_122              0x1E8 0x000 ALT0 0x0
+#define VF610_PAD_PTE17__DCU0_G4               0x1E8 0x000 ALT1 0x0
+#define VF610_PAD_PTE17__SRC_RCON8             0x1E8 0x000 ALT3 0x0
+#define VF610_PAD_PTE17__LCD17                 0x1E8 0x000 ALT4 0x0
+#define VF610_PAD_PTE18__GPIO_123              0x1EC 0x000 ALT0 0x0
+#define VF610_PAD_PTE18__DCU0_G5               0x1EC 0x000 ALT1 0x0
+#define VF610_PAD_PTE18__SRC_RCON9             0x1EC 0x000 ALT3 0x0
+#define VF610_PAD_PTE18__LCD18                 0x1EC 0x000 ALT4 0x0
+#define VF610_PAD_PTE19__GPIO_124              0x1F0 0x000 ALT0 0x0
+#define VF610_PAD_PTE19__DCU0_G6               0x1F0 0x000 ALT1 0x0
+#define VF610_PAD_PTE19__SRC_RCON10            0x1F0 0x000 ALT3 0x0
+#define VF610_PAD_PTE19__LCD19                 0x1F0 0x000 ALT4 0x0
+#define VF610_PAD_PTE19__I2C0_SCL              0x1F0 0x33C ALT5 0x3
+#define VF610_PAD_PTE20__GPIO_125              0x1F4 0x000 ALT0 0x0
+#define VF610_PAD_PTE20__DCU0_G7               0x1F4 0x000 ALT1 0x0
+#define VF610_PAD_PTE20__SRC_RCON11            0x1F4 0x000 ALT3 0x0
+#define VF610_PAD_PTE20__LCD20                 0x1F4 0x000 ALT4 0x0
+#define VF610_PAD_PTE20__I2C0_SDA              0x1F4 0x340 ALT5 0x3
+#define VF610_PAD_PTE20__EWM_IN                        0x1F4 0x000 ALT7 0x0
+#define VF610_PAD_PTE21__GPIO_126              0x1F8 0x000 ALT0 0x0
+#define VF610_PAD_PTE21__DCU0_B0               0x1F8 0x000 ALT1 0x0
+#define VF610_PAD_PTE21__LCD21                 0x1F8 0x000 ALT4 0x0
+#define VF610_PAD_PTE22__GPIO_127              0x1FC 0x000 ALT0 0x0
+#define VF610_PAD_PTE22__DCU0_B1               0x1FC 0x000 ALT1 0x0
+#define VF610_PAD_PTE22__LCD22                 0x1FC 0x000 ALT4 0x0
+#define VF610_PAD_PTE23__GPIO_128              0x200 0x000 ALT0 0x0
+#define VF610_PAD_PTE23__DCU0_B2               0x200 0x000 ALT1 0x0
+#define VF610_PAD_PTE23__SRC_RCON12            0x200 0x000 ALT3 0x0
+#define VF610_PAD_PTE23__LCD23                 0x200 0x000 ALT4 0x0
+#define VF610_PAD_PTE24__GPIO_129              0x204 0x000 ALT0 0x0
+#define VF610_PAD_PTE24__DCU0_B3               0x204 0x000 ALT1 0x0
+#define VF610_PAD_PTE24__SRC_RCON13            0x204 0x000 ALT3 0x0
+#define VF610_PAD_PTE24__LCD24                 0x204 0x000 ALT4 0x0
+#define VF610_PAD_PTE25__GPIO_130              0x208 0x000 ALT0 0x0
+#define VF610_PAD_PTE25__DCU0_B4               0x208 0x000 ALT1 0x0
+#define VF610_PAD_PTE25__SRC_RCON14            0x208 0x000 ALT3 0x0
+#define VF610_PAD_PTE25__LCD25                 0x208 0x000 ALT4 0x0
+#define VF610_PAD_PTE26__GPIO_131              0x20C 0x000 ALT0 0x0
+#define VF610_PAD_PTE26__DCU0_B5               0x20C 0x000 ALT1 0x0
+#define VF610_PAD_PTE26__SRC_RCON15            0x20C 0x000 ALT3 0x0
+#define VF610_PAD_PTE26__LCD26                 0x20C 0x000 ALT4 0x0
+#define VF610_PAD_PTE27__GPIO_132              0x210 0x000 ALT0 0x0
+#define VF610_PAD_PTE27__DCU0_B6               0x210 0x000 ALT1 0x0
+#define VF610_PAD_PTE27__SRC_RCON16            0x210 0x000 ALT3 0x0
+#define VF610_PAD_PTE27__LCD27                 0x210 0x000 ALT4 0x0
+#define VF610_PAD_PTE27__I2C1_SCL              0x210 0x344 ALT5 0x3
+#define VF610_PAD_PTE28__GPIO_133              0x214 0x000 ALT0 0x0
+#define VF610_PAD_PTE28__DCU0_B7               0x214 0x000 ALT1 0x0
+#define VF610_PAD_PTE28__SRC_RCON17            0x214 0x000 ALT3 0x0
+#define VF610_PAD_PTE28__LCD28                 0x214 0x000 ALT4 0x0
+#define VF610_PAD_PTE28__I2C1_SDA              0x214 0x348 ALT5 0x3
+#define VF610_PAD_PTE28__EWM_OUT               0x214 0x000 ALT7 0x0
+#define VF610_PAD_PTA7__GPIO_134               0x218 0x000 ALT0 0x0
+#define VF610_PAD_PTA7__VIU_PIX_CLK            0x218 0x3AC ALT1 0x1
+
+#endif
diff --git a/arch/arm/boot/dts/vf610-twr.dts b/arch/arm/boot/dts/vf610-twr.dts
new file mode 100644 (file)
index 0000000..b3905f5
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2013 Freescale Semiconductor, Inc.
+ *
+ * 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.
+ */
+
+/dts-v1/;
+#include "vf610.dtsi"
+
+/ {
+       model = "VF610 Tower Board";
+       compatible = "fsl,vf610-twr", "fsl,vf610";
+
+       chosen {
+               bootargs = "console=ttyLP1,115200";
+       };
+
+       memory {
+               reg = <0x80000000 0x8000000>;
+       };
+
+       clocks {
+               audio_ext {
+                       compatible = "fixed-clock";
+                       clock-frequency = <24576000>;
+               };
+
+               enet_ext {
+                       compatible = "fixed-clock";
+                       clock-frequency = <50000000>;
+               };
+       };
+
+};
+
+&fec0 {
+       phy-mode = "rmii";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec0_1>;
+       status = "okay";
+};
+
+&fec1 {
+       phy-mode = "rmii";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec1_1>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_1>;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/vf610.dtsi b/arch/arm/boot/dts/vf610.dtsi
new file mode 100644 (file)
index 0000000..e1eb7da
--- /dev/null
@@ -0,0 +1,464 @@
+/*
+ * Copyright 2013 Freescale Semiconductor, Inc.
+ *
+ * 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.
+ */
+
+#include "skeleton.dtsi"
+#include "vf610-pinfunc.h"
+#include <dt-bindings/clock/vf610-clock.h>
+
+/ {
+       aliases {
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+               serial3 = &uart3;
+               serial4 = &uart4;
+               serial5 = &uart5;
+               gpio0 = &gpio1;
+               gpio1 = &gpio2;
+               gpio2 = &gpio3;
+               gpio3 = &gpio4;
+               gpio4 = &gpio5;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       compatible = "arm,cortex-a5";
+                       device_type = "cpu";
+                       reg = <0x0>;
+                       next-level-cache = <&L2>;
+               };
+       };
+
+       clocks {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               sxosc {
+                       compatible = "fixed-clock";
+                       clock-frequency = <32768>;
+               };
+
+               fxosc {
+                       compatible = "fixed-clock";
+                       clock-frequency = <24000000>;
+               };
+       };
+
+       soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               interrupt-parent = <&intc>;
+               ranges;
+
+               aips0: aips-bus@40000000 {
+                       compatible = "fsl,aips-bus", "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       interrupt-parent = <&intc>;
+                       reg = <0x40000000 0x70000>;
+                       ranges;
+
+                       intc: interrupt-controller@40002000 {
+                               compatible = "arm,cortex-a9-gic";
+                               #interrupt-cells = <3>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               interrupt-controller;
+                               reg = <0x40003000 0x1000>,
+                                     <0x40002100 0x100>;
+                       };
+
+                       L2: l2-cache@40006000 {
+                               compatible = "arm,pl310-cache";
+                               reg = <0x40006000 0x1000>;
+                               cache-unified;
+                               cache-level = <2>;
+                               arm,data-latency = <1 1 1>;
+                               arm,tag-latency = <2 2 2>;
+                       };
+
+                       uart0: serial@40027000 {
+                               compatible = "fsl,vf610-lpuart";
+                               reg = <0x40027000 0x1000>;
+                               interrupts = <0 61 0x00>;
+                               clocks = <&clks VF610_CLK_UART0>;
+                               clock-names = "ipg";
+                               status = "disabled";
+                       };
+
+                       uart1: serial@40028000 {
+                               compatible = "fsl,vf610-lpuart";
+                               reg = <0x40028000 0x1000>;
+                               interrupts = <0 62 0x04>;
+                               clocks = <&clks VF610_CLK_UART1>;
+                               clock-names = "ipg";
+                               status = "disabled";
+                       };
+
+                       uart2: serial@40029000 {
+                               compatible = "fsl,vf610-lpuart";
+                               reg = <0x40029000 0x1000>;
+                               interrupts = <0 63 0x04>;
+                               clocks = <&clks VF610_CLK_UART2>;
+                               clock-names = "ipg";
+                               status = "disabled";
+                       };
+
+                       uart3: serial@4002a000 {
+                               compatible = "fsl,vf610-lpuart";
+                               reg = <0x4002a000 0x1000>;
+                               interrupts = <0 64 0x04>;
+                               clocks = <&clks VF610_CLK_UART3>;
+                               clock-names = "ipg";
+                               status = "disabled";
+                       };
+
+                       sai2: sai@40031000 {
+                               compatible = "fsl,vf610-sai";
+                               reg = <0x40031000 0x1000>;
+                               interrupts = <0 86 0x04>;
+                               clocks = <&clks VF610_CLK_SAI2>;
+                               clock-names = "sai";
+                               status = "disabled";
+                       };
+
+                       pit: pit@40037000 {
+                               compatible = "fsl,vf610-pit";
+                               reg = <0x40037000 0x1000>;
+                               interrupts = <0 39 0x04>;
+                               clocks = <&clks VF610_CLK_PIT>;
+                               clock-names = "pit";
+                       };
+
+                       wdog@4003e000 {
+                               compatible = "fsl,vf610-wdt", "fsl,imx21-wdt";
+                               reg = <0x4003e000 0x1000>;
+                               clocks = <&clks VF610_CLK_WDT>;
+                               clock-names = "wdog";
+                       };
+
+                       qspi0: quadspi@40044000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,vf610-qspi";
+                               reg = <0x40044000 0x1000>;
+                               interrupts = <0 24 0x04>;
+                               clocks = <&clks VF610_CLK_QSPI0_EN>,
+                                       <&clks VF610_CLK_QSPI0>;
+                               clock-names = "qspi_en", "qspi";
+                               status = "disabled";
+                       };
+
+                       iomuxc: iomuxc@40048000 {
+                               compatible = "fsl,vf610-iomuxc";
+                               reg = <0x40048000 0x1000>;
+                               #gpio-range-cells = <3>;
+
+                               /* functions and groups pins */
+
+                               dcu0 {
+                                       pinctrl_dcu0_1: dcu0grp_1 {
+                                               fsl,pins = <
+                                               VF610_PAD_PTB8__GPIO_30         0x42
+                                               VF610_PAD_PTE0__DCU0_HSYNC      0x42
+                                               VF610_PAD_PTE1__DCU0_VSYNC      0x42
+                                               VF610_PAD_PTE2__DCU0_PCLK       0x42
+                                               VF610_PAD_PTE4__DCU0_DE         0x42
+                                               VF610_PAD_PTE5__DCU0_R0         0x42
+                                               VF610_PAD_PTE6__DCU0_R1         0x42
+                                               VF610_PAD_PTE7__DCU0_R2         0x42
+                                               VF610_PAD_PTE8__DCU0_R3         0x42
+                                               VF610_PAD_PTE9__DCU0_R4         0x42
+                                               VF610_PAD_PTE10__DCU0_R5        0x42
+                                               VF610_PAD_PTE11__DCU0_R6        0x42
+                                               VF610_PAD_PTE12__DCU0_R7        0x42
+                                               VF610_PAD_PTE13__DCU0_G0        0x42
+                                               VF610_PAD_PTE14__DCU0_G1        0x42
+                                               VF610_PAD_PTE15__DCU0_G2        0x42
+                                               VF610_PAD_PTE16__DCU0_G3        0x42
+                                               VF610_PAD_PTE17__DCU0_G4        0x42
+                                               VF610_PAD_PTE18__DCU0_G5        0x42
+                                               VF610_PAD_PTE19__DCU0_G6        0x42
+                                               VF610_PAD_PTE20__DCU0_G7        0x42
+                                               VF610_PAD_PTE21__DCU0_B0        0x42
+                                               VF610_PAD_PTE22__DCU0_B1        0x42
+                                               VF610_PAD_PTE23__DCU0_B2        0x42
+                                               VF610_PAD_PTE24__DCU0_B3        0x42
+                                               VF610_PAD_PTE25__DCU0_B4        0x42
+                                               VF610_PAD_PTE26__DCU0_B5        0x42
+                                               VF610_PAD_PTE27__DCU0_B6        0x42
+                                               VF610_PAD_PTE28__DCU0_B7        0x42
+                                               >;
+                                       };
+                               };
+
+                               dspi0 {
+                                       pinctrl_dspi0_1: dspi0grp_1 {
+                                               fsl,pins = <
+                                               VF610_PAD_PTB19__DSPI0_CS0      0x1182
+                                               VF610_PAD_PTB20__DSPI0_SIN      0x1181
+                                               VF610_PAD_PTB21__DSPI0_SOUT     0x1182
+                                               VF610_PAD_PTB22__DSPI0_SCK      0x1182
+                                               >;
+                                       };
+                               };
+
+                               esdhc1 {
+                                       pinctrl_esdhc1_1: esdhc1grp_1 {
+                                               fsl,pins = <
+                                               VF610_PAD_PTA24__ESDHC1_CLK     0x31ef
+                                               VF610_PAD_PTA25__ESDHC1_CMD     0x31ef
+                                               VF610_PAD_PTA26__ESDHC1_DAT0    0x31ef
+                                               VF610_PAD_PTA27__ESDHC1_DAT1    0x31ef
+                                               VF610_PAD_PTA28__ESDHC1_DATA2   0x31ef
+                                               VF610_PAD_PTA29__ESDHC1_DAT3    0x31ef
+                                               VF610_PAD_PTA7__GPIO_134        0x219d
+                                               >;
+                                       };
+                               };
+
+                               fec0 {
+                                       pinctrl_fec0_1: fec0grp_1 {
+                                               fsl,pins = <
+                                               VF610_PAD_PTA6__RMII_CLKIN      0x30d1
+                                               VF610_PAD_PTC0__ENET_RMII0_MDC  0x30d3
+                                               VF610_PAD_PTC1__ENET_RMII0_MDIO 0x30d1
+                                               VF610_PAD_PTC2__ENET_RMII0_CRS  0x30d1
+                                               VF610_PAD_PTC3__ENET_RMII0_RXD1 0x30d1
+                                               VF610_PAD_PTC4__ENET_RMII0_RXD0 0x30d1
+                                               VF610_PAD_PTC5__ENET_RMII0_RXER 0x30d1
+                                               VF610_PAD_PTC6__ENET_RMII0_TXD1 0x30d2
+                                               VF610_PAD_PTC7__ENET_RMII0_TXD0 0x30d2
+                                               VF610_PAD_PTC8__ENET_RMII0_TXEN 0x30d2
+                                               >;
+                                       };
+                               };
+
+                               fec1 {
+                                       pinctrl_fec1_1: fec1grp_1 {
+                                               fsl,pins = <
+                                               VF610_PAD_PTC9__ENET_RMII1_MDC          0x30d2
+                                               VF610_PAD_PTC10__ENET_RMII1_MDIO        0x30d3
+                                               VF610_PAD_PTC11__ENET_RMII1_CRS         0x30d1
+                                               VF610_PAD_PTC12__ENET_RMII_RXD1         0x30d1
+                                               VF610_PAD_PTC13__ENET_RMII1_RXD0        0x30d1
+                                               VF610_PAD_PTC14__ENET_RMII1_RXER        0x30d1
+                                               VF610_PAD_PTC15__ENET_RMII1_TXD1        0x30d2
+                                               VF610_PAD_PTC16__ENET_RMII1_TXD0        0x30d2
+                                               VF610_PAD_PTC17__ENET_RMII1_TXEN        0x30d2
+                                               >;
+                                       };
+                               };
+
+                               i2c0 {
+                                       pinctrl_i2c0_1: i2c0grp_1 {
+                                               fsl,pins = <
+                                               VF610_PAD_PTB14__I2C0_SCL       0x30d3
+                                               VF610_PAD_PTB15__I2C0_SDA       0x30d3
+                                               >;
+                                       };
+                               };
+
+                               pwm0 {
+                                       pinctrl_pwm0_1: pwm0grp_1 {
+                                               fsl,pins = <
+                                               VF610_PAD_PTB0__FTM0_CH0        0x1582
+                                               VF610_PAD_PTB1__FTM0_CH1        0x1582
+                                               VF610_PAD_PTB2__FTM0_CH2        0x1582
+                                               VF610_PAD_PTB3__FTM0_CH3        0x1582
+                                               VF610_PAD_PTB6__FTM0_CH6        0x1582
+                                               VF610_PAD_PTB7__FTM0_CH7        0x1582
+                                               >;
+                                       };
+                               };
+
+                               qspi0 {
+                                       pinctrl_qspi0_1: qspi0grp_1 {
+                                               fsl,pins = <
+                                               VF610_PAD_PTD0__QSPI0_A_QSCK    0x307b
+                                               VF610_PAD_PTD1__QSPI0_A_CS0     0x307f
+                                               VF610_PAD_PTD2__QSPI0_A_DATA3   0x3073
+                                               VF610_PAD_PTD3__QSPI0_A_DATA2   0x3073
+                                               VF610_PAD_PTD4__QSPI0_A_DATA1   0x3073
+                                               VF610_PAD_PTD5__QSPI0_A_DATA0   0x307b
+                                               VF610_PAD_PTD7__QSPI0_B_QSCK    0x307b
+                                               VF610_PAD_PTD8__QSPI0_B_CS0     0x307f
+                                               VF610_PAD_PTD9__QSPI0_B_DATA3   0x3073
+                                               VF610_PAD_PTD10__QSPI0_B_DATA2  0x3073
+                                               VF610_PAD_PTD11__QSPI0_B_DATA1  0x3073
+                                               VF610_PAD_PTD12__QSPI0_B_DATA0  0x307b
+                                               >;
+                                       };
+                               };
+
+                               sai2 {
+                                       pinctrl_sai2_1: sai2grp_1 {
+                                               fsl,pins = <
+                                               VF610_PAD_PTA16__SAI2_TX_BCLK   0x02ed
+                                               VF610_PAD_PTA18__SAI2_TX_DATA   0x02ee
+                                               VF610_PAD_PTA19__SAI2_TX_SYNC   0x02ed
+                                               VF610_PAD_PTA21__SAI2_RX_BCLK   0x02ed
+                                               VF610_PAD_PTA22__SAI2_RX_DATA   0x02ed
+                                               VF610_PAD_PTA23__SAI2_RX_SYNC   0x02ed
+                                               VF610_PAD_PTB18__EXT_AUDIO_MCLK 0x02ed
+                                               >;
+                                       };
+                               };
+
+                               uart1 {
+                                       pinctrl_uart1_1: uart1grp_1 {
+                                               fsl,pins = <
+                                               VF610_PAD_PTB4__UART1_TX        0x21a2
+                                               VF610_PAD_PTB5__UART1_RX        0x21a1
+                                               >;
+                                       };
+                               };
+
+                               usbvbus {
+                                       pinctrl_usbvbus_1: usbvbusgrp_1 {
+                                               fsl,pins = <
+                                               VF610_PAD_PTA24__USB1_VBUS_EN   0x219c
+                                               VF610_PAD_PTA16__USB0_VBUS_EN   0x219c
+                                               >;
+                                       };
+                               };
+
+                       };
+
+                       gpio1: gpio@40049000 {
+                               compatible = "fsl,vf610-gpio";
+                               reg = <0x40049000 0x1000 0x400ff000 0x40>;
+                               interrupts = <0 107 0x04>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 0 32>;
+                       };
+
+                       gpio2: gpio@4004a000 {
+                               compatible = "fsl,vf610-gpio";
+                               reg = <0x4004a000 0x1000 0x400ff040 0x40>;
+                               interrupts = <0 108 0x04>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 32 32>;
+                       };
+
+                       gpio3: gpio@4004b000 {
+                               compatible = "fsl,vf610-gpio";
+                               reg = <0x4004b000 0x1000 0x400ff080 0x40>;
+                               interrupts = <0 109 0x04>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 64 32>;
+                       };
+
+                       gpio4: gpio@4004c000 {
+                               compatible = "fsl,vf610-gpio";
+                               reg = <0x4004c000 0x1000 0x400ff0c0 0x40>;
+                               interrupts = <0 110 0x04>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 96 32>;
+                       };
+
+                       gpio5: gpio@4004d000 {
+                               compatible = "fsl,vf610-gpio";
+                               reg = <0x4004d000 0x1000 0x400ff100 0x40>;
+                               interrupts = <0 111 0x04>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 128 7>;
+                       };
+
+                       anatop@40050000 {
+                               compatible = "fsl,vf610-anatop";
+                               reg = <0x40050000 0x1000>;
+                       };
+
+                       i2c0: i2c@40066000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,vf610-i2c";
+                               reg = <0x40066000 0x1000>;
+                               interrupts =<0 71 0x04>;
+                               clocks = <&clks VF610_CLK_I2C0>;
+                               clock-names = "ipg";
+                               status = "disabled";
+                       };
+
+                       clks: ccm@4006b000 {
+                               compatible = "fsl,vf610-ccm";
+                               reg = <0x4006b000 0x1000>;
+                               #clock-cells = <1>;
+                       };
+               };
+
+               aips1: aips-bus@40080000 {
+                       compatible = "fsl,aips-bus", "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0x40080000 0x80000>;
+                       ranges;
+
+                       uart4: serial@400a9000 {
+                               compatible = "fsl,vf610-lpuart";
+                               reg = <0x400a9000 0x1000>;
+                               interrupts = <0 65 0x04>;
+                               clocks = <&clks VF610_CLK_UART4>;
+                               clock-names = "ipg";
+                               status = "disabled";
+                       };
+
+                       uart5: serial@400aa000 {
+                               compatible = "fsl,vf610-lpuart";
+                               reg = <0x400aa000 0x1000>;
+                               interrupts = <0 66 0x04>;
+                               clocks = <&clks VF610_CLK_UART5>;
+                               clock-names = "ipg";
+                               status = "disabled";
+                       };
+
+                       fec0: ethernet@400d0000 {
+                               compatible = "fsl,mvf600-fec";
+                               reg = <0x400d0000 0x1000>;
+                               interrupts = <0 78 0x04>;
+                               clocks = <&clks VF610_CLK_ENET>,
+                                       <&clks VF610_CLK_ENET>,
+                                       <&clks VF610_CLK_ENET>;
+                               clock-names = "ipg", "ahb", "ptp";
+                               status = "disabled";
+                       };
+
+                       fec1: ethernet@400d1000 {
+                               compatible = "fsl,mvf600-fec";
+                               reg = <0x400d1000 0x1000>;
+                               interrupts = <0 79 0x04>;
+                               clocks = <&clks VF610_CLK_ENET>,
+                                       <&clks VF610_CLK_ENET>,
+                                       <&clks VF610_CLK_ENET>;
+                               clock-names = "ipg", "ahb", "ptp";
+                               status = "disabled";
+                       };
+               };
+       };
+};
index 877b33afa7ed9182ca2b4f20597f66e26729dd3f..87f33310e2bc1fe91334509fc6f2c89dd85d63cd 100644 (file)
@@ -30,3 +30,7 @@
                };
        };
 };
+
+&uart0 {
+       status = "okay";
+};
index 4a4b96f6827ed59f7f468b09eae2704fba5e92ad..51d0e912c8f585b1acb51edc9f47fc4270a1a988 100644 (file)
 / {
        compatible = "via,vt8500";
 
+       cpus {
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       device_type = "cpu";
+                       compatible = "arm,arm926ej-s";
+               };
+       };
+
+       aliases {
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+               serial3 = &uart3;
+       };
+
        soc {
                #address-cells = <1>;
                #size-cells = <1>;
                        reg = <0xd8050400 0x100>;
                };
 
-               uart@d8200000 {
+               uart0: serial@d8200000 {
                        compatible = "via,vt8500-uart";
                        reg = <0xd8200000 0x1040>;
                        interrupts = <32>;
                        clocks = <&clkuart0>;
+                       status = "disabled";
                };
 
-               uart@d82b0000 {
+               uart1: serial@d82b0000 {
                        compatible = "via,vt8500-uart";
                        reg = <0xd82b0000 0x1040>;
                        interrupts = <33>;
                        clocks = <&clkuart1>;
+                       status = "disabled";
                };
 
-               uart@d8210000 {
+               uart2: serial@d8210000 {
                        compatible = "via,vt8500-uart";
                        reg = <0xd8210000 0x1040>;
                        interrupts = <47>;
                        clocks = <&clkuart2>;
+                       status = "disabled";
                };
 
-               uart@d82c0000 {
+               uart3: serial@d82c0000 {
                        compatible = "via,vt8500-uart";
                        reg = <0xd82c0000 0x1040>;
                        interrupts = <50>;
                        clocks = <&clkuart3>;
+                       status = "disabled";
                };
 
                rtc@d8100000 {
index edd2cec3d37f6b801335af4361560a2cecc1bb6b..e3e6b9eb09d02f9c0cb237dea44ea864b076cd57 100644 (file)
@@ -30,3 +30,7 @@
                };
        };
 };
+
+&uart0 {
+       status = "okay";
+};
index b2bf359e852f9f6505d9f3946ce1d66515b91920..a1a854b8a4547c1d47d8707c262335f7cdf66acd 100644 (file)
        compatible = "wm,wm8505";
 
        cpus {
-               cpu@0 {
-                       compatible = "arm,arm926ejs";
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       device_type = "cpu";
+                       compatible = "arm,arm926ej-s";
                };
        };
 
+       aliases {
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+               serial3 = &uart3;
+               serial4 = &uart4;
+               serial5 = &uart5;
+       };
+
        soc {
                #address-cells = <1>;
                #size-cells = <1>;
                                        clock-frequency = <25000000>;
                                };
 
+                               plla: plla {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-pll-clock";
+                                       clocks = <&ref25>;
+                                       reg = <0x200>;
+                               };
+
                                pllb: pllb {
                                        #clock-cells = <0>;
                                        compatible = "via,vt8500-pll-clock";
                                        reg = <0x204>;
                                };
 
+                               pllc: pllc {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-pll-clock";
+                                       clocks = <&ref25>;
+                                       reg = <0x208>;
+                               };
+
+                               plld: plld {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-pll-clock";
+                                       clocks = <&ref25>;
+                                       reg = <0x20c>;
+                               };
+
+                               clkarm: arm {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&plla>;
+                                       divisor-reg = <0x300>;
+                               };
+
+                               clkahb: ahb {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&pllb>;
+                                       divisor-reg = <0x304>;
+                               };
+
+                               clkapb: apb {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&pllb>;
+                                       divisor-reg = <0x350>;
+                               };
+
+                               clkddr: ddr {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&plld>;
+                                       divisor-reg = <0x310>;
+                               };
+
                                clkuart0: uart0 {
                                        #clock-cells = <0>;
                                        compatible = "via,vt8500-device-clock";
                        reg = <0xd8050400 0x100>;
                };
 
-               uart@d8200000 {
+               uart0: serial@d8200000 {
                        compatible = "via,vt8500-uart";
                        reg = <0xd8200000 0x1040>;
                        interrupts = <32>;
                        clocks = <&clkuart0>;
+                       status = "disabled";
                };
 
-               uart@d82b0000 {
+               uart1: serial@d82b0000 {
                        compatible = "via,vt8500-uart";
                        reg = <0xd82b0000 0x1040>;
                        interrupts = <33>;
                        clocks = <&clkuart1>;
+                       status = "disabled";
                };
 
-               uart@d8210000 {
+               uart2: serial@d8210000 {
                        compatible = "via,vt8500-uart";
                        reg = <0xd8210000 0x1040>;
                        interrupts = <47>;
                        clocks = <&clkuart2>;
+                       status = "disabled";
                };
 
-               uart@d82c0000 {
+               uart3: serial@d82c0000 {
                        compatible = "via,vt8500-uart";
                        reg = <0xd82c0000 0x1040>;
                        interrupts = <50>;
                        clocks = <&clkuart3>;
+                       status = "disabled";
                };
 
-               uart@d8370000 {
+               uart4: serial@d8370000 {
                        compatible = "via,vt8500-uart";
                        reg = <0xd8370000 0x1040>;
                        interrupts = <31>;
                        clocks = <&clkuart4>;
+                       status = "disabled";
                };
 
-               uart@d8380000 {
+               uart5: serial@d8380000 {
                        compatible = "via,vt8500-uart";
                        reg = <0xd8380000 0x1040>;
                        interrupts = <30>;
                        clocks = <&clkuart5>;
+                       status = "disabled";
                };
 
                rtc@d8100000 {
index 61671a0d9edec507422bbf27fbf51bf5c908f2f6..dd0d1b6023886bb7ba23910334fa4260432c36af 100644 (file)
@@ -32,3 +32,6 @@
        };
 };
 
+&uart0 {
+       status = "okay";
+};
index dd8464eeb40d69bddd1924bd445b9d11d0600d37..7525982262ac9896285031462e45b23b4020d9c7 100644 (file)
 / {
        compatible = "wm,wm8650";
 
+       cpus {
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       device_type = "cpu";
+                       compatible = "arm,arm926ej-s";
+               };
+       };
+
+       aliases {
+               serial0 = &uart0;
+               serial1 = &uart1;
+       };
+
        soc {
                #address-cells = <1>;
                #size-cells = <1>;
                                        reg = <0x204>;
                                };
 
+                               pllc: pllc {
+                                       #clock-cells = <0>;
+                                       compatible = "wm,wm8650-pll-clock";
+                                       clocks = <&ref25>;
+                                       reg = <0x208>;
+                               };
+
+                               plld: plld {
+                                       #clock-cells = <0>;
+                                       compatible = "wm,wm8650-pll-clock";
+                                       clocks = <&ref25>;
+                                       reg = <0x20c>;
+                               };
+
+                               plle: plle {
+                                       #clock-cells = <0>;
+                                       compatible = "wm,wm8650-pll-clock";
+                                       clocks = <&ref25>;
+                                       reg = <0x210>;
+                               };
+
+                               clkarm: arm {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&plla>;
+                                       divisor-reg = <0x300>;
+                               };
+
+                               clkahb: ahb {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&pllb>;
+                                       divisor-reg = <0x304>;
+                               };
+
+                               clkapb: apb {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&pllb>;
+                                       divisor-reg = <0x320>;
+                               };
+
+                               clkddr: ddr {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&plld>;
+                                       divisor-reg = <0x310>;
+                               };
+
                                clkuart0: uart0 {
                                        #clock-cells = <0>;
                                        compatible = "via,vt8500-device-clock";
                                        enable-bit = <2>;
                                };
 
-                               arm: arm {
-                                       #clock-cells = <0>;
-                                       compatible = "via,vt8500-device-clock";
-                                       clocks = <&plla>;
-                                       divisor-reg = <0x300>;
-                               };
-
-                               sdhc: sdhc {
+                               clksdhc: sdhc {
                                        #clock-cells = <0>;
                                        compatible = "via,vt8500-device-clock";
                                        clocks = <&pllb>;
                        reg = <0xd8050400 0x100>;
                };
 
-               uart@d8200000 {
+               uart0: serial@d8200000 {
                        compatible = "via,vt8500-uart";
                        reg = <0xd8200000 0x1040>;
                        interrupts = <32>;
                        clocks = <&clkuart0>;
+                       status = "disabled";
                };
 
-               uart@d82b0000 {
+               uart1: serial@d82b0000 {
                        compatible = "via,vt8500-uart";
                        reg = <0xd82b0000 0x1040>;
                        interrupts = <33>;
                        clocks = <&clkuart1>;
+                       status = "disabled";
                };
 
                rtc@d8100000 {
diff --git a/arch/arm/boot/dts/wm8750-apc8750.dts b/arch/arm/boot/dts/wm8750-apc8750.dts
new file mode 100644 (file)
index 0000000..37e4a40
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * wm8750-apc8750.dts
+ *  - Device tree file for VIA APC8750
+ *
+ * Copyright (C) 2012 Tony Prisk <linux@prisktech.co.nz>
+ *
+ * Licensed under GPLv2 or later
+ */
+
+/dts-v1/;
+/include/ "wm8750.dtsi"
+
+/ {
+       model = "VIA APC8750";
+};
+
+&pinctrl {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c>;
+
+       i2c: i2c {
+               wm,pins = <168 169 170 171>;
+               wm,function = <2>;      /* alt */
+               wm,pull = <2>;  /* pull-up */
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/wm8750.dtsi b/arch/arm/boot/dts/wm8750.dtsi
new file mode 100644 (file)
index 0000000..557a9c2
--- /dev/null
@@ -0,0 +1,347 @@
+/*
+ * wm8750.dtsi - Device tree file for Wondermedia WM8750 SoC
+ *
+ * Copyright (C) 2012 Tony Prisk <linux@prisktech.co.nz>
+ *
+ * Licensed under GPLv2 or later
+ */
+
+/include/ "skeleton.dtsi"
+
+/ {
+       compatible = "wm,wm8750";
+
+       cpus {
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       device_type = "cpu";
+                       compatible = "arm,arm1176ej-s";
+               };
+       };
+
+       aliases {
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+               serial3 = &uart3;
+               serial4 = &uart4;
+               serial5 = &uart5;
+               i2c0 = &i2c_0;
+               i2c1 = &i2c_1;
+       };
+
+       soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               ranges;
+               interrupt-parent = <&intc0>;
+
+               intc0: interrupt-controller@d8140000 {
+                       compatible = "via,vt8500-intc";
+                       interrupt-controller;
+                       reg = <0xd8140000 0x10000>;
+                       #interrupt-cells = <1>;
+               };
+
+               /* Secondary IC cascaded to intc0 */
+               intc1: interrupt-controller@d8150000 {
+                       compatible = "via,vt8500-intc";
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+                       reg = <0xD8150000 0x10000>;
+                       interrupts = <56 57 58 59 60 61 62 63>;
+               };
+
+               pinctrl: pinctrl@d8110000 {
+                       compatible = "wm,wm8750-pinctrl";
+                       reg = <0xd8110000 0x10000>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+               };
+
+               pmc@d8130000 {
+                       compatible = "via,vt8500-pmc";
+                       reg = <0xd8130000 0x1000>;
+
+                       clocks {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               ref24: ref24M {
+                                       #clock-cells = <0>;
+                                       compatible = "fixed-clock";
+                                       clock-frequency = <24000000>;
+                               };
+
+                               ref25: ref25M {
+                                       #clock-cells = <0>;
+                                       compatible = "fixed-clock";
+                                       clock-frequency = <25000000>;
+                               };
+
+                               plla: plla {
+                                       #clock-cells = <0>;
+                                       compatible = "wm,wm8750-pll-clock";
+                                       clocks = <&ref25>;
+                                       reg = <0x200>;
+                               };
+
+                               pllb: pllb {
+                                       #clock-cells = <0>;
+                                       compatible = "wm,wm8750-pll-clock";
+                                       clocks = <&ref25>;
+                                       reg = <0x204>;
+                               };
+
+                               pllc: pllc {
+                                       #clock-cells = <0>;
+                                       compatible = "wm,wm8750-pll-clock";
+                                       clocks = <&ref25>;
+                                       reg = <0x208>;
+                               };
+
+                               plld: plld {
+                                       #clock-cells = <0>;
+                                       compatible = "wm,wm8750-pll-clock";
+                                       clocks = <&ref25>;
+                                       reg = <0x20C>;
+                               };
+
+                               plle: plle {
+                                       #clock-cells = <0>;
+                                       compatible = "wm,wm8750-pll-clock";
+                                       clocks = <&ref25>;
+                                       reg = <0x210>;
+                               };
+
+                               clkarm: arm {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&plla>;
+                                       divisor-reg = <0x300>;
+                               };
+
+                               clkahb: ahb {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&pllb>;
+                                       divisor-reg = <0x304>;
+                               };
+
+                               clkapb: apb {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&pllb>;
+                                       divisor-reg = <0x320>;
+                               };
+
+                               clkddr: ddr {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&plld>;
+                                       divisor-reg = <0x310>;
+                               };
+
+                               clkuart0: uart0 {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&ref24>;
+                                       enable-reg = <0x254>;
+                                       enable-bit = <24>;
+                               };
+
+                               clkuart1: uart1 {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&ref24>;
+                                       enable-reg = <0x254>;
+                                       enable-bit = <25>;
+                               };
+
+                                clkuart2: uart2 {
+                                        #clock-cells = <0>;
+                                        compatible = "via,vt8500-device-clock";
+                                        clocks = <&ref24>;
+                                        enable-reg = <0x254>;
+                                        enable-bit = <26>;
+                                };
+
+                                clkuart3: uart3 {
+                                        #clock-cells = <0>;
+                                        compatible = "via,vt8500-device-clock";
+                                        clocks = <&ref24>;
+                                        enable-reg = <0x254>;
+                                        enable-bit = <27>;
+                                };
+
+                                clkuart4: uart4 {
+                                        #clock-cells = <0>;
+                                        compatible = "via,vt8500-device-clock";
+                                        clocks = <&ref24>;
+                                        enable-reg = <0x254>;
+                                        enable-bit = <28>;
+                                };
+
+                                clkuart5: uart5 {
+                                        #clock-cells = <0>;
+                                        compatible = "via,vt8500-device-clock";
+                                        clocks = <&ref24>;
+                                        enable-reg = <0x254>;
+                                        enable-bit = <29>;
+                                };
+
+                               clkpwm: pwm {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&pllb>;
+                                       divisor-reg = <0x350>;
+                                       enable-reg = <0x250>;
+                                       enable-bit = <17>;
+                               };
+
+                               clksdhc: sdhc {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&pllb>;
+                                       divisor-reg = <0x330>;
+                                       divisor-mask = <0x3f>;
+                                       enable-reg = <0x250>;
+                                       enable-bit = <0>;
+                               };
+
+                               clki2c0: i2c0clk {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&pllb>;
+                                       divisor-reg = <0x3A0>;
+                                       enable-reg = <0x250>;
+                                       enable-bit = <8>;
+                               };
+
+                               clki2c1: i2c1clk {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&pllb>;
+                                       divisor-reg = <0x3A4>;
+                                       enable-reg = <0x250>;
+                                       enable-bit = <9>;
+                               };
+                       };
+               };
+
+               pwm: pwm@d8220000 {
+                       #pwm-cells = <3>;
+                       compatible = "via,vt8500-pwm";
+                       reg = <0xd8220000 0x100>;
+                       clocks = <&clkpwm>;
+               };
+
+               timer@d8130100 {
+                       compatible = "via,vt8500-timer";
+                       reg = <0xd8130100 0x28>;
+                       interrupts = <36>;
+               };
+
+               ehci@d8007900 {
+                       compatible = "via,vt8500-ehci";
+                       reg = <0xd8007900 0x200>;
+                       interrupts = <26>;
+               };
+
+               uhci@d8007b00 {
+                       compatible = "platform-uhci";
+                       reg = <0xd8007b00 0x200>;
+                       interrupts = <26>;
+               };
+
+               uhci@d8008d00 {
+                       compatible = "platform-uhci";
+                       reg = <0xd8008d00 0x200>;
+                       interrupts = <26>;
+               };
+
+               uart0: serial@d8200000 {
+                       compatible = "via,vt8500-uart";
+                       reg = <0xd8200000 0x1040>;
+                       interrupts = <32>;
+                       clocks = <&clkuart0>;
+                       status = "disabled";
+               };
+
+               uart1: serial@d82b0000 {
+                       compatible = "via,vt8500-uart";
+                       reg = <0xd82b0000 0x1040>;
+                       interrupts = <33>;
+                       clocks = <&clkuart1>;
+                       status = "disabled";
+               };
+
+                uart2: serial@d8210000 {
+                        compatible = "via,vt8500-uart";
+                        reg = <0xd8210000 0x1040>;
+                        interrupts = <47>;
+                        clocks = <&clkuart2>;
+                       status = "disabled";
+                };
+
+                uart3: serial@d82c0000 {
+                        compatible = "via,vt8500-uart";
+                        reg = <0xd82c0000 0x1040>;
+                        interrupts = <50>;
+                        clocks = <&clkuart3>;
+                       status = "disabled";
+                };
+
+                uart4: serial@d8370000 {
+                        compatible = "via,vt8500-uart";
+                        reg = <0xd8370000 0x1040>;
+                        interrupts = <30>;
+                        clocks = <&clkuart4>;
+                       status = "disabled";
+                };
+
+                uart5: serial@d8380000 {
+                        compatible = "via,vt8500-uart";
+                        reg = <0xd8380000 0x1040>;
+                        interrupts = <43>;
+                        clocks = <&clkuart5>;
+                       status = "disabled";
+                };
+
+               rtc@d8100000 {
+                       compatible = "via,vt8500-rtc";
+                       reg = <0xd8100000 0x10000>;
+                       interrupts = <48>;
+               };
+
+               sdhc@d800a000 {
+                       compatible = "wm,wm8505-sdhc";
+                       reg = <0xd800a000 0x1000>;
+                       interrupts = <20 21>;
+                       clocks = <&clksdhc>;
+                       bus-width = <4>;
+                       sdon-inverted;
+               };
+
+               i2c_0: i2c@d8280000 {
+                       compatible = "wm,wm8505-i2c";
+                       reg = <0xd8280000 0x1000>;
+                       interrupts = <19>;
+                       clocks = <&clki2c0>;
+                       clock-frequency = <400000>;
+               };
+
+               i2c_1: i2c@d8320000 {
+                       compatible = "wm,wm8505-i2c";
+                       reg = <0xd8320000 0x1000>;
+                       interrupts = <18>;
+                       clocks = <&clki2c1>;
+                       clock-frequency = <400000>;
+               };
+       };
+};
index 32d22532cd6c1f2c4490c05d159358ce131651cc..90e913fb64be39c62c34b1e18f975333510a3758 100644 (file)
@@ -41,3 +41,7 @@
                };
        };
 };
+
+&uart0 {
+       status = "okay";
+};
index fc790d0aee66e6399865802adc49bfe58fd9af71..d98386dd2882500bd71ecf726d8ac9bb26b777a7 100644 (file)
 / {
        compatible = "wm,wm8850";
 
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0x0>;
+               };
+       };
+
        aliases {
                serial0 = &uart0;
                serial1 = &uart1;
 
                                plla: plla {
                                        #clock-cells = <0>;
-                                       compatible = "wm,wm8750-pll-clock";
-                                       clocks = <&ref25>;
+                                       compatible = "wm,wm8850-pll-clock";
+                                       clocks = <&ref24>;
                                        reg = <0x200>;
                                };
 
                                pllb: pllb {
                                        #clock-cells = <0>;
-                                       compatible = "wm,wm8750-pll-clock";
-                                       clocks = <&ref25>;
+                                       compatible = "wm,wm8850-pll-clock";
+                                       clocks = <&ref24>;
                                        reg = <0x204>;
                                };
 
+                               pllc: pllc {
+                                       #clock-cells = <0>;
+                                       compatible = "wm,wm8850-pll-clock";
+                                       clocks = <&ref24>;
+                                       reg = <0x208>;
+                               };
+
+                               plld: plld {
+                                       #clock-cells = <0>;
+                                       compatible = "wm,wm8850-pll-clock";
+                                       clocks = <&ref24>;
+                                       reg = <0x20c>;
+                               };
+
+                               plle: plle {
+                                       #clock-cells = <0>;
+                                       compatible = "wm,wm8850-pll-clock";
+                                       clocks = <&ref24>;
+                                       reg = <0x210>;
+                               };
+
+                               pllf: pllf {
+                                       #clock-cells = <0>;
+                                       compatible = "wm,wm8850-pll-clock";
+                                       clocks = <&ref24>;
+                                       reg = <0x214>;
+                               };
+
+                               pllg: pllg {
+                                       #clock-cells = <0>;
+                                       compatible = "wm,wm8850-pll-clock";
+                                       clocks = <&ref24>;
+                                       reg = <0x218>;
+                               };
+
+                               clkarm: arm {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&plla>;
+                                       divisor-reg = <0x300>;
+                               };
+
+                               clkahb: ahb {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&pllb>;
+                                       divisor-reg = <0x304>;
+                               };
+
+                               clkapb: apb {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&pllb>;
+                                       divisor-reg = <0x320>;
+                               };
+
+                               clkddr: ddr {
+                                       #clock-cells = <0>;
+                                       compatible = "via,vt8500-device-clock";
+                                       clocks = <&plld>;
+                                       divisor-reg = <0x310>;
+                               };
+
                                clkuart0: uart0 {
                                        #clock-cells = <0>;
                                        compatible = "via,vt8500-device-clock";
                        interrupts = <26>;
                };
 
-               uart0: uart@d8200000 {
+               uart0: serial@d8200000 {
                        compatible = "via,vt8500-uart";
                        reg = <0xd8200000 0x1040>;
                        interrupts = <32>;
                        clocks = <&clkuart0>;
+                       status = "disabled";
                };
 
-               uart1: uart@d82b0000 {
+               uart1: serial@d82b0000 {
                        compatible = "via,vt8500-uart";
                        reg = <0xd82b0000 0x1040>;
                        interrupts = <33>;
                        clocks = <&clkuart1>;
+                       status = "disabled";
                };
 
-                uart2: uart@d8210000 {
+                uart2: serial@d8210000 {
                         compatible = "via,vt8500-uart";
                         reg = <0xd8210000 0x1040>;
                         interrupts = <47>;
                         clocks = <&clkuart2>;
+                       status = "disabled";
                 };
 
-                uart3: uart@d82c0000 {
+                uart3: serial@d82c0000 {
                         compatible = "via,vt8500-uart";
                         reg = <0xd82c0000 0x1040>;
                         interrupts = <50>;
                         clocks = <&clkuart3>;
+                       status = "disabled";
                 };
 
                rtc@d8100000 {
index 0dbee2c239057dd627b5e79eea6c18dacaa84086..6f54a64850eb0fef446fd13390f019d5ab277cdb 100644 (file)
@@ -49,6 +49,7 @@
 
                uart0: uart@e0000000 {
                        compatible = "xlnx,xuartps";
+                       status = "disabled";
                        clocks = <&clkc 23>, <&clkc 40>;
                        clock-names = "ref_clk", "aper_clk";
                        reg = <0xE0000000 0x1000>;
@@ -57,6 +58,7 @@
 
                uart1: uart@e0001000 {
                        compatible = "xlnx,xuartps";
+                       status = "disabled";
                        clocks = <&clkc 24>, <&clkc 41>;
                        clock-names = "ref_clk", "aper_clk";
                        reg = <0xE0001000 0x1000>;
index e25a307438ad27776f5994ba81ea99e46266dc9e..21aea99a067b63824ef270e19d1c047039317a44 100644 (file)
        };
 
        chosen {
-               bootargs = "console=ttyPS1,115200 earlyprintk";
+               bootargs = "console=ttyPS0,115200 earlyprintk";
        };
 
 };
+
+&uart1 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/zynq-zc706.dts b/arch/arm/boot/dts/zynq-zc706.dts
new file mode 100644 (file)
index 0000000..79009e0
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ *  Copyright (C) 2011 Xilinx
+ *  Copyright (C) 2012 National Instruments Corp.
+ *  Copyright (C) 2013 Xilinx
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * 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.
+ */
+/dts-v1/;
+/include/ "zynq-7000.dtsi"
+
+/ {
+       model = "Zynq ZC706 Development Board";
+       compatible = "xlnx,zynq-zc706", "xlnx,zynq-7000";
+
+       memory {
+               device_type = "memory";
+               reg = <0 0x40000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttyPS0,115200 earlyprintk";
+       };
+
+};
+
+&uart1 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/zynq-zed.dts b/arch/arm/boot/dts/zynq-zed.dts
new file mode 100644 (file)
index 0000000..d6acf2b
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ *  Copyright (C) 2011 Xilinx
+ *  Copyright (C) 2012 National Instruments Corp.
+ *  Copyright (C) 2013 Xilinx
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * 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.
+ */
+/dts-v1/;
+/include/ "zynq-7000.dtsi"
+
+/ {
+       model = "Zynq Zed Development Board";
+       compatible = "xlnx,zynq-7000";
+
+       memory {
+               device_type = "memory";
+               reg = <0 0x20000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttyPS0,115200 earlyprintk";
+       };
+
+};
+
+&uart1 {
+       status = "okay";
+};
index a8800d3618058573b3cd09037fce1a3520f133e8..75fd842d4071336cc5cb88cfee58beebdf72425e 100644 (file)
@@ -161,6 +161,7 @@ CONFIG_USB_ATMEL_USBA=y
 CONFIG_USB_G_SERIAL=y
 CONFIG_MMC=y
 CONFIG_MMC_ATMELMCI=y
+CONFIG_MMC_SPI=y
 CONFIG_NEW_LEDS=y
 CONFIG_LEDS_CLASS=y
 CONFIG_LEDS_GPIO=y
@@ -169,6 +170,7 @@ CONFIG_LEDS_TRIGGER_TIMER=y
 CONFIG_LEDS_TRIGGER_HEARTBEAT=y
 CONFIG_LEDS_TRIGGER_GPIO=y
 CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_RV3029C2=y
 CONFIG_RTC_DRV_AT91RM9200=y
 CONFIG_RTC_DRV_AT91SAM9=y
 CONFIG_DMADEVICES=y
index f50c404f0d3fad84bcf88b5158e57d7193fb7536..69b6928d3d9d68a901a6ffc40e711963a6f51094 100644 (file)
@@ -15,7 +15,6 @@ CONFIG_MACH_AT91SAM9260EK=y
 CONFIG_MACH_CAM60=y
 CONFIG_MACH_SAM9_L9260=y
 CONFIG_MACH_AFEB9260=y
-CONFIG_MACH_USB_A9260=y
 CONFIG_MACH_QIL_A9260=y
 CONFIG_MACH_CPU9260=y
 CONFIG_MACH_FLEXIBITY=y
index 9d72ab684829203f5f6214716d3820da3aa74dbc..e40026364e5794af18340c9318ec8307fdbbb5c2 100644 (file)
@@ -15,7 +15,6 @@ CONFIG_MODULE_UNLOAD=y
 CONFIG_ARCH_AT91=y
 CONFIG_ARCH_AT91SAM9263=y
 CONFIG_MACH_AT91SAM9263EK=y
-CONFIG_MACH_USB_A9263=y
 CONFIG_MTD_AT91_DATAFLASH_CARD=y
 # CONFIG_ARM_THUMB is not set
 CONFIG_AEABI=y
index b01e7632ed2e12f4487cacec9b7263e410fbfa93..35f8cf299fa2186f0f27ab42470dbd582f55d6f6 100644 (file)
@@ -81,6 +81,7 @@ CONFIG_PPP_SYNC_TTY=m
 # CONFIG_INPUT_MOUSEDEV is not set
 CONFIG_INPUT_EVDEV=y
 # CONFIG_KEYBOARD_ATKBD is not set
+CONFIG_KEYBOARD_GPIO=y
 # CONFIG_MOUSE_PS2 is not set
 # CONFIG_SERIO is not set
 # CONFIG_LEGACY_PTYS is not set
@@ -96,6 +97,11 @@ CONFIG_DEBUG_GPIO=y
 CONFIG_MMC=y
 CONFIG_MMC_CLKGATE=y
 CONFIG_MMC_ARMMMCI=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_DRV_PL031=y
 CONFIG_DMADEVICES=y
index 3a78bdcd0a435a51b355787276c573718af5ade5..ca900be144ce9466db4a1cfb6fb577eef669e81e 100644 (file)
@@ -176,12 +176,6 @@ config MACH_AFEB9260
          <svn://194.85.238.22/home/users/george/svn/arm9eb>
          <http://groups.google.com/group/arm9fpga-evolution-board>
 
-config MACH_USB_A9260
-       bool "CALAO USB-A9260"
-       help
-         Select this if you are using a Calao Systems USB-A9260.
-         <http://www.calao-systems.com>
-
 config MACH_QIL_A9260
        bool "CALAO QIL-A9260 board"
        help
@@ -257,13 +251,6 @@ config MACH_GSIA18S
          produced by GeoSIG Ltd company. This is an internet accelerograph.
          <http://www.geosig.com>
 
-config MACH_USB_A9G20
-       bool "CALAO USB-A9G20"
-       depends on ARCH_AT91SAM9G20
-       help
-         Select this if you are using a Calao Systems USB-A9G20.
-         <http://www.calao-systems.com>
-
 config MACH_SNAPPER_9260
        bool "Bluewater Systems Snapper 9260/9G20 module"
        help
@@ -309,12 +296,6 @@ config MACH_AT91SAM9263EK
          Select this if you are using Atmel's AT91SAM9263-EK Evaluation Kit.
          <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4057>
 
-config MACH_USB_A9263
-       bool "CALAO USB-A9263"
-       help
-         Select this if you are using a Calao Systems USB-A9263.
-         <http://www.calao-systems.com>
-
 endif
 
 # ----------------------------------------------------------
index 07e89b4db7e7ce64add7a46f307c7198b8f3cb83..3b0a9538093c168cb4cd80f4ff559b0458d0dfb3 100644 (file)
@@ -52,7 +52,6 @@ obj-$(CONFIG_MACH_RSI_EWS)    += board-rsi-ews.o
 obj-$(CONFIG_MACH_AT91SAM9260EK) += board-sam9260ek.o
 obj-$(CONFIG_MACH_CAM60)       += board-cam60.o
 obj-$(CONFIG_MACH_SAM9_L9260)  += board-sam9-l9260.o
-obj-$(CONFIG_MACH_USB_A9260)   += board-usb-a926x.o
 obj-$(CONFIG_MACH_QIL_A9260)   += board-qil-a9260.o
 obj-$(CONFIG_MACH_AFEB9260)    += board-afeb-9260v1.o
 obj-$(CONFIG_MACH_CPU9260)     += board-cpu9krea.o
@@ -64,7 +63,6 @@ obj-$(CONFIG_MACH_AT91SAM9G10EK) += board-sam9261ek.o
 
 # AT91SAM9263 board-specific support
 obj-$(CONFIG_MACH_AT91SAM9263EK) += board-sam9263ek.o
-obj-$(CONFIG_MACH_USB_A9263)   += board-usb-a926x.o
 
 # AT91SAM9RL board-specific support
 obj-$(CONFIG_MACH_AT91SAM9RLEK)        += board-sam9rlek.o
@@ -77,7 +75,6 @@ obj-$(CONFIG_MACH_STAMP9G20)  += board-stamp9g20.o
 obj-$(CONFIG_MACH_PORTUXG20)   += board-stamp9g20.o
 obj-$(CONFIG_MACH_PCONTROL_G20)        += board-pcontrol-g20.o board-stamp9g20.o
 obj-$(CONFIG_MACH_GSIA18S)     += board-gsia18s.o board-stamp9g20.o
-obj-$(CONFIG_MACH_USB_A9G20)   += board-usb-a926x.o
 
 # AT91SAM9260/AT91SAM9G20 board-specific support
 obj-$(CONFIG_MACH_SNAPPER_9260)        += board-snapper9260.o
index fda502691686ff81eb6598288ea3fd99c947b24e..474ee04d24b93729bdf32e2e4d64a7db0ea9bed8 100644 (file)
@@ -266,6 +266,8 @@ static struct clk_lookup periph_clocks_lookups[] = {
        CLKDEV_CON_DEV_ID(NULL, "fff88000.i2c", &twi1_clk),
        CLKDEV_CON_DEV_ID("spi_clk", "fffa4000.spi", &spi0_clk),
        CLKDEV_CON_DEV_ID("spi_clk", "fffa8000.spi", &spi1_clk),
+       CLKDEV_CON_DEV_ID("hclk", "600000.gadget", &utmi_clk),
+       CLKDEV_CON_DEV_ID("pclk", "600000.gadget", &udphs_clk),
        /* fake hclk clock */
        CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &uhphs_clk),
        CLKDEV_CON_DEV_ID(NULL, "fffff200.gpio", &pioA_clk),
index e631fec040ce069390cd916a8ed0e185537d2dc4..2abee6626aace2cff322f2c22a3bab79786d5473 100644 (file)
@@ -249,6 +249,8 @@ static struct clk_lookup periph_clocks_lookups[] = {
        CLKDEV_CON_DEV_ID("hclk", "600000.ohci", &uhphs_clk),
        CLKDEV_CON_DEV_ID("ohci_clk", "600000.ohci", &uhphs_clk),
        CLKDEV_CON_DEV_ID("ehci_clk", "700000.ehci", &uhphs_clk),
+       CLKDEV_CON_DEV_ID("hclk", "500000.gadget", &utmi_clk),
+       CLKDEV_CON_DEV_ID("pclk", "500000.gadget", &udphs_clk),
 };
 
 /*
diff --git a/arch/arm/mach-at91/board-usb-a926x.c b/arch/arm/mach-at91/board-usb-a926x.c
deleted file mode 100644 (file)
index 2487d94..0000000
+++ /dev/null
@@ -1,384 +0,0 @@
-/*
- * linux/arch/arm/mach-at91/board-usb-a926x.c
- *
- *  Copyright (C) 2005 SAN People
- *  Copyright (C) 2007 Atmel Corporation.
- *  Copyright (C) 2007 Calao-systems
- *  Copyright (C) 2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#include <linux/types.h>
-#include <linux/init.h>
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/platform_device.h>
-#include <linux/spi/spi.h>
-#include <linux/gpio_keys.h>
-#include <linux/gpio.h>
-#include <linux/input.h>
-#include <linux/spi/mmc_spi.h>
-
-#include <asm/setup.h>
-#include <asm/mach-types.h>
-#include <asm/irq.h>
-
-#include <asm/mach/arch.h>
-#include <asm/mach/map.h>
-#include <asm/mach/irq.h>
-
-#include <mach/hardware.h>
-#include <mach/at91sam9_smc.h>
-
-#include "at91_aic.h"
-#include "at91_shdwc.h"
-#include "board.h"
-#include "sam9_smc.h"
-#include "generic.h"
-
-
-static void __init ek_init_early(void)
-{
-       /* Initialize processor: 12.00 MHz crystal */
-       at91_initialize(12000000);
-}
-
-/*
- * USB Host port
- */
-static struct at91_usbh_data __initdata ek_usbh_data = {
-       .ports          = 2,
-       .vbus_pin       = {-EINVAL, -EINVAL},
-       .overcurrent_pin= {-EINVAL, -EINVAL},
-};
-
-/*
- * USB Device port
- */
-static struct at91_udc_data __initdata ek_udc_data = {
-       .vbus_pin       = AT91_PIN_PB11,
-       .pullup_pin     = -EINVAL,              /* pull-up driven by UDC */
-};
-
-static void __init ek_add_device_udc(void)
-{
-       if (machine_is_usb_a9260() || machine_is_usb_a9g20())
-               ek_udc_data.vbus_pin = AT91_PIN_PC5;
-
-       at91_add_device_udc(&ek_udc_data);
-}
-
-#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
-#define MMC_SPI_CARD_DETECT_INT AT91_PIN_PC4
-static int at91_mmc_spi_init(struct device *dev,
-       irqreturn_t (*detect_int)(int, void *), void *data)
-{
-       /* Configure Interrupt pin as input, no pull-up */
-       at91_set_gpio_input(MMC_SPI_CARD_DETECT_INT, 0);
-       return request_irq(gpio_to_irq(MMC_SPI_CARD_DETECT_INT), detect_int,
-               IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
-               "mmc-spi-detect", data);
-}
-
-static void at91_mmc_spi_exit(struct device *dev, void *data)
-{
-       free_irq(gpio_to_irq(MMC_SPI_CARD_DETECT_INT), data);
-}
-
-static struct mmc_spi_platform_data at91_mmc_spi_pdata = {
-       .init = at91_mmc_spi_init,
-       .exit = at91_mmc_spi_exit,
-       .detect_delay = 100, /* msecs */
-};
-#endif
-
-/*
- * SPI devices.
- */
-static struct spi_board_info usb_a9263_spi_devices[] = {
-       {       /* DataFlash chip */
-               .modalias       = "mtd_dataflash",
-               .chip_select    = 0,
-               .max_speed_hz   = 15 * 1000 * 1000,
-               .bus_num        = 0,
-       }
-};
-
-static struct spi_board_info usb_a9g20_spi_devices[] = {
-#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
-       {
-               .modalias = "mmc_spi",
-               .max_speed_hz = 20000000,       /* max spi clock (SCK) speed in HZ */
-               .bus_num = 1,
-               .chip_select = 0,
-               .platform_data = &at91_mmc_spi_pdata,
-               .mode = SPI_MODE_3,
-       },
-#endif
-};
-
-static void __init ek_add_device_spi(void)
-{
-       if (machine_is_usb_a9263())
-               at91_add_device_spi(usb_a9263_spi_devices, ARRAY_SIZE(usb_a9263_spi_devices));
-       else if (machine_is_usb_a9g20())
-               at91_add_device_spi(usb_a9g20_spi_devices, ARRAY_SIZE(usb_a9g20_spi_devices));
-}
-
-/*
- * MACB Ethernet device
- */
-static struct macb_platform_data __initdata ek_macb_data = {
-       .phy_irq_pin    = AT91_PIN_PE31,
-       .is_rmii        = 1,
-};
-
-static void __init ek_add_device_eth(void)
-{
-       if (machine_is_usb_a9260() || machine_is_usb_a9g20())
-               ek_macb_data.phy_irq_pin = AT91_PIN_PA31;
-
-       at91_add_device_eth(&ek_macb_data);
-}
-
-/*
- * NAND flash
- */
-static struct mtd_partition __initdata ek_nand_partition[] = {
-       {
-               .name   = "barebox",
-               .offset = 0,
-               .size   = 3 * SZ_128K,
-       }, {
-               .name   = "bareboxenv",
-               .offset = MTDPART_OFS_NXTBLK,
-               .size   = SZ_128K,
-       }, {
-               .name   = "bareboxenv2",
-               .offset = MTDPART_OFS_NXTBLK,
-               .size   = SZ_128K,
-       }, {
-               .name   = "oftree",
-               .offset = MTDPART_OFS_NXTBLK,
-               .size   = SZ_128K,
-       }, {
-               .name   = "kernel",
-               .offset = MTDPART_OFS_NXTBLK,
-               .size   = 4 * SZ_1M,
-       }, {
-               .name   = "rootfs",
-               .offset = MTDPART_OFS_NXTBLK,
-               .size   = 120 * SZ_1M,
-       }, {
-               .name   = "data",
-               .offset = MTDPART_OFS_NXTBLK,
-               .size   = MTDPART_SIZ_FULL,
-       }
-};
-
-static struct atmel_nand_data __initdata ek_nand_data = {
-       .ale            = 21,
-       .cle            = 22,
-       .det_pin        = -EINVAL,
-       .rdy_pin        = AT91_PIN_PA22,
-       .enable_pin     = AT91_PIN_PD15,
-       .ecc_mode       = NAND_ECC_SOFT,
-       .on_flash_bbt   = 1,
-       .parts          = ek_nand_partition,
-       .num_parts      = ARRAY_SIZE(ek_nand_partition),
-};
-
-static struct sam9_smc_config __initdata usb_a9260_nand_smc_config = {
-       .ncs_read_setup         = 0,
-       .nrd_setup              = 1,
-       .ncs_write_setup        = 0,
-       .nwe_setup              = 1,
-
-       .ncs_read_pulse         = 3,
-       .nrd_pulse              = 3,
-       .ncs_write_pulse        = 3,
-       .nwe_pulse              = 3,
-
-       .read_cycle             = 5,
-       .write_cycle            = 5,
-
-       .mode                   = AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_DISABLE | AT91_SMC_DBW_8,
-       .tdf_cycles             = 2,
-};
-
-static struct sam9_smc_config __initdata usb_a9g20_nand_smc_config = {
-       .ncs_read_setup         = 0,
-       .nrd_setup              = 2,
-       .ncs_write_setup        = 0,
-       .nwe_setup              = 2,
-
-       .ncs_read_pulse         = 4,
-       .nrd_pulse              = 4,
-       .ncs_write_pulse        = 4,
-       .nwe_pulse              = 4,
-
-       .read_cycle             = 7,
-       .write_cycle            = 7,
-
-       .mode                   = AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_DISABLE | AT91_SMC_DBW_8,
-       .tdf_cycles             = 3,
-};
-
-static void __init ek_add_device_nand(void)
-{
-       if (machine_is_usb_a9260() || machine_is_usb_a9g20()) {
-               ek_nand_data.rdy_pin    = AT91_PIN_PC13;
-               ek_nand_data.enable_pin = AT91_PIN_PC14;
-       }
-
-       /* configure chip-select 3 (NAND) */
-       if (machine_is_usb_a9g20())
-               sam9_smc_configure(0, 3, &usb_a9g20_nand_smc_config);
-       else
-               sam9_smc_configure(0, 3, &usb_a9260_nand_smc_config);
-
-       at91_add_device_nand(&ek_nand_data);
-}
-
-
-/*
- * GPIO Buttons
- */
-#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
-static struct gpio_keys_button ek_buttons[] = {
-       {       /* USER PUSH BUTTON */
-               .code           = KEY_ENTER,
-               .gpio           = AT91_PIN_PB10,
-               .active_low     = 1,
-               .desc           = "user_pb",
-               .wakeup         = 1,
-       }
-};
-
-static struct gpio_keys_platform_data ek_button_data = {
-       .buttons        = ek_buttons,
-       .nbuttons       = ARRAY_SIZE(ek_buttons),
-};
-
-static struct platform_device ek_button_device = {
-       .name           = "gpio-keys",
-       .id             = -1,
-       .num_resources  = 0,
-       .dev            = {
-               .platform_data  = &ek_button_data,
-       }
-};
-
-static void __init ek_add_device_buttons(void)
-{
-       at91_set_GPIO_periph(AT91_PIN_PB10, 1); /* user push button, pull up enabled */
-       at91_set_deglitch(AT91_PIN_PB10, 1);
-
-       platform_device_register(&ek_button_device);
-}
-#else
-static void __init ek_add_device_buttons(void) {}
-#endif
-
-/*
- * LEDs
- */
-static struct gpio_led ek_leds[] = {
-       {       /* user_led (green) */
-               .name                   = "user_led",
-               .gpio                   = AT91_PIN_PB21,
-               .active_low             = 1,
-               .default_trigger        = "heartbeat",
-       }
-};
-
-static struct i2c_board_info __initdata ek_i2c_devices[] = {
-       {
-               I2C_BOARD_INFO("rv3029c2", 0x56),
-       },
-};
-
-static void __init ek_add_device_leds(void)
-{
-       if (machine_is_usb_a9260() || machine_is_usb_a9g20())
-               ek_leds[0].active_low = 0;
-
-       at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
-}
-
-static void __init ek_board_init(void)
-{
-       /* Serial */
-       /* DBGU on ttyS0. (Rx & Tx only) */
-       at91_register_uart(0, 0, 0);
-       at91_add_device_serial();
-       /* USB Host */
-       at91_add_device_usbh(&ek_usbh_data);
-       /* USB Device */
-       ek_add_device_udc();
-       /* SPI */
-       ek_add_device_spi();
-       /* Ethernet */
-       ek_add_device_eth();
-       /* NAND */
-       ek_add_device_nand();
-       /* Push Buttons */
-       ek_add_device_buttons();
-       /* LEDs */
-       ek_add_device_leds();
-
-       if (machine_is_usb_a9g20()) {
-               /* I2C */
-               at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices));
-       } else {
-               /* I2C */
-               at91_add_device_i2c(NULL, 0);
-               /* shutdown controller, wakeup button (5 msec low) */
-               at91_shdwc_write(AT91_SHDW_MR, AT91_SHDW_CPTWK0_(10)
-                               | AT91_SHDW_WKMODE0_LOW
-                               | AT91_SHDW_RTTWKEN);
-       }
-}
-
-MACHINE_START(USB_A9263, "CALAO USB_A9263")
-       /* Maintainer: calao-systems */
-       .init_time      = at91sam926x_pit_init,
-       .map_io         = at91_map_io,
-       .handle_irq     = at91_aic_handle_irq,
-       .init_early     = ek_init_early,
-       .init_irq       = at91_init_irq_default,
-       .init_machine   = ek_board_init,
-MACHINE_END
-
-MACHINE_START(USB_A9260, "CALAO USB_A9260")
-       /* Maintainer: calao-systems */
-       .init_time      = at91sam926x_pit_init,
-       .map_io         = at91_map_io,
-       .handle_irq     = at91_aic_handle_irq,
-       .init_early     = ek_init_early,
-       .init_irq       = at91_init_irq_default,
-       .init_machine   = ek_board_init,
-MACHINE_END
-
-MACHINE_START(USB_A9G20, "CALAO USB_A92G0")
-       /* Maintainer: Jean-Christophe PLAGNIOL-VILLARD */
-       .init_time      = at91sam926x_pit_init,
-       .map_io         = at91_map_io,
-       .handle_irq     = at91_aic_handle_irq,
-       .init_early     = ek_init_early,
-       .init_irq       = at91_init_irq_default,
-       .init_machine   = ek_board_init,
-MACHINE_END
index 04b1bad68350f3df315a758bca09c7dbd0c4c823..9afac26fa1ccb13874271061c3754e3b952574d5 100644 (file)
@@ -327,8 +327,6 @@ static void __init mx5_clocks_common_init(unsigned long rate_ckil,
        clk_register_clkdev(clk[ssi1_ipg_gate], NULL, "imx-ssi.0");
        clk_register_clkdev(clk[ssi2_ipg_gate], NULL, "imx-ssi.1");
        clk_register_clkdev(clk[ssi3_ipg_gate], NULL, "imx-ssi.2");
-       clk_register_clkdev(clk[ssi_ext1_gate], "ssi_ext1", NULL);
-       clk_register_clkdev(clk[ssi_ext2_gate], "ssi_ext2", NULL);
        clk_register_clkdev(clk[sdma_gate], NULL, "imx35-sdma");
        clk_register_clkdev(clk[cpu_podf], NULL, "cpufreq-cpu0.0");
        clk_register_clkdev(clk[iim_gate], "iim", NULL);
index 74e7b94c22e7237755ce2995f4539c4de123d7ac..98c58944015a596db1431e770f5a5c9765300227 100644 (file)
 #include "hardware.h"
 #include "mx53.h"
 
-static void __init imx53_qsb_init(void)
-{
-       struct clk *clk;
-
-       clk = clk_get_sys(NULL, "ssi_ext1");
-       if (IS_ERR(clk)) {
-               pr_err("failed to get clk ssi_ext1\n");
-               return;
-       }
-
-       clk_register_clkdev(clk, NULL, "0-000a");
-}
-
 static void __init imx53_dt_init(void)
 {
        mxc_arch_reset_init_dt();
 
-       if (of_machine_is_compatible("fsl,imx53-qsb"))
-               imx53_qsb_init();
-
        of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
 }
 
index 3a66635e7d1704b0c206d9f6d223c2e97347926a..616fe0210da1e16b173ca4f79db30c8ce4c70c37 100644 (file)
@@ -23,6 +23,7 @@ config ARCH_MXS
        select GENERIC_CLOCKEVENTS
        select HAVE_CLK_PREPARE
        select PINCTRL
+       select SOC_BUS
        select SOC_IMX23
        select SOC_IMX28
        select STMP_DEVICE
index d67ecc1c884787837719d79809057c9c28ef8bec..7fa611c1b287a846b95ff5b972f178c9a3ba9598 100644 (file)
 #include <linux/err.h>
 #include <linux/gpio.h>
 #include <linux/init.h>
-#include <linux/irqchip.h>
 #include <linux/irqchip/mxs.h>
 #include <linux/micrel_phy.h>
 #include <linux/of_address.h>
 #include <linux/of_platform.h>
 #include <linux/phy.h>
 #include <linux/pinctrl/consumer.h>
+#include <linux/sys_soc.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 #include <asm/mach/time.h>
 #define MXS_DIGCTL_SAIF_CLKMUX_EXTMSTR0                0x2
 #define MXS_DIGCTL_SAIF_CLKMUX_EXTMSTR1                0x3
 
+#define HW_DIGCTL_CHIPID       0x310
+#define HW_DIGCTL_CHIPID_MASK  (0xffff << 16)
+#define HW_DIGCTL_REV_MASK     0xff
+#define HW_DIGCTL_CHIPID_MX23  (0x3780 << 16)
+#define HW_DIGCTL_CHIPID_MX28  (0x2800 << 16)
+
+#define MXS_CHIP_REVISION_1_0  0x10
+#define MXS_CHIP_REVISION_1_1  0x11
+#define MXS_CHIP_REVISION_1_2  0x12
+#define MXS_CHIP_REVISION_1_3  0x13
+#define MXS_CHIP_REVISION_1_4  0x14
+#define MXS_CHIP_REV_UNKNOWN   0xff
+
 #define MXS_GPIO_NR(bank, nr)  ((bank) * 32 + (nr))
 
 #define MXS_SET_ADDR           0x4
 #define MXS_CLR_ADDR           0x8
 #define MXS_TOG_ADDR           0xc
 
+static u32 chipid;
+static u32 socid;
+
 static inline void __mxs_setl(u32 mask, void __iomem *reg)
 {
        __raw_writel(mask, reg + MXS_SET_ADDR);
@@ -352,29 +368,123 @@ static void __init tx28_post_init(void)
        pinctrl_put(pctl);
 }
 
-static void __init cfa10049_init(void)
+static void __init crystalfontz_init(void)
 {
        update_fec_mac_prop(OUI_CRYSTALFONTZ);
 }
 
-static void __init cfa10037_init(void)
+static const char __init *mxs_get_soc_id(void)
 {
-       update_fec_mac_prop(OUI_CRYSTALFONTZ);
+       struct device_node *np;
+       void __iomem *digctl_base;
+
+       np = of_find_compatible_node(NULL, NULL, "fsl,imx23-digctl");
+       digctl_base = of_iomap(np, 0);
+       WARN_ON(!digctl_base);
+
+       chipid = readl(digctl_base + HW_DIGCTL_CHIPID);
+       socid = chipid & HW_DIGCTL_CHIPID_MASK;
+
+       iounmap(digctl_base);
+       of_node_put(np);
+
+       switch (socid) {
+       case HW_DIGCTL_CHIPID_MX23:
+               return "i.MX23";
+       case HW_DIGCTL_CHIPID_MX28:
+               return "i.MX28";
+       default:
+               return "Unknown";
+       }
+}
+
+static u32 __init mxs_get_cpu_rev(void)
+{
+       u32 rev = chipid & HW_DIGCTL_REV_MASK;
+
+       switch (socid) {
+       case HW_DIGCTL_CHIPID_MX23:
+               switch (rev) {
+               case 0x0:
+                       return MXS_CHIP_REVISION_1_0;
+               case 0x1:
+                       return MXS_CHIP_REVISION_1_1;
+               case 0x2:
+                       return MXS_CHIP_REVISION_1_2;
+               case 0x3:
+                       return MXS_CHIP_REVISION_1_3;
+               case 0x4:
+                       return MXS_CHIP_REVISION_1_4;
+               default:
+                       return MXS_CHIP_REV_UNKNOWN;
+               }
+       case HW_DIGCTL_CHIPID_MX28:
+               switch (rev) {
+               case 0x0:
+                       return MXS_CHIP_REVISION_1_1;
+               case 0x1:
+                       return MXS_CHIP_REVISION_1_2;
+               default:
+                       return MXS_CHIP_REV_UNKNOWN;
+               }
+       default:
+               return MXS_CHIP_REV_UNKNOWN;
+       }
+}
+
+static const char __init *mxs_get_revision(void)
+{
+       u32 rev = mxs_get_cpu_rev();
+
+       if (rev != MXS_CHIP_REV_UNKNOWN)
+               return kasprintf(GFP_KERNEL, "TO%d.%d", (rev >> 4) & 0xf,
+                               rev & 0xf);
+       else
+               return kasprintf(GFP_KERNEL, "%s", "Unknown");
 }
 
 static void __init mxs_machine_init(void)
 {
+       struct device_node *root;
+       struct device *parent;
+       struct soc_device *soc_dev;
+       struct soc_device_attribute *soc_dev_attr;
+       int ret;
+
+       soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+       if (!soc_dev_attr)
+               return;
+
+       root = of_find_node_by_path("/");
+       ret = of_property_read_string(root, "model", &soc_dev_attr->machine);
+       if (ret)
+               return;
+
+       soc_dev_attr->family = "Freescale MXS Family";
+       soc_dev_attr->soc_id = mxs_get_soc_id();
+       soc_dev_attr->revision = mxs_get_revision();
+
+       soc_dev = soc_device_register(soc_dev_attr);
+       if (IS_ERR(soc_dev)) {
+               kfree(soc_dev_attr->revision);
+               kfree(soc_dev_attr);
+               return;
+       }
+
+       parent = soc_device_to_device(soc_dev);
+
        if (of_machine_is_compatible("fsl,imx28-evk"))
                imx28_evk_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("crystalfontz,cfa10037") ||
+                of_machine_is_compatible("crystalfontz,cfa10049") ||
+                of_machine_is_compatible("crystalfontz,cfa10055") ||
+                of_machine_is_compatible("crystalfontz,cfa10057"))
+               crystalfontz_init();
 
        of_platform_populate(NULL, of_default_bus_match_table,
-                            mxs_auxdata_lookup, NULL);
+                            mxs_auxdata_lookup, parent);
 
        if (of_machine_is_compatible("karo,tx28"))
                tx28_post_init();
@@ -434,7 +544,6 @@ static const char *mxs_dt_compat[] __initdata = {
 };
 
 DT_MACHINE_START(MXS, "Freescale MXS (Device Tree)")
-       .init_irq       = irqchip_init,
        .handle_irq     = icoll_handle_irq,
        .init_time      = mxs_timer_init,
        .init_machine   = mxs_machine_init,
index 9b9d105f194ca75876aef60a1d2b7b9772be2d7a..5981c3db9b41d33f36068bcc3a12e62a85447e23 100644 (file)
@@ -6,6 +6,7 @@ config ARCH_NOMADIK
        select ARM_VIC
        select CLKSRC_NOMADIK_MTU
        select CLKSRC_NOMADIK_MTU_SCHED_CLOCK
+       select CLKSRC_OF
        select COMMON_CLK
        select CPU_ARM926T
        select GENERIC_CLOCKEVENTS
index 46cce9baa12926d4a85e65a0fe1a1d825efaee66..2df209ed1a07ad669e36a12db1080cafe022a92d 100644 (file)
@@ -26,9 +26,7 @@
 #include <linux/irq.h>
 #include <linux/dma-mapping.h>
 #include <linux/platform_data/clk-nomadik.h>
-#include <linux/platform_data/pinctrl-nomadik.h>
-#include <linux/pinctrl/machine.h>
-#include <linux/platform_data/clocksource-nomadik-mtu.h>
+#include <linux/clocksource.h>
 #include <linux/of_irq.h>
 #include <linux/of_gpio.h>
 #include <linux/of_address.h>
 #define NOMADIK_L2CC_BASE      0x10210000      /* L2 Cache controller */
 #define NOMADIK_UART1_VBASE    0xF01FB000
 
-static unsigned long out_low[] = { PIN_OUTPUT_LOW };
-static unsigned long out_high[] = { PIN_OUTPUT_HIGH };
-static unsigned long in_nopull[] = { PIN_INPUT_NOPULL };
-static unsigned long in_pullup[] = { PIN_INPUT_PULLUP };
-
-static struct pinctrl_map __initdata nhk8815_pinmap[] = {
-       PIN_MAP_MUX_GROUP_DEFAULT("uart0", "pinctrl-stn8815", "u0_a_1", "u0"),
-       PIN_MAP_MUX_GROUP_DEFAULT("uart1", "pinctrl-stn8815", "u1_a_1", "u1"),
-       /* Hog in MMC/SD card mux */
-       PIN_MAP_MUX_GROUP_HOG_DEFAULT("pinctrl-stn8815", "mmcsd_a_1", "mmcsd"),
-       /* MCCLK */
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO8_B10", out_low),
-       /* MCCMD */
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO9_A10", in_pullup),
-       /* MCCMDDIR */
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO10_C11", out_high),
-       /* MCDAT3-0 */
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO11_B11", in_pullup),
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO12_A11", in_pullup),
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO13_C12", in_pullup),
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO14_B12", in_pullup),
-       /* MCDAT0DIR */
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO15_A12", out_high),
-       /* MCDAT31DIR */
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO16_C13", out_high),
-       /* MCMSFBCLK */
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO24_C15", in_pullup),
-       /* CD input GPIO */
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO111_H21", in_nopull),
-       /* CD bias drive */
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO112_J21", out_low),
-       /* I2C0 */
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO62_D3", in_pullup),
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO63_D2", in_pullup),
-       /* I2C1 */
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO53_L4", in_pullup),
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO54_L3", in_pullup),
-       /* I2C2 */
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO73_C21", in_pullup),
-       PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-stn8815", "GPIO74_C20", in_pullup),
-};
-
 /* This is needed for LL-debug/earlyprintk/debug-macro.S */
 static struct map_desc cpu8815_io_desc[] __initdata = {
        {
@@ -171,7 +127,7 @@ static void __init cpu8815_timer_init_of(void)
        /* We need this to be up now */
        nomadik_clk_init();
 
-       mtu = of_find_node_by_path("/mtu0");
+       mtu = of_find_node_by_path("/mtu@101e2000");
        if (!mtu)
                return;
        base = of_iomap(mtu, 0);
@@ -187,7 +143,7 @@ static void __init cpu8815_timer_init_of(void)
        src_cr |= SRC_CR_INIT_VAL;
        writel(src_cr, base);
 
-       nmdk_timer_init(base, irq);
+       clocksource_of_init();
 }
 
 static struct fsmc_nand_timings cpu8815_nand_timings = {
@@ -279,28 +235,10 @@ device_initcall(cpu8815_mmcsd_init);
 
 /* These are mostly to get the right device names for the clock lookups */
 static struct of_dev_auxdata cpu8815_auxdata_lookup[] __initdata = {
-       OF_DEV_AUXDATA("st,nomadik-gpio", NOMADIK_GPIO0_BASE,
-               "gpio.0", NULL),
-       OF_DEV_AUXDATA("st,nomadik-gpio", NOMADIK_GPIO1_BASE,
-               "gpio.1", NULL),
-       OF_DEV_AUXDATA("st,nomadik-gpio", NOMADIK_GPIO2_BASE,
-               "gpio.2", NULL),
-       OF_DEV_AUXDATA("st,nomadik-gpio", NOMADIK_GPIO3_BASE,
-               "gpio.3", NULL),
-       OF_DEV_AUXDATA("stericsson,nmk-pinctrl-stn8815", 0,
-               "pinctrl-stn8815", NULL),
-       OF_DEV_AUXDATA("arm,primecell", NOMADIK_UART0_BASE,
-               "uart0", NULL),
-       OF_DEV_AUXDATA("arm,primecell", NOMADIK_UART1_BASE,
-               "uart1", NULL),
-       OF_DEV_AUXDATA("arm,primecell", NOMADIK_RNG_BASE,
-               "rng", NULL),
-       OF_DEV_AUXDATA("arm,primecell", NOMADIK_RTC_BASE,
-               "rtc-pl031", NULL),
        OF_DEV_AUXDATA("stericsson,fsmc-nand", NOMADIK_FSMC_BASE,
-               "fsmc-nand", &cpu8815_nand_data),
+               NULL, &cpu8815_nand_data),
        OF_DEV_AUXDATA("arm,primecell", NOMADIK_SDI_BASE,
-               "mmci", &mmcsd_plat_data),
+               NULL, &mmcsd_plat_data),
        { /* sentinel */ },
 };
 
@@ -310,7 +248,6 @@ static void __init cpu8815_init_of(void)
        /* At full speed latency must be >=2, so 0x249 in low bits */
        l2x0_of_init(0x00730249, 0xfe000fff);
 #endif
-       pinctrl_register_mappings(nhk8815_pinmap, ARRAY_SIZE(nhk8815_pinmap));
        of_platform_populate(NULL, of_default_bus_match_table,
                        cpu8815_auxdata_lookup, NULL);
 }
index 0346de56436caf26ef2ad87b9a38bdd380fefe3d..ba6534d7f155a6adc94a5ecb201d5cd7815c939f 100644 (file)
@@ -431,15 +431,11 @@ DEFINE_STRUCT_CLK(aes0_fck, dpll_core_ck_parents, clk_ops_null);
  *  - Driver code is not yet migrated to use hwmod/runtime pm
  *  - Modules outside kernel access (to disable them by default)
  *
- *     - debugss
  *     - mmu (gfx domain)
  *     - cefuse
  *     - usbotg_fck (its additional clock and not really a modulemode)
  *     - ieee5000
  */
-DEFINE_CLK_GATE(debugss_ick, "dpll_core_m4_ck", &dpll_core_m4_ck, 0x0,
-               AM33XX_CM_WKUP_DEBUGSS_CLKCTRL, AM33XX_MODULEMODE_SWCTRL_SHIFT,
-               0x0, NULL);
 
 DEFINE_CLK_GATE(mmu_fck, "dpll_core_m4_ck", &dpll_core_m4_ck, 0x0,
                AM33XX_CM_GFX_MMUDATA_CLKCTRL, AM33XX_MODULEMODE_SWCTRL_SHIFT,
@@ -889,6 +885,42 @@ DEFINE_CLK_OMAP_MUX_GATE(ehrpwm2_tbclk, "l4ls_clkdm",
                         AM33XX_PWMSS2_TBCLKEN_SHIFT,
                         NULL, pwmss_clk_parents, ehrpwm_tbclk_ops);
 
+/*
+ * debugss optional clocks
+ */
+DEFINE_CLK_GATE(dbg_sysclk_ck, "sys_clkin_ck", &sys_clkin_ck,
+               0x0, AM33XX_CM_WKUP_DEBUGSS_CLKCTRL,
+               AM33XX_OPTFCLKEN_DBGSYSCLK_SHIFT, 0x0, NULL);
+
+DEFINE_CLK_GATE(dbg_clka_ck, "dpll_core_m4_ck", &dpll_core_m4_ck,
+               0x0, AM33XX_CM_WKUP_DEBUGSS_CLKCTRL,
+               AM33XX_OPTCLK_DEBUG_CLKA_SHIFT, 0x0, NULL);
+
+static const char *stm_pmd_clock_mux_ck_parents[] = {
+       "dbg_sysclk_ck", "dbg_clka_ck",
+};
+
+DEFINE_CLK_MUX(stm_pmd_clock_mux_ck, stm_pmd_clock_mux_ck_parents, NULL, 0x0,
+              AM33XX_CM_WKUP_DEBUGSS_CLKCTRL, AM33XX_STM_PMD_CLKSEL_SHIFT,
+              AM33XX_STM_PMD_CLKSEL_WIDTH, 0x0, NULL);
+
+DEFINE_CLK_MUX(trace_pmd_clk_mux_ck, stm_pmd_clock_mux_ck_parents, NULL, 0x0,
+              AM33XX_CM_WKUP_DEBUGSS_CLKCTRL,
+              AM33XX_TRC_PMD_CLKSEL_SHIFT,
+              AM33XX_TRC_PMD_CLKSEL_WIDTH, 0x0, NULL);
+
+DEFINE_CLK_DIVIDER(stm_clk_div_ck, "stm_pmd_clock_mux_ck",
+                  &stm_pmd_clock_mux_ck, 0x0, AM33XX_CM_WKUP_DEBUGSS_CLKCTRL,
+                  AM33XX_STM_PMD_CLKDIVSEL_SHIFT,
+                  AM33XX_STM_PMD_CLKDIVSEL_WIDTH, CLK_DIVIDER_POWER_OF_TWO,
+                  NULL);
+
+DEFINE_CLK_DIVIDER(trace_clk_div_ck, "trace_pmd_clk_mux_ck",
+                  &trace_pmd_clk_mux_ck, 0x0, AM33XX_CM_WKUP_DEBUGSS_CLKCTRL,
+                  AM33XX_TRC_PMD_CLKDIVSEL_SHIFT,
+                  AM33XX_TRC_PMD_CLKDIVSEL_WIDTH, CLK_DIVIDER_POWER_OF_TWO,
+                  NULL);
+
 /*
  * clkdev
  */
@@ -926,7 +958,6 @@ static struct omap_clk am33xx_clks[] = {
        CLK("481cc000.d_can",   NULL,           &dcan0_fck),
        CLK(NULL,       "dcan1_fck",            &dcan1_fck),
        CLK("481d0000.d_can",   NULL,           &dcan1_fck),
-       CLK(NULL,       "debugss_ick",          &debugss_ick),
        CLK(NULL,       "pruss_ocp_gclk",       &pruss_ocp_gclk),
        CLK(NULL,       "mcasp0_fck",           &mcasp0_fck),
        CLK(NULL,       "mcasp1_fck",           &mcasp1_fck),
@@ -969,6 +1000,13 @@ static struct omap_clk am33xx_clks[] = {
        CLK(NULL,       "clkout2_div_ck",       &clkout2_div_ck),
        CLK(NULL,       "timer_32k_ck",         &clkdiv32k_ick),
        CLK(NULL,       "timer_sys_ck",         &sys_clkin_ck),
+       CLK(NULL,       "dbg_sysclk_ck",        &dbg_sysclk_ck),
+       CLK(NULL,       "dbg_clka_ck",          &dbg_clka_ck),
+       CLK(NULL,       "stm_pmd_clock_mux_ck", &stm_pmd_clock_mux_ck),
+       CLK(NULL,       "trace_pmd_clk_mux_ck", &trace_pmd_clk_mux_ck),
+       CLK(NULL,       "stm_clk_div_ck",       &stm_clk_div_ck),
+       CLK(NULL,       "trace_clk_div_ck",     &trace_clk_div_ck),
+       CLK(NULL,       "clkout2_ck",           &clkout2_ck),
        CLK("48300200.ehrpwm",  "tbclk",        &ehrpwm0_tbclk),
        CLK("48302200.ehrpwm",  "tbclk",        &ehrpwm1_tbclk),
        CLK("48304200.ehrpwm",  "tbclk",        &ehrpwm2_tbclk),
@@ -982,6 +1020,7 @@ static const char *enable_init_clks[] = {
        "l4hs_gclk",
        "l4fw_gclk",
        "l4ls_gclk",
+       "clkout2_ck",   /* Required for external peripherals like, Audio codecs */
 };
 
 int __init am33xx_clk_init(void)
index f8d1912f103ec0ce3cd755b2a443a1ef0f210417..0adb2b85f830ff5d17b8285802b9feeef4fc9038 100644 (file)
@@ -492,6 +492,18 @@ config MACH_SMDK2416
        help
          Say Y here if you are using an SMDK2416
 
+config MACH_S3C2416_DT
+       bool "Samsung S3C2416 machine using devicetree"
+       select CLKSRC_OF
+       select USE_OF
+       select PINCTRL
+       select PINCTRL_S3C24XX
+       help
+         Machine support for Samsung S3C2416 machines with device tree enabled.
+         Select this if a fdt blob is available for the S3C2416 SoC based board.
+         Note: This is under development and not all peripherals can be supported
+         with this machine file.
+
 endif  # CPU_S3C2416
 
 if CPU_S3C2440
index 6f46ecfc83967ce893ad63a01d23ca8ac498e908..6de730bada4d3f37acb323bca4433b4eb1ac09cf 100644 (file)
@@ -85,6 +85,7 @@ obj-$(CONFIG_MACH_SMDK2413)           += mach-smdk2413.o
 obj-$(CONFIG_MACH_VSTMS)               += mach-vstms.o
 
 obj-$(CONFIG_MACH_SMDK2416)            += mach-smdk2416.o
+obj-$(CONFIG_MACH_S3C2416_DT)          += mach-s3c2416-dt.o
 
 obj-$(CONFIG_MACH_ANUBIS)              += mach-anubis.o
 obj-$(CONFIG_MACH_AT2440EVB)           += mach-at2440evb.o
diff --git a/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c b/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c
new file mode 100644 (file)
index 0000000..f50454a
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+ * Samsung's S3C2416 flattened device tree enabled machine
+ *
+ * Copyright (c) 2012 Heiko Stuebner <heiko@sntech.de>
+ *
+ * based on mach-exynos/mach-exynos4-dt.c
+ *
+ * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
+ *             http://www.samsung.com
+ * Copyright (c) 2010-2011 Linaro Ltd.
+ *             www.linaro.org
+ *
+ * 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 <linux/clocksource.h>
+#include <linux/irqchip.h>
+#include <linux/of_platform.h>
+#include <linux/serial_core.h>
+
+#include <asm/mach/arch.h>
+#include <mach/map.h>
+
+#include <plat/cpu.h>
+#include <plat/pm.h>
+#include <plat/regs-serial.h>
+
+#include "common.h"
+
+/*
+ * The following lookup table is used to override device names when devices
+ * are registered from device tree. This is temporarily added to enable
+ * device tree support addition for the S3C2416 architecture.
+ *
+ * For drivers that require platform data to be provided from the machine
+ * file, a platform data pointer can also be supplied along with the
+ * devices names. Usually, the platform data elements that cannot be parsed
+ * from the device tree by the drivers (example: function pointers) are
+ * supplied. But it should be noted that this is a temporary mechanism and
+ * at some point, the drivers should be capable of parsing all the platform
+ * data from the device tree.
+ */
+static const struct of_dev_auxdata s3c2416_auxdata_lookup[] __initconst = {
+       OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C24XX_PA_UART,
+                               "s3c2440-uart.0", NULL),
+       OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C24XX_PA_UART + 0x4000,
+                               "s3c2440-uart.1", NULL),
+       OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C24XX_PA_UART + 0x8000,
+                               "s3c2440-uart.2", NULL),
+       OF_DEV_AUXDATA("samsung,s3c2440-uart", S3C24XX_PA_UART + 0xC000,
+                               "s3c2440-uart.3", NULL),
+       OF_DEV_AUXDATA("samsung,s3c6410-sdhci", S3C_PA_HSMMC0,
+                               "s3c-sdhci.0", NULL),
+       OF_DEV_AUXDATA("samsung,s3c6410-sdhci", S3C_PA_HSMMC1,
+                               "s3c-sdhci.1", NULL),
+       OF_DEV_AUXDATA("samsung,s3c2440-i2c", S3C_PA_IIC,
+                               "s3c2440-i2c.0", NULL),
+       {},
+};
+
+static void __init s3c2416_dt_map_io(void)
+{
+       s3c24xx_init_io(NULL, 0);
+       s3c24xx_init_clocks(12000000);
+}
+
+static void __init s3c2416_dt_machine_init(void)
+{
+       of_platform_populate(NULL, of_default_bus_match_table,
+                               s3c2416_auxdata_lookup, NULL);
+
+       s3c_pm_init();
+}
+
+static char const *s3c2416_dt_compat[] __initdata = {
+       "samsung,s3c2416",
+       "samsung,s3c2450",
+       NULL
+};
+
+DT_MACHINE_START(S3C2416_DT, "Samsung S3C2416 (Flattened Device Tree)")
+       /* Maintainer: Heiko Stuebner <heiko@sntech.de> */
+       .dt_compat      = s3c2416_dt_compat,
+       .map_io         = s3c2416_dt_map_io,
+       .init_irq       = irqchip_init,
+       .init_machine   = s3c2416_dt_machine_init,
+        .init_time     = clocksource_of_init,
+       .restart        = s3c2416_restart,
+MACHINE_END
index 65e1547678b07ec08f6ffc43c2187fd3fc2855cb..db27e8eef19247bfabaebb147c90f7c7e7a6182a 100644 (file)
@@ -105,6 +105,20 @@ config MACH_ARMADILLO800EVA
        select SND_SOC_WM8978 if SND_SIMPLE_CARD
        select USE_OF
 
+config MACH_ARMADILLO800EVA_REFERENCE
+       bool "Armadillo-800 EVA board - Reference Device Tree Implementation"
+       depends on ARCH_R8A7740
+       select ARCH_REQUIRE_GPIOLIB
+       select REGULATOR_FIXED_VOLTAGE if REGULATOR
+       select SND_SOC_WM8978 if SND_SIMPLE_CARD
+       select USE_OF
+       ---help---
+          Use reference implementation of Aramdillo800 EVA board support
+          which makes a greater use of device tree at the expense
+          of not supporting a number of devices.
+
+          This is intended to aid developers
+
 config MACH_BOCKW
        bool "BOCK-W platform"
        depends on ARCH_R8A7778
index 76f1639c594541ec2203c0ffa2a506aa19c49ff7..6165a517f5806228ec6e09ba8aace908f45458ce 100644 (file)
@@ -44,6 +44,7 @@ obj-$(CONFIG_MACH_MARZEN)     += board-marzen.o
 obj-$(CONFIG_MACH_MARZEN_REFERENCE)    += board-marzen-reference.o
 obj-$(CONFIG_MACH_LAGER)       += board-lager.o
 obj-$(CONFIG_MACH_ARMADILLO800EVA)     += board-armadillo800eva.o
+obj-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE)   += board-armadillo800eva-reference.o
 obj-$(CONFIG_MACH_KZM9D)       += board-kzm9d.o
 obj-$(CONFIG_MACH_KZM9G)       += board-kzm9g.o
 obj-$(CONFIG_MACH_KZM9G_REFERENCE)     += board-kzm9g-reference.o
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva-reference.c b/arch/arm/mach-shmobile/board-armadillo800eva-reference.c
new file mode 100644 (file)
index 0000000..03b85fe
--- /dev/null
@@ -0,0 +1,213 @@
+/*
+ * armadillo 800 eva board support
+ *
+ * Copyright (C) 2012 Renesas Solutions Corp.
+ * Copyright (C) 2012 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+ *
+ * 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; version 2 of the License.
+ *
+ * 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 St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#include <linux/clk.h>
+#include <linux/err.h>
+#include <linux/kernel.h>
+#include <linux/gpio.h>
+#include <linux/io.h>
+#include <linux/pinctrl/machine.h>
+#include <mach/common.h>
+#include <mach/r8a7740.h>
+#include <asm/mach/arch.h>
+#include <asm/hardware/cache-l2x0.h>
+
+/*
+ * CON1                Camera Module
+ * CON2                Extension Bus
+ * CON3                HDMI Output
+ * CON4                Composite Video Output
+ * CON5                H-UDI JTAG
+ * CON6                ARM JTAG
+ * CON7                SD1
+ * CON8                SD2
+ * CON9                RTC BackUp
+ * CON10       Monaural Mic Input
+ * CON11       Stereo Headphone Output
+ * CON12       Audio Line Output(L)
+ * CON13       Audio Line Output(R)
+ * CON14       AWL13 Module
+ * CON15       Extension
+ * CON16       LCD1
+ * CON17       LCD2
+ * CON19       Power Input
+ * CON20       USB1
+ * CON21       USB2
+ * CON22       Serial
+ * CON23       LAN
+ * CON24       USB3
+ * LED1                Camera LED(Yellow)
+ * LED2                Power LED (Green)
+ * ED3-LED6    User LED(Yellow)
+ * LED7                LAN link LED(Green)
+ * LED8                LAN activity LED(Yellow)
+ */
+
+/*
+ * DipSwitch
+ *
+ *                    SW1
+ *
+ * -12345678-+---------------+----------------------------
+ *  1        | boot          | hermit
+ *  0        | boot          | OS auto boot
+ * -12345678-+---------------+----------------------------
+ *   00      | boot device   | eMMC
+ *   10      | boot device   | SDHI0 (CON7)
+ *   01      | boot device   | -
+ *   11      | boot device   | Extension Buss (CS0)
+ * -12345678-+---------------+----------------------------
+ *     0     | Extension Bus | D8-D15 disable, eMMC enable
+ *     1     | Extension Bus | D8-D15 enable,  eMMC disable
+ * -12345678-+---------------+----------------------------
+ *      0    | SDHI1         | COM8 disable, COM14 enable
+ *      1    | SDHI1         | COM8 enable,  COM14 disable
+ * -12345678-+---------------+----------------------------
+ *       0   | USB0          | COM20 enable,  COM24 disable
+ *       1   | USB0          | COM20 disable, COM24 enable
+ * -12345678-+---------------+----------------------------
+ *        00 | JTAG          | SH-X2
+ *        10 | JTAG          | ARM
+ *        01 | JTAG          | -
+ *        11 | JTAG          | Boundary Scan
+ *-----------+---------------+----------------------------
+ */
+
+/*
+ * FSI-WM8978
+ *
+ * this command is required when playback.
+ *
+ * # amixer set "Headphone" 50
+ *
+ * this command is required when capture.
+ *
+ * # amixer set "Input PGA" 15
+ * # amixer set "Left Input Mixer MicP" on
+ * # amixer set "Left Input Mixer MicN" on
+ * # amixer set "Right Input Mixer MicN" on
+ * # amixer set "Right Input Mixer MicP" on
+ */
+
+/*
+ * USB function
+ *
+ * When you use USB Function,
+ * set SW1.6 ON, and connect cable to CN24.
+ *
+ * USBF needs workaround on R8A7740 chip.
+ * These are a little bit complex.
+ * see
+ *     usbhsf_power_ctrl()
+ */
+
+static const struct pinctrl_map eva_pinctrl_map[] = {
+       /* SCIFA1 */
+       PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.1", "pfc-r8a7740",
+                                 "scifa1_data", "scifa1"),
+};
+
+static void __init eva_clock_init(void)
+{
+       struct clk *system      = clk_get(NULL, "system_clk");
+       struct clk *xtal1       = clk_get(NULL, "extal1");
+       struct clk *usb24s      = clk_get(NULL, "usb24s");
+       struct clk *fsibck      = clk_get(NULL, "fsibck");
+
+       if (IS_ERR(system)      ||
+           IS_ERR(xtal1)       ||
+           IS_ERR(usb24s)      ||
+           IS_ERR(fsibck)) {
+               pr_err("armadillo800eva board clock init failed\n");
+               goto clock_error;
+       }
+
+       /* armadillo 800 eva extal1 is 24MHz */
+       clk_set_rate(xtal1, 24000000);
+
+       /* usb24s use extal1 (= system) clock (= 24MHz) */
+       clk_set_parent(usb24s, system);
+
+       /* FSIBCK is 12.288MHz, and it is parent of FSI-B */
+       clk_set_rate(fsibck, 12288000);
+
+clock_error:
+       if (!IS_ERR(system))
+               clk_put(system);
+       if (!IS_ERR(xtal1))
+               clk_put(xtal1);
+       if (!IS_ERR(usb24s))
+               clk_put(usb24s);
+       if (!IS_ERR(fsibck))
+               clk_put(fsibck);
+}
+
+/*
+ * board init
+ */
+static void __init eva_init(void)
+{
+
+       r8a7740_clock_init(MD_CK0 | MD_CK2);
+       eva_clock_init();
+
+       pinctrl_register_mappings(eva_pinctrl_map, ARRAY_SIZE(eva_pinctrl_map));
+       r8a7740_pinmux_init();
+
+       r8a7740_meram_workaround();
+
+       /*
+        * Touchscreen
+        * TODO: Move reset GPIO over to .dts when we can reference it
+        */
+       gpio_request_one(166, GPIOF_OUT_INIT_HIGH, NULL); /* TP_RST_B */
+
+#ifdef CONFIG_CACHE_L2X0
+       /* Early BRESP enable, Shared attribute override enable, 32K*8way */
+       l2x0_init(IOMEM(0xf0002000), 0x40440000, 0x82000fff);
+#endif
+
+       r8a7740_add_standard_devices_dt();
+       r8a7740_pm_init();
+}
+
+#define RESCNT2 IOMEM(0xe6188020)
+static void eva_restart(char mode, const char *cmd)
+{
+       /* Do soft power on reset */
+       writel((1 << 31), RESCNT2);
+}
+
+static const char *eva_boards_compat_dt[] __initdata = {
+       "renesas,armadillo800eva-reference",
+       NULL,
+};
+
+DT_MACHINE_START(ARMADILLO800EVA_DT, "armadillo800eva-reference")
+       .map_io         = r8a7740_map_io,
+       .init_early     = r8a7740_init_delay,
+       .init_irq       = r8a7740_init_irq_of,
+       .init_machine   = eva_init,
+       .init_time      = shmobile_timer_init,
+       .init_late      = shmobile_init_late,
+       .dt_compat      = eva_boards_compat_dt,
+       .restart        = eva_restart,
+MACHINE_END
index 9c9a66ccaf6f7db7657a8318832d5d0a5ec9b702..b34d19b5ca5c582bc50f22727122cba93fa766bf 100644 (file)
@@ -45,10 +45,13 @@ enum {
 };
 
 extern void r8a7740_meram_workaround(void);
+extern void r8a7740_init_delay(void);
 extern void r8a7740_init_irq(void);
+extern void r8a7740_init_irq_of(void);
 extern void r8a7740_map_io(void);
 extern void r8a7740_add_early_devices(void);
 extern void r8a7740_add_standard_devices(void);
+extern void r8a7740_add_standard_devices_dt(void);
 extern void r8a7740_clock_init(u8 md_ck);
 extern void r8a7740_pinmux_init(void);
 extern void r8a7740_pm_init(void);
index b741c8409a5a5e0f9eb219ee8dba3d0ad3147dc4..8871f7717dc8ff7d05b631b2c2b5d027dd5eff4b 100644 (file)
 
 #include <linux/init.h>
 #include <linux/io.h>
+#include <linux/irqchip.h>
 #include <linux/irqchip/arm-gic.h>
 
-void __init r8a7740_init_irq(void)
+static void __init r8a7740_init_irq_common(void)
 {
-       void __iomem *gic_dist_base = ioremap_nocache(0xc2800000, 0x1000);
-       void __iomem *gic_cpu_base = ioremap_nocache(0xc2000000, 0x1000);
        void __iomem *intc_prio_base = ioremap_nocache(0xe6900010, 0x10);
        void __iomem *intc_msk_base = ioremap_nocache(0xe6900040, 0x10);
        void __iomem *pfc_inta_ctrl = ioremap_nocache(0xe605807c, 0x4);
 
-       /* initialize the Generic Interrupt Controller PL390 r0p0 */
-       gic_init(0, 29, gic_dist_base, gic_cpu_base);
-
        /* route signals to GIC */
        iowrite32(0x0, pfc_inta_ctrl);
 
@@ -54,3 +50,19 @@ void __init r8a7740_init_irq(void)
        iounmap(intc_msk_base);
        iounmap(pfc_inta_ctrl);
 }
+
+void __init r8a7740_init_irq_of(void)
+{
+       irqchip_init();
+       r8a7740_init_irq_common();
+}
+
+void __init r8a7740_init_irq(void)
+{
+       void __iomem *gic_dist_base = ioremap_nocache(0xc2800000, 0x1000);
+       void __iomem *gic_cpu_base = ioremap_nocache(0xc2000000, 0x1000);
+
+       /* initialize the Generic Interrupt Controller PL390 r0p0 */
+       gic_init(0, 29, gic_dist_base, gic_cpu_base);
+       r8a7740_init_irq_common();
+}
index 3a6b6fe7b6c098bed8ecd22101e137fb7d568ceb..00c5a707238bf740eda55e2e91c75b8ca1a381d5 100644 (file)
@@ -517,11 +517,7 @@ static struct platform_device ipmmu_device = {
        .num_resources  = ARRAY_SIZE(ipmmu_resources),
 };
 
-static struct platform_device *r8a7740_early_devices[] __initdata = {
-       &irqpin0_device,
-       &irqpin1_device,
-       &irqpin2_device,
-       &irqpin3_device,
+static struct platform_device *r8a7740_devices_dt[] __initdata = {
        &scif0_device,
        &scif1_device,
        &scif2_device,
@@ -532,6 +528,13 @@ static struct platform_device *r8a7740_early_devices[] __initdata = {
        &scif7_device,
        &scifb_device,
        &cmt10_device,
+};
+
+static struct platform_device *r8a7740_early_devices[] __initdata = {
+       &irqpin0_device,
+       &irqpin1_device,
+       &irqpin2_device,
+       &irqpin3_device,
        &tmu00_device,
        &tmu01_device,
        &tmu02_device,
@@ -951,6 +954,8 @@ void __init r8a7740_add_standard_devices(void)
        /* add devices */
        platform_add_devices(r8a7740_early_devices,
                            ARRAY_SIZE(r8a7740_early_devices));
+       platform_add_devices(r8a7740_devices_dt,
+                           ARRAY_SIZE(r8a7740_devices_dt));
        platform_add_devices(r8a7740_late_devices,
                             ARRAY_SIZE(r8a7740_late_devices));
 
@@ -972,6 +977,8 @@ void __init r8a7740_add_early_devices(void)
 {
        early_platform_add_devices(r8a7740_early_devices,
                                   ARRAY_SIZE(r8a7740_early_devices));
+       early_platform_add_devices(r8a7740_devices_dt,
+                                  ARRAY_SIZE(r8a7740_devices_dt));
 
        /* setup early console here as well */
        shmobile_setup_console();
@@ -979,33 +986,29 @@ void __init r8a7740_add_early_devices(void)
 
 #ifdef CONFIG_USE_OF
 
-void __init r8a7740_add_early_devices_dt(void)
-{
-       shmobile_setup_delay(800, 1, 3); /* Cortex-A9 @ 800MHz */
-
-       early_platform_add_devices(r8a7740_early_devices,
-                                  ARRAY_SIZE(r8a7740_early_devices));
-
-       /* setup early console here as well */
-       shmobile_setup_console();
-}
-
 static const struct of_dev_auxdata r8a7740_auxdata_lookup[] __initconst = {
        { }
 };
 
 void __init r8a7740_add_standard_devices_dt(void)
 {
-       /* clocks are setup late during boot in the case of DT */
-       r8a7740_clock_init(0);
-
-       platform_add_devices(r8a7740_early_devices,
-                           ARRAY_SIZE(r8a7740_early_devices));
-
+       platform_add_devices(r8a7740_devices_dt,
+                           ARRAY_SIZE(r8a7740_devices_dt));
        of_platform_populate(NULL, of_default_bus_match_table,
                             r8a7740_auxdata_lookup, NULL);
 }
 
+void __init r8a7740_init_delay(void)
+{
+       shmobile_setup_delay(800, 1, 3); /* Cortex-A9 @ 800MHz */
+};
+
+static void __init r8a7740_generic_init(void)
+{
+       r8a7740_clock_init(0);
+       r8a7740_add_standard_devices_dt();
+}
+
 static const char *r8a7740_boards_compat_dt[] __initdata = {
        "renesas,r8a7740",
        NULL,
@@ -1013,9 +1016,10 @@ static const char *r8a7740_boards_compat_dt[] __initdata = {
 
 DT_MACHINE_START(R8A7740_DT, "Generic R8A7740 (Flattened Device Tree)")
        .map_io         = r8a7740_map_io,
-       .init_early     = r8a7740_add_early_devices_dt,
-       .init_irq       = r8a7740_init_irq,
-       .init_machine   = r8a7740_add_standard_devices_dt,
+       .init_early     = r8a7740_init_delay,
+       .init_irq       = r8a7740_init_irq_of,
+       .init_machine   = r8a7740_generic_init,
+       .init_time      = shmobile_timer_init,
        .dt_compat      = r8a7740_boards_compat_dt,
 MACHINE_END
 
index 46cca52890bcfd486f30018556059c12bcf22391..7669a49fb6fbadc5c084def099100315dec192e4 100644 (file)
@@ -274,11 +274,16 @@ static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
        OF_DEV_AUXDATA("st,nomadik-i2c", 0x80128000, "nmk-i2c.2", NULL),
        OF_DEV_AUXDATA("st,nomadik-i2c", 0x80110000, "nmk-i2c.3", NULL),
        OF_DEV_AUXDATA("st,nomadik-i2c", 0x8012a000, "nmk-i2c.4", NULL),
+       OF_DEV_AUXDATA("stericsson,db8500-musb", 0xa03e0000, "musb-ux500.0", NULL),
        OF_DEV_AUXDATA("stericsson,db8500-prcmu", 0x80157000, "db8500-prcmu",
                        &db8500_prcmu_pdata),
        OF_DEV_AUXDATA("smsc,lan9115", 0x50000000, "smsc911x.0", NULL),
+       OF_DEV_AUXDATA("stericsson,ux500-cryp", 0xa03cb000, "cryp1", NULL),
+       OF_DEV_AUXDATA("stericsson,ux500-hash", 0xa03c2000, "hash1", NULL),
+       OF_DEV_AUXDATA("stericsson,snd-soc-mop500", 0, "snd-soc-mop500.0",
+                       NULL),
        /* Requires device name bindings. */
-       OF_DEV_AUXDATA("stericsson,nmk-pinctrl", U8500_PRCMU_BASE,
+       OF_DEV_AUXDATA("stericsson,db8500-pinctrl", U8500_PRCMU_BASE,
                "pinctrl-db8500", NULL),
        /* Requires clock name and DMA bindings. */
        OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80123000,
@@ -292,6 +297,16 @@ static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
        {},
 };
 
+static struct of_dev_auxdata u8540_auxdata_lookup[] __initdata = {
+       /* Requires DMA bindings. */
+       OF_DEV_AUXDATA("arm,pl011", 0x80120000, "uart0", NULL),
+       OF_DEV_AUXDATA("arm,pl011", 0x80121000, "uart1", NULL),
+       OF_DEV_AUXDATA("arm,pl011", 0x80007000, "uart2", NULL),
+       OF_DEV_AUXDATA("stericsson,db8500-prcmu", 0x80157000, "db8500-prcmu",
+                       &db8500_prcmu_pdata),
+       {},
+};
+
 static const struct of_device_id u8500_local_bus_nodes[] = {
        /* only create devices below soc node */
        { .compatible = "stericsson,db8500", },
@@ -318,8 +333,13 @@ static void __init u8500_init_machine(void)
        /* TODO: Export SoC, USB, cpu-freq and DMA40 */
        parent = u8500_of_init_devices();
 
-       /* automatically probe child nodes of db8500 device */
-       of_platform_populate(NULL, u8500_local_bus_nodes, u8500_auxdata_lookup, parent);
+       /* automatically probe child nodes of dbx5x0 devices */
+       if (of_machine_is_compatible("st-ericsson,u8540"))
+               of_platform_populate(NULL, u8500_local_bus_nodes,
+                                    u8540_auxdata_lookup, parent);
+       else
+               of_platform_populate(NULL, u8500_local_bus_nodes,
+                                    u8500_auxdata_lookup, parent);
 }
 
 static const char * stericsson_dt_platform_compat[] = {
index 4c0199b88a0486e5d22c13d6600023f7ac80deb6..4130e65a0e3f6fec890c45704ce83e47e6badc50 100644 (file)
@@ -97,7 +97,6 @@ static void zynq_system_reset(char mode, const char *cmd)
 }
 
 static const char * const zynq_dt_match[] = {
-       "xlnx,zynq-zc702",
        "xlnx,zynq-7000",
        NULL
 };
index 5286e2d333b09752b0bf7a342dc63f4650b29f63..1f70e84b442cc2ddc5f15acf1d4ce6b2bc04112f 100644 (file)
@@ -4,6 +4,15 @@
 
 menu "Bus devices"
 
+config IMX_WEIM
+       bool "Freescale EIM DRIVER"
+       depends on ARCH_MXC
+       help
+         Driver for i.MX6 WEIM controller.
+         The WEIM(Wireless External Interface Module) works like a bus.
+         You can attach many different devices on it, such as NOR, onenand.
+         But now, we only support the Parallel NOR.
+
 config MVEBU_MBUS
        bool
        depends on PLAT_ORION
index 670cea4438023cce1d71d2f62af509855ccee694..8947bdd0de8bb2c0fdfc918e8dc9d166b6af81fa 100644 (file)
@@ -2,6 +2,7 @@
 # Makefile for the bus drivers.
 #
 
+obj-$(CONFIG_IMX_WEIM) += imx-weim.o
 obj-$(CONFIG_MVEBU_MBUS) += mvebu-mbus.o
 obj-$(CONFIG_OMAP_OCP2SCP)     += omap-ocp2scp.o
 
diff --git a/drivers/bus/imx-weim.c b/drivers/bus/imx-weim.c
new file mode 100644 (file)
index 0000000..349f14e
--- /dev/null
@@ -0,0 +1,138 @@
+/*
+ * EIM driver for Freescale's i.MX chips
+ *
+ * Copyright (C) 2013 Freescale Semiconductor, Inc.
+ *
+ * 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 <linux/module.h>
+#include <linux/clk.h>
+#include <linux/io.h>
+#include <linux/of_device.h>
+
+struct imx_weim {
+       void __iomem *base;
+       struct clk *clk;
+};
+
+static const struct of_device_id weim_id_table[] = {
+       { .compatible = "fsl,imx6q-weim", },
+       {}
+};
+MODULE_DEVICE_TABLE(of, weim_id_table);
+
+#define CS_TIMING_LEN 6
+#define CS_REG_RANGE  0x18
+
+/* Parse and set the timing for this device. */
+static int
+weim_timing_setup(struct platform_device *pdev, struct device_node *np)
+{
+       struct imx_weim *weim = platform_get_drvdata(pdev);
+       u32 value[CS_TIMING_LEN];
+       u32 cs_idx;
+       int ret;
+       int i;
+
+       /* get the CS index from this child node's "reg" property. */
+       ret = of_property_read_u32(np, "reg", &cs_idx);
+       if (ret)
+               return ret;
+
+       /* The weim has four chip selects. */
+       if (cs_idx > 3)
+               return -EINVAL;
+
+       ret = of_property_read_u32_array(np, "fsl,weim-cs-timing",
+                                       value, CS_TIMING_LEN);
+       if (ret)
+               return ret;
+
+       /* set the timing for WEIM */
+       for (i = 0; i < CS_TIMING_LEN; i++)
+               writel(value[i], weim->base + cs_idx * CS_REG_RANGE + i * 4);
+       return 0;
+}
+
+static int weim_parse_dt(struct platform_device *pdev)
+{
+       struct device_node *child;
+       int ret;
+
+       for_each_child_of_node(pdev->dev.of_node, child) {
+               if (!child->name)
+                       continue;
+
+               ret = weim_timing_setup(pdev, child);
+               if (ret) {
+                       dev_err(&pdev->dev, "%s set timing failed.\n",
+                               child->full_name);
+                       return ret;
+               }
+       }
+
+       ret = of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev);
+       if (ret)
+               dev_err(&pdev->dev, "%s fail to create devices.\n",
+                       pdev->dev.of_node->full_name);
+       return ret;
+}
+
+static int weim_probe(struct platform_device *pdev)
+{
+       struct imx_weim *weim;
+       struct resource *res;
+       int ret = -EINVAL;
+
+       weim = devm_kzalloc(&pdev->dev, sizeof(*weim), GFP_KERNEL);
+       if (!weim) {
+               ret = -ENOMEM;
+               goto weim_err;
+       }
+       platform_set_drvdata(pdev, weim);
+
+       /* get the resource */
+       res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+       weim->base = devm_ioremap_resource(&pdev->dev, res);
+       if (IS_ERR(weim->base)) {
+               ret = PTR_ERR(weim->base);
+               goto weim_err;
+       }
+
+       /* get the clock */
+       weim->clk = devm_clk_get(&pdev->dev, NULL);
+       if (IS_ERR(weim->clk))
+               goto weim_err;
+
+       ret = clk_prepare_enable(weim->clk);
+       if (ret)
+               goto weim_err;
+
+       /* parse the device node */
+       ret = weim_parse_dt(pdev);
+       if (ret) {
+               clk_disable_unprepare(weim->clk);
+               goto weim_err;
+       }
+
+       dev_info(&pdev->dev, "WEIM driver registered.\n");
+       return 0;
+
+weim_err:
+       return ret;
+}
+
+static struct platform_driver weim_driver = {
+       .driver = {
+               .name = "imx-weim",
+               .of_match_table = weim_id_table,
+       },
+       .probe   = weim_probe,
+};
+
+module_platform_driver(weim_driver);
+MODULE_AUTHOR("Freescale Semiconductor Inc.");
+MODULE_DESCRIPTION("i.MX EIM Controller Driver");
+MODULE_LICENSE("GPL");
index 6b4c70f7d23d4dfa99b5e566185e9e20b17397bf..6d819a37f647cb6fb85d64f95d8729fc0fb6145c 100644 (file)
+/*
+ * Nomadik clock implementation
+ * Copyright (C) 2013 ST-Ericsson AB
+ * License terms: GNU General Public License (GPL) version 2
+ * Author: Linus Walleij <linus.walleij@linaro.org>
+ */
+
+#define pr_fmt(fmt) "Nomadik SRC clocks: " fmt
+
+#include <linux/bitops.h>
 #include <linux/clk.h>
 #include <linux/clkdev.h>
 #include <linux/err.h>
 #include <linux/io.h>
 #include <linux/clk-provider.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/debugfs.h>
+#include <linux/seq_file.h>
+#include <linux/spinlock.h>
+#include <linux/reboot.h>
 
 /*
  * The Nomadik clock tree is described in the STN8815A12 DB V4.2
  * reference manual for the chip, page 94 ff.
+ * Clock IDs are in the STn8815 Reference Manual table 3, page 27.
  */
 
-void __init nomadik_clk_init(void)
+#define SRC_CR                 0x00U
+#define SRC_XTALCR             0x0CU
+#define SRC_XTALCR_XTALTIMEN   BIT(20)
+#define SRC_XTALCR_SXTALDIS    BIT(19)
+#define SRC_XTALCR_MXTALSTAT   BIT(2)
+#define SRC_XTALCR_MXTALEN     BIT(1)
+#define SRC_XTALCR_MXTALOVER   BIT(0)
+#define SRC_PLLCR              0x10U
+#define SRC_PLLCR_PLLTIMEN     BIT(29)
+#define SRC_PLLCR_PLL2EN       BIT(28)
+#define SRC_PLLCR_PLL1STAT     BIT(2)
+#define SRC_PLLCR_PLL1EN       BIT(1)
+#define SRC_PLLCR_PLL1OVER     BIT(0)
+#define SRC_PLLFR              0x14U
+#define SRC_PCKEN0             0x24U
+#define SRC_PCKDIS0            0x28U
+#define SRC_PCKENSR0           0x2CU
+#define SRC_PCKSR0             0x30U
+#define SRC_PCKEN1             0x34U
+#define SRC_PCKDIS1            0x38U
+#define SRC_PCKENSR1           0x3CU
+#define SRC_PCKSR1             0x40U
+
+/* Lock protecting the SRC_CR register */
+static DEFINE_SPINLOCK(src_lock);
+/* Base address of the SRC */
+static void __iomem *src_base;
+
+/**
+ * struct clk_pll1 - Nomadik PLL1 clock
+ * @hw: corresponding clock hardware entry
+ * @id: PLL instance: 1 or 2
+ */
+struct clk_pll {
+       struct clk_hw hw;
+       int id;
+};
+
+/**
+ * struct clk_src - Nomadik src clock
+ * @hw: corresponding clock hardware entry
+ * @id: the clock ID
+ * @group1: true if the clock is in group1, else it is in group0
+ * @clkbit: bit 0...31 corresponding to the clock in each clock register
+ */
+struct clk_src {
+       struct clk_hw hw;
+       int id;
+       bool group1;
+       u32 clkbit;
+};
+
+#define to_pll(_hw) container_of(_hw, struct clk_pll, hw)
+#define to_src(_hw) container_of(_hw, struct clk_src, hw)
+
+static int pll_clk_enable(struct clk_hw *hw)
+{
+       struct clk_pll *pll = to_pll(hw);
+       u32 val;
+
+       spin_lock(&src_lock);
+       val = readl(src_base + SRC_PLLCR);
+       if (pll->id == 1) {
+               if (val & SRC_PLLCR_PLL1OVER) {
+                       val |= SRC_PLLCR_PLL1EN;
+                       writel(val, src_base + SRC_PLLCR);
+               }
+       } else if (pll->id == 2) {
+               val |= SRC_PLLCR_PLL2EN;
+               writel(val, src_base + SRC_PLLCR);
+       }
+       spin_unlock(&src_lock);
+       return 0;
+}
+
+static void pll_clk_disable(struct clk_hw *hw)
+{
+       struct clk_pll *pll = to_pll(hw);
+       u32 val;
+
+       spin_lock(&src_lock);
+       val = readl(src_base + SRC_PLLCR);
+       if (pll->id == 1) {
+               if (val & SRC_PLLCR_PLL1OVER) {
+                       val &= ~SRC_PLLCR_PLL1EN;
+                       writel(val, src_base + SRC_PLLCR);
+               }
+       } else if (pll->id == 2) {
+               val &= ~SRC_PLLCR_PLL2EN;
+               writel(val, src_base + SRC_PLLCR);
+       }
+       spin_unlock(&src_lock);
+}
+
+static int pll_clk_is_enabled(struct clk_hw *hw)
+{
+       struct clk_pll *pll = to_pll(hw);
+       u32 val;
+
+       val = readl(src_base + SRC_PLLCR);
+       if (pll->id == 1) {
+               if (val & SRC_PLLCR_PLL1OVER)
+                       return !!(val & SRC_PLLCR_PLL1EN);
+       } else if (pll->id == 2) {
+               return !!(val & SRC_PLLCR_PLL2EN);
+       }
+       return 1;
+}
+
+static unsigned long pll_clk_recalc_rate(struct clk_hw *hw,
+                                         unsigned long parent_rate)
+{
+       struct clk_pll *pll = to_pll(hw);
+       u32 val;
+
+       val = readl(src_base + SRC_PLLFR);
+
+       if (pll->id == 1) {
+               u8 mul;
+               u8 div;
+
+               mul = (val >> 8) & 0x3FU;
+               mul += 2;
+               div = val & 0x07U;
+               return (parent_rate * mul) >> div;
+       }
+
+       if (pll->id == 2) {
+               u8 mul;
+
+               mul = (val >> 24) & 0x3FU;
+               mul += 2;
+               return (parent_rate * mul);
+       }
+
+       /* Unknown PLL */
+       return 0;
+}
+
+
+static const struct clk_ops pll_clk_ops = {
+       .enable = pll_clk_enable,
+       .disable = pll_clk_disable,
+       .is_enabled = pll_clk_is_enabled,
+       .recalc_rate = pll_clk_recalc_rate,
+};
+
+static struct clk * __init
+pll_clk_register(struct device *dev, const char *name,
+                const char *parent_name, u32 id)
 {
        struct clk *clk;
+       struct clk_pll *pll;
+       struct clk_init_data init;
 
-       clk = clk_register_fixed_rate(NULL, "apb_pclk", NULL, CLK_IS_ROOT, 0);
-       clk_register_clkdev(clk, "apb_pclk", NULL);
-       clk_register_clkdev(clk, NULL, "gpio.0");
-       clk_register_clkdev(clk, NULL, "gpio.1");
-       clk_register_clkdev(clk, NULL, "gpio.2");
-       clk_register_clkdev(clk, NULL, "gpio.3");
-       clk_register_clkdev(clk, NULL, "rng");
-       clk_register_clkdev(clk, NULL, "fsmc-nand");
+       if (id != 1 && id != 2) {
+               pr_err("%s: the Nomadik has only PLL 1 & 2\n", __func__);
+               return ERR_PTR(-EINVAL);
+       }
 
-       /*
-        * The 2.4 MHz TIMCLK reference clock is active at boot time, this is
-        * actually the MXTALCLK @19.2 MHz divided by 8. This clock is used
-        * by the timers and watchdog. See page 105 ff.
-        */
-       clk = clk_register_fixed_rate(NULL, "TIMCLK", NULL, CLK_IS_ROOT,
-                                     2400000);
-       clk_register_clkdev(clk, NULL, "mtu0");
-       clk_register_clkdev(clk, NULL, "mtu1");
+       pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+       if (!pll) {
+               pr_err("%s: could not allocate PLL clk\n", __func__);
+               return ERR_PTR(-ENOMEM);
+       }
+
+       init.name = name;
+       init.ops = &pll_clk_ops;
+       init.parent_names = (parent_name ? &parent_name : NULL);
+       init.num_parents = (parent_name ? 1 : 0);
+       pll->hw.init = &init;
+       pll->id = id;
+
+       pr_debug("register PLL1 clock \"%s\"\n", name);
+
+       clk = clk_register(dev, &pll->hw);
+       if (IS_ERR(clk))
+               kfree(pll);
+
+       return clk;
+}
+
+/*
+ * The Nomadik SRC clocks are gated, but not in the sense that
+ * you read-modify-write a register. Instead there are separate
+ * clock enable and clock disable registers. Writing a '1' bit in
+ * the enable register for a certain clock ungates that clock without
+ * affecting the other clocks. The disable register works the opposite
+ * way.
+ */
+
+static int src_clk_enable(struct clk_hw *hw)
+{
+       struct clk_src *sclk = to_src(hw);
+       u32 enreg = sclk->group1 ? SRC_PCKEN1 : SRC_PCKEN0;
+       u32 sreg = sclk->group1 ? SRC_PCKSR1 : SRC_PCKSR0;
+
+       writel(sclk->clkbit, src_base + enreg);
+       /* spin until enabled */
+       while (!(readl(src_base + sreg) & sclk->clkbit))
+               cpu_relax();
+       return 0;
+}
+
+static void src_clk_disable(struct clk_hw *hw)
+{
+       struct clk_src *sclk = to_src(hw);
+       u32 disreg = sclk->group1 ? SRC_PCKDIS1 : SRC_PCKDIS0;
+       u32 sreg = sclk->group1 ? SRC_PCKSR1 : SRC_PCKSR0;
+
+       writel(sclk->clkbit, src_base + disreg);
+       /* spin until disabled */
+       while (readl(src_base + sreg) & sclk->clkbit)
+               cpu_relax();
+}
+
+static int src_clk_is_enabled(struct clk_hw *hw)
+{
+       struct clk_src *sclk = to_src(hw);
+       u32 sreg = sclk->group1 ? SRC_PCKSR1 : SRC_PCKSR0;
+       u32 val = readl(src_base + sreg);
 
+       return !!(val & sclk->clkbit);
+}
+
+static unsigned long
+src_clk_recalc_rate(struct clk_hw *hw,
+                   unsigned long parent_rate)
+{
+       return parent_rate;
+}
+
+static const struct clk_ops src_clk_ops = {
+       .enable = src_clk_enable,
+       .disable = src_clk_disable,
+       .is_enabled = src_clk_is_enabled,
+       .recalc_rate = src_clk_recalc_rate,
+};
+
+static struct clk * __init
+src_clk_register(struct device *dev, const char *name,
+                const char *parent_name, u8 id)
+{
+       struct clk *clk;
+       struct clk_src *sclk;
+       struct clk_init_data init;
+
+       sclk = kzalloc(sizeof(*sclk), GFP_KERNEL);
+       if (!sclk) {
+               pr_err("could not allocate SRC clock %s\n",
+                       name);
+               return ERR_PTR(-ENOMEM);
+       }
+       init.name = name;
+       init.ops = &src_clk_ops;
+       /* Do not force-disable the static SDRAM controller */
+       if (id == 2)
+               init.flags = CLK_IGNORE_UNUSED;
+       else
+               init.flags = 0;
+       init.parent_names = (parent_name ? &parent_name : NULL);
+       init.num_parents = (parent_name ? 1 : 0);
+       sclk->hw.init = &init;
+       sclk->id = id;
+       sclk->group1 = (id > 31);
+       sclk->clkbit = BIT(id & 0x1f);
+
+       pr_debug("register clock \"%s\" ID: %d group: %d bits: %08x\n",
+                name, id, sclk->group1, sclk->clkbit);
+
+       clk = clk_register(dev, &sclk->hw);
+       if (IS_ERR(clk))
+               kfree(sclk);
+
+       return clk;
+}
+
+#ifdef CONFIG_DEBUG_FS
+
+static u32 src_pcksr0_boot;
+static u32 src_pcksr1_boot;
+
+static const char * const src_clk_names[] = {
+       "HCLKDMA0  ",
+       "HCLKSMC   ",
+       "HCLKSDRAM ",
+       "HCLKDMA1  ",
+       "HCLKCLCD  ",
+       "PCLKIRDA  ",
+       "PCLKSSP   ",
+       "PCLKUART0 ",
+       "PCLKSDI   ",
+       "PCLKI2C0  ",
+       "PCLKI2C1  ",
+       "PCLKUART1 ",
+       "PCLMSP0   ",
+       "HCLKUSB   ",
+       "HCLKDIF   ",
+       "HCLKSAA   ",
+       "HCLKSVA   ",
+       "PCLKHSI   ",
+       "PCLKXTI   ",
+       "PCLKUART2 ",
+       "PCLKMSP1  ",
+       "PCLKMSP2  ",
+       "PCLKOWM   ",
+       "HCLKHPI   ",
+       "PCLKSKE   ",
+       "PCLKHSEM  ",
+       "HCLK3D    ",
+       "HCLKHASH  ",
+       "HCLKCRYP  ",
+       "PCLKMSHC  ",
+       "HCLKUSBM  ",
+       "HCLKRNG   ",
+       "RESERVED  ",
+       "RESERVED  ",
+       "RESERVED  ",
+       "RESERVED  ",
+       "CLDCLK    ",
+       "IRDACLK   ",
+       "SSPICLK   ",
+       "UART0CLK  ",
+       "SDICLK    ",
+       "I2C0CLK   ",
+       "I2C1CLK   ",
+       "UART1CLK  ",
+       "MSPCLK0   ",
+       "USBCLK    ",
+       "DIFCLK    ",
+       "IPI2CCLK  ",
+       "IPBMCCLK  ",
+       "HSICLKRX  ",
+       "HSICLKTX  ",
+       "UART2CLK  ",
+       "MSPCLK1   ",
+       "MSPCLK2   ",
+       "OWMCLK    ",
+       "RESERVED  ",
+       "SKECLK    ",
+       "RESERVED  ",
+       "3DCLK     ",
+       "PCLKMSP3  ",
+       "MSPCLK3   ",
+       "MSHCCLK   ",
+       "USBMCLK   ",
+       "RNGCCLK   ",
+};
+
+static int nomadik_src_clk_show(struct seq_file *s, void *what)
+{
+       int i;
+       u32 src_pcksr0 = readl(src_base + SRC_PCKSR0);
+       u32 src_pcksr1 = readl(src_base + SRC_PCKSR1);
+       u32 src_pckensr0 = readl(src_base + SRC_PCKENSR0);
+       u32 src_pckensr1 = readl(src_base + SRC_PCKENSR1);
+
+       seq_printf(s, "Clock:      Boot:   Now:    Request: ASKED:\n");
+       for (i = 0; i < ARRAY_SIZE(src_clk_names); i++) {
+               u32 pcksrb = (i < 0x20) ? src_pcksr0_boot : src_pcksr1_boot;
+               u32 pcksr = (i < 0x20) ? src_pcksr0 : src_pcksr1;
+               u32 pckreq = (i < 0x20) ? src_pckensr0 : src_pckensr1;
+               u32 mask = BIT(i & 0x1f);
+
+               seq_printf(s, "%s  %s     %s     %s\n",
+                          src_clk_names[i],
+                          (pcksrb & mask) ? "on " : "off",
+                          (pcksr & mask) ? "on " : "off",
+                          (pckreq & mask) ? "on " : "off");
+       }
+       return 0;
+}
+
+static int nomadik_src_clk_open(struct inode *inode, struct file *file)
+{
+       return single_open(file, nomadik_src_clk_show, NULL);
+}
+
+static const struct file_operations nomadik_src_clk_debugfs_ops = {
+       .open           = nomadik_src_clk_open,
+       .read           = seq_read,
+        .llseek         = seq_lseek,
+       .release        = single_release,
+};
+
+static int __init nomadik_src_clk_init_debugfs(void)
+{
+       src_pcksr0_boot = readl(src_base + SRC_PCKSR0);
+       src_pcksr1_boot = readl(src_base + SRC_PCKSR1);
+       debugfs_create_file("nomadik-src-clk", S_IFREG | S_IRUGO,
+                           NULL, NULL, &nomadik_src_clk_debugfs_ops);
+       return 0;
+}
+
+module_init(nomadik_src_clk_init_debugfs);
+
+#endif
+
+static void __init of_nomadik_pll_setup(struct device_node *np)
+{
+       struct clk *clk = ERR_PTR(-EINVAL);
+       const char *clk_name = np->name;
+       const char *parent_name;
+       u32 pll_id;
+
+       if (of_property_read_u32(np, "pll-id", &pll_id)) {
+               pr_err("%s: PLL \"%s\" missing pll-id property\n",
+                       __func__, clk_name);
+               return;
+       }
+       parent_name = of_clk_get_parent_name(np, 0);
+       clk = pll_clk_register(NULL, clk_name, parent_name, pll_id);
+       if (!IS_ERR(clk))
+               of_clk_add_provider(np, of_clk_src_simple_get, clk);
+}
+
+static void __init of_nomadik_hclk_setup(struct device_node *np)
+{
+       struct clk *clk = ERR_PTR(-EINVAL);
+       const char *clk_name = np->name;
+       const char *parent_name;
+
+       parent_name = of_clk_get_parent_name(np, 0);
        /*
-        * At boot time, PLL2 is set to generate a set of fixed clocks,
-        * one of them is CLK48, the 48 MHz clock, routed to the UART, MMC/SD
-        * I2C, IrDA, USB and SSP blocks.
+        * The HCLK divides PLL1 with 1 (passthru), 2, 3 or 4.
         */
-       clk = clk_register_fixed_rate(NULL, "CLK48", NULL, CLK_IS_ROOT,
-                                     48000000);
-       clk_register_clkdev(clk, NULL, "uart0");
-       clk_register_clkdev(clk, NULL, "uart1");
-       clk_register_clkdev(clk, NULL, "mmci");
-       clk_register_clkdev(clk, NULL, "ssp");
-       clk_register_clkdev(clk, NULL, "nmk-i2c.0");
-       clk_register_clkdev(clk, NULL, "nmk-i2c.1");
+       clk = clk_register_divider(NULL, clk_name, parent_name,
+                          0, src_base + SRC_CR,
+                          13, 2,
+                          CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO,
+                          &src_lock);
+       if (!IS_ERR(clk))
+               of_clk_add_provider(np, of_clk_src_simple_get, clk);
+}
+
+static void __init of_nomadik_src_clk_setup(struct device_node *np)
+{
+       struct clk *clk = ERR_PTR(-EINVAL);
+       const char *clk_name = np->name;
+       const char *parent_name;
+       u32 clk_id;
+
+       if (of_property_read_u32(np, "clock-id", &clk_id)) {
+               pr_err("%s: SRC clock \"%s\" missing clock-id property\n",
+                       __func__, clk_name);
+               return;
+       }
+       parent_name = of_clk_get_parent_name(np, 0);
+       clk = src_clk_register(NULL, clk_name, parent_name, clk_id);
+       if (!IS_ERR(clk))
+               of_clk_add_provider(np, of_clk_src_simple_get, clk);
+}
+
+static const __initconst struct of_device_id nomadik_src_match[] = {
+       { .compatible = "stericsson,nomadik-src" },
+       { /* sentinel */ }
+};
+
+static const __initconst struct of_device_id nomadik_src_clk_match[] = {
+       {
+               .compatible = "fixed-clock",
+               .data = of_fixed_clk_setup,
+       },
+       {
+               .compatible = "fixed-factor-clock",
+               .data = of_fixed_factor_clk_setup,
+       },
+       {
+               .compatible = "st,nomadik-pll-clock",
+               .data = of_nomadik_pll_setup,
+       },
+       {
+               .compatible = "st,nomadik-hclk-clock",
+               .data = of_nomadik_hclk_setup,
+       },
+       {
+               .compatible = "st,nomadik-src-clock",
+               .data = of_nomadik_src_clk_setup,
+       },
+       { /* sentinel */ }
+};
+
+static int nomadik_clk_reboot_handler(struct notifier_block *this,
+                               unsigned long code,
+                               void *unused)
+{
+       u32 val;
+
+       /* The main chrystal need to be enabled for reboot to work */
+       val = readl(src_base + SRC_XTALCR);
+       val &= ~SRC_XTALCR_MXTALOVER;
+       val |= SRC_XTALCR_MXTALEN;
+       pr_crit("force-enabling MXTALO\n");
+       writel(val, src_base + SRC_XTALCR);
+       return NOTIFY_OK;
+}
+
+static struct notifier_block nomadik_clk_reboot_notifier = {
+       .notifier_call = nomadik_clk_reboot_handler,
+};
+
+void __init nomadik_clk_init(void)
+{
+       struct device_node *np;
+       u32 val;
+
+       np = of_find_matching_node(NULL, nomadik_src_match);
+       if (!np) {
+               pr_crit("no matching node for SRC, aborting clock init\n");
+               return;
+       }
+       src_base = of_iomap(np, 0);
+       if (!src_base) {
+               pr_err("%s: must have src parent node with REGS (%s)\n",
+                      __func__, np->name);
+               return;
+       }
+       val = readl(src_base + SRC_XTALCR);
+       pr_info("SXTALO is %s\n",
+               (val & SRC_XTALCR_SXTALDIS) ? "disabled" : "enabled");
+       pr_info("MXTAL is %s\n",
+               (val & SRC_XTALCR_MXTALSTAT) ? "enabled" : "disabled");
+       if (of_property_read_bool(np, "disable-sxtalo")) {
+               /* The machine uses an external oscillator circuit */
+               val |= SRC_XTALCR_SXTALDIS;
+               pr_info("disabling SXTALO\n");
+       }
+       if (of_property_read_bool(np, "disable-mxtalo")) {
+               /* Disable this too: also run by external oscillator */
+               val |= SRC_XTALCR_MXTALOVER;
+               val &= ~SRC_XTALCR_MXTALEN;
+               pr_info("disabling MXTALO\n");
+       }
+       writel(val, src_base + SRC_XTALCR);
+       register_reboot_notifier(&nomadik_clk_reboot_notifier);
+
+       of_clk_init(nomadik_src_clk_match);
 }
index 3c1f88868f295e9df2e2f367ee91ebbec93db981..addc738a06fbdc5e9ae3f9e2635ecc9590d28530 100644 (file)
@@ -151,7 +151,7 @@ enum exynos4_clks {
        sclk_audio1, sclk_audio2, sclk_spdif, sclk_spi0, sclk_spi1, sclk_spi2,
        sclk_slimbus, sclk_fimd1, sclk_mipi1, sclk_pcm1, sclk_pcm2, sclk_i2s1,
        sclk_i2s2, sclk_mipihsi, sclk_mfc, sclk_pcm0, sclk_g3d, sclk_pwm_isp,
-       sclk_spi0_isp, sclk_spi1_isp, sclk_uart_isp,
+       sclk_spi0_isp, sclk_spi1_isp, sclk_uart_isp, sclk_fimg2d,
 
        /* gate clocks */
        fimc0 = 256, fimc1, fimc2, fimc3, csis0, csis1, jpeg, smmu_fimc0,
@@ -484,6 +484,9 @@ struct samsung_mux_clock exynos4x12_mux_clks[] __initdata = {
        MUX(none, "mout_spi0_isp", group1_p4x12, E4X12_SRC_ISP, 4, 4),
        MUX(none, "mout_spi1_isp", group1_p4x12, E4X12_SRC_ISP, 8, 4),
        MUX(none, "mout_uart_isp", group1_p4x12, E4X12_SRC_ISP, 12, 4),
+       MUX(none, "mout_g2d0", sclk_ampll_p4210, SRC_DMC, 20, 1),
+       MUX(none, "mout_g2d1", sclk_evpll_p, SRC_DMC, 24, 1),
+       MUX(none, "mout_g2d", mout_g2d_p, SRC_DMC, 28, 1),
 };
 
 /* list of divider clocks supported in all exynos4 soc's */
@@ -552,7 +555,7 @@ struct samsung_div_clock exynos4_div_clks[] __initdata = {
 /* list of divider clocks supported in exynos4210 soc */
 struct samsung_div_clock exynos4210_div_clks[] __initdata = {
        DIV(aclk200, "aclk200", "mout_aclk200", DIV_TOP, 0, 3),
-       DIV(none, "div_g2d", "mout_g2d", DIV_IMAGE, 0, 4),
+       DIV(sclk_fimg2d, "sclk_fimg2d", "mout_g2d", DIV_IMAGE, 0, 4),
        DIV(none, "div_fimd1", "mout_fimd1", E4210_DIV_LCD1, 0, 4),
        DIV(none, "div_mipi1", "mout_mipi1", E4210_DIV_LCD1, 16, 4),
        DIV(none, "div_sata", "mout_sata", DIV_FSYS0, 20, 4),
@@ -582,6 +585,7 @@ struct samsung_div_clock exynos4x12_div_clks[] __initdata = {
        DIV(none, "div_mpwm", "div_isp1", E4X12_DIV_ISP1, 0, 3),
        DIV(div_mcuisp0, "div_mcuisp0", "aclk400_mcuisp", E4X12_DIV_ISP1, 4, 3),
        DIV(div_mcuisp1, "div_mcuisp1", "div_mcuisp0", E4X12_DIV_ISP1, 8, 3),
+       DIV(sclk_fimg2d, "sclk_fimg2d", "mout_g2d", DIV_DMC1, 0, 4),
 };
 
 /* list of gate clocks supported in all exynos4 soc's */
@@ -909,6 +913,7 @@ struct samsung_gate_clock exynos4x12_gate_clks[] __initdata = {
                        CLK_IGNORE_UNUSED, 0),
        GATE(spi1_isp, "spi1_isp", "aclk200", E4X12_GATE_ISP1, 13,
                        CLK_IGNORE_UNUSED, 0),
+       GATE(g2d, "g2d", "aclk200", GATE_IP_DMC, 23, 0, 0),
 };
 
 /*
index e405531e1cc5ceb620818b10b63e42e31d1f2acc..b9415b622f55b8c64fd9e111a867351a75a69dbe 100644 (file)
@@ -13,6 +13,9 @@
 #include <linux/io.h>
 #include <linux/clockchips.h>
 #include <linux/clocksource.h>
+#include <linux/of_address.h>
+#include <linux/of_irq.h>
+#include <linux/of_platform.h>
 #include <linux/clk.h>
 #include <linux/jiffies.h>
 #include <linux/delay.h>
@@ -188,22 +191,15 @@ static struct irqaction nmdk_timer_irq = {
        .dev_id         = &nmdk_clkevt,
 };
 
-void __init nmdk_timer_init(void __iomem *base, int irq)
+static void __init __nmdk_timer_init(void __iomem *base, int irq,
+                                    struct clk *pclk, struct clk *clk)
 {
        unsigned long rate;
-       struct clk *clk0, *pclk0;
 
        mtu_base = base;
 
-       pclk0 = clk_get_sys("mtu0", "apb_pclk");
-       BUG_ON(IS_ERR(pclk0));
-       BUG_ON(clk_prepare(pclk0) < 0);
-       BUG_ON(clk_enable(pclk0) < 0);
-
-       clk0 = clk_get_sys("mtu0", NULL);
-       BUG_ON(IS_ERR(clk0));
-       BUG_ON(clk_prepare(clk0) < 0);
-       BUG_ON(clk_enable(clk0) < 0);
+       BUG_ON(clk_prepare_enable(pclk));
+       BUG_ON(clk_prepare_enable(clk));
 
        /*
         * Tick rate is 2.4MHz for Nomadik and 2.4Mhz, 100MHz or 133 MHz
@@ -213,7 +209,7 @@ void __init nmdk_timer_init(void __iomem *base, int irq)
         * to wake-up at a max 127s a head in time. Dividing a 2.4 MHz timer
         * with 16 gives too low timer resolution.
         */
-       rate = clk_get_rate(clk0);
+       rate = clk_get_rate(clk);
        if (rate > 32000000) {
                rate /= 16;
                clk_prescale = MTU_CRn_PRESCALE_16;
@@ -247,3 +243,43 @@ void __init nmdk_timer_init(void __iomem *base, int irq)
        mtu_delay_timer.freq = rate;
        register_current_timer_delay(&mtu_delay_timer);
 }
+
+void __init nmdk_timer_init(void __iomem *base, int irq)
+{
+       struct clk *clk0, *pclk0;
+
+       pclk0 = clk_get_sys("mtu0", "apb_pclk");
+       BUG_ON(IS_ERR(pclk0));
+       clk0 = clk_get_sys("mtu0", NULL);
+       BUG_ON(IS_ERR(clk0));
+
+       __nmdk_timer_init(base, irq, pclk0, clk0);
+}
+
+static void __init nmdk_timer_of_init(struct device_node *node)
+{
+       struct clk *pclk;
+       struct clk *clk;
+       void __iomem *base;
+       int irq;
+
+       base = of_iomap(node, 0);
+       if (!base)
+               panic("Can't remap registers");
+
+       pclk = of_clk_get_by_name(node, "apb_pclk");
+       if (IS_ERR(pclk))
+               panic("could not get apb_pclk");
+
+       clk = of_clk_get_by_name(node, "timclk");
+       if (IS_ERR(clk))
+               panic("could not get timclk");
+
+       irq = irq_of_parse_and_map(node, 0);
+       if (irq <= 0)
+               panic("Can't parse IRQ");
+
+       __nmdk_timer_init(base, irq, pclk, clk);
+}
+CLOCKSOURCE_OF_DECLARE(nomadik_mtu, "st,nomadik-mtu",
+                      nmdk_timer_of_init);
index 32f480622b9784336e9e281b4bceffccbd847773..8c2777cf02f6b35b78ac9c9db9e50fb2b3289ec2 100644 (file)
@@ -1743,6 +1743,11 @@ static int ux500_cryp_resume(struct device *dev)
 
 static SIMPLE_DEV_PM_OPS(ux500_cryp_pm, ux500_cryp_suspend, ux500_cryp_resume);
 
+static const struct of_device_id ux500_cryp_match[] = {
+        { .compatible = "stericsson,ux500-cryp" },
+        { },
+};
+
 static struct platform_driver cryp_driver = {
        .probe  = ux500_cryp_probe,
        .remove = ux500_cryp_remove,
@@ -1750,6 +1755,7 @@ static struct platform_driver cryp_driver = {
        .driver = {
                .owner = THIS_MODULE,
                .name  = "cryp1",
+               .of_match_table = ux500_cryp_match,
                .pm    = &ux500_cryp_pm,
        }
 };
index cf55089675398145e4481d810076553465b6031f..3b8f661d0edf3ddef00e8eec4e5038552ef8e769 100644 (file)
@@ -1961,6 +1961,11 @@ static int ux500_hash_resume(struct device *dev)
 
 static SIMPLE_DEV_PM_OPS(ux500_hash_pm, ux500_hash_suspend, ux500_hash_resume);
 
+static const struct of_device_id ux500_hash_match[] = {
+        { .compatible = "stericsson,ux500-hash" },
+        { },
+};
+
 static struct platform_driver hash_driver = {
        .probe  = ux500_hash_probe,
        .remove = ux500_hash_remove,
@@ -1968,6 +1973,7 @@ static struct platform_driver hash_driver = {
        .driver = {
                .owner = THIS_MODULE,
                .name  = "hash1",
+               .of_match_table = ux500_hash_match,
                .pm    = &ux500_hash_pm,
        }
 };
index 5a68e5accec146856bdb86d0553a1691a9ec2d1a..82cec63a90112e184c96a2e21e612df977adf7b7 100644 (file)
@@ -18,6 +18,7 @@
  */
 
 #include <linux/init.h>
+#include <linux/of.h>
 #include <linux/platform_device.h>
 #include <linux/spinlock.h>
 #include <linux/interrupt.h>
@@ -347,8 +348,14 @@ static int intc_irqpin_probe(struct platform_device *pdev)
        }
 
        /* deal with driver instance configuration */
-       if (pdata)
+       if (pdata) {
                memcpy(&p->config, pdata, sizeof(*pdata));
+       } else {
+               of_property_read_u32(pdev->dev.of_node, "sense-bitfield-width",
+                                    &p->config.sense_bitfield_width);
+               p->config.control_parent = of_property_read_bool(pdev->dev.of_node,
+                                                                "control-parent");
+       }
        if (!p->config.sense_bitfield_width)
                p->config.sense_bitfield_width = 4; /* default to 4 bits */
 
index 34281754b629b651105bfc6733ae73b9f25011c7..8a4f9c5c0b8ee7b456ba2608efb70591eae47246 100644 (file)
@@ -2104,15 +2104,15 @@ static struct pinctrl_desc nmk_pinctrl_desc = {
 
 static const struct of_device_id nmk_pinctrl_match[] = {
        {
-               .compatible = "stericsson,nmk-pinctrl-stn8815",
+               .compatible = "stericsson,stn8815-pinctrl",
                .data = (void *)PINCTRL_NMK_STN8815,
        },
        {
-               .compatible = "stericsson,nmk-pinctrl",
+               .compatible = "stericsson,db8500-pinctrl",
                .data = (void *)PINCTRL_NMK_DB8500,
        },
        {
-               .compatible = "stericsson,nmk-pinctrl-db8540",
+               .compatible = "stericsson,db8540-pinctrl",
                .data = (void *)PINCTRL_NMK_DB8540,
        },
        {},
index f6656b8c28b606f49cbecc8d47a63d9d61832a47..a19045ee0ec432ba45a4a023cd26371ecb647e46 100644 (file)
@@ -2901,7 +2901,7 @@ static struct of_regulator_match ab8500_regulator_match[] = {
        { .name = "ab8500_ldo_tvout",   .driver_data = (void *) AB8500_LDO_TVOUT, },
        { .name = "ab8500_ldo_audio",   .driver_data = (void *) AB8500_LDO_AUDIO, },
        { .name = "ab8500_ldo_anamic1", .driver_data = (void *) AB8500_LDO_ANAMIC1, },
-       { .name = "ab8500_ldo_amamic2", .driver_data = (void *) AB8500_LDO_ANAMIC2, },
+       { .name = "ab8500_ldo_anamic2", .driver_data = (void *) AB8500_LDO_ANAMIC2, },
        { .name = "ab8500_ldo_dmic",    .driver_data = (void *) AB8500_LDO_DMIC, },
        { .name = "ab8500_ldo_ana",     .driver_data = (void *) AB8500_LDO_ANA, },
 };
@@ -2917,7 +2917,7 @@ static struct of_regulator_match ab8505_regulator_match[] = {
        { .name = "ab8500_ldo_adc",     .driver_data = (void *) AB8505_LDO_ADC, },
        { .name = "ab8500_ldo_audio",   .driver_data = (void *) AB8505_LDO_AUDIO, },
        { .name = "ab8500_ldo_anamic1", .driver_data = (void *) AB8505_LDO_ANAMIC1, },
-       { .name = "ab8500_ldo_amamic2", .driver_data = (void *) AB8505_LDO_ANAMIC2, },
+       { .name = "ab8500_ldo_anamic2", .driver_data = (void *) AB8505_LDO_ANAMIC2, },
        { .name = "ab8500_ldo_aux8",    .driver_data = (void *) AB8505_LDO_AUX8, },
        { .name = "ab8500_ldo_ana",     .driver_data = (void *) AB8505_LDO_ANA, },
 };
@@ -2933,7 +2933,7 @@ static struct of_regulator_match ab8540_regulator_match[] = {
        { .name = "ab8500_ldo_tvout",   .driver_data = (void *) AB8540_LDO_TVOUT, },
        { .name = "ab8500_ldo_audio",   .driver_data = (void *) AB8540_LDO_AUDIO, },
        { .name = "ab8500_ldo_anamic1", .driver_data = (void *) AB8540_LDO_ANAMIC1, },
-       { .name = "ab8500_ldo_amamic2", .driver_data = (void *) AB8540_LDO_ANAMIC2, },
+       { .name = "ab8500_ldo_anamic2", .driver_data = (void *) AB8540_LDO_ANAMIC2, },
        { .name = "ab8500_ldo_dmic",    .driver_data = (void *) AB8540_LDO_DMIC, },
        { .name = "ab8500_ldo_ana",     .driver_data = (void *) AB8540_LDO_ANA, },
        { .name = "ab8500_ldo_sdio",    .driver_data = (void *) AB8540_LDO_SDIO, },
@@ -2948,7 +2948,7 @@ static struct of_regulator_match ab9540_regulator_match[] = {
        { .name = "ab8500_ldo_tvout",   .driver_data = (void *) AB9540_LDO_TVOUT, },
        { .name = "ab8500_ldo_audio",   .driver_data = (void *) AB9540_LDO_AUDIO, },
        { .name = "ab8500_ldo_anamic1", .driver_data = (void *) AB9540_LDO_ANAMIC1, },
-       { .name = "ab8500_ldo_amamic2", .driver_data = (void *) AB9540_LDO_ANAMIC2, },
+       { .name = "ab8500_ldo_anamic2", .driver_data = (void *) AB9540_LDO_ANAMIC2, },
        { .name = "ab8500_ldo_dmic",    .driver_data = (void *) AB9540_LDO_DMIC, },
        { .name = "ab8500_ldo_ana",     .driver_data = (void *) AB9540_LDO_ANA, },
 };
diff --git a/include/dt-bindings/clock/tegra114-car.h b/include/dt-bindings/clock/tegra114-car.h
new file mode 100644 (file)
index 0000000..614aec4
--- /dev/null
@@ -0,0 +1,342 @@
+/*
+ * This header provides constants for binding nvidia,tegra114-car.
+ *
+ * The first 160 clocks are numbered to match the bits in the CAR's CLK_OUT_ENB
+ * registers. These IDs often match those in the CAR's RST_DEVICES registers,
+ * but not in all cases. Some bits in CLK_OUT_ENB affect multiple clocks. In
+ * this case, those clocks are assigned IDs above 160 in order to highlight
+ * this issue. Implementations that interpret these clock IDs as bit values
+ * within the CLK_OUT_ENB or RST_DEVICES registers should be careful to
+ * explicitly handle these special cases.
+ *
+ * The balance of the clocks controlled by the CAR are assigned IDs of 160 and
+ * above.
+ */
+
+#ifndef _DT_BINDINGS_CLOCK_TEGRA114_CAR_H
+#define _DT_BINDINGS_CLOCK_TEGRA114_CAR_H
+
+/* 0 */
+/* 1 */
+/* 2 */
+/* 3 */
+#define TEGRA114_CLK_RTC 4
+#define TEGRA114_CLK_TIMER 5
+#define TEGRA114_CLK_UARTA 6
+/* 7 (register bit affects uartb and vfir) */
+/* 8 */
+#define TEGRA114_CLK_SDMMC2 9
+/* 10 (register bit affects spdif_in and spdif_out) */
+#define TEGRA114_CLK_I2S1 11
+#define TEGRA114_CLK_I2C1 12
+#define TEGRA114_CLK_NDFLASH 13
+#define TEGRA114_CLK_SDMMC1 14
+#define TEGRA114_CLK_SDMMC4 15
+/* 16 */
+#define TEGRA114_CLK_PWM 17
+#define TEGRA114_CLK_I2S2 18
+#define TEGRA114_CLK_EPP 19
+/* 20 (register bit affects vi and vi_sensor) */
+#define TEGRA114_CLK_GR_2D 21
+#define TEGRA114_CLK_USBD 22
+#define TEGRA114_CLK_ISP 23
+#define TEGRA114_CLK_GR_3D 24
+/* 25 */
+#define TEGRA114_CLK_DISP2 26
+#define TEGRA114_CLK_DISP1 27
+#define TEGRA114_CLK_HOST1X 28
+#define TEGRA114_CLK_VCP 29
+#define TEGRA114_CLK_I2S0 30
+/* 31 */
+
+/* 32 */
+/* 33 */
+#define TEGRA114_CLK_APBDMA 34
+/* 35 */
+#define TEGRA114_CLK_KBC 36
+/* 37 */
+/* 38 */
+/* 39 (register bit affects fuse and fuse_burn) */
+#define TEGRA114_CLK_KFUSE 40
+#define TEGRA114_CLK_SBC1 41
+#define TEGRA114_CLK_NOR 42
+/* 43 */
+#define TEGRA114_CLK_SBC2 44
+/* 45 */
+#define TEGRA114_CLK_SBC3 46
+#define TEGRA114_CLK_I2C5 47
+#define TEGRA114_CLK_DSIA 48
+/* 49 */
+#define TEGRA114_CLK_MIPI 50
+#define TEGRA114_CLK_HDMI 51
+#define TEGRA114_CLK_CSI 52
+/* 53 */
+#define TEGRA114_CLK_I2C2 54
+#define TEGRA114_CLK_UARTC 55
+#define TEGRA114_CLK_MIPI_CAL 56
+#define TEGRA114_CLK_EMC 57
+#define TEGRA114_CLK_USB2 58
+#define TEGRA114_CLK_USB3 59
+/* 60 */
+#define TEGRA114_CLK_VDE 61
+#define TEGRA114_CLK_BSEA 62
+#define TEGRA114_CLK_BSEV 63
+
+/* 64 */
+#define TEGRA114_CLK_UARTD 65
+/* 66 */
+#define TEGRA114_CLK_I2C3 67
+#define TEGRA114_CLK_SBC4 68
+#define TEGRA114_CLK_SDMMC3 69
+/* 70 */
+#define TEGRA114_CLK_OWR 71
+/* 72 */
+#define TEGRA114_CLK_CSITE 73
+/* 74 */
+/* 75 */
+#define TEGRA114_CLK_LA 76
+#define TEGRA114_CLK_TRACE 77
+#define TEGRA114_CLK_SOC_THERM 78
+#define TEGRA114_CLK_DTV 79
+#define TEGRA114_CLK_NDSPEED 80
+#define TEGRA114_CLK_I2CSLOW 81
+#define TEGRA114_CLK_DSIB 82
+#define TEGRA114_CLK_TSEC 83
+/* 84 */
+/* 85 */
+/* 86 */
+/* 87 */
+/* 88 */
+#define TEGRA114_CLK_XUSB_HOST 89
+/* 90 */
+#define TEGRA114_CLK_MSENC 91
+#define TEGRA114_CLK_CSUS 92
+/* 93 */
+/* 94 */
+/* 95 (bit affects xusb_dev and xusb_dev_src) */
+
+/* 96 */
+/* 97 */
+/* 98 */
+#define TEGRA114_CLK_MSELECT 99
+#define TEGRA114_CLK_TSENSOR 100
+#define TEGRA114_CLK_I2S3 101
+#define TEGRA114_CLK_I2S4 102
+#define TEGRA114_CLK_I2C4 103
+#define TEGRA114_CLK_SBC5 104
+#define TEGRA114_CLK_SBC6 105
+#define TEGRA114_CLK_D_AUDIO 106
+#define TEGRA114_CLK_APBIF 107
+#define TEGRA114_CLK_DAM0 108
+#define TEGRA114_CLK_DAM1 109
+#define TEGRA114_CLK_DAM2 110
+#define TEGRA114_CLK_HDA2CODEC_2X 111
+/* 112 */
+#define TEGRA114_CLK_AUDIO0_2X 113
+#define TEGRA114_CLK_AUDIO1_2X 114
+#define TEGRA114_CLK_AUDIO2_2X 115
+#define TEGRA114_CLK_AUDIO3_2X 116
+#define TEGRA114_CLK_AUDIO4_2X 117
+#define TEGRA114_CLK_SPDIF_2X 118
+#define TEGRA114_CLK_ACTMON 119
+#define TEGRA114_CLK_EXTERN1 120
+#define TEGRA114_CLK_EXTERN2 121
+#define TEGRA114_CLK_EXTERN3 122
+/* 123 */
+/* 124 */
+#define TEGRA114_CLK_HDA 125
+/* 126 */
+#define TEGRA114_CLK_SE 127
+
+#define TEGRA114_CLK_HDA2HDMI 128
+/* 129 */
+/* 130 */
+/* 131 */
+/* 132 */
+/* 133 */
+/* 134 */
+/* 135 */
+/* 136 */
+/* 137 */
+/* 138 */
+/* 139 */
+/* 140 */
+/* 141 */
+/* 142 */
+/* 143 (bit affects xusb_falcon_src, xusb_fs_src, */
+/*      xusb_host_src and xusb_ss_src) */
+#define TEGRA114_CLK_CILAB 144
+#define TEGRA114_CLK_CILCD 145
+#define TEGRA114_CLK_CILE 146
+#define TEGRA114_CLK_DSIALP 147
+#define TEGRA114_CLK_DSIBLP 148
+/* 149 */
+#define TEGRA114_CLK_DDS 150
+/* 151 */
+#define TEGRA114_CLK_DP2 152
+#define TEGRA114_CLK_AMX 153
+#define TEGRA114_CLK_ADX 154
+/* 155 (bit affects dfll_ref and dfll_soc) */
+#define TEGRA114_CLK_XUSB_SS 156
+/* 157 */
+/* 158 */
+/* 159 */
+
+/* 160 */
+/* 161 */
+/* 162 */
+/* 163 */
+/* 164 */
+/* 165 */
+/* 166 */
+/* 167 */
+/* 168 */
+/* 169 */
+/* 170 */
+/* 171 */
+/* 172 */
+/* 173 */
+/* 174 */
+/* 175 */
+/* 176 */
+/* 177 */
+/* 178 */
+/* 179 */
+/* 180 */
+/* 181 */
+/* 182 */
+/* 183 */
+/* 184 */
+/* 185 */
+/* 186 */
+/* 187 */
+/* 188 */
+/* 189 */
+/* 190 */
+/* 191 */
+
+#define TEGRA114_CLK_UARTB 192
+#define TEGRA114_CLK_VFIR 193
+#define TEGRA114_CLK_SPDIF_IN 194
+#define TEGRA114_CLK_SPDIF_OUT 195
+#define TEGRA114_CLK_VI 196
+#define TEGRA114_CLK_VI_SENSOR 197
+#define TEGRA114_CLK_FUSE 198
+#define TEGRA114_CLK_FUSE_BURN 199
+#define TEGRA114_CLK_CLK_32K 200
+#define TEGRA114_CLK_CLK_M 201
+#define TEGRA114_CLK_CLK_M_DIV2 202
+#define TEGRA114_CLK_CLK_M_DIV4 203
+#define TEGRA114_CLK_PLL_REF 204
+#define TEGRA114_CLK_PLL_C 205
+#define TEGRA114_CLK_PLL_C_OUT1 206
+#define TEGRA114_CLK_PLL_C2 207
+#define TEGRA114_CLK_PLL_C3 208
+#define TEGRA114_CLK_PLL_M 209
+#define TEGRA114_CLK_PLL_M_OUT1 210
+#define TEGRA114_CLK_PLL_P 211
+#define TEGRA114_CLK_PLL_P_OUT1 212
+#define TEGRA114_CLK_PLL_P_OUT2 213
+#define TEGRA114_CLK_PLL_P_OUT3 214
+#define TEGRA114_CLK_PLL_P_OUT4 215
+#define TEGRA114_CLK_PLL_A 216
+#define TEGRA114_CLK_PLL_A_OUT0 217
+#define TEGRA114_CLK_PLL_D 218
+#define TEGRA114_CLK_PLL_D_OUT0 219
+#define TEGRA114_CLK_PLL_D2 220
+#define TEGRA114_CLK_PLL_D2_OUT0 221
+#define TEGRA114_CLK_PLL_U 222
+#define TEGRA114_CLK_PLL_U_480M 223
+
+#define TEGRA114_CLK_PLL_U_60M 224
+#define TEGRA114_CLK_PLL_U_48M 225
+#define TEGRA114_CLK_PLL_U_12M 226
+#define TEGRA114_CLK_PLL_X 227
+#define TEGRA114_CLK_PLL_X_OUT0 228
+#define TEGRA114_CLK_PLL_RE_VCO 229
+#define TEGRA114_CLK_PLL_RE_OUT 230
+#define TEGRA114_CLK_PLL_E_OUT0 231
+#define TEGRA114_CLK_SPDIF_IN_SYNC 232
+#define TEGRA114_CLK_I2S0_SYNC 233
+#define TEGRA114_CLK_I2S1_SYNC 234
+#define TEGRA114_CLK_I2S2_SYNC 235
+#define TEGRA114_CLK_I2S3_SYNC 236
+#define TEGRA114_CLK_I2S4_SYNC 237
+#define TEGRA114_CLK_VIMCLK_SYNC 238
+#define TEGRA114_CLK_AUDIO0 239
+#define TEGRA114_CLK_AUDIO1 240
+#define TEGRA114_CLK_AUDIO2 241
+#define TEGRA114_CLK_AUDIO3 242
+#define TEGRA114_CLK_AUDIO4 243
+#define TEGRA114_CLK_SPDIF 244
+#define TEGRA114_CLK_CLK_OUT_1 245
+#define TEGRA114_CLK_CLK_OUT_2 246
+#define TEGRA114_CLK_CLK_OUT_3 247
+#define TEGRA114_CLK_BLINK 248
+/* 249 */
+/* 250 */
+/* 251 */
+#define TEGRA114_CLK_XUSB_HOST_SRC 252
+#define TEGRA114_CLK_XUSB_FALCON_SRC 253
+#define TEGRA114_CLK_XUSB_FS_SRC 254
+#define TEGRA114_CLK_XUSB_SS_SRC 255
+
+#define TEGRA114_CLK_XUSB_DEV_SRC 256
+#define TEGRA114_CLK_XUSB_DEV 257
+#define TEGRA114_CLK_XUSB_HS_SRC 258
+#define TEGRA114_CLK_SCLK 259
+#define TEGRA114_CLK_HCLK 260
+#define TEGRA114_CLK_PCLK 261
+#define TEGRA114_CLK_CCLK_G 262
+#define TEGRA114_CLK_CCLK_LP 263
+/* 264 */
+/* 265 */
+/* 266 */
+/* 267 */
+/* 268 */
+/* 269 */
+/* 270 */
+/* 271 */
+/* 272 */
+/* 273 */
+/* 274 */
+/* 275 */
+/* 276 */
+/* 277 */
+/* 278 */
+/* 279 */
+/* 280 */
+/* 281 */
+/* 282 */
+/* 283 */
+/* 284 */
+/* 285 */
+/* 286 */
+/* 287 */
+
+/* 288 */
+/* 289 */
+/* 290 */
+/* 291 */
+/* 292 */
+/* 293 */
+/* 294 */
+/* 295 */
+/* 296 */
+/* 297 */
+/* 298 */
+/* 299 */
+#define TEGRA114_CLK_AUDIO0_MUX 300
+#define TEGRA114_CLK_AUDIO1_MUX 301
+#define TEGRA114_CLK_AUDIO2_MUX 302
+#define TEGRA114_CLK_AUDIO3_MUX 303
+#define TEGRA114_CLK_AUDIO4_MUX 304
+#define TEGRA114_CLK_SPDIF_MUX 305
+#define TEGRA114_CLK_CLK_OUT_1_MUX 306
+#define TEGRA114_CLK_CLK_OUT_2_MUX 307
+#define TEGRA114_CLK_CLK_OUT_3_MUX 308
+#define TEGRA114_CLK_DSIA_MUX 309
+#define TEGRA114_CLK_DSIB_MUX 310
+#define TEGRA114_CLK_CLK_MAX 311
+
+#endif /* _DT_BINDINGS_CLOCK_TEGRA114_CAR_H */
diff --git a/include/dt-bindings/clock/tegra20-car.h b/include/dt-bindings/clock/tegra20-car.h
new file mode 100644 (file)
index 0000000..a1ae9a8
--- /dev/null
@@ -0,0 +1,158 @@
+/*
+ * This header provides constants for binding nvidia,tegra20-car.
+ *
+ * The first 96 clocks are numbered to match the bits in the CAR's CLK_OUT_ENB
+ * registers. These IDs often match those in the CAR's RST_DEVICES registers,
+ * but not in all cases. Some bits in CLK_OUT_ENB affect multiple clocks. In
+ * this case, those clocks are assigned IDs above 95 in order to highlight
+ * this issue. Implementations that interpret these clock IDs as bit values
+ * within the CLK_OUT_ENB or RST_DEVICES registers should be careful to
+ * explicitly handle these special cases.
+ *
+ * The balance of the clocks controlled by the CAR are assigned IDs of 96 and
+ * above.
+ */
+
+#ifndef _DT_BINDINGS_CLOCK_TEGRA20_CAR_H
+#define _DT_BINDINGS_CLOCK_TEGRA20_CAR_H
+
+#define TEGRA20_CLK_CPU 0
+/* 1 */
+/* 2 */
+#define TEGRA20_CLK_AC97 3
+#define TEGRA20_CLK_RTC 4
+#define TEGRA20_CLK_TIMER 5
+#define TEGRA20_CLK_UARTA 6
+/* 7 (register bit affects uart2 and vfir) */
+#define TEGRA20_CLK_GPIO 8
+#define TEGRA20_CLK_SDMMC2 9
+/* 10 (register bit affects spdif_in and spdif_out) */
+#define TEGRA20_CLK_I2S1 11
+#define TEGRA20_CLK_I2C1 12
+#define TEGRA20_CLK_NDFLASH 13
+#define TEGRA20_CLK_SDMMC1 14
+#define TEGRA20_CLK_SDMMC4 15
+#define TEGRA20_CLK_TWC 16
+#define TEGRA20_CLK_PWM 17
+#define TEGRA20_CLK_I2S2 18
+#define TEGRA20_CLK_EPP 19
+/* 20 (register bit affects vi and vi_sensor) */
+#define TEGRA20_CLK_GR2D 21
+#define TEGRA20_CLK_USBD 22
+#define TEGRA20_CLK_ISP 23
+#define TEGRA20_CLK_GR3D 24
+#define TEGRA20_CLK_IDE 25
+#define TEGRA20_CLK_DISP2 26
+#define TEGRA20_CLK_DISP1 27
+#define TEGRA20_CLK_HOST1X 28
+#define TEGRA20_CLK_VCP 29
+/* 30 */
+#define TEGRA20_CLK_CACHE2 31
+
+#define TEGRA20_CLK_MEM 32
+#define TEGRA20_CLK_AHBDMA 33
+#define TEGRA20_CLK_APBDMA 34
+/* 35 */
+#define TEGRA20_CLK_KBC 36
+#define TEGRA20_CLK_STAT_MON 37
+#define TEGRA20_CLK_PMC 38
+#define TEGRA20_CLK_FUSE 39
+#define TEGRA20_CLK_KFUSE 40
+#define TEGRA20_CLK_SBC1 41
+#define TEGRA20_CLK_NOR 42
+#define TEGRA20_CLK_SPI 43
+#define TEGRA20_CLK_SBC2 44
+#define TEGRA20_CLK_XIO 45
+#define TEGRA20_CLK_SBC3 46
+#define TEGRA20_CLK_DVC 47
+#define TEGRA20_CLK_DSI 48
+/* 49 (register bit affects tvo and cve) */
+#define TEGRA20_CLK_MIPI 50
+#define TEGRA20_CLK_HDMI 51
+#define TEGRA20_CLK_CSI 52
+#define TEGRA20_CLK_TVDAC 53
+#define TEGRA20_CLK_I2C2 54
+#define TEGRA20_CLK_UARTC 55
+/* 56 */
+#define TEGRA20_CLK_EMC 57
+#define TEGRA20_CLK_USB2 58
+#define TEGRA20_CLK_USB3 59
+#define TEGRA20_CLK_MPE 60
+#define TEGRA20_CLK_VDE 61
+#define TEGRA20_CLK_BSEA 62
+#define TEGRA20_CLK_BSEV 63
+
+#define TEGRA20_CLK_SPEEDO 64
+#define TEGRA20_CLK_UARTD 65
+#define TEGRA20_CLK_UARTE 66
+#define TEGRA20_CLK_I2C3 67
+#define TEGRA20_CLK_SBC4 68
+#define TEGRA20_CLK_SDMMC3 69
+#define TEGRA20_CLK_PEX 70
+#define TEGRA20_CLK_OWR 71
+#define TEGRA20_CLK_AFI 72
+#define TEGRA20_CLK_CSITE 73
+#define TEGRA20_CLK_PCIE_XCLK 74
+#define TEGRA20_CLK_AVPUCQ 75
+#define TEGRA20_CLK_LA 76
+/* 77 */
+/* 78 */
+/* 79 */
+/* 80 */
+/* 81 */
+/* 82 */
+/* 83 */
+#define TEGRA20_CLK_IRAMA 84
+#define TEGRA20_CLK_IRAMB 85
+#define TEGRA20_CLK_IRAMC 86
+#define TEGRA20_CLK_IRAMD 87
+#define TEGRA20_CLK_CRAM2 88
+#define TEGRA20_CLK_AUDIO_2X 89 /* a/k/a audio_2x_sync_clk */
+#define TEGRA20_CLK_CLK_D 90
+/* 91 */
+#define TEGRA20_CLK_CSUS 92
+#define TEGRA20_CLK_CDEV2 93
+#define TEGRA20_CLK_CDEV1 94
+/* 95 */
+
+#define TEGRA20_CLK_UARTB 96
+#define TEGRA20_CLK_VFIR 97
+#define TEGRA20_CLK_SPDIF_IN 98
+#define TEGRA20_CLK_SPDIF_OUT 99
+#define TEGRA20_CLK_VI 100
+#define TEGRA20_CLK_VI_SENSOR 101
+#define TEGRA20_CLK_TVO 102
+#define TEGRA20_CLK_CVE 103
+#define TEGRA20_CLK_OSC 104
+#define TEGRA20_CLK_CLK_32K 105 /* a/k/a clk_s */
+#define TEGRA20_CLK_CLK_M 106
+#define TEGRA20_CLK_SCLK 107
+#define TEGRA20_CLK_CCLK 108
+#define TEGRA20_CLK_HCLK 109
+#define TEGRA20_CLK_PCLK 110
+#define TEGRA20_CLK_BLINK 111
+#define TEGRA20_CLK_PLL_A 112
+#define TEGRA20_CLK_PLL_A_OUT0 113
+#define TEGRA20_CLK_PLL_C 114
+#define TEGRA20_CLK_PLL_C_OUT1 115
+#define TEGRA20_CLK_PLL_D 116
+#define TEGRA20_CLK_PLL_D_OUT0 117
+#define TEGRA20_CLK_PLL_E 118
+#define TEGRA20_CLK_PLL_M 119
+#define TEGRA20_CLK_PLL_M_OUT1 120
+#define TEGRA20_CLK_PLL_P 121
+#define TEGRA20_CLK_PLL_P_OUT1 122
+#define TEGRA20_CLK_PLL_P_OUT2 123
+#define TEGRA20_CLK_PLL_P_OUT3 124
+#define TEGRA20_CLK_PLL_P_OUT4 125
+#define TEGRA20_CLK_PLL_S 126
+#define TEGRA20_CLK_PLL_U 127
+
+#define TEGRA20_CLK_PLL_X 128
+#define TEGRA20_CLK_COP 129 /* a/k/a avp */
+#define TEGRA20_CLK_AUDIO 130 /* a/k/a audio_sync_clk */
+#define TEGRA20_CLK_PLL_REF 131
+#define TEGRA20_CLK_TWD 132
+#define TEGRA20_CLK_CLK_MAX 133
+
+#endif /* _DT_BINDINGS_CLOCK_TEGRA20_CAR_H */
diff --git a/include/dt-bindings/clock/tegra30-car.h b/include/dt-bindings/clock/tegra30-car.h
new file mode 100644 (file)
index 0000000..e40fae8
--- /dev/null
@@ -0,0 +1,265 @@
+/*
+ * This header provides constants for binding nvidia,tegra30-car.
+ *
+ * The first 130 clocks are numbered to match the bits in the CAR's CLK_OUT_ENB
+ * registers. These IDs often match those in the CAR's RST_DEVICES registers,
+ * but not in all cases. Some bits in CLK_OUT_ENB affect multiple clocks. In
+ * this case, those clocks are assigned IDs above 160 in order to highlight
+ * this issue. Implementations that interpret these clock IDs as bit values
+ * within the CLK_OUT_ENB or RST_DEVICES registers should be careful to
+ * explicitly handle these special cases.
+ *
+ * The balance of the clocks controlled by the CAR are assigned IDs of 160 and
+ * above.
+ */
+
+#ifndef _DT_BINDINGS_CLOCK_TEGRA30_CAR_H
+#define _DT_BINDINGS_CLOCK_TEGRA30_CAR_H
+
+#define TEGRA30_CLK_CPU 0
+/* 1 */
+/* 2 */
+/* 3 */
+#define TEGRA30_CLK_RTC 4
+#define TEGRA30_CLK_TIMER 5
+#define TEGRA30_CLK_UARTA 6
+/* 7 (register bit affects uartb and vfir) */
+#define TEGRA30_CLK_GPIO 8
+#define TEGRA30_CLK_SDMMC2 9
+/* 10 (register bit affects spdif_in and spdif_out) */
+#define TEGRA30_CLK_I2S1 11
+#define TEGRA30_CLK_I2C1 12
+#define TEGRA30_CLK_NDFLASH 13
+#define TEGRA30_CLK_SDMMC1 14
+#define TEGRA30_CLK_SDMMC4 15
+/* 16 */
+#define TEGRA30_CLK_PWM 17
+#define TEGRA30_CLK_I2S2 18
+#define TEGRA30_CLK_EPP 19
+/* 20 (register bit affects vi and vi_sensor) */
+#define TEGRA30_CLK_GR2D 21
+#define TEGRA30_CLK_USBD 22
+#define TEGRA30_CLK_ISP 23
+#define TEGRA30_CLK_GR3D 24
+/* 25 */
+#define TEGRA30_CLK_DISP2 26
+#define TEGRA30_CLK_DISP1 27
+#define TEGRA30_CLK_HOST1X 28
+#define TEGRA30_CLK_VCP 29
+#define TEGRA30_CLK_I2S0 30
+#define TEGRA30_CLK_COP_CACHE 31
+
+#define TEGRA30_CLK_MC 32
+#define TEGRA30_CLK_AHBDMA 33
+#define TEGRA30_CLK_APBDMA 34
+/* 35 */
+#define TEGRA30_CLK_KBC 36
+#define TEGRA30_CLK_STATMON 37
+#define TEGRA30_CLK_PMC 38
+/* 39 (register bit affects fuse and fuse_burn) */
+#define TEGRA30_CLK_KFUSE 40
+#define TEGRA30_CLK_SBC1 41
+#define TEGRA30_CLK_NOR 42
+/* 43 */
+#define TEGRA30_CLK_SBC2 44
+/* 45 */
+#define TEGRA30_CLK_SBC3 46
+#define TEGRA30_CLK_I2C5 47
+#define TEGRA30_CLK_DSIA 48
+/* 49 (register bit affects cve and tvo) */
+#define TEGRA30_CLK_MIPI 50
+#define TEGRA30_CLK_HDMI 51
+#define TEGRA30_CLK_CSI 52
+#define TEGRA30_CLK_TVDAC 53
+#define TEGRA30_CLK_I2C2 54
+#define TEGRA30_CLK_UARTC 55
+/* 56 */
+#define TEGRA30_CLK_EMC 57
+#define TEGRA30_CLK_USB2 58
+#define TEGRA30_CLK_USB3 59
+#define TEGRA30_CLK_MPE 60
+#define TEGRA30_CLK_VDE 61
+#define TEGRA30_CLK_BSEA 62
+#define TEGRA30_CLK_BSEV 63
+
+#define TEGRA30_CLK_SPEEDO 64
+#define TEGRA30_CLK_UARTD 65
+#define TEGRA30_CLK_UARTE 66
+#define TEGRA30_CLK_I2C3 67
+#define TEGRA30_CLK_SBC4 68
+#define TEGRA30_CLK_SDMMC3 69
+#define TEGRA30_CLK_PCIE 70
+#define TEGRA30_CLK_OWR 71
+#define TEGRA30_CLK_AFI 72
+#define TEGRA30_CLK_CSITE 73
+#define TEGRA30_CLK_PCIEX 74
+#define TEGRA30_CLK_AVPUCQ 75
+#define TEGRA30_CLK_LA 76
+/* 77 */
+/* 78 */
+#define TEGRA30_CLK_DTV 79
+#define TEGRA30_CLK_NDSPEED 80
+#define TEGRA30_CLK_I2CSLOW 81
+#define TEGRA30_CLK_DSIB 82
+/* 83 */
+#define TEGRA30_CLK_IRAMA 84
+#define TEGRA30_CLK_IRAMB 85
+#define TEGRA30_CLK_IRAMC 86
+#define TEGRA30_CLK_IRAMD 87
+#define TEGRA30_CLK_CRAM2 88
+/* 89 */
+#define TEGRA30_CLK_AUDIO_2X 90 /* a/k/a audio_2x_sync_clk */
+/* 91 */
+#define TEGRA30_CLK_CSUS 92
+#define TEGRA30_CLK_CDEV2 93
+#define TEGRA30_CLK_CDEV1 94
+/* 95 */
+
+#define TEGRA30_CLK_CPU_G 96
+#define TEGRA30_CLK_CPU_LP 97
+#define TEGRA30_CLK_GR3D2 98
+#define TEGRA30_CLK_MSELECT 99
+#define TEGRA30_CLK_TSENSOR 100
+#define TEGRA30_CLK_I2S3 101
+#define TEGRA30_CLK_I2S4 102
+#define TEGRA30_CLK_I2C4 103
+#define TEGRA30_CLK_SBC5 104
+#define TEGRA30_CLK_SBC6 105
+#define TEGRA30_CLK_D_AUDIO 106
+#define TEGRA30_CLK_APBIF 107
+#define TEGRA30_CLK_DAM0 108
+#define TEGRA30_CLK_DAM1 109
+#define TEGRA30_CLK_DAM2 110
+#define TEGRA30_CLK_HDA2CODEC_2X 111
+#define TEGRA30_CLK_ATOMICS 112
+#define TEGRA30_CLK_AUDIO0_2X 113
+#define TEGRA30_CLK_AUDIO1_2X 114
+#define TEGRA30_CLK_AUDIO2_2X 115
+#define TEGRA30_CLK_AUDIO3_2X 116
+#define TEGRA30_CLK_AUDIO4_2X 117
+#define TEGRA30_CLK_SPDIF_2X 118
+#define TEGRA30_CLK_ACTMON 119
+#define TEGRA30_CLK_EXTERN1 120
+#define TEGRA30_CLK_EXTERN2 121
+#define TEGRA30_CLK_EXTERN3 122
+#define TEGRA30_CLK_SATA_OOB 123
+#define TEGRA30_CLK_SATA 124
+#define TEGRA30_CLK_HDA 125
+/* 126 */
+#define TEGRA30_CLK_SE 127
+
+#define TEGRA30_CLK_HDA2HDMI 128
+#define TEGRA30_CLK_SATA_COLD 129
+/* 130 */
+/* 131 */
+/* 132 */
+/* 133 */
+/* 134 */
+/* 135 */
+/* 136 */
+/* 137 */
+/* 138 */
+/* 139 */
+/* 140 */
+/* 141 */
+/* 142 */
+/* 143 */
+/* 144 */
+/* 145 */
+/* 146 */
+/* 147 */
+/* 148 */
+/* 149 */
+/* 150 */
+/* 151 */
+/* 152 */
+/* 153 */
+/* 154 */
+/* 155 */
+/* 156 */
+/* 157 */
+/* 158 */
+/* 159 */
+
+#define TEGRA30_CLK_UARTB 160
+#define TEGRA30_CLK_VFIR 161
+#define TEGRA30_CLK_SPDIF_IN 162
+#define TEGRA30_CLK_SPDIF_OUT 163
+#define TEGRA30_CLK_VI 164
+#define TEGRA30_CLK_VI_SENSOR 165
+#define TEGRA30_CLK_FUSE 166
+#define TEGRA30_CLK_FUSE_BURN 167
+#define TEGRA30_CLK_CVE 168
+#define TEGRA30_CLK_TVO 169
+#define TEGRA30_CLK_CLK_32K 170
+#define TEGRA30_CLK_CLK_M 171
+#define TEGRA30_CLK_CLK_M_DIV2 172
+#define TEGRA30_CLK_CLK_M_DIV4 173
+#define TEGRA30_CLK_PLL_REF 174
+#define TEGRA30_CLK_PLL_C 175
+#define TEGRA30_CLK_PLL_C_OUT1 176
+#define TEGRA30_CLK_PLL_M 177
+#define TEGRA30_CLK_PLL_M_OUT1 178
+#define TEGRA30_CLK_PLL_P 179
+#define TEGRA30_CLK_PLL_P_OUT1 180
+#define TEGRA30_CLK_PLL_P_OUT2 181
+#define TEGRA30_CLK_PLL_P_OUT3 182
+#define TEGRA30_CLK_PLL_P_OUT4 183
+#define TEGRA30_CLK_PLL_A 184
+#define TEGRA30_CLK_PLL_A_OUT0 185
+#define TEGRA30_CLK_PLL_D 186
+#define TEGRA30_CLK_PLL_D_OUT0 187
+#define TEGRA30_CLK_PLL_D2 188
+#define TEGRA30_CLK_PLL_D2_OUT0 189
+#define TEGRA30_CLK_PLL_U 190
+#define TEGRA30_CLK_PLL_X 191
+
+#define TEGRA30_CLK_PLL_X_OUT0 192
+#define TEGRA30_CLK_PLL_E 193
+#define TEGRA30_CLK_SPDIF_IN_SYNC 194
+#define TEGRA30_CLK_I2S0_SYNC 195
+#define TEGRA30_CLK_I2S1_SYNC 196
+#define TEGRA30_CLK_I2S2_SYNC 197
+#define TEGRA30_CLK_I2S3_SYNC 198
+#define TEGRA30_CLK_I2S4_SYNC 199
+#define TEGRA30_CLK_VIMCLK_SYNC 200
+#define TEGRA30_CLK_AUDIO0 201
+#define TEGRA30_CLK_AUDIO1 202
+#define TEGRA30_CLK_AUDIO2 203
+#define TEGRA30_CLK_AUDIO3 204
+#define TEGRA30_CLK_AUDIO4 205
+#define TEGRA30_CLK_SPDIF 206
+#define TEGRA30_CLK_CLK_OUT_1 207 /* (extern1) */
+#define TEGRA30_CLK_CLK_OUT_2 208 /* (extern2) */
+#define TEGRA30_CLK_CLK_OUT_3 209 /* (extern3) */
+#define TEGRA30_CLK_SCLK 210
+#define TEGRA30_CLK_BLINK 211
+#define TEGRA30_CLK_CCLK_G 212
+#define TEGRA30_CLK_CCLK_LP 213
+#define TEGRA30_CLK_TWD 214
+#define TEGRA30_CLK_CML0 215
+#define TEGRA30_CLK_CML1 216
+#define TEGRA30_CLK_HCLK 217
+#define TEGRA30_CLK_PCLK 218
+/* 219 */
+/* 220 */
+/* 221 */
+/* 222 */
+/* 223 */
+
+/* 288 */
+/* 289 */
+/* 290 */
+/* 291 */
+/* 292 */
+/* 293 */
+/* 294 */
+/* 295 */
+/* 296 */
+/* 297 */
+/* 298 */
+/* 299 */
+#define TEGRA30_CLK_CLK_OUT_1_MUX 300
+#define TEGRA30_CLK_CLK_MAX 301
+
+#endif /* _DT_BINDINGS_CLOCK_TEGRA30_CAR_H */
diff --git a/include/dt-bindings/dma/at91.h b/include/dt-bindings/dma/at91.h
new file mode 100644 (file)
index 0000000..e835037
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * This header provides macros for at91 dma bindings.
+ *
+ * Copyright (C) 2013 Ludovic Desroches <ludovic.desroches@atmel.com>
+ *
+ * GPLv2 only
+ */
+
+#ifndef __DT_BINDINGS_AT91_DMA_H__
+#define __DT_BINDINGS_AT91_DMA_H__
+
+/*
+ * Source and/or destination peripheral ID
+ */
+#define AT91_DMA_CFG_PER_ID_MASK       (0xff)
+#define AT91_DMA_CFG_PER_ID(id)                (id & AT91_DMA_CFG_PER_ID_MASK)
+
+/*
+ * FIFO configuration: it defines when a request is serviced.
+ */
+#define AT91_DMA_CFG_FIFOCFG_OFFSET    (8)
+#define AT91_DMA_CFG_FIFOCFG_MASK      (0xf << AT91_DMA_CFG_FIFOCFG_OFFSET)
+#define AT91_DMA_CFG_FIFOCFG_HALF      (0x0 << AT91_DMA_CFG_FIFOCFG_OFFSET)    /* half FIFO (default behavior) */
+#define AT91_DMA_CFG_FIFOCFG_ALAP      (0x1 << AT91_DMA_CFG_FIFOCFG_OFFSET)    /* largest defined AHB burst */
+#define AT91_DMA_CFG_FIFOCFG_ASAP      (0x2 << AT91_DMA_CFG_FIFOCFG_OFFSET)    /* single AHB access */
+
+#endif /* __DT_BINDINGS_AT91_DMA_H__ */
diff --git a/include/dt-bindings/gpio/tegra-gpio.h b/include/dt-bindings/gpio/tegra-gpio.h
new file mode 100644 (file)
index 0000000..4d179c0
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * This header provides constants for binding nvidia,tegra*-gpio.
+ *
+ * The first cell in Tegra's GPIO specifier is the GPIO ID. The macros below
+ * provide names for this.
+ *
+ * The second cell contains standard flag values specified in gpio.h.
+ */
+
+#ifndef _DT_BINDINGS_GPIO_TEGRA_GPIO_H
+#define _DT_BINDINGS_GPIO_TEGRA_GPIO_H
+
+#include <dt-bindings/gpio/gpio.h>
+
+#define TEGRA_GPIO_BANK_ID_A 0
+#define TEGRA_GPIO_BANK_ID_B 1
+#define TEGRA_GPIO_BANK_ID_C 2
+#define TEGRA_GPIO_BANK_ID_D 3
+#define TEGRA_GPIO_BANK_ID_E 4
+#define TEGRA_GPIO_BANK_ID_F 5
+#define TEGRA_GPIO_BANK_ID_G 6
+#define TEGRA_GPIO_BANK_ID_H 7
+#define TEGRA_GPIO_BANK_ID_I 8
+#define TEGRA_GPIO_BANK_ID_J 9
+#define TEGRA_GPIO_BANK_ID_K 10
+#define TEGRA_GPIO_BANK_ID_L 11
+#define TEGRA_GPIO_BANK_ID_M 12
+#define TEGRA_GPIO_BANK_ID_N 13
+#define TEGRA_GPIO_BANK_ID_O 14
+#define TEGRA_GPIO_BANK_ID_P 15
+#define TEGRA_GPIO_BANK_ID_Q 16
+#define TEGRA_GPIO_BANK_ID_R 17
+#define TEGRA_GPIO_BANK_ID_S 18
+#define TEGRA_GPIO_BANK_ID_T 19
+#define TEGRA_GPIO_BANK_ID_U 20
+#define TEGRA_GPIO_BANK_ID_V 21
+#define TEGRA_GPIO_BANK_ID_W 22
+#define TEGRA_GPIO_BANK_ID_X 23
+#define TEGRA_GPIO_BANK_ID_Y 24
+#define TEGRA_GPIO_BANK_ID_Z 25
+#define TEGRA_GPIO_BANK_ID_AA 26
+#define TEGRA_GPIO_BANK_ID_BB 27
+#define TEGRA_GPIO_BANK_ID_CC 28
+#define TEGRA_GPIO_BANK_ID_DD 29
+#define TEGRA_GPIO_BANK_ID_EE 30
+
+#define TEGRA_GPIO(bank, offset) \
+       ((TEGRA_GPIO_BANK_ID_##bank * 8) + offset)
+
+#endif
diff --git a/include/dt-bindings/pinctrl/am33xx.h b/include/dt-bindings/pinctrl/am33xx.h
new file mode 100644 (file)
index 0000000..469e032
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * This header provides constants specific to AM33XX pinctrl bindings.
+ */
+
+#ifndef _DT_BINDINGS_PINCTRL_AM33XX_H
+#define _DT_BINDINGS_PINCTRL_AM33XX_H
+
+#include <include/dt-bindings/pinctrl/omap.h>
+
+/* am33xx specific mux bit defines */
+#undef PULL_ENA
+#undef INPUT_EN
+
+#define PULL_DISABLE           (1 << 3)
+#define INPUT_EN               (1 << 5)
+#define SLEWCTRL_FAST          (1 << 6)
+
+/* update macro depending on INPUT_EN and PULL_ENA */
+#undef PIN_OUTPUT
+#undef PIN_OUTPUT_PULLUP
+#undef PIN_OUTPUT_PULLDOWN
+#undef PIN_INPUT
+#undef PIN_INPUT_PULLUP
+#undef PIN_INPUT_PULLDOWN
+
+#define PIN_OUTPUT             (PULL_DISABLE)
+#define PIN_OUTPUT_PULLUP      (PULL_UP)
+#define PIN_OUTPUT_PULLDOWN    0
+#define PIN_INPUT              (INPUT_EN | PULL_DISABLE)
+#define PIN_INPUT_PULLUP       (INPUT_EN | PULL_UP)
+#define PIN_INPUT_PULLDOWN     (INPUT_EN)
+
+/* undef non-existing modes */
+#undef PIN_OFF_NONE
+#undef PIN_OFF_OUTPUT_HIGH
+#undef PIN_OFF_OUTPUT_LOW
+#undef PIN_OFF_INPUT_PULLUP
+#undef PIN_OFF_INPUT_PULLDOWN
+#undef PIN_OFF_WAKEUPENABLE
+
+#endif
+
diff --git a/include/dt-bindings/pinctrl/omap.h b/include/dt-bindings/pinctrl/omap.h
new file mode 100644 (file)
index 0000000..edbd250
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * This header provides constants for OMAP pinctrl bindings.
+ *
+ * Copyright (C) 2009 Nokia
+ * Copyright (C) 2009-2010 Texas Instruments
+ */
+
+#ifndef _DT_BINDINGS_PINCTRL_OMAP_H
+#define _DT_BINDINGS_PINCTRL_OMAP_H
+
+/* 34xx mux mode options for each pin. See TRM for options */
+#define MUX_MODE0      0
+#define MUX_MODE1      1
+#define MUX_MODE2      2
+#define MUX_MODE3      3
+#define MUX_MODE4      4
+#define MUX_MODE5      5
+#define MUX_MODE6      6
+#define MUX_MODE7      7
+
+/* 24xx/34xx mux bit defines */
+#define PULL_ENA               (1 << 3)
+#define PULL_UP                        (1 << 4)
+#define ALTELECTRICALSEL       (1 << 5)
+
+/* 34xx specific mux bit defines */
+#define INPUT_EN               (1 << 8)
+#define OFF_EN                 (1 << 9)
+#define OFFOUT_EN              (1 << 10)
+#define OFFOUT_VAL             (1 << 11)
+#define OFF_PULL_EN            (1 << 12)
+#define OFF_PULL_UP            (1 << 13)
+#define WAKEUP_EN              (1 << 14)
+
+/* 44xx specific mux bit defines */
+#define WAKEUP_EVENT           (1 << 15)
+
+/* Active pin states */
+#define PIN_OUTPUT             0
+#define PIN_OUTPUT_PULLUP      (PIN_OUTPUT | PULL_ENA | PULL_UP)
+#define PIN_OUTPUT_PULLDOWN    (PIN_OUTPUT | PULL_ENA)
+#define PIN_INPUT              INPUT_EN
+#define PIN_INPUT_PULLUP       (PULL_ENA | INPUT_EN | PULL_UP)
+#define PIN_INPUT_PULLDOWN     (PULL_ENA | INPUT_EN)
+
+/* Off mode states */
+#define PIN_OFF_NONE           0
+#define PIN_OFF_OUTPUT_HIGH    (OFF_EN | OFFOUT_EN | OFFOUT_VAL)
+#define PIN_OFF_OUTPUT_LOW     (OFF_EN | OFFOUT_EN)
+#define PIN_OFF_INPUT_PULLUP   (OFF_EN | OFF_PULL_EN | OFF_PULL_UP)
+#define PIN_OFF_INPUT_PULLDOWN (OFF_EN | OFF_PULL_EN)
+#define PIN_OFF_WAKEUPENABLE   WAKEUP_EN
+
+#endif
+