]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
Merge tag 'at91-ab-dt2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni...
authorOlof Johansson <olof@lixom.net>
Thu, 13 Aug 2015 09:58:22 +0000 (11:58 +0200)
committerOlof Johansson <olof@lixom.net>
Thu, 13 Aug 2015 09:58:22 +0000 (11:58 +0200)
Second batch of DT changes for 4.3:
- Add the slow clock to the nodes that will use it
- Add hlcd to the at91sam9x5 and at91sam9n12
- Add touchscreen and touch button support to the at91sam9x5ek

* tag 'at91-ab-dt2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (22 commits)
  ARM: at91/dt: sama5d2: use slow clock where necessary
  ARM: at91/dt: at91sam9x5dm: add QT1070 touch button controller
  ARM: at91/dt: at91sam9x5dm: add support for the touschscreen
  ARM: at91/dt: add drm support for at91sam9n12ek
  ARM: at91/dt: enable lcd support for at91sam9x5 SoCs
  ARM: at91/dt: add at91sam9x5-ek Display Module dtsi
  ARM: at91/dt: include lcd dtsi in at91sam9x5 dtsis
  ARM: at91/dt: define hlcdc node in at91sam9x5_lcd.dtsi
  ARM: at91/dt: sama5d4: use slow clock where necessary
  ARM: at91/dt: sama5d3: use slow clock where necessary
  ARM: at91/dt: at91sam9x5: use slow clock where necessary
  ARM: at91/dt: at91sam9rl: use slow clock where necessary
  ARM: at91/dt: at91sam9n12: use slow clock where necessary
  ARM: at91/dt: at91sam9g45: use slow clock where necessary
  ARM: at91/dt: at91sam9263: use slow clock where necessary
  ARM: at91/dt: at91sam9261: use slow clock where necessary
  ARM: at91/dt: at91sam9260: use slow clock where necessary
  ARM: at91/dt: at91rm9200: use slow clock where necessary
  Documentation: dt: rtc: at91rm9200: add clocks property
  Documentation: watchdog: at91sam9_wdt: add clocks property
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
202 files changed:
Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
Documentation/devicetree/bindings/arm/mediatek.txt
Documentation/devicetree/bindings/arm/mediatek/mediatek,sysirq.txt
Documentation/devicetree/bindings/arm/omap/omap.txt
Documentation/devicetree/bindings/arm/rockchip.txt
Documentation/devicetree/bindings/clock/st/st,clkgen-pll.txt
Documentation/devicetree/bindings/memory-controllers/synopsys.txt
Documentation/devicetree/bindings/serial/mtk-uart.txt
Documentation/devicetree/bindings/timer/mediatek,mtk-timer.txt
Documentation/devicetree/bindings/vendor-prefixes.txt
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/am335x-boneblack.dts
arch/arm/boot/dts/am335x-evm.dts
arch/arm/boot/dts/am335x-evmsk.dts
arch/arm/boot/dts/am335x-phycore-som.dtsi [new file with mode: 0644]
arch/arm/boot/dts/am335x-wega-rdk.dts [new file with mode: 0644]
arch/arm/boot/dts/am335x-wega.dtsi [new file with mode: 0644]
arch/arm/boot/dts/am33xx.dtsi
arch/arm/boot/dts/am4372.dtsi
arch/arm/boot/dts/am437x-gp-evm.dts
arch/arm/boot/dts/am437x-sk-evm.dts
arch/arm/boot/dts/am43x-epos-evm.dts
arch/arm/boot/dts/am57xx-beagle-x15.dts
arch/arm/boot/dts/armada-375.dtsi
arch/arm/boot/dts/armada-388-gp.dts
arch/arm/boot/dts/armada-38x.dtsi
arch/arm/boot/dts/armada-39x.dtsi
arch/arm/boot/dts/atlas7-evb.dts
arch/arm/boot/dts/atlas7.dtsi
arch/arm/boot/dts/axp152.dtsi [new file with mode: 0644]
arch/arm/boot/dts/bcm-cygnus-clock.dtsi
arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
arch/arm/boot/dts/bcm4708-netgear-r6250.dts
arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
arch/arm/boot/dts/bcm5301x.dtsi
arch/arm/boot/dts/bcm7445.dtsi
arch/arm/boot/dts/cros-ec-sbs.dtsi [new file with mode: 0644]
arch/arm/boot/dts/cx92755.dtsi
arch/arm/boot/dts/cx92755_equinox.dts
arch/arm/boot/dts/dm8148-evm.dts [new file with mode: 0644]
arch/arm/boot/dts/dm8148-t410.dts [new file with mode: 0644]
arch/arm/boot/dts/dm814x-clocks.dtsi [new file with mode: 0644]
arch/arm/boot/dts/dm814x.dtsi [new file with mode: 0644]
arch/arm/boot/dts/dm816x.dtsi
arch/arm/boot/dts/dra7-evm.dts
arch/arm/boot/dts/dra7.dtsi
arch/arm/boot/dts/dra72-evm.dts
arch/arm/boot/dts/dra74x.dtsi
arch/arm/boot/dts/emev2-kzm9d.dts
arch/arm/boot/dts/emev2.dtsi
arch/arm/boot/dts/exynos3250.dtsi
arch/arm/boot/dts/exynos4210-origen.dts
arch/arm/boot/dts/exynos4210-trats.dts
arch/arm/boot/dts/exynos4210-universal_c210.dts
arch/arm/boot/dts/exynos4210.dtsi
arch/arm/boot/dts/exynos4412-trats2.dts
arch/arm/boot/dts/exynos5250-pinctrl.dtsi
arch/arm/boot/dts/exynos5250.dtsi
arch/arm/boot/dts/exynos5410-smdk5410.dts
arch/arm/boot/dts/exynos5420-pinctrl.dtsi
arch/arm/boot/dts/exynos5420.dtsi
arch/arm/boot/dts/exynos5422-cpu-thermal.dtsi [new file with mode: 0644]
arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
arch/arm/boot/dts/kirkwood-lswvl.dts [new file with mode: 0644]
arch/arm/boot/dts/kirkwood-lswxl.dts [new file with mode: 0644]
arch/arm/boot/dts/lpc18xx.dtsi
arch/arm/boot/dts/lpc4337-ciaa.dts [new file with mode: 0644]
arch/arm/boot/dts/lpc4350-hitex-eval.dts
arch/arm/boot/dts/lpc4357-ea4357-devkit.dts
arch/arm/boot/dts/mt6580-evbp1.dts [new file with mode: 0644]
arch/arm/boot/dts/mt6580.dtsi [new file with mode: 0644]
arch/arm/boot/dts/mt8135-evbp1.dts
arch/arm/boot/dts/mt8135.dtsi
arch/arm/boot/dts/omap3-devkit8000-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/omap3-devkit8000-lcd43.dts [new file with mode: 0644]
arch/arm/boot/dts/omap3-devkit8000-lcd70.dts [new file with mode: 0644]
arch/arm/boot/dts/omap3-devkit8000.dts
arch/arm/boot/dts/omap3-lilly-a83x.dtsi
arch/arm/boot/dts/omap3-overo-base.dtsi
arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi
arch/arm/boot/dts/omap3-overo-palo35-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/omap3-overo-palo35.dts [new file with mode: 0644]
arch/arm/boot/dts/omap3-overo-storm-palo35.dts [new file with mode: 0644]
arch/arm/boot/dts/omap3-overo-storm-tobiduo.dts [new file with mode: 0644]
arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/omap3-overo-tobiduo.dts [new file with mode: 0644]
arch/arm/boot/dts/omap3-overo.dtsi
arch/arm/boot/dts/omap3-pandora-1ghz.dts
arch/arm/boot/dts/omap3-pandora-600mhz.dts
arch/arm/boot/dts/omap3-pandora-common.dtsi
arch/arm/boot/dts/omap5-uevm.dts
arch/arm/boot/dts/omap5.dtsi
arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts [new file with mode: 0644]
arch/arm/boot/dts/pxa27x.dtsi
arch/arm/boot/dts/pxa2xx.dtsi
arch/arm/boot/dts/pxa3xx.dtsi
arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts
arch/arm/boot/dts/qcom-apq8064-ifc6410.dts
arch/arm/boot/dts/qcom-apq8064.dtsi
arch/arm/boot/dts/qcom-msm8660.dtsi
arch/arm/boot/dts/qcom-msm8960-cdp.dts
arch/arm/boot/dts/qcom-msm8960.dtsi
arch/arm/boot/dts/qcom-msm8974.dtsi
arch/arm/boot/dts/r8a73a4.dtsi
arch/arm/boot/dts/r8a7740-armadillo800eva.dts
arch/arm/boot/dts/r8a7740.dtsi
arch/arm/boot/dts/r8a7779.dtsi
arch/arm/boot/dts/r8a7790-lager.dts
arch/arm/boot/dts/r8a7790.dtsi
arch/arm/boot/dts/r8a7791-koelsch.dts
arch/arm/boot/dts/r8a7791.dtsi
arch/arm/boot/dts/r8a7793-gose.dts [new file with mode: 0644]
arch/arm/boot/dts/r8a7793.dtsi [new file with mode: 0644]
arch/arm/boot/dts/r8a7794-silk.dts [new file with mode: 0644]
arch/arm/boot/dts/r8a7794.dtsi
arch/arm/boot/dts/rk3066a-bqcurie2.dts
arch/arm/boot/dts/rk3066a-marsboard.dts
arch/arm/boot/dts/rk3066a-rayeager.dts
arch/arm/boot/dts/rk3188-radxarock.dts
arch/arm/boot/dts/rk3288-evb.dtsi
arch/arm/boot/dts/rk3288-firefly.dtsi
arch/arm/boot/dts/rk3288-popmetal.dts
arch/arm/boot/dts/rk3288-r89.dts [new file with mode: 0644]
arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi [new file with mode: 0644]
arch/arm/boot/dts/rk3288-veyron-jerry.dts [new file with mode: 0644]
arch/arm/boot/dts/rk3288-veyron-pinky.dts [new file with mode: 0644]
arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi [new file with mode: 0644]
arch/arm/boot/dts/rk3288-veyron.dtsi [new file with mode: 0644]
arch/arm/boot/dts/rk3288.dtsi
arch/arm/boot/dts/sh73a0.dtsi
arch/arm/boot/dts/socfpga.dtsi
arch/arm/boot/dts/socfpga_arria10.dtsi
arch/arm/boot/dts/socfpga_arria10_socdk.dtsi
arch/arm/boot/dts/socfpga_arria5_socdk.dts
arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts [new file with mode: 0644]
arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
arch/arm/boot/dts/stih407-clock.dtsi
arch/arm/boot/dts/stih407-family.dtsi
arch/arm/boot/dts/stih407-pinctrl.dtsi
arch/arm/boot/dts/stih407.dtsi
arch/arm/boot/dts/stih410-clock.dtsi
arch/arm/boot/dts/stih410.dtsi
arch/arm/boot/dts/stih418-clock.dtsi
arch/arm/boot/dts/stih418.dtsi
arch/arm/boot/dts/stm32429i-eval.dts [new file with mode: 0644]
arch/arm/boot/dts/stm32f429-disco.dts
arch/arm/boot/dts/stm32f429.dtsi
arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts
arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts
arch/arm/boot/dts/sun4i-a10-cubieboard.dts
arch/arm/boot/dts/sun4i-a10-itead-iteaduino-plus.dts [new file with mode: 0644]
arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
arch/arm/boot/dts/sun4i-a10.dtsi
arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
arch/arm/boot/dts/sun5i-a13-hsg-h702.dts
arch/arm/boot/dts/sun5i-a13-olinuxino.dts
arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
arch/arm/boot/dts/sun5i.dtsi
arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts
arch/arm/boot/dts/sun6i-a31.dtsi
arch/arm/boot/dts/sun6i-a31s-cs908.dts
arch/arm/boot/dts/sun7i-a20-cubietruck.dts
arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts
arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
arch/arm/boot/dts/sun7i-a20.dtsi
arch/arm/boot/dts/sun8i-a23-a33.dtsi
arch/arm/boot/dts/sun8i-a23-ippo-q8h-v5.dts
arch/arm/boot/dts/sun8i-a23.dtsi
arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts
arch/arm/boot/dts/sun8i-a33-ippo-q8h-v1.2.dts [new file with mode: 0644]
arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts
arch/arm/boot/dts/sun8i-a33.dtsi
arch/arm/boot/dts/sunxi-common-regulators.dtsi
arch/arm/boot/dts/uniphier-ph1-ld4-ref.dts
arch/arm/boot/dts/uniphier-ph1-ld4.dtsi
arch/arm/boot/dts/uniphier-ph1-ld6b-ref.dts [new file with mode: 0644]
arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi [new file with mode: 0644]
arch/arm/boot/dts/uniphier-ph1-pro4-ref.dts
arch/arm/boot/dts/uniphier-ph1-pro4.dtsi
arch/arm/boot/dts/uniphier-ph1-pro5.dtsi [new file with mode: 0644]
arch/arm/boot/dts/uniphier-ph1-sld3-ref.dts
arch/arm/boot/dts/uniphier-ph1-sld3.dtsi
arch/arm/boot/dts/uniphier-ph1-sld8-ref.dts
arch/arm/boot/dts/uniphier-ph1-sld8.dtsi
arch/arm/boot/dts/uniphier-pinctrl.dtsi [new file with mode: 0644]
arch/arm/boot/dts/uniphier-proxstream2.dtsi [new file with mode: 0644]
arch/arm/boot/dts/uniphier-ref-daughter.dtsi [new file with mode: 0644]
arch/arm/boot/dts/zynq-7000.dtsi
arch/arm/boot/dts/zynq-zc702.dts
arch/arm/configs/omap2plus_defconfig
arch/arm/mach-omap2/pdata-quirks.c
include/dt-bindings/clock/r8a7790-clock.h
include/dt-bindings/clock/r8a7791-clock.h
include/dt-bindings/clock/r8a7793-clock.h [new file with mode: 0644]
include/dt-bindings/pinctrl/am43xx.h
include/dt-bindings/pinctrl/dra.h

index 4f40ff3fee4b102aa6b4ec460a2b7e0e4bc1a09f..5171ad8f48ff43445c84735a35e4aa980f21e526 100644 (file)
@@ -20,6 +20,8 @@ And in addition, the compatible shall be extended with the specific
 board. Currently known boards are:
 
 "buffalo,lschlv2"
+"buffalo,lswvl"
+"buffalo,lswxl"
 "buffalo,lsxhl"
 "buffalo,lsxl"
 "dlink,dns-320"
index dd7550a29db668f56b21036bd6aac4f7c5d275c7..2daa424a13a435ce7e6dd125cb4677801d3dde8f 100644 (file)
@@ -5,6 +5,7 @@ Boards with a MediaTek mt65xx/mt81xx SoC shall have the following property:
 Required root node property:
 
 compatible: Must contain one of
+   "mediatek,mt6580"
    "mediatek,mt6589"
    "mediatek,mt6592"
    "mediatek,mt8127"
@@ -14,6 +15,9 @@ compatible: Must contain one of
 
 Supported boards:
 
+- Evaluation board for MT6580:
+    Required root node properties:
+      - compatible = "mediatek,mt6580-evbp1", "mediatek,mt6580";
 - bq Aquaris5 smart phone:
     Required root node properties:
       - compatible = "mundoreader,bq-aquaris5", "mediatek,mt6589";
index 4f5a5352ccd893a162b932040577a74cb226881b..3c9c3a7f3d25e5cfbf2bff043cbf9724e9147c4c 100644 (file)
@@ -11,6 +11,7 @@ Required properties:
        "mediatek,mt6592-sysirq"
        "mediatek,mt6589-sysirq"
        "mediatek,mt6582-sysirq"
+       "mediatek,mt6580-sysirq"
        "mediatek,mt6577-sysirq"
 - interrupt-controller : Identifies the node as an interrupt controller
 - #interrupt-cells : Use the same format as specified by GIC in
index 4f6a82cef1d1a4f74a22304fb62c7abf48897ae1..9f4e5136e5681b7068fac0aacdb907e2994b23e3 100644 (file)
@@ -135,6 +135,9 @@ Boards:
 - AM335X OrionLXm : Substation Automation Platform
   compatible = "novatech,am335x-lxm", "ti,am33xx"
 
+- AM335X phyBOARD-WEGA: Single Board Computer dev kit
+  compatible = "phytec,am335x-wega", "phytec,am335x-phycore-som", "ti,am33xx"
+
 - OMAP5 EVM : Evaluation Module
   compatible = "ti,omap5-evm", "ti,omap5"
 
index 60d4a1e0a9b589011b956ad674bb7955dbf2f19b..c7769400ef854f98f27acc60ba817df26db528b3 100644 (file)
@@ -26,3 +26,23 @@ Rockchip platforms device tree bindings
 - ChipSPARK PopMetal-RK3288 board:
     Required root node properties:
       - compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";
+
+- Netxeon R89 board:
+    Required root node properties:
+      - compatible = "netxeon,r89", "rockchip,rk3288";
+
+- Google Jerry (Hisense Chromebook C11 and more):
+    Required root node properties:
+      - compatible = "google,veyron-jerry-rev7", "google,veyron-jerry-rev6",
+                    "google,veyron-jerry-rev5", "google,veyron-jerry-rev4",
+                    "google,veyron-jerry-rev3", "google,veyron-jerry",
+                    "google,veyron", "rockchip,rk3288";
+
+- Google Pinky (dev-board):
+    Required root node properties:
+      - compatible = "google,veyron-pinky-rev2", "google,veyron-pinky",
+                    "google,veyron", "rockchip,rk3288";
+
+- Rockchip R88 board:
+    Required root node properties:
+      - compatible = "rockchip,r88", "rockchip,rk3368";
index efb51cf0c845a6d5992b95b5f9ea124cf9bbd64a..d8b168ebd5f16d9ac351fe2ea856b28dc2c45437 100644 (file)
@@ -21,8 +21,8 @@ Required properties:
        "st,stih416-plls-c32-ddr",      "st,clkgen-plls-c32"
        "st,stih407-plls-c32-a0",       "st,clkgen-plls-c32"
        "st,stih407-plls-c32-a9",       "st,clkgen-plls-c32"
-       "st,stih407-plls-c32-c0_0",     "st,clkgen-plls-c32"
-       "st,stih407-plls-c32-c0_1",     "st,clkgen-plls-c32"
+       "sst,plls-c32-cx_0",            "st,clkgen-plls-c32"
+       "sst,plls-c32-cx_1",            "st,clkgen-plls-c32"
 
        "st,stih415-gpu-pll-c32",       "st,clkgengpu-pll-c32"
        "st,stih416-gpu-pll-c32",       "st,clkgengpu-pll-c32"
index f9c6454146b6bee1a33514c5c01e6955d04b8499..a43d26d41e04b7f87586b6b825c4307e6ff9f3ba 100644 (file)
@@ -1,5 +1,9 @@
 Binding for Synopsys IntelliDDR Multi Protocol Memory Controller
 
+This controller has an optional ECC support in half-bus width (16-bit)
+configuration. The ECC controller corrects one bit error and detects
+two bit errors.
+
 Required properties:
  - compatible: Should be 'xlnx,zynq-ddrc-a05'
  - reg: Base address and size of the controllers memory area
index 8d63f1da07aa041113a3a22e7b2c8b2b997fff99..a875997f206277e6e0bdee2c14c6b250be23aab2 100644 (file)
@@ -7,8 +7,9 @@ Required properties:
   * "mediatek,mt8173-uart" for MT8173 compatible UARTS
   * "mediatek,mt6589-uart" for MT6589 compatible UARTS
   * "mediatek,mt6582-uart" for MT6582 compatible UARTS
+  * "mediatek,mt6580-uart" for MT6580 compatible UARTS
   * "mediatek,mt6577-uart" for all compatible UARTS (MT8173, MT6589, MT6582, 
-       MT6577)
+       MT6580, MT6577)
 
 - reg: The base address of the UART register bank.
 
index 7c4408ff4b8326478273251f34694c4f3cdf663b..53a3029b7589c6b3d6f79c55429b228e4f17d8a0 100644 (file)
@@ -2,7 +2,11 @@ Mediatek MT6577, MT6572 and MT6589 Timers
 ---------------------------------------
 
 Required properties:
-- compatible: Should be "mediatek,mt6577-timer"
+- compatible should contain:
+       * "mediatek,mt6589-timer" for MT6589 compatible timers
+       * "mediatek,mt6580-timer" for MT6580 compatible timers
+       * "mediatek,mt6577-timer" for all compatible timers (MT6589, MT6580,
+               MT6577)
 - reg: Should contain location and length for timers register.
 - clocks: Clocks driving the timer hardware. This list should include two
        clocks. The order is system clock and as second clock the RTC clock.
index d444757c4d9ec3e56c261e0adf330de187251466..d3fbd1f30eb43b8b06ef87b2fabfad90f1b6591c 100644 (file)
@@ -46,6 +46,7 @@ chipone               ChipOne
 chipspark      ChipSPARK
 chrp   Common Hardware Reference Platform
 chunghwa       Chunghwa Picture Tubes Ltd.
+ciaa   Computadora Industrial Abierta Argentina
 cirrus Cirrus Logic, Inc.
 cloudengines   Cloud Engines, Inc.
 cnm    Chips&Media, Inc.
@@ -135,6 +136,7 @@ mitsubishi  Mitsubishi Electric Corporation
 mosaixtech     Mosaix Technologies, Inc.
 moxa   Moxa
 mpl    MPL AG
+msi    Micro-Star International Co. Ltd.
 mti    Imagination Technologies Ltd. (formerly MIPS Technologies Inc.)
 mundoreader    Mundo Reader S.L.
 murata Murata Manufacturing Co., Ltd.
@@ -143,6 +145,7 @@ national    National Semiconductor
 neonode                Neonode Inc.
 netgear        NETGEAR
 netlogic       Broadcom Corporation (formerly NetLogic Microsystems)
+netxeon                Shenzhen Netxeon Technology CO., LTD
 newhaven       Newhaven Display International
 nintendo       Nintendo
 nokia  Nokia
index 6e8d95e1637db1f91a598736cecf948d8d2f99f7..620aeb06c7755e6892c20cd7fc7fc2f83e23eb84 100644 (file)
@@ -177,6 +177,8 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
        kirkwood-km_kirkwood.dtb \
        kirkwood-laplug.dtb \
        kirkwood-lschlv2.dtb \
+       kirkwood-lswvl.dtb \
+       kirkwood-lswxl.dtb \
        kirkwood-lsxhl.dtb \
        kirkwood-mplcec4.dtb \
        kirkwood-mv88f6281gtw-ge.dtb \
@@ -212,6 +214,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
        kirkwood-ts419-6281.dtb \
        kirkwood-ts419-6282.dtb
 dtb-$(CONFIG_ARCH_LPC18XX) += \
+       lpc4337-ciaa.dtb \
        lpc4350-hitex-eval.dtb \
        lpc4357-ea4357-devkit.dtb
 dtb-$(CONFIG_ARCH_LPC32XX) += \
@@ -391,6 +394,8 @@ dtb-$(CONFIG_ARCH_OMAP3) += \
        omap3-cm-t3530.dtb \
        omap3-cm-t3730.dtb \
        omap3-devkit8000.dtb \
+       omap3-devkit8000-lcd43.dtb \
+       omap3-devkit8000-lcd70.dtb \
        omap3-evm.dtb \
        omap3-evm-37xx.dtb \
        omap3-gta04a3.dtb \
@@ -410,15 +415,19 @@ dtb-$(CONFIG_ARCH_OMAP3) += \
        omap3-overo-alto35.dtb \
        omap3-overo-chestnut43.dtb \
        omap3-overo-gallop43.dtb \
+       omap3-overo-palo35.dtb \
        omap3-overo-palo43.dtb \
        omap3-overo-storm-alto35.dtb \
        omap3-overo-storm-chestnut43.dtb \
        omap3-overo-storm-gallop43.dtb \
+       omap3-overo-storm-palo35.dtb \
        omap3-overo-storm-palo43.dtb \
        omap3-overo-storm-summit.dtb \
        omap3-overo-storm-tobi.dtb \
+       omap3-overo-storm-tobiduo.dtb \
        omap3-overo-summit.dtb \
        omap3-overo-tobi.dtb \
+       omap3-overo-tobiduo.dtb \
        omap3-pandora-600mhz.dtb \
        omap3-pandora-1ghz.dtb \
        omap3-sbc-t3517.dtb \
@@ -427,6 +436,8 @@ dtb-$(CONFIG_ARCH_OMAP3) += \
        omap3-thunder.dtb \
        omap3-zoom3.dtb
 dtb-$(CONFIG_SOC_TI81XX) += \
+       dm8148-evm.dtb \
+       dm8148-t410.dtb \
        dm8168-evm.dtb
 dtb-$(CONFIG_SOC_AM33XX) += \
        am335x-baltos-ir5221.dtb \
@@ -439,7 +450,8 @@ dtb-$(CONFIG_SOC_AM33XX) += \
        am335x-nano.dtb \
        am335x-pepper.dtb \
        am335x-lxm.dtb \
-       am335x-chiliboard.dtb
+       am335x-chiliboard.dtb \
+       am335x-wega-rdk.dtb
 dtb-$(CONFIG_ARCH_OMAP4) += \
        omap4-duovero-parlor.dtb \
        omap4-panda.dtb \
@@ -465,6 +477,7 @@ dtb-$(CONFIG_SOC_DRA7XX) += \
 dtb-$(CONFIG_ARCH_ORION5X) += \
        orion5x-lacie-d2-network.dtb \
        orion5x-lacie-ethernet-disk-mini-v2.dtb \
+       orion5x-linkstation-lswtgl.dtb \
        orion5x-maxtor-shared-storage-2.dtb \
        orion5x-rd88f5182-nas.dtb
 dtb-$(CONFIG_ARCH_PRIMA2) += \
@@ -489,7 +502,10 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \
        rk3288-evb-act8846.dtb \
        rk3288-evb-rk808.dtb \
        rk3288-firefly-beta.dtb \
-       rk3288-firefly.dtb
+       rk3288-firefly.dtb \
+       rk3288-r89.dtb \
+       rk3288-veyron-jerry.dtb \
+       rk3288-veyron-pinky.dtb
 dtb-$(CONFIG_ARCH_S3C24XX) += \
        s3c2416-smdk2416.dtb
 dtb-$(CONFIG_ARCH_S3C64XX) += \
@@ -517,12 +533,15 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \
        r8a7790-lager.dtb \
        r8a7791-henninger.dtb \
        r8a7791-koelsch.dtb \
+       r8a7793-gose.dtb \
        r8a7794-alt.dtb \
+       r8a7794-silk.dtb \
        sh73a0-kzm9g.dtb
 dtb-$(CONFIG_ARCH_SOCFPGA) += \
        socfpga_arria5_socdk.dtb \
        socfpga_arria10_socdk_sdmmc.dtb \
        socfpga_cyclone5_socdk.dtb \
+       socfpga_cyclone5_de0_sockit.dtb \
        socfpga_cyclone5_sockit.dtb \
        socfpga_cyclone5_socrates.dtb \
        socfpga_vt.dtb
@@ -545,7 +564,9 @@ dtb-$(CONFIG_ARCH_STI) += \
        stih416-b2020.dtb \
        stih416-b2020e.dtb \
        stih418-b2199.dtb
-dtb-$(CONFIG_ARCH_STM32)+= stm32f429-disco.dtb
+dtb-$(CONFIG_ARCH_STM32)+= \
+       stm32f429-disco.dtb \
+       stm32429i-eval.dtb
 dtb-$(CONFIG_MACH_SUN4I) += \
        sun4i-a10-a1000.dtb \
        sun4i-a10-ba10-tvbox.dtb \
@@ -555,6 +576,7 @@ dtb-$(CONFIG_MACH_SUN4I) += \
        sun4i-a10-hackberry.dtb \
        sun4i-a10-hyundai-a7hd.dtb \
        sun4i-a10-inet97fv2.dtb \
+       sun4i-a10-itead-iteaduino-plus.dts \
        sun4i-a10-jesurun-q5.dtb \
        sun4i-a10-marsboard.dtb \
        sun4i-a10-mini-xplus.dtb \
@@ -602,6 +624,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
        sun8i-a23-ippo-q8h-v1.2.dtb \
        sun8i-a33-et-q8-v1.6.dtb \
        sun8i-a33-ga10h-v1.1.dtb \
+       sun8i-a33-ippo-q8h-v1.2.dtb \
        sun8i-a33-sinlinx-sina33.dtb
 dtb-$(CONFIG_MACH_SUN9I) += \
        sun9i-a80-optimus.dtb \
@@ -643,10 +666,11 @@ dtb-$(CONFIG_ARCH_U8500) += \
        ste-ccu8540.dtb \
        ste-ccu9540.dtb
 dtb-$(CONFIG_ARCH_UNIPHIER) += \
-       uniphier-ph1-sld3-ref.dtb \
        uniphier-ph1-ld4-ref.dtb \
+       uniphier-ph1-ld6b-ref.dtb \
        uniphier-ph1-pro4-ref.dtb \
-       uniphier-ph1-sld8-ref.dtb
+       uniphier-ph1-sld3-ref.dtb \
+       uniphier-ph1-sld8-ref.dtb 
 dtb-$(CONFIG_ARCH_VERSATILE) += \
        versatile-ab.dtb \
        versatile-pb.dtb
@@ -706,6 +730,7 @@ dtb-$(CONFIG_MACH_DOVE) += \
        dove-dove-db.dtb \
        dove-sbc-a510.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += \
+       mt6580-evbp1.dtb \
        mt6589-aquaris5.dtb \
        mt6592-evb.dtb \
        mt8127-moose.dtb \
index 5c42d259fa68fbf29c98439306badd1d44987ee0..eadbba32386d80a42300266f0dd423d610c2dd51 100644 (file)
 
 &lcdc {
        status = "okay";
+       port {
+               lcdc_0: endpoint@0 {
+                       remote-endpoint = <&hdmi_0>;
+               };
+       };
 };
 
-/ {
-       hdmi {
-               compatible = "ti,tilcdc,slave";
-               i2c = <&i2c0>;
+&i2c0 {
+       tda19988 {
+               compatible = "nxp,tda998x";
+               reg = <0x70>;
                pinctrl-names = "default", "off";
                pinctrl-0 = <&nxp_hdmi_bonelt_pins>;
                pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>;
-               status = "okay";
+
+               port {
+                       hdmi_0: endpoint@0 {
+                               remote-endpoint = <&lcdc_0>;
+                       };
+               };
        };
 };
 
index 765be2766eb0d1d22402c5f0cec2f74cc971c1ab..1942a5c8132d74a3df239f99104ffd762a9b4f20 100644 (file)
        };
 
        sound {
-               compatible = "ti,da830-evm-audio";
-               ti,model = "AM335x-EVM";
-               ti,audio-codec = <&tlv320aic3106>;
-               ti,mcasp-controller = <&mcasp1>;
-               ti,codec-clock-rate = <12000000>;
-               ti,audio-routing =
-                       "Headphone Jack",       "HPLOUT",
-                       "Headphone Jack",       "HPROUT",
-                       "LINE1L",               "Line In",
-                       "LINE1R",               "Line In";
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "AM335x-EVM";
+               simple-audio-card,widgets =
+                       "Headphone", "Headphone Jack",
+                       "Line", "Line In";
+               simple-audio-card,routing =
+                       "Headphone Jack",       "HPLOUT",
+                       "Headphone Jack",       "HPROUT",
+                       "LINE1L",               "Line In",
+                       "LINE1R",               "Line In";
+               simple-audio-card,format = "dsp_b";
+               simple-audio-card,bitclock-master = <&sound_master>;
+               simple-audio-card,frame-master = <&sound_master>;
+               simple-audio-card,bitclock-inversion;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&mcasp1>;
+               };
+
+               sound_master: simple-audio-card,codec {
+                       sound-dai = <&tlv320aic3106>;
+                       system-clock-frequency = <12000000>;
+               };
        };
 };
 
                >;
        };
 
-       am335x_evm_audio_pins: am335x_evm_audio_pins {
+       mcasp1_pins: mcasp1_pins {
                pinctrl-single,pins = <
                        0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */
                        0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */
                >;
        };
 
+       mcasp1_pins_sleep: mcasp1_pins_sleep {
+               pinctrl-single,pins = <
+                       0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                       0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                       0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                       0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+               >;
+       };
+
        dcan1_pins_default: dcan1_pins_default {
                pinctrl-single,pins = <
                        0x168 (PIN_OUTPUT | MUX_MODE2) /* uart0_ctsn.d_can1_tx */
        };
 
        tlv320aic3106: tlv320aic3106@1b {
+               #sound-dai-cells = <0>;
                compatible = "ti,tlv320aic3106";
                reg = <0x1b>;
                status = "okay";
 #include "tps65910.dtsi"
 
 &mcasp1 {
-               pinctrl-names = "default";
-               pinctrl-0 = <&am335x_evm_audio_pins>;
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&mcasp1_pins>;
+       pinctrl-1 = <&mcasp1_pins_sleep>;
 
-               status = "okay";
+       status = "okay";
 
-               op-mode = <0>;          /* MCASP_IIS_MODE */
-               tdm-slots = <2>;
-               /* 4 serializers */
-               serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
-                       0 0 1 2
-               >;
-               tx-num-evt = <32>;
-               rx-num-evt = <32>;
+       op-mode = <0>;          /* MCASP_IIS_MODE */
+       tdm-slots = <2>;
+       /* 4 serializers */
+       serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
+               0 0 1 2
+       >;
+       tx-num-evt = <32>;
+       rx-num-evt = <32>;
 };
 
 &tps {
index 156d05efcb70bf5af737cf67892691d41b84fb2b..315bb02c99207ffe1934bb4a81de32857b3ca560 100644 (file)
        };
 
        sound {
-               compatible = "ti,da830-evm-audio";
-               ti,model = "AM335x-EVMSK";
-               ti,audio-codec = <&tlv320aic3106>;
-               ti,mcasp-controller = <&mcasp1>;
-               ti,codec-clock-rate = <24000000>;
-               ti,audio-routing =
-                       "Headphone Jack",       "HPLOUT",
-                       "Headphone Jack",       "HPROUT";
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "AM335x-EVMSK";
+               simple-audio-card,widgets =
+                       "Headphone", "Headphone Jack";
+               simple-audio-card,routing =
+                       "Headphone Jack",       "HPLOUT",
+                       "Headphone Jack",       "HPROUT";
+               simple-audio-card,format = "dsp_b";
+               simple-audio-card,bitclock-master = <&sound_master>;
+               simple-audio-card,frame-master = <&sound_master>;
+               simple-audio-card,bitclock-inversion;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&mcasp1>;
+               };
+
+               sound_master: simple-audio-card,codec {
+                       sound-dai = <&tlv320aic3106>;
+                       system-clock-frequency = <24000000>;
+               };
        };
 
        panel {
                >;
        };
 
+       mcasp1_pins_sleep: mcasp1_pins_sleep {
+               pinctrl-single,pins = <
+                       0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                       0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                       0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                       0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+               >;
+       };
+
        mmc2_pins: pinmux_mmc2_pins {
                pinctrl-single,pins = <
                        0x74 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_31 */
        };
 
        tlv320aic3106: tlv320aic3106@1b {
+               #sound-dai-cells = <0>;
                compatible = "ti,tlv320aic3106";
                reg = <0x1b>;
                status = "okay";
 };
 
 &mcasp1 {
-               pinctrl-names = "default";
-               pinctrl-0 = <&mcasp1_pins>;
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&mcasp1_pins>;
+       pinctrl-1 = <&mcasp1_pins_sleep>;
 
-               status = "okay";
+       status = "okay";
 
-               op-mode = <0>;          /* MCASP_IIS_MODE */
-               tdm-slots = <2>;
-               /* 4 serializers */
-               serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
-                       0 0 1 2
-               >;
-               tx-num-evt = <32>;
-               rx-num-evt = <32>;
+       op-mode = <0>;          /* MCASP_IIS_MODE */
+       tdm-slots = <2>;
+       /* 4 serializers */
+       serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
+               0 0 1 2
+       >;
+       tx-num-evt = <32>;
+       rx-num-evt = <32>;
 };
 
 &tscadc {
diff --git a/arch/arm/boot/dts/am335x-phycore-som.dtsi b/arch/arm/boot/dts/am335x-phycore-som.dtsi
new file mode 100644 (file)
index 0000000..4d28fc3
--- /dev/null
@@ -0,0 +1,368 @@
+/*
+ * Copyright (C) 2015 Phytec Messtechnik GmbH
+ * Author: Teresa Remmet <t.remmet@phytec.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 "am33xx.dtsi"
+
+/ {
+       model = "Phytec AM335x phyCORE";
+       compatible = "phytec,am335x-phycore-som", "ti,am33xx";
+
+       aliases {
+               rtc0 = &i2c_rtc;
+               rtc1 = &rtc;
+       };
+
+       cpus {
+               cpu@0 {
+                       cpu0-supply = <&vdd1_reg>;
+               };
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x10000000>; /* 256 MB */
+       };
+
+       vbat: fixedregulator@0 {
+               compatible = "regulator-fixed";
+       };
+};
+
+/* Crypto Module */
+&aes {
+       status = "okay";
+};
+
+&sham {
+       status = "okay";
+};
+
+/* Ethernet */
+&am33xx_pinmux {
+       ethernet0_pins: pinmux_ethernet0 {
+               pinctrl-single,pins = <
+                       0x10c (PIN_INPUT_PULLDOWN | MUX_MODE1)  /* mii1_crs.rmii1_crs_dv */
+                       0x110 (PIN_INPUT_PULLDOWN | MUX_MODE1)  /* mii1_rxerr.rmii1_rxerr */
+                       0x114 (PIN_OUTPUT | MUX_MODE1)          /* mii1_txen.rmii1_txen */
+                       0x124 (PIN_OUTPUT | MUX_MODE1)          /* mii1_txd1.rmii1_txd1 */
+                       0x128 (PIN_OUTPUT | MUX_MODE1)          /* mii1_txd0.rmii1_txd0 */
+                       0x13c (PIN_INPUT_PULLDOWN | MUX_MODE1)  /* mii1_rxd1.rmii1_rxd1 */
+                       0x140 (PIN_INPUT_PULLDOWN | MUX_MODE1)  /* mii1_rxd0.rmii1_rxd0 */
+                       0x144 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* rmii1_refclk.rmii1_refclk */
+               >;
+       };
+
+       mdio_pins: pinmux_mdio {
+               pinctrl-single,pins = <
+                       /* MDIO */
+                       0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)    /* mdio_data.mdio_data */
+                       0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0)                   /* mdio_clk.mdio_clk */
+               >;
+       };
+};
+
+&cpsw_emac0 {
+       phy_id = <&davinci_mdio>, <0>;
+       phy-mode = "rmii";
+       dual_emac_res_vlan = <1>;
+};
+
+&davinci_mdio {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mdio_pins>;
+       status = "okay";
+};
+
+&mac {
+       slaves = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&ethernet0_pins>;
+       status = "okay";
+};
+
+&phy_sel {
+       rmii-clock-ext;
+};
+
+/* I2C Busses */
+&am33xx_pinmux {
+       i2c0_pins: pinmux_i2c0 {
+               pinctrl-single,pins = <
+                       0x188 (PIN_INPUT | MUX_MODE0)   /* i2c0_sda.i2c0_sda */
+                       0x18c (PIN_INPUT | MUX_MODE0)   /* i2c0_scl.i2c0_scl */
+               >;
+       };
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins>;
+       clock-frequency = <400000>;
+       status = "okay";
+
+       tps: pmic@2d {
+               reg = <0x2d>;
+       };
+
+       i2c_eeprom: eeprom@52 {
+               compatible = "atmel,24c32";
+               pagesize = <32>;
+               reg = <0x52>;
+               status = "disabled";
+       };
+
+       i2c_rtc: rtc@68 {
+               compatible = "rv4162";
+               reg = <0x68>;
+               status = "disabled";
+       };
+};
+
+/* NAND memory */
+&am33xx_pinmux {
+               nandflash_pins: pinmux_nandflash {
+                       pinctrl-single,pins = <
+                       0x0 (PIN_INPUT_PULLUP | MUX_MODE0)      /* gpmc_ad0.gpmc_ad0 */
+                       0x4 (PIN_INPUT_PULLUP | MUX_MODE0)      /* gpmc_ad1.gpmc_ad1 */
+                       0x8 (PIN_INPUT_PULLUP | MUX_MODE0)      /* gpmc_ad2.gpmc_ad2 */
+                       0xc (PIN_INPUT_PULLUP | MUX_MODE0)      /* gpmc_ad3.gpmc_ad3 */
+                       0x10 (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_ad4.gpmc_ad4 */
+                       0x14 (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_ad5.gpmc_ad5 */
+                       0x18 (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_ad6.gpmc_ad6 */
+                       0x1c (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_ad7.gpmc_ad7 */
+                       0x70 (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_wait0.gpmc_wait0 */
+                       0x7c (PIN_OUTPUT | MUX_MODE0)           /* gpmc_csn0.gpmc_csn0 */
+                       0x90 (PIN_OUTPUT | MUX_MODE0)           /* gpmc_advn_ale.gpmc_advn_ale */
+                       0x94 (PIN_OUTPUT | MUX_MODE0)           /* gpmc_oen_ren.gpmc_oen_ren */
+                       0x98 (PIN_OUTPUT | MUX_MODE0)           /* gpmc_wen.gpmc_wen */
+                       0x9c (PIN_OUTPUT | MUX_MODE0)           /* gpmc_be0n_cle.gpmc_be0n_cle */
+               >;
+       };
+};
+
+&elm {
+       status = "okay";
+};
+
+&gpmc {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&nandflash_pins>;
+       ranges = <0 0 0x08000000 0x1000000>;   /* CS0: NAND */
+       nandflash: nand@0,0 {
+               reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
+               nand-bus-width = <8>;
+               ti,nand-ecc-opt = "bch8";
+               gpmc,device-nand = "true";
+               gpmc,device-width = <1>;
+               gpmc,sync-clk-ps = <0>;
+               gpmc,cs-on-ns = <0>;
+               gpmc,cs-rd-off-ns = <30>;
+               gpmc,cs-wr-off-ns = <30>;
+               gpmc,adv-on-ns = <0>;
+               gpmc,adv-rd-off-ns = <30>;
+               gpmc,adv-wr-off-ns = <30>;
+               gpmc,we-on-ns = <0>;
+               gpmc,we-off-ns = <20>;
+               gpmc,oe-on-ns = <10>;
+               gpmc,oe-off-ns = <30>;
+               gpmc,access-ns = <30>;
+               gpmc,rd-cycle-ns = <30>;
+               gpmc,wr-cycle-ns = <30>;
+               gpmc,wait-on-read = "true";
+               gpmc,wait-on-write = "true";
+               gpmc,bus-turnaround-ns = <0>;
+               gpmc,cycle2cycle-delay-ns = <50>;
+               gpmc,cycle2cycle-diffcsen;
+               gpmc,clk-activation-ns = <0>;
+               gpmc,wait-monitoring-ns = <0>;
+               gpmc,wr-access-ns = <30>;
+               gpmc,wr-data-mux-bus-ns = <0>;
+
+               elm_id = <&elm>;
+
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partition@0 {
+                       label = "xload";
+                       reg = <0x0 0x20000>;
+               };
+               partition@1 {
+                       label = "xload_backup1";
+                       reg = <0x20000 0x20000>;
+               };
+               partition@2 {
+                       label = "xload_backup2";
+                       reg = <0x40000 0x20000>;
+               };
+               partition@3 {
+                       label = "xload_backup3";
+                       reg = <0x60000 0x20000>;
+               };
+               partition@4 {
+                       label = "barebox";
+                       reg = <0x80000 0x80000>;
+               };
+               partition@5 {
+                       label = "bareboxenv";
+                       reg = <0x100000 0x40000>;
+               };
+               partition@6 {
+                       label = "oftree";
+                       reg = <0x140000 0x40000>;
+               };
+               partition@7 {
+                       label = "kernel";
+                       reg = <0x180000 0x800000>;
+               };
+               partition@8 {
+                       label = "root";
+                       reg = <0x980000 0x0>;
+               };
+       };
+};
+
+/* Power */
+#include "tps65910.dtsi"
+
+&tps {
+       vcc1-supply = <&vbat>;
+       vcc2-supply = <&vbat>;
+       vcc3-supply = <&vbat>;
+       vcc4-supply = <&vbat>;
+       vcc5-supply = <&vbat>;
+       vcc6-supply = <&vbat>;
+       vcc7-supply = <&vbat>;
+       vccio-supply = <&vbat>;
+
+       regulators {
+               vrtc_reg: regulator@0 {
+                       regulator-always-on;
+               };
+
+               vio_reg: regulator@1 {
+                       regulator-always-on;
+               };
+
+               vdd1_reg: regulator@2 {
+                       /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
+                       regulator-name = "vdd_mpu";
+                       regulator-min-microvolt = <912500>;
+                       regulator-max-microvolt = <1312500>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+
+               vdd2_reg: regulator@3 {
+                       /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
+                       regulator-name = "vdd_core";
+                       regulator-min-microvolt = <912500>;
+                       regulator-max-microvolt = <1150000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+
+               vdd3_reg: regulator@4 {
+                       regulator-always-on;
+               };
+
+               vdig1_reg: regulator@5 {
+                       regulator-name = "vdig1_1p8v";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               vdig2_reg: regulator@6 {
+                       regulator-always-on;
+               };
+
+               vpll_reg: regulator@7 {
+                       regulator-always-on;
+               };
+
+               vdac_reg: regulator@8 {
+                       regulator-always-on;
+               };
+
+               vaux1_reg: regulator@9 {
+                       regulator-always-on;
+               };
+
+               vaux2_reg: regulator@10 {
+                       regulator-always-on;
+               };
+
+               vaux33_reg: regulator@11 {
+                       regulator-always-on;
+               };
+
+               vmmc_reg: regulator@12 {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+       };
+};
+
+&vbat {
+       regulator-name = "vbat";
+       regulator-min-microvolt = <5000000>;
+       regulator-max-microvolt = <5000000>;
+       regulator-boot-on;
+};
+
+/* SPI Busses */
+&am33xx_pinmux {
+       spi0_pins: pinmux_spi0 {
+               pinctrl-single,pins = <
+                       0x150 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* spi0_clk.spi0_clk */
+                       0x154 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* spi0_d0.spi0_d0 */
+                       0x158 (PIN_INPUT_PULLUP | MUX_MODE0)    /* spi0_d1.spi0_d1 */
+                       0x15c (PIN_INPUT_PULLUP | MUX_MODE0)    /* spi0_cs0.spi0_cs0 */
+               >;
+       };
+};
+
+&spi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0_pins>;
+       status = "okay";
+
+       serial_flash: m25p80@0 {
+               compatible = "m25p80";
+               spi-max-frequency = <48000000>;
+               reg = <0x0>;
+               m25p,fast-read;
+               status = "disabled";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partition@0 {
+                       label = "xload";
+                       reg = <0x0 0x20000>;
+               };
+               partition@1 {
+                       label = "barebox";
+                       reg = <0x20000 0x80000>;
+               };
+               partition@2 {
+                       label = "bareboxenv";
+                       reg = <0xa0000 0x20000>;
+               };
+               partition@3 {
+                       label = "oftree";
+                       reg = <0xc0000 0x20000>;
+               };
+               partition@4 {
+                       label = "kernel";
+                       reg = <0xe0000 0x0>;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/am335x-wega-rdk.dts b/arch/arm/boot/dts/am335x-wega-rdk.dts
new file mode 100644 (file)
index 0000000..6431b7d
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2015 Phytec Messtechnik GmbH
+ * Author: Teresa Remmet <t.remmet@phytec.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 "am335x-phycore-som.dtsi"
+#include "am335x-wega.dtsi"
+
+/* SoM */
+&i2c_eeprom {
+       status = "okay";
+};
+
+&i2c_rtc {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/am335x-wega.dtsi b/arch/arm/boot/dts/am335x-wega.dtsi
new file mode 100644 (file)
index 0000000..5e541bd
--- /dev/null
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2015 Phytec Messtechnik GmbH
+ * Author: Teresa Remmet <t.remmet@phytec.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.
+ */
+
+/ {
+       model = "Phytec AM335x phyBOARD-WEGA";
+       compatible = "phytec,am335x-wega", "phytec,am335x-phycore-som", "ti,am33xx";
+
+};
+
+/* CAN Busses */
+&am33xx_pinmux {
+       dcan1_pins: pinmux_dcan1 {
+               pinctrl-single,pins = <
+                       0x168 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* uart0_ctsn.d_can1_tx */
+                       0x16c (PIN_INPUT_PULLUP | MUX_MODE2) /* uart0_rtsn.d_can1_rx */
+               >;
+       };
+};
+
+&dcan1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&dcan1_pins>;
+       status = "okay";
+};
+
+/* Ethernet */
+&am33xx_pinmux {
+       ethernet1_pins: pinmux_ethernet1 {
+               pinctrl-single,pins = <
+                       0x40 (PIN_OUTPUT | MUX_MODE1)           /* gpmc_a0.mii2_txen */
+                       0x44 (PIN_INPUT_PULLDOWN | MUX_MODE1)   /* gpmc_a1.mii2_rxdv */
+                       0x48 (PIN_OUTPUT | MUX_MODE1)           /* gpmc_a2.mii2_txd3 */
+                       0x4c (PIN_OUTPUT | MUX_MODE1)           /* gpmc_a3.mii2_txd2 */
+                       0x50 (PIN_OUTPUT | MUX_MODE1)           /* gpmc_a4.mii2_txd1 */
+                       0x54 (PIN_OUTPUT | MUX_MODE1)           /* gpmc_a5.mii2_txd0 */
+                       0x58 (PIN_INPUT_PULLDOWN | MUX_MODE1)   /* gpmc_a6.mii2_txclk */
+                       0x5c (PIN_INPUT_PULLDOWN | MUX_MODE1)   /* gpmc_a7.mii2_rxclk */
+                       0x60 (PIN_INPUT_PULLDOWN | MUX_MODE1)   /* gpmc_a8.mii2_rxd3 */
+                       0x64 (PIN_INPUT_PULLDOWN | MUX_MODE1)   /* gpmc_a9.mii2_rxd2 */
+                       0x68 (PIN_INPUT_PULLDOWN | MUX_MODE1)   /* gpmc_a10.mii2_rxd1 */
+                       0x6c (PIN_INPUT_PULLDOWN | MUX_MODE1)   /* gpmc_a11.mii2_rxd0 */
+                       0x74 (PIN_INPUT_PULLDOWN | MUX_MODE1)   /* gpmc_wpn.mii2_rxerr */
+                       0x78 (PIN_INPUT_PULLDOWN | MUX_MODE1)   /* gpmc_ben1.mii2_col */
+               >;
+       };
+};
+
+&cpsw_emac1 {
+       phy_id = <&davinci_mdio>, <1>;
+       phy-mode = "mii";
+       dual_emac_res_vlan = <2>;
+};
+
+&mac {
+       slaves = <2>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&ethernet0_pins &ethernet1_pins>;
+       dual_emac = <1>;
+};
+
+/* MMC */
+&am33xx_pinmux {
+       mmc1_pins: pinmux_mmc1 {
+               pinctrl-single,pins = <
+                       0x0F0 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_dat3.mmc0_dat3 */
+                       0x0F4 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_dat2.mmc0_dat2 */
+                       0x0F8 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_dat1.mmc0_dat1 */
+                       0x0FC (PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_dat0.mmc0_dat0 */
+                       0x100 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_clk.mmc0_clk */
+                       0x104 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_cmd.mmc0_cmd */
+                       0x160 (PIN_INPUT_PULLUP | MUX_MODE7)    /* spi0_cs1.mmc0_sdcd */
+               >;
+       };
+};
+
+&mmc1 {
+       vmmc-supply = <&vmmc_reg>;
+       bus-width = <4>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins>;
+       cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+/* UARTs */
+&am33xx_pinmux {
+       uart0_pins: pinmux_uart0 {
+               pinctrl-single,pins = <
+                       0x170 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart0_rxd.uart0_rxd */
+                       0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
+               >;
+       };
+
+       uart1_pins: pinmux_uart1_pins {
+               pinctrl-single,pins = <
+                       0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
+                       0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
+                       0x178 (PIN_INPUT | MUX_MODE0)           /* uart1_ctsn.uart1_ctsn */
+                       0x17c (PIN_OUTPUT_PULLDOWN | MUX_MODE0)         /* uart1_rtsn.uart1_rtsn */
+               >;
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_pins>;
+       status = "okay";
+};
+
+/* USB */
+&cppi41dma {
+       status = "okay";
+};
+
+&usb_ctrl_mod {
+       status = "okay";
+};
+
+&usb {
+       status = "okay";
+};
+
+&usb0 {
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&usb0_phy {
+       status = "okay";
+};
+
+&usb1 {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usb1_phy {
+       status = "okay";
+};
index 21fcc440fc1a9d886d408701a705ad4daabd2325..01a2d9405058f55a217a4f69266b04e73ae604e2 100644 (file)
                        #size-cells = <1>;
                        ranges = <0 0x44c00000 0x280000>;
 
+                       wkup_m3: wkup_m3@100000 {
+                               compatible = "ti,am3352-wkup-m3";
+                               reg = <0x100000 0x4000>,
+                                     <0x180000 0x2000>;
+                               reg-names = "umem", "dmem";
+                               ti,hwmods = "wkup_m3";
+                               ti,pm-firmware = "am335x-pm-firmware.elf";
+                       };
+
                        prcm: prcm@200000 {
                                compatible = "ti,am3-prcm";
                                reg = <0x200000 0x4000>;
                                        };
                                };
 
+                               wkup_m3_ipc: wkup_m3_ipc@1324 {
+                                       compatible = "ti,am3352-wkup-m3-ipc";
+                                       reg = <0x1324 0x24>;
+                                       interrupts = <78>;
+                                       ti,rproc = <&wkup_m3>;
+                                       mboxes = <&mailbox &mbox_wkupm3>;
+                               };
+
                                scm_clockdomains: clockdomains {
                                };
                        };
                        reg = <0x40300000 0x10000>; /* 64k */
                };
 
-               wkup_m3: wkup_m3@44d00000 {
-                       compatible = "ti,am3353-wkup-m3";
-                       reg = <0x44d00000 0x4000        /* M3 UMEM */
-                              0x44d80000 0x2000>;      /* M3 DMEM */
-                       ti,hwmods = "wkup_m3";
-                       ti,no-reset-on-init;
-               };
-
                elm: elm@48080000 {
                        compatible = "ti,am3352-elm";
                        reg = <0x48080000 0x2000>;
index ade28c790f4bf6abfbb17de0aaee768e8f324837..65c43346f20b975bf08de5270c95e68dc565046a 100644 (file)
                i2c1 = &i2c1;
                i2c2 = &i2c2;
                serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+               serial3 = &uart3;
+               serial4 = &uart4;
+               serial5 = &uart5;
                ethernet0 = &cpsw_emac0;
                ethernet1 = &cpsw_emac1;
        };
                        #size-cells = <1>;
                        ranges = <0 0x44c00000 0x287000>;
 
+                       wkup_m3: wkup_m3@100000 {
+                               compatible = "ti,am4372-wkup-m3";
+                               reg = <0x100000 0x4000>,
+                                     <0x180000 0x2000>;
+                               reg-names = "umem", "dmem";
+                               ti,hwmods = "wkup_m3";
+                               ti,pm-firmware = "am335x-pm-firmware.elf";
+                       };
+
                        prcm: prcm@1f0000 {
                                compatible = "ti,am4-prcm";
                                reg = <0x1f0000 0x11000>;
                                        };
                                };
 
+                               wkup_m3_ipc: wkup_m3_ipc@1324 {
+                                       compatible = "ti,am4372-wkup-m3-ipc";
+                                       reg = <0x1324 0x44>;
+                                       interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
+                                       ti,rproc = <&wkup_m3>;
+                                       mboxes = <&mailbox &mbox_wkupm3>;
+                               };
+
                                scm_clockdomains: clockdomains {
                                };
                        };
                };
 
                rtc: rtc@44e3e000 {
-                       compatible = "ti,am4372-rtc","ti,da830-rtc";
+                       compatible = "ti,am3352-rtc", "ti,da830-rtc";
                        reg = <0x44e3e000 0x1000>;
                        interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH
                                      GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
                        usb1: usb@48390000 {
                                compatible = "synopsys,dwc3";
                                reg = <0x48390000 0x10000>;
-                               interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "peripheral",
+                                                 "host",
+                                                 "otg";
                                phys = <&usb2_phy1>;
                                phy-names = "usb2-phy";
                                maximum-speed = "high-speed";
                        usb2: usb@483d0000 {
                                compatible = "synopsys,dwc3";
                                reg = <0x483d0000 0x10000>;
-                               interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "peripheral",
+                                                 "host",
+                                                 "otg";
                                phys = <&usb2_phy2>;
                                phy-names = "usb2-phy";
                                maximum-speed = "high-speed";
index 84aa30c3235af1a14fcbeebe0622a54be6c6d3d9..215775dc69483dba5b526b69eef58cbde3f697b7 100644 (file)
 
        aliases {
                display0 = &lcd0;
-               serial3 = &uart3;
        };
 
-       vmmcsd_fixed: fixedregulator-sd {
+       evm_v3_3d: fixedregulator-v3_3d {
                compatible = "regulator-fixed";
-               regulator-name = "vmmcsd_fixed";
+               regulator-name = "evm_v3_3d";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
                enable-active-high;
                compatible = "osddisplays,osd057T0559-34ts", "panel-dpi";
                label = "lcd";
 
-               pinctrl-names = "default";
-               pinctrl-0 = <&lcd_pins>;
-
-               /*
-                * SelLCDorHDMI, LOW to select HDMI. This is not really the
-                * panel's enable GPIO, but we don't have HDMI driver support nor
-                * support to switch between two displays, so using this gpio as
-                * panel's enable should be safe.
-                */
-               enable-gpios = <&gpio5 8 GPIO_ACTIVE_HIGH>;
-
                panel-timing {
                        clock-frequency = <33000000>;
                        hactive = <800>;
                clock-frequency = <12000000>;
        };
 
+       sound0: sound@0 {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "AM437x-GP-EVM";
+               simple-audio-card,widgets =
+                       "Headphone", "Headphone Jack",
+                       "Line", "Line In";
+               simple-audio-card,routing =
+                       "Headphone Jack",       "HPLOUT",
+                       "Headphone Jack",       "HPROUT",
+                       "LINE1L",               "Line In",
+                       "LINE1R",               "Line In";
+               simple-audio-card,format = "dsp_b";
+               simple-audio-card,bitclock-master = <&sound0_master>;
+               simple-audio-card,frame-master = <&sound0_master>;
+               simple-audio-card,bitclock-inversion;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&mcasp1>;
+                       system-clock-frequency = <12000000>;
+               };
+
+               sound0_master: simple-audio-card,codec {
+                       sound-dai = <&tlv320aic3106>;
+                       system-clock-frequency = <12000000>;
+               };
+       };
 };
 
 &am43xx_pinmux {
 
        nand_flash_x8: nand_flash_x8 {
                pinctrl-single,pins = <
-                       0x26c(PIN_OUTPUT_PULLDOWN | MUX_MODE7)  /* spi2_cs0.gpio/eMMCorNANDsel */
                        0x0  (PIN_INPUT  | MUX_MODE0)   /* gpmc_ad0.gpmc_ad0 */
                        0x4  (PIN_INPUT  | MUX_MODE0)   /* gpmc_ad1.gpmc_ad1 */
                        0x8  (PIN_INPUT  | MUX_MODE0)   /* gpmc_ad2.gpmc_ad2 */
                >;
        };
 
-       lcd_pins: lcd_pins {
+       display_mux_pins: display_mux_pins {
                pinctrl-single,pins = <
                        /* GPIO 5_8 to select LCD / HDMI */
                        0x238 (PIN_OUTPUT_PULLUP | MUX_MODE7)
                        0x234 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart3_rtsn.uart3_rtsn */
                >;
        };
+
+       mcasp1_pins: mcasp1_pins {
+               pinctrl-single,pins = <
+                       0x108 (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */
+                       0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4)  /* mii1_crs.mcasp1_aclkx */
+                       0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4)  /* mii1_rxerr.mcasp1_fsx */
+                       0x144 (PIN_INPUT_PULLDOWN | MUX_MODE4)  /* rmii1_ref_clk.mcasp1_axr3 */
+               >;
+       };
+
+       mcasp1_sleep_pins: mcasp1_sleep_pins {
+               pinctrl-single,pins = <
+                       0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                       0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                       0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                       0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+               >;
+       };
+
+       gpio0_pins: gpio0_pins {
+               pinctrl-single,pins = <
+                       0x26c (PIN_OUTPUT | MUX_MODE9) /* spi2_cs0.gpio0_23 SEL_eMMCorNANDn */
+               >;
+       };
+
+       emmc_pins_default: emmc_pins_default {
+               pinctrl-single,pins = <
+                       0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */
+                       0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */
+                       0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */
+                       0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */
+                       0x10 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */
+                       0x14 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */
+                       0x18 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */
+                       0x1c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */
+                       0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
+                       0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
+               >;
+       };
+
+       emmc_pins_sleep: emmc_pins_sleep {
+               pinctrl-single,pins = <
+                       0x00 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad0.gpio1_0 */
+                       0x04 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad1.gpio1_1 */
+                       0x08 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad2.gpio1_2 */
+                       0x0c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad3.gpio1_3 */
+                       0x10 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad4.gpio1_4 */
+                       0x14 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad5.gpio1_5 */
+                       0x18 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad6.gpio1_6 */
+                       0x1c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad7.gpio1_7 */
+                       0x80 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn1.gpio1_30 */
+                       0x84 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn2.gpio1_31 */
+               >;
+       };
 };
 
 &i2c0 {
                        regulator-name = "v1_0bat";
                        regulator-min-microvolt = <1000000>;
                        regulator-max-microvolt = <1000000>;
+                       regulator-boot-on;
+                       regulator-always-on;
                };
 
                dcdc6: regulator-dcdc6 {
                        regulator-name = "v1_8bat";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+                       regulator-always-on;
                };
 
                ldo1: regulator-ldo1 {
                        };
                };
        };
+
+       tlv320aic3106: tlv320aic3106@1b {
+               #sound-dai-cells = <0>;
+               compatible = "ti,tlv320aic3106";
+               reg = <0x1b>;
+               status = "okay";
+
+               /* Regulators */
+               IOVDD-supply = <&evm_v3_3d>; /* V3_3D -> <tps63031> EN: V1_8D -> VBAT */
+               AVDD-supply = <&evm_v3_3d>; /* v3_3AUD -> V3_3D -> ... */
+               DRVDD-supply = <&evm_v3_3d>; /* v3_3AUD -> V3_3D -> ... */
+               DVDD-supply = <&ldo1>; /* V1_8D -> LDO1 */
+       };
 };
 
 &epwmss0 {
 };
 
 &gpio0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&gpio0_pins>;
        status = "okay";
+
+       p23 {
+               gpio-hog;
+               gpios = <23 GPIO_ACTIVE_HIGH>;
+               /* SelEMMCorNAND selects between eMMC and NAND:
+                * Low: NAND
+                * High: eMMC
+                * When changing this line make sure the newly
+                * selected device node is enabled and the previously
+                * selected device node is disabled.
+                */
+               output-low;
+               line-name = "SelEMMCorNAND";
+       };
 };
 
 &gpio1 {
 };
 
 &gpio5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&display_mux_pins>;
        status = "okay";
        ti,no-reset-on-init;
+
+       p8 {
+               /*
+                * SelLCDorHDMI selects between display and audio paths:
+                * Low: HDMI display with audio via HDMI
+                * High: LCD display with analog audio via aic3111 codec
+                */
+               gpio-hog;
+               gpios = <8 GPIO_ACTIVE_HIGH>;
+               output-high;
+               line-name = "SelLCDorHDMI";
+       };
 };
 
 &mmc1 {
        status = "okay";
-       vmmc-supply = <&vmmcsd_fixed>;
+       vmmc-supply = <&evm_v3_3d>;
        bus-width = <4>;
        pinctrl-names = "default";
        pinctrl-0 = <&mmc1_pins>;
        cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
 };
 
+/* eMMC sits on mmc2 */
+&mmc2 {
+       /*
+        * When enabling eMMC, disable GPMC/NAND and set
+        * SelEMMCorNAND to output-high
+        */
+       status = "disabled";
+       vmmc-supply = <&evm_v3_3d>;
+       bus-width = <8>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&emmc_pins_default>;
+       pinctrl-1 = <&emmc_pins_sleep>;
+       ti,non-removable;
+};
+
 &mmc3 {
        status = "okay";
        /* these are on the crossbar and are outlined in the
 };
 
 &gpmc {
+       /*
+        * When enabling GPMC, disable eMMC and set
+        * SelEMMCorNAND to output-low
+        */
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&nand_flash_x8>;
                };
        };
 };
+
+&mcasp1 {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&mcasp1_pins>;
+       pinctrl-1 = <&mcasp1_sleep_pins>;
+
+       status = "okay";
+
+       op-mode = <0>; /* MCASP_IIS_MODE */
+       tdm-slots = <2>;
+       /* 4 serializers */
+       serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
+               0 0 1 2
+       >;
+       tx-num-evt = <32>;
+       rx-num-evt = <32>;
+};
index c17097d2c167d4718f76200f51e599d6605d144e..22af44894c66f77153832a59a8262a65b4d28b8b 100644 (file)
        };
 
        sound {
-               compatible = "ti,da830-evm-audio";
-               ti,model = "AM437x-SK-EVM";
-               ti,audio-codec = <&tlv320aic3106>;
-               ti,mcasp-controller = <&mcasp1>;
-               ti,codec-clock-rate = <24000000>;
-               ti,audio-routing =
-                       "Headphone Jack",       "HPLOUT",
-                       "Headphone Jack",       "HPROUT";
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "AM437x-SK-EVM";
+               simple-audio-card,widgets =
+                       "Headphone", "Headphone Jack",
+                       "Line", "Line In";
+               simple-audio-card,routing =
+                       "Headphone Jack",       "HPLOUT",
+                       "Headphone Jack",       "HPROUT",
+                       "LINE1L",               "Line In",
+                       "LINE1R",               "Line In";
+               simple-audio-card,format = "dsp_b";
+               simple-audio-card,bitclock-master = <&sound_master>;
+               simple-audio-card,frame-master = <&sound_master>;
+               simple-audio-card,bitclock-inversion;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&mcasp1>;
+               };
+
+               sound_master: simple-audio-card,codec {
+                       sound-dai = <&tlv320aic3106>;
+                       system-clock-frequency = <24000000>;
+               };
        };
 
        matrix_keypad: matrix_keypad@0 {
                >;
        };
 
+       mcasp1_pins_sleep: mcasp1_pins_sleep {
+               pinctrl-single,pins = <
+                       0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                       0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                       0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                       0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+               >;
+       };
+
        lcd_pins: lcd_pins {
                pinctrl-single,pins = <
                        0x1c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpcm_ad7.gpio1_7 */
        };
 
        tlv320aic3106: tlv320aic3106@1b {
+               #sound-dai-cells = <0>;
                compatible = "ti,tlv320aic3106";
                reg = <0x1b>;
                status = "okay";
 };
 
 &mcasp1 {
-       pinctrl-names = "default";
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default", "sleep";
        pinctrl-0 = <&mcasp1_pins>;
+       pinctrl-1 = <&mcasp1_pins_sleep>;
 
        status = "okay";
 
index 795d68af6df9dbcf9b09b71350e7816606f7994a..86c2dfbe887561fd553f337cfff0e18b61551f96 100644 (file)
@@ -14,6 +14,7 @@
 #include <dt-bindings/pinctrl/am43xx.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/pwm/pwm.h>
+#include <dt-bindings/sound/tlv320aic31xx-micbias.h>
 
 / {
        model = "TI AM43x EPOS EVM";
                enable-active-high;
        };
 
+       vbat: fixedregulator@0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vbat";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-boot-on;
+       };
+
        lcd0: display {
                compatible = "osddisplays,osd057T0559-34ts", "panel-dpi";
                label = "lcd";
 
-               pinctrl-names = "default";
-               pinctrl-0 = <&lcd_pins>;
-
-               /*
-                * SelLCDorHDMI, LOW to select HDMI. This is not really the
-                * panel's enable GPIO, but we don't have HDMI driver support nor
-                * support to switch between two displays, so using this gpio as
-                * panel's enable should be safe.
-                */
-               enable-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
-
                panel-timing {
                        clock-frequency = <33000000>;
                        hactive = <800>;
                brightness-levels = <0 51 53 56 62 75 101 152 255>;
                default-brightness-level = <8>;
        };
+
+       sound0: sound@0 {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "AM43-EPOS-EVM";
+               simple-audio-card,widgets =
+                       "Microphone", "Microphone Jack",
+                       "Headphone", "Headphone Jack",
+                       "Speaker", "Speaker";
+               simple-audio-card,routing =
+                       "MIC1LP", "Microphone Jack",
+                       "MIC1RP", "Microphone Jack",
+                       "MIC1LP", "MICBIAS",
+                       "MIC1RP", "MICBIAS",
+                       "Headphone Jack", "HPL",
+                       "Headphone Jack", "HPR",
+                       "Speaker", "SPL",
+                       "Speaker", "SPR";
+               simple-audio-card,format = "dsp_b";
+               simple-audio-card,bitclock-master = <&sound0_master>;
+               simple-audio-card,frame-master = <&sound0_master>;
+               simple-audio-card,bitclock-inversion;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&mcasp1>;
+                       system-clock-frequency = <12000000>;
+               };
+
+               sound0_master: simple-audio-card,codec {
+                       sound-dai = <&tlv320aic3111>;
+                       system-clock-frequency = <12000000>;
+               };
+       };
 };
 
 &am43xx_pinmux {
                        >;
                };
 
-               lcd_pins: lcd_pins {
+               display_mux_pins: display_mux_pins {
                        pinctrl-single,pins = <
                                /* GPMC CLK -> GPIO 2_1 to select LCD / HDMI */
                                0x08C (PIN_OUTPUT_PULLUP | MUX_MODE7)
                                0x204 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
                        >;
                };
+
+               mcasp1_pins: mcasp1_pins {
+                       pinctrl-single,pins = <
+                               0x1a0 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* MCASP0_ACLKR/MCASP1_ACLKX */
+                               0x1a4 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* MCASP0_FSR/MCASP1_FSX */
+                               0x1a8 (PIN_OUTPUT_PULLDOWN | MUX_MODE3)/* MCASP0_AXR1/MCASP1_AXR0 */
+                               0x1ac (PIN_INPUT_PULLDOWN | MUX_MODE3) /* MCASP0_AHCLKX/MCASP1_AXR1 */
+                       >;
+               };
+
+               mcasp1_sleep_pins: mcasp1_sleep_pins {
+                       pinctrl-single,pins = <
+                               0x1a0 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x1a4 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x1a8 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                               0x1ac (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                       >;
+               };
 };
 
 &mmc1 {
                        regulator-always-on;
                };
 
+               dcdc4: regulator-dcdc4 {
+                       compatible = "ti,tps65218-dcdc4";
+                       regulator-name = "vdcdc4";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+
                dcdc5: regulator-dcdc5 {
                        compatible = "ti,tps65218-dcdc5";
                        regulator-name = "v1_0bat";
                touchscreen-size-x = <1024>;
                touchscreen-size-y = <600>;
        };
+
+       tlv320aic3111: tlv320aic3111@18 {
+               #sound-dai-cells = <0>;
+               compatible = "ti,tlv320aic3111";
+               reg = <0x18>;
+               status = "okay";
+
+               ai31xx-micbias-vg = <MICBIAS_2_0V>;
+
+               /* Regulators */
+               HPVDD-supply = <&dcdc4>; /* v3_3AUD -> V3_3D -> DCDC4 */
+               SPRVDD-supply = <&vbat>; /* vbat */
+               SPLVDD-supply = <&vbat>; /* vbat */
+               AVDD-supply = <&dcdc4>; /* v3_3AUD -> V3_3D -> DCDC4 */
+               IOVDD-supply = <&dcdc4>; /* V3_3D -> DCDC4 */
+               DVDD-supply = <&ldo1>; /* V1_8AUD -> V1_8D -> LDO1 */
+       };
 };
 
 &i2c2 {
 };
 
 &gpio2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&display_mux_pins>;
        status = "okay";
+
+       p1 {
+               /*
+                * SelLCDorHDMI selects between display and audio paths:
+                * Low: HDMI display with audio via HDMI
+                * High: LCD display with analog audio via aic3111 codec
+                */
+               gpio-hog;
+               gpios = <1 GPIO_ACTIVE_HIGH>;
+               output-high;
+               line-name = "SelLCDorHDMI";
+       };
 };
 
 &gpio3 {
                };
        };
 };
+
+&mcasp1 {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&mcasp1_pins>;
+       pinctrl-1 = <&mcasp1_sleep_pins>;
+
+       status = "okay";
+
+       op-mode = <0>;          /* MCASP_IIS_MODE */
+       tdm-slots = <2>;
+       /* 4 serializer */
+       serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
+               1 2 0 0
+       >;
+       tx-num-evt = <32>;
+       rx-num-evt = <32>;
+};
index a63bf78191ea5a57093e97f1d1fc95d904695816..4605a2262a6e6a90e01ba0df6a1a56fad5362c69 100644 (file)
 
        vmmc-supply = <&ldo1_reg>;
        vmmc_aux-supply = <&vdd_3v3>;
-       pbias-supply = <&pbias_mmc_reg>;
        bus-width = <4>;
        cd-gpios = <&gpio6 27 0>; /* gpio 219 */
 };
index 67a0ab0f71e029bfa36ffcccbd34ded49c80b164..e9a381741ce12e2eba5108aebf9517e6a4a1aa6c 100644 (file)
                                reg = <0x8000 0x1000>;
                                cache-unified;
                                cache-level = <2>;
+                               arm,double-linefill-incr = <1>;
+                               arm,double-linefill-wrap = <0>;
+                               arm,double-linefill = <1>;
+                               prefetch-data = <1>;
                        };
 
                        scu@c000 {
index fd4f6fd8a2e8a30277db97ab71bbd5b2a5dfd05d..353c92532e7af9770301daba7a588770cd90b1cd 100644 (file)
                                pinctrl-0 = <&i2c0_pins>;
                                status = "okay";
                                clock-frequency = <100000>;
-                               /*
-                                * The EEPROM located at adresse 54 is needed
-                                * for the boot - DO NOT ERASE IT -
-                                */
 
                                expander0: pca9555@20 {
                                        compatible = "nxp,pca9555";
                                        reg = <0x21>;
                                };
 
+                               eeprom@57 {
+                                       compatible = "atmel,24c64";
+                                       reg = <0x57>;
+                               };
                        };
 
                        serial@12000 {
        reg_sata0: pwr-sata0 {
                compatible = "regulator-fixed";
                regulator-name = "pwr_en_sata0";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
                enable-active-high;
                regulator-always-on;
-
+               gpio = <&expander0 2 GPIO_ACTIVE_HIGH>;
        };
 
        reg_5v_sata0: v5-sata0 {
index 04ecfe6e2bc6e3c47210a9f5af18516b2e0b61d4..f9f2347d9995a824cb53a7ceb7bf3cf907e85685 100644 (file)
                                reg = <0x8000 0x1000>;
                                cache-unified;
                                cache-level = <2>;
+                               arm,double-linefill-incr = <1>;
+                               arm,double-linefill-wrap = <0>;
+                               arm,double-linefill = <1>;
+                               prefetch-data = <1>;
                        };
 
                        scu@c000 {
                        };
 
                        xor@60800 {
-                               compatible = "marvell,orion-xor";
+                               compatible = "marvell,armada-380-xor", "marvell,orion-xor";
                                reg = <0x60800 0x100
                                       0x60a00 0x100>;
                                clocks = <&gateclk 22>;
                        };
 
                        xor@60900 {
-                               compatible = "marvell,orion-xor";
+                               compatible = "marvell,armada-380-xor", "marvell,orion-xor";
                                reg = <0x60900 0x100
                                       0x60b00 0x100>;
                                clocks = <&gateclk 28>;
index fc9864f85fc2b2f598bcd6edfcc52340f7ccc31c..dc6efd386dbcb00db09c5e8171f15f83beb1dd09 100644 (file)
                                reg = <0x8000 0x1000>;
                                cache-unified;
                                cache-level = <2>;
+                               arm,double-linefill-incr = <1>;
+                               arm,double-linefill-wrap = <0>;
+                               arm,double-linefill = <1>;
+                               prefetch-data = <1>;
                        };
 
                        scu@c000 {
                        };
 
                        xor@60800 {
-                               compatible = "marvell,orion-xor";
+                               compatible = "marvell,armada-380-xor", "marvell,orion-xor";
                                reg = <0x60800 0x100
                                       0x60a00 0x100>;
                                clocks = <&gateclk 22>;
                        };
 
                        xor@60900 {
-                               compatible = "marvell,orion-xor";
+                               compatible = "marvell,armada-380-xor", "marvell,orion-xor";
                                reg = <0x60900 0x100
                                       0x60b00 0x100>;
                                clocks = <&gateclk 28>;
index 49cf59a9557263d4f6b5a823d262544eee574807..1e9cd1a8508e17c2665a4154b124f0d89a32ae11 100644 (file)
@@ -10,6 +10,9 @@
 
 /include/ "atlas7.dtsi"
 
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/gpio/gpio.h>
+
 / {
        model = "CSR SiRFatlas7 Evaluation Board";
        compatible = "sirf,atlas7-cb", "sirf,atlas7";
                                };
                        };
                };
+
+               gpio_keys {
+                       compatible = "gpio-keys";
+                       status = "okay";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       rearview_key {
+                               label = "rearview key";
+                               linux,code = <KEY_CAMERA>;
+                               gpios = <&gpio_1 3 GPIO_ACTIVE_LOW>;
+                               debounce_interval = <100>;
+                       };
+               };
+
        };
 };
index 3e21311f9514a65dac7ec6f8de7ff9cc42bac13a..83449b33de6b32daccf190a6dc9960ed0f8799cb 100644 (file)
                serial5 = &uart5;
                serial6 = &uart6;
                serial9 = &usp2;
+               spi1 = &spi1;
+               spi2 = &usp1;
+               spi3 = &usp2;
+               spi4 = &usp3;
        };
        cpus {
                #address-cells = <1>;
                };
        };
 
+       arm-pmu {
+               compatible = "arm,cortex-a7-pmu";
+               interrupts = <0 29 4>, <0 82 4>;
+       };
+
        noc {
                compatible = "simple-bus";
                #address-cells = <1>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0x18641000 0x18641000 0x3000>,
-                                        <0x18620000 0x18620000 0x1000>;
+                                        <0x18620000 0x18620000 0x1000>,
+                                       <0x18630000 0x18630000 0x10000>;
 
                        cgum@18641000 {
                                compatible = "sirf,nocfw-cgum";
                                #clock-cells = <1>;
                                #reset-cells = <1>;
                        };
+                       pwm: pwm@18630000 {
+                               compatible = "sirf,prima2-pwm";
+                               #pwm-cells = <2>;
+                               reg = <0x18630000 0x10000>;
+                               clocks = <&car 138>, <&car 139>, <&car 237>,
+                                       <&car 240>,  <&car 140>, <&car 246>;
+                               clock-names = "pwmc", "sigsrc0", "sigsrc1",
+                                       "sigsrc2", "sigsrc3", "sigsrc4";
+                       };
                };
 
                gnssm {
                                <0x18040000 0x18040000 0x1000>,
                                <0x18050000 0x18050000 0x1000>,
                                <0x18060000 0x18060000 0x1000>,
+                               <0x180b0000 0x180b0000 0x4000>,
                                <0x18100000 0x18100000 0x3000>,
                                <0x18250000 0x18250000 0x10000>,
                                <0x18200000 0x18200000 0x1000>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
+                       gmac: eth@180b0000 {
+                               compatible = "snps, dwc-eth-qos";
+                               reg = <0x180b0000 0x4000>;
+                               interrupts = <0 59 0>, <0 70 0>;
+                               interrupt-names = "macirq", "macpmt";
+                               clocks = <&car 39>, <&car 45>,
+                                      <&car 86>, <&car 87>;
+                               clock-names = "gnssm_rgmii", "gnssm_gmac",
+                                       "rgmii", "gmac";
+                               local-mac-address = [00 00 00 00 00 00];
+                               phy-mode = "rgmii";
+                       };
                        dspub@18250000 {
                                compatible = "dx,cc44p";
                                reg = <0x18250000 0x10000>;
                        compatible = "arteris, flexnoc", "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
-                       ranges = <0x13000000 0x13000000 0x3000>;
+                       ranges = <0x13000000 0x13000000 0x3000>,
+                               <0x13010000 0x13010000 0x1400>,
+                               <0x13010800 0x13010800 0x100>,
+                               <0x13011000 0x13011000 0x100>;
                        gpum@0x13000000 {
                                compatible = "sirf,nocfw-gpum";
                                reg = <0x13000000 0x3000>;
                        };
+                       dmacsdrr: dma-controller@13010800 {
+                               cell-index = <5>;
+                               compatible = "sirf,atlas7-dmac-v2";
+                               reg = <0x13010800 0x100>;
+                               interrupts = <0 8 0>;
+                               clocks = <&car 127>;
+                               #dma-cells = <1>;
+                               #dma-channels = <1>;
+                       };
+                       dmacsdrw: dma-controller@13011000 {
+                               cell-index = <6>;
+                               compatible = "sirf,atlas7-dmac-v2";
+                               reg = <0x13011000 0x100>;
+                               interrupts = <0 9 0>;
+                               clocks = <&car 127>;
+                               #dma-cells = <1>;
+                               #dma-channels = <1>;
+                       };
+                       sdr@0x13010000 {
+                               compatible = "sirf,atlas7-sdr";
+                               reg = <0x13010000 0x1400>;
+                               interrupts = <0 7 0>,
+                                          <0 8 0>,
+                                          <0 9 0>;
+                               clocks = <&car 127>;
+                               dmas = <&dmacsdrr 0>, <&dmacsdrw 0>;
+                               dma-names = "tx", "rx";
+                       };
                };
 
                mediam {
                        compatible = "arteris, flexnoc", "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
-                       ranges = <0x16000000 0x16000000 0x00200000>,
+                       ranges = <0x15000000 0x15000000 0x00600000>,
+                               <0x16000000 0x16000000 0x00200000>,
+                               <0x17000000 0x17000000 0x10000>,
                                <0x17020000 0x17020000 0x1000>,
                                <0x17030000 0x17030000 0x1000>,
                                <0x17040000 0x17040000 0x1000>,
                                <0x17070200 0x17070200 0x100>,
                                <0x170A0000 0x170A0000 0x3000>;
 
+                       multimedia@15000000 {
+                               compatible = "sirf,atlas7-video-codec";
+                               reg = <0x15000000 0x10000>;
+                               interrupts = <0 5 0>;
+                               clocks = <&car 102>;
+                       };
+
                        mediam@170A0000 {
                                compatible = "sirf,nocfw-mediam";
                                reg = <0x170A0000 0x3000>;
                        nand@17050000 {
                                compatible = "sirf,atlas7-nand";
                                reg = <0x17050000 0x10000>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&nd_df_pmx>;
                                interrupts = <0 41 0>;
                                clocks = <&car 108>, <&car 112>;
                                clock-names = "nand_io", "nand_nand";
                                bus-width = <8>;
                        };
 
+                       jpeg@17000000 {
+                               compatible = "sirf,atlas7-jpeg";
+                               reg = <0x17000000 0x10000>;
+                               interrupts = <0 72 0>,
+                                       <0 73 0>;
+                               clocks = <&car 103>;
+                       };
+
                        usb0: usb@17060000 {
                                cell-index = <0>;
                                compatible = "sirf,atlas7-usb";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0x13100000 0x13100000 0x20000>,
-                                <0x10e10000 0x10e10000 0x10000>;
+                               <0x10e10000 0x10e10000 0x10000>,
+                               <0x17010000 0x17010000 0x10000>;
 
                        lcd@13100000 {
                                compatible = "sirf,atlas7-lcdc";
                                clocks = <&car 54>;
                                resets = <&car 29>;
                        };
+                       g2d@17010000 {
+                               compatible = "sirf, atlas7-g2d";
+                               reg = <0x17010000 0x10000>;
+                               interrupts = <0 61 0>;
+                               clocks = <&car 104>;
+                       };
 
                };
 
diff --git a/arch/arm/boot/dts/axp152.dtsi b/arch/arm/boot/dts/axp152.dtsi
new file mode 100644 (file)
index 0000000..f90ad6c
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2015 Chen-Yu Tsai
+ *
+ * Chen-Yu Tsai <wens@csie.org>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+&axp152 {
+       compatible = "x-powers,axp152";
+       interrupt-controller;
+       #interrupt-cells = <1>;
+};
index 60d8389fdb6c44daf2be6267287141bc1c99647a..32bcd45ef22b36ef42038ac9a49337e686e8300b 100644 (file)
@@ -36,56 +36,89 @@ clocks {
        ranges;
 
        osc: oscillator {
+               #clock-cells = <0>;
                compatible = "fixed-clock";
-               #clock-cells = <1>;
                clock-frequency = <25000000>;
        };
 
-       apb_clk: apb_clk {
-               compatible = "fixed-clock";
+       /* Cygnus ARM PLL */
+       armpll: armpll {
                #clock-cells = <0>;
-               clock-frequency = <1000000000>;
+               compatible = "brcm,cygnus-armpll";
+               clocks = <&osc>;
+               reg = <0x19000000 0x1000>;
        };
 
-       periph_clk: periph_clk {
-               compatible = "fixed-clock";
+       /* peripheral clock for system timer */
+       periph_clk: arm_periph_clk {
                #clock-cells = <0>;
-               clock-frequency = <500000000>;
+               compatible = "fixed-factor-clock";
+               clocks = <&armpll>;
+               clock-div = <2>;
+               clock-mult = <1>;
        };
 
-       sdio_clk: lcpll_ch2 {
-               compatible = "fixed-clock";
+       /* APB bus clock */
+       apb_clk: apb_clk {
                #clock-cells = <0>;
-               clock-frequency = <200000000>;
+               compatible = "fixed-factor-clock";
+               clocks = <&armpll>;
+               clock-div = <4>;
+               clock-mult = <1>;
        };
 
-       axi81_clk: axi81_clk {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <100000000>;
+       genpll: genpll {
+               #clock-cells = <1>;
+               compatible = "brcm,cygnus-genpll";
+               reg = <0x0301d000 0x2c>, <0x0301c020 0x4>;
+               clocks = <&osc>;
+               clock-output-names = "genpll", "axi21", "250mhz", "ihost_sys",
+                                    "enet_sw", "audio_125", "can";
        };
 
-       keypad_clk: keypad_clk {
-               compatible = "fixed-clock";
+       /* always 1/2 of the axi21 clock */
+       axi41_clk: axi41_clk {
                #clock-cells = <0>;
-               clock-frequency = <31806>;
+               compatible = "fixed-factor-clock";
+               clocks = <&genpll 1>;
+               clock-div = <2>;
+               clock-mult = <1>;
        };
 
-       adc_clk: adc_clk {
-               compatible = "fixed-clock";
+       /* always 1/4 of the axi21 clock */
+       axi81_clk: axi81_clk {
                #clock-cells = <0>;
-               clock-frequency = <1562500>;
+               compatible = "fixed-factor-clock";
+               clocks = <&genpll 1>;
+               clock-div = <4>;
+               clock-mult = <1>;
        };
 
-       pwm_clk: pwm_clk {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <1000000>;
+       lcpll0: lcpll0 {
+               #clock-cells = <1>;
+               compatible = "brcm,cygnus-lcpll0";
+               reg = <0x0301d02c 0x1c>, <0x0301c020 0x4>;
+               clocks = <&osc>;
+               clock-output-names = "lcpll0", "pcie_phy", "ddr_phy", "sdio",
+                                    "usb_phy", "smart_card", "ch5";
        };
 
-       lcd_clk: mipipll_ch1 {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <100000000>;
+       mipipll: mipipll {
+               #clock-cells = <1>;
+               compatible = "brcm,cygnus-mipipll";
+               reg = <0x180a9800 0x2c>, <0x0301c020 0x4>, <0x180aa024 0x4>;
+               clocks = <&osc>;
+               clock-output-names = "mipipll", "ch0_unused", "ch1_lcd",
+                                    "ch2_v3d", "ch3_unused", "ch4_unused",
+                                    "ch5_unused";
+       };
+
+       asiu_clks: asiu_clks {
+               #clock-cells = <1>;
+               compatible = "brcm,cygnus-asiu-clk";
+               reg = <0x0301d048 0xc>, <0x180aa024 0x4>;
+
+               clocks = <&osc>;
+               clock-output-names = "keypad", "adc/touch", "pwm";
        };
 };
index 24f0ab59bf1b365b54ce6c1965b1b5a471d78150..42dcdfb769b2753e94d5e29c9a2aa100b7f591bc 100644 (file)
                };
        };
 };
+
+&uart0 {
+       status = "okay";
+};
index f039393117178556e4849f2b960a8111ea41b88f..f18e80e0b61d8aa09b861beef32a9620013257b3 100644 (file)
@@ -55,3 +55,7 @@
                };
        };
 };
+
+&uart0 {
+       status = "okay";
+};
index 326ce8f4e49cc13e1495b9d66ac84946740482db..64b8d10ccff8ce65bb318a6ed318cd98d97a8f0e 100644 (file)
                reg = <0x00000000 0x08000000>;
        };
 
-       chipcommonA {
-               uart0: serial@0300 {
-                       status = "okay";
-               };
-
-               uart1: serial@0400 {
-                       status = "okay";
-               };
-       };
-
        leds {
                compatible = "gpio-leds";
 
@@ -92,3 +82,7 @@
                };
        };
 };
+
+&uart0 {
+       status = "okay";
+};
index d6a033b97c702f05c251bcedc31fadb2131613dc..64a5e8ab65e03a5e957ab93f01361b9f86d95bde 100644 (file)
                };
        };
 };
+
+&uart0 {
+       status = "okay";
+};
index bb0cb0bfafaf22d07f516d6e36c11aa21547c42a..38f0c00d1acaa7a8ecf352a96596e6a0fe74e3c6 100644 (file)
                };
        };
 };
+
+&uart0 {
+       status = "okay";
+};
index 21fefd4cdc2535a2ce5857c4e3523063c0196808..6f50f672efbdf754f200f67b9f4e1518d91f6a26 100644 (file)
                        compatible = "arm,pl310-cache";
                        reg = <0x2000 0x1000>;
                        cache-unified;
+                       arm,shared-override;
+                       prefetch-data = <1>;
+                       prefetch-instr = <1>;
                        cache-level = <2>;
                };
        };
 
+       pmu {
+               compatible = "arm,cortex-a9-pmu";
+               interrupts =
+                       <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                       <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
        clocks {
                #address-cells = <1>;
                #size-cells = <0>;
index 58dcd666257c001bf33bdded1bcd93f6287332ea..3b6b1756068781a4e3a403446a388c9823c7ddaf 100644 (file)
                        brcm,int-fwd-mask = <0x70000>;
                };
 
+               irq0_aon_intc: interrupt-controller@417280 {
+                       compatible = "brcm,bcm7120-l2-intc";
+                       reg = <0x417280 0x8>;
+                       interrupt-parent = <&gic>;
+                       #interrupt-cells = <1>;
+                       interrupt-controller;
+                       interrupts = <GIC_SPI 0x46 0x0>,
+                                    <GIC_SPI 0x44 0x0>,
+                                    <GIC_SPI 0x49 0x0>;
+                       brcm,int-map-mask = <0x1e3 0x18000000 0x100000>;
+                       brcm,int-fwd-mask = <0x0>;
+                       brcm,irq-can-wake;
+               };
+
                hif_intr2_intc: interrupt-controller@3e1000 {
                        compatible = "brcm,l2-intc";
                        reg = <0x3e1000 0x30>;
                        interrupt-names = "hif";
                };
 
+                aon_pm_l2_intc: interrupt-controller@410640 {
+                       compatible = "brcm,l2-intc";
+                       reg = <0x410640 0x30>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+                       interrupts = <GIC_SPI 0x40 0x0>;
+                       interrupt-parent = <&gic>;
+                       brcm,irq-can-wake;
+               };
+
                nand: nand@3e2800 {
                        status = "disabled";
                        #address-cells = <1>;
                                #phy-cells = <0>;
                        };
                };
+
+               upg_gio: gpio@40a700 {
+                       compatible = "brcm,bcm7445-gpio", "brcm,brcmstb-gpio";
+                       reg = <0x40a700 0x80>;
+                       #gpio-cells = <2>;
+                       #interrupt-cells = <2>;
+                       gpio-controller;
+                       interrupt-controller;
+                       interrupt-parent = <&irq0_intc>;
+                       interrupts = <6>;
+                       brcm,gpio-bank-widths = <32 32 32 24>;
+               };
+
+               upg_gio_aon: gpio@4172c0 {
+                       compatible = "brcm,bcm7445-gpio", "brcm,brcmstb-gpio";
+                       reg = <0x4172c0 0x40>;
+                       #gpio-cells = <2>;
+                       #interrupt-cells = <2>;
+                       gpio-controller;
+                       interrupt-controller;
+                       interrupts-extended = <&irq0_aon_intc 0x6>,
+                                             <&aon_pm_l2_intc 0x5>;
+                       wakeup-source;
+                       brcm,gpio-bank-widths = <18 4>;
+               };
+
        };
 
        smpboot {
diff --git a/arch/arm/boot/dts/cros-ec-sbs.dtsi b/arch/arm/boot/dts/cros-ec-sbs.dtsi
new file mode 100644 (file)
index 0000000..71f5c5e
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Smart battery dts fragment for devices that use cros-ec-sbs
+ *
+ * Copyright (c) 2015 Google, Inc
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+&i2c_tunnel {
+       battery: sbs-battery@b {
+               compatible = "sbs,sbs-battery";
+               reg = <0xb>;
+               sbs,i2c-retry-count = <2>;
+               sbs,poll-retry-count = <1>;
+       };
+};
index af333261d0463eeb7326f7e9537c027527de38a3..df4c6f1f93f9d8b49bf0b48129bc3fc228fe5805 100644 (file)
                interrupts = <25>;
        };
 
+       watchdog@f0000fc0 {
+               compatible = "cnxt,cx92755-wdt";
+               reg = <0xf0000fc0 0x8>;
+               clocks = <&main_clk>;
+               timeout-sec = <15>;
+       };
+
        uc_regs: syscon@f00003a0 {
                compatible = "cnxt,cx92755-uc", "syscon";
                reg = <0xf00003a0 0x10>;
index 90d52cc416dcc2202bcac5cf6fc648ddbcf4feab..5da00806c41e43118a704f7ee8883b2b7d97477d 100644 (file)
@@ -64,8 +64,7 @@
        };
 
        chosen {
-               bootargs = "console=ttyS0,115200";
-               stdout-path = &uart0;
+               stdout-path = "serial0:115200n8";
        };
 };
 
diff --git a/arch/arm/boot/dts/dm8148-evm.dts b/arch/arm/boot/dts/dm8148-evm.dts
new file mode 100644 (file)
index 0000000..92bacd3
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * 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 "dm814x.dtsi"
+
+/ {
+       model = "DM8148 EVM";
+       compatible = "ti,dm8148-evm", "ti,dm8148";
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x40000000>;  /* 1 GB */
+       };
+};
+
+&cpsw_emac0 {
+       phy_id = <&davinci_mdio>, <0>;
+       phy-mode = "mii";
+};
+
+&cpsw_emac1 {
+       phy_id = <&davinci_mdio>, <1>;
+       phy-mode = "mii";
+};
diff --git a/arch/arm/boot/dts/dm8148-t410.dts b/arch/arm/boot/dts/dm8148-t410.dts
new file mode 100644 (file)
index 0000000..8c4bbc7
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * 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 "dm814x.dtsi"
+
+/ {
+       model = "DM8148 EVM";
+       compatible = "hp,t410", "ti,dm8148";
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x40000000>;  /* 1 GB */
+       };
+};
+
+&cpsw_emac0 {
+       phy_id = <&davinci_mdio>, <0>;
+       phy-mode = "mii";
+};
+
+&cpsw_emac1 {
+       phy_id = <&davinci_mdio>, <1>;
+       phy-mode = "mii";
+};
diff --git a/arch/arm/boot/dts/dm814x-clocks.dtsi b/arch/arm/boot/dts/dm814x-clocks.dtsi
new file mode 100644 (file)
index 0000000..ef1e8e7
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+ * 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.
+ */
+
+&scm_clocks {
+
+       tclkin_ck: tclkin_ck {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <32768>;
+       };
+
+       devosc_ck: devosc_ck {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <20000000>;
+       };
+
+       /* Optional auxosc, 20 - 30 MHz range, assume 27 MHz by default */
+       auxosc_ck: auxosc_ck {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <27000000>;
+       };
+
+       mpu_ck: mpu_ck {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <1000000000>;
+       };
+
+       sysclk4_ck: sysclk4_ck {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <222000000>;
+       };
+
+       sysclk6_ck: sysclk6_ck {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <100000000>;
+       };
+
+       sysclk10_ck: sysclk10_ck {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <48000000>;
+       };
+
+       sysclk18_ck: sysclk18_ck {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <32768>;
+       };
+
+        cpsw_125mhz_gclk: cpsw_125mhz_gclk {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <125000000>;
+       };
+
+       cpsw_cpts_rft_clk: cpsw_cpts_rft_clk {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <250000000>;
+       };
+
+};
+
+&pllss_clocks {
+
+       aud_clkin0_ck: aud_clkin0_ck {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <20000000>;
+       };
+
+       aud_clkin1_ck: aud_clkin1_ck {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <20000000>;
+       };
+
+       aud_clkin2_ck: aud_clkin2_ck {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <20000000>;
+       };
+
+       timer1_mux_ck: timer1_mux_ck {
+               #clock-cells = <0>;
+               compatible = "ti,mux-clock";
+               clocks = <&sysclk18_ck &aud_clkin0_ck &aud_clkin1_ck
+                         &aud_clkin2_ck &devosc_ck &auxosc_ck &tclkin_ck>;
+               ti,bit-shift = <3>;
+               reg = <0x2e0>;
+       };
+
+       timer2_mux_ck: timer2_mux_ck {
+               #clock-cells = <0>;
+               compatible = "ti,mux-clock";
+               clocks = <&sysclk18_ck &aud_clkin0_ck &aud_clkin1_ck
+                         &aud_clkin2_ck &devosc_ck &auxosc_ck &tclkin_ck>;
+               ti,bit-shift = <6>;
+               reg = <0x2e0>;
+       };
+};
diff --git a/arch/arm/boot/dts/dm814x.dtsi b/arch/arm/boot/dts/dm814x.dtsi
new file mode 100644 (file)
index 0000000..972c9c9
--- /dev/null
@@ -0,0 +1,333 @@
+/*
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/omap.h>
+
+#include "skeleton.dtsi"
+
+/ {
+       compatible = "ti,dm814";
+       interrupt-parent = <&intc>;
+
+       aliases {
+               i2c0 = &i2c1;
+               i2c1 = &i2c2;
+               serial0 = &uart1;
+               serial1 = &uart2;
+               serial2 = &uart3;
+               ethernet0 = &cpsw_emac0;
+               ethernet1 = &cpsw_emac1;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               cpu@0 {
+                       compatible = "arm,cortex-a8";
+                       device_type = "cpu";
+                       reg = <0>;
+               };
+       };
+
+       pmu {
+               compatible = "arm,cortex-a8-pmu";
+               interrupts = <3>;
+       };
+
+       /*
+        * The soc node represents the soc top level view. It is used for IPs
+        * that are not memory mapped in the MPU view or for the MPU itself.
+        */
+       soc {
+               compatible = "ti,omap-infra";
+               mpu {
+                       compatible = "ti,omap3-mpu";
+                       ti,hwmods = "mpu";
+               };
+       };
+
+       ocp {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               ti,hwmods = "l3_main";
+
+               /*
+                * See TRM "Table 1-317. L4LS Instance Summary", just deduct
+                * 0x1000 from the 1-317 addresses to get the device address
+                */
+               l4ls: l4ls@48000000 {
+                       compatible = "ti,dm814-l4ls", "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0x48000000 0x2000000>;
+
+                       i2c1: i2c@28000 {
+                               compatible = "ti,omap4-i2c";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               ti,hwmods = "i2c1";
+                               reg = <0x28000 0x1000>;
+                               interrupts = <70>;
+                       };
+
+                       elm: elm@80000 {
+                               compatible = "ti,814-elm";
+                               ti,hwmods = "elm";
+                               reg = <0x80000 0x2000>;
+                               interrupts = <4>;
+                       };
+
+                       gpio1: gpio@32000 {
+                               compatible = "ti,omap4-gpio";
+                               ti,hwmods = "gpio1";
+                               ti,gpio-always-on;
+                               reg = <0x32000 0x2000>;
+                               interrupts = <96>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpio2: gpio@4c000 {
+                               compatible = "ti,omap4-gpio";
+                               ti,hwmods = "gpio2";
+                               ti,gpio-always-on;
+                               reg = <0x4c000 0x2000>;
+                               interrupts = <98>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       i2c2: i2c@2a000 {
+                               compatible = "ti,omap4-i2c";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               ti,hwmods = "i2c2";
+                               reg = <0x2a000 0x1000>;
+                               interrupts = <71>;
+                       };
+
+                       mcspi1: spi@30000 {
+                               compatible = "ti,omap4-mcspi";
+                               reg = <0x30000 0x1000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <65>;
+                               ti,spi-num-cs = <4>;
+                               ti,hwmods = "mcspi1";
+                               dmas = <&edma 16 &edma 17
+                                       &edma 18 &edma 19>;
+                               dma-names = "tx0", "rx0", "tx1", "rx1";
+                       };
+
+                       timer1: timer@2e000 {
+                               compatible = "ti,dm814-timer";
+                               reg = <0x2e000 0x2000>;
+                               interrupts = <67>;
+                               ti,hwmods = "timer1";
+                               ti,timer-alwon;
+                       };
+
+                       uart1: uart@20000 {
+                               compatible = "ti,omap3-uart";
+                               ti,hwmods = "uart1";
+                               reg = <0x20000 0x2000>;
+                               clock-frequency = <48000000>;
+                               interrupts = <72>;
+                               dmas = <&edma 26 &edma 27>;
+                               dma-names = "tx", "rx";
+                       };
+
+                       uart2: uart@22000 {
+                               compatible = "ti,omap3-uart";
+                               ti,hwmods = "uart2";
+                               reg = <0x22000 0x2000>;
+                               clock-frequency = <48000000>;
+                               interrupts = <73>;
+                               dmas = <&edma 28 &edma 29>;
+                               dma-names = "tx", "rx";
+                       };
+
+                       uart3: uart@24000 {
+                               compatible = "ti,omap3-uart";
+                               ti,hwmods = "uart3";
+                               reg = <0x24000 0x2000>;
+                               clock-frequency = <48000000>;
+                               interrupts = <74>;
+                               dmas = <&edma 30 &edma 31>;
+                               dma-names = "tx", "rx";
+                       };
+
+                       timer2: timer@40000 {
+                               compatible = "ti,dm814-timer";
+                               reg = <0x40000 0x2000>;
+                               interrupts = <68>;
+                               ti,hwmods = "timer2";
+                       };
+
+                       timer3: timer@42000 {
+                               compatible = "ti,dm814-timer";
+                               reg = <0x42000 0x2000>;
+                               interrupts = <69>;
+                               ti,hwmods = "timer3";
+                       };
+
+                       control: control@160000 {
+                               compatible = "ti,dm814-scm", "simple-bus";
+                               reg = <0x160000 0x16d000>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0 0x160000 0x16d000>;
+
+                               scm_conf: scm_conf@0 {
+                                       compatible = "syscon";
+                                       reg = <0x0 0x800>;
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+
+                                       scm_clocks: clocks {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+                                       };
+
+                                       scm_clockdomains: clockdomains {
+                                       };
+                               };
+
+                               pincntl: pinmux@800 {
+                                       compatible = "pinctrl-single";
+                                       reg = <0x800 0xc38>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       pinctrl-single,register-width = <32>;
+                                       pinctrl-single,function-mask = <0x300ff>;
+                               };
+                       };
+
+                       prcm: prcm@180000 {
+                               compatible = "ti,dm814-prcm", "simple-bus";
+                               reg = <0x180000 0x4000>;
+
+                               prcm_clocks: clocks {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                               };
+
+                               prcm_clockdomains: clockdomains {
+                               };
+                       };
+
+                       pllss: pllss@1c5000 {
+                               compatible = "ti,dm814-pllss", "simple-bus";
+                               reg = <0x1c5000 0x2000>;
+
+                               pllss_clocks: clocks {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                               };
+
+                               pllss_clockdomains: clockdomains {
+                               };
+                       };
+
+                       wdt1: wdt@1c7000 {
+                               compatible = "ti,omap3-wdt";
+                               ti,hwmods = "wd_timer";
+                               reg = <0x1c7000 0x1000>;
+                               interrupts = <91>;
+                       };
+               };
+
+               intc: interrupt-controller@48200000 {
+                       compatible = "ti,dm814-intc";
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+                       reg = <0x48200000 0x1000>;
+               };
+
+               edma: edma@49000000 {
+                       compatible = "ti,edma3";
+                       ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2";
+                       reg =   <0x49000000 0x10000>,
+                               <0x44e10f90 0x40>;
+                       interrupts = <12 13 14>;
+                       #dma-cells = <1>;
+               };
+
+               /* See TRM "Table 1-318. L4HS Instance Summary" */
+               l4hs: l4hs@4a000000 {
+                       compatible = "ti,dm814-l4hs", "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0x4a000000 0x1b4040>;
+               };
+
+               /* REVISIT: Move to live under l4hs once driver is fixed */
+               mac: ethernet@4a100000 {
+                       compatible = "ti,cpsw";
+                       ti,hwmods = "cpgmac0";
+                       clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
+                       clock-names = "fck", "cpts";
+                       cpdma_channels = <8>;
+                       ale_entries = <1024>;
+                       bd_ram_size = <0x2000>;
+                       no_bd_ram = <0>;
+                       rx_descs = <64>;
+                       mac_control = <0x20>;
+                       slaves = <2>;
+                       active_slave = <0>;
+                       cpts_clock_mult = <0x80000000>;
+                       cpts_clock_shift = <29>;
+                       reg = <0x4a100000 0x800
+                              0x4a100900 0x100>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       interrupt-parent = <&intc>;
+                       /*
+                        * c0_rx_thresh_pend
+                        * c0_rx_pend
+                        * c0_tx_pend
+                        * c0_misc_pend
+                        */
+                       interrupts = <40 41 42 43>;
+                       ranges;
+                       syscon = <&scm_conf>;
+
+                       davinci_mdio: mdio@4a100800 {
+                               compatible = "ti,davinci_mdio";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               ti,hwmods = "davinci_mdio";
+                               bus_freq = <1000000>;
+                               reg = <0x4a100800 0x100>;
+                       };
+
+                       cpsw_emac0: slave@4a100200 {
+                               /* Filled in by U-Boot */
+                               mac-address = [ 00 00 00 00 00 00 ];
+                       };
+
+                       cpsw_emac1: slave@4a100300 {
+                               /* Filled in by U-Boot */
+                               mac-address = [ 00 00 00 00 00 00 ];
+                       };
+
+                       phy_sel: cpsw-phy-sel@0x48160650 {
+                               compatible = "ti,am3352-cpsw-phy-sel";
+                               reg= <0x48160650 0x4>;
+                               reg-names = "gmii-sel";
+                       };
+               };
+       };
+};
+
+#include "dm814x-clocks.dtsi"
index 289806adb343806aefce22e63b6caa1d558741fb..3c99cfa1a8761604a409b9d0525f143c494571b0 100644 (file)
@@ -58,7 +58,7 @@
         * the whole bus hierarchy.
         */
        ocp {
-               compatible = "ti,omap3-l3-smx", "simple-bus";
+               compatible = "simple-bus";
                reg = <0x44000000 0x10000>;
                interrupts = <9 10>;
                #address-cells = <1>;
index aa465904f6cc420ecad93f006bc5e622d8e70b36..1ae935cde2f0efcbf7cd073b282947a6425dc381 100644 (file)
                reg = <0x80000000 0x60000000>; /* 1536 MB */
        };
 
+       evm_3v3_sd: fixedregulator-sd {
+               compatible = "regulator-fixed";
+               regulator-name = "evm_3v3_sd";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               enable-active-high;
+               gpio = <&pcf_gpio_21 5 GPIO_ACTIVE_HIGH>;
+       };
+
        mmc2_3v3: fixedregulator-mmc2 {
                compatible = "regulator-fixed";
                regulator-name = "mmc2_3v3";
                                        regulator-name = "ldo1";
                                        regulator-min-microvolt = <1800000>;
                                        regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
                                        regulator-boot-on;
                                };
 
 
 &mmc1 {
        status = "okay";
-       vmmc-supply = <&ldo1_reg>;
+       vmmc-supply = <&evm_3v3_sd>;
+       vmmc_aux-supply = <&ldo1_reg>;
        bus-width = <4>;
+       /*
+        * SDCD signal is not being used here - using the fact that GPIO mode
+        * is always hardwired.
+        */
+       cd-gpios = <&gpio6 27 0>;
 };
 
 &mmc2 {
index 8f1e25bcecbd76273f62671e8b9afa8f193ea261..4752337d8236c9527eee1a2ae82f31e101058185 100644 (file)
                                dra7_pmx_core: pinmux@1400 {
                                        compatible = "ti,dra7-padconf",
                                                     "pinctrl-single";
-                                       reg = <0x1400 0x0464>;
+                                       reg = <0x1400 0x0468>;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                        #interrupt-cells = <1>;
                                        pinctrl-single,register-width = <32>;
                                        pinctrl-single,function-mask = <0x3fffffff>;
                                };
+
+                               scm_conf1: scm_conf@1c04 {
+                                       compatible = "syscon";
+                                       reg = <0x1c04 0x0020>;
+                               };
                        };
 
                        cm_core_aon: cm_core_aon@5000 {
                                #thermal-sensor-cells = <1>;
                };
 
-               dra7_ctrl_core: ctrl_core@4a002000 {
-                       compatible = "syscon";
-                       reg = <0x4a002000 0x6d0>;
-               };
-
-               dra7_ctrl_general: tisyscon@4a002e00 {
-                       compatible = "syscon";
-                       reg = <0x4a002e00 0x7c>;
-               };
-
                sdma: dma-controller@4a056000 {
                        compatible = "ti,omap4430-sdma";
                        reg = <0x4a056000 0x1000>;
                        dma-requests = <127>;
                };
 
+               sdma_xbar: dma-router@4a002b78 {
+                       compatible = "ti,dra7-dma-crossbar";
+                       reg = <0x4a002b78 0xfc>;
+                       #dma-cells = <1>;
+                       dma-requests = <205>;
+                       ti,dma-safe-map = <0>;
+                       dma-masters = <&sdma>;
+               };
+
                gpio1: gpio@4ae10000 {
                        compatible = "ti,omap4-gpio";
                        reg = <0x4ae10000 0x200>;
                        ti,hwmods = "uart1";
                        clock-frequency = <48000000>;
                        status = "disabled";
-                       dmas = <&sdma 49>, <&sdma 50>;
+                       dmas = <&sdma_xbar 49>, <&sdma_xbar 50>;
                        dma-names = "tx", "rx";
                };
 
                        ti,hwmods = "uart2";
                        clock-frequency = <48000000>;
                        status = "disabled";
-                       dmas = <&sdma 51>, <&sdma 52>;
+                       dmas = <&sdma_xbar 51>, <&sdma_xbar 52>;
                        dma-names = "tx", "rx";
                };
 
                        ti,hwmods = "uart3";
                        clock-frequency = <48000000>;
                        status = "disabled";
-                       dmas = <&sdma 53>, <&sdma 54>;
+                       dmas = <&sdma_xbar 53>, <&sdma_xbar 54>;
                        dma-names = "tx", "rx";
                };
 
                        ti,hwmods = "uart4";
                        clock-frequency = <48000000>;
                         status = "disabled";
-                       dmas = <&sdma 55>, <&sdma 56>;
+                       dmas = <&sdma_xbar 55>, <&sdma_xbar 56>;
                        dma-names = "tx", "rx";
                };
 
                        ti,hwmods = "uart5";
                        clock-frequency = <48000000>;
                        status = "disabled";
-                       dmas = <&sdma 63>, <&sdma 64>;
+                       dmas = <&sdma_xbar 63>, <&sdma_xbar 64>;
                        dma-names = "tx", "rx";
                };
 
                        ti,hwmods = "uart6";
                        clock-frequency = <48000000>;
                        status = "disabled";
-                       dmas = <&sdma 79>, <&sdma 80>;
+                       dmas = <&sdma_xbar 79>, <&sdma_xbar 80>;
                        dma-names = "tx", "rx";
                };
 
                        ti,hwmods = "mmc1";
                        ti,dual-volt;
                        ti,needs-special-reset;
-                       dmas = <&sdma 61>, <&sdma 62>;
+                       dmas = <&sdma_xbar 61>, <&sdma_xbar 62>;
                        dma-names = "tx", "rx";
                        status = "disabled";
                        pbias-supply = <&pbias_mmc_reg>;
                        interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mmc2";
                        ti,needs-special-reset;
-                       dmas = <&sdma 47>, <&sdma 48>;
+                       dmas = <&sdma_xbar 47>, <&sdma_xbar 48>;
                        dma-names = "tx", "rx";
                        status = "disabled";
                };
                        interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mmc3";
                        ti,needs-special-reset;
-                       dmas = <&sdma 77>, <&sdma 78>;
+                       dmas = <&sdma_xbar 77>, <&sdma_xbar 78>;
                        dma-names = "tx", "rx";
                        status = "disabled";
                };
                        interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mmc4";
                        ti,needs-special-reset;
-                       dmas = <&sdma 57>, <&sdma 58>;
+                       dmas = <&sdma_xbar 57>, <&sdma_xbar 58>;
                        dma-names = "tx", "rx";
                        status = "disabled";
                };
                        #size-cells = <0>;
                        ti,hwmods = "mcspi1";
                        ti,spi-num-cs = <4>;
-                       dmas = <&sdma 35>,
-                              <&sdma 36>,
-                              <&sdma 37>,
-                              <&sdma 38>,
-                              <&sdma 39>,
-                              <&sdma 40>,
-                              <&sdma 41>,
-                              <&sdma 42>;
+                       dmas = <&sdma_xbar 35>,
+                              <&sdma_xbar 36>,
+                              <&sdma_xbar 37>,
+                              <&sdma_xbar 38>,
+                              <&sdma_xbar 39>,
+                              <&sdma_xbar 40>,
+                              <&sdma_xbar 41>,
+                              <&sdma_xbar 42>;
                        dma-names = "tx0", "rx0", "tx1", "rx1",
                                    "tx2", "rx2", "tx3", "rx3";
                        status = "disabled";
                        #size-cells = <0>;
                        ti,hwmods = "mcspi2";
                        ti,spi-num-cs = <2>;
-                       dmas = <&sdma 43>,
-                              <&sdma 44>,
-                              <&sdma 45>,
-                              <&sdma 46>;
+                       dmas = <&sdma_xbar 43>,
+                              <&sdma_xbar 44>,
+                              <&sdma_xbar 45>,
+                              <&sdma_xbar 46>;
                        dma-names = "tx0", "rx0", "tx1", "rx1";
                        status = "disabled";
                };
                        #size-cells = <0>;
                        ti,hwmods = "mcspi3";
                        ti,spi-num-cs = <2>;
-                       dmas = <&sdma 15>, <&sdma 16>;
+                       dmas = <&sdma_xbar 15>, <&sdma_xbar 16>;
                        dma-names = "tx0", "rx0";
                        status = "disabled";
                };
                        #size-cells = <0>;
                        ti,hwmods = "mcspi4";
                        ti,spi-num-cs = <1>;
-                       dmas = <&sdma 70>, <&sdma 71>;
+                       dmas = <&sdma_xbar 70>, <&sdma_xbar 71>;
                        dma-names = "tx0", "rx0";
                        status = "disabled";
                };
                        usb1: usb@48890000 {
                                compatible = "snps,dwc3";
                                reg = <0x48890000 0x17000>;
-                               interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "peripheral",
+                                                 "host",
+                                                 "otg";
                                phys = <&usb2_phy1>, <&usb3_phy1>;
                                phy-names = "usb2-phy", "usb3-phy";
                                tx-fifo-resize;
                        usb2: usb@488d0000 {
                                compatible = "snps,dwc3";
                                reg = <0x488d0000 0x17000>;
-                               interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "peripheral",
+                                                 "host",
+                                                 "otg";
                                phys = <&usb2_phy2>;
                                phy-names = "usb2-phy";
                                tx-fifo-resize;
                        usb3: usb@48910000 {
                                compatible = "snps,dwc3";
                                reg = <0x48910000 0x17000>;
-                               interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "peripheral",
+                                                 "host",
+                                                 "otg";
                                tx-fifo-resize;
                                maximum-speed = "high-speed";
                                dr_mode = "otg";
index 4e1b60581782c43fc40c9b167e45f90e64024068..c11ccb10e3dead8ab6ba10c923b0bb8ace67ad21 100644 (file)
                regulator-max-microvolt = <3300000>;
        };
 
+       evm_3v3_sd: fixedregulator-sd {
+               compatible = "regulator-fixed";
+               regulator-name = "evm_3v3_sd";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               enable-active-high;
+               gpio = <&pcf_gpio_21 5 GPIO_ACTIVE_HIGH>;
+       };
+
        extcon_usb1: extcon_usb1 {
                compatible = "linux,extcon-usb-gpio";
                id-gpio = <&pcf_gpio_21 1 GPIO_ACTIVE_HIGH>;
                                        regulator-name = "ldo1";
                                        regulator-min-microvolt = <1800000>;
                                        regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
                                        regulator-boot-on;
                                };
 
                interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
                interrupt-controller;
                #interrupt-cells = <2>;
+
+               cpsw_sel_s0 {
+                       gpio-hog;
+                       gpios = <4 GPIO_ACTIVE_HIGH>;
+                       output-low;
+               };
        };
 };
 
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&mmc1_pins_default>;
-
-       vmmc-supply = <&ldo1_reg>;
+       vmmc-supply = <&evm_3v3_sd>;
+       vmmc_aux-supply = <&ldo1_reg>;
        bus-width = <4>;
        /*
         * SDCD signal is not being used here - using the fact that GPIO mode
         * is a viable alternative
         */
        cd-gpios = <&gpio6 27 0>;
+       max-frequency = <192000000>;
 };
 
 &mmc2 {
        vmmc-supply = <&evm_3v3>;
        bus-width = <8>;
        ti,non-removable;
+       max-frequency = <192000000>;
 };
 
 &dra7_pmx_core {
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&cpsw_default>;
        pinctrl-1 = <&cpsw_sleep>;
+       slaves = <1>;
 };
 
-&cpsw_emac1 {
+&cpsw_emac0 {
        phy_id = <&davinci_mdio>, <3>;
        phy-mode = "rgmii";
 };
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&davinci_mdio_default>;
        pinctrl-1 = <&davinci_mdio_sleep>;
-       active_slave = <1>;
 };
 
 &dcan1 {
index fa995d0ca1f209a1ef71c8ace158cb4450179983..feea98e0a4b50ffb42a9a2238e7fb8fe81866bf4 100644 (file)
                        usb4: usb@48950000 {
                                compatible = "snps,dwc3";
                                reg = <0x48950000 0x17000>;
-                               interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "peripheral",
+                                                 "host",
+                                                 "otg";
                                tx-fifo-resize;
                                maximum-speed = "high-speed";
                                dr_mode = "otg";
index 1dee0aa4f40cc3513f4865bd07ed3fa2ce856cf1..955c24ee4a8cbfea89248c2efcb93d9536c0221b 100644 (file)
        };
 };
 
+&iic0 {
+       status = "okay";
+};
+
+&iic1 {
+       status = "okay";
+};
+
 &pfc {
        uart1_pins: serial@e1030000 {
                renesas,groups = "uart1_ctrl", "uart1_data";
index bb45694d91bc1e6c4557085287235613b52f16d3..edad0c4eea3505b760a3e515fcf91811f31ded99 100644 (file)
@@ -21,6 +21,8 @@
                gpio2 = &gpio2;
                gpio3 = &gpio3;
                gpio4 = &gpio4;
+               i2c0 = &iic0;
+               i2c1 = &iic1;
        };
 
        cpus {
                        clock-frequency = <32768>;
                        #clock-cells = <0>;
                };
+               iic0_sclkdiv: iic0_sclkdiv {
+                       compatible = "renesas,emev2-smu-clkdiv";
+                       reg = <0x624 0>;
+                       clocks = <&pll3_fo>;
+                       #clock-cells = <0>;
+               };
+               iic0_sclk: iic0_sclk {
+                       compatible = "renesas,emev2-smu-gclk";
+                       reg = <0x48c 1>;
+                       clocks = <&iic0_sclkdiv>;
+                       #clock-cells = <0>;
+               };
+               iic1_sclkdiv: iic1_sclkdiv {
+                       compatible = "renesas,emev2-smu-clkdiv";
+                       reg = <0x624 16>;
+                       clocks = <&pll3_fo>;
+                       #clock-cells = <0>;
+               };
+               iic1_sclk: iic1_sclk {
+                       compatible = "renesas,emev2-smu-gclk";
+                       reg = <0x490 1>;
+                       clocks = <&iic1_sclkdiv>;
+                       #clock-cells = <0>;
+               };
                pll3_fo: pll3_fo {
                        compatible = "fixed-factor-clock";
                        clocks = <&c32ki>;
                interrupt-controller;
                #interrupt-cells = <2>;
        };
+
+       iic0: i2c@e0070000 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "renesas,iic-emev2";
+               reg = <0xe0070000 0x28>;
+               interrupts = <0 32 IRQ_TYPE_EDGE_RISING>;
+               clocks = <&iic0_sclk>;
+               clock-names = "sclk";
+               status = "disabled";
+       };
+
+       iic1: i2c@e10a0000 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "renesas,iic-emev2";
+               reg = <0xe10a0000 0x28>;
+               interrupts = <0 33 IRQ_TYPE_EDGE_RISING>;
+               clocks = <&iic1_sclk>;
+               clock-names = "sclk";
+               status = "disabled";
+       };
 };
index d7201333e3bcd181d0a0281b3d214a6b5e92265a..2db99433e17fdad0299b672ae87e49b6444a457e 100644 (file)
 
                mipi_phy: video-phy@10020710 {
                        compatible = "samsung,s5pv210-mipi-video-phy";
-                       reg = <0x10020710 8>;
                        #phy-cells = <1>;
+                       syscon = <&pmu_system_controller>;
                };
 
                pd_cam: cam-power-domain@10023C00 {
index e0abfc3324d11eaed33838be9c04b7f1a167f5fb..e050d85cdacddf24268870988badefca45d75a88 100644 (file)
        };
 };
 
+&cpu0 {
+       cpu0-supply = <&buck1_reg>;
+};
+
 &fimd {
        pinctrl-0 = <&lcd_en &lcd_clk &lcd_data24 &pwm0_out>;
        pinctrl-names = "default";
index 98f3ce65cb9a387a55ee588069bf42b51103317c..ba34886f8b65b6227f82ef93c530603b64910449 100644 (file)
        };
 };
 
+&cpu0 {
+       cpu0-supply = <&varm_breg>;
+};
+
 &dsi_0 {
        vddcore-supply = <&vusb_reg>;
        vddio-supply = <&vmipi_reg>;
index d4f2b11319dd10d4d7b79fa295d55e63baccff9c..eb379526e23425f145daa1f20069f07292bc7f88 100644 (file)
                enable-active-high;
        };
 
-       hsotg@12480000 {
-               vusb_d-supply = <&ldo3_reg>;
-               vusb_a-supply = <&ldo8_reg>;
-               dr_mode = "peripheral";
-               status = "okay";
-       };
-
-       sdhci_emmc: sdhci@12510000 {
-               bus-width = <8>;
-               non-removable;
-               pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus8>;
-               pinctrl-names = "default";
-               vmmc-supply = <&vemmc_reg>;
-               status = "okay";
-       };
-
-       sdhci_sd: sdhci@12530000 {
-               bus-width = <4>;
-               pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
-               pinctrl-names = "default";
-               vmmc-supply = <&ldo5_reg>;
-               cd-gpios = <&gpx3 4 0>;
-               cd-inverted;
-               status = "okay";
-       };
-
-       ehci@12580000 {
-               status = "okay";
-               port@0 {
-                       status = "okay";
-               };
-       };
-
-       ohci@12590000 {
-               status = "okay";
-               port@0 {
-                       status = "okay";
-               };
-       };
-
-       exynos-usbphy@125B0000 {
-               status = "okay";
-       };
-
-       serial@13800000 {
-               status = "okay";
-       };
-
-       serial@13810000 {
-               status = "okay";
-       };
-
-       serial@13820000 {
-               status = "okay";
-       };
-
-       serial@13830000 {
-               status = "okay";
-       };
-
        gpio-keys {
                compatible = "gpio-keys";
 
                enable-active-high;
        };
 
-       i2c@13890000 {
-               samsung,i2c-sda-delay = <100>;
-               samsung,i2c-slave-addr = <0x10>;
-               samsung,i2c-max-bus-freq = <100000>;
-               pinctrl-0 = <&i2c3_bus>;
-               pinctrl-names = "default";
-               status = "okay";
-
-               tsp@4a {
-                       /* TBD: Atmel maXtouch touchscreen */
-                       reg = <0x4a>;
-               };
-       };
-
-       i2c@138B0000 {
-               samsung,i2c-sda-delay = <100>;
-               samsung,i2c-slave-addr = <0x10>;
-               samsung,i2c-max-bus-freq = <100000>;
-               pinctrl-0 = <&i2c5_bus>;
-               pinctrl-names = "default";
-               status = "okay";
-
-               vdd_arm_reg: pmic@60 {
-                       compatible = "maxim,max8952";
-                       reg = <0x60>;
-
-                       max8952,vid-gpios = <&gpx0 3 0>, <&gpx0 4 0>;
-                       max8952,default-mode = <0>;
-                       max8952,dvs-mode-microvolt = <1250000>, <1200000>,
-                                                       <1050000>, <950000>;
-                       max8952,sync-freq = <0>;
-                       max8952,ramp-speed = <0>;
-
-                       regulator-name = "vdd_arm";
-                       regulator-min-microvolt = <770000>;
-                       regulator-max-microvolt = <1400000>;
-                       regulator-always-on;
-                       regulator-boot-on;
-               };
-
-               pmic@66 {
-                       compatible = "national,lp3974";
-                       reg = <0x66>;
-
-                       max8998,pmic-buck1-default-dvs-idx = <0>;
-                       max8998,pmic-buck1-dvs-gpios = <&gpx0 5 0>,
-                                                       <&gpx0 6 0>;
-                       max8998,pmic-buck1-dvs-voltage = <1100000>, <1000000>,
-                                                       <1100000>, <1000000>;
-
-                       max8998,pmic-buck2-default-dvs-idx = <0>;
-                       max8998,pmic-buck2-dvs-gpio = <&gpe2 0 0>;
-                       max8998,pmic-buck2-dvs-voltage = <1200000>, <1100000>;
-
-                       regulators {
-                               ldo2_reg: LDO2 {
-                                       regulator-name = "VALIVE_1.2V";
-                                       regulator-min-microvolt = <1200000>;
-                                       regulator-max-microvolt = <1200000>;
-                                       regulator-always-on;
-                               };
-
-                               ldo3_reg: LDO3 {
-                                       regulator-name = "VUSB+MIPI_1.1V";
-                                       regulator-min-microvolt = <1100000>;
-                                       regulator-max-microvolt = <1100000>;
-                                       regulator-always-on;
-                               };
-
-                               ldo4_reg: LDO4 {
-                                       regulator-name = "VADC_3.3V";
-                                       regulator-min-microvolt = <3300000>;
-                                       regulator-max-microvolt = <3300000>;
-                               };
-
-                               ldo5_reg: LDO5 {
-                                       regulator-name = "VTF_2.8V";
-                                       regulator-min-microvolt = <2800000>;
-                                       regulator-max-microvolt = <2800000>;
-                               };
-
-                               ldo6_reg: LDO6 {
-                                       regulator-name = "LDO6";
-                                       regulator-min-microvolt = <2000000>;
-                                       regulator-max-microvolt = <2000000>;
-                               };
-
-                               ldo7_reg: LDO7 {
-                                       regulator-name = "VLCD+VMIPI_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                               };
-
-                               ldo8_reg: LDO8 {
-                                       regulator-name = "VUSB+VDAC_3.3V";
-                                       regulator-min-microvolt = <3300000>;
-                                       regulator-max-microvolt = <3300000>;
-                                       regulator-always-on;
-                               };
-
-                               ldo9_reg: LDO9 {
-                                       regulator-name = "VCC_2.8V";
-                                       regulator-min-microvolt = <2800000>;
-                                       regulator-max-microvolt = <2800000>;
-                                       regulator-always-on;
-                               };
-
-                               ldo10_reg: LDO10 {
-                                       regulator-name = "VPLL_1.1V";
-                                       regulator-min-microvolt = <1100000>;
-                                       regulator-max-microvolt = <1100000>;
-                                       regulator-boot-on;
-                                       regulator-always-on;
-                               };
-
-                               ldo11_reg: LDO11 {
-                                       regulator-name = "CAM_AF_3.3V";
-                                       regulator-min-microvolt = <3300000>;
-                                       regulator-max-microvolt = <3300000>;
-                               };
-
-                               ldo12_reg: LDO12 {
-                                       regulator-name = "PS_2.8V";
-                                       regulator-min-microvolt = <2800000>;
-                                       regulator-max-microvolt = <2800000>;
-                               };
-
-                               ldo13_reg: LDO13 {
-                                       regulator-name = "VHIC_1.2V";
-                                       regulator-min-microvolt = <1200000>;
-                                       regulator-max-microvolt = <1200000>;
-                               };
-
-                               ldo14_reg: LDO14 {
-                                       regulator-name = "CAM_I_HOST_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                               };
-
-                               ldo15_reg: LDO15 {
-                                       regulator-name = "CAM_S_DIG+FM33_CORE_1.2V";
-                                       regulator-min-microvolt = <1200000>;
-                                       regulator-max-microvolt = <1200000>;
-                               };
-
-                               ldo16_reg: LDO16 {
-                                       regulator-name = "CAM_S_ANA_2.8V";
-                                       regulator-min-microvolt = <2800000>;
-                                       regulator-max-microvolt = <2800000>;
-                               };
-
-                               ldo17_reg: LDO17 {
-                                       regulator-name = "VCC_3.0V_LCD";
-                                       regulator-min-microvolt = <3000000>;
-                                       regulator-max-microvolt = <3000000>;
-                               };
-
-                               buck1_reg: BUCK1 {
-                                       regulator-name = "VINT_1.1V";
-                                       regulator-min-microvolt = <750000>;
-                                       regulator-max-microvolt = <1500000>;
-                                       regulator-boot-on;
-                                       regulator-always-on;
-                               };
-
-                               buck2_reg: BUCK2 {
-                                       regulator-name = "VG3D_1.1V";
-                                       regulator-min-microvolt = <750000>;
-                                       regulator-max-microvolt = <1500000>;
-                                       regulator-boot-on;
-                               };
-
-                               buck3_reg: BUCK3 {
-                                       regulator-name = "VCC_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                               };
-
-                               buck4_reg: BUCK4 {
-                                       regulator-name = "VMEM_1.2V";
-                                       regulator-min-microvolt = <1200000>;
-                                       regulator-max-microvolt = <1200000>;
-                                       regulator-always-on;
-                               };
-
-                               ap32khz_reg: EN32KHz-AP {
-                                       regulator-name = "32KHz AP";
-                                       regulator-always-on;
-                               };
-
-                               cp32khz_reg: EN32KHz-CP {
-                                       regulator-name = "32KHz CP";
-                               };
-
-                               vichg_reg: ENVICHG {
-                                       regulator-name = "VICHG";
-                               };
-
-                               safeout1_reg: ESAFEOUT1 {
-                                       regulator-name = "SAFEOUT1";
-                                       regulator-always-on;
-                               };
-
-                               safeout2_reg: ESAFEOUT2 {
-                                       regulator-name = "SAFEOUT2";
-                                       regulator-boot-on;
-                               };
-                       };
-               };
-       };
-
        spi-lcd {
                compatible = "spi-gpio";
                #address-cells = <1>;
                };
        };
 
-       fimd: fimd@11c00000 {
-               pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
-               pinctrl-names = "default";
-               status = "okay";
-               samsung,invert-vden;
-               samsung,invert-vclk;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               port@3 {
-                       reg = <3>;
-                       fimd_dpi_ep: endpoint {
-                               remote-endpoint = <&lcd_ep>;
-                       };
-               };
-       };
-
-       pwm@139D0000 {
-               compatible = "samsung,s5p6440-pwm";
-               status = "okay";
-       };
-
        camera {
                status = "okay";
 
                pinctrl-names = "default";
                status = "okay";
        };
+};
+
+&cpu0 {
+       cpu0-supply = <&vdd_arm_reg>;
+};
 
-       mixer@12C10000 {
+&ehci {
+       status = "okay";
+       port@0 {
                status = "okay";
        };
+};
 
-       hdmi@12D00000 {
-               hpd-gpio = <&gpx3 7 0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&hdmi_hpd>;
-               hdmi-en-supply = <&hdmi_en>;
-               vdd-supply = <&ldo3_reg>;
-               vdd_osc-supply = <&ldo4_reg>;
-               vdd_pll-supply = <&ldo3_reg>;
-               ddc = <&hdmi_ddc>;
-               status = "okay";
+&exynos_usbphy {
+       status = "okay";
+};
+
+&fimd {
+       pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
+       pinctrl-names = "default";
+       status = "okay";
+       samsung,invert-vden;
+       samsung,invert-vclk;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       port@3 {
+               reg = <3>;
+               fimd_dpi_ep: endpoint {
+                       remote-endpoint = <&lcd_ep>;
+               };
+       };
+};
+
+&hdmi {
+       hpd-gpio = <&gpx3 7 0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&hdmi_hpd>;
+       hdmi-en-supply = <&hdmi_en>;
+       vdd-supply = <&ldo3_reg>;
+       vdd_osc-supply = <&ldo4_reg>;
+       vdd_pll-supply = <&ldo3_reg>;
+       ddc = <&hdmi_ddc>;
+       status = "okay";
+};
+
+&hsotg {
+       vusb_d-supply = <&ldo3_reg>;
+       vusb_a-supply = <&ldo8_reg>;
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&i2c_3 {
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-slave-addr = <0x10>;
+       samsung,i2c-max-bus-freq = <100000>;
+       pinctrl-0 = <&i2c3_bus>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       tsp@4a {
+               /* TBD: Atmel maXtouch touchscreen */
+               reg = <0x4a>;
+       };
+};
+
+&i2c_5 {
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-slave-addr = <0x10>;
+       samsung,i2c-max-bus-freq = <100000>;
+       pinctrl-0 = <&i2c5_bus>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       vdd_arm_reg: pmic@60 {
+               compatible = "maxim,max8952";
+               reg = <0x60>;
+
+               max8952,vid-gpios = <&gpx0 3 0>, <&gpx0 4 0>;
+               max8952,default-mode = <0>;
+               max8952,dvs-mode-microvolt = <1250000>, <1200000>,
+                                               <1050000>, <950000>;
+               max8952,sync-freq = <0>;
+               max8952,ramp-speed = <0>;
+
+               regulator-name = "vdd_arm";
+               regulator-min-microvolt = <770000>;
+               regulator-max-microvolt = <1400000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       pmic@66 {
+               compatible = "national,lp3974";
+               reg = <0x66>;
+
+               max8998,pmic-buck1-default-dvs-idx = <0>;
+               max8998,pmic-buck1-dvs-gpios = <&gpx0 5 0>,
+                                               <&gpx0 6 0>;
+               max8998,pmic-buck1-dvs-voltage = <1100000>, <1000000>,
+                                               <1100000>, <1000000>;
+
+               max8998,pmic-buck2-default-dvs-idx = <0>;
+               max8998,pmic-buck2-dvs-gpio = <&gpe2 0 0>;
+               max8998,pmic-buck2-dvs-voltage = <1200000>, <1100000>;
+
+               regulators {
+                       ldo2_reg: LDO2 {
+                               regulator-name = "VALIVE_1.2V";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                       };
+
+                       ldo3_reg: LDO3 {
+                               regulator-name = "VUSB+MIPI_1.1V";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-always-on;
+                       };
+
+                       ldo4_reg: LDO4 {
+                               regulator-name = "VADC_3.3V";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       ldo5_reg: LDO5 {
+                               regulator-name = "VTF_2.8V";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                       };
+
+                       ldo6_reg: LDO6 {
+                               regulator-name = "LDO6";
+                               regulator-min-microvolt = <2000000>;
+                               regulator-max-microvolt = <2000000>;
+                       };
+
+                       ldo7_reg: LDO7 {
+                               regulator-name = "VLCD+VMIPI_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       ldo8_reg: LDO8 {
+                               regulator-name = "VUSB+VDAC_3.3V";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       ldo9_reg: LDO9 {
+                               regulator-name = "VCC_2.8V";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-always-on;
+                       };
+
+                       ldo10_reg: LDO10 {
+                               regulator-name = "VPLL_1.1V";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo11_reg: LDO11 {
+                               regulator-name = "CAM_AF_3.3V";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       ldo12_reg: LDO12 {
+                               regulator-name = "PS_2.8V";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                       };
+
+                       ldo13_reg: LDO13 {
+                               regulator-name = "VHIC_1.2V";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+
+                       ldo14_reg: LDO14 {
+                               regulator-name = "CAM_I_HOST_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       ldo15_reg: LDO15 {
+                               regulator-name = "CAM_S_DIG+FM33_CORE_1.2V";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+
+                       ldo16_reg: LDO16 {
+                               regulator-name = "CAM_S_ANA_2.8V";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                       };
+
+                       ldo17_reg: LDO17 {
+                               regulator-name = "VCC_3.0V_LCD";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                       };
+
+                       buck1_reg: BUCK1 {
+                               regulator-name = "VINT_1.1V";
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <1500000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck2_reg: BUCK2 {
+                               regulator-name = "VG3D_1.1V";
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <1500000>;
+                               regulator-boot-on;
+                       };
+
+                       buck3_reg: BUCK3 {
+                               regulator-name = "VCC_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                       };
+
+                       buck4_reg: BUCK4 {
+                               regulator-name = "VMEM_1.2V";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                       };
+
+                       ap32khz_reg: EN32KHz-AP {
+                               regulator-name = "32KHz AP";
+                               regulator-always-on;
+                       };
+
+                       cp32khz_reg: EN32KHz-CP {
+                               regulator-name = "32KHz CP";
+                       };
+
+                       vichg_reg: ENVICHG {
+                               regulator-name = "VICHG";
+                       };
+
+                       safeout1_reg: ESAFEOUT1 {
+                               regulator-name = "SAFEOUT1";
+                               regulator-always-on;
+                       };
+
+                       safeout2_reg: ESAFEOUT2 {
+                               regulator-name = "SAFEOUT2";
+                               regulator-boot-on;
+                       };
+               };
        };
+};
 
-       i2c@138E0000 {
+&i2c_8 {
+       status = "okay";
+};
+
+&mdma1 {
+       reg = <0x12840000 0x1000>;
+};
+
+&mixer {
+       status = "okay";
+};
+
+&ohci {
+       status = "okay";
+       port@0 {
                status = "okay";
        };
 };
        };
 };
 
-&mdma1 {
-       reg = <0x12840000 0x1000>;
+&pwm {
+       compatible = "samsung,s5p6440-pwm";
+       status = "okay";
+};
+
+&sdhci_0 {
+       bus-width = <8>;
+       non-removable;
+       pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus8>;
+       pinctrl-names = "default";
+       vmmc-supply = <&vemmc_reg>;
+       status = "okay";
+};
+
+&sdhci_2 {
+       bus-width = <4>;
+       pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
+       pinctrl-names = "default";
+       vmmc-supply = <&ldo5_reg>;
+       cd-gpios = <&gpx3 4 0>;
+       cd-inverted;
+       status = "okay";
+};
+
+&serial_0 {
+       status = "okay";
+};
+
+&serial_1 {
+       status = "okay";
+};
+
+&serial_2 {
+       status = "okay";
+};
+
+&serial_3 {
+       status = "okay";
 };
index 10d3c173396e4cb67a2443f2d3e641c264bec168..3e5ba665d20009de0a974c9ceccb283e431b3b54 100644 (file)
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        reg = <0x900>;
+                       clocks = <&clock CLK_ARM_CLK>;
+                       clock-names = "cpu";
+                       clock-latency = <160000>;
+
+                       operating-points = <
+                               1200000 1250000
+                               1000000 1150000
+                               800000  1075000
+                               500000  975000
+                               400000  975000
+                               200000  950000
+                       >;
                        cooling-min-level = <4>;
                        cooling-max-level = <2>;
                        #cooling-cells = <2>; /* min followed by max */
index afc199d78cb9b3ed1d3cbdb5c433fd1617a4844e..8848400590184c4ff309564f3788a17a2bf4e9ad 100644 (file)
                        interrupt-parent = <&gpx2>;
                        interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
                        reg = <0x36>;
+
+                       maxim,over-heat-temp = <700>;
+                       maxim,over-volt = <4500>;
                };
        };
 
index 886cfca044ace2deecd63c1c1378891758d6d968..880917e508b240f73a9136d9678a4ec3d73f3bd9 100644 (file)
  * published by the Free Software Foundation.
 */
 
-/ {
-       pinctrl@11400000 {
-               gpa0: gpa0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
+&pinctrl_0 {
+       gpa0: gpa0 {
+               gpio-controller;
+               #gpio-cells = <2>;
 
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpa1: gpa1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpa2: gpa2 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpb0: gpb0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpb1: gpb1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpb2: gpb2 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpb3: gpb3 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpc0: gpc0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpc1: gpc1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpc2: gpc2 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpc3: gpc3 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpd0: gpd0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpd1: gpd1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpy0: gpy0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-               };
-
-               gpy1: gpy1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-               };
-
-               gpy2: gpy2 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-               };
-
-               gpy3: gpy3 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-               };
-
-               gpy4: gpy4 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-               };
-
-               gpy5: gpy5 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-               };
-
-               gpy6: gpy6 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-               };
-
-               gpc4: gpc4 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpx0: gpx0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       interrupt-parent = <&combiner>;
-                       #interrupt-cells = <2>;
-                       interrupts = <23 0>, <24 0>, <25 0>, <25 1>,
-                                    <26 0>, <26 1>, <27 0>, <27 1>;
-               };
-
-               gpx1: gpx1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       interrupt-parent = <&combiner>;
-                       #interrupt-cells = <2>;
-                       interrupts = <28 0>, <28 1>, <29 0>, <29 1>,
-                                    <30 0>, <30 1>, <31 0>, <31 1>;
-               };
-
-               gpx2: gpx2 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpx3: gpx3 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               uart0_data: uart0-data {
-                       samsung,pins = "gpa0-0", "gpa0-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               uart0_fctl: uart0-fctl {
-                       samsung,pins = "gpa0-2", "gpa0-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c2_bus: i2c2-bus {
-                       samsung,pins = "gpa0-6", "gpa0-7";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c2_hs_bus: i2c2-hs-bus {
-                       samsung,pins = "gpa0-6", "gpa0-7";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               uart2_data: uart2-data {
-                       samsung,pins = "gpa1-0", "gpa1-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               uart2_fctl: uart2-fctl {
-                       samsung,pins = "gpa1-2", "gpa1-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c3_bus: i2c3-bus {
-                       samsung,pins = "gpa1-2", "gpa1-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c3_hs_bus: i2c3-hs-bus {
-                       samsung,pins = "gpa1-2", "gpa1-3";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               uart3_data: uart3-data {
-                       samsung,pins = "gpa1-4", "gpa1-4";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               spi0_bus: spi0-bus {
-                       samsung,pins = "gpa2-0", "gpa2-2", "gpa2-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c4_bus: i2c4-bus {
-                       samsung,pins = "gpa2-0", "gpa2-1";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c5_bus: i2c5-bus {
-                       samsung,pins = "gpa2-2", "gpa2-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               spi1_bus: spi1-bus {
-                       samsung,pins = "gpa2-4", "gpa2-6", "gpa2-7";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2s1_bus: i2s1-bus {
-                       samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
-                                       "gpb0-4";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               pcm1_bus: pcm1-bus {
-                       samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
-                                       "gpb0-4";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               ac97_bus: ac97-bus {
-                       samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
-                                       "gpb0-4";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2s2_bus: i2s2-bus {
-                       samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
-                                       "gpb1-4";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               pcm2_bus: pcm2-bus {
-                       samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
-                                       "gpb1-4";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               spdif_bus: spdif-bus {
-                       samsung,pins = "gpb1-0", "gpb1-1";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               spi2_bus: spi2-bus {
-                       samsung,pins = "gpb1-1", "gpb1-3", "gpb1-4";
-                       samsung,pin-function = <5>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c6_bus: i2c6-bus {
-                       samsung,pins = "gpb1-3", "gpb1-4";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               pwm0_out: pwm0-out {
-                       samsung,pins = "gpb2-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               pwm1_out: pwm1-out {
-                       samsung,pins = "gpb2-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               pwm2_out: pwm2-out {
-                       samsung,pins = "gpb2-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               pwm3_out: pwm3-out {
-                       samsung,pins = "gpb2-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c7_bus: i2c7-bus {
-                       samsung,pins = "gpb2-2", "gpb2-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c0_bus: i2c0-bus {
-                       samsung,pins = "gpb3-0", "gpb3-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c1_bus: i2c1-bus {
-                       samsung,pins = "gpb3-2", "gpb3-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c0_hs_bus: i2c0-hs-bus {
-                       samsung,pins = "gpb3-0", "gpb3-1";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c1_hs_bus: i2c1-hs-bus {
-                       samsung,pins = "gpb3-2", "gpb3-3";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               sd0_clk: sd0-clk {
-                       samsung,pins = "gpc0-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd0_cmd: sd0-cmd {
-                       samsung,pins = "gpc0-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd0_cd: sd0-cd {
-                       samsung,pins = "gpc0-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd0_bus1: sd0-bus-width1 {
-                       samsung,pins = "gpc0-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd0_bus4: sd0-bus-width4 {
-                       samsung,pins = "gpc0-3", "gpc0-4", "gpc0-5", "gpc0-6";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd0_bus8: sd0-bus-width8 {
-                       samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd1_clk: sd1-clk {
-                       samsung,pins = "gpc2-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd1_cmd: sd1-cmd {
-                       samsung,pins = "gpc2-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd1_cd: sd1-cd {
-                       samsung,pins = "gpc2-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd1_bus1: sd1-bus-width1 {
-                       samsung,pins = "gpc2-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd1_bus4: sd1-bus-width4 {
-                       samsung,pins = "gpc2-3", "gpc2-4", "gpc2-5", "gpc2-6";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd2_clk: sd2-clk {
-                       samsung,pins = "gpc3-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd2_cmd: sd2-cmd {
-                       samsung,pins = "gpc3-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd2_cd: sd2-cd {
-                       samsung,pins = "gpc3-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd2_bus1: sd2-bus-width1 {
-                       samsung,pins = "gpc3-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd2_bus4: sd2-bus-width4 {
-                       samsung,pins = "gpc3-3", "gpc3-4", "gpc3-5", "gpc3-6";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd2_bus8: sd2-bus-width8 {
-                       samsung,pins = "gpc4-3", "gpc4-4", "gpc4-5", "gpc4-6";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd3_clk: sd3-clk {
-                       samsung,pins = "gpc4-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd3_cmd: sd3-cmd {
-                       samsung,pins = "gpc4-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd3_cd: sd3-cd {
-                       samsung,pins = "gpc4-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd3_bus1: sd3-bus-width1 {
-                       samsung,pins = "gpc4-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd3_bus4: sd3-bus-width4 {
-                       samsung,pins = "gpc4-3", "gpc4-4", "gpc4-5", "gpc4-6";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               uart1_data: uart1-data {
-                       samsung,pins = "gpd0-0", "gpd0-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               uart1_fctl: uart1-fctl {
-                       samsung,pins = "gpd0-2", "gpd0-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               dp_hpd: dp_hpd {
-                       samsung,pins = "gpx0-7";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-       };
-
-       pinctrl@13400000 {
-               gpe0: gpe0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpe1: gpe1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpf0: gpf0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpf1: gpf1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpg0: gpg0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpg1: gpg1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpg2: gpg2 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gph0: gph0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gph1: gph1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               cam_gpio_a: cam-gpio-a {
-                       samsung,pins = "gpe0-0", "gpe0-1", "gpe0-2", "gpe0-3",
-                                      "gpe0-4", "gpe0-5", "gpe0-6", "gpe0-7",
-                                      "gpe1-0", "gpe1-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               cam_gpio_b: cam-gpio-b {
-                       samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3",
-                                      "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               cam_i2c2_bus: cam-i2c2-bus {
-                       samsung,pins = "gpe0-6", "gpe1-0";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               cam_spi1_bus: cam-spi1-bus {
-                       samsung,pins = "gpe0-4", "gpe0-5", "gpf0-2", "gpf0-3";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               cam_i2c1_bus: cam-i2c1-bus {
-                       samsung,pins = "gpf0-2", "gpf0-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               cam_i2c0_bus: cam-i2c0-bus {
-                       samsung,pins = "gpf0-0", "gpf0-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               cam_spi0_bus: cam-spi0-bus {
-                       samsung,pins = "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               cam_bayrgb_bus: cam-bayrgb-bus {
-                       samsung,pins = "gpg0-0", "gpg0-1", "gpg0-2", "gpg0-3",
-                                      "gpg0-4", "gpg0-5", "gpg0-6", "gpg0-7",
-                                      "gpg1-0", "gpg1-1", "gpg1-2", "gpg1-3",
-                                      "gpg1-4", "gpg1-5", "gpg1-6", "gpg1-7",
-                                      "gpg2-0", "gpg2-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               cam_port_a: cam-port-a {
-                       samsung,pins = "gph0-0", "gph0-1", "gph0-2", "gph0-3",
-                                      "gph1-0", "gph1-1", "gph1-2", "gph1-3",
-                                      "gph1-4", "gph1-5", "gph1-6", "gph1-7";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-       };
-
-       pinctrl@10d10000 {
-               gpv0: gpv0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpv1: gpv1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpv2: gpv2 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpv3: gpv3 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpv4: gpv4 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               c2c_rxd: c2c-rxd {
-                       samsung,pins = "gpv0-0", "gpv0-1", "gpv0-2", "gpv0-3",
-                                      "gpv0-4", "gpv0-5", "gpv0-6", "gpv0-7",
-                                      "gpv1-0", "gpv1-1", "gpv1-2", "gpv1-3",
-                                      "gpv1-4", "gpv1-5", "gpv1-6", "gpv1-7";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               c2c_txd: c2c-txd {
-                       samsung,pins = "gpv2-0", "gpv2-1", "gpv2-2", "gpv2-3",
-                                      "gpv2-4", "gpv2-5", "gpv2-6", "gpv2-7",
-                                      "gpv3-0", "gpv3-1", "gpv3-2", "gpv3-3",
-                                      "gpv3-4", "gpv3-5", "gpv3-6", "gpv3-7";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-       };
-
-       pinctrl@03860000 {
-               gpz: gpz {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               i2s0_bus: i2s0-bus {
-                       samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
-                                       "gpz-4", "gpz-5", "gpz-6";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpa1: gpa1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpa2: gpa2 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpb0: gpb0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpb1: gpb1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpb2: gpb2 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpb3: gpb3 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpc0: gpc0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpc1: gpc1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpc2: gpc2 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpc3: gpc3 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpd0: gpd0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpd1: gpd1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpy0: gpy0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpy1: gpy1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpy2: gpy2 {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpy3: gpy3 {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpy4: gpy4 {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpy5: gpy5 {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpy6: gpy6 {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpc4: gpc4 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpx0: gpx0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               interrupt-parent = <&combiner>;
+               #interrupt-cells = <2>;
+               interrupts = <23 0>, <24 0>, <25 0>, <25 1>,
+                            <26 0>, <26 1>, <27 0>, <27 1>;
+       };
+
+       gpx1: gpx1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               interrupt-parent = <&combiner>;
+               #interrupt-cells = <2>;
+               interrupts = <28 0>, <28 1>, <29 0>, <29 1>,
+                            <30 0>, <30 1>, <31 0>, <31 1>;
+       };
+
+       gpx2: gpx2 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpx3: gpx3 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       uart0_data: uart0-data {
+               samsung,pins = "gpa0-0", "gpa0-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       uart0_fctl: uart0-fctl {
+               samsung,pins = "gpa0-2", "gpa0-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c2_bus: i2c2-bus {
+               samsung,pins = "gpa0-6", "gpa0-7";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c2_hs_bus: i2c2-hs-bus {
+               samsung,pins = "gpa0-6", "gpa0-7";
+               samsung,pin-function = <4>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       uart2_data: uart2-data {
+               samsung,pins = "gpa1-0", "gpa1-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       uart2_fctl: uart2-fctl {
+               samsung,pins = "gpa1-2", "gpa1-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c3_bus: i2c3-bus {
+               samsung,pins = "gpa1-2", "gpa1-3";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c3_hs_bus: i2c3-hs-bus {
+               samsung,pins = "gpa1-2", "gpa1-3";
+               samsung,pin-function = <4>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       uart3_data: uart3-data {
+               samsung,pins = "gpa1-4", "gpa1-4";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       spi0_bus: spi0-bus {
+               samsung,pins = "gpa2-0", "gpa2-2", "gpa2-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c4_bus: i2c4-bus {
+               samsung,pins = "gpa2-0", "gpa2-1";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c5_bus: i2c5-bus {
+               samsung,pins = "gpa2-2", "gpa2-3";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       spi1_bus: spi1-bus {
+               samsung,pins = "gpa2-4", "gpa2-6", "gpa2-7";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2s1_bus: i2s1-bus {
+               samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
+                              "gpb0-4";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       pcm1_bus: pcm1-bus {
+               samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
+                              "gpb0-4";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       ac97_bus: ac97-bus {
+               samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
+                              "gpb0-4";
+               samsung,pin-function = <4>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2s2_bus: i2s2-bus {
+               samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
+                              "gpb1-4";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       pcm2_bus: pcm2-bus {
+               samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
+                              "gpb1-4";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       spdif_bus: spdif-bus {
+               samsung,pins = "gpb1-0", "gpb1-1";
+               samsung,pin-function = <4>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       spi2_bus: spi2-bus {
+               samsung,pins = "gpb1-1", "gpb1-3", "gpb1-4";
+               samsung,pin-function = <5>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c6_bus: i2c6-bus {
+               samsung,pins = "gpb1-3", "gpb1-4";
+               samsung,pin-function = <4>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       pwm0_out: pwm0-out {
+               samsung,pins = "gpb2-0";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       pwm1_out: pwm1-out {
+               samsung,pins = "gpb2-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       pwm2_out: pwm2-out {
+               samsung,pins = "gpb2-2";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       pwm3_out: pwm3-out {
+               samsung,pins = "gpb2-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c7_bus: i2c7-bus {
+               samsung,pins = "gpb2-2", "gpb2-3";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c0_bus: i2c0-bus {
+               samsung,pins = "gpb3-0", "gpb3-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c1_bus: i2c1-bus {
+               samsung,pins = "gpb3-2", "gpb3-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c0_hs_bus: i2c0-hs-bus {
+               samsung,pins = "gpb3-0", "gpb3-1";
+               samsung,pin-function = <4>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c1_hs_bus: i2c1-hs-bus {
+               samsung,pins = "gpb3-2", "gpb3-3";
+               samsung,pin-function = <4>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       sd0_clk: sd0-clk {
+               samsung,pins = "gpc0-0";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd0_cmd: sd0-cmd {
+               samsung,pins = "gpc0-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd0_cd: sd0-cd {
+               samsung,pins = "gpc0-2";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd0_bus1: sd0-bus-width1 {
+               samsung,pins = "gpc0-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd0_bus4: sd0-bus-width4 {
+               samsung,pins = "gpc0-3", "gpc0-4", "gpc0-5", "gpc0-6";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd0_bus8: sd0-bus-width8 {
+               samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd1_clk: sd1-clk {
+               samsung,pins = "gpc2-0";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd1_cmd: sd1-cmd {
+               samsung,pins = "gpc2-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd1_cd: sd1-cd {
+               samsung,pins = "gpc2-2";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd1_bus1: sd1-bus-width1 {
+               samsung,pins = "gpc2-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd1_bus4: sd1-bus-width4 {
+               samsung,pins = "gpc2-3", "gpc2-4", "gpc2-5", "gpc2-6";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd2_clk: sd2-clk {
+               samsung,pins = "gpc3-0";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd2_cmd: sd2-cmd {
+               samsung,pins = "gpc3-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd2_cd: sd2-cd {
+               samsung,pins = "gpc3-2";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd2_bus1: sd2-bus-width1 {
+               samsung,pins = "gpc3-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd2_bus4: sd2-bus-width4 {
+               samsung,pins = "gpc3-3", "gpc3-4", "gpc3-5", "gpc3-6";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd2_bus8: sd2-bus-width8 {
+               samsung,pins = "gpc4-3", "gpc4-4", "gpc4-5", "gpc4-6";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd3_clk: sd3-clk {
+               samsung,pins = "gpc4-0";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd3_cmd: sd3-cmd {
+               samsung,pins = "gpc4-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd3_cd: sd3-cd {
+               samsung,pins = "gpc4-2";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd3_bus1: sd3-bus-width1 {
+               samsung,pins = "gpc4-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd3_bus4: sd3-bus-width4 {
+               samsung,pins = "gpc4-3", "gpc4-4", "gpc4-5", "gpc4-6";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       uart1_data: uart1-data {
+               samsung,pins = "gpd0-0", "gpd0-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       uart1_fctl: uart1-fctl {
+               samsung,pins = "gpd0-2", "gpd0-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       dp_hpd: dp_hpd {
+               samsung,pins = "gpx0-7";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+};
+
+&pinctrl_1 {
+       gpe0: gpe0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpe1: gpe1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpf0: gpf0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpf1: gpf1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpg0: gpg0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpg1: gpg1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpg2: gpg2 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gph0: gph0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gph1: gph1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       cam_gpio_a: cam-gpio-a {
+               samsung,pins = "gpe0-0", "gpe0-1", "gpe0-2", "gpe0-3",
+                              "gpe0-4", "gpe0-5", "gpe0-6", "gpe0-7",
+                              "gpe1-0", "gpe1-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       cam_gpio_b: cam-gpio-b {
+               samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3",
+                              "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       cam_i2c2_bus: cam-i2c2-bus {
+               samsung,pins = "gpe0-6", "gpe1-0";
+               samsung,pin-function = <4>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       cam_spi1_bus: cam-spi1-bus {
+               samsung,pins = "gpe0-4", "gpe0-5", "gpf0-2", "gpf0-3";
+               samsung,pin-function = <4>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       cam_i2c1_bus: cam-i2c1-bus {
+               samsung,pins = "gpf0-2", "gpf0-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       cam_i2c0_bus: cam-i2c0-bus {
+               samsung,pins = "gpf0-0", "gpf0-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       cam_spi0_bus: cam-spi0-bus {
+               samsung,pins = "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       cam_bayrgb_bus: cam-bayrgb-bus {
+               samsung,pins = "gpg0-0", "gpg0-1", "gpg0-2", "gpg0-3",
+                              "gpg0-4", "gpg0-5", "gpg0-6", "gpg0-7",
+                              "gpg1-0", "gpg1-1", "gpg1-2", "gpg1-3",
+                              "gpg1-4", "gpg1-5", "gpg1-6", "gpg1-7",
+                              "gpg2-0", "gpg2-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       cam_port_a: cam-port-a {
+               samsung,pins = "gph0-0", "gph0-1", "gph0-2", "gph0-3",
+                              "gph1-0", "gph1-1", "gph1-2", "gph1-3",
+                              "gph1-4", "gph1-5", "gph1-6", "gph1-7";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+};
+
+&pinctrl_2 {
+       gpv0: gpv0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpv1: gpv1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpv2: gpv2 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpv3: gpv3 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpv4: gpv4 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       c2c_rxd: c2c-rxd {
+               samsung,pins = "gpv0-0", "gpv0-1", "gpv0-2", "gpv0-3",
+                              "gpv0-4", "gpv0-5", "gpv0-6", "gpv0-7",
+                              "gpv1-0", "gpv1-1", "gpv1-2", "gpv1-3",
+                              "gpv1-4", "gpv1-5", "gpv1-6", "gpv1-7";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       c2c_txd: c2c-txd {
+               samsung,pins = "gpv2-0", "gpv2-1", "gpv2-2", "gpv2-3",
+                              "gpv2-4", "gpv2-5", "gpv2-6", "gpv2-7",
+                              "gpv3-0", "gpv3-1", "gpv3-2", "gpv3-3",
+                              "gpv3-4", "gpv3-5", "gpv3-6", "gpv3-7";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+};
+
+&pinctrl_3 {
+       gpz: gpz {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       i2s0_bus: i2s0-bus {
+               samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
+                               "gpz-4", "gpz-5", "gpz-6";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
        };
 };
index bf9bee67c4167500b177bcabb01ab4b06b072ab5..4a1f88300a281b8248cad85646e98dca6b4d47cf 100644 (file)
@@ -19,7 +19,6 @@
 
 #include <dt-bindings/clock/exynos5250.h>
 #include "exynos5.dtsi"
-#include "exynos5250-pinctrl.dtsi"
 #include "exynos4-cpu-thermal.dtsi"
 #include <dt-bindings/clock/exynos-audss-clk.h>
 
        clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>;
        clock-names = "uart", "clk_uart_baud0";
 };
+
+#include "exynos5250-pinctrl.dtsi"
index be3e02530b42881b2cbe6e35d7d16f0a4f547b77..cebeaab3abecd4177566e45d614ef6da6d8405ab 100644 (file)
 };
 
 &uart0 {
-               status = "okay";
+       status = "okay";
 };
 
 &uart1 {
-               status = "okay";
+       status = "okay";
 };
 
 &uart2 {
-               status = "okay";
+       status = "okay";
 };
index 8b153166ebdb430e6c827ab1a80d5bd9da316e47..130563b2ca95b6de7b365d7c93e124c9e5e8edc0 100644 (file)
  * published by the Free Software Foundation.
 */
 
-/ {
-       pinctrl@13400000 {
-               gpy7: gpy7 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpx0: gpx0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       interrupt-parent = <&combiner>;
-                       #interrupt-cells = <2>;
-                       interrupts = <23 0>, <24 0>, <25 0>, <25 1>,
-                                    <26 0>, <26 1>, <27 0>, <27 1>;
-               };
-
-               gpx1: gpx1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       interrupt-parent = <&combiner>;
-                       #interrupt-cells = <2>;
-                       interrupts = <28 0>, <28 1>, <29 0>, <29 1>,
-                                    <30 0>, <30 1>, <31 0>, <31 1>;
-               };
-
-               gpx2: gpx2 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpx3: gpx3 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               dp_hpd: dp_hpd {
-                       samsung,pins = "gpx0-7";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-       };
-
-       pinctrl@13410000 {
-               gpc0: gpc0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpc1: gpc1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpc2: gpc2 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpc3: gpc3 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpc4: gpc4 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpd1: gpd1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpy0: gpy0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-               };
-
-               gpy1: gpy1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-               };
-
-               gpy2: gpy2 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-               };
-
-               gpy3: gpy3 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-               };
-
-               gpy4: gpy4 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-               };
-
-               gpy5: gpy5 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-               };
-
-               gpy6: gpy6 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-               };
-
-               sd0_clk: sd0-clk {
-                       samsung,pins = "gpc0-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd0_cmd: sd0-cmd {
-                       samsung,pins = "gpc0-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd0_cd: sd0-cd {
-                       samsung,pins = "gpc0-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd0_bus1: sd0-bus-width1 {
-                       samsung,pins = "gpc0-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd0_bus4: sd0-bus-width4 {
-                       samsung,pins = "gpc0-4", "gpc0-5", "gpc0-6";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd0_bus8: sd0-bus-width8 {
-                       samsung,pins = "gpc3-0", "gpc3-1", "gpc3-2", "gpc3-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd1_clk: sd1-clk {
-                       samsung,pins = "gpc1-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd0_rclk: sd0-rclk {
-                       samsung,pins = "gpc0-7";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <1>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd1_cmd: sd1-cmd {
-                       samsung,pins = "gpc1-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd1_cd: sd1-cd {
-                       samsung,pins = "gpc1-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd1_int: sd1-int {
-                       samsung,pins = "gpd1-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               sd1_bus1: sd1-bus-width1 {
-                       samsung,pins = "gpc1-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd1_bus4: sd1-bus-width4 {
-                       samsung,pins = "gpc1-4", "gpc1-5", "gpc1-6";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd1_bus8: sd1-bus-width8 {
-                       samsung,pins = "gpd1-4", "gpd1-5", "gpd1-6", "gpd1-7";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd2_clk: sd2-clk {
-                       samsung,pins = "gpc2-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd2_cmd: sd2-cmd {
-                       samsung,pins = "gpc2-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd2_cd: sd2-cd {
-                       samsung,pins = "gpc2-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd2_bus1: sd2-bus-width1 {
-                       samsung,pins = "gpc2-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-
-               sd2_bus4: sd2-bus-width4 {
-                       samsung,pins = "gpc2-4", "gpc2-5", "gpc2-6";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
-               };
-       };
-
-       pinctrl@14000000 {
-               gpe0: gpe0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpe1: gpe1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpf0: gpf0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpf1: gpf1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpg0: gpg0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpg1: gpg1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpg2: gpg2 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpj4: gpj4 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               cam_gpio_a: cam-gpio-a {
-                       samsung,pins = "gpe0-0", "gpe0-1", "gpe0-2", "gpe0-3",
-                                      "gpe0-4", "gpe0-5", "gpe0-6", "gpe0-7",
-                                      "gpe1-0", "gpe1-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               cam_gpio_b: cam-gpio-b {
-                       samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3",
-                                      "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               cam_i2c2_bus: cam-i2c2-bus {
-                       samsung,pins = "gpf0-4", "gpf0-5";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-               cam_spi1_bus: cam-spi1-bus {
-                       samsung,pins = "gpe0-4", "gpe0-5", "gpf0-2", "gpf0-3";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               cam_i2c1_bus: cam-i2c1-bus {
-                       samsung,pins = "gpf0-2", "gpf0-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               cam_i2c0_bus: cam-i2c0-bus {
-                       samsung,pins = "gpf0-0", "gpf0-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               cam_spi0_bus: cam-spi0-bus {
-                       samsung,pins = "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               cam_bayrgb_bus: cam-bayrgb-bus {
-                       samsung,pins = "gpg0-0", "gpg0-1", "gpg0-2", "gpg0-3",
-                                      "gpg0-4", "gpg0-5", "gpg0-6", "gpg0-7",
-                                      "gpg1-0", "gpg1-1", "gpg1-2", "gpg1-3",
-                                      "gpg1-4", "gpg1-5", "gpg1-6", "gpg1-7",
-                                      "gpg2-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-       };
-
-       pinctrl@14010000 {
-               gpa0: gpa0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpa1: gpa1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpa2: gpa2 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpb0: gpb0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpb1: gpb1 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpb2: gpb2 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpb3: gpb3 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpb4: gpb4 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gph0: gph0 {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               uart0_data: uart0-data {
-                       samsung,pins = "gpa0-0", "gpa0-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               uart0_fctl: uart0-fctl {
-                       samsung,pins = "gpa0-2", "gpa0-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               uart1_data: uart1-data {
-                       samsung,pins = "gpa0-4", "gpa0-5";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               uart1_fctl: uart1-fctl {
-                       samsung,pins = "gpa0-6", "gpa0-7";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c2_bus: i2c2-bus {
-                       samsung,pins = "gpa0-6", "gpa0-7";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               uart2_data: uart2-data {
-                       samsung,pins = "gpa1-0", "gpa1-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               uart2_fctl: uart2-fctl {
-                       samsung,pins = "gpa1-2", "gpa1-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c3_bus: i2c3-bus {
-                       samsung,pins = "gpa1-2", "gpa1-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               uart3_data: uart3-data {
-                       samsung,pins = "gpa1-4", "gpa1-5";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               spi0_bus: spi0-bus {
-                       samsung,pins = "gpa2-0", "gpa2-1", "gpa2-2", "gpa2-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               spi1_bus: spi1-bus {
-                       samsung,pins = "gpa2-4", "gpa2-6", "gpa2-7";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c4_hs_bus: i2c4-hs-bus {
-                       samsung,pins = "gpa2-0", "gpa2-1";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c5_hs_bus: i2c5-hs-bus {
-                       samsung,pins = "gpa2-2", "gpa2-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2s1_bus: i2s1-bus {
-                       samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
-                                       "gpb0-4";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               pcm1_bus: pcm1-bus {
-                       samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
-                                       "gpb0-4";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2s2_bus: i2s2-bus {
-                       samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
-                                       "gpb1-4";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               pcm2_bus: pcm2-bus {
-                       samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
-                                       "gpb1-4";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               spdif_bus: spdif-bus {
-                       samsung,pins = "gpb1-0", "gpb1-1";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               spi2_bus: spi2-bus {
-                       samsung,pins = "gpb1-1", "gpb1-3", "gpb1-4";
-                       samsung,pin-function = <5>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c6_hs_bus: i2c6-hs-bus {
-                       samsung,pins = "gpb1-3", "gpb1-4";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               pwm0_out: pwm0-out {
-                       samsung,pins = "gpb2-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               pwm1_out: pwm1-out {
-                       samsung,pins = "gpb2-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               pwm2_out: pwm2-out {
-                       samsung,pins = "gpb2-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               pwm3_out: pwm3-out {
-                       samsung,pins = "gpb2-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c7_hs_bus: i2c7-hs-bus {
-                       samsung,pins = "gpb2-2", "gpb2-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c0_bus: i2c0-bus {
-                       samsung,pins = "gpb3-0", "gpb3-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c1_bus: i2c1-bus {
-                       samsung,pins = "gpb3-2", "gpb3-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c8_hs_bus: i2c8-hs-bus {
-                       samsung,pins = "gpb3-4", "gpb3-5";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c9_hs_bus: i2c9-hs-bus {
-                       samsung,pins = "gpb3-6", "gpb3-7";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               i2c10_hs_bus: i2c10-hs-bus {
-                       samsung,pins = "gpb4-0", "gpb4-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-       };
-
-       pinctrl@03860000 {
-               gpz: gpz {
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               i2s0_bus: i2s0-bus {
-                       samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
-                                       "gpz-4", "gpz-5", "gpz-6";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
+&pinctrl_0 {
+       gpy7: gpy7 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpx0: gpx0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               interrupt-parent = <&combiner>;
+               #interrupt-cells = <2>;
+               interrupts = <23 0>, <24 0>, <25 0>, <25 1>,
+                            <26 0>, <26 1>, <27 0>, <27 1>;
+       };
+
+       gpx1: gpx1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               interrupt-parent = <&combiner>;
+               #interrupt-cells = <2>;
+               interrupts = <28 0>, <28 1>, <29 0>, <29 1>,
+                            <30 0>, <30 1>, <31 0>, <31 1>;
+       };
+
+       gpx2: gpx2 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpx3: gpx3 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       dp_hpd: dp_hpd {
+               samsung,pins = "gpx0-7";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+};
+
+&pinctrl_1 {
+       gpc0: gpc0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpc1: gpc1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpc2: gpc2 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpc3: gpc3 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpc4: gpc4 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpd1: gpd1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpy0: gpy0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpy1: gpy1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpy2: gpy2 {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpy3: gpy3 {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpy4: gpy4 {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpy5: gpy5 {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gpy6: gpy6 {
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       sd0_clk: sd0-clk {
+               samsung,pins = "gpc0-0";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd0_cmd: sd0-cmd {
+               samsung,pins = "gpc0-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd0_cd: sd0-cd {
+               samsung,pins = "gpc0-2";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd0_bus1: sd0-bus-width1 {
+               samsung,pins = "gpc0-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd0_bus4: sd0-bus-width4 {
+               samsung,pins = "gpc0-4", "gpc0-5", "gpc0-6";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd0_bus8: sd0-bus-width8 {
+               samsung,pins = "gpc3-0", "gpc3-1", "gpc3-2", "gpc3-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd1_clk: sd1-clk {
+               samsung,pins = "gpc1-0";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd0_rclk: sd0-rclk {
+               samsung,pins = "gpc0-7";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <1>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd1_cmd: sd1-cmd {
+               samsung,pins = "gpc1-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd1_cd: sd1-cd {
+               samsung,pins = "gpc1-2";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd1_int: sd1-int {
+               samsung,pins = "gpd1-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       sd1_bus1: sd1-bus-width1 {
+               samsung,pins = "gpc1-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd1_bus4: sd1-bus-width4 {
+               samsung,pins = "gpc1-4", "gpc1-5", "gpc1-6";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd1_bus8: sd1-bus-width8 {
+               samsung,pins = "gpd1-4", "gpd1-5", "gpd1-6", "gpd1-7";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd2_clk: sd2-clk {
+               samsung,pins = "gpc2-0";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd2_cmd: sd2-cmd {
+               samsung,pins = "gpc2-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd2_cd: sd2-cd {
+               samsung,pins = "gpc2-2";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd2_bus1: sd2-bus-width1 {
+               samsung,pins = "gpc2-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd2_bus4: sd2-bus-width4 {
+               samsung,pins = "gpc2-4", "gpc2-5", "gpc2-6";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+};
+
+&pinctrl_2 {
+       gpe0: gpe0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpe1: gpe1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpf0: gpf0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpf1: gpf1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpg0: gpg0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpg1: gpg1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpg2: gpg2 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpj4: gpj4 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       cam_gpio_a: cam-gpio-a {
+               samsung,pins = "gpe0-0", "gpe0-1", "gpe0-2", "gpe0-3",
+                              "gpe0-4", "gpe0-5", "gpe0-6", "gpe0-7",
+                              "gpe1-0", "gpe1-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       cam_gpio_b: cam-gpio-b {
+               samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3",
+                              "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       cam_i2c2_bus: cam-i2c2-bus {
+               samsung,pins = "gpf0-4", "gpf0-5";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       cam_spi1_bus: cam-spi1-bus {
+               samsung,pins = "gpe0-4", "gpe0-5", "gpf0-2", "gpf0-3";
+               samsung,pin-function = <4>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       cam_i2c1_bus: cam-i2c1-bus {
+               samsung,pins = "gpf0-2", "gpf0-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       cam_i2c0_bus: cam-i2c0-bus {
+               samsung,pins = "gpf0-0", "gpf0-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       cam_spi0_bus: cam-spi0-bus {
+               samsung,pins = "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       cam_bayrgb_bus: cam-bayrgb-bus {
+               samsung,pins = "gpg0-0", "gpg0-1", "gpg0-2", "gpg0-3",
+                              "gpg0-4", "gpg0-5", "gpg0-6", "gpg0-7",
+                              "gpg1-0", "gpg1-1", "gpg1-2", "gpg1-3",
+                              "gpg1-4", "gpg1-5", "gpg1-6", "gpg1-7",
+                              "gpg2-0";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+};
+
+&pinctrl_3 {
+       gpa0: gpa0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpa1: gpa1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpa2: gpa2 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpb0: gpb0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpb1: gpb1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpb2: gpb2 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpb3: gpb3 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpb4: gpb4 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gph0: gph0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       uart0_data: uart0-data {
+               samsung,pins = "gpa0-0", "gpa0-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       uart0_fctl: uart0-fctl {
+               samsung,pins = "gpa0-2", "gpa0-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       uart1_data: uart1-data {
+               samsung,pins = "gpa0-4", "gpa0-5";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       uart1_fctl: uart1-fctl {
+               samsung,pins = "gpa0-6", "gpa0-7";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c2_bus: i2c2-bus {
+               samsung,pins = "gpa0-6", "gpa0-7";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       uart2_data: uart2-data {
+               samsung,pins = "gpa1-0", "gpa1-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       uart2_fctl: uart2-fctl {
+               samsung,pins = "gpa1-2", "gpa1-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c3_bus: i2c3-bus {
+               samsung,pins = "gpa1-2", "gpa1-3";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       uart3_data: uart3-data {
+               samsung,pins = "gpa1-4", "gpa1-5";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       spi0_bus: spi0-bus {
+               samsung,pins = "gpa2-0", "gpa2-1", "gpa2-2", "gpa2-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       spi1_bus: spi1-bus {
+               samsung,pins = "gpa2-4", "gpa2-6", "gpa2-7";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c4_hs_bus: i2c4-hs-bus {
+               samsung,pins = "gpa2-0", "gpa2-1";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c5_hs_bus: i2c5-hs-bus {
+               samsung,pins = "gpa2-2", "gpa2-3";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2s1_bus: i2s1-bus {
+               samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
+                              "gpb0-4";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       pcm1_bus: pcm1-bus {
+               samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
+                              "gpb0-4";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2s2_bus: i2s2-bus {
+               samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
+                              "gpb1-4";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       pcm2_bus: pcm2-bus {
+               samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
+                              "gpb1-4";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       spdif_bus: spdif-bus {
+               samsung,pins = "gpb1-0", "gpb1-1";
+               samsung,pin-function = <4>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       spi2_bus: spi2-bus {
+               samsung,pins = "gpb1-1", "gpb1-3", "gpb1-4";
+               samsung,pin-function = <5>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c6_hs_bus: i2c6-hs-bus {
+               samsung,pins = "gpb1-3", "gpb1-4";
+               samsung,pin-function = <4>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       pwm0_out: pwm0-out {
+               samsung,pins = "gpb2-0";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       pwm1_out: pwm1-out {
+               samsung,pins = "gpb2-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       pwm2_out: pwm2-out {
+               samsung,pins = "gpb2-2";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       pwm3_out: pwm3-out {
+               samsung,pins = "gpb2-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c7_hs_bus: i2c7-hs-bus {
+               samsung,pins = "gpb2-2", "gpb2-3";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c0_bus: i2c0-bus {
+               samsung,pins = "gpb3-0", "gpb3-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c1_bus: i2c1-bus {
+               samsung,pins = "gpb3-2", "gpb3-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c8_hs_bus: i2c8-hs-bus {
+               samsung,pins = "gpb3-4", "gpb3-5";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c9_hs_bus: i2c9-hs-bus {
+               samsung,pins = "gpb3-6", "gpb3-7";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c10_hs_bus: i2c10-hs-bus {
+               samsung,pins = "gpb4-0", "gpb4-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+};
+
+&pinctrl_4 {
+       gpz: gpz {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       i2s0_bus: i2s0-bus {
+               samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
+                               "gpz-4", "gpz-5", "gpz-6";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
        };
 };
index 534f27ceb10b04f0c7a485029827ba2620a88ca3..df9aee92ecf4d71c714e763665013e7d2f6f4591 100644 (file)
@@ -15,7 +15,6 @@
 
 #include <dt-bindings/clock/exynos5420.h>
 #include "exynos5.dtsi"
-#include "exynos5420-pinctrl.dtsi"
 
 #include <dt-bindings/clock/exynos-audss-clk.h>
 
        clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>;
        clock-names = "uart", "clk_uart_baud0";
 };
+
+#include "exynos5420-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/exynos5422-cpu-thermal.dtsi b/arch/arm/boot/dts/exynos5422-cpu-thermal.dtsi
new file mode 100644 (file)
index 0000000..2b289d7
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Device tree sources for Exynos5422 thermal zone
+ *
+ * Copyright (c) 2015 Lukasz Majewski <l.majewski@samsung.com>
+ *                     Anand Moon <linux.amoon@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ */
+
+#include <dt-bindings/thermal/thermal.h>
+
+/ {
+       thermal-zones {
+               cpu0_thermal: cpu0-thermal {
+                       thermal-sensors = <&tmu_cpu0 0>;
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       trips {
+                               cpu_alert0: cpu-alert-0 {
+                                       temperature = <50000>; /* millicelsius */
+                                       hysteresis = <5000>; /* millicelsius */
+                                       type = "active";
+                               };
+                               cpu_alert1: cpu-alert-1 {
+                                       temperature = <60000>; /* millicelsius */
+                                       hysteresis = <5000>; /* millicelsius */
+                                       type = "active";
+                               };
+                               cpu_alert2: cpu-alert-2 {
+                                       temperature = <70000>; /* millicelsius */
+                                       hysteresis = <5000>; /* millicelsius */
+                                       type = "active";
+                               };
+                               cpu_crit0: cpu-crit-0 {
+                                       temperature = <120000>; /* millicelsius */
+                                       hysteresis = <0>; /* millicelsius */
+                                       type = "critical";
+                               };
+                       };
+                       cooling-maps {
+                               map0 {
+                                    trip = <&cpu_alert0>;
+                                    cooling-device = <&fan0 0 1>;
+                               };
+                               map1 {
+                                    trip = <&cpu_alert1>;
+                                    cooling-device = <&fan0 1 2>;
+                               };
+                               map2 {
+                                    trip = <&cpu_alert2>;
+                                    cooling-device = <&fan0 2 3>;
+                               };
+                       };
+               };
+       };
+};
index 8adf455744e9c8d0545fe69cd0038b9f1f450d16..1565667e6f699d171aa769a904a5993698c5203f 100644 (file)
@@ -15,6 +15,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/sound/samsung-i2s.h>
 #include "exynos5800.dtsi"
+#include "exynos5422-cpu-thermal.dtsi"
 
 / {
        memory {
                        clocks = <&i2s0 CLK_I2S_CDCLK>;
                };
        };
+
+       fan0: pwm-fan {
+               compatible = "pwm-fan";
+               pwms = <&pwm 0 20972 0>;
+               cooling-min-state = <0>;
+               cooling-max-state = <3>;
+               #cooling-cells = <2>;
+               cooling-levels = <0 130 170 230>;
+       };
 };
 
 &clock_audss {
         */
        pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>;
        pinctrl-names = "default";
+       samsung,pwm-outputs = <0>;
+       status = "okay";
+};
+
+&tmu_cpu0 {
+       vtmu-supply = <&ldo7_reg>;
+       status = "okay";
+};
+
+&tmu_cpu1 {
+       vtmu-supply = <&ldo7_reg>;
+       status = "okay";
+};
+
+&tmu_cpu2 {
+       vtmu-supply = <&ldo7_reg>;
+       status = "okay";
+};
+
+&tmu_cpu3 {
+       vtmu-supply = <&ldo7_reg>;
+       status = "okay";
+};
+
+&tmu_gpu {
+       vtmu-supply = <&ldo7_reg>;
        status = "okay";
 };
 
 &usbdrd_dwc3_1 {
        dr_mode = "otg";
 };
+
+&usbdrd3_0 {
+       vdd33-supply = <&ldo9_reg>;
+       vdd10-supply = <&ldo11_reg>;
+};
+
+&usbdrd3_1 {
+       vdd33-supply = <&ldo9_reg>;
+       vdd10-supply = <&ldo11_reg>;
+};
diff --git a/arch/arm/boot/dts/kirkwood-lswvl.dts b/arch/arm/boot/dts/kirkwood-lswvl.dts
new file mode 100644 (file)
index 0000000..09eed3c
--- /dev/null
@@ -0,0 +1,301 @@
+/*
+ * Device Tree file for Buffalo Linkstation LS-WVL/VL
+ *
+ * Copyright (C) 2015, rogershimizu@gmail.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.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6282.dtsi"
+
+/ {
+       model = "Buffalo Linkstation LS-WVL/VL";
+       compatible = "buffalo,lswvl", "buffalo,lsvl", "marvell,kirkwood-88f6282", "marvell,kirkwood";
+
+       memory { /* 256 MB */
+               device_type = "memory";
+               reg = <0x00000000 0x10000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200n8 earlyprintk";
+               stdout-path = &uart0;
+       };
+
+       mbus {
+               pcie-controller {
+                       status = "okay";
+                       pcie@1,0 {
+                               status = "okay";
+                       };
+               };
+       };
+
+       ocp@f1000000 {
+               pinctrl: pin-controller@10000 {
+                       pmx_power_hdd0: pmx-power-hdd0 {
+                               marvell,pins = "mpp8";
+                               marvell,function = "gpio";
+                       };
+                       pmx_power_hdd1: pmx-power-hdd1 {
+                               marvell,pins = "mpp9";
+                               marvell,function = "gpio";
+                       };
+                       pmx_usb_vbus: pmx-usb-vbus {
+                               marvell,pins = "mpp12";
+                               marvell,function = "gpio";
+                       };
+                       pmx_fan_high: pmx-fan-high {
+                               marvell,pins = "mpp16";
+                               marvell,function = "gpio";
+                       };
+                       pmx_fan_low: pmx-fan-low {
+                               marvell,pins = "mpp17";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_hdderr0: pmx-led-hdderr0 {
+                               marvell,pins = "mpp34";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_hdderr1: pmx-led-hdderr1 {
+                               marvell,pins = "mpp35";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_alarm: pmx-led-alarm {
+                               marvell,pins = "mpp36";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_function_red: pmx-led-function-red {
+                               marvell,pins = "mpp37";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_info: pmx-led-info {
+                               marvell,pins = "mpp38";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_function_blue: pmx-led-function-blue {
+                               marvell,pins = "mpp39";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_power: pmx-led-power {
+                               marvell,pins = "mpp40";
+                               marvell,function = "gpio";
+                       };
+                       pmx_fan_lock: pmx-fan-lock {
+                               marvell,pins = "mpp43";
+                               marvell,function = "gpio";
+                       };
+                       pmx_button_function: pmx-button-function {
+                               marvell,pins = "mpp45";
+                               marvell,function = "gpio";
+                       };
+                       pmx_power_switch: pmx-power-switch {
+                               marvell,pins = "mpp46";
+                               marvell,function = "gpio";
+                       };
+                       pmx_power_auto_switch: pmx-power-auto-switch {
+                               marvell,pins = "mpp47";
+                               marvell,function = "gpio";
+                       };
+               };
+
+               serial@12000 {
+                       status = "okay";
+               };
+
+               sata@80000 {
+                       status = "okay";
+                       nr-ports = <2>;
+               };
+
+               spi@10600 {
+                       status = "okay";
+
+                       m25p40@0 {
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               compatible = "st,m25p40", "jedec,spi-nor";
+                               reg = <0>;
+                               spi-max-frequency = <25000000>;
+                               mode = <0>;
+
+                               partition@0 {
+                                       reg = <0x0 0x60000>;
+                                       label = "uboot";
+                                       read-only;
+                               };
+
+                               partition@60000 {
+                                       reg = <0x60000 0x10000>;
+                                       label = "dtb";
+                                       read-only;
+                               };
+
+                               partition@70000 {
+                                       reg = <0x70000 0x10000>;
+                                       label = "uboot_env";
+                               };
+                       };
+               };
+       };
+
+       gpio_keys {
+               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 = <KEY_OPTION>;
+                       gpios = <&gpio0 45 GPIO_ACTIVE_LOW>;
+               };
+
+               button@2 {
+                       label = "Power-on Switch";
+                       linux,code = <KEY_RESERVED>;
+                       linux,input-type = <5>;
+                       gpios = <&gpio0 46 GPIO_ACTIVE_LOW>;
+               };
+
+               button@3 {
+                       label = "Power-auto Switch";
+                       linux,code = <KEY_ESC>;
+                       linux,input-type = <5>;
+                       gpios = <&gpio0 47 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       gpio_leds {
+               compatible = "gpio-leds";
+               pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
+                            &pmx_led_info &pmx_led_power
+                            &pmx_led_function_blue
+                            &pmx_led_hdderr0
+                            &pmx_led_hdderr1>;
+               pinctrl-names = "default";
+
+               led@1 {
+                       label = "lswvl:red:alarm";
+                       gpios = <&gpio0 36 GPIO_ACTIVE_LOW>;
+               };
+
+               led@2 {
+                       label = "lswvl:red:func";
+                       gpios = <&gpio0 37 GPIO_ACTIVE_LOW>;
+               };
+
+               led@3 {
+                       label = "lswvl:amber:info";
+                       gpios = <&gpio0 38 GPIO_ACTIVE_LOW>;
+               };
+
+               led@4 {
+                       label = "lswvl:blue:func";
+                       gpios = <&gpio0 39 GPIO_ACTIVE_LOW>;
+               };
+
+               led@5 {
+                       label = "lswvl:blue:power";
+                       gpios = <&gpio0 40 GPIO_ACTIVE_LOW>;
+                       default-state = "keep";
+               };
+
+               led@6 {
+                       label = "lswvl:red:hdderr0";
+                       gpios = <&gpio0 34 GPIO_ACTIVE_LOW>;
+               };
+
+               led@7 {
+                       label = "lswvl:red:hdderr1";
+                       gpios = <&gpio0 35 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       gpio_fan {
+               compatible = "gpio-fan";
+               pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
+               pinctrl-names = "default";
+
+               gpios = <&gpio0 17 GPIO_ACTIVE_LOW
+                        &gpio0 16 GPIO_ACTIVE_LOW>;
+
+               gpio-fan,speed-map = <0 3
+                               1500 2
+                               3250 1
+                               5000 0>;
+
+               alarm-gpios = <&gpio0 43 GPIO_ACTIVE_HIGH>;
+       };
+
+       restart_poweroff {
+               compatible = "restart-poweroff";
+       };
+
+       regulators {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
+               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 12 GPIO_ACTIVE_HIGH>;
+               };
+               hdd_power0: regulator@2 {
+                       compatible = "regulator-fixed";
+                       reg = <2>;
+                       regulator-name = "HDD0 Power";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       enable-active-high;
+                       regulator-always-on;
+                       regulator-boot-on;
+                       gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
+               };
+               hdd_power1: regulator@3 {
+                       compatible = "regulator-fixed";
+                       reg = <3>;
+                       regulator-name = "HDD1 Power";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       enable-active-high;
+                       regulator-always-on;
+                       regulator-boot-on;
+                       gpio = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+&mdio {
+       status = "okay";
+
+       ethphy0: ethernet-phy@0 {
+               device_type = "ethernet-phy";
+               reg = <0>;
+       };
+};
+
+&eth0 {
+       status = "okay";
+
+       ethernet0-port@0 {
+               phy-handle = <&ethphy0>;
+       };
+};
diff --git a/arch/arm/boot/dts/kirkwood-lswxl.dts b/arch/arm/boot/dts/kirkwood-lswxl.dts
new file mode 100644 (file)
index 0000000..f5db16a
--- /dev/null
@@ -0,0 +1,301 @@
+/*
+ * Device Tree file for Buffalo Linkstation LS-WXL/WSXL
+ *
+ * Copyright (C) 2015, rogershimizu@gmail.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.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+
+/ {
+       model = "Buffalo Linkstation LS-WXL/WSXL";
+       compatible = "buffalo,lswxl", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+       memory { /* 128 MB */
+               device_type = "memory";
+               reg = <0x00000000 0x8000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200n8 earlyprintk";
+               stdout-path = &uart0;
+       };
+
+       mbus {
+               pcie-controller {
+                       status = "okay";
+                       pcie@1,0 {
+                               status = "okay";
+                       };
+               };
+       };
+
+       ocp@f1000000 {
+               pinctrl: pin-controller@10000 {
+                       pmx_power_hdd0: pmx-power-hdd0 {
+                               marvell,pins = "mpp28";
+                               marvell,function = "gpio";
+                       };
+                       pmx_power_hdd1: pmx-power-hdd1 {
+                               marvell,pins = "mpp29";
+                               marvell,function = "gpio";
+                       };
+                       pmx_usb_vbus: pmx-usb-vbus {
+                               marvell,pins = "mpp37";
+                               marvell,function = "gpio";
+                       };
+                       pmx_fan_high: pmx-fan-high {
+                               marvell,pins = "mpp47";
+                               marvell,function = "gpio";
+                       };
+                       pmx_fan_low: pmx-fan-low {
+                               marvell,pins = "mpp48";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_hdderr0: pmx-led-hdderr0 {
+                               marvell,pins = "mpp8";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_hdderr1: pmx-led-hdderr1 {
+                               marvell,pins = "mpp46";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_alarm: pmx-led-alarm {
+                               marvell,pins = "mpp49";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_function_red: pmx-led-function-red {
+                               marvell,pins = "mpp34";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_function_blue: pmx-led-function-blue {
+                               marvell,pins = "mpp36";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_info: pmx-led-info {
+                               marvell,pins = "mpp38";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_power: pmx-led-power {
+                               marvell,pins = "mpp39";
+                               marvell,function = "gpio";
+                       };
+                       pmx_fan_lock: pmx-fan-lock {
+                               marvell,pins = "mpp40";
+                               marvell,function = "gpio";
+                       };
+                       pmx_button_function: pmx-button-function {
+                               marvell,pins = "mpp41";
+                               marvell,function = "gpio";
+                       };
+                       pmx_power_switch: pmx-power-switch {
+                               marvell,pins = "mpp42";
+                               marvell,function = "gpio";
+                       };
+                       pmx_power_auto_switch: pmx-power-auto-switch {
+                               marvell,pins = "mpp43";
+                               marvell,function = "gpio";
+                       };
+               };
+
+               serial@12000 {
+                       status = "okay";
+               };
+
+               sata@80000 {
+                       status = "okay";
+                       nr-ports = <2>;
+               };
+
+               spi@10600 {
+                       status = "okay";
+
+                       m25p40@0 {
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               compatible = "st,m25p40", "jedec,spi-nor";
+                               reg = <0>;
+                               spi-max-frequency = <25000000>;
+                               mode = <0>;
+
+                               partition@0 {
+                                       reg = <0x0 0x60000>;
+                                       label = "uboot";
+                                       read-only;
+                               };
+
+                               partition@60000 {
+                                       reg = <0x60000 0x10000>;
+                                       label = "dtb";
+                                       read-only;
+                               };
+
+                               partition@70000 {
+                                       reg = <0x70000 0x10000>;
+                                       label = "uboot_env";
+                               };
+                       };
+               };
+       };
+
+       gpio_keys {
+               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 = <KEY_OPTION>;
+                       gpios = <&gpio1 41 GPIO_ACTIVE_LOW>;
+               };
+
+               button@2 {
+                       label = "Power-on Switch";
+                       linux,code = <KEY_RESERVED>;
+                       linux,input-type = <5>;
+                       gpios = <&gpio1 42 GPIO_ACTIVE_LOW>;
+               };
+
+               button@3 {
+                       label = "Power-auto Switch";
+                       linux,code = <KEY_ESC>;
+                       linux,input-type = <5>;
+                       gpios = <&gpio1 43 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       gpio_leds {
+               compatible = "gpio-leds";
+               pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
+                            &pmx_led_info &pmx_led_power
+                            &pmx_led_function_blue
+                            &pmx_led_hdderr0
+                            &pmx_led_hdderr1>;
+               pinctrl-names = "default";
+
+               led@1 {
+                       label = "lswxl:blue:func";
+                       gpios = <&gpio1 36 GPIO_ACTIVE_LOW>;
+               };
+
+               led@2 {
+                       label = "lswxl:red:alarm";
+                       gpios = <&gpio1 49 GPIO_ACTIVE_LOW>;
+               };
+
+               led@3 {
+                       label = "lswxl:amber:info";
+                       gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+               };
+
+               led@4 {
+                       label = "lswxl:blue:power";
+                       gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+               };
+
+               led@5 {
+                       label = "lswxl:red:func";
+                       gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+                       default-state = "keep";
+               };
+
+               led@6 {
+                       label = "lswxl:red:hdderr0";
+                       gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
+               };
+
+               led@7 {
+                       label = "lswxl:red:hdderr1";
+                       gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       gpio_fan {
+               compatible = "gpio-fan";
+               pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
+               pinctrl-names = "default";
+
+               gpios = <&gpio0 47 GPIO_ACTIVE_LOW
+                        &gpio0 48 GPIO_ACTIVE_LOW>;
+
+               gpio-fan,speed-map = <0 3
+                               1500 2
+                               3250 1
+                               5000 0>;
+
+               alarm-gpios = <&gpio1 49 GPIO_ACTIVE_HIGH>;
+       };
+
+       restart_poweroff {
+               compatible = "restart-poweroff";
+       };
+
+       regulators {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
+               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 37 GPIO_ACTIVE_HIGH>;
+               };
+               hdd_power0: regulator@2 {
+                       compatible = "regulator-fixed";
+                       reg = <2>;
+                       regulator-name = "HDD0 Power";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       enable-active-high;
+                       regulator-always-on;
+                       regulator-boot-on;
+                       gpio = <&gpio0 28 GPIO_ACTIVE_HIGH>;
+               };
+               hdd_power1: regulator@3 {
+                       compatible = "regulator-fixed";
+                       reg = <3>;
+                       regulator-name = "HDD1 Power";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       enable-active-high;
+                       regulator-always-on;
+                       regulator-boot-on;
+                       gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+&mdio {
+       status = "okay";
+
+       ethphy1: ethernet-phy@8 {
+               device_type = "ethernet-phy";
+               reg = <8>;
+       };
+};
+
+&eth1 {
+       status = "okay";
+
+       ethernet1-port@0 {
+               phy-handle = <&ethphy1>;
+       };
+};
index 204da5b52ef939e014e160ecc350af8dacd0e5c1..2c569a6ddc9a549718991aeacdd63b9ea608b6c1 100644 (file)
 
 #include "armv7-m.dtsi"
 
+#include "dt-bindings/clock/lpc18xx-cgu.h"
+#include "dt-bindings/clock/lpc18xx-ccu.h"
+
+#define LPC_PIN(port, pin)     (0x##port * 32 + pin)
+#define LPC_GPIO(port, pin)    (port * 32 + pin)
+
 / {
        cpus {
                #address-cells = <1>;
@@ -22,6 +28,7 @@
                        compatible = "arm,cortex-m3";
                        device_type = "cpu";
                        reg = <0x0>;
+                       clocks = <&ccu1 CLK_CPU_CORE>;
                };
        };
 
                        clock-frequency = <12000000>;
                };
 
-               /* Temporary hardcode PLL1 until clk drivers are merged */
-               pll1: pll1 {
-                       compatible = "fixed-factor-clock";
-                       clocks = <&xtal>;
+               xtal32: xtal32 {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <32768>;
+               };
+
+               enet_rx_clk: enet_rx_clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <0>;
+                       clock-output-names = "enet_rx_clk";
+               };
+
+               enet_tx_clk: enet_tx_clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <0>;
+                       clock-output-names = "enet_tx_clk";
+               };
+
+               gp_clkin: gp_clkin {
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
-                       clock-div = <1>;
-                       clock-mult = <12>;
+                       clock-frequency = <0>;
+                       clock-output-names = "gp_clkin";
                };
        };
 
        soc {
+               mmcsd: mmcsd@40004000 {
+                       compatible = "snps,dw-mshc";
+                       reg = <0x40004000 0x1000>;
+                       interrupts = <6>;
+                       num-slots = <1>;
+                       clocks = <&ccu2 CLK_SDIO>, <&ccu1 CLK_CPU_SDIO>;
+                       clock-names = "ciu", "biu";
+                       status = "disabled";
+               };
+
+               usb0: ehci@40006100 {
+                       compatible = "nxp,lpc1850-ehci", "generic-ehci";
+                       reg = <0x40006100 0x100>;
+                       interrupts = <8>;
+                       clocks = <&ccu1 CLK_CPU_USB0>;
+                       phys = <&usb0_otg_phy>;
+                       phy-names = "usb";
+                       has-transaction-translator;
+                       status = "disabled";
+               };
+
+               usb1: ehci@40007100 {
+                       compatible = "nxp,lpc1850-ehci", "generic-ehci";
+                       reg = <0x40007100 0x100>;
+                       interrupts = <9>;
+                       clocks = <&ccu1 CLK_CPU_USB1>;
+                       status = "disabled";
+               };
+
+               emc: memory-controller@40005000 {
+                       compatible = "arm,pl172", "arm,primecell";
+                       reg = <0x40005000 0x1000>;
+                       clocks = <&ccu1 CLK_CPU_EMCDIV>, <&ccu1 CLK_CPU_EMC>;
+                       clock-names = "mpmcclk", "apb_pclk";
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       ranges = <0 0 0x1c000000 0x1000000
+                                 1 0 0x1d000000 0x1000000
+                                 2 0 0x1e000000 0x1000000
+                                 3 0 0x1f000000 0x1000000>;
+                       status = "disabled";
+               };
+
+               lcdc: lcd-controller@40008000 {
+                       compatible = "arm,pl111", "arm,primecell";
+                       reg = <0x40008000 0x1000>;
+                       interrupts = <7>;
+                       interrupt-names = "combined";
+                       clocks = <&cgu BASE_LCD_CLK>, <&ccu1 CLK_CPU_LCD>;
+                       clock-names = "clcdclk", "apb_pclk";
+                       status = "disabled";
+               };
+
+               mac: ethernet@40010000 {
+                       compatible = "nxp,lpc1850-dwmac", "snps,dwmac-3.611", "snps,dwmac";
+                       reg = <0x40010000 0x2000>;
+                       interrupts = <5>;
+                       interrupt-names = "macirq";
+                       clocks = <&ccu1 CLK_CPU_ETHERNET>;
+                       clock-names = "stmmaceth";
+                       status = "disabled";
+               };
+
+               creg: syscon@40043000 {
+                       compatible = "nxp,lpc1850-creg", "syscon", "simple-mfd";
+                       reg = <0x40043000 0x1000>;
+                       clocks = <&ccu1 CLK_CPU_CREG>;
+
+                       usb0_otg_phy: phy@004 {
+                               compatible = "nxp,lpc1850-usb-otg-phy";
+                               clocks = <&ccu1 CLK_USB0>;
+                               #phy-cells = <0>;
+                       };
+               };
+
+               cgu: clock-controller@40050000 {
+                       compatible = "nxp,lpc1850-cgu";
+                       reg = <0x40050000 0x1000>;
+                       #clock-cells = <1>;
+                       clocks = <&xtal>, <&xtal32>, <&enet_rx_clk>, <&enet_tx_clk>, <&gp_clkin>;
+               };
+
+               ccu1: clock-controller@40051000 {
+                       compatible = "nxp,lpc1850-ccu";
+                       reg = <0x40051000 0x1000>;
+                       #clock-cells = <1>;
+                       clocks = <&cgu BASE_APB3_CLK>,   <&cgu BASE_APB1_CLK>,
+                                <&cgu BASE_SPIFI_CLK>,  <&cgu BASE_CPU_CLK>,
+                                <&cgu BASE_PERIPH_CLK>, <&cgu BASE_USB0_CLK>,
+                                <&cgu BASE_USB1_CLK>,   <&cgu BASE_SPI_CLK>;
+                       clock-names = "base_apb3_clk",   "base_apb1_clk",
+                                     "base_spifi_clk",  "base_cpu_clk",
+                                     "base_periph_clk", "base_usb0_clk",
+                                     "base_usb1_clk",   "base_spi_clk";
+               };
+
+               ccu2: clock-controller@40052000 {
+                       compatible = "nxp,lpc1850-ccu";
+                       reg = <0x40052000 0x1000>;
+                       #clock-cells = <1>;
+                       clocks = <&cgu BASE_AUDIO_CLK>, <&cgu BASE_UART3_CLK>,
+                                <&cgu BASE_UART2_CLK>, <&cgu BASE_UART1_CLK>,
+                                <&cgu BASE_UART0_CLK>, <&cgu BASE_SSP1_CLK>,
+                                <&cgu BASE_SSP0_CLK>,  <&cgu BASE_SDIO_CLK>;
+                       clock-names = "base_audio_clk", "base_uart3_clk",
+                                     "base_uart2_clk", "base_uart1_clk",
+                                     "base_uart0_clk", "base_ssp1_clk",
+                                     "base_ssp0_clk",  "base_sdio_clk";
+               };
+
                uart0: serial@40081000 {
-                       compatible = "ns16550a";
+                       compatible = "nxp,lpc1850-uart", "ns16550a";
                        reg = <0x40081000 0x1000>;
                        reg-shift = <2>;
                        interrupts = <24>;
-                       clocks = <&pll1>;
+                       clocks = <&ccu2 CLK_APB0_UART0>, <&ccu1 CLK_CPU_UART0>;
+                       clock-names = "uartclk", "reg";
                        status = "disabled";
                };
 
                uart1: serial@40082000 {
-                       compatible = "ns16550a";
+                       compatible = "nxp,lpc1850-uart", "ns16550a";
                        reg = <0x40082000 0x1000>;
                        reg-shift = <2>;
                        interrupts = <25>;
-                       clocks = <&pll1>;
+                       clocks = <&ccu2 CLK_APB0_UART1>, <&ccu1 CLK_CPU_UART1>;
+                       clock-names = "uartclk", "reg";
+                       status = "disabled";
+               };
+
+               ssp0: spi@40083000 {
+                       compatible = "arm,pl022", "arm,primecell";
+                       reg = <0x40083000 0x1000>;
+                       interrupts = <22>;
+                       clocks = <&ccu2 CLK_APB0_SSP0>, <&ccu1 CLK_CPU_SSP0>;
+                       clock-names = "sspclk", "apb_pclk";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
                        status = "disabled";
                };
 
                        compatible = "nxp,lpc3220-timer";
                        reg = <0x40084000 0x1000>;
                        interrupts = <12>;
-                       clocks = <&pll1>;
+                       clocks = <&ccu1 CLK_CPU_TIMER0>;
                        clock-names = "timerclk";
                };
 
                        compatible = "nxp,lpc3220-timer";
                        reg = <0x40085000 0x1000>;
                        interrupts = <13>;
-                       clocks = <&pll1>;
+                       clocks = <&ccu1 CLK_CPU_TIMER1>;
                        clock-names = "timerclk";
                };
 
+               pinctrl: pinctrl@40086000 {
+                       compatible = "nxp,lpc1850-scu";
+                       reg = <0x40086000 0x1000>;
+                       clocks = <&ccu1 CLK_CPU_SCU>;
+               };
+
+               can1: can@400a4000 {
+                       compatible = "bosch,c_can";
+                       reg = <0x400a4000 0x1000>;
+                       interrupts = <43>;
+                       clocks = <&ccu1 CLK_APB1_CAN1>;
+                       status = "disabled";
+               };
+
                uart2: serial@400c1000 {
-                       compatible = "ns16550a";
+                       compatible = "nxp,lpc1850-uart", "ns16550a";
                        reg = <0x400c1000 0x1000>;
                        reg-shift = <2>;
                        interrupts = <26>;
-                       clocks = <&pll1>;
+                       clocks = <&ccu2 CLK_APB2_UART2>, <&ccu1 CLK_CPU_UART2>;
+                       clock-names = "uartclk", "reg";
                        status = "disabled";
                };
 
                uart3: serial@400c2000 {
-                       compatible = "ns16550a";
+                       compatible = "nxp,lpc1850-uart", "ns16550a";
                        reg = <0x400c2000 0x1000>;
                        reg-shift = <2>;
                        interrupts = <27>;
-                       clocks = <&pll1>;
+                       clocks = <&ccu2 CLK_APB2_UART3>, <&ccu1 CLK_CPU_UART3>;
+                       clock-names = "uartclk", "reg";
                        status = "disabled";
                };
 
                        compatible = "nxp,lpc3220-timer";
                        reg = <0x400c3000 0x1000>;
                        interrupts = <14>;
-                       clocks = <&pll1>;
+                       clocks = <&ccu1 CLK_CPU_TIMER2>;
                        clock-names = "timerclk";
                };
 
                        compatible = "nxp,lpc3220-timer";
                        reg = <0x400c4000 0x1000>;
                        interrupts = <15>;
-                       clocks = <&pll1>;
+                       clocks = <&ccu1 CLK_CPU_TIMER3>;
                        clock-names = "timerclk";
                };
+
+               ssp1: spi@400c5000 {
+                       compatible = "arm,pl022", "arm,primecell";
+                       reg = <0x400c5000 0x1000>;
+                       interrupts = <23>;
+                       clocks = <&ccu2 CLK_APB2_SSP1>, <&ccu1 CLK_CPU_SSP1>;
+                       clock-names = "sspclk", "apb_pclk";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               can0: can@400e2000 {
+                       compatible = "bosch,c_can";
+                       reg = <0x400e2000 0x1000>;
+                       interrupts = <51>;
+                       clocks = <&ccu1 CLK_APB3_CAN0>;
+                       status = "disabled";
+               };
+
+               gpio: gpio@400f4000 {
+                       compatible = "nxp,lpc1850-gpio";
+                       reg = <0x400f4000 0x4000>;
+                       clocks = <&ccu1 CLK_CPU_GPIO>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges =   <&pinctrl LPC_GPIO(0,0)  LPC_PIN(0,0)  2>,
+                                       <&pinctrl LPC_GPIO(0,4)  LPC_PIN(1,0)  1>,
+                                       <&pinctrl LPC_GPIO(0,8)  LPC_PIN(1,1)  4>,
+                                       <&pinctrl LPC_GPIO(1,8)  LPC_PIN(1,5)  2>,
+                                       <&pinctrl LPC_GPIO(1,0)  LPC_PIN(1,7)  8>,
+                                       <&pinctrl LPC_GPIO(0,2)  LPC_PIN(1,15) 2>,
+                                       <&pinctrl LPC_GPIO(0,12) LPC_PIN(1,17) 2>,
+                                       <&pinctrl LPC_GPIO(0,15) LPC_PIN(1,20) 1>,
+                                       <&pinctrl LPC_GPIO(5,0)  LPC_PIN(2,0)  7>,
+                                       <&pinctrl LPC_GPIO(0,7)  LPC_PIN(2,7)  1>,
+                                       <&pinctrl LPC_GPIO(5,7)  LPC_PIN(2,8)  1>,
+                                       <&pinctrl LPC_GPIO(1,10) LPC_PIN(2,9)  1>,
+                                       <&pinctrl LPC_GPIO(0,14) LPC_PIN(2,10) 1>,
+                                       <&pinctrl LPC_GPIO(1,11) LPC_PIN(2,11) 3>,
+                                       <&pinctrl LPC_GPIO(5,8)  LPC_PIN(3,1)  2>,
+                                       <&pinctrl LPC_GPIO(1,14) LPC_PIN(3,4)  2>,
+                                       <&pinctrl LPC_GPIO(0,6)  LPC_PIN(3,6)  1>,
+                                       <&pinctrl LPC_GPIO(5,10) LPC_PIN(3,7)  2>,
+                                       <&pinctrl LPC_GPIO(2,0)  LPC_PIN(4,0)  7>,
+                                       <&pinctrl LPC_GPIO(5,12) LPC_PIN(4,8)  3>,
+                                       <&pinctrl LPC_GPIO(2,9)  LPC_PIN(5,0)  7>,
+                                       <&pinctrl LPC_GPIO(2,7)  LPC_PIN(5,7)  1>,
+                                       <&pinctrl LPC_GPIO(3,0)  LPC_PIN(6,1)  5>,
+                                       <&pinctrl LPC_GPIO(0,5)  LPC_PIN(6,6)  1>,
+                                       <&pinctrl LPC_GPIO(5,15) LPC_PIN(6,7)  2>,
+                                       <&pinctrl LPC_GPIO(3,5)  LPC_PIN(6,9)  3>,
+                                       <&pinctrl LPC_GPIO(2,8)  LPC_PIN(6,12) 1>,
+                                       <&pinctrl LPC_GPIO(3,8)  LPC_PIN(7,0)  8>,
+                                       <&pinctrl LPC_GPIO(4,0)  LPC_PIN(8,0)  8>,
+                                       <&pinctrl LPC_GPIO(4,12) LPC_PIN(9,0)  4>,
+                                       <&pinctrl LPC_GPIO(5,17) LPC_PIN(9,4)  2>,
+                                       <&pinctrl LPC_GPIO(4,11) LPC_PIN(9,6)  1>,
+                                       <&pinctrl LPC_GPIO(4,8)  LPC_PIN(a,1)  3>,
+                                       <&pinctrl LPC_GPIO(5,19) LPC_PIN(a,4)  1>,
+                                       <&pinctrl LPC_GPIO(5,20) LPC_PIN(b,0)  7>,
+                                       <&pinctrl LPC_GPIO(6,0)  LPC_PIN(c,1) 14>,
+                                       <&pinctrl LPC_GPIO(6,14) LPC_PIN(d,0) 17>,
+                                       <&pinctrl LPC_GPIO(7,0)  LPC_PIN(e,0) 16>,
+                                       <&pinctrl LPC_GPIO(7,16) LPC_PIN(f,1)  3>,
+                                       <&pinctrl LPC_GPIO(7,19) LPC_PIN(f,5)  7>;
+               };
        };
 };
diff --git a/arch/arm/boot/dts/lpc4337-ciaa.dts b/arch/arm/boot/dts/lpc4337-ciaa.dts
new file mode 100644 (file)
index 0000000..5f500c1
--- /dev/null
@@ -0,0 +1,187 @@
+/*
+ * CIAA NXP LPC4337 (http://www.proyecto-ciaa.com.ar)
+ *
+ * Copyright (C) 2015 VanguardiaSur - www.vanguardiasur.com.ar
+ *
+ * This code is released using a dual license strategy: BSD/GPL
+ * You can choose the licence that better fits your requirements.
+ *
+ * Released under the terms of 3-clause BSD License
+ * Released under the terms of GNU General Public License Version 2.0
+ */
+/dts-v1/;
+
+#include "lpc18xx.dtsi"
+#include "lpc4357.dtsi"
+
+#include "dt-bindings/gpio/gpio.h"
+
+/ {
+       model = "CIAA NXP LPC4337";
+       compatible = "ciaa,lpc4337", "nxp,lpc4337", "nxp,lpc4350";
+
+       aliases {
+               serial0 = &uart2;
+               serial1 = &uart3;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200 earlyprintk";
+               stdout-path = &uart2;
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x28000000 0x0800000>; /* 8 MB */
+       };
+};
+
+&pinctrl {
+       enet_rmii_pins: enet-rmii-pins {
+               enet_rmii_rxd_cfg {
+                       pins = "p1_15", "p0_0";
+                       function = "enet";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               enet_rmii_txd_cfg {
+                       pins = "p1_18", "p1_20";
+                       function = "enet";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               enet_rmii_rx_dv_cfg {
+                       pins = "p1_16";
+                       function = "enet";
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               enet_rmii_tx_en_cfg {
+                       pins = "p0_1";
+                       function = "enet";
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               enet_ref_clk_cfg {
+                       pins = "p1_19";
+                       function = "enet";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               enet_mdio_cfg {
+                       pins = "p1_17";
+                       function = "enet";
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               enet_mdc_cfg {
+                       pins = "p7_7";
+                       function = "enet";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+       };
+
+       ssp_pins: ssp-pins {
+               ssp1_cs {
+                       pins = "p6_7";
+                       function = "gpio";
+                       bias-pull-up;
+                       bias-disable;
+               };
+
+               ssp1_miso_mosi {
+                       pins = "p1_3", "p1_4";
+                       function = "ssp1";
+                       slew-rate = <1>;
+                       bias-pull-down;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               ssp1_sck {
+                       pins = "pf_4";
+                       function = "ssp1";
+                       slew-rate = <1>;
+                       bias-disable;
+               };
+       };
+
+       uart2_pins: uart2-pins {
+               uart2_rx_cfg {
+                       pins = "p7_2";
+                       function = "uart2";
+                       bias-disable;
+                       input-enable;
+               };
+
+               uart2_tx_cfg {
+                       pins = "p7_1";
+                       function = "uart2";
+                       bias-disable;
+               };
+       };
+
+       uart3_pins: uart3-pins {
+               uart3_rx_cfg {
+                       pins = "p2_4";
+                       function = "uart3";
+                       bias-disable;
+                       input-enable;
+               };
+
+               uart3_tx_cfg {
+                       pins = "p2_3";
+                       function = "uart3";
+                       bias-disable;
+               };
+       };
+};
+
+&enet_tx_clk {
+       clock-frequency = <50000000>;
+};
+
+&mac {
+       status = "okay";
+       phy-mode = "rmii";
+       pinctrl-names = "default";
+       pinctrl-0 = <&enet_rmii_pins>;
+};
+
+&ssp1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&ssp_pins>;
+       cs-gpios = <&gpio LPC_GPIO(5,15) GPIO_ACTIVE_HIGH>;
+       num-cs = <1>;
+};
+
+&uart2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart2_pins>;
+};
+
+&uart3 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart3_pins>;
+};
index d04072f40817e616fa7c142632bcd43e695a2b6a..32bc7ff4eb2a02b97fd4d7ba26a70198131aed5d 100644 (file)
        };
 };
 
-&pll1 {
-       clock-mult = <15>;
+&pinctrl {
+       emc_pins: emc-pins {
+               emc_addr0_23_cfg {
+                       pins =  "p2_9",  "p2_10", "p2_11", "p2_12",
+                               "p2_13", "p1_0",  "p1_1",  "p1_2",
+                               "p2_8",  "p2_7",  "p2_6",  "p2_2",
+                               "p2_1",  "p2_0",  "p6_8",  "p6_7",
+                               "pd_16", "pd_15", "pe_0",  "pe_1",
+                               "pe_2",  "pe_3",  "pe_4",  "pa_4";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_data0_15_cfg {
+                       pins =  "p1_7",  "p1_8",  "p1_9",  "p1_10",
+                               "p1_11", "p1_12", "p1_13", "p1_14",
+                               "p5_4",  "p5_5",  "p5_6",  "p5_7",
+                               "p5_0",  "p5_1",  "p5_2",  "p5_3";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_we_oe_cfg {
+                       pins = "p1_6", "p1_3";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_bls0_3_cfg {
+                       pins = "p1_4", "p6_6", "pd_13", "pd_10";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_cs0_cs2_cfg {
+                       pins = "p1_5", "pd_12";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_sdram_dqm0_3_cfg {
+                       pins = "p6_12", "p6_10", "pd_0", "pe_13";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_sdram_ras_cas_cfg {
+                       pins = "p6_5", "p6_4";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_sdram_dycs0_cfg {
+                       pins = "p6_9";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_sdram_cke_cfg {
+                       pins = "p6_11";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_sdram_clock_cfg {
+                       pins = "clk0", "clk1", "clk2", "clk3";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+       };
+
+       enet_mii_pins: enet-mii-pins {
+               enet_mii_rxd0_3_cfg {
+                       pins = "p1_15", "p0_0", "p9_3", "p9_2";
+                       function = "enet";
+                       bias-disable;
+                       input-enable;
+               };
+
+               enet_mii_txd0_3_cfg {
+                       pins = "p1_18", "p1_20", "p9_4", "p9_5";
+                       function = "enet";
+                       bias-disable;
+               };
+
+               enet_mii_crs_col_cfg {
+                       pins = "p9_0", "p9_6";
+                       function = "enet";
+                       bias-disable;
+                       input-enable;
+               };
+
+               enet_mii_rx_clk_dv_er_cfg {
+                       pins = "pc_0", "p1_16", "p9_1";
+                       function = "enet";
+                       bias-disable;
+                       input-enable;
+               };
+
+               enet_mii_tx_clk_en_cfg {
+                       pins = "p1_19", "p0_1";
+                       function = "enet";
+                       bias-disable;
+                       input-enable;
+               };
+
+               enet_mdio_cfg {
+                       pins = "p1_17";
+                       function = "enet";
+                       bias-disable;
+                       input-enable;
+               };
+
+               enet_mdc_cfg {
+                       pins = "pc_1";
+                       function = "enet";
+                       bias-disable;
+               };
+       };
+
+       uart0_pins: uart0-pins {
+               uart0_rx_cfg {
+                       pins = "pf_11";
+                       function = "uart0";
+                       input-schmitt-disable;
+                       bias-disable;
+                       input-enable;
+               };
+
+               uart0_tx_cfg {
+                       pins = "pf_10";
+                       function = "uart0";
+                       bias-pull-down;
+               };
+       };
+};
+
+&emc {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&emc_pins>;
+
+       cs0 {
+               #address-cells = <2>;
+               #size-cells = <1>;
+               ranges;
+
+               mpmc,cs = <0>;
+               mpmc,memory-width = <16>;
+               mpmc,byte-lane-low;
+               mpmc,write-enable-delay = <0>;
+               mpmc,output-enable-delay = <0>;
+               mpmc,read-access-delay = <70>;
+               mpmc,page-mode-read-delay = <70>;
+
+               flash@0,0 {
+                       compatible = "sst,sst39vf320", "cfi-flash";
+                       reg = <0 0 0x400000>;
+                       bank-width = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "bootloader";
+                               reg = <0x000000 0x040000>; /* 256 KiB */
+                       };
+
+                       partition@1 {
+                               label = "kernel";
+                               reg = <0x040000 0x2C0000>; /* 2.75 MiB */
+                       };
+
+                       partition@2 {
+                               label = "rootfs";
+                               reg = <0x300000 0x100000>; /* 1 MiB */
+                       };
+               };
+       };
+
+       cs2 {
+               #address-cells = <2>;
+               #size-cells = <1>;
+               ranges;
+
+               mpmc,cs = <2>;
+               mpmc,memory-width = <16>;
+               mpmc,byte-lane-low;
+               mpmc,write-enable-delay = <0>;
+               mpmc,output-enable-delay = <30>;
+               mpmc,read-access-delay = <90>;
+               mpmc,page-mode-read-delay = <55>;
+               mpmc,write-access-delay = <55>;
+               mpmc,turn-round-delay = <55>;
+
+               ext_sram: sram@2,0 {
+                       compatible = "mmio-sram";
+                       reg = <2 0 0x80000>; /* 512 KiB SRAM on IS62WV25616 */
+               };
+       };
+};
+
+&enet_tx_clk {
+       clock-frequency = <25000000>;
+};
+
+&mac {
+       status = "okay";
+       phy-mode = "mii";
+       pinctrl-names = "default";
+       pinctrl-0 = <&enet_mii_pins>;
 };
 
 &uart0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins>;
 };
index 08a6f757f924d4ed0c1c3d3fd3afe63c49d9cbbe..5f7bdad80963c48881d59286f0f14c7f6bc2d2b2 100644 (file)
@@ -15,6 +15,9 @@
 #include "lpc18xx.dtsi"
 #include "lpc4357.dtsi"
 
+#include "dt-bindings/input/input.h"
+#include "dt-bindings/gpio/gpio.h"
+
 / {
        model = "Embedded Artists' LPC4357 Developer's Kit";
        compatible = "ea,lpc4357-developers-kit", "nxp,lpc4357", "nxp,lpc4350";
                device_type = "memory";
                reg = <0x28000000 0x2000000>; /* 32 MB */
        };
+
+       /* vmmc is controlled by sdmmc host internally */
+       vmmc: vmmc_fixed {
+               compatible = "regulator-fixed";
+               regulator-name = "vmmc-supply";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       gpio_joystick {
+               compatible = "gpio-keys-polled";
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_joystick_pins>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               poll-interval = <100>;
+               autorepeat;
+
+               button@0 {
+                       label = "joy_enter";
+                       linux,code = <KEY_ENTER>;
+                       gpios = <&gpio LPC_GPIO(4,8) GPIO_ACTIVE_LOW>;
+               };
+
+               button@1 {
+                       label = "joy_left";
+                       linux,code = <KEY_LEFT>;
+                       gpios = <&gpio LPC_GPIO(4,9) GPIO_ACTIVE_LOW>;
+               };
+
+               button@2 {
+                       label = "joy_up";
+                       linux,code = <KEY_UP>;
+                       gpios = <&gpio LPC_GPIO(4,10) GPIO_ACTIVE_LOW>;
+               };
+
+               button@3 {
+                       label = "joy_right";
+                       linux,code = <KEY_RIGHT>;
+                       gpios = <&gpio LPC_GPIO(4,12) GPIO_ACTIVE_LOW>;
+               };
+
+               button@4 {
+                       label = "joy_down";
+                       linux,code = <KEY_DOWN>;
+                       gpios = <&gpio LPC_GPIO(4,13) GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       leds_mmio {
+               compatible = "gpio-leds";
+
+               led1 {
+                       gpios = <&mmio_leds 15 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led2 {
+                       gpios = <&mmio_leds 14 GPIO_ACTIVE_HIGH>;
+               };
+
+               led3 {
+                       gpios = <&mmio_leds 13 GPIO_ACTIVE_HIGH>;
+               };
+
+               led4 {
+                       gpios = <&mmio_leds 12 GPIO_ACTIVE_HIGH>;
+               };
+
+               led5 {
+                       gpios = <&mmio_leds 11 GPIO_ACTIVE_HIGH>;
+               };
+
+               led6 {
+                       gpios = <&mmio_leds 10 GPIO_ACTIVE_HIGH>;
+               };
+
+               led7 {
+                       gpios = <&mmio_leds 9 GPIO_ACTIVE_HIGH>;
+               };
+
+               led8 {
+                       gpios = <&mmio_leds 8 GPIO_ACTIVE_HIGH>;
+               };
+
+               led9 {
+                       gpios = <&mmio_leds 7 GPIO_ACTIVE_HIGH>;
+               };
+
+               led10 {
+                       gpios = <&mmio_leds 6 GPIO_ACTIVE_HIGH>;
+               };
+
+               led11 {
+                       gpios = <&mmio_leds 5 GPIO_ACTIVE_HIGH>;
+               };
+
+               led12 {
+                       gpios = <&mmio_leds 4 GPIO_ACTIVE_HIGH>;
+               };
+
+               led13 {
+                       gpios = <&mmio_leds 3 GPIO_ACTIVE_HIGH>;
+               };
+
+               led14 {
+                       gpios = <&mmio_leds 2 GPIO_ACTIVE_HIGH>;
+               };
+
+               led15 {
+                       gpios = <&mmio_leds 1 GPIO_ACTIVE_HIGH>;
+               };
+
+               led16 {
+                       gpios = <&mmio_leds 0 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+&pinctrl {
+       emc_pins: emc-pins {
+               emc_addr0_23_cfg {
+                       pins =  "p2_9",  "p2_10", "p2_11", "p2_12",
+                               "p2_13", "p1_0",  "p1_1",  "p1_2",
+                               "p2_8",  "p2_7",  "p2_6",  "p2_2",
+                               "p2_1",  "p2_0",  "p6_8",  "p6_7",
+                               "pd_16", "pd_15", "pe_0",  "pe_1",
+                               "pe_2",  "pe_3",  "pe_4",  "pa_4";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_data0_31_cfg {
+                       pins =  "p1_7",  "p1_8",  "p1_9",  "p1_10",
+                               "p1_11", "p1_12", "p1_13", "p1_14",
+                               "p5_4",  "p5_5",  "p5_6",  "p5_7",
+                               "p5_0",  "p5_1",  "p5_2",  "p5_3",
+                               "pd_2",  "pd_3",  "pd_4",  "pd_5",
+                               "pd_6",  "pd_7",  "pd_8",  "pd_9",
+                               "pe_5",  "pe_6",  "pe_7",  "pe_8",
+                               "pe_9",  "pe_10", "pe_11", "pe_12";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_we_oe_cfg {
+                       pins = "p1_6", "p1_3";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_bls0_3_cfg {
+                       pins = "p1_4", "p6_6", "pd_13", "pd_10";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_cs0_3_cfg {
+                       pins = "p1_5", "p6_3", "pd_12", "pd_11";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_sdram_dqm0_3_cfg {
+                       pins = "p6_12", "p6_10", "pd_0", "pe_13";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_sdram_ras_cas_cfg {
+                       pins = "p6_5", "p6_4";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_sdram_dycs0_cfg {
+                       pins = "p6_9";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_sdram_cke_cfg {
+                       pins = "p6_11";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               emc_sdram_clock_cfg {
+                       pins = "clk0", "clk1", "clk2", "clk3";
+                       function = "emc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+       };
+
+       enet_rmii_pins: enet-rmii-pins {
+               enet_rmii_rxd_cfg {
+                       pins = "p1_15", "p0_0";
+                       function = "enet";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               enet_rmii_txd_cfg {
+                       pins = "p1_18", "p1_20";
+                       function = "enet";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               enet_rmii_rx_dv_cfg {
+                       pins = "p1_16";
+                       function = "enet";
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               enet_rmii_tx_en_cfg {
+                       pins = "p0_1";
+                       function = "enet";
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               enet_ref_clk_cfg {
+                       pins = "p1_19";
+                       function = "enet";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               enet_mdio_cfg {
+                       pins = "p1_17";
+                       function = "enet";
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               enet_mdc_cfg {
+                       pins = "pc_1";
+                       function = "enet";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+       };
+
+       gpio_joystick_pins: gpio-joystick-pins {
+               gpio_joystick_cfg {
+                       pins =  "p9_0", "p9_1", "pa_1", "pa_2", "pa_3";
+                       function = "gpio";
+                       input-enable;
+                       bias-disable;
+               };
+       };
+
+       sdmmc_pins: sdmmc-pins {
+               sdmmc_clk_cfg {
+                       pins = "pc_0";
+                       function = "sdmmc";
+                       slew-rate = <1>;
+                       bias-pull-down;
+               };
+
+               sdmmc_cmd_dat0_3_cfg {
+                       pins = "pc_4", "pc_5", "pc_6", "pc_7", "pc_10";
+                       function = "sdmmc";
+                       slew-rate = <1>;
+                       bias-disable;
+                       input-enable;
+                       input-schmitt-disable;
+               };
+
+               sdmmc_cd_cfg {
+                       pins = "pc_8";
+                       function = "sdmmc";
+                       bias-pull-down;
+                       input-enable;
+               };
+
+               sdmmc_pow_cfg {
+                       pins = "pc_9";
+                       function = "sdmmc";
+                       bias-pull-down;
+               };
+       };
+
+       uart0_pins: uart0-pins {
+               uart0_rx_cfg {
+                       pins = "pf_11";
+                       function = "uart0";
+                       input-schmitt-disable;
+                       bias-disable;
+                       input-enable;
+               };
+
+               uart0_tx_cfg {
+                       pins = "pf_10";
+                       function = "uart0";
+                       bias-pull-down;
+               };
+       };
+
+       uart3_pins: uart3-pins {
+               uart3_rx_cfg {
+                       pins = "p2_4";
+                       function = "uart3";
+                       input-schmitt-disable;
+                       bias-disable;
+                       input-enable;
+               };
+
+               uart3_tx_cfg {
+                       pins = "p9_3";
+                       function = "uart3";
+                       bias-pull-down;
+               };
+       };
+
+       usb0_pins: usb0-pins {
+               usb0_pwr_enable {
+                       pins = "p2_3";
+                       function = "usb0";
+               };
+
+               usb0_pwr_fault {
+                       pins = "p8_0";
+                       function = "usb0";
+                       bias-disable;
+                       input-enable;
+               };
+       };
+};
+
+&emc {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&emc_pins>;
+
+       cs0 {
+               #address-cells = <2>;
+               #size-cells = <1>;
+               ranges;
+
+               mpmc,cs = <0>;
+               mpmc,memory-width = <16>;
+               mpmc,byte-lane-low;
+               mpmc,write-enable-delay = <0>;
+               mpmc,output-enable-delay = <0>;
+               mpmc,read-access-delay = <70>;
+               mpmc,page-mode-read-delay = <70>;
+
+               flash@0,0 {
+                       compatible = "sst,sst39vf320", "cfi-flash";
+                       reg = <0 0 0x400000>;
+                       bank-width = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "bootloader";
+                               reg = <0x000000 0x040000>; /* 256 KiB */
+                       };
+
+                       partition@1 {
+                               label = "kernel";
+                               reg = <0x040000 0x2c0000>; /* 2.75 MiB */
+                       };
+
+                       partition@2 {
+                               label = "rootfs";
+                               reg = <0x300000 0x100000>; /* 1 MiB */
+                       };
+               };
+       };
+
+       cs2 {
+               #address-cells = <2>;
+               #size-cells = <1>;
+               ranges;
+
+               mpmc,cs = <2>;
+               mpmc,memory-width = <16>;
+
+               mmio_leds: gpio@2,0 {
+                       compatible = "ti,7416374";
+                       reg = <2 0 0x2>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+               };
+
+       };
+};
+
+&enet_tx_clk {
+       clock-frequency = <50000000>;
+};
+
+&mac {
+       status = "okay";
+       phy-mode = "rmii";
+       pinctrl-names = "default";
+       pinctrl-0 = <&enet_rmii_pins>;
+};
+
+&mmcsd {
+       status = "okay";
+       bus-width = <4>;
+       vmmc-supply = <&vmmc>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc_pins>;
 };
 
 &uart0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins>;
+};
+
+&uart3 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart3_pins>;
+};
+
+&usb0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb0_pins>;
 };
diff --git a/arch/arm/boot/dts/mt6580-evbp1.dts b/arch/arm/boot/dts/mt6580-evbp1.dts
new file mode 100644 (file)
index 0000000..17daeae
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2015 MediaTek Inc.
+ * Author: Mars.C <mars.cheng@mediatek.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * 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 "mt6580.dtsi"
+
+/ {
+       model = "MediaTek MT6580 evaluation board";
+       compatible = "mediatek,mt6580-evbp1", "mediatek,mt6580";
+
+       aliases {
+               serial0 = &uart0;
+               serial1 = &uart1;
+       };
+
+       chosen {
+               stdout-path = "serial0:921600n8";
+       };
+
+       memory {
+               reg = <0x80000000 0x20000000>;
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/mt6580.dtsi b/arch/arm/boot/dts/mt6580.dtsi
new file mode 100644 (file)
index 0000000..06fdf6c
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2015 MediaTek Inc.
+ * Author: Mars.C <mars.cheng@mediatek.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include "skeleton.dtsi"
+
+/ {
+       compatible = "mediatek,mt6580";
+       #address-cells = <1>;
+       #size-cells = <1>;
+       interrupt-parent = <&sysirq>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x0>;
+               };
+               cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x1>;
+               };
+               cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x2>;
+               };
+               cpu@3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x3>;
+               };
+
+       };
+
+       system_clk: dummy13m {
+               compatible = "fixed-clock";
+               clock-frequency = <13000000>;
+               #clock-cells = <0>;
+       };
+
+       rtc_clk: dummy32k {
+               compatible = "fixed-clock";
+               clock-frequency = <32000>;
+               #clock-cells = <0>;
+       };
+
+       uart_clk: dummy26m {
+               compatible = "fixed-clock";
+               clock-frequency = <26000000>;
+               #clock-cells = <0>;
+       };
+
+       timer: timer@10008000 {
+               compatible = "mediatek,mt6580-timer",
+                            "mediatek,mt6577-timer";
+               reg = <0x10008000 0x80>;
+               interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&system_clk>, <&rtc_clk>;
+               clock-names = "system-clk", "rtc-clk";
+       };
+
+       sysirq: interrupt-controller@10200100 {
+               compatible = "mediatek,mt6580-sysirq",
+                            "mediatek,mt6577-sysirq";
+               interrupt-controller;
+               #interrupt-cells = <3>;
+               interrupt-parent = <&gic>;
+               reg = <0x10200100 0x1c>;
+       };
+
+       gic: interrupt-controller@10211000 {
+               compatible = "arm,cortex-a7-gic";
+               interrupt-controller;
+               #interrupt-cells = <3>;
+               interrupt-parent = <&gic>;
+               reg = <0x10211000 0x1000>,
+                     <0x10212000 0x1000>,
+                     <0x10214000 0x2000>,
+                     <0x10216000 0x2000>;
+       };
+
+       uart0: serial@11005000 {
+               compatible = "mediatek,mt6580-uart",
+                            "mediatek,mt6577-uart";
+               reg = <0x11005000 0x400>;
+               interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&uart_clk>;
+               status = "disabled";
+       };
+
+       uart1: serial@11006000 {
+               compatible = "mediatek,mt6580-uart",
+                            "mediatek,mt6577-uart";
+               reg = <0x11006000 0x400>;
+               interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&uart_clk>;
+               status = "disabled";
+       };
+};
index 36677382bdd8bd0be208da9e94f297b43483e895..357a91fc2d1d137607628242e536e6ebf673e2ed 100644 (file)
        };
 };
 
+&pwrap {
+       pmic: mt6397 {
+               compatible = "mediatek,mt6397";
+
+               mt6397regulator: mt6397regulator {
+                       compatible = "mediatek,mt6397-regulator";
+
+                       mt6397_vpca15_reg: buck_vpca15 {
+                               regulator-compatible = "buck_vpca15";
+                               regulator-name = "vpca15";
+                               regulator-min-microvolt = < 850000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-always-on;
+                       };
+
+                       mt6397_vpca7_reg: buck_vpca7 {
+                               regulator-compatible = "buck_vpca7";
+                               regulator-name = "vpca7";
+                               regulator-min-microvolt = < 850000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-always-on;
+                       };
+
+                       mt6397_vsramca15_reg: buck_vsramca15 {
+                               regulator-compatible = "buck_vsramca15";
+                               regulator-name = "vsramca15";
+                               regulator-min-microvolt = < 850000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-always-on;
+                       };
+
+                       mt6397_vsramca7_reg: buck_vsramca7 {
+                               regulator-compatible = "buck_vsramca7";
+                               regulator-name = "vsramca7";
+                               regulator-min-microvolt = < 850000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-always-on;
+                       };
+
+                       mt6397_vcore_reg: buck_vcore {
+                               regulator-compatible = "buck_vcore";
+                               regulator-name = "vcore";
+                               regulator-min-microvolt = < 850000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-always-on;
+                       };
+
+                       mt6397_vgpu_reg: buck_vgpu {
+                               regulator-compatible = "buck_vgpu";
+                               regulator-name = "vgpu";
+                               regulator-min-microvolt = < 700000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-enable-ramp-delay = <115>;
+                       };
+
+                       mt6397_vdrm_reg: buck_vdrm {
+                               regulator-compatible = "buck_vdrm";
+                               regulator-name = "vdrm";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1400000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-always-on;
+                       };
+
+                       mt6397_vio18_reg: buck_vio18 {
+                               regulator-compatible = "buck_vio18";
+                               regulator-name = "vio18";
+                               regulator-min-microvolt = <1620000>;
+                               regulator-max-microvolt = <1980000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-always-on;
+                       };
+
+                       mt6397_vtcxo_reg: ldo_vtcxo {
+                               regulator-compatible = "ldo_vtcxo";
+                               regulator-name = "vtcxo";
+                               regulator-always-on;
+                       };
+
+                       mt6397_va28_reg: ldo_va28 {
+                               regulator-compatible = "ldo_va28";
+                               regulator-name = "va28";
+                               regulator-always-on;
+                       };
+
+                       mt6397_vcama_reg: ldo_vcama {
+                               regulator-compatible = "ldo_vcama";
+                               regulator-name = "vcama";
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-enable-ramp-delay = <218>;
+                       };
+
+                       mt6397_vio28_reg: ldo_vio28 {
+                               regulator-compatible = "ldo_vio28";
+                               regulator-name = "vio28";
+                               regulator-always-on;
+                       };
+
+                       mt6397_vusb_reg: ldo_vusb {
+                               regulator-compatible = "ldo_vusb";
+                               regulator-name = "vusb";
+                       };
+
+                       mt6397_vmc_reg: ldo_vmc {
+                               regulator-compatible = "ldo_vmc";
+                               regulator-name = "vmc";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-enable-ramp-delay = <218>;
+                       };
+
+                       mt6397_vmch_reg: ldo_vmch {
+                               regulator-compatible = "ldo_vmch";
+                               regulator-name = "vmch";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-enable-ramp-delay = <218>;
+                       };
+
+                       mt6397_vemc_3v3_reg: ldo_vemc3v3 {
+                               regulator-compatible = "ldo_vemc3v3";
+                               regulator-name = "vemc_3v3";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-enable-ramp-delay = <218>;
+                       };
+
+                       mt6397_vgp1_reg: ldo_vgp1 {
+                               regulator-compatible = "ldo_vgp1";
+                               regulator-name = "vcamd";
+                               regulator-min-microvolt = <1220000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-enable-ramp-delay = <240>;
+                       };
+
+                       mt6397_vgp2_reg: ldo_vgp2 {
+                               regulator-compatible = "ldo_vgp2";
+                               regulator-name = "vcamio";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-enable-ramp-delay = <218>;
+                       };
+
+                       mt6397_vgp3_reg: ldo_vgp3 {
+                               regulator-compatible = "ldo_vgp3";
+                               regulator-name = "vcamaf";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-enable-ramp-delay = <218>;
+                       };
+
+                       mt6397_vgp4_reg: ldo_vgp4 {
+                               regulator-compatible = "ldo_vgp4";
+                               regulator-name = "vgp4";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-enable-ramp-delay = <218>;
+                       };
+
+                       mt6397_vgp5_reg: ldo_vgp5 {
+                               regulator-compatible = "ldo_vgp5";
+                               regulator-name = "vgp5";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-enable-ramp-delay = <218>;
+                       };
+
+                       mt6397_vgp6_reg: ldo_vgp6 {
+                               regulator-compatible = "ldo_vgp6";
+                               regulator-name = "vgp6";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-enable-ramp-delay = <218>;
+                       };
+
+                       mt6397_vibr_reg: ldo_vibr {
+                               regulator-compatible = "ldo_vibr";
+                               regulator-name = "vibr";
+                               regulator-min-microvolt = <1300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-enable-ramp-delay = <218>;
+                       };
+               };
+       };
+};
+
 &uart3 {
        status = "okay";
 };
index 0aba9eb28e2b4fd0e476f114ff72402e939a37b6..08371dbae543d8e8c07be0477db16d27ca46c559 100644 (file)
  * GNU General Public License for more details.
  */
 
+#include <dt-bindings/clock/mt8135-clk.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/reset-controller/mt8135-resets.h>
 #include "skeleton64.dtsi"
 #include "mt8135-pinfunc.h"
 
                        #clock-cells = <0>;
                };
 
-               uart_clk: dummy26m {
+               clk26m: clk26m {
                        compatible = "fixed-clock";
-                       clock-frequency = <26000000>;
                        #clock-cells = <0>;
+                       clock-frequency = <26000000>;
                };
-
        };
 
        soc {
                compatible = "simple-bus";
                ranges;
 
+               topckgen: topckgen@10000000 {
+                       compatible = "mediatek,mt8135-topckgen";
+                       reg = <0 0x10000000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               infracfg: infracfg@10001000 {
+                       #reset-cells = <1>;
+                       #clock-cells = <1>;
+                       compatible = "mediatek,mt8135-infracfg", "syscon";
+                       reg = <0 0x10001000 0 0x1000>;
+               };
+
+               pericfg: pericfg@10003000 {
+                       #reset-cells = <1>;
+                       #clock-cells = <1>;
+                       compatible = "mediatek,mt8135-pericfg", "syscon";
+                       reg = <0 0x10003000 0 0x1000>;
+               };
+
                /*
                 * Pinctrl access register at 0x10005000 and 0x1020c000 through
                 * regmap. Register 0x1000b000 is used by EINT.
                        clock-names = "system-clk", "rtc-clk";
                };
 
+               pwrap: pwrap@1000f000 {
+                       compatible = "mediatek,mt8135-pwrap";
+                       reg = <0 0x1000f000 0 0x1000>,
+                               <0 0x11017000 0 0x1000>;
+                       reg-names = "pwrap", "pwrap-bridge";
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
+                       resets = <&infracfg MT8135_INFRA_PMIC_WRAP_RST>,
+                                       <&pericfg MT8135_PERI_PWRAP_BRIDGE_SW_RST>;
+                       reset-names = "pwrap", "pwrap-bridge";
+                       clocks = <&clk26m>, <&clk26m>;
+                       clock-names = "spi", "wrap";
+               };
+
                sysirq: interrupt-controller@10200030 {
                        compatible = "mediatek,mt8135-sysirq",
                                     "mediatek,mt6577-sysirq";
                        reg = <0 0x10200030 0 0x1c>;
                };
 
+               apmixedsys: apmixedsys@10209000 {
+                       compatible = "mediatek,mt8135-apmixedsys";
+                       reg = <0 0x10209000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
                syscfg_pctl_b: syscfg_pctl_b@1020c000 {
                        compatible = "mediatek,mt8135-pctl-b-syscfg", "syscon";
                        reg = <0 0x1020c000 0 0x1000>;
                        compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
                        reg = <0 0x11006000 0 0x400>;
                        interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>;
-                       clocks = <&uart_clk>;
+                       clocks = <&pericfg CLK_PERI_UART0_SEL>, <&pericfg CLK_PERI_UART0>;
+                       clock-names = "baud", "bus";
                        status = "disabled";
                };
 
                        compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
                        reg = <0 0x11007000 0 0x400>;
                        interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
-                       clocks = <&uart_clk>;
+                       clocks = <&pericfg CLK_PERI_UART1_SEL>, <&pericfg CLK_PERI_UART1>;
+                       clock-names = "baud", "bus";
                        status = "disabled";
                };
 
                        compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
                        reg = <0 0x11008000 0 0x400>;
                        interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>;
-                       clocks = <&uart_clk>;
+                       clocks = <&pericfg CLK_PERI_UART2_SEL>, <&pericfg CLK_PERI_UART2>;
+                       clock-names = "baud", "bus";
                        status = "disabled";
                };
 
                        compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
                        reg = <0 0x11009000 0 0x400>;
                        interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>;
-                       clocks = <&uart_clk>;
+                       clocks = <&pericfg CLK_PERI_UART3_SEL>, <&pericfg CLK_PERI_UART3>;
+                       clock-names = "baud", "bus";
                        status = "disabled";
                };
 
diff --git a/arch/arm/boot/dts/omap3-devkit8000-common.dtsi b/arch/arm/boot/dts/omap3-devkit8000-common.dtsi
new file mode 100644 (file)
index 0000000..9ca2865
--- /dev/null
@@ -0,0 +1,369 @@
+/*
+ * Author: Anil Kumar <anilk4.v@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <dt-bindings/input/input.h>
+
+#include "omap34xx.dtsi"
+/ {
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x10000000>;  /* 256 MB */
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               heartbeat {
+                       label = "devkit8000::led1";
+                       gpios = <&gpio6 26 GPIO_ACTIVE_HIGH>;   /* 186 -> LED1 */
+                       default-state = "on";
+                       linux,default-trigger = "heartbeat";
+               };
+
+               mmc {
+                       label = "devkit8000::led2";
+                       gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>;    /* 163 -> LED2 */
+                       default-state = "on";
+                       linux,default-trigger = "none";
+               };
+
+               usr {
+                       label = "devkit8000::led3";
+                       gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>;    /* 164 -> LED3 */
+                       default-state = "on";
+                       linux,default-trigger = "usr";
+               };
+
+               pmu_stat {
+                       label = "devkit8000::pmu_stat";
+                       gpios = <&twl_gpio 19 GPIO_ACTIVE_HIGH>; /* LEDB */
+               };
+       };
+
+       sound {
+               compatible = "ti,omap-twl4030";
+               ti,model = "devkit8000";
+
+               ti,mcbsp = <&mcbsp2>;
+               ti,audio-routing =
+                       "Ext Spk", "PREDRIVEL",
+                       "Ext Spk", "PREDRIVER",
+                       "MAINMIC", "Main Mic",
+                       "Main Mic", "Mic Bias 1";
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+
+               user {
+                       label = "user";
+                       gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
+                       linux,code = <BTN_EXTRA>;
+                       gpio-key,wakeup;
+               };
+       };
+
+       tfp410: encoder@0 {
+               compatible = "ti,tfp410";
+               powerdown-gpios = <&twl_gpio 7 GPIO_ACTIVE_LOW>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               tfp410_in: endpoint@0 {
+                                       remote-endpoint = <&dpi_dvi_out>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               tfp410_out: endpoint@0 {
+                                       remote-endpoint = <&dvi_connector_in>;
+                               };
+                       };
+               };
+       };
+
+       dvi0: connector@0 {
+               compatible = "dvi-connector";
+               label = "dvi";
+
+               digital;
+
+               ddc-i2c-bus = <&i2c2>;
+
+               port {
+                       dvi_connector_in: endpoint {
+                               remote-endpoint = <&tfp410_out>;
+                       };
+               };
+       };
+
+       tv0: connector@1 {
+               compatible = "svideo-connector";
+               label = "tv";
+
+               port {
+                       tv_connector_in: endpoint {
+                               remote-endpoint = <&venc_out>;
+                       };
+               };
+       };
+};
+
+&i2c1 {
+       clock-frequency = <2600000>;
+
+       twl: twl@48 {
+               reg = <0x48>;
+               interrupts = <7>;       /* SYS_NIRQ cascaded to intc */
+
+               twl_audio: audio {
+                       compatible = "ti,twl4030-audio";
+                       codec {
+                       };
+               };
+       };
+};
+
+&i2c2 {
+       clock-frequency = <400000>;
+};
+
+&i2c3 {
+       status = "disabled";
+};
+
+#include "twl4030.dtsi"
+#include "twl4030_omap3.dtsi"
+
+&mmc1 {
+       vmmc-supply = <&vmmc1>;
+       vmmc_aux-supply = <&vsim>;
+       bus-width = <8>;
+};
+
+&mmc2 {
+       status = "disabled";
+};
+
+&mmc3 {
+       status = "disabled";
+};
+
+&twl_gpio {
+       ti,use-leds;
+       /*
+        * pulldowns:
+        * BIT(1), BIT(2), BIT(6), BIT(7), BIT(8), BIT(13)
+        * BIT(15), BIT(16), BIT(17)
+        */
+       ti,pulldowns = <0x03a1c6>;
+};
+
+&twl_keypad {
+       linux,keymap = <MATRIX_KEY(0, 0, KEY_1)
+                       MATRIX_KEY(1, 0, KEY_2)
+                       MATRIX_KEY(2, 0, KEY_3)
+                       MATRIX_KEY(0, 1, KEY_4)
+                       MATRIX_KEY(1, 1, KEY_5)
+                       MATRIX_KEY(2, 1, KEY_6)
+                       MATRIX_KEY(3, 1, KEY_F5)
+                       MATRIX_KEY(0, 2, KEY_7)
+                       MATRIX_KEY(1, 2, KEY_8)
+                       MATRIX_KEY(2, 2, KEY_9)
+                       MATRIX_KEY(3, 2, KEY_F6)
+                       MATRIX_KEY(0, 3, KEY_F7)
+                       MATRIX_KEY(1, 3, KEY_0)
+                       MATRIX_KEY(2, 3, KEY_F8)
+                       MATRIX_KEY(4, 5, KEY_RESERVED)
+                       MATRIX_KEY(4, 4, KEY_VOLUMEUP)
+                       MATRIX_KEY(5, 5, KEY_VOLUMEDOWN)
+                       >;
+};
+
+&wdt2 {
+       status = "disabled";
+};
+
+&mcbsp2 {
+       status = "okay";
+};
+
+&gpmc {
+       ranges = <0 0 0x30000000 0x1000000>;       /* CS0: 16MB for NAND */
+
+       nand@0,0 {
+               reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
+               nand-bus-width = <16>;
+               gpmc,device-width = <2>;
+               ti,nand-ecc-opt = "sw";
+
+               gpmc,sync-clk-ps = <0>;
+               gpmc,cs-on-ns = <0>;
+               gpmc,cs-rd-off-ns = <44>;
+               gpmc,cs-wr-off-ns = <44>;
+               gpmc,adv-on-ns = <6>;
+               gpmc,adv-rd-off-ns = <34>;
+               gpmc,adv-wr-off-ns = <44>;
+               gpmc,we-off-ns = <40>;
+               gpmc,oe-off-ns = <54>;
+               gpmc,access-ns = <64>;
+               gpmc,rd-cycle-ns = <82>;
+               gpmc,wr-cycle-ns = <82>;
+               gpmc,wr-access-ns = <40>;
+               gpmc,wr-data-mux-bus-ns = <0>;
+
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               x-loader@0 {
+                       label = "X-Loader";
+                       reg = <0 0x80000>;
+               };
+
+               bootloaders@80000 {
+                       label = "U-Boot";
+                       reg = <0x80000 0x1e0000>;
+               };
+
+               bootloaders_env@260000 {
+                       label = "U-Boot Env";
+                       reg = <0x260000 0x20000>;
+               };
+
+               kernel@280000 {
+                       label = "Kernel";
+                       reg = <0x280000 0x400000>;
+               };
+
+               filesystem@680000 {
+                       label = "File System";
+                       reg = <0x680000 0xf980000>;
+               };
+       };
+};
+
+&gpmc {
+       ranges = <6 0 0x2c000000 0x1000000>;       /* CS6: 16MB for DM9000 */
+
+       ethernet@0,0 {
+               compatible = "davicom,dm9000";
+               reg =  <6 0x000 2
+                       6 0x400 2>; /* CS6, offset 0 and 0x400, IO size 2 */
+               bank-width = <2>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
+               davicom,no-eeprom;
+
+               gpmc,mux-add-data = <0>;
+               gpmc,device-width = <1>;
+               gpmc,wait-pin = <0>;
+               gpmc,cycle2cycle-samecsen = <1>;
+               gpmc,cycle2cycle-diffcsen = <1>;
+
+               gpmc,cs-on-ns = <6>;
+               gpmc,cs-rd-off-ns = <180>;
+               gpmc,cs-wr-off-ns = <180>;
+               gpmc,adv-on-ns = <0>;
+               gpmc,adv-rd-off-ns = <18>;
+               gpmc,adv-wr-off-ns = <48>;
+               gpmc,oe-on-ns = <54>;
+               gpmc,oe-off-ns = <168>;
+               gpmc,we-on-ns = <54>;
+               gpmc,we-off-ns = <168>;
+               gpmc,rd-cycle-ns = <186>;
+               gpmc,wr-cycle-ns = <186>;
+               gpmc,access-ns = <144>;
+               gpmc,page-burst-access-ns = <24>;
+               gpmc,bus-turnaround-ns = <90>;
+               gpmc,cycle2cycle-delay-ns = <90>;
+               gpmc,wait-monitoring-ns = <0>;
+               gpmc,clk-activation-ns = <0>;
+               gpmc,wr-data-mux-bus-ns = <0>;
+               gpmc,wr-access-ns = <0>;
+       };
+};
+
+&omap3_pmx_core {
+       dss_dpi_pins: pinmux_dss_dpi_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0)       /* dss_pclk.dss_pclk */
+                       OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0)       /* dss_hsync.dss_hsync */
+                       OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0)       /* dss_vsync.dss_vsync */
+                       OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0)       /* dss_acbias.dss_acbias */
+                       OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0)       /* dss_data0.dss_data0 */
+                       OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0)       /* dss_data1.dss_data1 */
+                       OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0)       /* dss_data2.dss_data2 */
+                       OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0)       /* dss_data3.dss_data3 */
+                       OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0)       /* dss_data4.dss_data4 */
+                       OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0)       /* dss_data5.dss_data5 */
+                       OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0)       /* dss_data6.dss_data6 */
+                       OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0)       /* dss_data7.dss_data7 */
+                       OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0)       /* dss_data8.dss_data8 */
+                       OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0)       /* dss_data9.dss_data9 */
+                       OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0)       /* dss_data10.dss_data10 */
+                       OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0)       /* dss_data11.dss_data11 */
+                       OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0)       /* dss_data12.dss_data12 */
+                       OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0)       /* dss_data13.dss_data13 */
+                       OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0)       /* dss_data14.dss_data14 */
+                       OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0)       /* dss_data15.dss_data15 */
+                       OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0)       /* dss_data16.dss_data16 */
+                       OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0)       /* dss_data17.dss_data17 */
+                       OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0)       /* dss_data18.dss_data18 */
+                       OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0)       /* dss_data19.dss_data19 */
+                       OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0)       /* dss_data20.dss_data20 */
+                       OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0)       /* dss_data21.dss_data21 */
+                       OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0)       /* dss_data22.dss_data22 */
+                       OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0)       /* dss_data23.dss_data23 */
+               >;
+       };
+};
+
+&vpll1 {
+       /* Needed for DSS */
+       regulator-name = "vdds_dsi";
+
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <1800000>;
+};
+
+&dss {
+       status = "ok";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&dss_dpi_pins>;
+
+       vdds_dsi-supply = <&vpll1>;
+       vdda_dac-supply = <&vdac>;
+
+       port {
+               dpi_dvi_out: endpoint@0 {
+                       remote-endpoint = <&tfp410_in>;
+                       data-lines = <24>;
+               };
+       };
+};
+
+&venc {
+       status = "ok";
+
+       vdda-supply = <&vdac>;
+
+       port {
+               venc_out: endpoint {
+                       remote-endpoint = <&tv_connector_in>;
+                       ti,channels = <2>;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi b/arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi
new file mode 100644 (file)
index 0000000..e84184d
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Author: Anthoine Bourgeois <anthoine.bourgois@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "omap3-devkit8000-common.dtsi"
+/ {
+       aliases {
+               display0 = &lcd0;
+               display1 = &dvi0;
+               display2 = &tv0;
+       };
+
+       lcd0: display@0 {
+               compatible = "panel-dpi";
+               label = "lcd";
+
+               enable-gpios = <&twl_gpio 18 GPIO_ACTIVE_HIGH>;
+
+               port {
+                       lcd_in: endpoint {
+                               remote-endpoint = <&dpi_lcd_out>;
+                       };
+               };
+       };
+};
+
+&dss {
+       port {
+               dpi_lcd_out: endpoint@1 {
+                       remote-endpoint = <&lcd_in>;
+                       data-lines = <24>;
+               };
+       };
+};
+
+&vio {
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <1800000>;
+};
+
+&mcspi2 {
+
+       /* touch controller */
+       ads7846@0 {
+               compatible = "ti,ads7846";
+               vcc-supply = <&vio>;
+
+               reg = <0>;                      /* CS0 */
+               spi-max-frequency = <1500000>;
+
+               interrupt-parent = <&gpio1>;
+               interrupts = <27 0>;            /* gpio_27 */
+               pendown-gpio = <&gpio1 27 0>;
+
+               ti,x-min = /bits/ 16 <0x0>;
+               ti,x-max = /bits/ 16 <0x0fff>;
+               ti,y-min = /bits/ 16 <0x0>;
+               ti,y-max = /bits/ 16 <0x0fff>;
+               ti,x-plate-ohms = /bits/ 16 <180>;
+               ti,pressure-max = /bits/ 16 <255>;
+               ti,debounce-max = /bits/ 16 <10>;
+               ti,debounce-tol = /bits/ 16 <5>;
+               ti,debounce-rep = /bits/ 16 <1>;
+               ti,keep-vref-on = <1>;
+               ti,settle-delay-usec = /bits/ 16 <150>;
+
+               linux,wakeup;
+       };
+};
diff --git a/arch/arm/boot/dts/omap3-devkit8000-lcd43.dts b/arch/arm/boot/dts/omap3-devkit8000-lcd43.dts
new file mode 100644 (file)
index 0000000..d570535
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Author: Anthoine Bourgeois <anthoine.bourgois@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/dts-v1/;
+
+/*
+ * 4.3'' LCD panel sold with devkit8000 board
+ */
+
+#include "omap3-devkit8000-lcd-common.dtsi"
+/ {
+       model = "TimLL OMAP3 Devkit8000 with 4.3'' LCD panel";
+       compatible = "timll,omap3-devkit8000", "ti,omap3";
+
+       lcd0: display@0 {
+               panel-timing {
+                       clock-frequency = <10164705>;
+                       hactive = <480>;
+                       vactive = <272>;
+                       hfront-porch = <2>;
+                       hback-porch = <2>;
+                       hsync-len = <41>;
+                       vback-porch = <2>;
+                       vfront-porch = <2>;
+                       vsync-len = <10>;
+
+                       hsync-active = <0>;
+                       vsync-active = <0>;
+                       de-active = <1>;
+                       pixelclk-active = <1>;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/omap3-devkit8000-lcd70.dts b/arch/arm/boot/dts/omap3-devkit8000-lcd70.dts
new file mode 100644 (file)
index 0000000..4afad4b
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Author: Anthoine Bourgeois <anthoine.bourgois@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/dts-v1/;
+
+/*
+ * 7.0'' LCD panel sold with some devkit8000 board
+ */
+
+#include "omap3-devkit8000-lcd-common.dtsi"
+/ {
+       model = "TimLL OMAP3 Devkit8000 with 7.0'' LCD panel";
+       compatible = "timll,omap3-devkit8000", "ti,omap3";
+
+       lcd0: display@0 {
+               panel-timing {
+                       clock-frequency = <40000000>;
+                       hactive = <800>;
+                       vactive = <480>;
+                       hfront-porch = <1>;
+                       hback-porch = <1>;
+                       hsync-len = <48>;
+                       vback-porch = <25>;
+                       vfront-porch = <12>;
+                       vsync-len = <3>;
+
+                       hsync-active = <0>;
+                       vsync-active = <0>;
+                       de-active = <1>;
+                       pixelclk-active = <1>;
+               };
+       };
+};
index be2297116a1439bcdc8da56cde8b2c3e5c168092..40ac89482f5d005233bbe56cb042ffb473a1409d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Author: Anil Kumar <anilk4.v@gmail.com>
+ * Author: Anthoine Bourgeois <anthoine.bourgeois@gmail.com>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
  */
 /dts-v1/;
 
-#include "omap34xx.dtsi"
+#include "omap3-devkit8000-common.dtsi"
 / {
        model = "TimLL OMAP3 Devkit8000";
        compatible = "timll,omap3-devkit8000", "ti,omap3";
 
-       memory {
-               device_type = "memory";
-               reg = <0x80000000 0x10000000>;  /* 256 MB */
-       };
-
-       leds {
-               compatible = "gpio-leds";
-
-               heartbeat {
-                       label = "devkit8000::led1";
-                       gpios = <&gpio6 26 GPIO_ACTIVE_HIGH>;   /* 186 -> LED1 */
-                       default-state = "on";
-                       linux,default-trigger = "heartbeat";
-               };
-
-               mmc {
-                       label = "devkit8000::led2";
-                       gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>;    /* 163 -> LED2 */
-                       default-state = "on";
-                       linux,default-trigger = "none";
-               };
-
-               usr {
-                       label = "devkit8000::led3";
-                       gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>;    /* 164 -> LED3 */
-                       default-state = "on";
-                       linux,default-trigger = "usr";
-                };
-
-       };
-
-       sound {
-               compatible = "ti,omap-twl4030";
-               ti,model = "devkit8000";
-
-               ti,mcbsp = <&mcbsp2>;
-               ti,audio-routing =
-                       "Ext Spk", "PREDRIVEL",
-                       "Ext Spk", "PREDRIVER",
-                       "MAINMIC", "Main Mic",
-                       "Main Mic", "Mic Bias 1";
-       };
-};
-
-&i2c1 {
-       clock-frequency = <2600000>;
-
-       twl: twl@48 {
-               reg = <0x48>;
-               interrupts = <7>;       /* SYS_NIRQ cascaded to intc */
-
-               twl_audio: audio {
-                       compatible = "ti,twl4030-audio";
-                       codec {
-                       };
-               };
-       };
-};
-
-&i2c2 {
-       status = "disabled";
-};
-
-&i2c3 {
-       status = "disabled";
-};
-
-#include "twl4030.dtsi"
-#include "twl4030_omap3.dtsi"
-
-&mmc1 {
-       vmmc-supply = <&vmmc1>;
-       vmmc_aux-supply = <&vsim>;
-       bus-width = <8>;
-};
-
-&mmc2 {
-       status = "disabled";
-};
-
-&mmc3 {
-       status = "disabled";
-};
-
-&wdt2 {
-       status = "disabled";
-};
-
-&mcbsp2 {
-       status = "okay";
-};
-
-&gpmc {
-       ranges = <0 0 0x30000000 0x1000000>;       /* CS0: 16MB for NAND */
-
-       nand@0,0 {
-               reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
-               nand-bus-width = <16>;
-               gpmc,device-width = <2>;
-               ti,nand-ecc-opt = "sw";
-
-               gpmc,sync-clk-ps = <0>;
-               gpmc,cs-on-ns = <0>;
-               gpmc,cs-rd-off-ns = <44>;
-               gpmc,cs-wr-off-ns = <44>;
-               gpmc,adv-on-ns = <6>;
-               gpmc,adv-rd-off-ns = <34>;
-               gpmc,adv-wr-off-ns = <44>;
-               gpmc,we-off-ns = <40>;
-               gpmc,oe-off-ns = <54>;
-               gpmc,access-ns = <64>;
-               gpmc,rd-cycle-ns = <82>;
-               gpmc,wr-cycle-ns = <82>;
-               gpmc,wr-access-ns = <40>;
-               gpmc,wr-data-mux-bus-ns = <0>;
-
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               x-loader@0 {
-                       label = "X-Loader";
-                       reg = <0 0x80000>;
-               };
-
-               bootloaders@80000 {
-                       label = "U-Boot";
-                       reg = <0x80000 0x1e0000>;
-               };
-
-               bootloaders_env@260000 {
-                       label = "U-Boot Env";
-                       reg = <0x260000 0x20000>;
-               };
-
-               kernel@280000 {
-                       label = "Kernel";
-                       reg = <0x280000 0x400000>;
-               };
-
-               filesystem@680000 {
-                       label = "File System";
-                       reg = <0x680000 0xf980000>;
-               };
-       };
-};
-
-&gpmc {
-       ranges = <6 0 0x2c000000 0x1000000>;       /* CS6: 16MB for DM9000 */
-
-       ethernet@0,0 {
-               compatible = "davicom,dm9000";
-               reg =  <6 0x000 2
-                       6 0x400 2>; /* CS6, offset 0 and 0x400, IO size 2 */
-               bank-width = <2>;
-               interrupt-parent = <&gpio1>;
-               interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
-               davicom,no-eeprom;
-
-               gpmc,mux-add-data = <0>;
-               gpmc,device-width = <1>;
-               gpmc,wait-pin = <0>;
-               gpmc,cycle2cycle-samecsen = <1>;
-               gpmc,cycle2cycle-diffcsen = <1>;
-
-               gpmc,cs-on-ns = <6>;
-               gpmc,cs-rd-off-ns = <180>;
-               gpmc,cs-wr-off-ns = <180>;
-               gpmc,adv-on-ns = <0>;
-               gpmc,adv-rd-off-ns = <18>;
-               gpmc,adv-wr-off-ns = <48>;
-               gpmc,oe-on-ns = <54>;
-               gpmc,oe-off-ns = <168>;
-               gpmc,we-on-ns = <54>;
-               gpmc,we-off-ns = <168>;
-               gpmc,rd-cycle-ns = <186>;
-               gpmc,wr-cycle-ns = <186>;
-               gpmc,access-ns = <144>;
-               gpmc,page-burst-access-ns = <24>;
-               gpmc,bus-turnaround-ns = <90>;
-               gpmc,cycle2cycle-delay-ns = <90>;
-               gpmc,wait-monitoring-ns = <0>;
-               gpmc,clk-activation-ns = <0>;
-               gpmc,wr-data-mux-bus-ns = <0>;
-               gpmc,wr-access-ns = <0>;
+       aliases {
+               display1 = &dvi0;
+               display2 = &tv0;
        };
 };
index e63133304a341a3d7b2d3401003b351b2c821b32..d0dd0365bfda5c2e5e873ae3c817bf414417cab5 100644 (file)
                pinctrl-names = "default";
                pinctrl-0 = <&tsc2048_pins>;
 
-               ti,x-min = <300>;
-               ti,x-max = <3000>;
-               ti,y-min = <600>;
-               ti,y-max = <3600>;
-               ti,x-plate-ohms = <80>;
-               ti,pressure-max = <255>;
+               ti,x-min = /bits/ 16 <300>;
+               ti,x-max = /bits/ 16 <3000>;
+               ti,y-min = /bits/ 16 <600>;
+               ti,y-max = /bits/ 16 <3600>;
+               ti,x-plate-ohms = /bits/ 16 <80>;
+               ti,pressure-max = /bits/ 16 <255>;
                ti,swap-xy;
 
                linux,wakeup;
index 18e1649681c1cdada8faf1673a8ac73c50bff288..28430f1596f2a76d3f0b229b0ebc288b3d483c86 100644 (file)
        pinctrl-0 = <&uart2_pins>;
 };
 
+&mcbsp2 {
+       status = "okay";
+};
+
+&gpmc {
+       ranges = <0 0 0x00000000 0x20000000>;
+
+       nand@0,0 {
+               linux,mtd-name= "micron,mt29c4g96maz";
+               reg = <0 0 0>;
+               nand-bus-width = <16>;
+               gpmc,device-width = <2>;
+               ti,nand-ecc-opt = "bch8";
+
+               gpmc,sync-clk-ps = <0>;
+               gpmc,cs-on-ns = <0>;
+               gpmc,cs-rd-off-ns = <44>;
+               gpmc,cs-wr-off-ns = <44>;
+               gpmc,adv-on-ns = <6>;
+               gpmc,adv-rd-off-ns = <34>;
+               gpmc,adv-wr-off-ns = <44>;
+               gpmc,we-off-ns = <40>;
+               gpmc,oe-off-ns = <54>;
+               gpmc,access-ns = <64>;
+               gpmc,rd-cycle-ns = <82>;
+               gpmc,wr-cycle-ns = <82>;
+               gpmc,wr-access-ns = <40>;
+               gpmc,wr-data-mux-bus-ns = <0>;
+
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partition@0 {
+                       label = "SPL";
+                       reg = <0 0x80000>; /* 512KiB */
+               };
+               partition@80000 {
+                       label = "U-Boot";
+                       reg = <0x80000 0x1C0000>; /* 1792KiB */
+               };
+               partition@1c0000 {
+                       label = "Environment";
+                       reg = <0x240000 0x40000>; /* 256KiB */
+               };
+               partition@280000 {
+                       label = "Kernel";
+                       reg = <0x280000 0x800000>; /* 8192KiB */
+               };
+               partition@780000 {
+                       label = "Filesystem";
+                       reg = <0xA80000 0>;
+                       /* HACK: MTDPART_SIZ_FULL=0 so fill to end */
+               };
+       };
+};
index 233c69e50ae3ba1fc68f6f9f5e17a889c3c434ad..b874eb774f66e8b4d49ad9299b49ef7a99a09513 100644 (file)
@@ -62,6 +62,7 @@
                        OMAP3_CORE1_IOPAD(0x21ca, PIN_INPUT | MUX_MODE0)        /* mcspi1_simo.mcspi1_simo */
                        OMAP3_CORE1_IOPAD(0x21cc, PIN_INPUT | MUX_MODE0)        /* mcspi1_somi.mcspi1_somi */
                        OMAP3_CORE1_IOPAD(0x21ce, PIN_INPUT | MUX_MODE0)        /* mcspi1_cs0.mcspi1_cs0 */
+                       OMAP3_CORE1_IOPAD(0x21d0, PIN_INPUT | MUX_MODE0)        /* mcspi1_cs1.mcspi1_cs1 */
                >;
        };
 
                label = "lcd";
 
                reg = <1>;                                      /* CS1 */
-               spi-max-frequency = <10000000>;
+               spi-max-frequency = <500000>;
                spi-cpol;
                spi-cpha;
 
diff --git a/arch/arm/boot/dts/omap3-overo-palo35-common.dtsi b/arch/arm/boot/dts/omap3-overo-palo35-common.dtsi
new file mode 100644 (file)
index 0000000..680d726
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2015 Ash Charles, Gumstix 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.
+ */
+
+/*
+ * Palo35 expansion board is manufactured by Gumstix Inc.
+ */
+
+#include "omap3-overo-common-peripherals.dtsi"
+#include "omap3-overo-common-lcd35.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins>;
+               heartbeat {
+                       label = "overo:red:gpio21";
+                       gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;            /* gpio_21 */
+                       linux,default-trigger = "heartbeat";
+               };
+               gpio22 {
+                       label = "overo:blue:gpio22";
+                       gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;            /* gpio_22 */
+               };
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&button_pins>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               button0@23 {
+                       label = "button0";
+                       linux,code = <BTN_0>;
+                       gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;            /* gpio_23 */
+                       gpio-key,wakeup;
+               };
+               button1@14 {
+                       label = "button1";
+                       linux,code = <BTN_1>;
+                       gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;            /* gpio_14 */
+                       gpio-key,wakeup;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/omap3-overo-palo35.dts b/arch/arm/boot/dts/omap3-overo-palo35.dts
new file mode 100644 (file)
index 0000000..e3e2bce
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2015 Ash Charles, Gumstix 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.
+ */
+
+/*
+ * Palo35 expansion board is manufactured by Gumstix Inc.
+ */
+
+/dts-v1/;
+
+#include "omap3-overo.dtsi"
+#include "omap3-overo-palo35-common.dtsi"
+
+/ {
+       model = "OMAP35xx Gumstix Overo on Palo35";
+       compatible = "gumstix,omap3-overo-palo35", "gumstix,omap3-overo", "ti,omap3430", "ti,omap3";
+};
+
+&omap3_pmx_core2 {
+       led_pins: pinmux_led_pins {
+               pinctrl-single,pins = <
+                       OMAP3430_CORE2_IOPAD(0x25ea, PIN_OUTPUT | MUX_MODE4)    /* etk_d7.gpio_21 */
+                       OMAP3430_CORE2_IOPAD(0x25ec, PIN_OUTPUT | MUX_MODE4)    /* etk_d8.gpio_22 */
+               >;
+       };
+
+       button_pins: pinmux_button_pins {
+               pinctrl-single,pins = <
+                       OMAP3430_CORE2_IOPAD(0x25ee, PIN_INPUT | MUX_MODE4)     /* etk_d9.gpio_23 */
+                       OMAP3430_CORE2_IOPAD(0x25dc, PIN_INPUT | MUX_MODE4)     /* etk_d0.gpio_14 */
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/omap3-overo-storm-palo35.dts b/arch/arm/boot/dts/omap3-overo-storm-palo35.dts
new file mode 100644 (file)
index 0000000..4e725d2
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2015 Ash Charles, Gumstix, 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.
+ */
+
+/*
+ * Palo35 expansion board is manufactured by Gumstix Inc.
+ */
+
+/dts-v1/;
+
+#include "omap3-overo-storm.dtsi"
+#include "omap3-overo-palo35-common.dtsi"
+
+/ {
+       model = "OMAP36xx/AM37xx/DM37xx Gumstix Overo on Palo35";
+       compatible = "gumstix,omap3-overo-palo35", "gumstix,omap3-overo", "ti,omap36xx", "ti,omap3";
+};
+
+&omap3_pmx_core2 {
+       led_pins: pinmux_led_pins {
+               pinctrl-single,pins = <
+                       OMAP3630_CORE2_IOPAD(0x25ea, PIN_OUTPUT | MUX_MODE4)    /* etk_d7.gpio_21 */
+                       OMAP3630_CORE2_IOPAD(0x25ec, PIN_OUTPUT | MUX_MODE4)    /* etk_d8.gpio_22 */
+               >;
+       };
+
+       button_pins: pinmux_button_pins {
+               pinctrl-single,pins = <
+                       OMAP3630_CORE2_IOPAD(0x25ee, PIN_INPUT | MUX_MODE4)     /* etk_d9.gpio_23 */
+                       OMAP3630_CORE2_IOPAD(0x25dc, PIN_INPUT | MUX_MODE4)     /* etk_d0.gpio_14 */
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/omap3-overo-storm-tobiduo.dts b/arch/arm/boot/dts/omap3-overo-storm-tobiduo.dts
new file mode 100644 (file)
index 0000000..da6afaf
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2015 Ash Charles, Gumstix, 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.
+ */
+
+/*
+ * TobiDuo expansion board is manufactured by Gumstix Inc.
+ */
+
+/dts-v1/;
+
+#include "omap3-overo-storm.dtsi"
+#include "omap3-overo-tobiduo-common.dtsi"
+
+/ {
+       model = "OMAP36xx/AM37xx/DM37xx Gumstix Overo on TobiDuo";
+       compatible = "gumstix,omap3-overo-tobiduo", "gumstix,omap3-overo", "ti,omap36xx", "ti,omap3";
+};
diff --git a/arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi b/arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi
new file mode 100644 (file)
index 0000000..334109e
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2015 Ash Charles, Gumstix, 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.
+ */
+
+/*
+ * TobiDuo expansion board is manufactured by Gumstix Inc.
+ */
+
+#include "omap3-overo-common-peripherals.dtsi"
+
+#include "omap-gpmc-smsc9221.dtsi"
+
+&gpmc {
+       ranges = <4 0 0x2b000000 0x1000000>,    /* CS4 */
+                <5 0 0x2c000000 0x1000000>;    /* CS5 */
+
+       smsc1: ethernet@gpmc {
+               reg = <5 0 0xff>;
+               interrupt-parent = <&gpio6>;
+               interrupts = <16 IRQ_TYPE_LEVEL_LOW>;   /* GPIO 176 */
+       };
+
+       smsc2: ethernet@4,0 {
+               compatible = "smsc,lan9221","smsc,lan9115";
+               bank-width = <2>;
+
+               gpmc,mux-add-data;
+               gpmc,cs-on-ns = <0>;
+               gpmc,cs-rd-off-ns = <42>;
+               gpmc,cs-wr-off-ns = <36>;
+               gpmc,adv-on-ns = <6>;
+               gpmc,adv-rd-off-ns = <12>;
+               gpmc,adv-wr-off-ns = <12>;
+               gpmc,oe-on-ns = <0>;
+               gpmc,oe-off-ns = <42>;
+               gpmc,we-on-ns = <0>;
+               gpmc,we-off-ns = <36>;
+               gpmc,rd-cycle-ns = <60>;
+               gpmc,wr-cycle-ns = <54>;
+               gpmc,access-ns = <36>;
+               gpmc,page-burst-access-ns = <0>;
+               gpmc,bus-turnaround-ns = <0>;
+               gpmc,cycle2cycle-delay-ns = <0>;
+               gpmc,wr-data-mux-bus-ns = <18>;
+               gpmc,wr-access-ns = <42>;
+               gpmc,cycle2cycle-samecsen;
+               gpmc,cycle2cycle-diffcsen;
+               vddvario-supply = <&vddvario>;
+               vdd33a-supply = <&vdd33a>;
+               reg-io-width = <4>;
+               smsc,save-mac-address;
+
+               reg = <4 0 0xff>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <1 IRQ_TYPE_LEVEL_LOW>;    /* GPIO 65 */
+       };
+};
+
+&lis33de {
+       status = "disabled";
+};
diff --git a/arch/arm/boot/dts/omap3-overo-tobiduo.dts b/arch/arm/boot/dts/omap3-overo-tobiduo.dts
new file mode 100644 (file)
index 0000000..b9ce310
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2015 Ash Charles, Gumstix, 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.
+ */
+
+/*
+ * TobiDuo expansion board is manufactured by Gumstix Inc.
+ */
+
+/dts-v1/;
+
+#include "omap3-overo.dtsi"
+#include "omap3-overo-tobiduo-common.dtsi"
+
+/ {
+       model = "OMAP35xx Gumstix Overo on TobiDuo";
+       compatible = "gumstix,omap3-overo-tobiduo", "gumstix,omap3-overo", "ti,omap3430", "ti,omap3";
+};
index 69ca7c45bca29399ef38a52320802439bf7422bd..932a02ff552aaff07e8902fdddf9e0e383074233 100644 (file)
@@ -32,7 +32,3 @@
                >;
        };
 };
-
-&mcbsp2 {
-       status = "okay";
-};
index 9619a28dfd7d694dfb2b4dd425d7094ff043751d..25498f756a29e642969a07c7fd1a81f65549ebf1 100644 (file)
@@ -19,7 +19,7 @@
 / {
        model = "Pandora Handheld Console 1GHz";
 
-       compatible = "ti,omap36xx", "ti,omap3";
+       compatible = "openpandora,omap3-pandora-1ghz", "ti,omap36xx", "ti,omap3";
 };
 
 &omap3_pmx_core2 {
index fb803a70a2bbd1c81f6bf136119541a862609120..8775897a4ce762b6226d1c79f9a3b59a34602c4e 100644 (file)
@@ -19,7 +19,7 @@
 / {
        model = "Pandora Handheld Console";
 
-       compatible = "ti,omap3";
+       compatible = "openpandora,omap3-pandora-600mhz", "ti,omap3430", "ti,omap3";
 };
 
 &omap3_pmx_core2 {
index 782ab1ff1d089eeac52214c7b18f77eab412eb14..f2084e6d01e76f7c3fd552a729c308540f44aee7 100644 (file)
                        gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;   /* GPIO_108 */
                };
        };
+
+       /* HS USB Host PHY on PORT 2 */
+       hsusb2_phy: hsusb2_phy {
+               compatible = "usb-nop-xceiv";
+               reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; /* GPIO_16 */
+               vcc-supply = <&vaux2>;
+       };
+
+       /* HS USB Host VBUS supply
+        * disabling this regulator causes current leakage, and LCD flicker
+        * on earlier (CC) board revisions, so keep it always on */
+       usb_host_5v: fixed-regulator-usb_host_5v {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_host_5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               regulator-boot-on;
+               enable-active-high;
+               gpio = <&gpio6 4 0>;    /* GPIO_164 */
+       };
+
+       /* wg7210 (wifi+bt module) 32k clock buffer */
+       wg7210_32k: fixed-regulator-wg7210_32k {
+               compatible = "regulator-fixed";
+               regulator-name = "wg7210_32k";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               enable-active-high;
+               gpio = <&twl_gpio 13 GPIO_ACTIVE_HIGH>;
+       };
 };
 
 &omap3_pmx_core {
        power = <50>;
 };
 
+/*
+ * Many pandora boards have been produced with defective write-protect switches
+ * on either slot, so it was decided not to use this feature. If you know
+ * your board has good switches, feel free to uncomment wp-gpios below.
+ */
 &mmc1 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc1_pins>;
        vmmc-supply = <&vmmc1>;
        bus-width = <4>;
        cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>;
-       wp-gpios = <&gpio4 30 GPIO_ACTIVE_LOW>; /* GPIO_126 */
+       /*wp-gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>;*/    /* GPIO_126 */
 };
 
 &mmc2 {
        pinctrl-0 = <&mmc2_pins>;
        vmmc-supply = <&vmmc2>;
        bus-width = <4>;
-       cd-gpios = <&twl_gpio 1 GPIO_ACTIVE_HIGH>;
-       wp-gpios = <&gpio4 31 GPIO_ACTIVE_LOW>; /* GPIO_127 */
+       cd-gpios = <&twl_gpio 1 GPIO_ACTIVE_LOW>;
+       /*wp-gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>;*/    /* GPIO_127 */
+};
+
+/* mmc3 is probed using pdata-quirks to pass wl1251 card data */
+&mmc3 {
+       status = "disabled";
 };
 
 /* bluetooth*/
        port2-mode = "ehci-phy";
 };
 
+&usbhsehci {
+       phys = <0 &hsusb2_phy>;
+};
+
 &gpmc {
        ranges = <0 0 0x30000000 0x1000000>; /* CS0: 16MB for NAND */
 
                        reg = <0x280000 0xa00000>;
                };
 
-               filesystem@680000 {
+               filesystem@c80000 {
                        label = "rootfs";
                        reg = <0xc80000 0>;     /* 0 = MTDPART_SIZ_FULL */
                };
index 275618f19a43d3b8860bea6de9944dbdf020c6ce..3cc8f357d5b8f5187814a202d2b5f6e74d837fb8 100644 (file)
                                };
                        };
                };
+
+               palmas_power_button: palmas_power_button {
+                       compatible = "ti,palmas-pwrbutton";
+                       interrupt-parent = <&palmas>;
+                       interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+                       wakeup-source;
+               };
        };
 
        twl6040: twl@4b {
index 7d24ae0306b56845c80c2c783dd818033a3a6cd1..0b25c967778bca53eb9fc6ba158ca86fff2b3b8a 100644 (file)
                        dwc3@4a030000 {
                                compatible = "snps,dwc3";
                                reg = <0x4a030000 0x10000>;
-                               interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "peripheral",
+                                                 "host",
+                                                 "otg";
                                phys = <&usb2_phy>, <&usb3_phy>;
                                phy-names = "usb2-phy", "usb3-phy";
                                dr_mode = "peripheral";
diff --git a/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts b/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts
new file mode 100644 (file)
index 0000000..3daec91
--- /dev/null
@@ -0,0 +1,273 @@
+/*
+ * Device Tree file for Buffalo Linkstation LS-WTGL
+ *
+ * Copyright (C) 2015, Roger Shimizu <rogershimizu@gmail.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ * Or, alternatively
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include "orion5x-mv88f5182.dtsi"
+
+/ {
+       model = "Buffalo Linkstation LS-WTGL";
+       compatible = "buffalo,lswtgl", "marvell,orion5x-88f5182", "marvell,orion5x";
+
+       memory { /* 64 MB */
+               device_type = "memory";
+               reg = <0x00000000 0x4000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200n8 earlyprintk";
+               linux,stdout-path = &uart0;
+       };
+
+       soc {
+               ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>,
+                        <MBUS_ID(0x09, 0x00) 0 0xf2200000 0x800>,
+                        <MBUS_ID(0x01, 0x0f) 0 0xf4000000 0x40000>;
+
+               internal-regs {
+                       pinctrl: pinctrl@10000 {
+                               pinctrl-0 = <&pmx_usb_power &pmx_power_hdd
+                                       &pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
+                               pinctrl-names = "default";
+
+                               pmx_led_power: pmx-leds {
+                                       marvell,pins = "mpp0";
+                                       marvell,function = "gpio";
+                               };
+
+                               pmx_led_alarm: pmx-leds {
+                                       marvell,pins = "mpp2";
+                                       marvell,function = "gpio";
+                               };
+
+                               pmx_led_info: pmx-leds {
+                                       marvell,pins = "mpp3";
+                                       marvell,function = "gpio";
+                               };
+
+                               pmx_power_hdd: pmx-power-hdd {
+                                       marvell,pins = "mpp1";
+                                       marvell,function = "gpio";
+                               };
+
+                               pmx_usb_power: pmx-usb-power {
+                                       marvell,pins = "mpp9";
+                                       marvell,function = "gpio";
+                               };
+
+                               pmx_sata0: pmx-sata0 {
+                                       marvell,pins = "mpp12";
+                                       marvell,function = "sata0";
+                               };
+
+                               pmx_sata1: pmx-sata1 {
+                                       marvell,pins = "mpp13";
+                                       marvell,function = "sata1";
+                               };
+
+                               pmx_fan_high: pmx-fan-high {
+                                       marvell,pins = "mpp14";
+                                       marvell,function = "gpio";
+                               };
+
+                               pmx_fan_low: pmx-fan-low {
+                                       marvell,pins = "mpp17";
+                                       marvell,function = "gpio";
+                               };
+
+                               pmx_fan_lock: pmx-fan-lock {
+                                       marvell,pins = "mpp6";
+                                       marvell,function = "gpio";
+                               };
+
+                               pmx_power_switch: pmx-power-switch {
+                                       marvell,pins = "mpp8", "mpp10";
+                                       marvell,function = "gpio";
+                               };
+                       };
+               };
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-0 = <&pmx_power_switch>;
+               pinctrl-names = "default";
+
+               button@1 {
+                       label = "Power-on Switch";
+                       linux,code = <KEY_RESERVED>;
+                       linux,input-type = <5>;
+                       gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
+               };
+
+               button@2 {
+                       label = "Power-auto Switch";
+                       linux,code = <KEY_ESC>;
+                       linux,input-type = <5>;
+                       gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       gpio_leds {
+               compatible = "gpio-leds";
+               pinctrl-0 = <&pmx_led_power &pmx_led_alarm
+                            &pmx_led_info>;
+               pinctrl-names = "default";
+
+               led@1 {
+                       label = "lswtgl:blue:power";
+                       gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
+               };
+
+               led@2 {
+                       label = "lswtgl:red:alarm";
+                       gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+               };
+
+               led@3 {
+                       label = "lswtgl:amber:info";
+                       gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       gpio_fan {
+               compatible = "gpio-fan";
+               pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
+               pinctrl-names = "default";
+
+               gpios = <&gpio0 14 GPIO_ACTIVE_LOW
+                        &gpio0 17 GPIO_ACTIVE_LOW>;
+
+               gpio-fan,speed-map = <0 3
+                               1500 2
+                               3250 1
+                               5000 0>;
+
+               alarm-gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
+       };
+
+       restart_poweroff {
+               compatible = "restart-poweroff";
+       };
+
+       regulators {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-0 = <&pmx_power_hdd &pmx_usb_power>;
+               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;
+                       gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+               };
+
+               hdd_power: regulator@2 {
+                       compatible = "regulator-fixed";
+                       reg = <2>;
+                       regulator-name = "HDD Power";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       enable-active-high;
+                       regulator-always-on;
+                       regulator-boot-on;
+                       gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+&mdio {
+       status = "okay";
+
+       ethphy: ethernet-phy {
+               reg = <8>;
+       };
+};
+
+&eth {
+       status = "okay";
+
+       ethernet-port@0 {
+               phy-handle = <&ethphy>;
+       };
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&i2c {
+       status = "okay";
+
+       rtc {
+               compatible = "ricoh,rs5c372a";
+               reg = <0x32>;
+       };
+};
+
+&wdt {
+       status = "disabled";
+};
+
+&sata {
+       pinctrl-0 = <&pmx_sata0 &pmx_sata1>;
+       pinctrl-names = "default";
+       status = "okay";
+       nr-ports = <2>;
+};
+
+&uart0 {
+       status = "okay";
+};
index 90b99714ad80ef2293cf254c3d43074d79cadb03..7f68a1ee7073cb487eae11bbb7edbb3fc861d61e 100644 (file)
@@ -7,6 +7,15 @@
        compatible = "marvell,pxa27x";
 
        pxabus {
+               pdma: dma-controller@40000000 {
+                       compatible = "marvell,pdma-1.0";
+                       reg = <0x40000000 0x10000>;
+                       interrupts = <25>;
+                       #dma-channels = <32>;
+                       #dma-cells = <2>;
+                       status = "okay";
+               };
+
                pxairq: interrupt-controller@40d00000 {
                        marvell,intc-priority;
                        marvell,intc-nr-irqs = <34>;
                        clocks = <&clks CLK_NONE>;
                };
 
+               pxa27x_ohci: usb@4c000000 {
+                       compatible = "marvell,pxa-ohci";
+                       reg = <0x4c000000 0x10000>;
+                       interrupts = <3>;
+                       clocks = <&clks CLK_USBHOST>;
+                       status = "disabled";
+               };
+
                pwm0: pwm@40b00000 {
                        compatible = "marvell,pxa270-pwm", "marvell,pxa250-pwm";
                        reg = <0x40b00000 0x10>;
@@ -50,6 +67,8 @@
                        reg = <0x40f00180 0x24>;
                        interrupts = <6>;
                        clocks = <&clks CLK_PWRI2C>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0>;
                        status = "disabled";
                };
 
                        clocks = <&clks CLK_KEYPAD>;
                        status = "disabled";
                };
+
+               pxa_camera: imaging@50000000 {
+                       compatible = "marvell,pxa270-qci";
+                       reg = <0x50000000 0x1000>;
+                       interrupts = <33>;
+                       dmas = <&pdma 68 0      /* Y channel */
+                               &pdma 69 0      /* U channel */
+                               &pdma 70 0>;    /* V channel */
+                       dma-names = "CI_Y", "CI_U", "CI_V";
+
+                       clocks = <&clks CLK_CAMERA>;
+                       clock-names = "ciclk";
+                       clock-frequency = <5000000>;
+                       clock-output-names = "qci_mclk";
+
+                       status = "disabled";
+               };
        };
 
        clocks {
index 71a0cd7388d16f74c9d290e4645deef086997ab1..5e5af078b9b5433bda69d25931c52a1eb5a94b24 100644 (file)
                        compatible = "marvell,pxa-mmc";
                        reg = <0x41100000 0x1000>;
                        interrupts = <23>;
+                       clocks = <&clks CLK_MMC>;
+                       dmas = <&pdma 21 3
+                               &pdma 22 3>;
+                       dma-names = "rx", "tx";
                        status = "disabled";
                };
 
index 7ad0b177109837bf7c06d47e0acf032af8c86e31..cf6998a0804d418be89e476de2645fe293845bab 100644 (file)
@@ -6,6 +6,15 @@
        compatible = "marvell,pxa3xx";
 
        pxabus {
+               pdma: dma-controller@40000000 {
+                       compatible = "marvell,pdma-1.0";
+                       reg = <0x40000000 0x10000>;
+                       interrupts = <25>;
+                       #dma-channels = <32>;
+                       #dma-cells = <2>;
+                       status = "okay";
+               };
+
                pwri2c: i2c@40f500c0 {
                        compatible = "mrvl,pwri2c";
                        reg = <0x40f500c0 0x30>;
@@ -21,6 +30,8 @@
                        reg = <0x43100000 90>;
                        interrupts = <45>;
                        clocks = <&clks CLK_NAND>;
+                       dmas = <&pdma 97>;
+                       dma-names = "data";
                        #address-cells = <1>;
                        #size-cells = <1>;      
                        status = "disabled";
                        interrupt-controller;
                        #interrupt-cells = <0x2>;
                };
+
+               mmc0: mmc@41100000 {
+                       compatible = "marvell,pxa-mmc";
+                       reg = <0x41100000 0x1000>;
+                       interrupts = <23>;
+                       clocks = <&clks CLK_MMC>;
+                       dmas = <&pdma 21 3
+                               &pdma 22 3>;
+                       dma-names = "rx", "tx";
+                       status = "disabled";
+               };
+
+               mmc1: mmc@42000000 {
+                       compatible = "marvell,pxa-mmc";
+                       reg = <0x42000000 0x1000>;
+                       interrupts = <41>;
+                       clocks = <&clks CLK_MMC1>;
+                       dmas = <&pdma 93 3
+                               &pdma 94 3>;
+                       dma-names = "rx", "tx";
+                       status = "disabled";
+               };
+
+               mmc2: mmc@42500000 {
+                       compatible = "marvell,pxa-mmc";
+                       reg = <0x42500000 0x1000>;
+                       interrupts = <55>;
+                       clocks = <&clks CLK_MMC2>;
+                       dmas = <&pdma 46 3
+                               &pdma 47 3>;
+                       dma-names = "rx", "tx";
+                       status = "disabled";
+               };
+
+               pxa3xx_ohci: usb@4c000000 {
+                       compatible = "marvell,pxa-ohci";
+                       reg = <0x4c000000 0x10000>;
+                       interrupts = <3>;
+                       clocks = <&clks CLK_USBHOST>;
+                       status = "disabled";
+               };
        };
 
        clocks {
index 71512b3ca4443c7e12dfb106a442e73921c81ac5..34ccb260f12a9e6be49f3a41f20544e293687ad0 100644 (file)
                                        bias-pull-down;
                                };
 
+                               pm8921_l5: l5 {
+                                       regulator-min-microvolt = <2750000>;
+                                       regulator-max-microvolt = <3000000>;
+                                       bias-pull-down;
+                               };
+
                                pm8921_l23: l23 {
                                        regulator-min-microvolt = <1700000>;
                                        regulator-max-microvolt = <1900000>;
                        status = "okay";
                };
 
+               /* on board fixed 3.3v supply */
+               v3p3_fixed: v3p3 {
+                       compatible = "regulator-fixed";
+                       regulator-name = "PCIE V3P3";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+
                amba {
                        /* eMMC */
                        sdcc1: sdcc@12400000 {
                                status = "okay";
+                               vmmc-supply = <&pm8921_l5>;
+                               vqmmc-supply = <&pm8921_s4>;
                        };
 
                        /* External micro SD card */
                        sdcc3: sdcc@12180000 {
                                status = "okay";
+                               vmmc-supply = <&v3p3_fixed>;
                        };
                        /* WLAN */
                        sdcc4: sdcc@121c0000 {
                                status = "okay";
+                               vmmc-supply = <&v3p3_fixed>;
+                               vqmmc-supply = <&v3p3_fixed>;
                        };
                };
        };
index a7c939ba88730bf7b1e7076dc9b592e9d2b5577d..88d6655ddaf6dfae95301dfb97d85f46063b05ca 100644 (file)
@@ -7,6 +7,7 @@
 
        aliases {
                serial0 = &gsbi7_serial;
+               serial1 = &gsbi6_serial;
        };
 
        soc {
                                        bias-pull-down;
                                };
 
+                               pm8921_l5: l5 {
+                                       regulator-min-microvolt = <2750000>;
+                                       regulator-max-microvolt = <3000000>;
+                                       bias-pull-down;
+                               };
+
                                pm8921_l6: l6 {
                                        regulator-min-microvolt = <2950000>;
                                        regulator-max-microvolt = <2950000>;
                                        regulator-max-microvolt = <1900000>;
                                        bias-pull-down;
                                };
+
+                               pm8921_lvs1: lvs1 {
+                                       bias-pull-down;
+                               };
                        };
                };
 
+               ext_3p3v: regulator-fixed@1 {
+                       compatible = "regulator-fixed";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-name = "ext_3p3v";
+                       regulator-type = "voltage";
+                       startup-delay-us = <0>;
+                       gpio = <&tlmm_pinmux 77 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+                       regulator-boot-on;
+               };
+
                gsbi3: gsbi@16200000 {
                        status = "okay";
                        qcom,mode = <GSBI_PROT_I2C>;
                        };
                };
 
+               gsbi@16500000 {
+                       status = "ok";
+                       qcom,mode = <GSBI_PROT_I2C_UART>;
+
+                       serial@16540000 {
+                               status = "ok";
+
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&uart_pins>;
+                       };
+               };
+
                gsbi@16600000 {
                        status = "ok";
                        qcom,mode = <GSBI_PROT_I2C_UART>;
                        /* eMMC */
                        sdcc1: sdcc@12400000 {
                                status = "okay";
+                               vmmc-supply = <&pm8921_l5>;
+                               vqmmc-supply = <&pm8921_s4>;
                        };
 
                        /* External micro SD card */
                        sdcc3: sdcc@12180000 {
                                status = "okay";
+                               vmmc-supply = <&pm8921_l6>;
                                pinctrl-names   = "default";
                                pinctrl-0       = <&card_detect>;
                                cd-gpios        = <&tlmm_pinmux 26 GPIO_ACTIVE_LOW>;
                        /* WLAN */
                        sdcc4: sdcc@121c0000 {
                                status = "okay";
+                               vmmc-supply = <&ext_3p3v>;
+                               vqmmc-supply = <&pm8921_lvs1>;
                        };
                };
        };
index df2061ec630d16e71165d78ce71a8a4a32092271..d2e94d647c27936c682c7a4d6bb9033c769173e7 100644 (file)
@@ -6,7 +6,6 @@
 #include <dt-bindings/clock/qcom,mmcc-msm8960.h>
 #include <dt-bindings/soc/qcom,gsbi.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
-
 / {
        model = "Qualcomm APQ8064";
        compatible = "qcom,apq8064";
                                        function = "gsbi3";
                                };
                        };
+
+                       uart_pins: uart_pins {
+                               mux {
+                                       pins = "gpio14", "gpio15", "gpio16", "gpio17";
+                                       function = "gsbi6";
+                               };
+                       };
                };
 
                intc: interrupt-controller@2000000 {
                gsbi3: gsbi@16200000 {
                        status = "disabled";
                        compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <3>;
                        reg = <0x16200000 0x100>;
                        clocks = <&gcc GSBI3_H_CLK>;
                        clock-names = "iface";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
-
                        i2c3: i2c@16280000 {
                                compatible = "qcom,i2c-qup-v1.1.1";
                                reg = <0x16280000 0x1000>;
                        };
                };
 
+               gsbi6: gsbi@16500000 {
+                       status = "disabled";
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <6>;
+                       reg = <0x16500000 0x03>;
+                       clocks = <&gcc GSBI6_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       gsbi6_serial: serial@16540000 {
+                               compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
+                               reg = <0x16540000 0x100>,
+                                     <0x16500000 0x03>;
+                               interrupts = <0 156 0x0>;
+                               clocks = <&gcc GSBI6_UART_CLK>, <&gcc GSBI6_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+               };
+
                gsbi7: gsbi@16600000 {
                        status = "disabled";
                        compatible = "qcom,gsbi-v1.0.0";
                        compatible = "qcom,ssbi";
                        reg = <0x00500000 0x1000>;
                        qcom,controller-type = "pmic-arbiter";
+
+                       pmicintc: pmic@0 {
+                               compatible = "qcom,pm8921";
+                               interrupt-parent = <&tlmm_pinmux>;
+                               interrupts = <74 8>;
+                               #interrupt-cells = <2>;
+                               interrupt-controller;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               pm8921_gpio: gpio@150 {
+
+                                       compatible = "qcom,pm8921-gpio";
+                                       reg = <0x150>;
+                                       interrupts = <192 1>, <193 1>, <194 1>,
+                                                    <195 1>, <196 1>, <197 1>,
+                                                    <198 1>, <199 1>, <200 1>,
+                                                    <201 1>, <202 1>, <203 1>,
+                                                    <204 1>, <205 1>, <206 1>,
+                                                    <207 1>, <208 1>, <209 1>,
+                                                    <210 1>, <211 1>, <212 1>,
+                                                    <213 1>, <214 1>, <215 1>,
+                                                    <216 1>, <217 1>, <218 1>,
+                                                    <219 1>, <220 1>, <221 1>,
+                                                    <222 1>, <223 1>, <224 1>,
+                                                    <225 1>, <226 1>, <227 1>,
+                                                    <228 1>, <229 1>, <230 1>,
+                                                    <231 1>, <232 1>, <233 1>,
+                                                    <234 1>, <235 1>;
+
+                                       gpio-controller;
+                                       #gpio-cells = <2>;
+
+                               };
+
+                               pm8921_mpps: mpps@50 {
+                                       compatible = "qcom,pm8921-mpp";
+                                       reg = <0x50>;
+                                       gpio-controller;
+                                       #gpio-cells = <2>;
+                                       interrupts =
+                                       <128 1>, <129 1>, <130 1>, <131 1>,
+                                       <132 1>, <133 1>, <134 1>, <135 1>,
+                                       <136 1>, <137 1>, <138 1>, <139 1>;
+                               };
+
+                       };
                };
 
                gcc: clock-controller@900000 {
                };
 
                /* Temporary fixed regulator */
-               vsdcc_fixed: vsdcc-regulator {
-                       compatible = "regulator-fixed";
-                       regulator-name = "SDCC Power";
-                       regulator-min-microvolt = <2700000>;
-                       regulator-max-microvolt = <2700000>;
-                       regulator-always-on;
-               };
-
                sdcc1bam:dma@12402000{
                        compatible = "qcom,bam-v1.3.0";
                        reg = <0x12402000 0x8000>;
                                non-removable;
                                cap-sd-highspeed;
                                cap-mmc-highspeed;
-                               vmmc-supply = <&vsdcc_fixed>;
                                dmas = <&sdcc1bam 2>, <&sdcc1bam 1>;
                                dma-names = "tx", "rx";
                        };
                                cap-mmc-highspeed;
                                max-frequency   = <192000000>;
                                no-1-8-v;
-                               vmmc-supply = <&vsdcc_fixed>;
                                dmas = <&sdcc3bam 2>, <&sdcc3bam 1>;
                                dma-names = "tx", "rx";
                        };
                                cap-sd-highspeed;
                                cap-mmc-highspeed;
                                max-frequency   = <48000000>;
-                               vmmc-supply = <&vsdcc_fixed>;
-                               vqmmc-supply = <&vsdcc_fixed>;
                                dmas = <&sdcc4bam 2>, <&sdcc4bam 1>;
                                dma-names = "tx", "rx";
                                pinctrl-names = "default";
index e0b2ce2910e0aeef770230ac727effc79236dc39..ef2fe72b54c91e5b139a38788e5695fe991855cc 100644 (file)
                        cpu-offset = <0x40000>;
                };
 
-               msmgpio: gpio@800000 {
-                       compatible = "qcom,msm-gpio";
-                       reg = <0x00800000 0x4000>;
+               tlmm: pinctrl@800000 {
+                       compatible = "qcom,msm8660-pinctrl";
+                       reg = <0x800000 0x4000>;
+
                        gpio-controller;
                        #gpio-cells = <2>;
-                       ngpio = <173>;
                        interrupts = <0 16 0x4>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
+
                };
 
                gcc: clock-controller@900000 {
 
                        pmicintc: pmic@0 {
                                compatible = "qcom,pm8058";
-                               interrupt-parent = <&msmgpio>;
+                               interrupt-parent = <&tlmm>;
                                interrupts = <88 8>;
                                #interrupt-cells = <2>;
                                interrupt-controller;
index 7f70fae90959ea54fc11fb29c944cebb0b468f66..fad71d5527b0f80d88e7bc433318d53ca35ec8ca 100644 (file)
                                status = "okay";
                        };
                };
+
+               rpm@108000 {
+                       regulators {
+                               compatible = "qcom,rpm-pm8921-regulators";
+                               vin_lvs1_3_6-supply = <&pm8921_s4>;
+                               vin_lvs2-supply = <&pm8921_s4>;
+                               vin_lvs4_5_7-supply = <&pm8921_s4>;
+                               vdd_ncp-supply = <&pm8921_l6>;
+                               vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
+                               vdd_l21_l23_l29-supply = <&pm8921_s8>;
+                               vdd_l24-supply = <&pm8921_s1>;
+                               vdd_l25-supply = <&pm8921_s1>;
+                               vdd_l27-supply = <&pm8921_s7>;
+                               vdd_l28-supply = <&pm8921_s7>;
+
+                               /* Buck SMPS */
+                               pm8921_s1: s1 {
+                                       regulator-always-on;
+                                       regulator-min-microvolt = <1225000>;
+                                       regulator-max-microvolt = <1225000>;
+                                       qcom,switch-mode-frequency = <3200000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_s2: s2 {
+                                       regulator-min-microvolt = <1300000>;
+                                       regulator-max-microvolt = <1300000>;
+                                       qcom,switch-mode-frequency = <1600000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_s3: s3 {
+                                       regulator-min-microvolt = <500000>;
+                                       regulator-max-microvolt = <1150000>;
+                                       qcom,switch-mode-frequency = <4800000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_s4: s4 {
+                                       regulator-always-on;
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       qcom,switch-mode-frequency = <1600000>;
+                                       bias-pull-down;
+                                       qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
+                               };
+
+                               pm8921_s7: s7 {
+                                       regulator-min-microvolt = <1150000>;
+                                       regulator-max-microvolt = <1150000>;
+                                       qcom,switch-mode-frequency = <3200000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_s8: s8 {
+                                       regulator-always-on;
+                                       regulator-min-microvolt = <2050000>;
+                                       regulator-max-microvolt = <2050000>;
+                                       qcom,switch-mode-frequency = <1600000>;
+                                       bias-pull-down;
+                               };
+
+                               /* PMOS LDO */
+                               pm8921_l1: l1 {
+                                       regulator-always-on;
+                                       regulator-min-microvolt = <1050000>;
+                                       regulator-max-microvolt = <1050000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l2: l2 {
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l3: l3 {
+                                       regulator-min-microvolt = <3075000>;
+                                       regulator-max-microvolt = <3075000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l4: l4 {
+                                       regulator-always-on;
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l5: l5 {
+                                       regulator-min-microvolt = <2950000>;
+                                       regulator-max-microvolt = <2950000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l6: l6 {
+                                       regulator-min-microvolt = <2950000>;
+                                       regulator-max-microvolt = <2950000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l7: l7 {
+                                       regulator-always-on;
+                                       regulator-min-microvolt = <1850000>;
+                                       regulator-max-microvolt = <2950000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l8: l8 {
+                                       regulator-min-microvolt = <2800000>;
+                                       regulator-max-microvolt = <3000000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l9: l9 {
+                                       regulator-min-microvolt = <3000000>;
+                                       regulator-max-microvolt = <3000000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l10: l10 {
+                                       regulator-min-microvolt = <3000000>;
+                                       regulator-max-microvolt = <3000000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l11: l11 {
+                                       regulator-min-microvolt = <2850000>;
+                                       regulator-max-microvolt = <2850000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l12: l12 {
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l14: l14 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l15: l15 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <2950000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l16: l16 {
+                                       regulator-min-microvolt = <2800000>;
+                                       regulator-max-microvolt = <2800000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l17: l17 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <2950000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l18: l18 {
+                                       regulator-min-microvolt = <1300000>;
+                                       regulator-max-microvolt = <1300000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l21: l21 {
+                                       regulator-min-microvolt = <1900000>;
+                                       regulator-max-microvolt = <1900000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l22: l22 {
+                                       regulator-min-microvolt = <2750000>;
+                                       regulator-max-microvolt = <2750000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l23: l23 {
+                                       regulator-always-on;
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l24: l24 {
+                                       regulator-min-microvolt = <750000>;
+                                       regulator-max-microvolt = <1150000>;
+                                       bias-pull-down;
+                               };
+
+                               pm8921_l25: l25 {
+                                       regulator-always-on;
+                                       regulator-min-microvolt = <1250000>;
+                                       regulator-max-microvolt = <1250000>;
+                                       bias-pull-down;
+                               };
+
+                               /* Low Voltage Switch */
+                               pm8921_lvs1: lvs1 {
+                                       bias-pull-down;
+                               };
+
+                               pm8921_lvs2: lvs2 {
+                                       bias-pull-down;
+                               };
+
+                               pm8921_lvs3: lvs3 {
+                                       bias-pull-down;
+                               };
+
+                               pm8921_lvs4: lvs4 {
+                                       bias-pull-down;
+                               };
+
+                               pm8921_lvs5: lvs5 {
+                                       bias-pull-down;
+                               };
+
+                               pm8921_lvs6: lvs6 {
+                                       bias-pull-down;
+                               };
+
+                               pm8921_lvs7: lvs7 {
+                                       bias-pull-down;
+                               };
+
+                               pm8921_ncp: ncp {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       qcom,switch-mode-frequency = <1600000>;
+                               };
+                       };
+               };
+
+               gsbi@16000000 {
+                       status = "ok";
+                       qcom,mode = <GSBI_PROT_SPI>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&spi1_default>;
+                       spi@16080000 {
+                               status = "ok";
+                               eth@0 {
+                                       compatible = "micrel,ks8851";
+                                       reg = <0>;
+                                       interrupt-parent = <&msmgpio>;
+                                       interrupts = <90 8>;
+                                       spi-max-frequency = <5400000>;
+                                       vdd-supply = <&ext_l2>;
+                                       vdd-io-supply = <&pm8921_lvs6>;
+                                       reset-gpios = <&msmgpio 89 0>;
+                               };
+                       };
+               };
+
+               pinctrl@800000 {
+                       spi1_default: spi1_default {
+                               mux {
+                                       pins = "gpio6", "gpio7", "gpio9";
+                                       function = "gsbi1";
+                               };
+
+                               mosi {
+                                       pins = "gpio6";
+                                       drive-strength = <12>;
+                                       bias-disable;
+                               };
+
+                               miso {
+                                       pins = "gpio7";
+                                       drive-strength = <12>;
+                                       bias-disable;
+                               };
+
+                               cs {
+                                       pins = "gpio8";
+                                       drive-strength = <12>;
+                                       bias-disable;
+                                       output-low;
+                               };
+
+                               clk {
+                                       pins = "gpio9";
+                                       drive-strength = <12>;
+                                       bias-disable;
+                               };
+                       };
+               };
+       };
+
+       regulators {
+               compatible = "simple-bus";
+
+               ext_l2: gpio-regulator@91 {
+                       compatible = "regulator-fixed";
+                       regulator-name = "ext_l2";
+                       gpio = <&msmgpio 91 0>;
+                       startup-delay-us = <10000>;
+                       enable-active-high;
+               };
        };
 };
 
index a02b984cc68d8e2704abcb175e54c061ed54f629..2096a94c9b525faa47df980d751763804f10e7c5 100644 (file)
@@ -4,6 +4,7 @@
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/clock/qcom,gcc-msm8960.h>
+#include <dt-bindings/mfd/qcom-rpm.h>
 #include <dt-bindings/soc/qcom,gsbi.h>
 
 / {
                        cpu-offset = <0x80000>;
                };
 
-               msmgpio: gpio@800000 {
-                       compatible = "qcom,msm-gpio";
+               msmgpio: pinctrl@800000 {
+                       compatible = "qcom,msm8960-pinctrl";
                        gpio-controller;
                        #gpio-cells = <2>;
-                       ngpio = <150>;
                        interrupts = <0 16 0x4>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                        #reset-cells = <1>;
                };
 
+               l2cc: clock-controller@2011000 {
+                       compatible      = "syscon";
+                       reg             = <0x2011000 0x1000>;
+               };
+
+               rpm@108000 {
+                       compatible      = "qcom,rpm-msm8960";
+                       reg             = <0x108000 0x1000>;
+                       qcom,ipc        = <&l2cc 0x8 2>;
+
+                       interrupts      = <0 19 0>, <0 21 0>, <0 22 0>;
+                       interrupt-names = "ack", "err", "wakeup";
+
+                       regulators {
+                               compatible = "qcom,rpm-pm8921-regulators";
+                       };
+               };
+
                acc0: clock-controller@2088000 {
                        compatible = "qcom,kpss-acc-v1";
                        reg = <0x02088000 0x1000>, <0x02008000 0x1000>;
                        compatible = "qcom,tcsr-msm8960", "syscon";
                        reg = <0x1a400000 0x100>;
                };
+
+               gsbi@16000000 {
+                       compatible = "qcom,gsbi-v1.0.0";
+                       cell-index = <1>;
+                       reg = <0x16000000 0x100>;
+                       clocks = <&gcc GSBI1_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       spi@16080000 {
+                               compatible = "qcom,spi-qup-v1.1.1";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <0x16080000 0x1000>;
+                               interrupts = <0 147 0>;
+                               spi-max-frequency = <24000000>;
+                               cs-gpios = <&msmgpio 8 0>;
+
+                               clocks = <&gcc GSBI1_QUP_CLK>, <&gcc GSBI1_H_CLK>;
+                               clock-names = "core", "iface";
+                               status = "disabled";
+                       };
+               };
        };
 };
index 37b47b5538b816bb51c251c521d58d18b7bbd806..d7c99b894a491c7011e8a95f3800f5585aeb49e4 100644 (file)
@@ -9,6 +9,17 @@
        compatible = "qcom,msm8974";
        interrupt-parent = <&intc>;
 
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               smem_region: smem@fa00000 {
+                       reg = <0xfa00000 0x200000>;
+                       no-map;
+               };
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
                        reg = <0xfc400000 0x4000>;
                };
 
+               tcsr_mutex_block: syscon@fd484000 {
+                       compatible = "syscon";
+                       reg = <0xfd484000 0x2000>;
+               };
+
                mmcc: clock-controller@fd8c0000 {
                        compatible = "qcom,mmcc-msm8974";
                        #clock-cells = <1>;
                        reg = <0xfd8c0000 0x6000>;
                };
 
+               tcsr_mutex: tcsr-mutex {
+                       compatible = "qcom,tcsr-mutex";
+                       syscon = <&tcsr_mutex_block 0 0x80>;
+
+                       #hwlock-cells = <1>;
+               };
+
+               smem@fa00000 {
+                       compatible = "qcom,smem";
+
+                       memory-region = <&smem_region>;
+                       reg = <0xfc428000 0x4000>;
+
+                       hwlocks = <&tcsr_mutex 3>;
+               };
+
                serial@f991e000 {
                        compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
                        reg = <0xf991e000 0x1000>;
index 7ee22a41c6c974888a69f88542ed039ab9d09591..cb4f7b2798fe23be13facdffaef64430cf168ab1 100644 (file)
                reg = <0 0xe6050000 0 0x9000>;
                gpio-controller;
                #gpio-cells = <2>;
+               gpio-ranges =
+                       <&pfc 0 0 31>, <&pfc 32 32 9>,
+                       <&pfc 64 64 22>, <&pfc 96 96 31>,
+                       <&pfc 128 128 7>, <&pfc 160 160 19>,
+                       <&pfc 192 192 31>, <&pfc 224 224 27>,
+                       <&pfc 256 256 28>, <&pfc 288 288 21>,
+                       <&pfc 320 320 10>;
                interrupts-extended =
                        <&irqc0  0 0>, <&irqc0  1 0>, <&irqc0  2 0>, <&irqc0  3 0>,
                        <&irqc0  4 0>, <&irqc0  5 0>, <&irqc0  6 0>, <&irqc0  7 0>,
        };
 
        gic: interrupt-controller@f1001000 {
-               compatible = "arm,cortex-a15-gic";
+               compatible = "arm,gic-400";
                #interrupt-cells = <3>;
                #address-cells = <0>;
                interrupt-controller;
index 2e31d8c01cbf6a74d2b46ef52d031a90372e6dec..105d9c95de4af6114c091027a50e393aac147b09 100644 (file)
 };
 
 &pfc {
+       pinctrl-0 = <&lcd0_pins>;
+       pinctrl-names = "default";
+
        ether_pins: ether {
                renesas,groups = "gether_mii", "gether_int";
                renesas,function = "gether";
                                 "fsia_data_in_1", "fsia_data_out_0";
                renesas,function = "fsia";
        };
+
+       lcd0_pins: lcd0 {
+               renesas,groups = "lcd0_data24_0", "lcd0_lclk_1", "lcd0_sync";
+               renesas,function = "lcd0";
+
+               /* DBGMD/LCDC0/FSIA MUX */
+               gpio-hog;
+               gpios = <176 0>;
+               output-high;
+       };
 };
 
 &tpu {
index d84714468cce18df9414a0b8e94ab12beb5e292d..e14cb1438216e8df195dc6e943a349feb644b24a 100644 (file)
                      <0xe605800c 0x20>;
                gpio-controller;
                #gpio-cells = <2>;
+               gpio-ranges = <&pfc 0 0 212>;
                interrupts-extended =
                        <&irqpin0 0 0>, <&irqpin0 1 0>, <&irqpin0 2 0>, <&irqpin0 3 0>,
                        <&irqpin0 4 0>, <&irqpin0 5 0>, <&irqpin0 6 0>, <&irqpin0 7 0>,
index 5c8071e87ae9c7190a88916d391e7f42b62a4b4a..a2b5430d32575f995ab97c46e615240e18b4bdcb 100644 (file)
                interrupt-controller;
        };
 
-       irqpin0: interrupt-controller@fe780010 {
+       irqpin0: interrupt-controller@fe78001c {
                compatible = "renesas,intc-irqpin-r8a7779", "renesas,intc-irqpin";
                #interrupt-cells = <2>;
                status = "disabled";
                        <0xfe780010 4>,
                        <0xfe780024 4>,
                        <0xfe780044 4>,
-                       <0xfe780064 4>;
+                       <0xfe780064 4>,
+                       <0xfe780000 4>;
                interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH
                              0 28 IRQ_TYPE_LEVEL_HIGH
                              0 29 IRQ_TYPE_LEVEL_HIGH
index 2eb8a995ae9fe6fa79df4f98c238f0bdc6e94bbb..37dec52694911ea39ed7f44fd7939c48110fa63c 100644 (file)
                          1800000 0>;
        };
 
-       sound {
+       rsnd_ak4643: sound {
                compatible = "simple-audio-card";
 
                simple-audio-card,format = "left_j";
                compatible = "adi,adv7511w";
                reg = <0x39>;
                interrupt-parent = <&gpio1>;
-               interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
+               interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
 
                adi,input-depth = <8>;
                adi,input-colorspace = "rgb";
index 51ab8865ea37dc899ddd2fe0948c0d76b6582263..5b2952d5c700fabe833587c4372171a869757d36 100644 (file)
        };
 
        gic: interrupt-controller@f1001000 {
-               compatible = "arm,cortex-a15-gic";
+               compatible = "arm,gic-400";
                #interrupt-cells = <3>;
                #address-cells = <0>;
                interrupt-controller;
                status = "disabled";
        };
 
+       avb: ethernet@e6800000 {
+               compatible = "renesas,etheravb-r8a7790";
+               reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>;
+               interrupts = <0 163 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp8_clks R8A7790_CLK_ETHERAVB>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
        sata0: sata@ee300000 {
                compatible = "renesas,sata-r8a7790";
                reg = <0 0xee300000 0 0x2000>;
                status = "disabled";
        };
 
+       jpu: jpeg-codec@fe980000 {
+               compatible = "renesas,jpu-r8a7790";
+               reg = <0 0xfe980000 0 0x10300>;
+               interrupts = <0 272 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp1_clks R8A7790_CLK_JPU>;
+       };
+
        clocks {
                #address-cells = <2>;
                #size-cells = <2>;
                        compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
                        reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>;
                        clocks = <&hp_clk>, <&zg_clk>, <&zg_clk>, <&zg_clk>,
-                                <&zg_clk>, <&p_clk>, <&zs_clk>, <&zs_clk>;
+                                <&zg_clk>, <&hp_clk>, <&p_clk>, <&zs_clk>,
+                                <&zs_clk>;
                        #clock-cells = <1>;
                        clock-indices = <
                                R8A7790_CLK_MLB R8A7790_CLK_VIN3 R8A7790_CLK_VIN2
-                               R8A7790_CLK_VIN1 R8A7790_CLK_VIN0 R8A7790_CLK_ETHER
+                               R8A7790_CLK_VIN1 R8A7790_CLK_VIN0
+                               R8A7790_CLK_ETHERAVB R8A7790_CLK_ETHER
                                R8A7790_CLK_SATA1 R8A7790_CLK_SATA0
                        >;
                        clock-output-names =
-                               "mlb", "vin3", "vin2", "vin1", "vin0", "ether",
-                               "sata1", "sata0";
+                               "mlb", "vin3", "vin2", "vin1", "vin0",
+                               "etheravb", "ether", "sata1", "sata0";
                };
                mstp9_clks: mstp9_clks@e6150994 {
                        compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
                                <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
                                <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
                                <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
+                               <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
                                <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>;
 
                        #clock-cells = <1>;
                                R8A7790_CLK_SSI4 R8A7790_CLK_SSI3 R8A7790_CLK_SSI2 R8A7790_CLK_SSI1 R8A7790_CLK_SSI0
                                R8A7790_CLK_SCU_ALL
                                R8A7790_CLK_SCU_DVC1 R8A7790_CLK_SCU_DVC0
+                               R8A7790_CLK_SCU_CTU1_MIX1 R8A7790_CLK_SCU_CTU0_MIX0
                                R8A7790_CLK_SCU_SRC9 R8A7790_CLK_SCU_SRC8 R8A7790_CLK_SCU_SRC7 R8A7790_CLK_SCU_SRC6 R8A7790_CLK_SCU_SRC5
                                R8A7790_CLK_SCU_SRC4 R8A7790_CLK_SCU_SRC3 R8A7790_CLK_SCU_SRC2 R8A7790_CLK_SCU_SRC1 R8A7790_CLK_SCU_SRC0
                        >;
                                "ssi4", "ssi3", "ssi2", "ssi1", "ssi0",
                                "scu-all",
                                "scu-dvc1", "scu-dvc0",
+                               "scu-ctu1-mix1", "scu-ctu0-mix0",
                                "scu-src9", "scu-src8", "scu-src7", "scu-src6", "scu-src5",
                                "scu-src4", "scu-src3", "scu-src2", "scu-src1", "scu-src0";
                };
                        <&mstp10_clks R8A7790_CLK_SCU_SRC5>, <&mstp10_clks R8A7790_CLK_SCU_SRC4>,
                        <&mstp10_clks R8A7790_CLK_SCU_SRC3>, <&mstp10_clks R8A7790_CLK_SCU_SRC2>,
                        <&mstp10_clks R8A7790_CLK_SCU_SRC1>, <&mstp10_clks R8A7790_CLK_SCU_SRC0>,
+                       <&mstp10_clks R8A7790_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7790_CLK_SCU_CTU1_MIX1>,
+                       <&mstp10_clks R8A7790_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7790_CLK_SCU_CTU1_MIX1>,
                        <&mstp10_clks R8A7790_CLK_SCU_DVC0>, <&mstp10_clks R8A7790_CLK_SCU_DVC1>,
                        <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>;
                clock-names = "ssi-all",
                                "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0",
                                "src.9", "src.8", "src.7", "src.6", "src.5",
                                "src.4", "src.3", "src.2", "src.1", "src.0",
+                               "ctu.0", "ctu.1",
+                               "mix.0", "mix.1",
                                "dvc.0", "dvc.1",
                                "clk_a", "clk_b", "clk_c", "clk_i";
 
                        };
                };
 
+               rcar_sound,mix {
+                       mix0: mix@0 { };
+                       mix1: mix@1 { };
+               };
+
+               rcar_sound,ctu {
+                       ctu00: ctu@0 { };
+                       ctu01: ctu@1 { };
+                       ctu02: ctu@2 { };
+                       ctu03: ctu@3 { };
+                       ctu10: ctu@4 { };
+                       ctu11: ctu@5 { };
+                       ctu12: ctu@6 { };
+                       ctu13: ctu@7 { };
+               };
+
                rcar_sound,src {
                        src0: src@0 {
                                interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>;
index cffe33ff4d16f41f0bb67a6b96f9b6c791cf4514..dc158845afdc877a0d386d711c09b87fac17bc21 100644 (file)
                          1800000 0>;
        };
 
-       sound {
+       rsnd_ak4643: sound {
                compatible = "simple-audio-card";
 
                simple-audio-card,format = "left_j";
index dc1cd3f16606071294f31c54bc0b4ef8ec14fe75..1cb6c2d079331d4ff2b5c5aaa73aa83fa431bb74 100644 (file)
@@ -70,7 +70,7 @@
        };
 
        gic: interrupt-controller@f1001000 {
-               compatible = "arm,cortex-a15-gic";
+               compatible = "arm,gic-400";
                #interrupt-cells = <3>;
                #address-cells = <0>;
                interrupt-controller;
                status = "disabled";
        };
 
+       jpu: jpeg-codec@fe980000 {
+               compatible = "renesas,jpu-r8a7791";
+               reg = <0 0xfe980000 0 0x10300>;
+               interrupts = <0 272 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp1_clks R8A7791_CLK_JPU>;
+       };
+
        clocks {
                #address-cells = <2>;
                #size-cells = <2>;
                                <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>,
                                <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>,
                                <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>,
+                               <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>,
                                <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>;
 
                        #clock-cells = <1>;
                                R8A7791_CLK_SSI4 R8A7791_CLK_SSI3 R8A7791_CLK_SSI2 R8A7791_CLK_SSI1 R8A7791_CLK_SSI0
                                R8A7791_CLK_SCU_ALL
                                R8A7791_CLK_SCU_DVC1 R8A7791_CLK_SCU_DVC0
+                               R8A7791_CLK_SCU_CTU1_MIX1 R8A7791_CLK_SCU_CTU0_MIX0
                                R8A7791_CLK_SCU_SRC9 R8A7791_CLK_SCU_SRC8 R8A7791_CLK_SCU_SRC7 R8A7791_CLK_SCU_SRC6 R8A7791_CLK_SCU_SRC5
                                R8A7791_CLK_SCU_SRC4 R8A7791_CLK_SCU_SRC3 R8A7791_CLK_SCU_SRC2 R8A7791_CLK_SCU_SRC1 R8A7791_CLK_SCU_SRC0
                        >;
                                "ssi4", "ssi3", "ssi2", "ssi1", "ssi0",
                                "scu-all",
                                "scu-dvc1", "scu-dvc0",
+                               "scu-ctu1-mix1", "scu-ctu0-mix0",
                                "scu-src9", "scu-src8", "scu-src7", "scu-src6", "scu-src5",
                                "scu-src4", "scu-src3", "scu-src2", "scu-src1", "scu-src0";
                };
                        <&mstp10_clks R8A7791_CLK_SCU_SRC5>, <&mstp10_clks R8A7791_CLK_SCU_SRC4>,
                        <&mstp10_clks R8A7791_CLK_SCU_SRC3>, <&mstp10_clks R8A7791_CLK_SCU_SRC2>,
                        <&mstp10_clks R8A7791_CLK_SCU_SRC1>, <&mstp10_clks R8A7791_CLK_SCU_SRC0>,
+                       <&mstp10_clks R8A7791_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7791_CLK_SCU_CTU1_MIX1>,
+                       <&mstp10_clks R8A7791_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7791_CLK_SCU_CTU1_MIX1>,
                        <&mstp10_clks R8A7791_CLK_SCU_DVC0>, <&mstp10_clks R8A7791_CLK_SCU_DVC1>,
                        <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>;
                clock-names = "ssi-all",
                                "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0",
                                "src.9", "src.8", "src.7", "src.6", "src.5",
                                "src.4", "src.3", "src.2", "src.1", "src.0",
+                               "ctu.0", "ctu.1",
+                               "mix.0", "mix.1",
                                "dvc.0", "dvc.1",
                                "clk_a", "clk_b", "clk_c", "clk_i";
 
                        };
                };
 
+               rcar_sound,mix {
+                       mix0: mix@0 { };
+                       mix1: mix@1 { };
+               };
+
+               rcar_sound,ctu {
+                       ctu00: ctu@0 { };
+                       ctu01: ctu@1 { };
+                       ctu02: ctu@2 { };
+                       ctu03: ctu@3 { };
+                       ctu10: ctu@4 { };
+                       ctu11: ctu@5 { };
+                       ctu12: ctu@6 { };
+                       ctu13: ctu@7 { };
+               };
+
                rcar_sound,src {
                        src0: src@0 {
                                interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/r8a7793-gose.dts b/arch/arm/boot/dts/r8a7793-gose.dts
new file mode 100644 (file)
index 0000000..96443ec
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * Device Tree Source for the Gose board
+ *
+ * Copyright (C) 2014-2015 Renesas Electronics Corporation
+ *
+ * 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 "r8a7793.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+       model = "Gose";
+       compatible = "renesas,gose", "renesas,r8a7793";
+
+       aliases {
+               serial0 = &scif0;
+               serial1 = &scif1;
+       };
+
+       chosen {
+               bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
+               stdout-path = &scif0;
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0 0x40000000 0 0x40000000>;
+       };
+};
+
+&extal_clk {
+       clock-frequency = <20000000>;
+};
+
+&ether {
+       phy-handle = <&phy1>;
+       renesas,ether-link-active-low;
+       status = "okay";
+
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+               interrupt-parent = <&irqc0>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+               micrel,led-mode = <1>;
+       };
+};
+
+&cmt0 {
+       status = "okay";
+};
+
+&scif0 {
+       status = "okay";
+};
+
+&scif1 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi
new file mode 100644 (file)
index 0000000..3355c48
--- /dev/null
@@ -0,0 +1,367 @@
+/*
+ * Device Tree Source for the r8a7793 SoC
+ *
+ * Copyright (C) 2014-2015 Renesas Electronics Corporation
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+#include <dt-bindings/clock/r8a7793-clock.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       compatible = "renesas,r8a7793";
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a15";
+                       reg = <0>;
+                       clock-frequency = <1500000000>;
+                       voltage-tolerance = <1>; /* 1% */
+                       clocks = <&cpg_clocks R8A7793_CLK_Z>;
+                       clock-latency = <300000>; /* 300 us */
+
+                       /* kHz - uV - OPPs unknown yet */
+                       operating-points = <1500000 1000000>,
+                                          <1312500 1000000>,
+                                          <1125000 1000000>,
+                                          < 937500 1000000>,
+                                          < 750000 1000000>,
+                                          < 375000 1000000>;
+               };
+       };
+
+       gic: interrupt-controller@f1001000 {
+               compatible = "arm,gic-400";
+               #interrupt-cells = <3>;
+               #address-cells = <0>;
+               interrupt-controller;
+               reg = <0 0xf1001000 0 0x1000>,
+                       <0 0xf1002000 0 0x1000>,
+                       <0 0xf1004000 0 0x2000>,
+                       <0 0xf1006000 0 0x2000>;
+               interrupts = <1 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
+       };
+
+       timer {
+               compatible = "arm,armv7-timer";
+               interrupts = <1 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
+                            <1 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
+                            <1 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
+                            <1 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+       };
+
+       cmt0: timer@ffca0000 {
+               compatible = "renesas,cmt-48-r8a7793", "renesas,cmt-48-gen2";
+               reg = <0 0xffca0000 0 0x1004>;
+               interrupts = <0 142 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 143 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp1_clks R8A7793_CLK_CMT0>;
+               clock-names = "fck";
+
+               renesas,channels-mask = <0x60>;
+
+               status = "disabled";
+       };
+
+       cmt1: timer@e6130000 {
+               compatible = "renesas,cmt-48-r8a7793", "renesas,cmt-48-gen2";
+               reg = <0 0xe6130000 0 0x1004>;
+               interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 121 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 122 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 123 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 124 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 125 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 126 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 127 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp3_clks R8A7793_CLK_CMT1>;
+               clock-names = "fck";
+
+               renesas,channels-mask = <0xff>;
+
+               status = "disabled";
+       };
+
+       irqc0: interrupt-controller@e61c0000 {
+               compatible = "renesas,irqc-r8a7793", "renesas,irqc";
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               reg = <0 0xe61c0000 0 0x200>;
+               interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 1 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 2 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 3 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 12 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 13 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 14 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 15 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 16 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 17 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp4_clks R8A7793_CLK_IRQC>;
+       };
+
+       scif0: serial@e6e60000 {
+               compatible = "renesas,scif-r8a7793", "renesas,scif";
+               reg = <0 0xe6e60000 0 64>;
+               interrupts = <0 152 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp7_clks R8A7793_CLK_SCIF0>;
+               clock-names = "sci_ick";
+               status = "disabled";
+       };
+
+       scif1: serial@e6e68000 {
+               compatible = "renesas,scif-r8a7793", "renesas,scif";
+               reg = <0 0xe6e68000 0 64>;
+               interrupts = <0 153 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp7_clks R8A7793_CLK_SCIF1>;
+               clock-names = "sci_ick";
+               status = "disabled";
+       };
+
+       ether: ethernet@ee700000 {
+               compatible = "renesas,ether-r8a7793";
+               reg = <0 0xee700000 0 0x400>;
+               interrupts = <0 162 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp8_clks R8A7793_CLK_ETHER>;
+               phy-mode = "rmii";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       clocks {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /* External root clock */
+               extal_clk: extal_clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       /* This value must be overridden by the board. */
+                       clock-frequency = <0>;
+                       clock-output-names = "extal";
+               };
+
+               /* Special CPG clocks */
+               cpg_clocks: cpg_clocks@e6150000 {
+                       compatible = "renesas,r8a7793-cpg-clocks",
+                                    "renesas,rcar-gen2-cpg-clocks";
+                       reg = <0 0xe6150000 0 0x1000>;
+                       clocks = <&extal_clk>;
+                       #clock-cells = <1>;
+                       clock-output-names = "main", "pll0", "pll1", "pll3",
+                                            "lb", "qspi", "sdh", "sd0", "z",
+                                            "rcan", "adsp";
+               };
+
+               /* Variable factor clocks */
+               sd2_clk: sd2_clk@e6150078 {
+                       compatible = "renesas,r8a7793-div6-clock",
+                                    "renesas,cpg-div6-clock";
+                       reg = <0 0xe6150078 0 4>;
+                       clocks = <&pll1_div2_clk>;
+                       #clock-cells = <0>;
+                       clock-output-names = "sd2";
+               };
+               sd3_clk: sd3_clk@e615026c {
+                       compatible = "renesas,r8a7793-div6-clock",
+                                    "renesas,cpg-div6-clock";
+                       reg = <0 0xe615026c 0 4>;
+                       clocks = <&pll1_div2_clk>;
+                       #clock-cells = <0>;
+                       clock-output-names = "sd3";
+               };
+               mmc0_clk: mmc0_clk@e6150240 {
+                       compatible = "renesas,r8a7793-div6-clock",
+                                    "renesas,cpg-div6-clock";
+                       reg = <0 0xe6150240 0 4>;
+                       clocks = <&pll1_div2_clk>;
+                       #clock-cells = <0>;
+                       clock-output-names = "mmc0";
+               };
+
+               /* Fixed factor clocks */
+               pll1_div2_clk: pll1_div2_clk {
+                       compatible = "fixed-factor-clock";
+                       clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
+                       #clock-cells = <0>;
+                       clock-div = <2>;
+                       clock-mult = <1>;
+                       clock-output-names = "pll1_div2";
+               };
+               zg_clk: zg_clk {
+                       compatible = "fixed-factor-clock";
+                       clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
+                       #clock-cells = <0>;
+                       clock-div = <5>;
+                       clock-mult = <1>;
+                       clock-output-names = "zg";
+               };
+               zx_clk: zx_clk {
+                       compatible = "fixed-factor-clock";
+                       clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
+                       #clock-cells = <0>;
+                       clock-div = <3>;
+                       clock-mult = <1>;
+                       clock-output-names = "zx";
+               };
+               zs_clk: zs_clk {
+                       compatible = "fixed-factor-clock";
+                       clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
+                       #clock-cells = <0>;
+                       clock-div = <6>;
+                       clock-mult = <1>;
+                       clock-output-names = "zs";
+               };
+               hp_clk: hp_clk {
+                       compatible = "fixed-factor-clock";
+                       clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
+                       #clock-cells = <0>;
+                       clock-div = <12>;
+                       clock-mult = <1>;
+                       clock-output-names = "hp";
+               };
+               p_clk: p_clk {
+                       compatible = "fixed-factor-clock";
+                       clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
+                       #clock-cells = <0>;
+                       clock-div = <24>;
+                       clock-mult = <1>;
+                       clock-output-names = "p";
+               };
+               rclk_clk: rclk_clk {
+                       compatible = "fixed-factor-clock";
+                       clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
+                       #clock-cells = <0>;
+                       clock-div = <(48 * 1024)>;
+                       clock-mult = <1>;
+                       clock-output-names = "rclk";
+               };
+               mp_clk: mp_clk {
+                       compatible = "fixed-factor-clock";
+                       clocks = <&pll1_div2_clk>;
+                       #clock-cells = <0>;
+                       clock-div = <15>;
+                       clock-mult = <1>;
+                       clock-output-names = "mp";
+               };
+               cp_clk: cp_clk {
+                       compatible = "fixed-factor-clock";
+                       clocks = <&extal_clk>;
+                       #clock-cells = <0>;
+                       clock-div = <2>;
+                       clock-mult = <1>;
+                       clock-output-names = "cp";
+               };
+
+               /* Gate clocks */
+               mstp1_clks: mstp1_clks@e6150134 {
+                       compatible = "renesas,r8a7793-mstp-clocks",
+                                    "renesas,cpg-mstp-clocks";
+                       reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>;
+                       clocks = <&zs_clk>, <&zs_clk>, <&zs_clk>, <&p_clk>,
+                                <&zg_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>,
+                                <&p_clk>, <&p_clk>, <&rclk_clk>, <&cp_clk>,
+                                <&zs_clk>, <&zs_clk>, <&zs_clk>;
+                       #clock-cells = <1>;
+                       clock-indices = <
+                               R8A7793_CLK_VCP0 R8A7793_CLK_VPC0
+                               R8A7793_CLK_SSP1 R8A7793_CLK_TMU1
+                               R8A7793_CLK_3DG R8A7793_CLK_2DDMAC
+                               R8A7793_CLK_FDP1_1 R8A7793_CLK_FDP1_0
+                               R8A7793_CLK_TMU3 R8A7793_CLK_TMU2
+                               R8A7793_CLK_CMT0 R8A7793_CLK_TMU0
+                               R8A7793_CLK_VSP1_DU1 R8A7793_CLK_VSP1_DU0
+                               R8A7793_CLK_VSP1_S
+                       >;
+                       clock-output-names =
+                               "vcp0", "vpc0", "ssp_dev", "tmu1",
+                               "pvrsrvkm", "tddmac", "fdp1", "fdp0",
+                               "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1",
+                               "vsp1-du0", "vsps";
+               };
+               mstp3_clks: mstp3_clks@e615013c {
+                       compatible = "renesas,r8a7793-mstp-clocks",
+                                    "renesas,cpg-mstp-clocks";
+                       reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>;
+                       clocks = <&cp_clk>, <&sd3_clk>, <&sd2_clk>,
+                                <&cpg_clocks R8A7793_CLK_SD0>, <&mmc0_clk>,
+                                <&hp_clk>, <&mp_clk>, <&hp_clk>, <&mp_clk>,
+                                <&rclk_clk>, <&hp_clk>, <&hp_clk>;
+                       #clock-cells = <1>;
+                       clock-indices = <
+                               R8A7793_CLK_TPU0 R8A7793_CLK_SDHI2
+                               R8A7793_CLK_SDHI1 R8A7793_CLK_SDHI0
+                               R8A7793_CLK_MMCIF0 R8A7793_CLK_IIC0
+                               R8A7793_CLK_PCIEC R8A7793_CLK_IIC1
+                               R8A7793_CLK_SSUSB R8A7793_CLK_CMT1
+                               R8A7793_CLK_USBDMAC0 R8A7793_CLK_USBDMAC1
+                       >;
+                       clock-output-names =
+                               "tpu0", "sdhi2", "sdhi1", "sdhi0", "mmcif0",
+                               "i2c7", "pciec", "i2c8", "ssusb", "cmt1",
+                               "usbdmac0", "usbdmac1";
+               };
+               mstp4_clks: mstp4_clks@e6150140 {
+                       compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks";
+                       reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>;
+                       clocks = <&cp_clk>;
+                       #clock-cells = <1>;
+                       clock-indices = <R8A7793_CLK_IRQC>;
+                       clock-output-names = "irqc";
+               };
+               mstp7_clks: mstp7_clks@e615014c {
+                       compatible = "renesas,r8a7793-mstp-clocks",
+                                    "renesas,cpg-mstp-clocks";
+                       reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>;
+                       clocks = <&mp_clk>,  <&hp_clk>, <&zs_clk>, <&p_clk>,
+                                <&p_clk>, <&zs_clk>, <&zs_clk>, <&p_clk>,
+                                <&p_clk>, <&p_clk>, <&p_clk>, <&zx_clk>,
+                                <&zx_clk>, <&zx_clk>;
+                       #clock-cells = <1>;
+                       clock-indices = <
+                               R8A7793_CLK_EHCI R8A7793_CLK_HSUSB
+                               R8A7793_CLK_HSCIF2 R8A7793_CLK_SCIF5
+                               R8A7793_CLK_SCIF4 R8A7793_CLK_HSCIF1
+                               R8A7793_CLK_HSCIF0 R8A7793_CLK_SCIF3
+                               R8A7793_CLK_SCIF2 R8A7793_CLK_SCIF1
+                               R8A7793_CLK_SCIF0 R8A7793_CLK_DU1
+                               R8A7793_CLK_DU0 R8A7793_CLK_LVDS0
+                       >;
+                       clock-output-names =
+                               "ehci", "hsusb", "hscif2", "scif5", "scif4",
+                               "hscif1", "hscif0", "scif3", "scif2",
+                               "scif1", "scif0", "du1", "du0", "lvds0";
+               };
+               mstp8_clks: mstp8_clks@e6150990 {
+                       compatible = "renesas,r8a7793-mstp-clocks",
+                                    "renesas,cpg-mstp-clocks";
+                       reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>;
+                       clocks = <&zx_clk>, <&zg_clk>, <&zg_clk>, <&zg_clk>,
+                                <&p_clk>, <&zs_clk>, <&zs_clk>;
+                       #clock-cells = <1>;
+                       clock-indices = <
+                               R8A7793_CLK_IPMMU_SGX R8A7793_CLK_VIN2
+                               R8A7793_CLK_VIN1 R8A7793_CLK_VIN0
+                               R8A7793_CLK_ETHER R8A7793_CLK_SATA1
+                               R8A7793_CLK_SATA0
+                       >;
+                       clock-output-names =
+                               "ipmmu_sgx", "vin2", "vin1", "vin0", "ether",
+                               "sata1", "sata0";
+               };
+       };
+
+};
diff --git a/arch/arm/boot/dts/r8a7794-silk.dts b/arch/arm/boot/dts/r8a7794-silk.dts
new file mode 100644 (file)
index 0000000..d4dd5a3
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Device Tree Source for the SILK board
+ *
+ * Copyright (C) 2014 Renesas Electronics Corporation
+ * Copyright (C) 2014-2015 Renesas Solutions Corp.
+ * Copyright (C) 2014-2015 Cogent Embedded, 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.
+ */
+
+/dts-v1/;
+#include "r8a7794.dtsi"
+
+/ {
+       model = "SILK";
+       compatible = "renesas,silk", "renesas,r8a7794";
+
+       aliases {
+               serial0 = &scif2;
+       };
+
+       chosen {
+               bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
+               stdout-path = &scif2;
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0 0x40000000 0 0x40000000>;
+       };
+
+       d3_3v: regulator@0 {
+               compatible = "regulator-fixed";
+               regulator-name = "D3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+};
+
+&extal_clk {
+       clock-frequency = <20000000>;
+};
+
+&pfc {
+       scif2_pins: serial2 {
+               renesas,groups = "scif2_data";
+               renesas,function = "scif2";
+       };
+
+       ether_pins: ether {
+               renesas,groups = "eth_link", "eth_mdio", "eth_rmii";
+               renesas,function = "eth";
+       };
+
+       phy1_pins: phy1 {
+               renesas,groups = "intc_irq8";
+               renesas,function = "intc";
+       };
+
+       mmcif0_pins: mmcif0 {
+               renesas,groups = "mmc_data8", "mmc_ctrl";
+               renesas,function = "mmc";
+       };
+};
+
+&scif2 {
+       pinctrl-0 = <&scif2_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&ether {
+       pinctrl-0 = <&ether_pins &phy1_pins>;
+       pinctrl-names = "default";
+
+       phy-handle = <&phy1>;
+       renesas,ether-link-active-low;
+       status = "okay";
+
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+               interrupt-parent = <&irqc0>;
+               interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
+               micrel,led-mode = <1>;
+       };
+};
+
+&mmcif0 {
+       pinctrl-0 = <&mmcif0_pins>;
+       pinctrl-names = "default";
+
+       vmmc-supply = <&d3_3v>;
+       vqmmc-supply = <&d3_3v>;
+       bus-width = <8>;
+       non-removable;
+       status = "okay";
+};
index b738194233113402f4aa76ed9f6bd1acdf450f47..43acf185ecc43f40fafbebb3661efec281569391 100644 (file)
@@ -39,7 +39,7 @@
        };
 
        gic: interrupt-controller@f1001000 {
-               compatible = "arm,cortex-a7-gic";
+               compatible = "arm,gic-400";
                #interrupt-cells = <3>;
                #address-cells = <0>;
                interrupt-controller;
                clocks = <&mstp4_clks R8A7794_CLK_IRQC>;
        };
 
+       pfc: pin-controller@e6060000 {
+               compatible = "renesas,pfc-r8a7794";
+               reg = <0 0xe6060000 0 0x11c>;
+               #gpio-range-cells = <3>;
+       };
+
        dmac0: dma-controller@e6700000 {
                compatible = "renesas,rcar-dmac";
                reg = <0 0xe6700000 0 0x20000>;
                status = "disabled";
        };
 
+       mmcif0: mmc@ee200000 {
+               compatible = "renesas,mmcif-r8a7794", "renesas,sh-mmcif";
+               reg = <0 0xee200000 0 0x80>;
+               interrupts = <0 169 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp3_clks R8A7794_CLK_MMCIF0>;
+               dmas = <&dmac0 0xd1>, <&dmac0 0xd2>;
+               dma-names = "tx", "rx";
+               reg-io-width = <4>;
+               status = "disabled";
+       };
+
        sdhi0: sd@ee100000 {
                compatible = "renesas,sdhi-r8a7794";
                reg = <0 0xee100000 0 0x200>;
index b299b26926d42050b38a274e0846e26c95222943..c0273755431a118e2832fea298818da6032284e5 100644 (file)
@@ -49,6 +49,7 @@
        compatible = "mundoreader,bq-curie2", "rockchip,rk3066a";
 
        memory {
+               device_type = "memory";
                reg = <0x60000000 0x40000000>;
        };
 
index 0a7304beb417713c82d25a6a35b5daafef5c4e76..4355966bb8daff98a56bbde5c0eecf819a8861dd 100644 (file)
@@ -48,6 +48,7 @@
        compatible = "haoyu,marsboard-rk3066", "rockchip,rk3066a";
 
        memory {
+               device_type = "memory";
                reg = <0x60000000 0x40000000>;
        };
 
index 3ac151102c2fbef02fb3773b5c0b13c7afc756b6..7ccd37671c2809c4ad9e7da21ee187291604e725 100644 (file)
@@ -48,6 +48,7 @@
        compatible = "chipspark,rayeager-px2", "rockchip,rk3066a";
 
        memory {
+               device_type = "memory";
                reg = <0x60000000 0x40000000>;
        };
 
index 42faa19edb7effaab868592b94f6a572a20acdcd..4bb014d4401a34128bf1ce839f4c97cdeb7aefbf 100644 (file)
@@ -48,6 +48,7 @@
        compatible = "radxa,rock", "rockchip,rk3188";
 
        memory {
+               device_type = "memory";
                reg = <0x60000000 0x80000000>;
        };
 
index 844a6fb64658b42e3b184436e0038eb1b971ce9e..f6d2e7894b051bbde8333b41427c613d8a560aff 100644 (file)
@@ -43,6 +43,7 @@
 
 / {
        memory {
+               device_type = "memory";
                reg = <0x0 0x80000000>;
        };
 
index 0b42372e437944f2ed4ffeff249dbaabec1543a8..20fa0ef0b96b8cd7523ca5f599f57e20f45c1ba3 100644 (file)
@@ -44,6 +44,7 @@
 
 / {
        memory {
+               device_type = "memory";
                reg = <0 0x80000000>;
        };
 
                regulator-max-microvolt = <1350000>;
                regulator-always-on;
                regulator-boot-on;
+               regulator-enable-ramp-delay = <300>;
+               regulator-ramp-delay = <8000>;
                vin-supply = <&vcc_sys>;
        };
 
index d582811fbd7b0e6995f1eba10c0a2e8a202ae8e9..f82b956ebf17f83e7747a6c4a419f19800e37be1 100644 (file)
@@ -49,6 +49,7 @@
        compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";
 
        memory{
+               device_type = "memory";
                reg = <0 0x80000000>;
        };
 
diff --git a/arch/arm/boot/dts/rk3288-r89.dts b/arch/arm/boot/dts/rk3288-r89.dts
new file mode 100644 (file)
index 0000000..14b9fc7
--- /dev/null
@@ -0,0 +1,413 @@
+/*
+ * Copyright (c) 2015 Heiko Stuebner <heiko@sntech.de>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include <dt-bindings/pwm/pwm.h>
+#include "rk3288.dtsi"
+
+/ {
+       compatible = "netxeon,r89", "rockchip,rk3288";
+
+       memory {
+               device_type = "memory";
+               reg = <0x0 0x80000000>;
+       };
+
+       ext_gmac: external-gmac-clock {
+               compatible = "fixed-clock";
+               clock-frequency = <125000000>;
+               clock-output-names = "ext_gmac";
+               #clock-cells = <0>;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               autorepeat;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwrbtn>;
+
+               button@0 {
+                       gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
+                       linux,code = <116>;
+                       label = "GPIO Key Power";
+                       linux,input-type = <1>;
+                       gpio-key,wakeup = <1>;
+                       debounce-interval = <100>;
+               };
+       };
+
+       vcc_host: vcc-host-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&host_vbus_drv>;
+               regulator-name = "vcc_host";
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vcc_otg: vcc-otg-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&otg_vbus_drv>;
+               regulator-name = "vcc_otg";
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vcc_sdmmc: sdmmc-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "sdmmc-supply";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
+               startup-delay-us = <100000>;
+               vin-supply = <&vcc_io>;
+       };
+
+       vcc_sys: sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "sys-supply";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&cpu0 {
+       cpu0-supply = <&vdd_cpu>;
+};
+
+&gmac {
+       phy-supply = <&vcc_lan>;
+       phy-mode = "rgmii";
+       clock_in_out = "input";
+       snps,reset-gpio = <&gpio4 7 0>;
+       snps,reset-active-low;
+       snps,reset-delays-us = <0 10000 1000000>;
+       assigned-clocks = <&cru SCLK_MAC>;
+       assigned-clock-parents = <&ext_gmac>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&rgmii_pins>;
+       tx_delay = <0x30>;
+       rx_delay = <0x10>;
+       status = "ok";
+};
+
+&hdmi {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       vdd_cpu: pmic@40 {
+               compatible = "silergy,syr827";
+               reg = <0x40>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "VDD_CPU";
+               regulator-enable-ramp-delay = <300>;
+               regulator-min-microvolt = <850000>;
+               regulator-max-microvolt = <1350000>;
+               regulator-ramp-delay = <8000>;
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc_sys>;
+       };
+
+       vdd_gpu: pmic@41 {
+               compatible = "silergy,syr828";
+               reg = <0x41>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "VDD_GPU";
+               regulator-enable-ramp-delay = <300>;
+               regulator-min-microvolt = <850000>;
+               regulator-max-microvolt = <1350000>;
+               regulator-ramp-delay = <8000>;
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc_sys>;
+       };
+
+       rtc@51 {
+               compatible = "haoyu,hym8563";
+               reg = <0x51>;
+               #clock-cells = <0>;
+               clock-output-names = "xin32k";
+               interrupt-parent = <&gpio0>;
+               interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int>;
+       };
+
+       act8846: pmic@5a {
+               compatible = "active-semi,act8846";
+               reg = <0x5a>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_vsel>, <&pwr_hold>;
+               system-power-controller;
+
+               regulators {
+                       vcc_ddr: REG1 {
+                               regulator-name = "VCC_DDR";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                       };
+
+                       vcc_io: REG2 {
+                               regulator-name = "VCC_IO";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vdd_log: REG3 {
+                               regulator-name = "VDD_LOG";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                       };
+
+                       vcc_20: REG4 {
+                               regulator-name = "VCC_20";
+                               regulator-min-microvolt = <2000000>;
+                               regulator-max-microvolt = <2000000>;
+                               regulator-always-on;
+                       };
+
+                       vccio_sd: REG5 {
+                               regulator-name = "VCCIO_SD";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vdd10_lcd: REG6 {
+                               regulator-name = "VDD10_LCD";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                       };
+
+                       vcc_wl: REG7 {
+                               regulator-name = "VCC_WL";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vcca_33: REG8 {
+                               regulator-name = "VCCA_33";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vcc_lan: REG9 {
+                               regulator-name = "VCC_LAN";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vdd_10: REG10 {
+                               regulator-name = "VDD_10";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                       };
+
+                       vcc_18: REG11 {
+                               regulator-name = "VCC_18";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                       };
+
+                       vcc18_lcd: REG12 {
+                               regulator-name = "VCC18_LCD";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&i2c5 {
+       status = "okay";
+};
+
+&pinctrl {
+       pcfg_output_high: pcfg-output-high {
+               output-high;
+       };
+
+       pcfg_output_low: pcfg-output-low {
+               output-low;
+       };
+
+       act8846 {
+               pmic_vsel: pmic-vsel {
+                       rockchip,pins = <7 1 RK_FUNC_GPIO &pcfg_output_low>;
+               };
+
+               pwr_hold: pwr-hold {
+                       rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_output_high>;
+               };
+       };
+
+       buttons {
+               pwrbtn: pwrbtn {
+                       rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       pmic {
+               pmic_int: pmic-int {
+                       rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       usb {
+               host_vbus_drv: host-vbus-drv {
+                       rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               otg_vbus_drv: otg-vbus-drv {
+                       rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pwm0 {
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc_18>;
+       status = "okay";
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       card-detect-delay = <200>;
+       disable-wp;
+       num-slots = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
+       vmmc-supply = <&vcc_sdmmc>;
+       vqmmc-supply = <&vccio_sd>;
+       status = "okay";
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <0>;
+       rockchip,hw-tshut-polarity = <0>;
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart3 {
+       status = "okay";
+};
+
+&uart4 {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host1 {
+       status = "okay";
+};
+
+&usb_otg {
+       status = "okay";
+};
+
+&usbphy {
+       status = "okay";
+};
+
+&vopb {
+       status = "okay";
+};
+
+&vopb_mmu {
+       status = "okay";
+};
+
+&vopl {
+       status = "okay";
+};
+
+&vopl_mmu {
+       status = "okay";
+};
+
+&wdt {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi b/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi
new file mode 100644 (file)
index 0000000..136d650
--- /dev/null
@@ -0,0 +1,232 @@
+/*
+ * Google Veyron (and derivatives) board device tree source
+ * Chromebook specific parts
+ *
+ * Copyright 2015 Google, Inc
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ *  Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <dt-bindings/clock/rockchip,rk808.h>
+#include <dt-bindings/input/input.h>
+#include "rk3288-veyron.dtsi"
+#include "rk3288-veyron-sdmmc.dtsi"
+
+/ {
+       aliases {
+               /* Assign 20 so we don't get confused w/ builtin ones */
+               i2c20 = &i2c_tunnel;
+       };
+
+       gpio-charger {
+               compatible = "gpio-charger";
+               charger-type = "mains";
+               gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ac_present_ap>;
+       };
+
+       /* A non-regulated voltage from power supply or battery */
+       vccsys: vccsys {
+               compatible = "regulator-fixed";
+               regulator-name = "vccsys";
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vcc33_sys: vcc33-sys {
+               vin-supply = <&vccsys>;
+       };
+
+       vcc_5v: vcc-5v {
+               vin-supply = <&vccsys>;
+       };
+
+       /* This turns on vbus for host1 (dwc2) */
+       vcc5_host1: vcc5-host1-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&host1_pwr_en>;
+               regulator-name = "vcc5_host1";
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       /* This turns on vbus for otg for host mode (dwc2) */
+       vcc5v_otg: vcc5v-otg-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usbotg_pwren_h>;
+               regulator-name = "vcc5_host2";
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&gpio_keys {
+       pinctrl-0 = <&pwr_key_l &ap_lid_int_l>;
+       lid {
+               label = "Lid";
+               gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
+               gpio-key,wakeup;
+               linux,code = <0>; /* SW_LID */
+               linux,input-type = <5>; /* EV_SW */
+               debounce-interval = <1>;
+       };
+};
+
+&rk808 {
+       vcc11-supply = <&vcc_5v>;
+
+       regulators {
+               vcc33_ccd: LDO_REG8 {
+                       regulator-name = "vcc33_ccd";
+                       regulator-always-on;
+                       regulator-boot-on;
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-state-mem {
+                               regulator-on-in-suspend;
+                               regulator-suspend-microvolt = <3300000>;
+                       };
+               };
+       };
+};
+
+&spi0 {
+       status = "okay";
+
+       cros_ec: ec@0 {
+               compatible = "google,cros-ec-spi";
+               reg = <0>;
+               google,cros-ec-spi-pre-delay = <30>;
+               interrupt-parent = <&gpio7>;
+               interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ec_int>;
+               spi-max-frequency = <3000000>;
+
+               i2c_tunnel: i2c-tunnel {
+                       compatible = "google,cros-ec-i2c-tunnel";
+                       google,remote-bus = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+};
+
+&i2c4 {
+       trackpad@15 {
+               compatible = "elan,ekth3000";
+               reg = <0x15>;
+               interrupt-parent = <&gpio7>;
+               interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&trackpad_int>;
+               vcc-supply = <&vcc33_io>;
+               wakeup-source;
+       };
+};
+
+&pinctrl {
+       pinctrl-0 = <
+               /* Common for sleep and wake, but no owners */
+               &global_pwroff
+
+               /* Wake only */
+               &suspend_l_wake
+       >;
+       pinctrl-1 = <
+               /* Common for sleep and wake, but no owners */
+               &global_pwroff
+
+               /* Sleep only */
+               &suspend_l_sleep
+       >;
+
+       buttons {
+               ap_lid_int_l: ap-lid-int-l {
+                       rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       charger {
+               ac_present_ap: ac-present-ap {
+                       rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       cros-ec {
+               ec_int: ec-int {
+                       rockchip,pins = <7 7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       suspend {
+               suspend_l_wake: suspend-l-wake {
+                       rockchip,pins = <0 17 RK_FUNC_GPIO &pcfg_output_low>;
+               };
+
+               suspend_l_sleep: suspend-l-sleep {
+                       rockchip,pins = <0 17 RK_FUNC_GPIO &pcfg_output_high>;
+               };
+       };
+
+       trackpad {
+               trackpad_int: trackpad-int {
+                       rockchip,pins = <7 3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       usb-host {
+               host1_pwr_en: host1-pwr-en {
+                       rockchip,pins = <0 11 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               usbotg_pwren_h: usbotg-pwren-h {
+                       rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+#include "cros-ec-keyboard.dtsi"
diff --git a/arch/arm/boot/dts/rk3288-veyron-jerry.dts b/arch/arm/boot/dts/rk3288-veyron-jerry.dts
new file mode 100644 (file)
index 0000000..42d7245
--- /dev/null
@@ -0,0 +1,197 @@
+/*
+ * Google Veyron Jerry Rev 3+ board device tree source
+ *
+ * Copyright 2015 Google, Inc
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ *  Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "rk3288-veyron-chromebook.dtsi"
+#include "cros-ec-sbs.dtsi"
+
+/ {
+       model = "Google Jerry";
+       compatible = "google,veyron-jerry-rev7", "google,veyron-jerry-rev6",
+                    "google,veyron-jerry-rev5", "google,veyron-jerry-rev4",
+                    "google,veyron-jerry-rev3", "google,veyron-jerry",
+                    "google,veyron", "rockchip,rk3288";
+
+       panel_regulator: panel-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio7 14 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcd_enable_h>;
+               regulator-name = "panel_regulator";
+               vin-supply = <&vcc33_sys>;
+       };
+
+       vcc18_lcd: vcc18-lcd {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&avdd_1v8_disp_en>;
+               regulator-name = "vcc18_lcd";
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc18_wl>;
+       };
+
+       backlight_regulator: backlight-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bl_pwr_en>;
+               regulator-name = "backlight_regulator";
+               vin-supply = <&vcc33_sys>;
+               startup-delay-us = <15000>;
+       };
+};
+
+&rk808 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pmic_int_l>;
+
+       regulators {
+               mic_vcc: LDO_REG2 {
+                       regulator-name = "mic_vcc";
+                       regulator-always-on;
+                       regulator-boot-on;
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-state-mem {
+                               regulator-on-in-suspend;
+                       };
+               };
+       };
+};
+
+&sdmmc {
+       disable-wp;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd_disabled &sdmmc_cd_gpio
+                       &sdmmc_bus4>;
+};
+
+&vcc_5v {
+       enable-active-high;
+       gpio = <&gpio7 21 GPIO_ACTIVE_HIGH>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&drv_5v>;
+};
+
+&vcc50_hdmi {
+       enable-active-high;
+       gpio = <&gpio5 19 GPIO_ACTIVE_HIGH>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&vcc50_hdmi_en>;
+};
+
+&pinctrl {
+       backlight {
+               bl_pwr_en: bl_pwr_en {
+                       rockchip,pins = <2 12 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       buck-5v {
+               drv_5v: drv-5v {
+                       rockchip,pins = <7 21 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       hdmi {
+               vcc50_hdmi_en: vcc50-hdmi-en {
+                       rockchip,pins = <5 19 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       lcd {
+               lcd_enable_h: lcd-en {
+                       rockchip,pins = <7 14 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               avdd_1v8_disp_en: avdd-1v8-disp-en {
+                       rockchip,pins = <2 13 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               dvs_1: dvs-1 {
+                       rockchip,pins = <7 12 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               dvs_2: dvs-2 {
+                       rockchip,pins = <7 15 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+};
+
+&i2c4 {
+       status = "okay";
+
+       /*
+        * Trackpad pin control is shared between Elan and Synaptics devices
+        * so we have to pull it up to the bus level.
+        */
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c4_xfer &trackpad_int>;
+
+       trackpad@15 {
+               /*
+                * Remove the inherited pinctrl settings to avoid clashing
+                * with bus-wide ones.
+                */
+               /delete-property/pinctrl-names;
+               /delete-property/pinctrl-0;
+       };
+
+       trackpad@2c {
+               compatible = "hid-over-i2c";
+               interrupt-parent = <&gpio7>;
+               interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
+               reg = <0x2c>;
+               hid-descr-addr = <0x0020>;
+               vcc-supply = <&vcc33_io>;
+               wakeup-source;
+       };
+};
diff --git a/arch/arm/boot/dts/rk3288-veyron-pinky.dts b/arch/arm/boot/dts/rk3288-veyron-pinky.dts
new file mode 100644 (file)
index 0000000..25eb4b0
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+ * Google Veyron Pinky Rev 2 board device tree source
+ *
+ * Copyright 2015 Google, Inc
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ *  Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "rk3288-veyron-chromebook.dtsi"
+#include "cros-ec-sbs.dtsi"
+
+/ {
+       model = "Google Pinky";
+       compatible = "google,veyron-pinky-rev2", "google,veyron-pinky",
+                    "google,veyron", "rockchip,rk3288";
+
+       /delete-node/emmc-pwrseq;
+};
+
+&emmc {
+       /*
+        * Use a pullup instead of a drive since the output is 3.3V and
+        * really should be 1.8V (oops).  The external pulldown will help
+        * bring the voltage down if we only drive with a pullup here.
+        * Therefore disable the powerseq (and actual reset) for pinky.
+        */
+       /delete-property/mmc-pwrseq;
+       pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8 &emmc_reset>;
+};
+
+&gpio_keys {
+       pinctrl-0 = <&pwr_key_h &ap_lid_int_l>;
+
+       power {
+               gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+/* Touchpad connector */
+&i2c3 {
+       status = "okay";
+
+       clock-frequency = <400000>;
+       i2c-scl-falling-time-ns = <50>;
+       i2c-scl-rising-time-ns = <300>;
+};
+
+&pinctrl {
+       buttons {
+               pwr_key_h: pwr-key-h {
+                       rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       emmc {
+               emmc_reset: emmc-reset {
+                       rockchip,pins = <7 12 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       sdmmc {
+               sdmmc_wp_gpio: sdmmc-wp-gpio {
+                       rockchip,pins = <7 10 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+};
+
+&rk808 {
+       regulators {
+               vcc18_lcd: SWITCH_REG2 {
+                       regulator-always-on;
+                       regulator-boot-on;
+                       regulator-name = "vcc18_lcd";
+                       regulator-state-mem {
+                               regulator-on-in-suspend;
+                       };
+               };
+       };
+};
+
+&sdmmc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd_disabled &sdmmc_cd_gpio
+                    &sdmmc_wp_gpio &sdmmc_bus4>;
+       wp-gpios = <&gpio7 10 GPIO_ACTIVE_HIGH>;
+};
+
+&tsadc {
+       /* Some connection is flaky making the tsadc hang the system */
+       status = "disabled";
+};
diff --git a/arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi b/arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi
new file mode 100644 (file)
index 0000000..788468a
--- /dev/null
@@ -0,0 +1,122 @@
+/*
+ * Google Veyron (and derivatives) fragment for sdmmc cards
+ *
+ * Copyright 2015 Google, Inc
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ *  Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+&io_domains {
+       sdcard-supply = <&vccio_sd>;
+};
+
+&pinctrl {
+       sdmmc {
+               /*
+                * We run sdmmc at max speed; bump up drive strength.
+                * We also have external pulls, so disable the internal ones.
+                */
+               sdmmc_bus4: sdmmc-bus4 {
+                       rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
+                                       <6 17 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
+                                       <6 18 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
+                                       <6 19 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
+               };
+
+               sdmmc_clk: sdmmc-clk {
+                       rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
+               };
+
+               sdmmc_cmd: sdmmc-cmd {
+                       rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
+               };
+
+               /*
+                * Builtin CD line is hooked to ground to prevent JTAG at boot
+                * (and also to get the voltage rail correct).
+                * Configure gpio6_C6 as GPIO so dw_mmc builtin CD doesn't
+                * think there's a card inserted
+                */
+               sdmmc_cd_disabled: sdmmc-cd-disabled {
+                       rockchip,pins = <6 22 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               /* This is where we actually hook up CD */
+               sdmmc_cd_gpio: sdmmc-cd-gpio {
+                       rockchip,pins = <7 5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&rk808 {
+       vcc9-supply = <&vcc_5v>;
+
+       regulators {
+               vccio_sd: LDO_REG4 {
+                       regulator-name = "vccio_sd";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-state-mem {
+                               regulator-on-in-suspend;
+                       };
+               };
+
+               vcc33_sd: LDO_REG5 {
+                       regulator-name = "vcc33_sd";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-state-mem {
+                               regulator-on-in-suspend;
+                       };
+               };
+       };
+};
+
+&sdmmc {
+       status = "okay";
+
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       card-detect-delay = <200>;
+       cd-gpios = <&gpio7 5 GPIO_ACTIVE_LOW>;
+       num-slots = <1>;
+       vmmc-supply = <&vcc33_sd>;
+       vqmmc-supply = <&vccio_sd>;
+};
diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi b/arch/arm/boot/dts/rk3288-veyron.dtsi
new file mode 100644 (file)
index 0000000..97af577
--- /dev/null
@@ -0,0 +1,563 @@
+/*
+ * Google Veyron (and derivatives) board device tree source
+ *
+ * Copyright 2015 Google, Inc
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ *  Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <dt-bindings/clock/rockchip,rk808.h>
+#include <dt-bindings/input/input.h>
+#include "rk3288.dtsi"
+
+/ {
+       memory {
+               device_type = "memory";
+               reg = <0x0 0x80000000>;
+       };
+
+       gpio_keys: gpio-keys {
+               compatible = "gpio-keys";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwr_key_l>;
+               power {
+                       label = "Power";
+                       gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_POWER>;
+                       debounce-interval = <100>;
+                       gpio-key,wakeup;
+               };
+       };
+
+       gpio-restart {
+               compatible = "gpio-restart";
+               gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ap_warm_reset_h>;
+               priority = <200>;
+       };
+
+       emmc_pwrseq: emmc-pwrseq {
+               compatible = "mmc-pwrseq-emmc";
+               pinctrl-0 = <&emmc_reset>;
+               pinctrl-names = "default";
+               reset-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
+       };
+
+       io_domains: io-domains {
+               compatible = "rockchip,rk3288-io-voltage-domain";
+               rockchip,grf = <&grf>;
+
+               bb-supply = <&vcc33_io>;
+               dvp-supply = <&vcc_18>;
+               flash0-supply = <&vcc18_flashio>;
+               gpio1830-supply = <&vcc33_io>;
+               gpio30-supply = <&vcc33_io>;
+               lcdc-supply = <&vcc33_lcd>;
+               wifi-supply = <&vcc18_wl>;
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rk808 RK808_CLKOUT1>;
+               clock-names = "ext_clock";
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_enable_l>, <&wifi_enable_h>;
+
+               /*
+                * On the module itself this is one of these (depending
+                * on the actual card populated):
+                * - SDIO_RESET_L_WL_REG_ON
+                * - PDN (power down when low)
+                */
+               reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
+       };
+
+       vcc_5v: vcc-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_5v";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       vcc33_sys: vcc33-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc33_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       vcc50_hdmi: vcc50-hdmi {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc50_hdmi";
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc_5v>;
+       };
+};
+
+&cpu0 {
+       cpu0-supply = <&vdd_cpu>;
+};
+
+&emmc {
+       status = "okay";
+
+       broken-cd;
+       bus-width = <8>;
+       cap-mmc-highspeed;
+       disable-wp;
+       mmc-pwrseq = <&emmc_pwrseq>;
+       non-removable;
+       num-slots = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
+};
+
+&hdmi {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       clock-frequency = <400000>;
+       i2c-scl-falling-time-ns = <50>;         /* 2.5ns measured */
+       i2c-scl-rising-time-ns = <100>;         /* 45ns measured */
+
+       rk808: pmic@1b {
+               compatible = "rockchip,rk808";
+               reg = <0x1b>;
+               clock-output-names = "xin32k", "wifibt_32kin";
+               interrupt-parent = <&gpio0>;
+               interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int_l>;
+               rockchip,system-power-controller;
+               wakeup-source;
+               #clock-cells = <1>;
+
+               vcc1-supply = <&vcc33_sys>;
+               vcc2-supply = <&vcc33_sys>;
+               vcc3-supply = <&vcc33_sys>;
+               vcc4-supply = <&vcc33_sys>;
+               vcc6-supply = <&vcc_5v>;
+               vcc7-supply = <&vcc33_sys>;
+               vcc8-supply = <&vcc33_sys>;
+               vcc12-supply = <&vcc_18>;
+               vddio-supply = <&vcc33_io>;
+
+               regulators {
+                       vdd_cpu: DCDC_REG1 {
+                               regulator-name = "vdd_arm";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <1450000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_gpu: DCDC_REG2 {
+                               regulator-name = "vdd_gpu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1250000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1000000>;
+                               };
+                       };
+
+                       vcc135_ddr: DCDC_REG3 {
+                               regulator-name = "vcc135_ddr";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       /*
+                        * vcc_18 has several aliases.  (vcc18_flashio and
+                        * vcc18_wl).  We'll add those aliases here just to
+                        * make it easier to follow the schematic.  The signals
+                        * are actually hooked together and only separated for
+                        * power measurement purposes).
+                        */
+                       vcc18_wl: vcc18_flashio: vcc_18: DCDC_REG4 {
+                               regulator-name = "vcc_18";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       /*
+                        * Note that both vcc33_io and vcc33_pmuio are always
+                        * powered together. To simplify the logic in the dts
+                        * we just refer to vcc33_io every time something is
+                        * powered from vcc33_pmuio. In fact, on later boards
+                        * (such as danger) they're the same net.
+                        */
+                       vcc33_io: LDO_REG1 {
+                               regulator-name = "vcc33_io";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vdd_10: LDO_REG3 {
+                               regulator-name = "vdd_10";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1000000>;
+                               };
+                       };
+
+                       vdd10_lcd_pwren_h: LDO_REG7 {
+                               regulator-name = "vdd10_lcd_pwren_h";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <2500000>;
+                               regulator-max-microvolt = <2500000>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc33_lcd: SWITCH_REG1 {
+                               regulator-name = "vcc33_lcd";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+};
+
+&i2c1 {
+       status = "okay";
+
+       clock-frequency = <400000>;
+       i2c-scl-falling-time-ns = <50>;         /* 2.5ns measured */
+       i2c-scl-rising-time-ns = <100>;         /* 40ns measured */
+
+       tpm: tpm@20 {
+               compatible = "infineon,slb9645tt";
+               reg = <0x20>;
+               powered-while-suspended;
+       };
+};
+
+&i2c2 {
+       status = "okay";
+
+       /* 100kHz since 4.7k resistors don't rise fast enough */
+       clock-frequency = <100000>;
+       i2c-scl-falling-time-ns = <50>;         /* 10ns measured */
+       i2c-scl-rising-time-ns = <800>;         /* 600ns measured */
+};
+
+&i2c4 {
+       status = "okay";
+
+       clock-frequency = <400000>;
+       i2c-scl-falling-time-ns = <50>;         /* 11ns measured */
+       i2c-scl-rising-time-ns = <300>;         /* 225ns measured */
+};
+
+&i2c5 {
+       status = "okay";
+
+       clock-frequency = <100000>;
+       i2c-scl-falling-time-ns = <300>;
+       i2c-scl-rising-time-ns = <1000>;
+};
+
+&pwm1 {
+       status = "okay";
+};
+
+&sdio0 {
+       status = "okay";
+
+       broken-cd;
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       non-removable;
+       num-slots = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdio0_clk &sdio0_cmd &sdio0_bus4>;
+       vmmc-supply = <&vcc33_sys>;
+       vqmmc-supply = <&vcc18_wl>;
+};
+
+&spi2 {
+       status = "okay";
+
+       rx-sample-delay-ns = <12>;
+};
+
+&tsadc {
+       status = "okay";
+
+       tsadc-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
+       tsadc-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
+};
+
+&uart0 {
+       status = "okay";
+
+       /* We need to go faster than 24MHz, so adjust clock parents / rates */
+       assigned-clocks = <&cru SCLK_UART0>;
+       assigned-clock-rates = <48000000>;
+
+       /* Pins don't include flow control by default; add that in */
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usbphy {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+
+       needs-reset-on-resume;
+};
+
+&usb_host1 {
+       status = "okay";
+};
+
+&usb_otg {
+       status = "okay";
+
+       assigned-clocks = <&cru SCLK_USBPHY480M_SRC>;
+       assigned-clock-parents = <&cru SCLK_OTGPHY0>;
+       dr_mode = "host";
+};
+
+&vopb {
+       status = "okay";
+};
+
+&vopb_mmu {
+       status = "okay";
+};
+
+&wdt {
+       status = "okay";
+};
+
+&pinctrl {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <
+               /* Common for sleep and wake, but no owners */
+               &global_pwroff
+       >;
+       pinctrl-1 = <
+               /* Common for sleep and wake, but no owners */
+               &global_pwroff
+       >;
+
+       pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
+               bias-disable;
+               drive-strength = <8>;
+       };
+
+       pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
+               bias-pull-up;
+               drive-strength = <8>;
+       };
+
+       pcfg_output_high: pcfg-output-high {
+               output-high;
+       };
+
+       pcfg_output_low: pcfg-output-low {
+               output-low;
+       };
+
+       buttons {
+               pwr_key_l: pwr-key-l {
+                       rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       emmc {
+               emmc_reset: emmc-reset {
+                       rockchip,pins = <2 9 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               /*
+                * We run eMMC at max speed; bump up drive strength.
+                * We also have external pulls, so disable the internal ones.
+                */
+               emmc_clk: emmc-clk {
+                       rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
+               };
+
+               emmc_cmd: emmc-cmd {
+                       rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
+               };
+
+               emmc_bus8: emmc-bus8 {
+                       rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
+                                       <3 1 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
+                                       <3 2 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
+                                       <3 3 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
+                                       <3 4 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
+                                       <3 5 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
+                                       <3 6 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
+                                       <3 7 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
+               };
+       };
+
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       reboot {
+               ap_warm_reset_h: ap-warm-reset-h {
+                       rockchip,pins = <RK_GPIO0 13 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       recovery-switch {
+               rec_mode_l: rec-mode-l {
+                       rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       sdio0 {
+               wifi_enable_h: wifienable-h {
+                       rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               /* NOTE: mislabelled on schematic; should be bt_enable_h */
+               bt_enable_l: bt-enable-l {
+                       rockchip,pins = <4 29 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               /*
+                * We run sdio0 at max speed; bump up drive strength.
+                * We also have external pulls, so disable the internal ones.
+                */
+               sdio0_bus4: sdio0-bus4 {
+                       rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
+                                       <4 21 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
+                                       <4 22 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
+                                       <4 23 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
+               };
+
+               sdio0_cmd: sdio0-cmd {
+                       rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
+               };
+
+               sdio0_clk: sdio0-clk {
+                       rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
+               };
+       };
+
+       tpm {
+               tpm_int_h: tpm-int-h {
+                       rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       /*
+        * On Marvell-based hardware this is a no-connect.  Make sure we enable
+        * the pullup so that the line doesn't float.  The pullup shouldn't
+        * hurt on Broadcom-based hardware since the other side is actively
+        * driving this signal.  As proof: we've already got a pullup on RX.
+        */
+       uart0 {
+               uart0_cts: uart0-cts {
+                       rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_up>;
+               };
+       };
+
+       write-protect {
+               fw_wp_ap: fw-wp-ap {
+                       rockchip,pins = <7 6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
index 22316d00493e5c190b5f83a78e61f8e9da90e613..2db91c9ccac2e694b70d2235ddd723ac0a373209 100644 (file)
@@ -78,6 +78,7 @@
                             <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
        };
 
        cpus {
                        clock-latency = <40000>;
                        clocks = <&cru ARMCLK>;
                };
-               cpu@501 {
+               cpu1: cpu@501 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a12";
                        reg = <0x501>;
                        resets = <&cru SRST_CORE1>;
                };
-               cpu@502 {
+               cpu2: cpu@502 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a12";
                        reg = <0x502>;
                        resets = <&cru SRST_CORE2>;
                };
-               cpu@503 {
+               cpu3: cpu@503 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a12";
                        reg = <0x503>;
                        "mac_clk_rx", "mac_clk_tx",
                        "clk_mac_ref", "clk_mac_refout",
                        "aclk_mac", "pclk_mac";
+               resets = <&cru SRST_MAC>;
+               reset-names = "stmmaceth";
                status = "disabled";
        };
 
                compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
                reg = <0xff800000 0x100>;
                clocks = <&cru PCLK_WDT>;
-               interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+               interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
                status = "disabled";
        };
 
index 11e17c5f26e2cae27f7f120b2cf6854e61892e76..ff7c8f298f30a58d3ea987f2375acfe3f6e9be34 100644 (file)
                      <0xe605801c 0x1c>;
                gpio-controller;
                #gpio-cells = <2>;
+               gpio-ranges =
+                       <&pfc 0 0 119>, <&pfc 128 128 37>, <&pfc 192 192 91>,
+                       <&pfc 288 288 22>;
                interrupts-extended =
                        <&irqpin0 0 0>, <&irqpin0 1 0>, <&irqpin0 2 0>, <&irqpin0 3 0>,
                        <&irqpin0 4 0>, <&irqpin0 5 0>, <&irqpin0 6 0>, <&irqpin0 7 0>,
index 80f924deed37457409fff03e7924894ead9e4601..01bdaaa508541a8b967da5bec0712fd3e67d9450 100644 (file)
                                                dbg_base_clk: dbg_base_clk {
                                                        #clock-cells = <0>;
                                                        compatible = "altr,socfpga-perip-clk";
-                                                       clocks = <&main_pll>;
+                                                       clocks = <&main_pll>, <&osc1>;
                                                        div-reg = <0xe8 0 9>;
                                                        reg = <0x50>;
                                                };
                                        l3_sp_clk: l3_sp_clk {
                                                #clock-cells = <0>;
                                                compatible = "altr,socfpga-gate-clk";
-                                               clocks = <&mainclk>;
+                                               clocks = <&l3_mp_clk>;
                                                div-reg = <0x64 2 2>;
                                        };
 
                                        dbg_clk: dbg_clk {
                                                #clock-cells = <0>;
                                                compatible = "altr,socfpga-gate-clk";
-                                               clocks = <&dbg_base_clk>;
+                                               clocks = <&dbg_at_clk>;
                                                div-reg = <0x68 2 2>;
                                                clk-gate = <0x60 5>;
                                        };
                                                clocks = <&f2s_periph_ref_clk>, <&main_qspi_clk>, <&per_qspi_clk>;
                                                clk-gate = <0xa0 11>;
                                        };
+
+                                       ddr_dqs_clk_gate: ddr_dqs_clk_gate {
+                                               #clock-cells = <0>;
+                                               compatible = "altr,socfpga-gate-clk";
+                                               clocks = <&ddr_dqs_clk>;
+                                               clk-gate = <0xd8 0>;
+                                       };
+
+                                       ddr_2x_dqs_clk_gate: ddr_2x_dqs_clk_gate {
+                                               #clock-cells = <0>;
+                                               compatible = "altr,socfpga-gate-clk";
+                                               clocks = <&ddr_2x_dqs_clk>;
+                                               clk-gate = <0xd8 1>;
+                                       };
+
+                                       ddr_dq_clk_gate: ddr_dq_clk_gate {
+                                               #clock-cells = <0>;
+                                               compatible = "altr,socfpga-gate-clk";
+                                               clocks = <&ddr_dq_clk>;
+                                               clk-gate = <0xd8 2>;
+                                       };
+
+                                       h2f_user2_clk: h2f_user2_clk {
+                                               #clock-cells = <0>;
+                                               compatible = "altr,socfpga-gate-clk";
+                                               clocks = <&h2f_usr2_clk>;
+                                               clk-gate = <0xd8 3>;
+                                       };
+
                                };
-                       };
+               };
 
                gmac0: ethernet@ff700000 {
                        compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
                        #size-cells = <0>;
                        compatible = "snps,dw-apb-gpio";
                        reg = <0xff708000 0x1000>;
-                       clocks = <&per_base_clk>;
+                       clocks = <&l4_mp_clk>;
                        status = "disabled";
 
                        porta: gpio-controller@0 {
                        #size-cells = <0>;
                        compatible = "snps,dw-apb-gpio";
                        reg = <0xff709000 0x1000>;
-                       clocks = <&per_base_clk>;
+                       clocks = <&l4_mp_clk>;
                        status = "disabled";
 
                        portb: gpio-controller@0 {
                        #size-cells = <0>;
                        compatible = "snps,dw-apb-gpio";
                        reg = <0xff70a000 0x1000>;
-                       clocks = <&per_base_clk>;
+                       clocks = <&l4_mp_clk>;
                        status = "disabled";
 
                        portc: gpio-controller@0 {
                        cache-level = <2>;
                        arm,tag-latency = <1 1 1>;
                        arm,data-latency = <2 1 1>;
+                       prefetch-data = <1>;
+                       prefetch-instr = <1>;
                };
 
                mmc: dwmmc0@ff704000 {
index 4779b07310df81aaad4f3e87d12b1a269ef65f79..a25290505aa32b8e46d74181c0a2ac1cb9289f5f 100644 (file)
        #address-cells = <1>;
        #size-cells = <1>;
 
+       aliases {
+               serial0 = &uart0;
+               serial1 = &uart1;
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
index 94a0709b2fe668844d3cffdb860c28169ff693eb..99aa9a1c8af0b6950fbd999e432ace134c7b285d 100644 (file)
@@ -21,7 +21,8 @@
        compatible = "altr,socfpga-arria10", "altr,socfpga";
 
        chosen {
-               bootargs = "console=ttyS0,115200 rootwait";
+               bootargs = "earlyprintk";
+               stdout-path = "serial1:115200n8";
        };
 
        memory {
index ccaf41742fc3d05921ee80d67ba00304010a666b..a75a666032b2fca76997546ffedc7c7cd7962e12 100644 (file)
@@ -22,7 +22,8 @@
        compatible = "altr,socfpga-arria5", "altr,socfpga";
 
        chosen {
-               bootargs = "console=ttyS0,115200";
+               bootargs = "earlyprintk";
+               stdout-path = "serial0:115200n8";
        };
 
        memory {
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts b/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts
new file mode 100644 (file)
index 0000000..555e9ca
--- /dev/null
@@ -0,0 +1,111 @@
+/*
+ * Copyright Altera Corporation (C) 2015. All rights reserved.
+ *
+ * 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 "socfpga_cyclone5.dtsi"
+
+/ {
+       model = "Terasic DE-0(Atlas)";
+       compatible = "altr,socfpga-cyclone5", "altr,socfpga";
+
+       chosen {
+               bootargs = "earlyprintk";
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory {
+               name = "memory";
+               device_type = "memory";
+               reg = <0x0 0x40000000>; /* 1GB */
+       };
+
+       aliases {
+               ethernet0 = &gmac1;
+       };
+
+       regulator_3_3v: 3-3-v-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               hps0 {
+                       label = "hps_led0";
+                       gpios = <&portb 24 0>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+};
+
+&gmac1 {
+       status = "okay";
+       phy-mode = "rgmii";
+
+       txd0-skew-ps = <0>; /* -420ps */
+       txd1-skew-ps = <0>; /* -420ps */
+       txd2-skew-ps = <0>; /* -420ps */
+       txd3-skew-ps = <0>; /* -420ps */
+       rxd0-skew-ps = <420>; /* 0ps */
+       rxd1-skew-ps = <420>; /* 0ps */
+       rxd2-skew-ps = <420>; /* 0ps */
+       rxd3-skew-ps = <420>; /* 0ps */
+       txen-skew-ps = <0>; /* -420ps */
+       txc-skew-ps = <1860>; /* 960ps */
+       rxdv-skew-ps = <420>; /* 0ps */
+       rxc-skew-ps = <1680>; /* 780ps */
+
+       max-frame-size = <3800>;
+};
+
+&gpio0 {
+       status = "okay";
+};
+
+&gpio1 {
+       status = "okay";
+};
+
+&gpio2 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+       speed-mode = <0>;
+
+       adxl345: adxl345@0 {
+               compatible = "adi,adxl345";
+               reg = <0x53>;
+
+               interrupt-parent = <&portc>;
+               interrupts = <3 2>;
+       };
+};
+
+&mmc0 {
+       vmmc-supply = <&regulator_3_3v>;
+       vqmmc-supply = <&regulator_3_3v>;
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&usb1 {
+       status = "okay";
+};
index 258865da8f6a6fe45a0fc9ae6c0281ef2f0c4824..d4d0a28fb331a76caf611e3335e2b70ba984d549 100644 (file)
@@ -22,7 +22,8 @@
        compatible = "altr,socfpga-cyclone5", "altr,socfpga";
 
        chosen {
-               bootargs = "console=ttyS0,115200";
+               bootargs = "earlyprintk";
+               stdout-path = "serial0:115200n8";
        };
 
        memory {
index 71468a7eb28f146b3c96c06b955ebb3444a8d033..42d60923d52bbcf3f4e80e8be3f3af5cc3c20501 100644 (file)
@@ -22,7 +22,8 @@
        compatible = "altr,socfpga-cyclone5", "altr,socfpga";
 
        chosen {
-               bootargs = "console=ttyS0,115200";
+               bootargs = "earlyprintk";
+               stdout-path = "serial0:115200n8";
        };
 
        memory {
index e65744fc12ab0e293ae8d43ce1d05311f7216f10..ad45f5e8fac7b6ed158fae7768b4bda550fff61a 100644 (file)
 
                        clk_s_c0_pll0: clk-s-c0-pll0 {
                                #clock-cells = <1>;
-                               compatible = "st,stih407-plls-c32-c0_0", "st,clkgen-plls-c32";
+                               compatible = "st,plls-c32-cx_0", "st,clkgen-plls-c32";
 
                                clocks = <&clk_sysin>;
 
 
                        clk_s_c0_pll1: clk-s-c0-pll1 {
                                #clock-cells = <1>;
-                               compatible = "st,stih407-plls-c32-c0_1", "st,clkgen-plls-c32";
+                               compatible = "st,plls-c32-cx_1", "st,clkgen-plls-c32";
 
                                clocks = <&clk_sysin>;
 
index 838b812cbda10c1ec991aa0a471a7956e1fbace2..5a234be6a3dc9955fca11a2e68f2aa406182317f 100644 (file)
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        reg = <0>;
+                       /* u-boot puts hpen in SBC dmem at 0xa4 offset */
+                       cpu-release-addr = <0x94100A4>;
                };
                cpu@1 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        reg = <1>;
+                       /* u-boot puts hpen in SBC dmem at 0xa4 offset */
+                       cpu-release-addr = <0x94100A4>;
                };
        };
 
                interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
        };
 
+       pwm_regulator: pwm-regulator {
+               compatible = "pwm-regulator";
+               pwms = <&pwm1 3 8448>;
+               regulator-name = "CPU_1V0_AVS";
+               regulator-min-microvolt = <784000>;
+               regulator-max-microvolt = <1299000>;
+               regulator-always-on;
+               max-duty-cycle = <255>;
+               status = "okay";
+       };
+
        soc {
                #address-cells = <1>;
                #size-cells = <1>;
                        status = "disabled";
                };
 
+
                st_dwc3: dwc3@8f94000 {
                        compatible      = "st,stih407-dwc3";
                        reg             = <0x08f94000 0x1000>, <0x110 0x4>;
                                                  <&phy_port2 PHY_TYPE_USB3>;
                        };
                };
+
+               /* COMMS PWM Module */
+               pwm0: pwm@9810000 {
+                       compatible      = "st,sti-pwm";
+                       status          = "okay";
+                       #pwm-cells      = <2>;
+                       reg             = <0x9810000 0x68>;
+                       pinctrl-names   = "default";
+                       pinctrl-0       = <&pinctrl_pwm0_chan0_default>;
+                       clock-names     = "pwm";
+                       clocks          = <&clk_sysin>;
+                       st,pwm-num-chan = <1>;
+               };
+
+               /* SBC PWM Module */
+               pwm1: pwm@9510000 {
+                       compatible      = "st,sti-pwm";
+                       status          = "okay";
+                       #pwm-cells      = <2>;
+                       reg             = <0x9510000 0x68>;
+                       pinctrl-names   = "default";
+                       pinctrl-0       = <&pinctrl_pwm1_chan0_default
+                                       &pinctrl_pwm1_chan1_default
+                                       &pinctrl_pwm1_chan2_default
+                                       &pinctrl_pwm1_chan3_default>;
+                       clock-names     = "pwm";
+                       clocks          = <&clk_sysin>;
+                       st,pwm-num-chan = <4>;
+               };
        };
 };
index 0a754f2752121eddc1c5c6540d43bb83cb1585f2..1683debd08545af577ed50fbd60271017f44efc5 100644 (file)
                                        };
                                };
                        };
+
+                       tsin0 {
+                               pinctrl_tsin0_parallel: tsin0_parallel {
+                                       st,pins {
+                                               DATA7 = <&pio10 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA6 = <&pio10 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA5 = <&pio10 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA4 = <&pio10 7 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA3 = <&pio11 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA2 = <&pio11 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA1 = <&pio11 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA0 = <&pio11 3 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               CLKIN = <&pio10 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
+                                               VALID = <&pio10 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               ERROR = <&pio10 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               PKCLK = <&pio10 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                       };
+                               };
+                               pinctrl_tsin0_serial: tsin0_serial {
+                                       st,pins {
+                                               DATA7 = <&pio10 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               CLKIN = <&pio10 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
+                                               VALID = <&pio10 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               ERROR = <&pio10 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               PKCLK = <&pio10 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                       };
+                               };
+                       };
+
+                       tsin1 {
+                               pinctrl_tsin1_parallel: tsin1_parallel {
+                                       st,pins {
+                                               DATA7 = <&pio12 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA6 = <&pio12 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA5 = <&pio12 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA4 = <&pio12 3 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA3 = <&pio12 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA2 = <&pio12 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA1 = <&pio12 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA0 = <&pio12 7 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               CLKIN = <&pio11 7 ALT1 IN CLKNOTDATA 0 CLK_A>;
+                                               VALID = <&pio11 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               ERROR = <&pio11 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               PKCLK = <&pio11 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                       };
+                               };
+                               pinctrl_tsin1_serial: tsin1_serial {
+                                       st,pins {
+                                               DATA7 = <&pio12 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               CLKIN = <&pio11 7 ALT1 IN CLKNOTDATA 0 CLK_A>;
+                                               VALID = <&pio11 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               ERROR = <&pio11 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               PKCLK = <&pio11 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                       };
+                               };
+                       };
+
+                       tsin2 {
+                               pinctrl_tsin2_parallel: tsin2_parallel {
+                                       st,pins {
+                                               DATA7 = <&pio13 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA6 = <&pio13 5 ALT2 IN SE_NICLK_IO 0 CLK_B>;
+                                               DATA5 = <&pio13 6 ALT2 IN SE_NICLK_IO 0 CLK_B>;
+                                               DATA4 = <&pio13 7 ALT2 IN SE_NICLK_IO 0 CLK_B>;
+                                               DATA3 = <&pio14 0 ALT2 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA2 = <&pio14 1 ALT2 IN SE_NICLK_IO 0 CLK_B>;
+                                               DATA1 = <&pio14 2 ALT2 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA0 = <&pio14 3 ALT2 IN SE_NICLK_IO 0 CLK_A>;
+                                               CLKIN = <&pio13 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
+                                               VALID = <&pio13 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               ERROR = <&pio13 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               PKCLK = <&pio13 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                       };
+                               };
+                               pinctrl_tsin2_serial: tsin2_serial {
+                                       st,pins {
+                                               DATA7 = <&pio13 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               CLKIN = <&pio13 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
+                                               VALID = <&pio13 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               ERROR = <&pio13 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               PKCLK = <&pio13 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                       };
+                               };
+                       };
+
+                       tsin3 {
+                               pinctrl_tsin3_serial: tsin3_serial {
+                                       st,pins {
+                                               DATA7 = <&pio14 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               CLKIN = <&pio14 0 ALT1 IN CLKNOTDATA 0 CLK_A>;
+                                               VALID = <&pio13 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               ERROR = <&pio13 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               PKCLK = <&pio13 7 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                       };
+                               };
+                       };
+
+                       tsin4 {
+                               pinctrl_tsin4_serial_alt3: tsin4_serial_alt3 {
+                                       st,pins {
+                                               DATA7 = <&pio14 6 ALT3 IN SE_NICLK_IO 0 CLK_A>;
+                                               CLKIN = <&pio14 5 ALT3 IN CLKNOTDATA 0 CLK_A>;
+                                               VALID = <&pio14 3 ALT3 IN SE_NICLK_IO 0 CLK_B>;
+                                               ERROR = <&pio14 2 ALT3 IN SE_NICLK_IO 0 CLK_B>;
+                                               PKCLK = <&pio14 4 ALT3 IN SE_NICLK_IO 0 CLK_A>;
+                                       };
+                               };
+                       };
+
+                       tsin5 {
+                               pinctrl_tsin5_serial_alt1: tsin5_serial_alt1 {
+                                       st,pins {
+                                               DATA7 = <&pio18 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               CLKIN = <&pio18 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
+                                               VALID = <&pio18 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               ERROR = <&pio18 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               PKCLK = <&pio18 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                       };
+                               };
+                               pinctrl_tsin5_serial_alt2: tsin5_serial_alt2 {
+                                       st,pins {
+                                               DATA7 = <&pio19 4 ALT2 IN SE_NICLK_IO 0 CLK_A>;
+                                               CLKIN = <&pio19 3 ALT2 IN CLKNOTDATA 0 CLK_A>;
+                                               VALID = <&pio19 1 ALT2 IN SE_NICLK_IO 0 CLK_A>;
+                                               ERROR = <&pio19 0 ALT2 IN SE_NICLK_IO 0 CLK_A>;
+                                               PKCLK = <&pio19 2 ALT2 IN SE_NICLK_IO 0 CLK_A>;
+                                       };
+                               };
+                       };
+
+                       tsout0 {
+                               pinctrl_tsout0_parallel: tsout0_parallel {
+                                       st,pins {
+                                               DATA7 = <&pio12 0 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
+                                               DATA6 = <&pio12 1 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
+                                               DATA5 = <&pio12 2 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
+                                               DATA4 = <&pio12 3 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
+                                               DATA3 = <&pio12 4 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
+                                               DATA2 = <&pio12 5 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
+                                               DATA1 = <&pio12 6 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
+                                               DATA0 = <&pio12 7 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
+                                               CLKIN = <&pio11 7 ALT3 OUT NICLK 0 CLK_A>;
+                                               VALID = <&pio11 5 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
+                                               ERROR = <&pio11 4 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
+                                               PKCLK = <&pio11 6 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
+                                       };
+                               };
+                               pinctrl_tsout0_serial: tsout0_serial {
+                                       st,pins {
+                                               DATA7 = <&pio12 0 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
+                                               CLKIN = <&pio11 7 ALT3 OUT NICLK 0 CLK_A>;
+                                               VALID = <&pio11 5 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
+                                               ERROR = <&pio11 4 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
+                                               PKCLK = <&pio11 6 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
+                                       };
+                               };
+                       };
+
+                       tsout1 {
+                               pinctrl_tsout1_serial: tsout1_serial {
+                                       st,pins {
+                                               DATA7 = <&pio19 4 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
+                                               CLKIN = <&pio19 3 ALT1 OUT NICLK 0 CLK_A>;
+                                               VALID = <&pio19 1 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
+                                               ERROR = <&pio19 0 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
+                                               PKCLK = <&pio19 2 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
+                                       };
+                               };
+                       };
+
+                       mtsin0 {
+                               pinctrl_mtsin0_parallel: mtsin0_parallel {
+                                       st,pins {
+                                               DATA7 = <&pio10 4 ALT3 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA6 = <&pio10 5 ALT3 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA5 = <&pio10 6 ALT3 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA4 = <&pio10 7 ALT3 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA3 = <&pio11 0 ALT3 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA2 = <&pio11 1 ALT3 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA1 = <&pio11 2 ALT3 IN SE_NICLK_IO 0 CLK_A>;
+                                               DATA0 = <&pio11 3 ALT3 IN SE_NICLK_IO 0 CLK_A>;
+                                               CLKIN = <&pio10 3 ALT3 IN CLKNOTDATA 0 CLK_A>;
+                                               VALID = <&pio10 1 ALT3 IN SE_NICLK_IO 0 CLK_A>;
+                                               ERROR = <&pio10 0 ALT3 IN SE_NICLK_IO 0 CLK_A>;
+                                               PKCLK = <&pio10 2 ALT3 IN SE_NICLK_IO 0 CLK_A>;
+                                       };
+                               };
+                       };
                };
 
                pin-controller-front1 {
                        interrupts-names = "irqmux";
                        ranges = <0 0x09210000 0x10000>;
 
+                       tsin4 {
+                               pinctrl_tsin4_serial_alt1: tsin4_serial_alt1 {
+                                       st,pins {
+                                               DATA7 = <&pio20 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               CLKIN = <&pio20 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
+                                               VALID = <&pio20 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               ERROR = <&pio20 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               PKCLK = <&pio20 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                       };
+                               };
+                       };
+
                        pio20: pio@09210000 {
                                gpio-controller;
                                #gpio-cells = <1>;
index 2c560fc30503e68a827f4c2d6f7a3b59e15fed2f..3efa3b2ebe900df62c504340a8ca60c7aa7849c1 100644 (file)
                                };
                        };
                };
-
-               /* COMMS PWM Module */
-               pwm0: pwm@9810000 {
-                       compatible      = "st,sti-pwm";
-                       status          = "disabled";
-                       #pwm-cells      = <2>;
-                       reg             = <0x9810000 0x68>;
-                       pinctrl-names   = "default";
-                       pinctrl-0       = <&pinctrl_pwm0_chan0_default>;
-                       clock-names     = "pwm";
-                       clocks          = <&clk_sysin>;
-               };
-
-               /* SBC PWM Module */
-               pwm1: pwm@9510000 {
-                       compatible      = "st,sti-pwm";
-                       status          = "disabled";
-                       #pwm-cells      = <2>;
-                       reg             = <0x9510000 0x68>;
-                       pinctrl-names   = "default";
-                       pinctrl-0       = <&pinctrl_pwm1_chan0_default
-                                       &pinctrl_pwm1_chan1_default
-                                       &pinctrl_pwm1_chan2_default
-                                       &pinctrl_pwm1_chan3_default>;
-                       clock-names     = "pwm";
-                       clocks          = <&clk_sysin>;
-                       st,pwm-num-chan = <4>;
-               };
        };
 };
index 6b5803a30096f0bf4e64b18fd44d8bbb0221d24b..d1f2acafc9b69b833d989e01a1619aba161e5dff 100644 (file)
 
                        clk_s_c0_pll0: clk-s-c0-pll0 {
                                #clock-cells = <1>;
-                               compatible = "st,stih407-plls-c32-c0_0", "st,clkgen-plls-c32";
+                               compatible = "st,plls-c32-cx_0", "st,clkgen-plls-c32";
 
                                clocks = <&clk_sysin>;
 
 
                        clk_s_c0_pll1: clk-s-c0-pll1 {
                                #clock-cells = <1>;
-                               compatible = "st,stih407-plls-c32-c0_1", "st,clkgen-plls-c32";
+                               compatible = "st,plls-c32-cx_1", "st,clkgen-plls-c32";
 
                                clocks = <&clk_sysin>;
 
index 208b5e89036a6b5c21d12d6ae498eccb628a6c30..6f40bc99c22f120240a1b05e123f5bf39c1e81f1 100644 (file)
 #include "stih407-family.dtsi"
 #include "stih410-pinctrl.dtsi"
 / {
+       aliases {
+               bdisp0 = &bdisp0;
+       };
+
        soc {
                usb2_picophy1: phy2 {
                        compatible = "st,stih407-usb2-phy";
                                };
                        };
                };
+
+               bdisp0:bdisp@9f10000 {
+                       compatible = "st,stih407-bdisp";
+                       reg = <0x9f10000 0x1000>;
+                       interrupts = <GIC_SPI 38 IRQ_TYPE_NONE>;
+                       clock-names = "bdisp";
+                       clocks = <&clk_s_c0_flexgen CLK_IC_BDISP_0>;
+               };
        };
 };
index 0ab23daa28296f888d4b249d509690400be90eec..148e1772465f7f6f04995641f2b206d4de29eb10 100644 (file)
 
                        clk_s_c0_pll0: clk-s-c0-pll0 {
                                #clock-cells = <1>;
-                               compatible = "st,stih407-plls-c32-c0_0", "st,clkgen-plls-c32";
+                               compatible = "st,plls-c32-cx_0", "st,clkgen-plls-c32";
 
                                clocks = <&clk_sysin>;
 
 
                        clk_s_c0_pll1: clk-s-c0-pll1 {
                                #clock-cells = <1>;
-                               compatible = "st,stih407-plls-c32-c0_1", "st,clkgen-plls-c32";
+                               compatible = "st,plls-c32-cx_1", "st,clkgen-plls-c32";
 
                                clocks = <&clk_sysin>;
 
index 354d90f521b68850cec0591b409a55cfc1f80433..8160a75539a4e56a10bc814d92f47c277acf1b9f 100644 (file)
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        reg = <2>;
+                       /* u-boot puts hpen in SBC dmem at 0xa4 offset */
+                       cpu-release-addr = <0x94100A4>;
                };
                cpu@3 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        reg = <3>;
+                       /* u-boot puts hpen in SBC dmem at 0xa4 offset */
+                       cpu-release-addr = <0x94100A4>;
                };
        };
 
diff --git a/arch/arm/boot/dts/stm32429i-eval.dts b/arch/arm/boot/dts/stm32429i-eval.dts
new file mode 100644 (file)
index 0000000..6964fc9
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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 file; if not, write to the Free
+ *     Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ *     MA 02110-1301 USA
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "stm32f429.dtsi"
+
+/ {
+       model = "STMicroelectronics STM32429i-EVAL board";
+       compatible = "st,stm32429i-eval", "st,stm32f429";
+
+       chosen {
+               bootargs = "root=/dev/ram rdinit=/linuxrc";
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory {
+               reg = <0xc0000000 0x2000000>;
+       };
+
+       aliases {
+               serial0 = &usart1;
+       };
+};
+
+&clk_hse {
+       clock-frequency = <25000000>;
+};
+
+&usart1 {
+       status = "okay";
+};
index 6b9aa59d978aa1c18b93090090a09fd7dd37e39a..f0b731db6f530ab194deecda35fbb623cd95df10 100644 (file)
@@ -53,8 +53,8 @@
        compatible = "st,stm32f429i-disco", "st,stm32f429";
 
        chosen {
-               bootargs = "console=ttyS0,115200 root=/dev/ram rdinit=/linuxrc";
-               linux,stdout-path = &usart1;
+               bootargs = "root=/dev/ram rdinit=/linuxrc";
+               stdout-path = "serial0:115200n8";
        };
 
        memory {
        };
 };
 
+&clk_hse {
+       clock-frequency = <8000000>;
+};
+
 &usart1 {
        status = "okay";
 };
index aa73b4f4172c43091574ff12f6076abb8ef9c3b4..d78a4815da8f3ef9605d6aad4f463a0feb3d920d 100644 (file)
 
 / {
        clocks {
-               clk_sysclk: clk-sysclk {
+               clk_hse: clk-hse {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
-                       clock-frequency = <180000000>;
-               };
-
-               clk_hclk: clk-hclk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <180000000>;
-               };
-
-               clk_pclk1: clk-pclk1 {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <45000000>;
-               };
-
-               clk_pclk2: clk-pclk2 {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <90000000>;
-               };
-
-               clk_pmtr1: clk-pmtr1 {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <90000000>;
-               };
-
-               clk_pmtr2: clk-pmtr2 {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <180000000>;
-               };
-
-               clk_systick: clk-systick {
-                       compatible = "fixed-factor-clock";
-                       clocks = <&clk_hclk>;
-                       #clock-cells = <0>;
-                       clock-div = <8>;
-                       clock-mult = <1>;
+                       clock-frequency = <0>;
                };
        };
 
@@ -99,7 +61,7 @@
                        compatible = "st,stm32-timer";
                        reg = <0x40000000 0x400>;
                        interrupts = <28>;
-                       clocks = <&clk_pmtr1>;
+                       clocks = <&rcc 0 128>;
                        status = "disabled";
                };
 
                        compatible = "st,stm32-timer";
                        reg = <0x40000400 0x400>;
                        interrupts = <29>;
-                       clocks = <&clk_pmtr1>;
+                       clocks = <&rcc 0 129>;
                        status = "disabled";
                };
 
                        compatible = "st,stm32-timer";
                        reg = <0x40000800 0x400>;
                        interrupts = <30>;
-                       clocks = <&clk_pmtr1>;
+                       clocks = <&rcc 0 130>;
                        status = "disabled";
                };
 
                        compatible = "st,stm32-timer";
                        reg = <0x40000c00 0x400>;
                        interrupts = <50>;
-                       clocks = <&clk_pmtr1>;
+                       clocks = <&rcc 0 131>;
                };
 
                timer6: timer@40001000 {
                        compatible = "st,stm32-timer";
                        reg = <0x40001000 0x400>;
                        interrupts = <54>;
-                       clocks = <&clk_pmtr1>;
+                       clocks = <&rcc 0 132>;
                        status = "disabled";
                };
 
                        compatible = "st,stm32-timer";
                        reg = <0x40001400 0x400>;
                        interrupts = <55>;
-                       clocks = <&clk_pmtr1>;
+                       clocks = <&rcc 0 133>;
                        status = "disabled";
                };
 
                        compatible = "st,stm32-usart", "st,stm32-uart";
                        reg = <0x40004400 0x400>;
                        interrupts = <38>;
-                       clocks = <&clk_pclk1>;
+                       clocks =  <&rcc 0 145>;
                        status = "disabled";
                };
 
                        compatible = "st,stm32-usart", "st,stm32-uart";
                        reg = <0x40004800 0x400>;
                        interrupts = <39>;
-                       clocks = <&clk_pclk1>;
+                       clocks = <&rcc 0 146>;
                        status = "disabled";
                };
 
                        compatible = "st,stm32-uart";
                        reg = <0x40004c00 0x400>;
                        interrupts = <52>;
-                       clocks = <&clk_pclk1>;
+                       clocks = <&rcc 0 147>;
                        status = "disabled";
                };
 
                        compatible = "st,stm32-uart";
                        reg = <0x40005000 0x400>;
                        interrupts = <53>;
-                       clocks = <&clk_pclk1>;
+                       clocks = <&rcc 0 148>;
                        status = "disabled";
                };
 
                        compatible = "st,stm32-usart", "st,stm32-uart";
                        reg = <0x40007800 0x400>;
                        interrupts = <82>;
-                       clocks = <&clk_pclk1>;
+                       clocks = <&rcc 0 158>;
                        status = "disabled";
                };
 
                        compatible = "st,stm32-usart", "st,stm32-uart";
                        reg = <0x40007c00 0x400>;
                        interrupts = <83>;
-                       clocks = <&clk_pclk1>;
+                       clocks = <&rcc 0 159>;
                        status = "disabled";
                };
 
                        compatible = "st,stm32-usart", "st,stm32-uart";
                        reg = <0x40011000 0x400>;
                        interrupts = <37>;
-                       clocks = <&clk_pclk2>;
+                       clocks = <&rcc 0 164>;
                        status = "disabled";
                };
 
                        compatible = "st,stm32-usart", "st,stm32-uart";
                        reg = <0x40011400 0x400>;
                        interrupts = <71>;
-                       clocks = <&clk_pclk2>;
+                       clocks = <&rcc 0 165>;
                        status = "disabled";
                };
+
+               rcc: rcc@40023810 {
+                       #clock-cells = <2>;
+                       compatible = "st,stm32f42xx-rcc", "st,stm32-rcc";
+                       reg = <0x40023800 0x400>;
+                       clocks = <&clk_hse>;
+               };
        };
 };
 
 &systick {
-       clocks = <&clk_systick>;
+       clocks = <&rcc 1 0>;
        status = "okay";
 };
index 93d435670ef1eeedb2b7d62dea8d730f16790dda..f3cb297fd1db3d22c4510aa8d0da8ee3d88d18e2 100644 (file)
        status = "okay";
 };
 
+&otg_sram {
+       status = "okay";
+};
+
 &pio {
        usb2_vbus_pin_a: usb2_vbus_pin@0 {
                allwinner,pins = "PH12";
        };
 };
 
+&reg_usb0_vbus {
+       regulator-boot-on;
+       status = "okay";
+};
+
 &reg_usb1_vbus {
        status = "okay";
 };
        status = "okay";
 };
 
+&usb_otg {
+       dr_mode = "host";
+       status = "okay";
+};
+
 &usbphy {
+       usb0_vbus-supply = <&reg_usb0_vbus>;
        usb1_vbus-supply = <&reg_usb1_vbus>;
        usb2_vbus-supply = <&reg_usb2_vbus>;
        status = "okay";
index 5878a0b11f7be387d9d09daf10b2ee884788dcb2..1430568726501e6283cca376d8619a548952f27c 100644 (file)
        status = "okay";
 };
 
+&otg_sram {
+       status = "okay";
+};
+
+&pio {
+       usb0_id_detect_pin: usb0_id_detect_pin@0 {
+               allwinner,pins = "PH4";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+       };
+
+       usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
+               allwinner,pins = "PH5";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
+       };
+};
+
+&reg_usb0_vbus {
+       status = "okay";
+};
+
 &reg_usb2_vbus {
        status = "okay";
 };
        status = "okay";
 };
 
+&usb_otg {
+       dr_mode = "otg";
+       status = "okay";
+};
+
 &usbphy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
+       usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
+       usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
+       usb0_vbus-supply = <&reg_usb0_vbus>;
        usb2_vbus-supply = <&reg_usb2_vbus>;
        status = "okay";
 };
index 9afb4e0185935ee4ffdda47e3595cc352341364a..046a84d9719d6cffb34e76398b359567a6134668 100644 (file)
        status = "okay";
 };
 
+&otg_sram {
+       status = "okay";
+};
+
 &pio {
        led_pins_cubieboard: led_pins@0 {
                allwinner,pins = "PH20", "PH21";
                allwinner,drive = <SUN4I_PINCTRL_20_MA>;
                allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
        };
+
+       usb0_id_detect_pin: usb0_id_detect_pin@0 {
+               allwinner,pins = "PH4";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+       };
 };
 
 &reg_ahci_5v {
        status = "okay";
 };
 
+&usb_otg {
+       dr_mode = "otg";
+       status = "okay";
+};
+
 &usbphy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb0_id_detect_pin>;
+       usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
        usb1_vbus-supply = <&reg_usb1_vbus>;
        usb2_vbus-supply = <&reg_usb2_vbus>;
        status = "okay";
diff --git a/arch/arm/boot/dts/sun4i-a10-itead-iteaduino-plus.dts b/arch/arm/boot/dts/sun4i-a10-itead-iteaduino-plus.dts
new file mode 100644 (file)
index 0000000..985e155
--- /dev/null
@@ -0,0 +1,202 @@
+/*
+ * Copyright 2015 Josef Gajdusek <atx@atx.name>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "sun4i-a10.dtsi"
+#include "sunxi-common-regulators.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/sun4i-a10.h>
+
+/ {
+       model = "Iteaduino Plus A10";
+       compatible = "itead,iteaduino-plus-a10", "allwinner,sun4i-a10";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&ahci {
+       target-supply = <&reg_ahci_5v>;
+       status = "okay";
+};
+
+&cpu0 {
+       cpu-supply = <&reg_dcdc2>;
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&ehci1 {
+       status = "okay";
+};
+
+&emac {
+       pinctrl-names = "default";
+       pinctrl-0 = <&emac_pins_a>;
+       phy = <&phy1>;
+       status = "okay";
+};
+
+&emac_sram {
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins_a>;
+       status = "okay";
+
+       axp209: pmic@34 {
+               reg = <0x34>;
+               interrupts = <0>;
+       };
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins_a>;
+       status = "okay";
+};
+
+&i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2_pins_a>;
+       status = "okay";
+};
+
+&ir0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&ir0_rx_pins_a>;
+       status = "okay";
+};
+
+&mdio {
+       status = "okay";
+
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
+&mmc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_reference_design>;
+       vmmc-supply = <&reg_vcc3v3>;
+       bus-width = <4>;
+       cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
+       cd-inverted;
+       status = "okay";
+};
+
+&ohci0 {
+       status = "okay";
+};
+
+&ohci1 {
+       status = "okay";
+};
+
+&reg_ahci_5v {
+       status = "okay";
+};
+
+#include "axp209.dtsi"
+
+&reg_dcdc2 {
+       regulator-always-on;
+       regulator-min-microvolt = <1000000>;
+       regulator-max-microvolt = <1450000>;
+       regulator-name = "vdd-cpu";
+};
+
+&reg_dcdc3 {
+       regulator-always-on;
+       regulator-min-microvolt = <1000000>;
+       regulator-max-microvolt = <1400000>;
+       regulator-name = "vdd-int-dll";
+};
+
+&reg_ldo1 {
+       regulator-name = "vdd-rtc";
+};
+
+&reg_ldo2 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "avcc";
+};
+
+&reg_usb1_vbus {
+       status = "okay";
+};
+
+&reg_usb2_vbus {
+       status = "okay";
+};
+
+&spi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0_pins_a>,
+                   <&spi0_cs0_pins_a>;
+       status = "okay";
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins_a>;
+       status = "okay";
+};
+
+&usbphy {
+       usb1_vbus-supply = <&reg_usb1_vbus>;
+       usb2_vbus-supply = <&reg_usb2_vbus>;
+       status = "okay";
+};
index ebe2a04ef649a11d8b1c1d1263b3ca1300d0a2ef..a7dd86d30fa2711ba2533670cff0cc8559377505 100644 (file)
        status = "okay";
 };
 
+&otg_sram {
+       status = "okay";
+};
+
+&reg_usb0_vbus {
+       regulator-boot-on;
+       status = "okay";
+};
+
 &reg_usb1_vbus {
        status = "okay";
 };
        status = "okay";
 };
 
+&usb_otg {
+       dr_mode = "host";
+       status = "okay";
+};
+
 &usbphy {
+       usb0_vbus-supply = <&reg_usb0_vbus>;
        usb1_vbus-supply = <&reg_usb1_vbus>;
        usb2_vbus-supply = <&reg_usb2_vbus>;
        status = "okay";
index b64aa4eb071e34d49b384e1731657dce451aa972..28e32ad705cd25848e087f1ee4a9ad08c986740d 100644 (file)
        status = "okay";
 };
 
+&otg_sram {
+       status = "okay";
+};
+
 &pio {
        ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 {
                allwinner,pins = "PC3";
                allwinner,drive = <SUN4I_PINCTRL_20_MA>;
                allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
        };
+
+       usb0_id_detect_pin: usb0_id_detect_pin@0 {
+               allwinner,pins = "PH4";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+       };
+
+       usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
+               allwinner,pins = "PH5";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
+       };
 };
 
 &reg_ahci_5v {
        status = "okay";
 };
 
+&reg_usb0_vbus {
+       status = "okay";
+};
+
 &reg_usb1_vbus {
        status = "okay";
 };
        status = "okay";
 };
 
+&usb_otg {
+       dr_mode = "otg";
+       status = "okay";
+};
+
 &usbphy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
+       usb0_id_det-gpio   = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
+       usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
+       usb0_vbus-supply   = <&reg_usb0_vbus>;
        usb1_vbus-supply = <&reg_usb1_vbus>;
        usb2_vbus-supply = <&reg_usb2_vbus>;
        status = "okay";
index 61c03d1fe5303301a7ee44f1069c3865da958313..463bacd6a74d7024892587abadf9a2a701f4da16 100644 (file)
                        #size-cells = <0>;
                };
 
+               usb_otg: usb@01c13000 {
+                       compatible = "allwinner,sun4i-a10-musb";
+                       reg = <0x01c13000 0x0400>;
+                       clocks = <&ahb_gates 0>;
+                       interrupts = <38>;
+                       interrupt-names = "mc";
+                       phys = <&usbphy 0>;
+                       phy-names = "usb";
+                       extcon = <&usbphy 0>;
+                       allwinner,sram = <&otg_sram 1>;
+                       status = "disabled";
+               };
+
                usbphy: phy@01c13400 {
                        #phy-cells = <1>;
                        compatible = "allwinner,sun4i-a10-usb-phy";
                        clocks = <&apb0_gates 5>;
                        gpio-controller;
                        interrupt-controller;
-                       #interrupt-cells = <2>;
-                       #size-cells = <0>;
+                       #interrupt-cells = <3>;
                        #gpio-cells = <3>;
 
                        pwm0_pins_a: pwm0@0 {
index a7e19e4847f75d60050b71f219e17d80f29e5c19..5a422c1ff725d875ceca0f2b61eeea696b117323 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&i2c0_pins_a>;
        status = "okay";
+
+       axp152: pmic@30 {
+               reg = <0x30>;
+               interrupts = <0>;
+       };
 };
 
+#include "axp152.dtsi"
+
 &i2c1 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c1_pins_a>;
        status = "okay";
 };
 
+&otg_sram {
+       status = "okay";
+};
+
 &pio {
        mmc0_cd_pin_olinuxino_micro: mmc0_cd_pin@0 {
                allwinner,pins = "PG1";
                allwinner,drive = <SUN4I_PINCTRL_10_MA>;
                allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
        };
+
+       usb0_id_detect_pin: usb0_id_detect_pin@0 {
+               allwinner,pins = "PG12";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+       };
+};
+
+&reg_usb0_vbus {
+       gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
+       status = "okay";
 };
 
 &reg_usb1_vbus {
        status = "okay";
 };
 
+&usb_otg {
+       dr_mode = "otg";
+       status = "okay";
+};
+
+&usb0_vbus_pin_a {
+       allwinner,pins = "PG11";
+};
+
 &usbphy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb0_id_detect_pin>;
+       usb0_id_det-gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
+       usb0_vbus-supply = <&reg_usb0_vbus>;
        usb1_vbus-supply = <&reg_usb1_vbus>;
        status = "okay";
 };
-
index 990f9d61ae4d01756a812fe2a7b4fc7c5b9cae2f..3724b988064eba83f152669407bd127801a23160 100644 (file)
@@ -45,6 +45,7 @@
 #include "sunxi-common-regulators.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
 #include <dt-bindings/pinctrl/sun4i-a10.h>
 
 / {
        status = "okay";
 };
 
+&lradc {
+       vref-supply = <&reg_ldo2>;
+       status = "okay";
+
+       button@200 {
+               label = "Volume Up";
+               linux,code = <KEY_VOLUMEUP>;
+               channel = <0>;
+               voltage = <200000>;
+       };
+
+       button@400 {
+               label = "Volume Down";
+               linux,code = <KEY_VOLUMEDOWN>;
+               channel = <0>;
+               voltage = <400000>;
+       };
+};
+
 &mmc0 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_h702>;
        status = "okay";
 };
 
+&otg_sram {
+       status = "okay";
+};
+
 &pio {
        mmc0_cd_pin_h702: mmc0_cd_pin@0 {
                allwinner,pins = "PG0";
                allwinner,drive = <SUN4I_PINCTRL_10_MA>;
                allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
        };
+
+       usb0_id_detect_pin: usb0_id_detect_pin@0 {
+               allwinner,pins = "PG2";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+       };
+
+       usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
+               allwinner,pins = "PG1";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
 };
 
 #include "axp209.dtsi"
        regulator-name = "vcc-wifi";
 };
 
+&reg_usb0_vbus {
+       pinctrl-0 = <&usb0_vbus_pin_a>;
+       gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
+       status = "okay";
+};
+
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart1_pins_b>;
        status = "okay";
 };
 
+&usb_otg {
+       dr_mode = "otg";
+       status = "okay";
+};
+
+&usb0_vbus_pin_a {
+       allwinner,pins = "PG12";
+};
+
 &usbphy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
+       usb0_id_det-gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
+       usb0_vbus_det-gpios = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
+       usb0_vbus-supply = <&reg_usb0_vbus>;
        usb1_vbus-supply = <&reg_ldo3>;
        status = "okay";
 };
index 42324005eb7c0ead40426a9eefcd9b4449423c1b..b3c234c65ea19bb1f69984f350db0dad7ceea440 100644 (file)
        status = "okay";
 };
 
+&otg_sram {
+       status = "okay";
+};
+
 &pio {
        mmc0_cd_pin_olinuxino: mmc0_cd_pin@0 {
                allwinner,pins = "PG0";
                allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
        };
 
+       usb0_id_detect_pin: usb0_id_detect_pin@0 {
+               allwinner,pins = "PG2";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+       };
+
+       usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
+               allwinner,pins = "PG1";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
+       };
+
        usb1_vbus_pin_olinuxino: usb1_vbus_pin@0 {
                allwinner,pins = "PG11";
                allwinner,function = "gpio_out";
        };
 };
 
+&reg_usb0_vbus {
+       status = "okay";
+       gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
+};
+
 &reg_usb1_vbus {
        pinctrl-0 = <&usb1_vbus_pin_olinuxino>;
        gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>;
        status = "okay";
 };
 
+&usb_otg {
+       dr_mode = "otg";
+       status = "okay";
+};
+
+&usb0_vbus_pin_a {
+       allwinner,pins = "PG12";
+};
+
 &usbphy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
+       usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
+       usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
+       usb0_vbus-supply = <&reg_usb0_vbus>;
        usb1_vbus-supply = <&reg_usb1_vbus>;
        status = "okay";
 };
index 514f159a14d42d369c1de6159185d593b6e78be0..eb793d5a2bd6748cec5696c2bdbfbbb4999b530f 100644 (file)
@@ -93,7 +93,7 @@
                compatible = "chipone,icn8318";
                reg = <0x40>;
                interrupt-parent = <&pio>;
-               interrupts = <9 IRQ_TYPE_EDGE_FALLING>; /* EINT9 (PG9) */
+               interrupts = <9 IRQ_TYPE_EDGE_FALLING>; /* EINT9 (PG9) */
                pinctrl-names = "default";
                pinctrl-0 = <&ts_wake_pin_p66>;
                wake-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
        };
 };
 
+&otg_sram {
+       status = "okay";
+};
+
 &pio {
        mmc0_cd_pin_p66: mmc0_cd_pin@0 {
                allwinner,pins = "PG0";
                allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
        };
 
+       usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
+               allwinner,pins = "PG1";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
+       };
+
+       usb0_id_detect_pin: usb0_id_detect_pin@0 {
+               allwinner,pins = "PG2";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+       };
+
        i2c_lcd_pins: i2c_lcd_pin@0 {
                allwinner,pins = "PG10", "PG12";
                allwinner,function = "gpio_out";
        status = "okay";
 };
 
+&usb_otg {
+       dr_mode = "otg";
+       status = "okay";
+};
+
 &usbphy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
+       usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
+       usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
        usb0_vbus-supply = <&reg_usb0_vbus>;
        usb1_vbus-supply = <&reg_ldo3>;
        status = "okay";
index 54b0978304344104d94d7d4e79a3117986563204..759117d14ce5fa8f46276ab45f07f9d25329f95f 100644 (file)
                        #size-cells = <0>;
                };
 
+               usb_otg: usb@01c13000 {
+                       compatible = "allwinner,sun4i-a10-musb";
+                       reg = <0x01c13000 0x0400>;
+                       clocks = <&ahb_gates 0>;
+                       interrupts = <38>;
+                       interrupt-names = "mc";
+                       phys = <&usbphy 0>;
+                       phy-names = "usb";
+                       extcon = <&usbphy 0>;
+                       allwinner,sram = <&otg_sram 1>;
+                       status = "disabled";
+               };
+
                usbphy: phy@01c13400 {
                        #phy-cells = <1>;
                        compatible = "allwinner,sun5i-a13-usb-phy";
                        clocks = <&apb0_gates 5>;
                        gpio-controller;
                        interrupt-controller;
-                       #interrupt-cells = <2>;
-                       #size-cells = <0>;
+                       #interrupt-cells = <3>;
                        #gpio-cells = <3>;
 
                        i2c0_pins_a: i2c0@0 {
index 4404f37d132ec9d5906834533c319cfeb7c1670f..4dd70cce212743fcd38eb32a942b0cdc8cca888c 100644 (file)
        status = "okay";
 };
 
+&usb_otg {
+       dr_mode = "host";
+       status = "okay";
+};
+
 &usbphy {
        usb1_vbus-supply = <&reg_usb1_vbus>;
        status = "okay";
index 008047a018cf2b645cc85136c194be665376c5ef..39953e76bbfcfc1aa67c1d58d8bae9061b1ede10 100644 (file)
                        #size-cells = <0>;
                };
 
+               usb_otg: usb@01c19000 {
+                       compatible = "allwinner,sun6i-a31-musb";
+                       reg = <0x01c19000 0x0400>;
+                       clocks = <&ahb1_gates 24>;
+                       resets = <&ahb1_rst 24>;
+                       interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "mc";
+                       phys = <&usbphy 0>;
+                       phy-names = "usb";
+                       extcon = <&usbphy 0>;
+                       status = "disabled";
+               };
+
                usbphy: phy@01c19400 {
                        compatible = "allwinner,sun6i-a31-usb-phy";
                        reg = <0x01c19400 0x10>,
                        clocks = <&apb1_gates 5>;
                        gpio-controller;
                        interrupt-controller;
-                       #interrupt-cells = <2>;
-                       #size-cells = <0>;
+                       #interrupt-cells = <3>;
                        #gpio-cells = <3>;
 
                        uart0_pins_a: uart0@0 {
index 1e2411a2bceac845237b62cf9f404d2817be4e77..5e8f8c4f2b302a67ab02f396977a92e174d76ce3 100644 (file)
        status = "okay";
 };
 
+&usb_otg {
+       dr_mode = "host";
+       status = "okay";
+};
+
 &usbphy {
        status = "okay";
 };
index 4611e2f5a99e85577f4ba7ad7363e7878049305b..e6b019232a9e880ea48a9b7f9dd975f6846be84e 100644 (file)
                };
        };
 
-       reg_vmmc3: vmmc3 {
-               compatible = "regulator-fixed";
+       mmc3_pwrseq: mmc3_pwrseq {
+               compatible = "mmc-pwrseq-simple";
                pinctrl-names = "default";
-               pinctrl-0 = <&vmmc3_pin_cubietruck>;
-               regulator-name = "vmmc3";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               enable-active-high;
-               gpio = <&pio 7 9 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&mmc3_pwrseq_pin_cubietruck>;
+               reset-gpios = <&pio 7 9 GPIO_ACTIVE_LOW>; /* PH9 WIFI_EN */
        };
 };
 
 &mmc3 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc3_pins_a>;
-       vmmc-supply = <&reg_vmmc3>;
+       vmmc-supply = <&reg_vcc3v3>;
+       mmc-pwrseq = <&mmc3_pwrseq>;
        bus-width = <4>;
        non-removable;
        status = "okay";
                reg = <1>;
                compatible = "brcm,bcm4329-fmac";
                interrupt-parent = <&pio>;
-               interrupts = <10 IRQ_TYPE_LEVEL_LOW>; /* PH10 / EINT10 */
+               interrupts = <10 IRQ_TYPE_LEVEL_LOW>; /* PH10 / EINT10 */
                interrupt-names = "host-wake";
        };
 };
        status = "okay";
 };
 
+&otg_sram {
+       status = "okay";
+};
+
 &pio {
-       vmmc3_pin_cubietruck: vmmc3_pin@0 {
-               allwinner,pins = "PH9";
+       ahci_pwr_pin_cubietruck: ahci_pwr_pin@1 {
+               allwinner,pins = "PH12";
                allwinner,function = "gpio_out";
                allwinner,drive = <SUN4I_PINCTRL_10_MA>;
                allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
        };
 
-       ahci_pwr_pin_cubietruck: ahci_pwr_pin@1 {
-               allwinner,pins = "PH12";
+       led_pins_cubietruck: led_pins@0 {
+               allwinner,pins = "PH7", "PH11", "PH20", "PH21";
                allwinner,function = "gpio_out";
                allwinner,drive = <SUN4I_PINCTRL_10_MA>;
                allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
        };
 
-       led_pins_cubietruck: led_pins@0 {
-               allwinner,pins = "PH7", "PH11", "PH20", "PH21";
+       mmc3_pwrseq_pin_cubietruck: mmc3_pwrseq_pin@0 {
+               allwinner,pins = "PH9";
                allwinner,function = "gpio_out";
                allwinner,drive = <SUN4I_PINCTRL_10_MA>;
                allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
                allwinner,drive = <SUN4I_PINCTRL_10_MA>;
                allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
        };
+
+       usb0_id_detect_pin: usb0_id_detect_pin@0 {
+               allwinner,pins = "PH19";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
+
+       usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
+               allwinner,pins = "PH22";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
 };
 
 &pwm {
        status = "okay";
 };
 
+&usb_otg {
+       dr_mode = "otg";
+       status = "okay";
+};
+
 &usbphy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
+       usb0_id_det-gpios = <&pio 7 19 GPIO_ACTIVE_HIGH>; /* PH19 */
+       usb0_vbus_det-gpios = <&pio 7 22 GPIO_ACTIVE_HIGH>; /* PH22 */
        usb0_vbus-supply = <&reg_usb0_vbus>;
        usb1_vbus-supply = <&reg_usb1_vbus>;
        usb2_vbus-supply = <&reg_usb2_vbus>;
index f32f6f20d92339cb1f1f20bdeb158d98a05da418..1e6bd360dac0eaae2c7a651e35000ba6924e72fa 100644 (file)
                reg = <1>;
                compatible = "brcm,bcm4329-fmac";
                interrupt-parent = <&pio>;
-               interrupts = <10 IRQ_TYPE_LEVEL_LOW>; /* PH10 / EINT10 */
+               interrupts = <10 IRQ_TYPE_LEVEL_LOW>; /* PH10 / EINT10 */
                interrupt-names = "host-wake";
        };
 };
index 769726dfb04622247aa3dd4a23531d2a1a42e445..04237085dc394423add52ff8d23486a183c5d55d 100644 (file)
        status = "okay";
 };
 
+&otg_sram {
+       status = "okay";
+};
+
 &pio {
        ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 {
                allwinner,pins = "PC3";
                allwinner,drive = <SUN4I_PINCTRL_20_MA>;
                allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
        };
+
+       usb0_id_detect_pin: usb0_id_detect_pin@0 {
+               allwinner,pins = "PH4";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+       };
+
+       usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
+               allwinner,pins = "PH5";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
+       };
 };
 
 &reg_ahci_5v {
        status = "okay";
 };
 
+&reg_usb0_vbus {
+       status = "okay";
+};
+
 &reg_usb1_vbus {
        status = "okay";
 };
        status = "okay";
 };
 
+&usb_otg {
+       dr_mode = "otg";
+       status = "okay";
+};
+
 &usbphy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
+       usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
+       usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
+       usb0_vbus-supply = <&reg_usb0_vbus>;
        usb1_vbus-supply = <&reg_usb1_vbus>;
        usb2_vbus-supply = <&reg_usb2_vbus>;
        status = "okay";
index 00f8f25eccae57f7a5d64f138d71a9dc8dc8af65..c5d70caade8238179f136f5326adb25fa8454c41 100644 (file)
        status = "okay";
 };
 
+&otg_sram {
+       status = "okay";
+};
+
 &pio {
        mmc3_cd_pin_olinuxinom: mmc3_cd_pin@0 {
                allwinner,pins = "PH11";
                allwinner,drive = <SUN4I_PINCTRL_20_MA>;
                allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
        };
+
+       usb0_id_detect_pin: usb0_id_detect_pin@0 {
+               allwinner,pins = "PH4";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+       };
+
+       usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
+               allwinner,pins = "PH5";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
+       };
 };
 
 &reg_ahci_5v {
        status = "okay";
 };
 
+&reg_usb0_vbus {
+       status = "okay";
+};
+
 &reg_usb1_vbus {
        status = "okay";
 };
        status = "okay";
 };
 
+&usb_otg {
+       dr_mode = "otg";
+       status = "okay";
+};
+
 &usbphy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
+       usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
+       usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
+       usb0_vbus-supply = <&reg_usb0_vbus>;
        usb1_vbus-supply = <&reg_usb1_vbus>;
        usb2_vbus-supply = <&reg_usb2_vbus>;
        status = "okay";
index 6a63f30c9a699d0e4620aac31f64247ad9c1f95b..71ab6b85f240a2478a698df9a5590096b4c5bbc5 100644 (file)
                        #size-cells = <0>;
                };
 
+               usb_otg: usb@01c13000 {
+                       compatible = "allwinner,sun4i-a10-musb";
+                       reg = <0x01c13000 0x0400>;
+                       clocks = <&ahb_gates 0>;
+                       interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "mc";
+                       phys = <&usbphy 0>;
+                       phy-names = "usb";
+                       extcon = <&usbphy 0>;
+                       allwinner,sram = <&otg_sram 1>;
+                       status = "disabled";
+               };
+
                usbphy: phy@01c13400 {
                        #phy-cells = <1>;
                        compatible = "allwinner,sun7i-a20-usb-phy";
                        clocks = <&apb0_gates 5>;
                        gpio-controller;
                        interrupt-controller;
-                       #interrupt-cells = <2>;
-                       #size-cells = <0>;
+                       #interrupt-cells = <3>;
                        #gpio-cells = <3>;
 
                        pwm0_pins_a: pwm0@0 {
index 7abd0ae3143d74e1f9ba9b2638fc55353a306d7c..9c4a55c5510e51b1bf8a7fc9ef7a1ff0787cf7d8 100644 (file)
                        #size-cells = <0>;
                };
 
+               ehci0: usb@01c1a000 {
+                       compatible = "allwinner,sun8i-a23-ehci", "generic-ehci";
+                       reg = <0x01c1a000 0x100>;
+                       interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&ahb1_gates 26>;
+                       resets = <&ahb1_rst 26>;
+                       phys = <&usbphy 1>;
+                       phy-names = "usb";
+                       status = "disabled";
+               };
+
+               ohci0: usb@01c1a400 {
+                       compatible = "allwinner,sun8i-a23-ohci", "generic-ohci";
+                       reg = <0x01c1a400 0x100>;
+                       interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&ahb1_gates 29>, <&usb_clk 16>;
+                       resets = <&ahb1_rst 29>;
+                       phys = <&usbphy 1>;
+                       phy-names = "usb";
+                       status = "disabled";
+               };
+
                pio: pinctrl@01c20800 {
                        /* compatible gets set in SoC specific dtsi file */
                        reg = <0x01c20800 0x400>;
                        clocks = <&apb1_gates 5>;
                        gpio-controller;
                        interrupt-controller;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+                       #interrupt-cells = <3>;
                        #gpio-cells = <3>;
 
                        uart0_pins_a: uart0@0 {
index 95134c69cfc1b9050eadc07a32cc7cad96ddbea3..8d9da6886a4c975113ffd916de447a552295401e 100644 (file)
        pinctrl-0 = <&r_uart_pins_a>;
        status = "okay";
 };
+
+&usb_otg {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usbphy {
+       status = "okay";
+};
index 8698f7aa31c71b20f9c67f2334c8c970fa48c989..2cc27c7a59dc389b7cf835fcaa9d7c23fd073291 100644 (file)
                        clock-output-names = "mbus";
                };
        };
+
+       soc@01c00000 {
+               usb_otg: usb@01c19000 {
+                       compatible = "allwinner,sun6i-a31-musb";
+                       reg = <0x01c19000 0x0400>;
+                       clocks = <&ahb1_gates 24>;
+                       resets = <&ahb1_rst 24>;
+                       interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "mc";
+                       phys = <&usbphy 0>;
+                       phy-names = "usb";
+                       extcon = <&usbphy 0>;
+                       status = "disabled";
+               };
+
+               usbphy: phy@01c19400 {
+                       compatible = "allwinner,sun8i-a23-usb-phy";
+                       reg = <0x01c19400 0x10>,
+                             <0x01c1a800 0x4>;
+                       reg-names = "phy_ctrl",
+                                   "pmu1";
+                       clocks = <&usb_clk 8>,
+                                <&usb_clk 9>;
+                       clock-names = "usb0_phy",
+                                     "usb1_phy";
+                       resets = <&usb_clk 0>,
+                                <&usb_clk 1>;
+                       reset-names = "usb0_reset",
+                                     "usb1_reset";
+                       status = "disabled";
+                       #phy-cells = <1>;
+               };
+       };
 };
 
 &pio {
index 866703355b9c901cb2a2b3aaffe8dd764840d87a..1aefc6793e25e330dea05befe8306fc22651ad26 100644 (file)
        };
 };
 
+&ehci0 {
+       status = "okay";
+};
+
 &i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c0_pins_a>;
        status = "okay";
 };
 
+&ohci0 {
+       status = "okay";
+};
+
 &pio {
        mmc0_cd_pin_q8h: mmc0_cd_pin@0 {
                allwinner,pins = "PB4";
        pinctrl-0 = <&r_uart_pins_a>;
        status = "okay";
 };
+
+&usb_otg {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usbphy {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/sun8i-a33-ippo-q8h-v1.2.dts b/arch/arm/boot/dts/sun8i-a33-ippo-q8h-v1.2.dts
new file mode 100644 (file)
index 0000000..a438975
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+ * Copyright 2015 Hans de Goede <hdegoede@redhat.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "sun8i-a33.dtsi"
+#include "sunxi-common-regulators.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/pinctrl/sun4i-a10.h>
+
+/ {
+       model = "Ippo Q8H Quad Core Tablet (v1.2)";
+       compatible = "ippo,a33-q8h-v1.2", "allwinner,sun8i-a33";
+
+       aliases {
+               serial0 = &r_uart;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins_a>;
+       status = "okay";
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins_a>;
+       status = "okay";
+};
+
+&lradc {
+       vref-supply = <&reg_vcc3v0>;
+       status = "okay";
+
+       button@200 {
+               label = "Volume Up";
+               linux,code = <KEY_VOLUMEUP>;
+               channel = <0>;
+               voltage = <200000>;
+       };
+
+       button@400 {
+               label = "Volume Down";
+               linux,code = <KEY_VOLUMEDOWN>;
+               channel = <0>;
+               voltage = <400000>;
+       };
+};
+
+&mmc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_q8h>;
+       vmmc-supply = <&reg_vcc3v0>;
+       bus-width = <4>;
+       cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
+       cd-inverted;
+       status = "okay";
+};
+
+&pio {
+       mmc0_cd_pin_q8h: mmc0_cd_pin@0 {
+               allwinner,pins = "PB4";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+       };
+};
+
+&r_uart {
+       pinctrl-names = "default";
+       pinctrl-0 = <&r_uart_pins_a>;
+       status = "okay";
+};
+
+/*
+ * FIXME for now we only support host mode and rely on u-boot to have
+ * turned on Vbus which is controlled by the axp223 pmic on the board.
+ *
+ * Once we have axp223 support we should switch to fully supporting otg.
+ */
+&usb_otg {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usbphy {
+       status = "okay";
+};
index 5788c29cb56a78c87bea6e750468ed0dc7680612..1d5390d4e03aadd44965918d43c0672c070de9f9 100644 (file)
        };
 };
 
+&ehci0 {
+       status = "okay";
+};
+
 &lradc {
        vref-supply = <&reg_vcc3v0>;
        status = "okay";
        allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
 };
 
+&ohci0 {
+       status = "okay";
+};
+
 &pio {
        mmc0_cd_pin_sina33: mmc0_cd_pin@0 {
                allwinner,pins = "PB4";
        pinctrl-0 = <&uart0_pins_b>;
        status = "okay";
 };
+
+&usbphy {
+       status = "okay";
+       usb1_vbus-supply = <&reg_vcc5v0>; /* USB1 VBUS is always on */
+};
index 85ee08098b7b1dcbd684d3311caa56c74e16103c..faa7d3c1fceacdc9eb80d396e23807bccb4d7aa1 100644 (file)
                        clock-output-names = "mbus";
                };
        };
+
+       soc@01c00000 {
+               usb_otg: usb@01c19000 {
+                       compatible = "allwinner,sun8i-a33-musb";
+                       reg = <0x01c19000 0x0400>;
+                       clocks = <&ahb1_gates 24>;
+                       resets = <&ahb1_rst 24>;
+                       interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "mc";
+                       phys = <&usbphy 0>;
+                       phy-names = "usb";
+                       extcon = <&usbphy 0>;
+                       status = "disabled";
+               };
+
+               usbphy: phy@01c19400 {
+                       compatible = "allwinner,sun8i-a33-usb-phy";
+                       reg = <0x01c19400 0x14>,
+                             <0x01c1a800 0x4>;
+                       reg-names = "phy_ctrl",
+                                   "pmu1";
+                       clocks = <&usb_clk 8>,
+                                <&usb_clk 9>;
+                       clock-names = "usb0_phy",
+                                     "usb1_phy";
+                       resets = <&usb_clk 0>,
+                                <&usb_clk 1>;
+                       reset-names = "usb0_reset",
+                                     "usb1_reset";
+                       status = "disabled";
+                       #phy-cells = <1>;
+               };
+       };
 };
 
 &pio {
index 51cc8383f70f5d82fee3ca750d6c15b18b1bacbc..f1953b0c505939e78fe6d43837d8e4c12c48eb1b 100644 (file)
                regulator-name = "usb1-vbus";
                regulator-min-microvolt = <5000000>;
                regulator-max-microvolt = <5000000>;
+               regulator-boot-on;
                enable-active-high;
                gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>;
                status = "disabled";
                regulator-name = "usb2-vbus";
                regulator-min-microvolt = <5000000>;
                regulator-max-microvolt = <5000000>;
+               regulator-boot-on;
                enable-active-high;
                gpio = <&pio 7 3 GPIO_ACTIVE_HIGH>;
                status = "disabled";
index 200b0c99ed34a8b0b9ebdd5628ca6a608d96b2f9..bfd3bb8c82857c7d00738ff4c81b57a5176cef4b 100644 (file)
@@ -44,6 +44,7 @@
 
 /dts-v1/;
 /include/ "uniphier-ph1-ld4.dtsi"
+/include/ "uniphier-ref-daughter.dtsi"
 /include/ "uniphier-support-card.dtsi"
 
 / {
 
        chosen {
                bootargs = "console=ttyS0,115200";
-               stdout-path = &serialsc;
+               stdout-path = &serial0;
        };
 
        aliases {
-               serial0 = &serialsc;
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               serial3 = &serial3;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
        };
 };
 
        ranges = <0x00000000 1 0x03f00000 0x00100000>;
 };
 
-&serialsc {
+&ethsc {
        interrupts = <0 49 4>;
 };
+
+&serial0 {
+       status = "okay";
+};
+
+&serial2 {
+       status = "okay";
+};
+
+&serial3 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&usb0 {
+       status = "okay";
+};
+
+&usb1 {
+       status = "okay";
+};
index 6a34c56e46935f2deaf34acd91a9bdb75488cfe0..a6a185fae8f1dcb0d39ffa61027c1bbcb5756aed 100644 (file)
                        compatible = "fixed-clock";
                        clock-frequency = <50000000>;
                };
+
+               uart_clk: uart_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <36864000>;
+               };
+
+               iobus_clk: iobus_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <100000000>;
+               };
        };
 
        soc {
                        #size-cells = <1>;
                };
 
+               serial0: serial@54006800 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006800 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart0>;
+                       interrupts = <0 33 4>;
+                       clocks = <&uart_clk>;
+                       fifo-size = <64>;
+               };
+
+               serial1: serial@54006900 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006900 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart1>;
+                       interrupts = <0 35 4>;
+                       clocks = <&uart_clk>;
+                       fifo-size = <64>;
+               };
+
+               serial2: serial@54006a00 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006a00 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart2>;
+                       interrupts = <0 37 4>;
+                       clocks = <&uart_clk>;
+                       fifo-size = <64>;
+               };
+
+               serial3: serial@54006b00 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006b00 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart3>;
+                       interrupts = <0 29 4>;
+                       clocks = <&uart_clk>;
+                       fifo-size = <64>;
+               };
+
+               i2c0: i2c@58400000 {
+                       compatible = "socionext,uniphier-i2c";
+                       status = "disabled";
+                       reg = <0x58400000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c0>;
+                       interrupts = <0 41 1>;
+                       clocks = <&iobus_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c1: i2c@58480000 {
+                       compatible = "socionext,uniphier-i2c";
+                       status = "disabled";
+                       reg = <0x58480000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c1>;
+                       interrupts = <0 42 1>;
+                       clocks = <&iobus_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               /* chip-internal connection for DMD */
+               i2c2: i2c@58500000 {
+                       compatible = "socionext,uniphier-i2c";
+                       reg = <0x58500000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c2>;
+                       interrupts = <0 43 1>;
+                       clocks = <&iobus_clk>;
+                       clock-frequency = <400000>;
+               };
+
+               i2c3: i2c@58580000 {
+                       compatible = "socionext,uniphier-i2c";
+                       status = "disabled";
+                       reg = <0x58580000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c3>;
+                       interrupts = <0 44 1>;
+                       clocks = <&iobus_clk>;
+                       clock-frequency = <100000>;
+               };
+
                system-bus-controller-misc@59800000 {
                        compatible = "socionext,uniphier-system-bus-controller-misc",
                                     "syscon";
                        reg = <0x59800000 0x2000>;
                };
 
+               usb0: usb@5a800100 {
+                       compatible = "socionext,uniphier-ehci", "generic-ehci";
+                       status = "disabled";
+                       reg = <0x5a800100 0x100>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usb0>;
+                       interrupts = <0 80 4>;
+               };
+
+               usb1: usb@5a810100 {
+                       compatible = "socionext,uniphier-ehci", "generic-ehci";
+                       status = "disabled";
+                       reg = <0x5a810100 0x100>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usb1>;
+                       interrupts = <0 81 4>;
+               };
+
+               usb2: usb@5a820100 {
+                       compatible = "socionext,uniphier-ehci", "generic-ehci";
+                       status = "disabled";
+                       reg = <0x5a820100 0x100>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usb2>;
+                       interrupts = <0 82 4>;
+               };
+
+               pinctrl: pinctrl@5f801000 {
+                       compatible = "socionext,ph1-ld4-pinctrl",
+                                    "syscon";
+                       reg = <0x5f801000 0xe00>;
+               };
+
                timer@60000200 {
                        compatible = "arm,cortex-a9-global-timer";
                        reg = <0x60000200 0x20>;
                };
        };
 };
+
+/include/ "uniphier-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/uniphier-ph1-ld6b-ref.dts b/arch/arm/boot/dts/uniphier-ph1-ld6b-ref.dts
new file mode 100644 (file)
index 0000000..33963ac
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+ * Device Tree Source for UniPhier PH1-LD6b Reference Board
+ *
+ * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+/include/ "uniphier-ph1-ld6b.dtsi"
+/include/ "uniphier-ref-daughter.dtsi"
+/include/ "uniphier-support-card.dtsi"
+
+/ {
+       model = "UniPhier PH1-LD6b Reference Board";
+       compatible = "socionext,ph1-ld6b-ref", "socionext,ph1-ld6b";
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x80000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200";
+               stdout-path = &serial0;
+       };
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c4 = &i2c4;
+               i2c5 = &i2c5;
+               i2c6 = &i2c6;
+       };
+};
+
+&extbus {
+       ranges = <0 0x00000000 0x0f000000 0x01000000
+                 1 0x00000000 0x00000000 0x08000000>;
+};
+
+&support_card {
+       ranges = <0x00000000 1 0x03f00000 0x00100000>;
+};
+
+&ethsc {
+       interrupts = <0 50 4>;
+};
+
+&serial0 {
+       status = "okay";
+};
+
+&serial1 {
+       status = "okay";
+};
+
+&serial2 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi b/arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi
new file mode 100644 (file)
index 0000000..c6499ee
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Device Tree Source for UniPhier PH1-LD6b SoC
+ *
+ * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * PH1-LD6b consists of two silicon dies: D-chip and A-chip.
+ * The D-chip (digital chip) is the same as the ProXstream2 die.
+ * Reuse the ProXstream2 device tree with some properties overridden.
+ */
+/include/ "uniphier-proxstream2.dtsi"
+
+/ {
+       compatible = "socionext,ph1-ld6b";
+};
+
+/* UART3 unavilable: the pads are not wired to the package balls */
+&serial3 {
+       status = "disabled";
+};
+
+/*
+ * PH1-LD6b and ProXstream2 have completely different packages,
+ * which makes the pinctrl driver unshareable.
+ */
+&pinctrl {
+       compatible = "socionext,ph1-ld6b-pinctrl", "syscon";
+};
index d891135a70c2642d8ed4f050850e3cb416157ff2..69a5b7d396293e28f4f0728300c7ae3333ec1714 100644 (file)
@@ -44,6 +44,7 @@
 
 /dts-v1/;
 /include/ "uniphier-ph1-pro4.dtsi"
+/include/ "uniphier-ref-daughter.dtsi"
 /include/ "uniphier-support-card.dtsi"
 
 / {
 
        chosen {
                bootargs = "console=ttyS0,115200";
-               stdout-path = &serialsc;
+               stdout-path = &serial0;
        };
 
        aliases {
-               serial0 = &serialsc;
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               serial3 = &serial3;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c5 = &i2c5;
+               i2c6 = &i2c6;
        };
 };
 
        ranges = <0x00000000 1 0x03f00000 0x00100000>;
 };
 
-&serialsc {
+&ethsc {
        interrupts = <0 50 4>;
 };
+
+&serial0 {
+       status = "okay";
+};
+
+&serial1 {
+       status = "okay";
+};
+
+&serial2 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&usb2 {
+       status = "okay";
+};
+
+&usb3 {
+       status = "okay";
+};
index dc633603aed26b05ebcf9c6ba2e47d4d25f581f9..e8bbc454d7887d9f8887065cc4a378fc7bc89a94 100644 (file)
                        compatible = "fixed-clock";
                        clock-frequency = <50000000>;
                };
+
+               uart_clk: uart_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <73728000>;
+               };
+
+               i2c_clk: i2c_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <50000000>;
+               };
        };
 
        soc {
                        #size-cells = <1>;
                };
 
+               serial0: serial@54006800 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006800 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart0>;
+                       interrupts = <0 33 4>;
+                       clocks = <&uart_clk>;
+                       fifo-size = <64>;
+               };
+
+               serial1: serial@54006900 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006900 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart1>;
+                       interrupts = <0 35 4>;
+                       clocks = <&uart_clk>;
+                       fifo-size = <64>;
+               };
+
+               serial2: serial@54006a00 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006a00 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart2>;
+                       interrupts = <0 37 4>;
+                       clocks = <&uart_clk>;
+                       fifo-size = <64>;
+               };
+
+               serial3: serial@54006b00 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006b00 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart3>;
+                       interrupts = <0 29 4>;
+                       clocks = <&uart_clk>;
+                       fifo-size = <64>;
+               };
+
+               i2c0: i2c@58780000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       status = "disabled";
+                       reg = <0x58780000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c0>;
+                       interrupts = <0 41 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c1: i2c@58781000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       status = "disabled";
+                       reg = <0x58781000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c1>;
+                       interrupts = <0 42 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c2: i2c@58782000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       status = "disabled";
+                       reg = <0x58782000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c2>;
+                       interrupts = <0 43 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c3: i2c@58783000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       status = "disabled";
+                       reg = <0x58783000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c3>;
+                       interrupts = <0 44 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               /* i2c4 does not exist */
+
+               /* chip-internal connection for DMD */
+               i2c5: i2c@58785000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       reg = <0x58785000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 25 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <400000>;
+               };
+
+               /* chip-internal connection for HDMI */
+               i2c6: i2c@58786000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       reg = <0x58786000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 26 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <400000>;
+               };
+
                system-bus-controller-misc@59800000 {
                        compatible = "socionext,uniphier-system-bus-controller-misc",
                                     "syscon";
                        reg = <0x59800000 0x2000>;
                };
 
+               usb2: usb@5a800100 {
+                       compatible = "socionext,uniphier-ehci", "generic-ehci";
+                       status = "disabled";
+                       reg = <0x5a800100 0x100>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usb2>;
+                       interrupts = <0 80 4>;
+               };
+
+               usb3: usb@5a810100 {
+                       compatible = "socionext,uniphier-ehci", "generic-ehci";
+                       status = "disabled";
+                       reg = <0x5a810100 0x100>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usb3>;
+                       interrupts = <0 81 4>;
+               };
+
+               pinctrl: pinctrl@5f801000 {
+                       compatible = "socionext,ph1-pro4-pinctrl",
+                                    "syscon";
+                       reg = <0x5f801000 0xe00>;
+               };
+
                timer@60000200 {
                        compatible = "arm,cortex-a9-global-timer";
                        reg = <0x60000200 0x20>;
                };
        };
 };
+
+/include/ "uniphier-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/uniphier-ph1-pro5.dtsi b/arch/arm/boot/dts/uniphier-ph1-pro5.dtsi
new file mode 100644 (file)
index 0000000..59c2b12
--- /dev/null
@@ -0,0 +1,252 @@
+/*
+ * Device Tree Source for UniPhier PH1-Pro5 SoC
+ *
+ * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/include/ "skeleton.dtsi"
+
+/ {
+       compatible = "socionext,ph1-pro5";
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               enable-method = "socionext,uniphier-smp";
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0>;
+               };
+
+               cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <1>;
+               };
+       };
+
+       clocks {
+               arm_timer_clk: arm_timer_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <50000000>;
+               };
+
+               uart_clk: uart_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <73728000>;
+               };
+
+               i2c_clk: i2c_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <50000000>;
+               };
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               interrupt-parent = <&intc>;
+
+               extbus: extbus {
+                       compatible = "simple-bus";
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+               };
+
+               serial0: serial@54006800 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006800 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart0>;
+                       interrupts = <0 33 4>;
+                       clocks = <&uart_clk>;
+               };
+
+               serial1: serial@54006900 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006900 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart1>;
+                       interrupts = <0 35 4>;
+                       clocks = <&uart_clk>;
+               };
+
+               serial2: serial@54006a00 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006a00 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart2>;
+                       interrupts = <0 37 4>;
+                       clocks = <&uart_clk>;
+               };
+
+               serial3: serial@54006b00 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006b00 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart3>;
+                       interrupts = <0 177 4>;
+                       clocks = <&uart_clk>;
+               };
+
+               i2c0: i2c@58780000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       status = "disabled";
+                       reg = <0x58780000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c0>;
+                       interrupts = <0 41 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c1: i2c@58781000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       status = "disabled";
+                       reg = <0x58781000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c1>;
+                       interrupts = <0 42 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c2: i2c@58782000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       status = "disabled";
+                       reg = <0x58782000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c2>;
+                       interrupts = <0 43 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c3: i2c@58783000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       status = "disabled";
+                       reg = <0x58783000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c3>;
+                       interrupts = <0 44 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               /* i2c4 does not exist */
+
+               /* chip-internal connection for DMD */
+               i2c5: i2c@58785000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       reg = <0x58785000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 25 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <400000>;
+               };
+
+               /* chip-internal connection for HDMI */
+               i2c6: i2c@58786000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       reg = <0x58786000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 26 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <400000>;
+               };
+
+               system-bus-controller-misc@59800000 {
+                       compatible = "socionext,uniphier-system-bus-controller-misc",
+                                    "syscon";
+                       reg = <0x59800000 0x2000>;
+               };
+
+               pinctrl: pinctrl@5f801000 {
+                       compatible = "socionext,ph1-pro5-pinctrl", "syscon";
+                       reg = <0x5f801000 0xe00>;
+               };
+
+               timer@60000200 {
+                       compatible = "arm,cortex-a9-global-timer";
+                       reg = <0x60000200 0x20>;
+                       interrupts = <1 11 0x304>;
+                       clocks = <&arm_timer_clk>;
+               };
+
+               timer@60000600 {
+                       compatible = "arm,cortex-a9-twd-timer";
+                       reg = <0x60000600 0x20>;
+                       interrupts = <1 13 0x304>;
+                       clocks = <&arm_timer_clk>;
+               };
+
+               intc: interrupt-controller@60001000 {
+                       compatible = "arm,cortex-a9-gic";
+                       #interrupt-cells = <3>;
+                       interrupt-controller;
+                       reg = <0x60001000 0x1000>,
+                             <0x60000100 0x100>;
+               };
+       };
+};
+
+/include/ "uniphier-pinctrl.dtsi"
index 3ea64ae009e946460eeb4fbe385b20c3e3e5283c..1a440f87fa920bcdc9b25c256d4e36167a10946e 100644 (file)
@@ -44,6 +44,7 @@
 
 /dts-v1/;
 /include/ "uniphier-ph1-sld3.dtsi"
+/include/ "uniphier-ref-daughter.dtsi"
 /include/ "uniphier-support-card.dtsi"
 
 / {
 
        chosen {
                bootargs = "console=ttyS0,115200";
-               stdout-path = &serialsc;
+               stdout-path = &serial0;
        };
 
        aliases {
-               serial0 = &serialsc;
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c4 = &i2c4;
        };
 };
 
        ranges = <0x00000000 1 0x03f00000 0x00100000>;
 };
 
-&serialsc {
+&ethsc {
        interrupts = <0 49 4>;
 };
+
+&serial0 {
+       status = "okay";
+};
+
+&serial1 {
+       status = "okay";
+};
+
+&serial2 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&usb0 {
+       status = "okay";
+};
+
+&usb1 {
+       status = "okay";
+};
+
+&usb2 {
+       status = "okay";
+};
+
+&usb3 {
+       status = "okay";
+};
index 248b1886834f02016bd563e1be5fe416b7e5dfb4..3cc90cd37a263b334635963153c3f9a4c21d1c9b 100644 (file)
                        compatible = "fixed-clock";
                        clock-frequency = <50000000>;
                };
+
+               uart_clk: uart_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <36864000>;
+               };
+
+               iobus_clk: iobus_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <100000000>;
+               };
        };
 
        soc {
                              <0x20000100 0x100>;
                };
 
+               serial0: serial@54006800 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006800 0x40>;
+                       interrupts = <0 33 4>;
+                       clocks = <&uart_clk>;
+                       fifo-size = <64>;
+               };
+
+               serial1: serial@54006900 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006900 0x40>;
+                       interrupts = <0 35 4>;
+                       clocks = <&uart_clk>;
+                       fifo-size = <64>;
+               };
+
+               serial2: serial@54006a00 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006a00 0x40>;
+                       interrupts = <0 37 4>;
+                       clocks = <&uart_clk>;
+                       fifo-size = <64>;
+               };
+
+               i2c0: i2c@58400000 {
+                       compatible = "socionext,uniphier-i2c";
+                       status = "disabled";
+                       reg = <0x58400000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 41 1>;
+                       clocks = <&iobus_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c1: i2c@58480000 {
+                       compatible = "socionext,uniphier-i2c";
+                       status = "disabled";
+                       reg = <0x58480000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 42 1>;
+                       clocks = <&iobus_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c2: i2c@58500000 {
+                       compatible = "socionext,uniphier-i2c";
+                       status = "disabled";
+                       reg = <0x58500000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 43 1>;
+                       clocks = <&iobus_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c3: i2c@58580000 {
+                       compatible = "socionext,uniphier-i2c";
+                       status = "disabled";
+                       reg = <0x58580000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 44 1>;
+                       clocks = <&iobus_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               /* chip-internal connection for DMD */
+               i2c4: i2c@58600000 {
+                       compatible = "socionext,uniphier-i2c";
+                       reg = <0x58600000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 45 1>;
+                       clocks = <&iobus_clk>;
+                       clock-frequency = <400000>;
+               };
+
                system-bus-controller-misc@59800000 {
                        compatible = "socionext,uniphier-system-bus-controller-misc",
                                     "syscon";
                        reg = <0x59800000 0x2000>;
                };
+
+               usb0: usb@5a800100 {
+                       compatible = "socionext,uniphier-ehci", "generic-ehci";
+                       status = "disabled";
+                       reg = <0x5a800100 0x100>;
+                       interrupts = <0 80 4>;
+               };
+
+               usb1: usb@5a810100 {
+                       compatible = "socionext,uniphier-ehci", "generic-ehci";
+                       status = "disabled";
+                       reg = <0x5a810100 0x100>;
+                       interrupts = <0 81 4>;
+               };
+
+               usb2: usb@5a820100 {
+                       compatible = "socionext,uniphier-ehci", "generic-ehci";
+                       status = "disabled";
+                       reg = <0x5a820100 0x100>;
+                       interrupts = <0 82 4>;
+               };
+
+               usb3: usb@5a830100 {
+                       compatible = "socionext,uniphier-ehci", "generic-ehci";
+                       status = "disabled";
+                       reg = <0x5a830100 0x100>;
+                       interrupts = <0 83 4>;
+               };
        };
 };
index dcdc4f74387da00b86622cfe5694b51440c87dea..955d417a5c42427bff6395d3c3af83731fe16660 100644 (file)
@@ -44,6 +44,7 @@
 
 /dts-v1/;
 /include/ "uniphier-ph1-sld8.dtsi"
+/include/ "uniphier-ref-daughter.dtsi"
 /include/ "uniphier-support-card.dtsi"
 
 / {
 
        chosen {
                bootargs = "console=ttyS0,115200";
-               stdout-path = &serialsc;
+               stdout-path = &serial0;
        };
 
        aliases {
-               serial0 = &serialsc;
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               serial3 = &serial3;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
        };
 };
 
        ranges = <0x00000000 1 0x03f00000 0x00100000>;
 };
 
-&serialsc {
+&ethsc {
        interrupts = <0 48 4>;
 };
+
+&serial0 {
+       status = "okay";
+};
+
+&serial2 {
+       status = "okay";
+};
+
+&serial3 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&usb0 {
+       status = "okay";
+};
+
+&usb1 {
+       status = "okay";
+};
+
+&usb2 {
+       status = "okay";
+};
index baa71e1febb8226eeb90cc261ea5e45ccd364bfd..58067dfc16e592843ddfeb3a98ccb6b75abfd9ea 100644 (file)
                        compatible = "fixed-clock";
                        clock-frequency = <50000000>;
                };
+
+               uart_clk: uart_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <80000000>;
+               };
+
+               iobus_clk: iobus_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <100000000>;
+               };
        };
 
        soc {
                        #size-cells = <1>;
                };
 
+               serial0: serial@54006800 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006800 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart0>;
+                       interrupts = <0 33 4>;
+                       clocks = <&uart_clk>;
+                       fifo-size = <64>;
+               };
+
+               serial1: serial@54006900 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006900 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart1>;
+                       interrupts = <0 35 4>;
+                       clocks = <&uart_clk>;
+                       fifo-size = <64>;
+               };
+
+               serial2: serial@54006a00 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006a00 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart2>;
+                       interrupts = <0 37 4>;
+                       clocks = <&uart_clk>;
+                       fifo-size = <64>;
+               };
+
+               serial3: serial@54006b00 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006b00 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart3>;
+                       interrupts = <0 29 4>;
+                       clocks = <&uart_clk>;
+                       fifo-size = <64>;
+               };
+
+               i2c0: i2c@58400000 {
+                       compatible = "socionext,uniphier-i2c";
+                       status = "disabled";
+                       reg = <0x58400000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c0>;
+                       interrupts = <0 41 1>;
+                       clocks = <&iobus_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c1: i2c@58480000 {
+                       compatible = "socionext,uniphier-i2c";
+                       status = "disabled";
+                       reg = <0x58480000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c1>;
+                       interrupts = <0 42 1>;
+                       clocks = <&iobus_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               /* chip-internal connection for DMD */
+               i2c2: i2c@58500000 {
+                       compatible = "socionext,uniphier-i2c";
+                       reg = <0x58500000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c2>;
+                       interrupts = <0 43 1>;
+                       clocks = <&iobus_clk>;
+                       clock-frequency = <400000>;
+               };
+
+               i2c3: i2c@58580000 {
+                       compatible = "socionext,uniphier-i2c";
+                       status = "disabled";
+                       reg = <0x58580000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c3>;
+                       interrupts = <0 44 1>;
+                       clocks = <&iobus_clk>;
+                       clock-frequency = <100000>;
+               };
+
                system-bus-controller-misc@59800000 {
                        compatible = "socionext,uniphier-system-bus-controller-misc",
                                     "syscon";
                        reg = <0x59800000 0x2000>;
                };
 
+               usb0: usb@5a800100 {
+                       compatible = "socionext,uniphier-ehci", "generic-ehci";
+                       status = "disabled";
+                       reg = <0x5a800100 0x100>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usb0>;
+                       interrupts = <0 80 4>;
+               };
+
+               usb1: usb@5a810100 {
+                       compatible = "socionext,uniphier-ehci", "generic-ehci";
+                       status = "disabled";
+                       reg = <0x5a810100 0x100>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usb1>;
+                       interrupts = <0 81 4>;
+               };
+
+               usb2: usb@5a820100 {
+                       compatible = "socionext,uniphier-ehci", "generic-ehci";
+                       status = "disabled";
+                       reg = <0x5a820100 0x100>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usb2>;
+                       interrupts = <0 82 4>;
+               };
+
+               pinctrl: pinctrl@5f801000 {
+                       compatible = "socionext,ph1-sld8-pinctrl",
+                                    "syscon";
+                       reg = <0x5f801000 0xe00>;
+               };
+
                timer@60000200 {
                        compatible = "arm,cortex-a9-global-timer";
                        reg = <0x60000200 0x20>;
                };
        };
 };
+
+/include/ "uniphier-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/uniphier-pinctrl.dtsi b/arch/arm/boot/dts/uniphier-pinctrl.dtsi
new file mode 100644 (file)
index 0000000..f67445f
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+ * Device Tree Source for UniPhier SoCs default pinctrl settings
+ *
+ * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+&pinctrl {
+       pinctrl_i2c0: i2c0_grp {
+               groups = "i2c0";
+               function = "i2c0";
+       };
+
+       pinctrl_i2c1: i2c1_grp {
+               groups = "i2c1";
+               function = "i2c1";
+       };
+
+       pinctrl_i2c2: i2c2_grp {
+               groups = "i2c2";
+               function = "i2c2";
+       };
+
+       pinctrl_i2c3: i2c3_grp {
+               groups = "i2c3";
+               function = "i2c3";
+       };
+
+       pinctrl_uart0: uart0_grp {
+               groups = "uart0";
+               function = "uart0";
+       };
+
+       pinctrl_uart1: uart1_grp {
+               groups = "uart1";
+               function = "uart1";
+       };
+
+       pinctrl_uart2: uart2_grp {
+               groups = "uart2";
+               function = "uart2";
+       };
+
+       pinctrl_uart3: uart3_grp {
+               groups = "uart3";
+               function = "uart3";
+       };
+
+       pinctrl_usb0: usb0_grp {
+               groups = "usb0";
+               function = "usb0";
+       };
+
+       pinctrl_usb1: usb1_grp {
+               groups = "usb1";
+               function = "usb1";
+       };
+
+       pinctrl_usb2: usb2_grp {
+               groups = "usb2";
+               function = "usb2";
+       };
+
+       pinctrl_usb3: usb3_grp {
+               groups = "usb3";
+               function = "usb3";
+       };
+};
diff --git a/arch/arm/boot/dts/uniphier-proxstream2.dtsi b/arch/arm/boot/dts/uniphier-proxstream2.dtsi
new file mode 100644 (file)
index 0000000..ccf795a
--- /dev/null
@@ -0,0 +1,273 @@
+/*
+ * Device Tree Source for UniPhier ProXstream2 SoC
+ *
+ * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/include/ "skeleton.dtsi"
+
+/ {
+       compatible = "socionext,proxstream2";
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               enable-method = "socionext,uniphier-smp";
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0>;
+               };
+
+               cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <1>;
+               };
+
+               cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <2>;
+               };
+
+               cpu@3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <3>;
+               };
+       };
+
+       clocks {
+               arm_timer_clk: arm_timer_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <50000000>;
+               };
+
+               uart_clk: uart_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <88900000>;
+               };
+
+               i2c_clk: i2c_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <50000000>;
+               };
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               interrupt-parent = <&intc>;
+
+               extbus: extbus {
+                       compatible = "simple-bus";
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+               };
+
+               serial0: serial@54006800 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006800 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart0>;
+                       interrupts = <0 33 4>;
+                       clocks = <&uart_clk>;
+               };
+
+               serial1: serial@54006900 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006900 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart1>;
+                       interrupts = <0 35 4>;
+                       clocks = <&uart_clk>;
+               };
+
+               serial2: serial@54006a00 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006a00 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart2>;
+                       interrupts = <0 37 4>;
+                       clocks = <&uart_clk>;
+               };
+
+               serial3: serial@54006b00 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006b00 0x40>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart3>;
+                       interrupts = <0 177 4>;
+                       clocks = <&uart_clk>;
+               };
+
+               i2c0: i2c@58780000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       status = "disabled";
+                       reg = <0x58780000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c0>;
+                       interrupts = <0 41 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c1: i2c@58781000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       status = "disabled";
+                       reg = <0x58781000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c1>;
+                       interrupts = <0 42 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c2: i2c@58782000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       status = "disabled";
+                       reg = <0x58782000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c2>;
+                       interrupts = <0 43 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c3: i2c@58783000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       status = "disabled";
+                       reg = <0x58783000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c3>;
+                       interrupts = <0 44 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <100000>;
+               };
+
+               /* chip-internal connection for DMD */
+               i2c4: i2c@58784000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       reg = <0x58784000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 45 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <400000>;
+               };
+
+               /* chip-internal connection for STM */
+               i2c5: i2c@58785000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       reg = <0x58785000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 25 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <400000>;
+               };
+
+               /* chip-internal connection for HDMI */
+               i2c6: i2c@58786000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       reg = <0x58786000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 26 4>;
+                       clocks = <&i2c_clk>;
+                       clock-frequency = <400000>;
+               };
+
+               system-bus-controller-misc@59800000 {
+                       compatible = "socionext,uniphier-system-bus-controller-misc",
+                                    "syscon";
+                       reg = <0x59800000 0x2000>;
+               };
+
+               pinctrl: pinctrl@5f801000 {
+                       compatible = "socionext,proxstream2-pinctrl", "syscon";
+                       reg = <0x5f801000 0xe00>;
+               };
+
+               timer@60000200 {
+                       compatible = "arm,cortex-a9-global-timer";
+                       reg = <0x60000200 0x20>;
+                       interrupts = <1 11 0x304>;
+                       clocks = <&arm_timer_clk>;
+               };
+
+               timer@60000600 {
+                       compatible = "arm,cortex-a9-twd-timer";
+                       reg = <0x60000600 0x20>;
+                       interrupts = <1 13 0x304>;
+                       clocks = <&arm_timer_clk>;
+               };
+
+               intc: interrupt-controller@60001000 {
+                       compatible = "arm,cortex-a9-gic";
+                       #interrupt-cells = <3>;
+                       interrupt-controller;
+                       reg = <0x60001000 0x1000>,
+                             <0x60000100 0x100>;
+               };
+       };
+};
+
+/include/ "uniphier-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/uniphier-ref-daughter.dtsi b/arch/arm/boot/dts/uniphier-ref-daughter.dtsi
new file mode 100644 (file)
index 0000000..3d29d28
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Device Tree Source for UniPhier Reference Daughter Board
+ *
+ * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+&i2c0 {
+       eeprom {
+               compatible = "microchip,24lc128";
+               reg = <0x50>;
+       };
+};
index 06915080b875dd34b163859cb71c5bc0925de373..ac0a6a09b65283b22e0350c10c5c57c6850820ed 100644 (file)
@@ -57,7 +57,7 @@
                regulator-always-on;
        };
 
-       amba {
+       amba: amba {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
                L2: cache-controller@f8f02000 {
                        compatible = "arm,pl310-cache";
                        reg = <0xF8F02000 0x1000>;
+                       interrupts = <0 2 4>;
                        arm,data-latency = <3 2 2>;
                        arm,tag-latency = <2 2 2>;
                        cache-unified;
index fb59d34e8ee6868799130f36e2d029c86e576277..5df8f81f4217968ef094fb33acb98086033f5248 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
+       gpio-keys {
+               compatible = "gpio-keys";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               autorepeat;
+               sw14 {
+                       label = "sw14";
+                       gpios = <&gpio0 12 0>;
+                       linux,code = <108>; /* down */
+                       gpio-key,wakeup;
+                       autorepeat;
+               };
+               sw13 {
+                       label = "sw13";
+                       gpios = <&gpio0 14 0>;
+                       linux,code = <103>; /* up */
+                       gpio-key,wakeup;
+                       autorepeat;
+               };
+       };
+
        leds {
                compatible = "gpio-leds";
 
        };
 };
 
+&amba {
+       ocm: sram@fffc0000 {
+               compatible = "mmio-sram";
+               reg = <0xfffc0000 0x10000>;
+       };
+};
+
 &can0 {
        status = "okay";
        pinctrl-names = "default";
index ac521e764d10903b2b344021f49295fab979a838..b001f7ae67f3524dd2183519b43004138cdc4992 100644 (file)
@@ -324,10 +324,13 @@ CONFIG_SND_USB_AUDIO=m
 CONFIG_SND_SOC=m
 CONFIG_SND_EDMA_SOC=m
 CONFIG_SND_AM33XX_SOC_EVM=m
+CONFIG_SND_DAVINCI_SOC_MCASP=m
 CONFIG_SND_OMAP_SOC=m
 CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m
 CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=m
 CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m
+CONFIG_SND_SIMPLE_CARD=m
+CONFIG_SND_SOC_TLV320AIC3X=m
 CONFIG_HID_GENERIC=m
 CONFIG_USB_HIDDEV=y
 CONFIG_USB_KBD=m
index 821171cf6b7dfbed55ced2ac437afdd783c453ed..1e9917c29958cc7e50f72aeb48397b103945ee5f 100644 (file)
 #include <linux/kernel.h>
 #include <linux/of_platform.h>
 #include <linux/ti_wilink_st.h>
+#include <linux/wl12xx.h>
+#include <linux/mmc/card.h>
+#include <linux/mmc/host.h>
+#include <linux/regulator/machine.h>
+#include <linux/regulator/fixed.h>
 
 #include <linux/platform_data/pinctrl-single.h>
 #include <linux/platform_data/iommu-omap.h>
+#include <linux/platform_data/wkup_m3.h>
+
+#include <asm/siginfo.h>
+#include <asm/signal.h>
 
 #include "common.h"
 #include "common-board-devices.h"
@@ -25,6 +34,7 @@
 #include "omap_device.h"
 #include "omap-secure.h"
 #include "soc.h"
+#include "hsmmc.h"
 
 struct pdata_init {
        const char *compatible;
@@ -268,8 +278,136 @@ static void __init omap3_tao3530_legacy_init(void)
 {
        hsmmc2_internal_input_clk();
 }
+
+/* omap3pandora legacy devices */
+#define PANDORA_WIFI_IRQ_GPIO          21
+#define PANDORA_WIFI_NRESET_GPIO       23
+
+static struct platform_device pandora_backlight = {
+       .name   = "pandora-backlight",
+       .id     = -1,
+};
+
+static struct regulator_consumer_supply pandora_vmmc3_supply[] = {
+       REGULATOR_SUPPLY("vmmc", "omap_hsmmc.2"),
+};
+
+static struct regulator_init_data pandora_vmmc3 = {
+       .constraints = {
+               .valid_ops_mask         = REGULATOR_CHANGE_STATUS,
+       },
+       .num_consumer_supplies  = ARRAY_SIZE(pandora_vmmc3_supply),
+       .consumer_supplies      = pandora_vmmc3_supply,
+};
+
+static struct fixed_voltage_config pandora_vwlan = {
+       .supply_name            = "vwlan",
+       .microvolts             = 1800000, /* 1.8V */
+       .gpio                   = PANDORA_WIFI_NRESET_GPIO,
+       .startup_delay          = 50000, /* 50ms */
+       .enable_high            = 1,
+       .init_data              = &pandora_vmmc3,
+};
+
+static struct platform_device pandora_vwlan_device = {
+       .name           = "reg-fixed-voltage",
+       .id             = 1,
+       .dev = {
+               .platform_data = &pandora_vwlan,
+       },
+};
+
+static void pandora_wl1251_init_card(struct mmc_card *card)
+{
+       /*
+        * We have TI wl1251 attached to MMC3. Pass this information to
+        * SDIO core because it can't be probed by normal methods.
+        */
+       if (card->type == MMC_TYPE_SDIO || card->type == MMC_TYPE_SD_COMBO) {
+               card->quirks |= MMC_QUIRK_NONSTD_SDIO;
+               card->cccr.wide_bus = 1;
+               card->cis.vendor = 0x104c;
+               card->cis.device = 0x9066;
+               card->cis.blksize = 512;
+               card->cis.max_dtr = 24000000;
+               card->ocr = 0x80;
+       }
+}
+
+static struct omap2_hsmmc_info pandora_mmc3[] = {
+       {
+               .mmc            = 3,
+               .caps           = MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD,
+               .gpio_cd        = -EINVAL,
+               .gpio_wp        = -EINVAL,
+               .init_card      = pandora_wl1251_init_card,
+       },
+       {}      /* Terminator */
+};
+
+static void __init pandora_wl1251_init(void)
+{
+       struct wl1251_platform_data pandora_wl1251_pdata;
+       int ret;
+
+       memset(&pandora_wl1251_pdata, 0, sizeof(pandora_wl1251_pdata));
+
+       pandora_wl1251_pdata.power_gpio = -1;
+
+       ret = gpio_request_one(PANDORA_WIFI_IRQ_GPIO, GPIOF_IN, "wl1251 irq");
+       if (ret < 0)
+               goto fail;
+
+       pandora_wl1251_pdata.irq = gpio_to_irq(PANDORA_WIFI_IRQ_GPIO);
+       if (pandora_wl1251_pdata.irq < 0)
+               goto fail_irq;
+
+       pandora_wl1251_pdata.use_eeprom = true;
+       ret = wl1251_set_platform_data(&pandora_wl1251_pdata);
+       if (ret < 0)
+               goto fail_irq;
+
+       return;
+
+fail_irq:
+       gpio_free(PANDORA_WIFI_IRQ_GPIO);
+fail:
+       pr_err("wl1251 board initialisation failed\n");
+}
+
+static void __init omap3_pandora_legacy_init(void)
+{
+       platform_device_register(&pandora_backlight);
+       platform_device_register(&pandora_vwlan_device);
+       omap_hsmmc_init(pandora_mmc3);
+       omap_hsmmc_late_init(pandora_mmc3);
+       pandora_wl1251_init();
+}
 #endif /* CONFIG_ARCH_OMAP3 */
 
+#ifdef CONFIG_SOC_TI81XX
+static int fault_fixed_up;
+
+static int t410_abort_handler(unsigned long addr, unsigned int fsr,
+                             struct pt_regs *regs)
+{
+       if ((fsr == 0x406 || fsr == 0xc06) && !fault_fixed_up) {
+               pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
+                       addr, fsr);
+               fault_fixed_up = 1;
+               return 0;
+       }
+
+       return 1;
+}
+
+static void __init t410_abort_init(void)
+{
+       hook_fault_code(16 + 6, t410_abort_handler, SIGBUS, BUS_OBJERR,
+                       "imprecise external abort");
+}
+#endif
+
 #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
 static struct iommu_platform_data omap4_iommu_pdata = {
        .reset_name = "mmu_cache",
@@ -278,6 +416,14 @@ static struct iommu_platform_data omap4_iommu_pdata = {
 };
 #endif
 
+#if defined(CONFIG_SOC_AM33XX) || defined(CONFIG_SOC_AM43XX)
+static struct wkup_m3_platform_data wkup_m3_data = {
+       .reset_name = "wkup_m3",
+       .assert_reset = omap_device_assert_hardreset,
+       .deassert_reset = omap_device_deassert_hardreset,
+};
+#endif
+
 #ifdef CONFIG_SOC_OMAP5
 static void __init omap5_uevm_legacy_init(void)
 {
@@ -340,6 +486,10 @@ struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {
        OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0",
                       &am35xx_emac_pdata),
 #endif
+#ifdef CONFIG_SOC_AM33XX
+       OF_DEV_AUXDATA("ti,am3352-wkup-m3", 0x44d00000, "44d00000.wkup_m3",
+                      &wkup_m3_data),
+#endif
 #ifdef CONFIG_ARCH_OMAP4
        OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a100040, "4a100040.pinmux", &pcs_pdata),
        OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a31e040, "4a31e040.pinmux", &pcs_pdata),
@@ -353,6 +503,8 @@ struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {
 #endif
 #ifdef CONFIG_SOC_AM43XX
        OF_DEV_AUXDATA("ti,am437-padconf", 0x44e10800, "44e10800.pinmux", &pcs_pdata),
+       OF_DEV_AUXDATA("ti,am4372-wkup-m3", 0x44d00000, "44d00000.wkup_m3",
+                      &wkup_m3_data),
 #endif
 #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
        OF_DEV_AUXDATA("ti,omap4-iommu", 0x4a066000, "4a066000.mmu",
@@ -381,6 +533,11 @@ static struct pdata_init pdata_quirks[] __initdata = {
        { "ti,omap3-evm-37xx", omap3_evm_legacy_init, },
        { "ti,am3517-evm", am3517_evm_legacy_init, },
        { "technexion,omap3-tao3530", omap3_tao3530_legacy_init, },
+       { "openpandora,omap3-pandora-600mhz", omap3_pandora_legacy_init, },
+       { "openpandora,omap3-pandora-1ghz", omap3_pandora_legacy_init, },
+#endif
+#ifdef CONFIG_SOC_TI81XX
+       { "hp,t410", t410_abort_init, },
 #endif
 #ifdef CONFIG_SOC_OMAP5
        { "ti,omap5-uevm", omap5_uevm_legacy_init, },
index ff7ca3584e1695898eb5ddd825cfc2d7a68c46ff..7b1ad8922eecdc50afd5bdeb4bb951c0f0c75e81 100644 (file)
 #define R8A7790_CLK_VIN2               9
 #define R8A7790_CLK_VIN1               10
 #define R8A7790_CLK_VIN0               11
+#define R8A7790_CLK_ETHERAVB           12
 #define R8A7790_CLK_ETHER              13
 #define R8A7790_CLK_SATA1              14
 #define R8A7790_CLK_SATA0              15
 #define R8A7790_CLK_SCU_ALL            17
 #define R8A7790_CLK_SCU_DVC1           18
 #define R8A7790_CLK_SCU_DVC0           19
+#define R8A7790_CLK_SCU_CTU1_MIX1      20
+#define R8A7790_CLK_SCU_CTU0_MIX0      21
 #define R8A7790_CLK_SCU_SRC9           22
 #define R8A7790_CLK_SCU_SRC8           23
 #define R8A7790_CLK_SCU_SRC7           24
index 402268384b99093cb2ad723ec81e3d50f9aee968..dd09b73c4aaf13887a7ac38217548ae7fc9e2df1 100644 (file)
 #define R8A7791_CLK_SCU_ALL            17
 #define R8A7791_CLK_SCU_DVC1           18
 #define R8A7791_CLK_SCU_DVC0           19
+#define R8A7791_CLK_SCU_CTU1_MIX1      20
+#define R8A7791_CLK_SCU_CTU0_MIX0      21
 #define R8A7791_CLK_SCU_SRC9           22
 #define R8A7791_CLK_SCU_SRC8           23
 #define R8A7791_CLK_SCU_SRC7           24
diff --git a/include/dt-bindings/clock/r8a7793-clock.h b/include/dt-bindings/clock/r8a7793-clock.h
new file mode 100644 (file)
index 0000000..1579e07
--- /dev/null
@@ -0,0 +1,164 @@
+/*
+ * r8a7793 clock definition
+ *
+ * Copyright (C) 2014  Renesas Electronics Corporation
+ *
+ * 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.
+ */
+
+#ifndef __DT_BINDINGS_CLOCK_R8A7793_H__
+#define __DT_BINDINGS_CLOCK_R8A7793_H__
+
+/* CPG */
+#define R8A7793_CLK_MAIN               0
+#define R8A7793_CLK_PLL0               1
+#define R8A7793_CLK_PLL1               2
+#define R8A7793_CLK_PLL3               3
+#define R8A7793_CLK_LB                 4
+#define R8A7793_CLK_QSPI               5
+#define R8A7793_CLK_SDH                        6
+#define R8A7793_CLK_SD0                        7
+#define R8A7793_CLK_Z                  8
+#define R8A7793_CLK_RCAN               9
+#define R8A7793_CLK_ADSP               10
+
+/* MSTP0 */
+#define R8A7793_CLK_MSIOF0             0
+
+/* MSTP1 */
+#define R8A7793_CLK_VCP0               1
+#define R8A7793_CLK_VPC0               3
+#define R8A7793_CLK_SSP1               9
+#define R8A7793_CLK_TMU1               11
+#define R8A7793_CLK_3DG                        12
+#define R8A7793_CLK_2DDMAC             15
+#define R8A7793_CLK_FDP1_1             18
+#define R8A7793_CLK_FDP1_0             19
+#define R8A7793_CLK_TMU3               21
+#define R8A7793_CLK_TMU2               22
+#define R8A7793_CLK_CMT0               24
+#define R8A7793_CLK_TMU0               25
+#define R8A7793_CLK_VSP1_DU1           27
+#define R8A7793_CLK_VSP1_DU0           28
+#define R8A7793_CLK_VSP1_S             31
+
+/* MSTP2 */
+#define R8A7793_CLK_SCIFA2             2
+#define R8A7793_CLK_SCIFA1             3
+#define R8A7793_CLK_SCIFA0             4
+#define R8A7793_CLK_MSIOF2             5
+#define R8A7793_CLK_SCIFB0             6
+#define R8A7793_CLK_SCIFB1             7
+#define R8A7793_CLK_MSIOF1             8
+#define R8A7793_CLK_SCIFB2             16
+#define R8A7793_CLK_SYS_DMAC1          18
+#define R8A7793_CLK_SYS_DMAC0          19
+
+/* MSTP3 */
+#define R8A7793_CLK_TPU0               4
+#define R8A7793_CLK_SDHI2              11
+#define R8A7793_CLK_SDHI1              12
+#define R8A7793_CLK_SDHI0              14
+#define R8A7793_CLK_MMCIF0             15
+#define R8A7793_CLK_IIC0               18
+#define R8A7793_CLK_PCIEC              19
+#define R8A7793_CLK_IIC1               23
+#define R8A7793_CLK_SSUSB              28
+#define R8A7793_CLK_CMT1               29
+#define R8A7793_CLK_USBDMAC0           30
+#define R8A7793_CLK_USBDMAC1           31
+
+/* MSTP4 */
+#define R8A7793_CLK_IRQC               7
+
+/* MSTP5 */
+#define R8A7793_CLK_AUDIO_DMAC1         1
+#define R8A7793_CLK_AUDIO_DMAC0         2
+#define R8A7793_CLK_ADSP_MOD           6
+#define R8A7793_CLK_THERMAL            22
+#define R8A7793_CLK_PWM                        23
+
+/* MSTP7 */
+#define R8A7793_CLK_EHCI               3
+#define R8A7793_CLK_HSUSB              4
+#define R8A7793_CLK_HSCIF2             13
+#define R8A7793_CLK_SCIF5              14
+#define R8A7793_CLK_SCIF4              15
+#define R8A7793_CLK_HSCIF1             16
+#define R8A7793_CLK_HSCIF0             17
+#define R8A7793_CLK_SCIF3              18
+#define R8A7793_CLK_SCIF2              19
+#define R8A7793_CLK_SCIF1              20
+#define R8A7793_CLK_SCIF0              21
+#define R8A7793_CLK_DU1                        23
+#define R8A7793_CLK_DU0                        24
+#define R8A7793_CLK_LVDS0              26
+
+/* MSTP8 */
+#define R8A7793_CLK_IPMMU_SGX          0
+#define R8A7793_CLK_VIN2               9
+#define R8A7793_CLK_VIN1               10
+#define R8A7793_CLK_VIN0               11
+#define R8A7793_CLK_ETHER              13
+#define R8A7793_CLK_SATA1              14
+#define R8A7793_CLK_SATA0              15
+
+/* MSTP9 */
+#define R8A7793_CLK_GPIO7              4
+#define R8A7793_CLK_GPIO6              5
+#define R8A7793_CLK_GPIO5              7
+#define R8A7793_CLK_GPIO4              8
+#define R8A7793_CLK_GPIO3              9
+#define R8A7793_CLK_GPIO2              10
+#define R8A7793_CLK_GPIO1              11
+#define R8A7793_CLK_GPIO0              12
+#define R8A7793_CLK_RCAN1              15
+#define R8A7793_CLK_RCAN0              16
+#define R8A7793_CLK_QSPI_MOD           17
+#define R8A7793_CLK_I2C5               25
+#define R8A7793_CLK_IICDVFS            26
+#define R8A7793_CLK_I2C4               27
+#define R8A7793_CLK_I2C3               28
+#define R8A7793_CLK_I2C2               29
+#define R8A7793_CLK_I2C1               30
+#define R8A7793_CLK_I2C0               31
+
+/* MSTP10 */
+#define R8A7793_CLK_SSI_ALL            5
+#define R8A7793_CLK_SSI9               6
+#define R8A7793_CLK_SSI8               7
+#define R8A7793_CLK_SSI7               8
+#define R8A7793_CLK_SSI6               9
+#define R8A7793_CLK_SSI5               10
+#define R8A7793_CLK_SSI4               11
+#define R8A7793_CLK_SSI3               12
+#define R8A7793_CLK_SSI2               13
+#define R8A7793_CLK_SSI1               14
+#define R8A7793_CLK_SSI0               15
+#define R8A7793_CLK_SCU_ALL            17
+#define R8A7793_CLK_SCU_DVC1           18
+#define R8A7793_CLK_SCU_DVC0           19
+#define R8A7793_CLK_SCU_SRC9           22
+#define R8A7793_CLK_SCU_SRC8           23
+#define R8A7793_CLK_SCU_SRC7           24
+#define R8A7793_CLK_SCU_SRC6           25
+#define R8A7793_CLK_SCU_SRC5           26
+#define R8A7793_CLK_SCU_SRC4           27
+#define R8A7793_CLK_SCU_SRC3           28
+#define R8A7793_CLK_SCU_SRC2           29
+#define R8A7793_CLK_SCU_SRC1           30
+#define R8A7793_CLK_SCU_SRC0           31
+
+/* MSTP11 */
+#define R8A7793_CLK_SCIFA3             6
+#define R8A7793_CLK_SCIFA4             7
+#define R8A7793_CLK_SCIFA5             8
+
+#endif /* __DT_BINDINGS_CLOCK_R8A7793_H__ */
index b00bbc9c60b41dabd0ba5b657bdba3ee076fa120..774dc1e843c5b649a48aebe1cb9476678c495c97 100644 (file)
@@ -14,6 +14,7 @@
 #define MUX_MODE6      6
 #define MUX_MODE7      7
 #define MUX_MODE8      8
+#define MUX_MODE9      9
 
 #define PULL_DISABLE           (1 << 16)
 #define PULL_UP                        (1 << 17)
index 7448edff4723101b44877090ce9463bdb98d6d9c..4379e29f0460c10bfc466ca3ecc5beb783af5b2d 100644 (file)
 #define MUX_MODE14     0xe
 #define MUX_MODE15     0xf
 
+/* Certain pins need virtual mode, but note: they may glitch */
+#define MUX_VIRTUAL_MODE0      (MODE_SELECT | (0x0 << 4))
+#define MUX_VIRTUAL_MODE1      (MODE_SELECT | (0x1 << 4))
+#define MUX_VIRTUAL_MODE2      (MODE_SELECT | (0x2 << 4))
+#define MUX_VIRTUAL_MODE3      (MODE_SELECT | (0x3 << 4))
+#define MUX_VIRTUAL_MODE4      (MODE_SELECT | (0x4 << 4))
+#define MUX_VIRTUAL_MODE5      (MODE_SELECT | (0x5 << 4))
+#define MUX_VIRTUAL_MODE6      (MODE_SELECT | (0x6 << 4))
+#define MUX_VIRTUAL_MODE7      (MODE_SELECT | (0x7 << 4))
+#define MUX_VIRTUAL_MODE8      (MODE_SELECT | (0x8 << 4))
+#define MUX_VIRTUAL_MODE9      (MODE_SELECT | (0x9 << 4))
+#define MUX_VIRTUAL_MODE10     (MODE_SELECT | (0xa << 4))
+#define MUX_VIRTUAL_MODE11     (MODE_SELECT | (0xb << 4))
+#define MUX_VIRTUAL_MODE12     (MODE_SELECT | (0xc << 4))
+#define MUX_VIRTUAL_MODE13     (MODE_SELECT | (0xd << 4))
+#define MUX_VIRTUAL_MODE14     (MODE_SELECT | (0xe << 4))
+#define MUX_VIRTUAL_MODE15     (MODE_SELECT | (0xf << 4))
+
+#define MODE_SELECT            (1 << 8)
+
 #define PULL_ENA               (0 << 16)
 #define PULL_DIS               (1 << 16)
 #define PULL_UP                        (1 << 17)