]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge branch 'for_3.11/dts' of git://git.kernel.org/pub/scm/linux/kernel/git/bcousson...
authorArnd Bergmann <arnd@arndb.de>
Thu, 20 Jun 2013 21:01:41 +0000 (23:01 +0200)
committerArnd Bergmann <arnd@arndb.de>
Thu, 20 Jun 2013 21:01:41 +0000 (23:01 +0200)
From Benoit Cousson:

omap devicetree changes for v3.11 merge window

- Add mandatory DT support for missing IPs, like USB host,
  bandgap, LED, NAND, LAN, CPSW, PWM for OMAP and AMXX devices.
- Introduce new AM43x silicon.

* 'for_3.11/dts' of git://git.kernel.org/pub/scm/linux/kernel/git/bcousson/linux-omap-dt: (52 commits)
  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: 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
  ARM: dts: omap3-overo: Add default trigger for TWL4030 LED
  ARM: dts: omap3-tobi: Correct polarity for GPIO LED
  ARM: dts: omap3-tobi: Add SMSC911X node
  ARM: dts: OMAP3: Include IRQ header
  ARM: dts: Protect pinctrl headers against multiple inclusions
  ARM: AM33XX: clock data: Enable clkout2 as part of init
  ARM: AM33XX: clock: Add debugSS clock nodes
  ARM: dts: OMAP5: Add Palmas MFD node and regulator nodes
  ARM: dts: AM33XX: Add PWM backlight DT data to am335x-evmsk
  ARM: dts: AM33XX: Add PWM backlight DT data to am335x-evm
  ARM: dts: AM33XX: Add PWMSS device tree nodes
  ARM: dts: OMAP4460: Add bandgap entry for OMAP4460 devices
  ...

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Tony Lindgren <tony@atomide.com>
343 files changed:
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/imx5-clock.txt
Documentation/devicetree/bindings/clock/imx6q-clock.txt
Documentation/devicetree/bindings/clock/imx6sl-clock.txt [new file with mode: 0644]
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/clock/vf610-clock.txt [new file with mode: 0644]
Documentation/devicetree/bindings/clock/zynq-7000.txt
Documentation/devicetree/bindings/gpu/samsung-g2d.txt
Documentation/devicetree/bindings/media/s5p-mfc.txt
Documentation/devicetree/bindings/mfd/ab8500.txt
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/usb/nvidia,tegra20-ehci.txt
Documentation/devicetree/bindings/usb/nvidia,tegra20-usb-phy.txt
Documentation/devicetree/bindings/video/exynos_dp.txt
arch/arm/Kconfig.debug
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/aks-cdu.dts
arch/arm/boot/dts/am33xx.dtsi
arch/arm/boot/dts/animeo_ip.dts
arch/arm/boot/dts/armada-370-db.dts
arch/arm/boot/dts/armada-370-mirabox.dts
arch/arm/boot/dts/armada-370-rd.dts
arch/arm/boot/dts/armada-370-xp.dtsi
arch/arm/boot/dts/armada-370.dtsi
arch/arm/boot/dts/armada-xp-db.dts
arch/arm/boot/dts/armada-xp-gp.dts
arch/arm/boot/dts/armada-xp-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/at91sam9g15.dtsi
arch/arm/boot/dts/at91sam9g15ek.dts
arch/arm/boot/dts/at91sam9g20.dtsi
arch/arm/boot/dts/at91sam9g20ek.dts
arch/arm/boot/dts/at91sam9g20ek_2mmc.dts
arch/arm/boot/dts/at91sam9g20ek_common.dtsi
arch/arm/boot/dts/at91sam9g25.dtsi
arch/arm/boot/dts/at91sam9g25ek.dts
arch/arm/boot/dts/at91sam9g35.dtsi
arch/arm/boot/dts/at91sam9g35ek.dts
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/at91sam9x25.dtsi
arch/arm/boot/dts/at91sam9x25ek.dts
arch/arm/boot/dts/at91sam9x35.dtsi
arch/arm/boot/dts/at91sam9x35ek.dts
arch/arm/boot/dts/at91sam9x5.dtsi
arch/arm/boot/dts/at91sam9x5cm.dtsi
arch/arm/boot/dts/at91sam9x5ek.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/ethernut5.dts
arch/arm/boot/dts/evk-pro3.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/ge863-pro3.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/kizbox.dts
arch/arm/boot/dts/lpc32xx.dtsi
arch/arm/boot/dts/mpa1600.dts
arch/arm/boot/dts/omap2.dtsi
arch/arm/boot/dts/omap3.dtsi
arch/arm/boot/dts/omap4.dtsi
arch/arm/boot/dts/omap5.dtsi
arch/arm/boot/dts/picoxcell-pc3x2.dtsi
arch/arm/boot/dts/picoxcell-pc3x3.dtsi
arch/arm/boot/dts/pm9g45.dts
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/sama5d31ek.dts
arch/arm/boot/dts/sama5d33ek.dts
arch/arm/boot/dts/sama5d34ek.dts
arch/arm/boot/dts/sama5d35ek.dts
arch/arm/boot/dts/sama5d3xcm.dtsi
arch/arm/boot/dts/sama5d3xdm.dtsi
arch/arm/boot/dts/sama5d3xmb.dtsi
arch/arm/boot/dts/sh7372.dtsi
arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
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/tny_a9260.dts
arch/arm/boot/dts/tny_a9263.dts
arch/arm/boot/dts/tny_a9g20.dts
arch/arm/boot/dts/usb_a9260.dts
arch/arm/boot/dts/usb_a9260_common.dtsi
arch/arm/boot/dts/usb_a9263.dts
arch/arm/boot/dts/usb_a9g20-dab-mmx.dtsi
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/at91rm9200_defconfig
arch/arm/configs/at91sam9260_9g20_defconfig [moved from arch/arm/configs/at91sam9g20_defconfig with 67% similarity]
arch/arm/configs/at91sam9260_defconfig [deleted file]
arch/arm/configs/at91sam9261_9g10_defconfig [moved from arch/arm/configs/at91sam9261_defconfig with 91% similarity]
arch/arm/configs/at91sam9263_defconfig
arch/arm/configs/at91sam9g45_defconfig
arch/arm/configs/imx_v6_v7_defconfig
arch/arm/configs/nhk8815_defconfig
arch/arm/configs/sama5_defconfig
arch/arm/include/debug/imx-uart.h
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-sam9261ek.c
arch/arm/mach-at91/board-usb-a926x.c [deleted file]
arch/arm/mach-imx/Kconfig
arch/arm/mach-imx/Makefile
arch/arm/mach-imx/clk-imx51-imx53.c
arch/arm/mach-imx/clk-imx6q.c
arch/arm/mach-imx/clk-imx6sl.c [new file with mode: 0644]
arch/arm/mach-imx/clk-pllv3.c
arch/arm/mach-imx/clk-vf610.c [new file with mode: 0644]
arch/arm/mach-imx/clk.c
arch/arm/mach-imx/clk.h
arch/arm/mach-imx/common.h
arch/arm/mach-imx/hardware.h
arch/arm/mach-imx/imx25-dt.c
arch/arm/mach-imx/imx27-dt.c
arch/arm/mach-imx/imx31-dt.c
arch/arm/mach-imx/imx51-dt.c
arch/arm/mach-imx/irq-common.c
arch/arm/mach-imx/mach-imx53.c
arch/arm/mach-imx/mach-imx6q.c
arch/arm/mach-imx/mach-imx6sl.c [new file with mode: 0644]
arch/arm/mach-imx/mach-pca100.c
arch/arm/mach-imx/mach-vf610.c [new file with mode: 0644]
arch/arm/mach-imx/mm-imx1.c
arch/arm/mach-imx/mm-imx21.c
arch/arm/mach-imx/mm-imx25.c
arch/arm/mach-imx/mm-imx27.c
arch/arm/mach-imx/mm-imx3.c
arch/arm/mach-imx/mm-imx5.c
arch/arm/mach-imx/system.c
arch/arm/mach-imx/ulpi.c [deleted file]
arch/arm/mach-imx/ulpi.h
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-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
arch/arm/mach-zynq/slcr.c
drivers/bus/Kconfig
drivers/bus/Makefile
drivers/bus/imx-weim.c [new file with mode: 0644]
drivers/clk/Makefile
drivers/clk/clk-nomadik.c
drivers/clk/clk-zynq.c [deleted file]
drivers/clk/samsung/clk-exynos4.c
drivers/clk/zynq/Makefile [new file with mode: 0644]
drivers/clk/zynq/clkc.c [new file with mode: 0644]
drivers/clk/zynq/pll.c [new file with mode: 0644]
drivers/clocksource/cadence_ttc_timer.c
drivers/clocksource/nomadik-mtu.c
drivers/crypto/ux500/cryp/cryp_core.c
drivers/crypto/ux500/hash/hash_core.c
drivers/pinctrl/pinctrl-nomadik.c
drivers/regulator/ab8500.c
drivers/tty/serial/xilinx_uartps.c
include/dt-bindings/clock/imx6sl-clock.h [new file with mode: 0644]
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/clock/vf610-clock.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/at91.h [new file with mode: 0644]
include/linux/clk/zynq.h

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 d71b4b2c077daa410a53951893229ecbac59a892..f46f5625d8ada4e907474d304a0ebd541f269acc 100644 (file)
@@ -184,6 +184,19 @@ clocks and IDs.
        cko2                    170
        srtc_gate               171
        pata_gate               172
+       sata_gate               173
+       spdif_xtal_sel          174
+       spdif0_sel              175
+       spdif1_sel              176
+       spdif0_pred             177
+       spdif0_podf             178
+       spdif1_pred             179
+       spdif1_podf             180
+       spdif0_com_sel          181
+       spdif1_com_sel          182
+       spdif0_gate             183
+       spdif1_gate             184
+       spdif_ipg_gate          185
 
 Examples (for mx53):
 
index 6deb6fd1c7cd07d718c94c81c13a6ec01f641151..a0e104f0527e058843c1f01a33997ff64d8f37cb 100644 (file)
@@ -208,6 +208,7 @@ clocks and IDs.
        pll4_post_div           193
        pll5_post_div           194
        pll5_video_div          195
+       eim_slow                196
 
 Examples:
 
diff --git a/Documentation/devicetree/bindings/clock/imx6sl-clock.txt b/Documentation/devicetree/bindings/clock/imx6sl-clock.txt
new file mode 100644 (file)
index 0000000..15e40bd
--- /dev/null
@@ -0,0 +1,10 @@
+* Clock bindings for Freescale i.MX6 SoloLite
+
+Required properties:
+- compatible: Should be "fsl,imx6sl-ccm"
+- reg: Address and length of the register set
+- #clock-cells: Should be <1>
+
+The clock consumer should specify the desired clock by having the clock
+ID in its "clocks" phandle cell.  See include/dt-bindings/clock/imx6sl-clock.h
+for the full list of i.MX6 SoloLite clock IDs.
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
diff --git a/Documentation/devicetree/bindings/clock/vf610-clock.txt b/Documentation/devicetree/bindings/clock/vf610-clock.txt
new file mode 100644 (file)
index 0000000..c80863d
--- /dev/null
@@ -0,0 +1,26 @@
+* Clock bindings for Freescale Vybrid VF610 SOC
+
+Required properties:
+- compatible: Should be "fsl,vf610-ccm"
+- reg: Address and length of the register set
+- #clock-cells: Should be <1>
+
+The clock consumer should specify the desired clock by having the clock
+ID in its "clocks" phandle cell. See include/dt-bindings/clock/vf610-clock.h
+for the full list of VF610 clock IDs.
+
+Examples:
+
+clks: ccm@4006b000 {
+       compatible = "fsl,vf610-ccm";
+       reg = <0x4006b000 0x1000>;
+       #clock-cells = <1>;
+};
+
+uart1: serial@40028000 {
+       compatible = "fsl,vf610-uart";
+       reg = <0x40028000 0x1000>;
+       interrupts = <0 62 0x04>;
+       clocks = <&clks VF610_CLK_UART1>;
+       clock-names = "ipg";
+};
index 23ae1db1bc13c5a359f9d8a8556d06f49a4a616e..d99af878f5d7db6f59d6160f251edec22d902ed8 100644 (file)
@@ -6,50 +6,99 @@ The purpose of this document is to document their usage.
 See clock_bindings.txt for more information on the generic clock bindings.
 See Chapter 25 of Zynq TRM for more information about Zynq clocks.
 
-== PLLs ==
-
-Used to describe the ARM_PLL, DDR_PLL, and IO_PLL.
+== Clock Controller ==
+The clock controller is a logical abstraction of Zynq's clock tree. It reads
+required input clock frequencies from the devicetree and acts as clock provider
+for all clock consumers of PS clocks.
 
 Required properties:
-- #clock-cells : shall be 0 (only one clock is output from this node)
-- compatible : "xlnx,zynq-pll"
-- reg : pair of u32 values, which are the address offsets within the SLCR
-        of the relevant PLL_CTRL register and PLL_CFG register respectively
-- clocks : phandle for parent clock.  should be the phandle for ps_clk
+ - #clock-cells : Must be 1
+ - compatible : "xlnx,ps7-clkc"
+ - ps-clk-frequency : Frequency of the oscillator providing ps_clk in HZ
+                     (usually 33 MHz oscillators are used for Zynq platforms)
+ - clock-output-names : List of strings used to name the clock outputs. Shall be
+                       a list of the outputs given below.
 
 Optional properties:
-- clock-output-names : name of the output clock
-
-Example:
-       armpll: armpll {
-               #clock-cells = <0>;
-               compatible = "xlnx,zynq-pll";
-               clocks = <&ps_clk>;
-               reg = <0x100 0x110>;
-               clock-output-names = "armpll";
-       };
-
-== Peripheral clocks ==
+ - clocks : as described in the clock bindings
+ - clock-names : as described in the clock bindings
 
-Describes clock node for the SDIO, SMC, SPI, QSPI, and UART clocks.
+Clock inputs:
+The following strings are optional parameters to the 'clock-names' property in
+order to provide an optional (E)MIO clock source.
+ - swdt_ext_clk
+ - gem0_emio_clk
+ - gem1_emio_clk
+ - mio_clk_XX          # with XX = 00..53
+...
 
-Required properties:
-- #clock-cells : shall be 1
-- compatible : "xlnx,zynq-periph-clock"
-- reg : a single u32 value, describing the offset within the SLCR where
-        the CLK_CTRL register is found for this peripheral
-- clocks : phandle for parent clocks.  should hold phandles for
-           the IO_PLL, ARM_PLL, and DDR_PLL in order
-- clock-output-names : names of the output clock(s).  For peripherals that have
-                       two output clocks (for example, the UART), two clocks
-                       should be listed.
+Clock outputs:
+ 0:  armpll
+ 1:  ddrpll
+ 2:  iopll
+ 3:  cpu_6or4x
+ 4:  cpu_3or2x
+ 5:  cpu_2x
+ 6:  cpu_1x
+ 7:  ddr2x
+ 8:  ddr3x
+ 9:  dci
+ 10: lqspi
+ 11: smc
+ 12: pcap
+ 13: gem0
+ 14: gem1
+ 15: fclk0
+ 16: fclk1
+ 17: fclk2
+ 18: fclk3
+ 19: can0
+ 20: can1
+ 21: sdio0
+ 22: sdio1
+ 23: uart0
+ 24: uart1
+ 25: spi0
+ 26: spi1
+ 27: dma
+ 28: usb0_aper
+ 29: usb1_aper
+ 30: gem0_aper
+ 31: gem1_aper
+ 32: sdio0_aper
+ 33: sdio1_aper
+ 34: spi0_aper
+ 35: spi1_aper
+ 36: can0_aper
+ 37: can1_aper
+ 38: i2c0_aper
+ 39: i2c1_aper
+ 40: uart0_aper
+ 41: uart1_aper
+ 42: gpio_aper
+ 43: lqspi_aper
+ 44: smc_aper
+ 45: swdt
+ 46: dbg_trc
+ 47: dbg_apb
 
 Example:
-       uart_clk: uart_clk {
+       clkc: clkc {
                #clock-cells = <1>;
-               compatible = "xlnx,zynq-periph-clock";
-               clocks = <&iopll &armpll &ddrpll>;
-               reg = <0x154>;
-               clock-output-names = "uart0_ref_clk",
-                                    "uart1_ref_clk";
+               compatible = "xlnx,ps7-clkc";
+               ps-clk-frequency = <33333333>;
+               clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x",
+                               "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x",
+                               "dci", "lqspi", "smc", "pcap", "gem0", "gem1",
+                               "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1",
+                               "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1",
+                               "dma", "usb0_aper", "usb1_aper", "gem0_aper",
+                               "gem1_aper", "sdio0_aper", "sdio1_aper",
+                               "spi0_aper", "spi1_aper", "can0_aper", "can1_aper",
+                               "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper",
+                               "gpio_aper", "lqspi_aper", "smc_aper", "swdt",
+                               "dbg_trc", "dbg_apb";
+               # optional props
+               clocks = <&clkc 16>, <&clk_foo>;
+               clock-names = "gem1_emio_clk", "can_mio_clk_23";
        };
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";
        };
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>;
         };
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 34c952883276c32d46cc7643f4e90a482707102b..df0933043a5be46f705a450e3956f92d8ef77600 100644 (file)
@@ -6,27 +6,10 @@ Practice : Universal Serial Bus" with the following modifications
 and additions :
 
 Required properties :
- - compatible : Should be "nvidia,tegra20-ehci" for USB controllers
-   used in host mode.
- - phy_type : Should be one of "ulpi" or "utmi".
- - nvidia,vbus-gpio : If present, specifies a gpio that needs to be
-   activated for the bus to be powered.
- - nvidia,phy : phandle of the PHY instance, the controller is connected to.
-
-Required properties for phy_type == ulpi:
-  - nvidia,phy-reset-gpio : The GPIO used to reset the PHY.
+ - compatible : Should be "nvidia,tegra20-ehci".
+ - nvidia,phy : phandle of the PHY that the controller is connected to.
+ - clocks : Contains a single entry which defines the USB controller's clock.
 
 Optional properties:
-  - dr_mode : dual role mode. Indicates the working mode for
-   nvidia,tegra20-ehci compatible controllers.  Can be "host", "peripheral",
-   or "otg".  Default to "host" if not defined for backward compatibility.
-      host means this is a host controller
-      peripheral means it is device controller
-      otg means it can operate as either ("on the go")
-  - nvidia,has-legacy-mode : boolean indicates whether this controller can
-    operate in legacy mode (as APX 2500 / 2600). In legacy mode some
-    registers are accessed through the APB_MISC base address instead of
-    the USB controller. Since this is a legacy issue it probably does not
-    warrant a compatible string of its own.
-  - nvidia,needs-double-reset : boolean is to be set for some of the Tegra2
-    USB ports, which need reset twice due to hardware issues.
+ - nvidia,needs-double-reset : boolean is to be set for some of the Tegra20
+   USB ports, which need reset twice due to hardware issues.
index 6bdaba2f0aa19a5e3c4b6a207a87123f44065382..c4c9e9e664aac3461a378d2ab249ba0ca662b2b2 100644 (file)
@@ -4,14 +4,49 @@ The device node for Tegra SOC USB PHY:
 
 Required properties :
  - compatible : Should be "nvidia,tegra20-usb-phy".
- - reg : Address and length of the register set for the USB PHY interface.
- - phy_type : Should be one of "ulpi" or "utmi".
+ - reg : Defines the following set of registers, in the order listed:
+   - The PHY's own register set.
+     Always present.
+   - The register set of the PHY containing the UTMI pad control registers.
+     Present if-and-only-if phy_type == utmi.
+ - phy_type : Should be one of "utmi", "ulpi" or "hsic".
+ - clocks : Defines the clocks listed in the clock-names property.
+ - clock-names : The following clock names must be present:
+   - reg: The clock needed to access the PHY's own registers. This is the
+     associated EHCI controller's clock. Always present.
+   - pll_u: PLL_U. Always present.
+   - timer: The timeout clock (clk_m). Present if phy_type == utmi.
+   - utmi-pads: The clock needed to access the UTMI pad control registers.
+     Present if phy_type == utmi.
+   - ulpi-link: The clock Tegra provides to the ULPI PHY (cdev2).
+     Present if phy_type == ulpi, and ULPI link mode is in use.
 
 Required properties for phy_type == ulpi:
   - nvidia,phy-reset-gpio : The GPIO used to reset the PHY.
 
+Required PHY timing params for utmi phy:
+  - nvidia,hssync-start-delay : Number of 480 Mhz clock cycles to wait before
+    start of sync launches RxActive
+  - nvidia,elastic-limit : Variable FIFO Depth of elastic input store
+  - nvidia,idle-wait-delay : Number of 480 Mhz clock cycles of idle to wait
+    before declare IDLE.
+  - nvidia,term-range-adj : Range adjusment on terminations
+  - nvidia,xcvr-setup : HS driver output control
+  - nvidia,xcvr-lsfslew : LS falling slew rate control.
+  - nvidia,xcvr-lsrslew :  LS rising slew rate control.
+
 Optional properties:
   - nvidia,has-legacy-mode : boolean indicates whether this controller can
     operate in legacy mode (as APX 2500 / 2600). In legacy mode some
     registers are accessed through the APB_MISC base address instead of
-    the USB controller.
\ No newline at end of file
+    the USB controller.
+  - nvidia,is-wired : boolean. Indicates whether we can do certain kind of power
+    optimizations for the devices that are always connected. e.g. modem.
+  - dr_mode : dual role mode. Indicates the working mode for the PHY. Can be
+    "host", "peripheral", or "otg". Defaults to "host" if not defined.
+      host means this is a host controller
+      peripheral means it is device controller
+      otg means it can operate as either ("on the go")
+
+Required properties for dr_mode == otg:
+  - vbus-supply: regulator for VBUS
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 1d41908d5cda0644a31a9048c882369f21db235b..29f7623553c195703e0cd1a610cb5ec4165c4ae1 100644 (file)
@@ -251,6 +251,13 @@ choice
                  Say Y here if you want kernel low-level debugging support
                  on i.MX6Q/DL.
 
+       config DEBUG_IMX6SL_UART
+               bool "i.MX6SL Debug UART"
+               depends on SOC_IMX6SL
+               help
+                 Say Y here if you want kernel low-level debugging support
+                 on i.MX6SL.
+
        config DEBUG_MMP_UART2
                bool "Kernel low-level debugging message via MMP UART2"
                depends on ARCH_MMP
@@ -532,7 +539,8 @@ config DEBUG_IMX_UART_PORT
                                                DEBUG_IMX35_UART || \
                                                DEBUG_IMX51_UART || \
                                                DEBUG_IMX53_UART || \
-                                               DEBUG_IMX6Q_UART
+                                               DEBUG_IMX6Q_UART || \
+                                               DEBUG_IMX6SL_UART
        default 1
        depends on ARCH_MXC
        help
@@ -631,7 +639,8 @@ config DEBUG_LL_INCLUDE
                                 DEBUG_IMX35_UART || \
                                 DEBUG_IMX51_UART || \
                                 DEBUG_IMX53_UART ||\
-                                DEBUG_IMX6Q_UART
+                                DEBUG_IMX6Q_UART || \
+                                DEBUG_IMX6SL_UART
        default "debug/mvebu.S" if DEBUG_MVEBU_UART
        default "debug/mxs.S" if DEBUG_IMX23_UART || DEBUG_IMX28_UART
        default "debug/nomadik.S" if DEBUG_NOMADIK_UART
index 05da469466f4ec8a1c898b844e04ff9f5ec9e495..049422b06f470f8a526fc1a82116af14a99d9808 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
@@ -84,6 +86,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 \
@@ -103,13 +107,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 \
@@ -117,10 +123,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 \
@@ -130,6 +139,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 \
@@ -162,10 +173,13 @@ 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 \
@@ -185,6 +199,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 \
@@ -211,8 +226,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 29b9f15e7599571b920285772f37c63d69f6b40d..54cb5cf8604aaeb2a164155ea40a651a47690e8c 100644 (file)
@@ -9,7 +9,7 @@
 
 /dts-v1/;
 
-/include/ "ge863-pro3.dtsi"
+#include "ge863-pro3.dtsi"
 
 / {
        chosen {
@@ -46,7 +46,7 @@
                        };
 
                        usb1: gadget@fffa4000 {
-                               atmel,vbus-gpio = <&pioC 15 0>;
+                               atmel,vbus-gpio = <&pioC 15 GPIO_ACTIVE_HIGH>;
                                status = "okay";
                        };
                };
                compatible = "gpio-leds";
 
                red {
-                       gpios = <&pioC 10 0>;
+                       gpios = <&pioC 10 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "none";
                };
 
                green {
-                       gpios = <&pioA 5 1>;
+                       gpios = <&pioA 5 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "none";
                        default-state = "on";
                };
 
                yellow {
-                       gpios = <&pioB 20 1>;
+                       gpios = <&pioB 20 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "none";
                };
 
                blue {
-                       gpios = <&pioB 21 1>;
+                       gpios = <&pioB 21 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "none";
                };
        };
index 0b9e4163fec2697f842ff429a5c1acd5eb0233bb..d1e4929231d6e6be3619c846214bcbfe2884f858 100644 (file)
        };
 
        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,
index 5160210f74da8c1f588c42b83e86194082022b83..3a1de9eb51112f2eb0c6eb00b5b20026985800b5 100644 (file)
@@ -7,7 +7,7 @@
  */
 
 /dts-v1/;
-/include/ "at91sam9260.dtsi"
+#include "at91sam9260.dtsi"
 
 / {
        model = "Somfy Animeo IP";
 
                usb0: ohci@00500000 {
                        num-ports = <2>;
-                       atmel,vbus-gpio = <&pioB 15 1>;
+                       atmel,vbus-gpio = <&pioB 15 GPIO_ACTIVE_LOW>;
                        status = "okay";
                };
        };
 
                power_green {
                        label = "power_green";
-                       gpios = <&pioC 17 0>;
+                       gpios = <&pioC 17 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                };
 
                power_red {
                        label = "power_red";
-                       gpios = <&pioA 2 0>;
+                       gpios = <&pioA 2 GPIO_ACTIVE_HIGH>;
                };
 
                tx_green {
                        label = "tx_green";
-                       gpios = <&pioC 19 0>;
+                       gpios = <&pioC 19 GPIO_ACTIVE_HIGH>;
                };
 
                tx_red {
                        label = "tx_red";
-                       gpios = <&pioC 18 0>;
+                       gpios = <&pioC 18 GPIO_ACTIVE_HIGH>;
                };
        };
 
 
                keyswitch_in {
                        label = "keyswitch_in";
-                       gpios = <&pioB 1 0>;
+                       gpios = <&pioB 1 GPIO_ACTIVE_HIGH>;
                        linux,code = <28>;
                        gpio-key,wakeup;
                };
 
                error_in {
                        label = "error_in";
-                       gpios = <&pioB 2 0>;
+                       gpios = <&pioB 2 GPIO_ACTIVE_HIGH>;
                        linux,code = <29>;
                        gpio-key,wakeup;
                };
 
                btn {
                        label = "btn";
-                       gpios = <&pioC 23 0>;
+                       gpios = <&pioC 23 GPIO_ACTIVE_HIGH>;
                        linux,code = <31>;
                        gpio-key,wakeup;
                };
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..89c21106cfa93de89fac1c9209efff44dad2ef06 100644 (file)
@@ -64,6 +64,7 @@
                                pinctrl-names = "default";
                                status = "okay";
                                /* No CD or WP GPIOs */
+                               broken-cd;
                        };
 
                        usb@50000 {
index 550eb772c30e4c47c2f7f0896469a033dee3e23b..a679b6697a981c69b962784a752a128166fb7769 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 0x2500>;
                                interrupts = <8>;
                                status = "disabled";
                        };
 
-                       ethernet@74000 {
+                       eth1: ethernet@74000 {
                                compatible = "marvell,armada-370-neta";
                                reg = <0x74000 0x2500>;
                                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 6ab56bd35de926aaab239966f87bb78b193dac2d..386f0ce48453361aaceede735d9bf4acf6cfeb6a 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 0x2500>;
                                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 5b902f9a3af29a84fd0ee83000c8d0f2ffa280ea..e481d54b565cf8296a103c73d79439a06b7e4cd9 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 0x2500>;
                                interrupts = <12>;
index c7aebba4e8e737a28e884e1700894577160faf92..cce45f5177f9f0aef6b40e0e775617f47398c48e 100644 (file)
@@ -7,7 +7,7 @@
  * Licensed under GPLv2 or later.
  */
 /dts-v1/;
-/include/ "at91sam9g25.dtsi"
+#include "at91sam9g25.dtsi"
 
 / {
        model = "Acme Systems Aria G25";
@@ -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 {
                /* little green LED in middle of Aria G25 module */
                aria_led {
                        label = "aria_led";
-                       gpios = <&pioB 8 0>; /* PB8 */
+                       gpios = <&pioB 8 GPIO_ACTIVE_HIGH>; /* PB8 */
                        linux,default-trigger = "heartbeat";
                };
 
 
        onewire@0 {
                compatible = "w1-gpio";
-               gpios = <&pioA 21 1>;
+               gpios = <&pioA 21 GPIO_ACTIVE_LOW>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_w1_0>;
        };
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 5d3ed5aafc699b071f6a1044ed9cb4948d6ee726..34c03806fe061b2828f7398b5b67ade8b3d5c0f2 100644 (file)
  * Licensed under GPLv2 or later.
  */
 
-/include/ "skeleton.dtsi"
+#include "skeleton.dtsi"
+#include <dt-bindings/pinctrl/at91.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/gpio/gpio.h>
 
 / {
        model = "Atmel AT91RM9200 family SoC";
                ssc2 = &ssc2;
        };
        cpus {
-               cpu@0 {
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
                        compatible = "arm,arm920t";
+                       device_type = "cpu";
                };
        };
 
                        st: timer@fffffd00 {
                                compatible = "atmel,at91rm9200-st";
                                reg = <0xfffffd00 0x100>;
-                               interrupts = <1 4 7>;
+                               interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
                        };
 
                        tcb0: timer@fffa0000 {
                                compatible = "atmel,at91rm9200-tcb";
                                reg = <0xfffa0000 0x100>;
-                               interrupts = <17 4 0 18 4 0 19 4 0>;
+                               interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0
+                                             18 IRQ_TYPE_LEVEL_HIGH 0
+                                             19 IRQ_TYPE_LEVEL_HIGH 0>;
                        };
 
                        tcb1: timer@fffa4000 {
                                compatible = "atmel,at91rm9200-tcb";
                                reg = <0xfffa4000 0x100>;
-                               interrupts = <20 4 0 21 4 0 22 4 0>;
+                               interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0
+                                             21 IRQ_TYPE_LEVEL_HIGH 0
+                                             22 IRQ_TYPE_LEVEL_HIGH 0>;
                        };
 
                        i2c0: i2c@fffb8000 {
                                compatible = "atmel,at91rm9200-i2c";
                                reg = <0xfffb8000 0x4000>;
-                               interrupts = <12 4 6>;
+                               interrupts = <12 IRQ_TYPE_LEVEL_HIGH 6>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_twi>;
                                #address-cells = <1>;
                        mmc0: mmc@fffb4000 {
                                compatible = "atmel,hsmci";
                                reg = <0xfffb4000 0x4000>;
-                               interrupts = <10 4 0>;
+                               interrupts = <10 IRQ_TYPE_LEVEL_HIGH 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                        ssc0: ssc@fffd0000 {
                                compatible = "atmel,at91rm9200-ssc";
                                reg = <0xfffd0000 0x4000>;
-                               interrupts = <14 4 5>;
+                               interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
                                status = "disable";
                        ssc1: ssc@fffd4000 {
                                compatible = "atmel,at91rm9200-ssc";
                                reg = <0xfffd4000 0x4000>;
-                               interrupts = <15 4 5>;
+                               interrupts = <15 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
                                status = "disable";
                        ssc2: ssc@fffd8000 {
                                compatible = "atmel,at91rm9200-ssc";
                                reg = <0xfffd8000 0x4000>;
-                               interrupts = <16 4 5>;
+                               interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_ssc2_tx &pinctrl_ssc2_rx>;
                                status = "disable";
                        macb0: ethernet@fffbc000 {
                                compatible = "cdns,at91rm9200-emac", "cdns,emac";
                                reg = <0xfffbc000 0x4000>;
-                               interrupts = <24 4 3>;
+                               interrupts = <24 IRQ_TYPE_LEVEL_HIGH 3>;
                                phy-mode = "rmii";
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_macb_rmii>;
                                dbgu {
                                        pinctrl_dbgu: dbgu-0 {
                                                atmel,pins =
-                                                       <0 30 0x1 0x0   /* PA30 periph A */
-                                                        0 31 0x1 0x1>; /* PA31 periph with pullup */
+                                                       <AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA30 periph A */
+                                                        AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA31 periph with pullup */
                                        };
                                };
 
                                uart0 {
                                        pinctrl_uart0: uart0-0 {
                                                atmel,pins =
-                                                       <0 17 0x1 0x0   /* PA17 periph A */
-                                                        0 18 0x1 0x0>; /* PA18 periph A */
+                                                       <AT91_PIOA 17 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA17 periph A */
+                                                        AT91_PIOA 18 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA18 periph A */
                                        };
 
                                        pinctrl_uart0_rts: uart0_rts-0 {
                                                atmel,pins =
-                                                       <0 20 0x1 0x0>; /* PA20 periph A */
+                                                       <AT91_PIOA 20 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA20 periph A */
                                        };
 
                                        pinctrl_uart0_cts: uart0_cts-0 {
                                                atmel,pins =
-                                                       <0 21 0x1 0x0>; /* PA21 periph A */
+                                                       <AT91_PIOA 21 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA21 periph A */
                                        };
                                };
 
                                uart1 {
                                        pinctrl_uart1: uart1-0 {
                                                atmel,pins =
-                                                       <1 20 0x1 0x1   /* PB20 periph A with pullup */
-                                                        1 21 0x1 0x0>; /* PB21 periph A */
+                                                       <AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PB20 periph A with pullup */
+                                                        AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB21 periph A */
                                        };
 
                                        pinctrl_uart1_rts: uart1_rts-0 {
                                                atmel,pins =
-                                                       <1 24 0x1 0x0>; /* PB24 periph A */
+                                                       <AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB24 periph A */
                                        };
 
                                        pinctrl_uart1_cts: uart1_cts-0 {
                                                atmel,pins =
-                                                       <1 26 0x1 0x0>; /* PB26 periph A */
+                                                       <AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB26 periph A */
                                        };
 
                                        pinctrl_uart1_dtr_dsr: uart1_dtr_dsr-0 {
                                                atmel,pins =
-                                                       <1 19 0x1 0x0   /* PB19 periph A */
-                                                        1 25 0x1 0x0>; /* PB25 periph A */
+                                                       <AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB19 periph A */
+                                                        AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB25 periph A */
                                        };
 
                                        pinctrl_uart1_dcd: uart1_dcd-0 {
                                                atmel,pins =
-                                                       <1 23 0x1 0x0>; /* PB23 periph A */
+                                                       <AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB23 periph A */
                                        };
 
                                        pinctrl_uart1_ri: uart1_ri-0 {
                                                atmel,pins =
-                                                       <1 18 0x1 0x0>; /* PB18 periph A */
+                                                       <AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB18 periph A */
                                        };
                                };
 
                                uart2 {
                                        pinctrl_uart2: uart2-0 {
                                                atmel,pins =
-                                                       <0 22 0x1 0x0   /* PA22 periph A */
-                                                        0 23 0x1 0x1>; /* PA23 periph A with pullup */
+                                                       <AT91_PIOA 22 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA22 periph A */
+                                                        AT91_PIOA 23 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA23 periph A with pullup */
                                        };
 
                                        pinctrl_uart2_rts: uart2_rts-0 {
                                                atmel,pins =
-                                                       <0 30 0x2 0x0>; /* PA30 periph B */
+                                                       <AT91_PIOA 30 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PA30 periph B */
                                        };
 
                                        pinctrl_uart2_cts: uart2_cts-0 {
                                                atmel,pins =
-                                                       <0 31 0x2 0x0>; /* PA31 periph B */
+                                                       <AT91_PIOA 31 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PA31 periph B */
                                        };
                                };
 
                                uart3 {
                                        pinctrl_uart3: uart3-0 {
                                                atmel,pins =
-                                                       <0 5 0x2 0x1    /* PA5 periph B with pullup */
-                                                        0 6 0x2 0x0>;  /* PA6 periph B */
+                                                       <AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* PA5 periph B with pullup */
+                                                        AT91_PIOA 6 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PA6 periph B */
                                        };
 
                                        pinctrl_uart3_rts: uart3_rts-0 {
                                                atmel,pins =
-                                                       <1 0 0x2 0x0>;  /* PB0 periph B */
+                                                       <AT91_PIOB 0 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PB0 periph B */
                                        };
 
                                        pinctrl_uart3_cts: uart3_cts-0 {
                                                atmel,pins =
-                                                       <1 1 0x2 0x0>;  /* PB1 periph B */
+                                                       <AT91_PIOB 1 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PB1 periph B */
                                        };
                                };
 
                                nand {
                                        pinctrl_nand: nand-0 {
                                                atmel,pins =
-                                                       <2 2 0x0 0x1    /* PC2 gpio RDY pin pull_up */
-                                                        1 1 0x0 0x1>;  /* PB1 gpio CD pin pull_up */
+                                                       <AT91_PIOC 2 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP      /* PC2 gpio RDY pin pull_up */
+                                                        AT91_PIOB 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;    /* PB1 gpio CD pin pull_up */
                                        };
                                };
 
                                macb {
                                        pinctrl_macb_rmii: macb_rmii-0 {
                                                atmel,pins =
-                                                       <0 7 0x1 0x0    /* PA7 periph A */
-                                                        0 8 0x1 0x0    /* PA8 periph A */
-                                                        0 9 0x1 0x0    /* PA9 periph A */
-                                                        0 10 0x1 0x0   /* PA10 periph A */
-                                                        0 11 0x1 0x0   /* PA11 periph A */
-                                                        0 12 0x1 0x0   /* PA12 periph A */
-                                                        0 13 0x1 0x0   /* PA13 periph A */
-                                                        0 14 0x1 0x0   /* PA14 periph A */
-                                                        0 15 0x1 0x0   /* PA15 periph A */
-                                                        0 16 0x1 0x0>; /* PA16 periph A */
+                                                       <AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA7 periph A */
+                                                        AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA8 periph A */
+                                                        AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA9 periph A */
+                                                        AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA10 periph A */
+                                                        AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA11 periph A */
+                                                        AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA12 periph A */
+                                                        AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA13 periph A */
+                                                        AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA14 periph A */
+                                                        AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA15 periph A */
+                                                        AT91_PIOA 16 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA16 periph A */
                                        };
 
                                        pinctrl_macb_rmii_mii: macb_rmii_mii-0 {
                                                atmel,pins =
-                                                       <1 12 0x2 0x0   /* PB12 periph B */
-                                                        1 13 0x2 0x0   /* PB13 periph B */
-                                                        1 14 0x2 0x0   /* PB14 periph B */
-                                                        1 15 0x2 0x0   /* PB15 periph B */
-                                                        1 16 0x2 0x0   /* PB16 periph B */
-                                                        1 17 0x2 0x0   /* PB17 periph B */
-                                                        1 18 0x2 0x0   /* PB18 periph B */
-                                                        1 19 0x2 0x0>; /* PB19 periph B */
+                                                       <AT91_PIOB 12 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PB12 periph B */
+                                                        AT91_PIOB 13 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PB13 periph B */
+                                                        AT91_PIOB 14 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PB14 periph B */
+                                                        AT91_PIOB 15 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PB15 periph B */
+                                                        AT91_PIOB 16 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PB16 periph B */
+                                                        AT91_PIOB 17 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PB17 periph B */
+                                                        AT91_PIOB 18 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PB18 periph B */
+                                                        AT91_PIOB 19 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB19 periph B */
                                        };
                                };
 
                                mmc0 {
                                        pinctrl_mmc0_clk: mmc0_clk-0 {
                                                atmel,pins =
-                                                       <0 27 0x1 0x0>; /* PA27 periph A */
+                                                       <AT91_PIOA 27 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA27 periph A */
                                        };
 
                                        pinctrl_mmc0_slot0_cmd_dat0: mmc0_slot0_cmd_dat0-0 {
                                                atmel,pins =
-                                                       <0 28 0x1 0x1   /* PA28 periph A with pullup */
-                                                        0 29 0x1 0x1>; /* PA29 periph A with pullup */
+                                                       <AT91_PIOA 28 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA28 periph A with pullup */
+                                                        AT91_PIOA 29 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA29 periph A with pullup */
                                        };
 
                                        pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
                                                atmel,pins =
-                                                       <1 3 0x2 0x1    /* PB3 periph B with pullup */
-                                                        1 4 0x2 0x1    /* PB4 periph B with pullup */
-                                                        1 5 0x2 0x1>;  /* PB5 periph B with pullup */
+                                                       <AT91_PIOB 3 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* PB3 periph B with pullup */
+                                                        AT91_PIOB 4 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* PB4 periph B with pullup */
+                                                        AT91_PIOB 5 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;       /* PB5 periph B with pullup */
                                        };
 
                                        pinctrl_mmc0_slot1_cmd_dat0: mmc0_slot1_cmd_dat0-0 {
                                                atmel,pins =
-                                                       <0 8 0x2 0x1    /* PA8 periph B with pullup */
-                                                        0 9 0x2 0x1>;  /* PA9 periph B with pullup */
+                                                       <AT91_PIOA 8 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* PA8 periph B with pullup */
+                                                        AT91_PIOA 9 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;       /* PA9 periph B with pullup */
                                        };
 
                                        pinctrl_mmc0_slot1_dat1_3: mmc0_slot1_dat1_3-0 {
                                                atmel,pins =
-                                                       <0 10 0x2 0x1   /* PA10 periph B with pullup */
-                                                        0 11 0x2 0x1   /* PA11 periph B with pullup */
-                                                        0 12 0x2 0x1>; /* PA12 periph B with pullup */
+                                                       <AT91_PIOA 10 AT91_PERIPH_B AT91_PINCTRL_PULL_UP        /* PA10 periph B with pullup */
+                                                        AT91_PIOA 11 AT91_PERIPH_B AT91_PINCTRL_PULL_UP        /* PA11 periph B with pullup */
+                                                        AT91_PIOA 12 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;      /* PA12 periph B with pullup */
                                        };
                                };
 
                                ssc0 {
                                        pinctrl_ssc0_tx: ssc0_tx-0 {
                                                atmel,pins =
-                                                       <1 0 0x1 0x0    /* PB0 periph A */
-                                                        1 1 0x1 0x0    /* PB1 periph A */
-                                                        1 2 0x1 0x0>;  /* PB2 periph A */
+                                                       <AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB0 periph A */
+                                                        AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB1 periph A */
+                                                        AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PB2 periph A */
                                        };
 
                                        pinctrl_ssc0_rx: ssc0_rx-0 {
                                                atmel,pins =
-                                                       <1 3 0x1 0x0    /* PB3 periph A */
-                                                        1 4 0x1 0x0    /* PB4 periph A */
-                                                        1 5 0x1 0x0>;  /* PB5 periph A */
+                                                       <AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB3 periph A */
+                                                        AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB4 periph A */
+                                                        AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PB5 periph A */
                                        };
                                };
 
                                ssc1 {
                                        pinctrl_ssc1_tx: ssc1_tx-0 {
                                                atmel,pins =
-                                                       <1 6 0x1 0x0    /* PB6 periph A */
-                                                        1 7 0x1 0x0    /* PB7 periph A */
-                                                        1 8 0x1 0x0>;  /* PB8 periph A */
+                                                       <AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB6 periph A */
+                                                        AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB7 periph A */
+                                                        AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PB8 periph A */
                                        };
 
                                        pinctrl_ssc1_rx: ssc1_rx-0 {
                                                atmel,pins =
-                                                       <1 9 0x1 0x0    /* PB9 periph A */
-                                                        1 10 0x1 0x0   /* PB10 periph A */
-                                                        1 11 0x1 0x0>; /* PB11 periph A */
+                                                       <AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB9 periph A */
+                                                        AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB10 periph A */
+                                                        AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB11 periph A */
                                        };
                                };
 
                                ssc2 {
                                        pinctrl_ssc2_tx: ssc2_tx-0 {
                                                atmel,pins =
-                                                       <1 12 0x1 0x0   /* PB12 periph A */
-                                                        1 13 0x1 0x0   /* PB13 periph A */
-                                                        1 14 0x1 0x0>; /* PB14 periph A */
+                                                       <AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB12 periph A */
+                                                        AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB13 periph A */
+                                                        AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB14 periph A */
                                        };
 
                                        pinctrl_ssc2_rx: ssc2_rx-0 {
                                                atmel,pins =
-                                                       <1 15 0x1 0x0   /* PB15 periph A */
-                                                        1 16 0x1 0x0   /* PB16 periph A */
-                                                        1 17 0x1 0x0>; /* PB17 periph A */
+                                                       <AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB15 periph A */
+                                                        AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB16 periph A */
+                                                        AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB17 periph A */
                                        };
                                };
 
                                twi {
                                        pinctrl_twi: twi-0 {
                                                atmel,pins =
-                                                       <0 25 0x1 0x2   /* PA25 periph A with multi drive */
-                                                        0 26 0x1 0x2>; /* PA26 periph A with multi drive */
+                                                       <AT91_PIOA 25 AT91_PERIPH_A AT91_PINCTRL_MULTI_DRIVE    /* PA25 periph A with multi drive */
+                                                        AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_MULTI_DRIVE>;  /* PA26 periph A with multi drive */
                                        };
 
                                        pinctrl_twi_gpio: twi_gpio-0 {
                                                atmel,pins =
-                                                       <0 25 0x0 0x2   /* PA25 GPIO with multi drive */
-                                                        0 26 0x0 0x2>; /* PA26 GPIO with multi drive */
+                                                       <AT91_PIOA 25 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE /* PA25 GPIO with multi drive */
+                                                        AT91_PIOA 26 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>;       /* PA26 GPIO with multi drive */
+                                       };
+                               };
+
+                               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>;
                                        };
                                };
 
                                pioA: gpio@fffff400 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffff400 0x200>;
-                                       interrupts = <2 4 1>;
+                                       interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioB: gpio@fffff600 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffff600 0x200>;
-                                       interrupts = <3 4 1>;
+                                       interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioC: gpio@fffff800 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffff800 0x200>;
-                                       interrupts = <4 4 1>;
+                                       interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioD: gpio@fffffa00 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffffa00 0x200>;
-                                       interrupts = <5 4 1>;
+                                       interrupts = <5 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                        dbgu: serial@fffff200 {
                                compatible = "atmel,at91rm9200-usart";
                                reg = <0xfffff200 0x200>;
-                               interrupts = <1 4 7>;
+                               interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_dbgu>;
                                status = "disabled";
                        usart0: serial@fffc0000 {
                                compatible = "atmel,at91rm9200-usart";
                                reg = <0xfffc0000 0x200>;
-                               interrupts = <6 4 5>;
+                               interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                        usart1: serial@fffc4000 {
                                compatible = "atmel,at91rm9200-usart";
                                reg = <0xfffc4000 0x200>;
-                               interrupts = <7 4 5>;
+                               interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                        usart2: serial@fffc8000 {
                                compatible = "atmel,at91rm9200-usart";
                                reg = <0xfffc8000 0x200>;
-                               interrupts = <8 4 5>;
+                               interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                        usart3: serial@fffcc000 {
                                compatible = "atmel,at91rm9200-usart";
                                reg = <0xfffcc000 0x200>;
-                               interrupts = <23 4 5>;
+                               interrupts = <23 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                        usb1: gadget@fffb0000 {
                                compatible = "atmel,at91rm9200-udc";
                                reg = <0xfffb0000 0x4000>;
-                               interrupts = <11 4 2>;
+                               interrupts = <11 IRQ_TYPE_LEVEL_HIGH 2>;
                                status = "disabled";
                        };
                };
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_nand>;
                        nand-ecc-mode = "soft";
-                       gpios = <&pioC 2 0
+                       gpios = <&pioC 2 GPIO_ACTIVE_HIGH
                                 0
-                                &pioB 1 0
+                                &pioB 1 GPIO_ACTIVE_HIGH
                                >;
                        status = "disabled";
                };
                usb0: ohci@00300000 {
                        compatible = "atmel,at91rm9200-ohci", "usb-ohci";
                        reg = <0x00300000 0x100000>;
-                       interrupts = <23 4 2>;
+                       interrupts = <23 IRQ_TYPE_LEVEL_HIGH 2>;
                        status = "disabled";
                };
        };
 
        i2c@0 {
                compatible = "i2c-gpio";
-               gpios = <&pioA 25 0 /* sda */
-                        &pioA 26 0 /* scl */
+               gpios = <&pioA 25 GPIO_ACTIVE_HIGH /* sda */
+                        &pioA 26 GPIO_ACTIVE_HIGH /* scl */
                        >;
                i2c-gpio,sda-open-drain;
                i2c-gpio,scl-open-drain;
index e586d85f8e23ec6d26ce94cb97670995c9943e35..14058125d123af81516b2a86dfab14a2b04a4624 100644 (file)
@@ -6,7 +6,7 @@
  * Licensed under GPLv2 only
  */
 /dts-v1/;
-/include/ "at91rm9200.dtsi"
+#include "at91rm9200.dtsi"
 
 / {
        model = "Atmel AT91RM9200 evaluation kit";
@@ -50,7 +50,7 @@
                        };
 
                        usb1: gadget@fffb0000 {
-                               atmel,vbus-gpio = <&pioD 4 0>;
+                               atmel,vbus-gpio = <&pioD 4 GPIO_ACTIVE_HIGH>;
                                status = "okay";
                        };
                };
 
                ds2 {
                        label = "green";
-                       gpios = <&pioB 0 0x1>;
+                       gpios = <&pioB 0 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "mmc0";
                };
 
                ds4 {
                        label = "yellow";
-                       gpios = <&pioB 1 0x1>;
+                       gpios = <&pioB 1 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "heartbeat";
                };
 
                ds6 {
                        label = "red";
-                       gpios = <&pioB 2 0x1>;
+                       gpios = <&pioB 2 GPIO_ACTIVE_LOW>;
                };
        };
 };
index 84c4bef2d7268760a6d927bd8ed2fdf7d547ea59..c7ccbcbffb3e6b283e6f7976271f42703fc7b90e 100644 (file)
@@ -8,7 +8,10 @@
  * Licensed under GPLv2 or later.
  */
 
-/include/ "skeleton.dtsi"
+#include "skeleton.dtsi"
+#include <dt-bindings/pinctrl/at91.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/gpio/gpio.h>
 
 / {
        model = "Atmel AT91SAM9260 family SoC";
                ssc0 = &ssc0;
        };
        cpus {
-               cpu@0 {
-                       compatible = "arm,arm926ejs";
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       compatible = "arm,arm926ej-s";
+                       device_type = "cpu";
                };
        };
 
                        pit: timer@fffffd30 {
                                compatible = "atmel,at91sam9260-pit";
                                reg = <0xfffffd30 0xf>;
-                               interrupts = <1 4 7>;
+                               interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
                        };
 
                        tcb0: timer@fffa0000 {
                                compatible = "atmel,at91rm9200-tcb";
                                reg = <0xfffa0000 0x100>;
-                               interrupts = <17 4 0 18 4 0 19 4 0>;
+                               interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0
+                                             18 IRQ_TYPE_LEVEL_HIGH 0
+                                             19 IRQ_TYPE_LEVEL_HIGH 0>;
                        };
 
                        tcb1: timer@fffdc000 {
                                compatible = "atmel,at91rm9200-tcb";
                                reg = <0xfffdc000 0x100>;
-                               interrupts = <26 4 0 27 4 0 28 4 0>;
+                               interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0
+                                             27 IRQ_TYPE_LEVEL_HIGH 0
+                                             28 IRQ_TYPE_LEVEL_HIGH 0>;
                        };
 
                        pinctrl@fffff400 {
                                dbgu {
                                        pinctrl_dbgu: dbgu-0 {
                                                atmel,pins =
-                                                       <1 14 0x1 0x0   /* PB14 periph A */
-                                                        1 15 0x1 0x1>; /* PB15 periph with pullup */
+                                                       <AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB14 periph A */
+                                                        AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PB15 periph with pullup */
                                        };
                                };
 
                                usart0 {
                                        pinctrl_usart0: usart0-0 {
                                                atmel,pins =
-                                                       <1 4 0x1 0x0    /* PB4 periph A */
-                                                        1 5 0x1 0x0>;  /* PB5 periph A */
+                                                       <AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB4 periph A */
+                                                        AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PB5 periph A */
                                        };
 
                                        pinctrl_usart0_rts: usart0_rts-0 {
                                                atmel,pins =
-                                                       <1 26 0x1 0x0>; /* PB26 periph A */
+                                                       <AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB26 periph A */
                                        };
 
                                        pinctrl_usart0_cts: usart0_cts-0 {
                                                atmel,pins =
-                                                       <1 27 0x1 0x0>; /* PB27 periph A */
+                                                       <AT91_PIOB 27 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB27 periph A */
                                        };
 
                                        pinctrl_usart0_dtr_dsr: usart0_dtr_dsr-0 {
                                                atmel,pins =
-                                                       <1 24 0x1 0x0   /* PB24 periph A */
-                                                        1 22 0x1 0x0>; /* PB22 periph A */
+                                                       <AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB24 periph A */
+                                                        AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB22 periph A */
                                        };
 
                                        pinctrl_usart0_dcd: usart0_dcd-0 {
                                                atmel,pins =
-                                                       <1 23 0x1 0x0>; /* PB23 periph A */
+                                                       <AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB23 periph A */
                                        };
 
                                        pinctrl_usart0_ri: usart0_ri-0 {
                                                atmel,pins =
-                                                       <1 25 0x1 0x0>; /* PB25 periph A */
+                                                       <AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB25 periph A */
                                        };
                                };
 
                                usart1 {
                                        pinctrl_usart1: usart1-0 {
                                                atmel,pins =
-                                                       <1 6 0x1 0x1    /* PB6 periph A with pullup */
-                                                        1 7 0x1 0x0>;  /* PB7 periph A */
+                                                       <AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PB6 periph A with pullup */
+                                                        AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PB7 periph A */
                                        };
 
                                        pinctrl_usart1_rts: usart1_rts-0 {
                                                atmel,pins =
-                                                       <1 28 0x1 0x0>; /* PB28 periph A */
+                                                       <AT91_PIOB 28 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB28 periph A */
                                        };
 
                                        pinctrl_usart1_cts: usart1_cts-0 {
                                                atmel,pins =
-                                                       <1 29 0x1 0x0>; /* PB29 periph A */
+                                                       <AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB29 periph A */
                                        };
                                };
 
                                usart2 {
                                        pinctrl_usart2: usart2-0 {
                                                atmel,pins =
-                                                       <1 8 0x1 0x1    /* PB8 periph A with pullup */
-                                                        1 9 0x1 0x0>;  /* PB9 periph A */
+                                                       <AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PB8 periph A with pullup */
+                                                        AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PB9 periph A */
                                        };
 
                                        pinctrl_usart2_rts: usart2_rts-0 {
                                                atmel,pins =
-                                                       <0 4 0x1 0x0>;  /* PA4 periph A */
+                                                       <AT91_PIOA 4 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PA4 periph A */
                                        };
 
                                        pinctrl_usart2_cts: usart2_cts-0 {
                                                atmel,pins =
-                                                       <0 5 0x1 0x0>;  /* PA5 periph A */
+                                                       <AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PA5 periph A */
                                        };
                                };
 
                                usart3 {
                                        pinctrl_usart3: usart3-0 {
                                                atmel,pins =
-                                                       <1 10 0x1 0x1   /* PB10 periph A with pullup */
-                                                        1 11 0x1 0x0>; /* PB11 periph A */
+                                                       <AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PB10 periph A with pullup */
+                                                        AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB11 periph A */
                                        };
 
                                        pinctrl_usart3_rts: usart3_rts-0 {
                                                atmel,pins =
-                                                       <2 8 0x2 0x0>;  /* PC8 periph B */
+                                                       <AT91_PIOB 8 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PC8 periph B */
                                        };
 
                                        pinctrl_usart3_cts: usart3_cts-0 {
                                                atmel,pins =
-                                                       <2 10 0x2 0x0>; /* PC10 periph B */
+                                                       <AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PC10 periph B */
                                        };
                                };
 
                                uart0 {
                                        pinctrl_uart0: uart0-0 {
                                                atmel,pins =
-                                                       <0 31 0x2 0x1   /* PA31 periph B with pullup */
-                                                        0 30 0x2 0x0>; /* PA30 periph B */
+                                                       <AT91_PIOA 31 AT91_PERIPH_B AT91_PINCTRL_PULL_UP        /* PA31 periph B with pullup */
+                                                        AT91_PIOA 30 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PA30 periph B */
                                        };
                                };
 
                                uart1 {
                                        pinctrl_uart1: uart1-0 {
                                                atmel,pins =
-                                                       <1 12 0x1 0x1   /* PB12 periph A with pullup */
-                                                        1 13 0x1 0x0>; /* PB13 periph A */
+                                                       <AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PB12 periph A with pullup */
+                                                        AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB13 periph A */
                                        };
                                };
 
                                nand {
                                        pinctrl_nand: nand-0 {
                                                atmel,pins =
-                                                       <2 13 0x0 0x1   /* PC13 gpio RDY pin pull_up */
-                                                        2 14 0x0 0x1>; /* PC14 gpio enable pin pull_up */
+                                                       <AT91_PIOC 13 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP     /* PC13 gpio RDY pin pull_up */
+                                                        AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;   /* PC14 gpio enable pin pull_up */
                                        };
                                };
 
                                macb {
                                        pinctrl_macb_rmii: macb_rmii-0 {
                                                atmel,pins =
-                                                       <0 12 0x1 0x0   /* PA12 periph A */
-                                                        0 13 0x1 0x0   /* PA13 periph A */
-                                                        0 14 0x1 0x0   /* PA14 periph A */
-                                                        0 15 0x1 0x0   /* PA15 periph A */
-                                                        0 16 0x1 0x0   /* PA16 periph A */
-                                                        0 17 0x1 0x0   /* PA17 periph A */
-                                                        0 18 0x1 0x0   /* PA18 periph A */
-                                                        0 19 0x1 0x0   /* PA19 periph A */
-                                                        0 20 0x1 0x0   /* PA20 periph A */
-                                                        0 21 0x1 0x0>; /* PA21 periph A */
+                                                       <AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA12 periph A */
+                                                        AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA13 periph A */
+                                                        AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA14 periph A */
+                                                        AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA15 periph A */
+                                                        AT91_PIOA 16 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA16 periph A */
+                                                        AT91_PIOA 17 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA17 periph A */
+                                                        AT91_PIOA 18 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA18 periph A */
+                                                        AT91_PIOA 19 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA19 periph A */
+                                                        AT91_PIOA 20 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA20 periph A */
+                                                        AT91_PIOA 21 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA21 periph A */
                                        };
 
                                        pinctrl_macb_rmii_mii: macb_rmii_mii-0 {
                                                atmel,pins =
-                                                       <0 22 0x2 0x0   /* PA22 periph B */
-                                                        0 23 0x2 0x0   /* PA23 periph B */
-                                                        0 24 0x2 0x0   /* PA24 periph B */
-                                                        0 25 0x2 0x0   /* PA25 periph B */
-                                                        0 26 0x2 0x0   /* PA26 periph B */
-                                                        0 27 0x2 0x0   /* PA27 periph B */
-                                                        0 28 0x2 0x0   /* PA28 periph B */
-                                                        0 29 0x2 0x0>; /* PA29 periph B */
+                                                       <AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA22 periph B */
+                                                        AT91_PIOA 23 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA23 periph B */
+                                                        AT91_PIOA 24 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA24 periph B */
+                                                        AT91_PIOA 25 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA25 periph B */
+                                                        AT91_PIOA 26 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA26 periph B */
+                                                        AT91_PIOA 27 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA27 periph B */
+                                                        AT91_PIOA 28 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA28 periph B */
+                                                        AT91_PIOA 29 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PA29 periph B */
                                        };
 
                                        pinctrl_macb_rmii_mii_alt: macb_rmii_mii-1 {
                                                atmel,pins =
-                                                       <0 10 0x2 0x0   /* PA10 periph B */
-                                                        0 11 0x2 0x0   /* PA11 periph B */
-                                                        0 22 0x2 0x0   /* PA22 periph B */
-                                                        0 25 0x2 0x0   /* PA25 periph B */
-                                                        0 26 0x2 0x0   /* PA26 periph B */
-                                                        0 27 0x2 0x0   /* PA27 periph B */
-                                                        0 28 0x2 0x0   /* PA28 periph B */
-                                                        0 29 0x2 0x0>; /* PA29 periph B */
+                                                       <AT91_PIOA 10 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA10 periph B */
+                                                        AT91_PIOA 11 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA11 periph B */
+                                                        AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA22 periph B */
+                                                        AT91_PIOA 25 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA25 periph B */
+                                                        AT91_PIOA 26 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA26 periph B */
+                                                        AT91_PIOA 27 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA27 periph B */
+                                                        AT91_PIOA 28 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA28 periph B */
+                                                        AT91_PIOA 29 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PA29 periph B */
                                        };
                                };
 
                                mmc0 {
                                        pinctrl_mmc0_clk: mmc0_clk-0 {
                                                atmel,pins =
-                                                       <0 8 0x1 0x0>;  /* PA8 periph A */
+                                                       <AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PA8 periph A */
                                        };
 
                                        pinctrl_mmc0_slot0_cmd_dat0: mmc0_slot0_cmd_dat0-0 {
                                                atmel,pins =
-                                                       <0 7 0x1 0x1    /* PA7 periph A with pullup */
-                                                        0 6 0x1 0x1>;  /* PA6 periph A with pullup */
+                                                       <AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA7 periph A with pullup */
+                                                        AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;       /* PA6 periph A with pullup */
                                        };
 
                                        pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
                                                atmel,pins =
-                                                       <0 9 0x1 0x1    /* PA9 periph A with pullup */
-                                                        0 10 0x1 0x1   /* PA10 periph A with pullup */
-                                                        0 11 0x1 0x1>; /* PA11 periph A with pullup */
+                                                       <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA9 periph A with pullup */
+                                                        AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA10 periph A with pullup */
+                                                        AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA11 periph A with pullup */
                                        };
 
                                        pinctrl_mmc0_slot1_cmd_dat0: mmc0_slot1_cmd_dat0-0 {
                                                atmel,pins =
-                                                       <0 1 0x2 0x1    /* PA1 periph B with pullup */
-                                                        0 0 0x2 0x1>;  /* PA0 periph B with pullup */
+                                                       <AT91_PIOA 1 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* PA1 periph B with pullup */
+                                                        AT91_PIOA 0 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;       /* PA0 periph B with pullup */
                                        };
 
                                        pinctrl_mmc0_slot1_dat1_3: mmc0_slot1_dat1_3-0 {
                                                atmel,pins =
-                                                       <0 5 0x2 0x1    /* PA5 periph B with pullup */
-                                                        0 4 0x2 0x1    /* PA4 periph B with pullup */
-                                                        0 3 0x2 0x1>;  /* PA3 periph B with pullup */
+                                                       <AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* PA5 periph B with pullup */
+                                                        AT91_PIOA 4 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* PA4 periph B with pullup */
+                                                        AT91_PIOA 3 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;       /* PA3 periph B with pullup */
                                        };
                                };
 
                                ssc0 {
                                        pinctrl_ssc0_tx: ssc0_tx-0 {
                                                atmel,pins =
-                                                       <1 16 0x1 0x0   /* PB16 periph A */
-                                                        1 17 0x1 0x0   /* PB17 periph A */
-                                                        1 18 0x1 0x0>; /* PB18 periph A */
+                                                       <AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB16 periph A */
+                                                        AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB17 periph A */
+                                                        AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB18 periph A */
                                        };
 
                                        pinctrl_ssc0_rx: ssc0_rx-0 {
                                                atmel,pins =
-                                                       <1 19 0x1 0x0   /* PB19 periph A */
-                                                        1 20 0x1 0x0   /* PB20 periph A */
-                                                        1 21 0x1 0x0>; /* PB21 periph A */
+                                                       <AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB19 periph A */
+                                                        AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB20 periph A */
+                                                        AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB21 periph A */
                                        };
                                };
 
                                spi0 {
                                        pinctrl_spi0: spi0-0 {
                                                atmel,pins =
-                                                       <0 0 0x1 0x0    /* PA0 periph A SPI0_MISO pin */
-                                                        0 1 0x1 0x0    /* PA1 periph A SPI0_MOSI pin */
-                                                        0 2 0x1 0x0>;  /* PA2 periph A SPI0_SPCK pin */
+                                                       <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 */
                                        };
                                };
 
                                spi1 {
                                        pinctrl_spi1: spi1-0 {
                                                atmel,pins =
-                                                       <1 0 0x1 0x0    /* PB0 periph A SPI1_MISO pin */
-                                                        1 1 0x1 0x0    /* PB1 periph A SPI1_MOSI pin */
-                                                        1 2 0x1 0x0>;  /* PB2 periph A SPI1_SPCK pin */
+                                                       <AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB0 periph A SPI1_MISO pin */
+                                                        AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB1 periph A SPI1_MOSI pin */
+                                                        AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PB2 periph A SPI1_SPCK pin */
+                                       };
+                               };
+
+                               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>;
-                                       interrupts = <2 4 1>;
+                                       interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioB: gpio@fffff600 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffff600 0x200>;
-                                       interrupts = <3 4 1>;
+                                       interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioC: gpio@fffff800 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffff800 0x200>;
-                                       interrupts = <4 4 1>;
+                                       interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                        dbgu: serial@fffff200 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xfffff200 0x200>;
-                               interrupts = <1 4 7>;
+                               interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_dbgu>;
                                status = "disabled";
                        usart0: serial@fffb0000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xfffb0000 0x200>;
-                               interrupts = <6 4 5>;
+                               interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                        usart1: serial@fffb4000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xfffb4000 0x200>;
-                               interrupts = <7 4 5>;
+                               interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                        usart2: serial@fffb8000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xfffb8000 0x200>;
-                               interrupts = <8 4 5>;
+                               interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                        usart3: serial@fffd0000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xfffd0000 0x200>;
-                               interrupts = <23 4 5>;
+                               interrupts = <23 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                        uart0: serial@fffd4000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xfffd4000 0x200>;
-                               interrupts = <24 4 5>;
+                               interrupts = <24 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                        uart1: serial@fffd8000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xfffd8000 0x200>;
-                               interrupts = <25 4 5>;
+                               interrupts = <25 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                        macb0: ethernet@fffc4000 {
                                compatible = "cdns,at32ap7000-macb", "cdns,macb";
                                reg = <0xfffc4000 0x100>;
-                               interrupts = <21 4 3>;
+                               interrupts = <21 IRQ_TYPE_LEVEL_HIGH 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_macb_rmii>;
                                status = "disabled";
                        usb1: gadget@fffa4000 {
                                compatible = "atmel,at91rm9200-udc";
                                reg = <0xfffa4000 0x4000>;
-                               interrupts = <10 4 2>;
+                               interrupts = <10 IRQ_TYPE_LEVEL_HIGH 2>;
                                status = "disabled";
                        };
 
                        i2c0: i2c@fffac000 {
                                compatible = "atmel,at91sam9260-i2c";
                                reg = <0xfffac000 0x100>;
-                               interrupts = <11 4 6>;
+                               interrupts = <11 IRQ_TYPE_LEVEL_HIGH 6>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                        mmc0: mmc@fffa8000 {
                                compatible = "atmel,hsmci";
                                reg = <0xfffa8000 0x600>;
-                               interrupts = <9 4 0>;
+                               interrupts = <9 IRQ_TYPE_LEVEL_HIGH 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                        ssc0: ssc@fffbc000 {
                                compatible = "atmel,at91rm9200-ssc";
                                reg = <0xfffbc000 0x4000>;
-                               interrupts = <14 4 5>;
+                               interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
                                status = "disabled";
                                #size-cells = <0>;
                                compatible = "atmel,at91rm9200-spi";
                                reg = <0xfffc8000 0x200>;
-                               interrupts = <12 4 3>;
+                               interrupts = <12 IRQ_TYPE_LEVEL_HIGH 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi0>;
                                status = "disabled";
                                #size-cells = <0>;
                                compatible = "atmel,at91rm9200-spi";
                                reg = <0xfffcc000 0x200>;
-                               interrupts = <13 4 3>;
+                               interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi1>;
                                status = "disabled";
                        adc0: adc@fffe0000 {
                                compatible = "atmel,at91sam9260-adc";
                                reg = <0xfffe0000 0x100>;
-                               interrupts = <5 4 0>;
+                               interrupts = <5 IRQ_TYPE_LEVEL_HIGH 0>;
                                atmel,adc-use-external-triggers;
                                atmel,adc-channels-used = <0xf>;
                                atmel,adc-vref = <3300>;
                        atmel,nand-cmd-offset = <22>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_nand>;
-                       gpios = <&pioC 13 0
-                                &pioC 14 0
+                       gpios = <&pioC 13 GPIO_ACTIVE_HIGH
+                                &pioC 14 GPIO_ACTIVE_HIGH
                                 0
                                >;
                        status = "disabled";
                usb0: ohci@00500000 {
                        compatible = "atmel,at91rm9200-ohci", "usb-ohci";
                        reg = <0x00500000 0x100000>;
-                       interrupts = <20 4 2>;
+                       interrupts = <20 IRQ_TYPE_LEVEL_HIGH 2>;
                        status = "disabled";
                };
        };
 
        i2c@0 {
                compatible = "i2c-gpio";
-               gpios = <&pioA 23 0 /* sda */
-                        &pioA 24 0 /* scl */
+               gpios = <&pioA 23 GPIO_ACTIVE_HIGH /* sda */
+                        &pioA 24 GPIO_ACTIVE_HIGH /* scl */
                        >;
                i2c-gpio,sda-open-drain;
                i2c-gpio,scl-open-drain;
                i2c-gpio,delay-us = <2>;        /* ~100 kHz */
                #address-cells = <1>;
                #size-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c_gpio0>;
                status = "disabled";
        };
 };
index 94b58ab2cc08be9c841ff1cdd3e4553ca8ec40a4..d5bd65f7460258daa91bb4a5227071b2b67fc5de 100644 (file)
@@ -6,7 +6,10 @@
  * Licensed under GPLv2 only.
  */
 
-/include/ "skeleton.dtsi"
+#include "skeleton.dtsi"
+#include <dt-bindings/pinctrl/at91.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/gpio/gpio.h>
 
 / {
        model = "Atmel AT91SAM9263 family SoC";
                ssc1 = &ssc1;
        };
        cpus {
-               cpu@0 {
-                       compatible = "arm,arm926ejs";
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       compatible = "arm,arm926ej-s";
+                       device_type = "cpu";
                };
        };
 
                        pit: timer@fffffd30 {
                                compatible = "atmel,at91sam9260-pit";
                                reg = <0xfffffd30 0xf>;
-                               interrupts = <1 4 7>;
+                               interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
                        };
 
                        tcb0: timer@fff7c000 {
                                compatible = "atmel,at91rm9200-tcb";
                                reg = <0xfff7c000 0x100>;
-                               interrupts = <19 4 0>;
+                               interrupts = <19 IRQ_TYPE_LEVEL_HIGH 0>;
                        };
 
                        rstc@fffffd00 {
                                dbgu {
                                        pinctrl_dbgu: dbgu-0 {
                                                atmel,pins =
-                                                       <2 30 0x1 0x0   /* PC30 periph A */
-                                                        2 31 0x1 0x1>; /* PC31 periph with pullup */
+                                                       <AT91_PIOC 30 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PC30 periph A */
+                                                        AT91_PIOC 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PC31 periph with pullup */
                                        };
                                };
 
                                usart0 {
                                        pinctrl_usart0: usart0-0 {
                                                atmel,pins =
-                                                       <0 26 0x1 0x1   /* PA26 periph A with pullup */
-                                                        0 27 0x1 0x0>; /* PA27 periph A */
+                                                       <AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA26 periph A with pullup */
+                                                        AT91_PIOA 27 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA27 periph A */
                                        };
 
                                        pinctrl_usart0_rts: usart0_rts-0 {
                                                atmel,pins =
-                                                       <0 28 0x1 0x0>; /* PA28 periph A */
+                                                       <AT91_PIOA 28 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA28 periph A */
                                        };
 
                                        pinctrl_usart0_cts: usart0_cts-0 {
                                                atmel,pins =
-                                                       <0 29 0x1 0x0>; /* PA29 periph A */
+                                                       <AT91_PIOA 29 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA29 periph A */
                                        };
                                };
 
                                usart1 {
                                        pinctrl_usart1: usart1-0 {
                                                atmel,pins =
-                                                       <3 0 0x1 0x1    /* PD0 periph A with pullup */
-                                                        3 1 0x1 0x0>;  /* PD1 periph A */
+                                                       <AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD0 periph A with pullup */
+                                                        AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PD1 periph A */
                                        };
 
                                        pinctrl_usart1_rts: usart1_rts-0 {
                                                atmel,pins =
-                                                       <3 7 0x2 0x0>;  /* PD7 periph B */
+                                                       <AT91_PIOD 7 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PD7 periph B */
                                        };
 
                                        pinctrl_usart1_cts: usart1_cts-0 {
                                                atmel,pins =
-                                                       <3 8 0x2 0x0>;  /* PD8 periph B */
+                                                       <AT91_PIOD 8 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PD8 periph B */
                                        };
                                };
 
                                usart2 {
                                        pinctrl_usart2: usart2-0 {
                                                atmel,pins =
-                                                       <3 2 0x1 0x1    /* PD2 periph A with pullup */
-                                                        3 3 0x1 0x0>;  /* PD3 periph A */
+                                                       <AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD2 periph A with pullup */
+                                                        AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PD3 periph A */
                                        };
 
                                        pinctrl_usart2_rts: usart2_rts-0 {
                                                atmel,pins =
-                                                       <3 5 0x2 0x0>;  /* PD5 periph B */
+                                                       <AT91_PIOD 5 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PD5 periph B */
                                        };
 
                                        pinctrl_usart2_cts: usart2_cts-0 {
                                                atmel,pins =
-                                                       <4 6 0x2 0x0>;  /* PD6 periph B */
+                                                       <AT91_PIOD 6 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PD6 periph B */
                                        };
                                };
 
                                nand {
                                        pinctrl_nand: nand-0 {
                                                atmel,pins =
-                                                       <0 22 0x0 0x1   /* PA22 gpio RDY pin pull_up*/
-                                                        3 15 0x0 0x1>; /* PD15 gpio enable pin pull_up */
+                                                       <AT91_PIOA 22 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP     /* PA22 gpio RDY pin pull_up*/
+                                                        AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;   /* PD15 gpio enable pin pull_up */
                                        };
                                };
 
                                macb {
                                        pinctrl_macb_rmii: macb_rmii-0 {
                                                atmel,pins =
-                                                       <2 25 0x2 0x0   /* PC25 periph B */
-                                                        4 21 0x1 0x0   /* PE21 periph A */
-                                                        4 23 0x1 0x0   /* PE23 periph A */
-                                                        4 24 0x1 0x0   /* PE24 periph A */
-                                                        4 25 0x1 0x0   /* PE25 periph A */
-                                                        4 26 0x1 0x0   /* PE26 periph A */
-                                                        4 27 0x1 0x0   /* PE27 periph A */
-                                                        4 28 0x1 0x0   /* PE28 periph A */
-                                                        4 29 0x1 0x0   /* PE29 periph A */
-                                                        4 30 0x1 0x0>; /* PE30 periph A */
+                                                       <AT91_PIOC 25 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC25 periph B */
+                                                        AT91_PIOE 21 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PE21 periph A */
+                                                        AT91_PIOE 23 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PE23 periph A */
+                                                        AT91_PIOE 24 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PE24 periph A */
+                                                        AT91_PIOE 25 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PE25 periph A */
+                                                        AT91_PIOE 26 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PE26 periph A */
+                                                        AT91_PIOE 27 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PE27 periph A */
+                                                        AT91_PIOE 28 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PE28 periph A */
+                                                        AT91_PIOE 29 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PE29 periph A */
+                                                        AT91_PIOE 30 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PE30 periph A */
                                        };
 
                                        pinctrl_macb_rmii_mii: macb_rmii_mii-0 {
                                                atmel,pins =
-                                                       <2 20 0x2 0x0   /* PC20 periph B */
-                                                        2 21 0x2 0x0   /* PC21 periph B */
-                                                        2 22 0x2 0x0   /* PC22 periph B */
-                                                        2 23 0x2 0x0   /* PC23 periph B */
-                                                        2 24 0x2 0x0   /* PC24 periph B */
-                                                        2 25 0x2 0x0   /* PC25 periph B */
-                                                        2 27 0x2 0x0   /* PC27 periph B */
-                                                        4 22 0x2 0x0>; /* PE22 periph B */
+                                                       <AT91_PIOC 20 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC20 periph B */
+                                                        AT91_PIOC 21 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC21 periph B */
+                                                        AT91_PIOC 22 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC22 periph B */
+                                                        AT91_PIOC 23 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC23 periph B */
+                                                        AT91_PIOC 24 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC24 periph B */
+                                                        AT91_PIOC 25 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC25 periph B */
+                                                        AT91_PIOC 27 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC27 periph B */
+                                                        AT91_PIOE 22 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PE22 periph B */
                                        };
                                };
 
                                mmc0 {
                                        pinctrl_mmc0_clk: mmc0_clk-0 {
                                                atmel,pins =
-                                                       <0 12 0x1 0x0>; /* PA12 periph A */
+                                                       <AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA12 periph A */
                                        };
 
                                        pinctrl_mmc0_slot0_cmd_dat0: mmc0_slot0_cmd_dat0-0 {
                                                atmel,pins =
-                                                       <0 1 0x1 0x1    /* PA1 periph A with pullup */
-                                                        0 0 0x1 0x1>;  /* PA0 periph A with pullup */
+                                                       <AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA1 periph A with pullup */
+                                                        AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;       /* PA0 periph A with pullup */
                                        };
 
                                        pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
                                                atmel,pins =
-                                                       <0 3 0x1 0x1    /* PA3 periph A with pullup */
-                                                        0 4 0x1 0x1    /* PA4 periph A with pullup */
-                                                        0 5 0x1 0x1>;  /* PA5 periph A with pullup */
+                                                       <AT91_PIOA 3 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA3 periph A with pullup */
+                                                        AT91_PIOA 4 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA4 periph A with pullup */
+                                                        AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;       /* PA5 periph A with pullup */
                                        };
 
                                        pinctrl_mmc0_slot1_cmd_dat0: mmc0_slot1_cmd_dat0-0 {
                                                atmel,pins =
-                                                       <0 16 0x1 0x1   /* PA16 periph A with pullup */
-                                                        0 17 0x1 0x1>; /* PA17 periph A with pullup */
+                                                       <AT91_PIOA 16 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA16 periph A with pullup */
+                                                        AT91_PIOA 17 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA17 periph A with pullup */
                                        };
 
                                        pinctrl_mmc0_slot1_dat1_3: mmc0_slot1_dat1_3-0 {
                                                atmel,pins =
-                                                       <0 18 0x1 0x1   /* PA18 periph A with pullup */
-                                                        0 19 0x1 0x1   /* PA19 periph A with pullup */
-                                                        0 20 0x1 0x1>; /* PA20 periph A with pullup */
+                                                       <AT91_PIOA 18 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA18 periph A with pullup */
+                                                        AT91_PIOA 19 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA19 periph A with pullup */
+                                                        AT91_PIOA 20 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA20 periph A with pullup */
                                        };
                                };
 
                                mmc1 {
                                        pinctrl_mmc1_clk: mmc1_clk-0 {
                                                atmel,pins =
-                                                       <0 6 0x1 0x0>;  /* PA6 periph A */
+                                                       <AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PA6 periph A */
                                        };
 
                                        pinctrl_mmc1_slot0_cmd_dat0: mmc1_slot0_cmd_dat0-0 {
                                                atmel,pins =
-                                                       <0 7 0x1 0x1    /* PA7 periph A with pullup */
-                                                        0 8 0x1 0x1>;  /* PA8 periph A with pullup */
+                                                       <AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA7 periph A with pullup */
+                                                        AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;       /* PA8 periph A with pullup */
                                        };
 
                                        pinctrl_mmc1_slot0_dat1_3: mmc1_slot0_dat1_3-0 {
                                                atmel,pins =
-                                                       <0 9 0x1 0x1    /* PA9 periph A with pullup */
-                                                        0 10 0x1 0x1   /* PA10 periph A with pullup */
-                                                        0 11 0x1 0x1>; /* PA11 periph A with pullup */
+                                                       <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA9 periph A with pullup */
+                                                        AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA10 periph A with pullup */
+                                                        AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA11 periph A with pullup */
                                        };
 
                                        pinctrl_mmc1_slot1_cmd_dat0: mmc1_slot1_cmd_dat0-0 {
                                                atmel,pins =
-                                                       <0 21 0x1 0x1   /* PA21 periph A with pullup */
-                                                        0 22 0x1 0x1>; /* PA22 periph A with pullup */
+                                                       <AT91_PIOA 21 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA21 periph A with pullup */
+                                                        AT91_PIOA 22 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA22 periph A with pullup */
                                        };
 
                                        pinctrl_mmc1_slot1_dat1_3: mmc1_slot1_dat1_3-0 {
                                                atmel,pins =
-                                                       <0 23 0x1 0x1   /* PA23 periph A with pullup */
-                                                        0 24 0x1 0x1   /* PA24 periph A with pullup */
-                                                        0 25 0x1 0x1>; /* PA25 periph A with pullup */
+                                                       <AT91_PIOA 23 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA23 periph A with pullup */
+                                                        AT91_PIOA 24 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA24 periph A with pullup */
+                                                        AT91_PIOA 25 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA25 periph A with pullup */
                                        };
                                };
 
                                ssc0 {
                                        pinctrl_ssc0_tx: ssc0_tx-0 {
                                                atmel,pins =
-                                                       <1 0 0x2 0x0    /* PB0 periph B */
-                                                        1 1 0x2 0x0    /* PB1 periph B */
-                                                        1 2 0x2 0x0>;  /* PB2 periph B */
+                                                       <AT91_PIOB 0 AT91_PERIPH_B AT91_PINCTRL_NONE    /* PB0 periph B */
+                                                        AT91_PIOB 1 AT91_PERIPH_B AT91_PINCTRL_NONE    /* PB1 periph B */
+                                                        AT91_PIOB 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PB2 periph B */
                                        };
 
                                        pinctrl_ssc0_rx: ssc0_rx-0 {
                                                atmel,pins =
-                                                       <1 3 0x2 0x0    /* PB3 periph B */
-                                                        1 4 0x2 0x0    /* PB4 periph B */
-                                                        1 5 0x2 0x0>;  /* PB5 periph B */
+                                                       <AT91_PIOB 3 AT91_PERIPH_B AT91_PINCTRL_NONE    /* PB3 periph B */
+                                                        AT91_PIOB 4 AT91_PERIPH_B AT91_PINCTRL_NONE    /* PB4 periph B */
+                                                        AT91_PIOB 5 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PB5 periph B */
                                        };
                                };
 
                                ssc1 {
                                        pinctrl_ssc1_tx: ssc1_tx-0 {
                                                atmel,pins =
-                                                       <1 6 0x1 0x0    /* PB6 periph A */
-                                                        1 7 0x1 0x0    /* PB7 periph A */
-                                                        1 8 0x1 0x0>;  /* PB8 periph A */
+                                                       <AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB6 periph A */
+                                                        AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB7 periph A */
+                                                        AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PB8 periph A */
                                        };
 
                                        pinctrl_ssc1_rx: ssc1_rx-0 {
                                                atmel,pins =
-                                                       <1 9 0x1 0x0    /* PB9 periph A */
-                                                        1 10 0x1 0x0   /* PB10 periph A */
-                                                        1 11 0x1 0x0>; /* PB11 periph A */
+                                                       <AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB9 periph A */
+                                                        AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB10 periph A */
+                                                        AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB11 periph A */
                                        };
                                };
 
                                spi0 {
                                        pinctrl_spi0: spi0-0 {
                                                atmel,pins =
-                                                       <0 0 0x2 0x0    /* PA0 periph B SPI0_MISO pin */
-                                                        0 1 0x2 0x0    /* PA1 periph B SPI0_MOSI pin */
-                                                        0 2 0x2 0x0>;  /* PA2 periph B SPI0_SPCK pin */
+                                                       <AT91_PIOA 0 AT91_PERIPH_B AT91_PINCTRL_NONE    /* PA0 periph B SPI0_MISO pin */
+                                                        AT91_PIOA 1 AT91_PERIPH_B AT91_PINCTRL_NONE    /* PA1 periph B SPI0_MOSI pin */
+                                                        AT91_PIOA 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PA2 periph B SPI0_SPCK pin */
                                        };
                                };
 
                                spi1 {
                                        pinctrl_spi1: spi1-0 {
                                                atmel,pins =
-                                                       <1 12 0x1 0x0   /* PB12 periph A SPI1_MISO pin */
-                                                        1 13 0x1 0x0   /* PB13 periph A SPI1_MOSI pin */
-                                                        1 14 0x1 0x0>; /* PB14 periph A SPI1_SPCK pin */
+                                                       <AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB12 periph A SPI1_MISO pin */
+                                                        AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB13 periph A SPI1_MOSI pin */
+                                                        AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB14 periph A SPI1_SPCK pin */
+                                       };
+                               };
+
+                               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>;
-                                       interrupts = <2 4 1>;
+                                       interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioB: gpio@fffff400 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffff400 0x200>;
-                                       interrupts = <3 4 1>;
+                                       interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioC: gpio@fffff600 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffff600 0x200>;
-                                       interrupts = <4 4 1>;
+                                       interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioD: gpio@fffff800 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffff800 0x200>;
-                                       interrupts = <4 4 1>;
+                                       interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioE: gpio@fffffa00 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffffa00 0x200>;
-                                       interrupts = <4 4 1>;
+                                       interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                        dbgu: serial@ffffee00 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xffffee00 0x200>;
-                               interrupts = <1 4 7>;
+                               interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_dbgu>;
                                status = "disabled";
                        usart0: serial@fff8c000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xfff8c000 0x200>;
-                               interrupts = <7 4 5>;
+                               interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                        usart1: serial@fff90000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xfff90000 0x200>;
-                               interrupts = <8 4 5>;
+                               interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                        usart2: serial@fff94000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xfff94000 0x200>;
-                               interrupts = <9 4 5>;
+                               interrupts = <9 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                        ssc0: ssc@fff98000 {
                                compatible = "atmel,at91rm9200-ssc";
                                reg = <0xfff98000 0x4000>;
-                               interrupts = <16 4 5>;
+                               interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
                                status = "disabled";
                        ssc1: ssc@fff9c000 {
                                compatible = "atmel,at91rm9200-ssc";
                                reg = <0xfff9c000 0x4000>;
-                               interrupts = <17 4 5>;
+                               interrupts = <17 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
                                status = "disabled";
                        macb0: ethernet@fffbc000 {
                                compatible = "cdns,at32ap7000-macb", "cdns,macb";
                                reg = <0xfffbc000 0x100>;
-                               interrupts = <21 4 3>;
+                               interrupts = <21 IRQ_TYPE_LEVEL_HIGH 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_macb_rmii>;
                                status = "disabled";
                        usb1: gadget@fff78000 {
                                compatible = "atmel,at91rm9200-udc";
                                reg = <0xfff78000 0x4000>;
-                               interrupts = <24 4 2>;
+                               interrupts = <24 IRQ_TYPE_LEVEL_HIGH 2>;
                                status = "disabled";
                        };
 
                        i2c0: i2c@fff88000 {
                                compatible = "atmel,at91sam9263-i2c";
                                reg = <0xfff88000 0x100>;
-                               interrupts = <13 4 6>;
+                               interrupts = <13 IRQ_TYPE_LEVEL_HIGH 6>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                        mmc0: mmc@fff80000 {
                                compatible = "atmel,hsmci";
                                reg = <0xfff80000 0x600>;
-                               interrupts = <10 4 0>;
+                               interrupts = <10 IRQ_TYPE_LEVEL_HIGH 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                        mmc1: mmc@fff84000 {
                                compatible = "atmel,hsmci";
                                reg = <0xfff84000 0x600>;
-                               interrupts = <11 4 0>;
+                               interrupts = <11 IRQ_TYPE_LEVEL_HIGH 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                #size-cells = <0>;
                                compatible = "atmel,at91rm9200-spi";
                                reg = <0xfffa4000 0x200>;
-                               interrupts = <14 4 3>;
+                               interrupts = <14 IRQ_TYPE_LEVEL_HIGH 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi0>;
                                status = "disabled";
                                #size-cells = <0>;
                                compatible = "atmel,at91rm9200-spi";
                                reg = <0xfffa8000 0x200>;
-                               interrupts = <15 4 3>;
+                               interrupts = <15 IRQ_TYPE_LEVEL_HIGH 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi1>;
                                status = "disabled";
                        atmel,nand-cmd-offset = <22>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_nand>;
-                       gpios = <&pioA 22 0
-                                &pioD 15 0
+                       gpios = <&pioA 22 GPIO_ACTIVE_HIGH
+                                &pioD 15 GPIO_ACTIVE_HIGH
                                 0
                                >;
                        status = "disabled";
                usb0: ohci@00a00000 {
                        compatible = "atmel,at91rm9200-ohci", "usb-ohci";
                        reg = <0x00a00000 0x100000>;
-                       interrupts = <29 4 2>;
+                       interrupts = <29 IRQ_TYPE_LEVEL_HIGH 2>;
                        status = "disabled";
                };
        };
 
        i2c@0 {
                compatible = "i2c-gpio";
-               gpios = <&pioB 4 0 /* sda */
-                        &pioB 5 0 /* scl */
+               gpios = <&pioB 4 GPIO_ACTIVE_HIGH /* sda */
+                        &pioB 5 GPIO_ACTIVE_HIGH /* scl */
                        >;
                i2c-gpio,sda-open-drain;
                i2c-gpio,scl-open-drain;
index 3b82d91e7fcce12db13a4cd15b61159b445695e2..70f835b55c0bd91bb07949bf309ca674264bc82e 100644 (file)
@@ -6,7 +6,7 @@
  * Licensed under GPLv2 only
  */
 /dts-v1/;
-/include/ "at91sam9263.dtsi"
+#include "at91sam9263.dtsi"
 
 / {
        model = "Atmel at91sam9263ek";
@@ -51,7 +51,7 @@
                        };
 
                        usb1: gadget@fff78000 {
-                               atmel,vbus-gpio = <&pioA 25 0>;
+                               atmel,vbus-gpio = <&pioA 25 GPIO_ACTIVE_HIGH>;
                                status = "okay";
                        };
 
@@ -65,8 +65,8 @@
                                slot@0 {
                                        reg = <0>;
                                        bus-width = <4>;
-                                       cd-gpios = <&pioE 18 0>;
-                                       wp-gpios = <&pioE 19 0>;
+                                       cd-gpios = <&pioE 18 GPIO_ACTIVE_HIGH>;
+                                       wp-gpios = <&pioE 19 GPIO_ACTIVE_HIGH>;
                                };
                        };
 
@@ -74,8 +74,8 @@
                                mmc0 {
                                        pinctrl_board_mmc0: mmc0-board {
                                                atmel,pins =
-                                                       <5 18 0x0 0x5   /* PE18 gpio CD pin pull up and deglitch */
-                                                        5 19 0x0 0x1>; /* PE19 gpio WP pin pull up */
+                                                       <AT91_PIOE 18 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH    /* PE18 gpio CD pin pull up and deglitch */
+                                                        AT91_PIOE 19 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;   /* PE19 gpio WP pin pull up */
                                        };
                                };
                        };
                                        reg = <0>;
                                };
                        };
+
+                       watchdog@fffffd40 {
+                               status = "okay";
+                       };
                };
 
                nand0: nand@40000000 {
                usb0: ohci@00a00000 {
                        num-ports = <2>;
                        status = "okay";
-                       atmel,vbus-gpio = <&pioA 24 0
-                                          &pioA 21 0
+                       atmel,vbus-gpio = <&pioA 24 GPIO_ACTIVE_HIGH
+                                          &pioA 21 GPIO_ACTIVE_HIGH
                                          >;
                };
        };
 
                d3 {
                        label = "d3";
-                       gpios = <&pioB 7 0>;
+                       gpios = <&pioB 7 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                };
 
                d2 {
                        label = "d2";
-                       gpios = <&pioC 29 1>;
+                       gpios = <&pioC 29 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "nand-disk";
                };
        };
 
                left_click {
                        label = "left_click";
-                       gpios = <&pioC 5 1>;
+                       gpios = <&pioC 5 GPIO_ACTIVE_LOW>;
                        linux,code = <272>;
                        gpio-key,wakeup;
                };
 
                right_click {
                        label = "right_click";
-                       gpios = <&pioC 4 1>;
+                       gpios = <&pioC 4 GPIO_ACTIVE_LOW>;
                        linux,code = <273>;
                        gpio-key,wakeup;
                };
index 28467fd6bf9689901d6d41e59369bb5278079630..cfd7044616d793a573a7e59663ce39e27fcf3173 100644 (file)
@@ -6,7 +6,7 @@
  * Licensed under GPLv2.
  */
 
-/include/ "at91sam9x5.dtsi"
+#include "at91sam9x5.dtsi"
 
 / {
        model = "Atmel AT91SAM9G15 SoC";
index 5427b2dba87e34150e1fb2f4dd0e60652fcf5d2d..26b0444b0f96dc725bea125a7f656447ef7b495f 100644 (file)
@@ -7,8 +7,8 @@
  * Licensed under GPLv2 or later.
  */
 /dts-v1/;
-/include/ "at91sam9g15.dtsi"
-/include/ "at91sam9x5ek.dtsi"
+#include "at91sam9g15.dtsi"
+#include "at91sam9x5ek.dtsi"
 
 / {
        model = "Atmel AT91SAM9G15-EK";
index 75ce6e760016455cd1695ab1de148eabd807ca4b..b8e79466014f05df2e90222f2074e9f41e3dde9e 100644 (file)
@@ -6,7 +6,7 @@
  * Licensed under GPLv2.
  */
 
-/include/ "at91sam9260.dtsi"
+#include "at91sam9260.dtsi"
 
 / {
        model = "Atmel AT91SAM9G20 family SoC";
index e5324bf9d5295e42cabc1a56b46ab12f7e0bf7c1..bbfd753112c92f350bc9a34985ed2e2fbbcd8532 100644 (file)
@@ -6,7 +6,7 @@
  * Licensed under GPLv2.
  */
 /dts-v1/;
-/include/ "at91sam9g20ek_common.dtsi"
+#include "at91sam9g20ek_common.dtsi"
 
 / {
        model = "Atmel at91sam9g20ek";
 
                ds1 {
                        label = "ds1";
-                       gpios = <&pioA 9 0>;
+                       gpios = <&pioA 9 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                };
 
                ds5 {
                        label = "ds5";
-                       gpios = <&pioA 6 1>;
+                       gpios = <&pioA 6 GPIO_ACTIVE_LOW>;
                };
        };
 };
index 66467b1131264bd409da608f58d70f5f3703f79e..bdb799bad1797026fa43f041cfa0daad12c184c0 100644 (file)
@@ -6,7 +6,7 @@
  * Licensed under GPLv2.
  */
 /dts-v1/;
-/include/ "at91sam9g20ek_common.dtsi"
+#include "at91sam9g20ek_common.dtsi"
 
 / {
        model = "Atmel at91sam9g20ek 2 mmc";
@@ -23,7 +23,7 @@
                                slot@0 {
                                        reg = <0>;
                                        bus-width = <4>;
-                                       cd-gpios = <&pioC 2 0>;
+                                       cd-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>;
                                };
                        };
 
@@ -31,7 +31,7 @@
                                mmc0_slot0 {
                                        pinctrl_board_mmc0_slot0: mmc0_slot0-board {
                                                atmel,pins =
-                                                       <2 2 0x0 0x5>;  /* PC2 gpio CD pin pull up and deglitch */
+                                                       <AT91_PIOC 2 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;   /* PC2 gpio CD pin pull up and deglitch */
                                        };
                                };
                        };
 
                ds1 {
                        label = "ds1";
-                       gpios = <&pioB 9 0>;
+                       gpios = <&pioB 9 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                };
 
                ds5 {
                        label = "ds5";
-                       gpios = <&pioB 8 1>;
+                       gpios = <&pioB 8 GPIO_ACTIVE_LOW>;
                };
        };
 };
index 6a92c5baef8c7612711f6b91ffaf922869156306..137354689ad0a6dfdd08d07b348cd8cf08705e42 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Licensed under GPLv2.
  */
-/include/ "at91sam9g20.dtsi"
+#include "at91sam9g20.dtsi"
 
 / {
 
                                board {
                                        pinctrl_pck0_as_mck: pck0_as_mck {
                                                atmel,pins =
-                                                       <2 1 0x2 0x0>;  /* PC1 periph B */
+                                                       <AT91_PIOC 1 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PC1 periph B */
                                        };
 
                                };
+
+                               mmc0_slot1 {
+                                       pinctrl_board_mmc0_slot1: mmc0_slot1-board {
+                                               atmel,pins =
+                                                       <AT91_PIOC 9 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;   /* PC9 gpio CD pin pull up and deglitch */
+                                       };
+                               };
                        };
 
                        dbgu: serial@fffff200 {
@@ -65,7 +72,7 @@
                        };
 
                        usb1: gadget@fffa4000 {
-                               atmel,vbus-gpio = <&pioC 5 0>;
+                               atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
                                status = "okay";
                        };
 
                                slot@1 {
                                        reg = <1>;
                                        bus-width = <4>;
-                                       cd-gpios = <&pioC 9 0>;
-                               };
-                       };
-
-                       pinctrl@fffff400 {
-                               mmc0_slot1 {
-                                       pinctrl_board_mmc0_slot1: mmc0_slot1-board {
-                                               atmel,pins =
-                                                       <2 9 0x0 0x5>;  /* PC9 gpio CD pin pull up and deglitch */
-                                       };
+                                       cd-gpios = <&pioC 9 GPIO_ACTIVE_HIGH>;
                                };
                        };
 
                                        reg = <1>;
                                };
                        };
+
+                       watchdog@fffffd40 {
+                               status = "okay";
+                       };
                };
 
                nand0: nand@40000000 {
 
                btn3 {
                        label = "Button 3";
-                       gpios = <&pioA 30 1>;
+                       gpios = <&pioA 30 GPIO_ACTIVE_LOW>;
                        linux,code = <0x103>;
                        gpio-key,wakeup;
                };
 
                btn4 {
                        label = "Button 4";
-                       gpios = <&pioA 31 1>;
+                       gpios = <&pioA 31 GPIO_ACTIVE_LOW>;
                        linux,code = <0x104>;
                        gpio-key,wakeup;
                };
index 5fd32df03f25d9551494fd40b5793882b6a966c3..b4ec6fe53fc798e4469ca772a3ff6d02e86eba32 100644 (file)
@@ -6,7 +6,7 @@
  * Licensed under GPLv2.
  */
 
-/include/ "at91sam9x5.dtsi"
+#include "at91sam9x5.dtsi"
 
 / {
        model = "Atmel AT91SAM9G25 SoC";
index a1c511fecdc1f34fc0f795c6b68183cdcc7d2a3b..1e4c49c584d38a5115b817efc57f3934681e011e 100644 (file)
@@ -7,8 +7,8 @@
  * Licensed under GPLv2 or later.
  */
 /dts-v1/;
-/include/ "at91sam9g25.dtsi"
-/include/ "at91sam9x5ek.dtsi"
+#include "at91sam9g25.dtsi"
+#include "at91sam9x5ek.dtsi"
 
 / {
        model = "Atmel AT91SAM9G25-EK";
index d6fa8af50724ab6bb37b96426950bf7aa86fccca..bebf9f55614b50c27edb1a1dd42fb7b3ae6c54de 100644 (file)
@@ -6,7 +6,7 @@
  * Licensed under GPLv2.
  */
 
-/include/ "at91sam9x5.dtsi"
+#include "at91sam9x5.dtsi"
 
 / {
        model = "Atmel AT91SAM9G35 SoC";
index 6f58ab8d21f5eb584654625ac2e4af462aa249f5..641a9bf89ed18970b51d98779117173a2744ce89 100644 (file)
@@ -7,8 +7,8 @@
  * Licensed under GPLv2 or later.
  */
 /dts-v1/;
-/include/ "at91sam9g35.dtsi"
-/include/ "at91sam9x5ek.dtsi"
+#include "at91sam9g35.dtsi"
+#include "at91sam9x5ek.dtsi"
 
 / {
        model = "Atmel AT91SAM9G35-EK";
index bf18a735c37d8b879a603e711dd25bde7e2980ac..c3e514837074c1874412e88cb294fd4ec976a2ba 100644 (file)
@@ -9,7 +9,11 @@
  * Licensed under GPLv2 or later.
  */
 
-/include/ "skeleton.dtsi"
+#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>
 
 / {
        model = "Atmel AT91SAM9G45 family SoC";
                ssc1 = &ssc1;
        };
        cpus {
-               cpu@0 {
-                       compatible = "arm,arm926ejs";
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       compatible = "arm,arm926ej-s";
+                       device_type = "cpu";
                };
        };
 
@@ -83,7 +91,7 @@
                        pit: timer@fffffd30 {
                                compatible = "atmel,at91sam9260-pit";
                                reg = <0xfffffd30 0xf>;
-                               interrupts = <1 4 7>;
+                               interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
                        };
 
 
                        tcb0: timer@fff7c000 {
                                compatible = "atmel,at91rm9200-tcb";
                                reg = <0xfff7c000 0x100>;
-                               interrupts = <18 4 0>;
+                               interrupts = <18 IRQ_TYPE_LEVEL_HIGH 0>;
                        };
 
                        tcb1: timer@fffd4000 {
                                compatible = "atmel,at91rm9200-tcb";
                                reg = <0xfffd4000 0x100>;
-                               interrupts = <18 4 0>;
+                               interrupts = <18 IRQ_TYPE_LEVEL_HIGH 0>;
                        };
 
                        dma: dma-controller@ffffec00 {
                                compatible = "atmel,at91sam9g45-dma";
                                reg = <0xffffec00 0x200>;
-                               interrupts = <21 4 0>;
+                               interrupts = <21 IRQ_TYPE_LEVEL_HIGH 0>;
                                #dma-cells = <2>;
                        };
 
                                dbgu {
                                        pinctrl_dbgu: dbgu-0 {
                                                atmel,pins =
-                                                       <1 12 0x1 0x0   /* PB12 periph A */
-                                                        1 13 0x1 0x0>; /* PB13 periph A */
+                                                       <AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB12 periph A */
+                                                        AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB13 periph A */
                                        };
                                };
 
                                usart0 {
                                        pinctrl_usart0: usart0-0 {
                                                atmel,pins =
-                                                       <1 19 0x1 0x1   /* PB19 periph A with pullup */
-                                                        1 18 0x1 0x0>; /* PB18 periph A */
+                                                       <AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PB19 periph A with pullup */
+                                                        AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB18 periph A */
                                        };
 
                                        pinctrl_usart0_rts: usart0_rts-0 {
                                                atmel,pins =
-                                                       <1 17 0x2 0x0>; /* PB17 periph B */
+                                                       <AT91_PIOB 17 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB17 periph B */
                                        };
 
                                        pinctrl_usart0_cts: usart0_cts-0 {
                                                atmel,pins =
-                                                       <1 15 0x2 0x0>; /* PB15 periph B */
+                                                       <AT91_PIOB 15 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB15 periph B */
                                        };
                                };
 
                                uart1 {
                                        pinctrl_usart1: usart1-0 {
                                                atmel,pins =
-                                                       <1 4 0x1 0x1    /* PB4 periph A with pullup */
-                                                        1 5 0x1 0x0>;  /* PB5 periph A */
+                                                       <AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PB4 periph A with pullup */
+                                                        AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PB5 periph A */
                                        };
 
                                        pinctrl_usart1_rts: usart1_rts-0 {
                                                atmel,pins =
-                                                       <3 16 0x1 0x0>; /* PD16 periph A */
+                                                       <AT91_PIOD 16 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD16 periph A */
                                        };
 
                                        pinctrl_usart1_cts: usart1_cts-0 {
                                                atmel,pins =
-                                                       <3 17 0x1 0x0>; /* PD17 periph A */
+                                                       <AT91_PIOD 17 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD17 periph A */
                                        };
                                };
 
                                usart2 {
                                        pinctrl_usart2: usart2-0 {
                                                atmel,pins =
-                                                       <1 6 0x1 0x1    /* PB6 periph A with pullup */
-                                                        1 7 0x1 0x0>;  /* PB7 periph A */
+                                                       <AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PB6 periph A with pullup */
+                                                        AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PB7 periph A */
                                        };
 
                                        pinctrl_usart2_rts: usart2_rts-0 {
                                                atmel,pins =
-                                                       <2 9 0x2 0x0>;  /* PC9 periph B */
+                                                       <AT91_PIOC 9 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PC9 periph B */
                                        };
 
                                        pinctrl_usart2_cts: usart2_cts-0 {
                                                atmel,pins =
-                                                       <2 11 0x2 0x0>; /* PC11 periph B */
+                                                       <AT91_PIOC 11 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PC11 periph B */
                                        };
                                };
 
                                usart3 {
                                        pinctrl_usart3: usart3-0 {
                                                atmel,pins =
-                                                       <1 8 0x1 0x1    /* PB9 periph A with pullup */
-                                                        1 9 0x1 0x0>;  /* PB8 periph A */
+                                                       <AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PB9 periph A with pullup */
+                                                        AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PB8 periph A */
                                        };
 
                                        pinctrl_usart3_rts: usart3_rts-0 {
                                                atmel,pins =
-                                                       <0 23 0x2 0x0>; /* PA23 periph B */
+                                                       <AT91_PIOA 23 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PA23 periph B */
                                        };
 
                                        pinctrl_usart3_cts: usart3_cts-0 {
                                                atmel,pins =
-                                                       <0 24 0x2 0x0>; /* PA24 periph B */
+                                                       <AT91_PIOA 24 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PA24 periph B */
                                        };
                                };
 
                                nand {
                                        pinctrl_nand: nand-0 {
                                                atmel,pins =
-                                                       <2 8 0x0 0x1    /* PC8 gpio RDY pin pull_up*/
-                                                        2 14 0x0 0x1>; /* PC14 gpio enable pin pull_up */
+                                                       <AT91_PIOC 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP      /* PC8 gpio RDY pin pull_up*/
+                                                        AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;   /* PC14 gpio enable pin pull_up */
                                        };
                                };
 
                                macb {
                                        pinctrl_macb_rmii: macb_rmii-0 {
                                                atmel,pins =
-                                                       <0 10 0x1 0x0   /* PA10 periph A */
-                                                        0 11 0x1 0x0   /* PA11 periph A */
-                                                        0 12 0x1 0x0   /* PA12 periph A */
-                                                        0 13 0x1 0x0   /* PA13 periph A */
-                                                        0 14 0x1 0x0   /* PA14 periph A */
-                                                        0 15 0x1 0x0   /* PA15 periph A */
-                                                        0 16 0x1 0x0   /* PA16 periph A */
-                                                        0 17 0x1 0x0   /* PA17 periph A */
-                                                        0 18 0x1 0x0   /* PA18 periph A */
-                                                        0 19 0x1 0x0>; /* PA19 periph A */
+                                                       <AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA10 periph A */
+                                                        AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA11 periph A */
+                                                        AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA12 periph A */
+                                                        AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA13 periph A */
+                                                        AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA14 periph A */
+                                                        AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA15 periph A */
+                                                        AT91_PIOA 16 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA16 periph A */
+                                                        AT91_PIOA 17 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA17 periph A */
+                                                        AT91_PIOA 18 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA18 periph A */
+                                                        AT91_PIOA 19 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA19 periph A */
                                        };
 
                                        pinctrl_macb_rmii_mii: macb_rmii_mii-0 {
                                                atmel,pins =
-                                                       <0 6 0x2 0x0    /* PA6 periph B */
-                                                        0 7 0x2 0x0    /* PA7 periph B */
-                                                        0 8 0x2 0x0    /* PA8 periph B */
-                                                        0 9 0x2 0x0    /* PA9 periph B */
-                                                        0 27 0x2 0x0   /* PA27 periph B */
-                                                        0 28 0x2 0x0   /* PA28 periph B */
-                                                        0 29 0x2 0x0   /* PA29 periph B */
-                                                        0 30 0x2 0x0>; /* PA30 periph B */
+                                                       <AT91_PIOA 6 AT91_PERIPH_B AT91_PINCTRL_NONE    /* PA6 periph B */
+                                                        AT91_PIOA 7 AT91_PERIPH_B AT91_PINCTRL_NONE    /* PA7 periph B */
+                                                        AT91_PIOA 8 AT91_PERIPH_B AT91_PINCTRL_NONE    /* PA8 periph B */
+                                                        AT91_PIOA 9 AT91_PERIPH_B AT91_PINCTRL_NONE    /* PA9 periph B */
+                                                        AT91_PIOA 27 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA27 periph B */
+                                                        AT91_PIOA 28 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA28 periph B */
+                                                        AT91_PIOA 29 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA29 periph B */
+                                                        AT91_PIOA 30 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PA30 periph B */
                                        };
                                };
 
                                mmc0 {
                                        pinctrl_mmc0_slot0_clk_cmd_dat0: mmc0_slot0_clk_cmd_dat0-0 {
                                                atmel,pins =
-                                                       <0 0 0x1 0x0    /* PA0 periph A */
-                                                        0 1 0x1 0x1    /* PA1 periph A with pullup */
-                                                        0 2 0x1 0x1>;  /* PA2 periph A with pullup */
+                                                       <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA0 periph A */
+                                                        AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA1 periph A with pullup */
+                                                        AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;       /* PA2 periph A with pullup */
                                        };
 
                                        pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
                                                atmel,pins =
-                                                       <0 3 0x1 0x1    /* PA3 periph A with pullup */
-                                                        0 4 0x1 0x1    /* PA4 periph A with pullup */
-                                                        0 5 0x1 0x1>;  /* PA5 periph A with pullup */
+                                                       <AT91_PIOA 3 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA3 periph A with pullup */
+                                                        AT91_PIOA 4 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA4 periph A with pullup */
+                                                        AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;       /* PA5 periph A with pullup */
                                        };
 
                                        pinctrl_mmc0_slot0_dat4_7: mmc0_slot0_dat4_7-0 {
                                                atmel,pins =
-                                                       <0 6 0x1 0x1    /* PA6 periph A with pullup */
-                                                        0 7 0x1 0x1    /* PA7 periph A with pullup */
-                                                        0 8 0x1 0x1    /* PA8 periph A with pullup */
-                                                        0 9 0x1 0x1>;  /* PA9 periph A with pullup */
+                                                       <AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA6 periph A with pullup */
+                                                        AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA7 periph A with pullup */
+                                                        AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA8 periph A with pullup */
+                                                        AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;       /* PA9 periph A with pullup */
                                        };
                                };
 
                                mmc1 {
                                        pinctrl_mmc1_slot0_clk_cmd_dat0: mmc1_slot0_clk_cmd_dat0-0 {
                                                atmel,pins =
-                                                       <0 31 0x1 0x0   /* PA31 periph A */
-                                                        0 22 0x1 0x1   /* PA22 periph A with pullup */
-                                                        0 23 0x1 0x1>; /* PA23 periph A with pullup */
+                                                       <AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA31 periph A */
+                                                        AT91_PIOA 22 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA22 periph A with pullup */
+                                                        AT91_PIOA 23 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA23 periph A with pullup */
                                        };
 
                                        pinctrl_mmc1_slot0_dat1_3: mmc1_slot0_dat1_3-0 {
                                                atmel,pins =
-                                                       <0 24 0x1 0x1   /* PA24 periph A with pullup */
-                                                        0 25 0x1 0x1   /* PA25 periph A with pullup */
-                                                        0 26 0x1 0x1>; /* PA26 periph A with pullup */
+                                                       <AT91_PIOA 24 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA24 periph A with pullup */
+                                                        AT91_PIOA 25 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA25 periph A with pullup */
+                                                        AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA26 periph A with pullup */
                                        };
 
                                        pinctrl_mmc1_slot0_dat4_7: mmc1_slot0_dat4_7-0 {
                                                atmel,pins =
-                                                       <0 27 0x1 0x1   /* PA27 periph A with pullup */
-                                                        0 28 0x1 0x1   /* PA28 periph A with pullup */
-                                                        0 29 0x1 0x1   /* PA29 periph A with pullup */
-                                                        0 20 0x1 0x1>; /* PA30 periph A with pullup */
+                                                       <AT91_PIOA 27 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA27 periph A with pullup */
+                                                        AT91_PIOA 28 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA28 periph A with pullup */
+                                                        AT91_PIOA 29 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA29 periph A with pullup */
+                                                        AT91_PIOA 20 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA30 periph A with pullup */
                                        };
                                };
 
                                ssc0 {
                                        pinctrl_ssc0_tx: ssc0_tx-0 {
                                                atmel,pins =
-                                                       <3 0 0x1 0x0    /* PD0 periph A */
-                                                        3 1 0x1 0x0    /* PD1 periph A */
-                                                        3 2 0x1 0x0>;  /* PD2 periph A */
+                                                       <AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD0 periph A */
+                                                        AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD1 periph A */
+                                                        AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PD2 periph A */
                                        };
 
                                        pinctrl_ssc0_rx: ssc0_rx-0 {
                                                atmel,pins =
-                                                       <3 3 0x1 0x0    /* PD3 periph A */
-                                                        3 4 0x1 0x0    /* PD4 periph A */
-                                                        3 5 0x1 0x0>;  /* PD5 periph A */
+                                                       <AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD3 periph A */
+                                                        AT91_PIOD 4 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD4 periph A */
+                                                        AT91_PIOD 5 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PD5 periph A */
                                        };
                                };
 
                                ssc1 {
                                        pinctrl_ssc1_tx: ssc1_tx-0 {
                                                atmel,pins =
-                                                       <3 10 0x1 0x0   /* PD10 periph A */
-                                                        3 11 0x1 0x0   /* PD11 periph A */
-                                                        3 12 0x1 0x0>; /* PD12 periph A */
+                                                       <AT91_PIOD 10 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD10 periph A */
+                                                        AT91_PIOD 11 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD11 periph A */
+                                                        AT91_PIOD 12 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD12 periph A */
                                        };
 
                                        pinctrl_ssc1_rx: ssc1_rx-0 {
                                                atmel,pins =
-                                                       <3 13 0x1 0x0   /* PD13 periph A */
-                                                        3 14 0x1 0x0   /* PD14 periph A */
-                                                        3 15 0x1 0x0>; /* PD15 periph A */
+                                                       <AT91_PIOD 13 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD13 periph A */
+                                                        AT91_PIOD 14 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD14 periph A */
+                                                        AT91_PIOD 15 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD15 periph A */
                                        };
                                };
 
                                spi0 {
                                        pinctrl_spi0: spi0-0 {
                                                atmel,pins =
-                                                       <1 0 0x1 0x0    /* PB0 periph A SPI0_MISO pin */
-                                                        1 1 0x1 0x0    /* PB1 periph A SPI0_MOSI pin */
-                                                        1 2 0x1 0x0>;  /* PB2 periph A SPI0_SPCK pin */
+                                                       <AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB0 periph A SPI0_MISO pin */
+                                                        AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB1 periph A SPI0_MOSI pin */
+                                                        AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PB2 periph A SPI0_SPCK pin */
                                        };
                                };
 
                                spi1 {
                                        pinctrl_spi1: spi1-0 {
                                                atmel,pins =
-                                                       <1 14 0x1 0x0   /* PB14 periph A SPI1_MISO pin */
-                                                        1 15 0x1 0x0   /* PB15 periph A SPI1_MOSI pin */
-                                                        1 16 0x1 0x0>; /* PB16 periph A SPI1_SPCK pin */
+                                                       <AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB14 periph A SPI1_MISO pin */
+                                                        AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB15 periph A SPI1_MOSI pin */
+                                                        AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB16 periph A SPI1_SPCK pin */
+                                       };
+                               };
+
+                               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>;
-                                       interrupts = <2 4 1>;
+                                       interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioB: gpio@fffff400 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffff400 0x200>;
-                                       interrupts = <3 4 1>;
+                                       interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioC: gpio@fffff600 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffff600 0x200>;
-                                       interrupts = <4 4 1>;
+                                       interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioD: gpio@fffff800 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffff800 0x200>;
-                                       interrupts = <5 4 1>;
+                                       interrupts = <5 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioE: gpio@fffffa00 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffffa00 0x200>;
-                                       interrupts = <5 4 1>;
+                                       interrupts = <5 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                        dbgu: serial@ffffee00 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xffffee00 0x200>;
-                               interrupts = <1 4 7>;
+                               interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_dbgu>;
                                status = "disabled";
                        usart0: serial@fff8c000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xfff8c000 0x200>;
-                               interrupts = <7 4 5>;
+                               interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                        usart1: serial@fff90000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xfff90000 0x200>;
-                               interrupts = <8 4 5>;
+                               interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                        usart2: serial@fff94000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xfff94000 0x200>;
-                               interrupts = <9 4 5>;
+                               interrupts = <9 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                        usart3: serial@fff98000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xfff98000 0x200>;
-                               interrupts = <10 4 5>;
+                               interrupts = <10 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
                                pinctrl-names = "default";
                        macb0: ethernet@fffbc000 {
                                compatible = "cdns,at32ap7000-macb", "cdns,macb";
                                reg = <0xfffbc000 0x100>;
-                               interrupts = <25 4 3>;
+                               interrupts = <25 IRQ_TYPE_LEVEL_HIGH 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_macb_rmii>;
                                status = "disabled";
                        i2c0: i2c@fff84000 {
                                compatible = "atmel,at91sam9g10-i2c";
                                reg = <0xfff84000 0x100>;
-                               interrupts = <12 4 6>;
+                               interrupts = <12 IRQ_TYPE_LEVEL_HIGH 6>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                        i2c1: i2c@fff88000 {
                                compatible = "atmel,at91sam9g10-i2c";
                                reg = <0xfff88000 0x100>;
-                               interrupts = <13 4 6>;
+                               interrupts = <13 IRQ_TYPE_LEVEL_HIGH 6>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                        ssc0: ssc@fff9c000 {
                                compatible = "atmel,at91sam9g45-ssc";
                                reg = <0xfff9c000 0x4000>;
-                               interrupts = <16 4 5>;
+                               interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
                                status = "disabled";
                        ssc1: ssc@fffa0000 {
                                compatible = "atmel,at91sam9g45-ssc";
                                reg = <0xfffa0000 0x4000>;
-                               interrupts = <17 4 5>;
+                               interrupts = <17 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
                                status = "disabled";
                        adc0: adc@fffb0000 {
                                compatible = "atmel,at91sam9260-adc";
                                reg = <0xfffb0000 0x100>;
-                               interrupts = <20 4 0>;
+                               interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0>;
                                atmel,adc-use-external-triggers;
                                atmel,adc-channels-used = <0xff>;
                                atmel,adc-vref = <3300>;
                        mmc0: mmc@fff80000 {
                                compatible = "atmel,hsmci";
                                reg = <0xfff80000 0x600>;
-                               interrupts = <11 4 0>;
-                               dmas = <&dma 1 0>;
+                               interrupts = <11 IRQ_TYPE_LEVEL_HIGH 0>;
+                               dmas = <&dma 1 AT91_DMA_CFG_PER_ID(0)>;
                                dma-names = "rxtx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                        mmc1: mmc@fffd0000 {
                                compatible = "atmel,hsmci";
                                reg = <0xfffd0000 0x600>;
-                               interrupts = <29 4 0>;
-                               dmas = <&dma 1 13>;
+                               interrupts = <29 IRQ_TYPE_LEVEL_HIGH 0>;
+                               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 {
                        atmel,nand-cmd-offset = <22>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_nand>;
-                       gpios = <&pioC 8 0
-                                &pioC 14 0
+                       gpios = <&pioC 8 GPIO_ACTIVE_HIGH
+                                &pioC 14 GPIO_ACTIVE_HIGH
                                 0
                                >;
                        status = "disabled";
                usb0: ohci@00700000 {
                        compatible = "atmel,at91rm9200-ohci", "usb-ohci";
                        reg = <0x00700000 0x100000>;
-                       interrupts = <22 4 2>;
+                       interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
                        status = "disabled";
                };
 
                usb1: ehci@00800000 {
                        compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
                        reg = <0x00800000 0x100000>;
-                       interrupts = <22 4 2>;
+                       interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
                        status = "disabled";
                };
        };
 
        i2c@0 {
                compatible = "i2c-gpio";
-               gpios = <&pioA 20 0 /* sda */
-                        &pioA 21 0 /* scl */
+               gpios = <&pioA 20 GPIO_ACTIVE_HIGH /* sda */
+                        &pioA 21 GPIO_ACTIVE_HIGH /* scl */
                        >;
                i2c-gpio,sda-open-drain;
                i2c-gpio,scl-open-drain;
index 51d9251b5bbe71ef7357d62bbb42859941ba2df2..a4b00e5c61c09faca05f8e5b9e2604394982cba8 100644 (file)
@@ -7,7 +7,7 @@
  * Licensed under GPLv2 or later.
  */
 /dts-v1/;
-/include/ "at91sam9g45.dtsi"
+#include "at91sam9g45.dtsi"
 
 / {
        model = "Atmel AT91SAM9M10G45-EK";
                                status = "okay";
                        };
 
+                       watchdog@fffffd40 {
+                               status = "okay";
+                       };
+
                        mmc0: mmc@fff80000 {
                                pinctrl-0 = <
                                        &pinctrl_board_mmc0
@@ -68,7 +72,7 @@
                                slot@0 {
                                        reg = <0>;
                                        bus-width = <4>;
-                                       cd-gpios = <&pioD 10 0>;
+                                       cd-gpios = <&pioD 10 GPIO_ACTIVE_HIGH>;
                                };
                        };
 
@@ -81,8 +85,8 @@
                                slot@0 {
                                        reg = <0>;
                                        bus-width = <4>;
-                                       cd-gpios = <&pioD 11 0>;
-                                       wp-gpios = <&pioD 29 0>;
+                                       cd-gpios = <&pioD 11 GPIO_ACTIVE_HIGH>;
+                                       wp-gpios = <&pioD 29 GPIO_ACTIVE_HIGH>;
                                };
                        };
 
                                mmc0 {
                                        pinctrl_board_mmc0: mmc0-board {
                                                atmel,pins =
-                                                       <3 10 0x0 0x5>; /* PD10 gpio CD pin pull up and deglitch */
+                                                       <AT91_PIOD 10 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;  /* PD10 gpio CD pin pull up and deglitch */
                                        };
                                };
 
                                mmc1 {
                                        pinctrl_board_mmc1: mmc1-board {
                                                atmel,pins =
-                                                       <3 11 0x0 0x5   /* PD11 gpio CD pin pull up and deglitch */
-                                                        3 29 0x0 0x1>; /* PD29 gpio WP pin pull up */
+                                                       <AT91_PIOD 11 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH    /* PD11 gpio CD pin pull up and deglitch */
+                                                        AT91_PIOD 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;   /* PD29 gpio WP pin pull up */
                                        };
                                };
                        };
                                        reg = <0>;
                                };
                        };
+
+                       usb2: gadget@fff78000 {
+                               atmel,vbus-gpio = <&pioB 19 GPIO_ACTIVE_HIGH>;
+                               status = "okay";
+                       };
                };
 
                nand0: nand@40000000 {
                usb0: ohci@00700000 {
                        status = "okay";
                        num-ports = <2>;
-                       atmel,vbus-gpio = <&pioD 1 1
-                                          &pioD 3 1>;
+                       atmel,vbus-gpio = <&pioD 1 GPIO_ACTIVE_LOW
+                                          &pioD 3 GPIO_ACTIVE_LOW>;
                };
 
                usb1: ehci@00800000 {
 
                d8 {
                        label = "d8";
-                       gpios = <&pioD 30 0>;
+                       gpios = <&pioD 30 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                };
 
                d6 {
                        label = "d6";
-                       gpios = <&pioD 0 1>;
+                       gpios = <&pioD 0 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "nand-disk";
                };
 
                d7 {
                        label = "d7";
-                       gpios = <&pioD 31 1>;
+                       gpios = <&pioD 31 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "mmc0";
                };
        };
 
                left_click {
                        label = "left_click";
-                       gpios = <&pioB 6 1>;
+                       gpios = <&pioB 6 GPIO_ACTIVE_LOW>;
                        linux,code = <272>;
                        gpio-key,wakeup;
                };
 
                right_click {
                        label = "right_click";
-                       gpios = <&pioB 7 1>;
+                       gpios = <&pioB 7 GPIO_ACTIVE_LOW>;
                        linux,code = <273>;
                        gpio-key,wakeup;
                };
 
                left {
                        label = "Joystick Left";
-                       gpios = <&pioB 14 1>;
+                       gpios = <&pioB 14 GPIO_ACTIVE_LOW>;
                        linux,code = <105>;
                };
 
                right {
                        label = "Joystick Right";
-                       gpios = <&pioB 15 1>;
+                       gpios = <&pioB 15 GPIO_ACTIVE_LOW>;
                        linux,code = <106>;
                };
 
                up {
                        label = "Joystick Up";
-                       gpios = <&pioB 16 1>;
+                       gpios = <&pioB 16 GPIO_ACTIVE_LOW>;
                        linux,code = <103>;
                };
 
                down {
                        label = "Joystick Down";
-                       gpios = <&pioB 17 1>;
+                       gpios = <&pioB 17 GPIO_ACTIVE_LOW>;
                        linux,code = <108>;
                };
 
                enter {
                        label = "Joystick Press";
-                       gpios = <&pioB 18 1>;
+                       gpios = <&pioB 18 GPIO_ACTIVE_LOW>;
                        linux,code = <28>;
                };
        };
index 8d25f889928eccd3c7a3440dd9522e4f1d34e37c..973bf5fd98007797e210e568f7c5907fc79bf0fe 100644 (file)
@@ -7,7 +7,11 @@
  * Licensed under GPLv2 or later.
  */
 
-/include/ "skeleton.dtsi"
+#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>
 
 / {
        model = "Atmel AT91SAM9N12 SoC";
                ssc0 = &ssc0;
        };
        cpus {
-               cpu@0 {
-                       compatible = "arm,arm926ejs";
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       compatible = "arm,arm926ej-s";
+                       device_type = "cpu";
                };
        };
 
@@ -78,7 +86,7 @@
                        pit: timer@fffffe30 {
                                compatible = "atmel,at91sam9260-pit";
                                reg = <0xfffffe30 0xf>;
-                               interrupts = <1 4 7>;
+                               interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
                        };
 
                        shdwc@fffffe10 {
@@ -89,8 +97,8 @@
                        mmc0: mmc@f0008000 {
                                compatible = "atmel,hsmci";
                                reg = <0xf0008000 0x600>;
-                               interrupts = <12 4 0>;
-                               dmas = <&dma 1 0>;
+                               interrupts = <12 IRQ_TYPE_LEVEL_HIGH 0>;
+                               dmas = <&dma 1 AT91_DMA_CFG_PER_ID(0)>;
                                dma-names = "rxtx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                        tcb0: timer@f8008000 {
                                compatible = "atmel,at91sam9x5-tcb";
                                reg = <0xf8008000 0x100>;
-                               interrupts = <17 4 0>;
+                               interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>;
                        };
 
                        tcb1: timer@f800c000 {
                                compatible = "atmel,at91sam9x5-tcb";
                                reg = <0xf800c000 0x100>;
-                               interrupts = <17 4 0>;
+                               interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>;
                        };
 
                        dma: dma-controller@ffffec00 {
                                compatible = "atmel,at91sam9g45-dma";
                                reg = <0xffffec00 0x200>;
-                               interrupts = <20 4 0>;
+                               interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0>;
                                #dma-cells = <2>;
                        };
 
                                dbgu {
                                        pinctrl_dbgu: dbgu-0 {
                                                atmel,pins =
-                                                       <0 9 0x1 0x0    /* PA9 periph A */
-                                                        0 10 0x1 0x1>; /* PA10 periph with pullup */
+                                                       <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA9 periph A */
+                                                        AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA10 periph with pullup */
                                        };
                                };
 
                                usart0 {
                                        pinctrl_usart0: usart0-0 {
                                                atmel,pins =
-                                                       <0 1 0x1 0x1    /* PA1 periph A with pullup */
-                                                        0 0 0x1 0x0>;  /* PA0 periph A */
+                                                       <AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA1 periph A with pullup */
+                                                        AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PA0 periph A */
                                        };
 
                                        pinctrl_usart0_rts: usart0_rts-0 {
                                                atmel,pins =
-                                                       <0 2 0x1 0x0>;  /* PA2 periph A */
+                                                       <AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PA2 periph A */
                                        };
 
                                        pinctrl_usart0_cts: usart0_cts-0 {
                                                atmel,pins =
-                                                       <0 3 0x1 0x0>;  /* PA3 periph A */
+                                                       <AT91_PIOA 3 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PA3 periph A */
                                        };
                                };
 
                                usart1 {
                                        pinctrl_usart1: usart1-0 {
                                                atmel,pins =
-                                                       <0 6 0x1 0x1    /* PA6 periph A with pullup */
-                                                        0 5 0x1 0x0>;  /* PA5 periph A */
+                                                       <AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA6 periph A with pullup */
+                                                        AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PA5 periph A */
                                        };
                                };
 
                                usart2 {
                                        pinctrl_usart2: usart2-0 {
                                                atmel,pins =
-                                                       <0 8 0x1 0x1    /* PA8 periph A with pullup */
-                                                        0 7 0x1 0x0>;  /* PA7 periph A */
+                                                       <AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA8 periph A with pullup */
+                                                        AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PA7 periph A */
                                        };
 
                                        pinctrl_usart2_rts: usart2_rts-0 {
                                                atmel,pins =
-                                                       <1 0 0x2 0x0>;  /* PB0 periph B */
+                                                       <AT91_PIOB 0 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PB0 periph B */
                                        };
 
                                        pinctrl_usart2_cts: usart2_cts-0 {
                                                atmel,pins =
-                                                       <1 1 0x2 0x0>;  /* PB1 periph B */
+                                                       <AT91_PIOB 1 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PB1 periph B */
                                        };
                                };
 
                                usart3 {
                                        pinctrl_usart3: usart3-0 {
                                                atmel,pins =
-                                                       <2 23 0x2 0x1   /* PC23 periph B with pullup */
-                                                        2 22 0x2 0x0>; /* PC22 periph B */
+                                                       <AT91_PIOC 23 AT91_PERIPH_B AT91_PINCTRL_PULL_UP        /* PC23 periph B with pullup */
+                                                        AT91_PIOC 22 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PC22 periph B */
                                        };
 
                                        pinctrl_usart3_rts: usart3_rts-0 {
                                                atmel,pins =
-                                                       <2 24 0x2 0x0>; /* PC24 periph B */
+                                                       <AT91_PIOC 24 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PC24 periph B */
                                        };
 
                                        pinctrl_usart3_cts: usart3_cts-0 {
                                                atmel,pins =
-                                                       <2 25 0x2 0x0>; /* PC25 periph B */
+                                                       <AT91_PIOC 25 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PC25 periph B */
                                        };
                                };
 
                                uart0 {
                                        pinctrl_uart0: uart0-0 {
                                                atmel,pins =
-                                                       <2 9 0x3 0x1    /* PC9 periph C with pullup */
-                                                        2 8 0x3 0x0>;  /* PC8 periph C */
+                                                       <AT91_PIOC 9 AT91_PERIPH_C AT91_PINCTRL_PULL_UP /* PC9 periph C with pullup */
+                                                        AT91_PIOC 8 AT91_PERIPH_C AT91_PINCTRL_NONE>;  /* PC8 periph C */
                                        };
                                };
 
                                uart1 {
                                        pinctrl_uart1: uart1-0 {
                                                atmel,pins =
-                                                       <2 16 0x3 0x1   /* PC17 periph C with pullup */
-                                                        2 17 0x3 0x0>; /* PC16 periph C */
+                                                       <AT91_PIOC 16 AT91_PERIPH_C AT91_PINCTRL_PULL_UP        /* PC17 periph C with pullup */
+                                                        AT91_PIOC 17 AT91_PERIPH_C AT91_PINCTRL_NONE>; /* PC16 periph C */
                                        };
                                };
 
                                nand {
                                        pinctrl_nand: nand-0 {
                                                atmel,pins =
-                                                       <3 5 0x0 0x1    /* PD5 gpio RDY pin pull_up*/
-                                                        3 4 0x0 0x1>;  /* PD4 gpio enable pin pull_up */
+                                                       <AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP      /* PD5 gpio RDY pin pull_up*/
+                                                        AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;    /* PD4 gpio enable pin pull_up */
                                        };
                                };
 
                                mmc0 {
                                        pinctrl_mmc0_slot0_clk_cmd_dat0: mmc0_slot0_clk_cmd_dat0-0 {
                                                atmel,pins =
-                                                       <0 17 0x1 0x0   /* PA17 periph A */
-                                                        0 16 0x1 0x1   /* PA16 periph A with pullup */
-                                                        0 15 0x1 0x1>; /* PA15 periph A with pullup */
+                                                       <AT91_PIOA 17 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA17 periph A */
+                                                        AT91_PIOA 16 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA16 periph A with pullup */
+                                                        AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA15 periph A with pullup */
                                        };
 
                                        pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
                                                atmel,pins =
-                                                       <0 18 0x1 0x1   /* PA18 periph A with pullup */
-                                                        0 19 0x1 0x1   /* PA19 periph A with pullup */
-                                                        0 20 0x1 0x1>; /* PA20 periph A with pullup */
+                                                       <AT91_PIOA 18 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA18 periph A with pullup */
+                                                        AT91_PIOA 19 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA19 periph A with pullup */
+                                                        AT91_PIOA 20 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA20 periph A with pullup */
                                        };
 
                                        pinctrl_mmc0_slot0_dat4_7: mmc0_slot0_dat4_7-0 {
                                                atmel,pins =
-                                                       <0 11 0x2 0x1   /* PA11 periph B with pullup */
-                                                        0 12 0x2 0x1   /* PA12 periph B with pullup */
-                                                        0 13 0x2 0x1   /* PA13 periph B with pullup */
-                                                        0 14 0x2 0x1>; /* PA14 periph B with pullup */
+                                                       <AT91_PIOA 11 AT91_PERIPH_B AT91_PINCTRL_PULL_UP        /* PA11 periph B with pullup */
+                                                        AT91_PIOA 12 AT91_PERIPH_B AT91_PINCTRL_PULL_UP        /* PA12 periph B with pullup */
+                                                        AT91_PIOA 13 AT91_PERIPH_B AT91_PINCTRL_PULL_UP        /* PA13 periph B with pullup */
+                                                        AT91_PIOA 14 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;      /* PA14 periph B with pullup */
                                        };
                                };
 
                                ssc0 {
                                        pinctrl_ssc0_tx: ssc0_tx-0 {
                                                atmel,pins =
-                                                       <0 24 0x2 0x0   /* PA24 periph B */
-                                                        0 25 0x2 0x0   /* PA25 periph B */
-                                                        0 26 0x2 0x0>; /* PA26 periph B */
+                                                       <AT91_PIOA 24 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA24 periph B */
+                                                        AT91_PIOA 25 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA25 periph B */
+                                                        AT91_PIOA 26 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PA26 periph B */
                                        };
 
                                        pinctrl_ssc0_rx: ssc0_rx-0 {
                                                atmel,pins =
-                                                       <0 27 0x2 0x0   /* PA27 periph B */
-                                                        0 28 0x2 0x0   /* PA28 periph B */
-                                                        0 29 0x2 0x0>; /* PA29 periph B */
+                                                       <AT91_PIOA 27 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA27 periph B */
+                                                        AT91_PIOA 28 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA28 periph B */
+                                                        AT91_PIOA 29 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PA29 periph B */
                                        };
                                };
 
                                spi0 {
                                        pinctrl_spi0: spi0-0 {
                                                atmel,pins =
-                                                       <0 11 0x1 0x0   /* PA11 periph A SPI0_MISO pin */
-                                                        0 12 0x1 0x0   /* PA12 periph A SPI0_MOSI pin */
-                                                        0 13 0x1 0x0>; /* PA13 periph A SPI0_SPCK pin */
+                                                       <AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA11 periph A SPI0_MISO pin */
+                                                        AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA12 periph A SPI0_MOSI pin */
+                                                        AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA13 periph A SPI0_SPCK pin */
                                        };
                                };
 
                                spi1 {
                                        pinctrl_spi1: spi1-0 {
                                                atmel,pins =
-                                                       <0 21 0x2 0x0   /* PA21 periph B SPI1_MISO pin */
-                                                        0 22 0x2 0x0   /* PA22 periph B SPI1_MOSI pin */
-                                                        0 23 0x2 0x0>; /* PA23 periph B SPI1_SPCK pin */
+                                                       <AT91_PIOA 21 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA21 periph B SPI1_MISO pin */
+                                                        AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA22 periph B SPI1_MOSI pin */
+                                                        AT91_PIOA 23 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PA23 periph B SPI1_SPCK pin */
+                                       };
+                               };
+
+                               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>;
-                                       interrupts = <2 4 1>;
+                                       interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioB: gpio@fffff600 {
                                        compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
                                        reg = <0xfffff600 0x200>;
-                                       interrupts = <2 4 1>;
+                                       interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioC: gpio@fffff800 {
                                        compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
                                        reg = <0xfffff800 0x200>;
-                                       interrupts = <3 4 1>;
+                                       interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioD: gpio@fffffa00 {
                                        compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
                                        reg = <0xfffffa00 0x200>;
-                                       interrupts = <3 4 1>;
+                                       interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                        dbgu: serial@fffff200 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xfffff200 0x200>;
-                               interrupts = <1 4 7>;
+                               interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_dbgu>;
                                status = "disabled";
                        ssc0: ssc@f0010000 {
                                compatible = "atmel,at91sam9g45-ssc";
                                reg = <0xf0010000 0x4000>;
-                               interrupts = <28 4 5>;
+                               interrupts = <28 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
                                status = "disabled";
                        usart0: serial@f801c000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf801c000 0x4000>;
-                               interrupts = <5 4 5>;
+                               interrupts = <5 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart0>;
                                status = "disabled";
                        usart1: serial@f8020000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf8020000 0x4000>;
-                               interrupts = <6 4 5>;
+                               interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart1>;
                                status = "disabled";
                        usart2: serial@f8024000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf8024000 0x4000>;
-                               interrupts = <7 4 5>;
+                               interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart2>;
                                status = "disabled";
                        usart3: serial@f8028000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf8028000 0x4000>;
-                               interrupts = <8 4 5>;
+                               interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart3>;
                                status = "disabled";
                        i2c0: i2c@f8010000 {
                                compatible = "atmel,at91sam9x5-i2c";
                                reg = <0xf8010000 0x100>;
-                               interrupts = <9 4 6>;
-                               dmas = <&dma 1 13>,
-                                      <&dma 1 14>;
+                               interrupts = <9 IRQ_TYPE_LEVEL_HIGH 6>;
+                               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>;
                        i2c1: i2c@f8014000 {
                                compatible = "atmel,at91sam9x5-i2c";
                                reg = <0xf8014000 0x100>;
-                               interrupts = <10 4 6>;
-                               dmas = <&dma 1 15>,
-                                      <&dma 1 16>;
+                               interrupts = <10 IRQ_TYPE_LEVEL_HIGH 6>;
+                               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>;
                                #size-cells = <0>;
                                compatible = "atmel,at91rm9200-spi";
                                reg = <0xf0000000 0x100>;
-                               interrupts = <13 4 3>;
+                               interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi0>;
                                status = "disabled";
                                #size-cells = <0>;
                                compatible = "atmel,at91rm9200-spi";
                                reg = <0xf0004000 0x100>;
-                               interrupts = <14 4 3>;
+                               interrupts = <14 IRQ_TYPE_LEVEL_HIGH 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi1>;
                                status = "disabled";
                        };
+
+                       watchdog@fffffe40 {
+                               compatible = "atmel,at91sam9260-wdt";
+                               reg = <0xfffffe40 0x10>;
+                               status = "disabled";
+                       };
                };
 
                nand0: nand@40000000 {
                        atmel,nand-cmd-offset = <22>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_nand>;
-                       gpios = <&pioD 5 0
-                                &pioD 4 0
+                       gpios = <&pioD 5 GPIO_ACTIVE_HIGH
+                                &pioD 4 GPIO_ACTIVE_HIGH
                                 0
                                >;
                        status = "disabled";
                usb0: ohci@00500000 {
                        compatible = "atmel,at91rm9200-ohci", "usb-ohci";
                        reg = <0x00500000 0x00100000>;
-                       interrupts = <22 4 2>;
+                       interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
                        status = "disabled";
                };
        };
 
        i2c@0 {
                compatible = "i2c-gpio";
-               gpios = <&pioA 30 0 /* sda */
-                        &pioA 31 0 /* scl */
+               gpios = <&pioA 30 GPIO_ACTIVE_HIGH /* sda */
+                        &pioA 31 GPIO_ACTIVE_HIGH /* scl */
                        >;
                i2c-gpio,sda-open-drain;
                i2c-gpio,scl-open-drain;
index d30e48bd1e9d0f6a4c15d585c1d574092c475ce4..d59b70c6a6a0dbadafcded2baaba38f12270aff4 100644 (file)
@@ -7,7 +7,7 @@
  * Licensed under GPLv2 or later.
  */
 /dts-v1/;
-/include/ "at91sam9n12.dtsi"
+#include "at91sam9n12.dtsi"
 
 / {
        model = "Atmel AT91SAM9N12-EK";
@@ -55,7 +55,7 @@
                                slot@0 {
                                        reg = <0>;
                                        bus-width = <4>;
-                                       cd-gpios = <&pioA 7 0>;
+                                       cd-gpios = <&pioA 7 GPIO_ACTIVE_HIGH>;
                                };
                        };
 
@@ -63,7 +63,7 @@
                                mmc0 {
                                        pinctrl_board_mmc0: mmc0-board {
                                                atmel,pins =
-                                                       <0 7 0x0 0x5>;  /* PA7 gpio CD pin pull up and deglitch */
+                                                       <AT91_PIOA 7 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;   /* PA7 gpio CD pin pull up and deglitch */
                                        };
                                };
                        };
                                        reg = <0>;
                                };
                        };
+
+                       watchdog@fffffe40 {
+                               status = "okay";
+                       };
                };
 
                nand0: nand@40000000 {
 
                d8 {
                        label = "d8";
-                       gpios = <&pioB 4 1>;
+                       gpios = <&pioB 4 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "mmc0";
                };
 
                d9 {
                        label = "d6";
-                       gpios = <&pioB 5 1>;
+                       gpios = <&pioB 5 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "nand-disk";
                };
 
                d10 {
                        label = "d7";
-                       gpios = <&pioB 6 0>;
+                       gpios = <&pioB 6 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                };
        };
 
                enter {
                        label = "Enter";
-                       gpios = <&pioB 4 1>;
+                       gpios = <&pioB 4 GPIO_ACTIVE_LOW>;
                        linux,code = <28>;
                        gpio-key,wakeup;
                };
index 9ac2bc2b4f07cd36eca29c2172607d4e84c631bb..49e94aba938ff65f5827e1f56bd17fcde898fd38 100644 (file)
@@ -6,7 +6,7 @@
  * Licensed under GPLv2.
  */
 
-/include/ "at91sam9x5.dtsi"
+#include "at91sam9x5.dtsi"
 
 / {
        model = "Atmel AT91SAM9X25 SoC";
                                macb1 {
                                        pinctrl_macb1_rmii: macb1_rmii-0 {
                                                atmel,pins =
-                                                       <2 16 0x2 0x0   /* PC16 periph B */
-                                                        2 18 0x2 0x0   /* PC18 periph B */
-                                                        2 19 0x2 0x0   /* PC19 periph B */
-                                                        2 20 0x2 0x0   /* PC20 periph B */
-                                                        2 21 0x2 0x0   /* PC21 periph B */
-                                                        2 27 0x2 0x0   /* PC27 periph B */
-                                                        2 28 0x2 0x0   /* PC28 periph B */
-                                                        2 29 0x2 0x0   /* PC29 periph B */
-                                                        2 30 0x2 0x0   /* PC30 periph B */
-                                                        2 31 0x2 0x0>; /* PC31 periph B */
+                                                       <AT91_PIOC 16 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC16 periph B */
+                                                        AT91_PIOC 18 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC18 periph B */
+                                                        AT91_PIOC 19 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC19 periph B */
+                                                        AT91_PIOC 20 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC20 periph B */
+                                                        AT91_PIOC 21 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC21 periph B */
+                                                        AT91_PIOC 27 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC27 periph B */
+                                                        AT91_PIOC 28 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC28 periph B */
+                                                        AT91_PIOC 29 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC29 periph B */
+                                                        AT91_PIOC 30 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC30 periph B */
+                                                        AT91_PIOC 31 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PC31 periph B */
                                        };
                                };
                        };
index 315250b4995e74e4452af0d0e46bb847790fbaf5..494864836e837aa87de0b7d7f8fe46844cd788e7 100644 (file)
@@ -7,8 +7,8 @@
  * Licensed under GPLv2 or later.
  */
 /dts-v1/;
-/include/ "at91sam9x25.dtsi"
-/include/ "at91sam9x5ek.dtsi"
+#include "at91sam9x25.dtsi"
+#include "at91sam9x5ek.dtsi"
 
 / {
        model = "Atmel AT91SAM9X25-EK";
index ba67d83d17ac5d3821f5018773a54a0342f98081..1a3d525a1f5d43b5f49f9183b6ce6a41b359b6ee 100644 (file)
@@ -6,7 +6,7 @@
  * Licensed under GPLv2.
  */
 
-/include/ "at91sam9x5.dtsi"
+#include "at91sam9x5.dtsi"
 
 / {
        model = "Atmel AT91SAM9X35 SoC";
index 6ad19a0d5424e59d05e1f53393b4495a2ebdeeba..343d32818ca31104b0911e9867e369719315c5d5 100644 (file)
@@ -7,8 +7,8 @@
  * Licensed under GPLv2 or later.
  */
 /dts-v1/;
-/include/ "at91sam9x35.dtsi"
-/include/ "at91sam9x5ek.dtsi"
+#include "at91sam9x35.dtsi"
+#include "at91sam9x5ek.dtsi"
 
 / {
        model = "Atmel AT91SAM9X35-EK";
index 1145ac330fb7c091647ce7425179402260d7de95..57d45f5bea09e77c72585fade7041521311bbf34 100644 (file)
@@ -9,7 +9,11 @@
  * Licensed under GPLv2 or later.
  */
 
-/include/ "skeleton.dtsi"
+#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>
 
 / {
        model = "Atmel AT91SAM9x5 family SoC";
                ssc0 = &ssc0;
        };
        cpus {
-               cpu@0 {
-                       compatible = "arm,arm926ejs";
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
+                       compatible = "arm,arm926ej-s";
+                       device_type = "cpu";
                };
        };
 
                        pit: timer@fffffe30 {
                                compatible = "atmel,at91sam9260-pit";
                                reg = <0xfffffe30 0xf>;
-                               interrupts = <1 4 7>;
+                               interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
                        };
 
                        tcb0: timer@f8008000 {
                                compatible = "atmel,at91sam9x5-tcb";
                                reg = <0xf8008000 0x100>;
-                               interrupts = <17 4 0>;
+                               interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>;
                        };
 
                        tcb1: timer@f800c000 {
                                compatible = "atmel,at91sam9x5-tcb";
                                reg = <0xf800c000 0x100>;
-                               interrupts = <17 4 0>;
+                               interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>;
                        };
 
                        dma0: dma-controller@ffffec00 {
                                compatible = "atmel,at91sam9g45-dma";
                                reg = <0xffffec00 0x200>;
-                               interrupts = <20 4 0>;
+                               interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0>;
                                #dma-cells = <2>;
                        };
 
                        dma1: dma-controller@ffffee00 {
                                compatible = "atmel,at91sam9g45-dma";
                                reg = <0xffffee00 0x200>;
-                               interrupts = <21 4 0>;
+                               interrupts = <21 IRQ_TYPE_LEVEL_HIGH 0>;
                                #dma-cells = <2>;
                        };
 
                                dbgu {
                                        pinctrl_dbgu: dbgu-0 {
                                                atmel,pins =
-                                                       <0 9 0x1 0x0    /* PA9 periph A */
-                                                        0 10 0x1 0x1>; /* PA10 periph A with pullup */
+                                                       <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA9 periph A */
+                                                        AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA10 periph A with pullup */
                                        };
                                };
 
                                usart0 {
                                        pinctrl_usart0: usart0-0 {
                                                atmel,pins =
-                                                       <0 0 0x1 0x1    /* PA0 periph A with pullup */
-                                                        0 1 0x1 0x0>;  /* PA1 periph A */
+                                                       <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA0 periph A with pullup */
+                                                        AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PA1 periph A */
                                        };
 
                                        pinctrl_usart0_rts: usart0_rts-0 {
                                                atmel,pins =
-                                                       <0 2 0x1 0x0>;  /* PA2 periph A */
+                                                       <AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PA2 periph A */
                                        };
 
                                        pinctrl_usart0_cts: usart0_cts-0 {
                                                atmel,pins =
-                                                       <0 3 0x1 0x0>;  /* PA3 periph A */
+                                                       <AT91_PIOA 3 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PA3 periph A */
                                        };
 
                                        pinctrl_usart0_sck: usart0_sck-0 {
                                                atmel,pins =
-                                                       <0 4 0x1 0x0>;  /* PA4 periph A */
+                                                       <AT91_PIOA 4 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PA4 periph A */
                                        };
                                };
 
                                usart1 {
                                        pinctrl_usart1: usart1-0 {
                                                atmel,pins =
-                                                       <0 5 0x1 0x1    /* PA5 periph A with pullup */
-                                                        0 6 0x1 0x0>;  /* PA6 periph A */
+                                                       <AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA5 periph A with pullup */
+                                                        AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PA6 periph A */
                                        };
 
                                        pinctrl_usart1_rts: usart1_rts-0 {
                                                atmel,pins =
-                                                       <2 27 0x3 0x0>; /* PC27 periph C */
+                                                       <AT91_PIOC 27 AT91_PERIPH_C AT91_PINCTRL_NONE>; /* PC27 periph C */
                                        };
 
                                        pinctrl_usart1_cts: usart1_cts-0 {
                                                atmel,pins =
-                                                       <2 28 0x3 0x0>; /* PC28 periph C */
+                                                       <AT91_PIOC 28 AT91_PERIPH_C AT91_PINCTRL_NONE>; /* PC28 periph C */
                                        };
 
                                        pinctrl_usart1_sck: usart1_sck-0 {
                                                atmel,pins =
-                                                       <2 28 0x3 0x0>; /* PC29 periph C */
+                                                       <AT91_PIOC 28 AT91_PERIPH_C AT91_PINCTRL_NONE>; /* PC29 periph C */
                                        };
                                };
 
                                usart2 {
                                        pinctrl_usart2: usart2-0 {
                                                atmel,pins =
-                                                       <0 7 0x1 0x1    /* PA7 periph A with pullup */
-                                                        0 8 0x1 0x0>;  /* PA8 periph A */
+                                                       <AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PA7 periph A with pullup */
+                                                        AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PA8 periph A */
                                        };
 
                                        pinctrl_uart2_rts: uart2_rts-0 {
                                                atmel,pins =
-                                                       <1 0 0x2 0x0>;  /* PB0 periph B */
+                                                       <AT91_PIOB 0 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PB0 periph B */
                                        };
 
                                        pinctrl_uart2_cts: uart2_cts-0 {
                                                atmel,pins =
-                                                       <1 1 0x2 0x0>;  /* PB1 periph B */
+                                                       <AT91_PIOB 1 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PB1 periph B */
                                        };
 
                                        pinctrl_usart2_sck: usart2_sck-0 {
                                                atmel,pins =
-                                                       <1 2 0x2 0x0>;  /* PB2 periph B */
+                                                       <AT91_PIOB 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PB2 periph B */
                                        };
                                };
 
                                usart3 {
                                        pinctrl_usart3: usart3-0 {
                                                atmel,pins =
-                                                       <2 22 0x2 0x1   /* PC22 periph B with pullup */
-                                                        2 23 0x2 0x0>; /* PC23 periph B */
+                                                       <AT91_PIOC 22 AT91_PERIPH_B AT91_PINCTRL_PULL_UP        /* PC22 periph B with pullup */
+                                                        AT91_PIOC 23 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PC23 periph B */
                                        };
 
                                        pinctrl_usart3_rts: usart3_rts-0 {
                                                atmel,pins =
-                                                       <2 24 0x2 0x0>; /* PC24 periph B */
+                                                       <AT91_PIOC 24 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PC24 periph B */
                                        };
 
                                        pinctrl_usart3_cts: usart3_cts-0 {
                                                atmel,pins =
-                                                       <2 25 0x2 0x0>; /* PC25 periph B */
+                                                       <AT91_PIOC 25 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PC25 periph B */
                                        };
 
                                        pinctrl_usart3_sck: usart3_sck-0 {
                                                atmel,pins =
-                                                       <2 26 0x2 0x0>; /* PC26 periph B */
+                                                       <AT91_PIOC 26 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PC26 periph B */
                                        };
                                };
 
                                uart0 {
                                        pinctrl_uart0: uart0-0 {
                                                atmel,pins =
-                                                       <2 8 0x3 0x0    /* PC8 periph C */
-                                                        2 9 0x3 0x1>;  /* PC9 periph C with pullup */
+                                                       <AT91_PIOC 8 AT91_PERIPH_C AT91_PINCTRL_NONE    /* PC8 periph C */
+                                                        AT91_PIOC 9 AT91_PERIPH_C AT91_PINCTRL_PULL_UP>;       /* PC9 periph C with pullup */
                                        };
                                };
 
                                uart1 {
                                        pinctrl_uart1: uart1-0 {
                                                atmel,pins =
-                                                       <2 16 0x3 0x0   /* PC16 periph C */
-                                                        2 17 0x3 0x1>; /* PC17 periph C with pullup */
+                                                       <AT91_PIOC 16 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PC16 periph C */
+                                                        AT91_PIOC 17 AT91_PERIPH_C AT91_PINCTRL_PULL_UP>;      /* PC17 periph C with pullup */
                                        };
                                };
 
                                nand {
                                        pinctrl_nand: nand-0 {
                                                atmel,pins =
-                                                       <3 0 0x1 0x0    /* PD0 periph A Read Enable */
-                                                        3 1 0x1 0x0    /* PD1 periph A Write Enable */
-                                                        3 2 0x1 0x0    /* PD2 periph A Address Latch Enable */
-                                                        3 3 0x1 0x0    /* PD3 periph A Command Latch Enable */
-                                                        3 4 0x0 0x1    /* PD4 gpio Chip Enable pin pull_up */
-                                                        3 5 0x0 0x1    /* PD5 gpio RDY/BUSY pin pull_up */
-                                                        3 6 0x1 0x0    /* PD6 periph A Data bit 0 */
-                                                        3 7 0x1 0x0    /* PD7 periph A Data bit 1 */
-                                                        3 8 0x1 0x0    /* PD8 periph A Data bit 2 */
-                                                        3 9 0x1 0x0    /* PD9 periph A Data bit 3 */
-                                                        3 10 0x1 0x0   /* PD10 periph A Data bit 4 */
-                                                        3 11 0x1 0x0   /* PD11 periph A Data bit 5 */
-                                                        3 12 0x1 0x0   /* PD12 periph A Data bit 6 */
-                                                        3 13 0x1 0x0>; /* PD13 periph A Data bit 7 */
+                                                       <AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD0 periph A Read Enable */
+                                                        AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD1 periph A Write Enable */
+                                                        AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD2 periph A Address Latch Enable */
+                                                        AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD3 periph A Command Latch Enable */
+                                                        AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP      /* PD4 gpio Chip Enable pin pull_up */
+                                                        AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP      /* PD5 gpio RDY/BUSY pin pull_up */
+                                                        AT91_PIOD 6 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD6 periph A Data bit 0 */
+                                                        AT91_PIOD 7 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD7 periph A Data bit 1 */
+                                                        AT91_PIOD 8 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD8 periph A Data bit 2 */
+                                                        AT91_PIOD 9 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD9 periph A Data bit 3 */
+                                                        AT91_PIOD 10 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD10 periph A Data bit 4 */
+                                                        AT91_PIOD 11 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD11 periph A Data bit 5 */
+                                                        AT91_PIOD 12 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD12 periph A Data bit 6 */
+                                                        AT91_PIOD 13 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD13 periph A Data bit 7 */
                                        };
 
                                        pinctrl_nand_16bits: nand_16bits-0 {
                                                atmel,pins =
-                                                       <3 14 0x1 0x0   /* PD14 periph A Data bit 8 */
-                                                        3 15 0x1 0x0   /* PD15 periph A Data bit 9 */
-                                                        3 16 0x1 0x0   /* PD16 periph A Data bit 10 */
-                                                        3 17 0x1 0x0   /* PD17 periph A Data bit 11 */
-                                                        3 18 0x1 0x0   /* PD18 periph A Data bit 12 */
-                                                        3 19 0x1 0x0   /* PD19 periph A Data bit 13 */
-                                                        3 20 0x1 0x0   /* PD20 periph A Data bit 14 */
-                                                        3 21 0x1 0x0>; /* PD21 periph A Data bit 15 */
+                                                       <AT91_PIOD 14 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD14 periph A Data bit 8 */
+                                                        AT91_PIOD 15 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD15 periph A Data bit 9 */
+                                                        AT91_PIOD 16 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD16 periph A Data bit 10 */
+                                                        AT91_PIOD 17 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD17 periph A Data bit 11 */
+                                                        AT91_PIOD 18 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD18 periph A Data bit 12 */
+                                                        AT91_PIOD 19 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD19 periph A Data bit 13 */
+                                                        AT91_PIOD 20 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD20 periph A Data bit 14 */
+                                                        AT91_PIOD 21 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD21 periph A Data bit 15 */
                                        };
                                };
 
                                macb0 {
                                        pinctrl_macb0_rmii: macb0_rmii-0 {
                                                atmel,pins =
-                                                       <1 0 0x1 0x0    /* PB0 periph A */
-                                                        1 1 0x1 0x0    /* PB1 periph A */
-                                                        1 2 0x1 0x0    /* PB2 periph A */
-                                                        1 3 0x1 0x0    /* PB3 periph A */
-                                                        1 4 0x1 0x0    /* PB4 periph A */
-                                                        1 5 0x1 0x0    /* PB5 periph A */
-                                                        1 6 0x1 0x0    /* PB6 periph A */
-                                                        1 7 0x1 0x0    /* PB7 periph A */
-                                                        1 9 0x1 0x0    /* PB9 periph A */
-                                                        1 10 0x1 0x0>; /* PB10 periph A */
+                                                       <AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB0 periph A */
+                                                        AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB1 periph A */
+                                                        AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB2 periph A */
+                                                        AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB3 periph A */
+                                                        AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB4 periph A */
+                                                        AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB5 periph A */
+                                                        AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB6 periph A */
+                                                        AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB7 periph A */
+                                                        AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB9 periph A */
+                                                        AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB10 periph A */
                                        };
 
                                        pinctrl_macb0_rmii_mii: macb0_rmii_mii-0 {
                                                atmel,pins =
-                                                       <1 8 0x1 0x0    /* PB8 periph A */
-                                                        1 11 0x1 0x0   /* PB11 periph A */
-                                                        1 12 0x1 0x0   /* PB12 periph A */
-                                                        1 13 0x1 0x0   /* PB13 periph A */
-                                                        1 14 0x1 0x0   /* PB14 periph A */
-                                                        1 15 0x1 0x0   /* PB15 periph A */
-                                                        1 16 0x1 0x0   /* PB16 periph A */
-                                                        1 17 0x1 0x0>; /* PB17 periph A */
+                                                       <AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB8 periph A */
+                                                        AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB11 periph A */
+                                                        AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB12 periph A */
+                                                        AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB13 periph A */
+                                                        AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB14 periph A */
+                                                        AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB15 periph A */
+                                                        AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB16 periph A */
+                                                        AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB17 periph A */
                                        };
                                };
 
                                mmc0 {
                                        pinctrl_mmc0_slot0_clk_cmd_dat0: mmc0_slot0_clk_cmd_dat0-0 {
                                                atmel,pins =
-                                                       <0 17 0x1 0x0   /* PA17 periph A */
-                                                        0 16 0x1 0x1   /* PA16 periph A with pullup */
-                                                        0 15 0x1 0x1>; /* PA15 periph A with pullup */
+                                                       <AT91_PIOA 17 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA17 periph A */
+                                                        AT91_PIOA 16 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA16 periph A with pullup */
+                                                        AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA15 periph A with pullup */
                                        };
 
                                        pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
                                                atmel,pins =
-                                                       <0 18 0x1 0x1   /* PA18 periph A with pullup */
-                                                        0 19 0x1 0x1   /* PA19 periph A with pullup */
-                                                        0 20 0x1 0x1>; /* PA20 periph A with pullup */
+                                                       <AT91_PIOA 18 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA18 periph A with pullup */
+                                                        AT91_PIOA 19 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PA19 periph A with pullup */
+                                                        AT91_PIOA 20 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PA20 periph A with pullup */
                                        };
                                };
 
                                mmc1 {
                                        pinctrl_mmc1_slot0_clk_cmd_dat0: mmc1_slot0_clk_cmd_dat0-0 {
                                                atmel,pins =
-                                                       <0 13 0x2 0x0   /* PA13 periph B */
-                                                        0 12 0x2 0x1   /* PA12 periph B with pullup */
-                                                        0 11 0x2 0x1>; /* PA11 periph B with pullup */
+                                                       <AT91_PIOA 13 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA13 periph B */
+                                                        AT91_PIOA 12 AT91_PERIPH_B AT91_PINCTRL_PULL_UP        /* PA12 periph B with pullup */
+                                                        AT91_PIOA 11 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;      /* PA11 periph B with pullup */
                                        };
 
                                        pinctrl_mmc1_slot0_dat1_3: mmc1_slot0_dat1_3-0 {
                                                atmel,pins =
-                                                       <0 2 0x2 0x1    /* PA2 periph B with pullup */
-                                                        0 3 0x2 0x1    /* PA3 periph B with pullup */
-                                                        0 4 0x2 0x1>;  /* PA4 periph B with pullup */
+                                                       <AT91_PIOA 2 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* PA2 periph B with pullup */
+                                                        AT91_PIOA 3 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* PA3 periph B with pullup */
+                                                        AT91_PIOA 4 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;       /* PA4 periph B with pullup */
                                        };
                                };
 
                                ssc0 {
                                        pinctrl_ssc0_tx: ssc0_tx-0 {
                                                atmel,pins =
-                                                       <0 24 0x2 0x0   /* PA24 periph B */
-                                                        0 25 0x2 0x0   /* PA25 periph B */
-                                                        0 26 0x2 0x0>; /* PA26 periph B */
+                                                       <AT91_PIOA 24 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA24 periph B */
+                                                        AT91_PIOA 25 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA25 periph B */
+                                                        AT91_PIOA 26 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PA26 periph B */
                                        };
 
                                        pinctrl_ssc0_rx: ssc0_rx-0 {
                                                atmel,pins =
-                                                       <0 27 0x2 0x0   /* PA27 periph B */
-                                                        0 28 0x2 0x0   /* PA28 periph B */
-                                                        0 29 0x2 0x0>; /* PA29 periph B */
+                                                       <AT91_PIOA 27 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA27 periph B */
+                                                        AT91_PIOA 28 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA28 periph B */
+                                                        AT91_PIOA 29 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PA29 periph B */
                                        };
                                };
 
                                spi0 {
                                        pinctrl_spi0: spi0-0 {
                                                atmel,pins =
-                                                       <0 11 0x1 0x0   /* PA11 periph A SPI0_MISO pin */
-                                                        0 12 0x1 0x0   /* PA12 periph A SPI0_MOSI pin */
-                                                        0 13 0x1 0x0>; /* PA13 periph A SPI0_SPCK pin */
+                                                       <AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA11 periph A SPI0_MISO pin */
+                                                        AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA12 periph A SPI0_MOSI pin */
+                                                        AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA13 periph A SPI0_SPCK pin */
                                        };
                                };
 
                                spi1 {
                                        pinctrl_spi1: spi1-0 {
                                                atmel,pins =
-                                                       <0 21 0x2 0x0   /* PA21 periph B SPI1_MISO pin */
-                                                        0 22 0x2 0x0   /* PA22 periph B SPI1_MOSI pin */
-                                                        0 23 0x2 0x0>; /* PA23 periph B SPI1_SPCK pin */
+                                                       <AT91_PIOA 21 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA21 periph B SPI1_MISO pin */
+                                                        AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA22 periph B SPI1_MOSI pin */
+                                                        AT91_PIOA 23 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PA23 periph B SPI1_SPCK pin */
                                        };
                                };
 
                                i2c0 {
                                        pinctrl_i2c0: i2c0-0 {
                                                atmel,pins =
-                                                       <0 30 0x1 0x0   /* PA30 periph A I2C0 data */
-                                                        0 31 0x1 0x0>; /* PA31 periph A I2C0 clock */
+                                                       <AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA30 periph A I2C0 data */
+                                                        AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA31 periph A I2C0 clock */
                                        };
                                };
 
                                i2c1 {
                                        pinctrl_i2c1: i2c1-0 {
                                                atmel,pins =
-                                                       <2 0 0x3 0x0    /* PC0 periph C I2C1 data */
-                                                        2 1 0x3 0x0>;  /* PC1 periph C I2C1 clock */
+                                                       <AT91_PIOC 0 AT91_PERIPH_C AT91_PINCTRL_NONE    /* PC0 periph C I2C1 data */
+                                                        AT91_PIOC 1 AT91_PERIPH_C AT91_PINCTRL_NONE>;  /* PC1 periph C I2C1 clock */
                                        };
                                };
 
                                i2c2 {
                                        pinctrl_i2c2: i2c2-0 {
                                                atmel,pins =
-                                                       <1 4 0x2 0x0    /* PB4 periph B I2C2 data */
-                                                        1 5 0x2 0x0>;  /* PB5 periph B I2C2 clock */
+                                                       <AT91_PIOB 4 AT91_PERIPH_B AT91_PINCTRL_NONE    /* PB4 periph B I2C2 data */
+                                                        AT91_PIOB 5 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PB5 periph B I2C2 clock */
                                        };
                                };
 
                                i2c_gpio0 {
                                        pinctrl_i2c_gpio0: i2c_gpio0-0 {
                                                atmel,pins =
-                                                       <0 30 0x0 0x2   /* PA30 gpio multidrive I2C0 data */
-                                                        0 31 0x0 0x2>; /* PA31 gpio multidrive I2C0 clock */
+                                                       <AT91_PIOA 30 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE /* PA30 gpio multidrive I2C0 data */
+                                                        AT91_PIOA 31 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>;       /* PA31 gpio multidrive I2C0 clock */
                                        };
                                };
 
                                i2c_gpio1 {
                                        pinctrl_i2c_gpio1: i2c_gpio1-0 {
                                                atmel,pins =
-                                                       <2 0 0x0 0x2    /* PC0 gpio multidrive I2C1 data */
-                                                        2 1 0x0 0x2>;  /* PC1 gpio multidrive I2C1 clock */
+                                                       <AT91_PIOC 0 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE  /* PC0 gpio multidrive I2C1 data */
+                                                        AT91_PIOC 1 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>;        /* PC1 gpio multidrive I2C1 clock */
                                        };
                                };
 
                                i2c_gpio2 {
                                        pinctrl_i2c_gpio2: i2c_gpio2-0 {
                                                atmel,pins =
-                                                       <1 4 0x0 0x2    /* PB4 gpio multidrive I2C2 data */
-                                                        1 5 0x0 0x2>;  /* PB5 gpio multidrive I2C2 clock */
+                                                       <AT91_PIOB 4 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE  /* PB4 gpio multidrive I2C2 data */
+                                                        AT91_PIOB 5 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>;        /* PB5 gpio multidrive I2C2 clock */
+                                       };
+                               };
+
+                               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>;
-                                       interrupts = <2 4 1>;
+                                       interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioB: gpio@fffff600 {
                                        compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
                                        reg = <0xfffff600 0x200>;
-                                       interrupts = <2 4 1>;
+                                       interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        #gpio-lines = <19>;
                                pioC: gpio@fffff800 {
                                        compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
                                        reg = <0xfffff800 0x200>;
-                                       interrupts = <3 4 1>;
+                                       interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        interrupt-controller;
                                pioD: gpio@fffffa00 {
                                        compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
                                        reg = <0xfffffa00 0x200>;
-                                       interrupts = <3 4 1>;
+                                       interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                        gpio-controller;
                                        #gpio-lines = <22>;
                        ssc0: ssc@f0010000 {
                                compatible = "atmel,at91sam9g45-ssc";
                                reg = <0xf0010000 0x4000>;
-                               interrupts = <28 4 5>;
+                               interrupts = <28 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
                                status = "disabled";
                        mmc0: mmc@f0008000 {
                                compatible = "atmel,hsmci";
                                reg = <0xf0008000 0x600>;
-                               interrupts = <12 4 0>;
-                               dmas = <&dma0 1 0>;
+                               interrupts = <12 IRQ_TYPE_LEVEL_HIGH 0>;
+                               dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(0)>;
                                dma-names = "rxtx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                        mmc1: mmc@f000c000 {
                                compatible = "atmel,hsmci";
                                reg = <0xf000c000 0x600>;
-                               interrupts = <26 4 0>;
-                               dmas = <&dma1 1 0>;
+                               interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0>;
+                               dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(0)>;
                                dma-names = "rxtx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                        dbgu: serial@fffff200 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xfffff200 0x200>;
-                               interrupts = <1 4 7>;
+                               interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_dbgu>;
                                status = "disabled";
                        usart0: serial@f801c000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf801c000 0x200>;
-                               interrupts = <5 4 5>;
+                               interrupts = <5 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart0>;
                                status = "disabled";
                        usart1: serial@f8020000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf8020000 0x200>;
-                               interrupts = <6 4 5>;
+                               interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart1>;
                                status = "disabled";
                        usart2: serial@f8024000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf8024000 0x200>;
-                               interrupts = <7 4 5>;
+                               interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart2>;
                                status = "disabled";
                        macb0: ethernet@f802c000 {
                                compatible = "cdns,at32ap7000-macb", "cdns,macb";
                                reg = <0xf802c000 0x100>;
-                               interrupts = <24 4 3>;
+                               interrupts = <24 IRQ_TYPE_LEVEL_HIGH 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_macb0_rmii>;
                                status = "disabled";
                        macb1: ethernet@f8030000 {
                                compatible = "cdns,at32ap7000-macb", "cdns,macb";
                                reg = <0xf8030000 0x100>;
-                               interrupts = <27 4 3>;
+                               interrupts = <27 IRQ_TYPE_LEVEL_HIGH 3>;
                                status = "disabled";
                        };
 
                        i2c0: i2c@f8010000 {
                                compatible = "atmel,at91sam9x5-i2c";
                                reg = <0xf8010000 0x100>;
-                               interrupts = <9 4 6>;
-                               dmas = <&dma0 1 7>,
-                                      <&dma0 1 8>;
+                               interrupts = <9 IRQ_TYPE_LEVEL_HIGH 6>;
+                               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>;
                        i2c1: i2c@f8014000 {
                                compatible = "atmel,at91sam9x5-i2c";
                                reg = <0xf8014000 0x100>;
-                               interrupts = <10 4 6>;
-                               dmas = <&dma1 1 5>,
-                                      <&dma1 1 6>;
+                               interrupts = <10 IRQ_TYPE_LEVEL_HIGH 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>;
                        i2c2: i2c@f8018000 {
                                compatible = "atmel,at91sam9x5-i2c";
                                reg = <0xf8018000 0x100>;
-                               interrupts = <11 4 6>;
-                               dmas = <&dma0 1 9>,
-                                      <&dma0 1 10>;
+                               interrupts = <11 IRQ_TYPE_LEVEL_HIGH 6>;
+                               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>;
-                               interrupts = <19 4 0>;
+                               interrupts = <19 IRQ_TYPE_LEVEL_HIGH 0>;
                                atmel,adc-use-external;
                                atmel,adc-channels-used = <0xffff>;
                                atmel,adc-vref = <3300>;
                                #size-cells = <0>;
                                compatible = "atmel,at91rm9200-spi";
                                reg = <0xf0000000 0x100>;
-                               interrupts = <13 4 3>;
+                               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";
                                #size-cells = <0>;
                                compatible = "atmel,at91rm9200-spi";
                                reg = <0xf0004000 0x100>;
-                               interrupts = <14 4 3>;
+                               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 4 7>;
+                               interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
                                status = "disabled";
                        };
                };
                        atmel,nand-cmd-offset = <22>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_nand>;
-                       gpios = <&pioD 5 0
-                                &pioD 4 0
+                       gpios = <&pioD 5 GPIO_ACTIVE_HIGH
+                                &pioD 4 GPIO_ACTIVE_HIGH
                                 0
                                >;
                        status = "disabled";
                usb0: ohci@00600000 {
                        compatible = "atmel,at91rm9200-ohci", "usb-ohci";
                        reg = <0x00600000 0x100000>;
-                       interrupts = <22 4 2>;
+                       interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
                        status = "disabled";
                };
 
                usb1: ehci@00700000 {
                        compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
                        reg = <0x00700000 0x100000>;
-                       interrupts = <22 4 2>;
+                       interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
                        status = "disabled";
                };
        };
 
        i2c@0 {
                compatible = "i2c-gpio";
-               gpios = <&pioA 30 0 /* sda */
-                        &pioA 31 0 /* scl */
+               gpios = <&pioA 30 GPIO_ACTIVE_HIGH /* sda */
+                        &pioA 31 GPIO_ACTIVE_HIGH /* scl */
                        >;
                i2c-gpio,sda-open-drain;
                i2c-gpio,scl-open-drain;
 
        i2c@1 {
                compatible = "i2c-gpio";
-               gpios = <&pioC 0 0 /* sda */
-                        &pioC 1 0 /* scl */
+               gpios = <&pioC 0 GPIO_ACTIVE_HIGH /* sda */
+                        &pioC 1 GPIO_ACTIVE_HIGH /* scl */
                        >;
                i2c-gpio,sda-open-drain;
                i2c-gpio,scl-open-drain;
 
        i2c@2 {
                compatible = "i2c-gpio";
-               gpios = <&pioB 4 0 /* sda */
-                        &pioB 5 0 /* scl */
+               gpios = <&pioB 4 GPIO_ACTIVE_HIGH /* sda */
+                        &pioB 5 GPIO_ACTIVE_HIGH /* scl */
                        >;
                i2c-gpio,sda-open-drain;
                i2c-gpio,scl-open-drain;
index 347a74a857f62ec1d91b696da027adc14d8f614e..4a5ee5cc115a7e416d6b8b64ae3408619222d6ba 100644 (file)
@@ -28,7 +28,7 @@
                        pinctrl@fffff400 {
                                1wire_cm {
                                        pinctrl_1wire_cm: 1wire_cm-0 {
-                                               atmel,pins = <1 18 0x0 0x2>; /* PB18 multidrive, conflicts with led */
+                                               atmel,pins = <AT91_PIOB 18 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>; /* PB18 multidrive, conflicts with led */
                                        };
                                };
                        };
 
                pb18 {
                        label = "pb18";
-                       gpios = <&pioB 18 1>;
+                       gpios = <&pioB 18 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "heartbeat";
                };
 
                pd21 {
                        label = "pd21";
-                       gpios = <&pioD 21 0>;
+                       gpios = <&pioD 21 GPIO_ACTIVE_HIGH>;
                };
        };
 
        1wire_cm {
                compatible = "w1-gpio";
-               gpios = <&pioB 18 0>;
+               gpios = <&pioB 18 GPIO_ACTIVE_HIGH>;
                linux,open-drain;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_1wire_cm>;
index 1fa48d2bfd80f5bb2d88a1a167b06a9a640d81ab..b753855b20584320d00c9b38c0a4c40d972a1b1b 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Licensed under GPLv2 or later.
  */
-/include/ "at91sam9x5cm.dtsi"
+#include "at91sam9x5cm.dtsi"
 
 / {
        model = "Atmel AT91SAM9X5-EK";
@@ -27,7 +27,7 @@
                                slot@0 {
                                        reg = <0>;
                                        bus-width = <4>;
-                                       cd-gpios = <&pioD 15 0>;
+                                       cd-gpios = <&pioD 15 GPIO_ACTIVE_HIGH>;
                                };
                        };
 
@@ -40,7 +40,7 @@
                                slot@0 {
                                        reg = <0>;
                                        bus-width = <4>;
-                                       cd-gpios = <&pioD 14 0>;
+                                       cd-gpios = <&pioD 14 GPIO_ACTIVE_HIGH>;
                                };
                        };
 
                                status = "okay";
                        };
 
+                       usb2: gadget@f803c000 {
+                               atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
+                               status = "okay";
+                       };
+
                        i2c0: i2c@f8010000 {
                                status = "okay";
                        };
                                mmc0 {
                                        pinctrl_board_mmc0: mmc0-board {
                                                atmel,pins =
-                                                       <3 15 0x0 0x5>; /* PD15 gpio CD pin pull up and deglitch */
+                                                       <AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;  /* PD15 gpio CD pin pull up and deglitch */
                                        };
                                };
 
                                mmc1 {
                                        pinctrl_board_mmc1: mmc1-board {
                                                atmel,pins =
-                                                       <3 14 0x0 0x5>; /* PD14 gpio CD pin pull up and deglitch */
+                                                       <AT91_PIOD 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;  /* PD14 gpio CD pin pull up and deglitch */
                                        };
                                };
                        };
                                        reg = <0>;
                                };
                        };
+
+                       watchdog@fffffe40 {
+                               status = "okay";
+                       };
                };
 
                usb0: ohci@00600000 {
                        status = "okay";
                        num-ports = <2>;
-                       atmel,vbus-gpio = <&pioD 19 1
-                                          &pioD 20 1
+                       atmel,vbus-gpio = <&pioD 19 GPIO_ACTIVE_LOW
+                                          &pioD 20 GPIO_ACTIVE_LOW
                                          >;
                };
 
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 1ea9d34460a4701eb7fdb272d036039abae548a1..143b6d25bc80e9229dca3e63d5d419ce32c6c80a 100644 (file)
@@ -6,7 +6,7 @@
  * Licensed under GPLv2.
  */
 /dts-v1/;
-/include/ "at91sam9260.dtsi"
+#include "at91sam9260.dtsi"
 
 / {
        model = "Ethernut 5";
@@ -40,7 +40,7 @@
                        };
 
                        usb1: gadget@fffa4000 {
-                               atmel,vbus-gpio = <&pioC 5 0>;
+                               atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
                                status = "okay";
                        };
                };
@@ -52,7 +52,7 @@
                        status = "okay";
 
                        gpios = <0
-                                &pioC 14 0
+                                &pioC 14 GPIO_ACTIVE_HIGH
                                 0
                                >;
 
index 96e50f569433850ca54a941c4fd3a6fe4a17eafd..4d829685fdfb1d026df02a0a16b308f189b970bb 100644 (file)
@@ -9,7 +9,7 @@
 
 /dts-v1/;
 
-/include/ "ge863-pro3.dtsi"
+#include "ge863-pro3.dtsi"
 
 / {
        model = "Telit EVK-PRO3 for Telit GE863-PRO3";
@@ -31,7 +31,7 @@
                        };
 
                        usb1: gadget@fffa4000 {
-                               atmel,vbus-gpio = <&pioC 5 0>;
+                               atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
                                status = "okay";
                        };
 
@@ -50,4 +50,4 @@
                status = "okay";
        };
 
-};
\ No newline at end of file
+};
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 d1650fb34c0a38e85f90b798d103a94612e7c65d..e9cdee38509293f2668bfc936446282782071b64 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 0673524238a61f706c7c17a096ef3319fb095287..8b1f9b63f9f7f5b701efc358d1c561c8911dd02a 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 d55042beb5c55f29739a5b8082a6bbed53e89d80..3aa65bb280206810cae2a1d661d10d1d0e1b100b 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 f6b1c8973845821913215a7d59cca615ae23f482..9589ed9282f14cd07dff2173d3f79092a3b00645 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";
        };
 };
index 17136fc7a516f94658052b6eea7a432430a21074..230099bb31c8686e3d2cb7037fe5c9850561d969 100644 (file)
@@ -7,7 +7,7 @@
  * Licensed under GPLv2 or later.
  */
 
-/include/ "at91sam9260.dtsi"
+#include "at91sam9260.dtsi"
 
 / {
        clocks {
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 d6c9d65cbaeb5bba44c0f91504bc53c38f82bad8..0ed2f56a91f12e317fbf4ca5998d947f8d80afc6 100644 (file)
                                marvell,function = "sdio";
                        };
                };
+
+               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 23991e45bc55f946609e84cc319c81aeed6d0122..69b760d5b11d0cbfe10e17d006c97c3b6ebd83f7 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 12ccf74ac3c417e6de31fa5c33a2ab731f136220..027501857cb6152e735b09732479036c5f17c9e8 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 37d45c4f88fbf3bd5db139c43b0f7588aeb70d09..4945eba03ae63eb8ca0d65d715ad156204610d58 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 758824118a9a8e22041817183449839f1c9c072e..211916a5a0febbdca7a72bc3728430df598e116e 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 1ca66ab83ad671933da073be7f1f7f58694a9396..b79ea8cebf4c20fd3e89a68ef589713d3600de1d 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 a7412b937a8add0c3f0ccfbc165c0a5c3325f50d..089024a6deab24613912bbf64b82822668df99eb 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 8295c833887ff6851322f52abac570b25ab9aa08..a2a90c40befa9262f81f56d331ad528f6718cf21 100644 (file)
@@ -7,10 +7,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 {
@@ -38,6 +35,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 df3f95dfba3341d07628a3ce212d63cc27f0f3ba..b5be3ea9b34df2e81f805adc27f65382367e1ddc 100644 (file)
@@ -7,10 +7,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 64ea27cb329851eb1fd242a8b016f619bb860ce4..b9325d45be78a732c9f3bef765661b4046c09f9b 100644 (file)
@@ -17,6 +17,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";
                };
                spi@10600 {
                        status = "okay";
+                       pinctrl-0 = <&pmx_spi>;
+                       pinctrl-names = "default";
 
                        m25p128@0 {
                                #address-cells = <1>;
@@ -71,6 +79,8 @@
                        };
                };
                sata@80000 {
+                       pinctrl-0 = <&pmx_sata0 &pmx_sata1>;
+                       pinctrl-names = "default";
                        status = "okay";
                        nr-ports = <2>;
                };
index fada7e6d24d8543fd956ef18d7981aa12b9b9ee6..5d7b759f06a80b8502a2f49829b1537f8d54e8c7 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;
                        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>;
                        clocks = <&gate_clk 17>;
                        status = "okay";
                };
-
-               mvsdio@90000 {
-                       compatible = "marvell,orion-sdio";
-                       reg = <0x90000 0x200>;
-                       interrupts = <28>;
-                       clocks = <&gate_clk 4>;
-                       status = "disabled";
-               };
        };
 };
index b4dc3ed9a3ecc95949d07e79889e53a8600d66ee..02df1914a47c8f971cbe8fb852cea0963833bcff 100644 (file)
@@ -6,7 +6,7 @@
  * Licensed under GPLv2.
  */
 /dts-v1/;
-/include/ "at91sam9g20.dtsi"
+#include "at91sam9g20.dtsi"
 
 / {
 
 
                led1g {
                        label = "led1:green";
-                       gpios = <&pioB 0 1>;
+                       gpios = <&pioB 0 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "none";
                };
 
                led1r {
                        label = "led1:red";
-                       gpios = <&pioB 1 1>;
+                       gpios = <&pioB 1 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "none";
                };
 
                led2g {
                        label = "led2:green";
-                       gpios = <&pioB 2 1>;
+                       gpios = <&pioB 2 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "none";
                        default-state = "on";
                };
 
                led2r {
                        label = "led2:red";
-                       gpios = <&pioB 3 1>;
+                       gpios = <&pioB 3 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "none";
                };
        };
 
                reset {
                        label = "reset";
-                       gpios = <&pioB 30 1>;
+                       gpios = <&pioB 30 GPIO_ACTIVE_LOW>;
                        linux,code = <0x100>;
                        gpio-key,wakeup;
                };
 
                mode {
                        label = "mode";
-                       gpios = <&pioB 31 1>;
+                       gpios = <&pioB 31 GPIO_ACTIVE_LOW>;
                        linux,code = <0x101>;
                        gpio-key,wakeup;
                };
        };
-};
\ No newline at end of file
+};
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 317300875f3478fa30969f276fdccbe054148a2a..ccf9ea242f72977f56f15cc658d555c063b85150 100644 (file)
@@ -6,7 +6,7 @@
  * Licensed under GPLv2 only
  */
 /dts-v1/;
-/include/ "at91rm9200.dtsi"
+#include "at91rm9200.dtsi"
 
 / {
        model = "Phontech MPA 1600";
@@ -62,7 +62,7 @@
 
                monitor_mute {
                        label = "Monitor mute";
-                       gpios = <&pioC 1 1>;
+                       gpios = <&pioC 1 GPIO_ACTIVE_LOW>;
                        linux,code = <113>;
                };
        };
index b3cc896af6ebbdc164298d365a2f8507a4db93d3..a2bfcde858a6ec68f96fd123c515747f3c053004 100644 (file)
        };
 
        cpus {
-               cpu@0 {
+               #address-cells = <0>;
+               #size-cells = <0>;
+
+               cpu {
                        compatible = "arm,arm1136jf-s";
+                       device_type = "cpu";
                };
        };
 
index 8e1a87f8bd9f60aa2f9cf76c32ec9dc852c4c757..7d95cda1fae4f0349bdfb582de99be2baf36dbf6 100644 (file)
        };
 
        cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
                cpu@0 {
                        compatible = "arm,cortex-a8";
+                       device_type = "cpu";
+                       reg = <0x0>;
                };
        };
 
index 463b97de9ec559c29680f27615633016ae8f06ee..22d9f2b593d461eb5bde36a35f24e2eaea40e298 100644 (file)
        };
 
        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>;
                };
        };
 
index 33db6ece9019aefc82bec23d1ca970603fdcd280..e643620417a9edb4bcabe2a447dbcf38b720f746 100644 (file)
        };
 
        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>;
                };
        };
 
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 387fedb58988bf4f54038f6a2466cd9290569e6d..33ffabe9c4c86e293d9d00c63977e411cffb729b 100644 (file)
@@ -6,7 +6,7 @@
  * Licensed under GPLv2.
  */
 /dts-v1/;
-/include/ "at91sam9g45.dtsi"
+#include "at91sam9g45.dtsi"
 
 / {
        model = "Ronetix pm9g45";
                                board {
                                        pinctrl_board_nand: nand0-board {
                                                atmel,pins =
-                                                       <3 3 0x0 0x1    /* PD3 gpio RDY pin pull_up*/
-                                                        2 14 0x0 0x1>; /* PC14 gpio enable pin pull_up */
+                                                       <AT91_PIOD 3 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP      /* PD3 gpio RDY pin pull_up*/
+                                                        AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;   /* PC14 gpio enable pin pull_up */
                                        };
                                };
 
                                mmc {
                                        pinctrl_board_mmc: mmc0-board {
                                                atmel,pins =
-                                                       <3 6 0x0 0x5>;  /* PD6 gpio CD pin pull_up and deglitch */
+                                                       <AT91_PIOD 6 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;   /* PD6 gpio CD pin pull_up and deglitch */
                                        };
                                };
                        };
@@ -64,7 +64,7 @@
                                slot@0 {
                                        reg = <0>;
                                        bus-width = <4>;
-                                       cd-gpios = <&pioD 6 0>;
+                                       cd-gpios = <&pioD 6 GPIO_ACTIVE_HIGH>;
                                };
                        };
 
@@ -81,8 +81,8 @@
                        nand-on-flash-bbt;
                        pinctrl-0 = <&pinctrl_board_nand>;
 
-                       gpios = <&pioD 3 0
-                                &pioC 14 0
+                       gpios = <&pioD 3 GPIO_ACTIVE_HIGH
+                                &pioC 14 GPIO_ACTIVE_HIGH
                                 0
                                >;
 
 
                led0 {
                        label = "led0";
-                       gpios = <&pioD 0 1>;
+                       gpios = <&pioD 0 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "nand-disk";
                };
 
                led1 {
                        label = "led1";
-                       gpios = <&pioD 31 0>;
+                       gpios = <&pioD 31 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                };
        };
 
                right {
                        label = "SW4";
-                       gpios = <&pioE 7 1>;
+                       gpios = <&pioE 7 GPIO_ACTIVE_LOW>;
                        linux,code = <106>;
                };
 
                up {
                        label = "SW3";
-                       gpios = <&pioE 8 1>;
+                       gpios = <&pioE 8 GPIO_ACTIVE_LOW>;
                        linux,code = <103>;
                };
        };
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 5000e0d428496d8105f6157f4ba54b4603796657..bbf88d72295638544a983a5239741b1fa520359b 100644 (file)
@@ -8,7 +8,11 @@
  * Licensed under GPLv2 or later.
  */
 
-/include/ "skeleton.dtsi"
+#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>
 
 / {
        model = "Atmel SAMA5D3 family SoC";
                ssc1 = &ssc1;
        };
        cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
                cpu@0 {
+                       device_type = "cpu";
                        compatible = "arm,cortex-a5";
+                       reg = <0x0>;
                };
        };
 
@@ -59,8 +67,8 @@
                        mmc0: mmc@f0000000 {
                                compatible = "atmel,hsmci";
                                reg = <0xf0000000 0x600>;
-                               interrupts = <21 4 0>;
-                               dmas = <&dma0 2 0>;
+                               interrupts = <21 IRQ_TYPE_LEVEL_HIGH 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>;
@@ -74,7 +82,7 @@
                                #size-cells = <0>;
                                compatible = "atmel,at91sam9x5-spi";
                                reg = <0xf0004000 0x100>;
-                               interrupts = <24 4 3>;
+                               interrupts = <24 IRQ_TYPE_LEVEL_HIGH 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi0>;
                                status = "disabled";
@@ -83,7 +91,7 @@
                        ssc0: ssc@f0008000 {
                                compatible = "atmel,at91sam9g45-ssc";
                                reg = <0xf0008000 0x4000>;
-                               interrupts = <38 4 4>;
+                               interrupts = <38 IRQ_TYPE_LEVEL_HIGH 4>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
                                status = "disabled";
                        can0: can@f000c000 {
                                compatible = "atmel,at91sam9x5-can";
                                reg = <0xf000c000 0x300>;
-                               interrupts = <40 4 3>;
+                               interrupts = <40 IRQ_TYPE_LEVEL_HIGH 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_can0_rx_tx>;
                                status = "disabled";
                        tcb0: timer@f0010000 {
                                compatible = "atmel,at91sam9x5-tcb";
                                reg = <0xf0010000 0x100>;
-                               interrupts = <26 4 0>;
+                               interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0>;
                        };
 
                        i2c0: i2c@f0014000 {
                                compatible = "atmel,at91sam9x5-i2c";
                                reg = <0xf0014000 0x4000>;
-                               interrupts = <18 4 6>;
-                               dmas = <&dma0 2 7>,
-                                      <&dma0 2 8>;
+                               interrupts = <18 IRQ_TYPE_LEVEL_HIGH 6>;
+                               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>;
                        i2c1: i2c@f0018000 {
                                compatible = "atmel,at91sam9x5-i2c";
                                reg = <0xf0018000 0x4000>;
-                               interrupts = <19 4 6>;
-                               dmas = <&dma0 2 9>,
-                                      <&dma0 2 10>;
+                               interrupts = <19 IRQ_TYPE_LEVEL_HIGH 6>;
+                               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>;
                        usart0: serial@f001c000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf001c000 0x100>;
-                               interrupts = <12 4 5>;
+                               interrupts = <12 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart0>;
                                status = "disabled";
                        usart1: serial@f0020000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf0020000 0x100>;
-                               interrupts = <13 4 5>;
+                               interrupts = <13 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart1>;
                                status = "disabled";
                        macb0: ethernet@f0028000 {
                                compatible = "cdns,pc302-gem", "cdns,gem";
                                reg = <0xf0028000 0x100>;
-                               interrupts = <34 4 3>;
+                               interrupts = <34 IRQ_TYPE_LEVEL_HIGH 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_macb0_data_rgmii &pinctrl_macb0_signal_rgmii>;
                                status = "disabled";
                        isi: isi@f0034000 {
                                compatible = "atmel,at91sam9g45-isi";
                                reg = <0xf0034000 0x4000>;
-                               interrupts = <37 4 5>;
+                               interrupts = <37 IRQ_TYPE_LEVEL_HIGH 5>;
                                status = "disabled";
                        };
 
                        mmc1: mmc@f8000000 {
                                compatible = "atmel,hsmci";
                                reg = <0xf8000000 0x600>;
-                               interrupts = <22 4 0>;
-                               dmas = <&dma1 2 0>;
+                               interrupts = <22 IRQ_TYPE_LEVEL_HIGH 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>;
                        mmc2: mmc@f8004000 {
                                compatible = "atmel,hsmci";
                                reg = <0xf8004000 0x600>;
-                               interrupts = <23 4 0>;
-                               dmas = <&dma1 2 1>;
+                               interrupts = <23 IRQ_TYPE_LEVEL_HIGH 0>;
+                               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>;
                                #size-cells = <0>;
                                compatible = "atmel,at91sam9x5-spi";
                                reg = <0xf8008000 0x100>;
-                               interrupts = <25 4 3>;
+                               interrupts = <25 IRQ_TYPE_LEVEL_HIGH 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_spi1>;
                                status = "disabled";
                        ssc1: ssc@f800c000 {
                                compatible = "atmel,at91sam9g45-ssc";
                                reg = <0xf800c000 0x4000>;
-                               interrupts = <39 4 4>;
+                               interrupts = <39 IRQ_TYPE_LEVEL_HIGH 4>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
                                status = "disabled";
                        can1: can@f8010000 {
                                compatible = "atmel,at91sam9x5-can";
                                reg = <0xf8010000 0x300>;
-                               interrupts = <41 4 3>;
+                               interrupts = <41 IRQ_TYPE_LEVEL_HIGH 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_can1_rx_tx>;
                        };
                        tcb1: timer@f8014000 {
                                compatible = "atmel,at91sam9x5-tcb";
                                reg = <0xf8014000 0x100>;
-                               interrupts = <27 4 0>;
+                               interrupts = <27 IRQ_TYPE_LEVEL_HIGH 0>;
                        };
 
                        adc0: adc@f8018000 {
                                compatible = "atmel,at91sam9260-adc";
                                reg = <0xf8018000 0x100>;
-                               interrupts = <29 4 5>;
+                               interrupts = <29 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <
                                        &pinctrl_adc0_adtrg
                        tsadcc: tsadcc@f8018000 {
                                compatible = "atmel,at91sam9x5-tsadcc";
                                reg = <0xf8018000 0x4000>;
-                               interrupts = <29 4 5>;
+                               interrupts = <29 IRQ_TYPE_LEVEL_HIGH 5>;
                                atmel,tsadcc_clock = <300000>;
                                atmel,filtering_average = <0x03>;
                                atmel,pendet_debounce = <0x08>;
                        i2c2: i2c@f801c000 {
                                compatible = "atmel,at91sam9x5-i2c";
                                reg = <0xf801c000 0x4000>;
-                               interrupts = <20 4 6>;
-                               dmas = <&dma1 2 11>,
-                                      <&dma1 2 12>;
+                               interrupts = <20 IRQ_TYPE_LEVEL_HIGH 6>;
+                               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>;
                        usart2: serial@f8020000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf8020000 0x100>;
-                               interrupts = <14 4 5>;
+                               interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart2>;
                                status = "disabled";
                        usart3: serial@f8024000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xf8024000 0x100>;
-                               interrupts = <15 4 5>;
+                               interrupts = <15 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart3>;
                                status = "disabled";
                        macb1: ethernet@f802c000 {
                                compatible = "cdns,at32ap7000-macb", "cdns,macb";
                                reg = <0xf802c000 0x100>;
-                               interrupts = <35 4 3>;
+                               interrupts = <35 IRQ_TYPE_LEVEL_HIGH 3>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_macb1_rmii>;
                                status = "disabled";
                        sha@f8034000 {
                                compatible = "atmel,sam9g46-sha";
                                reg = <0xf8034000 0x100>;
-                               interrupts = <42 4 0>;
+                               interrupts = <42 IRQ_TYPE_LEVEL_HIGH 0>;
                        };
 
                        aes@f8038000 {
                        tdes@f803c000 {
                                compatible = "atmel,sam9g46-tdes";
                                reg = <0xf803c000 0x100>;
-                               interrupts = <44 4 0>;
+                               interrupts = <44 IRQ_TYPE_LEVEL_HIGH 0>;
                        };
 
                        dma0: dma-controller@ffffe600 {
                                compatible = "atmel,at91sam9g45-dma";
                                reg = <0xffffe600 0x200>;
-                               interrupts = <30 4 0>;
+                               interrupts = <30 IRQ_TYPE_LEVEL_HIGH 0>;
                                #dma-cells = <2>;
                        };
 
                        dma1: dma-controller@ffffe800 {
                                compatible = "atmel,at91sam9g45-dma";
                                reg = <0xffffe800 0x200>;
-                               interrupts = <31 4 0>;
+                               interrupts = <31 IRQ_TYPE_LEVEL_HIGH 0>;
                                #dma-cells = <2>;
                        };
 
                        dbgu: serial@ffffee00 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0xffffee00 0x200>;
-                               interrupts = <2 4 7>;
+                               interrupts = <2 IRQ_TYPE_LEVEL_HIGH 7>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_dbgu>;
                                status = "disabled";
                                adc0 {
                                        pinctrl_adc0_adtrg: adc0_adtrg {
                                                atmel,pins =
-                                                       <3 19 0x1 0x0>; /* PD19 periph A ADTRG */
+                                                       <AT91_PIOD 19 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD19 periph A ADTRG */
                                        };
                                        pinctrl_adc0_ad0: adc0_ad0 {
                                                atmel,pins =
-                                                       <3 20 0x1 0x0>; /* PD20 periph A AD0 */
+                                                       <AT91_PIOD 20 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD20 periph A AD0 */
                                        };
                                        pinctrl_adc0_ad1: adc0_ad1 {
                                                atmel,pins =
-                                                       <3 21 0x1 0x0>; /* PD21 periph A AD1 */
+                                                       <AT91_PIOD 21 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD21 periph A AD1 */
                                        };
                                        pinctrl_adc0_ad2: adc0_ad2 {
                                                atmel,pins =
-                                                       <3 22 0x1 0x0>; /* PD22 periph A AD2 */
+                                                       <AT91_PIOD 22 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD22 periph A AD2 */
                                        };
                                        pinctrl_adc0_ad3: adc0_ad3 {
                                                atmel,pins =
-                                                       <3 23 0x1 0x0>; /* PD23 periph A AD3 */
+                                                       <AT91_PIOD 23 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD23 periph A AD3 */
                                        };
                                        pinctrl_adc0_ad4: adc0_ad4 {
                                                atmel,pins =
-                                                       <3 24 0x1 0x0>; /* PD24 periph A AD4 */
+                                                       <AT91_PIOD 24 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD24 periph A AD4 */
                                        };
                                        pinctrl_adc0_ad5: adc0_ad5 {
                                                atmel,pins =
-                                                       <3 25 0x1 0x0>; /* PD25 periph A AD5 */
+                                                       <AT91_PIOD 25 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD25 periph A AD5 */
                                        };
                                        pinctrl_adc0_ad6: adc0_ad6 {
                                                atmel,pins =
-                                                       <3 26 0x1 0x0>; /* PD26 periph A AD6 */
+                                                       <AT91_PIOD 26 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD26 periph A AD6 */
                                        };
                                        pinctrl_adc0_ad7: adc0_ad7 {
                                                atmel,pins =
-                                                       <3 27 0x1 0x0>; /* PD27 periph A AD7 */
+                                                       <AT91_PIOD 27 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD27 periph A AD7 */
                                        };
                                        pinctrl_adc0_ad8: adc0_ad8 {
                                                atmel,pins =
-                                                       <3 28 0x1 0x0>; /* PD28 periph A AD8 */
+                                                       <AT91_PIOD 28 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD28 periph A AD8 */
                                        };
                                        pinctrl_adc0_ad9: adc0_ad9 {
                                                atmel,pins =
-                                                       <3 29 0x1 0x0>; /* PD29 periph A AD9 */
+                                                       <AT91_PIOD 29 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD29 periph A AD9 */
                                        };
                                        pinctrl_adc0_ad10: adc0_ad10 {
                                                atmel,pins =
-                                                       <3 30 0x1 0x0>; /* PD30 periph A AD10, conflicts with PCK0 */
+                                                       <AT91_PIOD 30 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD30 periph A AD10, conflicts with PCK0 */
                                        };
                                        pinctrl_adc0_ad11: adc0_ad11 {
                                                atmel,pins =
-                                                       <3 31 0x1 0x0>; /* PD31 periph A AD11, conflicts with PCK1 */
+                                                       <AT91_PIOD 31 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD31 periph A AD11, conflicts with PCK1 */
                                        };
                                };
 
                                can0 {
                                        pinctrl_can0_rx_tx: can0_rx_tx {
                                                atmel,pins =
-                                                       <3 14 0x3 0x0   /* PD14 periph C RX, conflicts with SCK0, SPI0_NPCS1 */
-                                                        3 15 0x3 0x0>; /* PD15 periph C TX, conflicts with CTS0, SPI0_NPCS2 */
+                                                       <AT91_PIOD 14 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PD14 periph C RX, conflicts with SCK0, SPI0_NPCS1 */
+                                                        AT91_PIOD 15 AT91_PERIPH_C AT91_PINCTRL_NONE>; /* PD15 periph C TX, conflicts with CTS0, SPI0_NPCS2 */
                                        };
                                };
 
                                can1 {
                                        pinctrl_can1_rx_tx: can1_rx_tx {
                                                atmel,pins =
-                                                       <1 14 0x2 0x0   /* PB14 periph B RX, conflicts with GCRS */
-                                                        1 15 0x2 0x0>; /* PB15 periph B TX, conflicts with GCOL */
+                                                       <AT91_PIOB 14 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PB14 periph B RX, conflicts with GCRS */
+                                                        AT91_PIOB 15 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB15 periph B TX, conflicts with GCOL */
                                        };
                                };
 
                                dbgu {
                                        pinctrl_dbgu: dbgu-0 {
                                                atmel,pins =
-                                                       <1 30 0x1 0x0   /* PB30 periph A */
-                                                        1 31 0x1 0x1>; /* PB31 periph A with pullup */
+                                                       <AT91_PIOB 30 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB30 periph A */
+                                                        AT91_PIOB 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PB31 periph A with pullup */
                                        };
                                };
 
                                i2c0 {
                                        pinctrl_i2c0: i2c0-0 {
                                                atmel,pins =
-                                                       <0 30 0x1 0x0   /* PA30 periph A TWD0 pin, conflicts with URXD1, ISI_VSYNC */
-                                                        0 31 0x1 0x0>; /* PA31 periph A TWCK0 pin, conflicts with UTXD1, ISI_HSYNC */
+                                                       <AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA30 periph A TWD0 pin, conflicts with URXD1, ISI_VSYNC */
+                                                        AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA31 periph A TWCK0 pin, conflicts with UTXD1, ISI_HSYNC */
                                        };
                                };
 
                                i2c1 {
                                        pinctrl_i2c1: i2c1-0 {
                                                atmel,pins =
-                                                       <2 26 0x2 0x0   /* PC26 periph B TWD1 pin, conflicts with SPI1_NPCS1, ISI_D11 */
-                                                        2 27 0x2 0x0>; /* PC27 periph B TWCK1 pin, conflicts with SPI1_NPCS2, ISI_D10 */
+                                                       <AT91_PIOC 26 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PC26 periph B TWD1 pin, conflicts with SPI1_NPCS1, ISI_D11 */
+                                                        AT91_PIOC 27 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PC27 periph B TWCK1 pin, conflicts with SPI1_NPCS2, ISI_D10 */
                                        };
                                };
 
                                isi {
                                        pinctrl_isi: isi-0 {
                                                atmel,pins =
-                                                       <0 16 0x3 0x0   /* PA16 periph C ISI_D0, conflicts with LCDDAT16 */
-                                                        0 17 0x3 0x0   /* PA17 periph C ISI_D1, conflicts with LCDDAT17 */
-                                                        0 18 0x3 0x0   /* PA18 periph C ISI_D2, conflicts with LCDDAT18, TWD2 */
-                                                        0 19 0x3 0x0   /* PA19 periph C ISI_D3, conflicts with LCDDAT19, TWCK2 */
-                                                        0 20 0x3 0x0   /* PA20 periph C ISI_D4, conflicts with LCDDAT20, PWMH0 */
-                                                        0 21 0x3 0x0   /* PA21 periph C ISI_D5, conflicts with LCDDAT21, PWML0 */
-                                                        0 22 0x3 0x0   /* PA22 periph C ISI_D6, conflicts with LCDDAT22, PWMH1 */
-                                                        0 23 0x3 0x0   /* PA23 periph C ISI_D7, conflicts with LCDDAT23, PWML1 */
-                                                        2 30 0x3 0x0   /* PC30 periph C ISI_PCK, conflicts with UTXD0 */
-                                                        0 31 0x3 0x0   /* PA31 periph C ISI_HSYNC, conflicts with TWCK0, UTXD1 */
-                                                        0 30 0x3 0x0   /* PA30 periph C ISI_VSYNC, conflicts with TWD0, URXD1 */
-                                                        2 29 0x3 0x0   /* PC29 periph C ISI_PD8, conflicts with URXD0, PWMFI2 */
-                                                        2 28 0x3 0x0>; /* PC28 periph C ISI_PD9, conflicts with SPI1_NPCS3, PWMFI0 */
+                                                       <AT91_PIOA 16 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PA16 periph C ISI_D0, conflicts with LCDDAT16 */
+                                                        AT91_PIOA 17 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PA17 periph C ISI_D1, conflicts with LCDDAT17 */
+                                                        AT91_PIOA 18 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PA18 periph C ISI_D2, conflicts with LCDDAT18, TWD2 */
+                                                        AT91_PIOA 19 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PA19 periph C ISI_D3, conflicts with LCDDAT19, TWCK2 */
+                                                        AT91_PIOA 20 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PA20 periph C ISI_D4, conflicts with LCDDAT20, PWMH0 */
+                                                        AT91_PIOA 21 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PA21 periph C ISI_D5, conflicts with LCDDAT21, PWML0 */
+                                                        AT91_PIOA 22 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PA22 periph C ISI_D6, conflicts with LCDDAT22, PWMH1 */
+                                                        AT91_PIOA 23 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PA23 periph C ISI_D7, conflicts with LCDDAT23, PWML1 */
+                                                        AT91_PIOC 30 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PC30 periph C ISI_PCK, conflicts with UTXD0 */
+                                                        AT91_PIOA 31 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PA31 periph C ISI_HSYNC, conflicts with TWCK0, UTXD1 */
+                                                        AT91_PIOA 30 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PA30 periph C ISI_VSYNC, conflicts with TWD0, URXD1 */
+                                                        AT91_PIOC 29 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PC29 periph C ISI_PD8, conflicts with URXD0, PWMFI2 */
+                                                        AT91_PIOC 28 AT91_PERIPH_C AT91_PINCTRL_NONE>; /* PC28 periph C ISI_PD9, conflicts with SPI1_NPCS3, PWMFI0 */
                                        };
                                        pinctrl_isi_pck_as_mck: isi_pck_as_mck-0 {
                                                atmel,pins =
-                                                       <3 31 0x2 0x0>; /* PD31 periph B ISI_MCK */
+                                                       <AT91_PIOD 31 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PD31 periph B ISI_MCK */
                                        };
                                };
 
                                lcd {
                                        pinctrl_lcd: lcd-0 {
                                                atmel,pins =
-                                                       <0 24 0x1 0x0   /* PA24 periph A LCDPWM */
-                                                        0 26 0x1 0x0   /* PA26 periph A LCDVSYNC */
-                                                        0 27 0x1 0x0   /* PA27 periph A LCDHSYNC */
-                                                        0 25 0x1 0x0   /* PA25 periph A LCDDISP */
-                                                        0 29 0x1 0x0   /* PA29 periph A LCDDEN */
-                                                        0 28 0x1 0x0   /* PA28 periph A LCDPCK */
-                                                        0 0 0x1 0x0    /* PA0 periph A LCDD0 pin */
-                                                        0 1 0x1 0x0    /* PA1 periph A LCDD1 pin */
-                                                        0 2 0x1 0x0    /* PA2 periph A LCDD2 pin */
-                                                        0 3 0x1 0x0    /* PA3 periph A LCDD3 pin */
-                                                        0 4 0x1 0x0    /* PA4 periph A LCDD4 pin */
-                                                        0 5 0x1 0x0    /* PA5 periph A LCDD5 pin */
-                                                        0 6 0x1 0x0    /* PA6 periph A LCDD6 pin */
-                                                        0 7 0x1 0x0    /* PA7 periph A LCDD7 pin */
-                                                        0 8 0x1 0x0    /* PA8 periph A LCDD8 pin */
-                                                        0 9 0x1 0x0    /* PA9 periph A LCDD9 pin */
-                                                        0 10 0x1 0x0   /* PA10 periph A LCDD10 pin */
-                                                        0 11 0x1 0x0   /* PA11 periph A LCDD11 pin */
-                                                        0 12 0x1 0x0   /* PA12 periph A LCDD12 pin */
-                                                        0 13 0x1 0x0   /* PA13 periph A LCDD13 pin */
-                                                        0 14 0x1 0x0   /* PA14 periph A LCDD14 pin */
-                                                        0 15 0x1 0x0   /* PA15 periph A LCDD15 pin */
-                                                        2 14 0x3 0x0   /* PC14 periph C LCDD16 pin */
-                                                        2 13 0x3 0x0   /* PC13 periph C LCDD17 pin */
-                                                        2 12 0x3 0x0   /* PC12 periph C LCDD18 pin */
-                                                        2 11 0x3 0x0   /* PC11 periph C LCDD19 pin */
-                                                        2 10 0x3 0x0   /* PC10 periph C LCDD20 pin */
-                                                        2 15 0x3 0x0   /* PC15 periph C LCDD21 pin */
-                                                        4 27 0x3 0x0   /* PE27 periph C LCDD22 pin */
-                                                        4 28 0x3 0x0>; /* PE28 periph C LCDD23 pin */
+                                                       <AT91_PIOA 24 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA24 periph A LCDPWM */
+                                                        AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA26 periph A LCDVSYNC */
+                                                        AT91_PIOA 27 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA27 periph A LCDHSYNC */
+                                                        AT91_PIOA 25 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA25 periph A LCDDISP */
+                                                        AT91_PIOA 29 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA29 periph A LCDDEN */
+                                                        AT91_PIOA 28 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA28 periph A LCDPCK */
+                                                        AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA0 periph A LCDD0 pin */
+                                                        AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA1 periph A LCDD1 pin */
+                                                        AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA2 periph A LCDD2 pin */
+                                                        AT91_PIOA 3 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA3 periph A LCDD3 pin */
+                                                        AT91_PIOA 4 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA4 periph A LCDD4 pin */
+                                                        AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA5 periph A LCDD5 pin */
+                                                        AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA6 periph A LCDD6 pin */
+                                                        AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA7 periph A LCDD7 pin */
+                                                        AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA8 periph A LCDD8 pin */
+                                                        AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PA9 periph A LCDD9 pin */
+                                                        AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA10 periph A LCDD10 pin */
+                                                        AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA11 periph A LCDD11 pin */
+                                                        AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA12 periph A LCDD12 pin */
+                                                        AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA13 periph A LCDD13 pin */
+                                                        AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA14 periph A LCDD14 pin */
+                                                        AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PA15 periph A LCDD15 pin */
+                                                        AT91_PIOC 14 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PC14 periph C LCDD16 pin */
+                                                        AT91_PIOC 13 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PC13 periph C LCDD17 pin */
+                                                        AT91_PIOC 12 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PC12 periph C LCDD18 pin */
+                                                        AT91_PIOC 11 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PC11 periph C LCDD19 pin */
+                                                        AT91_PIOC 10 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PC10 periph C LCDD20 pin */
+                                                        AT91_PIOC 15 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PC15 periph C LCDD21 pin */
+                                                        AT91_PIOE 27 AT91_PERIPH_C AT91_PINCTRL_NONE   /* PE27 periph C LCDD22 pin */
+                                                        AT91_PIOE 28 AT91_PERIPH_C AT91_PINCTRL_NONE>; /* PE28 periph C LCDD23 pin */
                                        };
                                };
 
                                macb0 {
                                        pinctrl_macb0_data_rgmii: macb0_data_rgmii {
                                                atmel,pins =
-                                                       <1 0 0x1 0x0    /* PB0 periph A GTX0, conflicts with PWMH0 */
-                                                        1 1 0x1 0x0    /* PB1 periph A GTX1, conflicts with PWML0 */
-                                                        1 2 0x1 0x0    /* PB2 periph A GTX2, conflicts with TK1 */
-                                                        1 3 0x1 0x0    /* PB3 periph A GTX3, conflicts with TF1 */
-                                                        1 4 0x1 0x0    /* PB4 periph A GRX0, conflicts with PWMH1 */
-                                                        1 5 0x1 0x0    /* PB5 periph A GRX1, conflicts with PWML1 */
-                                                        1 6 0x1 0x0    /* PB6 periph A GRX2, conflicts with TD1 */
-                                                        1 7 0x1 0x0>;  /* PB7 periph A GRX3, conflicts with RK1 */
+                                                       <AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB0 periph A GTX0, conflicts with PWMH0 */
+                                                        AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB1 periph A GTX1, conflicts with PWML0 */
+                                                        AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB2 periph A GTX2, conflicts with TK1 */
+                                                        AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB3 periph A GTX3, conflicts with TF1 */
+                                                        AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB4 periph A GRX0, conflicts with PWMH1 */
+                                                        AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB5 periph A GRX1, conflicts with PWML1 */
+                                                        AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB6 periph A GRX2, conflicts with TD1 */
+                                                        AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PB7 periph A GRX3, conflicts with RK1 */
                                        };
                                        pinctrl_macb0_data_gmii: macb0_data_gmii {
                                                atmel,pins =
-                                                       <1 19 0x2 0x0   /* PB19 periph B GTX4, conflicts with MCI1_CDA */
-                                                        1 20 0x2 0x0   /* PB20 periph B GTX5, conflicts with MCI1_DA0 */
-                                                        1 21 0x2 0x0   /* PB21 periph B GTX6, conflicts with MCI1_DA1 */
-                                                        1 22 0x2 0x0   /* PB22 periph B GTX7, conflicts with MCI1_DA2 */
-                                                        1 23 0x2 0x0   /* PB23 periph B GRX4, conflicts with MCI1_DA3 */
-                                                        1 24 0x2 0x0   /* PB24 periph B GRX5, conflicts with MCI1_CK */
-                                                        1 25 0x2 0x0   /* PB25 periph B GRX6, conflicts with SCK1 */
-                                                        1 26 0x2 0x0>; /* PB26 periph B GRX7, conflicts with CTS1 */
+                                                       <AT91_PIOB 19 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PB19 periph B GTX4, conflicts with MCI1_CDA */
+                                                        AT91_PIOB 20 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PB20 periph B GTX5, conflicts with MCI1_DA0 */
+                                                        AT91_PIOB 21 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PB21 periph B GTX6, conflicts with MCI1_DA1 */
+                                                        AT91_PIOB 22 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PB22 periph B GTX7, conflicts with MCI1_DA2 */
+                                                        AT91_PIOB 23 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PB23 periph B GRX4, conflicts with MCI1_DA3 */
+                                                        AT91_PIOB 24 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PB24 periph B GRX5, conflicts with MCI1_CK */
+                                                        AT91_PIOB 25 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PB25 periph B GRX6, conflicts with SCK1 */
+                                                        AT91_PIOB 26 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB26 periph B GRX7, conflicts with CTS1 */
                                        };
                                        pinctrl_macb0_signal_rgmii: macb0_signal_rgmii {
                                                atmel,pins =
-                                                       <1 8 0x1 0x0    /* PB8 periph A GTXCK, conflicts with PWMH2 */
-                                                        1 9 0x1 0x0    /* PB9 periph A GTXEN, conflicts with PWML2 */
-                                                        1 11 0x1 0x0   /* PB11 periph A GRXCK, conflicts with RD1 */
-                                                        1 13 0x1 0x0   /* PB13 periph A GRXER, conflicts with PWML3 */
-                                                        1 16 0x1 0x0   /* PB16 periph A GMDC */
-                                                        1 17 0x1 0x0   /* PB17 periph A GMDIO */
-                                                        1 18 0x1 0x0>; /* PB18 periph A G125CK */
+                                                       <AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB8 periph A GTXCK, conflicts with PWMH2 */
+                                                        AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB9 periph A GTXEN, conflicts with PWML2 */
+                                                        AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB11 periph A GRXCK, conflicts with RD1 */
+                                                        AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB13 periph A GRXER, conflicts with PWML3 */
+                                                        AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB16 periph A GMDC */
+                                                        AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB17 periph A GMDIO */
+                                                        AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB18 periph A G125CK */
                                        };
                                        pinctrl_macb0_signal_gmii: macb0_signal_gmii {
                                                atmel,pins =
-                                                       <1 9 0x1 0x0    /* PB9 periph A GTXEN, conflicts with PWML2 */
-                                                        1 10 0x1 0x0   /* PB10 periph A GTXER, conflicts with RF1 */
-                                                        1 11 0x1 0x0   /* PB11 periph A GRXCK, conflicts with RD1 */
-                                                        1 12 0x1 0x0   /* PB12 periph A GRXDV, conflicts with PWMH3 */
-                                                        1 13 0x1 0x0   /* PB13 periph A GRXER, conflicts with PWML3 */
-                                                        1 14 0x1 0x0   /* PB14 periph A GCRS, conflicts with CANRX1 */
-                                                        1 15 0x1 0x0   /* PB15 periph A GCOL, conflicts with CANTX1 */
-                                                        1 16 0x1 0x0   /* PB16 periph A GMDC */
-                                                        1 17 0x1 0x0   /* PB17 periph A GMDIO */
-                                                        1 27 0x2 0x0>; /* PB27 periph B G125CKO */
+                                                       <AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PB9 periph A GTXEN, conflicts with PWML2 */
+                                                        AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB10 periph A GTXER, conflicts with RF1 */
+                                                        AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB11 periph A GRXCK, conflicts with RD1 */
+                                                        AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB12 periph A GRXDV, conflicts with PWMH3 */
+                                                        AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB13 periph A GRXER, conflicts with PWML3 */
+                                                        AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB14 periph A GCRS, conflicts with CANRX1 */
+                                                        AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB15 periph A GCOL, conflicts with CANTX1 */
+                                                        AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB16 periph A GMDC */
+                                                        AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB17 periph A GMDIO */
+                                                        AT91_PIOB 27 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB27 periph B G125CKO */
                                        };
 
                                };
                                macb1 {
                                        pinctrl_macb1_rmii: macb1_rmii-0 {
                                                atmel,pins =
-                                                       <2 0 0x1 0x0    /* PC0 periph A ETX0, conflicts with TIOA3 */
-                                                        2 1 0x1 0x0    /* PC1 periph A ETX1, conflicts with TIOB3 */
-                                                        2 2 0x1 0x0    /* PC2 periph A ERX0, conflicts with TCLK3 */
-                                                        2 3 0x1 0x0    /* PC3 periph A ERX1, conflicts with TIOA4 */
-                                                        2 4 0x1 0x0    /* PC4 periph A ETXEN, conflicts with TIOB4 */
-                                                        2 5 0x1 0x0    /* PC5 periph A ECRSDV,conflicts with TCLK4 */
-                                                        2 6 0x1 0x0    /* PC6 periph A ERXER, conflicts with TIOA5 */
-                                                        2 7 0x1 0x0    /* PC7 periph A EREFCK, conflicts with TIOB5 */
-                                                        2 8 0x1 0x0    /* PC8 periph A EMDC, conflicts with TCLK5 */
-                                                        2 9 0x1 0x0>;  /* PC9 periph A EMDIO  */
+                                                       <AT91_PIOC 0 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PC0 periph A ETX0, conflicts with TIOA3 */
+                                                        AT91_PIOC 1 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PC1 periph A ETX1, conflicts with TIOB3 */
+                                                        AT91_PIOC 2 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PC2 periph A ERX0, conflicts with TCLK3 */
+                                                        AT91_PIOC 3 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PC3 periph A ERX1, conflicts with TIOA4 */
+                                                        AT91_PIOC 4 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PC4 periph A ETXEN, conflicts with TIOB4 */
+                                                        AT91_PIOC 5 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PC5 periph A ECRSDV,conflicts with TCLK4 */
+                                                        AT91_PIOC 6 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PC6 periph A ERXER, conflicts with TIOA5 */
+                                                        AT91_PIOC 7 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PC7 periph A EREFCK, conflicts with TIOB5 */
+                                                        AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PC8 periph A EMDC, conflicts with TCLK5 */
+                                                        AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* PC9 periph A EMDIO  */
                                        };
                                };
 
                                mmc0 {
                                        pinctrl_mmc0_clk_cmd_dat0: mmc0_clk_cmd_dat0 {
                                                atmel,pins =
-                                                       <3 9 0x1 0x0    /* PD9 periph A MCI0_CK */
-                                                        3 0 0x1 0x1    /* PD0 periph A MCI0_CDA with pullup */
-                                                        3 1 0x1 0x1>;  /* PD1 periph A MCI0_DA0 with pullup */
+                                                       <AT91_PIOD 9 AT91_PERIPH_A AT91_PINCTRL_NONE    /* PD9 periph A MCI0_CK */
+                                                        AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD0 periph A MCI0_CDA with pullup */
+                                                        AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;       /* PD1 periph A MCI0_DA0 with pullup */
                                        };
                                        pinctrl_mmc0_dat1_3: mmc0_dat1_3 {
                                                atmel,pins =
-                                                       <3 2 0x1 0x1    /* PD2 periph A MCI0_DA1 with pullup */
-                                                        3 3 0x1 0x1    /* PD3 periph A MCI0_DA2 with pullup */
-                                                        3 4 0x1 0x1>;  /* PD4 periph A MCI0_DA3 with pullup */
+                                                       <AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD2 periph A MCI0_DA1 with pullup */
+                                                        AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD3 periph A MCI0_DA2 with pullup */
+                                                        AT91_PIOD 4 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;       /* PD4 periph A MCI0_DA3 with pullup */
                                        };
                                        pinctrl_mmc0_dat4_7: mmc0_dat4_7 {
                                                atmel,pins =
-                                                       <3 5 0x1 0x1    /* PD5 periph A MCI0_DA4 with pullup, conflicts with TIOA0, PWMH2 */
-                                                        3 6 0x1 0x1    /* PD6 periph A MCI0_DA5 with pullup, conflicts with TIOB0, PWML2 */
-                                                        3 7 0x1 0x1    /* PD7 periph A MCI0_DA6 with pullup, conlicts with TCLK0, PWMH3 */
-                                                        3 8 0x1 0x1>;  /* PD8 periph A MCI0_DA7 with pullup, conflicts with PWML3 */
+                                                       <AT91_PIOD 5 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD5 periph A MCI0_DA4 with pullup, conflicts with TIOA0, PWMH2 */
+                                                        AT91_PIOD 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD6 periph A MCI0_DA5 with pullup, conflicts with TIOB0, PWML2 */
+                                                        AT91_PIOD 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD7 periph A MCI0_DA6 with pullup, conlicts with TCLK0, PWMH3 */
+                                                        AT91_PIOD 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;       /* PD8 periph A MCI0_DA7 with pullup, conflicts with PWML3 */
                                        };
                                };
 
                                mmc1 {
                                        pinctrl_mmc1_clk_cmd_dat0: mmc1_clk_cmd_dat0 {
                                                atmel,pins =
-                                                       <1 24 0x1 0x0   /* PB24 periph A MCI1_CK, conflicts with GRX5 */
-                                                        1 19 0x1 0x1   /* PB19 periph A MCI1_CDA with pullup, conflicts with GTX4 */
-                                                        1 20 0x1 0x1>; /* PB20 periph A MCI1_DA0 with pullup, conflicts with GTX5 */
+                                                       <AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB24 periph A MCI1_CK, conflicts with GRX5 */
+                                                        AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PB19 periph A MCI1_CDA with pullup, conflicts with GTX4 */
+                                                        AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PB20 periph A MCI1_DA0 with pullup, conflicts with GTX5 */
                                        };
                                        pinctrl_mmc1_dat1_3: mmc1_dat1_3 {
                                                atmel,pins =
-                                                       <1 21 0x1 0x1   /* PB21 periph A MCI1_DA1 with pullup, conflicts with GTX6 */
-                                                        1 22 0x1 0x1   /* PB22 periph A MCI1_DA2 with pullup, conflicts with GTX7 */
-                                                        1 23 0x1 0x1>; /* PB23 periph A MCI1_DA3 with pullup, conflicts with GRX4 */
+                                                       <AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PB21 periph A MCI1_DA1 with pullup, conflicts with GTX6 */
+                                                        AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PB22 periph A MCI1_DA2 with pullup, conflicts with GTX7 */
+                                                        AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PB23 periph A MCI1_DA3 with pullup, conflicts with GRX4 */
                                        };
                                };
 
                                mmc2 {
                                        pinctrl_mmc2_clk_cmd_dat0: mmc2_clk_cmd_dat0 {
                                                atmel,pins =
-                                                       <2 15 0x1 0x0   /* PC15 periph A MCI2_CK, conflicts with PCK2 */
-                                                        2 10 0x1 0x1   /* PC10 periph A MCI2_CDA with pullup */
-                                                        2 11 0x1 0x1>; /* PC11 periph A MCI2_DA0 with pullup */
+                                                       <AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PC15 periph A MCI2_CK, conflicts with PCK2 */
+                                                        AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PC10 periph A MCI2_CDA with pullup */
+                                                        AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PC11 periph A MCI2_DA0 with pullup */
                                        };
                                        pinctrl_mmc2_dat1_3: mmc2_dat1_3 {
                                                atmel,pins =
-                                                       <2 12 0x1 0x0   /* PC12 periph A MCI2_DA1 with pullup, conflicts with TIOA1 */
-                                                        2 13 0x1 0x0   /* PC13 periph A MCI2_DA2 with pullup, conflicts with TIOB1 */
-                                                        2 14 0x1 0x0>; /* PC14 periph A MCI2_DA3 with pullup, conflicts with TCLK1 */
+                                                       <AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PC12 periph A MCI2_DA1 with pullup, conflicts with TIOA1 */
+                                                        AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PC13 periph A MCI2_DA2 with pullup, conflicts with TIOB1 */
+                                                        AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PC14 periph A MCI2_DA3 with pullup, conflicts with TCLK1 */
                                        };
                                };
 
                                nand0 {
                                        pinctrl_nand0_ale_cle: nand0_ale_cle-0 {
                                                atmel,pins =
-                                                       <4 21 0x1 0x1   /* PE21 periph A with pullup */
-                                                        4 22 0x1 0x1>; /* PE22 periph A with pullup */
+                                                       <AT91_PIOE 21 AT91_PERIPH_A AT91_PINCTRL_PULL_UP        /* PE21 periph A with pullup */
+                                                        AT91_PIOE 22 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PE22 periph A with pullup */
                                        };
                                };
 
-                               pioA: gpio@fffff200 {
-                                       compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
-                                       reg = <0xfffff200 0x100>;
-                                       interrupts = <6 4 1>;
-                                       #gpio-cells = <2>;
-                                       gpio-controller;
-                                       interrupt-controller;
-                                       #interrupt-cells = <2>;
-                               };
-
-                               pioB: gpio@fffff400 {
-                                       compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
-                                       reg = <0xfffff400 0x100>;
-                                       interrupts = <7 4 1>;
-                                       #gpio-cells = <2>;
-                                       gpio-controller;
-                                       interrupt-controller;
-                                       #interrupt-cells = <2>;
-                               };
-
-                               pioC: gpio@fffff600 {
-                                       compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
-                                       reg = <0xfffff600 0x100>;
-                                       interrupts = <8 4 1>;
-                                       #gpio-cells = <2>;
-                                       gpio-controller;
-                                       interrupt-controller;
-                                       #interrupt-cells = <2>;
-                               };
-
-                               pioD: gpio@fffff800 {
-                                       compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
-                                       reg = <0xfffff800 0x100>;
-                                       interrupts = <9 4 1>;
-                                       #gpio-cells = <2>;
-                                       gpio-controller;
-                                       interrupt-controller;
-                                       #interrupt-cells = <2>;
-                               };
-
-                               pioE: gpio@fffffa00 {
-                                       compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
-                                       reg = <0xfffffa00 0x100>;
-                                       interrupts = <10 4 1>;
-                                       #gpio-cells = <2>;
-                                       gpio-controller;
-                                       interrupt-controller;
-                                       #interrupt-cells = <2>;
-                               };
-
                                spi0 {
                                        pinctrl_spi0: spi0-0 {
                                                atmel,pins =
-                                                       <3 10 0x1 0x0   /* PD10 periph A SPI0_MISO pin */
-                                                        3 11 0x1 0x0   /* PD11 periph A SPI0_MOSI pin */
-                                                        3 12 0x1 0x0   /* PD12 periph A SPI0_SPCK pin */
-                                                        3 13 0x0 0x0>; /* PD13 GPIO SPI0_NPCS0 pin */
+                                                       <AT91_PIOD 10 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD10 periph A SPI0_MISO pin */
+                                                        AT91_PIOD 11 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD11 periph A SPI0_MOSI pin */
+                                                        AT91_PIOD 12 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD12 periph A SPI0_SPCK pin */
                                        };
                                };
 
                                spi1 {
                                        pinctrl_spi1: spi1-0 {
                                                atmel,pins =
-                                                       <2 22 0x1 0x0   /* PC22 periph A SPI1_MISO pin */
-                                                        2 23 0x1 0x0   /* PC23 periph A SPI1_MOSI pin */
-                                                        2 24 0x1 0x0   /* PC24 periph A SPI1_SPCK pin */
-                                                        2 25 0x0 0x0>; /* PC25 GPIO SPI1_NPCS0 pin */
+                                                       <AT91_PIOC 22 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PC22 periph A SPI1_MISO pin */
+                                                        AT91_PIOC 23 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PC23 periph A SPI1_MOSI pin */
+                                                        AT91_PIOC 24 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PC24 periph A SPI1_SPCK pin */
                                        };
                                };
 
                                ssc0 {
                                        pinctrl_ssc0_tx: ssc0_tx {
                                                atmel,pins =
-                                                       <2 16 0x1 0x0   /* PC16 periph A TK0 */
-                                                        2 17 0x1 0x0   /* PC17 periph A TF0 */
-                                                        2 18 0x1 0x0>; /* PC18 periph A TD0 */
+                                                       <AT91_PIOC 16 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PC16 periph A TK0 */
+                                                        AT91_PIOC 17 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PC17 periph A TF0 */
+                                                        AT91_PIOC 18 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PC18 periph A TD0 */
                                        };
 
                                        pinctrl_ssc0_rx: ssc0_rx {
                                                atmel,pins =
-                                                       <2 19 0x1 0x0   /* PC19 periph A RK0 */
-                                                        2 20 0x1 0x0   /* PC20 periph A RF0 */
-                                                        2 21 0x1 0x0>; /* PC21 periph A RD0 */
+                                                       <AT91_PIOC 19 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PC19 periph A RK0 */
+                                                        AT91_PIOC 20 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PC20 periph A RF0 */
+                                                        AT91_PIOC 21 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PC21 periph A RD0 */
                                        };
                                };
 
                                ssc1 {
                                        pinctrl_ssc1_tx: ssc1_tx {
                                                atmel,pins =
-                                                       <1 2 0x2 0x0    /* PB2 periph B TK1, conflicts with GTX2 */
-                                                        1 3 0x2 0x0    /* PB3 periph B TF1, conflicts with GTX3 */
-                                                        1 6 0x2 0x0>;  /* PB6 periph B TD1, conflicts with TD1 */
+                                                       <AT91_PIOB 2 AT91_PERIPH_B AT91_PINCTRL_NONE    /* PB2 periph B TK1, conflicts with GTX2 */
+                                                        AT91_PIOB 3 AT91_PERIPH_B AT91_PINCTRL_NONE    /* PB3 periph B TF1, conflicts with GTX3 */
+                                                        AT91_PIOB 6 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* PB6 periph B TD1, conflicts with TD1 */
                                        };
 
                                        pinctrl_ssc1_rx: ssc1_rx {
                                                atmel,pins =
-                                                       <1 7 0x2 0x0    /* PB7 periph B RK1, conflicts with EREFCK */
-                                                        1 10 0x2 0x0   /* PB10 periph B RF1, conflicts with GTXER */
-                                                        1 11 0x2 0x0>; /* PB11 periph B RD1, conflicts with GRXCK */
+                                                       <AT91_PIOB 7 AT91_PERIPH_B AT91_PINCTRL_NONE    /* PB7 periph B RK1, conflicts with EREFCK */
+                                                        AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PB10 periph B RF1, conflicts with GTXER */
+                                                        AT91_PIOB 11 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB11 periph B RD1, conflicts with GRXCK */
                                        };
                                };
 
                                uart0 {
                                        pinctrl_uart0: uart0-0 {
                                                atmel,pins =
-                                                       <2 29 0x1 0x0   /* PC29 periph A, conflicts with PWMFI2, ISI_D8 */
-                                                        2 30 0x1 0x1>; /* PC30 periph A with pullup, conflicts with ISI_PCK */
+                                                       <AT91_PIOC 29 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PC29 periph A, conflicts with PWMFI2, ISI_D8 */
+                                                        AT91_PIOC 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PC30 periph A with pullup, conflicts with ISI_PCK */
                                        };
                                };
 
                                uart1 {
                                        pinctrl_uart1: uart1-0 {
                                                atmel,pins =
-                                                       <0 30 0x2 0x0   /* PA30 periph B, conflicts with TWD0, ISI_VSYNC */
-                                                        0 31 0x2 0x1>; /* PA31 periph B with pullup, conflicts with TWCK0, ISI_HSYNC */
+                                                       <AT91_PIOA 30 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PA30 periph B, conflicts with TWD0, ISI_VSYNC */
+                                                        AT91_PIOA 31 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;      /* PA31 periph B with pullup, conflicts with TWCK0, ISI_HSYNC */
                                        };
                                };
 
                                usart0 {
                                        pinctrl_usart0: usart0-0 {
                                                atmel,pins =
-                                                       <3 17 0x1 0x0   /* PD17 periph A */
-                                                        3 18 0x1 0x1>; /* PD18 periph A with pullup */
+                                                       <AT91_PIOD 17 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD17 periph A */
+                                                        AT91_PIOD 18 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PD18 periph A with pullup */
                                        };
 
                                        pinctrl_usart0_rts_cts: usart0_rts_cts-0 {
                                                atmel,pins =
-                                                       <3 15 0x1 0x0   /* PD15 periph A, conflicts with SPI0_NPCS2, CANTX0 */
-                                                        3 16 0x1 0x0>; /* PD16 periph A, conflicts with SPI0_NPCS3, PWMFI3 */
+                                                       <AT91_PIOD 15 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PD15 periph A, conflicts with SPI0_NPCS2, CANTX0 */
+                                                        AT91_PIOD 16 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD16 periph A, conflicts with SPI0_NPCS3, PWMFI3 */
                                        };
                                };
 
                                usart1 {
                                        pinctrl_usart1: usart1-0 {
                                                atmel,pins =
-                                                       <1 28 0x1 0x0   /* PB28 periph A */
-                                                        1 29 0x1 0x1>; /* PB29 periph A with pullup */
+                                                       <AT91_PIOB 28 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB28 periph A */
+                                                        AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;      /* PB29 periph A with pullup */
                                        };
 
                                        pinctrl_usart1_rts_cts: usart1_rts_cts-0 {
                                                atmel,pins =
-                                                       <1 26 0x1 0x0   /* PB26 periph A, conflicts with GRX7 */
-                                                        1 27 0x1 0x0>; /* PB27 periph A, conflicts with G125CKO */
+                                                       <AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE   /* PB26 periph A, conflicts with GRX7 */
+                                                        AT91_PIOB 27 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB27 periph A, conflicts with G125CKO */
                                        };
                                };
 
                                usart2 {
                                        pinctrl_usart2: usart2-0 {
                                                atmel,pins =
-                                                       <4 25 0x2 0x0   /* PE25 periph B, conflicts with A25 */
-                                                        4 26 0x2 0x1>; /* PE26 periph B with pullup, conflicts NCS0 */
+                                                       <AT91_PIOE 25 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PE25 periph B, conflicts with A25 */
+                                                        AT91_PIOE 26 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;      /* PE26 periph B with pullup, conflicts NCS0 */
                                        };
 
                                        pinctrl_usart2_rts_cts: usart2_rts_cts-0 {
                                                atmel,pins =
-                                                       <4 23 0x2 0x0   /* PE23 periph B, conflicts with A23 */
-                                                        4 24 0x2 0x0>; /* PE24 periph B, conflicts with A24 */
+                                                       <AT91_PIOE 23 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PE23 periph B, conflicts with A23 */
+                                                        AT91_PIOE 24 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PE24 periph B, conflicts with A24 */
                                        };
                                };
 
                                usart3 {
                                        pinctrl_usart3: usart3-0 {
                                                atmel,pins =
-                                                       <4 18 0x2 0x0   /* PE18 periph B, conflicts with A18 */
-                                                        4 19 0x2 0x1>; /* PE19 periph B with pullup, conflicts with A19 */
+                                                       <AT91_PIOE 18 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PE18 periph B, conflicts with A18 */
+                                                        AT91_PIOE 19 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;      /* PE19 periph B with pullup, conflicts with A19 */
                                        };
 
                                        pinctrl_usart3_rts_cts: usart3_rts_cts-0 {
                                                atmel,pins =
-                                                       <4 16 0x2 0x0   /* PE16 periph B, conflicts with A16 */
-                                                        4 17 0x2 0x0>; /* PE17 periph B, conflicts with A17 */
+                                                       <AT91_PIOE 16 AT91_PERIPH_B AT91_PINCTRL_NONE   /* PE16 periph B, conflicts with A16 */
+                                                        AT91_PIOE 17 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PE17 periph B, conflicts with A17 */
                                        };
                                };
+
+
+                               pioA: gpio@fffff200 {
+                                       compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
+                                       reg = <0xfffff200 0x100>;
+                                       interrupts = <6 IRQ_TYPE_LEVEL_HIGH 1>;
+                                       #gpio-cells = <2>;
+                                       gpio-controller;
+                                       interrupt-controller;
+                                       #interrupt-cells = <2>;
+                               };
+
+                               pioB: gpio@fffff400 {
+                                       compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
+                                       reg = <0xfffff400 0x100>;
+                                       interrupts = <7 IRQ_TYPE_LEVEL_HIGH 1>;
+                                       #gpio-cells = <2>;
+                                       gpio-controller;
+                                       interrupt-controller;
+                                       #interrupt-cells = <2>;
+                               };
+
+                               pioC: gpio@fffff600 {
+                                       compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
+                                       reg = <0xfffff600 0x100>;
+                                       interrupts = <8 IRQ_TYPE_LEVEL_HIGH 1>;
+                                       #gpio-cells = <2>;
+                                       gpio-controller;
+                                       interrupt-controller;
+                                       #interrupt-cells = <2>;
+                               };
+
+                               pioD: gpio@fffff800 {
+                                       compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
+                                       reg = <0xfffff800 0x100>;
+                                       interrupts = <9 IRQ_TYPE_LEVEL_HIGH 1>;
+                                       #gpio-cells = <2>;
+                                       gpio-controller;
+                                       interrupt-controller;
+                                       #interrupt-cells = <2>;
+                               };
+
+                               pioE: gpio@fffffa00 {
+                                       compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
+                                       reg = <0xfffffa00 0x100>;
+                                       interrupts = <10 IRQ_TYPE_LEVEL_HIGH 1>;
+                                       #gpio-cells = <2>;
+                                       gpio-controller;
+                                       interrupt-controller;
+                                       #interrupt-cells = <2>;
+                               };
                        };
 
                        pmc: pmc@fffffc00 {
                        pit: timer@fffffe30 {
                                compatible = "atmel,at91sam9260-pit";
                                reg = <0xfffffe30 0xf>;
-                               interrupts = <3 4 5>;
+                               interrupts = <3 IRQ_TYPE_LEVEL_HIGH 5>;
                        };
 
                        watchdog@fffffe40 {
                        rtc@fffffeb0 {
                                compatible = "atmel,at91rm9200-rtc";
                                reg = <0xfffffeb0 0x30>;
-                               interrupts = <1 4 7>;
+                               interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
                        };
                };
 
                        compatible = "atmel,at91sam9rl-udc";
                        reg = <0x00500000 0x100000
                               0xf8030000 0x4000>;
-                       interrupts = <33 4 2>;
+                       interrupts = <33 IRQ_TYPE_LEVEL_HIGH 2>;
                        status = "disabled";
 
                        ep0 {
                usb1: ohci@00600000 {
                        compatible = "atmel,at91rm9200-ohci", "usb-ohci";
                        reg = <0x00600000 0x100000>;
-                       interrupts = <32 4 2>;
+                       interrupts = <32 IRQ_TYPE_LEVEL_HIGH 2>;
                        status = "disabled";
                };
 
                usb2: ehci@00700000 {
                        compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
                        reg = <0x00700000 0x100000>;
-                       interrupts = <32 4 2>;
+                       interrupts = <32 IRQ_TYPE_LEVEL_HIGH 2>;
                        status = "disabled";
                };
 
                                0xffffc000 0x00000070   /* NFC HSMC regs */
                                0x00200000 0x00100000   /* NFC SRAM banks */
                                >;
-                       interrupts = <5 4 6>;
+                       interrupts = <5 IRQ_TYPE_LEVEL_HIGH 6>;
                        atmel,nand-addr-offset = <21>;
                        atmel,nand-cmd-offset = <22>;
                        pinctrl-names = "default";
index fa5d216f1db753739c4ee5f3c07bfbad7430c39f..027bac7510b6cc2cfb92ebb488c8d8e24de06749 100644 (file)
@@ -7,8 +7,8 @@
  * Licensed under GPLv2 or later.
  */
 /dts-v1/;
-/include/ "sama5d3xmb.dtsi"
-/include/ "sama5d3xdm.dtsi"
+#include "sama5d3xmb.dtsi"
+#include "sama5d3xdm.dtsi"
 
 / {
        model = "Atmel SAMA5D31-EK";
@@ -41,7 +41,7 @@
        leds {
                d3 {
                        label = "d3";
-                       gpios = <&pioE 24 0>;
+                       gpios = <&pioE 24 GPIO_ACTIVE_HIGH>;
                };
        };
 
index c38c9433d7a544442478cbaf8553d61860ac3200..99bd0c8e047116b4a04cce14c466068268d21cc2 100644 (file)
@@ -7,8 +7,8 @@
  * Licensed under GPLv2 or later.
  */
 /dts-v1/;
-/include/ "sama5d3xmb.dtsi"
-/include/ "sama5d3xdm.dtsi"
+#include "sama5d3xmb.dtsi"
+#include "sama5d3xdm.dtsi"
 
 / {
        model = "Atmel SAMA5D33-EK";
index 6bebfcdcb1d134a7e466e6fb4bc2e68d53d6e022..fb8ee11cf282bdf051e1ecf0193e1622adb7d7d4 100644 (file)
@@ -7,8 +7,8 @@
  * Licensed under GPLv2 or later.
  */
 /dts-v1/;
-/include/ "sama5d3xmb.dtsi"
-/include/ "sama5d3xdm.dtsi"
+#include "sama5d3xmb.dtsi"
+#include "sama5d3xdm.dtsi"
 
 / {
        model = "Atmel SAMA5D34-EK";
@@ -51,7 +51,7 @@
        leds {
                d3 {
                        label = "d3";
-                       gpios = <&pioE 24 0>;
+                       gpios = <&pioE 24 GPIO_ACTIVE_HIGH>;
                };
        };
 
index a488fc4e9777884af7193902e201f61747a52805..509a53d9cc7baee10258878cd257d8574d6b25e0 100644 (file)
@@ -7,7 +7,7 @@
  * Licensed under GPLv2 or later.
  */
 /dts-v1/;
-/include/ "sama5d3xmb.dtsi"
+#include "sama5d3xmb.dtsi"
 
 / {
        model = "Atmel SAMA5D35-EK";
@@ -48,7 +48,7 @@
 
                pb_user1 {
                        label = "pb_user1";
-                       gpios = <&pioE 27 0>;
+                       gpios = <&pioE 27 GPIO_ACTIVE_HIGH>;
                        linux,code = <0x100>;
                        gpio-key,wakeup;
                };
index b336e7787cb3ea35ac312e83a66bc948a988e977..1f8050813a5485c76fecd41c3eef93b54bdcf80a 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Licensed under GPLv2 or later.
  */
-/include/ "sama5d3.dtsi"
+#include "sama5d3.dtsi"
 
 / {
        compatible = "atmel,samad3xcm", "atmel,sama5d3", "atmel,sama5";
@@ -89,7 +89,7 @@
 
                d2 {
                        label = "d2";
-                       gpios = <&pioE 25 1>;   /* PE25, conflicts with A25, RXD2 */
+                       gpios = <&pioE 25 GPIO_ACTIVE_LOW>;     /* PE25, conflicts with A25, RXD2 */
                };
        };
 };
index 4b8830eb20603c7593618e3fc5c75613025b367b..1c296d6b2f2a7925cd3af7d9b6e73e439d17d25d 100644 (file)
@@ -33,7 +33,7 @@
                                board {
                                        pinctrl_qt1070_irq: qt1070_irq {
                                                atmel,pins =
-                                                       <4 31 0x0 0x5>; /* PE31 GPIO with pull up deglith */
+                                                       <AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PE31 GPIO with pull up deglith */
                                        };
                                };
                        };
index 661d7ca9c309b6b03a6c8a94af36accf82a57105..8a9e05d8a4b87dc870bb293eb7b65c26f0241b19 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Licensed under GPLv2 or later.
  */
-/include/ "sama5d3xcm.dtsi"
+#include "sama5d3xcm.dtsi"
 
 / {
        compatible = "atmel,sama5d3xmb", "atmel,sama5d3xcm", "atmel,sama5d3", "atmel,sama5";
@@ -20,7 +20,7 @@
                                slot@0 {
                                        reg = <0>;
                                        bus-width = <4>;
-                                       cd-gpios = <&pioD 17 0>;
+                                       cd-gpios = <&pioD 17 GPIO_ACTIVE_HIGH>;
                                };
                        };
 
@@ -62,7 +62,7 @@
                                slot@0 {
                                        reg = <0>;
                                        bus-width = <4>;
-                                       cd-gpios = <&pioD 18 0>;
+                                       cd-gpios = <&pioD 18 GPIO_ACTIVE_HIGH>;
                                };
                        };
 
                                board {
                                        pinctrl_mmc0_cd: mmc0_cd {
                                                atmel,pins =
-                                                       <3 17 0x0 0x5>; /* PD17 GPIO with pullup deglitch */
+                                                       <AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PD17 GPIO with pullup deglitch */
                                        };
 
                                        pinctrl_mmc1_cd: mmc1_cd {
                                                atmel,pins =
-                                                       <3 18 0x0 0x5>; /* PD18 GPIO with pullup deglitch */
+                                                       <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PD18 GPIO with pullup deglitch */
                                        };
 
                                        pinctrl_pck0_as_audio_mck: pck0_as_audio_mck {
                                                atmel,pins =
-                                                       <3 30 0x2 0x0>; /* PD30 periph B */
+                                                       <AT91_PIOD 30 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PD30 periph B */
                                        };
 
                                        pinctrl_isi_reset: isi_reset-0 {
                                                atmel,pins =
-                                                       <4 24 0x0 0x0>;   /* PE24 gpio */
+                                                       <AT91_PIOE 24 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;   /* PE24 gpio */
                                        };
 
                                        pinctrl_isi_power: isi_power-0 {
                                                atmel,pins =
-                                                       <4 29 0x0 0x0>; /* PE29 gpio */
+                                                       <AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; /* PE29 gpio */
                                        };
 
                                        pinctrl_usba_vbus: usba_vbus {
                                                atmel,pins =
-                                                       <3 29 0x0 0x4>; /* PD29 GPIO with deglitch */
+                                                       <AT91_PIOD 29 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PD29 GPIO with deglitch */
                                        };
                                };
                        };
                };
 
                usb0: gadget@00500000 {
-                       atmel,vbus-gpio = <&pioD 29 0>;
+                       atmel,vbus-gpio = <&pioD 29 GPIO_ACTIVE_HIGH>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_usba_vbus>;
                        status = "okay";
 
                usb1: ohci@00600000 {
                        num-ports = <3>;
-                       atmel,vbus-gpio = <&pioD 25 0
-                                          &pioD 26 1
-                                          &pioD 27 1
+                       atmel,vbus-gpio = <&pioD 25 GPIO_ACTIVE_HIGH
+                                          &pioD 26 GPIO_ACTIVE_LOW
+                                          &pioD 27 GPIO_ACTIVE_LOW
                                          >;
                        status = "okay";
                };
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 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 a573b94b7c93eafb313e42bf8dfde31e9ecfcd6a..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 0>; /* gpio PV1 */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
+                       GPIO_ACTIVE_LOW>;
+       };
+
+       usb-phy@c5004000 {
+               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 e7d5de4e00b99e57628298cd5c3d4c3fb4fb67fd..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;
 
                status = "okay";
        };
 
+       usb-phy@c5000000 {
+               status = "okay";
+       };
+
        usb@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio 169 0>; /* gpio PV1 */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
+                       GPIO_ACTIVE_LOW>;
+       };
+
+       usb-phy@c5004000 {
+               status = "okay";
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
+                       GPIO_ACTIVE_LOW>;
        };
 
        usb@c5008000 {
                status = "okay";
        };
 
-       usb-phy@c5004400 {
-               nvidia,phy-reset-gpio = <&gpio 169 0>; /* gpio PV1 */
+       usb-phy@c5008000 {
+               status = "okay";
        };
 
        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 52f1103907d786336716a23d7a9d1c57082e1b65..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";
 
        usb@c5000000 {
                status = "okay";
-               dr_mode = "otg";
+       };
+
+       usb-phy@c5000000 {
+               status = "okay";
        };
 
        usb@c5008000 {
                status = "okay";
        };
 
+       usb-phy@c5008000 {
+               status = "okay";
+       };
+
        serial@70006000 {
                status = "okay";
        };
@@ -73,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 e3e0c9977df451a778006bc71d75d3aec9022f93..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;
                status = "okay";
        };
 
+       usb-phy@c5000000 {
+               status = "okay";
+       };
+
        usb@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio 168 0>; /* gpio PV0 */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 0)
+                       GPIO_ACTIVE_LOW>;
+       };
+
+       usb-phy@c5004000 {
+               status = "okay";
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 0)
+                       GPIO_ACTIVE_LOW>;
        };
 
        usb@c5008000 {
                status = "okay";
        };
 
-       usb-phy@c5004400 {
-               nvidia,phy-reset-gpio = <&gpio 168 0>; /* gpio PV0 */
+       usb-phy@c5008000 {
+               status = "okay";
        };
 
        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 cee4c34010fed6fa1d1ce96a1c45bebccf97a974..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-phy@c5000000 {
+               status = "okay";
+               vbus-supply = <&vbus_reg>;
                dr_mode = "otg";
        };
 
        usb@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio 169 0>; /* gpio PV1 */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
+                       GPIO_ACTIVE_LOW>;
+       };
+
+       usb-phy@c5004000 {
+               status = "okay";
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
+                       GPIO_ACTIVE_LOW>;
        };
 
        usb@c5008000 {
                status = "okay";
        };
 
-       usb-phy@c5004400 {
-               nvidia,phy-reset-gpio = <&gpio 169 0>; /* gpio PV1 */
+       usb-phy@c5008000 {
+               status = "okay";
        };
 
        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;
                };
+
+               vbus_reg: regulator@3 {
+                       compatible = "regulator-fixed";
+                       reg = <3>;
+                       regulator-name = "vdd_vbus_wup1";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio 24 0>; /* PD0 */
+               };
        };
 
        sound {
                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 50b3ec16b93aa20e6a70f42fe0e0825657e93eb4..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;
 
                status = "okay";
        };
 
+       usb-phy@c5008000 {
+               status = "okay";
+       };
+
        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 9cc78a15d739860393edb0b227aba930444cb59f..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 {
+               status = "okay";
+               vbus-supply = <&vbus_reg>;
        };
 
        usb@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio 168 0>; /* gpio PV0 */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 0)
+                       GPIO_ACTIVE_LOW>;
+       };
+
+       usb-phy@c5004000 {
+               status = "okay";
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 0)
+                       GPIO_ACTIVE_LOW>;
        };
 
        usb@c5008000 {
                status = "okay";
        };
 
-       usb-phy@c5004400 {
-               nvidia,phy-reset-gpio = <&gpio 168 0>; /* gpio PV0 */
+       usb-phy@c5008000 {
+               status = "okay";
        };
 
        sdhci@c8000000 {
 
        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 {
                        regulator-max-microvolt = <1800000>;
                        regulator-always-on;
                };
+
+               vbus_reg: regulator@2 {
+                       compatible = "regulator-fixed";
+                       reg = <2>;
+                       regulator-name = "usb1_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&gpio 170 0>; /* PV2 */
+               };
        };
 
        sound {
                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 dd38f1f038347e6d328f1af6b0757d7fa03b9c36..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;
 
                status = "okay";
        };
 
+       usb-phy@c5000000 {
+               status = "okay";
+       };
+
        usb@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio 169 0>; /* gpio PV1 */
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
+                       GPIO_ACTIVE_LOW>;
+       };
+
+       usb-phy@c5004000 {
+               status = "okay";
+               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
+                       GPIO_ACTIVE_LOW>;
        };
 
        usb@c5008000 {
                status = "okay";
        };
 
-       usb-phy@c5004400 {
-               nvidia,phy-reset-gpio = <&gpio 169 0>; /* gpio PV1 */
+       usb-phy@c5008000 {
+               status = "okay";
        };
 
        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 d2567f83aaffd19584e45c8d080a560e74d1172d..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 {
+               status = "okay";
+               vbus-supply = <&vbus1_reg>;
        };
 
        usb@c5008000 {
                status = "okay";
-               nvidia,vbus-gpio = <&tca6416 1 0>; /* GPIO_PMU1 */
+               nvidia,vbus-gpio = <&tca6416 1 GPIO_ACTIVE_HIGH>;
+       };
+
+       usb-phy@c5008000 {
+               status = "okay";
+               vbus-supply = <&vbus3_reg>;
        };
 
        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>;
        };
 
                        regulator-max-microvolt = <5000000>;
                        regulator-always-on;
                };
+
+               vbus1_reg: regulator@2 {
+                       compatible = "regulator-fixed";
+                       reg = <2>;
+                       regulator-name = "vbus1";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&tca6416 0 0>; /* GPIO_PMU0 */
+               };
+
+               vbus3_reg: regulator@3 {
+                       compatible = "regulator-fixed";
+                       reg = <3>;
+                       regulator-name = "vbus3";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&tca6416 1 0>; /* GPIO_PMU1 */
+               };
        };
 
        sound {
                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 56a91106041b31ca91a6ef9559e11abcc8f2cc1e..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";
        };
 
-       phy1: usb-phy@c5000400 {
+       phy1: usb-phy@c5000000 {
                compatible = "nvidia,tegra20-usb-phy";
-               reg = <0xc5000400 0x3c00>;
+               reg = <0xc5000000 0x4000 0xc5000000 0x4000>;
                phy_type = "utmi";
+               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;
-               clocks = <&tegra_car 22>, <&tegra_car 127>;
-               clock-names = "phy", "pll_u";
+               hssync_start_delay = <9>;
+               idle_wait_delay = <17>;
+               elastic_limit = <16>;
+               term_range_adj = <6>;
+               xcvr_setup = <9>;
+               xcvr_lsfslew = <1>;
+               xcvr_lsrslew = <1>;
+               status = "disabled";
        };
 
        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";
        };
 
-       phy2: usb-phy@c5004400 {
+       phy2: usb-phy@c5004000 {
                compatible = "nvidia,tegra20-usb-phy";
-               reg = <0xc5004400 0x3c00>;
+               reg = <0xc5004000 0x4000>;
                phy_type = "ulpi";
-               clocks = <&tegra_car 93>, <&tegra_car 127>;
-               clock-names = "phy", "pll_u";
+               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";
        };
 
-       phy3: usb-phy@c5008400 {
+       phy3: usb-phy@c5008000 {
                compatible = "nvidia,tegra20-usb-phy";
-               reg = <0xc5008400 0x3c00>;
+               reg = <0xc5008000 0x4000 0xc5000000 0x4000>;
                phy_type = "utmi";
-               clocks = <&tegra_car 22>, <&tegra_car 127>;
-               clock-names = "phy", "pll_u";
+               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>;
+               elastic_limit = <16>;
+               term_range_adj = <6>;
+               xcvr_setup = <9>;
+               xcvr_lsfslew = <2>;
+               xcvr_lsrslew = <2>;
+               status = "disabled";
        };
 
        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>;
        };
 };
index 367a16dcd5ef794842c741e301bc4f8b25c14191..dabe232216b42e1298e27667f957da5c5b8430af 100644 (file)
@@ -6,8 +6,8 @@
  * Licensed under GPLv2.
  */
 /dts-v1/;
-/include/ "at91sam9260.dtsi"
-/include/ "tny_a9260_common.dtsi"
+#include "at91sam9260.dtsi"
+#include "tny_a9260_common.dtsi"
 
 / {
        model = "Calao TNY A9260";
index dee9c571306b43143ed960732d4558ed23cc0267..0751a6a979a8e9575d85a67999497ae65dc7e4f4 100644 (file)
@@ -6,7 +6,7 @@
  * Licensed under GPLv2 only
  */
 /dts-v1/;
-/include/ "at91sam9263.dtsi"
+#include "at91sam9263.dtsi"
 
 / {
        model = "Calao TNY A9263";
@@ -38,7 +38,7 @@
                        };
 
                        usb1: gadget@fff78000 {
-                               atmel,vbus-gpio = <&pioB 11 0>;
+                               atmel,vbus-gpio = <&pioB 11 GPIO_ACTIVE_HIGH>;
                                status = "okay";
                        };
                };
index e1ab64c72dba740d7bd296266492f00a68c070d8..8456d70bb42b114852cd3735f022f1c33ca91832 100644 (file)
@@ -6,8 +6,8 @@
  * Licensed under GPLv2.
  */
 /dts-v1/;
-/include/ "at91sam9g20.dtsi"
-/include/ "tny_a9260_common.dtsi"
+#include "at91sam9g20.dtsi"
+#include "tny_a9260_common.dtsi"
 
 / {
        model = "Calao TNY A9G20";
index 296216058c11b7081808985974149580c8e4a1ed..de0c24f5210a3a07d42ee225999541fbb8495353 100644 (file)
@@ -6,8 +6,8 @@
  * Licensed under GPLv2 or later.
  */
 /dts-v1/;
-/include/ "at91sam9260.dtsi"
-/include/ "usb_a9260_common.dtsi"
+#include "at91sam9260.dtsi"
+#include "usb_a9260_common.dtsi"
 
 / {
        model = "Calao USB A9260";
        memory {
                reg = <0x20000000 0x4000000>;
        };
+
+       ahb {
+               apb {
+                       shdwc@fffffd10 {
+                               atmel,wakeup-counter = <10>;
+                               atmel,wakeup-rtt-timer;
+                       };
+               };
+       };
 };
index e70d229baef5312ff5ff10c11f12067cab5a1e89..285977682cf3f43b0aea162939637f95ed627d69 100644 (file)
@@ -30,7 +30,7 @@
                        };
 
                        usb1: gadget@fffa4000 {
-                               atmel,vbus-gpio = <&pioC 5 0>;
+                               atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
                                status = "okay";
                        };
                };
@@ -93,7 +93,7 @@
 
                user_led {
                        label = "user_led";
-                       gpios = <&pioB 21 1>;
+                       gpios = <&pioB 21 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "heartbeat";
                };
        };
 
                user_pb {
                        label = "user_pb";
-                       gpios = <&pioB 10 1>;
+                       gpios = <&pioB 10 GPIO_ACTIVE_LOW>;
                        linux,code = <28>;
                        gpio-key,wakeup;
                };
index 6fe05ccb62034553304cc6af0e042965ca9d5a92..290e60383baf4f6a23862996b8c5ecb38d33a2b0 100644 (file)
@@ -6,7 +6,7 @@
  * Licensed under GPLv2 only
  */
 /dts-v1/;
-/include/ "at91sam9263.dtsi"
+#include "at91sam9263.dtsi"
 
 / {
        model = "Calao USB A9263";
                        };
 
                        usb1: gadget@fff78000 {
-                               atmel,vbus-gpio = <&pioB 11 0>;
+                               atmel,vbus-gpio = <&pioB 11 GPIO_ACTIVE_HIGH>;
                                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 {
 
                user_led {
                        label = "user_led";
-                       gpios = <&pioB 21 0>;
+                       gpios = <&pioB 21 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                };
        };
 
                user_pb {
                        label = "user_pb";
-                       gpios = <&pioB 10 1>;
+                       gpios = <&pioB 10 GPIO_ACTIVE_LOW>;
                        linux,code = <28>;
                        gpio-key,wakeup;
                };
index ad3eca17c436acbf1df0341fe6ca0c1b3b9a3efb..5b0ffc1a0b2472c968abed6091fd36153b7fe673 100644 (file)
 
                user_led1 {
                        label = "user_led1";
-                       gpios = <&pioB 20 1>;
+                       gpios = <&pioB 20 GPIO_ACTIVE_LOW>;
                };
 
 /*
 * led already used by mother board but active as high
 *              user_led2 {
 *                      label = "user_led2";
-*                      gpios = <&pioB 21 1>;
+*                      gpios = <&pioB 21 GPIO_ACTIVE_LOW>;
 *              };
 */
                user_led3 {
                        label = "user_led3";
-                       gpios = <&pioB 22 1>;
+                       gpios = <&pioB 22 GPIO_ACTIVE_LOW>;
                };
 
                user_led4 {
                        label = "user_led4";
-                       gpios = <&pioB 23 1>;
+                       gpios = <&pioB 23 GPIO_ACTIVE_LOW>;
                };
 
                red {
                        label = "red";
-                       gpios = <&pioB 24 1>;
+                       gpios = <&pioB 24 GPIO_ACTIVE_LOW>;
                };
 
                orange {
                        label = "orange";
-                       gpios = <&pioB 30 1>;
+                       gpios = <&pioB 30 GPIO_ACTIVE_LOW>;
                };
 
                green {
                        label = "green";
-                       gpios = <&pioB 31 1>;
+                       gpios = <&pioB 31 GPIO_ACTIVE_LOW>;
                };
        };
 
 
                user_pb1 {
                        label = "user_pb1";
-                       gpios = <&pioB 25 1>;
+                       gpios = <&pioB 25 GPIO_ACTIVE_LOW>;
                        linux,code = <0x100>;
                };
 
                user_pb2 {
                        label = "user_pb2";
-                       gpios = <&pioB 13 1>;
+                       gpios = <&pioB 13 GPIO_ACTIVE_LOW>;
                        linux,code = <0x101>;
                };
 
                user_pb3 {
                        label = "user_pb3";
-                       gpios = <&pioA 26 1>;
+                       gpios = <&pioA 26 GPIO_ACTIVE_LOW>;
                        linux,code = <0x102>;
                };
 
                user_pb4 {
                        label = "user_pb4";
-                       gpios = <&pioC 9 1>;
+                       gpios = <&pioC 9 GPIO_ACTIVE_LOW>;
                        linux,code = <0x103>;
                };
        };
index 2dacb16ce4ae811c12ea8008ccb6dbf31ca24489..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 14fb2e609babcc881deeff1c59ea8d39090ff90f..6f54a64850eb0fef446fd13390f019d5ab277cdb 100644 (file)
 
                uart0: uart@e0000000 {
                        compatible = "xlnx,xuartps";
+                       status = "disabled";
+                       clocks = <&clkc 23>, <&clkc 40>;
+                       clock-names = "ref_clk", "aper_clk";
                        reg = <0xE0000000 0x1000>;
                        interrupts = <0 27 4>;
-                       clocks = <&uart_clk 0>;
                };
 
                uart1: uart@e0001000 {
                        compatible = "xlnx,xuartps";
+                       status = "disabled";
+                       clocks = <&clkc 24>, <&clkc 41>;
+                       clock-names = "ref_clk", "aper_clk";
                        reg = <0xE0001000 0x1000>;
                        interrupts = <0 50 4>;
-                       clocks = <&uart_clk 1>;
                };
 
                slcr: slcr@f8000000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
 
-                               ps_clk: ps_clk {
-                                       #clock-cells = <0>;
-                                       compatible = "fixed-clock";
-                                       /* clock-frequency set in board-specific file */
-                                       clock-output-names = "ps_clk";
-                               };
-                               armpll: armpll {
-                                       #clock-cells = <0>;
-                                       compatible = "xlnx,zynq-pll";
-                                       clocks = <&ps_clk>;
-                                       reg = <0x100 0x110>;
-                                       clock-output-names = "armpll";
-                               };
-                               ddrpll: ddrpll {
-                                       #clock-cells = <0>;
-                                       compatible = "xlnx,zynq-pll";
-                                       clocks = <&ps_clk>;
-                                       reg = <0x104 0x114>;
-                                       clock-output-names = "ddrpll";
-                               };
-                               iopll: iopll {
-                                       #clock-cells = <0>;
-                                       compatible = "xlnx,zynq-pll";
-                                       clocks = <&ps_clk>;
-                                       reg = <0x108 0x118>;
-                                       clock-output-names = "iopll";
-                               };
-                               uart_clk: uart_clk {
-                                       #clock-cells = <1>;
-                                       compatible = "xlnx,zynq-periph-clock";
-                                       clocks = <&iopll &armpll &ddrpll>;
-                                       reg = <0x154>;
-                                       clock-output-names = "uart0_ref_clk",
-                                                            "uart1_ref_clk";
-                               };
-                               cpu_clk: cpu_clk {
+                               clkc: clkc {
                                        #clock-cells = <1>;
-                                       compatible = "xlnx,zynq-cpu-clock";
-                                       clocks = <&iopll &armpll &ddrpll>;
-                                       reg = <0x120 0x1C4>;
-                                       clock-output-names = "cpu_6x4x",
-                                                            "cpu_3x2x",
-                                                            "cpu_2x",
-                                                            "cpu_1x";
+                                       compatible = "xlnx,ps7-clkc";
+                                       ps-clk-frequency = <33333333>;
+                                       clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x",
+                                                       "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x",
+                                                       "dci", "lqspi", "smc", "pcap", "gem0", "gem1",
+                                                       "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1",
+                                                       "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1",
+                                                       "dma", "usb0_aper", "usb1_aper", "gem0_aper",
+                                                       "gem1_aper", "sdio0_aper", "sdio1_aper",
+                                                       "spi0_aper", "spi1_aper", "can0_aper", "can1_aper",
+                                                       "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper",
+                                                       "gpio_aper", "lqspi_aper", "smc_aper", "swdt",
+                                                       "dbg_trc", "dbg_apb";
                                };
                        };
                };
                        interrupt-parent = <&intc>;
                        interrupts = < 0 10 4 0 11 4 0 12 4 >;
                        compatible = "cdns,ttc";
+                       clocks = <&clkc 6>;
                        reg = <0xF8001000 0x1000>;
-                       clocks = <&cpu_clk 3>;
-                       clock-names = "cpu_1x";
                        clock-ranges;
                };
 
                        interrupt-parent = <&intc>;
                        interrupts = < 0 37 4 0 38 4 0 39 4 >;
                        compatible = "cdns,ttc";
+                       clocks = <&clkc 6>;
                        reg = <0xF8002000 0x1000>;
-                       clocks = <&cpu_clk 3>;
-                       clock-names = "cpu_1x";
                        clock-ranges;
                };
                scutimer: scutimer@f8f00600 {
                        interrupts = < 1 13 0x301 >;
                        compatible = "arm,cortex-a9-twd-timer";
                        reg = < 0xf8f00600 0x20 >;
-                       clocks = <&cpu_clk 1>;
+                       clocks = <&clkc 4>;
                } ;
        };
 };
index 86f44d5b0265bf8fe3b7c6da4370d409e7f9b7d0..21aea99a067b63824ef270e19d1c047039317a44 100644 (file)
        };
 
        chosen {
-               bootargs = "console=ttyPS1,115200 earlyprintk";
+               bootargs = "console=ttyPS0,115200 earlyprintk";
        };
 
 };
 
-&ps_clk {
-       clock-frequency = <33333330>;
+&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 047f2a415309a8b7dfb6197d910c849a3a9fe838..75fd842d4071336cc5cb88cfee58beebdf72425e 100644 (file)
@@ -1,4 +1,3 @@
-CONFIG_EXPERIMENTAL=y
 # CONFIG_LOCALVERSION_AUTO is not set
 # CONFIG_SWAP is not set
 CONFIG_SYSVIPC=y
@@ -25,8 +24,6 @@ CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
 CONFIG_AT91_TIMER_HZ=128
 CONFIG_AEABI=y
 # CONFIG_OABI_COMPAT is not set
-CONFIG_LEDS=y
-CONFIG_LEDS_CPU=y
 CONFIG_UACCESS_WITH_MEMCPY=y
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
@@ -42,6 +39,9 @@ CONFIG_UNIX=y
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
 # CONFIG_INET_XFRM_MODE_TRANSPORT is not set
 # CONFIG_INET_XFRM_MODE_TUNNEL is not set
 # CONFIG_INET_XFRM_MODE_BEET is not set
@@ -51,7 +51,8 @@ CONFIG_IPV6=y
 # CONFIG_INET6_XFRM_MODE_TUNNEL is not set
 # CONFIG_INET6_XFRM_MODE_BEET is not set
 CONFIG_IPV6_SIT_6RD=y
-# CONFIG_WIRELESS is not set
+CONFIG_CFG80211=y
+CONFIG_MAC80211=y
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 CONFIG_DEVTMPFS=y
 CONFIG_DEVTMPFS_MOUNT=y
@@ -72,7 +73,6 @@ CONFIG_BLK_DEV_RAM_COUNT=4
 CONFIG_BLK_DEV_RAM_SIZE=8192
 CONFIG_ATMEL_PWM=y
 CONFIG_ATMEL_TCLIB=y
-CONFIG_EEPROM_93CX6=m
 CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_SCSI_MULTI_LUN=y
@@ -81,7 +81,6 @@ CONFIG_NETDEVICES=y
 CONFIG_MII=y
 CONFIG_MACB=y
 # CONFIG_NET_VENDOR_BROADCOM is not set
-# CONFIG_NET_VENDOR_CHELSIO is not set
 # CONFIG_NET_VENDOR_FARADAY is not set
 # CONFIG_NET_VENDOR_INTEL is not set
 # CONFIG_NET_VENDOR_MARVELL is not set
@@ -92,7 +91,23 @@ CONFIG_MACB=y
 # CONFIG_NET_VENDOR_STMICRO is not set
 CONFIG_DAVICOM_PHY=y
 CONFIG_MICREL_PHY=y
-# CONFIG_WLAN is not set
+CONFIG_RTL8187=m
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+CONFIG_RT2X00=m
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RTLWIFI=m
+# CONFIG_RTLWIFI_DEBUG is not set
+CONFIG_RTL8192CU=m
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_USB=m
 CONFIG_INPUT_POLLDEV=y
 # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
 CONFIG_INPUT_MOUSEDEV_SCREEN_X=480
@@ -112,13 +127,11 @@ CONFIG_I2C=y
 CONFIG_I2C_GPIO=y
 CONFIG_SPI=y
 CONFIG_SPI_ATMEL=y
-CONFIG_PINCTRL_AT91=y
 # CONFIG_HWMON is not set
 CONFIG_WATCHDOG=y
 CONFIG_AT91SAM9X_WATCHDOG=y
 CONFIG_SSB=m
 CONFIG_FB=y
-CONFIG_FB_MODE_HELPERS=y
 CONFIG_FB_ATMEL=y
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 # CONFIG_LCD_CLASS_DEVICE is not set
@@ -132,11 +145,8 @@ CONFIG_FONT_8x8=y
 CONFIG_FONT_ACORN_8x8=y
 CONFIG_FONT_MINI_4x6=y
 CONFIG_LOGO=y
-# CONFIG_HID_SUPPORT is not set
 CONFIG_USB=y
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_DEVICE_CLASS is not set
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
 CONFIG_USB_ACM=y
@@ -146,16 +156,12 @@ CONFIG_USB_SERIAL_GENERIC=y
 CONFIG_USB_SERIAL_FTDI_SIO=y
 CONFIG_USB_SERIAL_PL2303=y
 CONFIG_USB_GADGET=y
-CONFIG_USB_AT91=m
-CONFIG_USB_ATMEL_USBA=m
-CONFIG_USB_ETH=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_USB_G_ACM_MS=m
-CONFIG_USB_G_MULTI=m
-CONFIG_USB_G_MULTI_CDC=y
+CONFIG_USB_AT91=y
+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
@@ -164,20 +170,23 @@ 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
 # CONFIG_IOMMU_SUPPORT is not set
-CONFIG_EXT2_FS=y
+CONFIG_EXT4_FS=y
 CONFIG_FANOTIFY=y
 CONFIG_VFAT_FS=y
 CONFIG_TMPFS=y
+CONFIG_UBIFS_FS=y
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
 CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
 CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_CODEPAGE_850=y
 CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_UTF8=y
 CONFIG_STRIP_ASM_SYMS=y
 CONFIG_DEBUG_FS=y
 # CONFIG_SCHED_DEBUG is not set
@@ -192,7 +201,7 @@ CONFIG_CRYPTO_ARC4=y
 CONFIG_CRYPTO_USER_API_HASH=m
 CONFIG_CRYPTO_USER_API_SKCIPHER=m
 # CONFIG_CRYPTO_HW is not set
-CONFIG_CRC_CCITT=m
-CONFIG_CRC_ITU_T=m
+CONFIG_CRC_CCITT=y
+CONFIG_CRC_ITU_T=y
 CONFIG_CRC7=m
 CONFIG_AVERAGE=y
index 4ae57a34a582b704d9484bd41ec37fc49ac2f2e2..8b099349c4b14fa92eb4d94dfcea2c128628567e 100644 (file)
@@ -1,10 +1,12 @@
-CONFIG_EXPERIMENTAL=y
 # CONFIG_LOCALVERSION_AUTO is not set
 # CONFIG_SWAP is not set
 CONFIG_SYSVIPC=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_LOG_BUF_SHIFT=14
+CONFIG_USER_NS=y
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_MODULES=y
 CONFIG_MODULE_FORCE_LOAD=y
@@ -35,49 +37,37 @@ CONFIG_AT91_TIMER_HZ=100
 # CONFIG_ARM_THUMB is not set
 CONFIG_PCCARD=y
 CONFIG_AT91_CF=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_PREEMPT=y
 CONFIG_AEABI=y
-CONFIG_LEDS=y
-CONFIG_LEDS_CPU=y
+# CONFIG_COMPACTION is not set
 CONFIG_ZBOOT_ROM_TEXT=0x10000000
 CONFIG_ZBOOT_ROM_BSS=0x20040000
 CONFIG_KEXEC=y
+CONFIG_AUTO_ZRELADDR=y
 CONFIG_FPE_NWFPE=y
 CONFIG_BINFMT_MISC=y
 CONFIG_NET=y
 CONFIG_PACKET=y
 CONFIG_UNIX=y
-CONFIG_XFRM_USER=m
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_PNP=y
 CONFIG_IP_PNP_DHCP=y
 CONFIG_IP_PNP_BOOTP=y
-CONFIG_NET_IPIP=m
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_DIAG is not set
+CONFIG_IPV6=y
 CONFIG_IPV6_PRIVACY=y
 CONFIG_IPV6_ROUTER_PREF=y
 CONFIG_IPV6_ROUTE_INFO=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=m
-CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
-CONFIG_IPV6_TUNNEL=m
-CONFIG_BRIDGE=m
-CONFIG_VLAN_8021Q=m
-CONFIG_BT=m
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_STANDALONE is not set
+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
 CONFIG_MTD=y
 CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_AFS_PARTS=y
 CONFIG_MTD_CHAR=y
 CONFIG_MTD_BLOCK=y
 CONFIG_MTD_CFI=y
@@ -94,55 +84,21 @@ CONFIG_MTD_NAND_PLATFORM=y
 CONFIG_MTD_UBI=y
 CONFIG_MTD_UBI_GLUEBI=y
 CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_NBD=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=8192
-CONFIG_SCSI=y
-CONFIG_BLK_DEV_SD=y
-CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=m
-CONFIG_SCSI_MULTI_LUN=y
-# CONFIG_SCSI_LOWLEVEL is not set
 CONFIG_NETDEVICES=y
-CONFIG_TUN=m
+CONFIG_MII=y
 CONFIG_ARM_AT91_ETHER=y
-CONFIG_PHYLIB=y
 CONFIG_DAVICOM_PHY=y
 CONFIG_SMSC_PHY=y
 CONFIG_MICREL_PHY=y
-CONFIG_PPP=y
-CONFIG_PPP_BSDCOMP=y
-CONFIG_PPP_DEFLATE=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPPOE=m
-CONFIG_PPP_ASYNC=y
-CONFIG_SLIP=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_EPSON2888=y
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=640
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480
+# CONFIG_WLAN is not set
+# CONFIG_INPUT_MOUSEDEV is not set
 CONFIG_INPUT_EVDEV=y
 CONFIG_KEYBOARD_GPIO=y
 # CONFIG_INPUT_MOUSE is not set
 CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_LEGACY_PTY_COUNT=32
+# CONFIG_LEGACY_PTYS is not set
 CONFIG_SERIAL_ATMEL=y
 CONFIG_SERIAL_ATMEL_CONSOLE=y
 CONFIG_HW_RANDOM=y
@@ -151,38 +107,8 @@ CONFIG_I2C_CHARDEV=y
 CONFIG_I2C_GPIO=y
 CONFIG_SPI=y
 CONFIG_SPI_ATMEL=y
-CONFIG_SPI_BITBANG=y
 CONFIG_GPIO_SYSFS=y
-CONFIG_HWMON=m
-CONFIG_SENSORS_ADM1021=m
-CONFIG_SENSORS_ADM1025=m
-CONFIG_SENSORS_ADM1026=m
-CONFIG_SENSORS_ADM1029=m
-CONFIG_SENSORS_ADM1031=m
-CONFIG_SENSORS_ADM9240=m
-CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_GL518SM=m
-CONFIG_SENSORS_GL520SM=m
-CONFIG_SENSORS_IT87=m
-CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM73=m
-CONFIG_SENSORS_LM75=m
-CONFIG_SENSORS_LM77=m
-CONFIG_SENSORS_LM78=m
-CONFIG_SENSORS_LM80=m
-CONFIG_SENSORS_LM83=m
-CONFIG_SENSORS_LM85=m
-CONFIG_SENSORS_LM87=m
-CONFIG_SENSORS_LM90=m
-CONFIG_SENSORS_LM92=m
-CONFIG_SENSORS_MAX1619=m
-CONFIG_SENSORS_PCF8591=m
-CONFIG_SENSORS_SMSC47B397=m
-CONFIG_SENSORS_W83781D=m
-CONFIG_SENSORS_W83791D=m
-CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_W83L785TS=m
+# CONFIG_HWMON is not set
 CONFIG_WATCHDOG=y
 CONFIG_WATCHDOG_NOWAYOUT=y
 CONFIG_AT91RM9200_WATCHDOG=y
@@ -194,43 +120,14 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=y
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 # CONFIG_BACKLIGHT_GENERIC is not set
-CONFIG_DISPLAY_SUPPORT=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
 CONFIG_FONTS=y
-CONFIG_FONT_MINI_4x6=y
 CONFIG_LOGO=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
 CONFIG_USB=y
-CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_DEVICE_CLASS is not set
-CONFIG_USB_MON=y
 CONFIG_USB_OHCI_HCD=y
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_STORAGE=y
-CONFIG_USB_SERIAL=y
-CONFIG_USB_SERIAL_CONSOLE=y
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_FTDI_SIO=y
-CONFIG_USB_SERIAL_KEYSPAN=y
-CONFIG_USB_SERIAL_KEYSPAN_MPR=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19=y
-CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
-CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
-CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
-CONFIG_USB_SERIAL_MCT_U232=y
-CONFIG_USB_SERIAL_PL2303=y
 CONFIG_USB_GADGET=y
-CONFIG_USB_ETH=m
-CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_AT91=y
+CONFIG_USB_G_SERIAL=y
 CONFIG_MMC=y
 CONFIG_MMC_ATMELMCI=y
 CONFIG_NEW_LEDS=y
@@ -240,84 +137,27 @@ CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 CONFIG_LEDS_TRIGGER_HEARTBEAT=y
 CONFIG_LEDS_TRIGGER_GPIO=y
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
 CONFIG_RTC_CLASS=y
-# CONFIG_RTC_HCTOSYS is not set
-CONFIG_RTC_DRV_DS1307=y
-CONFIG_RTC_DRV_PCF8563=y
 CONFIG_RTC_DRV_AT91RM9200=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_FS_XATTR is not set
-CONFIG_REISERFS_FS=y
+CONFIG_EXT4_FS=y
 CONFIG_AUTOFS4_FS=y
-CONFIG_ISO9660_FS=y
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=y
-CONFIG_MSDOS_FS=y
 CONFIG_VFAT_FS=y
-CONFIG_NTFS_FS=m
 CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_SUMMARY=y
-CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_LZO=y
-CONFIG_JFFS2_RUBIN=y
-CONFIG_CRAMFS=y
-CONFIG_MINIX_FS=y
+CONFIG_UBIFS_FS=y
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
 CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
-CONFIG_NFSD=y
-CONFIG_CIFS=m
-CONFIG_PARTITION_ADVANCED=y
-CONFIG_MAC_PARTITION=y
 CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
+CONFIG_NLS_CODEPAGE_850=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
 CONFIG_NLS_UTF8=y
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_DEBUG_FS=y
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_FTRACE is not set
+CONFIG_DEBUG_USER=y
+CONFIG_DEBUG_LL=y
+CONFIG_EARLY_PRINTK=y
 CONFIG_CRYPTO_PCBC=y
 CONFIG_CRYPTO_SHA1=y
+CONFIG_XZ_DEC_ARMTHUMB=y
similarity index 67%
rename from arch/arm/configs/at91sam9g20_defconfig
rename to arch/arm/configs/at91sam9260_9g20_defconfig
index 892e8287ed730e5531676532c87aebaf3d0eb6ab..69b6928d3d9d68a901a6ffc40e711963a6f51094 100644 (file)
@@ -1,4 +1,3 @@
-CONFIG_EXPERIMENTAL=y
 # CONFIG_LOCALVERSION_AUTO is not set
 # CONFIG_SWAP is not set
 CONFIG_SYSVIPC=y
@@ -11,7 +10,14 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_IOSCHED_DEADLINE is not set
 # CONFIG_IOSCHED_CFQ is not set
 CONFIG_ARCH_AT91=y
-CONFIG_ARCH_AT91SAM9G20=y
+CONFIG_ARCH_AT91SAM9260=y
+CONFIG_MACH_AT91SAM9260EK=y
+CONFIG_MACH_CAM60=y
+CONFIG_MACH_SAM9_L9260=y
+CONFIG_MACH_AFEB9260=y
+CONFIG_MACH_QIL_A9260=y
+CONFIG_MACH_CPU9260=y
+CONFIG_MACH_FLEXIBITY=y
 CONFIG_MACH_AT91SAM9G20EK=y
 CONFIG_MACH_AT91SAM9G20EK_2MMC=y
 CONFIG_MACH_CPU9G20=y
@@ -20,10 +26,10 @@ CONFIG_MACH_PORTUXG20=y
 CONFIG_MACH_STAMP9G20=y
 CONFIG_MACH_PCONTROL_G20=y
 CONFIG_MACH_GSIA18S=y
-CONFIG_MACH_USB_A9G20=y
 CONFIG_MACH_SNAPPER_9260=y
 CONFIG_MACH_AT91SAM9_DT=y
 CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
+CONFIG_AT91_SLOW_CLOCK=y
 # CONFIG_ARM_THUMB is not set
 CONFIG_AEABI=y
 CONFIG_LEDS=y
@@ -33,12 +39,14 @@ CONFIG_ZBOOT_ROM_BSS=0x0
 CONFIG_ARM_APPENDED_DTB=y
 CONFIG_ARM_ATAG_DTB_COMPAT=y
 CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw"
+CONFIG_AUTO_ZRELADDR=y
 CONFIG_FPE_NWFPE=y
 CONFIG_NET=y
 CONFIG_PACKET=y
 CONFIG_UNIX=y
 CONFIG_INET=y
 CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
 CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_XFRM_MODE_TRANSPORT is not set
 # CONFIG_INET_XFRM_MODE_TUNNEL is not set
@@ -46,8 +54,11 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_LRO is not set
 # CONFIG_IPV6 is not set
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
 CONFIG_MTD=y
 CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_OF_PARTS=y
 CONFIG_MTD_CHAR=y
 CONFIG_MTD_BLOCK=y
 CONFIG_MTD_DATAFLASH=y
@@ -56,6 +67,8 @@ CONFIG_MTD_NAND_ATMEL=y
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_MISC_DEVICES=y
+CONFIG_EEPROM_AT25=y
 CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_SCSI_MULTI_LUN=y
@@ -63,23 +76,36 @@ CONFIG_SCSI_MULTI_LUN=y
 CONFIG_NETDEVICES=y
 CONFIG_MII=y
 CONFIG_MACB=y
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CHELSIO is not set
+# CONFIG_NET_VENDOR_FARADAY is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+CONFIG_SMSC_PHY=y
 # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
-CONFIG_INPUT_EVDEV=y
-# CONFIG_KEYBOARD_ATKBD is not set
 CONFIG_KEYBOARD_GPIO=y
 # CONFIG_INPUT_MOUSE is not set
-CONFIG_LEGACY_PTY_COUNT=16
+# CONFIG_SERIO is not set
 CONFIG_SERIAL_ATMEL=y
 CONFIG_SERIAL_ATMEL_CONSOLE=y
 CONFIG_HW_RANDOM=y
 CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
 CONFIG_I2C_GPIO=y
 CONFIG_SPI=y
 CONFIG_SPI_ATMEL=y
 CONFIG_SPI_SPIDEV=y
+CONFIG_GPIO_SYSFS=y
 # CONFIG_HWMON is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_NOWAYOUT=y
+CONFIG_AT91SAM9X_WATCHDOG=y
 CONFIG_SOUND=y
 CONFIG_SND=y
 CONFIG_SND_SEQUENCER=y
@@ -94,12 +120,11 @@ CONFIG_USB_MON=y
 CONFIG_USB_OHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_GADGET=y
-CONFIG_USB_ZERO=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
+CONFIG_USB_AT91=y
+CONFIG_USB_G_SERIAL=y
 CONFIG_MMC=y
-CONFIG_MMC_ATMELMCI=m
+CONFIG_MMC_ATMELMCI=y
+CONFIG_MMC_SPI=y
 CONFIG_NEW_LEDS=y
 CONFIG_LEDS_CLASS=y
 CONFIG_LEDS_GPIO=y
@@ -109,15 +134,12 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_DRV_RV3029C2=y
 CONFIG_RTC_DRV_AT91SAM9=y
-CONFIG_EXT2_FS=y
-CONFIG_MSDOS_FS=y
+CONFIG_EXT4_FS=y
 CONFIG_VFAT_FS=y
 CONFIG_TMPFS=y
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_SUMMARY=y
-CONFIG_CRAMFS=y
+CONFIG_UBIFS_FS=y
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
 CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
 CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_CODEPAGE_850=y
@@ -125,3 +147,9 @@ CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_ISO8859_15=y
 CONFIG_NLS_UTF8=y
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
+CONFIG_DEBUG_KERNEL=y
+CONFIG_DEBUG_INFO=y
+# CONFIG_FTRACE is not set
+CONFIG_DEBUG_LL=y
+CONFIG_AT91_DEBUG_LL_DBGU0=y
+CONFIG_EARLY_PRINTK=y
diff --git a/arch/arm/configs/at91sam9260_defconfig b/arch/arm/configs/at91sam9260_defconfig
deleted file mode 100644 (file)
index 05618eb..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-CONFIG_EXPERIMENTAL=y
-# CONFIG_LOCALVERSION_AUTO is not set
-# CONFIG_SWAP is not set
-CONFIG_SYSVIPC=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_SLAB=y
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_AT91=y
-CONFIG_ARCH_AT91SAM9260=y
-CONFIG_ARCH_AT91SAM9260_SAM9XE=y
-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
-CONFIG_MACH_SNAPPER_9260=y
-CONFIG_MACH_AT91SAM9_DT=y
-CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
-# CONFIG_ARM_THUMB is not set
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_ARM_APPENDED_DTB=y
-CONFIG_ARM_ATAG_DTB_COMPAT=y
-CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw"
-CONFIG_FPE_NWFPE=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_BOOTP=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_LRO is not set
-# CONFIG_IPV6 is not set
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_SIZE=8192
-CONFIG_SCSI=y
-CONFIG_BLK_DEV_SD=y
-CONFIG_SCSI_MULTI_LUN=y
-CONFIG_NETDEVICES=y
-CONFIG_MII=y
-CONFIG_MACB=y
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_SERIO is not set
-CONFIG_SERIAL_ATMEL=y
-CONFIG_SERIAL_ATMEL_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_GPIO=y
-# CONFIG_HWMON is not set
-CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_NOWAYOUT=y
-CONFIG_AT91SAM9X_WATCHDOG=y
-# CONFIG_USB_HID is not set
-CONFIG_USB=y
-CONFIG_USB_DEVICEFS=y
-CONFIG_USB_MON=y
-CONFIG_USB_OHCI_HCD=y
-CONFIG_USB_STORAGE=y
-CONFIG_USB_STORAGE_DEBUG=y
-CONFIG_USB_GADGET=y
-CONFIG_USB_ZERO=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_AT91SAM9=y
-CONFIG_EXT2_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_TMPFS=y
-CONFIG_CRAMFS=y
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_850=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_DEBUG_KERNEL=y
-CONFIG_DEBUG_USER=y
-CONFIG_DEBUG_LL=y
similarity index 91%
rename from arch/arm/configs/at91sam9261_defconfig
rename to arch/arm/configs/at91sam9261_9g10_defconfig
index c87beb973b378d425c0c81a6922fdbb1a2d7f4c1..9d35cd81c61193db3ce07129afcc0a7ea550c7ee 100644 (file)
@@ -17,6 +17,7 @@ CONFIG_MODULE_UNLOAD=y
 CONFIG_ARCH_AT91=y
 CONFIG_ARCH_AT91SAM9261=y
 CONFIG_MACH_AT91SAM9261EK=y
+CONFIG_MACH_AT91SAM9G10EK=y
 CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
 # CONFIG_ARM_THUMB is not set
 CONFIG_AEABI=y
@@ -38,11 +39,11 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_LRO is not set
 # CONFIG_IPV6 is not set
 CONFIG_CFG80211=y
-CONFIG_LIB80211=y
 CONFIG_MAC80211=y
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
 CONFIG_MTD=y
-CONFIG_MTD_PARTITIONS=y
 CONFIG_MTD_CMDLINE_PARTS=y
 CONFIG_MTD_BLOCK=y
 CONFIG_MTD_NAND=y
@@ -51,17 +52,13 @@ CONFIG_MTD_UBI=y
 CONFIG_MTD_UBI_GLUEBI=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=8192
-CONFIG_MISC_DEVICES=y
 CONFIG_ATMEL_TCLIB=y
 CONFIG_ATMEL_SSC=y
 CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_SCSI_MULTI_LUN=y
 CONFIG_NETDEVICES=y
-CONFIG_NET_ETHERNET=y
 CONFIG_DM9000=y
-# CONFIG_NETDEV_1000 is not set
-# CONFIG_NETDEV_10000 is not set
 CONFIG_USB_ZD1201=m
 CONFIG_RTL8187=m
 CONFIG_LIBERTAS=m
@@ -118,15 +115,11 @@ CONFIG_SND_AT73C213=y
 CONFIG_SND_USB_AUDIO=m
 # CONFIG_USB_HID is not set
 CONFIG_USB=y
-CONFIG_USB_DEVICEFS=y
 CONFIG_USB_OHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_GADGET=y
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
+CONFIG_USB_AT91=y
+CONFIG_USB_G_SERIAL=y
 CONFIG_MMC=y
 CONFIG_MMC_ATMELMCI=m
 CONFIG_NEW_LEDS=y
@@ -147,12 +140,10 @@ CONFIG_SQUASHFS=y
 CONFIG_SQUASHFS_LZO=y
 CONFIG_SQUASHFS_XZ=y
 CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
 CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_CODEPAGE_850=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_ISO8859_15=y
 CONFIG_NLS_UTF8=y
-CONFIG_FTRACE=y
 CONFIG_CRC_CCITT=m
index 36fed66bd4b5590c73ba2750683a3ec8b3252871..e40026364e5794af18340c9318ec8307fdbbb5c2 100644 (file)
@@ -1,6 +1,4 @@
-CONFIG_EXPERIMENTAL=y
 # CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_KERNEL_LZMA=y
 # CONFIG_SWAP is not set
 CONFIG_SYSVIPC=y
 CONFIG_IKCONFIG=y
@@ -17,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
@@ -48,9 +45,11 @@ CONFIG_IP_PIMSM_V2=y
 # CONFIG_INET_LRO is not set
 # CONFIG_INET_DIAG is not set
 CONFIG_IPV6=y
+# CONFIG_WIRELESS is not set
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
 CONFIG_MTD=y
-CONFIG_MTD_PARTITIONS=y
 CONFIG_MTD_CMDLINE_PARTS=y
 CONFIG_MTD_CHAR=y
 CONFIG_MTD_BLOCK=y
@@ -65,7 +64,6 @@ CONFIG_MTD_UBI_GLUEBI=y
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=8192
-CONFIG_MISC_DEVICES=y
 CONFIG_ATMEL_PWM=y
 CONFIG_ATMEL_TCLIB=y
 CONFIG_SCSI=y
@@ -73,23 +71,18 @@ CONFIG_BLK_DEV_SD=y
 CONFIG_SCSI_MULTI_LUN=y
 CONFIG_NETDEVICES=y
 CONFIG_MII=y
-CONFIG_SMSC_PHY=y
-CONFIG_NET_ETHERNET=y
 CONFIG_MACB=y
-# CONFIG_NETDEV_1000 is not set
-# CONFIG_NETDEV_10000 is not set
-CONFIG_USB_ZD1201=m
+CONFIG_SMSC_PHY=y
+# CONFIG_WLAN is not set
 CONFIG_INPUT_POLLDEV=m
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=240
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
+# CONFIG_INPUT_MOUSEDEV is not set
 CONFIG_INPUT_EVDEV=y
 # CONFIG_KEYBOARD_ATKBD is not set
 CONFIG_KEYBOARD_GPIO=y
 # CONFIG_INPUT_MOUSE is not set
 CONFIG_INPUT_TOUCHSCREEN=y
 CONFIG_TOUCHSCREEN_ADS7846=y
-CONFIG_LEGACY_PTY_COUNT=4
+# CONFIG_LEGACY_PTYS is not set
 CONFIG_SERIAL_ATMEL=y
 CONFIG_SERIAL_ATMEL_CONSOLE=y
 CONFIG_HW_RANDOM=y
@@ -98,6 +91,7 @@ CONFIG_I2C_CHARDEV=y
 CONFIG_I2C_GPIO=y
 CONFIG_SPI=y
 CONFIG_SPI_ATMEL=y
+CONFIG_GPIO_SYSFS=y
 # CONFIG_HWMON is not set
 CONFIG_WATCHDOG=y
 CONFIG_WATCHDOG_NOWAYOUT=y
@@ -107,9 +101,9 @@ CONFIG_FB_ATMEL=y
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=y
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_ATMEL_LCDC=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FONTS=y
 CONFIG_LOGO=y
 CONFIG_SOUND=y
 CONFIG_SND=y
@@ -124,16 +118,12 @@ CONFIG_SND_ATMEL_AC97C=y
 # CONFIG_SND_SPI is not set
 CONFIG_SND_USB_AUDIO=m
 CONFIG_USB=y
-CONFIG_USB_DEVICEFS=y
 CONFIG_USB_MON=y
 CONFIG_USB_OHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_GADGET=y
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
+CONFIG_USB_ATMEL_USBA=y
+CONFIG_USB_G_SERIAL=y
 CONFIG_MMC=y
 CONFIG_SDIO_UART=m
 CONFIG_MMC_ATMELMCI=m
@@ -145,22 +135,18 @@ CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_HEARTBEAT=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_DRV_AT91SAM9=y
-CONFIG_EXT2_FS=y
-CONFIG_FUSE_FS=m
+CONFIG_EXT4_FS=y
 CONFIG_VFAT_FS=y
 CONFIG_TMPFS=y
-CONFIG_JFFS2_FS=y
 CONFIG_UBIFS_FS=y
 CONFIG_UBIFS_FS_ADVANCED_COMPR=y
-CONFIG_CRAMFS=y
 CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
 CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
 CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_CODEPAGE_850=y
 CONFIG_NLS_ISO8859_1=y
-CONFIG_FTRACE=y
+CONFIG_NLS_UTF8=y
 CONFIG_DEBUG_USER=y
 CONFIG_XZ_DEC=y
index 18964cdacd68d3b0300ff211f958b94676c3bef2..08166cd4e7d618700bfcd39913da54650bf53532 100644 (file)
@@ -1,4 +1,3 @@
-CONFIG_EXPERIMENTAL=y
 # CONFIG_LOCALVERSION_AUTO is not set
 # CONFIG_SWAP is not set
 CONFIG_SYSVIPC=y
@@ -23,8 +22,6 @@ CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
 CONFIG_AT91_SLOW_CLOCK=y
 CONFIG_AEABI=y
 # CONFIG_OABI_COMPAT is not set
-CONFIG_LEDS=y
-CONFIG_LEDS_CPU=y
 CONFIG_UACCESS_WITH_MEMCPY=y
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
@@ -36,6 +33,9 @@ CONFIG_PACKET=y
 CONFIG_UNIX=y
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
 # CONFIG_INET_XFRM_MODE_TRANSPORT is not set
 # CONFIG_INET_XFRM_MODE_TUNNEL is not set
 # CONFIG_INET_XFRM_MODE_BEET is not set
@@ -45,9 +45,6 @@ CONFIG_IPV6=y
 # CONFIG_INET6_XFRM_MODE_TUNNEL is not set
 # CONFIG_INET6_XFRM_MODE_BEET is not set
 CONFIG_IPV6_SIT_6RD=y
-CONFIG_CFG80211=y
-CONFIG_LIB80211=y
-CONFIG_MAC80211=y
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 CONFIG_DEVTMPFS=y
 CONFIG_DEVTMPFS_MOUNT=y
@@ -61,13 +58,14 @@ CONFIG_MTD_DATAFLASH=y
 CONFIG_MTD_NAND=y
 CONFIG_MTD_NAND_ATMEL=y
 CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_GLUEBI=y
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
 CONFIG_BLK_DEV_RAM_SIZE=8192
-CONFIG_MISC_DEVICES=y
 CONFIG_ATMEL_PWM=y
 CONFIG_ATMEL_TCLIB=y
+CONFIG_ATMEL_SSC=y
 CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_SCSI_MULTI_LUN=y
@@ -76,67 +74,40 @@ CONFIG_NETDEVICES=y
 CONFIG_MII=y
 CONFIG_MACB=y
 CONFIG_DAVICOM_PHY=y
-CONFIG_LIBERTAS_THINFIRM=m
-CONFIG_LIBERTAS_THINFIRM_USB=m
-CONFIG_AT76C50X_USB=m
-CONFIG_USB_ZD1201=m
-CONFIG_RTL8187=m
-CONFIG_ATH_COMMON=m
-CONFIG_ATH9K=m
-CONFIG_CARL9170=m
-CONFIG_B43=m
-CONFIG_B43_PHY_N=y
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_SDIO=m
-CONFIG_LIBERTAS_SPI=m
-CONFIG_RT2X00=m
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT53XX=y
-CONFIG_RT2800USB_UNKNOWN=y
-CONFIG_RTL8192CU=m
-CONFIG_WL1251=m
-CONFIG_WL1251_SDIO=m
-CONFIG_WL12XX_MENU=m
-CONFIG_WL12XX=m
-CONFIG_WL12XX_SDIO=m
-CONFIG_ZD1211RW=m
-CONFIG_MWIFIEX=m
-CONFIG_MWIFIEX_SDIO=m
-CONFIG_INPUT_POLLDEV=m
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=480
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=272
+# CONFIG_INPUT_MOUSEDEV is not set
 CONFIG_INPUT_JOYDEV=y
 CONFIG_INPUT_EVDEV=y
 # CONFIG_KEYBOARD_ATKBD is not set
-CONFIG_KEYBOARD_QT1070=m
-CONFIG_KEYBOARD_QT2160=m
+CONFIG_KEYBOARD_QT1070=y
+CONFIG_KEYBOARD_QT2160=y
 CONFIG_KEYBOARD_GPIO=y
 # CONFIG_INPUT_MOUSE is not set
 CONFIG_INPUT_TOUCHSCREEN=y
 CONFIG_TOUCHSCREEN_ATMEL_MXT=m
 CONFIG_TOUCHSCREEN_ATMEL_TSADCC=y
 # CONFIG_SERIO is not set
-CONFIG_LEGACY_PTY_COUNT=4
+# CONFIG_LEGACY_PTYS is not set
 CONFIG_SERIAL_ATMEL=y
 CONFIG_SERIAL_ATMEL_CONSOLE=y
 CONFIG_HW_RANDOM=y
 CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
 CONFIG_I2C_GPIO=y
 CONFIG_SPI=y
 CONFIG_SPI_ATMEL=y
 # CONFIG_HWMON is not set
 CONFIG_FB=y
 CONFIG_FB_ATMEL=y
-CONFIG_FB_UDL=m
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
-# CONFIG_LCD_CLASS_DEVICE is not set
+CONFIG_LCD_CLASS_DEVICE=y
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 CONFIG_BACKLIGHT_ATMEL_LCDC=y
+CONFIG_BACKLIGHT_ATMEL_PWM=y
 # CONFIG_BACKLIGHT_GENERIC is not set
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FONTS=y
+CONFIG_LOGO=y
 CONFIG_SOUND=y
 CONFIG_SND=y
 CONFIG_SND_SEQUENCER=y
@@ -148,33 +119,25 @@ CONFIG_SND_PCM_OSS=y
 # CONFIG_SND_ARM is not set
 CONFIG_SND_ATMEL_AC97C=y
 # CONFIG_SND_SPI is not set
-CONFIG_SND_USB_AUDIO=m
+# CONFIG_SND_USB is not set
 # CONFIG_USB_HID is not set
 CONFIG_USB=y
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_DEVICE_CLASS is not set
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
 CONFIG_USB_ACM=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_GADGET=y
-CONFIG_USB_ATMEL_USBA=m
-CONFIG_USB_ZERO=m
-CONFIG_USB_AUDIO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_EEM=y
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_USB_G_MULTI=m
+CONFIG_USB_ATMEL_USBA=y
+CONFIG_USB_G_MULTI=y
 CONFIG_USB_G_MULTI_CDC=y
 CONFIG_MMC=y
 # CONFIG_MMC_BLOCK_BOUNCE is not set
-CONFIG_SDIO_UART=m
 CONFIG_MMC_ATMELMCI=y
-CONFIG_LEDS_ATMEL_PWM=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
 CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 CONFIG_LEDS_TRIGGER_HEARTBEAT=y
 CONFIG_LEDS_TRIGGER_GPIO=y
@@ -184,17 +147,14 @@ CONFIG_DMADEVICES=y
 CONFIG_AT_HDMAC=y
 CONFIG_DMATEST=m
 # CONFIG_IOMMU_SUPPORT is not set
-CONFIG_EXT2_FS=y
+CONFIG_EXT4_FS=y
 CONFIG_FANOTIFY=y
 CONFIG_VFAT_FS=y
 CONFIG_TMPFS=y
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_SUMMARY=y
-CONFIG_CRAMFS=m
-CONFIG_SQUASHFS=m
-CONFIG_SQUASHFS_EMBEDDED=y
+CONFIG_UBIFS_FS=y
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
 CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
+CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_CODEPAGE_850=y
 CONFIG_NLS_ISO8859_1=y
@@ -203,6 +163,8 @@ CONFIG_STRIP_ASM_SYMS=y
 CONFIG_DEBUG_MEMORY_INIT=y
 # CONFIG_FTRACE is not set
 CONFIG_DEBUG_USER=y
+CONFIG_DEBUG_LL=y
+CONFIG_EARLY_PRINTK=y
 CONFIG_CRYPTO_ECB=y
 # CONFIG_CRYPTO_ANSI_CPRNG is not set
 CONFIG_CRYPTO_USER_API_HASH=m
index 6ec010f248b5b54a73cea23d06691c207e3ea468..06686e7303a95d8e739fea7f635438e0bf91bc6a 100644 (file)
@@ -37,6 +37,8 @@ CONFIG_MACH_IMX51_DT=y
 CONFIG_MACH_EUKREA_CPUIMX51SD=y
 CONFIG_SOC_IMX53=y
 CONFIG_SOC_IMX6Q=y
+CONFIG_SOC_IMX6SL=y
+CONFIG_SOC_VF610=y
 CONFIG_MXC_PWM=y
 CONFIG_SMP=y
 CONFIG_VMSPLIT_2G=y
@@ -47,6 +49,7 @@ CONFIG_CMDLINE="noinitrd console=ttymxc0,115200"
 CONFIG_VFP=y
 CONFIG_NEON=y
 CONFIG_BINFMT_MISC=m
+CONFIG_PM_RUNTIME=y
 CONFIG_PM_DEBUG=y
 CONFIG_PM_TEST_SUSPEND=y
 CONFIG_NET=y
@@ -170,6 +173,7 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=y
 CONFIG_LCD_L4F00242T03=y
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_PWM=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
 CONFIG_FONTS=y
@@ -182,6 +186,7 @@ CONFIG_SND_SOC=y
 CONFIG_SND_IMX_SOC=y
 CONFIG_SND_SOC_PHYCORE_AC97=y
 CONFIG_SND_SOC_EUKREA_TLV320=y
+CONFIG_SND_SOC_IMX_WM8962=y
 CONFIG_SND_SOC_IMX_SGTL5000=y
 CONFIG_SND_SOC_IMX_MC13783=y
 CONFIG_USB=y
@@ -208,10 +213,15 @@ CONFIG_IMX_SDMA=y
 CONFIG_MXS_DMA=y
 CONFIG_STAGING=y
 CONFIG_DRM_IMX=y
+CONFIG_DRM_IMX_TVE=y
+CONFIG_DRM_IMX_FB_HELPER=y
+CONFIG_DRM_IMX_PARALLEL_DISPLAY=y
 CONFIG_DRM_IMX_IPUV3_CORE=y
 CONFIG_DRM_IMX_IPUV3=y
 CONFIG_COMMON_CLK_DEBUG=y
 # CONFIG_IOMMU_SUPPORT is not set
+CONFIG_PWM=y
+CONFIG_PWM_IMX=y
 CONFIG_EXT2_FS=y
 CONFIG_EXT2_FS_XATTR=y
 CONFIG_EXT2_FS_POSIX_ACL=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 4d0dc3c160630024ac171781acfca62ae07b1527..f6e78f83c3c3f593f88033919f7da3ec8f1b5b61 100644 (file)
@@ -26,7 +26,9 @@ CONFIG_AEABI=y
 CONFIG_UACCESS_WITH_MEMCPY=y
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_ARM_APPENDED_DTB=y
 CONFIG_CMDLINE="console=ttyS0,115200 initrd=0x21100000,25165824 root=/dev/ram0 rw"
+CONFIG_KEXEC=y
 CONFIG_AUTO_ZRELADDR=y
 CONFIG_VFP=y
 # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
@@ -39,6 +41,9 @@ CONFIG_UNIX=y
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
 # CONFIG_INET_XFRM_MODE_TRANSPORT is not set
 # CONFIG_INET_XFRM_MODE_TUNNEL is not set
 # CONFIG_INET_XFRM_MODE_BEET is not set
@@ -68,6 +73,8 @@ CONFIG_MTD_M25P80=y
 CONFIG_MTD_NAND=y
 CONFIG_MTD_NAND_ATMEL=y
 CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_GLUEBI=y
+CONFIG_PROC_DEVICETREE=y
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -95,7 +102,19 @@ CONFIG_MACB=y
 # CONFIG_NET_VENDOR_STMICRO is not set
 # CONFIG_NET_VENDOR_WIZNET is not set
 CONFIG_MICREL_PHY=y
-# CONFIG_WLAN is not set
+CONFIG_LIBERTAS_THINFIRM=m
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_RTL8187=m
+CONFIG_RT2X00=m
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_USB=m
 # CONFIG_INPUT_MOUSEDEV is not set
 CONFIG_INPUT_EVDEV=y
 # CONFIG_KEYBOARD_ATKBD is not set
@@ -133,9 +152,13 @@ CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
 CONFIG_USB_ACM=y
 CONFIG_USB_STORAGE=y
+CONFIG_USB_SERIAL=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_FTDI_SIO=y
+CONFIG_USB_SERIAL_PL2303=y
 CONFIG_USB_GADGET=y
-CONFIG_USB_AT91=y
-CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_ATMEL_USBA=y
+CONFIG_USB_G_SERIAL=y
 CONFIG_MMC=y
 # CONFIG_MMC_BLOCK_BOUNCE is not set
 CONFIG_MMC_ATMELMCI=y
@@ -151,18 +174,18 @@ CONFIG_DMADEVICES=y
 # CONFIG_IOMMU_SUPPORT is not set
 CONFIG_IIO=y
 CONFIG_AT91_ADC=y
-CONFIG_EXT2_FS=y
+CONFIG_EXT4_FS=y
 CONFIG_FANOTIFY=y
 CONFIG_VFAT_FS=y
 CONFIG_TMPFS=y
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_SUMMARY=y
 CONFIG_UBIFS_FS=y
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
 CONFIG_NFS_FS=y
 CONFIG_ROOT_NFS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_CODEPAGE_850=y
 CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_UTF8=y
 CONFIG_STRIP_ASM_SYMS=y
 CONFIG_DEBUG_FS=y
 # CONFIG_SCHED_DEBUG is not set
index 91d38e38a0b4a0d1fcbb2eae7c4cb064abf68293..29da84e183f4a7939ff9e9bb69c96f1b93f68538 100644 (file)
 #define IMX6Q_UART_BASE_ADDR(n)        IMX6Q_UART##n##_BASE_ADDR
 #define IMX6Q_UART_BASE(n)     IMX6Q_UART_BASE_ADDR(n)
 
+#define IMX6SL_UART1_BASE_ADDR 0x02020000
+#define IMX6SL_UART2_BASE_ADDR 0x02024000
+#define IMX6SL_UART3_BASE_ADDR 0x02034000
+#define IMX6SL_UART4_BASE_ADDR 0x02038000
+#define IMX6SL_UART5_BASE_ADDR 0x02018000
+#define IMX6SL_UART_BASE_ADDR(n) IMX6SL_UART##n##_BASE_ADDR
+#define IMX6SL_UART_BASE(n)    IMX6SL_UART_BASE_ADDR(n)
+
 #define IMX_DEBUG_UART_BASE(soc) soc##_UART_BASE(CONFIG_DEBUG_IMX_UART_PORT)
 
 #ifdef CONFIG_DEBUG_IMX1_UART
@@ -83,6 +91,8 @@
 #define UART_PADDR     IMX_DEBUG_UART_BASE(IMX53)
 #elif defined(CONFIG_DEBUG_IMX6Q_UART)
 #define UART_PADDR     IMX_DEBUG_UART_BASE(IMX6Q)
+#elif defined(CONFIG_DEBUG_IMX6SL_UART)
+#define UART_PADDR     IMX_DEBUG_UART_BASE(IMX6SL)
 #endif
 
 #endif /* __DEBUG_IMX_UART_H */
index 6c24985515a227a291997f2929b322f749c039ad..6cd554a4e73ce16536aa8fa957e6d3c5917bf9e5 100644 (file)
@@ -14,15 +14,11 @@ config ARCH_AT91RM9200
        select SOC_AT91RM9200
 
 config ARCH_AT91SAM9260
-       bool "AT91SAM9260 or AT91SAM9XE"
+       bool "AT91SAM9260 or AT91SAM9XE or AT91SAM9G20"
        select SOC_AT91SAM9260
 
 config ARCH_AT91SAM9261
-       bool "AT91SAM9261"
-       select SOC_AT91SAM9261
-
-config ARCH_AT91SAM9G10
-       bool "AT91SAM9G10"
+       bool "AT91SAM9261 or AT91SAM9G10"
        select SOC_AT91SAM9261
 
 config ARCH_AT91SAM9263
@@ -33,10 +29,6 @@ config ARCH_AT91SAM9RL
        bool "AT91SAM9RL"
        select SOC_AT91SAM9RL
 
-config ARCH_AT91SAM9G20
-       bool "AT91SAM9G20"
-       select SOC_AT91SAM9260
-
 config ARCH_AT91SAM9G45
        bool "AT91SAM9G45"
        select SOC_AT91SAM9G45
@@ -50,6 +42,14 @@ config ARCH_AT91X40
 
 endchoice
 
+config ARCH_AT91SAM9G20
+       bool
+       select ARCH_AT91SAM9260
+
+config ARCH_AT91SAM9G10
+       bool
+       select ARCH_AT91SAM9261
+
 # ----------------------------------------------------------
 
 if ARCH_AT91RM9200
@@ -183,12 +183,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
@@ -207,76 +201,6 @@ config MACH_FLEXIBITY
          Select this if you are using Flexibity Connect board
          <http://www.flexibity.com>
 
-endif
-
-# ----------------------------------------------------------
-
-if ARCH_AT91SAM9261
-
-comment "AT91SAM9261 Board Type"
-
-config MACH_AT91SAM9261EK
-       bool "Atmel AT91SAM9261-EK Evaluation Kit"
-       select HAVE_AT91_DATAFLASH_CARD
-       help
-         Select this if you are using Atmel's AT91SAM9261-EK Evaluation Kit.
-         <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3820>
-
-endif
-
-# ----------------------------------------------------------
-
-if ARCH_AT91SAM9G10
-
-comment "AT91SAM9G10 Board Type"
-
-config MACH_AT91SAM9G10EK
-       bool "Atmel AT91SAM9G10-EK Evaluation Kit"
-       select HAVE_AT91_DATAFLASH_CARD
-       help
-         Select this if you are using Atmel's AT91SAM9G10-EK Evaluation Kit.
-         <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4588>
-
-endif
-
-# ----------------------------------------------------------
-
-if ARCH_AT91SAM9263
-
-comment "AT91SAM9263 Board Type"
-
-config MACH_AT91SAM9263EK
-       bool "Atmel AT91SAM9263-EK Evaluation Kit"
-       select HAVE_AT91_DATAFLASH_CARD
-       help
-         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
-
-# ----------------------------------------------------------
-
-if ARCH_AT91SAM9RL
-
-comment "AT91SAM9RL Board Type"
-
-config MACH_AT91SAM9RLEK
-       bool "Atmel AT91SAM9RL-EK Evaluation Kit"
-       help
-         Select this if you are using Atmel's AT91SAM9RL-EK Evaluation Kit.
-
-endif
-
-# ----------------------------------------------------------
-
-if ARCH_AT91SAM9G20
-
 comment "AT91SAM9G20 Board Type"
 
 config MACH_AT91SAM9G20EK
@@ -334,24 +258,64 @@ 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
+config MACH_SNAPPER_9260
+       bool "Bluewater Systems Snapper 9260/9G20 module"
        help
-         Select this if you are using a Calao Systems USB-A9G20.
-         <http://www.calao-systems.com>
+         Select this if you are using the Bluewater Systems Snapper 9260 or
+         Snapper 9G20 modules.
+         <http://www.bluewatersys.com/>
+endif
+
+# ----------------------------------------------------------
+
+if ARCH_AT91SAM9261
+
+comment "AT91SAM9261 Board Type"
+
+config MACH_AT91SAM9261EK
+       bool "Atmel AT91SAM9261-EK Evaluation Kit"
+       select HAVE_AT91_DATAFLASH_CARD
+       help
+         Select this if you are using Atmel's AT91SAM9261-EK Evaluation Kit.
+         <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3820>
+
+comment "AT91SAM9G10 Board Type"
+
+config MACH_AT91SAM9G10EK
+       bool "Atmel AT91SAM9G10-EK Evaluation Kit"
+       select HAVE_AT91_DATAFLASH_CARD
+       help
+         Select this if you are using Atmel's AT91SAM9G10-EK Evaluation Kit.
+         <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4588>
 
 endif
 
-if (ARCH_AT91SAM9260 || ARCH_AT91SAM9G20)
-comment "AT91SAM9260/AT91SAM9G20 boards"
+# ----------------------------------------------------------
+
+if ARCH_AT91SAM9263
+
+comment "AT91SAM9263 Board Type"
+
+config MACH_AT91SAM9263EK
+       bool "Atmel AT91SAM9263-EK Evaluation Kit"
+       select HAVE_AT91_DATAFLASH_CARD
+       help
+         Select this if you are using Atmel's AT91SAM9263-EK Evaluation Kit.
+         <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4057>
+
+endif
+
+# ----------------------------------------------------------
+
+if ARCH_AT91SAM9RL
+
+comment "AT91SAM9RL Board Type"
+
+config MACH_AT91SAM9RLEK
+       bool "Atmel AT91SAM9RL-EK Evaluation Kit"
+       help
+         Select this if you are using Atmel's AT91SAM9RL-EK Evaluation Kit.
 
-config MACH_SNAPPER_9260
-        bool "Bluewater Systems Snapper 9260/9G20 module"
-        help
-          Select this if you are using the Bluewater Systems Snapper 9260 or
-          Snapper 9G20 modules.
-          <http://www.bluewatersys.com/>
 endif
 
 # ----------------------------------------------------------
index 788562dccb435f1d8b3ec0be9a79af58cb797a13..d07bcfad444190887663cb6245b5849954b82f90 100644 (file)
@@ -27,10 +27,8 @@ obj-$(CONFIG_SOC_SAMA5D3)    += sama5d3.o
 obj-$(CONFIG_ARCH_AT91RM9200)  += at91rm9200_devices.o
 obj-$(CONFIG_ARCH_AT91SAM9260) += at91sam9260_devices.o
 obj-$(CONFIG_ARCH_AT91SAM9261) += at91sam9261_devices.o
-obj-$(CONFIG_ARCH_AT91SAM9G10) += at91sam9261_devices.o
 obj-$(CONFIG_ARCH_AT91SAM9263) += at91sam9263_devices.o
 obj-$(CONFIG_ARCH_AT91SAM9RL)  += at91sam9rl_devices.o
-obj-$(CONFIG_ARCH_AT91SAM9G20) += at91sam9260_devices.o
 obj-$(CONFIG_ARCH_AT91SAM9G45) += at91sam9g45_devices.o
 obj-$(CONFIG_ARCH_AT91X40)     += at91x40.o at91x40_time.o
 
@@ -55,7 +53,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
@@ -67,7 +64,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
@@ -80,7 +76,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 8b7fce06765232b38e914571624fbe8da2bbb332..95a418a7aabe14f83fc15477f3c149370bf50543 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),
 };
 
 /*
index b446645c772761d28dcf2c7af2a87756142f0285..d3437624ca4e213092132bd6a16195e8668a9d7e 100644 (file)
@@ -264,11 +264,7 @@ static void __init ek_add_device_ts(void) {}
  */
 static struct at73c213_board_info at73c213_data = {
        .ssc_id         = 1,
-#if defined(CONFIG_MACH_AT91SAM9261EK)
-       .shortname      = "AT91SAM9261-EK external DAC",
-#else
-       .shortname      = "AT91SAM9G10-EK external DAC",
-#endif
+       .shortname      = "AT91SAM9261/9G10-EK external DAC",
 };
 
 #if defined(CONFIG_SND_AT73C213) || defined(CONFIG_SND_AT73C213_MODULE)
@@ -412,9 +408,6 @@ static struct atmel_lcdfb_info __initdata ek_lcdc_data = {
        .default_monspecs               = &at91fb_default_stn_monspecs,
        .atmel_lcdfb_power_control      = at91_lcdc_stn_power_control,
        .guard_time                     = 1,
-#if defined(CONFIG_MACH_AT91SAM9G10EK)
-       .lcd_wiring_mode                = ATMEL_LCDC_WIRING_RGB,
-#endif
 };
 
 #else
@@ -468,9 +461,6 @@ static struct atmel_lcdfb_info __initdata ek_lcdc_data = {
        .default_monspecs               = &at91fb_default_tft_monspecs,
        .atmel_lcdfb_power_control      = at91_lcdc_tft_power_control,
        .guard_time                     = 1,
-#if defined(CONFIG_MACH_AT91SAM9G10EK)
-       .lcd_wiring_mode                = ATMEL_LCDC_WIRING_RGB,
-#endif
 };
 #endif
 
@@ -574,6 +564,10 @@ static void __init ek_board_init(void)
        /* DBGU on ttyS0. (Rx & Tx only) */
        at91_register_uart(0, 0, 0);
        at91_add_device_serial();
+
+       if (cpu_is_at91sam9g10())
+               ek_lcdc_data.lcd_wiring_mode = ATMEL_LCDC_WIRING_RGB;
+
        /* USB Host */
        at91_add_device_usbh(&ek_usbh_data);
        /* USB Device */
@@ -606,11 +600,17 @@ static void __init ek_board_init(void)
        at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
 }
 
-#if defined(CONFIG_MACH_AT91SAM9261EK)
 MACHINE_START(AT91SAM9261EK, "Atmel AT91SAM9261-EK")
-#else
+       /* Maintainer: Atmel */
+       .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(AT91SAM9G10EK, "Atmel AT91SAM9G10-EK")
-#endif
        /* Maintainer: Atmel */
        .init_time      = at91sam926x_pit_init,
        .map_io         = at91_map_io,
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 ba44328464f37c0cdce9eb9039fcfce8ad8dc743..f25cf888f3d4954bdc944e4df77bd70f715a5374 100644 (file)
@@ -56,9 +56,6 @@ config MXC_USE_EPIT
          uses the same clocks as the GPT. Anyway, on some systems the GPT
          may be in use for other purposes.
 
-config MXC_ULPI
-       bool
-
 config ARCH_HAS_RNGA
        bool
 
@@ -233,7 +230,7 @@ config MACH_EUKREA_CPUIMX25SD
        select IMX_HAVE_PLATFORM_MXC_EHCI
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
-       select MXC_ULPI if USB_ULPI
+       select USB_ULPI_VIEWPORT if USB_ULPI
        select SOC_IMX25
 
 choice
@@ -284,7 +281,7 @@ config MACH_PCM038
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_MXC_W1
        select IMX_HAVE_PLATFORM_SPI_IMX
-       select MXC_ULPI if USB_ULPI
+       select USB_ULPI_VIEWPORT if USB_ULPI
        select SOC_IMX27
        help
          Include support for phyCORE-i.MX27 (aka pcm038) platform. This
@@ -314,7 +311,7 @@ config MACH_CPUIMX27
        select IMX_HAVE_PLATFORM_MXC_EHCI
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_MXC_W1
-       select MXC_ULPI if USB_ULPI
+       select USB_ULPI_VIEWPORT if USB_ULPI
        select SOC_IMX27
        help
          Include support for Eukrea CPUIMX27 platform. This includes
@@ -369,7 +366,7 @@ config MACH_MX27_3DS
        select IMX_HAVE_PLATFORM_MXC_MMC
        select IMX_HAVE_PLATFORM_SPI_IMX
        select MXC_DEBUG_BOARD
-       select MXC_ULPI if USB_ULPI
+       select USB_ULPI_VIEWPORT if USB_ULPI
        select SOC_IMX27
        help
          Include support for MX27PDK platform. This includes specific
@@ -414,7 +411,7 @@ config MACH_PCA100
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_MXC_W1
        select IMX_HAVE_PLATFORM_SPI_IMX
-       select MXC_ULPI if USB_ULPI
+       select USB_ULPI_VIEWPORT if USB_ULPI
        select SOC_IMX27
        help
          Include support for phyCARD-s (aka pca100) platform. This
@@ -481,7 +478,7 @@ config MACH_MX31LILLY
        select IMX_HAVE_PLATFORM_MXC_EHCI
        select IMX_HAVE_PLATFORM_MXC_MMC
        select IMX_HAVE_PLATFORM_SPI_IMX
-       select MXC_ULPI if USB_ULPI
+       select USB_ULPI_VIEWPORT if USB_ULPI
        select SOC_IMX31
        help
          Include support for mx31 based LILLY1131 modules. This includes
@@ -497,7 +494,7 @@ config MACH_MX31LITE
        select IMX_HAVE_PLATFORM_MXC_RTC
        select IMX_HAVE_PLATFORM_SPI_IMX
        select LEDS_GPIO_REGISTER
-       select MXC_ULPI if USB_ULPI
+       select USB_ULPI_VIEWPORT if USB_ULPI
        select SOC_IMX31
        help
          Include support for MX31 LITEKIT platform. This includes specific
@@ -514,7 +511,7 @@ config MACH_PCM037
        select IMX_HAVE_PLATFORM_MXC_MMC
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_MXC_W1
-       select MXC_ULPI if USB_ULPI
+       select USB_ULPI_VIEWPORT if USB_ULPI
        select SOC_IMX31
        help
          Include support for Phytec pcm037 platform. This includes
@@ -544,7 +541,7 @@ config MACH_MX31_3DS
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_SPI_IMX
        select MXC_DEBUG_BOARD
-       select MXC_ULPI if USB_ULPI
+       select USB_ULPI_VIEWPORT if USB_ULPI
        select SOC_IMX31
        help
          Include support for MX31PDK (3DS) platform. This includes specific
@@ -571,7 +568,7 @@ config MACH_MX31MOBOARD
        select IMX_HAVE_PLATFORM_MXC_MMC
        select IMX_HAVE_PLATFORM_SPI_IMX
        select LEDS_GPIO_REGISTER
-       select MXC_ULPI if USB_ULPI
+       select USB_ULPI_VIEWPORT if USB_ULPI
        select SOC_IMX31
        help
          Include support for mx31moboard platform. This includes specific
@@ -595,7 +592,7 @@ config MACH_ARMADILLO5X0
        select IMX_HAVE_PLATFORM_MXC_EHCI
        select IMX_HAVE_PLATFORM_MXC_MMC
        select IMX_HAVE_PLATFORM_MXC_NAND
-       select MXC_ULPI if USB_ULPI
+       select USB_ULPI_VIEWPORT if USB_ULPI
        select SOC_IMX31
        help
          Include support for Atmark Armadillo-500 platform. This includes
@@ -639,7 +636,7 @@ config MACH_PCM043
        select IMX_HAVE_PLATFORM_MXC_EHCI
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
-       select MXC_ULPI if USB_ULPI
+       select USB_ULPI_VIEWPORT if USB_ULPI
        select SOC_IMX35
        help
          Include support for Phytec pcm043 platform. This includes
@@ -673,7 +670,7 @@ config MACH_EUKREA_CPUIMX35SD
        select IMX_HAVE_PLATFORM_MXC_EHCI
        select IMX_HAVE_PLATFORM_MXC_NAND
        select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
-       select MXC_ULPI if USB_ULPI
+       select USB_ULPI_VIEWPORT if USB_ULPI
        select SOC_IMX35
        help
          Include support for Eukrea CPUIMX35 platform. This includes
@@ -816,6 +813,40 @@ config SOC_IMX6Q
        help
          This enables support for Freescale i.MX6 Quad processor.
 
+config SOC_IMX6SL
+       bool "i.MX6 SoloLite support"
+       select ARM_ERRATA_754322
+       select ARM_ERRATA_775420
+       select ARM_GIC
+       select CPU_V7
+       select HAVE_IMX_ANATOP
+       select HAVE_IMX_GPC
+       select HAVE_IMX_MMDC
+       select HAVE_IMX_SRC
+       select PINCTRL
+       select PINCTRL_IMX6SL
+       select PL310_ERRATA_588369 if CACHE_PL310
+       select PL310_ERRATA_727915 if CACHE_PL310
+       select PL310_ERRATA_769419 if CACHE_PL310
+
+       help
+         This enables support for Freescale i.MX6 SoloLite processor.
+
+config SOC_VF610
+       bool "Vybrid Family VF610 support"
+       select CPU_V7
+       select ARM_GIC
+       select CLKSRC_OF
+       select PINCTRL
+       select PINCTRL_VF610
+       select VF_PIT_TIMER
+       select PL310_ERRATA_588369 if CACHE_PL310
+       select PL310_ERRATA_727915 if CACHE_PL310
+       select PL310_ERRATA_769419 if CACHE_PL310
+
+       help
+         This enable support for Freescale Vybrid VF610 processor.
+
 endif
 
 source "arch/arm/mach-imx/devices/Kconfig"
index 70ae7c490ac0428ce637e7921a26203ede04e1ac..e20f22d58fd8f00618dd57732e5e9a17a25d88c3 100644 (file)
@@ -23,7 +23,6 @@ obj-$(CONFIG_ARCH_MXC_IOMUX_V3) += iomux-v3.o
 obj-$(CONFIG_MXC_TZIC) += tzic.o
 obj-$(CONFIG_MXC_AVIC) += avic.o
 
-obj-$(CONFIG_MXC_ULPI) += ulpi.o
 obj-$(CONFIG_MXC_USE_EPIT) += epit.o
 obj-$(CONFIG_MXC_DEBUG_BOARD) += 3ds_debugboard.o
 
@@ -98,6 +97,7 @@ AFLAGS_headsmp.o :=-Wa,-march=armv7-a
 obj-$(CONFIG_SMP) += headsmp.o platsmp.o
 obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
 obj-$(CONFIG_SOC_IMX6Q) += clk-imx6q.o mach-imx6q.o
+obj-$(CONFIG_SOC_IMX6SL) += clk-imx6sl.o mach-imx6sl.o
 
 ifeq ($(CONFIG_PM),y)
 obj-$(CONFIG_SOC_IMX6Q) += pm-imx6q.o headsmp.o
@@ -111,4 +111,6 @@ obj-$(CONFIG_MACH_EUKREA_MBIMXSD51_BASEBOARD) += eukrea_mbimxsd51-baseboard.o
 obj-$(CONFIG_MACH_IMX51_DT) += imx51-dt.o
 obj-$(CONFIG_SOC_IMX53) += mach-imx53.o
 
+obj-$(CONFIG_SOC_VF610) += clk-vf610.o mach-vf610.o
+
 obj-y += devices/
index 6fc486b6a3c68f7a5bd6a5457680cd895f41dc76..9afac26fa1ccb13874271061c3754e3b952574d5 100644 (file)
@@ -73,6 +73,12 @@ static const char *mx53_cko2_sel[] = {
        "tve_sel", "lp_apm",
        "uart_root", "dummy"/* spdif0_clk_root */,
        "dummy", "dummy", };
+static const char *mx51_spdif_xtal_sel[] = { "osc", "ckih", "ckih2", };
+static const char *mx53_spdif_xtal_sel[] = { "osc", "ckih", "ckih2", "pll4_sw", };
+static const char *spdif_sel[] = { "pll1_sw", "pll2_sw", "pll3_sw", "spdif_xtal_sel", };
+static const char *spdif0_com_sel[] = { "spdif0_podf", "ssi1_root_gate", };
+static const char *mx51_spdif1_com_sel[] = { "spdif1_podf", "ssi2_root_gate", };
+
 
 enum imx5_clks {
        dummy, ckil, osc, ckih1, ckih2, ahb, ipg, axi_a, axi_b, uart_pred,
@@ -110,7 +116,9 @@ enum imx5_clks {
        owire_gate, gpu3d_s, gpu2d_s, gpu3d_gate, gpu2d_gate, garb_gate,
        cko1_sel, cko1_podf, cko1,
        cko2_sel, cko2_podf, cko2,
-       srtc_gate, pata_gate,
+       srtc_gate, pata_gate, sata_gate, spdif_xtal_sel, spdif0_sel,
+       spdif1_sel, spdif0_pred, spdif0_podf, spdif1_pred, spdif1_podf,
+       spdif0_com_s, spdif1_com_sel, spdif0_gate, spdif1_gate, spdif_ipg_gate,
        clk_max
 };
 
@@ -123,11 +131,13 @@ static void __init mx5_clocks_common_init(unsigned long rate_ckil,
 {
        int i;
 
+       of_clk_init(NULL);
+
        clk[dummy] = imx_clk_fixed("dummy", 0);
-       clk[ckil] = imx_clk_fixed("ckil", rate_ckil);
-       clk[osc] = imx_clk_fixed("osc", rate_osc);
-       clk[ckih1] = imx_clk_fixed("ckih1", rate_ckih1);
-       clk[ckih2] = imx_clk_fixed("ckih2", rate_ckih2);
+       clk[ckil] = imx_obtain_fixed_clock("ckil", rate_ckil);
+       clk[osc] = imx_obtain_fixed_clock("osc", rate_osc);
+       clk[ckih1] = imx_obtain_fixed_clock("ckih1", rate_ckih1);
+       clk[ckih2] = imx_obtain_fixed_clock("ckih2", rate_ckih2);
 
        clk[lp_apm] = imx_clk_mux("lp_apm", MXC_CCM_CCSR, 9, 1,
                                lp_apm_sel, ARRAY_SIZE(lp_apm_sel));
@@ -267,6 +277,13 @@ static void __init mx5_clocks_common_init(unsigned long rate_ckil,
        clk[owire_gate] = imx_clk_gate2("owire_gate", "per_root", MXC_CCM_CCGR2, 22);
        clk[srtc_gate] = imx_clk_gate2("srtc_gate", "per_root", MXC_CCM_CCGR4, 28);
        clk[pata_gate] = imx_clk_gate2("pata_gate", "ipg", MXC_CCM_CCGR4, 0);
+       clk[spdif0_sel] = imx_clk_mux("spdif0_sel", MXC_CCM_CSCMR2, 0, 2, spdif_sel, ARRAY_SIZE(spdif_sel));
+       clk[spdif0_pred] = imx_clk_divider("spdif0_pred", "spdif0_sel", MXC_CCM_CDCDR, 25, 3);
+       clk[spdif0_podf] = imx_clk_divider("spdif0_podf", "spdif0_pred", MXC_CCM_CDCDR, 19, 6);
+       clk[spdif0_com_s] = imx_clk_mux_flags("spdif0_com_sel", MXC_CCM_CSCMR2, 4, 1,
+                               spdif0_com_sel, ARRAY_SIZE(spdif0_com_sel), CLK_SET_RATE_PARENT);
+       clk[spdif0_gate] = imx_clk_gate2("spdif0_gate", "spdif0_com_sel", MXC_CCM_CCGR5, 26);
+       clk[spdif_ipg_gate] = imx_clk_gate2("spdif_ipg_gate", "ipg", MXC_CCM_CCGR5, 30);
 
        for (i = 0; i < ARRAY_SIZE(clk); i++)
                if (IS_ERR(clk[i]))
@@ -310,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);
@@ -378,6 +393,15 @@ int __init mx51_clocks_init(unsigned long rate_ckil, unsigned long rate_osc,
        clk[mipi_hsc2_gate] = imx_clk_gate2("mipi_hsc2_gate", "ipg", MXC_CCM_CCGR4, 8);
        clk[mipi_esc_gate] = imx_clk_gate2("mipi_esc_gate", "ipg", MXC_CCM_CCGR4, 10);
        clk[mipi_hsp_gate] = imx_clk_gate2("mipi_hsp_gate", "ipg", MXC_CCM_CCGR4, 12);
+       clk[spdif_xtal_sel] = imx_clk_mux("spdif_xtal_sel", MXC_CCM_CSCMR1, 2, 2,
+                               mx51_spdif_xtal_sel, ARRAY_SIZE(mx51_spdif_xtal_sel));
+       clk[spdif1_sel] = imx_clk_mux("spdif1_sel", MXC_CCM_CSCMR2, 2, 2,
+                               spdif_sel, ARRAY_SIZE(spdif_sel));
+       clk[spdif1_pred] = imx_clk_divider("spdif1_podf", "spdif1_sel", MXC_CCM_CDCDR, 16, 3);
+       clk[spdif1_podf] = imx_clk_divider("spdif1_podf", "spdif1_pred", MXC_CCM_CDCDR, 9, 6);
+       clk[spdif1_com_sel] = imx_clk_mux("spdif1_com_sel", MXC_CCM_CSCMR2, 5, 1,
+                               mx51_spdif1_com_sel, ARRAY_SIZE(mx51_spdif1_com_sel));
+       clk[spdif1_gate] = imx_clk_gate2("spdif1_gate", "spdif1_com_sel", MXC_CCM_CCGR5, 28);
 
        for (i = 0; i < ARRAY_SIZE(clk); i++)
                if (IS_ERR(clk[i]))
@@ -485,6 +509,7 @@ int __init mx53_clocks_init(unsigned long rate_ckil, unsigned long rate_osc,
        clk[can2_serial_gate] = imx_clk_gate2("can2_serial_gate", "can_sel", MXC_CCM_CCGR4, 8);
        clk[can2_ipg_gate] = imx_clk_gate2("can2_ipg_gate", "ipg", MXC_CCM_CCGR4, 6);
        clk[i2c3_gate] = imx_clk_gate2("i2c3_gate", "per_root", MXC_CCM_CCGR1, 22);
+       clk[sata_gate] = imx_clk_gate2("sata_gate", "ipg", MXC_CCM_CCGR4, 2);
 
        clk[cko1_sel] = imx_clk_mux("cko1_sel", MXC_CCM_CCOSR, 0, 4,
                                mx53_cko1_sel, ARRAY_SIZE(mx53_cko1_sel));
@@ -495,6 +520,8 @@ int __init mx53_clocks_init(unsigned long rate_ckil, unsigned long rate_osc,
                                mx53_cko2_sel, ARRAY_SIZE(mx53_cko2_sel));
        clk[cko2_podf] = imx_clk_divider("cko2_podf", "cko2_sel", MXC_CCM_CCOSR, 21, 3);
        clk[cko2] = imx_clk_gate2("cko2", "cko2_podf", MXC_CCM_CCOSR, 24);
+       clk[spdif_xtal_sel] = imx_clk_mux("spdif_xtal_sel", MXC_CCM_CSCMR1, 2, 2,
+                               mx53_spdif_xtal_sel, ARRAY_SIZE(mx53_spdif_xtal_sel));
 
        for (i = 0; i < ARRAY_SIZE(clk); i++)
                if (IS_ERR(clk[i]))
@@ -542,42 +569,12 @@ int __init mx53_clocks_init(unsigned long rate_ckil, unsigned long rate_osc,
        return 0;
 }
 
-#ifdef CONFIG_OF
-static void __init clk_get_freq_dt(unsigned long *ckil, unsigned long *osc,
-                                  unsigned long *ckih1, unsigned long *ckih2)
-{
-       struct device_node *np;
-
-       /* retrieve the freqency of fixed clocks from device tree */
-       for_each_compatible_node(np, NULL, "fixed-clock") {
-               u32 rate;
-               if (of_property_read_u32(np, "clock-frequency", &rate))
-                       continue;
-
-               if (of_device_is_compatible(np, "fsl,imx-ckil"))
-                       *ckil = rate;
-               else if (of_device_is_compatible(np, "fsl,imx-osc"))
-                       *osc = rate;
-               else if (of_device_is_compatible(np, "fsl,imx-ckih1"))
-                       *ckih1 = rate;
-               else if (of_device_is_compatible(np, "fsl,imx-ckih2"))
-                       *ckih2 = rate;
-       }
-}
-
 int __init mx51_clocks_init_dt(void)
 {
-       unsigned long ckil, osc, ckih1, ckih2;
-
-       clk_get_freq_dt(&ckil, &osc, &ckih1, &ckih2);
-       return mx51_clocks_init(ckil, osc, ckih1, ckih2);
+       return mx51_clocks_init(0, 0, 0, 0);
 }
 
 int __init mx53_clocks_init_dt(void)
 {
-       unsigned long ckil, osc, ckih1, ckih2;
-
-       clk_get_freq_dt(&ckil, &osc, &ckih1, &ckih2);
-       return mx53_clocks_init(ckil, osc, ckih1, ckih2);
+       return mx53_clocks_init(0, 0, 0, 0);
 }
-#endif
index 4e3148ce852dfe20faa2a820c19b083746ff8257..4282e99f5ca1803254a44449aee835c653429c6b 100644 (file)
@@ -238,7 +238,7 @@ enum mx6q_clks {
        pll4_audio, pll5_video, pll8_mlb, pll7_usb_host, pll6_enet, ssi1_ipg,
        ssi2_ipg, ssi3_ipg, rom, usbphy1, usbphy2, ldb_di0_div_3_5, ldb_di1_div_3_5,
        sata_ref, sata_ref_100m, pcie_ref, pcie_ref_125m, enet_ref, usbphy1_gate,
-       usbphy2_gate, pll4_post_div, pll5_post_div, pll5_video_div, clk_max
+       usbphy2_gate, pll4_post_div, pll5_post_div, pll5_video_div, eim_slow, clk_max
 };
 
 static struct clk *clk[clk_max];
@@ -270,27 +270,16 @@ static struct clk_div_table video_div_table[] = {
        { }
 };
 
-int __init mx6q_clocks_init(void)
+static void __init imx6q_clocks_init(struct device_node *ccm_node)
 {
        struct device_node *np;
        void __iomem *base;
        int i, irq;
 
        clk[dummy] = imx_clk_fixed("dummy", 0);
-
-       /* retrieve the freqency of fixed clocks from device tree */
-       for_each_compatible_node(np, NULL, "fixed-clock") {
-               u32 rate;
-               if (of_property_read_u32(np, "clock-frequency", &rate))
-                       continue;
-
-               if (of_device_is_compatible(np, "fsl,imx-ckil"))
-                       clk[ckil] = imx_clk_fixed("ckil", rate);
-               else if (of_device_is_compatible(np, "fsl,imx-ckih1"))
-                       clk[ckih] = imx_clk_fixed("ckih", rate);
-               else if (of_device_is_compatible(np, "fsl,imx-osc"))
-                       clk[osc] = imx_clk_fixed("osc", rate);
-       }
+       clk[ckil] = imx_obtain_fixed_clock("ckil", 0);
+       clk[ckih] = imx_obtain_fixed_clock("ckih1", 0);
+       clk[osc] = imx_obtain_fixed_clock("osc", 0);
 
        np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-anatop");
        base = of_iomap(np, 0);
@@ -312,7 +301,6 @@ int __init mx6q_clocks_init(void)
        clk[pll5_video]    = imx_clk_pllv3(IMX_PLLV3_AV,        "pll5_video",   "osc", base + 0xa0, 0x7f);
        clk[pll6_enet]     = imx_clk_pllv3(IMX_PLLV3_ENET,      "pll6_enet",    "osc", base + 0xe0, 0x3);
        clk[pll7_usb_host] = imx_clk_pllv3(IMX_PLLV3_USB,       "pll7_usb_host","osc", base + 0x20, 0x3);
-       clk[pll8_mlb]      = imx_clk_pllv3(IMX_PLLV3_MLB,       "pll8_mlb",     "osc", base + 0xd0, 0x0);
 
        /*
         * Bit 20 is the reserved and read-only bit, we do this only for:
@@ -360,7 +348,7 @@ int __init mx6q_clocks_init(void)
        clk[pll5_post_div] = clk_register_divider_table(NULL, "pll5_post_div", "pll5_video", CLK_SET_RATE_PARENT, base + 0xa0, 19, 2, 0, post_div_table, &imx_ccm_lock);
        clk[pll5_video_div] = clk_register_divider_table(NULL, "pll5_video_div", "pll5_post_div", CLK_SET_RATE_PARENT, base + 0x170, 30, 2, 0, video_div_table, &imx_ccm_lock);
 
-       np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-ccm");
+       np = ccm_node;
        base = of_iomap(np, 0);
        WARN_ON(!base);
        ccm_base = base;
@@ -481,7 +469,14 @@ int __init mx6q_clocks_init(void)
        clk[esai]         = imx_clk_gate2("esai",          "esai_podf",         base + 0x6c, 16);
        clk[gpt_ipg]      = imx_clk_gate2("gpt_ipg",       "ipg",               base + 0x6c, 20);
        clk[gpt_ipg_per]  = imx_clk_gate2("gpt_ipg_per",   "ipg_per",           base + 0x6c, 22);
-       clk[gpu2d_core]   = imx_clk_gate2("gpu2d_core",    "gpu2d_core_podf",   base + 0x6c, 24);
+       if (cpu_is_imx6dl())
+               /*
+                * The multiplexer and divider of imx6q clock gpu3d_shader get
+                * redefined/reused as gpu2d_core_sel and gpu2d_core_podf on imx6dl.
+                */
+               clk[gpu2d_core] = imx_clk_gate2("gpu2d_core", "gpu3d_shader", base + 0x6c, 24);
+       else
+               clk[gpu2d_core] = imx_clk_gate2("gpu2d_core", "gpu2d_core_podf", base + 0x6c, 24);
        clk[gpu3d_core]   = imx_clk_gate2("gpu3d_core",    "gpu3d_core_podf",   base + 0x6c, 26);
        clk[hdmi_iahb]    = imx_clk_gate2("hdmi_iahb",     "ahb",               base + 0x70, 0);
        clk[hdmi_isfr]    = imx_clk_gate2("hdmi_isfr",     "pll3_pfd1_540m",    base + 0x70, 4);
@@ -499,7 +494,14 @@ int __init mx6q_clocks_init(void)
        clk[ldb_di1]      = imx_clk_gate2("ldb_di1",       "ldb_di1_podf",      base + 0x74, 14);
        clk[ipu2_di1]     = imx_clk_gate2("ipu2_di1",      "ipu2_di1_sel",      base + 0x74, 10);
        clk[hsi_tx]       = imx_clk_gate2("hsi_tx",        "hsi_tx_podf",       base + 0x74, 16);
-       clk[mlb]          = imx_clk_gate2("mlb",           "axi",               base + 0x74, 18);
+       if (cpu_is_imx6dl())
+               /*
+                * The multiplexer and divider of the imx6q clock gpu2d get
+                * redefined/reused as mlb_sys_sel and mlb_sys_clk_podf on imx6dl.
+                */
+               clk[mlb] = imx_clk_gate2("mlb",            "gpu2d_core_podf",   base + 0x74, 18);
+       else
+               clk[mlb] = imx_clk_gate2("mlb",            "axi",               base + 0x74, 18);
        clk[mmdc_ch0_axi] = imx_clk_gate2("mmdc_ch0_axi",  "mmdc_ch0_axi_podf", base + 0x74, 20);
        clk[mmdc_ch1_axi] = imx_clk_gate2("mmdc_ch1_axi",  "mmdc_ch1_axi_podf", base + 0x74, 22);
        clk[ocram]        = imx_clk_gate2("ocram",         "ahb",               base + 0x74, 28);
@@ -528,6 +530,7 @@ int __init mx6q_clocks_init(void)
        clk[usdhc2]       = imx_clk_gate2("usdhc2",        "usdhc2_podf",       base + 0x80, 4);
        clk[usdhc3]       = imx_clk_gate2("usdhc3",        "usdhc3_podf",       base + 0x80, 6);
        clk[usdhc4]       = imx_clk_gate2("usdhc4",        "usdhc4_podf",       base + 0x80, 8);
+       clk[eim_slow]     = imx_clk_gate2("eim_slow",      "emi_slow_podf",     base + 0x80, 10);
        clk[vdo_axi]      = imx_clk_gate2("vdo_axi",       "vdo_axi_sel",       base + 0x80, 12);
        clk[vpu_axi]      = imx_clk_gate2("vpu_axi",       "vpu_axi_podf",      base + 0x80, 14);
        clk[cko1]         = imx_clk_gate("cko1",           "cko1_podf",         base + 0x60, 7);
@@ -547,6 +550,8 @@ int __init mx6q_clocks_init(void)
        clk_register_clkdev(clk[ahb], "ahb", NULL);
        clk_register_clkdev(clk[cko1], "cko1", NULL);
        clk_register_clkdev(clk[arm], NULL, "cpu0");
+       clk_register_clkdev(clk[pll4_post_div], "pll4_post_div", NULL);
+       clk_register_clkdev(clk[pll4_audio], "pll4_audio", NULL);
 
        if (imx6q_revision() != IMX_CHIP_REVISION_1_0) {
                clk_set_parent(clk[ldb_di0_sel], clk[pll5_video_div]);
@@ -576,6 +581,5 @@ int __init mx6q_clocks_init(void)
        WARN_ON(!base);
        irq = irq_of_parse_and_map(np, 0);
        mxc_timer_init(base, irq);
-
-       return 0;
 }
+CLK_OF_DECLARE(imx6q, "fsl,imx6q-ccm", imx6q_clocks_init);
diff --git a/arch/arm/mach-imx/clk-imx6sl.c b/arch/arm/mach-imx/clk-imx6sl.c
new file mode 100644 (file)
index 0000000..a307ac2
--- /dev/null
@@ -0,0 +1,267 @@
+/*
+ * 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 <linux/clk.h>
+#include <linux/clkdev.h>
+#include <linux/err.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/of_irq.h>
+#include <dt-bindings/clock/imx6sl-clock.h>
+
+#include "clk.h"
+#include "common.h"
+
+static const char const *step_sels[]           = { "osc", "pll2_pfd2", };
+static const char const *pll1_sw_sels[]                = { "pll1_sys", "step", };
+static const char const *ocram_alt_sels[]      = { "pll2_pfd2", "pll3_pfd1", };
+static const char const *ocram_sels[]          = { "periph", "ocram_alt_sels", };
+static const char const *pre_periph_sels[]     = { "pll2_bus", "pll2_pfd2", "pll2_pfd0", "pll2_198m", };
+static const char const *periph_clk2_sels[]    = { "pll3_usb_otg", "osc", "osc", "dummy", };
+static const char const *periph2_clk2_sels[]   = { "pll3_usb_otg", "pll2_bus", };
+static const char const *periph_sels[]         = { "pre_periph_sel", "periph_clk2_podf", };
+static const char const *periph2_sels[]                = { "pre_periph2_sel", "periph2_clk2_podf", };
+static const char const *csi_lcdif_sels[]      = { "mmdc", "pll2_pfd2", "pll3_120m", "pll3_pfd1", };
+static const char const *usdhc_sels[]          = { "pll2_pfd2", "pll2_pfd0", };
+static const char const *ssi_sels[]            = { "pll3_pfd2", "pll3_pfd3", "pll4_post_div", "dummy", };
+static const char const *perclk_sels[]         = { "ipg", "osc", };
+static const char const *epdc_pxp_sels[]       = { "mmdc", "pll3_usb_otg", "pll5_video_div", "pll2_pfd0", "pll2_pfd2", "pll3_pfd1", };
+static const char const *gpu2d_ovg_sels[]      = { "pll3_pfd1", "pll3_usb_otg", "pll2_bus", "pll2_pfd2", };
+static const char const *gpu2d_sels[]          = { "pll2_pfd2", "pll3_usb_otg", "pll3_pfd1", "pll2_bus", };
+static const char const *lcdif_pix_sels[]      = { "pll2_bus", "pll3_usb_otg", "pll5_video_div", "pll2_pfd0", "pll3_pfd0", "pll3_pfd1", };
+static const char const *epdc_pix_sels[]       = { "pll2_bus", "pll3_usb_otg", "pll5_video_div", "pll2_pfd0", "pll2_pfd1", "pll3_pfd1", };
+static const char const *audio_sels[]          = { "pll4_post_div", "pll3_pfd2", "pll3_pfd3", "pll3_usb_otg", };
+static const char const *ecspi_sels[]          = { "pll3_60m", "osc", };
+static const char const *uart_sels[]           = { "pll3_80m", "osc", };
+
+static struct clk_div_table clk_enet_ref_table[] = {
+       { .val = 0, .div = 20, },
+       { .val = 1, .div = 10, },
+       { .val = 2, .div = 5, },
+       { .val = 3, .div = 4, },
+       { }
+};
+
+static struct clk_div_table post_div_table[] = {
+       { .val = 2, .div = 1, },
+       { .val = 1, .div = 2, },
+       { .val = 0, .div = 4, },
+       { }
+};
+
+static struct clk_div_table video_div_table[] = {
+       { .val = 0, .div = 1, },
+       { .val = 1, .div = 2, },
+       { .val = 2, .div = 1, },
+       { .val = 3, .div = 4, },
+       { }
+};
+
+static struct clk *clks[IMX6SL_CLK_CLK_END];
+static struct clk_onecell_data clk_data;
+
+static void __init imx6sl_clocks_init(struct device_node *ccm_node)
+{
+       struct device_node *np;
+       void __iomem *base;
+       int irq;
+       int i;
+
+       clks[IMX6SL_CLK_DUMMY] = imx_clk_fixed("dummy", 0);
+       clks[IMX6SL_CLK_CKIL] = imx_obtain_fixed_clock("ckil", 0);
+       clks[IMX6SL_CLK_OSC] = imx_obtain_fixed_clock("osc", 0);
+
+       np = of_find_compatible_node(NULL, NULL, "fsl,imx6sl-anatop");
+       base = of_iomap(np, 0);
+       WARN_ON(!base);
+
+       /*                                             type               name            parent  base         div_mask */
+       clks[IMX6SL_CLK_PLL1_SYS]      = imx_clk_pllv3(IMX_PLLV3_SYS,     "pll1_sys",      "osc", base,        0x7f);
+       clks[IMX6SL_CLK_PLL2_BUS]      = imx_clk_pllv3(IMX_PLLV3_GENERIC, "pll2_bus",      "osc", base + 0x30, 0x1);
+       clks[IMX6SL_CLK_PLL3_USB_OTG]  = imx_clk_pllv3(IMX_PLLV3_USB,     "pll3_usb_otg",  "osc", base + 0x10, 0x3);
+       clks[IMX6SL_CLK_PLL4_AUDIO]    = imx_clk_pllv3(IMX_PLLV3_AV,      "pll4_audio",    "osc", base + 0x70, 0x7f);
+       clks[IMX6SL_CLK_PLL5_VIDEO]    = imx_clk_pllv3(IMX_PLLV3_AV,      "pll5_video",    "osc", base + 0xa0, 0x7f);
+       clks[IMX6SL_CLK_PLL6_ENET]     = imx_clk_pllv3(IMX_PLLV3_ENET,    "pll6_enet",     "osc", base + 0xe0, 0x3);
+       clks[IMX6SL_CLK_PLL7_USB_HOST] = imx_clk_pllv3(IMX_PLLV3_USB,     "pll7_usb_host", "osc", base + 0x20, 0x3);
+
+       /*
+        * usbphy1 and usbphy2 are implemented as dummy gates using reserve
+        * bit 20.  They are used by phy driver to keep the refcount of
+        * parent PLL correct. usbphy1_gate and usbphy2_gate only needs to be
+        * turned on during boot, and software will not need to control it
+        * anymore after that.
+        */
+       clks[IMX6SL_CLK_USBPHY1]      = imx_clk_gate("usbphy1",      "pll3_usb_otg",  base + 0x10, 20);
+       clks[IMX6SL_CLK_USBPHY2]      = imx_clk_gate("usbphy2",      "pll7_usb_host", base + 0x20, 20);
+       clks[IMX6SL_CLK_USBPHY1_GATE] = imx_clk_gate("usbphy1_gate", "dummy",         base + 0x10, 6);
+       clks[IMX6SL_CLK_USBPHY2_GATE] = imx_clk_gate("usbphy2_gate", "dummy",         base + 0x20, 6);
+
+       /*                                                           dev   name              parent_name      flags                reg        shift width div: flags, div_table lock */
+       clks[IMX6SL_CLK_PLL4_POST_DIV]  = clk_register_divider_table(NULL, "pll4_post_div",  "pll4_audio",    CLK_SET_RATE_PARENT, base + 0x70,  19, 2,   0, post_div_table, &imx_ccm_lock);
+       clks[IMX6SL_CLK_PLL5_POST_DIV]  = clk_register_divider_table(NULL, "pll5_post_div",  "pll5_video",    CLK_SET_RATE_PARENT, base + 0xa0,  19, 2,   0, post_div_table, &imx_ccm_lock);
+       clks[IMX6SL_CLK_PLL5_VIDEO_DIV] = clk_register_divider_table(NULL, "pll5_video_div", "pll5_post_div", CLK_SET_RATE_PARENT, base + 0x170, 30, 2,   0, video_div_table, &imx_ccm_lock);
+       clks[IMX6SL_CLK_ENET_REF]       = clk_register_divider_table(NULL, "enet_ref",       "pll6_enet",     0,                   base + 0xe0,  0,  2,   0, clk_enet_ref_table, &imx_ccm_lock);
+
+       /*                                       name         parent_name     reg           idx */
+       clks[IMX6SL_CLK_PLL2_PFD0] = imx_clk_pfd("pll2_pfd0", "pll2_bus",     base + 0x100, 0);
+       clks[IMX6SL_CLK_PLL2_PFD1] = imx_clk_pfd("pll2_pfd1", "pll2_bus",     base + 0x100, 1);
+       clks[IMX6SL_CLK_PLL2_PFD2] = imx_clk_pfd("pll2_pfd2", "pll2_bus",     base + 0x100, 2);
+       clks[IMX6SL_CLK_PLL3_PFD0] = imx_clk_pfd("pll3_pfd0", "pll3_usb_otg", base + 0xf0,  0);
+       clks[IMX6SL_CLK_PLL3_PFD1] = imx_clk_pfd("pll3_pfd1", "pll3_usb_otg", base + 0xf0,  1);
+       clks[IMX6SL_CLK_PLL3_PFD2] = imx_clk_pfd("pll3_pfd2", "pll3_usb_otg", base + 0xf0,  2);
+       clks[IMX6SL_CLK_PLL3_PFD3] = imx_clk_pfd("pll3_pfd3", "pll3_usb_otg", base + 0xf0,  3);
+
+       /*                                                name         parent_name     mult div */
+       clks[IMX6SL_CLK_PLL2_198M] = imx_clk_fixed_factor("pll2_198m", "pll2_pfd2",      1, 2);
+       clks[IMX6SL_CLK_PLL3_120M] = imx_clk_fixed_factor("pll3_120m", "pll3_usb_otg",   1, 4);
+       clks[IMX6SL_CLK_PLL3_80M]  = imx_clk_fixed_factor("pll3_80m",  "pll3_usb_otg",   1, 6);
+       clks[IMX6SL_CLK_PLL3_60M]  = imx_clk_fixed_factor("pll3_60m",  "pll3_usb_otg",   1, 8);
+
+       np = ccm_node;
+       base = of_iomap(np, 0);
+       WARN_ON(!base);
+
+       /*                                              name                reg       shift width parent_names     num_parents */
+       clks[IMX6SL_CLK_STEP]             = imx_clk_mux("step",             base + 0xc,  8,  1, step_sels,         ARRAY_SIZE(step_sels));
+       clks[IMX6SL_CLK_PLL1_SW]          = imx_clk_mux("pll1_sw",          base + 0xc,  2,  1, pll1_sw_sels,      ARRAY_SIZE(pll1_sw_sels));
+       clks[IMX6SL_CLK_OCRAM_ALT_SEL]    = imx_clk_mux("ocram_alt_sel",    base + 0x14, 7,  1, ocram_alt_sels,    ARRAY_SIZE(ocram_alt_sels));
+       clks[IMX6SL_CLK_OCRAM_SEL]        = imx_clk_mux("ocram_sel",        base + 0x14, 6,  1, ocram_sels,        ARRAY_SIZE(ocram_sels));
+       clks[IMX6SL_CLK_PRE_PERIPH2_SEL]  = imx_clk_mux("pre_periph2_sel",  base + 0x18, 21, 2, pre_periph_sels,   ARRAY_SIZE(pre_periph_sels));
+       clks[IMX6SL_CLK_PRE_PERIPH_SEL]   = imx_clk_mux("pre_periph_sel",   base + 0x18, 18, 2, pre_periph_sels,   ARRAY_SIZE(pre_periph_sels));
+       clks[IMX6SL_CLK_PERIPH2_CLK2_SEL] = imx_clk_mux("periph2_clk2_sel", base + 0x18, 20, 1, periph2_clk2_sels, ARRAY_SIZE(periph2_clk2_sels));
+       clks[IMX6SL_CLK_PERIPH_CLK2_SEL]  = imx_clk_mux("periph_clk2_sel",  base + 0x18, 12, 2, periph_clk2_sels,  ARRAY_SIZE(periph_clk2_sels));
+       clks[IMX6SL_CLK_CSI_SEL]          = imx_clk_mux("csi_sel",          base + 0x3c, 9,  2, csi_lcdif_sels,    ARRAY_SIZE(csi_lcdif_sels));
+       clks[IMX6SL_CLK_LCDIF_AXI_SEL]    = imx_clk_mux("lcdif_axi_sel",    base + 0x3c, 14, 2, csi_lcdif_sels,    ARRAY_SIZE(csi_lcdif_sels));
+       clks[IMX6SL_CLK_USDHC1_SEL]       = imx_clk_mux("usdhc1_sel",       base + 0x1c, 16, 1, usdhc_sels,        ARRAY_SIZE(usdhc_sels));
+       clks[IMX6SL_CLK_USDHC2_SEL]       = imx_clk_mux("usdhc2_sel",       base + 0x1c, 17, 1, usdhc_sels,        ARRAY_SIZE(usdhc_sels));
+       clks[IMX6SL_CLK_USDHC3_SEL]       = imx_clk_mux("usdhc3_sel",       base + 0x1c, 18, 1, usdhc_sels,        ARRAY_SIZE(usdhc_sels));
+       clks[IMX6SL_CLK_USDHC4_SEL]       = imx_clk_mux("usdhc4_sel",       base + 0x1c, 19, 1, usdhc_sels,        ARRAY_SIZE(usdhc_sels));
+       clks[IMX6SL_CLK_SSI1_SEL]         = imx_clk_mux("ssi1_sel",         base + 0x1c, 10, 2, ssi_sels,          ARRAY_SIZE(ssi_sels));
+       clks[IMX6SL_CLK_SSI2_SEL]         = imx_clk_mux("ssi2_sel",         base + 0x1c, 12, 2, ssi_sels,          ARRAY_SIZE(ssi_sels));
+       clks[IMX6SL_CLK_SSI3_SEL]         = imx_clk_mux("ssi3_sel",         base + 0x1c, 14, 2, ssi_sels,          ARRAY_SIZE(ssi_sels));
+       clks[IMX6SL_CLK_PERCLK_SEL]       = imx_clk_mux("perclk_sel",       base + 0x1c, 6,  1, perclk_sels,       ARRAY_SIZE(perclk_sels));
+       clks[IMX6SL_CLK_PXP_AXI_SEL]      = imx_clk_mux("pxp_axi_sel",      base + 0x34, 6,  3, epdc_pxp_sels,     ARRAY_SIZE(epdc_pxp_sels));
+       clks[IMX6SL_CLK_EPDC_AXI_SEL]     = imx_clk_mux("epdc_axi_sel",     base + 0x34, 15, 3, epdc_pxp_sels,     ARRAY_SIZE(epdc_pxp_sels));
+       clks[IMX6SL_CLK_GPU2D_OVG_SEL]    = imx_clk_mux("gpu2d_ovg_sel",    base + 0x18, 4,  2, gpu2d_ovg_sels,    ARRAY_SIZE(gpu2d_ovg_sels));
+       clks[IMX6SL_CLK_GPU2D_SEL]        = imx_clk_mux("gpu2d_sel",        base + 0x18, 8,  2, gpu2d_sels,        ARRAY_SIZE(gpu2d_sels));
+       clks[IMX6SL_CLK_LCDIF_PIX_SEL]    = imx_clk_mux("lcdif_pix_sel",    base + 0x38, 6,  3, lcdif_pix_sels,    ARRAY_SIZE(lcdif_pix_sels));
+       clks[IMX6SL_CLK_EPDC_PIX_SEL]     = imx_clk_mux("epdc_pix_sel",     base + 0x38, 15, 3, epdc_pix_sels,     ARRAY_SIZE(epdc_pix_sels));
+       clks[IMX6SL_CLK_SPDIF0_SEL]       = imx_clk_mux("spdif0_sel",       base + 0x30, 20, 2, audio_sels,        ARRAY_SIZE(audio_sels));
+       clks[IMX6SL_CLK_SPDIF1_SEL]       = imx_clk_mux("spdif1_sel",       base + 0x30, 7,  2, audio_sels,        ARRAY_SIZE(audio_sels));
+       clks[IMX6SL_CLK_EXTERN_AUDIO_SEL] = imx_clk_mux("extern_audio_sel", base + 0x20, 19, 2, audio_sels,        ARRAY_SIZE(audio_sels));
+       clks[IMX6SL_CLK_ECSPI_SEL]        = imx_clk_mux("ecspi_sel",        base + 0x38, 18, 1, ecspi_sels,        ARRAY_SIZE(ecspi_sels));
+       clks[IMX6SL_CLK_UART_SEL]         = imx_clk_mux("uart_sel",         base + 0x24, 6,  1, uart_sels,         ARRAY_SIZE(uart_sels));
+
+       /*                                          name       reg        shift width busy: reg, shift parent_names  num_parents */
+       clks[IMX6SL_CLK_PERIPH]  = imx_clk_busy_mux("periph",  base + 0x14, 25,  1,   base + 0x48, 5,  periph_sels,  ARRAY_SIZE(periph_sels));
+       clks[IMX6SL_CLK_PERIPH2] = imx_clk_busy_mux("periph2", base + 0x14, 26,  1,   base + 0x48, 3,  periph2_sels, ARRAY_SIZE(periph2_sels));
+
+       /*                                                   name                 parent_name          reg       shift width */
+       clks[IMX6SL_CLK_OCRAM_PODF]        = imx_clk_divider("ocram_podf",        "ocram_sel",         base + 0x14, 16, 3);
+       clks[IMX6SL_CLK_PERIPH_CLK2_PODF]  = imx_clk_divider("periph_clk2_podf",  "periph_clk2_sel",   base + 0x14, 27, 3);
+       clks[IMX6SL_CLK_PERIPH2_CLK2_PODF] = imx_clk_divider("periph2_clk2_podf", "periph2_clk2_sel",  base + 0x14, 0,  3);
+       clks[IMX6SL_CLK_IPG]               = imx_clk_divider("ipg",               "ahb",               base + 0x14, 8,  2);
+       clks[IMX6SL_CLK_CSI_PODF]          = imx_clk_divider("csi_podf",          "csi_sel",           base + 0x3c, 11, 3);
+       clks[IMX6SL_CLK_LCDIF_AXI_PODF]    = imx_clk_divider("lcdif_axi_podf",    "lcdif_axi_sel",     base + 0x3c, 16, 3);
+       clks[IMX6SL_CLK_USDHC1_PODF]       = imx_clk_divider("usdhc1_podf",       "usdhc1_sel",        base + 0x24, 11, 3);
+       clks[IMX6SL_CLK_USDHC2_PODF]       = imx_clk_divider("usdhc2_podf",       "usdhc2_sel",        base + 0x24, 16, 3);
+       clks[IMX6SL_CLK_USDHC3_PODF]       = imx_clk_divider("usdhc3_podf",       "usdhc3_sel",        base + 0x24, 19, 3);
+       clks[IMX6SL_CLK_USDHC4_PODF]       = imx_clk_divider("usdhc4_podf",       "usdhc4_sel",        base + 0x24, 22, 3);
+       clks[IMX6SL_CLK_SSI1_PRED]         = imx_clk_divider("ssi1_pred",         "ssi1_sel",          base + 0x28, 6,  3);
+       clks[IMX6SL_CLK_SSI1_PODF]         = imx_clk_divider("ssi1_podf",         "ssi1_pred",         base + 0x28, 0,  6);
+       clks[IMX6SL_CLK_SSI2_PRED]         = imx_clk_divider("ssi2_pred",         "ssi2_sel",          base + 0x2c, 6,  3);
+       clks[IMX6SL_CLK_SSI2_PODF]         = imx_clk_divider("ssi2_podf",         "ssi2_pred",         base + 0x2c, 0,  6);
+       clks[IMX6SL_CLK_SSI3_PRED]         = imx_clk_divider("ssi3_pred",         "ssi3_sel",          base + 0x28, 22, 3);
+       clks[IMX6SL_CLK_SSI3_PODF]         = imx_clk_divider("ssi3_podf",         "ssi3_pred",         base + 0x28, 16, 6);
+       clks[IMX6SL_CLK_PERCLK]            = imx_clk_divider("perclk",            "perclk_sel",        base + 0x1c, 0,  6);
+       clks[IMX6SL_CLK_PXP_AXI_PODF]      = imx_clk_divider("pxp_axi_podf",      "pxp_axi_sel",       base + 0x34, 3,  3);
+       clks[IMX6SL_CLK_EPDC_AXI_PODF]     = imx_clk_divider("epdc_axi_podf",     "epdc_axi_sel",      base + 0x34, 12, 3);
+       clks[IMX6SL_CLK_GPU2D_OVG_PODF]    = imx_clk_divider("gpu2d_ovg_podf",    "gpu2d_ovg_sel",     base + 0x18, 26, 3);
+       clks[IMX6SL_CLK_GPU2D_PODF]        = imx_clk_divider("gpu2d_podf",        "gpu2d_sel",         base + 0x18, 29, 3);
+       clks[IMX6SL_CLK_LCDIF_PIX_PRED]    = imx_clk_divider("lcdif_pix_pred",    "lcdif_pix_sel",     base + 0x38, 3,  3);
+       clks[IMX6SL_CLK_EPDC_PIX_PRED]     = imx_clk_divider("epdc_pix_pred",     "epdc_pix_sel",      base + 0x38, 12, 3);
+       clks[IMX6SL_CLK_LCDIF_PIX_PODF]    = imx_clk_divider("lcdif_pix_podf",    "lcdif_pix_pred",    base + 0x1c, 20, 3);
+       clks[IMX6SL_CLK_EPDC_PIX_PODF]     = imx_clk_divider("epdc_pix_podf",     "epdc_pix_pred",     base + 0x18, 23, 3);
+       clks[IMX6SL_CLK_SPDIF0_PRED]       = imx_clk_divider("spdif0_pred",       "spdif0_sel",        base + 0x30, 25, 3);
+       clks[IMX6SL_CLK_SPDIF0_PODF]       = imx_clk_divider("spdif0_podf",       "spdif0_pred",       base + 0x30, 22, 3);
+       clks[IMX6SL_CLK_SPDIF1_PRED]       = imx_clk_divider("spdif1_pred",       "spdif1_sel",        base + 0x30, 12, 3);
+       clks[IMX6SL_CLK_SPDIF1_PODF]       = imx_clk_divider("spdif1_podf",       "spdif1_pred",       base + 0x30, 9,  3);
+       clks[IMX6SL_CLK_EXTERN_AUDIO_PRED] = imx_clk_divider("extern_audio_pred", "extern_audio_sel",  base + 0x28, 9,  3);
+       clks[IMX6SL_CLK_EXTERN_AUDIO_PODF] = imx_clk_divider("extern_audio_podf", "extern_audio_pred", base + 0x28, 25, 3);
+       clks[IMX6SL_CLK_ECSPI_ROOT]        = imx_clk_divider("ecspi_root",        "ecspi_sel",         base + 0x38, 19, 6);
+       clks[IMX6SL_CLK_UART_ROOT]         = imx_clk_divider("uart_root",         "uart_sel",          base + 0x24, 0,  6);
+
+       /*                                                name         parent_name reg       shift width busy: reg, shift */
+       clks[IMX6SL_CLK_AHB]       = imx_clk_busy_divider("ahb",       "periph",  base + 0x14, 10, 3,    base + 0x48, 1);
+       clks[IMX6SL_CLK_MMDC_ROOT] = imx_clk_busy_divider("mmdc",      "periph2", base + 0x14, 3,  3,    base + 0x48, 2);
+       clks[IMX6SL_CLK_ARM]       = imx_clk_busy_divider("arm",       "pll1_sw", base + 0x10, 0,  3,    base + 0x48, 16);
+
+       /*                                            name            parent_name          reg         shift */
+       clks[IMX6SL_CLK_ECSPI1]       = imx_clk_gate2("ecspi1",       "ecspi_root",        base + 0x6c, 0);
+       clks[IMX6SL_CLK_ECSPI2]       = imx_clk_gate2("ecspi2",       "ecspi_root",        base + 0x6c, 2);
+       clks[IMX6SL_CLK_ECSPI3]       = imx_clk_gate2("ecspi3",       "ecspi_root",        base + 0x6c, 4);
+       clks[IMX6SL_CLK_ECSPI4]       = imx_clk_gate2("ecspi4",       "ecspi_root",        base + 0x6c, 6);
+       clks[IMX6SL_CLK_EPIT1]        = imx_clk_gate2("epit1",        "perclk",            base + 0x6c, 12);
+       clks[IMX6SL_CLK_EPIT2]        = imx_clk_gate2("epit2",        "perclk",            base + 0x6c, 14);
+       clks[IMX6SL_CLK_EXTERN_AUDIO] = imx_clk_gate2("extern_audio", "extern_audio_podf", base + 0x6c, 16);
+       clks[IMX6SL_CLK_GPT]          = imx_clk_gate2("gpt",          "perclk",            base + 0x6c, 20);
+       clks[IMX6SL_CLK_GPT_SERIAL]   = imx_clk_gate2("gpt_serial",   "perclk",            base + 0x6c, 22);
+       clks[IMX6SL_CLK_GPU2D_OVG]    = imx_clk_gate2("gpu2d_ovg",    "gpu2d_ovg_podf",    base + 0x6c, 26);
+       clks[IMX6SL_CLK_I2C1]         = imx_clk_gate2("i2c1",         "perclk",            base + 0x70, 6);
+       clks[IMX6SL_CLK_I2C2]         = imx_clk_gate2("i2c2",         "perclk",            base + 0x70, 8);
+       clks[IMX6SL_CLK_I2C3]         = imx_clk_gate2("i2c3",         "perclk",            base + 0x70, 10);
+       clks[IMX6SL_CLK_OCOTP]        = imx_clk_gate2("ocotp",        "ipg",               base + 0x70, 12);
+       clks[IMX6SL_CLK_CSI]          = imx_clk_gate2("csi",          "csi_podf",          base + 0x74, 0);
+       clks[IMX6SL_CLK_PXP_AXI]      = imx_clk_gate2("pxp_axi",      "pxp_axi_podf",      base + 0x74, 2);
+       clks[IMX6SL_CLK_EPDC_AXI]     = imx_clk_gate2("epdc_axi",     "epdc_axi_podf",     base + 0x74, 4);
+       clks[IMX6SL_CLK_LCDIF_AXI]    = imx_clk_gate2("lcdif_axi",    "lcdif_axi_podf",    base + 0x74, 6);
+       clks[IMX6SL_CLK_LCDIF_PIX]    = imx_clk_gate2("lcdif_pix",    "lcdif_pix_podf",    base + 0x74, 8);
+       clks[IMX6SL_CLK_EPDC_PIX]     = imx_clk_gate2("epdc_pix",     "epdc_pix_podf",     base + 0x74, 10);
+       clks[IMX6SL_CLK_OCRAM]        = imx_clk_gate2("ocram",        "ocram_podf",        base + 0x74, 28);
+       clks[IMX6SL_CLK_PWM1]         = imx_clk_gate2("pwm1",         "perclk",            base + 0x78, 16);
+       clks[IMX6SL_CLK_PWM2]         = imx_clk_gate2("pwm2",         "perclk",            base + 0x78, 18);
+       clks[IMX6SL_CLK_PWM3]         = imx_clk_gate2("pwm3",         "perclk",            base + 0x78, 20);
+       clks[IMX6SL_CLK_PWM4]         = imx_clk_gate2("pwm4",         "perclk",            base + 0x78, 22);
+       clks[IMX6SL_CLK_SDMA]         = imx_clk_gate2("sdma",         "ipg",               base + 0x7c, 6);
+       clks[IMX6SL_CLK_SPDIF]        = imx_clk_gate2("spdif",        "spdif0_podf",       base + 0x7c, 14);
+       clks[IMX6SL_CLK_SSI1]         = imx_clk_gate2("ssi1",         "ssi1_podf",         base + 0x7c, 18);
+       clks[IMX6SL_CLK_SSI2]         = imx_clk_gate2("ssi2",         "ssi2_podf",         base + 0x7c, 20);
+       clks[IMX6SL_CLK_SSI3]         = imx_clk_gate2("ssi3",         "ssi3_podf",         base + 0x7c, 22);
+       clks[IMX6SL_CLK_UART]         = imx_clk_gate2("uart",         "ipg",               base + 0x7c, 24);
+       clks[IMX6SL_CLK_UART_SERIAL]  = imx_clk_gate2("uart_serial",  "uart_root",         base + 0x7c, 26);
+       clks[IMX6SL_CLK_USBOH3]       = imx_clk_gate2("usboh3",       "ipg",               base + 0x80, 0);
+       clks[IMX6SL_CLK_USDHC1]       = imx_clk_gate2("usdhc1",       "usdhc1_podf",       base + 0x80, 2);
+       clks[IMX6SL_CLK_USDHC2]       = imx_clk_gate2("usdhc2",       "usdhc2_podf",       base + 0x80, 4);
+       clks[IMX6SL_CLK_USDHC3]       = imx_clk_gate2("usdhc3",       "usdhc3_podf",       base + 0x80, 6);
+       clks[IMX6SL_CLK_USDHC4]       = imx_clk_gate2("usdhc4",       "usdhc4_podf",       base + 0x80, 8);
+
+       for (i = 0; i < ARRAY_SIZE(clks); i++)
+               if (IS_ERR(clks[i]))
+                       pr_err("i.MX6SL clk %d: register failed with %ld\n",
+                               i, PTR_ERR(clks[i]));
+
+       clk_data.clks = clks;
+       clk_data.clk_num = ARRAY_SIZE(clks);
+       of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
+
+       clk_register_clkdev(clks[IMX6SL_CLK_GPT], "ipg", "imx-gpt.0");
+       clk_register_clkdev(clks[IMX6SL_CLK_GPT_SERIAL], "per", "imx-gpt.0");
+
+       if (IS_ENABLED(CONFIG_USB_MXS_PHY)) {
+               clk_prepare_enable(clks[IMX6SL_CLK_USBPHY1_GATE]);
+               clk_prepare_enable(clks[IMX6SL_CLK_USBPHY2_GATE]);
+       }
+
+       np = of_find_compatible_node(NULL, NULL, "fsl,imx6sl-gpt");
+       base = of_iomap(np, 0);
+       WARN_ON(!base);
+       irq = irq_of_parse_and_map(np, 0);
+       mxc_timer_init(base, irq);
+}
+CLK_OF_DECLARE(imx6sl, "fsl,imx6sl-ccm", imx6sl_clocks_init);
index d09bc3df9a7a69bc7a4d63c7abeb7b078077a1f0..a9fad5f8d340b50fb50e2348a6e761623be50911 100644 (file)
@@ -296,13 +296,6 @@ static const struct clk_ops clk_pllv3_enet_ops = {
        .recalc_rate    = clk_pllv3_enet_recalc_rate,
 };
 
-static const struct clk_ops clk_pllv3_mlb_ops = {
-       .prepare        = clk_pllv3_prepare,
-       .unprepare      = clk_pllv3_unprepare,
-       .enable         = clk_pllv3_enable,
-       .disable        = clk_pllv3_disable,
-};
-
 struct clk *imx_clk_pllv3(enum imx_pllv3_type type, const char *name,
                          const char *parent_name, void __iomem *base,
                          u32 div_mask)
@@ -330,9 +323,6 @@ struct clk *imx_clk_pllv3(enum imx_pllv3_type type, const char *name,
        case IMX_PLLV3_ENET:
                ops = &clk_pllv3_enet_ops;
                break;
-       case IMX_PLLV3_MLB:
-               ops = &clk_pllv3_mlb_ops;
-               break;
        default:
                ops = &clk_pllv3_ops;
        }
diff --git a/arch/arm/mach-imx/clk-vf610.c b/arch/arm/mach-imx/clk-vf610.c
new file mode 100644 (file)
index 0000000..d617c0b
--- /dev/null
@@ -0,0 +1,319 @@
+/*
+ * Copyright 2012-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 <linux/of_address.h>
+#include <linux/clk.h>
+#include <dt-bindings/clock/vf610-clock.h>
+
+#include "clk.h"
+
+#define CCM_CCR                        (ccm_base + 0x00)
+#define CCM_CSR                        (ccm_base + 0x04)
+#define CCM_CCSR               (ccm_base + 0x08)
+#define CCM_CACRR              (ccm_base + 0x0c)
+#define CCM_CSCMR1             (ccm_base + 0x10)
+#define CCM_CSCDR1             (ccm_base + 0x14)
+#define CCM_CSCDR2             (ccm_base + 0x18)
+#define CCM_CSCDR3             (ccm_base + 0x1c)
+#define CCM_CSCMR2             (ccm_base + 0x20)
+#define CCM_CSCDR4             (ccm_base + 0x24)
+#define CCM_CLPCR              (ccm_base + 0x2c)
+#define CCM_CISR               (ccm_base + 0x30)
+#define CCM_CIMR               (ccm_base + 0x34)
+#define CCM_CGPR               (ccm_base + 0x3c)
+#define CCM_CCGR0              (ccm_base + 0x40)
+#define CCM_CCGR1              (ccm_base + 0x44)
+#define CCM_CCGR2              (ccm_base + 0x48)
+#define CCM_CCGR3              (ccm_base + 0x4c)
+#define CCM_CCGR4              (ccm_base + 0x50)
+#define CCM_CCGR5              (ccm_base + 0x54)
+#define CCM_CCGR6              (ccm_base + 0x58)
+#define CCM_CCGR7              (ccm_base + 0x5c)
+#define CCM_CCGR8              (ccm_base + 0x60)
+#define CCM_CCGR9              (ccm_base + 0x64)
+#define CCM_CCGR10             (ccm_base + 0x68)
+#define CCM_CCGR11             (ccm_base + 0x6c)
+#define CCM_CMEOR0             (ccm_base + 0x70)
+#define CCM_CMEOR1             (ccm_base + 0x74)
+#define CCM_CMEOR2             (ccm_base + 0x78)
+#define CCM_CMEOR3             (ccm_base + 0x7c)
+#define CCM_CMEOR4             (ccm_base + 0x80)
+#define CCM_CMEOR5             (ccm_base + 0x84)
+#define CCM_CPPDSR             (ccm_base + 0x88)
+#define CCM_CCOWR              (ccm_base + 0x8c)
+#define CCM_CCPGR0             (ccm_base + 0x90)
+#define CCM_CCPGR1             (ccm_base + 0x94)
+#define CCM_CCPGR2             (ccm_base + 0x98)
+#define CCM_CCPGR3             (ccm_base + 0x9c)
+
+#define CCM_CCGRx_CGn(n)       ((n) * 2)
+
+#define PFD_PLL1_BASE          (anatop_base + 0x2b0)
+#define PFD_PLL2_BASE          (anatop_base + 0x100)
+#define PFD_PLL3_BASE          (anatop_base + 0xf0)
+
+static void __iomem *anatop_base;
+static void __iomem *ccm_base;
+
+/* sources for multiplexer clocks, this is used multiple times */
+static const char const *fast_sels[]   = { "firc", "fxosc", };
+static const char const *slow_sels[]   = { "sirc_32k", "sxosc", };
+static const char const *pll1_sels[]   = { "pll1_main", "pll1_pfd1", "pll1_pfd2", "pll1_pfd3", "pll1_pfd4", };
+static const char const *pll2_sels[]   = { "pll2_main", "pll2_pfd1", "pll2_pfd2", "pll2_pfd3", "pll2_pfd4", };
+static const char const *sys_sels[]    = { "fast_clk_sel", "slow_clk_sel", "pll2_pfd_sel", "pll2_main", "pll1_pfd_sel", "pll3_main", };
+static const char const *ddr_sels[]    = { "pll2_pfd2", "sys_sel", };
+static const char const *rmii_sels[]   = { "enet_ext", "audio_ext", "enet_50m", "enet_25m", };
+static const char const *enet_ts_sels[]        = { "enet_ext", "fxosc", "audio_ext", "usb", "enet_ts", "enet_25m", "enet_50m", };
+static const char const *esai_sels[]   = { "audio_ext", "mlb", "spdif_rx", "pll4_main_div", };
+static const char const *sai_sels[]    = { "audio_ext", "mlb", "spdif_rx", "pll4_main_div", };
+static const char const *nfc_sels[]    = { "platform_bus", "pll1_pfd1", "pll3_pfd1", "pll3_pfd3", };
+static const char const *qspi_sels[]   = { "pll3_main", "pll3_pfd4", "pll2_pfd4", "pll1_pfd4", };
+static const char const *esdhc_sels[]  = { "pll3_main", "pll3_pfd3", "pll1_pfd3", "platform_bus", };
+static const char const *dcu_sels[]    = { "pll1_pfd2", "pll3_main", };
+static const char const *gpu_sels[]    = { "pll2_pfd2", "pll3_pfd2", };
+static const char const *vadc_sels[]   = { "pll6_main_div", "pll3_main_div", "pll3_main", };
+/* FTM counter clock source, not module clock */
+static const char const *ftm_ext_sels[]        = {"sirc_128k", "sxosc", "fxosc_half", "audio_ext", };
+static const char const *ftm_fix_sels[]        = { "sxosc", "ipg_bus", };
+
+static struct clk_div_table pll4_main_div_table[] = {
+       { .val = 0, .div = 1 },
+       { .val = 1, .div = 2 },
+       { .val = 2, .div = 6 },
+       { .val = 3, .div = 8 },
+       { .val = 4, .div = 10 },
+       { .val = 5, .div = 12 },
+       { .val = 6, .div = 14 },
+       { .val = 7, .div = 16 },
+       { }
+};
+
+static struct clk *clk[VF610_CLK_END];
+static struct clk_onecell_data clk_data;
+
+static void __init vf610_clocks_init(struct device_node *ccm_node)
+{
+       struct device_node *np;
+
+       clk[VF610_CLK_DUMMY] = imx_clk_fixed("dummy", 0);
+       clk[VF610_CLK_SIRC_128K] = imx_clk_fixed("sirc_128k", 128000);
+       clk[VF610_CLK_SIRC_32K] = imx_clk_fixed("sirc_32k", 32000);
+       clk[VF610_CLK_FIRC] = imx_clk_fixed("firc", 24000000);
+
+       clk[VF610_CLK_SXOSC] = imx_obtain_fixed_clock("sxosc", 0);
+       clk[VF610_CLK_FXOSC] = imx_obtain_fixed_clock("fxosc", 0);
+       clk[VF610_CLK_AUDIO_EXT] = imx_obtain_fixed_clock("audio_ext", 0);
+       clk[VF610_CLK_ENET_EXT] = imx_obtain_fixed_clock("enet_ext", 0);
+
+       clk[VF610_CLK_FXOSC_HALF] = imx_clk_fixed_factor("fxosc_half", "fxosc", 1, 2);
+
+       np = of_find_compatible_node(NULL, NULL, "fsl,vf610-anatop");
+       anatop_base = of_iomap(np, 0);
+       BUG_ON(!anatop_base);
+
+       np = ccm_node;
+       ccm_base = of_iomap(np, 0);
+       BUG_ON(!ccm_base);
+
+       clk[VF610_CLK_SLOW_CLK_SEL] = imx_clk_mux("slow_clk_sel", CCM_CCSR, 4, 1, slow_sels, ARRAY_SIZE(slow_sels));
+       clk[VF610_CLK_FASK_CLK_SEL] = imx_clk_mux("fast_clk_sel", CCM_CCSR, 5, 1, fast_sels, ARRAY_SIZE(fast_sels));
+
+       clk[VF610_CLK_PLL1_MAIN] = imx_clk_fixed_factor("pll1_main", "fast_clk_sel", 22, 1);
+       clk[VF610_CLK_PLL1_PFD1] = imx_clk_pfd("pll1_pfd1", "pll1_main", PFD_PLL1_BASE, 0);
+       clk[VF610_CLK_PLL1_PFD2] = imx_clk_pfd("pll1_pfd2", "pll1_main", PFD_PLL1_BASE, 1);
+       clk[VF610_CLK_PLL1_PFD3] = imx_clk_pfd("pll1_pfd3", "pll1_main", PFD_PLL1_BASE, 2);
+       clk[VF610_CLK_PLL1_PFD4] = imx_clk_pfd("pll1_pfd4", "pll1_main", PFD_PLL1_BASE, 3);
+
+       clk[VF610_CLK_PLL2_MAIN] = imx_clk_fixed_factor("pll2_main", "fast_clk_sel", 22, 1);
+       clk[VF610_CLK_PLL2_PFD1] = imx_clk_pfd("pll2_pfd1", "pll2_main", PFD_PLL2_BASE, 0);
+       clk[VF610_CLK_PLL2_PFD2] = imx_clk_pfd("pll2_pfd2", "pll2_main", PFD_PLL2_BASE, 1);
+       clk[VF610_CLK_PLL2_PFD3] = imx_clk_pfd("pll2_pfd3", "pll2_main", PFD_PLL2_BASE, 2);
+       clk[VF610_CLK_PLL2_PFD4] = imx_clk_pfd("pll2_pfd4", "pll2_main", PFD_PLL2_BASE, 3);
+
+       clk[VF610_CLK_PLL3_MAIN] = imx_clk_fixed_factor("pll3_main", "fast_clk_sel", 20, 1);
+       clk[VF610_CLK_PLL3_PFD1] = imx_clk_pfd("pll3_pfd1", "pll3_main", PFD_PLL3_BASE, 0);
+       clk[VF610_CLK_PLL3_PFD2] = imx_clk_pfd("pll3_pfd2", "pll3_main", PFD_PLL3_BASE, 1);
+       clk[VF610_CLK_PLL3_PFD3] = imx_clk_pfd("pll3_pfd3", "pll3_main", PFD_PLL3_BASE, 2);
+       clk[VF610_CLK_PLL3_PFD4] = imx_clk_pfd("pll3_pfd4", "pll3_main", PFD_PLL3_BASE, 3);
+
+       clk[VF610_CLK_PLL4_MAIN] = imx_clk_fixed_factor("pll4_main", "fast_clk_sel", 25, 1);
+       /* Enet pll: fixed 50Mhz */
+       clk[VF610_CLK_PLL5_MAIN] = imx_clk_fixed_factor("pll5_main", "fast_clk_sel", 125, 6);
+       /* pll6: default 960Mhz */
+       clk[VF610_CLK_PLL6_MAIN] = imx_clk_fixed_factor("pll6_main", "fast_clk_sel", 40, 1);
+       clk[VF610_CLK_PLL1_PFD_SEL] = imx_clk_mux("pll1_pfd_sel", CCM_CCSR, 16, 3, pll1_sels, 5);
+       clk[VF610_CLK_PLL2_PFD_SEL] = imx_clk_mux("pll2_pfd_sel", CCM_CCSR, 19, 3, pll2_sels, 5);
+       clk[VF610_CLK_SYS_SEL] = imx_clk_mux("sys_sel", CCM_CCSR, 0, 3, sys_sels, ARRAY_SIZE(sys_sels));
+       clk[VF610_CLK_DDR_SEL] = imx_clk_mux("ddr_sel", CCM_CCSR, 6, 1, ddr_sels, ARRAY_SIZE(ddr_sels));
+       clk[VF610_CLK_SYS_BUS] = imx_clk_divider("sys_bus", "sys_sel", CCM_CACRR, 0, 3);
+       clk[VF610_CLK_PLATFORM_BUS] = imx_clk_divider("platform_bus", "sys_bus", CCM_CACRR, 3, 3);
+       clk[VF610_CLK_IPG_BUS] = imx_clk_divider("ipg_bus", "platform_bus", CCM_CACRR, 11, 2);
+
+       clk[VF610_CLK_PLL3_MAIN_DIV] = imx_clk_divider("pll3_main_div", "pll3_main", CCM_CACRR, 20, 1);
+       clk[VF610_CLK_PLL4_MAIN_DIV] = clk_register_divider_table(NULL, "pll4_main_div", "pll4_main", 0, CCM_CACRR, 6, 3, 0, pll4_main_div_table, &imx_ccm_lock);
+       clk[VF610_CLK_PLL6_MAIN_DIV] = imx_clk_divider("pll6_main_div", "pll6_main", CCM_CACRR, 21, 1);
+
+       clk[VF610_CLK_USBC0] = imx_clk_gate2("usbc0", "pll3_main", CCM_CCGR1, CCM_CCGRx_CGn(4));
+       clk[VF610_CLK_USBC1] = imx_clk_gate2("usbc1", "pll3_main", CCM_CCGR7, CCM_CCGRx_CGn(4));
+
+       clk[VF610_CLK_QSPI0_SEL] = imx_clk_mux("qspi0_sel", CCM_CSCMR1, 22, 2, qspi_sels, 4);
+       clk[VF610_CLK_QSPI0_EN] = imx_clk_gate("qspi0_en", "qspi0_sel", CCM_CSCDR3, 4);
+       clk[VF610_CLK_QSPI0_X4_DIV] = imx_clk_divider("qspi0_x4", "qspi0_en", CCM_CSCDR3, 0, 2);
+       clk[VF610_CLK_QSPI0_X2_DIV] = imx_clk_divider("qspi0_x2", "qspi0_x4", CCM_CSCDR3, 2, 1);
+       clk[VF610_CLK_QSPI0_X1_DIV] = imx_clk_divider("qspi0_x1", "qspi0_x2", CCM_CSCDR3, 3, 1);
+       clk[VF610_CLK_QSPI0] = imx_clk_gate2("qspi0", "qspi0_x1", CCM_CCGR2, CCM_CCGRx_CGn(4));
+
+       clk[VF610_CLK_QSPI1_SEL] = imx_clk_mux("qspi1_sel", CCM_CSCMR1, 24, 2, qspi_sels, 4);
+       clk[VF610_CLK_QSPI1_EN] = imx_clk_gate("qspi1_en", "qspi1_sel", CCM_CSCDR3, 12);
+       clk[VF610_CLK_QSPI1_X4_DIV] = imx_clk_divider("qspi1_x4", "qspi1_en", CCM_CSCDR3, 8, 2);
+       clk[VF610_CLK_QSPI1_X2_DIV] = imx_clk_divider("qspi1_x2", "qspi1_x4", CCM_CSCDR3, 10, 1);
+       clk[VF610_CLK_QSPI1_X1_DIV] = imx_clk_divider("qspi1_x1", "qspi1_x2", CCM_CSCDR3, 11, 1);
+       clk[VF610_CLK_QSPI1] = imx_clk_gate2("qspi1", "qspi1_x1", CCM_CCGR8, CCM_CCGRx_CGn(4));
+
+       clk[VF610_CLK_ENET_50M] = imx_clk_fixed_factor("enet_50m", "pll5_main", 1, 10);
+       clk[VF610_CLK_ENET_25M] = imx_clk_fixed_factor("enet_25m", "pll5_main", 1, 20);
+       clk[VF610_CLK_ENET_SEL] = imx_clk_mux("enet_sel", CCM_CSCMR2, 4, 2, rmii_sels, 4);
+       clk[VF610_CLK_ENET_TS_SEL] = imx_clk_mux("enet_ts_sel", CCM_CSCMR2, 0, 3, enet_ts_sels, 7);
+       clk[VF610_CLK_ENET] = imx_clk_gate("enet", "enet_sel", CCM_CSCDR1, 24);
+       clk[VF610_CLK_ENET_TS] = imx_clk_gate("enet_ts", "enet_ts_sel", CCM_CSCDR1, 23);
+
+       clk[VF610_CLK_PIT] = imx_clk_gate2("pit", "ipg_bus", CCM_CCGR1, CCM_CCGRx_CGn(7));
+
+       clk[VF610_CLK_UART0] = imx_clk_gate2("uart0", "ipg_bus", CCM_CCGR0, CCM_CCGRx_CGn(7));
+       clk[VF610_CLK_UART1] = imx_clk_gate2("uart1", "ipg_bus", CCM_CCGR0, CCM_CCGRx_CGn(8));
+       clk[VF610_CLK_UART2] = imx_clk_gate2("uart2", "ipg_bus", CCM_CCGR0, CCM_CCGRx_CGn(9));
+       clk[VF610_CLK_UART3] = imx_clk_gate2("uart3", "ipg_bus", CCM_CCGR0, CCM_CCGRx_CGn(10));
+
+       clk[VF610_CLK_I2C0] = imx_clk_gate2("i2c0", "ipg_bus", CCM_CCGR4, CCM_CCGRx_CGn(6));
+       clk[VF610_CLK_I2C1] = imx_clk_gate2("i2c1", "ipg_bus", CCM_CCGR4, CCM_CCGRx_CGn(7));
+
+       clk[VF610_CLK_DSPI0] = imx_clk_gate2("dspi0", "ipg_bus", CCM_CCGR0, CCM_CCGRx_CGn(12));
+       clk[VF610_CLK_DSPI1] = imx_clk_gate2("dspi1", "ipg_bus", CCM_CCGR0, CCM_CCGRx_CGn(13));
+       clk[VF610_CLK_DSPI2] = imx_clk_gate2("dspi2", "ipg_bus", CCM_CCGR6, CCM_CCGRx_CGn(12));
+       clk[VF610_CLK_DSPI3] = imx_clk_gate2("dspi3", "ipg_bus", CCM_CCGR6, CCM_CCGRx_CGn(13));
+
+       clk[VF610_CLK_WDT] = imx_clk_gate2("wdt", "ipg_bus", CCM_CCGR1, CCM_CCGRx_CGn(14));
+
+       clk[VF610_CLK_ESDHC0_SEL] = imx_clk_mux("esdhc0_sel", CCM_CSCMR1, 16, 2, esdhc_sels, 4);
+       clk[VF610_CLK_ESDHC0_EN] = imx_clk_gate("esdhc0_en", "esdhc0_sel", CCM_CSCDR2, 28);
+       clk[VF610_CLK_ESDHC0_DIV] = imx_clk_divider("esdhc0_div", "esdhc0_en", CCM_CSCDR2, 16, 4);
+       clk[VF610_CLK_ESDHC0] = imx_clk_gate2("eshc0", "esdhc0_div", CCM_CCGR7, CCM_CCGRx_CGn(1));
+
+       clk[VF610_CLK_ESDHC1_SEL] = imx_clk_mux("esdhc1_sel", CCM_CSCMR1, 18, 2, esdhc_sels, 4);
+       clk[VF610_CLK_ESDHC1_EN] = imx_clk_gate("esdhc1_en", "esdhc1_sel", CCM_CSCDR2, 29);
+       clk[VF610_CLK_ESDHC1_DIV] = imx_clk_divider("esdhc1_div", "esdhc1_en", CCM_CSCDR2, 20, 4);
+       clk[VF610_CLK_ESDHC1] = imx_clk_gate2("eshc1", "esdhc1_div", CCM_CCGR7, CCM_CCGRx_CGn(2));
+
+       /*
+        * ftm_ext_clk and ftm_fix_clk are FTM timer counter's
+        * selectable clock sources, both use a common enable bit
+        * in CCM_CSCDR1, selecting "dummy" clock as parent of
+        * "ftm0_ext_fix" make it serve only for enable/disable.
+        */
+       clk[VF610_CLK_FTM0_EXT_SEL] = imx_clk_mux("ftm0_ext_sel", CCM_CSCMR2, 6, 2, ftm_ext_sels, 4);
+       clk[VF610_CLK_FTM0_FIX_SEL] = imx_clk_mux("ftm0_fix_sel", CCM_CSCMR2, 14, 1, ftm_fix_sels, 2);
+       clk[VF610_CLK_FTM0_EXT_FIX_EN] = imx_clk_gate("ftm0_ext_fix_en", "dummy", CCM_CSCDR1, 25);
+       clk[VF610_CLK_FTM1_EXT_SEL] = imx_clk_mux("ftm1_ext_sel", CCM_CSCMR2, 8, 2, ftm_ext_sels, 4);
+       clk[VF610_CLK_FTM1_FIX_SEL] = imx_clk_mux("ftm1_fix_sel", CCM_CSCMR2, 15, 1, ftm_fix_sels, 2);
+       clk[VF610_CLK_FTM1_EXT_FIX_EN] = imx_clk_gate("ftm1_ext_fix_en", "dummy", CCM_CSCDR1, 26);
+       clk[VF610_CLK_FTM2_EXT_SEL] = imx_clk_mux("ftm2_ext_sel", CCM_CSCMR2, 10, 2, ftm_ext_sels, 4);
+       clk[VF610_CLK_FTM2_FIX_SEL] = imx_clk_mux("ftm2_fix_sel", CCM_CSCMR2, 16, 1, ftm_fix_sels, 2);
+       clk[VF610_CLK_FTM2_EXT_FIX_EN] = imx_clk_gate("ftm2_ext_fix_en", "dummy", CCM_CSCDR1, 27);
+       clk[VF610_CLK_FTM3_EXT_SEL] = imx_clk_mux("ftm3_ext_sel", CCM_CSCMR2, 12, 2, ftm_ext_sels, 4);
+       clk[VF610_CLK_FTM3_FIX_SEL] = imx_clk_mux("ftm3_fix_sel", CCM_CSCMR2, 17, 1, ftm_fix_sels, 2);
+       clk[VF610_CLK_FTM3_EXT_FIX_EN] = imx_clk_gate("ftm3_ext_fix_en", "dummy", CCM_CSCDR1, 28);
+
+       /* ftm(n)_clk are FTM module operation clock */
+       clk[VF610_CLK_FTM0] = imx_clk_gate2("ftm0", "ipg_bus", CCM_CCGR1, CCM_CCGRx_CGn(8));
+       clk[VF610_CLK_FTM1] = imx_clk_gate2("ftm1", "ipg_bus", CCM_CCGR1, CCM_CCGRx_CGn(9));
+       clk[VF610_CLK_FTM2] = imx_clk_gate2("ftm2", "ipg_bus", CCM_CCGR7, CCM_CCGRx_CGn(8));
+       clk[VF610_CLK_FTM3] = imx_clk_gate2("ftm3", "ipg_bus", CCM_CCGR7, CCM_CCGRx_CGn(9));
+
+       clk[VF610_CLK_DCU0_SEL] = imx_clk_mux("dcu0_sel", CCM_CSCMR1, 28, 1, dcu_sels, 2);
+       clk[VF610_CLK_DCU0_EN] = imx_clk_gate("dcu0_en", "dcu0_sel", CCM_CSCDR3, 19);
+       clk[VF610_CLK_DCU0_DIV] = imx_clk_divider("dcu0_div", "dcu0_en", CCM_CSCDR3, 16, 3);
+       clk[VF610_CLK_DCU0] = imx_clk_gate2("dcu0", "dcu0_div", CCM_CCGR3, CCM_CCGRx_CGn(8));
+       clk[VF610_CLK_DCU1_SEL] = imx_clk_mux("dcu1_sel", CCM_CSCMR1, 29, 1, dcu_sels, 2);
+       clk[VF610_CLK_DCU1_EN] = imx_clk_gate("dcu1_en", "dcu1_sel", CCM_CSCDR3, 23);
+       clk[VF610_CLK_DCU1_DIV] = imx_clk_divider("dcu1_div", "dcu1_en", CCM_CSCDR3, 20, 3);
+       clk[VF610_CLK_DCU1] = imx_clk_gate2("dcu1", "dcu1_div", CCM_CCGR9, CCM_CCGRx_CGn(8));
+
+       clk[VF610_CLK_ESAI_SEL] = imx_clk_mux("esai_sel", CCM_CSCMR1, 20, 2, esai_sels, 4);
+       clk[VF610_CLK_ESAI_EN] = imx_clk_gate("esai_en", "esai_sel", CCM_CSCDR2, 30);
+       clk[VF610_CLK_ESAI_DIV] = imx_clk_divider("esai_div", "esai_en", CCM_CSCDR2, 24, 4);
+       clk[VF610_CLK_ESAI] = imx_clk_gate2("esai", "esai_div", CCM_CCGR4, CCM_CCGRx_CGn(2));
+
+       clk[VF610_CLK_SAI0_SEL] = imx_clk_mux("sai0_sel", CCM_CSCMR1, 0, 2, sai_sels, 4);
+       clk[VF610_CLK_SAI0_EN] = imx_clk_gate("sai0_en", "sai0_sel", CCM_CSCDR1, 16);
+       clk[VF610_CLK_SAI0_DIV] = imx_clk_divider("sai0_div", "sai0_en", CCM_CSCDR1, 0, 4);
+       clk[VF610_CLK_SAI0] = imx_clk_gate2("sai0", "sai0_div", CCM_CCGR0, CCM_CCGRx_CGn(15));
+
+       clk[VF610_CLK_SAI1_SEL] = imx_clk_mux("sai1_sel", CCM_CSCMR1, 2, 2, sai_sels, 4);
+       clk[VF610_CLK_SAI1_EN] = imx_clk_gate("sai1_en", "sai1_sel", CCM_CSCDR1, 17);
+       clk[VF610_CLK_SAI1_DIV] = imx_clk_divider("sai1_div", "sai1_en", CCM_CSCDR1, 4, 4);
+       clk[VF610_CLK_SAI1] = imx_clk_gate2("sai1", "sai1_div", CCM_CCGR1, CCM_CCGRx_CGn(0));
+
+       clk[VF610_CLK_SAI2_SEL] = imx_clk_mux("sai2_sel", CCM_CSCMR1, 4, 2, sai_sels, 4);
+       clk[VF610_CLK_SAI2_EN] = imx_clk_gate("sai2_en", "sai2_sel", CCM_CSCDR1, 18);
+       clk[VF610_CLK_SAI2_DIV] = imx_clk_divider("sai2_div", "sai2_en", CCM_CSCDR1, 8, 4);
+       clk[VF610_CLK_SAI2] = imx_clk_gate2("sai2", "sai2_div", CCM_CCGR1, CCM_CCGRx_CGn(1));
+
+       clk[VF610_CLK_SAI3_SEL] = imx_clk_mux("sai3_sel", CCM_CSCMR1, 6, 2, sai_sels, 4);
+       clk[VF610_CLK_SAI3_EN] = imx_clk_gate("sai3_en", "sai3_sel", CCM_CSCDR1, 19);
+       clk[VF610_CLK_SAI3_DIV] = imx_clk_divider("sai3_div", "sai3_en", CCM_CSCDR1, 12, 4);
+       clk[VF610_CLK_SAI3] = imx_clk_gate2("sai3", "sai3_div", CCM_CCGR1, CCM_CCGRx_CGn(2));
+
+       clk[VF610_CLK_NFC_SEL] = imx_clk_mux("nfc_sel", CCM_CSCMR1, 12, 2, nfc_sels, 4);
+       clk[VF610_CLK_NFC_EN] = imx_clk_gate("nfc_en", "nfc_sel", CCM_CSCDR2, 9);
+       clk[VF610_CLK_NFC_PRE_DIV] = imx_clk_divider("nfc_pre_div", "nfc_en", CCM_CSCDR3, 13, 3);
+       clk[VF610_CLK_NFC_FRAC_DIV] = imx_clk_divider("nfc_frac_div", "nfc_pre_div", CCM_CSCDR2, 4, 4);
+       clk[VF610_CLK_NFC] = imx_clk_gate2("nfc", "nfc_frac_div", CCM_CCGR10, CCM_CCGRx_CGn(0));
+
+       clk[VF610_CLK_GPU_SEL] = imx_clk_mux("gpu_sel", CCM_CSCMR1, 14, 1, gpu_sels, 2);
+       clk[VF610_CLK_GPU_EN] = imx_clk_gate("gpu_en", "gpu_sel", CCM_CSCDR2, 10);
+       clk[VF610_CLK_GPU2D] = imx_clk_gate2("gpu", "gpu_en", CCM_CCGR8, CCM_CCGRx_CGn(15));
+
+       clk[VF610_CLK_VADC_SEL] = imx_clk_mux("vadc_sel", CCM_CSCMR1, 8, 2, vadc_sels, 3);
+       clk[VF610_CLK_VADC_EN] = imx_clk_gate("vadc_en", "vadc_sel", CCM_CSCDR1, 22);
+       clk[VF610_CLK_VADC_DIV] = imx_clk_divider("vadc_div", "vadc_en", CCM_CSCDR1, 20, 2);
+       clk[VF610_CLK_VADC_DIV_HALF] = imx_clk_fixed_factor("vadc_div_half", "vadc_div", 1, 2);
+       clk[VF610_CLK_VADC] = imx_clk_gate2("vadc", "vadc_div", CCM_CCGR8, CCM_CCGRx_CGn(7));
+
+       clk[VF610_CLK_ADC0] = imx_clk_gate2("adc0", "ipg_bus", CCM_CCGR1, CCM_CCGRx_CGn(11));
+       clk[VF610_CLK_ADC1] = imx_clk_gate2("adc1", "ipg_bus", CCM_CCGR7, CCM_CCGRx_CGn(11));
+       clk[VF610_CLK_DAC0] = imx_clk_gate2("dac0", "ipg_bus", CCM_CCGR8, CCM_CCGRx_CGn(12));
+       clk[VF610_CLK_DAC1] = imx_clk_gate2("dac1", "ipg_bus", CCM_CCGR8, CCM_CCGRx_CGn(13));
+
+       clk[VF610_CLK_ASRC] = imx_clk_gate2("asrc", "ipg_bus", CCM_CCGR4, CCM_CCGRx_CGn(1));
+
+       clk[VF610_CLK_FLEXCAN0] = imx_clk_gate2("flexcan0", "ipg_bus", CCM_CCGR0, CCM_CCGRx_CGn(0));
+       clk[VF610_CLK_FLEXCAN1] = imx_clk_gate2("flexcan1", "ipg_bus", CCM_CCGR9, CCM_CCGRx_CGn(4));
+
+       clk_set_parent(clk[VF610_CLK_QSPI0_SEL], clk[VF610_CLK_PLL1_PFD4]);
+       clk_set_rate(clk[VF610_CLK_QSPI0_X4_DIV], clk_get_rate(clk[VF610_CLK_QSPI0_SEL]) / 2);
+       clk_set_rate(clk[VF610_CLK_QSPI0_X2_DIV], clk_get_rate(clk[VF610_CLK_QSPI0_X4_DIV]) / 2);
+       clk_set_rate(clk[VF610_CLK_QSPI0_X1_DIV], clk_get_rate(clk[VF610_CLK_QSPI0_X2_DIV]) / 2);
+
+       clk_set_parent(clk[VF610_CLK_QSPI1_SEL], clk[VF610_CLK_PLL1_PFD4]);
+       clk_set_rate(clk[VF610_CLK_QSPI1_X4_DIV], clk_get_rate(clk[VF610_CLK_QSPI1_SEL]) / 2);
+       clk_set_rate(clk[VF610_CLK_QSPI1_X2_DIV], clk_get_rate(clk[VF610_CLK_QSPI1_X4_DIV]) / 2);
+       clk_set_rate(clk[VF610_CLK_QSPI1_X1_DIV], clk_get_rate(clk[VF610_CLK_QSPI1_X2_DIV]) / 2);
+
+       clk_set_parent(clk[VF610_CLK_SAI0_SEL], clk[VF610_CLK_AUDIO_EXT]);
+       clk_set_parent(clk[VF610_CLK_SAI1_SEL], clk[VF610_CLK_AUDIO_EXT]);
+       clk_set_parent(clk[VF610_CLK_SAI2_SEL], clk[VF610_CLK_AUDIO_EXT]);
+       clk_set_parent(clk[VF610_CLK_SAI3_SEL], clk[VF610_CLK_AUDIO_EXT]);
+
+       /* Add the clocks to provider list */
+       clk_data.clks = clk;
+       clk_data.clk_num = ARRAY_SIZE(clk);
+       of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
+}
+CLK_OF_DECLARE(vf610, "fsl,vf610-ccm", vf610_clocks_init);
index 37e884ed1cd4098d43788e34e7f21d7d1ff88404..55bc80a00666412b8d7c53daaba26dced5e2eb95 100644 (file)
@@ -1,4 +1,39 @@
+#include <linux/clk.h>
+#include <linux/err.h>
+#include <linux/of.h>
+#include <linux/slab.h>
 #include <linux/spinlock.h>
 #include "clk.h"
 
 DEFINE_SPINLOCK(imx_ccm_lock);
+
+static struct clk * __init imx_obtain_fixed_clock_from_dt(const char *name)
+{
+       struct of_phandle_args phandle;
+       struct clk *clk = ERR_PTR(-ENODEV);
+       char *path;
+
+       path = kasprintf(GFP_KERNEL, "/clocks/%s", name);
+       if (!path)
+               return ERR_PTR(-ENOMEM);
+
+       phandle.np = of_find_node_by_path(path);
+       kfree(path);
+
+       if (phandle.np) {
+               clk = of_clk_get_from_provider(&phandle);
+               of_node_put(phandle.np);
+       }
+       return clk;
+}
+
+struct clk * __init imx_obtain_fixed_clock(
+                       const char *name, unsigned long rate)
+{
+       struct clk *clk;
+
+       clk = imx_obtain_fixed_clock_from_dt(name);
+       if (IS_ERR(clk))
+               clk = imx_clk_fixed(name, rate);
+       return clk;
+}
index d9d9d9c66dffd2538d0b58cf34021212969836f1..0e4e8bb261b945c1fb22d32b9e693592f17dfa41 100644 (file)
@@ -18,7 +18,6 @@ enum imx_pllv3_type {
        IMX_PLLV3_USB,
        IMX_PLLV3_AV,
        IMX_PLLV3_ENET,
-       IMX_PLLV3_MLB,
 };
 
 struct clk *imx_clk_pllv3(enum imx_pllv3_type type, const char *name,
@@ -29,6 +28,9 @@ struct clk *clk_register_gate2(struct device *dev, const char *name,
                void __iomem *reg, u8 bit_idx,
                u8 clk_gate_flags, spinlock_t *lock);
 
+struct clk * imx_obtain_fixed_clock(
+                       const char *name, unsigned long rate);
+
 static inline struct clk *imx_clk_gate2(const char *name, const char *parent,
                void __iomem *reg, u8 shift)
 {
index c08ae3f99cee0e98f0025a0840a430407406e1b1..ee78847abf4708c98bff9d91bb2e123917ea39c8 100644 (file)
@@ -68,12 +68,12 @@ extern int mx27_clocks_init_dt(void);
 extern int mx31_clocks_init_dt(void);
 extern int mx51_clocks_init_dt(void);
 extern int mx53_clocks_init_dt(void);
-extern int mx6q_clocks_init(void);
 extern struct platform_device *mxc_register_gpio(char *name, int id,
        resource_size_t iobase, resource_size_t iosize, int irq, int irq_high);
 extern void mxc_set_cpu_type(unsigned int type);
 extern void mxc_restart(char, const char *);
 extern void mxc_arch_reset_init(void __iomem *);
+extern void mxc_arch_reset_init_dt(void);
 extern int mx53_revision(void);
 extern int imx6q_revision(void);
 extern int mx53_display_revision(void);
index 356131f7b591ddd212b7f1fadb97c626c64eb1e8..a3b0b04b45c90f9bc4808ece62482521f85fcf24 100644 (file)
@@ -20,6 +20,7 @@
 #ifndef __ASM_ARCH_MXC_HARDWARE_H__
 #define __ASM_ARCH_MXC_HARDWARE_H__
 
+#include <asm/io.h>
 #include <asm/sizes.h>
 
 #define addr_in_module(addr, mod) \
index 82348391582a0944108a8d3ab06a4abb81771e20..3e1ec5ffe630f72976601339a7f32ac8f6c38584 100644 (file)
@@ -19,6 +19,8 @@
 
 static void __init imx25_dt_init(void)
 {
+       mxc_arch_reset_init_dt();
+
        of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
 }
 
index 4aaead0a77fffa89a1f3ef974915fe3a44601538..4e235ecb402191fb5b248b49804d160dab6b2a06 100644 (file)
@@ -22,6 +22,8 @@ static void __init imx27_dt_init(void)
 {
        struct platform_device_info devinfo = { .name = "cpufreq-cpu0", };
 
+       mxc_arch_reset_init_dt();
+
        of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
 
        platform_device_register_full(&devinfo);
index 67de611e29ab32d1bd711418ffcd1780cf983e34..818a1cc2fe45e4ead8c2f4cd367ba24148d2aa30 100644 (file)
@@ -20,6 +20,8 @@
 
 static void __init imx31_dt_init(void)
 {
+       mxc_arch_reset_init_dt();
+
        of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
 }
 
index ab24cc32211126874ea8ef5695da20180993d2a6..53e43e579dd79afbb755360d7ff8f8936dcc4d86 100644 (file)
@@ -23,6 +23,8 @@ static void __init imx51_dt_init(void)
 {
        struct platform_device_info devinfo = { .name = "cpufreq-cpu0", };
 
+       mxc_arch_reset_init_dt();
+
        of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
        platform_device_register_full(&devinfo);
 }
index 4b34f52dc46bc604f9cf1e618323df3c18e5ca12..0a920d184867a9753897a9ebf1282661b077c73c 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <linux/module.h>
 #include <linux/irq.h>
+#include <linux/platform_data/asoc-imx-ssi.h>
 
 #include "irq-common.h"
 
index f579c616feed3b2008965fa9ef8b63dc84e6ab01..98c58944015a596db1431e770f5a5c9765300227 100644 (file)
 #include <asm/mach/time.h>
 
 #include "common.h"
+#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)
 {
-       if (of_machine_is_compatible("fsl,imx53-qsb"))
-               imx53_qsb_init();
+       mxc_arch_reset_init_dt();
 
        of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
 }
index 5536fd81379a87dc2d7856a9b46338578aa52cbd..f5965220a4d8a6207204309802161898c0bb939f 100644 (file)
@@ -11,6 +11,7 @@
  */
 
 #include <linux/clk.h>
+#include <linux/clk-provider.h>
 #include <linux/clkdev.h>
 #include <linux/clocksource.h>
 #include <linux/cpu.h>
@@ -145,6 +146,45 @@ static void __init imx6q_sabrelite_init(void)
        imx6q_sabrelite_cko1_setup();
 }
 
+static void __init imx6q_sabresd_cko1_setup(void)
+{
+       struct clk *cko1_sel, *pll4, *pll4_post, *cko1;
+       unsigned long rate;
+
+       cko1_sel = clk_get_sys(NULL, "cko1_sel");
+       pll4 = clk_get_sys(NULL, "pll4_audio");
+       pll4_post = clk_get_sys(NULL, "pll4_post_div");
+       cko1 = clk_get_sys(NULL, "cko1");
+       if (IS_ERR(cko1_sel) || IS_ERR(pll4)
+                       || IS_ERR(pll4_post) || IS_ERR(cko1)) {
+               pr_err("cko1 setup failed!\n");
+               goto put_clk;
+       }
+       /*
+        * Setting pll4 at 768MHz (24MHz * 32)
+        * So its child clock can get 24MHz easily
+        */
+       clk_set_rate(pll4, 768000000);
+
+       clk_set_parent(cko1_sel, pll4_post);
+       rate = clk_round_rate(cko1, 24000000);
+       clk_set_rate(cko1, rate);
+put_clk:
+       if (!IS_ERR(cko1_sel))
+               clk_put(cko1_sel);
+       if (!IS_ERR(pll4_post))
+               clk_put(pll4_post);
+       if (!IS_ERR(pll4))
+               clk_put(pll4);
+       if (!IS_ERR(cko1))
+               clk_put(cko1);
+}
+
+static void __init imx6q_sabresd_init(void)
+{
+       imx6q_sabresd_cko1_setup();
+}
+
 static void __init imx6q_1588_init(void)
 {
        struct regmap *gpr;
@@ -165,6 +205,9 @@ static void __init imx6q_init_machine(void)
 {
        if (of_machine_is_compatible("fsl,imx6q-sabrelite"))
                imx6q_sabrelite_init();
+       else if (of_machine_is_compatible("fsl,imx6q-sabresd") ||
+                       of_machine_is_compatible("fsl,imx6dl-sabresd"))
+               imx6q_sabresd_init();
 
        of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
 
@@ -253,10 +296,44 @@ static void __init imx6q_map_io(void)
        imx_scu_map_io();
 }
 
+#ifdef CONFIG_CACHE_L2X0
+static void __init imx6q_init_l2cache(void)
+{
+       void __iomem *l2x0_base;
+       struct device_node *np;
+       unsigned int val;
+
+       np = of_find_compatible_node(NULL, NULL, "arm,pl310-cache");
+       if (!np)
+               goto out;
+
+       l2x0_base = of_iomap(np, 0);
+       if (!l2x0_base) {
+               of_node_put(np);
+               goto out;
+       }
+
+       /* Configure the L2 PREFETCH and POWER registers */
+       val = readl_relaxed(l2x0_base + L2X0_PREFETCH_CTRL);
+       val |= 0x70800000;
+       writel_relaxed(val, l2x0_base + L2X0_PREFETCH_CTRL);
+       val = L2X0_DYNAMIC_CLK_GATING_EN | L2X0_STNDBY_MODE_EN;
+       writel_relaxed(val, l2x0_base + L2X0_POWER_CTRL);
+
+       iounmap(l2x0_base);
+       of_node_put(np);
+
+out:
+       l2x0_of_init(0, ~0UL);
+}
+#else
+static inline void imx6q_init_l2cache(void) {}
+#endif
+
 static void __init imx6q_init_irq(void)
 {
        imx6q_init_revision();
-       l2x0_of_init(0, ~0UL);
+       imx6q_init_l2cache();
        imx_src_init();
        imx_gpc_init();
        irqchip_init();
@@ -264,7 +341,7 @@ static void __init imx6q_init_irq(void)
 
 static void __init imx6q_timer_init(void)
 {
-       mx6q_clocks_init();
+       of_clk_init(NULL);
        clocksource_of_init();
        imx_print_silicon_rev(cpu_is_imx6dl() ? "i.MX6DL" : "i.MX6Q",
                              imx6q_revision());
diff --git a/arch/arm/mach-imx/mach-imx6sl.c b/arch/arm/mach-imx/mach-imx6sl.c
new file mode 100644 (file)
index 0000000..132db26
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * 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 <linux/clk-provider.h>
+#include <linux/irqchip.h>
+#include <linux/of.h>
+#include <linux/of_platform.h>
+#include <asm/hardware/cache-l2x0.h>
+#include <asm/mach/arch.h>
+#include <asm/mach/map.h>
+
+#include "common.h"
+
+static void __init imx6sl_init_machine(void)
+{
+       mxc_arch_reset_init_dt();
+
+       of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
+}
+
+static void __init imx6sl_init_irq(void)
+{
+       l2x0_of_init(0, ~0UL);
+       imx_src_init();
+       imx_gpc_init();
+       irqchip_init();
+}
+
+static void __init imx6sl_timer_init(void)
+{
+       of_clk_init(NULL);
+}
+
+static const char *imx6sl_dt_compat[] __initdata = {
+       "fsl,imx6sl",
+       NULL,
+};
+
+DT_MACHINE_START(IMX6SL, "Freescale i.MX6 SoloLite (Device Tree)")
+       .map_io         = debug_ll_io_init,
+       .init_irq       = imx6sl_init_irq,
+       .init_time      = imx6sl_timer_init,
+       .init_machine   = imx6sl_init_machine,
+       .dt_compat      = imx6sl_dt_compat,
+       .restart        = mxc_restart,
+MACHINE_END
index b8b15bb1ffdfb2d8e0e0f2e52c71a21d4b4c81de..19bb6441a7d4aaddb106afa71634606acfae7466 100644 (file)
@@ -398,8 +398,8 @@ static void __init pca100_init(void)
                imx27_add_fsl_usb2_udc(&otg_device_pdata);
        }
 
-       usbh2_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops,
-                               ULPI_OTG_DRVVBUS | ULPI_OTG_DRVVBUS_EXT);
+       usbh2_pdata.otg = imx_otg_ulpi_create(
+                       ULPI_OTG_DRVVBUS | ULPI_OTG_DRVVBUS_EXT);
 
        if (usbh2_pdata.otg)
                imx27_add_mxc_ehci_hs(2, &usbh2_pdata);
diff --git a/arch/arm/mach-imx/mach-vf610.c b/arch/arm/mach-imx/mach-vf610.c
new file mode 100644 (file)
index 0000000..816991d
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2012-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 <linux/of_platform.h>
+#include <linux/clocksource.h>
+#include <linux/irqchip.h>
+#include <linux/clk-provider.h>
+#include <asm/mach/arch.h>
+#include <asm/hardware/cache-l2x0.h>
+
+#include "common.h"
+
+static void __init vf610_init_machine(void)
+{
+       mxc_arch_reset_init_dt();
+       of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
+}
+
+static void __init vf610_init_irq(void)
+{
+       l2x0_of_init(0, ~0UL);
+       irqchip_init();
+}
+
+static void __init vf610_init_time(void)
+{
+       of_clk_init(NULL);
+       clocksource_of_init();
+}
+
+static const char *vf610_dt_compat[] __initdata = {
+       "fsl,vf610",
+       NULL,
+};
+
+DT_MACHINE_START(VYBRID_VF610, "Freescale Vybrid VF610 (Device Tree)")
+       .init_irq       = vf610_init_irq,
+       .init_time      = vf610_init_time,
+       .init_machine   = vf610_init_machine,
+       .dt_compat      = vf610_dt_compat,
+       .restart        = mxc_restart,
+MACHINE_END
index 3c609c52d3eb984f2d71cf43fc933c8b5e777056..e065fedb3ad4ea28559b862261c9b711c02108c0 100644 (file)
@@ -39,7 +39,6 @@ void __init mx1_map_io(void)
 void __init imx1_init_early(void)
 {
        mxc_set_cpu_type(MXC_CPU_MX1);
-       mxc_arch_reset_init(MX1_IO_ADDRESS(MX1_WDT_BASE_ADDR));
        imx_iomuxv1_init(MX1_IO_ADDRESS(MX1_GPIO_BASE_ADDR),
                        MX1_NUM_GPIO_PORT);
 }
@@ -51,6 +50,7 @@ void __init mx1_init_irq(void)
 
 void __init imx1_soc_init(void)
 {
+       mxc_arch_reset_init(MX1_IO_ADDRESS(MX1_WDT_BASE_ADDR));
        mxc_device_init();
 
        mxc_register_gpio("imx1-gpio", 0, MX1_GPIO1_BASE_ADDR, SZ_256,
index d8ccd3a8ec531bec988e6a90353148983d8d7713..2e91ab2ca378609c2466e1340baa3a4239281dc7 100644 (file)
@@ -66,7 +66,6 @@ void __init mx21_map_io(void)
 void __init imx21_init_early(void)
 {
        mxc_set_cpu_type(MXC_CPU_MX21);
-       mxc_arch_reset_init(MX21_IO_ADDRESS(MX21_WDOG_BASE_ADDR));
        imx_iomuxv1_init(MX21_IO_ADDRESS(MX21_GPIO_BASE_ADDR),
                        MX21_NUM_GPIO_PORT);
 }
@@ -82,6 +81,7 @@ static const struct resource imx21_audmux_res[] __initconst = {
 
 void __init imx21_soc_init(void)
 {
+       mxc_arch_reset_init(MX21_IO_ADDRESS(MX21_WDOG_BASE_ADDR));
        mxc_device_init();
 
        mxc_register_gpio("imx21-gpio", 0, MX21_GPIO1_BASE_ADDR, SZ_256, MX21_INT_GPIO, 0);
index 9357707bb7afc4fa5bbb586fcf1ac6fcb8a9bfc0..e065c117f5a6452156eab28e41fe5315b35af43a 100644 (file)
@@ -54,7 +54,6 @@ void __init imx25_init_early(void)
 {
        mxc_set_cpu_type(MXC_CPU_MX25);
        mxc_iomux_v3_init(MX25_IO_ADDRESS(MX25_IOMUXC_BASE_ADDR));
-       mxc_arch_reset_init(MX25_IO_ADDRESS(MX25_WDOG_BASE_ADDR));
 }
 
 void __init mx25_init_irq(void)
@@ -89,6 +88,7 @@ static const struct resource imx25_audmux_res[] __initconst = {
 
 void __init imx25_soc_init(void)
 {
+       mxc_arch_reset_init(MX25_IO_ADDRESS(MX25_WDOG_BASE_ADDR));
        mxc_device_init();
 
        /* i.mx25 has the i.mx35 type gpio */
index 4f1be65a7b5fe62a6531a09d70aa623283086d6b..7d82a5a5b16b5c73d8938b1b3b325d3d0cb1d6f9 100644 (file)
@@ -66,7 +66,6 @@ void __init mx27_map_io(void)
 void __init imx27_init_early(void)
 {
        mxc_set_cpu_type(MXC_CPU_MX27);
-       mxc_arch_reset_init(MX27_IO_ADDRESS(MX27_WDOG_BASE_ADDR));
        imx_iomuxv1_init(MX27_IO_ADDRESS(MX27_GPIO_BASE_ADDR),
                        MX27_NUM_GPIO_PORT);
 }
@@ -82,6 +81,7 @@ static const struct resource imx27_audmux_res[] __initconst = {
 
 void __init imx27_soc_init(void)
 {
+       mxc_arch_reset_init(MX27_IO_ADDRESS(MX27_WDOG_BASE_ADDR));
        mxc_device_init();
 
        /* i.mx27 has the i.mx21 type gpio */
index e0e69a682174b59ce08e77d2eb11608b596fcf97..8f0f60697f557eb511a22ecf926dbd8487c738ba 100644 (file)
@@ -138,7 +138,6 @@ void __init mx31_map_io(void)
 void __init imx31_init_early(void)
 {
        mxc_set_cpu_type(MXC_CPU_MX31);
-       mxc_arch_reset_init(MX31_IO_ADDRESS(MX31_WDOG_BASE_ADDR));
        arch_ioremap_caller = imx3_ioremap_caller;
        arm_pm_idle = imx3_idle;
        mx3_ccm_base = MX31_IO_ADDRESS(MX31_CCM_BASE_ADDR);
@@ -174,6 +173,7 @@ void __init imx31_soc_init(void)
 
        imx3_init_l2x0();
 
+       mxc_arch_reset_init(MX31_IO_ADDRESS(MX31_WDOG_BASE_ADDR));
        mxc_device_init();
 
        mxc_register_gpio("imx31-gpio", 0, MX31_GPIO1_BASE_ADDR, SZ_16K, MX31_INT_GPIO1, 0);
@@ -216,7 +216,6 @@ void __init imx35_init_early(void)
 {
        mxc_set_cpu_type(MXC_CPU_MX35);
        mxc_iomux_v3_init(MX35_IO_ADDRESS(MX35_IOMUXC_BASE_ADDR));
-       mxc_arch_reset_init(MX35_IO_ADDRESS(MX35_WDOG_BASE_ADDR));
        arm_pm_idle = imx3_idle;
        arch_ioremap_caller = imx3_ioremap_caller;
        mx3_ccm_base = MX35_IO_ADDRESS(MX35_CCM_BASE_ADDR);
@@ -272,6 +271,7 @@ void __init imx35_soc_init(void)
 
        imx3_init_l2x0();
 
+       mxc_arch_reset_init(MX35_IO_ADDRESS(MX35_WDOG_BASE_ADDR));
        mxc_device_init();
 
        mxc_register_gpio("imx35-gpio", 0, MX35_GPIO1_BASE_ADDR, SZ_16K, MX35_INT_GPIO1, 0);
index b7c4e70e50813a90f96cc14c2a47d2bf1e18ebc4..cf193d87274ac316674dfb4d0e50ccc81adbf4f0 100644 (file)
@@ -83,7 +83,6 @@ void __init imx51_init_early(void)
        imx51_ipu_mipi_setup();
        mxc_set_cpu_type(MXC_CPU_MX51);
        mxc_iomux_v3_init(MX51_IO_ADDRESS(MX51_IOMUXC_BASE_ADDR));
-       mxc_arch_reset_init(MX51_IO_ADDRESS(MX51_WDOG1_BASE_ADDR));
        imx_src_init();
 }
 
@@ -91,7 +90,6 @@ void __init imx53_init_early(void)
 {
        mxc_set_cpu_type(MXC_CPU_MX53);
        mxc_iomux_v3_init(MX53_IO_ADDRESS(MX53_IOMUXC_BASE_ADDR));
-       mxc_arch_reset_init(MX53_IO_ADDRESS(MX53_WDOG1_BASE_ADDR));
        imx_src_init();
 }
 
@@ -129,6 +127,7 @@ static const struct resource imx51_audmux_res[] __initconst = {
 
 void __init imx51_soc_init(void)
 {
+       mxc_arch_reset_init(MX51_IO_ADDRESS(MX51_WDOG1_BASE_ADDR));
        mxc_device_init();
 
        /* i.mx51 has the i.mx35 type gpio */
index 695e0d73bf85e12308f878bcbfd322280b67ba76..7cdc79a9657c64bc7bbdab1236ab1f78736732dc 100644 (file)
@@ -21,6 +21,8 @@
 #include <linux/io.h>
 #include <linux/err.h>
 #include <linux/delay.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
 
 #include <asm/system_misc.h>
 #include <asm/proc-fns.h>
@@ -30,6 +32,7 @@
 #include "hardware.h"
 
 static void __iomem *wdog_base;
+static struct clk *wdog_clk;
 
 /*
  * Reset the system. It is called by machine_restart().
@@ -38,16 +41,13 @@ void mxc_restart(char mode, const char *cmd)
 {
        unsigned int wcr_enable;
 
-       if (cpu_is_mx1()) {
-               wcr_enable = (1 << 0);
-       } else {
-               struct clk *clk;
+       if (wdog_clk)
+               clk_enable(wdog_clk);
 
-               clk = clk_get_sys("imx2-wdt.0", NULL);
-               if (!IS_ERR(clk))
-                       clk_prepare_enable(clk);
+       if (cpu_is_mx1())
+               wcr_enable = (1 << 0);
+       else
                wcr_enable = (1 << 2);
-       }
 
        /* Assert SRS signal */
        __raw_writew(wcr_enable, wdog_base);
@@ -55,7 +55,7 @@ void mxc_restart(char mode, const char *cmd)
        /* wait for reset to assert... */
        mdelay(500);
 
-       printk(KERN_ERR "Watchdog reset failed to assert reset\n");
+       pr_err("%s: Watchdog reset failed to assert reset\n", __func__);
 
        /* delay to allow the serial port to show the message */
        mdelay(50);
@@ -64,7 +64,34 @@ void mxc_restart(char mode, const char *cmd)
        soft_restart(0);
 }
 
-void mxc_arch_reset_init(void __iomem *base)
+void __init mxc_arch_reset_init(void __iomem *base)
 {
        wdog_base = base;
+
+       wdog_clk = clk_get_sys("imx2-wdt.0", NULL);
+       if (IS_ERR(wdog_clk)) {
+               pr_warn("%s: failed to get wdog clock\n", __func__);
+               wdog_clk = NULL;
+               return;
+       }
+
+       clk_prepare(wdog_clk);
+}
+
+void __init mxc_arch_reset_init_dt(void)
+{
+       struct device_node *np;
+
+       np = of_find_compatible_node(NULL, NULL, "fsl,imx21-wdt");
+       wdog_base = of_iomap(np, 0);
+       WARN_ON(!wdog_base);
+
+       wdog_clk = of_clk_get(np, 0);
+       if (IS_ERR(wdog_clk)) {
+               pr_warn("%s: failed to get wdog clock\n", __func__);
+               wdog_clk = NULL;
+               return;
+       }
+
+       clk_prepare(wdog_clk);
 }
diff --git a/arch/arm/mach-imx/ulpi.c b/arch/arm/mach-imx/ulpi.c
deleted file mode 100644 (file)
index 0f05195..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright 2008 Sascha Hauer, Pengutronix <s.hauer@pengutronix.de>
- * Copyright 2009 Daniel Mack <daniel@caiaq.de>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- */
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/io.h>
-#include <linux/delay.h>
-#include <linux/usb/otg.h>
-#include <linux/usb/ulpi.h>
-
-#include "ulpi.h"
-
-/* ULPIVIEW register bits */
-#define ULPIVW_WU              (1 << 31)       /* Wakeup */
-#define ULPIVW_RUN             (1 << 30)       /* read/write run */
-#define ULPIVW_WRITE           (1 << 29)       /* 0 = read  1 = write */
-#define ULPIVW_SS              (1 << 27)       /* SyncState */
-#define ULPIVW_PORT_MASK       0x07    /* Port field */
-#define ULPIVW_PORT_SHIFT      24
-#define ULPIVW_ADDR_MASK       0xff    /* data address field */
-#define ULPIVW_ADDR_SHIFT      16
-#define ULPIVW_RDATA_MASK      0xff    /* read data field */
-#define ULPIVW_RDATA_SHIFT     8
-#define ULPIVW_WDATA_MASK      0xff    /* write data field */
-#define ULPIVW_WDATA_SHIFT     0
-
-static int ulpi_poll(void __iomem *view, u32 bit)
-{
-       int timeout = 10000;
-
-       while (timeout--) {
-               u32 data = __raw_readl(view);
-
-               if (!(data & bit))
-                       return 0;
-
-               cpu_relax();
-       };
-
-       printk(KERN_WARNING "timeout polling for ULPI device\n");
-
-       return -ETIMEDOUT;
-}
-
-static int ulpi_read(struct usb_phy *otg, u32 reg)
-{
-       int ret;
-       void __iomem *view = otg->io_priv;
-
-       /* make sure interface is running */
-       if (!(__raw_readl(view) & ULPIVW_SS)) {
-               __raw_writel(ULPIVW_WU, view);
-
-               /* wait for wakeup */
-               ret = ulpi_poll(view, ULPIVW_WU);
-               if (ret)
-                       return ret;
-       }
-
-       /* read the register */
-       __raw_writel((ULPIVW_RUN | (reg << ULPIVW_ADDR_SHIFT)), view);
-
-       /* wait for completion */
-       ret = ulpi_poll(view, ULPIVW_RUN);
-       if (ret)
-               return ret;
-
-       return (__raw_readl(view) >> ULPIVW_RDATA_SHIFT) & ULPIVW_RDATA_MASK;
-}
-
-static int ulpi_write(struct usb_phy *otg, u32 val, u32 reg)
-{
-       int ret;
-       void __iomem *view = otg->io_priv;
-
-       /* make sure the interface is running */
-       if (!(__raw_readl(view) & ULPIVW_SS)) {
-               __raw_writel(ULPIVW_WU, view);
-               /* wait for wakeup */
-               ret = ulpi_poll(view, ULPIVW_WU);
-               if (ret)
-                       return ret;
-       }
-
-       __raw_writel((ULPIVW_RUN | ULPIVW_WRITE |
-                     (reg << ULPIVW_ADDR_SHIFT) |
-                     ((val & ULPIVW_WDATA_MASK) << ULPIVW_WDATA_SHIFT)), view);
-
-       /* wait for completion */
-       return ulpi_poll(view, ULPIVW_RUN);
-}
-
-struct usb_phy_io_ops mxc_ulpi_access_ops = {
-       .read   = ulpi_read,
-       .write  = ulpi_write,
-};
-EXPORT_SYMBOL_GPL(mxc_ulpi_access_ops);
-
-struct usb_phy *imx_otg_ulpi_create(unsigned int flags)
-{
-       return otg_ulpi_create(&mxc_ulpi_access_ops, flags);
-}
index 42bdaca6d7d912eff447e2e262005d090d81317c..23f5c0349e807d737c3d9338b0f9efbd90dcf1ea 100644 (file)
@@ -1,8 +1,13 @@
 #ifndef __MACH_ULPI_H
 #define __MACH_ULPI_H
 
-#ifdef CONFIG_USB_ULPI
-struct usb_phy *imx_otg_ulpi_create(unsigned int flags);
+#include <linux/usb/ulpi.h>
+
+#ifdef CONFIG_USB_ULPI_VIEWPORT
+static inline struct usb_phy *imx_otg_ulpi_create(unsigned int flags)
+{
+       return otg_ulpi_create(&ulpi_viewport_access_ops, flags);
+}
 #else
 static inline struct usb_phy *imx_otg_ulpi_create(unsigned int flags)
 {
@@ -10,7 +15,5 @@ static inline struct usb_phy *imx_otg_ulpi_create(unsigned int flags)
 }
 #endif
 
-extern struct usb_phy_io_ops mxc_ulpi_access_ops;
-
 #endif /* __MACH_ULPI_H */
 
index 4dc2fbba0ecd1bc511e3369a9916a263420b02f9..59c30ef567907b7e307534327cf24a3532aec598 100644 (file)
@@ -25,6 +25,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 5b62b6489d4bbdec32809ce8597af258478bab93..ba227cb2c93bf41eabe3810d8bc4586c4b154b36 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();
@@ -435,7 +545,6 @@ static const char *mxs_dt_compat[] __initdata = {
 
 DT_MACHINE_START(MXS, "Freescale MXS (Device Tree)")
        .map_io         = debug_ll_io_init,
-       .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 59f6ff5c9baeb843d189dcbb2e9f4a6534ee4091..89e2c03db178a4b53d292682809ec32303f36245 100644 (file)
@@ -27,9 +27,7 @@
 #include <linux/dma-mapping.h>
 #include <linux/irqchip.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 = {
        {
@@ -172,7 +128,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);
@@ -188,7 +144,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 = {
@@ -280,28 +236,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 */ },
 };
 
@@ -311,7 +249,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 f2f7088bfd221c9bb50df7180f1dbbc51a9e2e2d..e52d5e42af4ea9b38066ecf2a4185424ad527b2f 100644 (file)
@@ -490,6 +490,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 1a517e2fe44900d7ca8e70a79f185a5d49aba21d..c6fb9ec8d15b95f175f01799b5c0c5f25fcf9def 100644 (file)
@@ -129,6 +129,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 068f1dadc46b0e9b1cdf62cf328b68d0b6a7439c..812de04523070084d9c9e663556eb362f591b444 100644 (file)
@@ -46,6 +46,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 abdc4d4efa28938bdb3b37ab494787e4ba22e540..1cf6869b656a5544984601ab395af3f0a2151868 100644 (file)
@@ -533,10 +533,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 326a4ab0bd5f8ea0f6ba64f6a202ce60d9a66b40..9284e6fdb0c85e890ad35aea7783308cbc450a3e 100644 (file)
@@ -531,11 +531,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,
@@ -546,6 +542,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,
@@ -965,6 +968,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));
 
@@ -986,6 +991,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();
@@ -993,33 +1000,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,
@@ -1027,9 +1030,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 5bfe7035b73d96b6394046a67f5a50fcc287d782..7e3d5f400aad710d8284a621361435840bafc7ce 100644 (file)
@@ -98,7 +98,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 c70969b9c258d47a49880699a621f9e2c58997b3..50d008d8f87f17cf7e2f1c0c0a65e443d4b8cc2a 100644 (file)
@@ -117,7 +117,7 @@ int __init zynq_slcr_init(void)
 
        pr_info("%s mapped to %p\n", np->name, zynq_slcr_base);
 
-       xilinx_zynq_clocks_init(zynq_slcr_base);
+       zynq_clock_init(zynq_slcr_base);
 
        of_node_put(np);
 
index b05ecab915c4ba30e1ea668f09f700b1d2519937..46cd5bb098a910b7b9a99fd2c9211d535a014e85 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 3c7b53c12091cb0cdafa5ab74fd43ddc616ae5c9..436bbccf4894bdc21e68bbd0329721d40aac02a3 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 137d3e730f866a2f10f75701801179c53d6340a5..fa435bcf9f1a1d42396f6ba8c664c3cf9d510998 100644 (file)
@@ -27,7 +27,7 @@ obj-$(CONFIG_MACH_LOONGSON1)  += clk-ls1x.o
 obj-$(CONFIG_ARCH_SUNXI)       += sunxi/
 obj-$(CONFIG_ARCH_U8500)       += ux500/
 obj-$(CONFIG_ARCH_VT8500)      += clk-vt8500.o
-obj-$(CONFIG_ARCH_ZYNQ)                += clk-zynq.o
+obj-$(CONFIG_ARCH_ZYNQ)                += zynq/
 obj-$(CONFIG_ARCH_TEGRA)       += tegra/
 obj-$(CONFIG_PLAT_SAMSUNG)     += samsung/
 
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);
 }
diff --git a/drivers/clk/clk-zynq.c b/drivers/clk/clk-zynq.c
deleted file mode 100644 (file)
index 3206297..0000000
+++ /dev/null
@@ -1,378 +0,0 @@
-/*
- * Copyright (c) 2012 National Instruments
- *
- * Josh Cartwright <josh.cartwright@ni.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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, see <http://www.gnu.org/licenses/>.
- */
-#include <linux/io.h>
-#include <linux/of.h>
-#include <linux/slab.h>
-#include <linux/kernel.h>
-#include <linux/clk-provider.h>
-#include <linux/clk/zynq.h>
-
-static void __iomem *slcr_base;
-
-struct zynq_pll_clk {
-       struct clk_hw   hw;
-       void __iomem    *pll_ctrl;
-       void __iomem    *pll_cfg;
-};
-
-#define to_zynq_pll_clk(hw)    container_of(hw, struct zynq_pll_clk, hw)
-
-#define CTRL_PLL_FDIV(x)       ((x) >> 12)
-
-static unsigned long zynq_pll_recalc_rate(struct clk_hw *hw,
-                                         unsigned long parent_rate)
-{
-       struct zynq_pll_clk *pll = to_zynq_pll_clk(hw);
-       return parent_rate * CTRL_PLL_FDIV(ioread32(pll->pll_ctrl));
-}
-
-static const struct clk_ops zynq_pll_clk_ops = {
-       .recalc_rate    = zynq_pll_recalc_rate,
-};
-
-static void __init zynq_pll_clk_setup(struct device_node *np)
-{
-       struct clk_init_data init;
-       struct zynq_pll_clk *pll;
-       const char *parent_name;
-       struct clk *clk;
-       u32 regs[2];
-       int ret;
-
-       ret = of_property_read_u32_array(np, "reg", regs, ARRAY_SIZE(regs));
-       if (WARN_ON(ret))
-               return;
-
-       pll = kzalloc(sizeof(*pll), GFP_KERNEL);
-       if (WARN_ON(!pll))
-               return;
-
-       pll->pll_ctrl = slcr_base + regs[0];
-       pll->pll_cfg  = slcr_base + regs[1];
-
-       of_property_read_string(np, "clock-output-names", &init.name);
-
-       init.ops = &zynq_pll_clk_ops;
-       parent_name = of_clk_get_parent_name(np, 0);
-       init.parent_names = &parent_name;
-       init.num_parents = 1;
-
-       pll->hw.init = &init;
-
-       clk = clk_register(NULL, &pll->hw);
-       if (WARN_ON(IS_ERR(clk)))
-               return;
-
-       ret = of_clk_add_provider(np, of_clk_src_simple_get, clk);
-       if (WARN_ON(ret))
-               return;
-}
-CLK_OF_DECLARE(zynq_pll, "xlnx,zynq-pll", zynq_pll_clk_setup);
-
-struct zynq_periph_clk {
-       struct clk_hw           hw;
-       struct clk_onecell_data onecell_data;
-       struct clk              *gates[2];
-       void __iomem            *clk_ctrl;
-       spinlock_t              clkact_lock;
-};
-
-#define to_zynq_periph_clk(hw) container_of(hw, struct zynq_periph_clk, hw)
-
-static const u8 periph_clk_parent_map[] = {
-       0, 0, 1, 2
-};
-#define PERIPH_CLK_CTRL_SRC(x) (periph_clk_parent_map[((x) & 0x30) >> 4])
-#define PERIPH_CLK_CTRL_DIV(x) (((x) & 0x3F00) >> 8)
-
-static unsigned long zynq_periph_recalc_rate(struct clk_hw *hw,
-                                            unsigned long parent_rate)
-{
-       struct zynq_periph_clk *periph = to_zynq_periph_clk(hw);
-       return parent_rate / PERIPH_CLK_CTRL_DIV(ioread32(periph->clk_ctrl));
-}
-
-static u8 zynq_periph_get_parent(struct clk_hw *hw)
-{
-       struct zynq_periph_clk *periph = to_zynq_periph_clk(hw);
-       return PERIPH_CLK_CTRL_SRC(ioread32(periph->clk_ctrl));
-}
-
-static const struct clk_ops zynq_periph_clk_ops = {
-       .recalc_rate    = zynq_periph_recalc_rate,
-       .get_parent     = zynq_periph_get_parent,
-};
-
-static void __init zynq_periph_clk_setup(struct device_node *np)
-{
-       struct zynq_periph_clk *periph;
-       const char *parent_names[3];
-       struct clk_init_data init;
-       int clk_num = 0, err;
-       const char *name;
-       struct clk *clk;
-       u32 reg;
-       int i;
-
-       err = of_property_read_u32(np, "reg", &reg);
-       if (WARN_ON(err))
-               return;
-
-       periph = kzalloc(sizeof(*periph), GFP_KERNEL);
-       if (WARN_ON(!periph))
-               return;
-
-       periph->clk_ctrl = slcr_base + reg;
-       spin_lock_init(&periph->clkact_lock);
-
-       init.name = np->name;
-       init.ops = &zynq_periph_clk_ops;
-       for (i = 0; i < ARRAY_SIZE(parent_names); i++)
-               parent_names[i] = of_clk_get_parent_name(np, i);
-       init.parent_names = parent_names;
-       init.num_parents = ARRAY_SIZE(parent_names);
-
-       periph->hw.init = &init;
-
-       clk = clk_register(NULL, &periph->hw);
-       if (WARN_ON(IS_ERR(clk)))
-               return;
-
-       err = of_clk_add_provider(np, of_clk_src_simple_get, clk);
-       if (WARN_ON(err))
-               return;
-
-       err = of_property_read_string_index(np, "clock-output-names", 0,
-                                           &name);
-       if (WARN_ON(err))
-               return;
-
-       periph->gates[0] = clk_register_gate(NULL, name, np->name, 0,
-                                            periph->clk_ctrl, 0, 0,
-                                            &periph->clkact_lock);
-       if (WARN_ON(IS_ERR(periph->gates[0])))
-               return;
-       clk_num++;
-
-       /* some periph clks have 2 downstream gates */
-       err = of_property_read_string_index(np, "clock-output-names", 1,
-                                           &name);
-       if (err != -ENODATA) {
-               periph->gates[1] = clk_register_gate(NULL, name, np->name, 0,
-                                                    periph->clk_ctrl, 1, 0,
-                                                    &periph->clkact_lock);
-               if (WARN_ON(IS_ERR(periph->gates[1])))
-                       return;
-               clk_num++;
-       }
-
-       periph->onecell_data.clks = periph->gates;
-       periph->onecell_data.clk_num = clk_num;
-
-       err = of_clk_add_provider(np, of_clk_src_onecell_get,
-                                 &periph->onecell_data);
-       if (WARN_ON(err))
-               return;
-}
-CLK_OF_DECLARE(zynq_periph, "xlnx,zynq-periph-clock", zynq_periph_clk_setup);
-
-/* CPU Clock domain is modelled as a mux with 4 children subclks, whose
- * derivative rates depend on CLK_621_TRUE
- */
-
-struct zynq_cpu_clk {
-       struct clk_hw           hw;
-       struct clk_onecell_data onecell_data;
-       struct clk              *subclks[4];
-       void __iomem            *clk_ctrl;
-       spinlock_t              clkact_lock;
-};
-
-#define to_zynq_cpu_clk(hw)    container_of(hw, struct zynq_cpu_clk, hw)
-
-static const u8 zynq_cpu_clk_parent_map[] = {
-       1, 1, 2, 0
-};
-#define CPU_CLK_SRCSEL(x)      (zynq_cpu_clk_parent_map[(((x) & 0x30) >> 4)])
-#define CPU_CLK_CTRL_DIV(x)    (((x) & 0x3F00) >> 8)
-
-static u8 zynq_cpu_clk_get_parent(struct clk_hw *hw)
-{
-       struct zynq_cpu_clk *cpuclk = to_zynq_cpu_clk(hw);
-       return CPU_CLK_SRCSEL(ioread32(cpuclk->clk_ctrl));
-}
-
-static unsigned long zynq_cpu_clk_recalc_rate(struct clk_hw *hw,
-                                             unsigned long parent_rate)
-{
-       struct zynq_cpu_clk *cpuclk = to_zynq_cpu_clk(hw);
-       return parent_rate / CPU_CLK_CTRL_DIV(ioread32(cpuclk->clk_ctrl));
-}
-
-static const struct clk_ops zynq_cpu_clk_ops = {
-       .get_parent     = zynq_cpu_clk_get_parent,
-       .recalc_rate    = zynq_cpu_clk_recalc_rate,
-};
-
-struct zynq_cpu_subclk {
-       struct clk_hw   hw;
-       void __iomem    *clk_621;
-       enum {
-               CPU_SUBCLK_6X4X,
-               CPU_SUBCLK_3X2X,
-               CPU_SUBCLK_2X,
-               CPU_SUBCLK_1X,
-       } which;
-};
-
-#define CLK_621_TRUE(x)        ((x) & 1)
-
-#define to_zynq_cpu_subclk(hw) container_of(hw, struct zynq_cpu_subclk, hw);
-
-static unsigned long zynq_cpu_subclk_recalc_rate(struct clk_hw *hw,
-                                                unsigned long parent_rate)
-{
-       unsigned long uninitialized_var(rate);
-       struct zynq_cpu_subclk *subclk;
-       bool is_621;
-
-       subclk = to_zynq_cpu_subclk(hw)
-       is_621 = CLK_621_TRUE(ioread32(subclk->clk_621));
-
-       switch (subclk->which) {
-       case CPU_SUBCLK_6X4X:
-               rate = parent_rate;
-               break;
-       case CPU_SUBCLK_3X2X:
-               rate = parent_rate / 2;
-               break;
-       case CPU_SUBCLK_2X:
-               rate = parent_rate / (is_621 ? 3 : 2);
-               break;
-       case CPU_SUBCLK_1X:
-               rate = parent_rate / (is_621 ? 6 : 4);
-               break;
-       };
-
-       return rate;
-}
-
-static const struct clk_ops zynq_cpu_subclk_ops = {
-       .recalc_rate    = zynq_cpu_subclk_recalc_rate,
-};
-
-static struct clk *zynq_cpu_subclk_setup(struct device_node *np, u8 which,
-                                        void __iomem *clk_621)
-{
-       struct zynq_cpu_subclk *subclk;
-       struct clk_init_data init;
-       struct clk *clk;
-       int err;
-
-       err = of_property_read_string_index(np, "clock-output-names",
-                                           which, &init.name);
-       if (WARN_ON(err))
-               goto err_read_output_name;
-
-       subclk = kzalloc(sizeof(*subclk), GFP_KERNEL);
-       if (!subclk)
-               goto err_subclk_alloc;
-
-       subclk->clk_621 = clk_621;
-       subclk->which = which;
-
-       init.ops = &zynq_cpu_subclk_ops;
-       init.parent_names = &np->name;
-       init.num_parents = 1;
-
-       subclk->hw.init = &init;
-
-       clk = clk_register(NULL, &subclk->hw);
-       if (WARN_ON(IS_ERR(clk)))
-               goto err_clk_register;
-
-       return clk;
-
-err_clk_register:
-       kfree(subclk);
-err_subclk_alloc:
-err_read_output_name:
-       return ERR_PTR(-EINVAL);
-}
-
-static void __init zynq_cpu_clk_setup(struct device_node *np)
-{
-       struct zynq_cpu_clk *cpuclk;
-       const char *parent_names[3];
-       struct clk_init_data init;
-       void __iomem *clk_621;
-       struct clk *clk;
-       u32 reg[2];
-       int err;
-       int i;
-
-       err = of_property_read_u32_array(np, "reg", reg, ARRAY_SIZE(reg));
-       if (WARN_ON(err))
-               return;
-
-       cpuclk = kzalloc(sizeof(*cpuclk), GFP_KERNEL);
-       if (WARN_ON(!cpuclk))
-               return;
-
-       cpuclk->clk_ctrl = slcr_base + reg[0];
-       clk_621 = slcr_base + reg[1];
-       spin_lock_init(&cpuclk->clkact_lock);
-
-       init.name = np->name;
-       init.ops = &zynq_cpu_clk_ops;
-       for (i = 0; i < ARRAY_SIZE(parent_names); i++)
-               parent_names[i] = of_clk_get_parent_name(np, i);
-       init.parent_names = parent_names;
-       init.num_parents = ARRAY_SIZE(parent_names);
-
-       cpuclk->hw.init = &init;
-
-       clk = clk_register(NULL, &cpuclk->hw);
-       if (WARN_ON(IS_ERR(clk)))
-               return;
-
-       err = of_clk_add_provider(np, of_clk_src_simple_get, clk);
-       if (WARN_ON(err))
-               return;
-
-       for (i = 0; i < 4; i++) {
-               cpuclk->subclks[i] = zynq_cpu_subclk_setup(np, i, clk_621);
-               if (WARN_ON(IS_ERR(cpuclk->subclks[i])))
-                       return;
-       }
-
-       cpuclk->onecell_data.clks = cpuclk->subclks;
-       cpuclk->onecell_data.clk_num = i;
-
-       err = of_clk_add_provider(np, of_clk_src_onecell_get,
-                                 &cpuclk->onecell_data);
-       if (WARN_ON(err))
-               return;
-}
-CLK_OF_DECLARE(zynq_cpu, "xlnx,zynq-cpu-clock", zynq_cpu_clk_setup);
-
-void __init xilinx_zynq_clocks_init(void __iomem *slcr)
-{
-       slcr_base = slcr;
-       of_clk_init(NULL);
-}
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),
 };
 
 /*
diff --git a/drivers/clk/zynq/Makefile b/drivers/clk/zynq/Makefile
new file mode 100644 (file)
index 0000000..156d923
--- /dev/null
@@ -0,0 +1,3 @@
+# Zynq clock specific Makefile
+
+obj-$(CONFIG_ARCH_ZYNQ)        += clkc.o pll.o
diff --git a/drivers/clk/zynq/clkc.c b/drivers/clk/zynq/clkc.c
new file mode 100644 (file)
index 0000000..5c205b6
--- /dev/null
@@ -0,0 +1,533 @@
+/*
+ * Zynq clock controller
+ *
+ *  Copyright (C) 2012 - 2013 Xilinx
+ *
+ *  Sören Brinkmann <soren.brinkmann@xilinx.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License v2 as published by
+ * the Free Software Foundation.
+ *
+ * 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <linux/clk/zynq.h>
+#include <linux/clk-provider.h>
+#include <linux/of.h>
+#include <linux/slab.h>
+#include <linux/string.h>
+#include <linux/io.h>
+
+static void __iomem *zynq_slcr_base_priv;
+
+#define SLCR_ARMPLL_CTRL               (zynq_slcr_base_priv + 0x100)
+#define SLCR_DDRPLL_CTRL               (zynq_slcr_base_priv + 0x104)
+#define SLCR_IOPLL_CTRL                        (zynq_slcr_base_priv + 0x108)
+#define SLCR_PLL_STATUS                        (zynq_slcr_base_priv + 0x10c)
+#define SLCR_ARM_CLK_CTRL              (zynq_slcr_base_priv + 0x120)
+#define SLCR_DDR_CLK_CTRL              (zynq_slcr_base_priv + 0x124)
+#define SLCR_DCI_CLK_CTRL              (zynq_slcr_base_priv + 0x128)
+#define SLCR_APER_CLK_CTRL             (zynq_slcr_base_priv + 0x12c)
+#define SLCR_GEM0_CLK_CTRL             (zynq_slcr_base_priv + 0x140)
+#define SLCR_GEM1_CLK_CTRL             (zynq_slcr_base_priv + 0x144)
+#define SLCR_SMC_CLK_CTRL              (zynq_slcr_base_priv + 0x148)
+#define SLCR_LQSPI_CLK_CTRL            (zynq_slcr_base_priv + 0x14c)
+#define SLCR_SDIO_CLK_CTRL             (zynq_slcr_base_priv + 0x150)
+#define SLCR_UART_CLK_CTRL             (zynq_slcr_base_priv + 0x154)
+#define SLCR_SPI_CLK_CTRL              (zynq_slcr_base_priv + 0x158)
+#define SLCR_CAN_CLK_CTRL              (zynq_slcr_base_priv + 0x15c)
+#define SLCR_CAN_MIOCLK_CTRL           (zynq_slcr_base_priv + 0x160)
+#define SLCR_DBG_CLK_CTRL              (zynq_slcr_base_priv + 0x164)
+#define SLCR_PCAP_CLK_CTRL             (zynq_slcr_base_priv + 0x168)
+#define SLCR_FPGA0_CLK_CTRL            (zynq_slcr_base_priv + 0x170)
+#define SLCR_621_TRUE                  (zynq_slcr_base_priv + 0x1c4)
+#define SLCR_SWDT_CLK_SEL              (zynq_slcr_base_priv + 0x304)
+
+#define NUM_MIO_PINS   54
+
+enum zynq_clk {
+       armpll, ddrpll, iopll,
+       cpu_6or4x, cpu_3or2x, cpu_2x, cpu_1x,
+       ddr2x, ddr3x, dci,
+       lqspi, smc, pcap, gem0, gem1, fclk0, fclk1, fclk2, fclk3, can0, can1,
+       sdio0, sdio1, uart0, uart1, spi0, spi1, dma,
+       usb0_aper, usb1_aper, gem0_aper, gem1_aper,
+       sdio0_aper, sdio1_aper, spi0_aper, spi1_aper, can0_aper, can1_aper,
+       i2c0_aper, i2c1_aper, uart0_aper, uart1_aper, gpio_aper, lqspi_aper,
+       smc_aper, swdt, dbg_trc, dbg_apb, clk_max};
+
+static struct clk *ps_clk;
+static struct clk *clks[clk_max];
+static struct clk_onecell_data clk_data;
+
+static DEFINE_SPINLOCK(armpll_lock);
+static DEFINE_SPINLOCK(ddrpll_lock);
+static DEFINE_SPINLOCK(iopll_lock);
+static DEFINE_SPINLOCK(armclk_lock);
+static DEFINE_SPINLOCK(ddrclk_lock);
+static DEFINE_SPINLOCK(dciclk_lock);
+static DEFINE_SPINLOCK(gem0clk_lock);
+static DEFINE_SPINLOCK(gem1clk_lock);
+static DEFINE_SPINLOCK(canclk_lock);
+static DEFINE_SPINLOCK(canmioclk_lock);
+static DEFINE_SPINLOCK(dbgclk_lock);
+static DEFINE_SPINLOCK(aperclk_lock);
+
+static const char dummy_nm[] __initconst = "dummy_name";
+
+static const char *armpll_parents[] __initdata = {"armpll_int", "ps_clk"};
+static const char *ddrpll_parents[] __initdata = {"ddrpll_int", "ps_clk"};
+static const char *iopll_parents[] __initdata = {"iopll_int", "ps_clk"};
+static const char *gem0_mux_parents[] __initdata = {"gem0_div1", dummy_nm};
+static const char *gem1_mux_parents[] __initdata = {"gem1_div1", dummy_nm};
+static const char *can0_mio_mux2_parents[] __initdata = {"can0_gate",
+       "can0_mio_mux"};
+static const char *can1_mio_mux2_parents[] __initdata = {"can1_gate",
+       "can1_mio_mux"};
+static const char *dbg_emio_mux_parents[] __initdata = {"dbg_div",
+       dummy_nm};
+
+static const char *dbgtrc_emio_input_names[] __initdata = {"trace_emio_clk"};
+static const char *gem0_emio_input_names[] __initdata = {"gem0_emio_clk"};
+static const char *gem1_emio_input_names[] __initdata = {"gem1_emio_clk"};
+static const char *swdt_ext_clk_input_names[] __initdata = {"swdt_ext_clk"};
+
+static void __init zynq_clk_register_fclk(enum zynq_clk fclk,
+               const char *clk_name, void __iomem *fclk_ctrl_reg,
+               const char **parents)
+{
+       struct clk *clk;
+       char *mux_name;
+       char *div0_name;
+       char *div1_name;
+       spinlock_t *fclk_lock;
+       spinlock_t *fclk_gate_lock;
+       void __iomem *fclk_gate_reg = fclk_ctrl_reg + 8;
+
+       fclk_lock = kmalloc(sizeof(*fclk_lock), GFP_KERNEL);
+       if (!fclk_lock)
+               goto err;
+       fclk_gate_lock = kmalloc(sizeof(*fclk_gate_lock), GFP_KERNEL);
+       if (!fclk_gate_lock)
+               goto err;
+       spin_lock_init(fclk_lock);
+       spin_lock_init(fclk_gate_lock);
+
+       mux_name = kasprintf(GFP_KERNEL, "%s_mux", clk_name);
+       div0_name = kasprintf(GFP_KERNEL, "%s_div0", clk_name);
+       div1_name = kasprintf(GFP_KERNEL, "%s_div1", clk_name);
+
+       clk = clk_register_mux(NULL, mux_name, parents, 4, 0,
+                       fclk_ctrl_reg, 4, 2, 0, fclk_lock);
+
+       clk = clk_register_divider(NULL, div0_name, mux_name,
+                       0, fclk_ctrl_reg, 8, 6, CLK_DIVIDER_ONE_BASED |
+                       CLK_DIVIDER_ALLOW_ZERO, fclk_lock);
+
+       clk = clk_register_divider(NULL, div1_name, div0_name,
+                       CLK_SET_RATE_PARENT, fclk_ctrl_reg, 20, 6,
+                       CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO,
+                       fclk_lock);
+
+       clks[fclk] = clk_register_gate(NULL, clk_name,
+                       div1_name, CLK_SET_RATE_PARENT, fclk_gate_reg,
+                       0, CLK_GATE_SET_TO_DISABLE, fclk_gate_lock);
+       kfree(mux_name);
+       kfree(div0_name);
+       kfree(div1_name);
+
+       return;
+
+err:
+       clks[fclk] = ERR_PTR(-ENOMEM);
+}
+
+static void __init zynq_clk_register_periph_clk(enum zynq_clk clk0,
+               enum zynq_clk clk1, const char *clk_name0,
+               const char *clk_name1, void __iomem *clk_ctrl,
+               const char **parents, unsigned int two_gates)
+{
+       struct clk *clk;
+       char *mux_name;
+       char *div_name;
+       spinlock_t *lock;
+
+       lock = kmalloc(sizeof(*lock), GFP_KERNEL);
+       if (!lock)
+               goto err;
+       spin_lock_init(lock);
+
+       mux_name = kasprintf(GFP_KERNEL, "%s_mux", clk_name0);
+       div_name = kasprintf(GFP_KERNEL, "%s_div", clk_name0);
+
+       clk = clk_register_mux(NULL, mux_name, parents, 4, 0,
+                       clk_ctrl, 4, 2, 0, lock);
+
+       clk = clk_register_divider(NULL, div_name, mux_name, 0, clk_ctrl, 8, 6,
+                       CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO, lock);
+
+       clks[clk0] = clk_register_gate(NULL, clk_name0, div_name,
+                       CLK_SET_RATE_PARENT, clk_ctrl, 0, 0, lock);
+       if (two_gates)
+               clks[clk1] = clk_register_gate(NULL, clk_name1, div_name,
+                               CLK_SET_RATE_PARENT, clk_ctrl, 1, 0, lock);
+
+       kfree(mux_name);
+       kfree(div_name);
+
+       return;
+
+err:
+       clks[clk0] = ERR_PTR(-ENOMEM);
+       if (two_gates)
+               clks[clk1] = ERR_PTR(-ENOMEM);
+}
+
+static void __init zynq_clk_setup(struct device_node *np)
+{
+       int i;
+       u32 tmp;
+       int ret;
+       struct clk *clk;
+       char *clk_name;
+       const char *clk_output_name[clk_max];
+       const char *cpu_parents[4];
+       const char *periph_parents[4];
+       const char *swdt_ext_clk_mux_parents[2];
+       const char *can_mio_mux_parents[NUM_MIO_PINS];
+
+       pr_info("Zynq clock init\n");
+
+       /* get clock output names from DT */
+       for (i = 0; i < clk_max; i++) {
+               if (of_property_read_string_index(np, "clock-output-names",
+                                 i, &clk_output_name[i])) {
+                       pr_err("%s: clock output name not in DT\n", __func__);
+                       BUG();
+               }
+       }
+       cpu_parents[0] = clk_output_name[armpll];
+       cpu_parents[1] = clk_output_name[armpll];
+       cpu_parents[2] = clk_output_name[ddrpll];
+       cpu_parents[3] = clk_output_name[iopll];
+       periph_parents[0] = clk_output_name[iopll];
+       periph_parents[1] = clk_output_name[iopll];
+       periph_parents[2] = clk_output_name[armpll];
+       periph_parents[3] = clk_output_name[ddrpll];
+
+       /* ps_clk */
+       ret = of_property_read_u32(np, "ps-clk-frequency", &tmp);
+       if (ret) {
+               pr_warn("ps_clk frequency not specified, using 33 MHz.\n");
+               tmp = 33333333;
+       }
+       ps_clk = clk_register_fixed_rate(NULL, "ps_clk", NULL, CLK_IS_ROOT,
+                       tmp);
+
+       /* PLLs */
+       clk = clk_register_zynq_pll("armpll_int", "ps_clk", SLCR_ARMPLL_CTRL,
+                       SLCR_PLL_STATUS, 0, &armpll_lock);
+       clks[armpll] = clk_register_mux(NULL, clk_output_name[armpll],
+                       armpll_parents, 2, 0, SLCR_ARMPLL_CTRL, 4, 1, 0,
+                       &armpll_lock);
+
+       clk = clk_register_zynq_pll("ddrpll_int", "ps_clk", SLCR_DDRPLL_CTRL,
+                       SLCR_PLL_STATUS, 1, &ddrpll_lock);
+       clks[ddrpll] = clk_register_mux(NULL, clk_output_name[ddrpll],
+                       ddrpll_parents, 2, 0, SLCR_DDRPLL_CTRL, 4, 1, 0,
+                       &ddrpll_lock);
+
+       clk = clk_register_zynq_pll("iopll_int", "ps_clk", SLCR_IOPLL_CTRL,
+                       SLCR_PLL_STATUS, 2, &iopll_lock);
+       clks[iopll] = clk_register_mux(NULL, clk_output_name[iopll],
+                       iopll_parents, 2, 0, SLCR_IOPLL_CTRL, 4, 1, 0,
+                       &iopll_lock);
+
+       /* CPU clocks */
+       tmp = readl(SLCR_621_TRUE) & 1;
+       clk = clk_register_mux(NULL, "cpu_mux", cpu_parents, 4, 0,
+                       SLCR_ARM_CLK_CTRL, 4, 2, 0, &armclk_lock);
+       clk = clk_register_divider(NULL, "cpu_div", "cpu_mux", 0,
+                       SLCR_ARM_CLK_CTRL, 8, 6, CLK_DIVIDER_ONE_BASED |
+                       CLK_DIVIDER_ALLOW_ZERO, &armclk_lock);
+
+       clks[cpu_6or4x] = clk_register_gate(NULL, clk_output_name[cpu_6or4x],
+                       "cpu_div", CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED,
+                       SLCR_ARM_CLK_CTRL, 24, 0, &armclk_lock);
+
+       clk = clk_register_fixed_factor(NULL, "cpu_3or2x_div", "cpu_div", 0,
+                       1, 2);
+       clks[cpu_3or2x] = clk_register_gate(NULL, clk_output_name[cpu_3or2x],
+                       "cpu_3or2x_div", CLK_IGNORE_UNUSED,
+                       SLCR_ARM_CLK_CTRL, 25, 0, &armclk_lock);
+
+       clk = clk_register_fixed_factor(NULL, "cpu_2x_div", "cpu_div", 0, 1,
+                       2 + tmp);
+       clks[cpu_2x] = clk_register_gate(NULL, clk_output_name[cpu_2x],
+                       "cpu_2x_div", CLK_IGNORE_UNUSED, SLCR_ARM_CLK_CTRL,
+                       26, 0, &armclk_lock);
+
+       clk = clk_register_fixed_factor(NULL, "cpu_1x_div", "cpu_div", 0, 1,
+                       4 + 2 * tmp);
+       clks[cpu_1x] = clk_register_gate(NULL, clk_output_name[cpu_1x],
+                       "cpu_1x_div", CLK_IGNORE_UNUSED, SLCR_ARM_CLK_CTRL, 27,
+                       0, &armclk_lock);
+
+       /* Timers */
+       swdt_ext_clk_mux_parents[0] = clk_output_name[cpu_1x];
+       for (i = 0; i < ARRAY_SIZE(swdt_ext_clk_input_names); i++) {
+               int idx = of_property_match_string(np, "clock-names",
+                               swdt_ext_clk_input_names[i]);
+               if (idx >= 0)
+                       swdt_ext_clk_mux_parents[i + 1] =
+                               of_clk_get_parent_name(np, idx);
+               else
+                       swdt_ext_clk_mux_parents[i + 1] = dummy_nm;
+       }
+       clks[swdt] = clk_register_mux(NULL, clk_output_name[swdt],
+                       swdt_ext_clk_mux_parents, 2, CLK_SET_RATE_PARENT,
+                       SLCR_SWDT_CLK_SEL, 0, 1, 0, &gem0clk_lock);
+
+       /* DDR clocks */
+       clk = clk_register_divider(NULL, "ddr2x_div", "ddrpll", 0,
+                       SLCR_DDR_CLK_CTRL, 26, 6, CLK_DIVIDER_ONE_BASED |
+                       CLK_DIVIDER_ALLOW_ZERO, &ddrclk_lock);
+       clks[ddr2x] = clk_register_gate(NULL, clk_output_name[ddr2x],
+                       "ddr2x_div", 0, SLCR_DDR_CLK_CTRL, 1, 0, &ddrclk_lock);
+       clk_prepare_enable(clks[ddr2x]);
+       clk = clk_register_divider(NULL, "ddr3x_div", "ddrpll", 0,
+                       SLCR_DDR_CLK_CTRL, 20, 6, CLK_DIVIDER_ONE_BASED |
+                       CLK_DIVIDER_ALLOW_ZERO, &ddrclk_lock);
+       clks[ddr3x] = clk_register_gate(NULL, clk_output_name[ddr3x],
+                       "ddr3x_div", 0, SLCR_DDR_CLK_CTRL, 0, 0, &ddrclk_lock);
+       clk_prepare_enable(clks[ddr3x]);
+
+       clk = clk_register_divider(NULL, "dci_div0", "ddrpll", 0,
+                       SLCR_DCI_CLK_CTRL, 8, 6, CLK_DIVIDER_ONE_BASED |
+                       CLK_DIVIDER_ALLOW_ZERO, &dciclk_lock);
+       clk = clk_register_divider(NULL, "dci_div1", "dci_div0",
+                       CLK_SET_RATE_PARENT, SLCR_DCI_CLK_CTRL, 20, 6,
+                       CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO,
+                       &dciclk_lock);
+       clks[dci] = clk_register_gate(NULL, clk_output_name[dci], "dci_div1",
+                       CLK_SET_RATE_PARENT, SLCR_DCI_CLK_CTRL, 0, 0,
+                       &dciclk_lock);
+       clk_prepare_enable(clks[dci]);
+
+       /* Peripheral clocks */
+       for (i = fclk0; i <= fclk3; i++)
+               zynq_clk_register_fclk(i, clk_output_name[i],
+                               SLCR_FPGA0_CLK_CTRL + 0x10 * (i - fclk0),
+                               periph_parents);
+
+       zynq_clk_register_periph_clk(lqspi, 0, clk_output_name[lqspi], NULL,
+                       SLCR_LQSPI_CLK_CTRL, periph_parents, 0);
+
+       zynq_clk_register_periph_clk(smc, 0, clk_output_name[smc], NULL,
+                       SLCR_SMC_CLK_CTRL, periph_parents, 0);
+
+       zynq_clk_register_periph_clk(pcap, 0, clk_output_name[pcap], NULL,
+                       SLCR_PCAP_CLK_CTRL, periph_parents, 0);
+
+       zynq_clk_register_periph_clk(sdio0, sdio1, clk_output_name[sdio0],
+                       clk_output_name[sdio1], SLCR_SDIO_CLK_CTRL,
+                       periph_parents, 1);
+
+       zynq_clk_register_periph_clk(uart0, uart1, clk_output_name[uart0],
+                       clk_output_name[uart1], SLCR_UART_CLK_CTRL,
+                       periph_parents, 1);
+
+       zynq_clk_register_periph_clk(spi0, spi1, clk_output_name[spi0],
+                       clk_output_name[spi1], SLCR_SPI_CLK_CTRL,
+                       periph_parents, 1);
+
+       for (i = 0; i < ARRAY_SIZE(gem0_emio_input_names); i++) {
+               int idx = of_property_match_string(np, "clock-names",
+                               gem0_emio_input_names[i]);
+               if (idx >= 0)
+                       gem0_mux_parents[i + 1] = of_clk_get_parent_name(np,
+                                       idx);
+       }
+       clk = clk_register_mux(NULL, "gem0_mux", periph_parents, 4, 0,
+                       SLCR_GEM0_CLK_CTRL, 4, 2, 0, &gem0clk_lock);
+       clk = clk_register_divider(NULL, "gem0_div0", "gem0_mux", 0,
+                       SLCR_GEM0_CLK_CTRL, 8, 6, CLK_DIVIDER_ONE_BASED |
+                       CLK_DIVIDER_ALLOW_ZERO, &gem0clk_lock);
+       clk = clk_register_divider(NULL, "gem0_div1", "gem0_div0",
+                       CLK_SET_RATE_PARENT, SLCR_GEM0_CLK_CTRL, 20, 6,
+                       CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO,
+                       &gem0clk_lock);
+       clk = clk_register_mux(NULL, "gem0_emio_mux", gem0_mux_parents, 2, 0,
+                       SLCR_GEM0_CLK_CTRL, 6, 1, 0, &gem0clk_lock);
+       clks[gem0] = clk_register_gate(NULL, clk_output_name[gem0],
+                       "gem0_emio_mux", CLK_SET_RATE_PARENT,
+                       SLCR_GEM0_CLK_CTRL, 0, 0, &gem0clk_lock);
+
+       for (i = 0; i < ARRAY_SIZE(gem1_emio_input_names); i++) {
+               int idx = of_property_match_string(np, "clock-names",
+                               gem1_emio_input_names[i]);
+               if (idx >= 0)
+                       gem1_mux_parents[i + 1] = of_clk_get_parent_name(np,
+                                       idx);
+       }
+       clk = clk_register_mux(NULL, "gem1_mux", periph_parents, 4, 0,
+                       SLCR_GEM1_CLK_CTRL, 4, 2, 0, &gem1clk_lock);
+       clk = clk_register_divider(NULL, "gem1_div0", "gem1_mux", 0,
+                       SLCR_GEM1_CLK_CTRL, 8, 6, CLK_DIVIDER_ONE_BASED |
+                       CLK_DIVIDER_ALLOW_ZERO, &gem1clk_lock);
+       clk = clk_register_divider(NULL, "gem1_div1", "gem1_div0",
+                       CLK_SET_RATE_PARENT, SLCR_GEM1_CLK_CTRL, 20, 6,
+                       CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO,
+                       &gem1clk_lock);
+       clk = clk_register_mux(NULL, "gem1_emio_mux", gem1_mux_parents, 2, 0,
+                       SLCR_GEM1_CLK_CTRL, 6, 1, 0, &gem1clk_lock);
+       clks[gem1] = clk_register_gate(NULL, clk_output_name[gem1],
+                       "gem1_emio_mux", CLK_SET_RATE_PARENT,
+                       SLCR_GEM1_CLK_CTRL, 0, 0, &gem1clk_lock);
+
+       tmp = strlen("mio_clk_00x");
+       clk_name = kmalloc(tmp, GFP_KERNEL);
+       for (i = 0; i < NUM_MIO_PINS; i++) {
+               int idx;
+
+               snprintf(clk_name, tmp, "mio_clk_%2.2d", i);
+               idx = of_property_match_string(np, "clock-names", clk_name);
+               if (idx >= 0)
+                       can_mio_mux_parents[i] = of_clk_get_parent_name(np,
+                                               idx);
+               else
+                       can_mio_mux_parents[i] = dummy_nm;
+       }
+       kfree(clk_name);
+       clk = clk_register_mux(NULL, "can_mux", periph_parents, 4, 0,
+                       SLCR_CAN_CLK_CTRL, 4, 2, 0, &canclk_lock);
+       clk = clk_register_divider(NULL, "can_div0", "can_mux", 0,
+                       SLCR_CAN_CLK_CTRL, 8, 6, CLK_DIVIDER_ONE_BASED |
+                       CLK_DIVIDER_ALLOW_ZERO, &canclk_lock);
+       clk = clk_register_divider(NULL, "can_div1", "can_div0",
+                       CLK_SET_RATE_PARENT, SLCR_CAN_CLK_CTRL, 20, 6,
+                       CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO,
+                       &canclk_lock);
+       clk = clk_register_gate(NULL, "can0_gate", "can_div1",
+                       CLK_SET_RATE_PARENT, SLCR_CAN_CLK_CTRL, 0, 0,
+                       &canclk_lock);
+       clk = clk_register_gate(NULL, "can1_gate", "can_div1",
+                       CLK_SET_RATE_PARENT, SLCR_CAN_CLK_CTRL, 1, 0,
+                       &canclk_lock);
+       clk = clk_register_mux(NULL, "can0_mio_mux",
+                       can_mio_mux_parents, 54, CLK_SET_RATE_PARENT,
+                       SLCR_CAN_MIOCLK_CTRL, 0, 6, 0, &canmioclk_lock);
+       clk = clk_register_mux(NULL, "can1_mio_mux",
+                       can_mio_mux_parents, 54, CLK_SET_RATE_PARENT,
+                       SLCR_CAN_MIOCLK_CTRL, 16, 6, 0, &canmioclk_lock);
+       clks[can0] = clk_register_mux(NULL, clk_output_name[can0],
+                       can0_mio_mux2_parents, 2, CLK_SET_RATE_PARENT,
+                       SLCR_CAN_MIOCLK_CTRL, 6, 1, 0, &canmioclk_lock);
+       clks[can1] = clk_register_mux(NULL, clk_output_name[can1],
+                       can1_mio_mux2_parents, 2, CLK_SET_RATE_PARENT,
+                       SLCR_CAN_MIOCLK_CTRL, 22, 1, 0, &canmioclk_lock);
+
+       for (i = 0; i < ARRAY_SIZE(dbgtrc_emio_input_names); i++) {
+               int idx = of_property_match_string(np, "clock-names",
+                               dbgtrc_emio_input_names[i]);
+               if (idx >= 0)
+                       dbg_emio_mux_parents[i + 1] = of_clk_get_parent_name(np,
+                                       idx);
+       }
+       clk = clk_register_mux(NULL, "dbg_mux", periph_parents, 4, 0,
+                       SLCR_DBG_CLK_CTRL, 4, 2, 0, &dbgclk_lock);
+       clk = clk_register_divider(NULL, "dbg_div", "dbg_mux", 0,
+                       SLCR_DBG_CLK_CTRL, 8, 6, CLK_DIVIDER_ONE_BASED |
+                       CLK_DIVIDER_ALLOW_ZERO, &dbgclk_lock);
+       clk = clk_register_mux(NULL, "dbg_emio_mux", dbg_emio_mux_parents, 2, 0,
+                       SLCR_DBG_CLK_CTRL, 6, 1, 0, &dbgclk_lock);
+       clks[dbg_trc] = clk_register_gate(NULL, clk_output_name[dbg_trc],
+                       "dbg_emio_mux", CLK_SET_RATE_PARENT, SLCR_DBG_CLK_CTRL,
+                       0, 0, &dbgclk_lock);
+       clks[dbg_apb] = clk_register_gate(NULL, clk_output_name[dbg_apb],
+                       clk_output_name[cpu_1x], 0, SLCR_DBG_CLK_CTRL, 1, 0,
+                       &dbgclk_lock);
+
+       /* One gated clock for all APER clocks. */
+       clks[dma] = clk_register_gate(NULL, clk_output_name[dma],
+                       clk_output_name[cpu_2x], 0, SLCR_APER_CLK_CTRL, 0, 0,
+                       &aperclk_lock);
+       clks[usb0_aper] = clk_register_gate(NULL, clk_output_name[usb0_aper],
+                       clk_output_name[cpu_1x], 0, SLCR_APER_CLK_CTRL, 2, 0,
+                       &aperclk_lock);
+       clks[usb1_aper] = clk_register_gate(NULL, clk_output_name[usb1_aper],
+                       clk_output_name[cpu_1x], 0, SLCR_APER_CLK_CTRL, 3, 0,
+                       &aperclk_lock);
+       clks[gem0_aper] = clk_register_gate(NULL, clk_output_name[gem0_aper],
+                       clk_output_name[cpu_1x], 0, SLCR_APER_CLK_CTRL, 6, 0,
+                       &aperclk_lock);
+       clks[gem1_aper] = clk_register_gate(NULL, clk_output_name[gem1_aper],
+                       clk_output_name[cpu_1x], 0, SLCR_APER_CLK_CTRL, 7, 0,
+                       &aperclk_lock);
+       clks[sdio0_aper] = clk_register_gate(NULL, clk_output_name[sdio0_aper],
+                       clk_output_name[cpu_1x], 0, SLCR_APER_CLK_CTRL, 10, 0,
+                       &aperclk_lock);
+       clks[sdio1_aper] = clk_register_gate(NULL, clk_output_name[sdio1_aper],
+                       clk_output_name[cpu_1x], 0, SLCR_APER_CLK_CTRL, 11, 0,
+                       &aperclk_lock);
+       clks[spi0_aper] = clk_register_gate(NULL, clk_output_name[spi0_aper],
+                       clk_output_name[cpu_1x], 0, SLCR_APER_CLK_CTRL, 14, 0,
+                       &aperclk_lock);
+       clks[spi1_aper] = clk_register_gate(NULL, clk_output_name[spi1_aper],
+                       clk_output_name[cpu_1x], 0, SLCR_APER_CLK_CTRL, 15, 0,
+                       &aperclk_lock);
+       clks[can0_aper] = clk_register_gate(NULL, clk_output_name[can0_aper],
+                       clk_output_name[cpu_1x], 0, SLCR_APER_CLK_CTRL, 16, 0,
+                       &aperclk_lock);
+       clks[can1_aper] = clk_register_gate(NULL, clk_output_name[can1_aper],
+                       clk_output_name[cpu_1x], 0, SLCR_APER_CLK_CTRL, 17, 0,
+                       &aperclk_lock);
+       clks[i2c0_aper] = clk_register_gate(NULL, clk_output_name[i2c0_aper],
+                       clk_output_name[cpu_1x], 0, SLCR_APER_CLK_CTRL, 18, 0,
+                       &aperclk_lock);
+       clks[i2c1_aper] = clk_register_gate(NULL, clk_output_name[i2c1_aper],
+                       clk_output_name[cpu_1x], 0, SLCR_APER_CLK_CTRL, 19, 0,
+                       &aperclk_lock);
+       clks[uart0_aper] = clk_register_gate(NULL, clk_output_name[uart0_aper],
+                       clk_output_name[cpu_1x], 0, SLCR_APER_CLK_CTRL, 20, 0,
+                       &aperclk_lock);
+       clks[uart1_aper] = clk_register_gate(NULL, clk_output_name[uart1_aper],
+                       clk_output_name[cpu_1x], 0, SLCR_APER_CLK_CTRL, 21, 0,
+                       &aperclk_lock);
+       clks[gpio_aper] = clk_register_gate(NULL, clk_output_name[gpio_aper],
+                       clk_output_name[cpu_1x], 0, SLCR_APER_CLK_CTRL, 22, 0,
+                       &aperclk_lock);
+       clks[lqspi_aper] = clk_register_gate(NULL, clk_output_name[lqspi_aper],
+                       clk_output_name[cpu_1x], 0, SLCR_APER_CLK_CTRL, 23, 0,
+                       &aperclk_lock);
+       clks[smc_aper] = clk_register_gate(NULL, clk_output_name[smc_aper],
+                       clk_output_name[cpu_1x], 0, SLCR_APER_CLK_CTRL, 24, 0,
+                       &aperclk_lock);
+
+       for (i = 0; i < ARRAY_SIZE(clks); i++) {
+               if (IS_ERR(clks[i])) {
+                       pr_err("Zynq clk %d: register failed with %ld\n",
+                              i, PTR_ERR(clks[i]));
+                       BUG();
+               }
+       }
+
+       clk_data.clks = clks;
+       clk_data.clk_num = ARRAY_SIZE(clks);
+       of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
+}
+
+CLK_OF_DECLARE(zynq_clkc, "xlnx,ps7-clkc", zynq_clk_setup);
+
+void __init zynq_clock_init(void __iomem *slcr_base)
+{
+       zynq_slcr_base_priv = slcr_base;
+       of_clk_init(NULL);
+}
diff --git a/drivers/clk/zynq/pll.c b/drivers/clk/zynq/pll.c
new file mode 100644 (file)
index 0000000..47e307c
--- /dev/null
@@ -0,0 +1,235 @@
+/*
+ * Zynq PLL driver
+ *
+ *  Copyright (C) 2013 Xilinx
+ *
+ *  Sören Brinkmann <soren.brinkmann@xilinx.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License v2 as published by
+ * the Free Software Foundation.
+ *
+ * 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, see <http://www.gnu.org/licenses/>.
+ *
+ */
+#include <linux/clk/zynq.h>
+#include <linux/clk-provider.h>
+#include <linux/slab.h>
+#include <linux/io.h>
+
+/**
+ * struct zynq_pll
+ * @hw:                Handle between common and hardware-specific interfaces
+ * @pll_ctrl:  PLL control register
+ * @pll_status:        PLL status register
+ * @lock:      Register lock
+ * @lockbit:   Indicates the associated PLL_LOCKED bit in the PLL status
+ *             register.
+ */
+struct zynq_pll {
+       struct clk_hw   hw;
+       void __iomem    *pll_ctrl;
+       void __iomem    *pll_status;
+       spinlock_t      *lock;
+       u8              lockbit;
+};
+#define to_zynq_pll(_hw)       container_of(_hw, struct zynq_pll, hw)
+
+/* Register bitfield defines */
+#define PLLCTRL_FBDIV_MASK     0x7f000
+#define PLLCTRL_FBDIV_SHIFT    12
+#define PLLCTRL_BPQUAL_MASK    (1 << 3)
+#define PLLCTRL_PWRDWN_MASK    2
+#define PLLCTRL_PWRDWN_SHIFT   1
+#define PLLCTRL_RESET_MASK     1
+#define PLLCTRL_RESET_SHIFT    0
+
+/**
+ * zynq_pll_round_rate() - Round a clock frequency
+ * @hw:                Handle between common and hardware-specific interfaces
+ * @rate:      Desired clock frequency
+ * @prate:     Clock frequency of parent clock
+ * Returns frequency closest to @rate the hardware can generate.
+ */
+static long zynq_pll_round_rate(struct clk_hw *hw, unsigned long rate,
+               unsigned long *prate)
+{
+       u32 fbdiv;
+
+       fbdiv = DIV_ROUND_CLOSEST(rate, *prate);
+       if (fbdiv < 13)
+               fbdiv = 13;
+       else if (fbdiv > 66)
+               fbdiv = 66;
+
+       return *prate * fbdiv;
+}
+
+/**
+ * zynq_pll_recalc_rate() - Recalculate clock frequency
+ * @hw:                        Handle between common and hardware-specific interfaces
+ * @parent_rate:       Clock frequency of parent clock
+ * Returns current clock frequency.
+ */
+static unsigned long zynq_pll_recalc_rate(struct clk_hw *hw,
+               unsigned long parent_rate)
+{
+       struct zynq_pll *clk = to_zynq_pll(hw);
+       u32 fbdiv;
+
+       /*
+        * makes probably sense to redundantly save fbdiv in the struct
+        * zynq_pll to save the IO access.
+        */
+       fbdiv = (readl(clk->pll_ctrl) & PLLCTRL_FBDIV_MASK) >>
+                       PLLCTRL_FBDIV_SHIFT;
+
+       return parent_rate * fbdiv;
+}
+
+/**
+ * zynq_pll_is_enabled - Check if a clock is enabled
+ * @hw:                Handle between common and hardware-specific interfaces
+ * Returns 1 if the clock is enabled, 0 otherwise.
+ *
+ * Not sure this is a good idea, but since disabled means bypassed for
+ * this clock implementation we say we are always enabled.
+ */
+static int zynq_pll_is_enabled(struct clk_hw *hw)
+{
+       unsigned long flags = 0;
+       u32 reg;
+       struct zynq_pll *clk = to_zynq_pll(hw);
+
+       spin_lock_irqsave(clk->lock, flags);
+
+       reg = readl(clk->pll_ctrl);
+
+       spin_unlock_irqrestore(clk->lock, flags);
+
+       return !(reg & (PLLCTRL_RESET_MASK | PLLCTRL_PWRDWN_MASK));
+}
+
+/**
+ * zynq_pll_enable - Enable clock
+ * @hw:                Handle between common and hardware-specific interfaces
+ * Returns 0 on success
+ */
+static int zynq_pll_enable(struct clk_hw *hw)
+{
+       unsigned long flags = 0;
+       u32 reg;
+       struct zynq_pll *clk = to_zynq_pll(hw);
+
+       if (zynq_pll_is_enabled(hw))
+               return 0;
+
+       pr_info("PLL: enable\n");
+
+       /* Power up PLL and wait for lock */
+       spin_lock_irqsave(clk->lock, flags);
+
+       reg = readl(clk->pll_ctrl);
+       reg &= ~(PLLCTRL_RESET_MASK | PLLCTRL_PWRDWN_MASK);
+       writel(reg, clk->pll_ctrl);
+       while (!(readl(clk->pll_status) & (1 << clk->lockbit)))
+               ;
+
+       spin_unlock_irqrestore(clk->lock, flags);
+
+       return 0;
+}
+
+/**
+ * zynq_pll_disable - Disable clock
+ * @hw:                Handle between common and hardware-specific interfaces
+ * Returns 0 on success
+ */
+static void zynq_pll_disable(struct clk_hw *hw)
+{
+       unsigned long flags = 0;
+       u32 reg;
+       struct zynq_pll *clk = to_zynq_pll(hw);
+
+       if (!zynq_pll_is_enabled(hw))
+               return;
+
+       pr_info("PLL: shutdown\n");
+
+       /* shut down PLL */
+       spin_lock_irqsave(clk->lock, flags);
+
+       reg = readl(clk->pll_ctrl);
+       reg |= PLLCTRL_RESET_MASK | PLLCTRL_PWRDWN_MASK;
+       writel(reg, clk->pll_ctrl);
+
+       spin_unlock_irqrestore(clk->lock, flags);
+}
+
+static const struct clk_ops zynq_pll_ops = {
+       .enable = zynq_pll_enable,
+       .disable = zynq_pll_disable,
+       .is_enabled = zynq_pll_is_enabled,
+       .round_rate = zynq_pll_round_rate,
+       .recalc_rate = zynq_pll_recalc_rate
+};
+
+/**
+ * clk_register_zynq_pll() - Register PLL with the clock framework
+ * @np Pointer to the DT device node
+ */
+struct clk *clk_register_zynq_pll(const char *name, const char *parent,
+               void __iomem *pll_ctrl, void __iomem *pll_status, u8 lock_index,
+               spinlock_t *lock)
+{
+       struct zynq_pll *pll;
+       struct clk *clk;
+       u32 reg;
+       const char *parent_arr[1] = {parent};
+       unsigned long flags = 0;
+       struct clk_init_data initd = {
+               .name = name,
+               .parent_names = parent_arr,
+               .ops = &zynq_pll_ops,
+               .num_parents = 1,
+               .flags = 0
+       };
+
+       pll = kmalloc(sizeof(*pll), GFP_KERNEL);
+       if (!pll) {
+               pr_err("%s: Could not allocate Zynq PLL clk.\n", __func__);
+               return ERR_PTR(-ENOMEM);
+       }
+
+       /* Populate the struct */
+       pll->hw.init = &initd;
+       pll->pll_ctrl = pll_ctrl;
+       pll->pll_status = pll_status;
+       pll->lockbit = lock_index;
+       pll->lock = lock;
+
+       spin_lock_irqsave(pll->lock, flags);
+
+       reg = readl(pll->pll_ctrl);
+       reg &= ~PLLCTRL_BPQUAL_MASK;
+       writel(reg, pll->pll_ctrl);
+
+       spin_unlock_irqrestore(pll->lock, flags);
+
+       clk = clk_register(NULL, &pll->hw);
+       if (WARN_ON(IS_ERR(clk)))
+               goto free_pll;
+
+       return clk;
+
+free_pll:
+       kfree(pll);
+
+       return clk;
+}
index 685bc60e210ad45ae45192376c496e3cfbf73926..4cbe28c74631eaa5ef8df596865db2a92bd02cb7 100644 (file)
@@ -51,6 +51,8 @@
 
 #define TTC_CNT_CNTRL_DISABLE_MASK     0x1
 
+#define TTC_CLK_CNTRL_CSRC_MASK                (1 << 5)        /* clock source */
+
 /*
  * Setup the timers to use pre-scaling, using a fixed value for now that will
  * work across most input frequency, but it may need to be more dynamic
@@ -396,8 +398,9 @@ static void __init ttc_timer_init(struct device_node *timer)
 {
        unsigned int irq;
        void __iomem *timer_baseaddr;
-       struct clk *clk;
+       struct clk *clk_cs, *clk_ce;
        static int initialized;
+       int clksel;
 
        if (initialized)
                return;
@@ -421,14 +424,24 @@ static void __init ttc_timer_init(struct device_node *timer)
                BUG();
        }
 
-       clk = of_clk_get_by_name(timer, "cpu_1x");
-       if (IS_ERR(clk)) {
+       clksel = __raw_readl(timer_baseaddr + TTC_CLK_CNTRL_OFFSET);
+       clksel = !!(clksel & TTC_CLK_CNTRL_CSRC_MASK);
+       clk_cs = of_clk_get(timer, clksel);
+       if (IS_ERR(clk_cs)) {
+               pr_err("ERROR: timer input clock not found\n");
+               BUG();
+       }
+
+       clksel = __raw_readl(timer_baseaddr + 4 + TTC_CLK_CNTRL_OFFSET);
+       clksel = !!(clksel & TTC_CLK_CNTRL_CSRC_MASK);
+       clk_ce = of_clk_get(timer, clksel);
+       if (IS_ERR(clk_ce)) {
                pr_err("ERROR: timer input clock not found\n");
                BUG();
        }
 
-       ttc_setup_clocksource(clk, timer_baseaddr);
-       ttc_setup_clockevent(clk, timer_baseaddr + 4, irq);
+       ttc_setup_clocksource(clk_cs, timer_baseaddr);
+       ttc_setup_clockevent(clk_ce, timer_baseaddr + 4, irq);
 
        pr_info("%s #0 at %p, irq=%d\n", timer->name, timer_baseaddr, irq);
 }
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 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, },
 };
index 4e5c77834c50fc6586848f9b292b81456b481da6..a4a3028103e3441c533517da3cdc9ac62ad6eed9 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/platform_device.h>
 #include <linux/serial.h>
 #include <linux/serial_core.h>
+#include <linux/slab.h>
 #include <linux/tty.h>
 #include <linux/tty_flip.h>
 #include <linux/console.h>
 #define XUARTPS_SR_TXFULL      0x00000010 /* TX FIFO full */
 #define XUARTPS_SR_RXTRIG      0x00000001 /* Rx Trigger */
 
+/**
+ * struct xuartps - device data
+ * @refclk     Reference clock
+ * @aperclk    APB clock
+ */
+struct xuartps {
+       struct clk              *refclk;
+       struct clk              *aperclk;
+};
+
 /**
  * xuartps_isr - Interrupt handler
  * @irq: Irq number
@@ -936,34 +947,55 @@ static int xuartps_probe(struct platform_device *pdev)
        int rc;
        struct uart_port *port;
        struct resource *res, *res2;
-       struct clk *clk;
+       struct xuartps *xuartps_data;
 
-       clk = of_clk_get(pdev->dev.of_node, 0);
-       if (IS_ERR(clk)) {
-               dev_err(&pdev->dev, "no clock specified\n");
-               return PTR_ERR(clk);
+       xuartps_data = kzalloc(sizeof(*xuartps_data), GFP_KERNEL);
+       if (!xuartps_data)
+               return -ENOMEM;
+
+       xuartps_data->aperclk = clk_get(&pdev->dev, "aper_clk");
+       if (IS_ERR(xuartps_data->aperclk)) {
+               dev_err(&pdev->dev, "aper_clk clock not found.\n");
+               rc = PTR_ERR(xuartps_data->aperclk);
+               goto err_out_free;
+       }
+       xuartps_data->refclk = clk_get(&pdev->dev, "ref_clk");
+       if (IS_ERR(xuartps_data->refclk)) {
+               dev_err(&pdev->dev, "ref_clk clock not found.\n");
+               rc = PTR_ERR(xuartps_data->refclk);
+               goto err_out_clk_put_aper;
        }
 
-       rc = clk_prepare_enable(clk);
+       rc = clk_prepare_enable(xuartps_data->aperclk);
+       if (rc) {
+               dev_err(&pdev->dev, "Unable to enable APER clock.\n");
+               goto err_out_clk_put;
+       }
+       rc = clk_prepare_enable(xuartps_data->refclk);
        if (rc) {
-               dev_err(&pdev->dev, "could not enable clock\n");
-               return -EBUSY;
+               dev_err(&pdev->dev, "Unable to enable device clock.\n");
+               goto err_out_clk_dis_aper;
        }
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       if (!res)
-               return -ENODEV;
+       if (!res) {
+               rc = -ENODEV;
+               goto err_out_clk_disable;
+       }
 
        res2 = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
-       if (!res2)
-               return -ENODEV;
+       if (!res2) {
+               rc = -ENODEV;
+               goto err_out_clk_disable;
+       }
 
        /* Initialize the port structure */
        port = xuartps_get_port();
 
        if (!port) {
                dev_err(&pdev->dev, "Cannot get uart_port structure\n");
-               return -ENODEV;
+               rc = -ENODEV;
+               goto err_out_clk_disable;
        } else {
                /* Register the port.
                 * This function also registers this device with the tty layer
@@ -972,18 +1004,31 @@ static int xuartps_probe(struct platform_device *pdev)
                port->mapbase = res->start;
                port->irq = res2->start;
                port->dev = &pdev->dev;
-               port->uartclk = clk_get_rate(clk);
-               port->private_data = clk;
+               port->uartclk = clk_get_rate(xuartps_data->refclk);
+               port->private_data = xuartps_data;
                dev_set_drvdata(&pdev->dev, port);
                rc = uart_add_one_port(&xuartps_uart_driver, port);
                if (rc) {
                        dev_err(&pdev->dev,
                                "uart_add_one_port() failed; err=%i\n", rc);
                        dev_set_drvdata(&pdev->dev, NULL);
-                       return rc;
+                       goto err_out_clk_disable;
                }
                return 0;
        }
+
+err_out_clk_disable:
+       clk_disable_unprepare(xuartps_data->refclk);
+err_out_clk_dis_aper:
+       clk_disable_unprepare(xuartps_data->aperclk);
+err_out_clk_put:
+       clk_put(xuartps_data->refclk);
+err_out_clk_put_aper:
+       clk_put(xuartps_data->aperclk);
+err_out_free:
+       kfree(xuartps_data);
+
+       return rc;
 }
 
 /**
@@ -995,14 +1040,18 @@ static int xuartps_probe(struct platform_device *pdev)
 static int xuartps_remove(struct platform_device *pdev)
 {
        struct uart_port *port = dev_get_drvdata(&pdev->dev);
-       struct clk *clk = port->private_data;
+       struct xuartps *xuartps_data = port->private_data;
        int rc;
 
        /* Remove the xuartps port from the serial core */
        rc = uart_remove_one_port(&xuartps_uart_driver, port);
        dev_set_drvdata(&pdev->dev, NULL);
        port->mapbase = 0;
-       clk_disable_unprepare(clk);
+       clk_disable_unprepare(xuartps_data->refclk);
+       clk_disable_unprepare(xuartps_data->aperclk);
+       clk_put(xuartps_data->refclk);
+       clk_put(xuartps_data->aperclk);
+       kfree(xuartps_data);
        return rc;
 }
 
diff --git a/include/dt-bindings/clock/imx6sl-clock.h b/include/dt-bindings/clock/imx6sl-clock.h
new file mode 100644 (file)
index 0000000..7fcdf90
--- /dev/null
@@ -0,0 +1,148 @@
+/*
+ * 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 __DT_BINDINGS_CLOCK_IMX6SL_H
+#define __DT_BINDINGS_CLOCK_IMX6SL_H
+
+#define IMX6SL_CLK_DUMMY               0
+#define IMX6SL_CLK_CKIL                        1
+#define IMX6SL_CLK_OSC                 2
+#define IMX6SL_CLK_PLL1_SYS            3
+#define IMX6SL_CLK_PLL2_BUS            4
+#define IMX6SL_CLK_PLL3_USB_OTG                5
+#define IMX6SL_CLK_PLL4_AUDIO          6
+#define IMX6SL_CLK_PLL5_VIDEO          7
+#define IMX6SL_CLK_PLL6_ENET           8
+#define IMX6SL_CLK_PLL7_USB_HOST       9
+#define IMX6SL_CLK_USBPHY1             10
+#define IMX6SL_CLK_USBPHY2             11
+#define IMX6SL_CLK_USBPHY1_GATE                12
+#define IMX6SL_CLK_USBPHY2_GATE                13
+#define IMX6SL_CLK_PLL4_POST_DIV       14
+#define IMX6SL_CLK_PLL5_POST_DIV       15
+#define IMX6SL_CLK_PLL5_VIDEO_DIV      16
+#define IMX6SL_CLK_ENET_REF            17
+#define IMX6SL_CLK_PLL2_PFD0           18
+#define IMX6SL_CLK_PLL2_PFD1           19
+#define IMX6SL_CLK_PLL2_PFD2           20
+#define IMX6SL_CLK_PLL3_PFD0           21
+#define IMX6SL_CLK_PLL3_PFD1           22
+#define IMX6SL_CLK_PLL3_PFD2           23
+#define IMX6SL_CLK_PLL3_PFD3           24
+#define IMX6SL_CLK_PLL2_198M           25
+#define IMX6SL_CLK_PLL3_120M           26
+#define IMX6SL_CLK_PLL3_80M            27
+#define IMX6SL_CLK_PLL3_60M            28
+#define IMX6SL_CLK_STEP                        29
+#define IMX6SL_CLK_PLL1_SW             30
+#define IMX6SL_CLK_OCRAM_ALT_SEL       31
+#define IMX6SL_CLK_OCRAM_SEL           32
+#define IMX6SL_CLK_PRE_PERIPH2_SEL     33
+#define IMX6SL_CLK_PRE_PERIPH_SEL      34
+#define IMX6SL_CLK_PERIPH2_CLK2_SEL    35
+#define IMX6SL_CLK_PERIPH_CLK2_SEL     36
+#define IMX6SL_CLK_CSI_SEL             37
+#define IMX6SL_CLK_LCDIF_AXI_SEL       38
+#define IMX6SL_CLK_USDHC1_SEL          39
+#define IMX6SL_CLK_USDHC2_SEL          40
+#define IMX6SL_CLK_USDHC3_SEL          41
+#define IMX6SL_CLK_USDHC4_SEL          42
+#define IMX6SL_CLK_SSI1_SEL            43
+#define IMX6SL_CLK_SSI2_SEL            44
+#define IMX6SL_CLK_SSI3_SEL            45
+#define IMX6SL_CLK_PERCLK_SEL          46
+#define IMX6SL_CLK_PXP_AXI_SEL         47
+#define IMX6SL_CLK_EPDC_AXI_SEL                48
+#define IMX6SL_CLK_GPU2D_OVG_SEL       49
+#define IMX6SL_CLK_GPU2D_SEL           50
+#define IMX6SL_CLK_LCDIF_PIX_SEL       51
+#define IMX6SL_CLK_EPDC_PIX_SEL                52
+#define IMX6SL_CLK_SPDIF0_SEL          53
+#define IMX6SL_CLK_SPDIF1_SEL          54
+#define IMX6SL_CLK_EXTERN_AUDIO_SEL    55
+#define IMX6SL_CLK_ECSPI_SEL           56
+#define IMX6SL_CLK_UART_SEL            57
+#define IMX6SL_CLK_PERIPH              58
+#define IMX6SL_CLK_PERIPH2             59
+#define IMX6SL_CLK_OCRAM_PODF          60
+#define IMX6SL_CLK_PERIPH_CLK2_PODF    61
+#define IMX6SL_CLK_PERIPH2_CLK2_PODF   62
+#define IMX6SL_CLK_IPG                 63
+#define IMX6SL_CLK_CSI_PODF            64
+#define IMX6SL_CLK_LCDIF_AXI_PODF      65
+#define IMX6SL_CLK_USDHC1_PODF         66
+#define IMX6SL_CLK_USDHC2_PODF         67
+#define IMX6SL_CLK_USDHC3_PODF         68
+#define IMX6SL_CLK_USDHC4_PODF         69
+#define IMX6SL_CLK_SSI1_PRED           70
+#define IMX6SL_CLK_SSI1_PODF           71
+#define IMX6SL_CLK_SSI2_PRED           72
+#define IMX6SL_CLK_SSI2_PODF           73
+#define IMX6SL_CLK_SSI3_PRED           74
+#define IMX6SL_CLK_SSI3_PODF           75
+#define IMX6SL_CLK_PERCLK              76
+#define IMX6SL_CLK_PXP_AXI_PODF                77
+#define IMX6SL_CLK_EPDC_AXI_PODF       78
+#define IMX6SL_CLK_GPU2D_OVG_PODF      79
+#define IMX6SL_CLK_GPU2D_PODF          80
+#define IMX6SL_CLK_LCDIF_PIX_PRED      81
+#define IMX6SL_CLK_EPDC_PIX_PRED       82
+#define IMX6SL_CLK_LCDIF_PIX_PODF      83
+#define IMX6SL_CLK_EPDC_PIX_PODF       84
+#define IMX6SL_CLK_SPDIF0_PRED         85
+#define IMX6SL_CLK_SPDIF0_PODF         86
+#define IMX6SL_CLK_SPDIF1_PRED         87
+#define IMX6SL_CLK_SPDIF1_PODF         88
+#define IMX6SL_CLK_EXTERN_AUDIO_PRED   89
+#define IMX6SL_CLK_EXTERN_AUDIO_PODF   90
+#define IMX6SL_CLK_ECSPI_ROOT          91
+#define IMX6SL_CLK_UART_ROOT           92
+#define IMX6SL_CLK_AHB                 93
+#define IMX6SL_CLK_MMDC_ROOT           94
+#define IMX6SL_CLK_ARM                 95
+#define IMX6SL_CLK_ECSPI1              96
+#define IMX6SL_CLK_ECSPI2              97
+#define IMX6SL_CLK_ECSPI3              98
+#define IMX6SL_CLK_ECSPI4              99
+#define IMX6SL_CLK_EPIT1               100
+#define IMX6SL_CLK_EPIT2               101
+#define IMX6SL_CLK_EXTERN_AUDIO                102
+#define IMX6SL_CLK_GPT                 103
+#define IMX6SL_CLK_GPT_SERIAL          104
+#define IMX6SL_CLK_GPU2D_OVG           105
+#define IMX6SL_CLK_I2C1                        106
+#define IMX6SL_CLK_I2C2                        107
+#define IMX6SL_CLK_I2C3                        108
+#define IMX6SL_CLK_OCOTP               109
+#define IMX6SL_CLK_CSI                 110
+#define IMX6SL_CLK_PXP_AXI             111
+#define IMX6SL_CLK_EPDC_AXI            112
+#define IMX6SL_CLK_LCDIF_AXI           113
+#define IMX6SL_CLK_LCDIF_PIX           114
+#define IMX6SL_CLK_EPDC_PIX            115
+#define IMX6SL_CLK_OCRAM               116
+#define IMX6SL_CLK_PWM1                        117
+#define IMX6SL_CLK_PWM2                        118
+#define IMX6SL_CLK_PWM3                        119
+#define IMX6SL_CLK_PWM4                        120
+#define IMX6SL_CLK_SDMA                        121
+#define IMX6SL_CLK_SPDIF               122
+#define IMX6SL_CLK_SSI1                        123
+#define IMX6SL_CLK_SSI2                        124
+#define IMX6SL_CLK_SSI3                        125
+#define IMX6SL_CLK_UART                        126
+#define IMX6SL_CLK_UART_SERIAL         127
+#define IMX6SL_CLK_USBOH3              128
+#define IMX6SL_CLK_USDHC1              129
+#define IMX6SL_CLK_USDHC2              130
+#define IMX6SL_CLK_USDHC3              131
+#define IMX6SL_CLK_USDHC4              132
+#define IMX6SL_CLK_CLK_END             133
+
+#endif /* __DT_BINDINGS_CLOCK_IMX6SL_H */
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/clock/vf610-clock.h b/include/dt-bindings/clock/vf610-clock.h
new file mode 100644 (file)
index 0000000..15e997f
--- /dev/null
@@ -0,0 +1,163 @@
+/*
+ * 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.
+ */
+
+#ifndef __DT_BINDINGS_CLOCK_VF610_H
+#define __DT_BINDINGS_CLOCK_VF610_H
+
+#define VF610_CLK_DUMMY                        0
+#define VF610_CLK_SIRC_128K            1
+#define VF610_CLK_SIRC_32K             2
+#define VF610_CLK_FIRC                 3
+#define VF610_CLK_SXOSC                        4
+#define VF610_CLK_FXOSC                        5
+#define VF610_CLK_FXOSC_HALF           6
+#define VF610_CLK_SLOW_CLK_SEL         7
+#define VF610_CLK_FASK_CLK_SEL         8
+#define VF610_CLK_AUDIO_EXT            9
+#define VF610_CLK_ENET_EXT             10
+#define VF610_CLK_PLL1_MAIN            11
+#define VF610_CLK_PLL1_PFD1            12
+#define VF610_CLK_PLL1_PFD2            13
+#define VF610_CLK_PLL1_PFD3            14
+#define VF610_CLK_PLL1_PFD4            15
+#define VF610_CLK_PLL2_MAIN            16
+#define VF610_CLK_PLL2_PFD1            17
+#define VF610_CLK_PLL2_PFD2            18
+#define VF610_CLK_PLL2_PFD3            19
+#define VF610_CLK_PLL2_PFD4            20
+#define VF610_CLK_PLL3_MAIN            21
+#define VF610_CLK_PLL3_PFD1            22
+#define VF610_CLK_PLL3_PFD2            23
+#define VF610_CLK_PLL3_PFD3            24
+#define VF610_CLK_PLL3_PFD4            25
+#define VF610_CLK_PLL4_MAIN            26
+#define VF610_CLK_PLL5_MAIN            27
+#define VF610_CLK_PLL6_MAIN            28
+#define VF610_CLK_PLL3_MAIN_DIV                29
+#define VF610_CLK_PLL4_MAIN_DIV                30
+#define VF610_CLK_PLL6_MAIN_DIV                31
+#define VF610_CLK_PLL1_PFD_SEL         32
+#define VF610_CLK_PLL2_PFD_SEL         33
+#define VF610_CLK_SYS_SEL              34
+#define VF610_CLK_DDR_SEL              35
+#define VF610_CLK_SYS_BUS              36
+#define VF610_CLK_PLATFORM_BUS         37
+#define VF610_CLK_IPG_BUS              38
+#define VF610_CLK_UART0                        39
+#define VF610_CLK_UART1                        40
+#define VF610_CLK_UART2                        41
+#define VF610_CLK_UART3                        42
+#define VF610_CLK_UART4                        43
+#define VF610_CLK_UART5                        44
+#define VF610_CLK_PIT                  45
+#define VF610_CLK_I2C0                 46
+#define VF610_CLK_I2C1                 47
+#define VF610_CLK_I2C2                 48
+#define VF610_CLK_I2C3                 49
+#define VF610_CLK_FTM0_EXT_SEL         50
+#define VF610_CLK_FTM0_FIX_SEL         51
+#define VF610_CLK_FTM0_EXT_FIX_EN      52
+#define VF610_CLK_FTM1_EXT_SEL         53
+#define VF610_CLK_FTM1_FIX_SEL         54
+#define VF610_CLK_FTM1_EXT_FIX_EN      55
+#define VF610_CLK_FTM2_EXT_SEL         56
+#define VF610_CLK_FTM2_FIX_SEL         57
+#define VF610_CLK_FTM2_EXT_FIX_EN      58
+#define VF610_CLK_FTM3_EXT_SEL         59
+#define VF610_CLK_FTM3_FIX_SEL         60
+#define VF610_CLK_FTM3_EXT_FIX_EN      61
+#define VF610_CLK_FTM0                 62
+#define VF610_CLK_FTM1                 63
+#define VF610_CLK_FTM2                 64
+#define VF610_CLK_FTM3                 65
+#define VF610_CLK_ENET_50M             66
+#define VF610_CLK_ENET_25M             67
+#define VF610_CLK_ENET_SEL             68
+#define VF610_CLK_ENET                 69
+#define VF610_CLK_ENET_TS_SEL          70
+#define VF610_CLK_ENET_TS              71
+#define VF610_CLK_DSPI0                        72
+#define VF610_CLK_DSPI1                        73
+#define VF610_CLK_DSPI2                        74
+#define VF610_CLK_DSPI3                        75
+#define VF610_CLK_WDT                  76
+#define VF610_CLK_ESDHC0_SEL           77
+#define VF610_CLK_ESDHC0_EN            78
+#define VF610_CLK_ESDHC0_DIV           79
+#define VF610_CLK_ESDHC0               80
+#define VF610_CLK_ESDHC1_SEL           81
+#define VF610_CLK_ESDHC1_EN            82
+#define VF610_CLK_ESDHC1_DIV           83
+#define VF610_CLK_ESDHC1               84
+#define VF610_CLK_DCU0_SEL             85
+#define VF610_CLK_DCU0_EN              86
+#define VF610_CLK_DCU0_DIV             87
+#define VF610_CLK_DCU0                 88
+#define VF610_CLK_DCU1_SEL             89
+#define VF610_CLK_DCU1_EN              90
+#define VF610_CLK_DCU1_DIV             91
+#define VF610_CLK_DCU1                 92
+#define VF610_CLK_ESAI_SEL             93
+#define VF610_CLK_ESAI_EN              94
+#define VF610_CLK_ESAI_DIV             95
+#define VF610_CLK_ESAI                 96
+#define VF610_CLK_SAI0_SEL             97
+#define VF610_CLK_SAI0_EN              98
+#define VF610_CLK_SAI0_DIV             99
+#define VF610_CLK_SAI0                 100
+#define VF610_CLK_SAI1_SEL             101
+#define VF610_CLK_SAI1_EN              102
+#define VF610_CLK_SAI1_DIV             103
+#define VF610_CLK_SAI1                 104
+#define VF610_CLK_SAI2_SEL             105
+#define VF610_CLK_SAI2_EN              106
+#define VF610_CLK_SAI2_DIV             107
+#define VF610_CLK_SAI2                 108
+#define VF610_CLK_SAI3_SEL             109
+#define VF610_CLK_SAI3_EN              110
+#define VF610_CLK_SAI3_DIV             111
+#define VF610_CLK_SAI3                 112
+#define VF610_CLK_USBC0                        113
+#define VF610_CLK_USBC1                        114
+#define VF610_CLK_QSPI0_SEL            115
+#define VF610_CLK_QSPI0_EN             116
+#define VF610_CLK_QSPI0_X4_DIV         117
+#define VF610_CLK_QSPI0_X2_DIV         118
+#define VF610_CLK_QSPI0_X1_DIV         119
+#define VF610_CLK_QSPI1_SEL            120
+#define VF610_CLK_QSPI1_EN             121
+#define VF610_CLK_QSPI1_X4_DIV         122
+#define VF610_CLK_QSPI1_X2_DIV         123
+#define VF610_CLK_QSPI1_X1_DIV         124
+#define VF610_CLK_QSPI0                        125
+#define VF610_CLK_QSPI1                        126
+#define VF610_CLK_NFC_SEL              127
+#define VF610_CLK_NFC_EN               128
+#define VF610_CLK_NFC_PRE_DIV          129
+#define VF610_CLK_NFC_FRAC_DIV         130
+#define VF610_CLK_NFC_INV              131
+#define VF610_CLK_NFC                  132
+#define VF610_CLK_VADC_SEL             133
+#define VF610_CLK_VADC_EN              134
+#define VF610_CLK_VADC_DIV             135
+#define VF610_CLK_VADC_DIV_HALF                136
+#define VF610_CLK_VADC                 137
+#define VF610_CLK_ADC0                 138
+#define VF610_CLK_ADC1                 139
+#define VF610_CLK_DAC0                 140
+#define VF610_CLK_DAC1                 141
+#define VF610_CLK_FLEXCAN0             142
+#define VF610_CLK_FLEXCAN1             143
+#define VF610_CLK_ASRC                 144
+#define VF610_CLK_GPU_SEL              145
+#define VF610_CLK_GPU_EN               146
+#define VF610_CLK_GPU2D                        147
+#define VF610_CLK_END                  148
+
+#endif /* __DT_BINDINGS_CLOCK_VF610_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/at91.h b/include/dt-bindings/pinctrl/at91.h
new file mode 100644 (file)
index 0000000..d7988b4
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * This header provides constants for most at91 pinctrl bindings.
+ *
+ * Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
+ *
+ * GPLv2 only
+ */
+
+#ifndef __DT_BINDINGS_AT91_PINCTRL_H__
+#define __DT_BINDINGS_AT91_PINCTRL_H__
+
+#define AT91_PINCTRL_NONE              (0 << 0)
+#define AT91_PINCTRL_PULL_UP           (1 << 0)
+#define AT91_PINCTRL_MULTI_DRIVE       (1 << 1)
+#define AT91_PINCTRL_DEGLITCH          (1 << 2)
+#define AT91_PINCTRL_PULL_DOWN         (1 << 3)
+#define AT91_PINCTRL_DIS_SCHMIT                (1 << 4)
+#define AT91_PINCTRL_DEBOUNCE          (1 << 16)
+#define AT91_PINCTRL_DEBOUNCE_VA(x)    (x << 17)
+
+#define AT91_PINCTRL_PULL_UP_DEGLITCH  (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DEGLITCH)
+
+#define AT91_PIOA      0
+#define AT91_PIOB      1
+#define AT91_PIOC      2
+#define AT91_PIOD      3
+#define AT91_PIOE      4
+
+#define AT91_PERIPH_GPIO       0
+#define AT91_PERIPH_A          1
+#define AT91_PERIPH_B          2
+#define AT91_PERIPH_C          3
+#define AT91_PERIPH_D          4
+
+#endif /* __DT_BINDINGS_AT91_PINCTRL_H__ */
index 56be7cd9aa8be535b8bca9a604e1a96444f69867..e062d317cccea96d5e6f6c236fc2cec8ef3108a1 100644 (file)
@@ -1,4 +1,5 @@
 /*
+ * Copyright (C) 2013 Xilinx Inc.
  * Copyright (C) 2012 National Instruments
  *
  * This program is free software; you can redistribute it and/or modify
 #ifndef __LINUX_CLK_ZYNQ_H_
 #define __LINUX_CLK_ZYNQ_H_
 
-void __init xilinx_zynq_clocks_init(void __iomem *slcr);
+#include <linux/spinlock.h>
 
+void zynq_clock_init(void __iomem *slcr);
+
+struct clk *clk_register_zynq_pll(const char *name, const char *parent,
+               void __iomem *pll_ctrl, void __iomem *pll_status, u8 lock_index,
+               spinlock_t *lock);
 #endif