Merge tag 'imx-dt-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo...
authorArnd Bergmann <arnd@arndb.de>
Fri, 28 Nov 2014 14:01:57 +0000 (15:01 +0100)
committerArnd Bergmann <arnd@arndb.de>
Fri, 28 Nov 2014 14:01:57 +0000 (15:01 +0100)
Pull "The i.MX device tree changes for 3.19" from Shawn Guo:

 - Device additions for board vf610-colibri, pwm, backlight, I2C, RTC,
   ADC etc.
 - Update i.MX6 phyFLEX board to include PCIe, CAN and audio support
 - Improve SSI clocks description for i.MX5 platforms
 - Add ENET2 support for imx6sx-sdb board
 - Add device tree source for LS1021A SoC, board QDS and TWR
 - Enable cpufreq support for i.MX53
 - Enable VPU device support for i.MX6QDL
 - Enable poweroff support for i.MX6 SoCs
 - Add support for TBS2910 Matrix ARM mini PC which is built on i.MX6Q
 - Create generic base device trees for Vybrid and add support for
   Colibri VF50

Note: the change set is built on top of imx-soc-3.19 to resolve the
dependency that  "ARM: dts: imx53: add cpufreq-dt support" uses the
clock define IMX5_CLK_ARM that is added by "ARM: imx53: clk: add ARM
clock".

* tag 'imx-dt-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (51 commits)
  ARM: dts: imx6q-tbs2910: Enable snvs-poweroff
  ARM: dts: imx6: add pm_power_off support for i.mx6 chips
  ARM: dts: vf-colibri: add USB regulators
  ARM: dts: imx6: phyFLEX: Add CAN support
  ARM: dts: imx6: phyFLEX: Add PCIe
  ARM: dts: imx6: phyFLEX: Set correct interrupt for pmic
  ARM: dts: imx6: phyFLEX: Enable gpmi in module file
  ARM: dts: imx6: phyFLEX: set nodes in alphabetical order
  ARM: dts: vf-colibri-eval-v3.dts: Enable ST-M41T0M6 RTC
  ARM: dts: vf-colibri: Add I2C support
  ARM: dts: imx6qdl: Enable CODA960 VPU
  ARM: dts: imx6q-tbs2910: Remove unneeded 'fsl,mode' property
  ARM: dts: vf610: enable USB misc/phy nodes where necessary
  ARM: dts: vf610: use new GPIO support
  ARM: dts: pbab01: enable I2S audio on phyFLEX-i.MX6 boards
  ARM: dts: pbab01: move i2c pins and frequency configuration into pfla02
  ARM: dts: vf500-colibri: add Colibri VF50 support
  ARM: dts: vf610: create generic base device trees
  ARM: dts: vf610: assign oscillator to clock module
  dt-bindings: arm: add Freescale LS1021A SoC device tree binding
  ...

Signed-off-by; Arnd Bergmann <arnd@arndb.de>

288 files changed:
Documentation/devicetree/bindings/arm/arm-boards
Documentation/devicetree/bindings/arm/bcm/cygnus.txt [new file with mode: 0644]
Documentation/devicetree/bindings/arm/gic.txt
Documentation/devicetree/bindings/arm/marvell,berlin.txt
Documentation/devicetree/bindings/arm/mediatek.txt
Documentation/devicetree/bindings/arm/omap/omap.txt
Documentation/devicetree/bindings/arm/rockchip.txt
Documentation/devicetree/bindings/arm/samsung-boards.txt
Documentation/devicetree/bindings/arm/ste-nomadik.txt
Documentation/devicetree/bindings/clock/bcm-cygnus-clock.txt [new file with mode: 0644]
Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt
Documentation/devicetree/bindings/i2c/trivial-devices.txt
Documentation/devicetree/bindings/timer/renesas,mtu2.txt
Documentation/devicetree/bindings/timer/renesas,tmu.txt
Documentation/devicetree/bindings/vendor-prefixes.txt
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/am335x-evm.dts
arch/arm/boot/dts/am335x-igep0033.dtsi
arch/arm/boot/dts/am335x-lxm.dts [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/am43x-epos-evm.dts
arch/arm/boot/dts/am57xx-beagle-x15.dts [new file with mode: 0644]
arch/arm/boot/dts/arm-realview-pb1176.dts [new file with mode: 0644]
arch/arm/boot/dts/armada-370-netgear-rn102.dts
arch/arm/boot/dts/armada-370.dtsi
arch/arm/boot/dts/armada-375.dtsi
arch/arm/boot/dts/armada-xp-axpwifiap.dts
arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts
arch/arm/boot/dts/armada-xp-mv78230.dtsi
arch/arm/boot/dts/armada-xp-mv78260.dtsi
arch/arm/boot/dts/armada-xp-mv78460.dtsi
arch/arm/boot/dts/armada-xp-netgear-rn2120.dts
arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
arch/arm/boot/dts/armada-xp.dtsi
arch/arm/boot/dts/at91sam9263.dtsi
arch/arm/boot/dts/at91sam9x25.dtsi
arch/arm/boot/dts/at91sam9x35.dtsi
arch/arm/boot/dts/at91sam9x5.dtsi
arch/arm/boot/dts/at91sam9x5_can.dtsi
arch/arm/boot/dts/at91sam9x5_usart3.dtsi
arch/arm/boot/dts/bcm-cygnus-clock.dtsi [new file with mode: 0644]
arch/arm/boot/dts/bcm-cygnus.dtsi [new file with mode: 0644]
arch/arm/boot/dts/bcm2835-rpi-b-plus.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm2835-rpi-b.dts
arch/arm/boot/dts/bcm2835-rpi.dtsi [new file with mode: 0644]
arch/arm/boot/dts/bcm911360_entphn.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm911360k.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm958300k.dts [new file with mode: 0644]
arch/arm/boot/dts/berlin2-sony-nsz-gs7.dts
arch/arm/boot/dts/berlin2.dtsi
arch/arm/boot/dts/berlin2cd-google-chromecast.dts
arch/arm/boot/dts/berlin2cd.dtsi
arch/arm/boot/dts/berlin2q-marvell-dmp.dts
arch/arm/boot/dts/berlin2q.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-monk.dts [new file with mode: 0644]
arch/arm/boot/dts/exynos3250-pinctrl.dtsi
arch/arm/boot/dts/exynos3250-rinato.dts [new file with mode: 0644]
arch/arm/boot/dts/exynos3250.dtsi
arch/arm/boot/dts/exynos4.dtsi
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/exynos4212.dtsi
arch/arm/boot/dts/exynos4412-odroid-common.dtsi
arch/arm/boot/dts/exynos4412-trats2.dts
arch/arm/boot/dts/exynos4412.dtsi
arch/arm/boot/dts/exynos4415-pinctrl.dtsi [new file with mode: 0644]
arch/arm/boot/dts/exynos4415.dtsi [new file with mode: 0644]
arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
arch/arm/boot/dts/exynos4x12.dtsi
arch/arm/boot/dts/exynos5250-arndale.dts
arch/arm/boot/dts/exynos5250-smdk5250.dts
arch/arm/boot/dts/exynos5250-snow.dts
arch/arm/boot/dts/exynos5250-spring.dts [new file with mode: 0644]
arch/arm/boot/dts/exynos5250.dtsi
arch/arm/boot/dts/exynos5420-peach-pit.dts
arch/arm/boot/dts/exynos5420.dtsi
arch/arm/boot/dts/exynos5800-peach-pi.dts
arch/arm/boot/dts/hisi-x5hd2-dkb.dts
arch/arm/boot/dts/hisi-x5hd2.dtsi
arch/arm/boot/dts/k2e-evm.dts
arch/arm/boot/dts/k2e.dtsi
arch/arm/boot/dts/k2l-evm.dts
arch/arm/boot/dts/keystone.dtsi
arch/arm/boot/dts/kirkwood-dir665.dts [new file with mode: 0644]
arch/arm/boot/dts/meson.dtsi
arch/arm/boot/dts/meson6-atv1200.dts
arch/arm/boot/dts/meson6.dtsi
arch/arm/boot/dts/meson8.dtsi [new file with mode: 0644]
arch/arm/boot/dts/mt6592-evb.dts [new file with mode: 0644]
arch/arm/boot/dts/mt6592.dtsi [new file with mode: 0644]
arch/arm/boot/dts/mt8127-moose.dts [new file with mode: 0644]
arch/arm/boot/dts/mt8127.dtsi [new file with mode: 0644]
arch/arm/boot/dts/mt8135-evbp1.dts [new file with mode: 0644]
arch/arm/boot/dts/mt8135.dtsi [new file with mode: 0644]
arch/arm/boot/dts/omap-gpmc-smsc911x.dtsi
arch/arm/boot/dts/omap-zoom-common.dtsi
arch/arm/boot/dts/omap2420-n8x0-common.dtsi
arch/arm/boot/dts/omap2420.dtsi
arch/arm/boot/dts/omap2430-sdp.dts
arch/arm/boot/dts/omap2430.dtsi
arch/arm/boot/dts/omap3-cm-t3517.dts
arch/arm/boot/dts/omap3-cm-t3530.dts
arch/arm/boot/dts/omap3-cm-t3730.dts
arch/arm/boot/dts/omap3-cm-t3x.dtsi
arch/arm/boot/dts/omap3-cm-t3x30.dtsi
arch/arm/boot/dts/omap3-devkit8000.dts
arch/arm/boot/dts/omap3-evm-37xx.dts
arch/arm/boot/dts/omap3-gta04.dtsi
arch/arm/boot/dts/omap3-igep.dtsi
arch/arm/boot/dts/omap3-igep0020-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/omap3-igep0020-rev-f.dts [new file with mode: 0644]
arch/arm/boot/dts/omap3-igep0020.dts
arch/arm/boot/dts/omap3-igep0030-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/omap3-igep0030-rev-g.dts [new file with mode: 0644]
arch/arm/boot/dts/omap3-igep0030.dts
arch/arm/boot/dts/omap3-ldp.dts
arch/arm/boot/dts/omap3-lilly-a83x.dtsi
arch/arm/boot/dts/omap3-n900.dts
arch/arm/boot/dts/omap3-n950-n9.dtsi
arch/arm/boot/dts/omap3-sb-t35.dtsi
arch/arm/boot/dts/omap3-sbc-t3517.dts
arch/arm/boot/dts/omap3-sbc-t3530.dts
arch/arm/boot/dts/omap3-sbc-t3730.dts
arch/arm/boot/dts/omap3-tao3530.dtsi
arch/arm/boot/dts/omap3.dtsi
arch/arm/boot/dts/omap3430-sdp.dts
arch/arm/boot/dts/omap4-duovero-parlor.dts
arch/arm/boot/dts/omap4.dtsi
arch/arm/boot/dts/omap5.dtsi
arch/arm/boot/dts/r7s72100-genmai.dts
arch/arm/boot/dts/r7s72100.dtsi
arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts
arch/arm/boot/dts/r8a73a4.dtsi
arch/arm/boot/dts/r8a7740-armadillo800eva.dts
arch/arm/boot/dts/r8a7740.dtsi
arch/arm/boot/dts/r8a7778-bockw-reference.dts
arch/arm/boot/dts/r8a7778.dtsi
arch/arm/boot/dts/r8a7779-marzen.dts
arch/arm/boot/dts/r8a7779.dtsi
arch/arm/boot/dts/r8a7790-lager.dts
arch/arm/boot/dts/r8a7790.dtsi
arch/arm/boot/dts/r8a7791-henninger.dts
arch/arm/boot/dts/r8a7791-koelsch.dts
arch/arm/boot/dts/r8a7791.dtsi
arch/arm/boot/dts/r8a7794-alt.dts
arch/arm/boot/dts/r8a7794.dtsi
arch/arm/boot/dts/r8a77xx-aa104xd12-panel.dtsi [new file with mode: 0644]
arch/arm/boot/dts/rk3066a-bqcurie2.dts
arch/arm/boot/dts/rk3066a-marsboard.dts [new file with mode: 0644]
arch/arm/boot/dts/rk3066a.dtsi
arch/arm/boot/dts/rk3188-radxarock.dts
arch/arm/boot/dts/rk3188.dtsi
arch/arm/boot/dts/rk3288-evb-rk808.dts
arch/arm/boot/dts/rk3288.dtsi
arch/arm/boot/dts/rk3xxx.dtsi
arch/arm/boot/dts/s3c6410-mini6410.dts
arch/arm/boot/dts/s3c64xx.dtsi
arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
arch/arm/boot/dts/sh73a0.dtsi
arch/arm/boot/dts/socfpga.dtsi
arch/arm/boot/dts/socfpga_arria10.dtsi [new file with mode: 0644]
arch/arm/boot/dts/socfpga_arria10_socdk.dts [new file with mode: 0755]
arch/arm/boot/dts/socfpga_cyclone5.dtsi
arch/arm/boot/dts/ste-nomadik-nhk15.dts [new file with mode: 0644]
arch/arm/boot/dts/ste-nomadik-s8815.dts
arch/arm/boot/dts/ste-nomadik-stn8815.dtsi
arch/arm/boot/dts/stih407-b2120.dts
arch/arm/boot/dts/stih407-clock.dtsi
arch/arm/boot/dts/stih407-family.dtsi [new file with mode: 0644]
arch/arm/boot/dts/stih407.dtsi [deleted file]
arch/arm/boot/dts/stih410-b2120.dts [new file with mode: 0644]
arch/arm/boot/dts/stih410-clock.dtsi [new file with mode: 0644]
arch/arm/boot/dts/stih410-pinctrl.dtsi [new file with mode: 0644]
arch/arm/boot/dts/stih410.dtsi [new file with mode: 0644]
arch/arm/boot/dts/stih415-pinctrl.dtsi
arch/arm/boot/dts/stih415.dtsi
arch/arm/boot/dts/stih416-b2020.dts
arch/arm/boot/dts/stih416-b2020e.dts
arch/arm/boot/dts/stih416-pinctrl.dtsi
arch/arm/boot/dts/stih416.dtsi
arch/arm/boot/dts/stih41x-b2000.dtsi
arch/arm/boot/dts/stih41x-b2020.dtsi
arch/arm/boot/dts/stih41x-b2020x.dtsi
arch/arm/boot/dts/stihxxx-b2120.dtsi [new file with mode: 0644]
arch/arm/boot/dts/sun4i-a10-a1000.dts
arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts
arch/arm/boot/dts/sun4i-a10-cubieboard.dts
arch/arm/boot/dts/sun4i-a10-hackberry.dts
arch/arm/boot/dts/sun4i-a10-inet97fv2.dts
arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
arch/arm/boot/dts/sun4i-a10-pcduino.dts
arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts
arch/arm/boot/dts/sun5i-a13-hsg-h702.dts
arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
arch/arm/boot/dts/sun5i-a13-olinuxino.dts
arch/arm/boot/dts/sun6i-a31-app4-evb1.dts
arch/arm/boot/dts/sun6i-a31-colombus.dts
arch/arm/boot/dts/sun6i-a31-hummingbird.dts
arch/arm/boot/dts/sun6i-a31-m9.dts
arch/arm/boot/dts/sun6i-a31.dtsi
arch/arm/boot/dts/sun7i-a20-bananapi.dts [new file with mode: 0644]
arch/arm/boot/dts/sun7i-a20-cubietruck.dts
arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts
arch/arm/boot/dts/sun7i-a20-m3.dts [new file with mode: 0644]
arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts [new file with mode: 0644]
arch/arm/boot/dts/sun7i-a20-pcduino3.dts
arch/arm/boot/dts/sun7i-a20.dtsi
arch/arm/boot/dts/sun8i-a23-ippo-q8h-v5.dts
arch/arm/boot/dts/sun8i-a23.dtsi
arch/arm/boot/dts/sun9i-a80-optimus.dts [new file with mode: 0644]
arch/arm/boot/dts/sun9i-a80.dtsi [new file with mode: 0644]
arch/arm/boot/dts/sunxi-common-regulators.dtsi
arch/arm/boot/dts/tegra30-cardhu.dtsi
arch/arm/configs/nhk8815_defconfig
arch/arm/mach-mediatek/mediatek.c
arch/arm/mach-nomadik/cpu-8815.c
arch/arm/mach-omap2/pdata-quirks.c
arch/arm/mach-realview/Kconfig
arch/arm/mach-realview/Makefile
arch/arm/mach-realview/realview-dt.c [new file with mode: 0644]
arch/arm/mach-shmobile/board-ape6evm-reference.c
arch/arm/mach-shmobile/board-ape6evm.c
arch/arm/mach-shmobile/board-armadillo800eva.c
arch/arm/mach-shmobile/board-bockw-reference.c
arch/arm/mach-shmobile/board-bockw.c
arch/arm/mach-shmobile/board-koelsch-reference.c
arch/arm/mach-shmobile/board-koelsch.c
arch/arm/mach-shmobile/board-kzm9g-reference.c
arch/arm/mach-shmobile/board-kzm9g.c
arch/arm/mach-shmobile/board-lager-reference.c
arch/arm/mach-shmobile/board-lager.c
arch/arm/mach-shmobile/board-mackerel.c
arch/arm/mach-shmobile/board-marzen-reference.c
arch/arm/mach-shmobile/board-marzen.c
arch/arm/mach-shmobile/clock-r8a73a4.c
arch/arm/mach-shmobile/clock-r8a7740.c
arch/arm/mach-shmobile/clock-r8a7778.c
arch/arm/mach-shmobile/clock-r8a7779.c
arch/arm/mach-shmobile/clock-r8a7790.c
arch/arm/mach-shmobile/clock-r8a7791.c
arch/arm/mach-shmobile/clock-sh7372.c
arch/arm/mach-shmobile/clock-sh73a0.c
arch/arm/mach-shmobile/clock.c
arch/arm/mach-shmobile/console.c
arch/arm/mach-shmobile/headsmp-scu.S
arch/arm/mach-shmobile/intc-sh7372.c
arch/arm/mach-shmobile/intc-sh73a0.c
arch/arm/mach-shmobile/r8a73a4.h
arch/arm/mach-shmobile/r8a7740.h
arch/arm/mach-shmobile/r8a7778.h
arch/arm/mach-shmobile/setup-emev2.c
arch/arm/mach-shmobile/setup-r7s72100.c
arch/arm/mach-shmobile/setup-r8a73a4.c
arch/arm/mach-shmobile/setup-r8a7740.c
arch/arm/mach-shmobile/setup-r8a7778.c
arch/arm/mach-shmobile/setup-r8a7779.c
arch/arm/mach-shmobile/setup-r8a7790.c
arch/arm/mach-shmobile/setup-r8a7791.c
arch/arm/mach-shmobile/setup-rcar-gen2.c
arch/arm/mach-shmobile/setup-sh7372.c
arch/arm/mach-shmobile/setup-sh73a0.c
arch/arm/mach-shmobile/sleep-sh7372.S
arch/arm/mach-shmobile/smp-emev2.c
arch/arm/mach-shmobile/smp-r8a7779.c
arch/arm/mach-shmobile/smp-sh73a0.c
arch/arm/mach-shmobile/timer.c
arch/arm/mach-sti/Kconfig
drivers/irqchip/irq-gic.c
drivers/staging/iio/light/isl29028.c
include/dt-bindings/clock/r8a7740-clock.h
include/dt-bindings/clock/r8a7790-clock.h
include/dt-bindings/clock/r8a7791-clock.h
include/dt-bindings/clock/r8a7794-clock.h
include/dt-bindings/clock/stih407-clks.h [new file with mode: 0644]
include/dt-bindings/clock/stih410-clks.h [new file with mode: 0644]
include/dt-bindings/reset-controller/stih407-resets.h [new file with mode: 0644]

index c554ed3d44fb7c77f8ae19c441a57f5d05853ef8..556c8665fdbf0aa5b89e4a0818b66e30b702f3e9 100644 (file)
@@ -92,3 +92,68 @@ Required nodes:
 - core-module: the root node to the Versatile platforms must have
   a core-module with regs and the compatible strings
   "arm,core-module-versatile", "syscon"
+
+ARM RealView Boards
+-------------------
+The RealView boards cover tailored evaluation boards that are used to explore
+the ARM11 and Cortex A-8 and Cortex A-9 processors.
+
+Required properties (in root node):
+       /* RealView Emulation Baseboard */
+       compatible = "arm,realview-eb";
+        /* RealView Platform Baseboard for ARM1176JZF-S */
+       compatible = "arm,realview-pb1176";
+       /* RealView Platform Baseboard for ARM11 MPCore */
+       compatible = "arm,realview-pb11mp";
+       /* RealView Platform Baseboard for Cortex A-8 */
+       compatible = "arm,realview-pba8";
+       /* RealView Platform Baseboard Explore for Cortex A-9 */
+       compatible = "arm,realview-pbx";
+
+Required nodes:
+
+- soc: some node of the RealView platforms must be the SoC
+  node that contain the SoC-specific devices, withe the compatible
+  string set to one of these tuples:
+   "arm,realview-eb-soc", "simple-bus"
+   "arm,realview-pb1176-soc", "simple-bus"
+   "arm,realview-pb11mp-soc", "simple-bus"
+   "arm,realview-pba8-soc", "simple-bus"
+   "arm,realview-pbx-soc", "simple-bus"
+
+- syscon: some subnode of the RealView SoC node must be a
+  system controller node pointing to the control registers,
+  with the compatible string set to one of these tuples:
+   "arm,realview-eb-syscon", "syscon"
+   "arm,realview-pb1176-syscon", "syscon"
+   "arm,realview-pb11mp-syscon", "syscon"
+   "arm,realview-pba8-syscon", "syscon"
+   "arm,realview-pbx-syscon", "syscon"
+
+  Required properties for the system controller:
+  - regs: the location and size of the system controller registers,
+    one range of 0x1000 bytes.
+
+Example:
+
+/dts-v1/;
+#include <dt-bindings/interrupt-controller/irq.h>
+#include "skeleton.dtsi"
+
+/ {
+       model = "ARM RealView PB1176 with device tree";
+       compatible = "arm,realview-pb1176";
+
+       soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "arm,realview-pb1176-soc", "simple-bus";
+               ranges;
+
+               syscon: syscon@10000000 {
+                       compatible = "arm,realview-syscon", "syscon";
+                       reg = <0x10000000 0x1000>;
+               };
+
+       };
+};
diff --git a/Documentation/devicetree/bindings/arm/bcm/cygnus.txt b/Documentation/devicetree/bindings/arm/bcm/cygnus.txt
new file mode 100644 (file)
index 0000000..4c77169
--- /dev/null
@@ -0,0 +1,31 @@
+Broadcom Cygnus device tree bindings
+------------------------------------
+
+
+Boards with Cygnus SoCs shall have the following properties:
+
+Required root node property:
+
+BCM11300
+compatible = "brcm,bcm11300", "brcm,cygnus";
+
+BCM11320
+compatible = "brcm,bcm11320", "brcm,cygnus";
+
+BCM11350
+compatible = "brcm,bcm11350", "brcm,cygnus";
+
+BCM11360
+compatible = "brcm,bcm11360", "brcm,cygnus";
+
+BCM58300
+compatible = "brcm,bcm58300", "brcm,cygnus";
+
+BCM58302
+compatible = "brcm,bcm58302", "brcm,cygnus";
+
+BCM58303
+compatible = "brcm,bcm58303", "brcm,cygnus";
+
+BCM58305
+compatible = "brcm,bcm58305", "brcm,cygnus";
index c7d2fa15667826ac5d30455e89dc213085735759..b38608af66db5b9ab93e0cf59b55ffad44793baf 100644 (file)
@@ -17,6 +17,7 @@ Main node required properties:
        "arm,cortex-a7-gic"
        "arm,arm11mp-gic"
        "brcm,brahma-b15-gic"
+       "arm,arm1176jzf-devchip-gic"
 - interrupt-controller : Identifies the node as an interrupt controller
 - #interrupt-cells : Specifies the number of cells needed to encode an
   interrupt source.  The type shall be a <u32> and the value shall be 3.
index 904de5781f44d9dd10efae916101e1fac7835274..a99eb9eb14c0713809c388c43a863c2c37f41784 100644 (file)
@@ -106,11 +106,21 @@ Required subnode-properties:
 - groups: a list of strings describing the group names.
 - function: a string describing the function used to mux the groups.
 
+* Reset controller binding
+
+A reset controller is part of the chip control registers set. The chip control
+node also provides the reset. The register set is not at the same offset between
+Berlin SoCs.
+
+Required property:
+- #reset-cells: must be set to 2
+
 Example:
 
 chip: chip-control@ea0000 {
        compatible = "marvell,berlin2-chip-ctrl";
        #clock-cells = <1>;
+       #reset-cells = <2>;
        reg = <0xea0000 0x400>;
        clocks = <&refclk>, <&externaldev 0>;
        clock-names = "refclk", "video_ext0";
index fa252261dfaf888386f14e2117695a7599dba862..3be40139cfbbe85d8aaf5ce42bdc080d483535c1 100644 (file)
@@ -1,10 +1,14 @@
-Mediatek MT6589 Platforms Device Tree Bindings
+MediaTek mt65xx & mt81xx Platforms Device Tree Bindings
 
-Boards with a SoC of the Mediatek MT6589 shall have the following property:
+Boards with a MediaTek mt65xx/mt81xx SoC shall have the following property:
 
 Required root node property:
 
-compatible: must contain "mediatek,mt6589"
+compatible: Must contain one of
+   "mediatek,mt6589"
+   "mediatek,mt6592"
+   "mediatek,mt8127"
+   "mediatek,mt8135"
 
 
 Supported boards:
@@ -12,3 +16,12 @@ Supported boards:
 - bq Aquaris5 smart phone:
     Required root node properties:
       - compatible = "mundoreader,bq-aquaris5", "mediatek,mt6589";
+- Evaluation board for MT6592:
+    Required root node properties:
+      - compatible = "mediatek,mt6592-evb", "mediatek,mt6592";
+- MTK mt8127 tablet moose EVB:
+    Required root node properties:
+      - compatible = "mediatek,mt8127-moose", "mediatek,mt8127";
+- MTK mt8135 tablet EVB:
+    Required root node properties:
+      - compatible = "mediatek,mt8135-evbp1", "mediatek,mt8135";
index ddd9bcdf889c3f7ad5d2090048f3e2d9c149238c..4f6a82cef1d1a4f74a22304fb62c7abf48897ae1 100644 (file)
@@ -132,6 +132,9 @@ Boards:
 - AM335X Bone : Low cost community board
   compatible = "ti,am335x-bone", "ti,am33xx", "ti,omap3"
 
+- AM335X OrionLXm : Substation Automation Platform
+  compatible = "novatech,am335x-lxm", "ti,am33xx"
+
 - OMAP5 EVM : Evaluation Module
   compatible = "ti,omap5-evm", "ti,omap5"
 
index 857f12636eb28b58d6eacbaf29f9314c0670f3bd..eaa3d1a0eb0598bb283355b203c404f15621964a 100644 (file)
@@ -1,6 +1,10 @@
 Rockchip platforms device tree bindings
 ---------------------------------------
 
+- MarsBoard RK3066 board:
+    Required root node properties:
+      - compatible = "haoyu,marsboard-rk3066", "rockchip,rk3066a";
+
 - bq Curie 2 tablet:
     Required root node properties:
       - compatible = "mundoreader,bq-curie2", "rockchip,rk3066a";
index 2168ed31e1b0872ffa7efbb838a571e3ebbef7b6..43589d2466a7461911677c702dc8d206f8bdafa6 100644 (file)
@@ -1,11 +1,20 @@
-* Samsung's Exynos4210 based SMDKV310 evaluation board
-
-SMDKV310 evaluation board is based on Samsung's Exynos4210 SoC.
+* Samsung's Exynos SoC based boards
 
 Required root node properties:
     - compatible = should be one or more of the following.
-        (a) "samsung,smdkv310" - for Samsung's SMDKV310 eval board.
-        (b) "samsung,exynos4210"  - for boards based on Exynos4210 SoC.
+       - "samsung,monk"        - for Exynos3250-based Samsung Simband board.
+       - "samsung,rinato"      - for Exynos3250-based Samsung Gear2 board.
+       - "samsung,smdkv310"    - for Exynos4210-based Samsung SMDKV310 eval board.
+       - "samsung,trats"       - for Exynos4210-based Tizen Reference board.
+       - "samsung,universal_c210" - for Exynos4210-based Samsung board.
+       - "samsung,smdk4412",   - for Exynos4412-based Samsung SMDK4412 eval board.
+       - "samsung,trats2"      - for Exynos4412-based Tizen Reference board.
+       - "samsung,smdk5250"    - for Exynos5250-based Samsung SMDK5250 eval board.
+       - "samsung,xyref5260"   - for Exynos5260-based Samsung board.
+       - "samsung,smdk5410"    - for Exynos5410-based Samsung SMDK5410 eval board.
+       - "samsung,smdk5420"    - for Exynos5420-based Samsung SMDK5420 eval board.
+       - "samsung,sd5v1"       - for Exynos5440-based Samsung board.
+       - "samsung,ssdk5440"    - for Exynos5440-based Samsung board.
 
 Optional:
     - firmware node, specifying presence and type of secure firmware:
index 6256ec31666d51cb833c5d78ecfcf30293cefed2..2fdff5a806cfb76b5c43de6a65bc0292898fd710 100644 (file)
@@ -10,6 +10,12 @@ Required root node property: src
 
 Boards with the Nomadik SoC include:
 
+Nomadik NHK-15 board manufactured by ST Microelectronics:
+
+Required root node property:
+
+compatible="st,nomadik-nhk-15";
+
 S8815 "MiniKit" manufactured by Calao Systems:
 
 Required root node property:
diff --git a/Documentation/devicetree/bindings/clock/bcm-cygnus-clock.txt b/Documentation/devicetree/bindings/clock/bcm-cygnus-clock.txt
new file mode 100644 (file)
index 0000000..00d26ed
--- /dev/null
@@ -0,0 +1,34 @@
+Broadcom Cygnus Clocks
+
+This binding uses the common clock binding:
+Documentation/devicetree/bindings/clock/clock-bindings.txt
+
+Currently various "fixed" clocks are declared for peripheral drivers that use
+the common clock framework to reference their core clocks. Proper support of
+these clocks will be added later
+
+Device tree example:
+
+       clocks {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               osc: oscillator {
+                       compatible = "fixed-clock";
+                       #clock-cells = <1>;
+                       clock-frequency = <25000000>;
+               };
+
+               apb_clk: apb_clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <1000000000>;
+               };
+
+               periph_clk: periph_clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <500000000>;
+               };
+       };
index 278de8e64bbf591b2b9fe4350fb843679b2cdc8c..89b3250f049b6ead36b110df609a1ab340ac0fb8 100644 (file)
@@ -32,6 +32,7 @@ Optional properties:
     specified, default value is 0.
   - samsung,i2c-max-bus-freq: Desired frequency in Hz of the bus. If not
     specified, the default value in Hz is 100000.
+  - samsung,sysreg-phandle - handle to syscon used to control the system registers
 
 Example:
 
index fbde415078e6845cc5ff862a758959d64810c316..605dcca5dbec61a82f89bccb9f91a917ae283334 100644 (file)
@@ -56,6 +56,8 @@ gmt,g751              G751: Digital Temperature Sensor and Thermal Watchdog with Two-Wire In
 infineon,slb9635tt     Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz)
 infineon,slb9645tt     Infineon SLB9645 I2C TPM (new protocol, max 400khz)
 isl,isl12057           Intersil ISL12057 I2C RTC Chip
+isil,isl29028           (deprecated, use isl)
+isl,isl29028            Intersil ISL29028 Ambient Light and Proximity Sensor
 maxim,ds1050           5 Bit Programmable, Pulse-Width Modulator
 maxim,max1237          Low-Power, 4-/12-Channel, 2-Wire Serial, 12-Bit ADCs
 maxim,max6625          9-Bit/12-Bit Temperature Sensors with I²C-Compatible Serial Interface
index d9a8d5af1a21270ff2e79810c86079bac0757df2..ba0a34d97eb80261b98df15737110c614fbd28c8 100644 (file)
@@ -1,4 +1,4 @@
-* Renesas R-Car Multi-Function Timer Pulse Unit 2 (MTU2)
+* Renesas Multi-Function Timer Pulse Unit 2 (MTU2)
 
 The MTU2 is a multi-purpose, multi-channel timer/counter with configurable
 clock inputs and programmable compare match.
index 7db89fb2544411b5418caf94cb74fc16a648c188..cd5f20bf2582e742c426018d91d31c652767d7fd 100644 (file)
@@ -1,4 +1,4 @@
-* Renesas R-Car Timer Unit (TMU)
+* Renesas R-Mobile/R-Car Timer Unit (TMU)
 
 The TMU is a 32-bit timer/counter with configurable clock inputs and
 programmable compare match.
@@ -9,6 +9,8 @@ are independent. The TMU hardware supports up to three channels.
 Required Properties:
 
   - compatible: must contain one or more of the following:
+    - "renesas,tmu-r8a7740" for the r8a7740 TMU
+    - "renesas,tmu-r8a7778" for the r8a7778 TMU
     - "renesas,tmu-r8a7779" for the r8a7779 TMU
     - "renesas,tmu" for any TMU.
       This is a fallback for the above renesas,tmu-* entries
index 776f4af2155d651447342841b5a2806a4d3dcc01..8c4a0db062cdad0abd017e642b207749e94114a1 100644 (file)
@@ -77,6 +77,7 @@ innolux       Innolux Corporation
 intel  Intel Corporation
 intercontrol   Inter Control Group
 isee   ISEE 2007 S.L.
+isil    Intersil (deprecated, use isl)
 isl    Intersil
 karo   Ka-Ro electronics GmbH
 keymile        Keymile GmbH
index 4600499089daaf7ed18122babc1fe7d6b4cc51ce..cd24e2bc3f5d5b329f6e281d9be76e61346fae2c 100644 (file)
@@ -54,8 +54,12 @@ dtb-$(CONFIG_ARCH_AT91)      += at91-sama5d4ek.dtb
 dtb-$(CONFIG_ARCH_ATLAS6) += atlas6-evb.dtb
 dtb-$(CONFIG_ARCH_AXXIA) += axm5516-amarillo.dtb
 dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb
+dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b-plus.dtb
 dtb-$(CONFIG_ARCH_BCM_5301X) += bcm4708-netgear-r6250.dtb
 dtb-$(CONFIG_ARCH_BCM_63XX) += bcm963138dvt.dtb
+dtb-$(CONFIG_ARCH_BCM_CYGNUS) += bcm911360_entphn.dtb \
+       bcm911360k.dtb \
+       bcm958300k.dtb
 dtb-$(CONFIG_ARCH_BCM_MOBILE) += bcm28155-ap.dtb \
        bcm21664-garnet.dtb
 dtb-$(CONFIG_ARCH_BERLIN) += \
@@ -67,7 +71,9 @@ dtb-$(CONFIG_ARCH_BRCMSTB) += \
 dtb-$(CONFIG_ARCH_DAVINCI) += da850-enbw-cmc.dtb \
        da850-evm.dtb
 dtb-$(CONFIG_ARCH_EFM32) += efm32gg-dk3750.dtb
-dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
+dtb-$(CONFIG_ARCH_EXYNOS) += exynos3250-monk.dtb \
+       exynos3250-rinato.dtb \
+       exynos4210-origen.dtb \
        exynos4210-smdkv310.dtb \
        exynos4210-trats.dtb \
        exynos4210-universal_c210.dtb \
@@ -81,6 +87,7 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
        exynos5250-arndale.dtb \
        exynos5250-smdk5250.dtb \
        exynos5250-snow.dtb \
+       exynos5250-spring.dtb \
        exynos5260-xyref5260.dtb \
        exynos5410-smdk5410.dtb \
        exynos5420-arndale-octa.dtb \
@@ -104,6 +111,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += kirkwood-b3.dtb \
        kirkwood-d2net.dtb \
        kirkwood-db-88f6281.dtb \
        kirkwood-db-88f6282.dtb \
+       kirkwood-dir665.dtb \
        kirkwood-dns320.dtb \
        kirkwood-dns325.dtb \
        kirkwood-dockstar.dtb \
@@ -278,7 +286,8 @@ dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \
        imx28-m28evk.dtb \
        imx28-sps1.dtb \
        imx28-tx28.dtb
-dtb-$(CONFIG_ARCH_NOMADIK) += ste-nomadik-s8815.dtb
+dtb-$(CONFIG_ARCH_NOMADIK) += ste-nomadik-s8815.dtb \
+       ste-nomadik-nhk15.dtb
 dtb-$(CONFIG_ARCH_NSPIRE) += nspire-cx.dtb \
        nspire-tp.dtb \
        nspire-clp.dtb
@@ -306,7 +315,9 @@ dtb-$(CONFIG_ARCH_OMAP3) += am3517-craneboard.dtb \
        omap3-ha.dtb \
        omap3-ha-lcd.dtb \
        omap3-igep0020.dtb \
+       omap3-igep0020-rev-f.dtb \
        omap3-igep0030.dtb \
+       omap3-igep0030-rev-g.dtb \
        omap3-ldp.dtb \
        omap3-lilly-dbb056.dtb \
        omap3-n900.dtb \
@@ -335,7 +346,8 @@ dtb-$(CONFIG_SOC_AM33XX) += am335x-base0033.dtb \
        am335x-evm.dtb \
        am335x-evmsk.dtb \
        am335x-nano.dtb \
-       am335x-pepper.dtb
+       am335x-pepper.dtb \
+       am335x-lxm.dtb
 dtb-$(CONFIG_ARCH_OMAP4) += omap4-duovero-parlor.dtb \
        omap4-panda.dtb \
        omap4-panda-a4.dtb \
@@ -351,6 +363,7 @@ dtb-$(CONFIG_SOC_OMAP5) += omap5-cm-t54.dtb \
        omap5-sbc-t54.dtb \
        omap5-uevm.dtb
 dtb-$(CONFIG_SOC_DRA7XX) += dra7-evm.dtb \
+       am57xx-beagle-x15.dtb \
        dra72-evm.dtb
 dtb-$(CONFIG_ARCH_ORION5X) += orion5x-lacie-d2-network.dtb \
        orion5x-lacie-ethernet-disk-mini-v2.dtb \
@@ -367,8 +380,10 @@ dtb-$(CONFIG_ARCH_QCOM) += \
        qcom-msm8660-surf.dtb \
        qcom-msm8960-cdp.dtb \
        qcom-msm8974-sony-xperia-honami.dtb
+dtb-$(CONFIG_ARCH_REALVIEW) += arm-realview-pb1176.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += \
        rk3066a-bqcurie2.dtb \
+       rk3066a-marsboard.dtb \
        rk3188-radxarock.dtb \
        rk3288-evb-act8846.dtb \
        rk3288-evb-rk808.dtb
@@ -380,27 +395,28 @@ dtb-$(CONFIG_ARCH_S5PV210) += s5pv210-aquila.dtb \
        s5pv210-smdkc110.dtb \
        s5pv210-smdkv210.dtb \
        s5pv210-torbreck.dtb
-dtb-$(CONFIG_ARCH_SHMOBILE_LEGACY) += r7s72100-genmai.dtb \
+dtb-$(CONFIG_ARCH_SHMOBILE_LEGACY) += \
+       r8a73a4-ape6evm.dtb \
+       r8a73a4-ape6evm-reference.dtb \
        r8a7740-armadillo800eva.dtb \
        r8a7778-bockw.dtb \
        r8a7778-bockw-reference.dtb \
        r8a7779-marzen.dtb \
-       r8a7791-koelsch.dtb \
        r8a7790-lager.dtb \
+       r8a7791-koelsch.dtb \
+       sh7372-mackerel.dtb \
        sh73a0-kzm9g.dtb \
-       sh73a0-kzm9g-reference.dtb \
-       r8a73a4-ape6evm.dtb \
-       r8a73a4-ape6evm-reference.dtb \
-       sh7372-mackerel.dtb
+       sh73a0-kzm9g-reference.dtb
 dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += emev2-kzm9d.dtb \
        r7s72100-genmai.dtb \
        r8a7740-armadillo800eva.dtb \
+       r8a7779-marzen.dtb \
+       r8a7790-lager.dtb \
        r8a7791-henninger.dtb \
        r8a7791-koelsch.dtb \
-       r8a7790-lager.dtb \
-       r8a7779-marzen.dtb \
        r8a7794-alt.dtb
 dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_arria5_socdk.dtb \
+       socfpga_arria10_socdk.dtb \
        socfpga_cyclone5_socdk.dtb \
        socfpga_cyclone5_sockit.dtb \
        socfpga_cyclone5_socrates.dtb \
@@ -413,6 +429,7 @@ dtb-$(CONFIG_ARCH_SPEAR3XX)+= spear300-evb.dtb \
        spear320-hmi.dtb
 dtb-$(CONFIG_ARCH_SPEAR6XX)+= spear600-evb.dtb
 dtb-$(CONFIG_ARCH_STI)+= stih407-b2120.dtb \
+       stih410-b2120.dtb \
        stih415-b2000.dtb \
        stih415-b2020.dtb \
        stih416-b2000.dtb \
@@ -439,15 +456,20 @@ dtb-$(CONFIG_MACH_SUN6I) += \
        sun6i-a31-hummingbird.dtb \
        sun6i-a31-m9.dtb
 dtb-$(CONFIG_MACH_SUN7I) += \
+       sun7i-a20-bananapi.dtb \
        sun7i-a20-cubieboard2.dtb \
        sun7i-a20-cubietruck.dtb \
        sun7i-a20-hummingbird.dtb \
        sun7i-a20-i12-tvbox.dtb \
+       sun7i-a20-m3.dtb \
        sun7i-a20-olinuxino-lime.dtb \
+       sun7i-a20-olinuxino-lime2.dtb \
        sun7i-a20-olinuxino-micro.dtb \
        sun7i-a20-pcduino3.dtb
 dtb-$(CONFIG_MACH_SUN8I) += \
        sun8i-a23-ippo-q8h-v5.dtb
+dtb-$(CONFIG_MACH_SUN9I) += \
+       sun9i-a80-optimus.dtb
 dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
        tegra20-iris-512.dtb \
        tegra20-medcom-wide.dtb \
@@ -519,7 +541,10 @@ dtb-$(CONFIG_MACH_DOVE) += dove-cm-a510.dtb \
        dove-d2plug.dtb \
        dove-d3plug.dtb \
        dove-dove-db.dtb
-dtb-$(CONFIG_ARCH_MEDIATEK) += mt6589-aquaris5.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt6589-aquaris5.dtb \
+       mt6592-evb.dtb \
+       mt8127-moose.dtb \
+       mt8135-evbp1.dtb
 
 targets += dtbs dtbs_install
 targets += $(dtb-y)
index e2156a583de76a2cd67dcbc06593fb192caaf7e4..d46b31c45af00f7f35427d0216f7baa4a8391d40 100644 (file)
                        0x144 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */
                >;
        };
+
+       dcan1_pins_default: dcan1_pins_default {
+               pinctrl-single,pins = <
+                       0x168 (PIN_OUTPUT | MUX_MODE2) /* uart0_ctsn.d_can1_tx */
+                       0x16c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* uart0_rtsn.d_can1_rx */
+               >;
+       };
 };
 
 &uart0 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&nandflash_pins_s0>;
-       ranges = <0 0 0x08000000 0x10000000>;   /* CS0: NAND */
+       ranges = <0 0 0x08000000 0x1000000>;    /* CS0: 16MB for NAND */
        nand@0,0 {
-               reg = <0 0 0>; /* CS0, offset 0 */
+               reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
                ti,nand-ecc-opt = "bch8";
                ti,elm-id = <&elm>;
                nand-bus-width = <8>;
 &aes {
        status = "okay";
 };
+
+&dcan1 {
+       status = "disabled";    /* Enable only if Profile 1 is selected */
+       pinctrl-names = "default";
+       pinctrl-0 = <&dcan1_pins_default>;
+};
index a1a0cc5eb35cb8ac9851591bb5b7b6fcc69f483c..c0e1135256cca7b781504e4df587a2ebd7768294 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&nandflash_pins>;
 
-       ranges = <0 0 0x08000000 0x10000000>;   /* CS0: NAND */
+       ranges = <0 0 0x08000000 0x1000000>;    /* CS0: 16MB for NAND */
 
        nand@0,0 {
-               reg = <0 0 0>; /* CS0, offset 0 */
+               reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
                nand-bus-width = <8>;
                ti,nand-ecc-opt = "bch8";
                gpmc,device-width = <1>;
diff --git a/arch/arm/boot/dts/am335x-lxm.dts b/arch/arm/boot/dts/am335x-lxm.dts
new file mode 100644 (file)
index 0000000..7266a00
--- /dev/null
@@ -0,0 +1,362 @@
+/*
+ * Copyright (C) 2014 NovaTech LLC - http://www.novatechweb.com
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/dts-v1/;
+
+#include "am33xx.dtsi"
+
+/ {
+       model = "NovaTech OrionLXm";
+       compatible = "novatech,am335x-lxm", "ti,am33xx";
+
+       cpus {
+               cpu@0 {
+                       cpu0-supply = <&vdd1_reg>;
+               };
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x20000000>; /* 512 MB */
+       };
+
+       /* Power supply provides a fixed 5V @2A */
+       vbat: fixedregulator@0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vbat";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-boot-on;
+       };
+
+       /* Power supply provides a fixed 3.3V @3A */
+       vmmcsd_fixed: fixedregulator@1 {
+               compatible = "regulator-fixed";
+               regulator-name = "vmmcsd_fixed";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+       };
+};
+
+&am33xx_pinmux {
+       mmc1_pins: pinmux_mmc1_pins {
+               pinctrl-single,pins = <
+                       0xf0 (PIN_INPUT_PULLUP | MUX_MODE0)     /* mmc0_dat3 */
+                       0xf4 (PIN_INPUT_PULLUP | MUX_MODE0)     /* mmc0_dat2 */
+                       0xf8 (PIN_INPUT_PULLUP | MUX_MODE0)     /* mmc0_dat1 */
+                       0xfc (PIN_INPUT_PULLUP | MUX_MODE0)     /* mmc0_dat0 */
+                       0x100 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_clk */
+                       0x104 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_cmd */
+               >;
+       };
+
+       i2c0_pins: pinmux_i2c0_pins {
+               pinctrl-single,pins = <
+                       0x188 (PIN_INPUT | MUX_MODE0)   /* i2c0_sda.i2c0_sda */
+                       0x18c (PIN_INPUT | MUX_MODE0)   /* i2c0_scl.i2c0_scl */
+               >;
+       };
+
+       cpsw_default: cpsw_default {
+               pinctrl-single,pins = <
+                       /* Slave 1 */
+                       0x64 (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* rmii1_int */
+                       0x10c (PIN_INPUT_PULLDOWN | MUX_MODE1)  /* rmii1_crs_dv */
+                       0x110 (PIN_INPUT_PULLDOWN | MUX_MODE1)  /* rmii1_rxer */
+                       0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* rmii1_txen */
+                       0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* rmii1_td1 */
+                       0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* rmii1_td0 */
+                       0x13c (PIN_INPUT_PULLDOWN | MUX_MODE1)  /* rmii1_rd1 */
+                       0x140 (PIN_INPUT_PULLDOWN | MUX_MODE1)  /* rmii1_rd0 */
+                       0x144 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* rmii1_refclk */
+
+                       /* Slave 2 */
+                       0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE3)  /* rmii2_txen */
+                       0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE3)  /* rmii2_td1 */
+                       0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE3)  /* rmii2_td0 */
+                       0x68 (PIN_INPUT_PULLDOWN | MUX_MODE3)   /* rmii2_rd1 */
+                       0x6c (PIN_INPUT_PULLDOWN | MUX_MODE3)   /* rmii2_rd0 */
+                       0x70 (PIN_INPUT_PULLDOWN | MUX_MODE3)   /* rmii2_crs_dv */
+                       0x74 (PIN_INPUT_PULLDOWN | MUX_MODE3)   /* rmii2_rxer */
+                       0x78 (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* rmii2_int */
+                       0x108 (PIN_INPUT_PULLDOWN | MUX_MODE1)  /* rmii2_refclk */
+               >;
+       };
+
+       cpsw_sleep: cpsw_sleep {
+               pinctrl-single,pins = <
+                       /* Slave 1 reset value */
+                       0x64 (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* rmii1_int */
+                       0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* rmii1_crs_dv */
+                       0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* rmii1_rxer */
+                       0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* rmii1_txen */
+                       0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* rmii1_td1 */
+                       0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* rmii1_td0 */
+                       0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* rmii1_rd1 */
+                       0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* rmii1_rd0 */
+                       0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* rmii1_refclk */
+
+                       /* Slave 2 reset value*/
+                       0x40 (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* rmii2_txen */
+                       0x50 (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* rmii2_td1 */
+                       0x54 (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* rmii2_td0 */
+                       0x68 (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* rmii2_rd1 */
+                       0x6c (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* rmii2_rd0 */
+                       0x70 (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* rmii2_crs_dv */
+                       0x74 (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* rmii2_rxer */
+                       0x78 (PIN_INPUT_PULLDOWN | MUX_MODE7)   /* rmii2_int */
+                       0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7)  /* rmii2_refclk */
+               >;
+       };
+
+       davinci_mdio_default: davinci_mdio_default {
+               pinctrl-single,pins = <
+                       /* MDIO */
+                       0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)    /* mdio_data.mdio_data */
+                       0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0)                   /* mdio_clk.mdio_clk */
+               >;
+       };
+
+       davinci_mdio_sleep: davinci_mdio_sleep {
+               pinctrl-single,pins = <
+                       /* MDIO reset value */
+                       0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+                       0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+               >;
+       };
+
+       emmc_pins: pinmux_emmc_pins {
+               pinctrl-single,pins = <
+                       0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
+                       0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
+                       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 */
+               >;
+       };
+
+       uart0_pins: pinmux_uart0_pins {
+               pinctrl-single,pins = <
+                       0x170 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart0_rxd.uart0_rxd */
+                       0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
+               >;
+       };
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins>;
+
+       status = "okay";
+       clock-frequency = <400000>;
+
+       serial_config1: serial_config1@20 {
+               compatible = "nxp,pca9539";
+               reg = <0x20>;
+       };
+
+       serial_config2: serial_config2@21 {
+               compatible = "nxp,pca9539";
+               reg = <0x21>;
+       };
+
+       tps: tps@2d {
+               compatible = "ti,tps65910";
+               reg = <0x2d>;
+       };
+};
+
+/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 - unused */
+
+               vio_reg: regulator@1 {
+                       regulator-name = "vio_1v5,ddr";
+                       regulator-min-microvolt = <1500000>;
+                       regulator-max-microvolt = <1500000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+
+               vdd1_reg: regulator@2 {
+                       regulator-name = "vdd1,mpu";
+                       regulator-min-microvolt = <600000>;
+                       regulator-max-microvolt = <1500000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+
+               vdd2_reg: regulator@3 {
+                       regulator-name = "vdd2_1v1,core";
+                       regulator-min-microvolt = <1100000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+
+               /* vdd3 - unused */
+
+               /* vdig1 - unused */
+
+               vdig2_reg: regulator@6 {
+                       regulator-name = "vdig2_1v8,vdds_pll";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+
+               /* vpll - unused */
+
+               vdac_reg: regulator@8 {
+                       regulator-name = "vdac_1v8,vdds";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+
+               vaux1_reg: regulator@9 {
+                       regulator-name = "vaux1_1v8,usb";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+
+               vaux2_reg: regulator@10 {
+                       regulator-name = "vaux2_3v3,io";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+
+               vaux33_reg: regulator@11 {
+                       regulator-name = "vaux33_3v3,usb";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+
+               vmmc_reg: regulator@12 {
+                       regulator-name = "vmmc_3v3,io";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+       };
+};
+
+&sham {
+       status = "okay";
+};
+
+&aes {
+       status = "okay";
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins>;
+
+       status = "okay";
+};
+
+&usb {
+       status = "okay";
+};
+
+&usb_ctrl_mod {
+       status = "okay";
+};
+
+&usb0_phy {
+       status = "okay";
+};
+
+&usb1_phy {
+       status = "okay";
+};
+
+&usb0 {
+       status = "okay";
+       dr_mode = "host";
+};
+
+&usb1 {
+       status = "okay";
+       dr_mode = "host";
+};
+
+&cppi41dma  {
+       status = "okay";
+};
+
+&cpsw_emac0 {
+       phy_id = <&davinci_mdio>, <5>;
+       phy-mode = "rmii";
+       dual_emac_res_vlan = <2>;
+};
+
+&cpsw_emac1 {
+       phy_id = <&davinci_mdio>, <4>;
+       phy-mode = "rmii";
+       dual_emac_res_vlan = <3>;
+};
+
+&mac {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&cpsw_default>;
+       pinctrl-1 = <&cpsw_sleep>;
+       dual_emac = <1>;
+       status = "okay";
+};
+
+&davinci_mdio {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&davinci_mdio_default>;
+       pinctrl-1 = <&davinci_mdio_sleep>;
+       status = "okay";
+};
+
+&mmc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins>;
+       vmmc-supply = <&vmmcsd_fixed>;
+       bus-width = <4>;
+       status = "okay";
+};
+
+&mmc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_pins>;
+       vmmc-supply = <&vmmcsd_fixed>;
+       bus-width = <8>;
+       ti,non-removable;
+       status = "okay";
+};
+
index 831810583823b78f735a11b354c715461f376401..befe713b3e1bb01c1d1232854cd8f8a7142fd7ae 100644 (file)
                };
        };
 
+       am33xx_control_module: control_module@4a002000 {
+               compatible = "syscon";
+               reg = <0x44e10000 0x7fc>;
+       };
+
        am33xx_pinmux: pinmux@44e10800 {
                compatible = "pinctrl-single";
                reg = <0x44e10800 0x0238>;
                        reg = <0x44e09000 0x2000>;
                        interrupts = <72>;
                        status = "disabled";
+                       dmas = <&edma 26>, <&edma 27>;
+                       dma-names = "tx", "rx";
                };
 
                uart1: serial@48022000 {
                        reg = <0x48022000 0x2000>;
                        interrupts = <73>;
                        status = "disabled";
+                       dmas = <&edma 28>, <&edma 29>;
+                       dma-names = "tx", "rx";
                };
 
                uart2: serial@48024000 {
                        reg = <0x48024000 0x2000>;
                        interrupts = <74>;
                        status = "disabled";
+                       dmas = <&edma 30>, <&edma 31>;
+                       dma-names = "tx", "rx";
                };
 
                uart3: serial@481a6000 {
                        interrupts = <91>;
                };
 
-               dcan0: d_can@481cc000 {
-                       compatible = "bosch,d_can";
+               dcan0: can@481cc000 {
+                       compatible = "ti,am3352-d_can";
                        ti,hwmods = "d_can0";
-                       reg = <0x481cc000 0x2000
-                               0x44e10644 0x4>;
+                       reg = <0x481cc000 0x2000>;
+                       clocks = <&dcan0_fck>;
+                       clock-names = "fck";
+                       syscon-raminit = <&am33xx_control_module 0x644 0>;
                        interrupts = <52>;
                        status = "disabled";
                };
 
-               dcan1: d_can@481d0000 {
-                       compatible = "bosch,d_can";
+               dcan1: can@481d0000 {
+                       compatible = "ti,am3352-d_can";
                        ti,hwmods = "d_can1";
-                       reg = <0x481d0000 0x2000
-                               0x44e10644 0x4>;
+                       reg = <0x481d0000 0x2000>;
+                       clocks = <&dcan1_fck>;
+                       clock-names = "fck";
+                       syscon-raminit = <&am33xx_control_module 0x644 1>;
                        interrupts = <55>;
                        status = "disabled";
                };
                        reg = <0x480C8000 0x200>;
                        interrupts = <77>;
                        ti,hwmods = "mailbox";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <4>;
                        ti,mbox-num-fifos = <8>;
                        mbox_wkupm3: wkup_m3 {
index 46660ffd2b65bbe90100b2b251b29fb6528afe31..d42d7865dd53b1c3b3d7ca4c7ff5d508094cd859 100644 (file)
                cache-level = <2>;
        };
 
+       am43xx_control_module: control_module@4a002000 {
+               compatible = "syscon";
+               reg = <0x44e10000 0x7f4>;
+       };
+
        am43xx_pinmux: pinmux@44e10800 {
                compatible = "ti,am437-padconf", "pinctrl-single";
                reg = <0x44e10800 0x31c>;
                        reg = <0x480C8000 0x200>;
                        interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mailbox";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <4>;
                        ti,mbox-num-fifos = <8>;
                        mbox_wkupm3: wkup_m3 {
                        };
                };
 
+               tscadc: tscadc@44e0d000 {
+                       compatible = "ti,am3359-tscadc";
+                       reg = <0x44e0d000 0x1000>;
+                       ti,hwmods = "adc_tsc";
+                       interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&adc_tsc_fck>;
+                       clock-names = "fck";
+                       status = "disabled";
+
+                       tsc {
+                               compatible = "ti,am3359-tsc";
+                       };
+
+                       adc {
+                               #io-channel-cells = <1>;
+                               compatible = "ti,am3359-adc";
+                       };
+
+               };
+
                sham: sham@53100000 {
                        compatible = "ti,omap5-sham";
                        ti,hwmods = "sham";
                        compatible = "mmio-sram";
                        reg = <0x40300000 0x40000>; /* 256k */
                };
+
+               dcan0: can@481cc000 {
+                       compatible = "ti,am4372-d_can", "ti,am3352-d_can";
+                       ti,hwmods = "d_can0";
+                       clocks = <&dcan0_fck>;
+                       clock-names = "fck";
+                       reg = <0x481cc000 0x2000>;
+                       syscon-raminit = <&am43xx_control_module 0x644 0>;
+                       interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               dcan1: can@481d0000 {
+                       compatible = "ti,am4372-d_can", "ti,am3352-d_can";
+                       ti,hwmods = "d_can1";
+                       clocks = <&dcan1_fck>;
+                       clock-names = "fck";
+                       reg = <0x481d0000 0x2000>;
+                       syscon-raminit = <&am43xx_control_module 0x644 1>;
+                       interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
        };
 };
 
index e7ac47fa6615e33ee52e3ef58025721f49c7eb08..bd8d932c591c71cd66303c8cc1cfa1b32cacc186 100644 (file)
                        0x238 (PIN_OUTPUT_PULLUP | MUX_MODE7)
                >;
        };
+
+       dcan0_default: dcan0_default_pins {
+               pinctrl-single,pins = <
+                       0x178 (PIN_OUTPUT | MUX_MODE2)          /* uart1_ctsn.d_can0_tx */
+                       0x17c (PIN_INPUT_PULLUP | MUX_MODE2)    /* uart1_rtsn.d_can0_rx */
+               >;
+       };
+
+       dcan1_default: dcan1_default_pins {
+               pinctrl-single,pins = <
+                       0x180 (PIN_OUTPUT | MUX_MODE2)          /* uart1_rxd.d_can1_tx */
+                       0x184 (PIN_INPUT_PULLUP | MUX_MODE2)    /* uart1_txd.d_can1_rx */
+               >;
+       };
 };
 
 &i2c0 {
        status = "okay";
 };
 
+&tscadc {
+       status = "okay";
+
+       adc {
+               ti,adc-channels = <0 1 2 3 4 5 6 7>;
+       };
+};
+
 &ecap0 {
        status = "okay";
        pinctrl-names = "default";
                };
        };
 };
+
+&dcan0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&dcan0_default>;
+       status = "okay";
+};
+
+&dcan1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&dcan1_default>;
+       status = "okay";
+};
index ac3e4859935f1ad31da67107eda970eec6f526ba..3ce3a19f7518f178aaafdeed9993cbc5fa1fdeff 100644 (file)
        status = "okay";        /* Disable QSPI when enabling GPMC (NAND) */
        pinctrl-names = "default";
        pinctrl-0 = <&nand_flash_x8>;
-       ranges = <0 0 0x08000000 0x10000000>;   /* CS0: NAND */
+       ranges = <0 0 0x08000000 0x1000000>;    /* CS0: 16MB for NAND */
        nand@0,0 {
-               reg = <0 0 0>; /* CS0, offset 0 */
+               reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
                ti,nand-ecc-opt = "bch16";
                ti,elm-id = <&elm>;
                nand-bus-width = <8>;
        status = "okay";
 };
 
+&tscadc {
+       status = "okay";
+
+       adc {
+               ti,adc-channels = <0 1 2 3 4 5 6 7>;
+       };
+};
+
 &ecap0 {
                status = "okay";
                pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/am57xx-beagle-x15.dts b/arch/arm/boot/dts/am57xx-beagle-x15.dts
new file mode 100644 (file)
index 0000000..49edbda
--- /dev/null
@@ -0,0 +1,405 @@
+/*
+ * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/dts-v1/;
+
+#include "dra74x.dtsi"
+#include <dt-bindings/clk/ti-dra7-atl.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       model = "TI AM5728 BeagleBoard-X15";
+       compatible = "ti,am572x-beagle-x15", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
+
+       aliases {
+               rtc0 = &mcp_rtc;
+               rtc1 = &tps659038_rtc;
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x80000000>;
+       };
+
+       vdd_3v3: fixedregulator-vdd_3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_3v3";
+               vin-supply = <&regen1>;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       vtt_fixed: fixedregulator-vtt {
+               /* TPS51200 */
+               compatible = "regulator-fixed";
+               regulator-name = "vtt_fixed";
+               vin-supply = <&smps3_reg>;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+               enable-active-high;
+               gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&leds_pins_default>;
+
+               led@0 {
+                       label = "beagle-x15:usr0";
+                       gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+                       default-state = "off";
+               };
+
+               led@1 {
+                       label = "beagle-x15:usr1";
+                       gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "cpu0";
+                       default-state = "off";
+               };
+
+               led@2 {
+                       label = "beagle-x15:usr2";
+                       gpios = <&gpio7 14 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "mmc0";
+                       default-state = "off";
+               };
+
+               led@3 {
+                       label = "beagle-x15:usr3";
+                       gpios = <&gpio7 15 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "ide-disk";
+                       default-state = "off";
+               };
+       };
+};
+
+&dra7_pmx_core {
+       leds_pins_default: leds_pins_default {
+               pinctrl-single,pins = <
+                       0x3a8 (PIN_OUTPUT | MUX_MODE14) /* spi1_d1.gpio7_8 */
+                       0x3ac (PIN_OUTPUT | MUX_MODE14) /* spi1_d0.gpio7_9 */
+                       0x3c0 (PIN_OUTPUT | MUX_MODE14) /* spi2_sclk.gpio7_14 */
+                       0x3c4 (PIN_OUTPUT | MUX_MODE14) /* spi2_d1.gpio7_15 */
+               >;
+       };
+
+       i2c1_pins_default: i2c1_pins_default {
+               pinctrl-single,pins = <
+                       0x400 (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c1_sda.sda */
+                       0x404 (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c1_scl.scl */
+               >;
+       };
+
+       i2c3_pins_default: i2c3_pins_default {
+               pinctrl-single,pins = <
+                       0x2a4 (PIN_INPUT| MUX_MODE10)   /* mcasp1_aclkx.i2c3_sda */
+                       0x2a8 (PIN_INPUT| MUX_MODE10)   /* mcasp1_fsx.i2c3_scl */
+               >;
+       };
+
+       uart3_pins_default: uart3_pins_default {
+               pinctrl-single,pins = <
+                       0x248 (PIN_INPUT_SLEW | MUX_MODE0) /* uart3_rxd.rxd */
+                       0x24c (PIN_INPUT_SLEW | MUX_MODE0) /* uart3_txd.txd */
+               >;
+       };
+
+       mmc1_pins_default: mmc1_pins_default {
+               pinctrl-single,pins = <
+                       0x36c (PIN_INPUT | MUX_MODE14)  /* mmc1sdcd.gpio219 */
+                       0x354 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
+                       0x358 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
+                       0x35c (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
+                       0x360 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
+                       0x364 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
+                       0x368 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc2_pins_default: mmc2_pins_default {
+               pinctrl-single,pins = <
+                       0x9c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
+                       0xb0 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
+                       0xa0 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
+                       0xa4 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
+                       0xa8 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
+                       0xac (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
+                       0x8c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
+                       0x90 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
+                       0x94 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
+                       0x98 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
+               >;
+       };
+
+       tps659038_pins_default: tps659038_pins_default {
+               pinctrl-single,pins = <
+                       0x418 (PIN_INPUT_PULLUP | MUX_MODE14)   /* wakeup0.gpio1_0 */
+               >;
+       };
+
+       tmp102_pins_default: tmp102_pins_default {
+               pinctrl-single,pins = <
+                       0x3C8 (PIN_INPUT_PULLUP | MUX_MODE14)   /* spi2_d0.gpio7_16 */
+               >;
+       };
+
+       mcp79410_pins_default: mcp79410_pins_default {
+               pinctrl-single,pins = <
+                       0x424 (PIN_INPUT_PULLUP | MUX_MODE1)    /* wakeup3.sys_nirq1 */
+               >;
+       };
+
+       usb1_pins: pinmux_usb1_pins {
+               pinctrl-single,pins = <
+                       0x280 (PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */
+               >;
+       };
+
+};
+
+&i2c1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins_default>;
+       clock-frequency = <400000>;
+
+       tps659038: tps659038@58 {
+               compatible = "ti,tps659038";
+               reg = <0x58>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&tps659038_pins_default>;
+
+               #interrupt-cells = <2>;
+               interrupt-controller;
+
+               ti,system-power-controller;
+
+               tps659038_pmic {
+                       compatible = "ti,tps659038-pmic";
+
+                       regulators {
+                               smps12_reg: smps12 {
+                                       /* VDD_MPU */
+                                       regulator-name = "smps12";
+                                       regulator-min-microvolt = < 850000>;
+                                       regulator-max-microvolt = <1250000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               smps3_reg: smps3 {
+                                       /* VDD_DDR */
+                                       regulator-name = "smps3";
+                                       regulator-min-microvolt = <1350000>;
+                                       regulator-max-microvolt = <1350000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               smps45_reg: smps45 {
+                                       /* VDD_DSPEVE, VDD_IVA, VDD_GPU */
+                                       regulator-name = "smps45";
+                                       regulator-min-microvolt = < 850000>;
+                                       regulator-max-microvolt = <1150000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               smps6_reg: smps6 {
+                                       /* VDD_CORE */
+                                       regulator-name = "smps6";
+                                       regulator-min-microvolt = <850000>;
+                                       regulator-max-microvolt = <1030000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               /* SMPS7 unused */
+
+                               smps8_reg: smps8 {
+                                       /* VDD_1V8 */
+                                       regulator-name = "smps8";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               /* SMPS9 unused */
+
+                               ldo1_reg: ldo1 {
+                                       /* VDD_SD  */
+                                       regulator-name = "ldo1";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-boot-on;
+                               };
+
+                               ldo2_reg: ldo2 {
+                                       /* VDD_SHV5 */
+                                       regulator-name = "ldo2";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo3_reg: ldo3 {
+                                       /* VDDA_1V8_PHY */
+                                       regulator-name = "ldo3";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo9_reg: ldo9 {
+                                       /* VDD_RTC */
+                                       regulator-name = "ldo9";
+                                       regulator-min-microvolt = <1050000>;
+                                       regulator-max-microvolt = <1050000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldoln_reg: ldoln {
+                                       /* VDDA_1V8_PLL */
+                                       regulator-name = "ldoln";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldousb_reg: ldousb {
+                                       /* VDDA_3V_USB: VDDA_USBHS33 */
+                                       regulator-name = "ldousb";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-boot-on;
+                               };
+
+                               regen1: regen1 {
+                                       /* VDD_3V3_ON */
+                                       regulator-name = "regen1";
+                                       regulator-boot-on;
+                                       regulator-always-on;
+                               };
+                       };
+               };
+
+               tps659038_rtc: tps659038_rtc {
+                       compatible = "ti,palmas-rtc";
+                       interrupt-parent = <&tps659038>;
+                       interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
+                       wakeup-source;
+               };
+
+               tps659038_pwr_button: tps659038_pwr_button {
+                       compatible = "ti,palmas-pwrbutton";
+                       interrupt-parent = <&tps659038>;
+                       interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+                       wakeup-source;
+                       ti,palmas-long-press-seconds = <12>;
+               };
+       };
+
+       tmp102: tmp102@48 {
+               compatible = "ti,tmp102";
+               reg = <0x48>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&tmp102_pins_default>;
+               interrupt-parent = <&gpio7>;
+               interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+&i2c3 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c3_pins_default>;
+       clock-frequency = <400000>;
+
+       mcp_rtc: rtc@6f {
+               compatible = "microchip,mcp7941x";
+               reg = <0x6f>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_LOW>;  /* IRQ_SYS_1N */
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&mcp79410_pins_default>;
+
+               vcc-supply = <&vdd_3v3>;
+               wakeup-source;
+       };
+};
+
+&gpio7 {
+       ti,no-reset-on-init;
+       ti,no-idle-on-init;
+};
+
+&cpu0 {
+       cpu0-supply = <&smps12_reg>;
+       voltage-tolerance = <1>;
+};
+
+&uart3 {
+       status = "okay";
+       interrupts-extended = <&gic GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
+                             <&dra7_pmx_core 0x248>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart3_pins_default>;
+};
+
+&mmc1 {
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins_default>;
+
+       vmmc-supply = <&ldo1_reg>;
+       vmmc_aux-supply = <&vdd_3v3>;
+       pbias-supply = <&pbias_mmc_reg>;
+       bus-width = <4>;
+       cd-gpios = <&gpio6 27 0>; /* gpio 219 */
+};
+
+&mmc2 {
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_pins_default>;
+
+       vmmc-supply = <&vdd_3v3>;
+       bus-width = <8>;
+       ti,non-removable;
+       cap-mmc-dual-data-rate;
+};
+
+&sata {
+       status = "okay";
+};
+
+&usb2_phy1 {
+       phy-supply = <&ldousb_reg>;
+};
+
+&usb1 {
+       dr_mode = "host";
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb1_pins>;
+};
diff --git a/arch/arm/boot/dts/arm-realview-pb1176.dts b/arch/arm/boot/dts/arm-realview-pb1176.dts
new file mode 100644 (file)
index 0000000..ff26c7e
--- /dev/null
@@ -0,0 +1,412 @@
+/*
+ * Copyright 2014 Linaro Ltd
+ *
+ * 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/interrupt-controller/irq.h>
+#include <dt-bindings/gpio/gpio.h>
+#include "skeleton.dtsi"
+
+/ {
+       model = "ARM RealView PB1176";
+       compatible = "arm,realview-pb1176";
+
+       chosen { };
+
+       aliases {
+               serial0 = &pb1176_serial0;
+               serial1 = &pb1176_serial1;
+               serial2 = &pb1176_serial2;
+               serial3 = &pb1176_serial3;
+               serial4 = &fpga_serial;
+       };
+
+       memory {
+               /* 128 MiB memory @ 0x0 */
+               reg = <0x00000000 0x08000000>;
+       };
+
+       /* The voltage to the MMC card is hardwired at 3.3V */
+       vmmc: fixedregulator@0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vmmc";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+        };
+
+       xtal24mhz: xtal24mhz@24M {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <24000000>;
+       };
+
+       timclk: timclk@1M {
+               #clock-cells = <0>;
+               compatible = "fixed-factor-clock";
+               clock-div = <24>;
+               clock-mult = <1>;
+               clocks = <&xtal24mhz>;
+       };
+
+       mclk: mclk@24M {
+               #clock-cells = <0>;
+               compatible = "fixed-factor-clock";
+               clock-div = <1>;
+               clock-mult = <1>;
+               clocks = <&xtal24mhz>;
+       };
+
+       kmiclk: kmiclk@24M {
+               #clock-cells = <0>;
+               compatible = "fixed-factor-clock";
+               clock-div = <1>;
+               clock-mult = <1>;
+               clocks = <&xtal24mhz>;
+       };
+
+       sspclk: sspclk@24M {
+               #clock-cells = <0>;
+               compatible = "fixed-factor-clock";
+               clock-div = <1>;
+               clock-mult = <1>;
+               clocks = <&xtal24mhz>;
+       };
+
+       uartclk: uartclk@24M {
+               #clock-cells = <0>;
+               compatible = "fixed-factor-clock";
+               clock-div = <1>;
+               clock-mult = <1>;
+               clocks = <&xtal24mhz>;
+       };
+
+       /* FIXME: this actually hangs off the PLL clocks */
+       pclk: pclk@0 {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <0>;
+       };
+
+       soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "arm,realview-pb1176-soc", "simple-bus";
+               regmap = <&syscon>;
+               ranges;
+
+               syscon: syscon@10000000 {
+                       compatible = "arm,realview-pb1176-syscon", "syscon";
+                       reg = <0x10000000 0x1000>;
+
+                       led@08.0 {
+                               compatible = "register-bit-led";
+                               offset = <0x08>;
+                               mask = <0x01>;
+                               label = "versatile:0";
+                               linux,default-trigger = "heartbeat";
+                               default-state = "on";
+                       };
+                       led@08.1 {
+                               compatible = "register-bit-led";
+                               offset = <0x08>;
+                               mask = <0x02>;
+                               label = "versatile:1";
+                               linux,default-trigger = "mmc0";
+                               default-state = "off";
+                       };
+                       led@08.2 {
+                               compatible = "register-bit-led";
+                               offset = <0x08>;
+                               mask = <0x04>;
+                               label = "versatile:2";
+                               linux,default-trigger = "cpu0";
+                               default-state = "off";
+                       };
+                       led@08.3 {
+                               compatible = "register-bit-led";
+                               offset = <0x08>;
+                               mask = <0x08>;
+                               label = "versatile:3";
+                               default-state = "off";
+                       };
+                       led@08.4 {
+                               compatible = "register-bit-led";
+                               offset = <0x08>;
+                               mask = <0x10>;
+                               label = "versatile:4";
+                               default-state = "off";
+                       };
+                       led@08.5 {
+                               compatible = "register-bit-led";
+                               offset = <0x08>;
+                               mask = <0x20>;
+                               label = "versatile:5";
+                               default-state = "off";
+                       };
+                       led@08.6 {
+                               compatible = "register-bit-led";
+                               offset = <0x08>;
+                               mask = <0x40>;
+                               label = "versatile:6";
+                               default-state = "off";
+                       };
+                       led@08.7 {
+                               compatible = "register-bit-led";
+                               offset = <0x08>;
+                               mask = <0x80>;
+                               label = "versatile:7";
+                               default-state = "off";
+                       };
+               };
+
+               /* Primary DevChip GIC synthesized with the CPU */
+               intc_dc1176: interrupt-controller@10120000 {
+                       compatible = "arm,arm1176jzf-devchip-gic", "arm,arm11mp-gic";
+                       #interrupt-cells = <3>;
+                       #address-cells = <1>;
+                       interrupt-controller;
+                       reg = <0x10121000 0x1000>,
+                             <0x10120000 0x100>;
+               };
+
+               L2: l2-cache {
+                       compatible = "arm,l220-cache";
+                       reg = <0x10110000 0x1000>;
+                       interrupt-parent = <&intc_dc1176>;
+                       interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>;
+                       cache-unified;
+                       cache-level = <2>;
+                       /*
+                        * Override default cache size, sets and
+                        * associativity as these may be erroneously set
+                        * up by boot loader(s).
+                        */
+                       arm,override-auxreg;
+                       cache-size = <131072>; // 128kB
+                       cache-sets = <512>;
+                       cache-line-size = <32>;
+               };
+
+               pmu {
+                       compatible = "arm,arm1176-pmu";
+                       interrupt-parent = <&intc_dc1176>;
+                       interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               timer01: timer@10104000 {
+                       compatible = "arm,sp804", "arm,primecell";
+                       reg = <0x10104000 0x1000>;
+                       interrupt-parent = <&intc_dc1176>;
+                       interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>, <0 9 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&timclk>, <&timclk>, <&pclk>;
+                       clock-names = "timer1", "timer2", "apb_pclk";
+               };
+
+               timer23: timer@10105000 {
+                       compatible = "arm,sp804", "arm,primecell";
+                       reg = <0x10105000 0x1000>;
+                       interrupt-parent = <&intc_dc1176>;
+                       interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
+                       arm,sp804-has-irq = <1>;
+                       clocks = <&timclk>, <&timclk>, <&pclk>;
+                       clock-names = "timer1", "timer2", "apb_pclk";
+               };
+
+               pb1176_rtc: rtc@10108000 {
+                       compatible = "arm,pl031", "arm,primecell";
+                       reg = <0x10108000 0x1000>;
+                       interrupt-parent = <&intc_dc1176>;
+                       interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&pclk>;
+                       clock-names = "apb_pclk";
+               };
+
+               pb1176_gpio0: gpio@1010a000 {
+                       compatible = "arm,pl061", "arm,primecell";
+                       reg = <0x1010a000 0x1000>;
+                       gpio-controller;
+                       interrupt-parent = <&intc_dc1176>;
+                       interrupts = <0 16 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       clocks = <&pclk>;
+                       clock-names = "apb_pclk";
+               };
+
+               pb1176_ssp: ssp@1010b000 {
+                       compatible = "arm,pl022", "arm,primecell";
+                       reg = <0x1010b000 0x1000>;
+                       interrupt-parent = <&intc_dc1176>;
+                       interrupts = <0 17 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&sspclk>, <&pclk>;
+                       clock-names = "SSPCLK", "apb_pclk";
+               };
+
+               pb1176_serial0: serial@1010c000 {
+                       compatible = "arm,pl011", "arm,primecell";
+                       reg = <0x1010c000 0x1000>;
+                       interrupt-parent = <&intc_dc1176>;
+                       interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&uartclk>, <&pclk>;
+                       clock-names = "uartclk", "apb_pclk";
+               };
+
+               pb1176_serial1: serial@1010d000 {
+                       compatible = "arm,pl011", "arm,primecell";
+                       reg = <0x1010d000 0x1000>;
+                       interrupt-parent = <&intc_dc1176>;
+                       interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&uartclk>, <&pclk>;
+                       clock-names = "uartclk", "apb_pclk";
+               };
+
+               pb1176_serial2: serial@1010e000 {
+                       compatible = "arm,pl011", "arm,primecell";
+                       reg = <0x1010e000 0x1000>;
+                       interrupt-parent = <&intc_dc1176>;
+                       interrupts = <0 20 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&uartclk>, <&pclk>;
+                       clock-names = "uartclk", "apb_pclk";
+               };
+
+               pb1176_serial3: serial@1010f000 {
+                       compatible = "arm,pl011", "arm,primecell";
+                       reg = <0x1010f000 0x1000>;
+                       interrupt-parent = <&intc_dc1176>;
+                       interrupts = <0 21 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&uartclk>, <&pclk>;
+                       clock-names = "uartclk", "apb_pclk";
+               };
+       };
+
+       /* These peripherals are inside the FPGA rather than the DevChip */
+       fpga {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               ranges;
+
+               fpga_mci: mmcsd@10005000 {
+                       compatible = "arm,pl18x", "arm,primecell";
+                       reg = <0x10005000 0x1000>;
+                       interrupt-parent = <&intc_fpga1176>;
+                       interrupts = <0 1 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 2 IRQ_TYPE_LEVEL_HIGH>;
+                       /* Due to frequent FIFO overruns, use just 500 kHz */
+                       max-frequency = <500000>;
+                       bus-width = <4>;
+                       cap-sd-highspeed;
+                       cap-mmc-highspeed;
+                       clocks = <&mclk>, <&pclk>;
+                       clock-names = "mclk", "apb_pclk";
+                       vmmc-supply = <&vmmc>;
+                       cd-gpios = <&fpga_gpio1 0 GPIO_ACTIVE_LOW>;
+                       wp-gpios = <&fpga_gpio1 1 GPIO_ACTIVE_HIGH>;
+               };
+
+               fpga_kmi0: kmi@10006000 {
+                       compatible = "arm,pl050", "arm,primecell";
+                       reg = <0x10006000 0x1000>;
+                       interrupt-parent = <&intc_fpga1176>;
+                       interrupts = <0 3 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&kmiclk>, <&pclk>;
+                       clock-names = "KMIREFCLK", "apb_pclk";
+               };
+
+               fpga_kmi1: kmi@10007000 {
+                       compatible = "arm,pl050", "arm,primecell";
+                       reg = <0x10007000 0x1000>;
+                       interrupt-parent = <&intc_fpga1176>;
+                       interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&kmiclk>, <&pclk>;
+                       clock-names = "KMIREFCLK", "apb_pclk";
+               };
+
+               fpga_charlcd: charlcd@10008000 {
+                       compatible = "arm,versatile-lcd";
+                       reg = <0x10008000 0x1000>;
+                       interrupt-parent = <&intc_fpga1176>;
+                       interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&pclk>;
+                       clock-names = "apb_pclk";
+               };
+
+               fpga_serial: serial@10009000 {
+                       compatible = "arm,pl011", "arm,primecell";
+                       reg = <0x10009000 0x1000>;
+                       interrupt-parent = <&intc_fpga1176>;
+                       interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&uartclk>, <&pclk>;
+                       clock-names = "uartclk", "apb_pclk";
+               };
+
+               /* This GIC on the board is cascaded off the DevChip GIC */
+               intc_fpga1176: interrupt-controller@10040000 {
+                       compatible = "arm,arm1176jzf-devchip-gic", "arm,arm11mp-gic";
+                       #interrupt-cells = <3>;
+                       #address-cells = <1>;
+                       interrupt-controller;
+                       reg = <0x10041000 0x1000>,
+                             <0x10040000 0x100>;
+                       interrupt-parent = <&intc_dc1176>;
+                       interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               fpga_gpio0: gpio@10014000 {
+                       compatible = "arm,pl061", "arm,primecell";
+                       reg = <0x10014000 0x1000>;
+                       gpio-controller;
+                       interrupt-parent = <&intc_fpga1176>;
+                       interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       clocks = <&pclk>;
+                       clock-names = "apb_pclk";
+               };
+
+               fpga_gpio1: gpio@10015000 {
+                       compatible = "arm,pl061", "arm,primecell";
+                       reg = <0x10015000 0x1000>;
+                       gpio-controller;
+                       interrupt-parent = <&intc_fpga1176>;
+                       interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       clocks = <&pclk>;
+                       clock-names = "apb_pclk";
+               };
+
+               fpga_rtc: rtc@10017000 {
+                       compatible = "arm,pl031", "arm,primecell";
+                       reg = <0x10017000 0x1000>;
+                       interrupt-parent = <&intc_fpga1176>;
+                       interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&pclk>;
+                       clock-names = "apb_pclk";
+               };
+
+
+       };
+};
index 3aebd93cc33c864538475216b8f51fb9e49b4ce7..1e38628f4060323c757173c1a2f1738fd142a638 100644 (file)
@@ -35,7 +35,7 @@
                pcie-controller {
                        status = "okay";
 
-                       /* Connected to Marvell SATA controller */
+                       /* Connected to Marvell 88SE9170 SATA controller */
                        pcie@1,0 {
                                /* Port 0, Lane 0 */
                                status = "okay";
@@ -53,8 +53,9 @@
                                status = "okay";
                        };
 
+                       /* eSATA interface */
                        sata@a0000 {
-                               nr-ports = <2>;
+                               nr-ports = <1>;
                                status = "okay";
                        };
 
                        default-state = "keep";
                };
 
-               green-sata1-led {
-                       label = "rn102:green:sata1";
+               blue-sata1-led {
+                       label = "rn102:blue:sata1";
                        gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
                        default-state = "on";
                };
 
-               green-sata2-led {
-                       label = "rn102:green:sata2";
+               blue-sata2-led {
+                       label = "rn102:blue:sata2";
                        gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
                        default-state = "on";
                };
 
-               green-backup-led {
-                       label = "rn102:green:backup";
+               blue-backup-led {
+                       label = "rn102:blue:backup";
                        gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
                        default-state = "on";
                };
index 6b3c23b1e138e8ef260cf122f4cd677d5ec282b8..7851942e244a6792305fac22634812caa89794fb 100644 (file)
@@ -95,6 +95,7 @@
                                compatible = "marvell,aurora-outer-cache";
                                reg = <0x08000 0x1000>;
                                cache-id-part = <0x100>;
+                               cache-unified;
                                wt-override;
                        };
 
index de6571445cef7140da63ed0cf54a4952fcdab6a1..9721e55384ce086a52ac3c0e93b25c7b4e2c3b4f 100644 (file)
                        #clock-cells = <0>;
                        clock-frequency = <2000000000>;
                };
+               /* 25 MHz reference crystal */
+               refclk: oscillator {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <25000000>;
+               };
        };
 
        cpus {
                                                      <&gic  GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
                                                      <&mpic 5>,
                                                      <&mpic 6>;
-                               clocks = <&coreclk 0>;
+                               clocks = <&coreclk 0>, <&refclk>;
+                               clock-names = "nbclk", "fixed";
                        };
 
                        watchdog@20300 {
                                compatible = "marvell,armada-375-wdt";
                                reg = <0x20300 0x34>, <0x20704 0x4>, <0x18254 0x4>;
-                               clocks = <&coreclk 0>;
+                               clocks = <&coreclk 0>, <&refclk>;
+                               clock-names = "nbclk", "fixed";
                        };
 
                        cpurst@20800 {
index a55a97a705056a72a0e480c9c6a60fc4c1a50381..0e53fad111de28a14af6280fa9f317af45f5928e 100644 (file)
                };
 
                internal-regs {
-                       pinctrl {
-                               pinctrl-0 = <&pmx_phy_int>;
-                               pinctrl-names = "default";
-
-                               pmx_ge0: pmx-ge0 {
-                                       marvell,pins = "mpp0", "mpp1", "mpp2", "mpp3",
-                                                      "mpp4", "mpp5", "mpp6", "mpp7",
-                                                      "mpp8", "mpp9", "mpp10", "mpp11";
-                                       marvell,function = "ge0";
-                               };
-
-                               pmx_ge1: pmx-ge1 {
-                                       marvell,pins = "mpp12", "mpp13", "mpp14", "mpp15",
-                                                      "mpp16", "mpp17", "mpp18", "mpp19",
-                                                      "mpp20", "mpp21", "mpp22", "mpp23";
-                                       marvell,function = "ge1";
-                               };
-
-                               pmx_keys: pmx-keys {
-                                       marvell,pins = "mpp33";
-                                       marvell,function = "gpio";
-                               };
-
-                               pmx_spi: pmx-spi {
-                                       marvell,pins = "mpp36", "mpp37", "mpp38", "mpp39";
-                                       marvell,function = "spi";
-                               };
-
-                               pmx_phy_int: pmx-phy-int {
-                                       marvell,pins = "mpp32";
-                                       marvell,function = "gpio";
-                               };
-                       };
-
                        serial@12000 {
                                status = "okay";
                        };
                        };
 
                        ethernet@70000 {
-                               pinctrl-0 = <&pmx_ge0>;
+                               pinctrl-0 = <&pmx_ge0_rgmii>;
                                pinctrl-names = "default";
                                status = "okay";
                                phy = <&phy0>;
                                phy-mode = "rgmii-id";
                        };
                        ethernet@74000 {
-                               pinctrl-0 = <&pmx_ge1>;
+                               pinctrl-0 = <&pmx_ge1_rgmii>;
                                pinctrl-names = "default";
                                status = "okay";
                                phy = <&phy1>;
                };
        };
 };
+
+&pinctrl {
+       pinctrl-0 = <&pmx_phy_int>;
+       pinctrl-names = "default";
+
+       pmx_keys: pmx-keys {
+               marvell,pins = "mpp33";
+               marvell,function = "gpio";
+       };
+
+       pmx_spi: pmx-spi {
+               marvell,pins = "mpp36", "mpp37", "mpp38", "mpp39";
+               marvell,function = "spi";
+       };
+
+       pmx_phy_int: pmx-phy-int {
+               marvell,pins = "mpp32";
+               marvell,function = "gpio";
+       };
+};
index 469cf7137595fe80bd12086be4eb9eada5b2bdb4..aa5463c9192412b85b5e8b6f11b4035b90726ff1 100644 (file)
                };
 
                internal-regs {
-                       pinctrl {
-                               poweroff_pin: poweroff-pin {
-                                       marvell,pins = "mpp24";
-                                       marvell,function = "gpio";
-                               };
-
-                               power_button_pin: power-button-pin {
-                                       marvell,pins = "mpp44";
-                                       marvell,function = "gpio";
-                               };
-
-                               reset_button_pin: reset-button-pin {
-                                       marvell,pins = "mpp45";
-                                       marvell,function = "gpio";
-                               };
-                               select_button_pin: select-button-pin {
-                                       marvell,pins = "mpp41";
-                                       marvell,function = "gpio";
-                               };
-
-                               scroll_button_pin: scroll-button-pin {
-                                       marvell,pins = "mpp42";
-                                       marvell,function = "gpio";
-                               };
-
-                               hdd_led_pin: hdd-led-pin {
-                                       marvell,pins = "mpp26";
-                                       marvell,function = "gpio";
-                               };
-                       };
-
                        serial@12000 {
                                status = "okay";
                        };
                        };
 
                        ethernet@70000 {
+                               pinctrl-0 = <&pmx_ge0_rgmii>;
+                               pinctrl-names = "default";
                                status = "okay";
                                phy = <&phy0>;
                                phy-mode = "rgmii-id";
                        };
 
                        ethernet@74000 {
+                               pinctrl-0 = <&pmx_ge1_rgmii>;
+                               pinctrl-names = "default";
                                status = "okay";
                                phy = <&phy1>;
                                phy-mode = "rgmii-id";
                                        reg = <0x2e>;
                                };
 
+                               eeprom@50 {
+                                       compatible = "atmel,24c64";
+                                       reg = <0x50>;
+                               };
+
                                pcf8563@51 {
                                        compatible = "nxp,pcf8563";
                                        reg = <0x51>;
                        gpio-controller;
                        #gpio-cells = <2>;
                        reg = <0>;
-                       registers-number = <2>;
+                       registers-number = <1>;
                        spi-max-frequency = <100000>;
                };
        };
                gpios = <&gpio0 24 GPIO_ACTIVE_HIGH>;
        };
 };
+
+&pinctrl {
+       poweroff_pin: poweroff-pin {
+               marvell,pins = "mpp24";
+               marvell,function = "gpio";
+       };
+
+       power_button_pin: power-button-pin {
+               marvell,pins = "mpp44";
+               marvell,function = "gpio";
+       };
+
+       reset_button_pin: reset-button-pin {
+               marvell,pins = "mpp45";
+               marvell,function = "gpio";
+       };
+       select_button_pin: select-button-pin {
+               marvell,pins = "mpp41";
+               marvell,function = "gpio";
+       };
+
+       scroll_button_pin: scroll-button-pin {
+               marvell,pins = "mpp42";
+               marvell,function = "gpio";
+       };
+
+       hdd_led_pin: hdd-led-pin {
+               marvell,pins = "mpp26";
+               marvell,function = "gpio";
+       };
+};
index 2592e1c13560039c0a1396b63026934b12bb305c..281ccd24295caa3d7b7f595a1d3c32c117a63d17 100644 (file)
                };
 
                internal-regs {
-                       pinctrl {
-                               compatible = "marvell,mv78230-pinctrl";
-                               reg = <0x18000 0x38>;
-
-                               sdio_pins: sdio-pins {
-                                       marvell,pins = "mpp30", "mpp31", "mpp32",
-                                                      "mpp33", "mpp34", "mpp35";
-                                       marvell,function = "sd0";
-                               };
-                       };
-
                        gpio0: gpio@18100 {
                                compatible = "marvell,orion-gpio";
                                reg = <0x18100 0x40>;
                };
        };
 };
+
+&pinctrl {
+       compatible = "marvell,mv78230-pinctrl";
+};
index 480e237a870fa42c86dca6ab7dd5585d6345956a..d7a8d0b0f385e090210c9171cf609baec68cb0c0 100644 (file)
                };
 
                internal-regs {
-                       pinctrl {
-                               compatible = "marvell,mv78260-pinctrl";
-                               reg = <0x18000 0x38>;
-
-                               sdio_pins: sdio-pins {
-                                       marvell,pins = "mpp30", "mpp31", "mpp32",
-                                                      "mpp33", "mpp34", "mpp35";
-                                       marvell,function = "sd0";
-                               };
-                       };
-
                        gpio0: gpio@18100 {
                                compatible = "marvell,orion-gpio";
                                reg = <0x18100 0x40>;
                };
        };
 };
+
+&pinctrl {
+       compatible = "marvell,mv78260-pinctrl";
+};
index 2c7b1fef470350714a9f9c5df7b25f42708019de..9c40c130d11ad3589442d518632b3c22be1255cd 100644 (file)
                };
 
                internal-regs {
-                       pinctrl {
-                               compatible = "marvell,mv78460-pinctrl";
-                               reg = <0x18000 0x38>;
-
-                               sdio_pins: sdio-pins {
-                                       marvell,pins = "mpp30", "mpp31", "mpp32",
-                                                      "mpp33", "mpp34", "mpp35";
-                                       marvell,function = "sd0";
-                               };
-                       };
-
                        gpio0: gpio@18100 {
                                compatible = "marvell,orion-gpio";
                                reg = <0x18100 0x40>;
                };
        };
 };
+
+&pinctrl {
+       compatible = "marvell,mv78460-pinctrl";
+};
index 7d8f32873e82903d11307afcd3b1b3e75142990f..d81430aa4ab32701fcdeb6982312c5ad65d91d8f 100644 (file)
                };
 
                internal-regs {
-                       pinctrl {
-                               poweroff: poweroff {
-                                       marvell,pins = "mpp42";
-                                       marvell,function = "gpio";
-                               };
-
-                               power_button_pin: power-button-pin {
-                                       marvell,pins = "mpp27";
-                                       marvell,function = "gpio";
-                               };
-
-                               reset_button_pin: reset-button-pin {
-                                       marvell,pins = "mpp41";
-                                       marvell,function = "gpio";
-                               };
-
-                               sata1_led_pin: sata1-led-pin {
-                                       marvell,pins = "mpp31";
-                                       marvell,function = "gpio";
-                               };
-
-                               sata2_led_pin: sata2-led-pin {
-                                       marvell,pins = "mpp40";
-                                       marvell,function = "gpio";
-                               };
-
-                               sata3_led_pin: sata3-led-pin {
-                                       marvell,pins = "mpp44";
-                                       marvell,function = "gpio";
-                               };
-
-                               sata4_led_pin: sata4-led-pin {
-                                       marvell,pins = "mpp47";
-                                       marvell,function = "gpio";
-                               };
-
-                               sata1_power_pin: sata1-power-pin {
-                                       marvell,pins = "mpp24";
-                                       marvell,function = "gpio";
-                               };
-
-                               sata2_power_pin: sata2-power-pin {
-                                       marvell,pins = "mpp25";
-                                       marvell,function = "gpio";
-                               };
-
-                               sata3_power_pin: sata3-power-pin {
-                                       marvell,pins = "mpp26";
-                                       marvell,function = "gpio";
-                               };
-
-                               sata4_power_pin: sata4-power-pin {
-                                       marvell,pins = "mpp28";
-                                       marvell,function = "gpio";
-                               };
-
-                               sata1_pres_pin: sata1-pres-pin {
-                                       marvell,pins = "mpp32";
-                                       marvell,function = "gpio";
-                               };
-
-                               sata2_pres_pin: sata2-pres-pin {
-                                       marvell,pins = "mpp33";
-                                       marvell,function = "gpio";
-                               };
-
-                               sata3_pres_pin: sata3-pres-pin {
-                                       marvell,pins = "mpp34";
-                                       marvell,function = "gpio";
-                               };
-
-                               sata4_pres_pin: sata4-pres-pin {
-                                       marvell,pins = "mpp35";
-                                       marvell,function = "gpio";
-                               };
-
-                               err_led_pin: err-led-pin {
-                                       marvell,pins = "mpp45";
-                                       marvell,function = "gpio";
-                               };
+                       /* Two rear eSATA ports */
+                       sata@a0000 {
+                               nr-ports = <2>;
+                               status = "okay";
                        };
 
                        serial@12000 {
                gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
        };
 };
+
+&pinctrl {
+       poweroff: poweroff {
+               marvell,pins = "mpp42";
+               marvell,function = "gpio";
+       };
+
+       power_button_pin: power-button-pin {
+               marvell,pins = "mpp27";
+               marvell,function = "gpio";
+       };
+
+       reset_button_pin: reset-button-pin {
+               marvell,pins = "mpp41";
+               marvell,function = "gpio";
+       };
+
+       sata1_led_pin: sata1-led-pin {
+               marvell,pins = "mpp31";
+               marvell,function = "gpio";
+       };
+
+       sata2_led_pin: sata2-led-pin {
+               marvell,pins = "mpp40";
+               marvell,function = "gpio";
+       };
+
+       sata3_led_pin: sata3-led-pin {
+               marvell,pins = "mpp44";
+               marvell,function = "gpio";
+       };
+
+       sata4_led_pin: sata4-led-pin {
+               marvell,pins = "mpp47";
+               marvell,function = "gpio";
+       };
+
+       sata1_power_pin: sata1-power-pin {
+               marvell,pins = "mpp24";
+               marvell,function = "gpio";
+       };
+
+       sata2_power_pin: sata2-power-pin {
+               marvell,pins = "mpp25";
+               marvell,function = "gpio";
+       };
+
+       sata3_power_pin: sata3-power-pin {
+               marvell,pins = "mpp26";
+               marvell,function = "gpio";
+       };
+
+       sata4_power_pin: sata4-power-pin {
+               marvell,pins = "mpp28";
+               marvell,function = "gpio";
+       };
+
+       sata1_pres_pin: sata1-pres-pin {
+               marvell,pins = "mpp32";
+               marvell,function = "gpio";
+       };
+
+       sata2_pres_pin: sata2-pres-pin {
+               marvell,pins = "mpp33";
+               marvell,function = "gpio";
+       };
+
+       sata3_pres_pin: sata3-pres-pin {
+               marvell,pins = "mpp34";
+               marvell,function = "gpio";
+       };
+
+       sata4_pres_pin: sata4-pres-pin {
+               marvell,pins = "mpp35";
+               marvell,function = "gpio";
+       };
+
+       err_led_pin: err-led-pin {
+               marvell,pins = "mpp45";
+               marvell,function = "gpio";
+       };
+};
index 4e5a59ee150151f8867ed329a6e05e4f580a3b8c..6f6b0916df4874c8d626e3ac46a810e936878960 100644 (file)
                        serial@12100 {
                                status = "okay";
                        };
-                       pinctrl {
-                               led_pins: led-pins-0 {
-                                       marvell,pins = "mpp49", "mpp51", "mpp53";
-                                       marvell,function = "gpio";
-                               };
-                       };
+
                        leds {
                                compatible = "gpio-leds";
                                pinctrl-names = "default";
                };
        };
 };
+
+&pinctrl {
+       led_pins: led-pins-0 {
+               marvell,pins = "mpp49", "mpp51", "mpp53";
+               marvell,function = "gpio";
+       };
+};
index bff9f6c18db1358dd7d70aa9b9de0e40c054da20..a3919b644737eb701350e42ce4ae41b200955c5e 100644 (file)
@@ -39,6 +39,7 @@
                                compatible = "marvell,aurora-system-cache";
                                reg = <0x08000 0x1000>;
                                cache-id-part = <0x100>;
+                               cache-unified;
                                wt-override;
                        };
 
                                status = "disabled";
                        };
 
+                       pinctrl: pin-ctrl@18000 {
+                               reg = <0x18000 0x38>;
+
+                               pmx_ge0_gmii: pmx-ge0-gmii {
+                                       marvell,pins =
+                                            "mpp0",  "mpp1",  "mpp2",  "mpp3",
+                                            "mpp4",  "mpp5",  "mpp6",  "mpp7",
+                                            "mpp8",  "mpp9",  "mpp10", "mpp11",
+                                            "mpp12", "mpp13", "mpp14", "mpp15",
+                                            "mpp16", "mpp17", "mpp18", "mpp19",
+                                            "mpp20", "mpp21", "mpp22", "mpp23";
+                                       marvell,function = "ge0";
+                               };
+
+                               pmx_ge0_rgmii: pmx-ge0-rgmii {
+                                       marvell,pins =
+                                            "mpp0", "mpp1", "mpp2", "mpp3",
+                                            "mpp4", "mpp5", "mpp6", "mpp7",
+                                            "mpp8", "mpp9", "mpp10", "mpp11";
+                                       marvell,function = "ge0";
+                               };
+
+                               pmx_ge1_rgmii: pmx-ge1-rgmii {
+                                       marvell,pins =
+                                            "mpp12", "mpp13", "mpp14", "mpp15",
+                                            "mpp16", "mpp17", "mpp18", "mpp19",
+                                            "mpp20", "mpp21", "mpp22", "mpp23";
+                                       marvell,function = "ge1";
+                               };
+
+                               sdio_pins: sdio-pins {
+                                       marvell,pins = "mpp30", "mpp31", "mpp32",
+                                                      "mpp33", "mpp34", "mpp35";
+                                       marvell,function = "sd0";
+                               };
+                       };
+
                        system-controller@18200 {
                                compatible = "marvell,armada-370-xp-system-controller";
                                reg = <0x18200 0x500>;
index 51416c7d062537bf162c6ce533e36b91a74ffdc5..653e4395b7cbe6bcf6b6e4dd1af442d1473a7852 100644 (file)
                                        };
                                };
 
+                               can {
+                                       pinctrl_can_rx_tx: can_rx_tx {
+                                               atmel,pins =
+                                                       <AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE   /* CANRX, conflicts with IRQ0 */
+                                                        AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* CANTX, conflicts with PCK0 */
+                                       };
+                               };
+
                                pioA: gpio@fffff200 {
                                        compatible = "atmel,at91rm9200-gpio";
                                        reg = <0xfffff200 0x200>;
                                clock-names = "pwm_clk";
                                status = "disabled";
                        };
+
+                       can: can@fffac000 {
+                               compatible = "atmel,at91sam9263-can";
+                               reg = <0xfffac000 0x300>;
+                               interrupts = <12 IRQ_TYPE_LEVEL_HIGH 3>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_can_rx_tx>;
+                               clocks = <&can_clk>;
+                               clock-names = "can_clk";
+                               status = "disabled";
+                       };
                };
 
                fb0: fb@0x00700000 {
index c2554219f7a4eb736c2f46f6ce36175311d5d530..3c5fa3388997078dd206dfb5cb05a35a1752e963 100644 (file)
@@ -10,6 +10,7 @@
 #include "at91sam9x5_usart3.dtsi"
 #include "at91sam9x5_macb0.dtsi"
 #include "at91sam9x5_macb1.dtsi"
+#include "at91sam9x5_can.dtsi"
 
 / {
        model = "Atmel AT91SAM9X25 SoC";
index 8eac66ce0ab7766f76476d836488f7374f1b4a90..499cdc81f4c07ce352a92a3c0bb1a7029b8c98ea 100644 (file)
@@ -8,6 +8,7 @@
 
 #include "at91sam9x5.dtsi"
 #include "at91sam9x5_macb0.dtsi"
+#include "at91sam9x5_can.dtsi"
 
 / {
        model = "Atmel AT91SAM9X35 SoC";
index 726274f7959b6a00fdcd992b726b758688898bd1..bbb3ba65165f5b7f2ca132ab2787c87da2b25897 100644 (file)
                                interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_dbgu>;
+                               dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(8)>,
+                                      <&dma1 1 (AT91_DMA_CFG_PER_ID(9) | AT91_DMA_CFG_FIFOCFG_ASAP)>;
+                               dma-names = "tx", "rx";
                                clocks = <&mck>;
                                clock-names = "usart";
                                status = "disabled";
                                interrupts = <5 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart0>;
+                               dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(3)>,
+                                      <&dma0 1 (AT91_DMA_CFG_PER_ID(4) | AT91_DMA_CFG_FIFOCFG_ASAP)>;
+                               dma-names = "tx", "rx";
                                clocks = <&usart0_clk>;
                                clock-names = "usart";
                                status = "disabled";
                                interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart1>;
+                               dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(5)>,
+                                      <&dma0 1 (AT91_DMA_CFG_PER_ID(6) | AT91_DMA_CFG_FIFOCFG_ASAP)>;
+                               dma-names = "tx", "rx";
                                clocks = <&usart1_clk>;
                                clock-names = "usart";
                                status = "disabled";
                                interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart2>;
+                               dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(12)>,
+                                      <&dma1 1 (AT91_DMA_CFG_PER_ID(13) | AT91_DMA_CFG_FIFOCFG_ASAP)>;
+                               dma-names = "tx", "rx";
                                clocks = <&usart2_clk>;
                                clock-names = "usart";
                                status = "disabled";
index f44ab7702a12fd668092d70cca6767e26a4f7c2e..8eb2f9c1b97847d94db2cf58b57f5c82b423832f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * at91sam9x5_macb0.dtsi - Device Tree Include file for AT91SAM9x5 SoC with 1
+ * at91sam9x5_can.dtsi - Device Tree Include file for AT91SAM9x5 SoC with 1
  * Ethernet interface.
  *
  * Copyright (C) 2013 Boris BREZILLON <b.brezillon@overkiz.com>
                                                reg = <29>;
                                        };
 
-                                        can1_clk: can1_clk {
-                                                #clock-cells = <0>;
-                                                reg = <30>;
-                                        };
+                                       can1_clk: can1_clk {
+                                               #clock-cells = <0>;
+                                               reg = <30>;
+                                       };
+                               };
+                       };
+
+                       can0: can@f8000000 {
+                               compatible = "atmel,at91sam9x5-can";
+                               reg = <0xf8000000 0x300>;
+                               interrupts = <29 IRQ_TYPE_LEVEL_HIGH 3>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_can0_rx_tx>;
+                               clocks = <&can0_clk>;
+                               clock-names = "can_clk";
+                               status = "disabled";
+                       };
+
+                       can1: can@f8004000 {
+                               compatible = "atmel,at91sam9x5-can";
+                               reg = <0xf8004000 0x300>;
+                               interrupts = <30 IRQ_TYPE_LEVEL_HIGH 3>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_can1_rx_tx>;
+                               clocks = <&can1_clk>;
+                               clock-names = "can_clk";
+                               status = "disabled";
+                       };
+
+                       pinctrl@fffff400 {
+                               can0 {
+                                       pinctrl_can0_rx_tx: can0_rx_tx {
+                                               atmel,pins =
+                                                       <AT91_PIOA 9 AT91_PERIPH_B AT91_PINCTRL_NONE    /* CANRX0, conflicts with DRXD */
+                                                       AT91_PIOA 10 AT91_PERIPH_B AT91_PINCTRL_NONE>;  /* CANTX0, conflicts with DTXD */
+                                       };
+                               };
+
+                               can1 {
+                                       pinctrl_can1_rx_tx: can1_rx_tx {
+                                               atmel,pins =
+                                                       <AT91_PIOA 6 AT91_PERIPH_B AT91_PINCTRL_NONE    /* CANRX1, conflicts with RXD1 */
+                                                       AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_NONE>;   /* CANTX1, conflicts with TXD1 */
+                                       };
                                };
                        };
                };
index 140217a5438460ffb7cd23d327a6635522bf49a1..43bb5b51caa6644968c616157119d79d21530ab8 100644 (file)
@@ -57,6 +57,9 @@
                                interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usart3>;
+                               dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(14)>,
+                                      <&dma1 1 (AT91_DMA_CFG_PER_ID(15) | AT91_DMA_CFG_FIFOCFG_ASAP)>;
+                               dma-names = "tx", "rx";
                                clocks = <&usart3_clk>;
                                clock-names = "usart";
                                status = "disabled";
diff --git a/arch/arm/boot/dts/bcm-cygnus-clock.dtsi b/arch/arm/boot/dts/bcm-cygnus-clock.dtsi
new file mode 100644 (file)
index 0000000..60d8389
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+ *  BSD LICENSE
+ *
+ *  Copyright(c) 2014 Broadcom Corporation.  All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in
+ *      the documentation and/or other materials provided with the
+ *      distribution.
+ *    * Neither the name of Broadcom Corporation nor the names of its
+ *      contributors may be used to endorse or promote products derived
+ *      from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+clocks {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       ranges;
+
+       osc: oscillator {
+               compatible = "fixed-clock";
+               #clock-cells = <1>;
+               clock-frequency = <25000000>;
+       };
+
+       apb_clk: apb_clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <1000000000>;
+       };
+
+       periph_clk: periph_clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <500000000>;
+       };
+
+       sdio_clk: lcpll_ch2 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <200000000>;
+       };
+
+       axi81_clk: axi81_clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <100000000>;
+       };
+
+       keypad_clk: keypad_clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <31806>;
+       };
+
+       adc_clk: adc_clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <1562500>;
+       };
+
+       pwm_clk: pwm_clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <1000000>;
+       };
+
+       lcd_clk: mipipll_ch1 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <100000000>;
+       };
+};
diff --git a/arch/arm/boot/dts/bcm-cygnus.dtsi b/arch/arm/boot/dts/bcm-cygnus.dtsi
new file mode 100644 (file)
index 0000000..5126f9e
--- /dev/null
@@ -0,0 +1,140 @@
+/*
+ *  BSD LICENSE
+ *
+ *  Copyright(c) 2014 Broadcom Corporation.  All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in
+ *      the documentation and/or other materials provided with the
+ *      distribution.
+ *    * Neither the name of Broadcom Corporation nor the names of its
+ *      contributors may be used to endorse or promote products derived
+ *      from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+#include "skeleton.dtsi"
+
+/ {
+       compatible = "brcm,cygnus";
+       model = "Broadcom Cygnus SoC";
+       interrupt-parent = <&gic>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       next-level-cache = <&L2>;
+                       reg = <0x0>;
+               };
+       };
+
+       /include/ "bcm-cygnus-clock.dtsi"
+
+       amba {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "arm,amba-bus", "simple-bus";
+               interrupt-parent = <&gic>;
+               ranges;
+
+               wdt@18009000 {
+                        compatible = "arm,sp805" , "arm,primecell";
+                        reg = <0x18009000 0x1000>;
+                        interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
+                        clocks = <&axi81_clk>;
+                        clock-names = "apb_pclk";
+               };
+       };
+
+       uart0: serial@18020000 {
+               compatible = "snps,dw-apb-uart";
+               reg = <0x18020000 0x100>;
+               reg-shift = <2>;
+               reg-io-width = <4>;
+               interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&axi81_clk>;
+               clock-frequency = <100000000>;
+               status = "disabled";
+       };
+
+       uart1: serial@18021000 {
+               compatible = "snps,dw-apb-uart";
+               reg = <0x18021000 0x100>;
+               reg-shift = <2>;
+               reg-io-width = <4>;
+               interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&axi81_clk>;
+               clock-frequency = <100000000>;
+               status = "disabled";
+       };
+
+       uart2: serial@18022000 {
+               compatible = "snps,dw-apb-uart";
+               reg = <0x18020000 0x100>;
+               reg-shift = <2>;
+               reg-io-width = <4>;
+               interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&axi81_clk>;
+               clock-frequency = <100000000>;
+               status = "disabled";
+       };
+
+       uart3: serial@18023000 {
+               compatible = "snps,dw-apb-uart";
+               reg = <0x18023000 0x100>;
+               reg-shift = <2>;
+               reg-io-width = <4>;
+               interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&axi81_clk>;
+               clock-frequency = <100000000>;
+               status = "disabled";
+       };
+
+       gic: interrupt-controller@19021000 {
+               compatible = "arm,cortex-a9-gic";
+               #interrupt-cells = <3>;
+               #address-cells = <0>;
+               interrupt-controller;
+               reg = <0x19021000 0x1000>,
+                     <0x19020100 0x100>;
+       };
+
+       L2: l2-cache {
+               compatible = "arm,pl310-cache";
+               reg = <0x19022000 0x1000>;
+               cache-unified;
+               cache-level = <2>;
+       };
+
+       timer@19020200 {
+               compatible = "arm,cortex-a9-global-timer";
+               reg = <0x19020200 0x100>;
+               interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&periph_clk>;
+       };
+
+};
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
new file mode 100644 (file)
index 0000000..e479515
--- /dev/null
@@ -0,0 +1,30 @@
+/dts-v1/;
+/include/ "bcm2835-rpi.dtsi"
+
+/ {
+       compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";
+       model = "Raspberry Pi Model B+";
+
+       leds {
+               act {
+                       gpios = <&gpio 47 0>;
+               };
+
+               pwr {
+                       label = "PWR";
+                       gpios = <&gpio 35 0>;
+                       default-state = "keep";
+                       linux,default-trigger = "default-on";
+               };
+       };
+};
+
+&gpio {
+       pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>;
+
+       /* I2S interface */
+       i2s_alt0: i2s_alt0 {
+               brcm,pins = <18 19 20 21>;
+               brcm,function = <4>; /* alt0 */
+       };
+};
index 58a0d60b95f1b9064d790b60aef80b69edb2a962..bafa46fc226a60d0c77ba6a90c2755a75c060348 100644 (file)
@@ -1,63 +1,23 @@
 /dts-v1/;
-/include/ "bcm2835.dtsi"
+/include/ "bcm2835-rpi.dtsi"
 
 / {
        compatible = "raspberrypi,model-b", "brcm,bcm2835";
        model = "Raspberry Pi Model B";
 
-       memory {
-               reg = <0 0x10000000>;
-       };
-
        leds {
-               compatible = "gpio-leds";
-
                act {
-                       label = "ACT";
                        gpios = <&gpio 16 1>;
-                       default-state = "keep";
-                       linux,default-trigger = "heartbeat";
                };
        };
 };
 
 &gpio {
-       pinctrl-names = "default";
-       pinctrl-0 = <&gpioout &alt0 &alt2 &alt3>;
-
-       gpioout: gpioout {
-               brcm,pins = <6>;
-               brcm,function = <1>; /* GPIO out */
-       };
-
-       alt0: alt0 {
-               brcm,pins = <0 1 2 3 4 5 7 8 9 10 11 14 15 40 45>;
-               brcm,function = <4>; /* alt0 */
-       };
-
-       alt3: alt3 {
-               brcm,pins = <48 49 50 51 52 53>;
-               brcm,function = <7>; /* alt3 */
-       };
+       pinctrl-0 = <&gpioout &alt0 &i2s_alt2 &alt3>;
 
        /* I2S interface */
-       alt2: alt2 {
+       i2s_alt2: i2s_alt2 {
                brcm,pins = <28 29 30 31>;
                brcm,function = <6>; /* alt2 */
        };
 };
-
-&i2c0 {
-       status = "okay";
-       clock-frequency = <100000>;
-};
-
-&i2c1 {
-       status = "okay";
-       clock-frequency = <100000>;
-};
-
-&sdhci {
-       status = "okay";
-       bus-width = <4>;
-};
diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
new file mode 100644 (file)
index 0000000..c706448
--- /dev/null
@@ -0,0 +1,51 @@
+/include/ "bcm2835.dtsi"
+
+/ {
+       memory {
+               reg = <0 0x10000000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               act {
+                       label = "ACT";
+                       default-state = "keep";
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+};
+
+&gpio {
+       pinctrl-names = "default";
+
+       gpioout: gpioout {
+               brcm,pins = <6>;
+               brcm,function = <1>; /* GPIO out */
+       };
+
+       alt0: alt0 {
+               brcm,pins = <0 1 2 3 4 5 7 8 9 10 11 14 15 40 45>;
+               brcm,function = <4>; /* alt0 */
+       };
+
+       alt3: alt3 {
+               brcm,pins = <48 49 50 51 52 53>;
+               brcm,function = <7>; /* alt3 */
+       };
+};
+
+&i2c0 {
+       status = "okay";
+       clock-frequency = <100000>;
+};
+
+&i2c1 {
+       status = "okay";
+       clock-frequency = <100000>;
+};
+
+&sdhci {
+       status = "okay";
+       bus-width = <4>;
+};
diff --git a/arch/arm/boot/dts/bcm911360_entphn.dts b/arch/arm/boot/dts/bcm911360_entphn.dts
new file mode 100644 (file)
index 0000000..d2ee952
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ *  BSD LICENSE
+ *
+ *  Copyright(c) 2014 Broadcom Corporation.  All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in
+ *      the documentation and/or other materials provided with the
+ *      distribution.
+ *    * Neither the name of Broadcom Corporation nor the names of its
+ *      contributors may be used to endorse or promote products derived
+ *      from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+
+#include "bcm-cygnus.dtsi"
+
+/ {
+       model = "Cygnus Enterprise Phone (BCM911360_ENTPHN)";
+       compatible = "brcm,bcm11360", "brcm,cygnus";
+
+       aliases {
+               serial0 = &uart3;
+       };
+
+       chosen {
+               stdout-path = &uart3;
+               bootargs = "console=ttyS0,115200";
+       };
+
+       uart3: serial@18023000 {
+               status = "okay";
+       };
+};
diff --git a/arch/arm/boot/dts/bcm911360k.dts b/arch/arm/boot/dts/bcm911360k.dts
new file mode 100644 (file)
index 0000000..9658d4f
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ *  BSD LICENSE
+ *
+ *  Copyright(c) 2014 Broadcom Corporation.  All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in
+ *      the documentation and/or other materials provided with the
+ *      distribution.
+ *    * Neither the name of Broadcom Corporation nor the names of its
+ *      contributors may be used to endorse or promote products derived
+ *      from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+
+#include "bcm-cygnus.dtsi"
+
+/ {
+       model = "Cygnus SVK (BCM911360K)";
+       compatible = "brcm,bcm11360", "brcm,cygnus";
+
+       aliases {
+               serial0 = &uart3;
+       };
+
+       chosen {
+               stdout-path = &uart3;
+               bootargs = "console=ttyS0,115200";
+       };
+
+       uart3: serial@18023000 {
+               status = "okay";
+       };
+};
diff --git a/arch/arm/boot/dts/bcm958300k.dts b/arch/arm/boot/dts/bcm958300k.dts
new file mode 100644 (file)
index 0000000..f1bb36f
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ *  BSD LICENSE
+ *
+ *  Copyright(c) 2014 Broadcom Corporation.  All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in
+ *      the documentation and/or other materials provided with the
+ *      distribution.
+ *    * Neither the name of Broadcom Corporation nor the names of its
+ *      contributors may be used to endorse or promote products derived
+ *      from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+
+#include "bcm-cygnus.dtsi"
+
+/ {
+       model = "Cygnus SVK (BCM958300K)";
+       compatible = "brcm,bcm58300", "brcm,cygnus";
+
+       aliases {
+               serial0 = &uart3;
+       };
+
+       chosen {
+               stdout-path = &uart3;
+               bootargs = "console=ttyS0,115200";
+       };
+
+       uart3: serial@18023000 {
+               status = "okay";
+       };
+};
index c72bfd468d10ce9e8af7a9b9938eb12041d7c863..86d85d8896a30f8d17895e3545138175eae9e272 100644 (file)
        };
 };
 
+&ahci { status = "okay"; };
+
+&eth1 { status = "okay"; };
+
+/* Unpopulated SATA plug on solder side */
+&sata0 { status = "okay"; };
+
+&sata_phy { status = "okay"; };
+
+/* Samsung M8G2FA 8GB eMMC */
+&sdhci2 {
+       non-removable;
+       bus-width = <8>;
+       status = "okay";
+};
+
 &uart0 { status = "okay"; };
index 9d7c810ebd0b469a842611020d4ddc5858c288d4..015a06c67c91cf2dd3801deb200f4aed409d1bf5 100644 (file)
 
                ranges = <0 0xf7000000 0x1000000>;
 
+               sdhci0: sdhci@ab0000 {
+                       compatible = "mrvl,pxav3-mmc";
+                       reg = <0xab0000 0x200>;
+                       clocks = <&chip CLKID_SDIO0XIN>, <&chip CLKID_SDIO0>;
+                       clock-names = "io", "core";
+                       interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               sdhci1: sdhci@ab0800 {
+                       compatible = "mrvl,pxav3-mmc";
+                       reg = <0xab0800 0x200>;
+                       clocks = <&chip CLKID_SDIO1XIN>, <&chip CLKID_SDIO1>;
+                       clock-names = "io", "core";
+                       interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               sdhci2: sdhci@ab1000 {
+                       compatible = "mrvl,pxav3-mmc";
+                       reg = <0xab1000 0x200>;
+                       interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&chip CLKID_NFC_ECC>, <&chip CLKID_NFC>;
+                       clock-names = "io", "core";
+                       pinctrl-0 = <&emmc_pmux>;
+                       pinctrl-names = "default";
+                       status = "disabled";
+               };
+
                l2: l2-cache-controller@ac0000 {
                        compatible = "marvell,tauros3-cache", "arm,pl310-cache";
                        reg = <0xac0000 0x1000>;
                        clocks = <&chip CLKID_TWD>;
                };
 
+               eth1: ethernet@b90000 {
+                       compatible = "marvell,pxa168-eth";
+                       reg = <0xb90000 0x10000>;
+                       clocks = <&chip CLKID_GETH1>;
+                       interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
+                       /* set by bootloader */
+                       local-mac-address = [00 00 00 00 00 00];
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       phy-connection-type = "mii";
+                       phy-handle = <&ethphy1>;
+                       status = "disabled";
+
+                       ethphy1: ethernet-phy@0 {
+                               reg = <0>;
+                       };
+               };
+
                cpu-ctrl@dd0000 {
                        compatible = "marvell,berlin-cpu-ctrl";
                        reg = <0xdd0000 0x10000>;
                };
 
+               eth0: ethernet@e50000 {
+                       compatible = "marvell,pxa168-eth";
+                       reg = <0xe50000 0x10000>;
+                       clocks = <&chip CLKID_GETH0>;
+                       interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+                       /* set by bootloader */
+                       local-mac-address = [00 00 00 00 00 00];
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       phy-connection-type = "mii";
+                       phy-handle = <&ethphy0>;
+                       status = "disabled";
+
+                       ethphy0: ethernet-phy@0 {
+                               reg = <0>;
+                       };
+               };
+
                apb@e80000 {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                        };
                };
 
+               ahci: sata@e90000 {
+                       compatible = "marvell,berlin2-ahci", "generic-ahci";
+                       reg = <0xe90000 0x1000>;
+                       interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&chip CLKID_SATA>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       sata0: sata-port@0 {
+                               reg = <0>;
+                               phys = <&sata_phy 0>;
+                               status = "disabled";
+                       };
+
+                       sata1: sata-port@1 {
+                               reg = <1>;
+                               phys = <&sata_phy 1>;
+                               status = "disabled";
+                       };
+               };
+
+               sata_phy: phy@e900a0 {
+                       compatible = "marvell,berlin2-sata-phy";
+                       reg = <0xe900a0 0x200>;
+                       clocks = <&chip CLKID_SATA>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #phy-cells = <1>;
+                       status = "disabled";
+
+                       sata-phy@0 {
+                               reg = <0>;
+                       };
+
+                       sata-phy@1 {
+                               reg = <1>;
+                       };
+               };
+
                chip: chip-control@ea0000 {
                        compatible = "marvell,berlin2-chip-ctrl";
                        #clock-cells = <1>;
+                       #reset-cells = <2>;
                        reg = <0xea0000 0x400>;
                        clocks = <&refclk>;
                        clock-names = "refclk";
+
+                       emmc_pmux: emmc-pmux {
+                               groups = "G26";
+                               function = "emmc";
+                       };
                };
 
                apb@fc0000 {
index bcd81ffc495d7d58f4ba35c70f021946bedfac4b..30270be4d0c94704c7c78d64044ac8886af99b0f 100644 (file)
@@ -11,6 +11,7 @@
 /dts-v1/;
 
 #include "berlin2cd.dtsi"
+#include <dt-bindings/gpio/gpio.h>
 
 / {
        model = "Google Chromecast";
                device_type = "memory";
                reg = <0x00000000 0x20000000>; /* 512 MB */
        };
+
+       leds {
+               compatible = "gpio-leds";
+
+               white {
+                       label = "white";
+                       gpios = <&portc 1 GPIO_ACTIVE_HIGH>;
+                       default-state = "keep";
+               };
+
+               red {
+                       label = "red";
+                       gpios = <&portc 2 GPIO_ACTIVE_HIGH>;
+                       default-state = "keep";
+               };
+       };
+};
+
+/*
+ * AzureWave AW-NH387 (Marvell 88W8787)
+ * 802.11b/g/n + Bluetooth 2.1
+ */
+&sdhci0 {
+       non-removable;
+       status = "okay";
 };
 
 &uart0 { status = "okay"; };
+
+&usb_phy1 { status = "okay"; };
+
+&usb1 { status = "okay"; };
index cc1df65da504327578637068732e441d3e06af77..230df3b1770e7d2f7476b9cc49d31a7071a784c7 100644 (file)
 
                ranges = <0 0xf7000000 0x1000000>;
 
+               sdhci0: sdhci@ab0000 {
+                       compatible = "mrvl,pxav3-mmc";
+                       reg = <0xab0000 0x200>;
+                       clocks = <&chip CLKID_SDIO0XIN>, <&chip CLKID_SDIO0>;
+                       clock-names = "io", "core";
+                       interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
                l2: l2-cache-controller@ac0000 {
                        compatible = "arm,pl310-cache";
                        reg = <0xac0000 0x1000>;
                        clocks = <&chip CLKID_TWD>;
                };
 
+               usb_phy0: usb-phy@b74000 {
+                       compatible = "marvell,berlin2cd-usb-phy";
+                       reg = <0xb74000 0x128>;
+                       #phy-cells = <0>;
+                       resets = <&chip 0x178 23>;
+                       status = "disabled";
+               };
+
+               usb_phy1: usb-phy@b78000 {
+                       compatible = "marvell,berlin2cd-usb-phy";
+                       reg = <0xb78000 0x128>;
+                       #phy-cells = <0>;
+                       resets = <&chip 0x178 24>;
+                       status = "disabled";
+               };
+
+               eth1: ethernet@b90000 {
+                       compatible = "marvell,pxa168-eth";
+                       reg = <0xb90000 0x10000>;
+                       clocks = <&chip CLKID_GETH1>;
+                       interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
+                       /* set by bootloader */
+                       local-mac-address = [00 00 00 00 00 00];
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       phy-connection-type = "mii";
+                       phy-handle = <&ethphy1>;
+                       status = "disabled";
+
+                       ethphy1: ethernet-phy@0 {
+                               reg = <0>;
+                       };
+               };
+
+               eth0: ethernet@e50000 {
+                       compatible = "marvell,pxa168-eth";
+                       reg = <0xe50000 0x10000>;
+                       clocks = <&chip CLKID_GETH0>;
+                       interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+                       /* set by bootloader */
+                       local-mac-address = [00 00 00 00 00 00];
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       phy-connection-type = "mii";
+                       phy-handle = <&ethphy0>;
+                       status = "disabled";
+
+                       ethphy0: ethernet-phy@0 {
+                               reg = <0>;
+                       };
+               };
+
                apb@e80000 {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                chip: chip-control@ea0000 {
                        compatible = "marvell,berlin2cd-chip-ctrl";
                        #clock-cells = <1>;
+                       #reset-cells = <2>;
                        reg = <0xea0000 0x400>;
                        clocks = <&refclk>;
                        clock-names = "refclk";
                        };
                };
 
+               usb0: usb@ed0000 {
+                       compatible = "chipidea,usb2";
+                       reg = <0xed0000 0x200>;
+                       interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&chip CLKID_USB0>;
+                       phys = <&usb_phy0>;
+                       phy-names = "usb-phy";
+                       status = "disabled";
+               };
+
+               usb1: usb@ee0000 {
+                       compatible = "chipidea,usb2";
+                       reg = <0xee0000 0x200>;
+                       interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&chip CLKID_USB1>;
+                       phys = <&usb_phy1>;
+                       phy-names = "usb-phy";
+                       status = "disabled";
+               };
+
                apb@fc0000 {
                        compatible = "simple-bus";
                        #address-cells = <1>;
index ea1f99b8eed688988fa9b7924c60389d2162dbaa..28e7e2060c3399c204f547b37fc325fa1069e8d8 100644 (file)
@@ -7,6 +7,8 @@
  */
 
 /dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
 #include "berlin2q.dtsi"
 
 / {
        choosen {
                bootargs = "console=ttyS0,115200 earlyprintk";
        };
+
+       regulators {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               reg_usb0_vbus: regulator@0 {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb0_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&portb 8 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+               };
+
+               reg_usb1_vbus: regulator@1 {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb1_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&portb 10 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+               };
+
+               reg_usb2_vbus: regulator@2 {
+                       compatible = "regulator-fixed";
+                       regulator-name = "usb2_vbus";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       gpio = <&portb 12 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+               };
+       };
 };
 
 &sdhci1 {
        status = "okay";
 };
 
+&usb_phy0 {
+       status = "okay";
+};
+
+&usb_phy2 {
+       status = "okay";
+};
+
+&usb0 {
+       vbus-supply = <&reg_usb0_vbus>;
+       status = "okay";
+};
+
+&usb2 {
+       vbus-supply = <&reg_usb2_vbus>;
+       status = "okay";
+};
+
 &eth0 {
        status = "okay";
 };
+
+&sata0 {
+       status = "okay";
+};
+
+&sata_phy {
+       status = "okay";
+};
index 891d56b03922ad8237c306c80b56c5a936f8506d..35253c947a7cd0002211dac773d7f1f9723d6fce 100644 (file)
                        #interrupt-cells = <3>;
                };
 
+               usb_phy2: phy@a2f400 {
+                       compatible = "marvell,berlin2-usb-phy";
+                       reg = <0xa2f400 0x128>;
+                       #phy-cells = <0>;
+                       resets = <&chip 0x104 14>;
+                       status = "disabled";
+               };
+
+               usb2: usb@a30000 {
+                       compatible = "chipidea,usb2";
+                       reg = <0xa30000 0x10000>;
+                       interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&chip CLKID_USB2>;
+                       phys = <&usb_phy2>;
+                       phy-names = "usb-phy";
+                       status = "disabled";
+               };
+
+               usb_phy0: phy@b74000 {
+                       compatible = "marvell,berlin2-usb-phy";
+                       reg = <0xb74000 0x128>;
+                       #phy-cells = <0>;
+                       resets = <&chip 0x104 12>;
+                       status = "disabled";
+               };
+
+               usb_phy1: phy@b78000 {
+                       compatible = "marvell,berlin2-usb-phy";
+                       reg = <0xb78000 0x128>;
+                       #phy-cells = <0>;
+                       resets = <&chip 0x104 13>;
+                       status = "disabled";
+               };
+
                eth0: ethernet@b90000 {
                        compatible = "marvell,pxa168-eth";
                        reg = <0xb90000 0x10000>;
                        local-mac-address = [00 00 00 00 00 00];
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       phy-connection-type = "mii";
                        phy-handle = <&ethphy0>;
                        status = "disabled";
 
                                reg = <0x2c14 0x14>;
                                clocks = <&chip CLKID_CFG>;
                                clock-names = "timer";
-                               status = "disabled";
                        };
 
                        timer2: timer@2c28 {
                chip: chip-control@ea0000 {
                        compatible = "marvell,berlin2q-chip-ctrl";
                        #clock-cells = <1>;
+                       #reset-cells = <2>;
                        reg = <0xea0000 0x400>, <0xdd0170 0x10>;
                        clocks = <&refclk>;
                        clock-names = "refclk";
                        };
                };
 
+               ahci: sata@e90000 {
+                       compatible = "marvell,berlin2q-ahci", "generic-ahci";
+                       reg = <0xe90000 0x1000>;
+                       interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&chip CLKID_SATA>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       sata0: sata-port@0 {
+                               reg = <0>;
+                               phys = <&sata_phy 0>;
+                               status = "disabled";
+                       };
+
+                       sata1: sata-port@1 {
+                               reg = <1>;
+                               phys = <&sata_phy 1>;
+                               status = "disabled";
+                       };
+               };
+
+               sata_phy: phy@e900a0 {
+                       compatible = "marvell,berlin2q-sata-phy";
+                       reg = <0xe900a0 0x200>;
+                       clocks = <&chip CLKID_SATA>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #phy-cells = <1>;
+                       status = "disabled";
+
+                       sata-phy@0 {
+                               reg = <0>;
+                       };
+
+                       sata-phy@1 {
+                               reg = <1>;
+                       };
+               };
+
+               usb0: usb@ed0000 {
+                       compatible = "chipidea,usb2";
+                       reg = <0xed0000 0x10000>;
+                       interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&chip CLKID_USB0>;
+                       phys = <&usb_phy0>;
+                       phy-names = "usb-phy";
+                       status = "disabled";
+               };
+
+               usb1: usb@ee0000 {
+                       compatible = "chipidea,usb2";
+                       reg = <0xee0000 0x10000>;
+                       interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&chip CLKID_USB1>;
+                       phys = <&usb_phy1>;
+                       phy-names = "usb-phy";
+                       status = "disabled";
+               };
+
                apb@fc0000 {
                        compatible = "simple-bus";
                        #address-cells = <1>;
index c6ce6258434fa78ddbdc240de34dcb3cd3e0e1da..736092b1a535cdd566bd41856ad64a4583227b40 100644 (file)
                        0xd0    (PIN_OUTPUT | MUX_MODE0)        /* gpmc_be0n_cle */
                >;
        };
+
+       cpsw_default: cpsw_default {
+               pinctrl-single,pins = <
+                       /* Slave 1 */
+                       0x250 (PIN_OUTPUT | MUX_MODE0)  /* rgmii0_txc.rgmii0_txc */
+                       0x254 (PIN_OUTPUT | MUX_MODE0)  /* rgmii0_txctl.rgmii0_txctl */
+                       0x258 (PIN_OUTPUT | MUX_MODE0)  /* rgmii0_td3.rgmii0_txd3 */
+                       0x25c (PIN_OUTPUT | MUX_MODE0)  /* rgmii0_txd2.rgmii0_txd2 */
+                       0x260 (PIN_OUTPUT | MUX_MODE0)  /* rgmii0_txd1.rgmii0_txd1 */
+                       0x264 (PIN_OUTPUT | MUX_MODE0)  /* rgmii0_txd0.rgmii0_txd0 */
+                       0x268 (PIN_INPUT | MUX_MODE0)   /* rgmii0_rxc.rgmii0_rxc */
+                       0x26c (PIN_INPUT | MUX_MODE0)   /* rgmii0_rxctl.rgmii0_rxctl */
+                       0x270 (PIN_INPUT | MUX_MODE0)   /* rgmii0_rxd3.rgmii0_rxd3 */
+                       0x274 (PIN_INPUT | MUX_MODE0)   /* rgmii0_rxd2.rgmii0_rxd2 */
+                       0x278 (PIN_INPUT | MUX_MODE0)   /* rgmii0_rxd1.rgmii0_rxd1 */
+                       0x27c (PIN_INPUT | MUX_MODE0)   /* rgmii0_rxd0.rgmii0_rxd0 */
+
+                       /* Slave 2 */
+                       0x198 (PIN_OUTPUT | MUX_MODE3)  /* vin2a_d12.rgmii1_txc */
+                       0x19c (PIN_OUTPUT | MUX_MODE3)  /* vin2a_d13.rgmii1_tctl */
+                       0x1a0 (PIN_OUTPUT | MUX_MODE3)  /* vin2a_d14.rgmii1_td3 */
+                       0x1a4 (PIN_OUTPUT | MUX_MODE3)  /* vin2a_d15.rgmii1_td2 */
+                       0x1a8 (PIN_OUTPUT | MUX_MODE3)  /* vin2a_d16.rgmii1_td1 */
+                       0x1ac (PIN_OUTPUT | MUX_MODE3)  /* vin2a_d17.rgmii1_td0 */
+                       0x1b0 (PIN_INPUT | MUX_MODE3)   /* vin2a_d18.rgmii1_rclk */
+                       0x1b4 (PIN_INPUT | MUX_MODE3)   /* vin2a_d19.rgmii1_rctl */
+                       0x1b8 (PIN_INPUT | MUX_MODE3)   /* vin2a_d20.rgmii1_rd3 */
+                       0x1bc (PIN_INPUT | MUX_MODE3)   /* vin2a_d21.rgmii1_rd2 */
+                       0x1c0 (PIN_INPUT | MUX_MODE3)   /* vin2a_d22.rgmii1_rd1 */
+                       0x1c4 (PIN_INPUT | MUX_MODE3)   /* vin2a_d23.rgmii1_rd0 */
+               >;
+
+       };
+
+       cpsw_sleep: cpsw_sleep {
+               pinctrl-single,pins = <
+                       /* Slave 1 */
+                       0x250 (MUX_MODE15)
+                       0x254 (MUX_MODE15)
+                       0x258 (MUX_MODE15)
+                       0x25c (MUX_MODE15)
+                       0x260 (MUX_MODE15)
+                       0x264 (MUX_MODE15)
+                       0x268 (MUX_MODE15)
+                       0x26c (MUX_MODE15)
+                       0x270 (MUX_MODE15)
+                       0x274 (MUX_MODE15)
+                       0x278 (MUX_MODE15)
+                       0x27c (MUX_MODE15)
+
+                       /* Slave 2 */
+                       0x198 (MUX_MODE15)
+                       0x19c (MUX_MODE15)
+                       0x1a0 (MUX_MODE15)
+                       0x1a4 (MUX_MODE15)
+                       0x1a8 (MUX_MODE15)
+                       0x1ac (MUX_MODE15)
+                       0x1b0 (MUX_MODE15)
+                       0x1b4 (MUX_MODE15)
+                       0x1b8 (MUX_MODE15)
+                       0x1bc (MUX_MODE15)
+                       0x1c0 (MUX_MODE15)
+                       0x1c4 (MUX_MODE15)
+               >;
+       };
+
+       davinci_mdio_default: davinci_mdio_default {
+               pinctrl-single,pins = <
+                       0x23c (PIN_OUTPUT_PULLUP | MUX_MODE0)   /* mdio_d.mdio_d */
+                       0x240 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mdio_clk.mdio_clk */
+               >;
+       };
+
+       davinci_mdio_sleep: davinci_mdio_sleep {
+               pinctrl-single,pins = <
+                       0x23c (MUX_MODE15)
+                       0x240 (MUX_MODE15)
+               >;
+       };
+
+       dcan1_pins_default: dcan1_pins_default {
+               pinctrl-single,pins = <
+                       0x3d0   (PIN_OUTPUT | MUX_MODE0) /* dcan1_tx */
+                       0x3d4   (MUX_MODE15)            /* dcan1_rx.off */
+                       0x418   (PULL_DIS | MUX_MODE1) /* wakeup0.dcan1_rx */
+               >;
+       };
+
+       dcan1_pins_sleep: dcan1_pins_sleep {
+               pinctrl-single,pins = <
+                       0x3d0   (MUX_MODE15)    /* dcan1_tx.off */
+                       0x3d4   (MUX_MODE15)    /* dcan1_rx.off */
+                       0x418   (MUX_MODE15)    /* wakeup0.off */
+               >;
+       };
 };
 
 &i2c1 {
                                        regulator-name = "smps45";
                                        regulator-min-microvolt = < 850000>;
                                        regulator-max-microvolt = <1150000>;
+                                       regulator-always-on;
                                        regulator-boot-on;
                                };
 
                                        regulator-name = "smps6";
                                        regulator-min-microvolt = <850000>;
                                        regulator-max-microvolt = <12500000>;
+                                       regulator-always-on;
                                        regulator-boot-on;
                                };
 
                                        regulator-name = "smps8";
                                        regulator-min-microvolt = < 850000>;
                                        regulator-max-microvolt = <1250000>;
+                                       regulator-always-on;
                                        regulator-boot-on;
                                };
 
                                        regulator-name = "ldo2";
                                        regulator-min-microvolt = <3300000>;
                                        regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
                                        regulator-boot-on;
                                };
 
                                        regulator-name = "ldo9";
                                        regulator-min-microvolt = <1050000>;
                                        regulator-max-microvolt = <1050000>;
+                                       regulator-always-on;
                                        regulator-boot-on;
                                };
 
        ti,no-reset-on-init;
        ti,no-idle-on-init;
 };
+
+&mac {
+       status = "okay";
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&cpsw_default>;
+       pinctrl-1 = <&cpsw_sleep>;
+       dual_emac;
+};
+
+&cpsw_emac0 {
+       phy_id = <&davinci_mdio>, <2>;
+       phy-mode = "rgmii";
+       dual_emac_res_vlan = <1>;
+};
+
+&cpsw_emac1 {
+       phy_id = <&davinci_mdio>, <3>;
+       phy-mode = "rgmii";
+       dual_emac_res_vlan = <2>;
+};
+
+&davinci_mdio {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&davinci_mdio_default>;
+       pinctrl-1 = <&davinci_mdio_sleep>;
+};
+
+&dcan1 {
+       status = "ok";
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&dcan1_pins_default>;
+       pinctrl-1 = <&dcan1_pins_sleep>;
+};
index 9cc98436a98237336581d1a7447a231d7b7525bd..63bf99be17621330488f8c0e2bff00aa4373c692 100644 (file)
                serial3 = &uart4;
                serial4 = &uart5;
                serial5 = &uart6;
+               serial6 = &uart7;
+               serial7 = &uart8;
+               serial8 = &uart9;
+               serial9 = &uart10;
+               ethernet0 = &cpsw_emac0;
+               ethernet1 = &cpsw_emac1;
+               d_can0 = &dcan1;
+               d_can1 = &dcan2;
        };
 
        timer {
                        ti,hwmods = "counter_32k";
                };
 
+               dra7_ctrl_core: ctrl_core@4a002000 {
+                       compatible = "syscon";
+                       reg = <0x4a002000 0x6d0>;
+               };
+
                dra7_ctrl_general: tisyscon@4a002e00 {
                        compatible = "syscon";
                        reg = <0x4a002e00 0x7c>;
                        ti,hwmods = "uart1";
                        clock-frequency = <48000000>;
                        status = "disabled";
+                       dmas = <&sdma 49>, <&sdma 50>;
+                       dma-names = "tx", "rx";
                };
 
                uart2: serial@4806c000 {
                        ti,hwmods = "uart2";
                        clock-frequency = <48000000>;
                        status = "disabled";
+                       dmas = <&sdma 51>, <&sdma 52>;
+                       dma-names = "tx", "rx";
                };
 
                uart3: serial@48020000 {
                        ti,hwmods = "uart3";
                        clock-frequency = <48000000>;
                        status = "disabled";
+                       dmas = <&sdma 53>, <&sdma 54>;
+                       dma-names = "tx", "rx";
                };
 
                uart4: serial@4806e000 {
                        ti,hwmods = "uart4";
                        clock-frequency = <48000000>;
                         status = "disabled";
+                       dmas = <&sdma 55>, <&sdma 56>;
+                       dma-names = "tx", "rx";
                };
 
                uart5: serial@48066000 {
                        ti,hwmods = "uart5";
                        clock-frequency = <48000000>;
                        status = "disabled";
+                       dmas = <&sdma 63>, <&sdma 64>;
+                       dma-names = "tx", "rx";
                };
 
                uart6: serial@48068000 {
                        ti,hwmods = "uart6";
                        clock-frequency = <48000000>;
                        status = "disabled";
+                       dmas = <&sdma 79>, <&sdma 80>;
+                       dma-names = "tx", "rx";
                };
 
                uart7: serial@48420000 {
                mailbox1: mailbox@4a0f4000 {
                        compatible = "ti,omap4-mailbox";
                        reg = <0x4a0f4000 0x200>;
+                       interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mailbox1";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <3>;
                        ti,mbox-num-fifos = <8>;
                        status = "disabled";
                mailbox2: mailbox@4883a000 {
                        compatible = "ti,omap4-mailbox";
                        reg = <0x4883a000 0x200>;
+                       interrupts = <GIC_SPI 237 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mailbox2";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <4>;
                        ti,mbox-num-fifos = <12>;
                        status = "disabled";
                mailbox3: mailbox@4883c000 {
                        compatible = "ti,omap4-mailbox";
                        reg = <0x4883c000 0x200>;
+                       interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mailbox3";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <4>;
                        ti,mbox-num-fifos = <12>;
                        status = "disabled";
                mailbox4: mailbox@4883e000 {
                        compatible = "ti,omap4-mailbox";
                        reg = <0x4883e000 0x200>;
+                       interrupts = <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mailbox4";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <4>;
                        ti,mbox-num-fifos = <12>;
                        status = "disabled";
                mailbox5: mailbox@48840000 {
                        compatible = "ti,omap4-mailbox";
                        reg = <0x48840000 0x200>;
+                       interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mailbox5";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <4>;
                        ti,mbox-num-fifos = <12>;
                        status = "disabled";
                mailbox6: mailbox@48842000 {
                        compatible = "ti,omap4-mailbox";
                        reg = <0x48842000 0x200>;
+                       interrupts = <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mailbox6";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <4>;
                        ti,mbox-num-fifos = <12>;
                        status = "disabled";
                mailbox7: mailbox@48844000 {
                        compatible = "ti,omap4-mailbox";
                        reg = <0x48844000 0x200>;
+                       interrupts = <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mailbox7";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <4>;
                        ti,mbox-num-fifos = <12>;
                        status = "disabled";
                mailbox8: mailbox@48846000 {
                        compatible = "ti,omap4-mailbox";
                        reg = <0x48846000 0x200>;
+                       interrupts = <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mailbox8";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <4>;
                        ti,mbox-num-fifos = <12>;
                        status = "disabled";
                mailbox9: mailbox@4885e000 {
                        compatible = "ti,omap4-mailbox";
                        reg = <0x4885e000 0x200>;
+                       interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mailbox9";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <4>;
                        ti,mbox-num-fifos = <12>;
                        status = "disabled";
                mailbox10: mailbox@48860000 {
                        compatible = "ti,omap4-mailbox";
                        reg = <0x48860000 0x200>;
+                       interrupts = <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mailbox10";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <4>;
                        ti,mbox-num-fifos = <12>;
                        status = "disabled";
                mailbox11: mailbox@48862000 {
                        compatible = "ti,omap4-mailbox";
                        reg = <0x48862000 0x200>;
+                       interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 276 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mailbox11";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <4>;
                        ti,mbox-num-fifos = <12>;
                        status = "disabled";
                mailbox12: mailbox@48864000 {
                        compatible = "ti,omap4-mailbox";
                        reg = <0x48864000 0x200>;
+                       interrupts = <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mailbox12";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <4>;
                        ti,mbox-num-fifos = <12>;
                        status = "disabled";
                mailbox13: mailbox@48802000 {
                        compatible = "ti,omap4-mailbox";
                        reg = <0x48802000 0x200>;
+                       interrupts = <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 380 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mailbox13";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <4>;
                        ti,mbox-num-fifos = <12>;
                        status = "disabled";
                        status = "disabled";
                };
 
+               rtc@48838000 {
+                       compatible = "ti,am3352-rtc";
+                       reg = <0x48838000 0x100>;
+                       interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>;
+                       ti,hwmods = "rtcss";
+                       clocks = <&sys_32k_ck>;
+               };
+
                omap_control_usb2phy1: control-phy@4a002300 {
                        compatible = "ti,control-phy-usb2";
                        reg = <0x4a002300 0x4>;
                        };
                };
 
-               omap_dwc3_1@48880000 {
+               omap_dwc3_1: omap_dwc3_1@48880000 {
                        compatible = "ti,dwc3";
                        ti,hwmods = "usb_otg_ss1";
                        reg = <0x48880000 0x10000>;
                        };
                };
 
-               omap_dwc3_2@488c0000 {
+               omap_dwc3_2: omap_dwc3_2@488c0000 {
                        compatible = "ti,dwc3";
                        ti,hwmods = "usb_otg_ss2";
                        reg = <0x488c0000 0x10000>;
                };
 
                /* IRQ for DWC3_3 and DWC3_4 need IRQ crossbar */
-               omap_dwc3_3@48900000 {
+               omap_dwc3_3: omap_dwc3_3@48900000 {
                        compatible = "ti,dwc3";
                        ti,hwmods = "usb_otg_ss3";
                        reg = <0x48900000 0x10000>;
                        };
                };
 
-               omap_dwc3_4@48940000 {
-                       compatible = "ti,dwc3";
-                       ti,hwmods = "usb_otg_ss4";
-                       reg = <0x48940000 0x10000>;
-                       interrupts = <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       utmi-mode = <2>;
-                       ranges;
-                       status = "disabled";
-                       usb4: usb@48950000 {
-                               compatible = "snps,dwc3";
-                               reg = <0x48950000 0x17000>;
-                               interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
-                               tx-fifo-resize;
-                               maximum-speed = "high-speed";
-                               dr_mode = "otg";
-                       };
-               };
-
                elm: elm@48078000 {
                        compatible = "ti,am3352-elm";
                        reg = <0x48078000 0xfc0>;      /* device IO registers */
                        ti,irqs-skip = <10 133 139 140>;
                        ti,irqs-safe-map = <0>;
                };
+
+               mac: ethernet@4a100000 {
+                       compatible = "ti,cpsw";
+                       ti,hwmods = "gmac";
+                       clocks = <&dpll_gmac_ck>, <&gmac_gmii_ref_clk_div>;
+                       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 = <0x48484000 0x1000
+                              0x48485200 0x2E00>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       /*
+                        * rx_thresh_pend
+                        * rx_pend
+                        * tx_pend
+                        * misc_pend
+                        */
+                       interrupts = <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>;
+                       ranges;
+                       status = "disabled";
+
+                       davinci_mdio: mdio@48485000 {
+                               compatible = "ti,davinci_mdio";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               ti,hwmods = "davinci_mdio";
+                               bus_freq = <1000000>;
+                               reg = <0x48485000 0x100>;
+                       };
+
+                       cpsw_emac0: slave@48480200 {
+                               /* Filled in by U-Boot */
+                               mac-address = [ 00 00 00 00 00 00 ];
+                       };
+
+                       cpsw_emac1: slave@48480300 {
+                               /* Filled in by U-Boot */
+                               mac-address = [ 00 00 00 00 00 00 ];
+                       };
+
+                       phy_sel: cpsw-phy-sel@4a002554 {
+                               compatible = "ti,dra7xx-cpsw-phy-sel";
+                               reg= <0x4a002554 0x4>;
+                               reg-names = "gmii-sel";
+                       };
+               };
+
+               dcan1: can@481cc000 {
+                       compatible = "ti,dra7-d_can";
+                       ti,hwmods = "dcan1";
+                       reg = <0x4ae3c000 0x2000>;
+                       syscon-raminit = <&dra7_ctrl_core 0x558 0>;
+                       interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&dcan1_sys_clk_mux>;
+                       status = "disabled";
+               };
+
+               dcan2: can@481d0000 {
+                       compatible = "ti,dra7-d_can";
+                       ti,hwmods = "dcan2";
+                       reg = <0x48480000 0x2000>;
+                       syscon-raminit = <&dra7_ctrl_core 0x558 1>;
+                       interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&sys_clkin1>;
+                       status = "disabled";
+               };
        };
 };
 
index 41074288adfa2003b07baa3d0b27f99255d0e0c4..afc74fd4bb5e829f1866cc450eaffa3ff618880f 100644 (file)
                device_type = "memory";
                reg = <0x80000000 0x40000000>; /* 1024 MB */
        };
+
+       evm_3v3: fixedregulator-evm_3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "evm_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
 };
 
 &dra7_pmx_core {
                        0x404 (PIN_INPUT | MUX_MODE0) /* i2c1_scl.i2c1_scl */
                >;
        };
+
+       nand_default: nand_default {
+               pinctrl-single,pins = <
+                       0x0     (PIN_INPUT  | MUX_MODE0) /* gpmc_ad0 */
+                       0x4     (PIN_INPUT  | MUX_MODE0) /* gpmc_ad1 */
+                       0x8     (PIN_INPUT  | MUX_MODE0) /* gpmc_ad2 */
+                       0xc     (PIN_INPUT  | MUX_MODE0) /* gpmc_ad3 */
+                       0x10    (PIN_INPUT  | MUX_MODE0) /* gpmc_ad4 */
+                       0x14    (PIN_INPUT  | MUX_MODE0) /* gpmc_ad5 */
+                       0x18    (PIN_INPUT  | MUX_MODE0) /* gpmc_ad6 */
+                       0x1c    (PIN_INPUT  | MUX_MODE0) /* gpmc_ad7 */
+                       0x20    (PIN_INPUT  | MUX_MODE0) /* gpmc_ad8 */
+                       0x24    (PIN_INPUT  | MUX_MODE0) /* gpmc_ad9 */
+                       0x28    (PIN_INPUT  | MUX_MODE0) /* gpmc_ad10 */
+                       0x2c    (PIN_INPUT  | MUX_MODE0) /* gpmc_ad11 */
+                       0x30    (PIN_INPUT  | MUX_MODE0) /* gpmc_ad12 */
+                       0x34    (PIN_INPUT  | MUX_MODE0) /* gpmc_ad13 */
+                       0x38    (PIN_INPUT  | MUX_MODE0) /* gpmc_ad14 */
+                       0x3c    (PIN_INPUT  | MUX_MODE0) /* gpmc_ad15 */
+                       0xb4    (PIN_OUTPUT | MUX_MODE0) /* gpmc_cs0 */
+                       0xc4    (PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale */
+                       0xcc    (PIN_OUTPUT | MUX_MODE0) /* gpmc_wen */
+                       0xc8    (PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren */
+                       0xd0    (PIN_OUTPUT | MUX_MODE0) /* gpmc_ben0 */
+                       0xd8    (PIN_INPUT  | MUX_MODE0) /* gpmc_wait0 */
+               >;
+       };
+
+       usb1_pins: pinmux_usb1_pins {
+               pinctrl-single,pins = <
+                       0x280 (PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */
+               >;
+       };
+
+       usb2_pins: pinmux_usb2_pins {
+               pinctrl-single,pins = <
+                       0x284 (PIN_INPUT_SLEW | MUX_MODE0) /* usb2_drvvbus */
+               >;
+       };
+
+       tps65917_pins_default: tps65917_pins_default {
+               pinctrl-single,pins = <
+                       0x424 (PIN_INPUT_PULLUP | MUX_MODE1) /* wakeup3.sys_nirq1 */
+               >;
+       };
+
+       mmc1_pins_default: mmc1_pins_default {
+               pinctrl-single,pins = <
+                       0x36c (PIN_INPUT | MUX_MODE14)  /* mmc1sdcd.gpio219 */
+                       0x354 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
+                       0x358 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
+                       0x35c (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
+                       0x360 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
+                       0x364 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
+                       0x368 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc2_pins_default: mmc2_pins_default {
+               pinctrl-single,pins = <
+                       0x9c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
+                       0xb0 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
+                       0xa0 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
+                       0xa4 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
+                       0xa8 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
+                       0xac (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
+                       0x8c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
+                       0x90 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
+                       0x94 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
+                       0x98 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
+               >;
+       };
+
+       dcan1_pins_default: dcan1_pins_default {
+               pinctrl-single,pins = <
+                       0x3d0   (PIN_OUTPUT | MUX_MODE0) /* dcan1_tx */
+                       0x3d4   (MUX_MODE15)            /* dcan1_rx.off */
+                       0x418   (PULL_DIS | MUX_MODE1) /* wakeup0.dcan1_rx */
+               >;
+       };
+
+       dcan1_pins_sleep: dcan1_pins_sleep {
+               pinctrl-single,pins = <
+                       0x3d0   (MUX_MODE15)    /* dcan1_tx.off */
+                       0x3d4   (MUX_MODE15)    /* dcan1_rx.off */
+                       0x418   (MUX_MODE15)    /* wakeup0.off */
+               >;
+       };
 };
 
 &i2c1 {
                compatible = "ti,tps65917";
                reg = <0x58>;
 
+               pinctrl-names = "default";
+               pinctrl-0 = <&tps65917_pins_default>;
+
                interrupts = <GIC_SPI 2 IRQ_TYPE_NONE>;  /* IRQ_SYS_1N */
                interrupt-parent = <&gic>;
                interrupt-controller;
                                };
                        };
                };
+
+               tps65917_power_button {
+                       compatible = "ti,palmas-pwrbutton";
+                       interrupt-parent = <&tps65917>;
+                       interrupts = <1 IRQ_TYPE_NONE>;
+                       wakeup-source;
+                       ti,palmas-long-press-seconds = <6>;
+               };
        };
 };
 
 &uart1 {
        status = "okay";
 };
+
+&elm {
+       status = "okay";
+};
+
+&gpmc {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&nand_default>;
+       ranges = <0 0 0 0x01000000>;    /* minimum GPMC partition = 16MB */
+       nand@0,0 {
+               /* To use NAND, DIP switch SW5 must be set like so:
+                * SW5.1 (NAND_SELn) = ON (LOW)
+                * SW5.9 (GPMC_WPN) = OFF (HIGH)
+                */
+               reg = <0 0 4>;          /* device IO registers */
+               ti,nand-ecc-opt = "bch8";
+               ti,elm-id = <&elm>;
+               nand-bus-width = <16>;
+               gpmc,device-width = <2>;
+               gpmc,sync-clk-ps = <0>;
+               gpmc,cs-on-ns = <0>;
+               gpmc,cs-rd-off-ns = <80>;
+               gpmc,cs-wr-off-ns = <80>;
+               gpmc,adv-on-ns = <0>;
+               gpmc,adv-rd-off-ns = <60>;
+               gpmc,adv-wr-off-ns = <60>;
+               gpmc,we-on-ns = <10>;
+               gpmc,we-off-ns = <50>;
+               gpmc,oe-on-ns = <4>;
+               gpmc,oe-off-ns = <40>;
+               gpmc,access-ns = <40>;
+               gpmc,wr-access-ns = <80>;
+               gpmc,rd-cycle-ns = <80>;
+               gpmc,wr-cycle-ns = <80>;
+               gpmc,bus-turnaround-ns = <0>;
+               gpmc,cycle2cycle-delay-ns = <0>;
+               gpmc,clk-activation-ns = <0>;
+               gpmc,wait-monitoring-ns = <0>;
+               gpmc,wr-data-mux-bus-ns = <0>;
+               /* MTD partition table */
+               /* All SPL-* partitions are sized to minimal length
+                * which can be independently programmable. For
+                * NAND flash this is equal to size of erase-block */
+               #address-cells = <1>;
+               #size-cells = <1>;
+               partition@0 {
+                       label = "NAND.SPL";
+                       reg = <0x00000000 0x000020000>;
+               };
+               partition@1 {
+                       label = "NAND.SPL.backup1";
+                       reg = <0x00020000 0x00020000>;
+               };
+               partition@2 {
+                       label = "NAND.SPL.backup2";
+                       reg = <0x00040000 0x00020000>;
+               };
+               partition@3 {
+                       label = "NAND.SPL.backup3";
+                       reg = <0x00060000 0x00020000>;
+               };
+               partition@4 {
+                       label = "NAND.u-boot-spl-os";
+                       reg = <0x00080000 0x00040000>;
+               };
+               partition@5 {
+                       label = "NAND.u-boot";
+                       reg = <0x000c0000 0x00100000>;
+               };
+               partition@6 {
+                       label = "NAND.u-boot-env";
+                       reg = <0x001c0000 0x00020000>;
+               };
+               partition@7 {
+                       label = "NAND.u-boot-env.backup1";
+                       reg = <0x001e0000 0x00020000>;
+               };
+               partition@8 {
+                       label = "NAND.kernel";
+                       reg = <0x00200000 0x00800000>;
+               };
+               partition@9 {
+                       label = "NAND.file-system";
+                       reg = <0x00a00000 0x0f600000>;
+               };
+       };
+};
+
+&usb2_phy1 {
+       phy-supply = <&ldo4_reg>;
+};
+
+&usb2_phy2 {
+       phy-supply = <&ldo4_reg>;
+};
+
+&usb1 {
+       dr_mode = "peripheral";
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb1_pins>;
+};
+
+&usb2 {
+       dr_mode = "host";
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb2_pins>;
+};
+
+&mmc1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins_default>;
+
+       vmmc-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>;
+};
+
+&mmc2 {
+       /* SW5-3 in ON position */
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_pins_default>;
+
+       vmmc-supply = <&evm_3v3>;
+       bus-width = <8>;
+       ti,non-removable;
+};
+
+&dra7_pmx_core {
+       cpsw_default: cpsw_default {
+               pinctrl-single,pins = <
+                       /* Slave 2 */
+                       0x198 (PIN_OUTPUT | MUX_MODE3)  /* vin2a_d12.rgmii1_txc */
+                       0x19c (PIN_OUTPUT | MUX_MODE3)  /* vin2a_d13.rgmii1_tctl */
+                       0x1a0 (PIN_OUTPUT | MUX_MODE3)  /* vin2a_d14.rgmii1_td3 */
+                       0x1a4 (PIN_OUTPUT | MUX_MODE3)  /* vin2a_d15.rgmii1_td2 */
+                       0x1a8 (PIN_OUTPUT | MUX_MODE3)  /* vin2a_d16.rgmii1_td1 */
+                       0x1ac (PIN_OUTPUT | MUX_MODE3)  /* vin2a_d17.rgmii1_td0 */
+                       0x1b0 (PIN_INPUT | MUX_MODE3)   /* vin2a_d18.rgmii1_rclk */
+                       0x1b4 (PIN_INPUT | MUX_MODE3)   /* vin2a_d19.rgmii1_rctl */
+                       0x1b8 (PIN_INPUT | MUX_MODE3)   /* vin2a_d20.rgmii1_rd3 */
+                       0x1bc (PIN_INPUT | MUX_MODE3)   /* vin2a_d21.rgmii1_rd2 */
+                       0x1c0 (PIN_INPUT | MUX_MODE3)   /* vin2a_d22.rgmii1_rd1 */
+                       0x1c4 (PIN_INPUT | MUX_MODE3)   /* vin2a_d23.rgmii1_rd0 */
+               >;
+
+       };
+
+       cpsw_sleep: cpsw_sleep {
+               pinctrl-single,pins = <
+                       /* Slave 2 */
+                       0x198 (MUX_MODE15)
+                       0x19c (MUX_MODE15)
+                       0x1a0 (MUX_MODE15)
+                       0x1a4 (MUX_MODE15)
+                       0x1a8 (MUX_MODE15)
+                       0x1ac (MUX_MODE15)
+                       0x1b0 (MUX_MODE15)
+                       0x1b4 (MUX_MODE15)
+                       0x1b8 (MUX_MODE15)
+                       0x1bc (MUX_MODE15)
+                       0x1c0 (MUX_MODE15)
+                       0x1c4 (MUX_MODE15)
+               >;
+       };
+
+       davinci_mdio_default: davinci_mdio_default {
+               pinctrl-single,pins = <
+                       /* MDIO */
+                       0x23c (PIN_OUTPUT_PULLUP | MUX_MODE0)   /* mdio_d.mdio_d */
+                       0x240 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mdio_clk.mdio_clk */
+               >;
+       };
+
+       davinci_mdio_sleep: davinci_mdio_sleep {
+               pinctrl-single,pins = <
+                       0x23c (MUX_MODE15)
+                       0x240 (MUX_MODE15)
+               >;
+       };
+};
+
+&mac {
+       status = "okay";
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&cpsw_default>;
+       pinctrl-1 = <&cpsw_sleep>;
+};
+
+&cpsw_emac1 {
+       phy_id = <&davinci_mdio>, <3>;
+       phy-mode = "rgmii";
+};
+
+&davinci_mdio {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&davinci_mdio_default>;
+       pinctrl-1 = <&davinci_mdio_sleep>;
+       active_slave = <1>;
+};
+
+&dcan1 {
+       status = "ok";
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&dcan1_pins_default>;
+       pinctrl-1 = <&dcan1_pins_sleep>;
+};
index 3be544c4891ff86a0541175254317e6484561a4e..10173fab1a15b72983d43fddf453ed5d4105f73a 100644 (file)
                interrupts = <GIC_SPI DIRECT_IRQ(131) IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI DIRECT_IRQ(132) IRQ_TYPE_LEVEL_HIGH>;
        };
+
+       ocp {
+               omap_dwc3_4: omap_dwc3_4@48940000 {
+                       compatible = "ti,dwc3";
+                       ti,hwmods = "usb_otg_ss4";
+                       reg = <0x48940000 0x10000>;
+                       interrupts = <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       utmi-mode = <2>;
+                       ranges;
+                       status = "disabled";
+                       usb4: usb@48950000 {
+                               compatible = "snps,dwc3";
+                               reg = <0x48950000 0x17000>;
+                               interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
+                               tx-fifo-resize;
+                               maximum-speed = "high-speed";
+                               dr_mode = "otg";
+                       };
+               };
+       };
 };
index 50ccd151091e23d3acbec986bb3a321181b987b5..667d323e80a3e17616aec13cd0faab9f5a638a89 100644 (file)
 
        chosen {
                bootargs = "console=ttyS1,115200n81 ignore_loglevel root=/dev/nfs ip=dhcp";
-       };
-
-       reg_1p8v: regulator@0 {
-               compatible = "regulator-fixed";
-               regulator-name = "fixed-1.8V";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               regulator-always-on;
-               regulator-boot-on;
-       };
-
-       reg_3p3v: regulator@1 {
-               compatible = "regulator-fixed";
-               regulator-name = "fixed-3.3V";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               regulator-always-on;
-               regulator-boot-on;
-       };
-
-       lan9220@20000000 {
-               compatible = "smsc,lan9220", "smsc,lan9115";
-               reg = <0x20000000 0x10000>;
-               phy-mode = "mii";
-               interrupt-parent = <&gpio0>;
-               interrupts = <1 IRQ_TYPE_EDGE_RISING>;
-               reg-io-width = <4>;
-               smsc,irq-active-high;
-               smsc,irq-push-pull;
-               vddvario-supply = <&reg_1p8v>;
-               vdd33a-supply = <&reg_3p3v>;
+               stdout-path = &uart1;
        };
 
        gpio_keys {
                        gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
                };
        };
+
+       reg_1p8v: regulator@0 {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-1.8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       reg_3p3v: regulator@1 {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       lan9220@20000000 {
+               compatible = "smsc,lan9220", "smsc,lan9115";
+               reg = <0x20000000 0x10000>;
+               phy-mode = "mii";
+               interrupt-parent = <&gpio0>;
+               interrupts = <1 IRQ_TYPE_EDGE_RISING>;
+               reg-io-width = <4>;
+               smsc,irq-active-high;
+               smsc,irq-push-pull;
+               vddvario-supply = <&reg_1p8v>;
+               vdd33a-supply = <&reg_3p3v>;
+       };
 };
index 00eeed3721b63bfeb0bad99169557f660a03f1cc..cc7bfe0ba40af9a90ac8756c74e45865e0c68b0a 100644 (file)
@@ -55,7 +55,7 @@
                             <0 121 IRQ_TYPE_LEVEL_HIGH>;
        };
 
-       smu@e0110000 {
+       clocks@e0110000 {
                compatible = "renesas,emev2-smu";
                reg = <0xe0110000 0x10000>;
                #address-cells = <2>;
                };
        };
 
-       sti@e0180000 {
+       timer@e0180000 {
                compatible = "renesas,em-sti";
                reg = <0xe0180000 0x54>;
                interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>;
                clock-names = "sclk";
        };
 
-       uart@e1020000 {
+       uart0: serial@e1020000 {
                compatible = "renesas,em-uart";
                reg = <0xe1020000 0x38>;
                interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>;
                clock-names = "sclk";
        };
 
-       uart@e1030000 {
+       uart1: serial@e1030000 {
                compatible = "renesas,em-uart";
                reg = <0xe1030000 0x38>;
                interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
                clock-names = "sclk";
        };
 
-       uart@e1040000 {
+       uart2: serial@e1040000 {
                compatible = "renesas,em-uart";
                reg = <0xe1040000 0x38>;
                interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
                clock-names = "sclk";
        };
 
-       uart@e1050000 {
+       uart3: serial@e1050000 {
                compatible = "renesas,em-uart";
                reg = <0xe1050000 0x38>;
                interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/exynos3250-monk.dts b/arch/arm/boot/dts/exynos3250-monk.dts
new file mode 100644 (file)
index 0000000..24822aa
--- /dev/null
@@ -0,0 +1,579 @@
+/*
+ * Samsung's Exynos3250 based Monk board device tree source
+ *
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *             http://www.samsung.com
+ *
+ * Device tree source file for Samsung's Monk board which is based on
+ * Samsung Exynos3250 SoC.
+ *
+ * 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 "exynos3250.dtsi"
+#include <dt-bindings/input/input.h>
+
+/ {
+       model = "Samsung Monk board";
+       compatible = "samsung,monk", "samsung,exynos3250", "samsung,exynos3";
+
+       aliases {
+               i2c7 = &i2c_max77836;
+       };
+
+       memory {
+               reg =  <0x40000000 0x1ff00000>;
+       };
+
+       firmware@0205F000 {
+               compatible = "samsung,secure-firmware";
+               reg = <0x0205F000 0x1000>;
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+
+               power_key {
+                       interrupt-parent = <&gpx2>;
+                       interrupts = <7 0>;
+                       gpios = <&gpx2 7 1>;
+                       linux,code = <KEY_POWER>;
+                       label = "power key";
+                       debounce-interval = <10>;
+                       gpio-key,wakeup;
+               };
+       };
+
+       vemmc_reg: voltage-regulator-0 {
+               compatible = "regulator-fixed";
+               regulator-name = "V_EMMC_2.8V-fixed";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+               gpio = <&gpk0 2 0>;
+               enable-active-high;
+       };
+
+       i2c_max77836: i2c-gpio-0 {
+               compatible = "i2c-gpio";
+               gpios = <&gpd0 2 0>, <&gpd0 3 0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               max77836: subpmic@25 {
+                       compatible = "maxim,max77836";
+                       interrupt-parent = <&gpx1>;
+                       interrupts = <5 0>;
+                       reg = <0x25>;
+                       wakeup;
+
+                       muic: max77836-muic {
+                               compatible = "maxim,max77836-muic";
+                       };
+
+                       regulators {
+                               compatible = "maxim,max77836-regulator";
+                               safeout_reg: SAFEOUT {
+                                       regulator-name = "SAFEOUT";
+                               };
+
+                               charger_reg: CHARGER {
+                                       regulator-name = "CHARGER";
+                                       regulator-min-microamp = <45000>;
+                                       regulator-max-microamp = <475000>;
+                                       regulator-boot-on;
+                               };
+
+                               motor_reg: LDO1 {
+                                       regulator-name = "MOT_2.7V";
+                                       regulator-min-microvolt = <1100000>;
+                                       regulator-max-microvolt = <2700000>;
+                               };
+
+                               LDO2 {
+                                       regulator-name = "UNUSED_LDO2";
+                                       regulator-min-microvolt = <800000>;
+                                       regulator-max-microvolt = <3950000>;
+                               };
+                       };
+
+                       charger {
+                               compatible = "maxim,max77836-charger";
+
+                               maxim,constant-uvolt = <4350000>;
+                               maxim,fast-charge-uamp = <225000>;
+                               maxim,eoc-uamp = <7500>;
+                               maxim,ovp-uvolt = <6500000>;
+                       };
+               };
+       };
+};
+
+&adc {
+       vdd-supply = <&ldo3_reg>;
+       status = "okay";
+       assigned-clocks = <&cmu CLK_SCLK_TSADC>;
+       assigned-clock-rates = <6000000>;
+
+       thermistor-ap {
+               compatible = "ntc,ncp15wb473";
+               pullup-uv = <1800000>;
+               pullup-ohm = <100000>;
+               pulldown-ohm = <100000>;
+               io-channels = <&adc 0>;
+       };
+
+       thermistor-battery {
+               compatible = "ntc,ncp15wb473";
+               pullup-uv = <1800000>;
+               pullup-ohm = <100000>;
+               pulldown-ohm = <100000>;
+               io-channels = <&adc 1>;
+       };
+};
+
+&i2c_0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-slave-addr = <0x10>;
+       samsung,i2c-max-bus-freq = <100000>;
+       status = "okay";
+
+       s2mps14_pmic@66 {
+               compatible = "samsung,s2mps14-pmic";
+               interrupt-parent = <&gpx0>;
+               interrupts = <7 0>;
+               reg = <0x66>;
+               wakeup;
+
+               s2mps14_osc: clocks {
+                       compatible = "samsung,s2mps14-clk";
+                       #clock-cells = <1>;
+                       clock-output-names = "s2mps14_ap", "unused",
+                               "s2mps14_bt";
+               };
+
+               regulators {
+                       ldo1_reg: LDO1 {
+                               regulator-name = "VAP_ALIVE_1.0V";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                       };
+
+                       ldo2_reg: LDO2 {
+                               regulator-name = "VAP_M1_1.2V";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                       };
+
+                       ldo3_reg: LDO3 {
+                               regulator-name = "VCC_AP_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                       };
+
+                       ldo4_reg: LDO4 {
+                               regulator-name = "VAP_AVDD_PLL1";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                       };
+
+                       ldo5_reg: LDO5 {
+                               regulator-name = "VAP_PLL_ISO_1.0V";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                       };
+
+                       ldo6_reg: LDO6 {
+                               regulator-name = "VAP_MIPI_1.0V";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                       };
+
+                       ldo7_reg: LDO7 {
+                               regulator-name = "VAP_AVDD_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                       };
+
+                       ldo8_reg: LDO8 {
+                               regulator-name = "VAP_USB_3.0V";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-always-on;
+                       };
+
+                       ldo9_reg: LDO9 {
+                               regulator-name = "V_LPDDR_1.2V";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                       };
+
+                       ldo10_reg: LDO10 {
+                               regulator-name = "UNUSED_LDO10";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                       };
+
+                       ldo11_reg: LDO11 {
+                               regulator-name = "V_EMMC_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               samsung,ext-control-gpios = <&gpk0 2 0>;
+                       };
+
+                       ldo12_reg: LDO12 {
+                               regulator-name = "V_EMMC_2.8V";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               samsung,ext-control-gpios = <&gpk0 2 0>;
+                       };
+
+                       ldo13_reg: LDO13 {
+                               regulator-name = "VSENSOR_2.85V";
+                               regulator-min-microvolt = <2850000>;
+                               regulator-max-microvolt = <2850000>;
+                               regulator-always-on;
+                       };
+
+                       ldo14_reg: LDO14 {
+                               regulator-name = "UNUSED_LDO14";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       ldo15_reg: LDO15 {
+                               regulator-name = "TSP_AVDD_3.3V";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       ldo16_reg: LDO16 {
+                               regulator-name = "LCD_VDD_3.3V";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       ldo17_reg: LDO17 {
+                               regulator-name = "UNUSED_LDO17";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       ldo18_reg: LDO18 {
+                               regulator-name = "UNUSED_LDO18";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       ldo19_reg: LDO19 {
+                               regulator-name = "TSP_VDD_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       ldo20_reg: LDO20 {
+                               regulator-name = "LCD_VDD_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       ldo21_reg: LDO21 {
+                               regulator-name = "UNUSED_LDO21";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                       };
+
+                       ldo22_reg: LDO22 {
+                               regulator-name = "UNUSED_LDO22";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                       };
+
+                       ldo23_reg: LDO23 {
+                               regulator-name = "UNUSED_LDO23";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                       };
+
+                       ldo24_reg: LDO24 {
+                               regulator-name = "UNUSED_LDO24";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       ldo25_reg: LDO25 {
+                               regulator-name = "UNUSED_LDO25";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       buck1_reg: BUCK1 {
+                               regulator-name = "VAP_MIF_1.0V";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-always-on;
+                       };
+
+                       buck2_reg: BUCK2 {
+                               regulator-name = "VAP_ARM_1.0V";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <1150000>;
+                               regulator-always-on;
+                       };
+
+                       buck3_reg: BUCK3 {
+                               regulator-name = "VAP_INT3D_1.0V";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                       };
+
+                       buck4_reg: BUCK4 {
+                               regulator-name = "VCC_SUB_1.95V";
+                               regulator-min-microvolt = <1950000>;
+                               regulator-max-microvolt = <1950000>;
+                               regulator-always-on;
+                       };
+
+                       buck5_reg: BUCK5 {
+                               regulator-name = "VCC_SUB_1.35V";
+                               regulator-min-microvolt = <1350000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&i2c_1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-slave-addr = <0x10>;
+       samsung,i2c-max-bus-freq = <400000>;
+       status = "okay";
+
+       fuelgauge@36 {
+               compatible = "maxim,max77836-battery";
+               interrupt-parent = <&gpx1>;
+               interrupts = <2 8>;
+               reg = <0x36>;
+       };
+};
+
+&i2s2 {
+       status = "okay";
+};
+
+&mshc_0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       num-slots = <1>;
+       broken-cd;
+       non-removable;
+       cap-mmc-highspeed;
+       desc-num = <4>;
+       mmc-hs200-1_8v;
+       card-detect-delay = <200>;
+       vmmc-supply = <&vemmc_reg>;
+       clock-frequency = <100000000>;
+       clock-freq-min-max = <400000 100000000>;
+       samsung,dw-mshc-ciu-div = <1>;
+       samsung,dw-mshc-sdr-timing = <0 1>;
+       samsung,dw-mshc-ddr-timing = <1 2>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
+       bus-width = <8>;
+       status = "okay";
+};
+
+&serial_0 {
+       assigned-clocks = <&cmu CLK_SCLK_UART0>;
+       assigned-clock-rates = <100000000>;
+       status = "okay";
+};
+
+&serial_1 {
+       status = "okay";
+};
+
+&tmu {
+       vtmu-supply = <&ldo7_reg>;
+       status = "okay";
+};
+
+&rtc {
+       clocks = <&cmu CLK_RTC>, <&s2mps14_osc 0>;
+       clock-names = "rtc", "rtc_src";
+       status = "okay";
+};
+
+&xusbxti {
+       clock-frequency = <24000000>;
+};
+
+&pinctrl_0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sleep0>;
+
+       sleep0: sleep-state {
+               PIN_SLP(gpa0-0, INPUT, DOWN);
+               PIN_SLP(gpa0-1, INPUT, DOWN);
+               PIN_SLP(gpa0-2, INPUT, DOWN);
+               PIN_SLP(gpa0-3, INPUT, DOWN);
+               PIN_SLP(gpa0-4, INPUT, DOWN);
+               PIN_SLP(gpa0-5, INPUT, DOWN);
+               PIN_SLP(gpa0-6, INPUT, DOWN);
+               PIN_SLP(gpa0-7, INPUT, DOWN);
+
+               PIN_SLP(gpa1-0, INPUT, DOWN);
+               PIN_SLP(gpa1-1, INPUT, DOWN);
+               PIN_SLP(gpa1-2, INPUT, DOWN);
+               PIN_SLP(gpa1-3, INPUT, DOWN);
+               PIN_SLP(gpa1-4, INPUT, DOWN);
+               PIN_SLP(gpa1-5, INPUT, DOWN);
+
+               PIN_SLP(gpb-0, PREV, NONE);
+               PIN_SLP(gpb-1, PREV, NONE);
+               PIN_SLP(gpb-2, PREV, NONE);
+               PIN_SLP(gpb-3, PREV, NONE);
+               PIN_SLP(gpb-4, INPUT, DOWN);
+               PIN_SLP(gpb-5, INPUT, DOWN);
+               PIN_SLP(gpb-6, INPUT, DOWN);
+               PIN_SLP(gpb-7, INPUT, DOWN);
+
+               PIN_SLP(gpc0-0, INPUT, DOWN);
+               PIN_SLP(gpc0-1, INPUT, DOWN);
+               PIN_SLP(gpc0-2, INPUT, DOWN);
+               PIN_SLP(gpc0-3, INPUT, DOWN);
+               PIN_SLP(gpc0-4, INPUT, DOWN);
+
+               PIN_SLP(gpc1-0, INPUT, DOWN);
+               PIN_SLP(gpc1-1, INPUT, DOWN);
+               PIN_SLP(gpc1-2, INPUT, DOWN);
+               PIN_SLP(gpc1-3, INPUT, DOWN);
+               PIN_SLP(gpc1-4, INPUT, DOWN);
+
+               PIN_SLP(gpd0-0, INPUT, DOWN);
+               PIN_SLP(gpd0-1, INPUT, DOWN);
+               PIN_SLP(gpd0-2, INPUT, NONE);
+               PIN_SLP(gpd0-3, INPUT, NONE);
+
+               PIN_SLP(gpd1-0, INPUT, NONE);
+               PIN_SLP(gpd1-1, INPUT, NONE);
+               PIN_SLP(gpd1-2, INPUT, NONE);
+               PIN_SLP(gpd1-3, INPUT, NONE);
+       };
+};
+
+&pinctrl_1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sleep1>;
+
+       sleep1: sleep-state {
+               PIN_SLP(gpe0-0, PREV, NONE);
+               PIN_SLP(gpe0-1, PREV, NONE);
+               PIN_SLP(gpe0-2, INPUT, DOWN);
+               PIN_SLP(gpe0-3, INPUT, DOWN);
+               PIN_SLP(gpe0-4, PREV, NONE);
+               PIN_SLP(gpe0-5, INPUT, DOWN);
+               PIN_SLP(gpe0-6, INPUT, DOWN);
+               PIN_SLP(gpe0-7, INPUT, DOWN);
+
+               PIN_SLP(gpe1-0, INPUT, DOWN);
+               PIN_SLP(gpe1-1, PREV, NONE);
+               PIN_SLP(gpe1-2, INPUT, DOWN);
+               PIN_SLP(gpe1-3, INPUT, DOWN);
+               PIN_SLP(gpe1-4, INPUT, DOWN);
+               PIN_SLP(gpe1-5, INPUT, DOWN);
+               PIN_SLP(gpe1-6, INPUT, DOWN);
+               PIN_SLP(gpe1-7, INPUT, NONE);
+
+               PIN_SLP(gpe2-0, INPUT, NONE);
+               PIN_SLP(gpe2-1, INPUT, NONE);
+               PIN_SLP(gpe2-2, INPUT, NONE);
+
+               PIN_SLP(gpk0-0, INPUT, DOWN);
+               PIN_SLP(gpk0-1, INPUT, DOWN);
+               PIN_SLP(gpk0-2, OUT0, NONE);
+               PIN_SLP(gpk0-3, INPUT, DOWN);
+               PIN_SLP(gpk0-4, INPUT, DOWN);
+               PIN_SLP(gpk0-5, INPUT, DOWN);
+               PIN_SLP(gpk0-6, INPUT, DOWN);
+               PIN_SLP(gpk0-7, INPUT, DOWN);
+
+               PIN_SLP(gpk1-0, PREV, NONE);
+               PIN_SLP(gpk1-1, PREV, NONE);
+               PIN_SLP(gpk1-2, INPUT, DOWN);
+               PIN_SLP(gpk1-3, PREV, NONE);
+               PIN_SLP(gpk1-4, PREV, NONE);
+               PIN_SLP(gpk1-5, PREV, NONE);
+               PIN_SLP(gpk1-6, PREV, NONE);
+
+               PIN_SLP(gpk2-0, INPUT, DOWN);
+               PIN_SLP(gpk2-1, INPUT, DOWN);
+               PIN_SLP(gpk2-2, INPUT, DOWN);
+               PIN_SLP(gpk2-3, INPUT, DOWN);
+               PIN_SLP(gpk2-4, INPUT, DOWN);
+               PIN_SLP(gpk2-5, INPUT, DOWN);
+               PIN_SLP(gpk2-6, INPUT, DOWN);
+
+               PIN_SLP(gpl0-0, INPUT, DOWN);
+               PIN_SLP(gpl0-1, INPUT, DOWN);
+               PIN_SLP(gpl0-2, INPUT, DOWN);
+               PIN_SLP(gpl0-3, INPUT, DOWN);
+
+               PIN_SLP(gpm0-0, INPUT, DOWN);
+               PIN_SLP(gpm0-1, INPUT, DOWN);
+               PIN_SLP(gpm0-2, INPUT, DOWN);
+               PIN_SLP(gpm0-3, INPUT, DOWN);
+               PIN_SLP(gpm0-4, INPUT, DOWN);
+               PIN_SLP(gpm0-5, INPUT, DOWN);
+               PIN_SLP(gpm0-6, INPUT, DOWN);
+               PIN_SLP(gpm0-7, INPUT, DOWN);
+
+               PIN_SLP(gpm1-0, INPUT, DOWN);
+               PIN_SLP(gpm1-1, INPUT, DOWN);
+               PIN_SLP(gpm1-2, INPUT, DOWN);
+               PIN_SLP(gpm1-3, INPUT, DOWN);
+               PIN_SLP(gpm1-4, INPUT, DOWN);
+               PIN_SLP(gpm1-5, INPUT, DOWN);
+               PIN_SLP(gpm1-6, INPUT, DOWN);
+
+               PIN_SLP(gpm2-0, INPUT, DOWN);
+               PIN_SLP(gpm2-1, INPUT, DOWN);
+               PIN_SLP(gpm2-2, INPUT, DOWN);
+               PIN_SLP(gpm2-3, INPUT, DOWN);
+               PIN_SLP(gpm2-4, INPUT, DOWN);
+
+               PIN_SLP(gpm3-0, INPUT, DOWN);
+               PIN_SLP(gpm3-1, INPUT, DOWN);
+               PIN_SLP(gpm3-2, INPUT, DOWN);
+               PIN_SLP(gpm3-3, INPUT, DOWN);
+               PIN_SLP(gpm3-4, INPUT, DOWN);
+               PIN_SLP(gpm3-5, INPUT, DOWN);
+               PIN_SLP(gpm3-6, INPUT, DOWN);
+               PIN_SLP(gpm3-7, INPUT, DOWN);
+
+               PIN_SLP(gpm4-0, INPUT, DOWN);
+               PIN_SLP(gpm4-1, INPUT, DOWN);
+               PIN_SLP(gpm4-2, INPUT, DOWN);
+               PIN_SLP(gpm4-3, INPUT, DOWN);
+               PIN_SLP(gpm4-4, INPUT, DOWN);
+               PIN_SLP(gpm4-5, INPUT, DOWN);
+               PIN_SLP(gpm4-6, INPUT, DOWN);
+               PIN_SLP(gpm4-7, INPUT, DOWN);
+       };
+};
index 47b92c150f4e5cd6e3501ee9708df16d8e024df8..5ab81c39e2c9ca8bcd21e1cb14559e2e0166837a 100644 (file)
  * published by the Free Software Foundation.
 */
 
+#define PIN_PULL_NONE          0
+#define PIN_PULL_DOWN          1
+#define PIN_PULL_UP            3
+
+#define PIN_PDN_OUT0           0
+#define PIN_PDN_OUT1           1
+#define PIN_PDN_INPUT          2
+#define PIN_PDN_PREV           3
+
+#define PIN_SLP(_pin, _mode, _pull)                            \
+       _pin {                                                  \
+               samsung,pins = #_pin;                           \
+               samsung,pin-con-pdn = <PIN_PDN_ ##_mode>;       \
+               samsung,pin-pud-pdn = <PIN_PULL_ ##_pull>;      \
+       }
+
 &pinctrl_0 {
        gpa0: gpa0 {
                gpio-controller;
diff --git a/arch/arm/boot/dts/exynos3250-rinato.dts b/arch/arm/boot/dts/exynos3250-rinato.dts
new file mode 100644 (file)
index 0000000..80aa8b4
--- /dev/null
@@ -0,0 +1,682 @@
+/*
+ * Samsung's Exynos3250 based Rinato board device tree source
+ *
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *             http://www.samsung.com
+ *
+ * Device tree source file for Samsung's Rinato board which is based on
+ * Samsung Exynos3250 SoC.
+ *
+ * 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 "exynos3250.dtsi"
+#include <dt-bindings/input/input.h>
+
+/ {
+       model = "Samsung Rinato board";
+       compatible = "samsung,rinato", "samsung,exynos3250", "samsung,exynos3";
+
+       aliases {
+               i2c7 = &i2c_max77836;
+       };
+
+       memory {
+               reg =  <0x40000000 0x1ff00000>;
+       };
+
+       firmware@0205F000 {
+               compatible = "samsung,secure-firmware";
+               reg = <0x0205F000 0x1000>;
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+
+               power_key {
+                       interrupt-parent = <&gpx2>;
+                       interrupts = <7 0>;
+                       gpios = <&gpx2 7 1>;
+                       linux,code = <KEY_POWER>;
+                       label = "power key";
+                       debounce-interval = <10>;
+                       gpio-key,wakeup;
+               };
+       };
+
+       i2c_max77836: i2c-gpio-0 {
+               compatible = "i2c-gpio";
+               gpios = <&gpd0 2 0>, <&gpd0 3 0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               max77836: subpmic@25 {
+                       compatible = "maxim,max77836";
+                       interrupt-parent = <&gpx1>;
+                       interrupts = <5 0>;
+                       reg = <0x25>;
+                       wakeup;
+
+                       muic: max77836-muic {
+                               compatible = "maxim,max77836-muic";
+                       };
+
+                       regulators {
+                               compatible = "maxim,max77836-regulator";
+                               safeout_reg: SAFEOUT {
+                                       regulator-name = "SAFEOUT";
+                               };
+
+                               charger_reg: CHARGER {
+                                       regulator-name = "CHARGER";
+                                       regulator-min-microamp = <45000>;
+                                       regulator-max-microamp = <475000>;
+                                       regulator-boot-on;
+                               };
+
+                               motor_reg: LDO1 {
+                                       regulator-name = "MOT_2.7V";
+                                       regulator-min-microvolt = <1100000>;
+                                       regulator-max-microvolt = <2700000>;
+                               };
+
+                               LDO2 {
+                                       regulator-name = "UNUSED_LDO2";
+                                       regulator-min-microvolt = <800000>;
+                                       regulator-max-microvolt = <3950000>;
+                               };
+                       };
+
+                       charger {
+                               compatible = "maxim,max77836-charger";
+
+                               maxim,constant-uvolt = <4350000>;
+                               maxim,fast-charge-uamp = <225000>;
+                               maxim,eoc-uamp = <7500>;
+                               maxim,ovp-uvolt = <6500000>;
+                       };
+               };
+       };
+};
+
+&adc {
+       vdd-supply = <&ldo3_reg>;
+       status = "okay";
+       assigned-clocks = <&cmu CLK_SCLK_TSADC>;
+       assigned-clock-rates = <6000000>;
+
+       thermistor-ap {
+               compatible = "ntc,ncp15wb473";
+               pullup-uv = <1800000>;
+               pullup-ohm = <100000>;
+               pulldown-ohm = <100000>;
+               io-channels = <&adc 0>;
+       };
+
+       thermistor-battery {
+               compatible = "ntc,ncp15wb473";
+               pullup-uv = <1800000>;
+               pullup-ohm = <100000>;
+               pulldown-ohm = <100000>;
+               io-channels = <&adc 1>;
+       };
+};
+
+&i2c_0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-slave-addr = <0x10>;
+       samsung,i2c-max-bus-freq = <100000>;
+       status = "okay";
+
+       s2mps14_pmic@66 {
+               compatible = "samsung,s2mps14-pmic";
+               interrupt-parent = <&gpx0>;
+               interrupts = <7 0>;
+               reg = <0x66>;
+               wakeup;
+
+               s2mps14_osc: clocks {
+                       compatible = "samsung,s2mps14-clk";
+                       #clock-cells = <1>;
+                       clock-output-names = "s2mps14_ap", "unused",
+                               "s2mps14_bt";
+               };
+
+               regulators {
+                       ldo1_reg: LDO1 {
+                               regulator-name = "VAP_ALIVE_1.0V";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       ldo2_reg: LDO2 {
+                               regulator-name = "VAP_M1_1.2V";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo3_reg: LDO3 {
+                               regulator-name = "VCC_AP_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo4_reg: LDO4 {
+                               regulator-name = "VAP_AVDD_PLL1";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo5_reg: LDO5 {
+                               regulator-name = "VAP_PLL_ISO_1.0V";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo6_reg: LDO6 {
+                               regulator-name = "VAP_VMIPI_1.0V";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo7_reg: LDO7 {
+                               regulator-name = "VAP_AVDD_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo8_reg: LDO8 {
+                               regulator-name = "VAP_USB_3.0V";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo9_reg: LDO9 {
+                               regulator-name = "V_LPDDR_1.2V";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       ldo10_reg: LDO10 {
+                               regulator-name = "UNUSED_LDO10";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo11_reg: LDO11 {
+                               regulator-name = "V_EMMC_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               samsung,ext-control-gpios = <&gpk0 2 0>;
+                       };
+
+                       ldo12_reg: LDO12 {
+                               regulator-name = "V_EMMC_2.8V";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               samsung,ext-control-gpios = <&gpk0 2 0>;
+                       };
+
+                       ldo13_reg: LDO13 {
+                               regulator-name = "CAM_AVDD_2.8V";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo14_reg: LDO14 {
+                               regulator-name = "UNUSED_LDO14";
+                               regulator-min-microvolt = <2700000>;
+                               regulator-max-microvolt = <2700000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo15_reg: LDO15 {
+                               regulator-name = "TSP_AVDD_3.3V";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo16_reg: LDO16 {
+                               regulator-name = "LCD_VDD_3.3V";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo17_reg: LDO17 {
+                               regulator-name = "V_IRLED_3.3V";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo18_reg: LDO18 {
+                               regulator-name = "CAM_AF_2.8V";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo19_reg: LDO19 {
+                               regulator-name = "TSP_VDD_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo20_reg: LDO20 {
+                               regulator-name = "LCD_VDD_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo21_reg: LDO21 {
+                               regulator-name = "CAM_IO_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo22_reg: LDO22 {
+                               regulator-name = "CAM_DVDD_1.2V";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo23_reg: LDO23 {
+                               regulator-name = "HRM_VCC_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                       };
+
+                       ldo24_reg: LDO24 {
+                               regulator-name = "HRM_VCC_3.3V";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       ldo25_reg: LDO25 {
+                               regulator-name = "UNUSED_LDO25";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       buck1_reg: BUCK1 {
+                               regulator-name = "VAP_MIF_1.0V";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       buck2_reg: BUCK2 {
+                               regulator-name = "VAP_ARM_1.0V";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <1150000>;
+                               regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       buck3_reg: BUCK3 {
+                               regulator-name = "VAP_INT3D_1.0V";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       buck4_reg: BUCK4 {
+                               regulator-name = "VCC_SUB_1.95V";
+                               regulator-min-microvolt = <1950000>;
+                               regulator-max-microvolt = <1950000>;
+                               regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       buck5_reg: BUCK5 {
+                               regulator-name = "VCC_SUB_1.35V";
+                               regulator-min-microvolt = <1350000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+               };
+       };
+};
+
+&i2c_1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-slave-addr = <0x10>;
+       samsung,i2c-max-bus-freq = <400000>;
+       status = "okay";
+
+       fuelgauge@36 {
+               compatible = "maxim,max77836-battery";
+               interrupt-parent = <&gpx1>;
+               interrupts = <2 8>;
+               reg = <0x36>;
+       };
+};
+
+&i2s2 {
+       status = "okay";
+};
+
+&mfc {
+       status = "okay";
+};
+
+&mshc_0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       num-slots = <1>;
+       broken-cd;
+       non-removable;
+       cap-mmc-highspeed;
+       desc-num = <4>;
+       mmc-hs200-1_8v;
+       card-detect-delay = <200>;
+       vmmc-supply = <&ldo12_reg>;
+       clock-frequency = <100000000>;
+       clock-freq-min-max = <400000 100000000>;
+       samsung,dw-mshc-ciu-div = <1>;
+       samsung,dw-mshc-sdr-timing = <0 1>;
+       samsung,dw-mshc-ddr-timing = <1 2>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
+       bus-width = <8>;
+       status = "okay";
+};
+
+&serial_0 {
+       assigned-clocks = <&cmu CLK_SCLK_UART0>;
+       assigned-clock-rates = <100000000>;
+       status = "okay";
+};
+
+&serial_1 {
+       status = "okay";
+};
+
+&tmu {
+       vtmu-supply = <&ldo7_reg>;
+       status = "okay";
+};
+
+&rtc {
+       clocks = <&cmu CLK_RTC>, <&s2mps14_osc 0>;
+       clock-names = "rtc", "rtc_src";
+       status = "okay";
+};
+
+&xusbxti {
+       clock-frequency = <24000000>;
+};
+
+&pinctrl_0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sleep0>;
+
+       sleep0: sleep-state {
+               PIN_SLP(gpa0-0, INPUT, DOWN);
+               PIN_SLP(gpa0-1, INPUT, DOWN);
+               PIN_SLP(gpa0-2, INPUT, DOWN);
+               PIN_SLP(gpa0-3, INPUT, DOWN);
+               PIN_SLP(gpa0-4, INPUT, DOWN);
+               PIN_SLP(gpa0-5, INPUT, DOWN);
+               PIN_SLP(gpa0-6, INPUT, DOWN);
+               PIN_SLP(gpa0-7, INPUT, DOWN);
+
+               PIN_SLP(gpa1-0, INPUT, DOWN);
+               PIN_SLP(gpa1-1, INPUT, DOWN);
+               PIN_SLP(gpa1-2, INPUT, DOWN);
+               PIN_SLP(gpa1-3, INPUT, DOWN);
+               PIN_SLP(gpa1-4, INPUT, DOWN);
+               PIN_SLP(gpa1-5, INPUT, DOWN);
+
+               PIN_SLP(gpb-0, PREV, NONE);
+               PIN_SLP(gpb-1, PREV, NONE);
+               PIN_SLP(gpb-2, PREV, NONE);
+               PIN_SLP(gpb-3, PREV, NONE);
+               PIN_SLP(gpb-4, INPUT, DOWN);
+               PIN_SLP(gpb-5, INPUT, DOWN);
+               PIN_SLP(gpb-6, INPUT, DOWN);
+               PIN_SLP(gpb-7, INPUT, DOWN);
+
+               PIN_SLP(gpc0-0, INPUT, DOWN);
+               PIN_SLP(gpc0-1, INPUT, DOWN);
+               PIN_SLP(gpc0-2, INPUT, DOWN);
+               PIN_SLP(gpc0-3, INPUT, DOWN);
+               PIN_SLP(gpc0-4, INPUT, DOWN);
+
+               PIN_SLP(gpc1-0, INPUT, DOWN);
+               PIN_SLP(gpc1-1, INPUT, DOWN);
+               PIN_SLP(gpc1-2, INPUT, DOWN);
+               PIN_SLP(gpc1-3, INPUT, DOWN);
+               PIN_SLP(gpc1-4, INPUT, DOWN);
+
+               PIN_SLP(gpd0-0, INPUT, DOWN);
+               PIN_SLP(gpd0-1, INPUT, DOWN);
+               PIN_SLP(gpd0-2, INPUT, NONE);
+               PIN_SLP(gpd0-3, INPUT, NONE);
+
+               PIN_SLP(gpd1-0, INPUT, NONE);
+               PIN_SLP(gpd1-1, INPUT, NONE);
+               PIN_SLP(gpd1-2, INPUT, NONE);
+               PIN_SLP(gpd1-3, INPUT, NONE);
+       };
+};
+
+&pinctrl_1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sleep1>;
+
+       sleep1: sleep-state {
+               PIN_SLP(gpe0-0, PREV, NONE);
+               PIN_SLP(gpe0-1, PREV, NONE);
+               PIN_SLP(gpe0-2, INPUT, DOWN);
+               PIN_SLP(gpe0-3, INPUT, UP);
+               PIN_SLP(gpe0-4, INPUT, DOWN);
+               PIN_SLP(gpe0-5, INPUT, DOWN);
+               PIN_SLP(gpe0-6, INPUT, DOWN);
+               PIN_SLP(gpe0-7, INPUT, DOWN);
+
+               PIN_SLP(gpe1-0, INPUT, DOWN);
+               PIN_SLP(gpe1-1, PREV, NONE);
+               PIN_SLP(gpe1-2, INPUT, DOWN);
+               PIN_SLP(gpe1-3, INPUT, DOWN);
+               PIN_SLP(gpe1-4, INPUT, DOWN);
+               PIN_SLP(gpe1-5, INPUT, DOWN);
+               PIN_SLP(gpe1-6, INPUT, DOWN);
+               PIN_SLP(gpe1-7, INPUT, NONE);
+
+               PIN_SLP(gpe2-0, INPUT, NONE);
+               PIN_SLP(gpe2-1, INPUT, NONE);
+               PIN_SLP(gpe2-2, INPUT, NONE);
+
+               PIN_SLP(gpk0-0, INPUT, DOWN);
+               PIN_SLP(gpk0-1, INPUT, DOWN);
+               PIN_SLP(gpk0-2, OUT0, NONE);
+               PIN_SLP(gpk0-3, INPUT, DOWN);
+               PIN_SLP(gpk0-4, INPUT, DOWN);
+               PIN_SLP(gpk0-5, INPUT, DOWN);
+               PIN_SLP(gpk0-6, INPUT, DOWN);
+               PIN_SLP(gpk0-7, INPUT, DOWN);
+
+               PIN_SLP(gpk1-0, INPUT, DOWN);
+               PIN_SLP(gpk1-1, INPUT, DOWN);
+               PIN_SLP(gpk1-2, INPUT, DOWN);
+               PIN_SLP(gpk1-3, INPUT, DOWN);
+               PIN_SLP(gpk1-4, INPUT, DOWN);
+               PIN_SLP(gpk1-5, INPUT, DOWN);
+               PIN_SLP(gpk1-6, INPUT, DOWN);
+
+               PIN_SLP(gpk2-0, INPUT, DOWN);
+               PIN_SLP(gpk2-1, INPUT, DOWN);
+               PIN_SLP(gpk2-2, INPUT, DOWN);
+               PIN_SLP(gpk2-3, INPUT, DOWN);
+               PIN_SLP(gpk2-4, INPUT, DOWN);
+               PIN_SLP(gpk2-5, INPUT, DOWN);
+               PIN_SLP(gpk2-6, INPUT, DOWN);
+
+               PIN_SLP(gpl0-0, INPUT, DOWN);
+               PIN_SLP(gpl0-1, INPUT, DOWN);
+               PIN_SLP(gpl0-2, INPUT, DOWN);
+               PIN_SLP(gpl0-3, INPUT, DOWN);
+
+               PIN_SLP(gpm0-0, INPUT, DOWN);
+               PIN_SLP(gpm0-1, INPUT, DOWN);
+               PIN_SLP(gpm0-2, INPUT, DOWN);
+               PIN_SLP(gpm0-3, INPUT, DOWN);
+               PIN_SLP(gpm0-4, INPUT, DOWN);
+               PIN_SLP(gpm0-5, INPUT, DOWN);
+               PIN_SLP(gpm0-6, INPUT, DOWN);
+               PIN_SLP(gpm0-7, INPUT, DOWN);
+
+               PIN_SLP(gpm1-0, INPUT, DOWN);
+               PIN_SLP(gpm1-1, INPUT, DOWN);
+               PIN_SLP(gpm1-2, INPUT, DOWN);
+               PIN_SLP(gpm1-3, INPUT, DOWN);
+               PIN_SLP(gpm1-4, INPUT, DOWN);
+               PIN_SLP(gpm1-5, INPUT, DOWN);
+               PIN_SLP(gpm1-6, INPUT, DOWN);
+
+               PIN_SLP(gpm2-0, INPUT, DOWN);
+               PIN_SLP(gpm2-1, INPUT, DOWN);
+               PIN_SLP(gpm2-2, INPUT, DOWN);
+               PIN_SLP(gpm2-3, INPUT, DOWN);
+               PIN_SLP(gpm2-4, INPUT, DOWN);
+
+               PIN_SLP(gpm3-0, INPUT, DOWN);
+               PIN_SLP(gpm3-1, INPUT, DOWN);
+               PIN_SLP(gpm3-2, INPUT, DOWN);
+               PIN_SLP(gpm3-3, INPUT, DOWN);
+               PIN_SLP(gpm3-4, INPUT, DOWN);
+               PIN_SLP(gpm3-5, INPUT, DOWN);
+               PIN_SLP(gpm3-6, INPUT, DOWN);
+               PIN_SLP(gpm3-7, INPUT, DOWN);
+
+               PIN_SLP(gpm4-0, INPUT, DOWN);
+               PIN_SLP(gpm4-1, INPUT, DOWN);
+               PIN_SLP(gpm4-2, INPUT, DOWN);
+               PIN_SLP(gpm4-3, INPUT, DOWN);
+               PIN_SLP(gpm4-4, INPUT, DOWN);
+               PIN_SLP(gpm4-5, INPUT, DOWN);
+               PIN_SLP(gpm4-6, INPUT, DOWN);
+               PIN_SLP(gpm4-7, INPUT, DOWN);
+       };
+};
index 693a3275606f2ab4c25e7647c5606ac42e88139d..242ddda0a8cdf161fca0813954bf24a7dbe2b12a 100644 (file)
                        status = "disabled";
                };
 
+               mfc: codec@13400000 {
+                       compatible = "samsung,mfc-v7";
+                       reg = <0x13400000 0x10000>;
+                       interrupts = <0 102 0>;
+                       clock-names = "mfc", "sclk_mfc";
+                       clocks = <&cmu CLK_MFC>, <&cmu CLK_SCLK_MFC>;
+                       samsung,power-domain = <&pd_mfc>;
+                       status = "disabled";
+               };
+
                serial_0: serial@13800000 {
                        compatible = "samsung,exynos4210-uart";
                        reg = <0x13800000 0x100>;
index e0278ecbc816a10291c65a1540e696aecbea9248..b8168f1f8139baf3a1420ba17061ad18dfa41151 100644 (file)
                reg = <0x13400000 0x10000>;
                interrupts = <0 94 0>;
                samsung,power-domain = <&pd_mfc>;
-               clocks = <&clock CLK_MFC>;
-               clock-names = "mfc";
+               clocks = <&clock CLK_MFC>, <&clock CLK_SCLK_MFC>;
+               clock-names = "mfc", "sclk_mfc";
                status = "disabled";
        };
 
index f516da9e8b3ae0b9de8a53857be04f89cbdfa4fa..720836205546f22dd078d590aef80664d2af7011 100644 (file)
 
                fimc_0: fimc@11800000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC0>,
+                                       <&clock CLK_SCLK_FIMC0>;
+                       assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
+                       assigned-clock-rates = <0>, <160000000>;
                };
 
                fimc_1: fimc@11810000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC1>,
+                                       <&clock CLK_SCLK_FIMC1>;
+                       assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
+                       assigned-clock-rates = <0>, <160000000>;
                };
 
                fimc_2: fimc@11820000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC2>,
+                                       <&clock CLK_SCLK_FIMC2>;
+                       assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
+                       assigned-clock-rates = <0>, <160000000>;
                };
 
                fimc_3: fimc@11830000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC3>,
+                                       <&clock CLK_SCLK_FIMC3>;
+                       assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
+                       assigned-clock-rates = <0>, <160000000>;
                };
        };
 };
index d50eb3aa708e9a5709f94c5c7491e8d85d1d2387..aaf0cae4f5e87bd976d34a591f52f11b5f4990c5 100644 (file)
 
                fimc_0: fimc@11800000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC0>,
+                                       <&clock CLK_SCLK_FIMC0>;
+                       assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
+                       assigned-clock-rates = <0>, <160000000>;
                };
 
                fimc_1: fimc@11810000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC1>,
+                                       <&clock CLK_SCLK_FIMC1>;
+                       assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
+                       assigned-clock-rates = <0>, <160000000>;
                };
 
                fimc_2: fimc@11820000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC2>,
+                                       <&clock CLK_SCLK_FIMC2>;
+                       assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
+                       assigned-clock-rates = <0>, <160000000>;
                };
 
                fimc_3: fimc@11830000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC3>,
+                                       <&clock CLK_SCLK_FIMC3>;
+                       assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
+                       assigned-clock-rates = <0>, <160000000>;
                };
        };
 };
index 807bb5bf91fc84db70430ba17b7f507b6ca11a76..bcc9e63c8070194f5c0ab4e88b729159911ae107 100644 (file)
                pinctrl2 = &pinctrl_2;
        };
 
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@900 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0x900>;
+               };
+
+               cpu@901 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0x901>;
+               };
+       };
+
        pmu_system_controller: system-controller@10020000 {
                clock-names = "clkout0", "clkout1", "clkout2", "clkout3",
                                "clkout4", "clkout8", "clkout9";
index 3c00e6ec93027f8ca410c1ee39b3b5d3200c3cd7..dd0a43ec56da905d64fc02f596b70d0ce92e67f3 100644 (file)
 / {
        compatible = "samsung,exynos4212", "samsung,exynos4";
 
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@A00 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0xA00>;
+               };
+
+               cpu@A01 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0xA01>;
+               };
+       };
+
        combiner: interrupt-controller@10440000 {
                samsung,combiner-nr = <18>;
        };
index c697ff01ae8dd4e214125b1e93ab223daccf1578..3fbf588682b94fcf8f6b340ad266794741825f34 100644 (file)
                compatible = "samsung,odroidx2-audio";
                samsung,i2s-controller = <&i2s0>;
                samsung,audio-codec = <&max98090>;
+               assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
+                               <&clock_audss EXYNOS_MOUT_I2S>,
+                               <&clock_audss EXYNOS_DOUT_SRP>,
+                               <&clock_audss EXYNOS_DOUT_AUD_BUS>;
+               assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
+                               <&clock_audss EXYNOS_MOUT_AUDSS>;
+               assigned-clock-rates = <0>,
+                               <0>,
+                               <192000000>,
+                               <19200000>;
        };
 
        mmc@12550000 {
 
                fimc_0: fimc@11800000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC0>,
+                                       <&clock CLK_SCLK_FIMC0>;
+                       assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
+                       assigned-clock-rates = <0>, <176000000>;
                };
 
                fimc_1: fimc@11810000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC1>,
+                                       <&clock CLK_SCLK_FIMC1>;
+                       assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
+                       assigned-clock-rates = <0>, <176000000>;
                };
 
                fimc_2: fimc@11820000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC2>,
+                                       <&clock CLK_SCLK_FIMC2>;
+                       assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
+                       assigned-clock-rates = <0>, <176000000>;
                };
 
                fimc_3: fimc@11830000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC3>,
+                                       <&clock CLK_SCLK_FIMC3>;
+                       assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
+                       assigned-clock-rates = <0>, <176000000>;
                };
        };
 
index 5e066cd87f6653595142d2b34d533a973fc1b78c..29231b4526433ef0fbae30e81d81088671dc3ac1 100644 (file)
@@ -14,6 +14,7 @@
 
 /dts-v1/;
 #include "exynos4412.dtsi"
+#include <dt-bindings/gpio/gpio.h>
 
 / {
        model = "Samsung Trats 2 based on Exynos4412";
@@ -22,6 +23,7 @@
        aliases {
                i2c9 = &i2c_ak8975;
                i2c10 = &i2c_cm36651;
+               i2c11 = &i2c_max77693;
        };
 
        memory {
                                        regulator-name = "VMEM_VDD_2.8V";
                                        regulator-min-microvolt = <2800000>;
                                        regulator-max-microvolt = <2800000>;
-                                       regulator-always-on;
-                                       regulator-mem-off;
                                };
 
                                ldo23_reg: ldo23 {
                                        regulator-name = "VMEM_VDDF_3.0V";
                                        regulator-min-microvolt = <2850000>;
                                        regulator-max-microvolt = <2850000>;
-                                       regulator-always-on;
-                                       regulator-mem-off;
                                };
 
                                buck9_reg: buck9 {
                };
        };
 
+       i2c_max77693: i2c-gpio-1 {
+               compatible = "i2c-gpio";
+               gpios = <&gpm2 0 GPIO_ACTIVE_HIGH>, <&gpm2 1 GPIO_ACTIVE_HIGH>;
+               i2c-gpio,delay-us = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "okay";
+
+               max77693@66 {
+                       compatible = "maxim,max77693";
+                       interrupt-parent = <&gpx1>;
+                       interrupts = <5 2>;
+                       reg = <0x66>;
+
+                       regulators {
+                               esafeout1_reg: ESAFEOUT1@1 {
+                                       regulator-name = "ESAFEOUT1";
+                               };
+                               esafeout2_reg: ESAFEOUT2@2 {
+                                       regulator-name = "ESAFEOUT2";
+                               };
+                               charger_reg: CHARGER@0 {
+                                       regulator-name = "CHARGER";
+                                       regulator-min-microamp = <60000>;
+                                       regulator-max-microamp = <2580000>;
+                               };
+                       };
+
+                       max77693_haptic {
+                               compatible = "maxim,max77693-haptic";
+                               haptic-supply = <&ldo26_reg>;
+                               pwms = <&pwm 0 38022 0>;
+                       };
+               };
+       };
+
        mmc@12550000 {
                num-slots = <1>;
                broken-cd;
                cap-mmc-highspeed;
        };
 
+       sdhci@12530000 {
+               bus-width = <4>;
+               cd-gpios = <&gpx3 4 0>;
+               cd-inverted;
+               pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
+               pinctrl-names = "default";
+               vmmc-supply = <&ldo21_reg>;
+               status = "okay";
+       };
+
        serial@13800000 {
                status = "okay";
        };
                status = "okay";
        };
 
+       tmu@100C0000 {
+               vtmu-supply = <&ldo10_reg>;
+               status = "okay";
+       };
+
        i2c_ak8975: i2c-gpio-0 {
                compatible = "i2c-gpio";
                gpios = <&gpy2 4 0>, <&gpy2 5 0>;
                };
        };
 
+       pwm: pwm@139D0000 {
+               pinctrl-0 = <&pwm0_out>;
+               pinctrl-names = "default";
+               samsung,pwm-outputs = <0>;
+               status = "okay";
+       };
+
        dsi_0: dsi@11C80000 {
                vddcore-supply = <&ldo8_reg>;
                vddio-supply = <&ldo10_reg>;
                pinctrl-0 = <&cam_port_a_clk_active &cam_port_b_clk_active>;
                pinctrl-names = "default";
                status = "okay";
+               assigned-clocks = <&clock CLK_MOUT_CAM0>,
+                                 <&clock CLK_MOUT_CAM1>;
+               assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>,
+                                        <&clock CLK_MOUT_MPLL_USER_T>;
 
                fimc_0: fimc@11800000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC0>,
+                                       <&clock CLK_SCLK_FIMC0>;
+                       assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
+                       assigned-clock-rates = <0>, <176000000>;
                };
 
                fimc_1: fimc@11810000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC1>,
+                                       <&clock CLK_SCLK_FIMC1>;
+                       assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
+                       assigned-clock-rates = <0>, <176000000>;
                };
 
                fimc_2: fimc@11820000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC2>,
+                                       <&clock CLK_SCLK_FIMC2>;
+                       assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
+                       assigned-clock-rates = <0>, <176000000>;
                };
 
                fimc_3: fimc@11830000 {
                        status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_FIMC3>,
+                                       <&clock CLK_SCLK_FIMC3>;
+                       assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
+                       assigned-clock-rates = <0>, <176000000>;
                };
 
                csis_0: csis@11880000 {
                        status = "okay";
                        vddcore-supply = <&ldo8_reg>;
                        vddio-supply = <&ldo10_reg>;
-                       clock-frequency = <176000000>;
+                       assigned-clocks = <&clock CLK_MOUT_CSIS0>,
+                                       <&clock CLK_SCLK_CSIS0>;
+                       assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
+                       assigned-clock-rates = <0>, <176000000>;
 
                        /* Camera C (3) MIPI CSI-2 (CSIS0) */
                        port@3 {
                };
 
                csis_1: csis@11890000 {
+                       status = "okay";
                        vddcore-supply = <&ldo8_reg>;
                        vddio-supply = <&ldo10_reg>;
-                       clock-frequency = <160000000>;
-                       status = "okay";
+                       assigned-clocks = <&clock CLK_MOUT_CSIS1>,
+                                       <&clock CLK_SCLK_CSIS1>;
+                       assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
+                       assigned-clock-rates = <0>, <176000000>;
 
                        /* Camera D (4) MIPI CSI-2 (CSIS1) */
                        port@4 {
                io-channels = <&adc 2>;  /* Battery temperature */
        };
 };
+
+&pinctrl_0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sleep0>;
+
+       sleep0: sleep-states {
+               PIN_SLP(gpa0-0, INPUT, NONE);
+               PIN_SLP(gpa0-1, OUT0, NONE);
+               PIN_SLP(gpa0-2, INPUT, NONE);
+               PIN_SLP(gpa0-3, INPUT, UP);
+               PIN_SLP(gpa0-4, INPUT, NONE);
+               PIN_SLP(gpa0-5, INPUT, DOWN);
+               PIN_SLP(gpa0-6, INPUT, DOWN);
+               PIN_SLP(gpa0-7, INPUT, UP);
+
+               PIN_SLP(gpa1-0, INPUT, DOWN);
+               PIN_SLP(gpa1-1, INPUT, DOWN);
+               PIN_SLP(gpa1-2, INPUT, DOWN);
+               PIN_SLP(gpa1-3, INPUT, DOWN);
+               PIN_SLP(gpa1-4, INPUT, DOWN);
+               PIN_SLP(gpa1-5, INPUT, DOWN);
+
+               PIN_SLP(gpb-0, INPUT, NONE);
+               PIN_SLP(gpb-1, INPUT, NONE);
+               PIN_SLP(gpb-2, INPUT, NONE);
+               PIN_SLP(gpb-3, INPUT, NONE);
+               PIN_SLP(gpb-4, INPUT, DOWN);
+               PIN_SLP(gpb-5, INPUT, UP);
+               PIN_SLP(gpb-6, INPUT, DOWN);
+               PIN_SLP(gpb-7, INPUT, DOWN);
+
+               PIN_SLP(gpc0-0, INPUT, DOWN);
+               PIN_SLP(gpc0-1, INPUT, DOWN);
+               PIN_SLP(gpc0-2, INPUT, DOWN);
+               PIN_SLP(gpc0-3, INPUT, DOWN);
+               PIN_SLP(gpc0-4, INPUT, DOWN);
+
+               PIN_SLP(gpc1-0, INPUT, NONE);
+               PIN_SLP(gpc1-1, PREV, NONE);
+               PIN_SLP(gpc1-2, INPUT, NONE);
+               PIN_SLP(gpc1-3, INPUT, NONE);
+               PIN_SLP(gpc1-4, INPUT, NONE);
+
+               PIN_SLP(gpd0-0, INPUT, DOWN);
+               PIN_SLP(gpd0-1, INPUT, DOWN);
+               PIN_SLP(gpd0-2, INPUT, NONE);
+               PIN_SLP(gpd0-3, INPUT, NONE);
+
+               PIN_SLP(gpd1-0, INPUT, DOWN);
+               PIN_SLP(gpd1-1, INPUT, DOWN);
+               PIN_SLP(gpd1-2, INPUT, NONE);
+               PIN_SLP(gpd1-3, INPUT, NONE);
+
+               PIN_SLP(gpf0-0, INPUT, NONE);
+               PIN_SLP(gpf0-1, INPUT, NONE);
+               PIN_SLP(gpf0-2, INPUT, DOWN);
+               PIN_SLP(gpf0-3, INPUT, DOWN);
+               PIN_SLP(gpf0-4, INPUT, NONE);
+               PIN_SLP(gpf0-5, INPUT, DOWN);
+               PIN_SLP(gpf0-6, INPUT, NONE);
+               PIN_SLP(gpf0-7, INPUT, DOWN);
+
+               PIN_SLP(gpf1-0, INPUT, DOWN);
+               PIN_SLP(gpf1-1, INPUT, DOWN);
+               PIN_SLP(gpf1-2, INPUT, DOWN);
+               PIN_SLP(gpf1-3, INPUT, DOWN);
+               PIN_SLP(gpf1-4, INPUT, NONE);
+               PIN_SLP(gpf1-5, INPUT, NONE);
+               PIN_SLP(gpf1-6, INPUT, DOWN);
+               PIN_SLP(gpf1-7, PREV, NONE);
+
+               PIN_SLP(gpf2-0, PREV, NONE);
+               PIN_SLP(gpf2-1, INPUT, DOWN);
+               PIN_SLP(gpf2-2, INPUT, DOWN);
+               PIN_SLP(gpf2-3, INPUT, DOWN);
+               PIN_SLP(gpf2-4, INPUT, DOWN);
+               PIN_SLP(gpf2-5, INPUT, DOWN);
+               PIN_SLP(gpf2-6, INPUT, NONE);
+               PIN_SLP(gpf2-7, INPUT, NONE);
+
+               PIN_SLP(gpf3-0, INPUT, NONE);
+               PIN_SLP(gpf3-1, PREV, NONE);
+               PIN_SLP(gpf3-2, PREV, NONE);
+               PIN_SLP(gpf3-3, PREV, NONE);
+               PIN_SLP(gpf3-4, OUT1, NONE);
+               PIN_SLP(gpf3-5, INPUT, DOWN);
+
+               PIN_SLP(gpj0-0, PREV, NONE);
+               PIN_SLP(gpj0-1, PREV, NONE);
+               PIN_SLP(gpj0-2, PREV, NONE);
+               PIN_SLP(gpj0-3, INPUT, DOWN);
+               PIN_SLP(gpj0-4, PREV, NONE);
+               PIN_SLP(gpj0-5, PREV, NONE);
+               PIN_SLP(gpj0-6, INPUT, DOWN);
+               PIN_SLP(gpj0-7, INPUT, DOWN);
+
+               PIN_SLP(gpj1-0, INPUT, DOWN);
+               PIN_SLP(gpj1-1, PREV, NONE);
+               PIN_SLP(gpj1-2, PREV, NONE);
+               PIN_SLP(gpj1-3, INPUT, DOWN);
+               PIN_SLP(gpj1-4, INPUT, DOWN);
+       };
+};
+
+&pinctrl_1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sleep1>;
+
+       sleep1: sleep-states {
+               PIN_SLP(gpk0-0, PREV, NONE);
+               PIN_SLP(gpk0-1, PREV, NONE);
+               PIN_SLP(gpk0-2, OUT0, NONE);
+               PIN_SLP(gpk0-3, PREV, NONE);
+               PIN_SLP(gpk0-4, PREV, NONE);
+               PIN_SLP(gpk0-5, PREV, NONE);
+               PIN_SLP(gpk0-6, PREV, NONE);
+
+               PIN_SLP(gpk1-0, INPUT, DOWN);
+               PIN_SLP(gpk1-1, INPUT, DOWN);
+               PIN_SLP(gpk1-2, INPUT, DOWN);
+               PIN_SLP(gpk1-3, PREV, NONE);
+               PIN_SLP(gpk1-4, PREV, NONE);
+               PIN_SLP(gpk1-5, PREV, NONE);
+               PIN_SLP(gpk1-6, PREV, NONE);
+
+               PIN_SLP(gpk2-0, INPUT, DOWN);
+               PIN_SLP(gpk2-1, INPUT, DOWN);
+               PIN_SLP(gpk2-2, INPUT, DOWN);
+               PIN_SLP(gpk2-3, INPUT, DOWN);
+               PIN_SLP(gpk2-4, INPUT, DOWN);
+               PIN_SLP(gpk2-5, INPUT, DOWN);
+               PIN_SLP(gpk2-6, INPUT, DOWN);
+
+               PIN_SLP(gpk3-0, OUT0, NONE);
+               PIN_SLP(gpk3-1, INPUT, NONE);
+               PIN_SLP(gpk3-2, INPUT, DOWN);
+               PIN_SLP(gpk3-3, INPUT, NONE);
+               PIN_SLP(gpk3-4, INPUT, NONE);
+               PIN_SLP(gpk3-5, INPUT, NONE);
+               PIN_SLP(gpk3-6, INPUT, NONE);
+
+               PIN_SLP(gpl0-0, INPUT, DOWN);
+               PIN_SLP(gpl0-1, INPUT, DOWN);
+               PIN_SLP(gpl0-2, INPUT, DOWN);
+               PIN_SLP(gpl0-3, INPUT, DOWN);
+               PIN_SLP(gpl0-4, PREV, NONE);
+               PIN_SLP(gpl0-6, PREV, NONE);
+
+               PIN_SLP(gpl1-0, INPUT, DOWN);
+               PIN_SLP(gpl1-1, INPUT, DOWN);
+               PIN_SLP(gpl2-0, INPUT, DOWN);
+               PIN_SLP(gpl2-1, INPUT, DOWN);
+               PIN_SLP(gpl2-2, INPUT, DOWN);
+               PIN_SLP(gpl2-3, INPUT, DOWN);
+               PIN_SLP(gpl2-4, INPUT, DOWN);
+               PIN_SLP(gpl2-5, INPUT, DOWN);
+               PIN_SLP(gpl2-6, PREV, NONE);
+               PIN_SLP(gpl2-7, INPUT, DOWN);
+
+               PIN_SLP(gpm0-0, INPUT, DOWN);
+               PIN_SLP(gpm0-1, INPUT, DOWN);
+               PIN_SLP(gpm0-2, INPUT, DOWN);
+               PIN_SLP(gpm0-3, INPUT, DOWN);
+               PIN_SLP(gpm0-4, INPUT, DOWN);
+               PIN_SLP(gpm0-5, INPUT, DOWN);
+               PIN_SLP(gpm0-6, INPUT, DOWN);
+               PIN_SLP(gpm0-7, INPUT, DOWN);
+
+               PIN_SLP(gpm1-0, INPUT, DOWN);
+               PIN_SLP(gpm1-1, INPUT, DOWN);
+               PIN_SLP(gpm1-2, INPUT, NONE);
+               PIN_SLP(gpm1-3, INPUT, NONE);
+               PIN_SLP(gpm1-4, INPUT, NONE);
+               PIN_SLP(gpm1-5, INPUT, NONE);
+               PIN_SLP(gpm1-6, INPUT, DOWN);
+
+               PIN_SLP(gpm2-0, INPUT, NONE);
+               PIN_SLP(gpm2-1, INPUT, NONE);
+               PIN_SLP(gpm2-2, INPUT, DOWN);
+               PIN_SLP(gpm2-3, INPUT, DOWN);
+               PIN_SLP(gpm2-4, INPUT, DOWN);
+
+               PIN_SLP(gpm3-0, PREV, NONE);
+               PIN_SLP(gpm3-1, PREV, NONE);
+               PIN_SLP(gpm3-2, PREV, NONE);
+               PIN_SLP(gpm3-3, OUT1, NONE);
+               PIN_SLP(gpm3-4, INPUT, DOWN);
+               PIN_SLP(gpm3-5, INPUT, DOWN);
+               PIN_SLP(gpm3-6, INPUT, DOWN);
+               PIN_SLP(gpm3-7, INPUT, DOWN);
+
+               PIN_SLP(gpm4-0, INPUT, DOWN);
+               PIN_SLP(gpm4-1, INPUT, DOWN);
+               PIN_SLP(gpm4-2, INPUT, DOWN);
+               PIN_SLP(gpm4-3, INPUT, DOWN);
+               PIN_SLP(gpm4-4, INPUT, DOWN);
+               PIN_SLP(gpm4-5, INPUT, DOWN);
+               PIN_SLP(gpm4-6, INPUT, DOWN);
+               PIN_SLP(gpm4-7, INPUT, DOWN);
+
+               PIN_SLP(gpy0-0, INPUT, DOWN);
+               PIN_SLP(gpy0-1, INPUT, DOWN);
+               PIN_SLP(gpy0-2, INPUT, DOWN);
+               PIN_SLP(gpy0-3, INPUT, DOWN);
+               PIN_SLP(gpy0-4, INPUT, DOWN);
+               PIN_SLP(gpy0-5, INPUT, DOWN);
+
+               PIN_SLP(gpy1-0, INPUT, DOWN);
+               PIN_SLP(gpy1-1, INPUT, DOWN);
+               PIN_SLP(gpy1-2, INPUT, DOWN);
+               PIN_SLP(gpy1-3, INPUT, DOWN);
+
+               PIN_SLP(gpy2-0, PREV, NONE);
+               PIN_SLP(gpy2-1, INPUT, DOWN);
+               PIN_SLP(gpy2-2, INPUT, NONE);
+               PIN_SLP(gpy2-3, INPUT, NONE);
+               PIN_SLP(gpy2-4, INPUT, NONE);
+               PIN_SLP(gpy2-5, INPUT, NONE);
+
+               PIN_SLP(gpy3-0, INPUT, DOWN);
+               PIN_SLP(gpy3-1, INPUT, DOWN);
+               PIN_SLP(gpy3-2, INPUT, DOWN);
+               PIN_SLP(gpy3-3, INPUT, DOWN);
+               PIN_SLP(gpy3-4, INPUT, DOWN);
+               PIN_SLP(gpy3-5, INPUT, DOWN);
+               PIN_SLP(gpy3-6, INPUT, DOWN);
+               PIN_SLP(gpy3-7, INPUT, DOWN);
+
+               PIN_SLP(gpy4-0, INPUT, DOWN);
+               PIN_SLP(gpy4-1, INPUT, DOWN);
+               PIN_SLP(gpy4-2, INPUT, DOWN);
+               PIN_SLP(gpy4-3, INPUT, DOWN);
+               PIN_SLP(gpy4-4, INPUT, DOWN);
+               PIN_SLP(gpy4-5, INPUT, DOWN);
+               PIN_SLP(gpy4-6, INPUT, DOWN);
+               PIN_SLP(gpy4-7, INPUT, DOWN);
+
+               PIN_SLP(gpy5-0, INPUT, DOWN);
+               PIN_SLP(gpy5-1, INPUT, DOWN);
+               PIN_SLP(gpy5-2, INPUT, DOWN);
+               PIN_SLP(gpy5-3, INPUT, DOWN);
+               PIN_SLP(gpy5-4, INPUT, DOWN);
+               PIN_SLP(gpy5-5, INPUT, DOWN);
+               PIN_SLP(gpy5-6, INPUT, DOWN);
+               PIN_SLP(gpy5-7, INPUT, DOWN);
+
+               PIN_SLP(gpy6-0, INPUT, DOWN);
+               PIN_SLP(gpy6-1, INPUT, DOWN);
+               PIN_SLP(gpy6-2, INPUT, DOWN);
+               PIN_SLP(gpy6-3, INPUT, DOWN);
+               PIN_SLP(gpy6-4, INPUT, DOWN);
+               PIN_SLP(gpy6-5, INPUT, DOWN);
+               PIN_SLP(gpy6-6, INPUT, DOWN);
+               PIN_SLP(gpy6-7, INPUT, DOWN);
+       };
+};
+
+&pinctrl_2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sleep2>;
+
+       sleep2: sleep-states {
+               PIN_SLP(gpz-0, INPUT, DOWN);
+               PIN_SLP(gpz-1, INPUT, DOWN);
+               PIN_SLP(gpz-2, INPUT, DOWN);
+               PIN_SLP(gpz-3, INPUT, DOWN);
+               PIN_SLP(gpz-4, INPUT, DOWN);
+               PIN_SLP(gpz-5, INPUT, DOWN);
+               PIN_SLP(gpz-6, INPUT, DOWN);
+       };
+};
+
+&pinctrl_3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sleep3>;
+
+       sleep3: sleep-states {
+               PIN_SLP(gpv0-0, INPUT, DOWN);
+               PIN_SLP(gpv0-1, INPUT, DOWN);
+               PIN_SLP(gpv0-2, INPUT, DOWN);
+               PIN_SLP(gpv0-3, INPUT, DOWN);
+               PIN_SLP(gpv0-4, INPUT, DOWN);
+               PIN_SLP(gpv0-5, INPUT, DOWN);
+               PIN_SLP(gpv0-6, INPUT, DOWN);
+               PIN_SLP(gpv0-7, INPUT, DOWN);
+
+               PIN_SLP(gpv1-0, INPUT, DOWN);
+               PIN_SLP(gpv1-1, INPUT, DOWN);
+               PIN_SLP(gpv1-2, INPUT, DOWN);
+               PIN_SLP(gpv1-3, INPUT, DOWN);
+               PIN_SLP(gpv1-4, INPUT, DOWN);
+               PIN_SLP(gpv1-5, INPUT, DOWN);
+               PIN_SLP(gpv1-6, INPUT, DOWN);
+               PIN_SLP(gpv1-7, INPUT, DOWN);
+
+               PIN_SLP(gpv2-0, INPUT, DOWN);
+               PIN_SLP(gpv2-1, INPUT, DOWN);
+               PIN_SLP(gpv2-2, INPUT, DOWN);
+               PIN_SLP(gpv2-3, INPUT, DOWN);
+               PIN_SLP(gpv2-4, INPUT, DOWN);
+               PIN_SLP(gpv2-5, INPUT, DOWN);
+               PIN_SLP(gpv2-6, INPUT, DOWN);
+               PIN_SLP(gpv2-7, INPUT, DOWN);
+
+               PIN_SLP(gpv3-0, INPUT, DOWN);
+               PIN_SLP(gpv3-1, INPUT, DOWN);
+               PIN_SLP(gpv3-2, INPUT, DOWN);
+               PIN_SLP(gpv3-3, INPUT, DOWN);
+               PIN_SLP(gpv3-4, INPUT, DOWN);
+               PIN_SLP(gpv3-5, INPUT, DOWN);
+               PIN_SLP(gpv3-6, INPUT, DOWN);
+               PIN_SLP(gpv3-7, INPUT, DOWN);
+
+               PIN_SLP(gpv4-0, INPUT, DOWN);
+       };
+};
index d8bc059e172ff1562ea4525cedc2ad14948a4bad..0f6ec93bb1d8a243d511dac4e2e42f6a794e9015 100644 (file)
 / {
        compatible = "samsung,exynos4412", "samsung,exynos4";
 
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@A00 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0xA00>;
+               };
+
+               cpu@A01 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0xA01>;
+               };
+
+               cpu@A02 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0xA02>;
+               };
+
+               cpu@A03 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0xA03>;
+               };
+       };
+
        combiner: interrupt-controller@10440000 {
                samsung,combiner-nr = <20>;
        };
diff --git a/arch/arm/boot/dts/exynos4415-pinctrl.dtsi b/arch/arm/boot/dts/exynos4415-pinctrl.dtsi
new file mode 100644 (file)
index 0000000..75af9c5
--- /dev/null
@@ -0,0 +1,573 @@
+/*
+ * Samsung's Exynos4415 SoCs pin-mux and pin-config device tree source
+ *
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Samsung's Exynos4415 SoCs pin-mux and pin-config optiosn are listed as device
+ * tree nodes are listed in this file.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+&pinctrl_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>;
+       };
+
+       gpb: gpb {
+               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>;
+       };
+
+       gpd0: gpd0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpd1: gpd1 {
+               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>;
+       };
+
+       gpf2: gpf2 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       uart0_data: uart0-data {
+               samsung,pins = "gpa0-0", "gpa0-1";
+               samsung,pin-function = <0x2>;
+               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>;
+       };
+
+       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>;
+       };
+
+       uart3_data: uart3-data {
+               samsung,pins = "gpa1-4", "gpa1-5";
+               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>;
+       };
+
+       i2c3_bus: i2c3-bus {
+               samsung,pins = "gpa1-2", "gpa1-3";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       spi0_bus: spi0-bus {
+               samsung,pins = "gpb-0", "gpb-2", "gpb-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c4_bus: i2c4-bus {
+               samsung,pins = "gpb-0", "gpb-1";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       spi1_bus: spi1-bus {
+               samsung,pins = "gpb-4", "gpb-6", "gpb-7";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c5_bus: i2c5-bus {
+               samsung,pins = "gpb-2", "gpb-3";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2s1_bus: i2s1-bus {
+               samsung,pins = "gpc0-0", "gpc0-1", "gpc0-2", "gpc0-3",
+                               "gpc0-4";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2s2_bus: i2s2-bus {
+               samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3",
+                               "gpc1-4";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       pcm2_bus: pcm2-bus {
+               samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3",
+                               "gpc1-4";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c6_bus: i2c6-bus {
+               samsung,pins = "gpc1-3", "gpc1-4";
+               samsung,pin-function = <4>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       spi2_bus: spi2-bus {
+               samsung,pins = "gpc1-1", "gpc1-3", "gpc1-4";
+               samsung,pin-function = <5>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       pwm0_out: pwm0-out {
+               samsung,pins = "gpd0-0";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       pwm1_out: pwm1-out {
+               samsung,pins = "gpd0-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       pwm2_out: pwm2-out {
+               samsung,pins = "gpd0-2";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       pwm3_out: pwm3-out {
+               samsung,pins = "gpd0-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c7_bus: i2c7-bus {
+               samsung,pins = "gpd0-2", "gpd0-3";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c0_bus: i2c0-bus {
+               samsung,pins = "gpd1-0", "gpd1-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       i2c1_bus: i2c1-bus {
+               samsung,pins = "gpd1-2", "gpd1-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+};
+
+&pinctrl_1 {
+       gpk0: gpk0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpk1: gpk1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpk2: gpk2 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpk3: gpk3 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpl0: gpl0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpm0: gpm0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpm1: gpm1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpm2: gpm2 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpm3: gpm3 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpm4: gpm4 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpx0: gpx0 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               interrupt-parent = <&gic>;
+               interrupts = <0 32 0>, <0 33 0>, <0 34 0>, <0 35 0>,
+                               <0 36 0>, <0 37 0>, <0 38 0>, <0 39 0>;
+               #interrupt-cells = <2>;
+       };
+
+       gpx1: gpx1 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               interrupt-parent = <&gic>;
+               interrupts = <0 40 0>, <0 41 0>, <0 42 0>, <0 43 0>,
+                               <0 44 0>, <0 45 0>, <0 46 0>, <0 47 0>;
+               #interrupt-cells = <2>;
+       };
+
+       gpx2: gpx2 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       gpx3: gpx3 {
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       sd0_clk: sd0-clk {
+               samsung,pins = "gpk0-0";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd0_cmd: sd0-cmd {
+               samsung,pins = "gpk0-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd0_cd: sd0-cd {
+               samsung,pins = "gpk0-2";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd0_rdqs: sd0-rdqs {
+               samsung,pins = "gpk0-7";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd0_bus1: sd0-bus-width1 {
+               samsung,pins = "gpk0-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd0_bus4: sd0-bus-width4 {
+               samsung,pins = "gpk0-4", "gpk0-5", "gpk0-6";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd0_bus8: sd0-bus-width8 {
+               samsung,pins = "gpl0-0", "gpl0-1", "gpl0-2", "gpl0-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd1_clk: sd1-clk {
+               samsung,pins = "gpk1-0";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd1_cmd: sd1-cmd {
+               samsung,pins = "gpk1-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd1_cd: sd1-cd {
+               samsung,pins = "gpk1-2";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd1_bus1: sd1-bus-width1 {
+               samsung,pins = "gpk1-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd1_bus4: sd1-bus-width4 {
+               samsung,pins = "gpk1-4", "gpk1-5", "gpk1-6";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd2_clk: sd2-clk {
+               samsung,pins = "gpk2-0";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <4>;
+       };
+
+       sd2_cmd: sd2-cmd {
+               samsung,pins = "gpk2-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <4>;
+       };
+
+       sd2_cd: sd2-cd {
+               samsung,pins = "gpk2-2";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <3>;
+       };
+
+       sd2_bus1: sd2-bus-width1 {
+               samsung,pins = "gpk2-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <4>;
+       };
+
+       sd2_bus4: sd2-bus-width4 {
+               samsung,pins = "gpk2-4", "gpk2-5", "gpk2-6";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <4>;
+       };
+
+       cam_port_b_io: cam-port-b-io {
+               samsung,pins = "gpm0-0", "gpm0-1", "gpm0-2", "gpm0-3",
+                               "gpm0-4", "gpm0-5", "gpm0-6", "gpm0-7",
+                               "gpm1-0", "gpm1-1", "gpm2-0", "gpm2-1";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       cam_port_b_clk_active: cam-port-b-clk-active {
+               samsung,pins = "gpm2-2";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <3>;
+       };
+
+       cam_port_b_clk_idle: cam-port-b-clk-idle {
+               samsung,pins = "gpm2-2";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       fimc_is_i2c0: fimc-is-i2c0 {
+               samsung,pins = "gpm4-0", "gpm4-1";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       fimc_is_i2c1: fimc-is-i2c1 {
+               samsung,pins = "gpm4-2", "gpm4-3";
+               samsung,pin-function = <2>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       fimc_is_uart: fimc-is-uart {
+               samsung,pins = "gpm3-5", "gpm3-7";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+};
+
+&pinctrl_2 {
+       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>;
+       };
+};
diff --git a/arch/arm/boot/dts/exynos4415.dtsi b/arch/arm/boot/dts/exynos4415.dtsi
new file mode 100644 (file)
index 0000000..c1c9b37
--- /dev/null
@@ -0,0 +1,604 @@
+/*
+ * Samsung's Exynos4415 SoC device tree source
+ *
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Samsung's Exynos4415 SoC device nodes are listed in this file. Exynos4415
+ * based board files can include this file and provide values for board
+ * specific bindings.
+ *
+ * Note: This file does not include device nodes for all the controllers in
+ * Exynos4415 SoC. As device tree coverage for Exynos4415 increases, additional
+ * nodes can be added to this file.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "skeleton.dtsi"
+#include <dt-bindings/clock/exynos4415.h>
+#include <dt-bindings/clock/exynos-audss-clk.h>
+
+/ {
+       compatible = "samsung,exynos4415";
+       interrupt-parent = <&gic>;
+
+       aliases {
+               pinctrl0 = &pinctrl_0;
+               pinctrl1 = &pinctrl_1;
+               pinctrl2 = &pinctrl_2;
+               mshc0 = &mshc_0;
+               mshc1 = &mshc_1;
+               mshc2 = &mshc_2;
+               spi0 = &spi_0;
+               spi1 = &spi_1;
+               spi2 = &spi_2;
+               i2c0 = &i2c_0;
+               i2c1 = &i2c_1;
+               i2c2 = &i2c_2;
+               i2c3 = &i2c_3;
+               i2c4 = &i2c_4;
+               i2c5 = &i2c_5;
+               i2c6 = &i2c_6;
+               i2c7 = &i2c_7;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: cpu@a00 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0xa00>;
+                       clock-frequency = <1600000000>;
+               };
+
+               cpu1: cpu@a01 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0xa01>;
+                       clock-frequency = <1600000000>;
+               };
+
+               cpu2: cpu@a02 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0xa02>;
+                       clock-frequency = <1600000000>;
+               };
+
+               cpu3: cpu@a03 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0xa03>;
+                       clock-frequency = <1600000000>;
+               };
+       };
+
+       soc: soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               sysram@02020000 {
+                       compatible = "mmio-sram";
+                       reg = <0x02020000 0x50000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0x02020000 0x50000>;
+
+                       smp-sysram@0 {
+                               compatible = "samsung,exynos4210-sysram";
+                               reg = <0x0 0x1000>;
+                       };
+
+                       smp-sysram@4f000 {
+                               compatible = "samsung,exynos4210-sysram-ns";
+                               reg = <0x4f000 0x1000>;
+                       };
+               };
+
+               pinctrl_2: pinctrl@03860000 {
+                       compatible = "samsung,exynos4415-pinctrl";
+                       reg = <0x03860000 0x1000>;
+                       interrupts = <0 242 0>;
+               };
+
+               chipid@10000000 {
+                       compatible = "samsung,exynos4210-chipid";
+                       reg = <0x10000000 0x100>;
+               };
+
+               sysreg_system_controller: syscon@10010000 {
+                       compatible = "samsung,exynos4-sysreg", "syscon";
+                       reg = <0x10010000 0x400>;
+               };
+
+               pmu_system_controller: system-controller@10020000 {
+                       compatible = "samsung,exynos4415-pmu", "syscon";
+                       reg = <0x10020000 0x4000>;
+               };
+
+               mipi_phy: video-phy@10020710 {
+                       compatible = "samsung,s5pv210-mipi-video-phy";
+                       reg = <0x10020710 8>;
+                       #phy-cells = <1>;
+               };
+
+               pd_cam: cam-power-domain@10024000 {
+                       compatible = "samsung,exynos4210-pd";
+                       reg = <0x10024000 0x20>;
+               };
+
+               pd_tv: tv-power-domain@10024020 {
+                       compatible = "samsung,exynos4210-pd";
+                       reg = <0x10024020 0x20>;
+               };
+
+               pd_mfc: mfc-power-domain@10024040 {
+                       compatible = "samsung,exynos4210-pd";
+                       reg = <0x10024040 0x20>;
+               };
+
+               pd_g3d: g3d-power-domain@10024060 {
+                       compatible = "samsung,exynos4210-pd";
+                       reg = <0x10024060 0x20>;
+               };
+
+               pd_lcd0: lcd0-power-domain@10024080 {
+                       compatible = "samsung,exynos4210-pd";
+                       reg = <0x10024080 0x20>;
+               };
+
+               pd_isp0: isp0-power-domain@100240A0 {
+                       compatible = "samsung,exynos4210-pd";
+                       reg = <0x100240A0 0x20>;
+               };
+
+               pd_isp1: isp1-power-domain@100240E0 {
+                       compatible = "samsung,exynos4210-pd";
+                       reg = <0x100240E0 0x20>;
+               };
+
+               cmu: clock-controller@10030000 {
+                       compatible = "samsung,exynos4415-cmu";
+                       reg = <0x10030000 0x18000>;
+                       #clock-cells = <1>;
+               };
+
+               rtc: rtc@10070000 {
+                       compatible = "samsung,exynos3250-rtc";
+                       reg = <0x10070000 0x100>;
+                       interrupts = <0 73 0>, <0 74 0>;
+                       status = "disabled";
+               };
+
+               mct@10050000 {
+                       compatible = "samsung,exynos4210-mct";
+                       reg = <0x10050000 0x800>;
+                       interrupts = <0 218 0>, <0 219 0>, <0 220 0>, <0 221 0>,
+                                    <0 223 0>, <0 226 0>, <0 227 0>, <0 228 0>;
+                       clocks = <&cmu CLK_FIN_PLL>, <&cmu CLK_MCT>;
+                       clock-names = "fin_pll", "mct";
+               };
+
+               gic: interrupt-controller@10481000 {
+                       compatible = "arm,cortex-a9-gic";
+                       #interrupt-cells = <3>;
+                       interrupt-controller;
+                       reg = <0x10481000 0x1000>,
+                             <0x10482000 0x1000>,
+                             <0x10484000 0x2000>,
+                             <0x10486000 0x2000>;
+                       interrupts = <1 9 0xf04>;
+               };
+
+               l2c: l2-cache-controller@10502000 {
+                       compatible = "arm,pl310-cache";
+                       reg = <0x10502000 0x1000>;
+                       cache-unified;
+                       cache-level = <2>;
+                       arm,tag-latency = <2 2 1>;
+                       arm,data-latency = <3 2 1>;
+                       arm,double-linefill = <1>;
+                       arm,double-linefill-incr = <0>;
+                       arm,double-linefill-wrap = <1>;
+                       arm,prefetch-drop = <1>;
+                       arm,prefetch-offset = <7>;
+               };
+
+               cmu_dmc: clock-controller@105C0000 {
+                       compatible = "samsung,exynos4415-cmu-dmc";
+                       reg = <0x105C0000 0x3000>;
+                       #clock-cells = <1>;
+               };
+
+               pinctrl_1: pinctrl@11000000 {
+                       compatible = "samsung,exynos4415-pinctrl";
+                       reg = <0x11000000 0x1000>;
+                       interrupts = <0 225 0>;
+
+                       wakeup-interrupt-controller {
+                               compatible = "samsung,exynos4210-wakeup-eint";
+                               interrupt-parent = <&gic>;
+                               interrupts = <0 48 0>;
+                       };
+               };
+
+               pinctrl_0: pinctrl@11400000 {
+                       compatible = "samsung,exynos4415-pinctrl";
+                       reg = <0x11400000 0x1000>;
+                       interrupts = <0 240 0>;
+               };
+
+               hsotg: hsotg@12480000 {
+                       compatible = "samsung,s3c6400-hsotg";
+                       reg = <0x12480000 0x20000>;
+                       interrupts = <0 141 0>;
+                       clocks = <&cmu CLK_USBDEVICE>;
+                       clock-names = "otg";
+                       phys = <&exynos_usbphy 0>;
+                       phy-names = "usb2-phy";
+                       status = "disabled";
+               };
+
+               mshc_0: mshc@12510000 {
+                       compatible = "samsung,exynos5250-dw-mshc";
+                       reg = <0x12510000 0x1000>;
+                       interrupts = <0 142 0>;
+                       clocks = <&cmu CLK_SDMMC0>, <&cmu CLK_SCLK_MMC0>;
+                       clock-names = "biu", "ciu";
+                       fifo-depth = <0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               mshc_1: mshc@12520000 {
+                       compatible = "samsung,exynos5250-dw-mshc";
+                       reg = <0x12520000 0x1000>;
+                       interrupts = <0 143 0>;
+                       clocks = <&cmu CLK_SDMMC1>, <&cmu CLK_SCLK_MMC1>;
+                       clock-names = "biu", "ciu";
+                       fifo-depth = <0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               mshc_2: mshc@12530000 {
+                       compatible = "samsung,exynos5250-dw-mshc";
+                       reg = <0x12530000 0x1000>;
+                       interrupts = <0 144 0>;
+                       clocks = <&cmu CLK_SDMMC2>, <&cmu CLK_SCLK_MMC2>;
+                       clock-names = "biu", "ciu";
+                       fifo-depth = <0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               ehci: ehci@12580000 {
+                       compatible = "samsung,exynos4210-ehci";
+                       reg = <0x12580000 0x100>;
+                       interrupts = <0 140 0>;
+                       clocks = <&cmu CLK_USBHOST>;
+                       clock-names = "usbhost";
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       port@0 {
+                               reg = <0>;
+                               phys = <&exynos_usbphy 1>;
+                               status = "disabled";
+                       };
+                       port@1 {
+                               reg = <1>;
+                               phys = <&exynos_usbphy 2>;
+                               status = "disabled";
+                       };
+                       port@2 {
+                               reg = <2>;
+                               phys = <&exynos_usbphy 3>;
+                               status = "disabled";
+                       };
+               };
+
+               ohci: ohci@12590000 {
+                       compatible = "samsung,exynos4210-ohci";
+                       reg = <0x12590000 0x100>;
+                       interrupts = <0 140 0>;
+                       clocks = <&cmu CLK_USBHOST>;
+                       clock-names = "usbhost";
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       port@0 {
+                               reg = <0>;
+                               phys = <&exynos_usbphy 1>;
+                               status = "disabled";
+                       };
+               };
+
+               exynos_usbphy: exynos-usbphy@125B0000 {
+                       compatible = "samsung,exynos4x12-usb2-phy";
+                       reg = <0x125B0000 0x100>;
+                       samsung,pmureg-phandle = <&pmu_system_controller>;
+                       samsung,sysreg-phandle = <&sysreg_system_controller>;
+                       clocks = <&cmu CLK_USBDEVICE>, <&xusbxti>;
+                       clock-names = "phy", "ref";
+                       #phy-cells = <1>;
+                       status = "disabled";
+               };
+
+               amba {
+                       compatible = "arm,amba-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       interrupt-parent = <&gic>;
+                       ranges;
+
+                       pdma0: pdma@12680000 {
+                               compatible = "arm,pl330", "arm,primecell";
+                               reg = <0x12680000 0x1000>;
+                               interrupts = <0 138 0>;
+                               clocks = <&cmu CLK_PDMA0>;
+                               clock-names = "apb_pclk";
+                               #dma-cells = <1>;
+                               #dma-channels = <8>;
+                               #dma-requests = <32>;
+                       };
+
+                       pdma1: pdma@12690000 {
+                               compatible = "arm,pl330", "arm,primecell";
+                               reg = <0x12690000 0x1000>;
+                               interrupts = <0 139 0>;
+                               clocks = <&cmu CLK_PDMA1>;
+                               clock-names = "apb_pclk";
+                               #dma-cells = <1>;
+                               #dma-channels = <8>;
+                               #dma-requests = <32>;
+                       };
+               };
+
+               adc: adc@126C0000 {
+                       compatible = "samsung,exynos3250-adc",
+                                    "samsung,exynos-adc-v2";
+                       reg = <0x126C0000 0x100>, <0x10020718 0x4>;
+                       interrupts = <0 137 0>;
+                       clock-names = "adc", "sclk";
+                       clocks = <&cmu CLK_TSADC>, <&cmu CLK_SCLK_TSADC>;
+                       #io-channel-cells = <1>;
+                       io-channel-ranges;
+                       status = "disabled";
+               };
+
+               serial_0: serial@13800000 {
+                       compatible = "samsung,exynos4210-uart";
+                       reg = <0x13800000 0x100>;
+                       interrupts = <0 109 0>;
+                       clocks = <&cmu CLK_UART0>, <&cmu CLK_SCLK_UART0>;
+                       clock-names = "uart", "clk_uart_baud0";
+                       status = "disabled";
+               };
+
+               serial_1: serial@13810000 {
+                       compatible = "samsung,exynos4210-uart";
+                       reg = <0x13810000 0x100>;
+                       interrupts = <0 110 0>;
+                       clocks = <&cmu CLK_UART1>, <&cmu CLK_SCLK_UART1>;
+                       clock-names = "uart", "clk_uart_baud0";
+                       status = "disabled";
+               };
+
+               serial_2: serial@13820000 {
+                       compatible = "samsung,exynos4210-uart";
+                       reg = <0x13820000 0x100>;
+                       interrupts = <0 111 0>;
+                       clocks = <&cmu CLK_UART2>, <&cmu CLK_SCLK_UART2>;
+                       clock-names = "uart", "clk_uart_baud0";
+                       status = "disabled";
+               };
+
+               serial_3: serial@13830000 {
+                       compatible = "samsung,exynos4210-uart";
+                       reg = <0x13830000 0x100>;
+                       interrupts = <0 112 0>;
+                       clocks = <&cmu CLK_UART3>, <&cmu CLK_SCLK_UART3>;
+                       clock-names = "uart", "clk_uart_baud0";
+                       status = "disabled";
+               };
+
+               i2c_0: i2c@13860000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "samsung,s3c2440-i2c";
+                       reg = <0x13860000 0x100>;
+                       interrupts = <0 113 0>;
+                       clocks = <&cmu CLK_I2C0>;
+                       clock-names = "i2c";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c0_bus>;
+                       status = "disabled";
+               };
+
+               i2c_1: i2c@13870000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "samsung,s3c2440-i2c";
+                       reg = <0x13870000 0x100>;
+                       interrupts = <0 114 0>;
+                       clocks = <&cmu CLK_I2C1>;
+                       clock-names = "i2c";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c1_bus>;
+                       status = "disabled";
+               };
+
+               i2c_2: i2c@13880000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "samsung,s3c2440-i2c";
+                       reg = <0x13880000 0x100>;
+                       interrupts = <0 115 0>;
+                       clocks = <&cmu CLK_I2C2>;
+                       clock-names = "i2c";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c2_bus>;
+                       status = "disabled";
+               };
+
+               i2c_3: i2c@13890000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "samsung,s3c2440-i2c";
+                       reg = <0x13890000 0x100>;
+                       interrupts = <0 116 0>;
+                       clocks = <&cmu CLK_I2C3>;
+                       clock-names = "i2c";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c3_bus>;
+                       status = "disabled";
+               };
+
+               i2c_4: i2c@138A0000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "samsung,s3c2440-i2c";
+                       reg = <0x138A0000 0x100>;
+                       interrupts = <0 117 0>;
+                       clocks = <&cmu CLK_I2C4>;
+                       clock-names = "i2c";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c4_bus>;
+                       status = "disabled";
+               };
+
+               i2c_5: i2c@138B0000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "samsung,s3c2440-i2c";
+                       reg = <0x138B0000 0x100>;
+                       interrupts = <0 118 0>;
+                       clocks = <&cmu CLK_I2C5>;
+                       clock-names = "i2c";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c5_bus>;
+                       status = "disabled";
+               };
+
+               i2c_6: i2c@138C0000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "samsung,s3c2440-i2c";
+                       reg = <0x138C0000 0x100>;
+                       interrupts = <0 119 0>;
+                       clocks = <&cmu CLK_I2C6>;
+                       clock-names = "i2c";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c6_bus>;
+                       status = "disabled";
+               };
+
+               i2c_7: i2c@138D0000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "samsung,s3c2440-i2c";
+                       reg = <0x138D0000 0x100>;
+                       interrupts = <0 120 0>;
+                       clocks = <&cmu CLK_I2C7>;
+                       clock-names = "i2c";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c7_bus>;
+                       status = "disabled";
+               };
+
+               spi_0: spi@13920000 {
+                       compatible = "samsung,exynos4210-spi";
+                       reg = <0x13920000 0x100>;
+                       interrupts = <0 121 0>;
+                       dmas = <&pdma0 7>, <&pdma0 6>;
+                       dma-names = "tx", "rx";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&cmu CLK_SPI0>, <&cmu CLK_SCLK_SPI0>;
+                       clock-names = "spi", "spi_busclk0";
+                       samsung,spi-src-clk = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&spi0_bus>;
+                       status = "disabled";
+               };
+
+               spi_1: spi@13930000 {
+                       compatible = "samsung,exynos4210-spi";
+                       reg = <0x13930000 0x100>;
+                       interrupts = <0 122 0>;
+                       dmas = <&pdma1 7>, <&pdma1 6>;
+                       dma-names = "tx", "rx";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&cmu CLK_SPI1>, <&cmu CLK_SCLK_SPI1>;
+                       clock-names = "spi", "spi_busclk0";
+                       samsung,spi-src-clk = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&spi1_bus>;
+                       status = "disabled";
+               };
+
+               spi_2: spi@13940000 {
+                       compatible = "samsung,exynos4210-spi";
+                       reg = <0x13940000 0x100>;
+                       interrupts = <0 123 0>;
+                       dmas = <&pdma0 9>, <&pdma0 8>;
+                       dma-names = "tx", "rx";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&cmu CLK_SPI2>, <&cmu CLK_SCLK_SPI2>;
+                       clock-names = "spi", "spi_busclk0";
+                       samsung,spi-src-clk = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&spi2_bus>;
+                       status = "disabled";
+               };
+
+               clock_audss: clock-controller@03810000 {
+                       compatible = "samsung,exynos4210-audss-clock";
+                       reg = <0x03810000 0x0C>;
+                       #clock-cells = <1>;
+               };
+
+               i2s0: i2s@3830000 {
+                       compatible = "samsung,s5pv210-i2s";
+                       reg = <0x03830000 0x100>;
+                       interrupts = <0 124 0>;
+                       clocks = <&clock_audss EXYNOS_I2S_BUS>,
+                               <&clock_audss EXYNOS_SCLK_I2S>;
+                       clock-names = "iis", "i2s_opclk0";
+                       dmas = <&pdma1 10>, <&pdma1 9>, <&pdma1 8>;
+                       dma-names = "tx", "rx", "tx-sec";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2s0_bus>;
+                       samsung,idma-addr = <0x03000000>;
+                       status = "disabled";
+               };
+
+               pwm: pwm@139D0000 {
+                       compatible = "samsung,exynos4210-pwm";
+                       reg = <0x139D0000 0x1000>;
+                       interrupts = <0 104 0>, <0 105 0>, <0 106 0>,
+                                    <0 107 0>, <0 108 0>;
+                       #pwm-cells = <3>;
+                       status = "disabled";
+               };
+
+               pmu {
+                       compatible = "arm,cortex-a9-pmu";
+                       interrupts = <0 18 0>, <0 19 0>, <0 20 0>, <0 21 0>;
+               };
+       };
+};
+
+#include "exynos4415-pinctrl.dtsi"
index 0865a2e33f970d32e740de3a80b7481cc8764c5d..c141931378e78aa17a3f45da0293d218713587a0 100644 (file)
  * published by the Free Software Foundation.
 */
 
+#define PIN_PULL_NONE          0
+#define PIN_PULL_DOWN          1
+#define PIN_PULL_UP            3
+
+#define PIN_PDN_OUT0           0
+#define PIN_PDN_OUT1           1
+#define PIN_PDN_INPUT          2
+#define PIN_PDN_PREV           3
+
+#define PIN_SLP(_pin, _mode, _pull)                            \
+       _pin {                                                  \
+               samsung,pins = #_pin;                           \
+               samsung,pin-con-pdn = <PIN_PDN_ ##_mode>;       \
+               samsung,pin-pud-pdn = <PIN_PULL_ ##_pull>;      \
+       }
+
 / {
        pinctrl@11400000 {
                gpa0: gpa0 {
index 861bb919f6d391ea44f097565eb0d36781d1a20a..2e9f1f7be77b10b43d5e88b656870c252209fb0b 100644 (file)
                compatible = "samsung,exynos4x12-usb2-phy";
                samsung,sysreg-phandle = <&sys_reg>;
        };
+
+       tmu@100C0000 {
+               compatible = "samsung,exynos4412-tmu";
+               interrupt-parent = <&combiner>;
+               interrupts = <2 4>;
+               reg = <0x100C0000 0x100>;
+               clocks = <&clock 383>;
+               clock-names = "tmu_apbif";
+               status = "disabled";
+       };
 };
index 3acd97eb6630f2b78fdfad4e4f4fb45e95f0fc0f..7e728a1b55590abe15e89d109ad0433a86785f17 100644 (file)
@@ -7,12 +7,13 @@
  * 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 "exynos5250.dtsi"
+#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/input/input.h>
+#include "exynos5250.dtsi"
 
 / {
        model = "Insignal Arndale evaluation board based on EXYNOS5250";
                bootargs = "console=ttySAC2,115200";
        };
 
-       rtc@101E0000 {
-               status = "okay";
-       };
-
-       codec@11000000 {
-               samsung,mfc-r = <0x43000000 0x800000>;
-               samsung,mfc-l = <0x51000000 0x800000>;
-       };
-
-       i2c@12C60000 {
-               samsung,i2c-sda-delay = <100>;
-               samsung,i2c-max-bus-freq = <20000>;
-               samsung,i2c-slave-addr = <0x66>;
-               status = "okay";
-
-               s5m8767_pmic@66 {
-                       compatible = "samsung,s5m8767-pmic";
-                       reg = <0x66>;
-                       interrupt-parent = <&gpx3>;
-                       interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
-
-                       vinb1-supply = <&main_dc_reg>;
-                       vinb2-supply = <&main_dc_reg>;
-                       vinb3-supply = <&main_dc_reg>;
-                       vinb4-supply = <&main_dc_reg>;
-                       vinb5-supply = <&main_dc_reg>;
-                       vinb6-supply = <&main_dc_reg>;
-                       vinb7-supply = <&main_dc_reg>;
-                       vinb8-supply = <&main_dc_reg>;
-                       vinb9-supply = <&main_dc_reg>;
-
-                       vinl1-supply = <&buck7_reg>;
-                       vinl2-supply = <&buck7_reg>;
-                       vinl3-supply = <&buck7_reg>;
-                       vinl4-supply = <&main_dc_reg>;
-                       vinl5-supply = <&main_dc_reg>;
-                       vinl6-supply = <&main_dc_reg>;
-                       vinl7-supply = <&main_dc_reg>;
-                       vinl8-supply = <&buck8_reg>;
-                       vinl9-supply = <&buck8_reg>;
-
-                       s5m8767,pmic-buck2-dvs-voltage = <1300000>;
-                       s5m8767,pmic-buck3-dvs-voltage = <1100000>;
-                       s5m8767,pmic-buck4-dvs-voltage = <1200000>;
-                       s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 0>,
-                                                       <&gpd1 1 0>,
-                                                       <&gpd1 2 0>;
-                       s5m8767,pmic-buck-ds-gpios = <&gpx2 3 0>,
-                                                       <&gpx2 4 0>,
-                                                       <&gpx2 5 0>;
-                       regulators {
-                               ldo1_reg: LDO1 {
-                                       regulator-name = "VDD_ALIVE_1.0V";
-                                       regulator-min-microvolt = <1100000>;
-                                       regulator-max-microvolt = <1100000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               ldo2_reg: LDO2 {
-                                       regulator-name = "VDD_28IO_DP_1.35V";
-                                       regulator-min-microvolt = <1200000>;
-                                       regulator-max-microvolt = <1200000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               ldo3_reg: LDO3 {
-                                       regulator-name = "VDD_COMMON1_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               ldo4_reg: LDO4 {
-                                       regulator-name = "VDD_IOPERI_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                                       op_mode = <1>;
-                               };
-
-                               ldo5_reg: LDO5 {
-                                       regulator-name = "VDD_EXT_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               ldo6_reg: LDO6 {
-                                       regulator-name = "VDD_MPLL_1.1V";
-                                       regulator-min-microvolt = <1100000>;
-                                       regulator-max-microvolt = <1100000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               ldo7_reg: LDO7 {
-                                       regulator-name = "VDD_XPLL_1.1V";
-                                       regulator-min-microvolt = <1100000>;
-                                       regulator-max-microvolt = <1100000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               ldo8_reg: LDO8 {
-                                       regulator-name = "VDD_COMMON2_1.0V";
-                                       regulator-min-microvolt = <1000000>;
-                                       regulator-max-microvolt = <1000000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               ldo9_reg: LDO9 {
-                                       regulator-name = "VDD_33ON_3.0V";
-                                       regulator-min-microvolt = <3000000>;
-                                       regulator-max-microvolt = <3000000>;
-                                       op_mode = <1>;
-                               };
-
-                               ldo10_reg: LDO10 {
-                                       regulator-name = "VDD_COMMON3_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               ldo11_reg: LDO11 {
-                                       regulator-name = "VDD_ABB2_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               ldo12_reg: LDO12 {
-                                       regulator-name = "VDD_USB_3.0V";
-                                       regulator-min-microvolt = <3000000>;
-                                       regulator-max-microvolt = <3000000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               ldo13_reg: LDO13 {
-                                       regulator-name = "VDDQ_C2C_W_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               ldo14_reg: LDO14 {
-                                       regulator-name = "VDD18_ABB0_3_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               ldo15_reg: LDO15 {
-                                       regulator-name = "VDD10_COMMON4_1.0V";
-                                       regulator-min-microvolt = <1000000>;
-                                       regulator-max-microvolt = <1000000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               ldo16_reg: LDO16 {
-                                       regulator-name = "VDD18_HSIC_1.8V";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               ldo17_reg: LDO17 {
-                                       regulator-name = "VDDQ_MMC2_3_2.8V";
-                                       regulator-min-microvolt = <2800000>;
-                                       regulator-max-microvolt = <2800000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               ldo18_reg: LDO18 {
-                                       regulator-name = "VDD_33ON_2.8V";
-                                       regulator-min-microvolt = <2800000>;
-                                       regulator-max-microvolt = <2800000>;
-                                       op_mode = <1>;
-                               };
-
-                               ldo22_reg: LDO22 {
-                                       regulator-name = "EXT_33_OFF";
-                                       regulator-min-microvolt = <3300000>;
-                                       regulator-max-microvolt = <3300000>;
-                                       op_mode = <1>;
-                               };
-
-                               ldo23_reg: LDO23 {
-                                       regulator-name = "EXT_28_OFF";
-                                       regulator-min-microvolt = <2800000>;
-                                       regulator-max-microvolt = <2800000>;
-                                       op_mode = <1>;
-                               };
-
-                               ldo25_reg: LDO25 {
-                                       regulator-name = "PVDD_LDO25";
-                                       regulator-min-microvolt = <1200000>;
-                                       regulator-max-microvolt = <1200000>;
-                                       op_mode = <1>;
-                               };
-
-                               ldo26_reg: LDO26 {
-                                       regulator-name = "EXT_18_OFF";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       op_mode = <1>;
-                               };
-
-                               buck1_reg: BUCK1 {
-                                       regulator-name = "vdd_mif";
-                                       regulator-min-microvolt = <950000>;
-                                       regulator-max-microvolt = <1200000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               buck2_reg: BUCK2 {
-                                       regulator-name = "vdd_arm";
-                                       regulator-min-microvolt = <912500>;
-                                       regulator-max-microvolt = <1300000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               buck3_reg: BUCK3 {
-                                       regulator-name = "vdd_int";
-                                       regulator-min-microvolt = <900000>;
-                                       regulator-max-microvolt = <1200000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               buck4_reg: BUCK4 {
-                                       regulator-name = "vdd_g3d";
-                                       regulator-min-microvolt = <1000000>;
-                                       regulator-max-microvolt = <1000000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               buck5_reg: BUCK5 {
-                                       regulator-name = "VDD_MEM_1.35V";
-                                       regulator-min-microvolt = <750000>;
-                                       regulator-max-microvolt = <1355000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                                       op_mode = <1>;
-                               };
-
-                               buck7_reg: BUCK7 {
-                                       regulator-name = "PVDD_BUCK7";
-                                       regulator-always-on;
-                                       op_mode = <1>;
-                               };
-
-                               buck8_reg: BUCK8 {
-                                       regulator-name = "PVDD_BUCK8";
-                                       regulator-always-on;
-                                       op_mode = <1>;
-                               };
-
-                               buck9_reg: BUCK9 {
-                                       regulator-name = "VDD_33_OFF_EXT1";
-                                       regulator-min-microvolt = <750000>;
-                                       regulator-max-microvolt = <3000000>;
-                                       op_mode = <1>;
-                               };
-                       };
-               };
-       };
-
-       i2c@12C80000 {
-               status = "okay";
-
-               samsung,i2c-sda-delay = <100>;
-               samsung,i2c-max-bus-freq = <66000>;
-               samsung,i2c-slave-addr = <0x50>;
-
-               hdmiddc@50 {
-                       compatible = "samsung,exynos4210-hdmiddc";
-                       reg = <0x50>;
-               };
-       };
-
-       i2c@12C90000 {
-               status = "okay";
-
-               wm1811a@1a {
-
-                       compatible = "wlf,wm1811";
-                       reg = <0x1a>;
-
-                       AVDD2-supply = <&main_dc_reg>;
-                       CPVDD-supply = <&main_dc_reg>;
-                       DBVDD1-supply = <&main_dc_reg>;
-                       DBVDD2-supply = <&main_dc_reg>;
-                       DBVDD3-supply = <&main_dc_reg>;
-                       LDO1VDD-supply = <&main_dc_reg>;
-                       SPKVDD1-supply = <&main_dc_reg>;
-                       SPKVDD2-supply = <&main_dc_reg>;
-
-                       wlf,ldo1ena = <&gpb0 0 0>;
-                       wlf,ldo2ena = <&gpb0 1 0>;
-               };
-       };
-
-       i2c@12CE0000 {
-               status = "okay";
-
-               samsung,i2c-sda-delay = <100>;
-               samsung,i2c-max-bus-freq = <66000>;
-               samsung,i2c-slave-addr = <0x38>;
-
-               hdmiphy@38 {
-                       compatible = "samsung,exynos4212-hdmiphy";
-                       reg = <0x38>;
-               };
-       };
-
-       i2c@121D0000 {
-               status = "okay";
-               samsung,i2c-sda-delay = <100>;
-               samsung,i2c-max-bus-freq = <40000>;
-               samsung,i2c-slave-addr = <0x38>;
-
-               sata_phy_i2c:sata-phy@38 {
-                       compatible = "samsung,exynos-sataphy-i2c";
-                       reg = <0x38>;
-               };
-       };
-
-       sata@122F0000 {
-               status = "okay";
-       };
-
-       sata-phy@12170000 {
-               status = "okay";
-               samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
-       };
-
-       mmc_0: mmc@12200000 {
-               status = "okay";
-               num-slots = <1>;
-               broken-cd;
-               card-detect-delay = <200>;
-               samsung,dw-mshc-ciu-div = <3>;
-               samsung,dw-mshc-sdr-timing = <2 3>;
-               samsung,dw-mshc-ddr-timing = <1 2>;
-               vmmc-supply = <&mmc_reg>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
-               bus-width = <8>;
-               cap-mmc-highspeed;
-       };
-
-       mmc_2: mmc@12220000 {
-               status = "okay";
-               num-slots = <1>;
-               card-detect-delay = <200>;
-               samsung,dw-mshc-ciu-div = <3>;
-               samsung,dw-mshc-sdr-timing = <2 3>;
-               samsung,dw-mshc-ddr-timing = <1 2>;
-               vmmc-supply = <&mmc_reg>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
-               bus-width = <4>;
-               disable-wp;
-               cap-sd-highspeed;
-       };
-
-       i2s0: i2s@03830000 {
-               status = "okay";
-       };
-
        gpio_keys {
                compatible = "gpio-keys";
 
                menu {
                        label = "SW-TACT2";
-                       gpios = <&gpx1 4 1>;
+                       gpios = <&gpx1 4 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_MENU>;
                        gpio-key,wakeup;
                };
 
                home {
                        label = "SW-TACT3";
-                       gpios = <&gpx1 5 1>;
+                       gpios = <&gpx1 5 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_HOME>;
                        gpio-key,wakeup;
                };
 
                up {
                        label = "SW-TACT4";
-                       gpios = <&gpx1 6 1>;
+                       gpios = <&gpx1 6 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_UP>;
                        gpio-key,wakeup;
                };
 
                down {
                        label = "SW-TACT5";
-                       gpios = <&gpx1 7 1>;
+                       gpios = <&gpx1 7 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_DOWN>;
                        gpio-key,wakeup;
                };
 
                back {
                        label = "SW-TACT6";
-                       gpios = <&gpx2 0 1>;
+                       gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_BACK>;
                        gpio-key,wakeup;
                };
 
                wakeup {
                        label = "SW-TACT7";
-                       gpios = <&gpx2 1 1>;
+                       gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_WAKEUP>;
                        gpio-key,wakeup;
                };
        };
 
-       hdmi {
-               hpd-gpio = <&gpx3 7 2>;
-               vdd_osc-supply = <&ldo10_reg>;
-               vdd_pll-supply = <&ldo8_reg>;
-               vdd-supply = <&ldo8_reg>;
-       };
-
        regulators {
                compatible = "simple-bus";
                #address-cells = <1>;
                        regulator-name = "VDD_33ON_2.8V";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <2800000>;
-                       gpio = <&gpx1 1 1>;
+                       gpio = <&gpx1 1 GPIO_ACTIVE_LOW>;
                        enable-active-high;
                };
 
                };
        };
 
-       dp-controller@145B0000 {
-               samsung,color-space = <0>;
-               samsung,dynamic-range = <0>;
-               samsung,ycbcr-coeff = <0>;
-               samsung,color-depth = <1>;
-               samsung,link-rate = <0x0a>;
-               samsung,lane-count = <4>;
-               status = "okay";
+       // SMSC USB3503 connected in hardware only mode as a PHY
+       usb_hub: usb-hub {
+               compatible = "smsc,usb3503a";
+
+               reset-gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
+               connect-gpios = <&gpd1 7 GPIO_ACTIVE_LOW>;
        };
+};
 
-       fimd: fimd@14400000 {
-               status = "okay";
-               display-timings {
-                       native-mode = <&timing0>;
-                       timing0: timing@0 {
-                               /* 2560x1600 DP panel */
-                               clock-frequency = <50000>;
-                               hactive = <2560>;
-                               vactive = <1600>;
-                               hfront-porch = <48>;
-                               hback-porch = <80>;
-                               hsync-len = <32>;
-                               vback-porch = <16>;
-                               vfront-porch = <8>;
-                               vsync-len = <6>;
-                       };
+&dp {
+       status = "okay";
+       samsung,color-space = <0>;
+       samsung,dynamic-range = <0>;
+       samsung,ycbcr-coeff = <0>;
+       samsung,color-depth = <1>;
+       samsung,link-rate = <0x0a>;
+       samsung,lane-count = <4>;
+};
+
+&fimd {
+       status = "okay";
+
+       display-timings {
+               native-mode = <&timing0>;
+
+               timing0: timing@0 {
+                       /* 2560x1600 DP panel */
+                       clock-frequency = <50000>;
+                       hactive = <2560>;
+                       vactive = <1600>;
+                       hfront-porch = <48>;
+                       hback-porch = <80>;
+                       hsync-len = <32>;
+                       vback-porch = <16>;
+                       vfront-porch = <8>;
+                       vsync-len = <6>;
                };
        };
+};
 
-       usb_hub_bus {
-               compatible = "simple-bus";
-               #address-cells = <1>;
-               #size-cells = <0>;
+&hdmi {
+       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_LOW>;
+       vdd_osc-supply = <&ldo10_reg>;
+       vdd_pll-supply = <&ldo8_reg>;
+       vdd-supply = <&ldo8_reg>;
+};
+
+&i2c_0 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <20000>;
+       samsung,i2c-slave-addr = <0x66>;
+
+       s5m8767_pmic@66 {
+               compatible = "samsung,s5m8767-pmic";
+               reg = <0x66>;
+               interrupt-parent = <&gpx3>;
+               interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
+
+               vinb1-supply = <&main_dc_reg>;
+               vinb2-supply = <&main_dc_reg>;
+               vinb3-supply = <&main_dc_reg>;
+               vinb4-supply = <&main_dc_reg>;
+               vinb5-supply = <&main_dc_reg>;
+               vinb6-supply = <&main_dc_reg>;
+               vinb7-supply = <&main_dc_reg>;
+               vinb8-supply = <&main_dc_reg>;
+               vinb9-supply = <&main_dc_reg>;
+
+               vinl1-supply = <&buck7_reg>;
+               vinl2-supply = <&buck7_reg>;
+               vinl3-supply = <&buck7_reg>;
+               vinl4-supply = <&main_dc_reg>;
+               vinl5-supply = <&main_dc_reg>;
+               vinl6-supply = <&main_dc_reg>;
+               vinl7-supply = <&main_dc_reg>;
+               vinl8-supply = <&buck8_reg>;
+               vinl9-supply = <&buck8_reg>;
+
+               s5m8767,pmic-buck2-dvs-voltage = <1300000>;
+               s5m8767,pmic-buck3-dvs-voltage = <1100000>;
+               s5m8767,pmic-buck4-dvs-voltage = <1200000>;
+               s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 GPIO_ACTIVE_HIGH>,
+                                             <&gpd1 1 GPIO_ACTIVE_HIGH>,
+                                             <&gpd1 2 GPIO_ACTIVE_HIGH>;
+               s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>,
+                                            <&gpx2 4 GPIO_ACTIVE_HIGH>,
+                                            <&gpx2 5 GPIO_ACTIVE_HIGH>;
+
+               regulators {
+                       ldo1_reg: LDO1 {
+                               regulator-name = "VDD_ALIVE_1.0V";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
 
-               // SMSC USB3503 connected in hardware only mode as a PHY
-               usb_hub: usb_hub {
-                       compatible = "smsc,usb3503a";
+                       ldo2_reg: LDO2 {
+                               regulator-name = "VDD_28IO_DP_1.35V";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       ldo3_reg: LDO3 {
+                               regulator-name = "VDD_COMMON1_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       ldo4_reg: LDO4 {
+                               regulator-name = "VDD_IOPERI_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               op_mode = <1>;
+                       };
+
+                       ldo5_reg: LDO5 {
+                               regulator-name = "VDD_EXT_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       ldo6_reg: LDO6 {
+                               regulator-name = "VDD_MPLL_1.1V";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
 
-                       reset-gpios = <&gpx3 5 1>;
-                       connect-gpios = <&gpd1 7 1>;
+                       ldo7_reg: LDO7 {
+                               regulator-name = "VDD_XPLL_1.1V";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       ldo8_reg: LDO8 {
+                               regulator-name = "VDD_COMMON2_1.0V";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       ldo9_reg: LDO9 {
+                               regulator-name = "VDD_33ON_3.0V";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                               op_mode = <1>;
+                       };
+
+                       ldo10_reg: LDO10 {
+                               regulator-name = "VDD_COMMON3_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       ldo11_reg: LDO11 {
+                               regulator-name = "VDD_ABB2_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       ldo12_reg: LDO12 {
+                               regulator-name = "VDD_USB_3.0V";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       ldo13_reg: LDO13 {
+                               regulator-name = "VDDQ_C2C_W_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       ldo14_reg: LDO14 {
+                               regulator-name = "VDD18_ABB0_3_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       ldo15_reg: LDO15 {
+                               regulator-name = "VDD10_COMMON4_1.0V";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       ldo16_reg: LDO16 {
+                               regulator-name = "VDD18_HSIC_1.8V";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       ldo17_reg: LDO17 {
+                               regulator-name = "VDDQ_MMC2_3_2.8V";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       ldo18_reg: LDO18 {
+                               regulator-name = "VDD_33ON_2.8V";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               op_mode = <1>;
+                       };
+
+                       ldo22_reg: LDO22 {
+                               regulator-name = "EXT_33_OFF";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               op_mode = <1>;
+                       };
+
+                       ldo23_reg: LDO23 {
+                               regulator-name = "EXT_28_OFF";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               op_mode = <1>;
+                       };
+
+                       ldo25_reg: LDO25 {
+                               regulator-name = "PVDD_LDO25";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               op_mode = <1>;
+                       };
+
+                       ldo26_reg: LDO26 {
+                               regulator-name = "EXT_18_OFF";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               op_mode = <1>;
+                       };
+
+                       buck1_reg: BUCK1 {
+                               regulator-name = "vdd_mif";
+                               regulator-min-microvolt = <950000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       buck2_reg: BUCK2 {
+                               regulator-name = "vdd_arm";
+                               regulator-min-microvolt = <912500>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       buck3_reg: BUCK3 {
+                               regulator-name = "vdd_int";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       buck4_reg: BUCK4 {
+                               regulator-name = "vdd_g3d";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       buck5_reg: BUCK5 {
+                               regulator-name = "VDD_MEM_1.35V";
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <1355000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       buck7_reg: BUCK7 {
+                               regulator-name = "PVDD_BUCK7";
+                               regulator-always-on;
+                               op_mode = <1>;
+                       };
+
+                       buck8_reg: BUCK8 {
+                               regulator-name = "PVDD_BUCK8";
+                               regulator-always-on;
+                               op_mode = <1>;
+                       };
+
+                       buck9_reg: BUCK9 {
+                               regulator-name = "VDD_33_OFF_EXT1";
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <3000000>;
+                               op_mode = <1>;
+                       };
                };
        };
 };
+
+&i2c_2 {
+       status = "okay";
+
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <66000>;
+       samsung,i2c-slave-addr = <0x50>;
+
+       hdmiddc@50 {
+               compatible = "samsung,exynos4210-hdmiddc";
+               reg = <0x50>;
+       };
+};
+
+&i2c_3 {
+       status = "okay";
+
+       wm1811a@1a {
+               compatible = "wlf,wm1811";
+               reg = <0x1a>;
+
+               AVDD2-supply = <&main_dc_reg>;
+               CPVDD-supply = <&main_dc_reg>;
+               DBVDD1-supply = <&main_dc_reg>;
+               DBVDD2-supply = <&main_dc_reg>;
+               DBVDD3-supply = <&main_dc_reg>;
+               LDO1VDD-supply = <&main_dc_reg>;
+               SPKVDD1-supply = <&main_dc_reg>;
+               SPKVDD2-supply = <&main_dc_reg>;
+
+               wlf,ldo1ena = <&gpb0 0 GPIO_ACTIVE_HIGH>;
+               wlf,ldo2ena = <&gpb0 1 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&i2c_8 {
+       status = "okay";
+
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <66000>;
+       samsung,i2c-slave-addr = <0x38>;
+
+       hdmiphy@38 {
+               compatible = "samsung,exynos4212-hdmiphy";
+               reg = <0x38>;
+       };
+};
+
+&i2c_9 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <40000>;
+       samsung,i2c-slave-addr = <0x38>;
+
+       sata_phy_i2c:sata-phy@38 {
+               compatible = "samsung,exynos-sataphy-i2c";
+               reg = <0x38>;
+       };
+};
+
+&i2s0 {
+       status = "okay";
+};
+
+&mfc {
+       samsung,mfc-r = <0x43000000 0x800000>;
+       samsung,mfc-l = <0x51000000 0x800000>;
+};
+
+&mmc_0 {
+       status = "okay";
+       num-slots = <1>;
+       broken-cd;
+       card-detect-delay = <200>;
+       samsung,dw-mshc-ciu-div = <3>;
+       samsung,dw-mshc-sdr-timing = <2 3>;
+       samsung,dw-mshc-ddr-timing = <1 2>;
+       vmmc-supply = <&mmc_reg>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
+       bus-width = <8>;
+       cap-mmc-highspeed;
+};
+
+&mmc_2 {
+       status = "okay";
+       num-slots = <1>;
+       card-detect-delay = <200>;
+       samsung,dw-mshc-ciu-div = <3>;
+       samsung,dw-mshc-sdr-timing = <2 3>;
+       samsung,dw-mshc-ddr-timing = <1 2>;
+       vmmc-supply = <&mmc_reg>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
+       bus-width = <4>;
+       disable-wp;
+       cap-sd-highspeed;
+};
+
+&rtc {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
+
+&sata_phy {
+       status = "okay";
+       samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
+};
index 6a0f4c0ff763f64c0846d539d74abd0d8fccd52e..bc27cc2558fe6518ad990b12a090fb8c7f008f5a 100644 (file)
@@ -7,9 +7,11 @@
  * 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 <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 #include "exynos5250.dtsi"
 
 / {
                bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc";
        };
 
-       rtc@101E0000 {
-               status = "okay";
-       };
-
-       i2c@12C60000 {
-               samsung,i2c-sda-delay = <100>;
-               samsung,i2c-max-bus-freq = <20000>;
-               status = "okay";
-
-               eeprom@50 {
-                       compatible = "samsung,s524ad0xd1";
-                       reg = <0x50>;
-               };
-
-               max77686@09 {
-                       compatible = "maxim,max77686";
-                       reg = <0x09>;
-                       interrupt-parent = <&gpx3>;
-                       interrupts = <2 0>;
-
-                       voltage-regulators {
-                               ldo1_reg: LDO1 {
-                                       regulator-name = "P1.0V_LDO_OUT1";
-                                       regulator-min-microvolt = <1000000>;
-                                       regulator-max-microvolt = <1000000>;
-                                       regulator-always-on;
-                               };
-
-                               ldo2_reg: LDO2 {
-                                       regulator-name = "P1.2V_LDO_OUT2";
-                                       regulator-min-microvolt = <1200000>;
-                                       regulator-max-microvolt = <1200000>;
-                                       regulator-always-on;
-                               };
-
-                               ldo3_reg: LDO3 {
-                                       regulator-name = "P1.8V_LDO_OUT3";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                               };
-
-                               ldo4_reg: LDO4 {
-                                       regulator-name = "P2.8V_LDO_OUT4";
-                                       regulator-min-microvolt = <2800000>;
-                                       regulator-max-microvolt = <2800000>;
-                               };
-
-                               ldo5_reg: LDO5 {
-                                       regulator-name = "P1.8V_LDO_OUT5";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                               };
-
-                               ldo6_reg: LDO6 {
-                                       regulator-name = "P1.1V_LDO_OUT6";
-                                       regulator-min-microvolt = <1100000>;
-                                       regulator-max-microvolt = <1100000>;
-                                       regulator-always-on;
-                               };
-
-                               ldo7_reg: LDO7 {
-                                       regulator-name = "P1.1V_LDO_OUT7";
-                                       regulator-min-microvolt = <1100000>;
-                                       regulator-max-microvolt = <1100000>;
-                                       regulator-always-on;
-                               };
-
-                               ldo8_reg: LDO8 {
-                                       regulator-name = "P1.0V_LDO_OUT8";
-                                       regulator-min-microvolt = <1000000>;
-                                       regulator-max-microvolt = <1000000>;
-                               };
-
-                               ldo10_reg: LDO10 {
-                                       regulator-name = "P1.8V_LDO_OUT10";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                               };
-
-                               ldo11_reg: LDO11 {
-                                       regulator-name = "P1.8V_LDO_OUT11";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                               };
-
-                               ldo12_reg: LDO12 {
-                                       regulator-name = "P3.0V_LDO_OUT12";
-                                       regulator-min-microvolt = <3000000>;
-                                       regulator-max-microvolt = <3000000>;
-                               };
-
-                               ldo13_reg: LDO13 {
-                                       regulator-name = "P1.8V_LDO_OUT13";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                               };
-
-                               ldo14_reg: LDO14 {
-                                       regulator-name = "P1.8V_LDO_OUT14";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                               };
-
-                               ldo15_reg: LDO15 {
-                                       regulator-name = "P1.0V_LDO_OUT15";
-                                       regulator-min-microvolt = <1000000>;
-                                       regulator-max-microvolt = <1000000>;
-                               };
-
-                               ldo16_reg: LDO16 {
-                                       regulator-name = "P1.8V_LDO_OUT16";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                               };
-
-                               buck1_reg: BUCK1 {
-                                       regulator-name = "vdd_mif";
-                                       regulator-min-microvolt = <950000>;
-                                       regulator-max-microvolt = <1300000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               buck2_reg: BUCK2 {
-                                       regulator-name = "vdd_arm";
-                                       regulator-min-microvolt = <850000>;
-                                       regulator-max-microvolt = <1350000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               buck3_reg: BUCK3 {
-                                       regulator-name = "vdd_int";
-                                       regulator-min-microvolt = <900000>;
-                                       regulator-max-microvolt = <1200000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               buck4_reg: BUCK4 {
-                                       regulator-name = "vdd_g3d";
-                                       regulator-min-microvolt = <850000>;
-                                       regulator-max-microvolt = <1300000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               buck5_reg: BUCK5 {
-                                       regulator-name = "P1.8V_BUCK_OUT5";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-                       };
-               };
-       };
-
        vdd: fixed-regulator@0 {
                compatible = "regulator-fixed";
                regulator-name = "vdd-supply";
                regulator-always-on;
        };
 
-       i2c@12C70000 {
-               samsung,i2c-sda-delay = <100>;
-               samsung,i2c-max-bus-freq = <20000>;
-               status = "okay";
+       sound {
+               compatible = "samsung,smdk-wm8994";
 
-               eeprom@51 {
-                       compatible = "samsung,s524ad0xd1";
-                       reg = <0x51>;
+               samsung,i2s-controller = <&i2s0>;
+               samsung,audio-codec = <&wm8994>;
+       };
+
+       fixed-rate-clocks {
+               xxti {
+                       compatible = "samsung,clock-xxti";
+                       clock-frequency = <24000000>;
                };
 
-               wm8994: wm8994@1a {
-                       compatible = "wlf,wm8994";
-                       reg = <0x1a>;
+               codec_mclk: codec-mclk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <16934000>;
+               };
+       };
+};
 
-                       gpio-controller;
-                       #gpio-cells = <2>;
+&dp {
+       samsung,color-space = <0>;
+       samsung,dynamic-range = <0>;
+       samsung,ycbcr-coeff = <0>;
+       samsung,color-depth = <1>;
+       samsung,link-rate = <0x0a>;
+       samsung,lane-count = <4>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&dp_hpd>;
+       status = "okay";
+};
 
-                       clocks = <&codec_mclk>;
-                       clock-names = "MCLK1";
+&ehci {
+       samsung,vbus-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;
+};
 
-                       AVDD2-supply = <&vdd>;
-                       CPVDD-supply = <&vdd>;
-                       DBVDD-supply = <&dbvdd>;
-                       SPKVDD1-supply = <&spkvdd>;
-                       SPKVDD2-supply = <&spkvdd>;
+&fimd {
+       status = "okay";
+
+       display-timings {
+               native-mode = <&timing0>;
+
+               timing0: timing@0 {
+                       /* 1280x800 */
+                       clock-frequency = <50000>;
+                       hactive = <1280>;
+                       vactive = <800>;
+                       hfront-porch = <4>;
+                       hback-porch = <4>;
+                       hsync-len = <4>;
+                       vback-porch = <4>;
+                       vfront-porch = <4>;
+                       vsync-len = <4>;
                };
        };
+};
 
-       i2c@121D0000 {
-               samsung,i2c-sda-delay = <100>;
-               samsung,i2c-max-bus-freq = <40000>;
-               samsung,i2c-slave-addr = <0x38>;
-               status = "okay";
+&hdmi {
+       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+};
 
-               sata_phy_i2c:sata-phy@38 {
-                       compatible = "samsung,exynos-sataphy-i2c";
-                       reg = <0x38>;
-               };
+&i2c_0 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <20000>;
+
+       eeprom@50 {
+               compatible = "samsung,s524ad0xd1";
+               reg = <0x50>;
        };
 
-       i2c@12C80000 {
-               samsung,i2c-sda-delay = <100>;
-               samsung,i2c-max-bus-freq = <66000>;
-               status = "okay";
+       max77686@09 {
+               compatible = "maxim,max77686";
+               reg = <0x09>;
+               interrupt-parent = <&gpx3>;
+               interrupts = <2 IRQ_TYPE_NONE>;
+
+               voltage-regulators {
+                       ldo1_reg: LDO1 {
+                               regulator-name = "P1.0V_LDO_OUT1";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                       };
 
-               hdmiddc@50 {
-                       compatible = "samsung,exynos4210-hdmiddc";
-                       reg = <0x50>;
-               };
-       };
+                       ldo2_reg: LDO2 {
+                               regulator-name = "P1.2V_LDO_OUT2";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                       };
 
-       i2c@12CE0000 {
-               samsung,i2c-sda-delay = <100>;
-               samsung,i2c-max-bus-freq = <66000>;
-               status = "okay";
+                       ldo3_reg: LDO3 {
+                               regulator-name = "P1.8V_LDO_OUT3";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                       };
 
-               hdmiphy@38 {
-                       compatible = "samsung,exynos4212-hdmiphy";
-                       reg = <0x38>;
-               };
-       };
+                       ldo4_reg: LDO4 {
+                               regulator-name = "P2.8V_LDO_OUT4";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                       };
 
-       sata@122F0000 {
-               status = "okay";
-       };
+                       ldo5_reg: LDO5 {
+                               regulator-name = "P1.8V_LDO_OUT5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
 
-       sata-phy@12170000 {
-               status = "okay";
-               samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
-       };
+                       ldo6_reg: LDO6 {
+                               regulator-name = "P1.1V_LDO_OUT6";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-always-on;
+                       };
 
-       mmc@12200000 {
-               status = "okay";
-               num-slots = <1>;
-               broken-cd;
-               card-detect-delay = <200>;
-               samsung,dw-mshc-ciu-div = <3>;
-               samsung,dw-mshc-sdr-timing = <2 3>;
-               samsung,dw-mshc-ddr-timing = <1 2>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
-               bus-width = <8>;
-               cap-mmc-highspeed;
-       };
+                       ldo7_reg: LDO7 {
+                               regulator-name = "P1.1V_LDO_OUT7";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-always-on;
+                       };
 
-       mmc@12220000 {
-               status = "okay";
-               num-slots = <1>;
-               card-detect-delay = <200>;
-               samsung,dw-mshc-ciu-div = <3>;
-               samsung,dw-mshc-sdr-timing = <2 3>;
-               samsung,dw-mshc-ddr-timing = <1 2>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
-               bus-width = <4>;
-               disable-wp;
-               cap-sd-highspeed;
-       };
+                       ldo8_reg: LDO8 {
+                               regulator-name = "P1.0V_LDO_OUT8";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                       };
+
+                       ldo10_reg: LDO10 {
+                               regulator-name = "P1.8V_LDO_OUT10";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
 
-       spi_1: spi@12d30000 {
-               cs-gpios = <&gpa2 5 0>;
-               status = "okay";
+                       ldo11_reg: LDO11 {
+                               regulator-name = "P1.8V_LDO_OUT11";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
 
-               w25q80bw@0 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "w25x80";
-                       reg = <0>;
-                       spi-max-frequency = <1000000>;
+                       ldo12_reg: LDO12 {
+                               regulator-name = "P3.0V_LDO_OUT12";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                       };
 
-                       controller-data {
-                               samsung,spi-feedback-delay = <0>;
+                       ldo13_reg: LDO13 {
+                               regulator-name = "P1.8V_LDO_OUT13";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
                        };
 
-                       partition@0 {
-                               label = "U-Boot";
-                               reg = <0x0 0x40000>;
-                               read-only;
+                       ldo14_reg: LDO14 {
+                               regulator-name = "P1.8V_LDO_OUT14";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
                        };
 
-                       partition@40000 {
-                               label = "Kernel";
-                               reg = <0x40000 0xc0000>;
+                       ldo15_reg: LDO15 {
+                               regulator-name = "P1.0V_LDO_OUT15";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                       };
+
+                       ldo16_reg: LDO16 {
+                               regulator-name = "P1.8V_LDO_OUT16";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       buck1_reg: BUCK1 {
+                               regulator-name = "vdd_mif";
+                               regulator-min-microvolt = <950000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       buck2_reg: BUCK2 {
+                               regulator-name = "vdd_arm";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       buck3_reg: BUCK3 {
+                               regulator-name = "vdd_int";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       buck4_reg: BUCK4 {
+                               regulator-name = "vdd_g3d";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       buck5_reg: BUCK5 {
+                               regulator-name = "P1.8V_BUCK_OUT5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
                        };
                };
        };
+};
 
-       hdmi {
-               hpd-gpio = <&gpx3 7 0>;
-       };
+&i2c_1 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <20000>;
 
-       codec@11000000 {
-               samsung,mfc-r = <0x43000000 0x800000>;
-               samsung,mfc-l = <0x51000000 0x800000>;
+       eeprom@51 {
+               compatible = "samsung,s524ad0xd1";
+               reg = <0x51>;
        };
 
-       i2s0: i2s@03830000 {
-               status = "okay";
+       wm8994: wm8994@1a {
+               compatible = "wlf,wm8994";
+               reg = <0x1a>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               clocks = <&codec_mclk>;
+               clock-names = "MCLK1";
+
+               AVDD2-supply = <&vdd>;
+               CPVDD-supply = <&vdd>;
+               DBVDD-supply = <&dbvdd>;
+               SPKVDD1-supply = <&spkvdd>;
+               SPKVDD2-supply = <&spkvdd>;
        };
+};
 
-       sound {
-               compatible = "samsung,smdk-wm8994";
+&i2c_2 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <66000>;
 
-               samsung,i2s-controller = <&i2s0>;
-               samsung,audio-codec = <&wm8994>;
+       hdmiddc@50 {
+               compatible = "samsung,exynos4210-hdmiddc";
+               reg = <0x50>;
        };
+};
+
+&i2c_8 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <66000>;
 
-       usb@12110000 {
-               samsung,vbus-gpio = <&gpx2 6 0>;
+       hdmiphy@38 {
+               compatible = "samsung,exynos4212-hdmiphy";
+               reg = <0x38>;
        };
+};
+
+&i2c_9 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <40000>;
+       samsung,i2c-slave-addr = <0x38>;
 
-       dp-controller@145B0000 {
-               samsung,color-space = <0>;
-               samsung,dynamic-range = <0>;
-               samsung,ycbcr-coeff = <0>;
-               samsung,color-depth = <1>;
-               samsung,link-rate = <0x0a>;
-               samsung,lane-count = <4>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&dp_hpd>;
-               status = "okay";
+       sata_phy_i2c: sata-phy@38 {
+               compatible = "samsung,exynos-sataphy-i2c";
+               reg = <0x38>;
        };
+};
 
-       fimd@14400000 {
-               status = "okay";
-               display-timings {
-                       native-mode = <&timing0>;
-                       timing0: timing@0 {
-                               /* 1280x800 */
-                               clock-frequency = <50000>;
-                               hactive = <1280>;
-                               vactive = <800>;
-                               hfront-porch = <4>;
-                               hback-porch = <4>;
-                               hsync-len = <4>;
-                               vback-porch = <4>;
-                               vfront-porch = <4>;
-                               vsync-len = <4>;
-                       };
+&i2s0 {
+       status = "okay";
+};
+
+&mfc {
+       samsung,mfc-r = <0x43000000 0x800000>;
+       samsung,mfc-l = <0x51000000 0x800000>;
+};
+
+&mmc_0 {
+       status = "okay";
+       num-slots = <1>;
+       broken-cd;
+       card-detect-delay = <200>;
+       samsung,dw-mshc-ciu-div = <3>;
+       samsung,dw-mshc-sdr-timing = <2 3>;
+       samsung,dw-mshc-ddr-timing = <1 2>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
+       bus-width = <8>;
+       cap-mmc-highspeed;
+};
+
+&mmc_2 {
+       status = "okay";
+       num-slots = <1>;
+       card-detect-delay = <200>;
+       samsung,dw-mshc-ciu-div = <3>;
+       samsung,dw-mshc-sdr-timing = <2 3>;
+       samsung,dw-mshc-ddr-timing = <1 2>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
+       bus-width = <4>;
+       disable-wp;
+       cap-sd-highspeed;
+};
+
+&rtc {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
+
+&sata_phy {
+       status = "okay";
+       samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
+};
+
+&spi_1 {
+       status = "okay";
+       cs-gpios = <&gpa2 5 GPIO_ACTIVE_HIGH>;
+
+       w25q80bw@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "w25x80";
+               reg = <0>;
+               spi-max-frequency = <1000000>;
+
+               controller-data {
+                       samsung,spi-feedback-delay = <0>;
                };
-       };
 
-       fixed-rate-clocks {
-               xxti {
-                       compatible = "samsung,clock-xxti";
-                       clock-frequency = <24000000>;
+               partition@0 {
+                       label = "U-Boot";
+                       reg = <0x0 0x40000>;
+                       read-only;
                };
 
-               codec_mclk: codec-mclk {
-                       compatible = "fixed-clock";
-                       #clock-cells = <0>;
-                       clock-frequency = <16934000>;
+               partition@40000 {
+                       label = "Kernel";
+                       reg = <0x40000 0xc0000>;
                };
        };
 };
index e51fcef884a43d629ab12132e549cc8a0b731405..f9bc04b8f7b34e050b72635fdfc4a196bd08cf12 100644 (file)
@@ -6,10 +6,13 @@
  * 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 <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/clock/maxim,max77686.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/input/input.h>
 #include "exynos5250.dtsi"
 
 / {
        };
 
        chosen {
-       };
-
-       rtc@101E0000 {
-               status = "okay";
-       };
-
-       pinctrl@11400000 {
-               ec_irq: ec-irq {
-                       samsung,pins = "gpx1-6";
-                       samsung,pin-function = <0>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               sd3_clk: sd3-clk {
-                       samsung,pin-drv = <0>;
-               };
-
-               sd3_cmd: sd3-cmd {
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               sd3_bus4: sd3-bus-width4 {
-                       samsung,pin-drv = <0>;
-               };
-
-               max98095_en: max98095-en {
-                       samsung,pins = "gpx1-7";
-                       samsung,pin-function = <0>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               tps65090_irq: tps65090-irq {
-                       samsung,pins = "gpx2-6";
-                       samsung,pin-function = <0>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               usb3_vbus_en: usb3-vbus-en {
-                       samsung,pins = "gpx2-7";
-                       samsung,pin-function = <1>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
-
-               hdmi_hpd_irq: hdmi-hpd-irq {
-                       samsung,pins = "gpx3-7";
-                       samsung,pin-function = <0>;
-                       samsung,pin-pud = <1>;
-                       samsung,pin-drv = <0>;
-               };
-       };
-
-       pinctrl@13400000 {
-               arb_their_claim: arb-their-claim {
-                       samsung,pins = "gpe0-4";
-                       samsung,pin-function = <0>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
-               };
-
-               arb_our_claim: arb-our-claim {
-                       samsung,pins = "gpf0-3";
-                       samsung,pin-function = <1>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
+               bootargs = "console=tty1";
        };
 
        gpio-keys {
 
                power {
                        label = "Power";
-                       gpios = <&gpx1 3 1>;
-                       linux,code = <116>; /* KEY_POWER */
+                       gpios = <&gpx1 3 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_POWER>;
                        gpio-key,wakeup;
                };
 
                lid-switch {
                        label = "Lid";
-                       gpios = <&gpx3 5 1>;
+                       gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
                        linux,input-type = <5>; /* EV_SW */
                        linux,code = <0>; /* SW_LID */
                        debounce-interval = <1>;
 
                i2c-parent = <&{/i2c@12CA0000}>;
 
-               our-claim-gpio = <&gpf0 3 1>;
-               their-claim-gpios = <&gpe0 4 1>;
+               our-claim-gpio = <&gpf0 3 GPIO_ACTIVE_LOW>;
+               their-claim-gpios = <&gpe0 4 GPIO_ACTIVE_LOW>;
                slew-delay-us = <10>;
                wait-retry-us = <3000>;
                wait-free-us = <50000>;
                        cros_ec: embedded-controller {
                                compatible = "google,cros-ec-i2c";
                                reg = <0x1e>;
-                               interrupts = <6 0>;
+                               interrupts = <6 IRQ_TYPE_NONE>;
                                interrupt-parent = <&gpx1>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&ec_irq>;
        };
 
        i2c@12CD0000 {
-               max98095: codec@11 {
-                       compatible = "maxim,max98095";
-                       reg = <0x11>;
-                       pinctrl-0 = <&max98095_en>;
-                       pinctrl-names = "default";
-               };
-
                ptn3460: lvds-bridge@20 {
                        compatible = "nxp,ptn3460";
                        reg = <0x20>;
                };
        };
 
-       i2s0: i2s@03830000 {
-               status = "okay";
-       };
-
        sound {
                compatible = "google,snow-audio-max98095";
 
                regulator-name = "P5.0V_USB3CON";
                regulator-min-microvolt = <5000000>;
                regulator-max-microvolt = <5000000>;
-               gpio = <&gpx2 7 0>;
+               gpio = <&gpx2 7 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&usb3_vbus_en>;
                enable-active-high;
        };
 
-       phy@12100000 {
-               vbus-supply = <&usb3_vbus_reg>;
-       };
-
-       usb@12110000 {
-               samsung,vbus-gpio = <&gpx1 1 0>;
-       };
-
        fixed-rate-clocks {
                xxti {
                        compatible = "samsung,clock-xxti";
                };
        };
 
-       hdmi {
-               hpd-gpio = <&gpx3 7 0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&hdmi_hpd_irq>;
-               phy = <&hdmiphy>;
-               ddc = <&i2c_2>;
-               hdmi-en-supply = <&tps65090_fet7>;
-               vdd-supply = <&ldo8_reg>;
-               vdd_osc-supply = <&ldo10_reg>;
-               vdd_pll-supply = <&ldo8_reg>;
-       };
-
        backlight: backlight {
                compatible = "pwm-backlight";
                pwms = <&pwm 0 1000000 0>;
                pinctrl-names = "default";
        };
 
-       fimd@14400000 {
-               status = "okay";
-               samsung,invert-vclk;
-       };
-
        panel: panel {
                compatible = "auo,b116xw03";
                power-supply = <&fet6>;
                backlight = <&backlight>;
        };
+};
 
-       dp-controller@145B0000 {
-               status = "okay";
-               pinctrl-names = "default";
-               pinctrl-0 = <&dp_hpd>;
-               samsung,color-space = <0>;
-               samsung,dynamic-range = <0>;
-               samsung,ycbcr-coeff = <0>;
-               samsung,color-depth = <1>;
-               samsung,link-rate = <0x0a>;
-               samsung,lane-count = <2>;
-               samsung,hpd-gpio = <&gpx0 7 0>;
-               bridge = <&ptn3460>;
-       };
+&dp {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&dp_hpd>;
+       samsung,color-space = <0>;
+       samsung,dynamic-range = <0>;
+       samsung,ycbcr-coeff = <0>;
+       samsung,color-depth = <1>;
+       samsung,link-rate = <0x0a>;
+       samsung,lane-count = <2>;
+       samsung,hpd-gpio = <&gpx0 7 GPIO_ACTIVE_HIGH>;
+       bridge = <&ptn3460>;
+};
+
+&ehci {
+       samsung,vbus-gpio = <&gpx1 1 GPIO_ACTIVE_HIGH>;
+};
+
+&fimd {
+       status = "okay";
+       samsung,invert-vclk;
+};
+
+&hdmi {
+       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&hdmi_hpd_irq>;
+       phy = <&hdmiphy>;
+       ddc = <&i2c_2>;
+       hdmi-en-supply = <&tps65090_fet7>;
+       vdd-supply = <&ldo8_reg>;
+       vdd_osc-supply = <&ldo10_reg>;
+       vdd_pll-supply = <&ldo8_reg>;
 };
 
 &i2c_0 {
        samsung,i2c-sda-delay = <100>;
        samsung,i2c-max-bus-freq = <378000>;
 
-       max77686@09 {
+       max77686: max77686@09 {
                compatible = "maxim,max77686";
                interrupt-parent = <&gpx3>;
-               interrupts = <2 0>;
+               interrupts = <2 IRQ_TYPE_NONE>;
                pinctrl-names = "default";
                pinctrl-0 = <&max77686_irq>;
                wakeup-source;
        trackpad {
                reg = <0x67>;
                compatible = "cypress,cyapa";
-               interrupts = <2 0>;
+               interrupts = <2 IRQ_TYPE_NONE>;
                interrupt-parent = <&gpx1>;
                wakeup-source;
        };
        status = "okay";
        samsung,i2c-sda-delay = <100>;
        samsung,i2c-max-bus-freq = <66000>;
+
+       max98095: codec@11 {
+               compatible = "maxim,max98095";
+               reg = <0x11>;
+               pinctrl-0 = <&max98095_en>;
+               pinctrl-names = "default";
+       };
 };
 
 &i2c_8 {
        };
 };
 
+&i2s0 {
+       status = "okay";
+};
+
 &mmc_0 {
        status = "okay";
        num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
        bus-width = <4>;
-       wp-gpios = <&gpc2 1 0>;
+       wp-gpios = <&gpc2 1 GPIO_ACTIVE_HIGH>;
        cap-sd-highspeed;
 };
 
 };
 
 &pinctrl_0 {
+       ec_irq: ec-irq {
+               samsung,pins = "gpx1-6";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       max98095_en: max98095-en {
+               samsung,pins = "gpx1-7";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       tps65090_irq: tps65090-irq {
+               samsung,pins = "gpx2-6";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       usb3_vbus_en: usb3-vbus-en {
+               samsung,pins = "gpx2-7";
+               samsung,pin-function = <1>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
        max77686_irq: max77686-irq {
                samsung,pins = "gpx3-2";
                samsung,pin-function = <0>;
                samsung,pin-pud = <0>;
                samsung,pin-drv = <0>;
        };
+
+       hdmi_hpd_irq: hdmi-hpd-irq {
+               samsung,pins = "gpx3-7";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <1>;
+               samsung,pin-drv = <0>;
+       };
+};
+
+&pinctrl_1 {
+       arb_their_claim: arb-their-claim {
+               samsung,pins = "gpe0-4";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       arb_our_claim: arb-our-claim {
+               samsung,pins = "gpf0-3";
+               samsung,pin-function = <1>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+};
+
+&rtc {
+       status = "okay";
+       clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>;
+       clock-names = "rtc", "rtc_src";
+};
+
+&sd3_bus4 {
+       samsung,pin-drv = <0>;
+};
+
+&sd3_clk {
+       samsung,pin-drv = <0>;
+};
+
+&sd3_cmd {
+       samsung,pin-pud = <3>;
+       samsung,pin-drv = <0>;
 };
 
 &spi_1 {
        num-cs = <1>;
 };
 
+&usbdrd_phy {
+       vbus-supply = <&usb3_vbus_reg>;
+};
+
 #include "cros-ec-keyboard.dtsi"
diff --git a/arch/arm/boot/dts/exynos5250-spring.dts b/arch/arm/boot/dts/exynos5250-spring.dts
new file mode 100644 (file)
index 0000000..f027754
--- /dev/null
@@ -0,0 +1,566 @@
+/*
+ * Google Spring board device tree source
+ *
+ * Copyright (c) 2013 Google, Inc
+ * Copyright (c) 2014 SUSE LINUX Products GmbH
+ *
+ * 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 <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/input/input.h>
+#include "exynos5250.dtsi"
+
+/ {
+       model = "Google Spring";
+       compatible = "google,spring", "samsung,exynos5250", "samsung,exynos5";
+
+       memory {
+               reg = <0x40000000 0x80000000>;
+       };
+
+       chosen {
+               bootargs = "console=tty1";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&power_key_irq>, <&lid_irq>;
+
+               power {
+                       label = "Power";
+                       gpios = <&gpx1 3 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_POWER>;
+                       gpio-key,wakeup;
+               };
+
+               lid-switch {
+                       label = "Lid";
+                       gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <5>; /* EV_SW */
+                       linux,code = <0>; /* SW_LID */
+                       debounce-interval = <1>;
+                       gpio-key,wakeup;
+               };
+       };
+
+       usb-hub {
+               compatible = "smsc,usb3503a";
+               reset-gpios = <&gpe1 0 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&hsic_reset>;
+       };
+
+       fixed-rate-clocks {
+               xxti {
+                       compatible = "samsung,clock-xxti";
+                       clock-frequency = <24000000>;
+               };
+       };
+};
+
+&dp {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&dp_hpd_gpio>;
+       samsung,color-space = <0>;
+       samsung,dynamic-range = <0>;
+       samsung,ycbcr-coeff = <0>;
+       samsung,color-depth = <1>;
+       samsung,link-rate = <0x0a>;
+       samsung,lane-count = <1>;
+       samsung,hpd-gpio = <&gpc3 0 GPIO_ACTIVE_HIGH>;
+};
+
+&ehci {
+       samsung,vbus-gpio = <&gpx1 1 GPIO_ACTIVE_HIGH>;
+};
+
+&fimd {
+       status = "okay";
+       samsung,invert-vclk;
+};
+
+&hdmi {
+       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&hdmi_hpd_irq>;
+       phy = <&hdmiphy>;
+       ddc = <&i2c_2>;
+       hdmi-en-supply = <&ldo8_reg>;
+       vdd-supply = <&ldo8_reg>;
+       vdd_osc-supply = <&ldo10_reg>;
+       vdd_pll-supply = <&ldo8_reg>;
+};
+
+&i2c_0 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <378000>;
+
+       s5m8767-pmic@66 {
+               compatible = "samsung,s5m8767-pmic";
+               reg = <0x66>;
+               interrupt-parent = <&gpx3>;
+               interrupts = <2 IRQ_TYPE_NONE>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>;
+               wakeup-source;
+
+               s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 GPIO_ACTIVE_LOW>, /* DVS1 */
+                                             <&gpd1 1 GPIO_ACTIVE_LOW>, /* DVS2 */
+                                             <&gpd1 2 GPIO_ACTIVE_LOW>; /* DVS3 */
+
+               s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_LOW>, /* SET1 */
+                                            <&gpx2 4 GPIO_ACTIVE_LOW>, /* SET2 */
+                                            <&gpx2 5 GPIO_ACTIVE_LOW>; /* SET3 */
+
+               /*
+                * The following arrays of DVS voltages are not used, since we are
+                * not using GPIOs to control PMIC bucks, but they must be defined
+                * to please the driver.
+                */
+               s5m8767,pmic-buck2-dvs-voltage = <1350000>, <1300000>,
+                                                <1250000>, <1200000>,
+                                                <1150000>, <1100000>,
+                                                <1000000>, <950000>;
+
+               s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>,
+                                                <1100000>, <1100000>,
+                                                <1000000>, <1000000>,
+                                                <1000000>, <1000000>;
+
+               s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>,
+                                                <1200000>, <1200000>,
+                                                <1200000>, <1200000>,
+                                                <1200000>, <1200000>;
+
+               clocks {
+                       compatible = "samsung,s5m8767-clk";
+                       #clock-cells = <1>;
+                       clock-output-names = "en32khz_ap",
+                                            "en32khz_cp",
+                                            "en32khz_bt";
+               };
+
+               regulators {
+                       ldo4_reg: LDO4 {
+                               regulator-name = "P1.0V_LDO_OUT4";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               op_mode = <0>;
+                       };
+
+                       ldo5_reg: LDO5 {
+                               regulator-name = "P1.0V_LDO_OUT5";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               op_mode = <0>;
+                       };
+
+                       ldo6_reg: LDO6 {
+                               regulator-name = "vdd_mydp";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               op_mode = <3>;
+                       };
+
+                       ldo7_reg: LDO7 {
+                               regulator-name = "P1.1V_LDO_OUT7";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-always-on;
+                               op_mode = <3>;
+                       };
+
+                       ldo8_reg: LDO8 {
+                               regulator-name = "P1.0V_LDO_OUT8";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               op_mode = <3>;
+                       };
+
+                       ldo10_reg: LDO10 {
+                               regulator-name = "P1.8V_LDO_OUT10";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               op_mode = <3>;
+                       };
+
+                       ldo11_reg: LDO11 {
+                               regulator-name = "P1.8V_LDO_OUT11";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               op_mode = <0>;
+                       };
+
+                       ldo12_reg: LDO12 {
+                               regulator-name = "P3.0V_LDO_OUT12";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-always-on;
+                               op_mode = <3>;
+                       };
+
+                       ldo13_reg: LDO13 {
+                               regulator-name = "P1.8V_LDO_OUT13";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               op_mode = <0>;
+                       };
+
+                       ldo14_reg: LDO14 {
+                               regulator-name = "P1.8V_LDO_OUT14";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               op_mode = <3>;
+                       };
+
+                       ldo15_reg: LDO15 {
+                               regulator-name = "P1.0V_LDO_OUT15";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               op_mode = <3>;
+                       };
+
+                       ldo16_reg: LDO16 {
+                               regulator-name = "P1.8V_LDO_OUT16";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               op_mode = <3>;
+                       };
+
+                       ldo17_reg: LDO17 {
+                               regulator-name = "P2.8V_LDO_OUT17";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-always-on;
+                               op_mode = <0>;
+                       };
+
+                       ldo25_reg: LDO25 {
+                               regulator-name = "vdd_bridge";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                               op_mode = <1>;
+                       };
+
+                       buck1_reg: BUCK1 {
+                               regulator-name = "vdd_mif";
+                               regulator-min-microvolt = <950000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <3>;
+                       };
+
+                       buck2_reg: BUCK2 {
+                               regulator-name = "vdd_arm";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <3>;
+                       };
+
+                       buck3_reg: BUCK3 {
+                               regulator-name = "vdd_int";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <3>;
+                       };
+
+                       buck4_reg: BUCK4 {
+                               regulator-name = "vdd_g3d";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-boot-on;
+                               op_mode = <3>;
+                       };
+
+                       buck5_reg: BUCK5 {
+                               regulator-name = "P1.8V_BUCK_OUT5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       buck6_reg: BUCK6 {
+                               regulator-name = "P1.2V_BUCK_OUT6";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <0>;
+                       };
+
+                       buck9_reg: BUCK9 {
+                               regulator-name = "vdd_ummc";
+                               regulator-min-microvolt = <950000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <3>;
+                       };
+               };
+       };
+};
+
+&i2c_1 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <378000>;
+
+       trackpad@4b {
+               compatible = "atmel,maxtouch";
+               reg = <0x4b>;
+               interrupt-parent = <&gpx1>;
+               interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&trackpad_irq>;
+               linux,gpio-keymap = <KEY_RESERVED
+                                    KEY_RESERVED
+                                    KEY_RESERVED
+                                    KEY_RESERVED
+                                    KEY_RESERVED
+                                    BTN_LEFT>;
+               wakeup-source;
+       };
+};
+
+/*
+ * Disabled pullups since external part has its own pullups and
+ * double-pulling gets us out of spec in some cases.
+ */
+&i2c2_bus {
+       samsung,pin-pud = <0>;
+};
+
+&i2c_2 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <66000>;
+
+       hdmiddc@50 {
+               compatible = "samsung,exynos4210-hdmiddc";
+               reg = <0x50>;
+       };
+};
+
+&i2c_3 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <66000>;
+};
+
+&i2c_4 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <66000>;
+
+       cros_ec: embedded-controller {
+               compatible = "google,cros-ec-i2c";
+               reg = <0x1e>;
+               interrupts = <6 IRQ_TYPE_NONE>;
+               interrupt-parent = <&gpx1>;
+               wakeup-source;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ec_irq>;
+       };
+};
+
+&i2c_5 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <66000>;
+};
+
+&i2c_7 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <66000>;
+
+       temperature-sensor@4c {
+               compatible = "gmt,g781";
+               reg = <0x4c>;
+       };
+};
+
+&i2c_8 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <378000>;
+
+       hdmiphy: hdmiphy@38 {
+               compatible = "samsung,exynos4212-hdmiphy";
+               reg = <0x38>;
+       };
+};
+
+&i2s0 {
+       status = "okay";
+};
+
+&mfc {
+       samsung,mfc-r = <0x43000000 0x800000>;
+       samsung,mfc-l = <0x51000000 0x800000>;
+};
+
+&mmc_0 {
+       status = "okay";
+       num-slots = <1>;
+       supports-highspeed;
+       broken-cd;
+       card-detect-delay = <200>;
+       samsung,dw-mshc-ciu-div = <3>;
+       samsung,dw-mshc-sdr-timing = <2 3>;
+       samsung,dw-mshc-ddr-timing = <1 2>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4 &sd0_bus8>;
+
+       slot@0 {
+               reg = <0>;
+               bus-width = <8>;
+       };
+};
+
+/*
+ * On Spring we've got SIP WiFi and so can keep drive strengths low to
+ * reduce EMI.
+ */
+&mmc_1 {
+       status = "okay";
+       num-slots = <1>;
+       supports-highspeed;
+       broken-cd;
+       card-detect-delay = <200>;
+       samsung,dw-mshc-ciu-div = <3>;
+       samsung,dw-mshc-sdr-timing = <2 3>;
+       samsung,dw-mshc-ddr-timing = <1 2>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_cd &sd1_bus4>;
+
+       slot@0 {
+               reg = <0>;
+               bus-width = <4>;
+       };
+};
+
+&pinctrl_0 {
+       s5m8767_dvs: s5m8767-dvs {
+               samsung,pins = "gpd1-0", "gpd1-1", "gpd1-2";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <1>;
+               samsung,pin-drv = <0>;
+       };
+
+       dp_hpd_gpio: dp-hpd-gpio {
+               samsung,pins = "gpc3-0";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       trackpad_irq: trackpad-irq {
+               samsung,pins = "gpx1-2";
+               samsung,pin-function = <0xf>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       power_key_irq: power-key-irq {
+               samsung,pins = "gpx1-3";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       ec_irq: ec-irq {
+               samsung,pins = "gpx1-6";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       s5m8767_ds: s5m8767-ds {
+               samsung,pins = "gpx2-3", "gpx2-4", "gpx2-5";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <1>;
+               samsung,pin-drv = <0>;
+       };
+
+       s5m8767_irq: s5m8767-irq {
+               samsung,pins = "gpx3-2";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       lid_irq: lid-irq {
+               samsung,pins = "gpx3-5";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       hdmi_hpd_irq: hdmi-hpd-irq {
+               samsung,pins = "gpx3-7";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <1>;
+               samsung,pin-drv = <0>;
+       };
+};
+
+&pinctrl_1 {
+       hsic_reset: hsic-reset {
+               samsung,pins = "gpe1-0";
+               samsung,pin-function = <1>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+};
+
+&sd1_bus4 {
+       samsung,pin-drv = <0>;
+};
+
+&sd1_cd {
+       samsung,pin-drv = <0>;
+};
+
+&sd1_clk {
+       samsung,pin-drv = <0>;
+};
+
+&sd1_cmd {
+       samsung,pin-pud = <3>;
+       samsung,pin-drv = <0>;
+};
+
+&spi_1 {
+       status = "okay";
+       samsung,spi-src-clk = <0>;
+       num-cs = <1>;
+};
+
+#include "cros-ec-keyboard.dtsi"
index f21b9aa00fbb214f4dee8b0b1980884f5411c70f..6a32d50070c12bf9c98e3bea2ddf46d6c74c5470 100644 (file)
                clock-names = "fimg2d";
        };
 
-       codec@11000000 {
+       mfc: codec@11000000 {
                compatible = "samsung,mfc-v6";
                reg = <0x11000000 0x10000>;
                interrupts = <0 96 0>;
                clock-names = "mfc";
        };
 
-       rtc@101E0000 {
+       rtc: rtc@101E0000 {
                clocks = <&clock CLK_RTC>;
                clock-names = "rtc";
                status = "disabled";
                clock-names = "uart", "clk_uart_baud0";
        };
 
-       sata@122F0000 {
+       sata: sata@122F0000 {
                compatible = "snps,dwc-ahci";
                samsung,sata-freq = <66>;
                reg = <0x122F0000 0x1ff>;
                clock-names = "i2c";
                pinctrl-names = "default";
                pinctrl-0 = <&i2c0_bus>;
+               samsung,sysreg-phandle = <&sysreg_system_controller>;
                status = "disabled";
        };
 
                clock-names = "i2c";
                pinctrl-names = "default";
                pinctrl-0 = <&i2c1_bus>;
+               samsung,sysreg-phandle = <&sysreg_system_controller>;
                status = "disabled";
        };
 
                clock-names = "i2c";
                pinctrl-names = "default";
                pinctrl-0 = <&i2c2_bus>;
+               samsung,sysreg-phandle = <&sysreg_system_controller>;
                status = "disabled";
        };
 
                clock-names = "i2c";
                pinctrl-names = "default";
                pinctrl-0 = <&i2c3_bus>;
+               samsung,sysreg-phandle = <&sysreg_system_controller>;
                status = "disabled";
        };
 
                #phy-cells = <1>;
        };
 
-       usb@12110000 {
+       ehci: usb@12110000 {
                compatible = "samsung,exynos4210-ehci";
                reg = <0x12110000 0x100>;
                interrupts = <0 71 0>;
                };
        };
 
-       usb@12120000 {
+       ohci: usb@12120000 {
                compatible = "samsung,exynos4210-ohci";
                reg = <0x12120000 0x100>;
                interrupts = <0 71 0>;
                clock-names = "gscl";
        };
 
-       hdmi {
+       hdmi: hdmi {
                compatible = "samsung,exynos4212-hdmi";
                reg = <0x14530000 0x70000>;
                interrupts = <0 95 0>;
                #phy-cells = <0>;
        };
 
-       dp-controller@145B0000 {
+       dp: dp-controller@145B0000 {
                clocks = <&clock CLK_DP>;
                clock-names = "dp";
                phys = <&dp_phy>;
                phy-names = "dp";
        };
 
-       fimd@14400000 {
+       fimd: fimd@14400000 {
                clocks = <&clock CLK_SCLK_FIMD1>, <&clock CLK_FIMD1>;
                clock-names = "sclk_fimd", "fimd";
        };
index 82cdb74484cc09c7d45a95b036d148c12f8144e7..9a050e19a4dcd5b9a0f4db2ba29e689ab3d9ed9c 100644 (file)
@@ -12,6 +12,7 @@
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/clock/maxim,max77802.h>
 #include "exynos5420.dtsi"
 
 / {
        status = "okay";
        clock-frequency = <400000>;
 
-       max77802-pmic@9 {
+       max77802: max77802-pmic@9 {
                compatible = "maxim,max77802";
                interrupt-parent = <&gpx3>;
                interrupts = <1 IRQ_TYPE_NONE>;
        status = "okay";
        num-slots = <1>;
        broken-cd;
-       caps2-mmc-hs200-1_8v;
+       mmc-hs200-1_8v;
        cap-mmc-highspeed;
        non-removable;
        card-detect-delay = <200>;
 
 &rtc {
        status = "okay";
+       clocks = <&clock CLK_RTC>, <&max77802 MAX77802_CLK_32K_AP>;
+       clock-names = "rtc", "rtc_src";
 };
 
 &spi_2 {
index 8617a031cbc06bf670e42f167056fe6c061b0d63..90bf4011e3195ae93a5a38bab7343e506ff45c0a 100644 (file)
                clock-names = "i2c";
                pinctrl-names = "default";
                pinctrl-0 = <&i2c0_bus>;
+               samsung,sysreg-phandle = <&sysreg_system_controller>;
                status = "disabled";
        };
 
                clock-names = "i2c";
                pinctrl-names = "default";
                pinctrl-0 = <&i2c1_bus>;
+               samsung,sysreg-phandle = <&sysreg_system_controller>;
                status = "disabled";
        };
 
                clock-names = "i2c";
                pinctrl-names = "default";
                pinctrl-0 = <&i2c2_bus>;
+               samsung,sysreg-phandle = <&sysreg_system_controller>;
                status = "disabled";
        };
 
                clock-names = "i2c";
                pinctrl-names = "default";
                pinctrl-0 = <&i2c3_bus>;
+               samsung,sysreg-phandle = <&sysreg_system_controller>;
                status = "disabled";
        };
 
index 7bb1c8dd42dd9a8c5d3c3196249787a39b0442b9..e8fdda827fc9d5561d6097ded1b177644442e31a 100644 (file)
@@ -12,6 +12,7 @@
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/clock/maxim,max77802.h>
 #include "exynos5800.dtsi"
 
 / {
        status = "okay";
        clock-frequency = <400000>;
 
-       max77802-pmic@9 {
+       max77802: max77802-pmic@9 {
                compatible = "maxim,max77802";
                interrupt-parent = <&gpx3>;
                interrupts = <1 IRQ_TYPE_NONE>;
        status = "okay";
        num-slots = <1>;
        broken-cd;
-       caps2-mmc-hs200-1_8v;
+       mmc-hs200-1_8v;
        cap-mmc-highspeed;
        non-removable;
        card-detect-delay = <200>;
 
 &rtc {
        status = "okay";
+       clocks = <&clock CLK_RTC>, <&max77802 MAX77802_CLK_32K_AP>;
+       clock-names = "rtc", "rtc_src";
 };
 
 &spi_2 {
index 05b44c272c9a7b11cd05f64ac1879dc128fe035d..721b09238f58846746053b64f113ea327723c60e 100644 (file)
 &uart0 {
        status = "okay";
 };
+
+&gmac0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       phy-handle = <&phy2>;
+       phy-mode = "mii";
+       /* Placeholder, overwritten by bootloader */
+       mac-address = [00 00 00 00 00 00];
+       status = "okay";
+
+       phy2: ethernet-phy@2 {
+               reg = <2>;
+       };
+};
+
+&gmac1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       phy-handle = <&phy1>;
+       phy-mode = "rgmii";
+       /* Placeholder, overwritten by bootloader */
+       mac-address = [00 00 00 00 00 00];
+       status = "okay";
+
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+       };
+};
+
+&ahci {
+       phys = <&sata_phy>;
+       phy-names = "sata-phy";
+};
index f85ba2924ff7ef01b08703a2ece00ffbe5382452..c52722b14e4a01577af7768a2b840f97836afbdd 100644 (file)
                                clock-names = "apb_pclk";
                                status = "disabled";
                        };
+
+                       gpio0: gpio@b20000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0xb20000 0x1000>;
+                               interrupts = <0 108 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       gpio1: gpio@b21000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0xb21000 0x1000>;
+                               interrupts = <0 109 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       gpio2: gpio@b22000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0xb22000 0x1000>;
+                               interrupts = <0 110 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       gpio3: gpio@b23000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0xb23000 0x1000>;
+                               interrupts = <0 111 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       gpio4: gpio@b24000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0xb24000 0x1000>;
+                               interrupts = <0 112 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       gpio5: gpio@004000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0x004000 0x1000>;
+                               interrupts = <0 113 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       gpio6: gpio@b26000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0xb26000 0x1000>;
+                               interrupts = <0 114 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       gpio7: gpio@b27000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0xb27000 0x1000>;
+                               interrupts = <0 115 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       gpio8: gpio@b28000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0xb28000 0x1000>;
+                               interrupts = <0 116 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       gpio9: gpio@b29000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0xb29000 0x1000>;
+                               interrupts = <0 117 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       gpio10: gpio@b2a000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0xb2a000 0x1000>;
+                               interrupts = <0 118 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       gpio11: gpio@b2b000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0xb2b000 0x1000>;
+                               interrupts = <0 119 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       gpio12: gpio@b2c000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0xb2c000 0x1000>;
+                               interrupts = <0 120 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       gpio13: gpio@b2d000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0xb2d000 0x1000>;
+                               interrupts = <0 121 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       gpio14: gpio@b2e000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0xb2e000 0x1000>;
+                               interrupts = <0 122 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       gpio15: gpio@b2f000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0xb2f000 0x1000>;
+                               interrupts = <0 123 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       gpio16: gpio@b30000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0xb30000 0x1000>;
+                               interrupts = <0 124 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       gpio17: gpio@b31000 {
+                               compatible = "arm,pl061", "arm,primecell";
+                               reg = <0xb31000 0x1000>;
+                               interrupts = <0 125 0x4>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               clocks = <&clock HIX5HD2_FIXED_100M>;
+                               clock-names = "apb_pclk";
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       wdt0: watchdog@a2c000 {
+                               compatible = "arm,sp805", "arm,primecell";
+                               arm,primecell-periphid = <0x00141805>;
+                               reg = <0xa2c000 0x1000>;
+                               interrupts = <0 29 4>;
+                               clocks = <&clock HIX5HD2_WDG0_RST>;
+                               clock-names = "apb_pclk";
+                       };
                };
 
                local_timer@00a00600 {
                };
 
                sysctrl: system-controller@00000000 {
-                       compatible = "hisilicon,sysctrl";
+                       compatible = "hisilicon,sysctrl", "syscon";
                        reg = <0x00000000 0x1000>;
-                       reboot-offset = <0x4>;
+               };
+
+               reboot {
+                       compatible = "syscon-reboot";
+                       regmap = <&sysctrl>;
+                       offset = <0x4>;
+                       mask = <0xdeadbeef>;
                };
 
                cpuctrl@00a22000 {
                                #clock-cells = <1>;
                        };
                };
+
+               /* unremovable emmc as mmcblk0 */
+               mmc: mmc@1830000 {
+                       compatible = "snps,dw-mshc";
+                       reg = <0x1830000 0x1000>;
+                       interrupts = <0 35 4>;
+                       clocks = <&clock HIX5HD2_MMC_CIU_RST>,
+                                <&clock HIX5HD2_MMC_BIU_CLK>;
+                       clock-names = "ciu", "biu";
+               };
+
+               sd: mmc@1820000 {
+                       compatible = "snps,dw-mshc";
+                       reg = <0x1820000 0x1000>;
+                       interrupts = <0 34 4>;
+                       clocks = <&clock HIX5HD2_SD_CIU_RST>,
+                                <&clock HIX5HD2_SD_BIU_CLK>;
+                       clock-names = "ciu","biu";
+               };
+
+               gmac0: ethernet@1840000 {
+                       compatible = "hisilicon,hix5hd2-gmac";
+                       reg = <0x1840000 0x1000>,<0x184300c 0x4>;
+                       interrupts = <0 71 4>;
+                       clocks = <&clock HIX5HD2_MAC0_CLK>;
+                       status = "disabled";
+               };
+
+               gmac1: ethernet@1841000 {
+                       compatible = "hisilicon,hix5hd2-gmac";
+                       reg = <0x1841000 0x1000>,<0x1843010 0x4>;
+                       interrupts = <0 72 4>;
+                       clocks = <&clock HIX5HD2_MAC1_CLK>;
+                       status = "disabled";
+               };
+
+               usb0: ehci@1890000 {
+                       compatible = "generic-ehci";
+                       reg = <0x1890000 0x1000>;
+                       interrupts = <0 66 4>;
+                       clocks = <&clock HIX5HD2_USB_CLK>;
+               };
+
+               usb1: ohci@1880000 {
+                       compatible = "generic-ohci";
+                       reg = <0x1880000 0x1000>;
+                       interrupts = <0 67 4>;
+                       clocks = <&clock HIX5HD2_USB_CLK>;
+               };
+
+               peripheral_ctrl: syscon@a20000 {
+                       compatible = "syscon";
+                       reg = <0xa20000 0x1000>;
+               };
+
+               sata_phy: phy@1900000 {
+                       compatible = "hisilicon,hix5hd2-sata-phy";
+                       reg = <0x1900000 0x10000>;
+                       #phy-cells = <0>;
+                       hisilicon,peripheral-syscon = <&peripheral_ctrl>;
+                       hisilicon,power-reg = <0x8 10>;
+               };
+
+               ahci: sata@1900000 {
+                       compatible = "hisilicon,hisi-ahci";
+                       reg = <0x1900000 0x10000>;
+                       interrupts = <0 70 4>;
+                       clocks = <&clock HIX5HD2_SATA_CLK>;
+               };
+
+               ir: ir@001000 {
+                       compatible = "hisilicon,hix5hd2-ir";
+                       reg = <0x001000 0x1000>;
+                       interrupts = <0 47 4>;
+                       clocks = <&clock HIX5HD2_FIXED_24M>;
+                       hisilicon,power-syscon = <&sysctrl>;
+               };
+
+               i2c0: i2c@b10000 {
+                       compatible = "hisilicon,hix5hd2-i2c";
+                       reg = <0xb10000 0x1000>;
+                       interrupts = <0 38 4>;
+                       clocks = <&clock HIX5HD2_I2C0_RST>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c1: i2c@b11000 {
+                       compatible = "hisilicon,hix5hd2-i2c";
+                       reg = <0xb11000 0x1000>;
+                       interrupts = <0 39 4>;
+                       clocks = <&clock HIX5HD2_I2C1_RST>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@b12000 {
+                       compatible = "hisilicon,hix5hd2-i2c";
+                       reg = <0xb12000 0x1000>;
+                       interrupts = <0 40 4>;
+                       clocks = <&clock HIX5HD2_I2C2_RST>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c3: i2c@b13000 {
+                       compatible = "hisilicon,hix5hd2-i2c";
+                       reg = <0xb13000 0x1000>;
+                       interrupts = <0 41 4>;
+                       clocks = <&clock HIX5HD2_I2C3_RST>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c4: i2c@b16000 {
+                       compatible = "hisilicon,hix5hd2-i2c";
+                       reg = <0xb16000 0x1000>;
+                       interrupts = <0 43 4>;
+                       clocks = <&clock HIX5HD2_I2C4_RST>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c5: i2c@b17000 {
+                       compatible = "hisilicon,hix5hd2-i2c";
+                       reg = <0xb17000 0x1000>;
+                       interrupts = <0 44 4>;
+                       clocks = <&clock HIX5HD2_I2C5_RST>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
        };
 };
index c568f067604d91c72a432de366b80b922570e7ba..560d62150ade0d1e29666ae086345054a42d554f 100644 (file)
                };
        };
 };
+
+&mdio {
+       ethphy0: ethernet-phy@0 {
+               compatible = "marvell,88E1514", "marvell,88E1510", "ethernet-phy-ieee802.3-c22";
+               reg = <0>;
+       };
+
+       ethphy1: ethernet-phy@1 {
+               compatible = "marvell,88E1514", "marvell,88E1510", "ethernet-phy-ieee802.3-c22";
+               reg = <1>;
+       };
+};
index c358b4b9a073738c5bf1830a9840c1f17a557c25..5fc14683d6df18ccb265538568343177b08fae0f 100644 (file)
                        #gpio-cells = <2>;
                        gpio,syscon-dev = <&devctrl 0x240>;
                };
+
+               pcie@21020000 {
+                       compatible = "ti,keystone-pcie","snps,dw-pcie";
+                       clocks = <&clkpcie1>;
+                       clock-names = "pcie";
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       reg =  <0x21021000 0x2000>, <0x21020000 0x1000>, <0x02620128 4>;
+                       ranges = <0x81000000 0 0 0x23260000 0x4000 0x4000
+                               0x82000000 0 0x60000000 0x60000000 0 0x10000000>;
+
+                       device_type = "pci";
+                       num-lanes = <2>;
+
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 7>;
+                       interrupt-map = <0 0 0 1 &pcie_intc1 0>, /* INT A */
+                                       <0 0 0 2 &pcie_intc1 1>, /* INT B */
+                                       <0 0 0 3 &pcie_intc1 2>, /* INT C */
+                                       <0 0 0 4 &pcie_intc1 3>; /* INT D */
+
+                       pcie_msi_intc1: msi-interrupt-controller {
+                               interrupt-controller;
+                               #interrupt-cells = <1>;
+                               interrupt-parent = <&gic>;
+                               interrupts = <GIC_SPI 377 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 378 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 379 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 380 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 381 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 382 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 383 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 384 IRQ_TYPE_EDGE_RISING>;
+                       };
+
+                       pcie_intc1: legacy-interrupt-controller {
+                               interrupt-controller;
+                               #interrupt-cells = <1>;
+                               interrupt-parent = <&gic>;
+                               interrupts = <GIC_SPI 373 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 374 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 375 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 376 IRQ_TYPE_EDGE_RISING>;
+                       };
+               };
        };
 };
 
index fec43128a2e0f946dabf80e18e287269571c4854..85cc7f2872d71f04a350ea02cb9f1df398386270 100644 (file)
                };
        };
 };
+
+&mdio {
+       ethphy0: ethernet-phy@0 {
+               compatible = "marvell,88E1514", "marvell,88E1510", "ethernet-phy-ieee802.3-c22";
+               reg = <0>;
+       };
+
+       ethphy1: ethernet-phy@1 {
+               compatible = "marvell,88E1514", "marvell,88E1510", "ethernet-phy-ieee802.3-c22";
+               reg = <1>;
+       };
+};
index 5d3e83fa224258a093383a532b08640435be46ef..c06542b2c954452dcf891f579014478e573b8221 100644 (file)
                        #interrupt-cells = <1>;
                        ti,syscon-dev = <&devctrl 0x2a0>;
                };
+
+               pcie@21800000 {
+                       compatible = "ti,keystone-pcie", "snps,dw-pcie";
+                       clocks = <&clkpcie>;
+                       clock-names = "pcie";
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       reg =  <0x21801000 0x2000>, <0x21800000 0x1000>, <0x02620128 4>;
+                       ranges = <0x81000000 0 0 0x23250000 0 0x4000
+                               0x82000000 0 0x50000000 0x50000000 0 0x10000000>;
+
+                       device_type = "pci";
+                       num-lanes = <2>;
+
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 7>;
+                       interrupt-map = <0 0 0 1 &pcie_intc0 0>, /* INT A */
+                                       <0 0 0 2 &pcie_intc0 1>, /* INT B */
+                                       <0 0 0 3 &pcie_intc0 2>, /* INT C */
+                                       <0 0 0 4 &pcie_intc0 3>; /* INT D */
+
+                       pcie_msi_intc0: msi-interrupt-controller {
+                               interrupt-controller;
+                               #interrupt-cells = <1>;
+                               interrupt-parent = <&gic>;
+                               interrupts = <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>;
+                       };
+
+                       pcie_intc0: legacy-interrupt-controller {
+                               interrupt-controller;
+                               #interrupt-cells = <1>;
+                               interrupt-parent = <&gic>;
+                               interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 28 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 29 IRQ_TYPE_EDGE_RISING>;
+                       };
+               };
        };
 };
diff --git a/arch/arm/boot/dts/kirkwood-dir665.dts b/arch/arm/boot/dts/kirkwood-dir665.dts
new file mode 100644 (file)
index 0000000..786959e
--- /dev/null
@@ -0,0 +1,278 @@
+/*
+ * Copyright (C) 2014 Claudio Leite <leitec@staticky.com>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+
+/ {
+       model = "D-Link DIR-665";
+       compatible = "dlink,dir-665", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+       memory {
+               device_type = "memory";
+               reg = <0x00000000 0x8000000>; /* 128 MB */
+       };
+
+       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 {
+                       pinctrl-0 =< &pmx_led_usb
+                                    &pmx_led_internet_blue
+                                    &pmx_led_internet_amber
+                                    &pmx_led_5g &pmx_led_status_blue
+                                    &pmx_led_wps &pmx_led_status_amber
+                                    &pmx_led_24g
+                                    &pmx_btn_restart &pmx_btn_wps>;
+                       pinctrl-names = "default";
+
+                       pmx_led_usb: pmx-led-usb {
+                               marvell,pins = "mpp12";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_internet_blue: pmx-led-internet-blue {
+                               marvell,pins = "mpp42";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_internet_amber: pmx-led-internet-amber {
+                               marvell,pins = "mpp43";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_5g: pmx-led-5g {
+                               marvell,pins = "mpp44";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_status_blue: pmx-led-status-blue {
+                               marvell,pins = "mpp45";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_wps: pmx-led-wps {
+                               marvell,pins = "mpp47";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_status_amber: pmx-led-status-amber {
+                               marvell,pins = "mpp48";
+                               marvell,function = "gpio";
+                       };
+                       pmx_led_24g: pmx-led-24g {
+                               marvell,pins = "mpp49";
+                               marvell,function = "gpio";
+                       };
+                       pmx_btn_restart: pmx-btn-restart {
+                               marvell,pins = "mpp28";
+                               marvell,function = "gpio";
+                       };
+                       pmx_btn_wps: pmx-btn-wps {
+                               marvell,pins = "mpp46";
+                               marvell,function = "gpio";
+                       };
+               };
+
+               spi@10600 {
+                       status = "okay";
+                       m25p80@0 {
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               compatible = "mxicy,mx25l12805d";
+                               spi-max-frequency = <50000000>;
+                               reg = <0>;
+
+                               partition@0 {
+                                       label = "uboot";
+                                       reg = <0x0 0x30000>;
+                                       read-only;
+                               };
+
+                               partition@30000 {
+                                       label = "nvram";
+                                       reg = <0x30000 0x10000>;
+                                       read-only;
+                               };
+
+                               partition@40000 {
+                                       label = "kernel";
+                                       reg = <0x40000 0x180000>;
+                               };
+
+                               partition@1c0000 {
+                                       label = "rootfs";
+                                       reg = <0x1c0000 0xe00000>;
+                               };
+
+                               cal_data: partition@fc0000 {
+                                       label = "cal_data";
+                                       reg = <0xfc0000 0x10000>;
+                                       read-only;
+                               };
+
+                               partition@fd0000 {
+                                       label = "lang_pack";
+                                       reg = <0xfd0000 0x30000>;
+                                       read-only;
+                               };
+                       };
+               };
+
+               serial@12000 {
+                       status = "okay";
+               };
+
+               i2c@11000 {
+                       status = "okay";
+               };
+
+               ehci@50000 {
+                       status = "okay";
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               blue-usb {
+                       label = "dir665:blue:usb";
+                       gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+               };
+               blue-internet {
+                       /* Can only be turned on if the Internet
+                        * Ethernet port has Link
+                        */
+                       label = "dir665:blue:internet";
+                       gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
+               };
+               amber-internet {
+                       label = "dir665:amber:internet";
+                       gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
+               };
+               blue-wifi5g {
+                       label = "dir665:blue:5g";
+                       gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
+               };
+               blue-status {
+                       label = "dir665:blue:status";
+                       gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
+               };
+               blue-wps {
+                       label = "dir665:blue:wps";
+                       gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
+               };
+               amber-status {
+                       label = "dir665:amber:status";
+                       gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
+               };
+               blue-24g {
+                       label = "dir665:blue:24g";
+                       gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               reset {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
+               };
+               wps {
+                       label = "wps";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       dsa@0 {
+               compatible = "marvell,dsa";
+               #address-cells = <2>;
+               #size-cells = <0>;
+
+               dsa,ethernet = <&eth0port>;
+               dsa,mii-bus = <&mdio>;
+
+               switch@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0 0>;    /* MDIO address 0, switch 0 in tree */
+
+                       port@0 {
+                               reg = <0>;
+                               label = "lan4";
+                       };
+
+                       port@1 {
+                              reg = <1>;
+                              label = "lan3";
+                       };
+
+                       port@2 {
+                              reg = <2>;
+                              label = "lan2";
+                       };
+
+                       port@3 {
+                              reg = <3>;
+                              label = "lan1";
+                       };
+
+                       port@4 {
+                               reg = <4>;
+                               label = "wan";
+                       };
+
+                       port@6 {
+                              reg = <6>;
+                              label = "cpu";
+                       };
+               };
+       };
+};
+
+&mdio {
+       status = "okay";
+};
+
+/* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set
+ * fixed speed and duplex. */
+&eth0 {
+       status = "okay";
+
+       ethernet0-port@0 {
+               speed = <1000>;
+               duplex = <1>;
+       };
+};
+
+/* eth1 is connected to the switch as well. However DSA only supports a
+ * single CPU port. So leave this port disabled to avoid confusion. */
+
+&eth1 {
+       status = "disabled";
+};
+
+/* There is no battery on the boards, so the RTC does not keep time
+ * when there is no power, making it useless. */
+&rtc {
+       status = "disabled";
+};
index e6539ea5a711a788bedf28c128ada89b0185e1ed..03bcff87bd27194c43a8d375ae04ae03f69efb2b 100644 (file)
 / {
        interrupt-parent = <&gic>;
 
+       L2: l2-cache-controller@c4200000 {
+               compatible = "arm,pl310-cache";
+               reg = <0xc4200000 0x1000>;
+               cache-unified;
+               cache-level = <2>;
+       };
+
        gic: interrupt-controller@c4301000 {
                compatible = "arm,cortex-a9-gic";
                reg = <0xc4301000 0x1000>,
                        clocks = <&clk81>;
                        status = "disabled";
                };
+
+               i2c_AO: i2c@c8100500 {
+                       compatible = "amlogic,meson6-i2c";
+                       reg = <0xc8100500 0x20>;
+                       interrupts = <0 92 1>;
+                       clocks = <&clk81>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c_A: i2c@c1108500 {
+                       compatible = "amlogic,meson6-i2c";
+                       reg = <0xc1108500 0x20>;
+                       interrupts = <0 21 1>;
+                       clocks = <&clk81>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c_B: i2c@c11087c0 {
+                       compatible = "amlogic,meson6-i2c";
+                       reg = <0xc11087c0 0x20>;
+                       interrupts = <0 128 1>;
+                       clocks = <&clk81>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
        };
 }; /* end of / */
index dc2541faf1ecd218e33d34f9d2a1efa7e98a0778..d7d351a689447ea6449951200c632e19febf3b3b 100644 (file)
@@ -50,7 +50,7 @@
 
 / {
        model = "Geniatech ATV1200";
-       compatible = "geniatech,atv1200";
+       compatible = "geniatech,atv1200", "amlogic,meson6";
 
        aliases {
                serial0 = &uart_AO;
index 4ba49127779f04fe5147f0420560a74ebece70a2..8b33be15af943c81cad3dfd588077503da22c61f 100644 (file)
                cpu@200 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
+                       next-level-cache = <&L2>;
                        reg = <0x200>;
                };
 
                cpu@201 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
+                       next-level-cache = <&L2>;
                        reg = <0x201>;
                };
        };
diff --git a/arch/arm/boot/dts/meson8.dtsi b/arch/arm/boot/dts/meson8.dtsi
new file mode 100644 (file)
index 0000000..1f442a7
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ * Copyright 2014 Carlo Caione <carlo@caione.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 library 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 library is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ *     You should have received a copy of the GNU General Public License
+ *     along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * 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/ "meson.dtsi"
+
+/ {
+       model = "Amlogic Meson8 SoC";
+       compatible = "amlogic,meson8";
+
+       interrupt-parent = <&gic>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@200 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       next-level-cache = <&L2>;
+                       reg = <0x200>;
+               };
+
+               cpu@201 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       next-level-cache = <&L2>;
+                       reg = <0x201>;
+               };
+
+               cpu@202 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       next-level-cache = <&L2>;
+                       reg = <0x202>;
+               };
+
+               cpu@203 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       next-level-cache = <&L2>;
+                       reg = <0x203>;
+               };
+       };
+
+       clk81: clk@0 {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <141666666>;
+       };
+}; /* end of / */
diff --git a/arch/arm/boot/dts/mt6592-evb.dts b/arch/arm/boot/dts/mt6592-evb.dts
new file mode 100644 (file)
index 0000000..b57237e
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2014 MediaTek Inc.
+ * Author: Howard Chen <ibanezchen@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.
+ *
+ * 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 "mt6592.dtsi"
+
+/ {
+       model = "mt6592 evb";
+       compatible = "mediatek,mt6592-evb", "mediatek,mt6592";
+
+       memory {
+               reg = <0x80000000 0x40000000>;
+       };
+};
+
diff --git a/arch/arm/boot/dts/mt6592.dtsi b/arch/arm/boot/dts/mt6592.dtsi
new file mode 100644 (file)
index 0000000..31e5a09
--- /dev/null
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2014 MediaTek Inc.
+ * Author: Howard Chen <ibanezchen@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.
+ *
+ * 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,mt6592";
+       interrupt-parent = <&gic>;
+
+       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>;
+               };
+               cpu@4 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x4>;
+               };
+               cpu@5 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x5>;
+               };
+               cpu@6 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x6>;
+               };
+               cpu@7 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x7>;
+               };
+       };
+
+       system_clk: dummy13m {
+               compatible = "fixed-clock";
+               clock-frequency = <13000000>;
+               #clock-cells = <0>;
+       };
+
+       rtc_clk: dummy32k {
+               compatible = "fixed-clock";
+               clock-frequency = <32000>;
+               #clock-cells = <0>;
+       };
+
+       timer: timer@10008000 {
+               compatible = "mediatek,mt6577-timer";
+               reg = <0x10008000 0x80>;
+               interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&system_clk>, <&rtc_clk>;
+               clock-names = "system-clk", "rtc-clk";
+       };
+
+       gic: interrupt-controller@10211000 {
+               compatible = "arm,cortex-a7-gic";
+               interrupt-controller;
+               #interrupt-cells = <3>;
+               reg = <0x10211000 0x1000>,
+                     <0x10212000 0x1000>;
+       };
+
+};
+
diff --git a/arch/arm/boot/dts/mt8127-moose.dts b/arch/arm/boot/dts/mt8127-moose.dts
new file mode 100644 (file)
index 0000000..13cba0e
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2014 MediaTek Inc.
+ * Author: Joe.C <yingjoe.chen@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 "mt8127.dtsi"
+
+/ {
+       model = "MediaTek MT8127 Moose Board";
+       compatible = "mediatek,mt8127-moose", "mediatek,mt8127";
+
+       memory {
+               reg = <0 0x80000000 0 0x40000000>;
+       };
+};
diff --git a/arch/arm/boot/dts/mt8127.dtsi b/arch/arm/boot/dts/mt8127.dtsi
new file mode 100644 (file)
index 0000000..b24c0a2
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2014 MediaTek Inc.
+ * Author: Joe.C <yingjoe.chen@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 "skeleton64.dtsi"
+
+/ {
+       compatible = "mediatek,mt8127";
+       interrupt-parent = <&gic>;
+
+       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>;
+               };
+
+       };
+
+       clocks {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               compatible = "simple-bus";
+               ranges;
+
+               system_clk: dummy13m {
+                       compatible = "fixed-clock";
+                       clock-frequency = <13000000>;
+                       #clock-cells = <0>;
+               };
+
+               rtc_clk: dummy32k {
+                       compatible = "fixed-clock";
+                       clock-frequency = <32000>;
+                       #clock-cells = <0>;
+               };
+       };
+
+       soc {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               compatible = "simple-bus";
+               ranges;
+
+               timer: timer@10008000 {
+                       compatible = "mediatek,mt8127-timer",
+                                       "mediatek,mt6577-timer";
+                       reg = <0 0x10008000 0 0x80>;
+                       interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&system_clk>, <&rtc_clk>;
+                       clock-names = "system-clk", "rtc-clk";
+               };
+
+               gic: interrupt-controller@10211000 {
+                       compatible = "arm,cortex-a7-gic";
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+                       reg = <0 0x10211000 0 0x1000>,
+                             <0 0x10212000 0 0x1000>,
+                             <0 0x10214000 0 0x2000>,
+                             <0 0x10216000 0 0x2000>;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/mt8135-evbp1.dts b/arch/arm/boot/dts/mt8135-evbp1.dts
new file mode 100644 (file)
index 0000000..a5adf97
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2014 MediaTek Inc.
+ * Author: Joe.C <yingjoe.chen@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 "mt8135.dtsi"
+
+/ {
+       model = "MediaTek MT8135 evaluation board";
+       compatible = "mediatek,mt8135-evbp1", "mediatek,mt8135";
+
+       memory {
+               reg = <0 0x80000000 0 0x40000000>;
+       };
+};
diff --git a/arch/arm/boot/dts/mt8135.dtsi b/arch/arm/boot/dts/mt8135.dtsi
new file mode 100644 (file)
index 0000000..7d56a98
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2014 MediaTek Inc.
+ * Author: Joe.C <yingjoe.chen@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 "skeleton64.dtsi"
+
+/ {
+       compatible = "mediatek,mt8135";
+       interrupt-parent = <&gic>;
+
+       cpu-map {
+               cluster0 {
+                       core0 {
+                               cpu = <&cpu0>;
+                       };
+                       core1 {
+                               cpu = <&cpu1>;
+                       };
+               };
+
+               cluster1 {
+                       core0 {
+                               cpu = <&cpu2>;
+                       };
+                       core1 {
+                               cpu = <&cpu3>;
+                       };
+               };
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x000>;
+               };
+
+               cpu1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x001>;
+               };
+
+               cpu2: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a15";
+                       reg = <0x100>;
+               };
+
+               cpu3: cpu@101 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a15";
+                       reg = <0x101>;
+               };
+       };
+
+       clocks {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               compatible = "simple-bus";
+               ranges;
+
+               system_clk: dummy13m {
+                       compatible = "fixed-clock";
+                       clock-frequency = <13000000>;
+                       #clock-cells = <0>;
+               };
+
+               rtc_clk: dummy32k {
+                       compatible = "fixed-clock";
+                       clock-frequency = <32000>;
+                       #clock-cells = <0>;
+               };
+       };
+
+       soc {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               compatible = "simple-bus";
+               ranges;
+
+               timer: timer@10008000 {
+                       compatible = "mediatek,mt8135-timer",
+                                       "mediatek,mt6577-timer";
+                       reg = <0 0x10008000 0 0x80>;
+                       interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&system_clk>, <&rtc_clk>;
+                       clock-names = "system-clk", "rtc-clk";
+               };
+
+               gic: interrupt-controller@10211000 {
+                       compatible = "arm,cortex-a15-gic";
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+                       reg = <0 0x10211000 0 0x1000>,
+                             <0 0x10212000 0 0x1000>,
+                             <0 0x10214000 0 0x2000>,
+                             <0 0x10216000 0 0x2000>;
+               };
+       };
+};
index 521c587acaee9f679ab6f9200c5f8be8eee240e9..445fafc732543a15bc50b0a39a362b63ebc325ab 100644 (file)
        ethernet@gpmc {
                compatible = "smsc,lan9221", "smsc,lan9115";
                bank-width = <2>;
-               gpmc,mux-add-data;
-               gpmc,cs-on-ns = <1>;
-               gpmc,cs-rd-off-ns = <180>;
-               gpmc,cs-wr-off-ns = <180>;
-               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,cycle2cycle-samecsen;
-               gpmc,cycle2cycle-diffcsen;
+               gpmc,device-width = <1>;
+               gpmc,cycle2cycle-samecsen = <1>;
+               gpmc,cycle2cycle-diffcsen = <1>;
+               gpmc,cs-on-ns = <5>;
+               gpmc,cs-rd-off-ns = <150>;
+               gpmc,cs-wr-off-ns = <150>;
+               gpmc,adv-on-ns = <0>;
+               gpmc,adv-rd-off-ns = <15>;
+               gpmc,adv-wr-off-ns = <40>;
+               gpmc,oe-on-ns = <45>;
+               gpmc,oe-off-ns = <140>;
+               gpmc,we-on-ns = <45>;
+               gpmc,we-off-ns = <140>;
+               gpmc,rd-cycle-ns = <155>;
+               gpmc,wr-cycle-ns = <155>;
+               gpmc,access-ns = <120>;
+               gpmc,page-burst-access-ns = <20>;
+               gpmc,bus-turnaround-ns = <75>;
+               gpmc,cycle2cycle-delay-ns = <75>;
+               gpmc,wait-monitoring-ns = <0>;
+               gpmc,clk-activation-ns = <0>;
+               gpmc,wr-data-mux-bus-ns = <0>;
+               gpmc,wr-access-ns = <0>;
                vddvario-supply = <&vddvario>;
                vdd33a-supply = <&vdd33a>;
                reg-io-width = <4>;
index 68221fab978d40a2e92c5b089e0e4fd1494e39e4..46ef3e443861982ee840bf1091079ae7bd227ccd 100644 (file)
@@ -5,7 +5,7 @@
 #include "omap-gpmc-smsc911x.dtsi"
 
 &gpmc {
-       ranges = <3 0 0x10000000 0x00000400>,
+       ranges = <3 0 0x10000000 0x1000000>,    /* CS3: 16MB for UART */
                 <7 0 0x2c000000 0x01000000>;
 
        /*
         */
        uart@3,0 {
                compatible = "ns16550a";
-               reg = <3 0 0x100>;
+               reg = <3 0 8>;  /* CS3, offset 0, IO size 8 */
+               bank-width = <2>;
+               reg-shift = <1>;
+               reg-io-width = <1>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <6 IRQ_TYPE_EDGE_RISING>;  /* gpio102 */
+               clock-frequency = <1843200>;
+               current-speed = <115200>;
+               gpmc,mux-add-data = <0>;
+               gpmc,device-width = <1>;
+               gpmc,wait-pin = <1>;
+               gpmc,cycle2cycle-samecsen = <1>;
+               gpmc,cycle2cycle-diffcsen = <1>;
+               gpmc,cs-on-ns = <5>;
+               gpmc,cs-rd-off-ns = <155>;
+               gpmc,cs-wr-off-ns = <155>;
+               gpmc,adv-on-ns = <15>;
+               gpmc,adv-rd-off-ns = <40>;
+               gpmc,adv-wr-off-ns = <40>;
+               gpmc,oe-on-ns = <45>;
+               gpmc,oe-off-ns = <145>;
+               gpmc,we-on-ns = <45>;
+               gpmc,we-off-ns = <145>;
+               gpmc,rd-cycle-ns = <155>;
+               gpmc,wr-cycle-ns = <155>;
+               gpmc,access-ns = <145>;
+               gpmc,page-burst-access-ns = <20>;
+               gpmc,bus-turnaround-ns = <20>;
+               gpmc,cycle2cycle-delay-ns = <20>;
+               gpmc,wait-monitoring-ns = <0>;
+               gpmc,clk-activation-ns = <0>;
+               gpmc,wr-data-mux-bus-ns = <45>;
+               gpmc,wr-access-ns = <145>;
+       };
+       uart@3,1 {
+               compatible = "ns16550a";
+               reg = <3 0x100 8>;      /* CS3, offset 0x100, IO size 8 */
+               bank-width = <2>;
+               reg-shift = <1>;
+               reg-io-width = <1>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <6 IRQ_TYPE_EDGE_RISING>;  /* gpio102 */
+               clock-frequency = <1843200>;
+               current-speed = <115200>;
+       };
+       uart@3,2 {
+               compatible = "ns16550a";
+               reg = <3 0x200 8>;      /* CS3, offset 0x200, IO size 8 */
+               bank-width = <2>;
+               reg-shift = <1>;
+               reg-io-width = <1>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <6 IRQ_TYPE_EDGE_RISING>;  /* gpio102 */
+               clock-frequency = <1843200>;
+               current-speed = <115200>;
+       };
+       uart@3,3 {
+               compatible = "ns16550a";
+               reg = <3 0x300 8>;      /* CS3, offset 0x300, IO size 8 */
                bank-width = <2>;
                reg-shift = <1>;
                reg-io-width = <1>;
index 24c50db2a478cf2a7e55865af10577db6fc5f14d..c9f1e93a95aec34e86f6ee5bfa1cd78ae04792d0 100644 (file)
 };
 
 &gpmc {
-       ranges = <0 0 0x04000000 0x10000000>;
+       ranges = <0 0 0x04000000 0x1000000>;    /* CS0: 16MB for OneNAND */
 
        /* gpio-irq for dma: 26 */
 
        onenand@0,0 {
                #address-cells = <1>;
                #size-cells = <1>;
-               reg = <0 0 0x10000000>;
+               reg = <0 0 0x20000>;    /* CS0, offset 0, IO size 128K */
 
                gpmc,sync-read;
                gpmc,burst-length = <16>;
index ae89aad01595890511f241c5dd932505e24fa78e..e2b2e93d7b6160f364bcb4832cc593c09f9627ac 100644 (file)
                        interrupts = <26>, <34>;
                        interrupt-names = "dsp", "iva";
                        ti,hwmods = "mailbox";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <4>;
                        ti,mbox-num-fifos = <6>;
                        mbox_dsp: dsp {
index 2c90d29b4cad7f166a7961bd882b59e19ff1cc64..05eca2e4430f1032b92caa0bd0651094e552a9f3 100644 (file)
                interrupts = <21 IRQ_TYPE_LEVEL_LOW>;   /* gpio149 */
                reg = <5 0x300 0xf>;
                bank-width = <2>;
-               gpmc,mux-add-data;
-        };
+               gpmc,sync-clk-ps = <0>;
+               gpmc,mux-add-data = <2>;
+               gpmc,device-width = <1>;
+               gpmc,cycle2cycle-samecsen = <1>;
+               gpmc,cycle2cycle-diffcsen = <1>;
+               gpmc,cs-on-ns = <7>;
+               gpmc,cs-rd-off-ns = <233>;
+               gpmc,cs-wr-off-ns = <233>;
+               gpmc,adv-on-ns = <22>;
+               gpmc,adv-rd-off-ns = <60>;
+               gpmc,adv-wr-off-ns = <60>;
+               gpmc,oe-on-ns = <67>;
+               gpmc,oe-off-ns = <210>;
+               gpmc,we-on-ns = <67>;
+               gpmc,we-off-ns = <210>;
+               gpmc,rd-cycle-ns = <233>;
+               gpmc,wr-cycle-ns = <233>;
+               gpmc,access-ns = <233>;
+               gpmc,page-burst-access-ns = <30>;
+               gpmc,bus-turnaround-ns = <30>;
+               gpmc,cycle2cycle-delay-ns = <30>;
+               gpmc,wait-monitoring-ns = <0>;
+               gpmc,clk-activation-ns = <0>;
+               gpmc,wr-data-mux-bus-ns = <0>;
+               gpmc,wr-access-ns = <0>;
+       };
 };
 
index b56d71611026571d5486badcadce45749b97a1a9..0dc8de2782b1871772150b3a62ab7a92685da56a 100644 (file)
                        reg = <0x48094000 0x200>;
                        interrupts = <26>;
                        ti,hwmods = "mailbox";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <4>;
                        ti,mbox-num-fifos = <6>;
                        mbox_dsp: dsp {
index d00502f4fd9b1562a88b5e7626fdebb10319bb0f..0ab748cf7749f18d90ad225a5d0aabac564fc53f 100644 (file)
        bus-width = <4>;
        cap-power-off-card;
 };
+
+&dss {
+       status = "ok";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <
+               &dss_dpi_pins_common
+               &dss_dpi_pins_cm_t35x
+       >;
+};
+
index d1458496520e7ec49ec278cde6d1ff32cbcc7008..8dd14fcf68258db40e852e089dfff47e7045e697 100644 (file)
        bus-width = <4>;
        cap-power-off-card;
 };
+
+&dss {
+       status = "ok";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <
+               &dss_dpi_pins_common
+               &dss_dpi_pins_cm_t35x
+       >;
+};
+
index b3f9a50b3bc8339d269307001f6cd7563205b79f..46eadb21b5ef5e97882e581f6e29f33bda2cd209 100644 (file)
        };
 };
 
+&omap3_pmx_wkup {
+       dss_dpi_pins_cm_t3730: pinmux_dss_dpi_pins_cm_t3730 {
+               pinctrl-single,pins = <
+                       OMAP3_WKUP_IOPAD(0x2a08, PIN_OUTPUT | MUX_MODE3)   /* sys_boot0.dss_data18 */
+                       OMAP3_WKUP_IOPAD(0x2a0c, PIN_OUTPUT | MUX_MODE3)   /* sys_boot1.dss_data19 */
+                       OMAP3_WKUP_IOPAD(0x2a10, PIN_OUTPUT | MUX_MODE3)   /* sys_boot3.dss_data20 */
+                       OMAP3_WKUP_IOPAD(0x2a12, PIN_OUTPUT | MUX_MODE3)   /* sys_boot4.dss_data21 */
+                       OMAP3_WKUP_IOPAD(0x2a14, PIN_OUTPUT | MUX_MODE3)   /* sys_boot5.dss_data22 */
+                       OMAP3_WKUP_IOPAD(0x2a16, PIN_OUTPUT | MUX_MODE3)   /* sys_boot6.dss_data23 */
+               >;
+       };
+};
+
 &omap3_pmx_core {
 
        mmc2_pins: pinmux_mmc2_pins {
        bus-width = <4>;
        cap-power-off-card;
 };
+
+&dss {
+       status = "ok";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <
+               &dss_dpi_pins_common
+               &dss_dpi_pins_cm_t3730
+       >;
+};
+
index c671a2299ea8efa64b21a1f31bbdcf7903a642d0..6ea6d460db3090de2e891828bc8366933e003a56 100644 (file)
                compatible = "usb-nop-xceiv";
                vcc-supply = <&hsusb2_power>;
        };
+
+       ads7846reg: ads7846-reg {
+               compatible = "regulator-fixed";
+               regulator-name = "ads7846-reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       tv0: connector@1 {
+               compatible = "svideo-connector";
+               label = "tv";
+
+               port {
+                       tv_connector_in: endpoint {
+                               remote-endpoint = <&venc_out>;
+                       };
+               };
+       };
 };
 
 &omap3_pmx_core {
                        OMAP3_CORE1_IOPAD(0x21e2, PIN_OUTPUT | MUX_MODE4)       /* sys_clkout2.gpio_186 */
                >;
        };
+
+       dss_dpi_pins_common: pinmux_dss_dpi_pins_common {
+               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(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 */
+               >;
+       };
+
+       dss_dpi_pins_cm_t35x: pinmux_dss_dpi_pins_cm_t35x {
+               pinctrl-single,pins = <
+                       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 */
+               >;
+       };
+
+       ads7846_pins: pinmux_ads7846_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x20ba, PIN_INPUT_PULLUP | MUX_MODE4) /* gpmc_ncs6.gpio_57 */
+               >;
+       };
+
+       mcspi1_pins: pinmux_mcspi1_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x21c8, PIN_INPUT | MUX_MODE0)        /* mcspi1_clk */
+                       OMAP3_CORE1_IOPAD(0x21ca, PIN_INPUT | MUX_MODE0)        /* mcspi1_simo */
+                       OMAP3_CORE1_IOPAD(0x21cc, PIN_INPUT | MUX_MODE0)        /* mcspi1_somi */
+                       OMAP3_CORE1_IOPAD(0x21ce, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcspi1_cs0 */
+               >;
+       };
+
+       i2c1_pins: pinmux_i2c1_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */
+                       OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */
+               >;
+       };
+
+       mcbsp2_pins: pinmux_mcbsp2_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x213c, PIN_INPUT | MUX_MODE0)        /* mcbsp2_fsx */
+                       OMAP3_CORE1_IOPAD(0x213e, PIN_INPUT | MUX_MODE0)        /* mcbsp2_clkx */
+                       OMAP3_CORE1_IOPAD(0x2140, PIN_INPUT | MUX_MODE0)        /* mcbsp2_dr */
+                       OMAP3_CORE1_IOPAD(0x2142, PIN_OUTPUT | MUX_MODE0)       /* mcbsp2_dx */
+               >;
+       };
 };
 
 &uart3 {
 };
 
 &i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+
        clock-frequency = <400000>;
+
+       at24@50 {
+               compatible = "at24,24c02";
+               pagesize = <16>;
+               reg = <0x50>;
+       };
 };
 
 &i2c3 {
        clock-frequency = <400000>;
 };
+
 &usbhshost {
        port1-mode = "ehci-phy";
        port2-mode = "ehci-phy";
 &usbhsehci {
        phys = <&hsusb1_phy &hsusb2_phy>;
 };
+
+&mcspi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcspi1_pins>;
+
+       /* touch controller */
+       ads7846@0 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&ads7846_pins>;
+
+               compatible = "ti,ads7846";
+               vcc-supply = <&ads7846reg>;
+
+               reg = <0>;                      /* CS0 */
+               spi-max-frequency = <1500000>;
+
+               interrupt-parent = <&gpio2>;
+               interrupts = <25 0>;            /* gpio_57 */
+               pendown-gpio = <&gpio2 25 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 <30>;
+               ti,debounce-tol = /bits/ 16 <10>;
+               ti,debounce-rep = /bits/ 16 <1>;
+
+               linux,wakeup;
+       };
+};
+
+&venc {
+       status = "ok";
+
+       port {
+               venc_out: endpoint {
+                       remote-endpoint = <&tv_connector_in>;
+                       ti,channels = <2>;
+               };
+       };
+};
+
+&mcbsp2 {
+       status = "ok";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcbsp2_pins>;
+};
index 25ba08331d8852e6701c96a4b9e8e54def19f0d8..9a4a3ab9af78707a03097832a34ff5722ab2c794 100644 (file)
                        cpu0-supply = <&vcc>;
                };
        };
+
+       sound {
+               compatible = "ti,omap-twl4030";
+               ti,model = "cm-t35";
+
+               ti,mcbsp = <&mcbsp2>;
+               ti,codec = <&twl_audio>;
+       };
 };
 
 &omap3_pmx_core {
                reg = <0x48>;
                interrupts = <7>; /* SYS_NIRQ cascaded to intc */
                interrupt-parent = <&intc>;
+
+               twl_audio: audio {
+                       compatible = "ti,twl4030-audio";
+                       codec {
+                       };
+               };
        };
 };
 
 #include "twl4030.dtsi"
 #include "twl4030_omap3.dtsi"
+#include <dt-bindings/input/input.h>
+
+&venc {
+       vdda-supply = <&vdac>;
+};
 
 &mmc1 {
        vmmc-supply = <&vmmc1>;
        ti,pullups = <0x000001>;
 };
 
+&twl_keypad {
+       linux,keymap = <
+                               MATRIX_KEY(0x00, 0x01, KEY_A)
+                               MATRIX_KEY(0x00, 0x02, KEY_B)
+                               MATRIX_KEY(0x00, 0x03, KEY_LEFT)
+
+                               MATRIX_KEY(0x01, 0x01, KEY_UP)
+                               MATRIX_KEY(0x01, 0x02, KEY_ENTER)
+                               MATRIX_KEY(0x01, 0x03, KEY_DOWN)
+
+                               MATRIX_KEY(0x02, 0x01, KEY_RIGHT)
+                               MATRIX_KEY(0x02, 0x02, KEY_C)
+                               MATRIX_KEY(0x02, 0x03, KEY_D)
+                       >;
+};
+
 &hsusb1_phy {
        reset-gpios = <&twl_gpio 6 GPIO_ACTIVE_LOW>;
 };
index da402f0fdab4861bf9b775b247cabaac192f8777..169037e5ff53cd83da50cfb16e70edfcc2c7d6ed 100644 (file)
 };
 
 &gpmc {
-       ranges = <0 0 0x30000000 0x04>;       /* CS0: NAND */
+       ranges = <0 0 0x30000000 0x1000000>;       /* CS0: 16MB for NAND */
 
        nand@0,0 {
-               reg = <0 0 0>; /* CS0, offset 0 */
+               reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
                nand-bus-width = <16>;
 
                gpmc,sync-clk-ps = <0>;
index a8bd4349c7d2b6a9445208ce403ff303b783d4a0..16e8ce350ddaae4f4bedc3d86f9d0418e4852f87 100644 (file)
 };
 
 &gpmc {
-       ranges = <0 0 0x00000000 0x20000000>,
+       ranges = <0 0 0x00000000 0x1000000>,    /* CS0: 16MB for NAND */
                 <5 0 0x2c000000 0x01000000>;
 
        nand@0,0 {
                linux,mtd-name= "hynix,h8kds0un0mer-4em";
-               reg = <0 0 0>;
+               reg = <0 0 4>;  /* CS0, offset 0, IO size 4 */
                nand-bus-width = <16>;
+               gpmc,device-width = <2>;
                ti,nand-ecc-opt = "bch8";
 
                gpmc,sync-clk-ps = <0>;
index fd34f913ace311edd8624692154366eb79504062..655d6e920a863a9436dd9814d88be0e37d9b3cfa 100644 (file)
 
        uart1_pins: pinmux_uart1_pins {
                pinctrl-single,pins = <
-                       0x152 (PIN_INPUT | MUX_MODE0)           /* uart1_rx.uart1_rx */
-                       0x14c (PIN_OUTPUT |MUX_MODE0)           /* uart1_tx.uart1_tx */
+                       OMAP3_CORE1_IOPAD(0x2182, PIN_INPUT | MUX_MODE0)                /* uart1_rx.uart1_rx */
+                       OMAP3_CORE1_IOPAD(0x217c, PIN_OUTPUT | MUX_MODE0)               /* uart1_tx.uart1_tx */
                >;
        };
 
        uart2_pins: pinmux_uart2_pins {
                pinctrl-single,pins = <
-                       0x14a (PIN_INPUT | MUX_MODE0)           /* uart2_rx.uart2_rx */
-                       0x148 (PIN_OUTPUT | MUX_MODE0)          /* uart2_tx.uart2_tx */
+                       OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0)                /* uart2_rx.uart2_rx */
+                       OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0)               /* uart2_tx.uart2_tx */
                >;
        };
 
        uart3_pins: pinmux_uart3_pins {
                pinctrl-single,pins = <
-                       0x16e (PIN_INPUT | MUX_MODE0)           /* uart3_rx.uart3_rx */
-                       0x170 (PIN_OUTPUT | MUX_MODE0)          /* uart3_tx.uart3_tx */
+                       OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0)                /* uart3_rx.uart3_rx */
+                       OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0)               /* uart3_tx.uart3_tx */
                >;
        };
 
        mmc1_pins: pinmux_mmc1_pins {
                pinctrl-single,pins = <
-                       0x114 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_clk.sdmmc1_clk */
-                       0x116 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_cmd.sdmmc1_cmd */
-                       0x118 (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_dat0.sdmmc1_dat0 */
-                       0x11a (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_dat1.sdmmc1_dat1 */
-                       0x11c (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_dat2.sdmmc1_dat2 */
-                       0x11e (PIN_INPUT_PULLUP | MUX_MODE0)    /* sdmmc1_dat3.sdmmc1_dat3 */
+                       OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_clk.sdmmc1_clk */
+                       OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_cmd.sdmmc1_cmd */
+                       OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_dat0.sdmmc1_dat0 */
+                       OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_dat1.sdmmc1_dat1 */
+                       OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_dat2.sdmmc1_dat2 */
+                       OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_dat3.sdmmc1_dat3 */
                >;
        };
 
        dss_dpi_pins: pinmux_dss_dpi_pins {
                pinctrl-single,pins = <
-                       0x0a4 (PIN_OUTPUT | MUX_MODE0)   /* dss_pclk.dss_pclk */
-                       0x0a6 (PIN_OUTPUT | MUX_MODE0)   /* dss_hsync.dss_hsync */
-                       0x0a8 (PIN_OUTPUT | MUX_MODE0)   /* dss_vsync.dss_vsync */
-                       0x0aa (PIN_OUTPUT | MUX_MODE0)   /* dss_acbias.dss_acbias */
-                       0x0ac (PIN_OUTPUT | MUX_MODE0)   /* dss_data0.dss_data0 */
-                       0x0ae (PIN_OUTPUT | MUX_MODE0)   /* dss_data1.dss_data1 */
-                       0x0b0 (PIN_OUTPUT | MUX_MODE0)   /* dss_data2.dss_data2 */
-                       0x0b2 (PIN_OUTPUT | MUX_MODE0)   /* dss_data3.dss_data3 */
-                       0x0b4 (PIN_OUTPUT | MUX_MODE0)   /* dss_data4.dss_data4 */
-                       0x0b6 (PIN_OUTPUT | MUX_MODE0)   /* dss_data5.dss_data5 */
-                       0x0b8 (PIN_OUTPUT | MUX_MODE0)   /* dss_data6.dss_data6 */
-                       0x0ba (PIN_OUTPUT | MUX_MODE0)   /* dss_data7.dss_data7 */
-                       0x0bc (PIN_OUTPUT | MUX_MODE0)   /* dss_data8.dss_data8 */
-                       0x0be (PIN_OUTPUT | MUX_MODE0)   /* dss_data9.dss_data9 */
-                       0x0c0 (PIN_OUTPUT | MUX_MODE0)   /* dss_data10.dss_data10 */
-                       0x0c2 (PIN_OUTPUT | MUX_MODE0)   /* dss_data11.dss_data11 */
-                       0x0c4 (PIN_OUTPUT | MUX_MODE0)   /* dss_data12.dss_data12 */
-                       0x0c6 (PIN_OUTPUT | MUX_MODE0)   /* dss_data13.dss_data13 */
-                       0x0c8 (PIN_OUTPUT | MUX_MODE0)   /* dss_data14.dss_data14 */
-                       0x0ca (PIN_OUTPUT | MUX_MODE0)   /* dss_data15.dss_data15 */
-                       0x0cc (PIN_OUTPUT | MUX_MODE0)   /* dss_data16.dss_data16 */
-                       0x0ce (PIN_OUTPUT | MUX_MODE0)   /* dss_data17.dss_data17 */
-                       0x0d0 (PIN_OUTPUT | MUX_MODE0)   /* dss_data18.dss_data18 */
-                       0x0d2 (PIN_OUTPUT | MUX_MODE0)   /* dss_data19.dss_data19 */
-                       0x0d4 (PIN_OUTPUT | MUX_MODE0)   /* dss_data20.dss_data20 */
-                       0x0d6 (PIN_OUTPUT | MUX_MODE0)   /* dss_data21.dss_data21 */
-                       0x0d8 (PIN_OUTPUT | MUX_MODE0)   /* dss_data22.dss_data22 */
-                       0x0da (PIN_OUTPUT | MUX_MODE0)   /* dss_data23.dss_data23 */
-               >;
+                       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 */
+               >;
        };
 };
 
 };
 
 &gpmc {
-       ranges = <0 0 0x30000000 0x04>; /* CS0: NAND */
+       ranges = <0 0 0x30000000 0x1000000>; /* CS0: 16MB for NAND */
 
        nand@0,0 {
-               reg = <0 0 0>; /* CS0, offset 0 */
+               reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
                nand-bus-width = <16>;
                ti,nand-ecc-opt = "bch8";
 
index e2d163bf061975bff9ac5a6e83ecf6bf4ef98ed3..8a63ad2286aa26eaadf6162a12a98e24437acf28 100644 (file)
                regulator-always-on;
        };
 
-       lbee1usjyc_vmmc: lbee1usjyc_vmmc {
-               pinctrl-names = "default";
-               pinctrl-0 = <&lbee1usjyc_pins>;
-               compatible = "regulator-fixed";
-               regulator-name = "regulator-lbee1usjyc";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               gpio = <&gpio5 10 GPIO_ACTIVE_HIGH>;    /* gpio_138 WIFI_PDN */
-               startup-delay-us = <10000>;
-               enable-active-high;
-               vin-supply = <&vdd33>;
-       };
 };
 
 &omap3_pmx_core {
                >;
        };
 
-       uart2_pins: pinmux_uart2_pins {
-               pinctrl-single,pins = <
-                       0x14a (PIN_INPUT | MUX_MODE0)           /* uart2_rx.uart2_rx */
-                       0x148 (PIN_OUTPUT | MUX_MODE0)          /* uart2_tx.uart2_tx */
-               >;
-       };
-
        uart3_pins: pinmux_uart3_pins {
                pinctrl-single,pins = <
                        0x16e (PIN_INPUT | MUX_MODE0)           /* uart3_rx.uart3_rx */
                >;
        };
 
-       /* WiFi/BT combo */
-       lbee1usjyc_pins: pinmux_lbee1usjyc_pins {
-               pinctrl-single,pins = <
-                       0x136 (PIN_OUTPUT | MUX_MODE4)  /* sdmmc2_dat5.gpio_137 */
-                       0x138 (PIN_OUTPUT | MUX_MODE4)  /* sdmmc2_dat6.gpio_138 */
-                       0x13a (PIN_OUTPUT | MUX_MODE4)  /* sdmmc2_dat7.gpio_139 */
-               >;
-       };
-
        mcbsp2_pins: pinmux_mcbsp2_pins {
                pinctrl-single,pins = <
                        0x10c (PIN_INPUT | MUX_MODE0)           /* mcbsp2_fsx.mcbsp2_fsx */
                >;
        };
 
-       i2c2_pins: pinmux_i2c2_pins {
-               pinctrl-single,pins = <
-                       0x18e (PIN_INPUT | MUX_MODE0)   /* i2c2_scl.i2c2_scl */
-                       0x190 (PIN_INPUT | MUX_MODE0)   /* i2c2_sda.i2c2_sda */
-               >;
-       };
-
        i2c3_pins: pinmux_i2c3_pins {
                pinctrl-single,pins = <
                        0x192 (PIN_INPUT | MUX_MODE0)   /* i2c3_scl.i2c3_scl */
        };
 };
 
+&gpmc {
+       nand@0,0 {
+               linux,mtd-name= "micron,mt29c4g96maz";
+               reg = <0 0 4>;  /* CS0, offset 0, IO size 4 */
+               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 0x100000>;
+               };
+               partition@80000 {
+                       label = "U-Boot";
+                       reg = <0x100000 0x180000>;
+               };
+               partition@1c0000 {
+                       label = "Environment";
+                       reg = <0x280000 0x100000>;
+               };
+               partition@280000 {
+                       label = "Kernel";
+                       reg = <0x380000 0x300000>;
+               };
+               partition@780000 {
+                       label = "Filesystem";
+                       reg = <0x680000 0x1f980000>;
+               };
+       };
+};
+
 &i2c1 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c1_pins>;
 #include "twl4030.dtsi"
 #include "twl4030_omap3.dtsi"
 
-&i2c2 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c2_pins>;
-       clock-frequency = <400000>;
-};
-
 &i2c3 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c3_pins>;
       bus-width = <4>;
 };
 
-&mmc2 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&mmc2_pins>;
-       vmmc-supply = <&lbee1usjyc_vmmc>;
-       bus-width = <4>;
-       non-removable;
-};
-
 &mmc3 {
        status = "disabled";
 };
        pinctrl-0 = <&uart1_pins>;
 };
 
-&uart2 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&uart2_pins>;
-};
-
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart3_pins>;
diff --git a/arch/arm/boot/dts/omap3-igep0020-common.dtsi b/arch/arm/boot/dts/omap3-igep0020-common.dtsi
new file mode 100644 (file)
index 0000000..e458c21
--- /dev/null
@@ -0,0 +1,246 @@
+/*
+ * Common Device Tree Source for IGEPv2
+ *
+ * Copyright (C) 2014 Javier Martinez Canillas <javier@collabora.co.uk>
+ * Copyright (C) 2014 Enric Balletbo i Serra <eballetbo@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "omap3-igep.dtsi"
+#include "omap-gpmc-smsc9221.dtsi"
+
+/ {
+
+       leds {
+               pinctrl-names = "default";
+               pinctrl-0 = <&leds_pins>;
+               compatible = "gpio-leds";
+
+               boot {
+                        label = "omap3:green:boot";
+                        gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
+                        default-state = "on";
+               };
+
+               user0 {
+                        label = "omap3:red:user0";
+                        gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
+                        default-state = "off";
+               };
+
+               user1 {
+                        label = "omap3:red:user1";
+                        gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
+                        default-state = "off";
+               };
+
+               user2 {
+                       label = "omap3:green:user1";
+                       gpios = <&twl_gpio 19 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       /* HS USB Port 1 Power */
+       hsusb1_power: hsusb1_power_reg {
+               compatible = "regulator-fixed";
+               regulator-name = "hsusb1_vbus";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&twl_gpio 18 GPIO_ACTIVE_LOW>;  /* GPIO LEDA */
+               startup-delay-us = <70000>;
+       };
+
+       /* HS USB Host PHY on PORT 1 */
+       hsusb1_phy: hsusb1_phy {
+               compatible = "usb-nop-xceiv";
+               reset-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>; /* gpio_24 */
+               vcc-supply = <&hsusb1_power>;
+       };
+
+       tfp410: encoder@0 {
+               compatible = "ti,tfp410";
+               powerdown-gpios = <&gpio6 10 GPIO_ACTIVE_LOW>; /* gpio_170 */
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               tfp410_in: endpoint@0 {
+                                       remote-endpoint = <&dpi_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 = <&i2c3>;
+
+               port {
+                       dvi_connector_in: endpoint {
+                               remote-endpoint = <&tfp410_out>;
+                       };
+               };
+       };
+};
+
+&omap3_pmx_core {
+       pinctrl-names = "default";
+       pinctrl-0 = <
+               &tfp410_pins
+               &dss_dpi_pins
+       >;
+
+       tfp410_pins: pinmux_tfp410_pins {
+               pinctrl-single,pins = <
+                       0x196 (PIN_OUTPUT | MUX_MODE4)   /* hdq_sio.gpio_170 */
+               >;
+       };
+
+       dss_dpi_pins: pinmux_dss_dpi_pins {
+               pinctrl-single,pins = <
+                       0x0a4 (PIN_OUTPUT | MUX_MODE0)   /* dss_pclk.dss_pclk */
+                       0x0a6 (PIN_OUTPUT | MUX_MODE0)   /* dss_hsync.dss_hsync */
+                       0x0a8 (PIN_OUTPUT | MUX_MODE0)   /* dss_vsync.dss_vsync */
+                       0x0aa (PIN_OUTPUT | MUX_MODE0)   /* dss_acbias.dss_acbias */
+                       0x0ac (PIN_OUTPUT | MUX_MODE0)   /* dss_data0.dss_data0 */
+                       0x0ae (PIN_OUTPUT | MUX_MODE0)   /* dss_data1.dss_data1 */
+                       0x0b0 (PIN_OUTPUT | MUX_MODE0)   /* dss_data2.dss_data2 */
+                       0x0b2 (PIN_OUTPUT | MUX_MODE0)   /* dss_data3.dss_data3 */
+                       0x0b4 (PIN_OUTPUT | MUX_MODE0)   /* dss_data4.dss_data4 */
+                       0x0b6 (PIN_OUTPUT | MUX_MODE0)   /* dss_data5.dss_data5 */
+                       0x0b8 (PIN_OUTPUT | MUX_MODE0)   /* dss_data6.dss_data6 */
+                       0x0ba (PIN_OUTPUT | MUX_MODE0)   /* dss_data7.dss_data7 */
+                       0x0bc (PIN_OUTPUT | MUX_MODE0)   /* dss_data8.dss_data8 */
+                       0x0be (PIN_OUTPUT | MUX_MODE0)   /* dss_data9.dss_data9 */
+                       0x0c0 (PIN_OUTPUT | MUX_MODE0)   /* dss_data10.dss_data10 */
+                       0x0c2 (PIN_OUTPUT | MUX_MODE0)   /* dss_data11.dss_data11 */
+                       0x0c4 (PIN_OUTPUT | MUX_MODE0)   /* dss_data12.dss_data12 */
+                       0x0c6 (PIN_OUTPUT | MUX_MODE0)   /* dss_data13.dss_data13 */
+                       0x0c8 (PIN_OUTPUT | MUX_MODE0)   /* dss_data14.dss_data14 */
+                       0x0ca (PIN_OUTPUT | MUX_MODE0)   /* dss_data15.dss_data15 */
+                       0x0cc (PIN_OUTPUT | MUX_MODE0)   /* dss_data16.dss_data16 */
+                       0x0ce (PIN_OUTPUT | MUX_MODE0)   /* dss_data17.dss_data17 */
+                       0x0d0 (PIN_OUTPUT | MUX_MODE0)   /* dss_data18.dss_data18 */
+                       0x0d2 (PIN_OUTPUT | MUX_MODE0)   /* dss_data19.dss_data19 */
+                       0x0d4 (PIN_OUTPUT | MUX_MODE0)   /* dss_data20.dss_data20 */
+                       0x0d6 (PIN_OUTPUT | MUX_MODE0)   /* dss_data21.dss_data21 */
+                       0x0d8 (PIN_OUTPUT | MUX_MODE0)   /* dss_data22.dss_data22 */
+                       0x0da (PIN_OUTPUT | MUX_MODE0)   /* dss_data23.dss_data23 */
+               >;
+       };
+
+       uart2_pins: pinmux_uart2_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x2174, PIN_INPUT | MUX_MODE0)        /* uart2_cts.uart2_cts */
+                       OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT | MUX_MODE0)       /* uart2_rts .uart2_rts*/
+                       OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0)       /* uart2_tx.uart2_tx */
+                       OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0)        /* uart2_rx.uart2_rx */
+               >;
+       };
+};
+
+&omap3_pmx_core2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <
+               &hsusbb1_pins
+       >;
+
+       hsusbb1_pins: pinmux_hsusbb1_pins {
+               pinctrl-single,pins = <
+                       OMAP3630_CORE2_IOPAD(0x25da, PIN_OUTPUT | MUX_MODE3)            /* etk_ctl.hsusb1_clk */
+                       OMAP3630_CORE2_IOPAD(0x25d8, PIN_OUTPUT | MUX_MODE3)            /* etk_clk.hsusb1_stp */
+                       OMAP3630_CORE2_IOPAD(0x25ec, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d8.hsusb1_dir */
+                       OMAP3630_CORE2_IOPAD(0x25ee, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d9.hsusb1_nxt */
+                       OMAP3630_CORE2_IOPAD(0x25dc, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d0.hsusb1_data0 */
+                       OMAP3630_CORE2_IOPAD(0x25de, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d1.hsusb1_data1 */
+                       OMAP3630_CORE2_IOPAD(0x25e0, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d2.hsusb1_data2 */
+                       OMAP3630_CORE2_IOPAD(0x25e2, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d3.hsusb1_data7 */
+                       OMAP3630_CORE2_IOPAD(0x25e4, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d4.hsusb1_data4 */
+                       OMAP3630_CORE2_IOPAD(0x25e6, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d5.hsusb1_data5 */
+                       OMAP3630_CORE2_IOPAD(0x25e8, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d6.hsusb1_data6 */
+                       OMAP3630_CORE2_IOPAD(0x25ea, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d7.hsusb1_data3 */
+               >;
+       };
+
+       leds_pins: pinmux_leds_pins {
+               pinctrl-single,pins = <
+                       OMAP3630_CORE2_IOPAD(0x25f4, PIN_OUTPUT | MUX_MODE4) /* etk_d12.gpio_26 */
+                       OMAP3630_CORE2_IOPAD(0x25f6, PIN_OUTPUT | MUX_MODE4) /* etk_d13.gpio_27 */
+                       OMAP3630_CORE2_IOPAD(0x25f8, PIN_OUTPUT | MUX_MODE4) /* etk_d14.gpio_28 */
+               >;
+       };
+};
+
+&i2c3 {
+       clock-frequency = <100000>;
+
+       /*
+        * Display monitor features are burnt in the EEPROM
+        * as EDID data.
+        */
+       eeprom@50 {
+               compatible = "ti,eeprom";
+               reg = <0x50>;
+       };
+};
+
+&gpmc {
+       ranges = <0 0 0x00000000 0x20000000>,
+                <5 0 0x2c000000 0x01000000>;
+
+       ethernet@gpmc {
+               pinctrl-names = "default";
+               pinctrl-0 = <&smsc9221_pins>;
+               reg = <5 0 0xff>;
+               interrupt-parent = <&gpio6>;
+               interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart2_pins>;
+};
+
+&usbhshost {
+       port1-mode = "ehci-phy";
+};
+
+&usbhsehci {
+       phys = <&hsusb1_phy>;
+};
+
+&vpll2 {
+       /* Needed for DSS */
+       regulator-name = "vdds_dsi";
+};
+
+&dss {
+       status = "ok";
+
+       port {
+               dpi_out: endpoint {
+                       remote-endpoint = <&tfp410_in>;
+                       data-lines = <24>;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/omap3-igep0020-rev-f.dts b/arch/arm/boot/dts/omap3-igep0020-rev-f.dts
new file mode 100644 (file)
index 0000000..cc8bd0c
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Device Tree Source for IGEPv2 Rev. F (TI OMAP AM/DM37x)
+ *
+ * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk>
+ * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "omap3-igep0020-common.dtsi"
+
+/ {
+       model = "IGEPv2 Rev. F (TI OMAP AM/DM37x)";
+       compatible = "isee,omap3-igep0020-rev-f", "ti,omap36xx", "ti,omap3";
+
+       /* Regulator to trigger the WL_EN signal of the Wifi module */
+       lbep5clwmc_wlen: regulator-lbep5clwmc-wlen {
+               compatible = "regulator-fixed";
+               regulator-name = "regulator-lbep5clwmc-wlen";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio5 11 GPIO_ACTIVE_HIGH>;            /* gpio_139 - WL_EN */
+               enable-active-high;
+       };
+};
+
+&omap3_pmx_core {
+       lbep5clwmc_pins: pinmux_lbep5clwmc_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x21d4, PIN_INPUT | MUX_MODE4)        /* mcspi1_cs3.gpio_177 - W_IRQ */
+                       OMAP3_CORE1_IOPAD(0x2166, PIN_OUTPUT | MUX_MODE4)       /* sdmmc2_dat5.gpio_137 - BT_EN */
+                       OMAP3_CORE1_IOPAD(0x216a, PIN_OUTPUT | MUX_MODE4)       /* sdmmc2_dat7.gpio_139 - WL_EN */
+               >;
+       };
+};
+
+&mmc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_pins &lbep5clwmc_pins>;
+       vmmc-supply = <&lbep5clwmc_wlen>;
+       bus-width = <4>;
+       non-removable;
+};
index b22caaaf774ba710461fcabf395c121c0ccc0482..fea7f7edb45dcb2fc4b8145ce9432b4c048f3c50 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Device Tree Source for IGEPv2 Rev. (TI OMAP AM/DM37x)
+ * Device Tree Source for IGEPv2 Rev. (TI OMAP AM/DM37x)
  *
  * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk>
  * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.com>
  * published by the Free Software Foundation.
  */
 
-#include "omap3-igep.dtsi"
-#include "omap-gpmc-smsc9221.dtsi"
+#include "omap3-igep0020-common.dtsi"
 
 / {
-       model = "IGEPv2 (TI OMAP AM/DM37x)";
+       model = "IGEPv2 Rev. C (TI OMAP AM/DM37x)";
        compatible = "isee,omap3-igep0020", "ti,omap36xx", "ti,omap3";
 
-       leds {
-               pinctrl-names = "default";
-               pinctrl-0 = <&leds_pins>;
-               compatible = "gpio-leds";
-
-               boot {
-                        label = "omap3:green:boot";
-                        gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
-                        default-state = "on";
-               };
-
-               user0 {
-                        label = "omap3:red:user0";
-                        gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
-                        default-state = "off";
-               };
-
-               user1 {
-                        label = "omap3:red:user1";
-                        gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-                        default-state = "off";
-               };
-
-               user2 {
-                       label = "omap3:green:user1";
-                       gpios = <&twl_gpio 19 GPIO_ACTIVE_LOW>;
-               };
+       /* Regulator to trigger the WIFI_PDN signal of the Wifi module */
+       lbee1usjyc_pdn: lbee1usjyc_pdn {
+               compatible = "regulator-fixed";
+               regulator-name = "regulator-lbee1usjyc-pdn";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio5 10 GPIO_ACTIVE_HIGH>;    /* gpio_138 - WIFI_PDN */
+               startup-delay-us = <10000>;
+               enable-active-high;
        };
 
-       /* HS USB Port 1 Power */
-       hsusb1_power: hsusb1_power_reg {
-               compatible = "regulator-fixed";
-               regulator-name = "hsusb1_vbus";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               gpio = <&twl_gpio 18 GPIO_ACTIVE_LOW>;  /* GPIO LEDA */
-               startup-delay-us = <70000>;
-       };
-
-       /* HS USB Host PHY on PORT 1 */
-       hsusb1_phy: hsusb1_phy {
-               compatible = "usb-nop-xceiv";
-               reset-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>; /* gpio_24 */
-               vcc-supply = <&hsusb1_power>;
-       };
-
-       tfp410: encoder@0 {
-               compatible = "ti,tfp410";
-               powerdown-gpios = <&gpio6 10 GPIO_ACTIVE_LOW>; /* gpio_170 */
-
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       port@0 {
-                               reg = <0>;
-
-                               tfp410_in: endpoint@0 {
-                                       remote-endpoint = <&dpi_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 = <&i2c3>;
-
-               port {
-                       dvi_connector_in: endpoint {
-                               remote-endpoint = <&tfp410_out>;
-                       };
-               };
+       /* Regulator to trigger the RESET_N_W signal of the Wifi module */
+       lbee1usjyc_reset_n_w: lbee1usjyc_reset_n_w {
+               compatible = "regulator-fixed";
+               regulator-name = "regulator-lbee1usjyc-reset-n-w";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio5 11 GPIO_ACTIVE_HIGH>;    /* gpio_139 - RESET_N_W */
+               enable-active-high;
        };
 };
 
 &omap3_pmx_core {
-       pinctrl-names = "default";
-       pinctrl-0 = <
-               &tfp410_pins
-               &dss_dpi_pins
-       >;
-
-       tfp410_pins: pinmux_tfp410_pins {
+       lbee1usjyc_pins: pinmux_lbee1usjyc_pins {
                pinctrl-single,pins = <
-                       0x196 (PIN_OUTPUT | MUX_MODE4)   /* hdq_sio.gpio_170 */
+                       OMAP3_CORE1_IOPAD(0x2166, PIN_OUTPUT | MUX_MODE4)       /* sdmmc2_dat5.gpio_137 - RESET_N_W */
+                       OMAP3_CORE1_IOPAD(0x2168, PIN_OUTPUT | MUX_MODE4)       /* sdmmc2_dat6.gpio_138 - WIFI_PDN */
+                       OMAP3_CORE1_IOPAD(0x216a, PIN_OUTPUT | MUX_MODE4)       /* sdmmc2_dat7.gpio_139 - RST_N_B */
                >;
        };
 
-       dss_dpi_pins: pinmux_dss_dpi_pins {
+       uart2_pins: pinmux_uart2_pins {
                pinctrl-single,pins = <
-                       0x0a4 (PIN_OUTPUT | MUX_MODE0)   /* dss_pclk.dss_pclk */
-                       0x0a6 (PIN_OUTPUT | MUX_MODE0)   /* dss_hsync.dss_hsync */
-                       0x0a8 (PIN_OUTPUT | MUX_MODE0)   /* dss_vsync.dss_vsync */
-                       0x0aa (PIN_OUTPUT | MUX_MODE0)   /* dss_acbias.dss_acbias */
-                       0x0ac (PIN_OUTPUT | MUX_MODE0)   /* dss_data0.dss_data0 */
-                       0x0ae (PIN_OUTPUT | MUX_MODE0)   /* dss_data1.dss_data1 */
-                       0x0b0 (PIN_OUTPUT | MUX_MODE0)   /* dss_data2.dss_data2 */
-                       0x0b2 (PIN_OUTPUT | MUX_MODE0)   /* dss_data3.dss_data3 */
-                       0x0b4 (PIN_OUTPUT | MUX_MODE0)   /* dss_data4.dss_data4 */
-                       0x0b6 (PIN_OUTPUT | MUX_MODE0)   /* dss_data5.dss_data5 */
-                       0x0b8 (PIN_OUTPUT | MUX_MODE0)   /* dss_data6.dss_data6 */
-                       0x0ba (PIN_OUTPUT | MUX_MODE0)   /* dss_data7.dss_data7 */
-                       0x0bc (PIN_OUTPUT | MUX_MODE0)   /* dss_data8.dss_data8 */
-                       0x0be (PIN_OUTPUT | MUX_MODE0)   /* dss_data9.dss_data9 */
-                       0x0c0 (PIN_OUTPUT | MUX_MODE0)   /* dss_data10.dss_data10 */
-                       0x0c2 (PIN_OUTPUT | MUX_MODE0)   /* dss_data11.dss_data11 */
-                       0x0c4 (PIN_OUTPUT | MUX_MODE0)   /* dss_data12.dss_data12 */
-                       0x0c6 (PIN_OUTPUT | MUX_MODE0)   /* dss_data13.dss_data13 */
-                       0x0c8 (PIN_OUTPUT | MUX_MODE0)   /* dss_data14.dss_data14 */
-                       0x0ca (PIN_OUTPUT | MUX_MODE0)   /* dss_data15.dss_data15 */
-                       0x0cc (PIN_OUTPUT | MUX_MODE0)   /* dss_data16.dss_data16 */
-                       0x0ce (PIN_OUTPUT | MUX_MODE0)   /* dss_data17.dss_data17 */
-                       0x0d0 (PIN_OUTPUT | MUX_MODE0)   /* dss_data18.dss_data18 */
-                       0x0d2 (PIN_OUTPUT | MUX_MODE0)   /* dss_data19.dss_data19 */
-                       0x0d4 (PIN_OUTPUT | MUX_MODE0)   /* dss_data20.dss_data20 */
-                       0x0d6 (PIN_OUTPUT | MUX_MODE0)   /* dss_data21.dss_data21 */
-                       0x0d8 (PIN_OUTPUT | MUX_MODE0)   /* dss_data22.dss_data22 */
-                       0x0da (PIN_OUTPUT | MUX_MODE0)   /* dss_data23.dss_data23 */
+                       OMAP3_CORE1_IOPAD(0x2174, PIN_INPUT | MUX_MODE0)        /* uart2_cts.uart2_cts */
+                       OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT | MUX_MODE0)       /* uart2_rts .uart2_rts*/
+                       OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0)       /* uart2_tx.uart2_tx */
+                       OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0)        /* uart2_rx.uart2_rx */
                >;
        };
 };
 
-&omap3_pmx_core2 {
+/* On board Wifi module */
+&mmc2 {
        pinctrl-names = "default";
-       pinctrl-0 = <
-               &hsusbb1_pins
-       >;
-
-       hsusbb1_pins: pinmux_hsusbb1_pins {
-               pinctrl-single,pins = <
-                       OMAP3630_CORE2_IOPAD(0x25da, PIN_OUTPUT | MUX_MODE3)            /* etk_ctl.hsusb1_clk */
-                       OMAP3630_CORE2_IOPAD(0x25d8, PIN_OUTPUT | MUX_MODE3)            /* etk_clk.hsusb1_stp */
-                       OMAP3630_CORE2_IOPAD(0x25ec, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d8.hsusb1_dir */
-                       OMAP3630_CORE2_IOPAD(0x25ee, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d9.hsusb1_nxt */
-                       OMAP3630_CORE2_IOPAD(0x25dc, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d0.hsusb1_data0 */
-                       OMAP3630_CORE2_IOPAD(0x25de, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d1.hsusb1_data1 */
-                       OMAP3630_CORE2_IOPAD(0x25e0, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d2.hsusb1_data2 */
-                       OMAP3630_CORE2_IOPAD(0x25e2, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d3.hsusb1_data7 */
-                       OMAP3630_CORE2_IOPAD(0x25e4, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d4.hsusb1_data4 */
-                       OMAP3630_CORE2_IOPAD(0x25e6, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d5.hsusb1_data5 */
-                       OMAP3630_CORE2_IOPAD(0x25e8, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d6.hsusb1_data6 */
-                       OMAP3630_CORE2_IOPAD(0x25ea, PIN_INPUT_PULLDOWN | MUX_MODE3)    /* etk_d7.hsusb1_data3 */
-               >;
-       };
-
-       leds_pins: pinmux_leds_pins {
-               pinctrl-single,pins = <
-                       OMAP3630_CORE2_IOPAD(0x25f4, PIN_OUTPUT | MUX_MODE4) /* etk_d12.gpio_26 */
-                       OMAP3630_CORE2_IOPAD(0x25f6, PIN_OUTPUT | MUX_MODE4) /* etk_d13.gpio_27 */
-                       OMAP3630_CORE2_IOPAD(0x25f8, PIN_OUTPUT | MUX_MODE4) /* etk_d14.gpio_28 */
-               >;
-       };
-};
-
-&i2c3 {
-       clock-frequency = <100000>;
-
-       /*
-        * Display monitor features are burnt in the EEPROM
-        * as EDID data.
-        */
-       eeprom@50 {
-               compatible = "ti,eeprom";
-               reg = <0x50>;
-       };
-};
-
-&gpmc {
-       ranges = <0 0 0x00000000 0x20000000>,
-                <5 0 0x2c000000 0x01000000>;
-
-       nand@0,0 {
-               linux,mtd-name= "micron,mt29c4g96maz";
-               reg = <0 0 0>;
-               nand-bus-width = <16>;
-               ti,nand-ecc-opt = "bch8";
-
-               gpmc,sync-clk-ps = <0>;
-               gpmc,cs-on-ns = <0>;
-               gpmc,cs-rd-off-ns = <44>;
-               gpmc,cs-wr-off-ns = <44>;
-               gpmc,adv-on-ns = <6>;
-               gpmc,adv-rd-off-ns = <34>;
-               gpmc,adv-wr-off-ns = <44>;
-               gpmc,we-off-ns = <40>;
-               gpmc,oe-off-ns = <54>;
-               gpmc,access-ns = <64>;
-               gpmc,rd-cycle-ns = <82>;
-               gpmc,wr-cycle-ns = <82>;
-               gpmc,wr-access-ns = <40>;
-               gpmc,wr-data-mux-bus-ns = <0>;
-
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               partition@0 {
-                       label = "SPL";
-                       reg = <0 0x100000>;
-               };
-               partition@80000 {
-                       label = "U-Boot";
-                       reg = <0x100000 0x180000>;
-               };
-               partition@1c0000 {
-                       label = "Environment";
-                       reg = <0x280000 0x100000>;
-               };
-               partition@280000 {
-                       label = "Kernel";
-                       reg = <0x380000 0x300000>;
-               };
-               partition@780000 {
-                       label = "Filesystem";
-                       reg = <0x680000 0x1f980000>;
-               };
-       };
-
-       ethernet@gpmc {
-               pinctrl-names = "default";
-               pinctrl-0 = <&smsc9221_pins>;
-               reg = <5 0 0xff>;
-               interrupt-parent = <&gpio6>;
-               interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
-       };
-};
-
-&usbhshost {
-       port1-mode = "ehci-phy";
-};
-
-&usbhsehci {
-       phys = <&hsusb1_phy>;
-};
-
-&vpll2 {
-        /* Needed for DSS */
-        regulator-name = "vdds_dsi";
-};
-
-&dss {
-       status = "ok";
-
-       port {
-               dpi_out: endpoint {
-                       remote-endpoint = <&tfp410_in>;
-                       data-lines = <24>;
-               };
-       };
+       pinctrl-0 = <&mmc2_pins &lbee1usjyc_pins>;
+       vmmc-supply = <&lbee1usjyc_pdn>;
+       vmmc_aux-supply = <&lbee1usjyc_reset_n_w>;
+       bus-width = <4>;
+       non-removable;
 };
diff --git a/arch/arm/boot/dts/omap3-igep0030-common.dtsi b/arch/arm/boot/dts/omap3-igep0030-common.dtsi
new file mode 100644 (file)
index 0000000..0cb1527
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Common Device Tree Source for IGEP COM MODULE
+ *
+ * Copyright (C) 2014 Javier Martinez Canillas <javier@collabora.co.uk>
+ * Copyright (C) 2014 Enric Balletbo i Serra <eballetbo@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "omap3-igep.dtsi"
+
+/ {
+       leds: gpio_leds {
+               compatible = "gpio-leds";
+
+               user0 {
+                        label = "omap3:red:user0";
+                        gpios = <&twl_gpio 18 GPIO_ACTIVE_LOW>;        /* LEDA */
+                        default-state = "off";
+               };
+
+               user1 {
+                        label = "omap3:green:user1";
+                        gpios = <&twl_gpio 19 GPIO_ACTIVE_LOW>;        /* LEDB */
+                        default-state = "off";
+               };
+
+               user2 {
+                        label = "omap3:red:user1";
+                        gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;           /* gpio_16 */
+                        default-state = "off";
+               };
+       };
+};
+
+&omap3_pmx_core {
+       uart2_pins: pinmux_uart2_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x216c, PIN_INPUT | MUX_MODE1)        /* mcbsp3_dx.uart2_cts */
+                       OMAP3_CORE1_IOPAD(0x216e, PIN_OUTPUT | MUX_MODE1)       /* mcbsp3_dr.uart2_rts */
+                       OMAP3_CORE1_IOPAD(0x2170, PIN_OUTPUT | MUX_MODE1)       /* mcbsp3_clk.uart2_tx */
+                       OMAP3_CORE1_IOPAD(0x2172, PIN_INPUT | MUX_MODE1)        /* mcbsp3_fsx.uart2_rx */
+               >;
+       };
+};
+
+&omap3_pmx_core2 {
+       leds_core2_pins: pinmux_leds_core2_pins {
+               pinctrl-single,pins = <
+                       OMAP3630_CORE2_IOPAD(0x25e0, PIN_OUTPUT | MUX_MODE4)    /* etk_d2.gpio_16 */
+               >;
+       };
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart2_pins>;
+};
diff --git a/arch/arm/boot/dts/omap3-igep0030-rev-g.dts b/arch/arm/boot/dts/omap3-igep0030-rev-g.dts
new file mode 100644 (file)
index 0000000..9326b28
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Device Tree Source for IGEP COM MODULE Rev. G (TI OMAP AM/DM37x)
+ *
+ * Copyright (C) 2014 Javier Martinez Canillas <javier@collabora.co.uk>
+ * Copyright (C) 2014 Enric Balletbo i Serra <eballetbo@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "omap3-igep0030-common.dtsi"
+
+/ {
+       model = "IGEP COM MODULE Rev. G (TI OMAP AM/DM37x)";
+       compatible = "isee,omap3-igep0030-rev-g", "ti,omap36xx", "ti,omap3";
+
+       /* Regulator to trigger the WL_EN signal of the Wifi module */
+       lbep5clwmc_wlen: regulator-lbep5clwmc-wlen {
+               compatible = "regulator-fixed";
+               regulator-name = "regulator-lbep5clwmc-wlen";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio5 11 GPIO_ACTIVE_HIGH>;            /* gpio_139 - WL_EN */
+               enable-active-high;
+       };
+};
+
+&omap3_pmx_core {
+       lbep5clwmc_pins: pinmux_lbep5clwmc_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x2164, PIN_INPUT | MUX_MODE4)        /* sdmmc2_dat4.gpio_136 - W_IRQ */
+                       OMAP3_CORE1_IOPAD(0x2166, PIN_OUTPUT | MUX_MODE4)       /* sdmmc2_dat5.gpio_137 - BT_EN */
+                       OMAP3_CORE1_IOPAD(0x216a, PIN_OUTPUT | MUX_MODE4)       /* sdmmc2_dat7.gpio_139 - WL_EN */
+               >;
+       };
+
+       leds_pins: pinmux_leds_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x21be, PIN_OUTPUT | MUX_MODE4)       /* i2c2_scl.gpio_168 */
+               >;
+       };
+
+};
+
+&i2c2 {
+       status = "disabled";
+};
+
+&leds {
+       pinctrl-names = "default";
+       pinctrl-0 = <&leds_pins &leds_core2_pins>;
+
+       boot {
+               label = "omap3:green:boot";
+               gpios = <&gpio6 8 GPIO_ACTIVE_HIGH>;
+               default-state = "on";
+       };
+};
+
+&mmc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_pins &lbep5clwmc_pins>;
+       vmmc-supply = <&lbep5clwmc_wlen>;
+       bus-width = <4>;
+       non-removable;
+};
index 2793749eb1ba460dcf8736fc964aef7b87b05d1a..8150f47ccdf5b6cbba75c79affcd9108b498e303 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Device Tree Source for IGEP COM MODULE (TI OMAP AM/DM37x)
+ * Device Tree Source for IGEP COM MODULE Rev. E (TI OMAP AM/DM37x)
  *
  * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk>
  * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.com>
@@ -9,97 +9,62 @@
  * published by the Free Software Foundation.
  */
 
-#include "omap3-igep.dtsi"
+#include "omap3-igep0030-common.dtsi"
 
 / {
-       model = "IGEP COM MODULE (TI OMAP AM/DM37x)";
+       model = "IGEP COM MODULE Rev. E (TI OMAP AM/DM37x)";
        compatible = "isee,omap3-igep0030", "ti,omap36xx", "ti,omap3";
 
-       leds {
-               pinctrl-names = "default";
-               pinctrl-0 = <&leds_pins>;
-               compatible = "gpio-leds";
-
-               boot {
-                        label = "omap3:green:boot";
-                        gpios = <&twl_gpio 13 GPIO_ACTIVE_LOW>;
-                        default-state = "on";
-               };
-
-               user0 {
-                        label = "omap3:red:user0";
-                        gpios = <&twl_gpio 18 GPIO_ACTIVE_LOW>; /* LEDA */
-                        default-state = "off";
-               };
-
-               user1 {
-                        label = "omap3:green:user1";
-                        gpios = <&twl_gpio 19 GPIO_ACTIVE_LOW>; /* LEDB */
-                        default-state = "off";
-               };
+       /* Regulator to trigger the WIFI_PDN signal of the Wifi module */
+       lbee1usjyc_pdn: lbee1usjyc_pdn {
+               compatible = "regulator-fixed";
+               regulator-name = "regulator-lbee1usjyc-pdn";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio5 10 GPIO_ACTIVE_HIGH>;    /* gpio_138 - WIFI_PDN */
+               startup-delay-us = <10000>;
+               enable-active-high;
+       };
 
-               user2 {
-                        label = "omap3:red:user1";
-                        gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
-                        default-state = "off";
-               };
+       /* Regulator to trigger the RESET_N_W signal of the Wifi module */
+       lbee1usjyc_reset_n_w: lbee1usjyc_reset_n_w {
+               compatible = "regulator-fixed";
+               regulator-name = "regulator-lbee1usjyc-reset-n-w";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio5 11 GPIO_ACTIVE_HIGH>;    /* gpio_139 - RESET_N_W */
+               enable-active-high;
        };
 };
 
-&omap3_pmx_core2 {
-       leds_pins: pinmux_leds_pins {
+&omap3_pmx_core {
+       lbee1usjyc_pins: pinmux_lbee1usjyc_pins {
                pinctrl-single,pins = <
-                       OMAP3630_CORE2_IOPAD(0x25e0, PIN_OUTPUT | MUX_MODE4) /* etk_d2.gpio_16 */
+                       OMAP3_CORE1_IOPAD(0x2166, PIN_OUTPUT | MUX_MODE4)       /* sdmmc2_dat5.gpio_137 - RESET_N_W */
+                       OMAP3_CORE1_IOPAD(0x2168, PIN_OUTPUT | MUX_MODE4)       /* sdmmc2_dat6.gpio_138 - WIFI_PDN */
+                       OMAP3_CORE1_IOPAD(0x216a, PIN_OUTPUT | MUX_MODE4)       /* sdmmc2_dat7.gpio_139 - RST_N_B */
                >;
        };
 };
 
-&gpmc {
-       ranges = <0 0 0x00000000 0x20000000>;
-
-       nand@0,0 {
-               linux,mtd-name= "micron,mt29c4g96maz";
-               reg = <0 0 0>;
-               nand-bus-width = <16>;
-               ti,nand-ecc-opt = "bch8";
+&leds {
+       pinctrl-names = "default";
+       pinctrl-0 = <&leds_core2_pins>;
 
-               gpmc,sync-clk-ps = <0>;
-               gpmc,cs-on-ns = <0>;
-               gpmc,cs-rd-off-ns = <44>;
-               gpmc,cs-wr-off-ns = <44>;
-               gpmc,adv-on-ns = <6>;
-               gpmc,adv-rd-off-ns = <34>;
-               gpmc,adv-wr-off-ns = <44>;
-               gpmc,we-off-ns = <40>;
-               gpmc,oe-off-ns = <54>;
-               gpmc,access-ns = <64>;
-               gpmc,rd-cycle-ns = <82>;
-               gpmc,wr-cycle-ns = <82>;
-               gpmc,wr-access-ns = <40>;
-               gpmc,wr-data-mux-bus-ns = <0>;
-
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               partition@0 {
-                       label = "SPL";
-                       reg = <0 0x100000>;
-               };
-               partition@80000 {
-                       label = "U-Boot";
-                       reg = <0x100000 0x180000>;
-               };
-               partition@1c0000 {
-                       label = "Environment";
-                       reg = <0x280000 0x100000>;
-               };
-               partition@280000 {
-                       label = "Kernel";
-                       reg = <0x380000 0x300000>;
-               };
-               partition@780000 {
-                       label = "Filesystem";
-                       reg = <0x680000 0x1f980000>;
-               };
+       boot {
+               label = "omap3:green:boot";
+               gpios = <&twl_gpio 13 GPIO_ACTIVE_LOW>; /* LEDSYNC */
+               default-state = "on";
        };
 };
+
+/* On board Wifi module */
+&mmc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_pins &lbee1usjyc_pins>;
+       vmmc-supply = <&lbee1usjyc_pdn>;
+       vmmc_aux-supply = <&lbee1usjyc_reset_n_w>;
+       bus-width = <4>;
+       non-removable;
+};
+
index 72dca0b7904d2c4078d1dfba477f190628f79cbc..202f95a5a3837b4a52b0d084de28634b9e340771 100644 (file)
 
        nand@0,0 {
                linux,mtd-name= "micron,nand";
-               reg = <0 0 0>;
+               reg = <0 0 4>;  /* CS0, offset 0, IO size 4 */
                nand-bus-width = <16>;
+               gpmc,device-width = <2>;
                ti,nand-ecc-opt = "bch8";
 
                gpmc,sync-clk-ps = <0>;
index d97308896f0c621dfc0a29175ddfcf8e0c2082df..e81fb651d5d0f04a6a90a6abca434cd64dc5d21e 100644 (file)
                <7 0 0x15000000 0x01000000>;
 
        nand@0,0 {
-               reg = <0 0 0x1000000>;
+               reg = <0 0 4>;  /* CS0, offset 0, IO size 4 */
                nand-bus-width = <16>;
                ti,nand-ecc-opt = "bch8";
                /* no elm on omap3 */
index bc82a12d4c2c3bb6b294c2c99d4a64d3568537f0..53f3ca064140470866dbfe12773af1ddb76d1632 100644 (file)
                eci-switch-gpios = <&gpio6 22 GPIO_ACTIVE_HIGH>; /* 182 */
                speaker-amplifier-gpios = <&twl_gpio 7 GPIO_ACTIVE_HIGH>;
        };
+
+       battery: n900-battery {
+               compatible = "nokia,n900-battery";
+               io-channels = <&twl_madc 0>, <&twl_madc 4>, <&twl_madc 12>;
+               io-channel-names = "temp", "bsi", "vbat";
+       };
 };
 
 &omap3_pmx_core {
                >;
        };
 
+       gpmc_pins: pinmux_gpmc_pins {
+               pinctrl-single,pins = <
+
+                       /* address lines */
+                        OMAP3_CORE1_IOPAD(0x207a, PIN_OUTPUT | MUX_MODE0)       /* gpmc_a1.gpmc_a1 */
+                        OMAP3_CORE1_IOPAD(0x207c, PIN_OUTPUT | MUX_MODE0)       /* gpmc_a2.gpmc_a2 */
+                        OMAP3_CORE1_IOPAD(0x207e, PIN_OUTPUT | MUX_MODE0)       /* gpmc_a3.gpmc_a3 */
+
+                       /* data lines, gpmc_d0..d7 not muxable according to TRM */
+                        OMAP3_CORE1_IOPAD(0x209e, PIN_INPUT | MUX_MODE0)        /* gpmc_d8.gpmc_d8 */
+                        OMAP3_CORE1_IOPAD(0x20a0, PIN_INPUT | MUX_MODE0)        /* gpmc_d9.gpmc_d9 */
+                        OMAP3_CORE1_IOPAD(0x20a2, PIN_INPUT | MUX_MODE0)        /* gpmc_d10.gpmc_d10 */
+                        OMAP3_CORE1_IOPAD(0x20a4, PIN_INPUT | MUX_MODE0)        /* gpmc_d11.gpmc_d11 */
+                        OMAP3_CORE1_IOPAD(0x20a6, PIN_INPUT | MUX_MODE0)        /* gpmc_d12.gpmc_d12 */
+                        OMAP3_CORE1_IOPAD(0x20a8, PIN_INPUT | MUX_MODE0)        /* gpmc_d13.gpmc_d13 */
+                        OMAP3_CORE1_IOPAD(0x20aa, PIN_INPUT | MUX_MODE0)        /* gpmc_d14.gpmc_d14 */
+                        OMAP3_CORE1_IOPAD(0x20ac, PIN_INPUT | MUX_MODE0)        /* gpmc_d15.gpmc_d15 */
+
+                       /*
+                        * gpmc_ncs0, gpmc_nadv_ale, gpmc_noe, gpmc_nwe, gpmc_wait0 not muxable
+                        * according to TRM. OneNAND seems to require PIN_INPUT on clock.
+                        */
+                        OMAP3_CORE1_IOPAD(0x20b0, PIN_OUTPUT | MUX_MODE0)       /* gpmc_ncs1.gpmc_ncs1 */
+                        OMAP3_CORE1_IOPAD(0x20be, PIN_INPUT | MUX_MODE0)        /* gpmc_clk.gpmc_clk */
+               >;
+       };
+
        i2c1_pins: pinmux_i2c1_pins {
                pinctrl-single,pins = <
                        0x18a (PIN_INPUT | MUX_MODE0)           /* i2c1_scl */
                power-gpio = <&gpio4 2 GPIO_ACTIVE_HIGH>; /* 98 */
        };
 
+       si4713: si4713@63 {
+               compatible = "silabs,si4713";
+                reg = <0x63>;
+
+                interrupts-extended = <&gpio2 21 IRQ_TYPE_EDGE_FALLING>; /* 53 */
+                reset-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>; /* 163 */
+                vio-supply = <&vio>;
+                vdd-supply = <&vaux1>;
+       };
+
        bq24150a: bq24150a@6b {
                compatible = "ti,bq24150a";
                reg = <0x6b>;
 };
 
 &gpmc {
-       ranges = <0 0 0x04000000 0x10000000>; /* 256MB */
        ranges = <0 0 0x01000000 0x01000000>,   /* 16 MB for OneNAND */
                 <1 0 0x02000000 0x01000000>;   /* 16 MB for smc91c96 */
+       pinctrl-names = "default";
+       pinctrl-0 = <&gpmc_pins>;
 
-       /* gpio-irq for dma: 65 */
-
+       /* sys_ndmareq1 could be used by the driver, not as gpio65 though */
        onenand@0,0 {
                #address-cells = <1>;
                #size-cells = <1>;
-               reg = <0 0 0x10000000>;
+               reg = <0 0 0x20000>;    /* CS0, offset 0, IO size 128K */
 
                gpmc,sync-read;
                gpmc,sync-write;
index 70addcba37c5d673410217f4731d540c35d817be..1e49dfe7e21294052b53cdabee085afd0dc31455 100644 (file)
 };
 
 &gpmc {
-       ranges = <0 0 0x04000000 0x20000000>;
+       ranges = <0 0 0x04000000 0x1000000>;    /* CS0: 16MB for OneNAND */
 
        onenand@0,0 {
                #address-cells = <1>;
                #size-cells = <1>;
-               reg = <0 0 0x20000000>;
+               reg = <0 0 0x20000>;    /* CS0, offset 0, IO size 128K */
 
                gpmc,sync-read;
                gpmc,sync-write;
index d59e3de1441e2f7dc5e0fb9b4bc29f49ee04cbc1..827f614261f6f0041096514be33f90540c61a608 100644 (file)
@@ -2,6 +2,59 @@
  * Common support for CompuLab SB-T35 used on SBC-T3530, SBC-T3517 and SBC-T3730
  */
 
+/ {
+       tfp410: encoder@0 {
+               compatible = "ti,tfp410";
+
+               powerdown-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>;  /* gpio_54 */
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&tfp410_pins>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               tfp410_in: endpoint@0 {
+                                       remote-endpoint = <&dpi_out>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               tfp410_out: endpoint@0 {
+                                       remote-endpoint = <&dvi_connector_in>;
+                               };
+                       };
+               };
+       };
+
+       dvi0: connector@0 {
+               compatible = "dvi-connector";
+               label = "dvi";
+
+               port {
+                       dvi_connector_in: endpoint {
+                               remote-endpoint = <&tfp410_out>;
+                       };
+               };
+       };
+
+       audio_amp: audio_amp {
+               compatible = "regulator-fixed";
+               regulator-name = "audio_amp";
+               pinctrl-names = "default";
+               pinctrl-0 = <&sb_t35_audio_amp>;
+               gpio = <&gpio2 29 GPIO_ACTIVE_LOW>;   /* gpio_61 */
+               enable-active-low;
+               regulator-always-on;
+       };
+};
+
 &omap3_pmx_core {
        smsc2_pins: pinmux_smsc2_pins {
                pinctrl-single,pins = <
@@ -9,6 +62,38 @@
                        OMAP3_CORE1_IOPAD(0x20d2, PIN_INPUT_PULLUP | MUX_MODE4) /* gpmc_wait3.gpio_65 */
                >;
        };
+
+       tfp410_pins: pinmux_tfp410_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x20b4, PIN_OUTPUT | MUX_MODE4)       /* gpmc_ncs3.gpio_54 */
+               >;
+       };
+
+       i2c3_pins: pinmux_i2c3_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */
+                       OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */
+               >;
+       };
+
+       sb_t35_audio_amp: pinmux_sb_t35_audio_amp {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x20c8, PIN_OUTPUT | MUX_MODE4) /* gpmc_nbe1.gpio_61 */
+               >;
+       };
+};
+
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c3_pins>;
+
+       clock-frequency = <400000>;
+
+       at24@50 {
+               compatible = "at24,24c02";
+               pagesize = <16>;
+               reg = <0x50>;
+       };
 };
 
 &gpmc {
                interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
                reg = <4 0 0xff>;
                bank-width = <2>;
-               gpmc,mux-add-data;
-               gpmc,cs-on-ns = <1>;
-               gpmc,cs-rd-off-ns = <180>;
-               gpmc,cs-wr-off-ns = <180>;
-               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,cycle2cycle-samecsen;
-               gpmc,cycle2cycle-diffcsen;
+               gpmc,device-width = <1>;
+               gpmc,cycle2cycle-samecsen = <1>;
+               gpmc,cycle2cycle-diffcsen = <1>;
+               gpmc,cs-on-ns = <5>;
+               gpmc,cs-rd-off-ns = <150>;
+               gpmc,cs-wr-off-ns = <150>;
+               gpmc,adv-on-ns = <0>;
+               gpmc,adv-rd-off-ns = <15>;
+               gpmc,adv-wr-off-ns = <40>;
+               gpmc,oe-on-ns = <45>;
+               gpmc,oe-off-ns = <140>;
+               gpmc,we-on-ns = <45>;
+               gpmc,we-off-ns = <140>;
+               gpmc,rd-cycle-ns = <155>;
+               gpmc,wr-cycle-ns = <155>;
+               gpmc,access-ns = <120>;
+               gpmc,page-burst-access-ns = <20>;
+               gpmc,bus-turnaround-ns = <75>;
+               gpmc,cycle2cycle-delay-ns = <75>;
+               gpmc,wait-monitoring-ns = <0>;
+               gpmc,clk-activation-ns = <0>;
+               gpmc,wr-data-mux-bus-ns = <0>;
+               gpmc,wr-access-ns = <0>;
                vddvario-supply = <&vddvario>;
                vdd33a-supply = <&vdd33a>;
                reg-io-width = <4>;
index 42189b65d393d29d2cf467ddbc5df4eb0661a471..17986536c61f93665201c5a488673f92e5ad0472 100644 (file)
@@ -9,6 +9,11 @@
        model = "CompuLab SBC-T3517 with CM-T3517";
        compatible = "compulab,omap3-sbc-t3517", "compulab,omap3-cm-t3517", "ti,am3517", "ti,omap3";
 
+       aliases {
+               display0 = &dvi0;
+               display1 = &tv0;
+       };
+
        /* Only one GPMC smsc9220 on SBC-T3517, CM-T3517 uses am35x Ethernet */
        vddvario: regulator-vddvario-sb-t35 {
                compatible = "regulator-fixed";
        wp-gpios =  <&gpio2 27 GPIO_ACTIVE_HIGH>; /* gpio_59  */
        cd-gpios =  <&gpio5 16 GPIO_ACTIVE_HIGH>; /* gpio_144 */
 };
+
+&dss {
+       port {
+               dpi_out: endpoint {
+                       remote-endpoint = <&tfp410_in>;
+                       data-lines = <24>;
+               };
+       };
+};
+
index bbbeea6b19881a975287135b6aafc4d5d8f08e2f..c994f0f7e38a120e6aa51eace3e384d91cc9a5e6 100644 (file)
@@ -8,6 +8,11 @@
 / {
        model = "CompuLab SBC-T3530 with CM-T3530";
        compatible = "compulab,omap3-sbc-t3530", "compulab,omap3-cm-t3530", "ti,omap34xx", "ti,omap3";
+
+       aliases {
+               display0 = &dvi0;
+               display1 = &tv0;
+       };
 };
 
 &omap3_pmx_core {
 &mmc1 {
        cd-gpios =  <&twl_gpio 0 GPIO_ACTIVE_HIGH>;
 };
+
+&dss {
+       port {
+               dpi_out: endpoint {
+                       remote-endpoint = <&tfp410_in>;
+                       data-lines = <24>;
+               };
+       };
+};
+
index 08e4a7086f2293c8b0343eeed752b48e477e37a9..5bdddf29341d936449cb6979a24ef0035800d962 100644 (file)
@@ -8,6 +8,11 @@
 / {
        model = "CompuLab SBC-T3730 with CM-T3730";
        compatible = "compulab,omap3-sbc-t3730", "compulab,omap3-cm-t3730", "ti,omap36xx", "ti,omap3";
+
+       aliases {
+               display0 = &dvi0;
+               display1 = &tv0;
+       };
 };
 
 &omap3_pmx_core {
        ranges = <5 0 0x2c000000 0x01000000>,
                 <4 0 0x2d000000 0x01000000>;
 };
+
+&dss {
+       port {
+               dpi_out: endpoint {
+                       remote-endpoint = <&tfp410_in>;
+                       data-lines = <24>;
+               };
+       };
+};
+
index b30f387d3a834ca7bcbe23e8a735ed9d1bf5cdce..e89820a6776ef2d5628e85e681e1b998aadbfdce 100644 (file)
        ranges = <0 0 0x00000000 0x01000000>;
 
        nand@0,0 {
-               reg = <0 0 0>; /* CS0, offset 0 */
+               reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
                nand-bus-width = <16>;
                gpmc,device-width = <2>;        /* GPMC_DEVWIDTH_16BIT */
                ti,nand-ecc-opt = "sw";
index d0e884d3a7372f003f1777aeba1f6ccc15c2e26c..8db7def81c286efe43ca552f0580345f86188750 100644 (file)
                        ti,hwmods = "mailbox";
                        reg = <0x48094000 0x200>;
                        interrupts = <26>;
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <2>;
                        ti,mbox-num-fifos = <2>;
                        mbox_dsp: dsp {
index 9bad94efe1c81c65a56f9d8fbb6d8fcc53bcd2af..16b0cdfbee9cbb0368a2bdf8ddd59534ff16771e 100644 (file)
@@ -51,8 +51,8 @@
 
 &gpmc {
        ranges = <0 0 0x10000000 0x08000000>,
-                <1 0 0x28000000 0x08000000>,
-                <2 0 0x20000000 0x10000000>;
+                <1 0 0x28000000 0x1000000>,    /* CS1: 16MB for NAND */
+                <2 0 0x20000000 0x1000000>;    /* CS2: 16MB for OneNAND */
 
        nor@0,0 {
                compatible = "cfi-flash";
                linux,mtd-name= "micron,mt29f1g08abb";
                #address-cells = <1>;
                #size-cells = <1>;
-               reg = <1 0 0x08000000>;
+               reg = <1 0 4>;  /* CS1, offset 0, IO size 4 */
                ti,nand-ecc-opt = "sw";
                nand-bus-width = <8>;
                gpmc,cs-on-ns = <0>;
                linux,mtd-name= "samsung,kfm2g16q2m-deb8";
                #address-cells = <1>;
                #size-cells = <1>;
-               reg = <2 0 0x10000000>;
+               reg = <2 0 0x20000>;    /* CS2, offset 0, IO size 4 */
 
                gpmc,device-width = <2>;
                gpmc,mux-add-data = <2>;
index 6dc84d9f9b4c4a170f0b788f19ee9850333114d8..1a78f013f37ab8e2ee4de5361dc16bdeec2b2516 100644 (file)
 
 &hdmi {
        status = "ok";
+       vdda-supply = <&vdac>;
 
        pinctrl-names = "default";
        pinctrl-0 = <&dss_hdmi_pins>;
index 878c979203d09ea403577317e3211e85329303fe..a46eab82d2da2943f1ddd500e58707190e33a111 100644 (file)
                        reg = <0x4a0f4000 0x200>;
                        interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mailbox";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <3>;
                        ti,mbox-num-fifos = <8>;
                        mbox_ipu: mbox_ipu {
index 256b7f69e45b4cba84b2bfa85543545374ce6f02..b321fdf42c9f3c51e3a59d4b51b27a08f4fcaba4 100644 (file)
                        reg = <0x4a0f4000 0x200>;
                        interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mailbox";
+                       #mbox-cells = <1>;
                        ti,mbox-num-users = <3>;
                        ti,mbox-num-fifos = <8>;
                        mbox_ipu: mbox_ipu {
index a3ed23c0a8f58abd3e2d035042dceb658b528bee..1518c5bcca33d8d1052c7fe70f97b3f043c33da3 100644 (file)
@@ -21,7 +21,8 @@
        };
 
        chosen {
-               bootargs = "console=ttySC2,115200 ignore_loglevel rw root=/dev/nfs ip=dhcp";
+               bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
+               stdout-path = &scif2;
        };
 
        memory {
index 801a556e264bcc950eb6eb3db55a61c9e92c1c0f..277e73c110e5d40c38953d3a3ea5079e6ec755f3 100644 (file)
                        clock-output-names = "usb_x1";
                };
 
-               /* Special CPG clocks */
-               cpg_clocks: cpg_clocks@fcfe0000 {
-                       #clock-cells = <1>;
-                       compatible = "renesas,r7s72100-cpg-clocks",
-                                    "renesas,rz-cpg-clocks";
-                       reg = <0xfcfe0000 0x18>;
-                       clocks = <&extal_clk>, <&usb_x1_clk>;
-                       clock-output-names = "pll", "i", "g";
-               };
-
                /* Fixed factor clocks */
                b_clk: b_clk {
                        #clock-cells = <0>;
                        clock-output-names = "p0";
                };
 
+               /* Special CPG clocks */
+               cpg_clocks: cpg_clocks@fcfe0000 {
+                       #clock-cells = <1>;
+                       compatible = "renesas,r7s72100-cpg-clocks",
+                                    "renesas,rz-cpg-clocks";
+                       reg = <0xfcfe0000 0x18>;
+                       clocks = <&extal_clk>, <&usb_x1_clk>;
+                       clock-output-names = "pll", "i", "g";
+               };
+
                /* MSTP clocks */
                mstp3_clks: mstp3_clks@fcfe0420 {
                        #clock-cells = <1>;
                };
        };
 
-       gic: interrupt-controller@e8201000 {
-               compatible = "arm,cortex-a9-gic";
-               #interrupt-cells = <3>;
-               #address-cells = <0>;
-               interrupt-controller;
-               reg = <0xe8201000 0x1000>,
-                       <0xe8202000 0x1000>;
-       };
-
-       i2c0: i2c@fcfee000 {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
-               reg = <0xfcfee000 0x44>;
-               interrupts = <0 157 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 158 IRQ_TYPE_EDGE_RISING>,
-                            <0 159 IRQ_TYPE_EDGE_RISING>,
-                            <0 160 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 161 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 162 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 163 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 164 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&mstp9_clks R7S72100_CLK_I2C0>;
-               clock-frequency = <100000>;
-               status = "disabled";
-       };
-
-       i2c1: i2c@fcfee400 {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
-               reg = <0xfcfee400 0x44>;
-               interrupts = <0 165 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 166 IRQ_TYPE_EDGE_RISING>,
-                            <0 167 IRQ_TYPE_EDGE_RISING>,
-                            <0 168 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 169 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 170 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 171 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 172 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&mstp9_clks R7S72100_CLK_I2C1>;
-               clock-frequency = <100000>;
-               status = "disabled";
-       };
-
-       i2c2: i2c@fcfee800 {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
-               reg = <0xfcfee800 0x44>;
-               interrupts = <0 173 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 174 IRQ_TYPE_EDGE_RISING>,
-                            <0 175 IRQ_TYPE_EDGE_RISING>,
-                            <0 176 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 177 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 178 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 179 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 180 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&mstp9_clks R7S72100_CLK_I2C2>;
-               clock-frequency = <100000>;
-               status = "disabled";
-       };
-
-       i2c3: i2c@fcfeec00 {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
-               reg = <0xfcfeec00 0x44>;
-               interrupts = <0 181 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 182 IRQ_TYPE_EDGE_RISING>,
-                            <0 183 IRQ_TYPE_EDGE_RISING>,
-                            <0 184 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 185 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 186 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 187 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 188 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&mstp9_clks R7S72100_CLK_I2C3>;
-               clock-frequency = <100000>;
-               status = "disabled";
-       };
-
-       mtu2: timer@fcff0000 {
-               compatible = "renesas,mtu2-r7s72100", "renesas,mtu2";
-               reg = <0xfcff0000 0x400>;
-               interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "tgi0a";
-               clocks = <&mstp3_clks R7S72100_CLK_MTU2>;
-               clock-names = "fck";
-               status = "disabled";
-       };
-
        scif0: serial@e8007000 {
                compatible = "renesas,scif-r7s72100", "renesas,scif";
                reg = <0xe8007000 64>;
                #size-cells = <0>;
                status = "disabled";
        };
+
+       gic: interrupt-controller@e8201000 {
+               compatible = "arm,cortex-a9-gic";
+               #interrupt-cells = <3>;
+               #address-cells = <0>;
+               interrupt-controller;
+               reg = <0xe8201000 0x1000>,
+                       <0xe8202000 0x1000>;
+       };
+
+       i2c0: i2c@fcfee000 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
+               reg = <0xfcfee000 0x44>;
+               interrupts = <0 157 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 158 IRQ_TYPE_EDGE_RISING>,
+                            <0 159 IRQ_TYPE_EDGE_RISING>,
+                            <0 160 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 161 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 162 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 163 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 164 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp9_clks R7S72100_CLK_I2C0>;
+               clock-frequency = <100000>;
+               status = "disabled";
+       };
+
+       i2c1: i2c@fcfee400 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
+               reg = <0xfcfee400 0x44>;
+               interrupts = <0 165 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 166 IRQ_TYPE_EDGE_RISING>,
+                            <0 167 IRQ_TYPE_EDGE_RISING>,
+                            <0 168 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 169 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 170 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 171 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 172 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp9_clks R7S72100_CLK_I2C1>;
+               clock-frequency = <100000>;
+               status = "disabled";
+       };
+
+       i2c2: i2c@fcfee800 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
+               reg = <0xfcfee800 0x44>;
+               interrupts = <0 173 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 174 IRQ_TYPE_EDGE_RISING>,
+                            <0 175 IRQ_TYPE_EDGE_RISING>,
+                            <0 176 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 177 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 178 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 179 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 180 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp9_clks R7S72100_CLK_I2C2>;
+               clock-frequency = <100000>;
+               status = "disabled";
+       };
+
+       i2c3: i2c@fcfeec00 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
+               reg = <0xfcfeec00 0x44>;
+               interrupts = <0 181 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 182 IRQ_TYPE_EDGE_RISING>,
+                            <0 183 IRQ_TYPE_EDGE_RISING>,
+                            <0 184 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 185 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 186 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 187 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 188 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp9_clks R7S72100_CLK_I2C3>;
+               clock-frequency = <100000>;
+               status = "disabled";
+       };
+
+       mtu2: timer@fcff0000 {
+               compatible = "renesas,mtu2-r7s72100", "renesas,mtu2";
+               reg = <0xfcff0000 0x400>;
+               interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "tgi0a";
+               clocks = <&mstp3_clks R7S72100_CLK_MTU2>;
+               clock-names = "fck";
+               status = "disabled";
+       };
 };
index a860f32bca27fd8d089bb93f202b9b196dbcf6ac..84e05f713c5425a6007cdae230beee5972c21080 100644 (file)
@@ -21,7 +21,8 @@
        };
 
        chosen {
-               bootargs = "console=ttySC0,115200 ignore_loglevel rw";
+               bootargs = "ignore_loglevel rw";
+               stdout-path = &scifa0;
        };
 
        memory@40000000 {
        voltage-tolerance = <1>; /* 1% */
 };
 
+&cmt1 {
+       status = "okay";
+};
+
 &pfc {
        scifa0_pins: serial0 {
                renesas,groups = "scifa0_data";
index ef152e384822c8f34633568a9002f2d1507fca21..5ac57babc3b95c9999370c86a1967441afdef7c1 100644 (file)
                };
        };
 
-       gic: interrupt-controller@f1001000 {
-               compatible = "arm,cortex-a15-gic";
-               #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(4) | IRQ_TYPE_LEVEL_HIGH)>;
-       };
-
        timer {
                compatible = "arm,armv7-timer";
                interrupts = <1 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
                             <1 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
        };
 
+       dmac: dma-multiplexer {
+               compatible = "renesas,shdma-mux";
+               #dma-cells = <1>;
+               dma-channels = <20>;
+               dma-requests = <256>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               dma0: dma-controller@e6700020 {
+                       compatible = "renesas,shdma-r8a73a4";
+                       reg = <0 0xe6700020 0 0x89e0>;
+                       interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH
+                                       0 200 IRQ_TYPE_LEVEL_HIGH
+                                       0 201 IRQ_TYPE_LEVEL_HIGH
+                                       0 202 IRQ_TYPE_LEVEL_HIGH
+                                       0 203 IRQ_TYPE_LEVEL_HIGH
+                                       0 204 IRQ_TYPE_LEVEL_HIGH
+                                       0 205 IRQ_TYPE_LEVEL_HIGH
+                                       0 206 IRQ_TYPE_LEVEL_HIGH
+                                       0 207 IRQ_TYPE_LEVEL_HIGH
+                                       0 208 IRQ_TYPE_LEVEL_HIGH
+                                       0 209 IRQ_TYPE_LEVEL_HIGH
+                                       0 210 IRQ_TYPE_LEVEL_HIGH
+                                       0 211 IRQ_TYPE_LEVEL_HIGH
+                                       0 212 IRQ_TYPE_LEVEL_HIGH
+                                       0 213 IRQ_TYPE_LEVEL_HIGH
+                                       0 214 IRQ_TYPE_LEVEL_HIGH
+                                       0 215 IRQ_TYPE_LEVEL_HIGH
+                                       0 216 IRQ_TYPE_LEVEL_HIGH
+                                       0 217 IRQ_TYPE_LEVEL_HIGH
+                                       0 218 IRQ_TYPE_LEVEL_HIGH
+                                       0 219 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "error",
+                                       "ch0", "ch1", "ch2", "ch3",
+                                       "ch4", "ch5", "ch6", "ch7",
+                                       "ch8", "ch9", "ch10", "ch11",
+                                       "ch12", "ch13", "ch14", "ch15",
+                                       "ch16", "ch17", "ch18", "ch19";
+               };
+       };
+
+       pfc: pfc@e6050000 {
+               compatible = "renesas,pfc-r8a73a4";
+               reg = <0 0xe6050000 0 0x9000>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               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>,
+                       <&irqc0  8 0>, <&irqc0  9 0>, <&irqc0 10 0>, <&irqc0 11 0>,
+                       <&irqc0 12 0>, <&irqc0 13 0>, <&irqc0 14 0>, <&irqc0 15 0>,
+                       <&irqc0 16 0>, <&irqc0 17 0>, <&irqc0 18 0>, <&irqc0 19 0>,
+                       <&irqc0 20 0>, <&irqc0 21 0>, <&irqc0 22 0>, <&irqc0 23 0>,
+                       <&irqc0 24 0>, <&irqc0 25 0>, <&irqc0 26 0>, <&irqc0 27 0>,
+                       <&irqc0 28 0>, <&irqc0 29 0>, <&irqc0 30 0>, <&irqc0 31 0>,
+                       <&irqc1  0 0>, <&irqc1  1 0>, <&irqc1  2 0>, <&irqc1  3 0>,
+                       <&irqc1  4 0>, <&irqc1  5 0>, <&irqc1  6 0>, <&irqc1  7 0>,
+                       <&irqc1  8 0>, <&irqc1  9 0>, <&irqc1 10 0>, <&irqc1 11 0>,
+                       <&irqc1 12 0>, <&irqc1 13 0>, <&irqc1 14 0>, <&irqc1 15 0>,
+                       <&irqc1 16 0>, <&irqc1 17 0>, <&irqc1 18 0>, <&irqc1 19 0>,
+                       <&irqc1 20 0>, <&irqc1 21 0>, <&irqc1 22 0>, <&irqc1 23 0>,
+                       <&irqc1 24 0>, <&irqc1 25 0>;
+       };
+
+       i2c5: i2c@e60b0000 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "renesas,iic-r8a73a4", "renesas,rmobile-iic";
+               reg = <0 0xe60b0000 0 0x428>;
+               interrupts = <0 179 IRQ_TYPE_LEVEL_HIGH>;
+
+               status = "disabled";
+       };
+
+       cmt1: timer@e6130000 {
+               compatible = "renesas,cmt-48-r8a73a4", "renesas,cmt-48-gen2";
+               reg = <0 0xe6130000 0 0x1004>;
+               interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>;
+
+               renesas,channels-mask = <0xff>;
+
+               status = "disabled";
+       };
+
        irqc0: interrupt-controller@e61c0000 {
                compatible = "renesas,irqc-r8a73a4", "renesas,irqc";
                #interrupt-cells = <2>;
                             <0 57 IRQ_TYPE_LEVEL_HIGH>;
        };
 
-       dmac: dma-multiplexer@0 {
-               compatible = "renesas,shdma-mux";
-               #dma-cells = <1>;
-               dma-channels = <20>;
-               dma-requests = <256>;
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-
-               dma0: dma-controller@e6700020 {
-                       compatible = "renesas,shdma-r8a73a4";
-                       reg = <0 0xe6700020 0 0x89e0>;
-                       interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH
-                                       0 200 IRQ_TYPE_LEVEL_HIGH
-                                       0 201 IRQ_TYPE_LEVEL_HIGH
-                                       0 202 IRQ_TYPE_LEVEL_HIGH
-                                       0 203 IRQ_TYPE_LEVEL_HIGH
-                                       0 204 IRQ_TYPE_LEVEL_HIGH
-                                       0 205 IRQ_TYPE_LEVEL_HIGH
-                                       0 206 IRQ_TYPE_LEVEL_HIGH
-                                       0 207 IRQ_TYPE_LEVEL_HIGH
-                                       0 208 IRQ_TYPE_LEVEL_HIGH
-                                       0 209 IRQ_TYPE_LEVEL_HIGH
-                                       0 210 IRQ_TYPE_LEVEL_HIGH
-                                       0 211 IRQ_TYPE_LEVEL_HIGH
-                                       0 212 IRQ_TYPE_LEVEL_HIGH
-                                       0 213 IRQ_TYPE_LEVEL_HIGH
-                                       0 214 IRQ_TYPE_LEVEL_HIGH
-                                       0 215 IRQ_TYPE_LEVEL_HIGH
-                                       0 216 IRQ_TYPE_LEVEL_HIGH
-                                       0 217 IRQ_TYPE_LEVEL_HIGH
-                                       0 218 IRQ_TYPE_LEVEL_HIGH
-                                       0 219 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "error",
-                                       "ch0", "ch1", "ch2", "ch3",
-                                       "ch4", "ch5", "ch6", "ch7",
-                                       "ch8", "ch9", "ch10", "ch11",
-                                       "ch12", "ch13", "ch14", "ch15",
-                                       "ch16", "ch17", "ch18", "ch19";
-               };
-       };
-
        thermal@e61f0000 {
                compatible = "renesas,thermal-r8a73a4", "renesas,rcar-thermal";
                reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>,
        i2c0: i2c@e6500000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "renesas,rmobile-iic";
+               compatible = "renesas,iic-r8a73a4", "renesas,rmobile-iic";
                reg = <0 0xe6500000 0 0x428>;
                interrupts = <0 174 IRQ_TYPE_LEVEL_HIGH>;
                status = "disabled";
        i2c1: i2c@e6510000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "renesas,rmobile-iic";
+               compatible = "renesas,iic-r8a73a4", "renesas,rmobile-iic";
                reg = <0 0xe6510000 0 0x428>;
                interrupts = <0 175 IRQ_TYPE_LEVEL_HIGH>;
                status = "disabled";
        i2c2: i2c@e6520000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "renesas,rmobile-iic";
+               compatible = "renesas,iic-r8a73a4", "renesas,rmobile-iic";
                reg = <0 0xe6520000 0 0x428>;
                interrupts = <0 176 IRQ_TYPE_LEVEL_HIGH>;
                status = "disabled";
        i2c3: i2c@e6530000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "renesas,rmobile-iic";
+               compatible = "renesas,iic-r8a73a4", "renesas,rmobile-iic";
                reg = <0 0xe6530000 0 0x428>;
                interrupts = <0 177 IRQ_TYPE_LEVEL_HIGH>;
                status = "disabled";
        i2c4: i2c@e6540000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "renesas,rmobile-iic";
+               compatible = "renesas,iic-r8a73a4", "renesas,rmobile-iic";
                reg = <0 0xe6540000 0 0x428>;
                interrupts = <0 178 IRQ_TYPE_LEVEL_HIGH>;
                status = "disabled";
        };
 
-       i2c5: i2c@e60b0000 {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               compatible = "renesas,rmobile-iic";
-               reg = <0 0xe60b0000 0 0x428>;
-               interrupts = <0 179 IRQ_TYPE_LEVEL_HIGH>;
-               status = "disabled";
-       };
-
        i2c6: i2c@e6550000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "renesas,rmobile-iic";
+               compatible = "renesas,iic-r8a73a4", "renesas,rmobile-iic";
                reg = <0 0xe6550000 0 0x428>;
                interrupts = <0 184 IRQ_TYPE_LEVEL_HIGH>;
                status = "disabled";
        i2c7: i2c@e6560000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "renesas,rmobile-iic";
+               compatible = "renesas,iic-r8a73a4", "renesas,rmobile-iic";
                reg = <0 0xe6560000 0 0x428>;
                interrupts = <0 185 IRQ_TYPE_LEVEL_HIGH>;
                status = "disabled";
        i2c8: i2c@e6570000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "renesas,rmobile-iic";
+               compatible = "renesas,iic-r8a73a4", "renesas,rmobile-iic";
                reg = <0 0xe6570000 0 0x428>;
                interrupts = <0 173 IRQ_TYPE_LEVEL_HIGH>;
                status = "disabled";
        };
 
+       scifb0: serial@e6c20000 {
+               compatible = "renesas,scifb-r8a73a4", "renesas,scifb";
+               reg = <0 0xe6c20000 0 0x100>;
+               interrupts = <0 148 IRQ_TYPE_LEVEL_HIGH>;
+               status = "disabled";
+       };
+
+       scifb1: serial@e6c30000 {
+               compatible = "renesas,scifb-r8a73a4", "renesas,scifb";
+               reg = <0 0xe6c30000 0 0x100>;
+               interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH>;
+               status = "disabled";
+       };
+
        scifa0: serial@e6c40000 {
                compatible = "renesas,scifa-r8a73a4", "renesas,scifa";
                reg = <0 0xe6c40000 0 0x100>;
                status = "disabled";
        };
 
-       scifb2: serial@e6c20000 {
-               compatible = "renesas,scifb-r8a73a4", "renesas,scifb";
-               reg = <0 0xe6c20000 0 0x100>;
-               interrupts = <0 148 IRQ_TYPE_LEVEL_HIGH>;
-               status = "disabled";
-       };
-
-       scifb3: serial@e6c30000 {
-               compatible = "renesas,scifb-r8a73a4", "renesas,scifb";
-               reg = <0 0xe6c30000 0 0x100>;
-               interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH>;
-               status = "disabled";
-       };
-
-       scifb4: serial@e6ce0000 {
+       scifb2: serial@e6ce0000 {
                compatible = "renesas,scifb-r8a73a4", "renesas,scifb";
                reg = <0 0xe6ce0000 0 0x100>;
                interrupts = <0 150 IRQ_TYPE_LEVEL_HIGH>;
                status = "disabled";
        };
 
-       scifb5: serial@e6cf0000 {
+       scifb3: serial@e6cf0000 {
                compatible = "renesas,scifb-r8a73a4", "renesas,scifb";
                reg = <0 0xe6cf0000 0 0x100>;
                interrupts = <0 151 IRQ_TYPE_LEVEL_HIGH>;
                status = "disabled";
        };
 
-       mmcif0: mmc@ee200000 {
-               compatible = "renesas,sh-mmcif";
-               reg = <0 0xee200000 0 0x80>;
-               interrupts = <0 169 IRQ_TYPE_LEVEL_HIGH>;
-               reg-io-width = <4>;
-               status = "disabled";
-       };
-
-       mmcif1: mmc@ee220000 {
-               compatible = "renesas,sh-mmcif";
-               reg = <0 0xee220000 0 0x80>;
-               interrupts = <0 170 IRQ_TYPE_LEVEL_HIGH>;
-               reg-io-width = <4>;
-               status = "disabled";
-       };
-
-       pfc: pfc@e6050000 {
-               compatible = "renesas,pfc-r8a73a4";
-               reg = <0 0xe6050000 0 0x9000>;
-               gpio-controller;
-               #gpio-cells = <2>;
-               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>,
-                       <&irqc0  8 0>, <&irqc0  9 0>, <&irqc0 10 0>, <&irqc0 11 0>,
-                       <&irqc0 12 0>, <&irqc0 13 0>, <&irqc0 14 0>, <&irqc0 15 0>,
-                       <&irqc0 16 0>, <&irqc0 17 0>, <&irqc0 18 0>, <&irqc0 19 0>,
-                       <&irqc0 20 0>, <&irqc0 21 0>, <&irqc0 22 0>, <&irqc0 23 0>,
-                       <&irqc0 24 0>, <&irqc0 25 0>, <&irqc0 26 0>, <&irqc0 27 0>,
-                       <&irqc0 28 0>, <&irqc0 29 0>, <&irqc0 30 0>, <&irqc0 31 0>,
-                       <&irqc1  0 0>, <&irqc1  1 0>, <&irqc1  2 0>, <&irqc1  3 0>,
-                       <&irqc1  4 0>, <&irqc1  5 0>, <&irqc1  6 0>, <&irqc1  7 0>,
-                       <&irqc1  8 0>, <&irqc1  9 0>, <&irqc1 10 0>, <&irqc1 11 0>,
-                       <&irqc1 12 0>, <&irqc1 13 0>, <&irqc1 14 0>, <&irqc1 15 0>,
-                       <&irqc1 16 0>, <&irqc1 17 0>, <&irqc1 18 0>, <&irqc1 19 0>,
-                       <&irqc1 20 0>, <&irqc1 21 0>, <&irqc1 22 0>, <&irqc1 23 0>,
-                       <&irqc1 24 0>, <&irqc1 25 0>;
-       };
-
        sdhi0: sd@ee100000 {
                compatible = "renesas,sdhi-r8a73a4";
                reg = <0 0xee100000 0 0x100>;
                cap-sd-highspeed;
                status = "disabled";
        };
+
+       mmcif0: mmc@ee200000 {
+               compatible = "renesas,sh-mmcif";
+               reg = <0 0xee200000 0 0x80>;
+               interrupts = <0 169 IRQ_TYPE_LEVEL_HIGH>;
+               reg-io-width = <4>;
+               status = "disabled";
+       };
+
+       mmcif1: mmc@ee220000 {
+               compatible = "renesas,sh-mmcif";
+               reg = <0 0xee220000 0 0x80>;
+               interrupts = <0 170 IRQ_TYPE_LEVEL_HIGH>;
+               reg-io-width = <4>;
+               status = "disabled";
+       };
+
+       gic: interrupt-controller@f1001000 {
+               compatible = "arm,cortex-a15-gic";
+               #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(4) | IRQ_TYPE_LEVEL_HIGH)>;
+       };
 };
index effb7b46f13172d5cb30180caa283a05fd9a5a72..d4af4d86c6b03d01bbc5ba75b015f76d5e5e4cd6 100644 (file)
@@ -25,6 +25,7 @@
 
        chosen {
                bootargs = "console=tty0 console=ttySC1,115200 earlyprintk=sh-sci.1,115200 ignore_loglevel root=/dev/nfs ip=dhcp rw";
+               stdout-path = &scifa1;
        };
 
        memory {
@@ -77,7 +78,7 @@
                regulator-boot-on;
        };
 
-       gpio-keys {
+       keyboard {
                compatible = "gpio-keys";
 
                power-key {
 
        status = "okay";
 };
+
+&tmu0 {
+       status = "okay";
+};
index d46c213a17ad5de43972fd4f7b28beda61b53347..aec8da89ef9ac7667b94ea83f510c8346fe3ca55 100644 (file)
@@ -71,6 +71,7 @@
                              0 149 IRQ_TYPE_LEVEL_HIGH
                              0 149 IRQ_TYPE_LEVEL_HIGH
                              0 149 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp2_clks R8A7740_CLK_INTCA>;
        };
 
        /* irqpin1: IRQ8 - IRQ15 */
@@ -91,6 +92,7 @@
                              0 149 IRQ_TYPE_LEVEL_HIGH
                              0 149 IRQ_TYPE_LEVEL_HIGH
                              0 149 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp2_clks R8A7740_CLK_INTCA>;
        };
 
        /* irqpin2: IRQ16 - IRQ23 */
                              0 149 IRQ_TYPE_LEVEL_HIGH
                              0 149 IRQ_TYPE_LEVEL_HIGH
                              0 149 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp2_clks R8A7740_CLK_INTCA>;
        };
 
        /* irqpin3: IRQ24 - IRQ31 */
                              0 149 IRQ_TYPE_LEVEL_HIGH
                              0 149 IRQ_TYPE_LEVEL_HIGH
                              0 149 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp2_clks R8A7740_CLK_INTCA>;
        };
 
        ether: ethernet@e9a00000 {
                compatible = "renesas,scifa-r8a7740", "renesas,scifa";
                reg = <0xe6c60000 0x100>;
                interrupts = <0 102 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&mstp2_clks R8A7740_CLK_SCIFA0>;
+               clocks = <&mstp2_clks R8A7740_CLK_SCIFA2>;
                clock-names = "sci_ick";
                status = "disabled";
        };
                status = "disabled";
        };
 
+       tmu0: timer@fff80000 {
+               compatible = "renesas,tmu-r8a7740", "renesas,tmu";
+               reg = <0xfff80000 0x2c>;
+               interrupts = <0 198 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 199 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 200 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp1_clks R8A7740_CLK_TMU0>;
+               clock-names = "fck";
+
+               #renesas,channels = <3>;
+
+               status = "disabled";
+       };
+
+       tmu1: timer@fff90000 {
+               compatible = "renesas,tmu-r8a7740", "renesas,tmu";
+               reg = <0xfff90000 0x2c>;
+               interrupts = <0 170 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 171 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 172 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp1_clks R8A7740_CLK_TMU1>;
+               clock-names = "fck";
+
+               #renesas,channels = <3>;
+
+               status = "disabled";
+       };
+
        clocks {
                #address-cells = <1>;
                #size-cells = <1>;
                mstp2_clks: mstp2_clks@e6150138 {
                        compatible = "renesas,r8a7740-mstp-clocks", "renesas,cpg-mstp-clocks";
                        reg = <0xe6150138 4>, <0xe6150040 4>;
-                       clocks = <&sub_clk>, <&sub_clk>,
-                                <&cpg_clocks R8A7740_CLK_HP>,
+                       clocks = <&sub_clk>, <&cpg_clocks R8A7740_CLK_HP>,
+                                <&sub_clk>, <&cpg_clocks R8A7740_CLK_HP>,
                                 <&cpg_clocks R8A7740_CLK_HP>,
                                 <&cpg_clocks R8A7740_CLK_HP>,
                                 <&cpg_clocks R8A7740_CLK_HP>,
                                 <&sub_clk>;
                        #clock-cells = <1>;
                        renesas,clock-indices = <
-                               R8A7740_CLK_SCIFA6 R8A7740_CLK_SCIFA7
+                               R8A7740_CLK_SCIFA6 R8A7740_CLK_INTCA
+                               R8A7740_CLK_SCIFA7
                                R8A7740_CLK_DMAC1 R8A7740_CLK_DMAC2
                                R8A7740_CLK_DMAC3 R8A7740_CLK_USBDMAC
                                R8A7740_CLK_SCIFA5 R8A7740_CLK_SCIFB
                                R8A7740_CLK_SCIFA4
                        >;
                        clock-output-names =
-                               "scifa6", "scifa7", "dmac1", "dmac2", "dmac3",
+                               "scifa6", "intca",
+                               "scifa7", "dmac1", "dmac2", "dmac3",
                                "usbdmac", "scifa5", "scifb", "scifa0", "scifa1",
                                "scifa2", "scifa3", "scifa4";
                };
index 3342c74c5de890b1aa845a8a32835bd1dd9fd7a9..04c0c37bb7843997f127535e7f73e93cbf8bb8bb 100644 (file)
@@ -28,7 +28,8 @@
        };
 
        chosen {
-               bootargs = "console=ttySC0,115200 ignore_loglevel root=/dev/nfs ip=dhcp rw";
+               bootargs = "ignore_loglevel root=/dev/nfs ip=dhcp rw";
+               stdout-path = &scif0;
        };
 
        memory {
        status = "okay";
 };
 
+&tmu0 {
+       status = "okay";
+};
+
 &pfc {
        scif0_pins: serial0 {
                renesas,groups = "scif0_data_a", "scif0_ctrl";
index 315ec62cb96b9ab5a9aed287ae2edd76a8c40608..ef8533910029620e5cb974bdafece1c2f90a3e1d 100644 (file)
                status = "disabled";
        };
 
+       tmu0: timer@ffd80000 {
+               compatible = "renesas,tmu-r8a7778", "renesas,tmu";
+               reg = <0xffd80000 0x30>;
+               interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 33 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 34 IRQ_TYPE_LEVEL_HIGH>;
+
+               #renesas,channels = <3>;
+
+               status = "disabled";
+       };
+
+       tmu1: timer@ffd81000 {
+               compatible = "renesas,tmu-r8a7778", "renesas,tmu";
+               reg = <0xffd81000 0x30>;
+               interrupts = <0 36 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 37 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 38 IRQ_TYPE_LEVEL_HIGH>;
+
+               #renesas,channels = <3>;
+
+               status = "disabled";
+       };
+
+       tmu2: timer@ffd82000 {
+               compatible = "renesas,tmu-r8a7778", "renesas,tmu";
+               reg = <0xffd82000 0x30>;
+               interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 41 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 42 IRQ_TYPE_LEVEL_HIGH>;
+
+               #renesas,channels = <3>;
+
+               status = "disabled";
+       };
+
        scif0: serial@ffe40000 {
                compatible = "renesas,scif-r8a7778", "renesas,scif";
                reg = <0xffe40000 0x100>;
                compatible = "renesas,sdhi-r8a7778";
                reg = <0xffe4c000 0x100>;
                interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>;
-               cap-sd-highspeed;
-               cap-sdio-irq;
                status = "disabled";
        };
 
                compatible = "renesas,sdhi-r8a7778";
                reg = <0xffe4d000 0x100>;
                interrupts = <0 88 IRQ_TYPE_LEVEL_HIGH>;
-               cap-sd-highspeed;
-               cap-sdio-irq;
                status = "disabled";
        };
 
                compatible = "renesas,sdhi-r8a7778";
                reg = <0xffe4f000 0x100>;
                interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
-               cap-sd-highspeed;
-               cap-sdio-irq;
                status = "disabled";
        };
 
index c160404e4d405eb2acedc5affd96781ee8bca162..e83d40e24bcd48113d6bd1051f44413710af8b59 100644 (file)
@@ -25,6 +25,7 @@
 
        chosen {
                bootargs = "console=ttySC2,115200 ignore_loglevel root=/dev/nfs ip=on";
+               stdout-path = &scif2;
        };
 
        memory {
                        gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>;
                };
        };
+
+       vga-encoder {
+               compatible = "adi,adv7123";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               vga_enc_in: endpoint {
+                                       remote-endpoint = <&du_out_rgb0>;
+                               };
+                       };
+                       port@1 {
+                               reg = <1>;
+                               vga_enc_out: endpoint {
+                                       remote-endpoint = <&vga_in>;
+                               };
+                       };
+               };
+       };
+
+       vga {
+               compatible = "vga-connector";
+
+               port {
+                       vga_in: endpoint {
+                               remote-endpoint = <&vga_enc_out>;
+                       };
+               };
+       };
+
+       lvds-encoder {
+               compatible = "thine,thc63lvdm83d";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               lvds_enc_in: endpoint {
+                                       remote-endpoint = <&du_out_rgb1>;
+                               };
+                       };
+                       port@1 {
+                               reg = <1>;
+                               lvds_connector: endpoint {
+                               };
+                       };
+               };
+       };
+};
+
+&du {
+       pinctrl-0 = <&du_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       ports {
+               port@0 {
+                       endpoint {
+                               remote-endpoint = <&vga_enc_in>;
+                       };
+               };
+               port@1 {
+                       endpoint {
+                               remote-endpoint = <&lvds_enc_in>;
+                       };
+               };
+       };
 };
 
 &irqpin0 {
 };
 
 &pfc {
+       du_pins: du {
+               du0 {
+                       renesas,groups = "du0_rgb888", "du0_sync_1", "du0_clk_out_0";
+                       renesas,function = "du0";
+               };
+               du1 {
+                       renesas,groups = "du1_rgb666", "du1_sync_1", "du1_clk_out";
+                       renesas,function = "du1";
+               };
+       };
+
        lan0_pins: lan0 {
                intc {
                        renesas,groups = "intc_irq1_b";
index 7cfba9aa1b415cc180dae8f0a75901fb5921f488..ede9a29e4bc601ae15d3595014235da5b5436f3a 100644 (file)
        };
 
        sata: sata@fc600000 {
-               compatible = "renesas,rcar-sata";
+               compatible = "renesas,sata-r8a7779", "renesas,rcar-sata";
                reg = <0xfc600000 0x2000>;
                interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp1_clks R8A7779_CLK_SATA>;
                reg = <0xffe4c000 0x100>;
                interrupts = <0 104 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp3_clks R8A7779_CLK_SDHI0>;
-               cap-sd-highspeed;
-               cap-sdio-irq;
                status = "disabled";
        };
 
                reg = <0xffe4d000 0x100>;
                interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp3_clks R8A7779_CLK_SDHI1>;
-               cap-sd-highspeed;
-               cap-sdio-irq;
                status = "disabled";
        };
 
                reg = <0xffe4e000 0x100>;
                interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp3_clks R8A7779_CLK_SDHI2>;
-               cap-sd-highspeed;
-               cap-sdio-irq;
                status = "disabled";
        };
 
                reg = <0xffe4f000 0x100>;
                interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp3_clks R8A7779_CLK_SDHI3>;
-               cap-sd-highspeed;
-               cap-sdio-irq;
                status = "disabled";
        };
 
                status = "disabled";
        };
 
+       du: display@fff80000 {
+               compatible = "renesas,du-r8a7779";
+               reg = <0 0xfff80000 0 0x40000>;
+               interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp1_clks R8A7779_CLK_DU>;
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               du_out_rgb0: endpoint {
+                               };
+                       };
+                       port@1 {
+                               reg = <1>;
+                               du_out_rgb1: endpoint {
+                               };
+                       };
+               };
+       };
+
        clocks {
                #address-cells = <1>;
                #size-cells = <1>;
index 69098b906b3919d2653dd244b6cc3220d6dfb741..636d53bb87a27062b79afae3f009629e52fd63d3 100644 (file)
@@ -9,6 +9,34 @@
  * kind, whether express or implied.
  */
 
+/*
+ * SSI-AK4643
+ *
+ * SW1: 1: AK4643
+ *      2: CN22
+ *      3: ADV7511
+ *
+ * This command is required when Playback/Capture
+ *
+ *     amixer set "LINEOUT Mixer DACL" on
+ *     amixer set "DVC Out" 100%
+ *     amixer set "DVC In" 100%
+ *
+ * You can use Mute
+ *
+ *     amixer set "DVC Out Mute" on
+ *     amixer set "DVC In Mute" on
+ *
+ * You can use Volume Ramp
+ *
+ *     amixer set "DVC Out Ramp Up Rate"   "0.125 dB/64 steps"
+ *     amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps"
+ *     amixer set "DVC Out Ramp" on
+ *     aplay xxx.wav &
+ *     amixer set "DVC Out"  80%  // Volume Down
+ *     amixer set "DVC Out" 100%  // Volume Up
+ */
+
 /dts-v1/;
 #include "r8a7790.dtsi"
 #include <dt-bindings/gpio/gpio.h>
        compatible = "renesas,lager", "renesas,r8a7790";
 
        aliases {
-               serial6 = &scif0;
-               serial7 = &scif1;
+               serial6 = &scifa0;
+               serial7 = &scifa1;
        };
 
        chosen {
                bootargs = "console=ttySC6,115200 ignore_loglevel rw root=/dev/nfs ip=dhcp";
+               stdout-path = &scifa0;
        };
 
        memory@40000000 {
@@ -42,7 +71,7 @@
                #size-cells = <1>;
        };
 
-       gpio_keys {
+       keyboard {
                compatible = "gpio-keys";
 
                button@1 {
                states = <3300000 1
                          1800000 0>;
        };
+
+       sound {
+               compatible = "simple-audio-card";
+
+               simple-audio-card,format = "left_j";
+               simple-audio-card,bitclock-master = <&sndcodec>;
+               simple-audio-card,frame-master = <&sndcodec>;
+
+               sndcpu: simple-audio-card,cpu {
+                       sound-dai = <&rcar_sound>;
+               };
+
+               sndcodec: simple-audio-card,codec {
+                       sound-dai = <&ak4643>;
+                       system-clock-frequency = <11289600>;
+               };
+       };
+
+       vga-encoder {
+               compatible = "adi,adv7123";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               adv7123_in: endpoint {
+                                       remote-endpoint = <&du_out_rgb>;
+                               };
+                       };
+                       port@1 {
+                               reg = <1>;
+                               adv7123_out: endpoint {
+                                       remote-endpoint = <&vga_in>;
+                               };
+                       };
+               };
+       };
+
+       vga {
+               compatible = "vga-connector";
+
+               port {
+                       vga_in: endpoint {
+                               remote-endpoint = <&adv7123_out>;
+                       };
+               };
+       };
+};
+
+&du {
+       pinctrl-0 = <&du_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       ports {
+               port@0 {
+                       endpoint {
+                               remote-endpoint = <&adv7123_in>;
+                       };
+               };
+               port@2 {
+                       lvds_connector: endpoint {
+                       };
+               };
+       };
 };
 
 &extal_clk {
 };
 
 &pfc {
-       pinctrl-0 = <&du_pins>;
-       pinctrl-names = "default";
-
        du_pins: du {
                renesas,groups = "du_rgb666", "du_sync_1", "du_clk_out_0";
                renesas,function = "du";
        };
 
-       scif0_pins: serial0 {
-               renesas,groups = "scif0_data";
-               renesas,function = "scif0";
+       scifa0_pins: serial0 {
+               renesas,groups = "scifa0_data";
+               renesas,function = "scifa0";
        };
 
        ether_pins: ether {
                renesas,function = "intc";
        };
 
-       scif1_pins: serial1 {
-               renesas,groups = "scif1_data";
-               renesas,function = "scif1";
+       scifa1_pins: serial1 {
+               renesas,groups = "scifa1_data";
+               renesas,function = "scifa1";
        };
 
        sdhi0_pins: sd0 {
                renesas,function = "iic3";
        };
 
+       hsusb_pins: hsusb {
+               renesas,groups = "usb0_ovc_vbus";
+               renesas,function = "usb0";
+       };
+
        usb0_pins: usb0 {
                renesas,groups = "usb0";
                renesas,function = "usb0";
                renesas,groups = "vin1_data8", "vin1_clk";
                renesas,function = "vin1";
        };
+
+       sound_pins: sound {
+               renesas,groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
+               renesas,function = "ssi";
+       };
+
+       sound_clk_pins: sound_clk {
+               renesas,groups = "audio_clk_a";
+               renesas,function = "audio_clk";
+       };
 };
 
 &ether {
        };
 };
 
-&scif0 {
-       pinctrl-0 = <&scif0_pins>;
+&scifa0 {
+       pinctrl-0 = <&scifa0_pins>;
        pinctrl-names = "default";
 
        status = "okay";
 };
 
-&scif1 {
-       pinctrl-0 = <&scif1_pins>;
+&scifa1 {
+       pinctrl-0 = <&scifa1_pins>;
        pinctrl-names = "default";
 
        status = "okay";
        pinctrl-0 = <&iic2_pins>;
        pinctrl-names = "default";
 
+       clock-frequency = <100000>;
+
+       ak4643: sound-codec@12 {
+               compatible = "asahi-kasei,ak4643";
+               #sound-dai-cells = <0>;
+               reg = <0x12>;
+       };
+
        composite-in@20 {
                compatible = "adi,adv7180";
                reg = <0x20>;
        pinctrl-names = "default";
 };
 
+&xhci {
+       status = "okay";
+       pinctrl-0 = <&usb2_pins>;
+       pinctrl-names = "default";
+};
+
 &pci2 {
        status = "okay";
        pinctrl-0 = <&usb2_pins>;
        pinctrl-names = "default";
 };
 
+&hsusb {
+       status = "okay";
+       pinctrl-0 = <&hsusb_pins>;
+       pinctrl-names = "default";
+       renesas,enable-gpio = <&gpio5 18 GPIO_ACTIVE_HIGH>;
+};
+
+&usbphy {
+       status = "okay";
+};
+
 /* composite video input */
 &vin1 {
        pinctrl-0 = <&vin1_pins>;
                };
        };
 };
+
+&rcar_sound {
+       pinctrl-0 = <&sound_pins &sound_clk_pins>;
+       pinctrl-names = "default";
+
+       #sound-dai-cells = <0>;
+
+       status = "okay";
+
+       rcar_sound,dai {
+               dai0 {
+                       playback = <&ssi0 &src2 &dvc0>;
+                       capture  = <&ssi1 &src3 &dvc1>;
+               };
+       };
+};
+
+&ssi1 {
+       shared-pin;
+};
index d0e17733dc1a340608b10b3f4f595e93ec53d45d..c8f94a6eb136e3c161782ce0dae03547cd57fe5e 100644 (file)
                #dma-cells = <1>;
                dma-channels = <15>;
        };
+
+       audma0: dma-controller@ec700000 {
+               compatible = "renesas,rcar-dmac";
+               reg = <0 0xec700000 0 0x10000>;
+               interrupts =    <0 346 IRQ_TYPE_LEVEL_HIGH
+                                0 320 IRQ_TYPE_LEVEL_HIGH
+                                0 321 IRQ_TYPE_LEVEL_HIGH
+                                0 322 IRQ_TYPE_LEVEL_HIGH
+                                0 323 IRQ_TYPE_LEVEL_HIGH
+                                0 324 IRQ_TYPE_LEVEL_HIGH
+                                0 325 IRQ_TYPE_LEVEL_HIGH
+                                0 326 IRQ_TYPE_LEVEL_HIGH
+                                0 327 IRQ_TYPE_LEVEL_HIGH
+                                0 328 IRQ_TYPE_LEVEL_HIGH
+                                0 329 IRQ_TYPE_LEVEL_HIGH
+                                0 330 IRQ_TYPE_LEVEL_HIGH
+                                0 331 IRQ_TYPE_LEVEL_HIGH
+                                0 332 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "error",
+                               "ch0", "ch1", "ch2", "ch3",
+                               "ch4", "ch5", "ch6", "ch7",
+                               "ch8", "ch9", "ch10", "ch11",
+                               "ch12";
+               clocks = <&mstp5_clks R8A7790_CLK_AUDIO_DMAC0>;
+               clock-names = "fck";
+               #dma-cells = <1>;
+               dma-channels = <13>;
+       };
+
+       audma1: dma-controller@ec720000 {
+               compatible = "renesas,rcar-dmac";
+               reg = <0 0xec720000 0 0x10000>;
+               interrupts =    <0 347 IRQ_TYPE_LEVEL_HIGH
+                                0 333 IRQ_TYPE_LEVEL_HIGH
+                                0 334 IRQ_TYPE_LEVEL_HIGH
+                                0 335 IRQ_TYPE_LEVEL_HIGH
+                                0 336 IRQ_TYPE_LEVEL_HIGH
+                                0 337 IRQ_TYPE_LEVEL_HIGH
+                                0 338 IRQ_TYPE_LEVEL_HIGH
+                                0 339 IRQ_TYPE_LEVEL_HIGH
+                                0 340 IRQ_TYPE_LEVEL_HIGH
+                                0 341 IRQ_TYPE_LEVEL_HIGH
+                                0 342 IRQ_TYPE_LEVEL_HIGH
+                                0 343 IRQ_TYPE_LEVEL_HIGH
+                                0 344 IRQ_TYPE_LEVEL_HIGH
+                                0 345 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "error",
+                               "ch0", "ch1", "ch2", "ch3",
+                               "ch4", "ch5", "ch6", "ch7",
+                               "ch8", "ch9", "ch10", "ch11",
+                               "ch12";
+               clocks = <&mstp5_clks R8A7790_CLK_AUDIO_DMAC1>;
+               clock-names = "fck";
+               #dma-cells = <1>;
+               dma-channels = <13>;
+       };
+
+       audmapp: dma-controller@ec740000 {
+               compatible = "renesas,rcar-audmapp";
+               #dma-cells = <1>;
+
+               reg = <0 0xec740000 0 0x200>;
+       };
+
        i2c0: i2c@e6508000 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0 0xe6500000 0 0x425>;
                interrupts = <0 174 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp3_clks R8A7790_CLK_IIC0>;
+               dmas = <&dmac0 0x61>, <&dmac0 0x62>;
+               dma-names = "tx", "rx";
                status = "disabled";
        };
 
                reg = <0 0xe6510000 0 0x425>;
                interrupts = <0 175 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp3_clks R8A7790_CLK_IIC1>;
+               dmas = <&dmac0 0x65>, <&dmac0 0x66>;
+               dma-names = "tx", "rx";
                status = "disabled";
        };
 
                reg = <0 0xe6520000 0 0x425>;
                interrupts = <0 176 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp3_clks R8A7790_CLK_IIC2>;
+               dmas = <&dmac0 0x69>, <&dmac0 0x6a>;
+               dma-names = "tx", "rx";
                status = "disabled";
        };
 
                reg = <0 0xe60b0000 0 0x425>;
                interrupts = <0 173 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp9_clks R8A7790_CLK_IICDVFS>;
+               dmas = <&dmac0 0x77>, <&dmac0 0x78>;
+               dma-names = "tx", "rx";
                status = "disabled";
        };
 
-       mmcif0: mmcif@ee200000 {
+       mmcif0: mmc@ee200000 {
                compatible = "renesas,mmcif-r8a7790", "renesas,sh-mmcif";
                reg = <0 0xee200000 0 0x80>;
                interrupts = <0 169 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp3_clks R8A7790_CLK_MMCIF0>;
+               dmas = <&dmac0 0xd1>, <&dmac0 0xd2>;
+               dma-names = "tx", "rx";
                reg-io-width = <4>;
                status = "disabled";
        };
                reg = <0 0xee220000 0 0x80>;
                interrupts = <0 170 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp3_clks R8A7790_CLK_MMCIF1>;
+               dmas = <&dmac0 0xe1>, <&dmac0 0xe2>;
+               dma-names = "tx", "rx";
                reg-io-width = <4>;
                status = "disabled";
        };
                reg = <0 0xee100000 0 0x200>;
                interrupts = <0 165 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp3_clks R8A7790_CLK_SDHI0>;
-               cap-sd-highspeed;
                status = "disabled";
        };
 
                reg = <0 0xee120000 0 0x200>;
                interrupts = <0 166 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp3_clks R8A7790_CLK_SDHI1>;
-               cap-sd-highspeed;
                status = "disabled";
        };
 
                reg = <0 0xee140000 0 0x100>;
                interrupts = <0 167 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp3_clks R8A7790_CLK_SDHI2>;
-               cap-sd-highspeed;
                status = "disabled";
        };
 
                reg = <0 0xee160000 0 0x100>;
                interrupts = <0 168 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp3_clks R8A7790_CLK_SDHI3>;
-               cap-sd-highspeed;
                status = "disabled";
        };
 
                status = "disabled";
        };
 
+       hsusb: usb@e6590000 {
+               compatible = "renesas,usbhs-r8a7790";
+               reg = <0 0xe6590000 0 0x100>;
+               interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp7_clks R8A7790_CLK_HSUSB>;
+               renesas,buswait = <4>;
+               phys = <&usb0 1>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
+       usbphy: usb-phy@e6590100 {
+               compatible = "renesas,usb-phy-r8a7790";
+               reg = <0 0xe6590100 0 0x100>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&mstp7_clks R8A7790_CLK_HSUSB>;
+               clock-names = "usbhs";
+               status = "disabled";
+
+               usb0: usb-channel@0 {
+                       reg = <0>;
+                       #phy-cells = <1>;
+               };
+               usb2: usb-channel@2 {
+                       reg = <2>;
+                       #phy-cells = <1>;
+               };
+       };
+
        vin0: video@e6ef0000 {
                compatible = "renesas,vin-r8a7790";
                clocks = <&mstp8_clks R8A7790_CLK_VIN0>;
                status = "disabled";
        };
 
+       vsp1@fe920000 {
+               compatible = "renesas,vsp1";
+               reg = <0 0xfe920000 0 0x8000>;
+               interrupts = <0 266 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp1_clks R8A7790_CLK_VSP1_R>;
+
+               renesas,has-sru;
+               renesas,#rpf = <5>;
+               renesas,#uds = <1>;
+               renesas,#wpf = <4>;
+       };
+
+       vsp1@fe928000 {
+               compatible = "renesas,vsp1";
+               reg = <0 0xfe928000 0 0x8000>;
+               interrupts = <0 267 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp1_clks R8A7790_CLK_VSP1_S>;
+
+               renesas,has-lut;
+               renesas,has-sru;
+               renesas,#rpf = <5>;
+               renesas,#uds = <3>;
+               renesas,#wpf = <4>;
+       };
+
+       vsp1@fe930000 {
+               compatible = "renesas,vsp1";
+               reg = <0 0xfe930000 0 0x8000>;
+               interrupts = <0 246 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp1_clks R8A7790_CLK_VSP1_DU0>;
+
+               renesas,has-lif;
+               renesas,has-lut;
+               renesas,#rpf = <4>;
+               renesas,#uds = <1>;
+               renesas,#wpf = <4>;
+       };
+
+       vsp1@fe938000 {
+               compatible = "renesas,vsp1";
+               reg = <0 0xfe938000 0 0x8000>;
+               interrupts = <0 247 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp1_clks R8A7790_CLK_VSP1_DU1>;
+
+               renesas,has-lif;
+               renesas,has-lut;
+               renesas,#rpf = <4>;
+               renesas,#uds = <1>;
+               renesas,#wpf = <4>;
+       };
+
+       du: display@feb00000 {
+               compatible = "renesas,du-r8a7790";
+               reg = <0 0xfeb00000 0 0x70000>,
+                     <0 0xfeb90000 0 0x1c>,
+                     <0 0xfeb94000 0 0x1c>;
+               reg-names = "du", "lvds.0", "lvds.1";
+               interrupts = <0 256 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 268 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 269 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp7_clks R8A7790_CLK_DU0>,
+                        <&mstp7_clks R8A7790_CLK_DU1>,
+                        <&mstp7_clks R8A7790_CLK_DU2>,
+                        <&mstp7_clks R8A7790_CLK_LVDS0>,
+                        <&mstp7_clks R8A7790_CLK_LVDS1>;
+               clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1";
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               du_out_rgb: endpoint {
+                               };
+                       };
+                       port@1 {
+                               reg = <1>;
+                               du_out_lvds0: endpoint {
+                               };
+                       };
+                       port@2 {
+                               reg = <2>;
+                               du_out_lvds1: endpoint {
+                               };
+                       };
+               };
+       };
+
        clocks {
                #address-cells = <2>;
                #size-cells = <2>;
                mstp1_clks: mstp1_clks@e6150134 {
                        compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
                        reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>;
-                       clocks = <&m2_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&rclk_clk>,
-                                <&cp_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>,
-                                <&zs_clk>;
+                       clocks = <&zs_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>, <&m2_clk>,
+                                <&zs_clk>, <&p_clk>, <&zg_clk>, <&zs_clk>, <&zs_clk>,
+                                <&zs_clk>, <&zs_clk>, <&p_clk>, <&p_clk>, <&rclk_clk>,
+                                <&cp_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>;
                        #clock-cells = <1>;
                        renesas,clock-indices = <
-                               R8A7790_CLK_JPU R8A7790_CLK_TMU1 R8A7790_CLK_TMU3 R8A7790_CLK_TMU2
-                               R8A7790_CLK_CMT0 R8A7790_CLK_TMU0 R8A7790_CLK_VSP1_DU1
-                               R8A7790_CLK_VSP1_DU0 R8A7790_CLK_VSP1_R R8A7790_CLK_VSP1_S
+                               R8A7790_CLK_VCP1 R8A7790_CLK_VCP0 R8A7790_CLK_VPC1
+                               R8A7790_CLK_VPC0 R8A7790_CLK_JPU R8A7790_CLK_SSP1
+                               R8A7790_CLK_TMU1 R8A7790_CLK_3DG R8A7790_CLK_2DDMAC
+                               R8A7790_CLK_FDP1_2 R8A7790_CLK_FDP1_1 R8A7790_CLK_FDP1_0
+                               R8A7790_CLK_TMU3 R8A7790_CLK_TMU2 R8A7790_CLK_CMT0
+                               R8A7790_CLK_TMU0 R8A7790_CLK_VSP1_DU1 R8A7790_CLK_VSP1_DU0
+                               R8A7790_CLK_VSP1_R R8A7790_CLK_VSP1_S
                        >;
                        clock-output-names =
-                               "jpu", "tmu1", "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1",
-                               "vsp1-du0", "vsp1-rt", "vsp1-sy";
+                               "vcp1", "vcp0", "vpc1", "vpc0", "jpu", "ssp1",
+                               "tmu1", "3dg", "2ddmac", "fdp1-2", "fdp1-1",
+                               "fdp1-0", "tmu3", "tmu2", "cmt0", "tmu0",
+                               "vsp1-du1", "vsp1-du0", "vsp1-rt", "vsp1-sy";
                };
                mstp2_clks: mstp2_clks@e6150138 {
                        compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
                        reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>;
                        clocks = <&hp_clk>, <&cp_clk>, <&mmc1_clk>, <&sd3_clk>,
                                 <&sd2_clk>, <&cpg_clocks R8A7790_CLK_SD1>, <&cpg_clocks R8A7790_CLK_SD0>, <&mmc0_clk>,
-                                <&hp_clk>, <&mp_clk>, <&hp_clk>, <&mp_clk>, <&rclk_clk>;
+                                <&hp_clk>, <&mp_clk>, <&hp_clk>, <&mp_clk>, <&rclk_clk>,
+                                <&hp_clk>, <&hp_clk>;
                        #clock-cells = <1>;
                        renesas,clock-indices = <
                                R8A7790_CLK_IIC2 R8A7790_CLK_TPU0 R8A7790_CLK_MMCIF1 R8A7790_CLK_SDHI3
                                R8A7790_CLK_SDHI2 R8A7790_CLK_SDHI1 R8A7790_CLK_SDHI0 R8A7790_CLK_MMCIF0
                                R8A7790_CLK_IIC0 R8A7790_CLK_PCIEC R8A7790_CLK_IIC1 R8A7790_CLK_SSUSB R8A7790_CLK_CMT1
+                               R8A7790_CLK_USBDMAC0 R8A7790_CLK_USBDMAC1
                        >;
                        clock-output-names =
                                "iic2", "tpu0", "mmcif1", "sdhi3",
                                "sdhi2", "sdhi1", "sdhi0", "mmcif0",
-                               "iic0", "pciec", "iic1", "ssusb", "cmt1";
+                               "iic0", "pciec", "iic1", "ssusb", "cmt1",
+                               "usbdmac0", "usbdmac1";
                };
                mstp5_clks: mstp5_clks@e6150144 {
                        compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
                        reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>;
-                       clocks = <&extal_clk>, <&p_clk>;
+                       clocks = <&hp_clk>, <&hp_clk>, <&extal_clk>, <&p_clk>;
                        #clock-cells = <1>;
-                       renesas,clock-indices = <R8A7790_CLK_THERMAL R8A7790_CLK_PWM>;
-                       clock-output-names = "thermal", "pwm";
+                       renesas,clock-indices = <R8A7790_CLK_AUDIO_DMAC0 R8A7790_CLK_AUDIO_DMAC1
+                                                R8A7790_CLK_THERMAL R8A7790_CLK_PWM>;
+                       clock-output-names = "audmac0", "audmac1", "thermal", "pwm";
                };
                mstp7_clks: mstp7_clks@e615014c {
                        compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
                status = "disabled";
        };
 
+       xhci: usb@ee000000 {
+               compatible = "renesas,xhci-r8a7790";
+               reg = <0 0xee000000 0 0xc00>;
+               interrupts = <0 101 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp3_clks R8A7790_CLK_SSUSB>;
+               phys = <&usb2 1>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
        pci0: pci@ee090000 {
                compatible = "renesas,pci-r8a7790";
                device_type = "pci";
                interrupt-map = <0x0000 0 0 1 &gic 0 108 IRQ_TYPE_LEVEL_HIGH
                                 0x0800 0 0 1 &gic 0 108 IRQ_TYPE_LEVEL_HIGH
                                 0x1000 0 0 2 &gic 0 108 IRQ_TYPE_LEVEL_HIGH>;
+
+               usb@0,1 {
+                       reg = <0x800 0 0 0 0>;
+                       device_type = "pci";
+                       phys = <&usb0 0>;
+                       phy-names = "usb";
+               };
+
+               usb@0,2 {
+                       reg = <0x1000 0 0 0 0>;
+                       device_type = "pci";
+                       phys = <&usb0 0>;
+                       phy-names = "usb";
+               };
        };
 
        pci1: pci@ee0b0000 {
                interrupt-map = <0x0000 0 0 1 &gic 0 113 IRQ_TYPE_LEVEL_HIGH
                                 0x0800 0 0 1 &gic 0 113 IRQ_TYPE_LEVEL_HIGH
                                 0x1000 0 0 2 &gic 0 113 IRQ_TYPE_LEVEL_HIGH>;
+
+               usb@0,1 {
+                       reg = <0x800 0 0 0 0>;
+                       device_type = "pci";
+                       phys = <&usb2 0>;
+                       phy-names = "usb";
+               };
+
+               usb@0,2 {
+                       reg = <0x1000 0 0 0 0>;
+                       device_type = "pci";
+                       phys = <&usb2 0>;
+                       phy-names = "usb";
+               };
        };
 
        pciec: pcie@fe000000 {
                status = "disabled";
        };
 
-       rcar_sound: rcar_sound@0xec500000 {
+       rcar_sound: rcar_sound@ec500000 {
                #sound-dai-cells = <1>;
                compatible =  "renesas,rcar_sound-r8a7790", "renesas,rcar_sound-gen2", "renesas,rcar_sound";
                reg =   <0 0xec500000 0 0x1000>, /* SCU */
index f1b56de10205f14bdcd829900368c31dae067a39..740e38678032a7accf62dbaec94a4bd9a4c33dc7 100644 (file)
@@ -23,6 +23,7 @@
 
        chosen {
                bootargs = "console=ttySC0,38400 ignore_loglevel rw root=/dev/nfs ip=dhcp";
+               stdout-path = &scif0;
        };
 
        memory@40000000 {
        pinctrl-names = "default";
 };
 
+&hsusb {
+       status = "okay";
+       pinctrl-0 = <&usb0_pins>;
+       pinctrl-names = "default";
+       renesas,enable-gpio = <&gpio5 31 GPIO_ACTIVE_HIGH>;
+};
+
+&usbphy {
+       status = "okay";
+};
+
 &pcie_bus_clk {
        status = "okay";
 };
index 07550e775e8047111e2f280ef8d94da993970ebb..d6b5b8f23789cad119a729c36946b69b2c97075e 100644 (file)
  * kind, whether express or implied.
  */
 
+/*
+ * SSI-AK4643
+ *
+ * SW1: 1: AK4643
+ *      2: CN22
+ *      3: ADV7511
+ *
+ * This command is required when Playback/Capture
+ *
+ *     amixer set "LINEOUT Mixer DACL" on
+ *     amixer set "DVC Out" 100%
+ *     amixer set "DVC In" 100%
+ *
+ * You can use Mute
+ *
+ *     amixer set "DVC Out Mute" on
+ *     amixer set "DVC In Mute" on
+ *
+ * You can use Volume Ramp
+ *
+ *     amixer set "DVC Out Ramp Up Rate"   "0.125 dB/64 steps"
+ *     amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps"
+ *     amixer set "DVC Out Ramp" on
+ *     aplay xxx.wav &
+ *     amixer set "DVC Out"  80%  // Volume Down
+ *     amixer set "DVC Out" 100%  // Volume Up
+ */
+
 /dts-v1/;
 #include "r8a7791.dtsi"
 #include <dt-bindings/gpio/gpio.h>
@@ -26,6 +54,7 @@
 
        chosen {
                bootargs = "console=ttySC6,115200 ignore_loglevel rw root=/dev/nfs ip=dhcp";
+               stdout-path = &scif0;
        };
 
        memory@40000000 {
@@ -43,7 +72,7 @@
                #size-cells = <1>;
        };
 
-       gpio-keys {
+       keyboard {
                compatible = "gpio-keys";
 
                key-1 {
                compatible = "gpio-leds";
                led6 {
                        gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+                       label = "LED6";
                };
                led7 {
                        gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
+                       label = "LED7";
                };
                led8 {
                        gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>;
+                       label = "LED8";
                };
        };
 
                states = <3300000 1
                          1800000 0>;
        };
+
+       sound {
+               compatible = "simple-audio-card";
+
+               simple-audio-card,format = "left_j";
+               simple-audio-card,bitclock-master = <&sndcodec>;
+               simple-audio-card,frame-master = <&sndcodec>;
+
+               sndcpu: simple-audio-card,cpu {
+                       sound-dai = <&rcar_sound>;
+               };
+
+               sndcodec: simple-audio-card,codec {
+                       sound-dai = <&ak4643>;
+                       system-clock-frequency = <11289600>;
+               };
+       };
+};
+
+&du {
+       pinctrl-0 = <&du_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       ports {
+               port@1 {
+                       lvds_connector: endpoint {
+                       };
+               };
+       };
 };
 
 &extal_clk {
 };
 
 &pfc {
-       pinctrl-0 = <&du_pins>;
-       pinctrl-names = "default";
-
        i2c2_pins: i2c2 {
                renesas,groups = "i2c2";
                renesas,function = "i2c2";
                renesas,groups = "vin1_data8", "vin1_clk";
                renesas,function = "vin1";
        };
+
+       sound_pins: sound {
+               renesas,groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
+               renesas,function = "ssi";
+       };
+
+       sound_clk_pins: sound_clk {
+               renesas,groups = "audio_clk_a";
+               renesas,function = "audio_clk";
+       };
 };
 
 &ether {
        pinctrl-names = "default";
 
        status = "okay";
-       clock-frequency = <400000>;
+       clock-frequency = <100000>;
+
+       ak4643: sound-codec@12 {
+               compatible = "asahi-kasei,ak4643";
+               #sound-dai-cells = <0>;
+               reg = <0x12>;
+       };
 
        composite-in@20 {
                compatible = "adi,adv7180";
        pinctrl-names = "default";
 };
 
+&hsusb {
+       status = "okay";
+       pinctrl-0 = <&usb0_pins>;
+       pinctrl-names = "default";
+       renesas,enable-gpio = <&gpio5 31 GPIO_ACTIVE_HIGH>;
+};
+
+&usbphy {
+       status = "okay";
+};
+
 &pcie_bus_clk {
        status = "okay";
 };
                };
        };
 };
+
+&rcar_sound {
+       pinctrl-0 = <&sound_pins &sound_clk_pins>;
+       pinctrl-names = "default";
+
+       #sound-dai-cells = <0>;
+
+       status = "okay";
+
+       rcar_sound,dai {
+               dai0 {
+                       playback = <&ssi0 &src2 &dvc0>;
+                       capture  = <&ssi1 &src3 &dvc1>;
+               };
+       };
+};
+
+&ssi1 {
+       shared-pin;
+};
index e06c11fa8698cfcc4cd5fc13ce1f905f554de01f..77c0beeb8d7c984c477acd634e28a70b79a4aad8 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Device Tree Source for the r8a7791 SoC
  *
- * Copyright (C) 2013 Renesas Electronics Corporation
+ * Copyright (C) 2013-2014 Renesas Electronics Corporation
  * Copyright (C) 2013-2014 Renesas Solutions Corp.
  * Copyright (C) 2014 Cogent Embedded Inc.
  *
                dma-channels = <15>;
        };
 
+       audma0: dma-controller@ec700000 {
+               compatible = "renesas,rcar-dmac";
+               reg = <0 0xec700000 0 0x10000>;
+               interrupts =    <0 346 IRQ_TYPE_LEVEL_HIGH
+                                0 320 IRQ_TYPE_LEVEL_HIGH
+                                0 321 IRQ_TYPE_LEVEL_HIGH
+                                0 322 IRQ_TYPE_LEVEL_HIGH
+                                0 323 IRQ_TYPE_LEVEL_HIGH
+                                0 324 IRQ_TYPE_LEVEL_HIGH
+                                0 325 IRQ_TYPE_LEVEL_HIGH
+                                0 326 IRQ_TYPE_LEVEL_HIGH
+                                0 327 IRQ_TYPE_LEVEL_HIGH
+                                0 328 IRQ_TYPE_LEVEL_HIGH
+                                0 329 IRQ_TYPE_LEVEL_HIGH
+                                0 330 IRQ_TYPE_LEVEL_HIGH
+                                0 331 IRQ_TYPE_LEVEL_HIGH
+                                0 332 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "error",
+                               "ch0", "ch1", "ch2", "ch3",
+                               "ch4", "ch5", "ch6", "ch7",
+                               "ch8", "ch9", "ch10", "ch11",
+                               "ch12";
+               clocks = <&mstp5_clks R8A7791_CLK_AUDIO_DMAC0>;
+               clock-names = "fck";
+               #dma-cells = <1>;
+               dma-channels = <13>;
+       };
+
+       audma1: dma-controller@ec720000 {
+               compatible = "renesas,rcar-dmac";
+               reg = <0 0xec720000 0 0x10000>;
+               interrupts =    <0 347 IRQ_TYPE_LEVEL_HIGH
+                                0 333 IRQ_TYPE_LEVEL_HIGH
+                                0 334 IRQ_TYPE_LEVEL_HIGH
+                                0 335 IRQ_TYPE_LEVEL_HIGH
+                                0 336 IRQ_TYPE_LEVEL_HIGH
+                                0 337 IRQ_TYPE_LEVEL_HIGH
+                                0 338 IRQ_TYPE_LEVEL_HIGH
+                                0 339 IRQ_TYPE_LEVEL_HIGH
+                                0 340 IRQ_TYPE_LEVEL_HIGH
+                                0 341 IRQ_TYPE_LEVEL_HIGH
+                                0 342 IRQ_TYPE_LEVEL_HIGH
+                                0 343 IRQ_TYPE_LEVEL_HIGH
+                                0 344 IRQ_TYPE_LEVEL_HIGH
+                                0 345 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "error",
+                               "ch0", "ch1", "ch2", "ch3",
+                               "ch4", "ch5", "ch6", "ch7",
+                               "ch8", "ch9", "ch10", "ch11",
+                               "ch12";
+               clocks = <&mstp5_clks R8A7791_CLK_AUDIO_DMAC1>;
+               clock-names = "fck";
+               #dma-cells = <1>;
+               dma-channels = <13>;
+       };
+
+       audmapp: dma-controller@ec740000 {
+               compatible = "renesas,rcar-audmapp";
+               #dma-cells = <1>;
+
+               reg = <0 0xec740000 0 0x200>;
+       };
+
        /* The memory map in the User's Manual maps the cores to bus numbers */
        i2c0: i2c@e6508000 {
                #address-cells = <1>;
                reg = <0 0xe60b0000 0 0x425>;
                interrupts = <0 173 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp9_clks R8A7791_CLK_IICDVFS>;
+               dmas = <&dmac0 0x77>, <&dmac0 0x78>;
+               dma-names = "tx", "rx";
                status = "disabled";
        };
 
                reg = <0 0xe6500000 0 0x425>;
                interrupts = <0 174 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp3_clks R8A7791_CLK_IIC0>;
+               dmas = <&dmac0 0x61>, <&dmac0 0x62>;
+               dma-names = "tx", "rx";
                status = "disabled";
        };
 
                reg = <0 0xe6510000 0 0x425>;
                interrupts = <0 175 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp3_clks R8A7791_CLK_IIC1>;
+               dmas = <&dmac0 0x65>, <&dmac0 0x66>;
+               dma-names = "tx", "rx";
                status = "disabled";
        };
 
                #gpio-range-cells = <3>;
        };
 
+       mmcif0: mmc@ee200000 {
+               compatible = "renesas,mmcif-r8a7791", "renesas,sh-mmcif";
+               reg = <0 0xee200000 0 0x80>;
+               interrupts = <0 169 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp3_clks R8A7791_CLK_MMCIF0>;
+               dmas = <&dmac0 0xd1>, <&dmac0 0xd2>;
+               dma-names = "tx", "rx";
+               reg-io-width = <4>;
+               status = "disabled";
+       };
+
        sdhi0: sd@ee100000 {
                compatible = "renesas,sdhi-r8a7791";
                reg = <0 0xee100000 0 0x200>;
                status = "disabled";
        };
 
+       hsusb: usb@e6590000 {
+               compatible = "renesas,usbhs-r8a7791";
+               reg = <0 0xe6590000 0 0x100>;
+               interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp7_clks R8A7791_CLK_HSUSB>;
+               renesas,buswait = <4>;
+               phys = <&usb0 1>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
+       usbphy: usb-phy@e6590100 {
+               compatible = "renesas,usb-phy-r8a7791";
+               reg = <0 0xe6590100 0 0x100>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&mstp7_clks R8A7791_CLK_HSUSB>;
+               clock-names = "usbhs";
+               status = "disabled";
+
+               usb0: usb-channel@0 {
+                       reg = <0>;
+                       #phy-cells = <1>;
+               };
+               usb2: usb-channel@2 {
+                       reg = <2>;
+                       #phy-cells = <1>;
+               };
+       };
+
        vin0: video@e6ef0000 {
                compatible = "renesas,vin-r8a7791";
                clocks = <&mstp8_clks R8A7791_CLK_VIN0>;
                status = "disabled";
        };
 
+       vsp1@fe928000 {
+               compatible = "renesas,vsp1";
+               reg = <0 0xfe928000 0 0x8000>;
+               interrupts = <0 267 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp1_clks R8A7791_CLK_VSP1_S>;
+
+               renesas,has-lut;
+               renesas,has-sru;
+               renesas,#rpf = <5>;
+               renesas,#uds = <3>;
+               renesas,#wpf = <4>;
+       };
+
+       vsp1@fe930000 {
+               compatible = "renesas,vsp1";
+               reg = <0 0xfe930000 0 0x8000>;
+               interrupts = <0 246 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp1_clks R8A7791_CLK_VSP1_DU0>;
+
+               renesas,has-lif;
+               renesas,has-lut;
+               renesas,#rpf = <4>;
+               renesas,#uds = <1>;
+               renesas,#wpf = <4>;
+       };
+
+       vsp1@fe938000 {
+               compatible = "renesas,vsp1";
+               reg = <0 0xfe938000 0 0x8000>;
+               interrupts = <0 247 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp1_clks R8A7791_CLK_VSP1_DU1>;
+
+               renesas,has-lif;
+               renesas,has-lut;
+               renesas,#rpf = <4>;
+               renesas,#uds = <1>;
+               renesas,#wpf = <4>;
+       };
+
+       du: display@feb00000 {
+               compatible = "renesas,du-r8a7791";
+               reg = <0 0xfeb00000 0 0x40000>,
+                     <0 0xfeb90000 0 0x1c>;
+               reg-names = "du", "lvds.0";
+               interrupts = <0 256 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 268 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp7_clks R8A7791_CLK_DU0>,
+                        <&mstp7_clks R8A7791_CLK_DU1>,
+                        <&mstp7_clks R8A7791_CLK_LVDS0>;
+               clock-names = "du.0", "du.1", "lvds.0";
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               du_out_rgb: endpoint {
+                               };
+                       };
+                       port@1 {
+                               reg = <1>;
+                               du_out_lvds0: endpoint {
+                               };
+                       };
+               };
+       };
+
        clocks {
                #address-cells = <2>;
                #size-cells = <2>;
                mstp1_clks: mstp1_clks@e6150134 {
                        compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
                        reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>;
-                       clocks = <&m2_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&rclk_clk>,
-                                <&cp_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>;
+                       clocks = <&zs_clk>, <&zs_clk>, <&m2_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>;
                        renesas,clock-indices = <
-                               R8A7791_CLK_JPU R8A7791_CLK_TMU1 R8A7791_CLK_TMU3 R8A7791_CLK_TMU2
-                               R8A7791_CLK_CMT0 R8A7791_CLK_TMU0 R8A7791_CLK_VSP1_DU1
-                               R8A7791_CLK_VSP1_DU0 R8A7791_CLK_VSP1_S
+                               R8A7791_CLK_VCP0 R8A7791_CLK_VPC0 R8A7791_CLK_JPU
+                               R8A7791_CLK_SSP1 R8A7791_CLK_TMU1 R8A7791_CLK_3DG
+                               R8A7791_CLK_2DDMAC R8A7791_CLK_FDP1_1 R8A7791_CLK_FDP1_0
+                               R8A7791_CLK_TMU3 R8A7791_CLK_TMU2 R8A7791_CLK_CMT0
+                               R8A7791_CLK_TMU0 R8A7791_CLK_VSP1_DU1 R8A7791_CLK_VSP1_DU0
+                               R8A7791_CLK_VSP1_S
                        >;
                        clock-output-names =
-                               "jpu", "tmu1", "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1",
-                               "vsp1-du0", "vsp1-sy";
+                               "vcp0", "vpc0", "jpu", "ssp1", "tmu1", "3dg",
+                               "2ddmac", "fdp1-1", "fdp1-0", "tmu3", "tmu2", "cmt0",
+                               "tmu0", "vsp1-du1", "vsp1-du0", "vsp1-sy";
                };
                mstp2_clks: mstp2_clks@e6150138 {
                        compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
                        compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
                        reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>;
                        clocks = <&cp_clk>, <&sd2_clk>, <&sd1_clk>, <&cpg_clocks R8A7791_CLK_SD0>,
-                                <&mmc0_clk>, <&hp_clk>, <&mp_clk>, <&hp_clk>, <&mp_clk>, <&rclk_clk>;
+                                <&mmc0_clk>, <&hp_clk>, <&mp_clk>, <&hp_clk>, <&mp_clk>, <&rclk_clk>,
+                                <&hp_clk>, <&hp_clk>;
                        #clock-cells = <1>;
                        renesas,clock-indices = <
                                R8A7791_CLK_TPU0 R8A7791_CLK_SDHI2 R8A7791_CLK_SDHI1 R8A7791_CLK_SDHI0
                                R8A7791_CLK_MMCIF0 R8A7791_CLK_IIC0 R8A7791_CLK_PCIEC R8A7791_CLK_IIC1
                                R8A7791_CLK_SSUSB R8A7791_CLK_CMT1
+                               R8A7791_CLK_USBDMAC0 R8A7791_CLK_USBDMAC1
                        >;
                        clock-output-names =
                                "tpu0", "sdhi2", "sdhi1", "sdhi0",
-                               "mmcif0", "i2c7", "pciec", "i2c8", "ssusb", "cmt1";
+                               "mmcif0", "i2c7", "pciec", "i2c8", "ssusb", "cmt1",
+                               "usbdmac0", "usbdmac1";
                };
                mstp5_clks: mstp5_clks@e6150144 {
                        compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
                        reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>;
-                       clocks = <&extal_clk>, <&p_clk>;
+                       clocks = <&hp_clk>, <&hp_clk>, <&extal_clk>, <&p_clk>;
                        #clock-cells = <1>;
-                       renesas,clock-indices = <R8A7791_CLK_THERMAL R8A7791_CLK_PWM>;
-                       clock-output-names = "thermal", "pwm";
+                       renesas,clock-indices = <R8A7791_CLK_AUDIO_DMAC0 R8A7791_CLK_AUDIO_DMAC1
+                                                R8A7791_CLK_THERMAL R8A7791_CLK_PWM>;
+                       clock-output-names = "audmac0", "audmac1", "thermal", "pwm";
                };
                mstp7_clks: mstp7_clks@e615014c {
                        compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
                status = "disabled";
        };
 
+       xhci: usb@ee000000 {
+               compatible = "renesas,xhci-r8a7791";
+               reg = <0 0xee000000 0 0xc00>;
+               interrupts = <0 101 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp3_clks R8A7791_CLK_SSUSB>;
+               phys = <&usb2 1>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
        pci0: pci@ee090000 {
                compatible = "renesas,pci-r8a7791";
                device_type = "pci";
                interrupt-map = <0x0000 0 0 1 &gic 0 108 IRQ_TYPE_LEVEL_HIGH
                                 0x0800 0 0 1 &gic 0 108 IRQ_TYPE_LEVEL_HIGH
                                 0x1000 0 0 2 &gic 0 108 IRQ_TYPE_LEVEL_HIGH>;
+
+               usb@0,1 {
+                       reg = <0x800 0 0 0 0>;
+                       device_type = "pci";
+                       phys = <&usb0 0>;
+                       phy-names = "usb";
+               };
+
+               usb@0,2 {
+                       reg = <0x1000 0 0 0 0>;
+                       device_type = "pci";
+                       phys = <&usb0 0>;
+                       phy-names = "usb";
+               };
        };
 
        pci1: pci@ee0d0000 {
                interrupt-map = <0x0000 0 0 1 &gic 0 113 IRQ_TYPE_LEVEL_HIGH
                                 0x0800 0 0 1 &gic 0 113 IRQ_TYPE_LEVEL_HIGH
                                 0x1000 0 0 2 &gic 0 113 IRQ_TYPE_LEVEL_HIGH>;
+
+               usb@0,1 {
+                       reg = <0x800 0 0 0 0>;
+                       device_type = "pci";
+                       phys = <&usb2 0>;
+                       phy-names = "usb";
+               };
+
+               usb@0,2 {
+                       reg = <0x1000 0 0 0 0>;
+                       device_type = "pci";
+                       phys = <&usb2 0>;
+                       phy-names = "usb";
+               };
        };
 
        pciec: pcie@fe000000 {
                status = "disabled";
        };
 
-       rcar_sound: rcar_sound@0xec500000 {
+       rcar_sound: rcar_sound@ec500000 {
                #sound-dai-cells = <1>;
                compatible =  "renesas,rcar_sound-r8a7791", "renesas,rcar_sound-gen2", "renesas,rcar_sound";
                reg =   <0 0xec500000 0 0x1000>, /* SCU */
index 79d06ef017a05b770ac095825075ab09845e44aa..f2cf7576bf3f5a0be9f3373b033558b8345bf138 100644 (file)
@@ -20,7 +20,8 @@
        };
 
        chosen {
-               bootargs = "console=ttySC0,38400 ignore_loglevel rw root=/dev/nfs ip=dhcp";
+               bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
+               stdout-path = &scif2;
        };
 
        memory@40000000 {
index d4e8bce1e0b7f7ee2a0f9fbd0cbd528921f2ba0c..19c9de3f2a5ade334488161a027133538bdacc7f 100644 (file)
                status = "disabled";
        };
 
+       timer {
+               compatible = "arm,armv7-timer";
+               interrupts = <1 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                            <1 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                            <1 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                            <1 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
+       };
+
        irqc0: interrupt-controller@e61c0000 {
                compatible = "renesas,irqc-r8a7794", "renesas,irqc";
                #interrupt-cells = <2>;
                mstp1_clks: mstp1_clks@e6150134 {
                        compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
                        reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>;
-                       clocks = <&p_clk>, <&p_clk>, <&p_clk>, <&rclk_clk>,
-                                <&cp_clk>,
-                                <&zs_clk>, <&zs_clk>, <&zs_clk>;
+                       clocks = <&zs_clk>, <&zs_clk>, <&p_clk>, <&zg_clk>, <&zs_clk>,
+                                <&zs_clk>, <&p_clk>, <&p_clk>, <&rclk_clk>, <&cp_clk>,
+                                <&zs_clk>, <&zs_clk>;
                        #clock-cells = <1>;
                        renesas,clock-indices = <
-                               R8A7794_CLK_TMU1 R8A7794_CLK_TMU3 R8A7794_CLK_TMU2
-                               R8A7794_CLK_CMT0 R8A7794_CLK_TMU0
+                               R8A7794_CLK_VCP0 R8A7794_CLK_VPC0 R8A7794_CLK_TMU1
+                               R8A7794_CLK_3DG R8A7794_CLK_2DDMAC R8A7794_CLK_FDP1_0
+                               R8A7794_CLK_TMU3 R8A7794_CLK_TMU2 R8A7794_CLK_CMT0
+                               R8A7794_CLK_TMU0 R8A7794_CLK_VSP1_DU0 R8A7794_CLK_VSP1_S
                        >;
                        clock-output-names =
-                               "tmu1", "tmu3", "tmu2", "cmt0", "tmu0";
+                               "vcp0", "vpc0", "tmu1", "3dg", "2ddmac", "fdp1-0",
+                               "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du0", "vsps";
                };
                mstp2_clks: mstp2_clks@e6150138 {
                        compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
                mstp8_clks: mstp8_clks@e6150990 {
                        compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
                        reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>;
-                       clocks = <&p_clk>;
+                       clocks = <&zg_clk>, <&zg_clk>, <&p_clk>;
                        #clock-cells = <1>;
                        renesas,clock-indices = <
-                               R8A7794_CLK_ETHER
+                               R8A7794_CLK_VIN1 R8A7794_CLK_VIN0 R8A7794_CLK_ETHER
                        >;
                        clock-output-names =
-                               "ether";
+                               "vin1", "vin0", "ether";
                };
                mstp11_clks: mstp11_clks@e615099c {
                        compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
diff --git a/arch/arm/boot/dts/r8a77xx-aa104xd12-panel.dtsi b/arch/arm/boot/dts/r8a77xx-aa104xd12-panel.dtsi
new file mode 100644 (file)
index 0000000..65cb50f
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Common file for the AA104XD12 panel connected to Renesas R-Car boards
+ *
+ * Copyright (C) 2014 Renesas Electronics Corp.
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/ {
+       panel {
+               compatible = "mitsubishi,aa104xd12", "panel-dpi";
+
+               width-mm = <210>;
+               height-mm = <158>;
+
+               panel-timing {
+                       /* 1024x768 @65Hz */
+                       clock-frequency = <65000000>;
+                       hactive = <1024>;
+                       vactive = <768>;
+                       hsync-len = <136>;
+                       hfront-porch = <20>;
+                       hback-porch = <160>;
+                       vfront-porch = <3>;
+                       vback-porch = <29>;
+                       vsync-len = <6>;
+               };
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&lvds_connector>;
+                       };
+               };
+       };
+};
+
+&lvds_connector {
+       remote-endpoint = <&panel_in>;
+};
index d5344510c6763f3dbd2b74c0c71593db213fdbdd..baf21ac6ce7f5a2116e65bc9439a87326597a284 100644 (file)
        };
 };
 
+&cpu0 {
+       cpu0-supply = <&vdd_arm>;
+};
+
 &i2c1 {
        status = "okay";
        clock-frequency = <400000>;
diff --git a/arch/arm/boot/dts/rk3066a-marsboard.dts b/arch/arm/boot/dts/rk3066a-marsboard.dts
new file mode 100644 (file)
index 0000000..57489ee
--- /dev/null
@@ -0,0 +1,192 @@
+/*
+ * Copyright (c) 2014 Romain Perier <romain.perier@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 "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 "rk3066a.dtsi"
+
+/ {
+       model = "MarsBoard RK3066";
+       compatible = "haoyu,marsboard-rk3066", "rockchip,rk3066a";
+
+       memory {
+               reg = <0x60000000 0x40000000>;
+       };
+
+       vcc_sd0: sdmmc-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "sdmmc-supply";
+               regulator-min-microvolt = <3000000>;
+               regulator-max-microvolt = <3000000>;
+               gpio = <&gpio3 7 GPIO_ACTIVE_LOW>;
+               startup-delay-us = <100000>;
+               vin-supply = <&vcc_io>;
+       };
+};
+
+&i2c1 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       tps: tps@2d {
+               reg = <0x2d>;
+
+               interrupt-parent = <&gpio6>;
+               interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
+
+               vcc5-supply = <&vcc_io>;
+               vcc6-supply = <&vcc_io>;
+
+               regulators {
+                       vcc_rtc: regulator@0 {
+                               regulator-name = "vcc_rtc";
+                               regulator-always-on;
+                       };
+
+                       vcc_io: regulator@1 {
+                               regulator-name = "vcc_io";
+                               regulator-always-on;
+                       };
+
+                       vdd_arm: regulator@2 {
+                               regulator-name = "vdd_arm";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <1500000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vcc_ddr: regulator@3 {
+                               regulator-name = "vcc_ddr";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <1500000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vcc18_cif: regulator@5 {
+                               regulator-name = "vcc18_cif";
+                               regulator-always-on;
+                       };
+
+                       vdd_11: regulator@6 {
+                               regulator-name = "vdd_11";
+                               regulator-always-on;
+                       };
+
+                       vcc_25: regulator@7 {
+                               regulator-name = "vcc_25";
+                               regulator-always-on;
+                       };
+
+                       vcc_18: regulator@8 {
+                               regulator-name = "vcc_18";
+                               regulator-always-on;
+                       };
+
+                       vcc25_hdmi: regulator@9 {
+                               regulator-name = "vcc25_hdmi";
+                               regulator-always-on;
+                       };
+
+                       vcca_33: regulator@10 {
+                               regulator-name = "vcca_33";
+                               regulator-always-on;
+                       };
+
+                       vcc_rmii: regulator@11 {
+                               regulator-name = "vcc_rmii";
+                       };
+
+                       vcc28_cif: regulator@12 {
+                               regulator-name = "vcc28_cif";
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+/* must be included after &tps gets defined */
+#include "tps65910.dtsi"
+
+&emac {
+       status = "okay";
+
+       phy = <&phy0>;
+       phy-supply = <&vcc_rmii>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&emac_xfer>, <&emac_mdio>, <&phy_int>;
+
+       phy0: ethernet-phy@0 {
+               reg = <0>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+&pinctrl {
+       lan8720a {
+               phy_int: phy-int {
+                       rockchip,pins = <RK_GPIO1 26 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart3 {
+       status = "okay";
+};
+
+&wdt {
+       status = "okay";
+};
index ad9c2db59670659a9142edfbe486459f0eb84f35..41ffd4951ef3541786a26821ec82fba1e537f69e 100644 (file)
                #size-cells = <0>;
                enable-method = "rockchip,rk3066-smp";
 
-               cpu@0 {
+               cpu0: cpu@0 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        next-level-cache = <&L2>;
                        reg = <0x0>;
+                       operating-points = <
+                               /* kHz    uV */
+                               1008000 1075000
+                                816000 1025000
+                                600000 1025000
+                                504000 1000000
+                                312000  975000
+                       >;
+                       clock-latency = <40000>;
+                       clocks = <&cru ARMCLK>;
                };
                cpu@1 {
                        device_type = "cpu";
                };
        };
 
+       i2s0: i2s@10118000 {
+               compatible = "rockchip,rk3066-i2s";
+               reg = <0x10118000 0x2000>;
+               interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2s0_bus>;
+               dmas = <&dmac1_s 4>, <&dmac1_s 5>;
+               dma-names = "tx", "rx";
+               clock-names = "i2s_hclk", "i2s_clk";
+               clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
+               status = "disabled";
+       };
+
+       i2s1: i2s@1011a000 {
+               compatible = "rockchip,rk3066-i2s";
+               reg = <0x1011a000 0x2000>;
+               interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2s1_bus>;
+               dmas = <&dmac1_s 6>, <&dmac1_s 7>;
+               dma-names = "tx", "rx";
+               clock-names = "i2s_hclk", "i2s_clk";
+               clocks = <&cru HCLK_I2S1>, <&cru SCLK_I2S1>;
+               status = "disabled";
+       };
+
+       i2s2: i2s@1011c000 {
+               compatible = "rockchip,rk3066-i2s";
+               reg = <0x1011c000 0x2000>;
+               interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2s2_bus>;
+               dmas = <&dmac1_s 9>, <&dmac1_s 10>;
+               dma-names = "tx", "rx";
+               clock-names = "i2s_hclk", "i2s_clk";
+               clocks = <&cru HCLK_I2S2>, <&cru SCLK_I2S2>;
+               status = "disabled";
+       };
+
        cru: clock-controller@20000000 {
                compatible = "rockchip,rk3066a-cru";
                reg = <0x20000000 0x1000>;
                        bias-disable;
                };
 
+               emac {
+                       emac_xfer: emac-xfer {
+                               rockchip,pins = <RK_GPIO1 16 RK_FUNC_2 &pcfg_pull_none>, /* mac_clk */
+                                               <RK_GPIO1 17 RK_FUNC_2 &pcfg_pull_none>, /* tx_en */
+                                               <RK_GPIO1 18 RK_FUNC_2 &pcfg_pull_none>, /* txd1 */
+                                               <RK_GPIO1 19 RK_FUNC_2 &pcfg_pull_none>, /* txd0 */
+                                               <RK_GPIO1 20 RK_FUNC_2 &pcfg_pull_none>, /* rx_err */
+                                               <RK_GPIO1 21 RK_FUNC_2 &pcfg_pull_none>, /* crs_dvalid */
+                                               <RK_GPIO1 22 RK_FUNC_2 &pcfg_pull_none>, /* rxd1 */
+                                               <RK_GPIO1 23 RK_FUNC_2 &pcfg_pull_none>; /* rxd0 */
+                       };
+
+                       emac_mdio: emac-mdio {
+                               rockchip,pins = <RK_GPIO1 24 RK_FUNC_2 &pcfg_pull_none>, /* mac_md */
+                                               <RK_GPIO1 25 RK_FUNC_2 &pcfg_pull_none>; /* mac_mdclk */
+                       };
+               };
+
                emmc {
                        emmc_clk: emmc-clk {
                                rockchip,pins = <RK_GPIO3 31 RK_FUNC_2 &pcfg_pull_default>;
                                                <RK_GPIO3 20 RK_FUNC_1 &pcfg_pull_default>;
                        };
                };
+
+               i2s0 {
+                       i2s0_bus: i2s0-bus {
+                               rockchip,pins = <RK_GPIO0 7 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 8 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 9 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 10 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 11 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 12 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 13 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 14 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 15 RK_FUNC_1 &pcfg_pull_default>;
+                       };
+               };
+
+               i2s1 {
+                       i2s1_bus: i2s1-bus {
+                               rockchip,pins = <RK_GPIO0 16 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 17 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 18 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 19 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 20 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 21 RK_FUNC_1 &pcfg_pull_default>;
+                       };
+               };
+
+               i2s2 {
+                       i2s2_bus: i2s2-bus {
+                               rockchip,pins = <RK_GPIO0 24 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 25 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 26 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 27 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 28 RK_FUNC_1 &pcfg_pull_default>,
+                                               <RK_GPIO0 29 RK_FUNC_1 &pcfg_pull_default>;
+                       };
+               };
        };
 };
 
 &wdt {
        compatible = "rockchip,rk3066-wdt", "snps,dw-wdt";
 };
+
+&emac {
+       compatible = "rockchip,rk3066-emac";
+};
index 15910c9ddbc7c6cb33c30904a4107b387693e132..6eb62c0530551796920ef5d808677acfa7d3069b 100644 (file)
        };
 };
 
+&cpu0 {
+       cpu0-supply = <&vdd_arm>;
+};
+
 &i2c1 {
        status = "okay";
        clock-frequency = <400000>;
                        vdd_arm: REG3 {
                                regulator-name = "VDD_ARM";
                                regulator-min-microvolt = <875000>;
-                               regulator-max-microvolt = <1300000>;
+                               regulator-max-microvolt = <1350000>;
                                regulator-always-on;
                        };
 
        disable-wp;
 };
 
+&pwm1 {
+       status = "okay";
+};
+
+&pwm2 {
+       status = "okay";
+};
+
+&pwm3 {
+       status = "okay";
+};
+
 &pinctrl {
        pcfg_output_low: pcfg-output-low {
                output-low;
index ddaada788b4584429840953311cd806a7c2cff19..1d4d79c6688df78bdb622e1f0e36e740eeb602d3 100644 (file)
                #size-cells = <0>;
                enable-method = "rockchip,rk3066-smp";
 
-               cpu@0 {
+               cpu0: cpu@0 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        next-level-cache = <&L2>;
                        reg = <0x0>;
+                       operating-points = <
+                               /* kHz    uV */
+                               1608000 1350000
+                               1416000 1250000
+                               1200000 1150000
+                               1008000 1075000
+                                816000  975000
+                                600000  950000
+                                504000  925000
+                                312000  875000
+                       >;
+                       clock-latency = <40000>;
+                       clocks = <&cru ARMCLK>;
                };
                cpu@1 {
                        device_type = "cpu";
                };
        };
 
+       i2s0: i2s@1011a000 {
+               compatible = "rockchip,rk3188-i2s", "rockchip,rk3066-i2s";
+               reg = <0x1011a000 0x2000>;
+               interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2s0_bus>;
+               dmas = <&dmac1_s 6>, <&dmac1_s 7>;
+               dma-names = "tx", "rx";
+               clock-names = "i2s_hclk", "i2s_clk";
+               clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
+               status = "disabled";
+       };
+
        cru: clock-controller@20000000 {
                compatible = "rockchip,rk3188-cru";
                reg = <0x20000000 0x1000>;
                #size-cells = <1>;
                ranges;
 
-               gpio0: gpio0@0x2000a000 {
+               gpio0: gpio0@2000a000 {
                        compatible = "rockchip,rk3188-gpio-bank0";
                        reg = <0x2000a000 0x100>;
                        interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
                        #interrupt-cells = <2>;
                };
 
-               gpio1: gpio1@0x2003c000 {
+               gpio1: gpio1@2003c000 {
                        compatible = "rockchip,gpio-bank";
                        reg = <0x2003c000 0x100>;
                        interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
                                                <RK_GPIO3 20 RK_FUNC_1 &pcfg_pull_none>;
                        };
                };
+
+               i2s0 {
+                       i2s0_bus: i2s0-bus {
+                               rockchip,pins = <RK_GPIO1 16 RK_FUNC_1 &pcfg_pull_none>,
+                                               <RK_GPIO1 17 RK_FUNC_1 &pcfg_pull_none>,
+                                               <RK_GPIO1 18 RK_FUNC_1 &pcfg_pull_none>,
+                                               <RK_GPIO1 19 RK_FUNC_1 &pcfg_pull_none>,
+                                               <RK_GPIO1 20 RK_FUNC_1 &pcfg_pull_none>,
+                                               <RK_GPIO1 21 RK_FUNC_1 &pcfg_pull_none>;
+                       };
+               };
        };
 };
 
index ff522f8e3df4ea393a00a83b509f4452b1ef1bff..d8c775e6d5fe7d7ca73a3142b5c8b5707797b7cb 100644 (file)
        compatible = "rockchip,rk3288-evb-rk808", "rockchip,rk3288";
 };
 
+&cpu0 {
+       cpu0-supply = <&vdd_cpu>;
+};
+
 &i2c0 {
        clock-frequency = <400000>;
        status = "okay";
@@ -44,7 +48,7 @@
                                regulator-always-on;
                                regulator-boot-on;
                                regulator-min-microvolt = <750000>;
-                               regulator-max-microvolt = <1300000>;
+                               regulator-max-microvolt = <1350000>;
                                regulator-name = "vdd_arm";
                        };
 
index 874e66dbb93be117c5ff7afda004d8151b3603fd..ebcd2d2eef74612956b0ec62f65c240089fa80b5 100644 (file)
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
+               rockchip,pmu = <&pmu>;
 
-               cpu@500 {
+               cpu0: cpu@500 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a12";
                        reg = <0x500>;
+                       resets = <&cru SRST_CORE0>;
+                       operating-points = <
+                               /* KHz    uV */
+                               1608000 1350000
+                               1512000 1300000
+                               1416000 1200000
+                               1200000 1100000
+                               1008000 1050000
+                                816000 1000000
+                                696000  950000
+                                600000  900000
+                                408000  900000
+                                312000  900000
+                                216000  900000
+                                126000  900000
+                       >;
+                       clock-latency = <40000>;
+                       clocks = <&cru ARMCLK>;
                };
                cpu@501 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a12";
                        reg = <0x501>;
+                       resets = <&cru SRST_CORE1>;
                };
                cpu@502 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a12";
                        reg = <0x502>;
+                       resets = <&cru SRST_CORE2>;
                };
                cpu@503 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a12";
                        reg = <0x503>;
+                       resets = <&cru SRST_CORE3>;
                };
        };
 
                compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
                clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
                clock-names = "spiclk", "apb_pclk";
+               dmas = <&dmac_peri 11>, <&dmac_peri 12>;
+               dma-names = "tx", "rx";
                interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
                compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
                clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
                clock-names = "spiclk", "apb_pclk";
+               dmas = <&dmac_peri 13>, <&dmac_peri 14>;
+               dma-names = "tx", "rx";
                interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
                compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
                clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
                clock-names = "spiclk", "apb_pclk";
+               dmas = <&dmac_peri 15>, <&dmac_peri 16>;
+               dma-names = "tx", "rx";
                interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
                status = "disabled";
        };
 
+       bus_intmem@ff700000 {
+               compatible = "mmio-sram";
+               reg = <0xff700000 0x18000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0xff700000 0x18000>;
+               smp-sram@0 {
+                       compatible = "rockchip,rk3066-smp-sram";
+                       reg = <0x00 0x10>;
+               };
+       };
+
        pmu: power-management@ff730000 {
                compatible = "rockchip,rk3288-pmu", "syscon";
                reg = <0xff730000 0x100>;
                rockchip,grf = <&grf>;
                #clock-cells = <1>;
                #reset-cells = <1>;
+               assigned-clocks = <&cru PLL_GPLL>, <&cru PLL_CPLL>,
+                                 <&cru PLL_NPLL>, <&cru ACLK_CPU>,
+                                 <&cru HCLK_CPU>, <&cru PCLK_CPU>,
+                                 <&cru ACLK_PERI>, <&cru HCLK_PERI>,
+                                 <&cru PCLK_PERI>;
+               assigned-clock-rates = <594000000>, <400000000>,
+                                      <500000000>, <300000000>,
+                                      <150000000>, <75000000>,
+                                      <300000000>, <150000000>,
+                                      <75000000>;
        };
 
        grf: syscon@ff770000 {
                status = "disabled";
        };
 
+       vopb_mmu: iommu@ff930300 {
+               compatible = "rockchip,iommu";
+               reg = <0xff930300 0x100>;
+               interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "vopb_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       vopl_mmu: iommu@ff940300 {
+               compatible = "rockchip,iommu";
+               reg = <0xff940300 0x100>;
+               interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "vopl_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
        gic: interrupt-controller@ffc01000 {
                compatible = "arm,gic-400";
                interrupt-controller;
index 499468d42adac51007f6c663c6b2e0e64cd67ef6..87df6a8955aaf428dbf59f178080f4572baa2532 100644 (file)
                mshc0 = &emmc;
                mshc1 = &mmc0;
                mshc2 = &mmc1;
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+               serial3 = &uart3;
                spi0 = &spi0;
                spi1 = &spi1;
        };
                reg = <0x20070000 0x1000>;
                #address-cells = <1>;
                #size-cells = <0>;
+               dmas = <&dmac2 10>, <&dmac2 11>;
+               dma-names = "tx", "rx";
                status = "disabled";
        };
 
                reg = <0x20074000 0x1000>;
                #address-cells = <1>;
                #size-cells = <0>;
+               dmas = <&dmac2 12>, <&dmac2 13>;
+               dma-names = "tx", "rx";
                status = "disabled";
        };
 };
index 57e00f9bce999574d4eafc767d03344b83124e82..a25debb50401b01f5db79fc85007733bb4d8785d 100644 (file)
        status = "okay";
 };
 
-&pwm {
-       status = "okay";
-};
-
 &pinctrl0 {
        gpio_leds: gpio-leds {
                samsung,pins = "gpk-4", "gpk-5", "gpk-6", "gpk-7";
index ff5bdaac987af393e6640fd830c6a6a1806ef5b7..0ccb414cd2687c9567e492972528db4101d26199 100644 (file)
                        clocks = <&clocks PCLK_PWM>;
                        samsung,pwm-outputs = <0>, <1>;
                        #pwm-cells = <3>;
-                       status = "disabled";
                };
 
                pinctrl0: pinctrl@7f008000 {
index 30ef97e99dc53ea77cefcf55f370c8511ec468c8..939be1299ca6ca348b216e2aae325bb9af7675ee 100644 (file)
@@ -40,6 +40,7 @@
 
        chosen {
                bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel rw";
+               stdout-path = &scifa4;
        };
 
        memory {
                compatible = "gpio-leds";
                led1 {
                        gpios = <&pfc 20 GPIO_ACTIVE_LOW>;
+                       label = "LED1";
                };
                led2 {
                        gpios = <&pfc 21 GPIO_ACTIVE_LOW>;
+                       label = "LED2";
                };
                led3 {
                        gpios = <&pfc 22 GPIO_ACTIVE_LOW>;
+                       label = "LED3";
                };
                led4 {
                        gpios = <&pfc 23 GPIO_ACTIVE_LOW>;
+                       label = "LED4";
                };
        };
 
-       gpio-keys {
+       keyboard {
                compatible = "gpio-keys";
 
                back-key {
                };
        };
 
-       ak4648: ak4648@0x12 {
+       ak4648: ak4648@12 {
                #sound-dai-cells = <0>;
                compatible = "asahi-kasei,ak4648";
                reg = <0x12>;
index 030a5920312fa19b631246cd82e7a65924c95a46..d8def5a529da288251796155426cf08c110e12a1 100644 (file)
        i2c0: i2c@e6820000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "renesas,rmobile-iic";
+               compatible = "renesas,iic-sh73a0", "renesas,rmobile-iic";
                reg = <0xe6820000 0x425>;
                interrupts = <0 167 IRQ_TYPE_LEVEL_HIGH
                              0 168 IRQ_TYPE_LEVEL_HIGH
        i2c1: i2c@e6822000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "renesas,rmobile-iic";
+               compatible = "renesas,iic-sh73a0", "renesas,rmobile-iic";
                reg = <0xe6822000 0x425>;
                interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH
                              0 52 IRQ_TYPE_LEVEL_HIGH
        i2c2: i2c@e6824000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "renesas,rmobile-iic";
+               compatible = "renesas,iic-sh73a0", "renesas,rmobile-iic";
                reg = <0xe6824000 0x425>;
                interrupts = <0 171 IRQ_TYPE_LEVEL_HIGH
                              0 172 IRQ_TYPE_LEVEL_HIGH
        i2c3: i2c@e6826000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "renesas,rmobile-iic";
+               compatible = "renesas,iic-sh73a0", "renesas,rmobile-iic";
                reg = <0xe6826000 0x425>;
                interrupts = <0 183 IRQ_TYPE_LEVEL_HIGH
                              0 184 IRQ_TYPE_LEVEL_HIGH
        i2c4: i2c@e6828000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "renesas,rmobile-iic";
+               compatible = "renesas,iic-sh73a0", "renesas,rmobile-iic";
                reg = <0xe6828000 0x425>;
                interrupts = <0 187 IRQ_TYPE_LEVEL_HIGH
                              0 188 IRQ_TYPE_LEVEL_HIGH
index 4472fd92685c4b84d54e9dfb0041646f709e3477..252c3d1bda501f0814b73f6fa5e267c177cbff75 100644 (file)
                        clock-names = "biu", "ciu";
                };
 
+               ocram: sram@ffff0000 {
+                       compatible = "mmio-sram";
+                       reg = <0xffff0000 0x10000>;
+               };
+
+               spi0: spi@fff00000 {
+                       compatible = "snps,dw-apb-ssi";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0xfff00000 0x1000>;
+                       interrupts = <0 154 4>;
+                       num-cs = <4>;
+                       clocks = <&spi_m_clk>;
+                       status = "disabled";
+               };
+
+               spi1: spi@fff01000 {
+                       compatible = "snps,dw-apb-ssi";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0xfff01000 0x1000>;
+                       interrupts = <0 156 4>;
+                       num-cs = <4>;
+                       clocks = <&spi_m_clk>;
+                       status = "disabled";
+               };
+
                /* Local timer */
                timer@fffec600 {
                        compatible = "arm,cortex-a9-twd-timer";
diff --git a/arch/arm/boot/dts/socfpga_arria10.dtsi b/arch/arm/boot/dts/socfpga_arria10.dtsi
new file mode 100644 (file)
index 0000000..8a05c47
--- /dev/null
@@ -0,0 +1,374 @@
+/*
+ * Copyright Altera Corporation (C) 2014. 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 "skeleton.dtsi"
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       aliases {
+               ethernet0 = &gmac0;
+               ethernet1 = &gmac1;
+               ethernet2 = &gmac2;
+               serial0 = &uart0;
+               serial1 = &uart1;
+               timer0 = &timer0;
+               timer1 = &timer1;
+               timer2 = &timer2;
+               timer3 = &timer3;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       compatible = "arm,cortex-a9";
+                       device_type = "cpu";
+                       reg = <0>;
+                       next-level-cache = <&L2>;
+               };
+               cpu@1 {
+                       compatible = "arm,cortex-a9";
+                       device_type = "cpu";
+                       reg = <1>;
+                       next-level-cache = <&L2>;
+               };
+       };
+
+       intc: intc@ffffd000 {
+               compatible = "arm,cortex-a9-gic";
+               #interrupt-cells = <3>;
+               interrupt-controller;
+               reg = <0xffffd000 0x1000>,
+                     <0xffffc100 0x100>;
+       };
+
+       soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               device_type = "soc";
+               interrupt-parent = <&intc>;
+               ranges;
+
+               amba {
+                       compatible = "arm,amba-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       pdma: pdma@ffda1000 {
+                               compatible = "arm,pl330", "arm,primecell";
+                               reg = <0xffda1000 0x1000>;
+                               interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>,
+                                            <0 84 IRQ_TYPE_LEVEL_HIGH>,
+                                            <0 85 IRQ_TYPE_LEVEL_HIGH>,
+                                            <0 86 IRQ_TYPE_LEVEL_HIGH>,
+                                            <0 87 IRQ_TYPE_LEVEL_HIGH>,
+                                            <0 88 IRQ_TYPE_LEVEL_HIGH>,
+                                            <0 89 IRQ_TYPE_LEVEL_HIGH>,
+                                            <0 90 IRQ_TYPE_LEVEL_HIGH>;
+                               #dma-cells = <1>;
+                               #dma-channels = <8>;
+                               #dma-requests = <32>;
+                       };
+               };
+
+               clkmgr@ffd04000 {
+                               compatible = "altr,clk-mgr";
+                               reg = <0xffd04000 0x1000>;
+
+                               clocks {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       osc1: osc1 {
+                                               #clock-cells = <0>;
+                                               compatible = "fixed-clock";
+                                       };
+
+                                       main_pll: main_pll {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+                                               #clock-cells = <0>;
+                                               compatible = "altr,socfpga-pll-clock";
+                                               clocks = <&osc1>;
+                                       };
+
+                                       periph_pll: periph_pll {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+                                               #clock-cells = <0>;
+                                               compatible = "altr,socfpga-pll-clock";
+                                               clocks = <&osc1>;
+                                       };
+                               };
+               };
+
+               gmac0: ethernet@ff800000 {
+                       compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
+                       reg = <0xff800000 0x2000>;
+                       interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq";
+                       /* Filled in by bootloader */
+                       mac-address = [00 00 00 00 00 00];
+                       status = "disabled";
+               };
+
+               gmac1: ethernet@ff802000 {
+                       compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
+                       reg = <0xff802000 0x2000>;
+                       interrupts = <0 93 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq";
+                       /* Filled in by bootloader */
+                       mac-address = [00 00 00 00 00 00];
+                       status = "disabled";
+               };
+
+               gmac2: ethernet@ff804000 {
+                       compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
+                       reg = <0xff804000 0x2000>;
+                       interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq";
+                       /* Filled in by bootloader */
+                       mac-address = [00 00 00 00 00 00];
+                       status = "disabled";
+               };
+
+               gpio0: gpio@ffc02900 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "snps,dw-apb-gpio";
+                       reg = <0xffc02900 0x100>;
+                       status = "disabled";
+
+                       porta: gpio-controller@0 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               snps,nr-gpios = <29>;
+                               reg = <0>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               interrupts = <0 112 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
+               gpio1: gpio@ffc02a00 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "snps,dw-apb-gpio";
+                       reg = <0xffc02a00 0x100>;
+                       status = "disabled";
+
+                       portb: gpio-controller@0 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               snps,nr-gpios = <29>;
+                               reg = <0>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
+               gpio2: gpio@ffc02b00 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "snps,dw-apb-gpio";
+                       reg = <0xffc02b00 0x100>;
+                       status = "disabled";
+
+                       portc: gpio-controller@0 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               snps,nr-gpios = <27>;
+                               reg = <0>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
+               i2c0: i2c@ffc02200 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "snps,designware-i2c";
+                       reg = <0xffc02200 0x100>;
+                       interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               i2c1: i2c@ffc02300 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "snps,designware-i2c";
+                       reg = <0xffc02300 0x100>;
+                       interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@ffc02400 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "snps,designware-i2c";
+                       reg = <0xffc02400 0x100>;
+                       interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               i2c3: i2c@ffc02500 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "snps,designware-i2c";
+                       reg = <0xffc02500 0x100>;
+                       interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               i2c4: i2c@ffc02600 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "snps,designware-i2c";
+                       reg = <0xffc02600 0x100>;
+                       interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               L2: l2-cache@fffff000 {
+                       compatible = "arm,pl310-cache";
+                       reg = <0xfffff000 0x1000>;
+                       interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
+                       cache-unified;
+                       cache-level = <2>;
+               };
+
+               mmc: dwmmc0@ff808000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "altr,socfpga-dw-mshc";
+                       reg = <0xff808000 0x1000>;
+                       interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
+                       fifo-depth = <0x400>;
+               };
+
+               ocram: sram@ffe00000 {
+                       compatible = "mmio-sram";
+                       reg = <0xffe00000 0x40000>;
+               };
+
+               rst: rstmgr@ffd05000 {
+                       #reset-cells = <1>;
+                       compatible = "altr,rst-mgr";
+                       reg = <0xffd05000 0x100>;
+               };
+
+               sysmgr: sysmgr@ffd06000 {
+                       compatible = "altr,sys-mgr", "syscon";
+                       reg = <0xffd06000 0x300>;
+               };
+
+               /* Local timer */
+               timer@ffffc600 {
+                       compatible = "arm,cortex-a9-twd-timer";
+                       reg = <0xffffc600 0x100>;
+                       interrupts = <1 13 0xf04>;
+               };
+
+               timer0: timer0@ffc02700 {
+                       compatible = "snps,dw-apb-timer";
+                       interrupts = <0 115 IRQ_TYPE_LEVEL_HIGH>;
+                       reg = <0xffc02700 0x100>;
+               };
+
+               timer1: timer1@ffc02800 {
+                       compatible = "snps,dw-apb-timer";
+                       interrupts = <0 116 IRQ_TYPE_LEVEL_HIGH>;
+                       reg = <0xffc02800 0x100>;
+               };
+
+               timer2: timer2@ffd00000 {
+                       compatible = "snps,dw-apb-timer";
+                       interrupts = <0 117 IRQ_TYPE_LEVEL_HIGH>;
+                       reg = <0xffd00000 0x100>;
+               };
+
+               timer3: timer3@ffd00100 {
+                       compatible = "snps,dw-apb-timer";
+                       interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>;
+                       reg = <0xffd01000 0x100>;
+               };
+
+               uart0: serial0@ffc02000 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0xffc02000 0x100>;
+                       interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+               };
+
+               uart1: serial1@ffc02100 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0xffc02100 0x100>;
+                       interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+               };
+
+               usbphy0: usbphy@0 {
+                       #phy-cells = <0>;
+                       compatible = "usb-nop-xceiv";
+                       status = "okay";
+               };
+
+               usb0: usb@ffb00000 {
+                       compatible = "snps,dwc2";
+                       reg = <0xffb00000 0xffff>;
+                       interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>;
+                       phys = <&usbphy0>;
+                       phy-names = "usb2-phy";
+                       status = "disabled";
+               };
+
+               usb1: usb@ffb40000 {
+                       compatible = "snps,dwc2";
+                       reg = <0xffb40000 0xffff>;
+                       interrupts = <0 96 IRQ_TYPE_LEVEL_HIGH>;
+                       phys = <&usbphy0>;
+                       phy-names = "usb2-phy";
+                       status = "disabled";
+               };
+
+               watchdog0: watchdog@ffd00200 {
+                       compatible = "snps,dw-wdt";
+                       reg = <0xffd00200 0x100>;
+                       interrupts = <0 119 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               watchdog1: watchdog@ffd00300 {
+                       compatible = "snps,dw-wdt";
+                       reg = <0xffd00300 0x100>;
+                       interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/socfpga_arria10_socdk.dts b/arch/arm/boot/dts/socfpga_arria10_socdk.dts
new file mode 100755 (executable)
index 0000000..3015ce8
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2014 Altera Corporation <www.altera.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/dts-v1/;
+#include "socfpga_arria10.dtsi"
+
+/ {
+       model = "Altera SOCFPGA Arria 10";
+       compatible = "altr,socfpga-arria10", "altr,socfpga";
+
+       chosen {
+               bootargs = "console=ttyS0,115200 rootwait";
+       };
+
+       memory {
+               name = "memory";
+               device_type = "memory";
+               reg = <0x0 0x40000000>; /* 1GB */
+       };
+
+       soc {
+               clkmgr@ffd04000 {
+                       clocks {
+                               osc1 {
+                                       clock-frequency = <25000000>;
+                               };
+                       };
+               };
+
+               serial0@ffc02000 {
+                       status = "okay";
+               };
+       };
+};
index 28c05e7a31c9ec172ef03b1fc95bdcb7044446cc..06db951e06f8865b72cbce65739ce88c112f0dd8 100644 (file)
@@ -49,3 +49,7 @@
                };
        };
 };
+
+&watchdog0 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/ste-nomadik-nhk15.dts b/arch/arm/boot/dts/ste-nomadik-nhk15.dts
new file mode 100644 (file)
index 0000000..a8c00ee
--- /dev/null
@@ -0,0 +1,151 @@
+/*
+ * Device Tree for the ST-Ericsson Nomadik S8815 board
+ * Produced by Calao Systems
+ */
+
+/dts-v1/;
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/gpio/gpio.h>
+#include "ste-nomadik-stn8815.dtsi"
+
+/ {
+       model = "Nomadik STN8815NHK";
+       compatible = "st,nomadik-nhk-15";
+
+       chosen {
+               bootargs = "root=/dev/ram0 console=ttyAMA1,115200n8 earlyprintk";
+       };
+
+       aliases {
+               stmpe-i2c0 = &stmpe0;
+               stmpe-i2c1 = &stmpe1;
+       };
+
+       pinctrl {
+               stmpe2401_1 {
+                       stmpe2401_1_nhk_mode: stmpe2401_1_nhk {
+                               nhk_cfg1 {
+                                       ste,pins = "GPIO76_B20"; // IRQ line
+                                       ste,input = <0>;
+                               };
+                               nhk_cfg2 {
+                                       ste,pins = "GPIO77_B8"; // reset line
+                                       ste,output = <1>;
+                               };
+                       };
+               };
+               stmpe2401_2 {
+                       stmpe2401_2_nhk_mode: stmpe2401_2_nhk {
+                               nhk_cfg1 {
+                                       ste,pins = "GPIO78_A8"; // IRQ line
+                                       ste,input = <0>;
+                               };
+                               nhk_cfg2 {
+                                       ste,pins = "GPIO79_C9"; // reset line
+                                       ste,output = <1>;
+                               };
+                       };
+               };
+       };
+
+       src@101e0000 {
+               /* These chrystal outputs are not used on this board */
+               disable-sxtalo;
+               disable-mxtalo;
+       };
+
+       /* This is where the interrupt is routed on the NHK-15 debug board */
+       external-bus@34000000 {
+               compatible = "simple-bus";
+               reg = <0x34000000 0x1000000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0x34000000 0x1000000>;
+               ethernet@300 {
+                       compatible = "smsc,lan91c111";
+                       reg = <0x300 0x0fd00>;
+                       reg-io-width = <2>;
+                       reset-gpios = <&stmpe_gpio44 10 GPIO_ACTIVE_HIGH>;
+                       interrupt-parent = <&stmpe_gpio44>;
+                       interrupts = <11 IRQ_TYPE_EDGE_RISING>;
+               };
+       };
+
+       i2c0 {
+               stmpe0: stmpe2401@43 {
+                       compatible = "st,stmpe2401";
+                       reg = <0x43>;
+                       reset-gpios = <&gpio2 13 GPIO_ACTIVE_LOW>; // GPIO77
+                       interrupts = <12 IRQ_TYPE_EDGE_FALLING>; // GPIO76
+                       interrupt-parent = <&gpio2>;
+                       interrupt-controller;
+                       wakeup-source;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&stmpe2401_1_nhk_mode>;
+                       stmpe_gpio43: stmpe_gpio {
+                               compatible = "st,stmpe-gpio";
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               /* Some pins in alternate functions */
+                               st,norequest-mask = <0xf0f002>;
+                       };
+                       stmpe_keypad {
+                               compatible = "st,stmpe-keypad";
+                               debounce-interval = <64>;
+                               st,scan-count = <8>;
+                               st,no-autorepeat;
+                               keypad,num-rows = <8>;
+                               keypad,num-columns = <8>;
+                               linux,keymap = <0x00020072 // Vol down
+                                               0x00030073 // Vol up
+                                               0x0100009e // Back
+                                               0x010100e3 // TV out
+                                               0x01020098 // Lock
+                                               0x0103013b // Start
+                                               0x020000a3 // Next
+                                               0x020100a4 // Play
+                                               0x020200a5 // Prev
+                                               0x02030160 // OK
+                                               0x03000069 // Left
+                                               0x0301006a // Right
+                                               0x03020067 // Up
+                                               0x0303006c>; // Down
+                       };
+               };
+               stmpe1: stmpe2401@44 {
+                       compatible = "st,stmpe2401";
+                       reg = <0x44>;
+                       reset-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>; // GPIO79
+                       interrupts = <14 IRQ_TYPE_EDGE_FALLING>; // GPIO78
+                       interrupt-parent = <&gpio2>;
+                       interrupt-controller;
+                       wakeup-source;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&stmpe2401_2_nhk_mode>;
+                       stmpe_gpio44: stmpe_gpio {
+                               compatible = "st,stmpe-gpio";
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+               };
+       };
+
+       amba {
+               mmcsd: sdi@101f6000 {
+                       cd-gpios = <&stmpe_gpio44 7 GPIO_ACTIVE_LOW>;
+                       wp-gpios = <&stmpe_gpio44 18 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       /* Custom board node with GPIO pins to active etc */
+       usb-s8815 {
+               /* This will turn off SATA so that MMC/SD can thrive */
+               mmcsd-gpio {
+                       gpios = <&stmpe_gpio44 2 0x1>;
+               };
+       };
+};
index 90d8b6c7a20506ee81e9e5258e0d4522d8cfeba8..e411ff7769fee3fb2481bd89a0d7585d4eb1703e 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 /dts-v1/;
+#include <dt-bindings/interrupt-controller/irq.h>
 #include "ste-nomadik-stn8815.dtsi"
 
 / {
                bootargs = "root=/dev/ram0 console=ttyAMA1,115200n8 earlyprintk";
        };
 
-       /* This is where the interrupt is routed on the S8815 board */
-       external-bus@34000000 {
-               ethernet@300 {
-                       interrupt-parent = <&gpio3>;
-                       interrupts = <8 0x1>;
-               };
-       };
-
        src@101e0000 {
                /* These chrystal drivers are not used on this board */
                disable-sxtalo;
                                };
                        };
                };
+               gpioi2c {
+                       gpioi2c_default_mode: gpioi2c_default {
+                               gpioi2c_default_cfg {
+                                       ste,pins = "GPIO73_C21", "GPIO74_C20";
+                                       ste,input = <0>;
+                               };
+                       };
+               };
                user-led {
                        user_led_default_mode: user_led_default {
                                user_led_default_cfg {
                };
        };
 
+       /* Ethernet */
+       external-bus@34000000 {
+               compatible = "simple-bus";
+               reg = <0x34000000 0x1000000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0x34000000 0x1000000>;
+               ethernet@300 {
+                       compatible = "smsc,lan91c111";
+                       reg = <0x300 0x0fd00>;
+                       interrupt-parent = <&gpio3>;
+                       interrupts = <8 IRQ_TYPE_EDGE_RISING>;
+               };
+       };
+
+       /* GPIO I2C connected to the USB portions of the STw4811 only */
+       gpio-i2c {
+               compatible = "i2c-gpio";
+               gpios = <&gpio2 10 0>, /* sda */
+                       <&gpio2 9 0>; /* scl */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpioi2c_default_mode>;
+
+               stw4811@2d {
+                          compatible = "st,stw4811-usb";
+                          reg = <0x2d>;
+               };
+       };
+
+
+       /* Configure card detect for the uSD slot */
+       amba {
+               mmcsd: sdi@101f6000 {
+                       cd-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
+               };
+       };
+
        /* Custom board node with GPIO pins to active etc */
        usb-s8815 {
                /* This will bias the MMC/SD card detect line */
index dbcf521b017f207fff1286d3c02e3e6586cc761e..f435ff20aefef7d1b7edbd7391217ac140a585de 100644 (file)
                        mmcsd_default_mux: mmcsd_mux {
                                mmcsd_default_mux {
                                        ste,function = "mmcsd";
-                                       ste,pins = "mmcsd_a_1";
+                                       ste,pins = "mmcsd_a_1", "mmcsd_b_1";
                                };
                        };
                        mmcsd_default_mode: mmcsd_default {
                                        ste,output = <0>;
                                };
                                mmcsd_default_cfg2 {
-                                       /* MCCMDDIR, MCDAT0DIR, MCDAT31DIR */
+                                       /* MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2 */
                                        ste,pins = "GPIO10_C11", "GPIO15_A12",
-                                       "GPIO16_C13";
+                                       "GPIO16_C13", "GPIO23_D15";
                                        ste,output = <1>;
                                };
                                mmcsd_default_cfg3 {
                                };
                        };
                };
-               i2c2 {
-                       i2c2_default_mode: i2c2_default {
-                               i2c2_default_cfg {
-                                       ste,pins = "GPIO73_C21", "GPIO74_C20";
-                                       ste,input = <0>;
-                               };
-                       };
-               };
        };
 
        src: src@101e0000 {
                compatible = "stericsson,nomadik-src";
                reg = <0x101e0000 0x1000>;
-               disable-sxtalo;
-               disable-mxtalo;
 
                /*
                 * MXTAL "Main Chrystal" is a chrystal oscillator @19.2 MHz
                };
        };
 
-       external-bus@34000000 {
-               compatible = "simple-bus";
-               reg = <0x34000000 0x1000000>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges = <0 0x34000000 0x1000000>;
-               ethernet@300 {
-                       compatible = "smsc,lan91c111";
-                       reg = <0x300 0x0fd00>;
-               };
-       };
-
        /* I2C0 connected to the STw4811 power management chip */
        i2c0 {
                compatible = "st,nomadik-i2c", "arm,primecell";
                };
        };
 
-       /* I2C2 connected to the USB portions of the STw4811 only */
-       i2c2 {
-               compatible = "i2c-gpio";
-               gpios = <&gpio2 10 0>, /* sda */
-                       <&gpio2 9 0>; /* scl */
-               #address-cells = <1>;
-               #size-cells = <0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c2_default_mode>;
-
-               stw4811@2d {
-                          compatible = "st,stw4811-usb";
-                          reg = <0x2d>;
-               };
-       };
-
        amba {
                compatible = "arm,amba-bus";
                #address-cells = <1>;
                        bus-width = <4>;
                        cap-mmc-highspeed;
                        cap-sd-highspeed;
-                       cd-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>;
                        vmmc-supply = <&vmmc_regulator>;
index fe69f92e5f827c02c0c4566ffac0ed938ceaf410..261d5e2c48d24de2262d2947387e39441c6a434d 100644 (file)
@@ -7,13 +7,15 @@
  * published by the Free Software Foundation.
  */
 /dts-v1/;
-#include "stih407.dtsi"
+#include "stih407-clock.dtsi"
+#include "stih407-family.dtsi"
+#include "stihxxx-b2120.dtsi"
 / {
        model = "STiH407 B2120";
        compatible = "st,stih407-b2120", "st,stih407";
 
        chosen {
-               bootargs = "console=ttyAS0,115200";
+               bootargs = "console=ttyAS0,115200 clk_ignore_unused";
                linux,stdout-path = &sbc_serial0;
        };
 
                ttyAS0 = &sbc_serial0;
        };
 
-       soc {
-               sbc_serial0: serial@9530000 {
-                       status = "okay";
-               };
-
-               leds {
-                       compatible = "gpio-leds";
-                       red {
-                               #gpio-cells = <2>;
-                               label = "Front Panel LED";
-                               gpios = <&pio4 1 0>;
-                               linux,default-trigger = "heartbeat";
-                       };
-                       green {
-                               #gpio-cells = <2>;
-                               gpios = <&pio1 3 0>;
-                               default-state = "off";
-                       };
-               };
-
-               i2c@9842000 {
-                       status = "okay";
-               };
-
-               i2c@9843000 {
-                       status = "okay";
-               };
-
-               i2c@9844000 {
-                       status = "okay";
-               };
-
-               i2c@9845000 {
-                       status = "okay";
-               };
-
-               i2c@9540000 {
-                       status = "okay";
-               };
-
-               /* SSC11 to HDMI */
-               i2c@9541000 {
-                       status = "okay";
-                       /* HDMI V1.3a supports Standard mode only */
-                       clock-frequency = <100000>;
-                       st,i2c-min-scl-pulse-width-us = <0>;
-                       st,i2c-min-sda-pulse-width-us = <5>;
-               };
-       };
 };
index 800f46f009f3838c98beaa83d05dd442acb68690..e65744fc12ab0e293ae8d43ce1d05311f7216f10 100644 (file)
@@ -5,8 +5,13 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
+#include <dt-bindings/clock/stih407-clks.h>
 / {
        clocks {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
                /*
                 * Fixed 30MHz oscillator inputs to SoC
                 */
                /*
                 * ARM Peripheral clock for timers
                 */
-               arm_periph_clk: arm-periph-clk {
+               arm_periph_clk: clk-m-a9-periphs {
                        #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <600000000>;
+                       compatible = "fixed-factor-clock";
+
+                       clocks = <&clk_m_a9>;
+                       clock-div = <2>;
+                       clock-mult = <1>;
+               };
+
+               /*
+                * A9 PLL.
+                */
+               clockgen-a9@92b0000 {
+                       compatible = "st,clkgen-c32";
+                       reg = <0x92b0000 0xffff>;
+
+                       clockgen_a9_pll: clockgen-a9-pll {
+                               #clock-cells = <1>;
+                               compatible = "st,stih407-plls-c32-a9", "st,clkgen-plls-c32";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clockgen-a9-pll-odf";
+                       };
+               };
+
+               /*
+                * ARM CPU related clocks.
+                */
+               clk_m_a9: clk-m-a9@92b0000 {
+                       #clock-cells = <0>;
+                       compatible = "st,stih407-clkgen-a9-mux", "st,clkgen-mux";
+                       reg = <0x92b0000 0x10000>;
+
+                       clocks = <&clockgen_a9_pll 0>,
+                                <&clockgen_a9_pll 0>,
+                                <&clk_s_c0_flexgen 13>,
+                                <&clk_m_a9_ext2f_div2>;
+               };
+
+               /*
+                * ARM Peripheral clock for timers
+                */
+               clk_m_a9_ext2f_div2: clk-m-a9-ext2f-div2s {
+                       #clock-cells = <0>;
+                       compatible = "fixed-factor-clock";
+
+                       clocks = <&clk_s_c0_flexgen 13>;
+
+                       clock-output-names = "clk-m-a9-ext2f-div2";
+
+                       clock-div = <2>;
+                       clock-mult = <1>;
                };
 
                /*
                        clock-frequency = <200000000>;
                        clock-output-names = "clk-s-icn-reg-0";
                };
+
+               clockgen-a@090ff000 {
+                       compatible = "st,clkgen-c32";
+                       reg = <0x90ff000 0x1000>;
+
+                       clk_s_a0_pll: clk-s-a0-pll {
+                               #clock-cells = <1>;
+                               compatible = "st,stih407-plls-c32-a0", "st,clkgen-plls-c32";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-s-a0-pll-ofd-0";
+                       };
+
+                       clk_s_a0_flexgen: clk-s-a0-flexgen {
+                               compatible = "st,flexgen";
+
+                               #clock-cells = <1>;
+
+                               clocks = <&clk_s_a0_pll 0>,
+                                        <&clk_sysin>;
+
+                               clock-output-names = "clk-ic-lmi0";
+                       };
+               };
+
+               clk_s_c0_quadfs: clk-s-c0-quadfs@9103000 {
+                       #clock-cells = <1>;
+                       compatible = "st,stih407-quadfs660-C", "st,quadfs";
+                       reg = <0x9103000 0x1000>;
+
+                       clocks = <&clk_sysin>;
+
+                       clock-output-names = "clk-s-c0-fs0-ch0",
+                                            "clk-s-c0-fs0-ch1",
+                                            "clk-s-c0-fs0-ch2",
+                                            "clk-s-c0-fs0-ch3";
+               };
+
+               clk_s_c0: clockgen-c@09103000 {
+                       compatible = "st,clkgen-c32";
+                       reg = <0x9103000 0x1000>;
+
+                       clk_s_c0_pll0: clk-s-c0-pll0 {
+                               #clock-cells = <1>;
+                               compatible = "st,stih407-plls-c32-c0_0", "st,clkgen-plls-c32";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-s-c0-pll0-odf-0";
+                       };
+
+                       clk_s_c0_pll1: clk-s-c0-pll1 {
+                               #clock-cells = <1>;
+                               compatible = "st,stih407-plls-c32-c0_1", "st,clkgen-plls-c32";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-s-c0-pll1-odf-0";
+                       };
+
+                       clk_s_c0_flexgen: clk-s-c0-flexgen {
+                               #clock-cells = <1>;
+                               compatible = "st,flexgen";
+
+                               clocks = <&clk_s_c0_pll0 0>,
+                                        <&clk_s_c0_pll1 0>,
+                                        <&clk_s_c0_quadfs 0>,
+                                        <&clk_s_c0_quadfs 1>,
+                                        <&clk_s_c0_quadfs 2>,
+                                        <&clk_s_c0_quadfs 3>,
+                                        <&clk_sysin>;
+
+                               clock-output-names = "clk-icn-gpu",
+                                                    "clk-fdma",
+                                                    "clk-nand",
+                                                    "clk-hva",
+                                                    "clk-proc-stfe",
+                                                    "clk-proc-tp",
+                                                    "clk-rx-icn-dmu",
+                                                    "clk-rx-icn-hva",
+                                                    "clk-icn-cpu",
+                                                    "clk-tx-icn-dmu",
+                                                    "clk-mmc-0",
+                                                    "clk-mmc-1",
+                                                    "clk-jpegdec",
+                                                    "clk-ext2fa9",
+                                                    "clk-ic-bdisp-0",
+                                                    "clk-ic-bdisp-1",
+                                                    "clk-pp-dmu",
+                                                    "clk-vid-dmu",
+                                                    "clk-dss-lpc",
+                                                    "clk-st231-aud-0",
+                                                    "clk-st231-gp-1",
+                                                    "clk-st231-dmu",
+                                                    "clk-icn-lmi",
+                                                    "clk-tx-icn-disp-1",
+                                                    "clk-icn-sbc",
+                                                    "clk-stfe-frc2",
+                                                    "clk-eth-phy",
+                                                    "clk-eth-ref-phyclk",
+                                                    "clk-flash-promip",
+                                                    "clk-main-disp",
+                                                    "clk-aux-disp",
+                                                    "clk-compo-dvp";
+                       };
+               };
+
+               clk_s_d0_quadfs: clk-s-d0-quadfs@9104000 {
+                       #clock-cells = <1>;
+                       compatible = "st,stih407-quadfs660-D", "st,quadfs";
+                       reg = <0x9104000 0x1000>;
+
+                       clocks = <&clk_sysin>;
+
+                       clock-output-names = "clk-s-d0-fs0-ch0",
+                                            "clk-s-d0-fs0-ch1",
+                                            "clk-s-d0-fs0-ch2",
+                                            "clk-s-d0-fs0-ch3";
+               };
+
+               clockgen-d0@09104000 {
+                       compatible = "st,clkgen-c32";
+                       reg = <0x9104000 0x1000>;
+
+                       clk_s_d0_flexgen: clk-s-d0-flexgen {
+                               #clock-cells = <1>;
+                               compatible = "st,flexgen";
+
+                               clocks = <&clk_s_d0_quadfs 0>,
+                                        <&clk_s_d0_quadfs 1>,
+                                        <&clk_s_d0_quadfs 2>,
+                                        <&clk_s_d0_quadfs 3>,
+                                        <&clk_sysin>;
+
+                               clock-output-names = "clk-pcm-0",
+                                                    "clk-pcm-1",
+                                                    "clk-pcm-2",
+                                                    "clk-spdiff";
+                       };
+               };
+
+               clk_s_d2_quadfs: clk-s-d2-quadfs@9106000 {
+                       #clock-cells = <1>;
+                       compatible = "st,stih407-quadfs660-D", "st,quadfs";
+                       reg = <0x9106000 0x1000>;
+
+                       clocks = <&clk_sysin>;
+
+                       clock-output-names = "clk-s-d2-fs0-ch0",
+                                            "clk-s-d2-fs0-ch1",
+                                            "clk-s-d2-fs0-ch2",
+                                            "clk-s-d2-fs0-ch3";
+               };
+
+               clk_tmdsout_hdmi: clk-tmdsout-hdmi {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <0>;
+               };
+
+               clockgen-d2@x9106000 {
+                       compatible = "st,clkgen-c32";
+                       reg = <0x9106000 0x1000>;
+
+                       clk_s_d2_flexgen: clk-s-d2-flexgen {
+                               #clock-cells = <1>;
+                               compatible = "st,flexgen";
+
+                               clocks = <&clk_s_d2_quadfs 0>,
+                                        <&clk_s_d2_quadfs 1>,
+                                        <&clk_s_d2_quadfs 2>,
+                                        <&clk_s_d2_quadfs 3>,
+                                        <&clk_sysin>,
+                                        <&clk_sysin>,
+                                        <&clk_tmdsout_hdmi>;
+
+                               clock-output-names = "clk-pix-main-disp",
+                                                    "clk-pix-pip",
+                                                    "clk-pix-gdp1",
+                                                    "clk-pix-gdp2",
+                                                    "clk-pix-gdp3",
+                                                    "clk-pix-gdp4",
+                                                    "clk-pix-aux-disp",
+                                                    "clk-denc",
+                                                    "clk-pix-hddac",
+                                                    "clk-hddac",
+                                                    "clk-sddac",
+                                                    "clk-pix-dvo",
+                                                    "clk-dvo",
+                                                    "clk-pix-hdmi",
+                                                    "clk-tmds-hdmi",
+                                                    "clk-ref-hdmiphy";
+                                                    };
+               };
+
+               clk_s_d3_quadfs: clk-s-d3-quadfs@9107000 {
+                       #clock-cells = <1>;
+                       compatible = "st,stih407-quadfs660-D", "st,quadfs";
+                       reg = <0x9107000 0x1000>;
+
+                       clocks = <&clk_sysin>;
+
+                       clock-output-names = "clk-s-d3-fs0-ch0",
+                                            "clk-s-d3-fs0-ch1",
+                                            "clk-s-d3-fs0-ch2",
+                                            "clk-s-d3-fs0-ch3";
+               };
+
+               clockgen-d3@9107000 {
+                       compatible = "st,clkgen-c32";
+                       reg = <0x9107000 0x1000>;
+
+                       clk_s_d3_flexgen: clk-s-d3-flexgen {
+                               #clock-cells = <1>;
+                               compatible = "st,flexgen";
+
+                               clocks = <&clk_s_d3_quadfs 0>,
+                                        <&clk_s_d3_quadfs 1>,
+                                        <&clk_s_d3_quadfs 2>,
+                                        <&clk_s_d3_quadfs 3>,
+                                        <&clk_sysin>;
+
+                               clock-output-names = "clk-stfe-frc1",
+                                                    "clk-tsout-0",
+                                                    "clk-tsout-1",
+                                                    "clk-mchi",
+                                                    "clk-vsens-compo",
+                                                    "clk-frc1-remote",
+                                                    "clk-lpc-0",
+                                                    "clk-lpc-1";
+                       };
+               };
        };
 };
diff --git a/arch/arm/boot/dts/stih407-family.dtsi b/arch/arm/boot/dts/stih407-family.dtsi
new file mode 100644 (file)
index 0000000..3e31d32
--- /dev/null
@@ -0,0 +1,278 @@
+/*
+ * Copyright (C) 2014 STMicroelectronics Limited.
+ * Author: Giuseppe Cavallaro <peppe.cavallaro@st.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
+ * publishhed by the Free Software Foundation.
+ */
+#include "stih407-pinctrl.dtsi"
+#include <dt-bindings/reset-controller/stih407-resets.h>
+/ {
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0>;
+               };
+               cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <1>;
+               };
+       };
+
+       intc: interrupt-controller@08761000 {
+               compatible = "arm,cortex-a9-gic";
+               #interrupt-cells = <3>;
+               interrupt-controller;
+               reg = <0x08761000 0x1000>, <0x08760100 0x100>;
+       };
+
+       scu@08760000 {
+               compatible = "arm,cortex-a9-scu";
+               reg = <0x08760000 0x1000>;
+       };
+
+       timer@08760200 {
+               interrupt-parent = <&intc>;
+               compatible = "arm,cortex-a9-global-timer";
+               reg = <0x08760200 0x100>;
+               interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&arm_periph_clk>;
+       };
+
+       l2: cache-controller {
+               compatible = "arm,pl310-cache";
+               reg = <0x08762000 0x1000>;
+               arm,data-latency = <3 3 3>;
+               arm,tag-latency = <2 2 2>;
+               cache-unified;
+               cache-level = <2>;
+       };
+
+       soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               interrupt-parent = <&intc>;
+               ranges;
+               compatible = "simple-bus";
+
+               powerdown: powerdown-controller {
+                       compatible = "st,stih407-powerdown";
+                       #reset-cells = <1>;
+               };
+
+               softreset: softreset-controller {
+                       compatible = "st,stih407-softreset";
+                       #reset-cells = <1>;
+               };
+
+               picophyreset: picophyreset-controller {
+                       compatible = "st,stih407-picophyreset";
+                       #reset-cells = <1>;
+               };
+
+               syscfg_sbc: sbc-syscfg@9620000 {
+                       compatible = "st,stih407-sbc-syscfg", "syscon";
+                       reg = <0x9620000 0x1000>;
+               };
+
+               syscfg_front: front-syscfg@9280000 {
+                       compatible = "st,stih407-front-syscfg", "syscon";
+                       reg = <0x9280000 0x1000>;
+               };
+
+               syscfg_rear: rear-syscfg@9290000 {
+                       compatible = "st,stih407-rear-syscfg", "syscon";
+                       reg = <0x9290000 0x1000>;
+               };
+
+               syscfg_flash: flash-syscfg@92a0000 {
+                       compatible = "st,stih407-flash-syscfg", "syscon";
+                       reg = <0x92a0000 0x1000>;
+               };
+
+               syscfg_sbc_reg: fvdp-lite-syscfg@9600000 {
+                       compatible = "st,stih407-sbc-reg-syscfg", "syscon";
+                       reg = <0x9600000 0x1000>;
+               };
+
+               syscfg_core: core-syscfg@92b0000 {
+                       compatible = "st,stih407-core-syscfg", "syscon";
+                       reg = <0x92b0000 0x1000>;
+               };
+
+               syscfg_lpm: lpm-syscfg@94b5100 {
+                       compatible = "st,stih407-lpm-syscfg", "syscon";
+                       reg = <0x94b5100 0x1000>;
+               };
+
+               serial@9830000 {
+                       compatible = "st,asc";
+                       reg = <0x9830000 0x2c>;
+                       interrupts = <GIC_SPI 122 IRQ_TYPE_NONE>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_serial0>;
+                       clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
+
+                       status = "disabled";
+               };
+
+               serial@9831000 {
+                       compatible = "st,asc";
+                       reg = <0x9831000 0x2c>;
+                       interrupts = <GIC_SPI 123 IRQ_TYPE_NONE>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_serial1>;
+                       clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
+
+                       status = "disabled";
+               };
+
+               serial@9832000 {
+                       compatible = "st,asc";
+                       reg = <0x9832000 0x2c>;
+                       interrupts = <GIC_SPI 124 IRQ_TYPE_NONE>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_serial2>;
+                       clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
+
+                       status = "disabled";
+               };
+
+               /* SBC_ASC0 - UART10 */
+               sbc_serial0: serial@9530000 {
+                       compatible = "st,asc";
+                       reg = <0x9530000 0x2c>;
+                       interrupts = <GIC_SPI 138 IRQ_TYPE_NONE>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_sbc_serial0>;
+                       clocks = <&clk_sysin>;
+
+                       status = "disabled";
+               };
+
+               serial@9531000 {
+                       compatible = "st,asc";
+                       reg = <0x9531000 0x2c>;
+                       interrupts = <GIC_SPI 139 IRQ_TYPE_NONE>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_sbc_serial1>;
+                       clocks = <&clk_sysin>;
+
+                       status = "disabled";
+               };
+
+               i2c@9840000 {
+                       compatible = "st,comms-ssc4-i2c";
+                       interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
+                       reg = <0x9840000 0x110>;
+                       clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
+                       clock-names = "ssc";
+                       clock-frequency = <400000>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c0_default>;
+
+                       status = "disabled";
+               };
+
+               i2c@9841000 {
+                       compatible = "st,comms-ssc4-i2c";
+                       reg = <0x9841000 0x110>;
+                       interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
+                       clock-names = "ssc";
+                       clock-frequency = <400000>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c1_default>;
+
+                       status = "disabled";
+               };
+
+               i2c@9842000 {
+                       compatible = "st,comms-ssc4-i2c";
+                       reg = <0x9842000 0x110>;
+                       interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
+                       clock-names = "ssc";
+                       clock-frequency = <400000>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c2_default>;
+
+                       status = "disabled";
+               };
+
+               i2c@9843000 {
+                       compatible = "st,comms-ssc4-i2c";
+                       reg = <0x9843000 0x110>;
+                       interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
+                       clock-names = "ssc";
+                       clock-frequency = <400000>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c3_default>;
+
+                       status = "disabled";
+               };
+
+               i2c@9844000 {
+                       compatible = "st,comms-ssc4-i2c";
+                       reg = <0x9844000 0x110>;
+                       interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
+                       clock-names = "ssc";
+                       clock-frequency = <400000>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c4_default>;
+
+                       status = "disabled";
+               };
+
+               i2c@9845000 {
+                       compatible = "st,comms-ssc4-i2c";
+                       reg = <0x9845000 0x110>;
+                       interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
+                       clock-names = "ssc";
+                       clock-frequency = <400000>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c5_default>;
+
+                       status = "disabled";
+               };
+
+
+               /* SSCs on SBC */
+               i2c@9540000 {
+                       compatible = "st,comms-ssc4-i2c";
+                       reg = <0x9540000 0x110>;
+                       interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_sysin>;
+                       clock-names = "ssc";
+                       clock-frequency = <400000>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c10_default>;
+
+                       status = "disabled";
+               };
+
+               i2c@9541000 {
+                       compatible = "st,comms-ssc4-i2c";
+                       reg = <0x9541000 0x110>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_sysin>;
+                       clock-names = "ssc";
+                       clock-frequency = <400000>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c11_default>;
+
+                       status = "disabled";
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/stih407.dtsi b/arch/arm/boot/dts/stih407.dtsi
deleted file mode 100644 (file)
index 4f9024f..0000000
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * Copyright (C) 2014 STMicroelectronics Limited.
- * Author: Giuseppe Cavallaro <peppe.cavallaro@st.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
- * publishhed by the Free Software Foundation.
- */
-#include "stih407-clock.dtsi"
-#include "stih407-pinctrl.dtsi"
-/ {
-       #address-cells = <1>;
-       #size-cells = <1>;
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               cpu@0 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a9";
-                       reg = <0>;
-               };
-               cpu@1 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a9";
-                       reg = <1>;
-               };
-       };
-
-       intc: interrupt-controller@08761000 {
-               compatible = "arm,cortex-a9-gic";
-               #interrupt-cells = <3>;
-               interrupt-controller;
-               reg = <0x08761000 0x1000>, <0x08760100 0x100>;
-       };
-
-       scu@08760000 {
-               compatible = "arm,cortex-a9-scu";
-               reg = <0x08760000 0x1000>;
-       };
-
-       timer@08760200 {
-               interrupt-parent = <&intc>;
-               compatible = "arm,cortex-a9-global-timer";
-               reg = <0x08760200 0x100>;
-               interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&arm_periph_clk>;
-       };
-
-       l2: cache-controller {
-               compatible = "arm,pl310-cache";
-               reg = <0x08762000 0x1000>;
-               arm,data-latency = <3 3 3>;
-               arm,tag-latency = <2 2 2>;
-               cache-unified;
-               cache-level = <2>;
-       };
-
-       soc {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               interrupt-parent = <&intc>;
-               ranges;
-               compatible = "simple-bus";
-
-               syscfg_sbc: sbc-syscfg@9620000 {
-                       compatible = "st,stih407-sbc-syscfg", "syscon";
-                       reg = <0x9620000 0x1000>;
-               };
-
-               syscfg_front: front-syscfg@9280000 {
-                       compatible = "st,stih407-front-syscfg", "syscon";
-                       reg = <0x9280000 0x1000>;
-               };
-
-               syscfg_rear: rear-syscfg@9290000 {
-                       compatible = "st,stih407-rear-syscfg", "syscon";
-                       reg = <0x9290000 0x1000>;
-               };
-
-               syscfg_flash: flash-syscfg@92a0000 {
-                       compatible = "st,stih407-flash-syscfg", "syscon";
-                       reg = <0x92a0000 0x1000>;
-               };
-
-               syscfg_sbc_reg: fvdp-lite-syscfg@9600000 {
-                       compatible = "st,stih407-sbc-reg-syscfg", "syscon";
-                       reg = <0x9600000 0x1000>;
-               };
-
-               syscfg_core: core-syscfg@92b0000 {
-                       compatible = "st,stih407-core-syscfg", "syscon";
-                       reg = <0x92b0000 0x1000>;
-               };
-
-               syscfg_lpm: lpm-syscfg@94b5100 {
-                       compatible = "st,stih407-lpm-syscfg", "syscon";
-                       reg = <0x94b5100 0x1000>;
-               };
-
-               serial@9830000 {
-                       compatible = "st,asc";
-                       reg = <0x9830000 0x2c>;
-                       interrupts = <GIC_SPI 122 IRQ_TYPE_NONE>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_serial0>;
-                       clocks = <&clk_ext2f_a9>;
-
-                       status = "disabled";
-               };
-
-               serial@9831000 {
-                       compatible = "st,asc";
-                       reg = <0x9831000 0x2c>;
-                       interrupts = <GIC_SPI 123 IRQ_TYPE_NONE>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_serial1>;
-                       clocks = <&clk_ext2f_a9>;
-
-                       status = "disabled";
-               };
-
-               serial@9832000 {
-                       compatible = "st,asc";
-                       reg = <0x9832000 0x2c>;
-                       interrupts = <GIC_SPI 124 IRQ_TYPE_NONE>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_serial2>;
-                       clocks = <&clk_ext2f_a9>;
-
-                       status = "disabled";
-               };
-
-               /* SBC_ASC0 - UART10 */
-               sbc_serial0: serial@9530000 {
-                       compatible = "st,asc";
-                       reg = <0x9530000 0x2c>;
-                       interrupts = <GIC_SPI 138 IRQ_TYPE_NONE>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_sbc_serial0>;
-                       clocks = <&clk_sysin>;
-
-                       status = "disabled";
-               };
-
-               serial@9531000 {
-                       compatible = "st,asc";
-                       reg = <0x9531000 0x2c>;
-                       interrupts = <GIC_SPI 139 IRQ_TYPE_NONE>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_sbc_serial1>;
-                       clocks = <&clk_sysin>;
-
-                       status = "disabled";
-               };
-
-               i2c@9840000 {
-                       compatible = "st,comms-ssc4-i2c";
-                       interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
-                       reg = <0x9840000 0x110>;
-                       clocks = <&clk_ext2f_a9>;
-                       clock-names = "ssc";
-                       clock-frequency = <400000>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_i2c0_default>;
-
-                       status = "disabled";
-               };
-
-               i2c@9841000 {
-                       compatible = "st,comms-ssc4-i2c";
-                       reg = <0x9841000 0x110>;
-                       interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&clk_ext2f_a9>;
-                       clock-names = "ssc";
-                       clock-frequency = <400000>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_i2c1_default>;
-
-                       status = "disabled";
-               };
-
-               i2c@9842000 {
-                       compatible = "st,comms-ssc4-i2c";
-                       reg = <0x9842000 0x110>;
-                       interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&clk_ext2f_a9>;
-                       clock-names = "ssc";
-                       clock-frequency = <400000>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_i2c2_default>;
-
-                       status = "disabled";
-               };
-
-               i2c@9843000 {
-                       compatible = "st,comms-ssc4-i2c";
-                       reg = <0x9843000 0x110>;
-                       interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&clk_ext2f_a9>;
-                       clock-names = "ssc";
-                       clock-frequency = <400000>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_i2c3_default>;
-
-                       status = "disabled";
-               };
-
-               i2c@9844000 {
-                       compatible = "st,comms-ssc4-i2c";
-                       reg = <0x9844000 0x110>;
-                       interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&clk_ext2f_a9>;
-                       clock-names = "ssc";
-                       clock-frequency = <400000>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_i2c4_default>;
-
-                       status = "disabled";
-               };
-
-               i2c@9845000 {
-                       compatible = "st,comms-ssc4-i2c";
-                       reg = <0x9845000 0x110>;
-                       interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&clk_ext2f_a9>;
-                       clock-names = "ssc";
-                       clock-frequency = <400000>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_i2c5_default>;
-
-                       status = "disabled";
-               };
-
-
-               /* SSCs on SBC */
-               i2c@9540000 {
-                       compatible = "st,comms-ssc4-i2c";
-                       reg = <0x9540000 0x110>;
-                       interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&clk_sysin>;
-                       clock-names = "ssc";
-                       clock-frequency = <400000>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_i2c10_default>;
-
-                       status = "disabled";
-               };
-
-               i2c@9541000 {
-                       compatible = "st,comms-ssc4-i2c";
-                       reg = <0x9541000 0x110>;
-                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&clk_sysin>;
-                       clock-names = "ssc";
-                       clock-frequency = <400000>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_i2c11_default>;
-
-                       status = "disabled";
-               };
-       };
-};
diff --git a/arch/arm/boot/dts/stih410-b2120.dts b/arch/arm/boot/dts/stih410-b2120.dts
new file mode 100644 (file)
index 0000000..2f61a99
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2014 STMicroelectronics (R&D) Limited.
+ * Author: Peter Griffin <peter.griffin@linaro.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/dts-v1/;
+#include "stih410.dtsi"
+#include "stihxxx-b2120.dtsi"
+/ {
+       model = "STiH410 B2120";
+       compatible = "st,stih410-b2120", "st,stih410";
+
+       chosen {
+               bootargs = "console=ttyAS0,115200 clk_ignore_unused";
+               linux,stdout-path = &sbc_serial0;
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x40000000 0x80000000>;
+       };
+
+       aliases {
+               ttyAS0 = &sbc_serial0;
+       };
+};
diff --git a/arch/arm/boot/dts/stih410-clock.dtsi b/arch/arm/boot/dts/stih410-clock.dtsi
new file mode 100644 (file)
index 0000000..6b5803a
--- /dev/null
@@ -0,0 +1,338 @@
+/*
+ * Copyright (C) 2014 STMicroelectronics R&D Limited
+ *
+ * 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/clock/stih410-clks.h>
+/ {
+       clocks {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               compatible = "st,stih410-clk", "simple-bus";
+
+               /*
+                * Fixed 30MHz oscillator inputs to SoC
+                */
+               clk_sysin: clk-sysin {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <30000000>;
+                       clock-output-names = "CLK_SYSIN";
+               };
+
+               /*
+                * ARM Peripheral clock for timers
+                */
+               arm_periph_clk: clk-m-a9-periphs {
+                       #clock-cells = <0>;
+                       compatible = "fixed-factor-clock";
+                       clocks = <&clk_m_a9>;
+                       clock-div = <2>;
+                       clock-mult = <1>;
+               };
+
+               /*
+                * A9 PLL.
+                */
+               clockgen-a9@92b0000 {
+                       compatible = "st,clkgen-c32";
+                       reg = <0x92b0000 0xffff>;
+
+                       clockgen_a9_pll: clockgen-a9-pll {
+                               #clock-cells = <1>;
+                               compatible = "st,stih407-plls-c32-a9", "st,clkgen-plls-c32";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clockgen-a9-pll-odf";
+                       };
+               };
+
+               /*
+                * ARM CPU related clocks.
+                */
+               clk_m_a9: clk-m-a9@92b0000 {
+                       #clock-cells = <0>;
+                       compatible = "st,stih407-clkgen-a9-mux", "st,clkgen-mux";
+                       reg = <0x92b0000 0x10000>;
+
+                       clocks = <&clockgen_a9_pll 0>,
+                                <&clockgen_a9_pll 0>,
+                                <&clk_s_c0_flexgen 13>,
+                                <&clk_m_a9_ext2f_div2>;
+               };
+
+               /*
+                * ARM Peripheral clock for timers
+                */
+               clk_m_a9_ext2f_div2: clk-m-a9-ext2f-div2s {
+                       #clock-cells = <0>;
+                       compatible = "fixed-factor-clock";
+
+                       clocks = <&clk_s_c0_flexgen 13>;
+
+                       clock-output-names = "clk-m-a9-ext2f-div2";
+
+                       clock-div = <2>;
+                       clock-mult = <1>;
+               };
+
+               /*
+                * Bootloader initialized system infrastructure clock for
+                * serial devices.
+                */
+               clk_ext2f_a9: clockgen-c0@13 {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <200000000>;
+                       clock-output-names = "clk-s-icn-reg-0";
+               };
+
+               clockgen-a@090ff000 {
+                       compatible = "st,clkgen-c32";
+                       reg = <0x90ff000 0x1000>;
+
+                       clk_s_a0_pll: clk-s-a0-pll {
+                               #clock-cells = <1>;
+                               compatible = "st,stih407-plls-c32-a0", "st,clkgen-plls-c32";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-s-a0-pll-ofd-0";
+                       };
+
+                       clk_s_a0_flexgen: clk-s-a0-flexgen {
+                               compatible = "st,flexgen";
+
+                               #clock-cells = <1>;
+
+                               clocks = <&clk_s_a0_pll 0>,
+                                        <&clk_sysin>;
+
+                               clock-output-names = "clk-ic-lmi0",
+                                                    "clk-ic-lmi1";
+                       };
+               };
+
+               clk_s_c0_quadfs: clk-s-c0-quadfs@9103000 {
+                       #clock-cells = <1>;
+                       compatible = "st,stih407-quadfs660-C", "st,quadfs";
+                       reg = <0x9103000 0x1000>;
+
+                       clocks = <&clk_sysin>;
+
+                       clock-output-names = "clk-s-c0-fs0-ch0",
+                                            "clk-s-c0-fs0-ch1",
+                                            "clk-s-c0-fs0-ch2",
+                                            "clk-s-c0-fs0-ch3";
+               };
+
+               clk_s_c0: clockgen-c@09103000 {
+                       compatible = "st,clkgen-c32";
+                       reg = <0x9103000 0x1000>;
+
+                       clk_s_c0_pll0: clk-s-c0-pll0 {
+                               #clock-cells = <1>;
+                               compatible = "st,stih407-plls-c32-c0_0", "st,clkgen-plls-c32";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-s-c0-pll0-odf-0";
+                       };
+
+                       clk_s_c0_pll1: clk-s-c0-pll1 {
+                               #clock-cells = <1>;
+                               compatible = "st,stih407-plls-c32-c0_1", "st,clkgen-plls-c32";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-s-c0-pll1-odf-0";
+                       };
+
+                       clk_s_c0_flexgen: clk-s-c0-flexgen {
+                               #clock-cells = <1>;
+                               compatible = "st,flexgen";
+
+                               clocks = <&clk_s_c0_pll0 0>,
+                                        <&clk_s_c0_pll1 0>,
+                                        <&clk_s_c0_quadfs 0>,
+                                        <&clk_s_c0_quadfs 1>,
+                                        <&clk_s_c0_quadfs 2>,
+                                        <&clk_s_c0_quadfs 3>,
+                                        <&clk_sysin>;
+
+                               clock-output-names = "clk-icn-gpu",
+                                                    "clk-fdma",
+                                                    "clk-nand",
+                                                    "clk-hva",
+                                                    "clk-proc-stfe",
+                                                    "clk-proc-tp",
+                                                    "clk-rx-icn-dmu",
+                                                    "clk-rx-icn-hva",
+                                                    "clk-icn-cpu",
+                                                    "clk-tx-icn-dmu",
+                                                    "clk-mmc-0",
+                                                    "clk-mmc-1",
+                                                    "clk-jpegdec",
+                                                    "clk-ext2fa9",
+                                                    "clk-ic-bdisp-0",
+                                                    "clk-ic-bdisp-1",
+                                                    "clk-pp-dmu",
+                                                    "clk-vid-dmu",
+                                                    "clk-dss-lpc",
+                                                    "clk-st231-aud-0",
+                                                    "clk-st231-gp-1",
+                                                    "clk-st231-dmu",
+                                                    "clk-icn-lmi",
+                                                    "clk-tx-icn-disp-1",
+                                                    "clk-icn-sbc",
+                                                    "clk-stfe-frc2",
+                                                    "clk-eth-phy",
+                                                    "clk-eth-ref-phyclk",
+                                                    "clk-flash-promip",
+                                                    "clk-main-disp",
+                                                    "clk-aux-disp",
+                                                    "clk-compo-dvp",
+                                                    "clk-tx-icn-hades",
+                                                    "clk-rx-icn-hades",
+                                                    "clk-icn-reg-16",
+                                                    "clk-pp-hades",
+                                                    "clk-clust-hades",
+                                                    "clk-hwpe-hades",
+                                                    "clk-fc-hades";
+                       };
+               };
+
+               clk_s_d0_quadfs: clk-s-d0-quadfs@9104000 {
+                       #clock-cells = <1>;
+                       compatible = "st,stih407-quadfs660-D", "st,quadfs";
+                       reg = <0x9104000 0x1000>;
+
+                       clocks = <&clk_sysin>;
+
+                       clock-output-names = "clk-s-d0-fs0-ch0",
+                                            "clk-s-d0-fs0-ch1",
+                                            "clk-s-d0-fs0-ch2",
+                                            "clk-s-d0-fs0-ch3";
+               };
+
+               clockgen-d0@09104000 {
+                       compatible = "st,clkgen-c32";
+                       reg = <0x9104000 0x1000>;
+
+                       clk_s_d0_flexgen: clk-s-d0-flexgen {
+                               #clock-cells = <1>;
+                               compatible = "st,flexgen";
+
+                               clocks = <&clk_s_d0_quadfs 0>,
+                                        <&clk_s_d0_quadfs 1>,
+                                        <&clk_s_d0_quadfs 2>,
+                                        <&clk_s_d0_quadfs 3>,
+                                        <&clk_sysin>;
+
+                               clock-output-names = "clk-pcm-0",
+                                                    "clk-pcm-1",
+                                                    "clk-pcm-2",
+                                                    "clk-spdiff",
+                                                    "clk-pcmr10-master",
+                                                    "clk-usb2-phy";
+                       };
+               };
+
+               clk_s_d2_quadfs: clk-s-d2-quadfs@9106000 {
+                       #clock-cells = <1>;
+                       compatible = "st,stih407-quadfs660-D", "st,quadfs";
+                       reg = <0x9106000 0x1000>;
+
+                       clocks = <&clk_sysin>;
+
+                       clock-output-names = "clk-s-d2-fs0-ch0",
+                                            "clk-s-d2-fs0-ch1",
+                                            "clk-s-d2-fs0-ch2",
+                                            "clk-s-d2-fs0-ch3";
+               };
+
+               clk_tmdsout_hdmi: clk-tmdsout-hdmi {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <0>;
+               };
+
+               clockgen-d2@x9106000 {
+                       compatible = "st,clkgen-c32";
+                       reg = <0x9106000 0x1000>;
+
+                       clk_s_d2_flexgen: clk-s-d2-flexgen {
+                               #clock-cells = <1>;
+                               compatible = "st,flexgen";
+
+                               clocks = <&clk_s_d2_quadfs 0>,
+                                        <&clk_s_d2_quadfs 1>,
+                                        <&clk_s_d2_quadfs 2>,
+                                        <&clk_s_d2_quadfs 3>,
+                                        <&clk_sysin>,
+                                        <&clk_sysin>,
+                                        <&clk_tmdsout_hdmi>;
+
+                               clock-output-names = "clk-pix-main-disp",
+                                                    "clk-pix-pip",
+                                                    "clk-pix-gdp1",
+                                                    "clk-pix-gdp2",
+                                                    "clk-pix-gdp3",
+                                                    "clk-pix-gdp4",
+                                                    "clk-pix-aux-disp",
+                                                    "clk-denc",
+                                                    "clk-pix-hddac",
+                                                    "clk-hddac",
+                                                    "clk-sddac",
+                                                    "clk-pix-dvo",
+                                                    "clk-dvo",
+                                                    "clk-pix-hdmi",
+                                                    "clk-tmds-hdmi",
+                                                    "clk-ref-hdmiphy";
+                                                    };
+               };
+
+               clk_s_d3_quadfs: clk-s-d3-quadfs@9107000 {
+                       #clock-cells = <1>;
+                       compatible = "st,stih407-quadfs660-D", "st,quadfs";
+                       reg = <0x9107000 0x1000>;
+
+                       clocks = <&clk_sysin>;
+
+                       clock-output-names = "clk-s-d3-fs0-ch0",
+                                            "clk-s-d3-fs0-ch1",
+                                            "clk-s-d3-fs0-ch2",
+                                            "clk-s-d3-fs0-ch3";
+               };
+
+               clockgen-d3@9107000 {
+                       compatible = "st,clkgen-c32";
+                       reg = <0x9107000 0x1000>;
+
+                       clk_s_d3_flexgen: clk-s-d3-flexgen {
+                               #clock-cells = <1>;
+                               compatible = "st,flexgen";
+
+                               clocks = <&clk_s_d3_quadfs 0>,
+                                        <&clk_s_d3_quadfs 1>,
+                                        <&clk_s_d3_quadfs 2>,
+                                        <&clk_s_d3_quadfs 3>,
+                                        <&clk_sysin>;
+
+                               clock-output-names = "clk-stfe-frc1",
+                                                    "clk-tsout-0",
+                                                    "clk-tsout-1",
+                                                    "clk-mchi",
+                                                    "clk-vsens-compo",
+                                                    "clk-frc1-remote",
+                                                    "clk-lpc-0",
+                                                    "clk-lpc-1";
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/stih410-pinctrl.dtsi b/arch/arm/boot/dts/stih410-pinctrl.dtsi
new file mode 100644 (file)
index 0000000..b3e9dfc
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2014 STMicroelectronics Limited.
+ * Author: Peter Griffin <peter.griffin@linaro.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * publishhed by the Free Software Foundation.
+ */
+#include "st-pincfg.h"
+/ {
+
+       soc {
+               pin-controller-rear {
+
+                       usb0 {
+                               pinctrl_usb0: usb2-0 {
+                                       st,pins {
+                                               usb-oc-detect = <&pio35 0 ALT1 IN>;
+                                               usb-pwr-enable = <&pio35 1 ALT1 OUT>;
+                                       };
+                               };
+                       };
+
+                       usb1 {
+                               pinctrl_usb1: usb2-1 {
+                                       st,pins {
+                                               usb-oc-detect = <&pio35 2 ALT1 IN>;
+                                               usb-pwr-enable = <&pio35 3 ALT1 OUT>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/stih410.dtsi b/arch/arm/boot/dts/stih410.dtsi
new file mode 100644 (file)
index 0000000..c05627e
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * Copyright (C) 2014 STMicroelectronics Limited.
+ * Author: Peter Griffin <peter.griffin@linaro.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * publishhed by the Free Software Foundation.
+ */
+#include "stih410-clock.dtsi"
+#include "stih407-family.dtsi"
+#include "stih410-pinctrl.dtsi"
+/ {
+
+};
index 8509a037ae2193d8da6ab290b7bf256313328dab..3791ad95dbaff9a35321dfa326c7af17e20d370b 100644 (file)
 / {
 
        aliases {
-               gpio0   = &PIO0;
-               gpio1   = &PIO1;
-               gpio2   = &PIO2;
-               gpio3   = &PIO3;
-               gpio4   = &PIO4;
-               gpio5   = &PIO5;
-               gpio6   = &PIO6;
-               gpio7   = &PIO7;
-               gpio8   = &PIO8;
-               gpio9   = &PIO9;
-               gpio10  = &PIO10;
-               gpio11  = &PIO11;
-               gpio12  = &PIO12;
-               gpio13  = &PIO13;
-               gpio14  = &PIO14;
-               gpio15  = &PIO15;
-               gpio16  = &PIO16;
-               gpio17  = &PIO17;
-               gpio18  = &PIO18;
-               gpio19  = &PIO100;
-               gpio20  = &PIO101;
-               gpio21  = &PIO102;
-               gpio22  = &PIO103;
-               gpio23  = &PIO104;
-               gpio24  = &PIO105;
-               gpio25  = &PIO106;
-               gpio26  = &PIO107;
+               gpio0   = &pio0;
+               gpio1   = &pio1;
+               gpio2   = &pio2;
+               gpio3   = &pio3;
+               gpio4   = &pio4;
+               gpio5   = &pio5;
+               gpio6   = &pio6;
+               gpio7   = &pio7;
+               gpio8   = &pio8;
+               gpio9   = &pio9;
+               gpio10  = &pio10;
+               gpio11  = &pio11;
+               gpio12  = &pio12;
+               gpio13  = &pio13;
+               gpio14  = &pio14;
+               gpio15  = &pio15;
+               gpio16  = &pio16;
+               gpio17  = &pio17;
+               gpio18  = &pio18;
+               gpio19  = &pio100;
+               gpio20  = &pio101;
+               gpio21  = &pio102;
+               gpio22  = &pio103;
+               gpio23  = &pio104;
+               gpio24  = &pio105;
+               gpio25  = &pio106;
+               gpio26  = &pio107;
        };
 
        soc {
@@ -52,7 +52,7 @@
                        interrupt-names = "irqmux";
                        ranges          = <0 0xfe610000 0x5000>;
 
-                       PIO0: gpio@fe610000 {
+                       pio0: gpio@fe610000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
@@ -60,7 +60,7 @@
                                reg             = <0 0x100>;
                                st,bank-name    = "PIO0";
                        };
-                       PIO1: gpio@fe611000 {
+                       pio1: gpio@fe611000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
@@ -68,7 +68,7 @@
                                reg             = <0x1000 0x100>;
                                st,bank-name    = "PIO1";
                        };
-                       PIO2: gpio@fe612000 {
+                       pio2: gpio@fe612000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
@@ -76,7 +76,7 @@
                                reg             = <0x2000 0x100>;
                                st,bank-name    = "PIO2";
                        };
-                       PIO3: gpio@fe613000 {
+                       pio3: gpio@fe613000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
@@ -84,7 +84,7 @@
                                reg             = <0x3000 0x100>;
                                st,bank-name    = "PIO3";
                        };
-                       PIO4: gpio@fe614000 {
+                       pio4: gpio@fe614000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
@@ -96,8 +96,8 @@
                        sbc_serial1 {
                                pinctrl_sbc_serial1:sbc_serial1 {
                                        st,pins {
-                                               tx      = <&PIO2 6 ALT3 OUT>;
-                                               rx      = <&PIO2 7 ALT3 IN>;
+                                               tx      = <&pio2 6 ALT3 OUT>;
+                                               rx      = <&pio2 7 ALT3 IN>;
                                        };
                                };
                        };
                        keyscan {
                                pinctrl_keyscan: keyscan {
                                        st,pins {
-                                               keyin0 = <&PIO0 2 ALT2 IN>;
-                                               keyin1 = <&PIO0 3 ALT2 IN>;
-                                               keyin2 = <&PIO0 4 ALT2 IN>;
-                                               keyin3 = <&PIO2 6 ALT2 IN>;
-
-                                               keyout0 = <&PIO1 6 ALT2 OUT>;
-                                               keyout1 = <&PIO1 7 ALT2 OUT>;
-                                               keyout2 = <&PIO0 6 ALT2 OUT>;
-                                               keyout3 = <&PIO2 7 ALT2 OUT>;
+                                               keyin0 = <&pio0 2 ALT2 IN>;
+                                               keyin1 = <&pio0 3 ALT2 IN>;
+                                               keyin2 = <&pio0 4 ALT2 IN>;
+                                               keyin3 = <&pio2 6 ALT2 IN>;
+
+                                               keyout0 = <&pio1 6 ALT2 OUT>;
+                                               keyout1 = <&pio1 7 ALT2 OUT>;
+                                               keyout2 = <&pio0 6 ALT2 OUT>;
+                                               keyout3 = <&pio2 7 ALT2 OUT>;
                                        };
                                };
                        };
                        sbc_i2c0 {
                                pinctrl_sbc_i2c0_default: sbc_i2c0-default {
                                        st,pins {
-                                               sda = <&PIO4 6 ALT1 BIDIR>;
-                                               scl = <&PIO4 5 ALT1 BIDIR>;
+                                               sda = <&pio4 6 ALT1 BIDIR>;
+                                               scl = <&pio4 5 ALT1 BIDIR>;
                                        };
                                };
                        };
                        sbc_i2c1 {
                                pinctrl_sbc_i2c1_default: sbc_i2c1-default {
                                        st,pins {
-                                               sda = <&PIO3 2 ALT2 BIDIR>;
-                                               scl = <&PIO3 1 ALT2 BIDIR>;
+                                               sda = <&pio3 2 ALT2 BIDIR>;
+                                               scl = <&pio3 1 ALT2 BIDIR>;
                                        };
                                };
                        };
                        rc{
                                pinctrl_ir: ir0 {
                                        st,pins {
-                                               ir = <&PIO4 0 ALT2 IN>;
+                                               ir = <&pio4 0 ALT2 IN>;
                                        };
                                };
                        };
                        gmac1 {
                                pinctrl_mii1: mii1 {
                                                st,pins {
-                                                txd0   = <&PIO0 0 ALT1 OUT  SE_NICLK_IO        0       CLK_A>;
-                                                txd1   = <&PIO0 1 ALT1 OUT  SE_NICLK_IO        0       CLK_A>;
-                                                txd2   = <&PIO0 2 ALT1 OUT  SE_NICLK_IO        0       CLK_A>;
-                                                txd3   = <&PIO0 3 ALT1 OUT  SE_NICLK_IO        0       CLK_A>;
-                                                txer   = <&PIO0 4 ALT1 OUT  SE_NICLK_IO        0       CLK_A>;
-                                                txen   = <&PIO0 5 ALT1 OUT  SE_NICLK_IO        0       CLK_A>;
-                                                txclk  = <&PIO0 6 ALT1 IN   NICLK      0       CLK_A>;
-                                                col    = <&PIO0 7 ALT1 IN   BYPASS     1000>;
-                                                mdio   = <&PIO1 0 ALT1 OUT  BYPASS     0>;
-                                                mdc    = <&PIO1 1 ALT1 OUT  NICLK      0       CLK_A>;
-                                                crs    = <&PIO1 2 ALT1 IN   BYPASS     1000>;
-                                                mdint  = <&PIO1 3 ALT1 IN   BYPASS     0>;
-                                                rxd0   = <&PIO1 4 ALT1 IN   SE_NICLK_IO        0       CLK_A>;
-                                                rxd1   = <&PIO1 5 ALT1 IN   SE_NICLK_IO        0       CLK_A>;
-                                                rxd2   = <&PIO1 6 ALT1 IN   SE_NICLK_IO        0       CLK_A>;
-                                                rxd3   = <&PIO1 7 ALT1 IN   SE_NICLK_IO        0       CLK_A>;
-                                                rxdv   = <&PIO2 0 ALT1 IN   SE_NICLK_IO        0       CLK_A>;
-                                                rx_er  = <&PIO2 1 ALT1 IN   SE_NICLK_IO        0       CLK_A>;
-                                                rxclk  = <&PIO2 2 ALT1 IN   NICLK      0       CLK_A>;
-                                                phyclk = <&PIO2 3 ALT1 IN   NICLK      1000    CLK_A>;
+                                                txd0   = <&pio0 0 ALT1 OUT  SE_NICLK_IO        0       CLK_A>;
+                                                txd1   = <&pio0 1 ALT1 OUT  SE_NICLK_IO        0       CLK_A>;
+                                                txd2   = <&pio0 2 ALT1 OUT  SE_NICLK_IO        0       CLK_A>;
+                                                txd3   = <&pio0 3 ALT1 OUT  SE_NICLK_IO        0       CLK_A>;
+                                                txer   = <&pio0 4 ALT1 OUT  SE_NICLK_IO        0       CLK_A>;
+                                                txen   = <&pio0 5 ALT1 OUT  SE_NICLK_IO        0       CLK_A>;
+                                                txclk  = <&pio0 6 ALT1 IN   NICLK      0       CLK_A>;
+                                                col    = <&pio0 7 ALT1 IN   BYPASS     1000>;
+                                                mdio   = <&pio1 0 ALT1 OUT  BYPASS     0>;
+                                                mdc    = <&pio1 1 ALT1 OUT  NICLK      0       CLK_A>;
+                                                crs    = <&pio1 2 ALT1 IN   BYPASS     1000>;
+                                                mdint  = <&pio1 3 ALT1 IN   BYPASS     0>;
+                                                rxd0   = <&pio1 4 ALT1 IN   SE_NICLK_IO        0       CLK_A>;
+                                                rxd1   = <&pio1 5 ALT1 IN   SE_NICLK_IO        0       CLK_A>;
+                                                rxd2   = <&pio1 6 ALT1 IN   SE_NICLK_IO        0       CLK_A>;
+                                                rxd3   = <&pio1 7 ALT1 IN   SE_NICLK_IO        0       CLK_A>;
+                                                rxdv   = <&pio2 0 ALT1 IN   SE_NICLK_IO        0       CLK_A>;
+                                                rx_er  = <&pio2 1 ALT1 IN   SE_NICLK_IO        0       CLK_A>;
+                                                rxclk  = <&pio2 2 ALT1 IN   NICLK      0       CLK_A>;
+                                                phyclk = <&pio2 3 ALT1 IN   NICLK      1000    CLK_A>;
                                        };
                                };
 
                                pinctrl_rgmii1: rgmii1-0 {
                                        st,pins {
-                                                txd0 =  <&PIO0 0 ALT1 OUT DE_IO        1000    CLK_A>;
-                                                txd1 =  <&PIO0 1 ALT1 OUT DE_IO        1000    CLK_A>;
-                                                txd2 =  <&PIO0 2 ALT1 OUT DE_IO        1000    CLK_A>;
-                                                txd3 =  <&PIO0 3 ALT1 OUT DE_IO        1000    CLK_A>;
-                                                txen =  <&PIO0 5 ALT1 OUT DE_IO        0       CLK_A>;
-                                                txclk = <&PIO0 6 ALT1 IN       NICLK   0       CLK_A>;
-                                                mdio =  <&PIO1 0 ALT1 OUT      BYPASS  0>;
-                                                mdc =   <&PIO1 1 ALT1 OUT      NICLK   0       CLK_A>;
-                                                rxd0 =  <&PIO1 4 ALT1 IN DE_IO 0       CLK_A>;
-                                                rxd1 =  <&PIO1 5 ALT1 IN DE_IO 0       CLK_A>;
-                                                rxd2 =  <&PIO1 6 ALT1 IN DE_IO 0       CLK_A>;
-                                                rxd3 =  <&PIO1 7 ALT1 IN DE_IO 0       CLK_A>;
-
-                                                rxdv =   <&PIO2 0 ALT1 IN DE_IO        500     CLK_A>;
-                                                rxclk =  <&PIO2 2 ALT1 IN      NICLK   0       CLK_A>;
-                                                phyclk = <&PIO2 3 ALT4 OUT     NICLK   0       CLK_B>;
-
-                                                clk125= <&PIO3 7 ALT4 IN       NICLK   0       CLK_A>;
+                                                txd0 =  <&pio0 0 ALT1 OUT DE_IO        1000    CLK_A>;
+                                                txd1 =  <&pio0 1 ALT1 OUT DE_IO        1000    CLK_A>;
+                                                txd2 =  <&pio0 2 ALT1 OUT DE_IO        1000    CLK_A>;
+                                                txd3 =  <&pio0 3 ALT1 OUT DE_IO        1000    CLK_A>;
+                                                txen =  <&pio0 5 ALT1 OUT DE_IO        0       CLK_A>;
+                                                txclk = <&pio0 6 ALT1 IN       NICLK   0       CLK_A>;
+                                                mdio =  <&pio1 0 ALT1 OUT      BYPASS  0>;
+                                                mdc =   <&pio1 1 ALT1 OUT      NICLK   0       CLK_A>;
+                                                rxd0 =  <&pio1 4 ALT1 IN DE_IO 0       CLK_A>;
+                                                rxd1 =  <&pio1 5 ALT1 IN DE_IO 0       CLK_A>;
+                                                rxd2 =  <&pio1 6 ALT1 IN DE_IO 0       CLK_A>;
+                                                rxd3 =  <&pio1 7 ALT1 IN DE_IO 0       CLK_A>;
+
+                                                rxdv =   <&pio2 0 ALT1 IN DE_IO        500     CLK_A>;
+                                                rxclk =  <&pio2 2 ALT1 IN      NICLK   0       CLK_A>;
+                                                phyclk = <&pio2 3 ALT4 OUT     NICLK   0       CLK_B>;
+
+                                                clk125= <&pio3 7 ALT4 IN       NICLK   0       CLK_A>;
                                        };
                                };
                        };
                        interrupt-names = "irqmux";
                        ranges          = <0 0xfee00000 0x8000>;
 
-                       PIO5: gpio@fee00000 {
+                       pio5: gpio@fee00000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0 0x100>;
                                st,bank-name    = "PIO5";
                        };
-                       PIO6: gpio@fee01000 {
+                       pio6: gpio@fee01000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x1000 0x100>;
                                st,bank-name    = "PIO6";
                        };
-                       PIO7: gpio@fee02000 {
+                       pio7: gpio@fee02000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x2000 0x100>;
                                st,bank-name    = "PIO7";
                        };
-                       PIO8: gpio@fee03000 {
+                       pio8: gpio@fee03000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x3000 0x100>;
                                st,bank-name    = "PIO8";
                        };
-                       PIO9: gpio@fee04000 {
+                       pio9: gpio@fee04000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x4000 0x100>;
                                st,bank-name    = "PIO9";
                        };
-                       PIO10: gpio@fee05000 {
+                       pio10: gpio@fee05000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x5000 0x100>;
                                st,bank-name    = "PIO10";
                        };
-                       PIO11: gpio@fee06000 {
+                       pio11: gpio@fee06000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x6000 0x100>;
                                st,bank-name    = "PIO11";
                        };
-                       PIO12: gpio@fee07000 {
+                       pio12: gpio@fee07000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                        i2c0 {
                                pinctrl_i2c0_default: i2c0-default {
                                        st,pins {
-                                               sda = <&PIO9 3 ALT1 BIDIR>;
-                                               scl = <&PIO9 2 ALT1 BIDIR>;
+                                               sda = <&pio9 3 ALT1 BIDIR>;
+                                               scl = <&pio9 2 ALT1 BIDIR>;
                                        };
                                };
                        };
                        i2c1 {
                                pinctrl_i2c1_default: i2c1-default {
                                        st,pins {
-                                               sda = <&PIO12 1 ALT1 BIDIR>;
-                                               scl = <&PIO12 0 ALT1 BIDIR>;
+                                               sda = <&pio12 1 ALT1 BIDIR>;
+                                               scl = <&pio12 0 ALT1 BIDIR>;
                                        };
                                };
                        };
                        interrupt-names = "irqmux";
                        ranges          = <0 0xfe820000 0x8000>;
 
-                       PIO13: gpio@fe820000 {
+                       pio13: gpio@fe820000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0 0x100>;
                                st,bank-name    = "PIO13";
                        };
-                       PIO14: gpio@fe821000 {
+                       pio14: gpio@fe821000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x1000 0x100>;
                                st,bank-name    = "PIO14";
                        };
-                       PIO15: gpio@fe822000 {
+                       pio15: gpio@fe822000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x2000 0x100>;
                                st,bank-name    = "PIO15";
                        };
-                       PIO16: gpio@fe823000 {
+                       pio16: gpio@fe823000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x3000 0x100>;
                                st,bank-name    = "PIO16";
                        };
-                       PIO17: gpio@fe824000 {
+                       pio17: gpio@fe824000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x4000 0x100>;
                                st,bank-name    = "PIO17";
                        };
-                       PIO18: gpio@fe825000 {
+                       pio18: gpio@fe825000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                        serial2 {
                                pinctrl_serial2: serial2-0 {
                                        st,pins {
-                                               tx      = <&PIO17 4 ALT2 OUT>;
-                                               rx      = <&PIO17 5 ALT2 IN>;
+                                               tx      = <&pio17 4 ALT2 OUT>;
+                                               rx      = <&pio17 5 ALT2 IN>;
                                        };
                                };
                        };
                        gmac0{
                                pinctrl_mii0: mii0 {
                                        st,pins {
-                                        mdint =        <&PIO13 6 ALT2  IN      BYPASS          0>;
-                                        txen =         <&PIO13 7 ALT2  OUT     SE_NICLK_IO     0       CLK_A>;
-
-                                        txd0 =         <&PIO14 0 ALT2  OUT     SE_NICLK_IO     0       CLK_A>;
-                                        txd1 =         <&PIO14 1 ALT2  OUT     SE_NICLK_IO     0       CLK_A>;
-                                        txd2 =         <&PIO14 2 ALT2  OUT     SE_NICLK_IO     0       CLK_B>;
-                                        txd3 =         <&PIO14 3 ALT2  OUT     SE_NICLK_IO     0       CLK_B>;
-
-                                        txclk =        <&PIO15 0 ALT2  IN      NICLK           0       CLK_A>;
-                                        txer =         <&PIO15 1 ALT2  OUT     SE_NICLK_IO     0       CLK_A>;
-                                        crs =          <&PIO15 2 ALT2  IN      BYPASS          1000>;
-                                        col =          <&PIO15 3 ALT2  IN      BYPASS          1000>;
-                                        mdio  =        <&PIO15 4 ALT2  OUT     BYPASS  3000>;
-                                        mdc   =        <&PIO15 5 ALT2  OUT     NICLK   0       CLK_B>;
-
-                                        rxd0 =         <&PIO16 0 ALT2  IN      SE_NICLK_IO     0       CLK_A>;
-                                        rxd1 =         <&PIO16 1 ALT2  IN      SE_NICLK_IO     0       CLK_A>;
-                                        rxd2 =         <&PIO16 2 ALT2  IN      SE_NICLK_IO     0       CLK_A>;
-                                        rxd3 =         <&PIO16 3 ALT2  IN      SE_NICLK_IO     0       CLK_A>;
-                                        rxdv =         <&PIO15 6 ALT2  IN      SE_NICLK_IO     0       CLK_A>;
-                                        rx_er =        <&PIO15 7 ALT2  IN      SE_NICLK_IO     0       CLK_A>;
-                                        rxclk =        <&PIO17 0 ALT2  IN      NICLK           0       CLK_A>;
-                                        phyclk =       <&PIO13 5 ALT2  OUT     NICLK   1000    CLK_A>;
+                                        mdint =        <&pio13 6 ALT2  IN      BYPASS          0>;
+                                        txen =         <&pio13 7 ALT2  OUT     SE_NICLK_IO     0       CLK_A>;
+
+                                        txd0 =         <&pio14 0 ALT2  OUT     SE_NICLK_IO     0       CLK_A>;
+                                        txd1 =         <&pio14 1 ALT2  OUT     SE_NICLK_IO     0       CLK_A>;
+                                        txd2 =         <&pio14 2 ALT2  OUT     SE_NICLK_IO     0       CLK_B>;
+                                        txd3 =         <&pio14 3 ALT2  OUT     SE_NICLK_IO     0       CLK_B>;
+
+                                        txclk =        <&pio15 0 ALT2  IN      NICLK           0       CLK_A>;
+                                        txer =         <&pio15 1 ALT2  OUT     SE_NICLK_IO     0       CLK_A>;
+                                        crs =          <&pio15 2 ALT2  IN      BYPASS          1000>;
+                                        col =          <&pio15 3 ALT2  IN      BYPASS          1000>;
+                                        mdio  =        <&pio15 4 ALT2  OUT     BYPASS  3000>;
+                                        mdc   =        <&pio15 5 ALT2  OUT     NICLK   0       CLK_B>;
+
+                                        rxd0 =         <&pio16 0 ALT2  IN      SE_NICLK_IO     0       CLK_A>;
+                                        rxd1 =         <&pio16 1 ALT2  IN      SE_NICLK_IO     0       CLK_A>;
+                                        rxd2 =         <&pio16 2 ALT2  IN      SE_NICLK_IO     0       CLK_A>;
+                                        rxd3 =         <&pio16 3 ALT2  IN      SE_NICLK_IO     0       CLK_A>;
+                                        rxdv =         <&pio15 6 ALT2  IN      SE_NICLK_IO     0       CLK_A>;
+                                        rx_er =        <&pio15 7 ALT2  IN      SE_NICLK_IO     0       CLK_A>;
+                                        rxclk =        <&pio17 0 ALT2  IN      NICLK           0       CLK_A>;
+                                        phyclk =       <&pio13 5 ALT2  OUT     NICLK   1000    CLK_A>;
 
                                        };
                                };
 
                        pinctrl_gmii0: gmii0 {
                                st,pins {
-                                        mdint =        <&PIO13 6       ALT2 IN         BYPASS  0>;
-                                        mdio  =        <&PIO15 4       ALT2 OUT        BYPASS  3000>;
-                                        mdc   =        <&PIO15 5       ALT2 OUT        NICLK   0       CLK_B>;
-                                        txen =         <&PIO13 7       ALT2 OUT        SE_NICLK_IO     3000    CLK_A>;
-
-                                        txd0 =         <&PIO14 0       ALT2 OUT        SE_NICLK_IO     3000    CLK_A>;
-                                        txd1 =         <&PIO14 1       ALT2 OUT        SE_NICLK_IO     3000    CLK_A>;
-                                        txd2 =         <&PIO14 2       ALT2 OUT        SE_NICLK_IO     3000    CLK_B>;
-                                        txd3 =         <&PIO14 3       ALT2 OUT        SE_NICLK_IO     3000    CLK_B>;
-                                        txd4 =         <&PIO14 4       ALT2 OUT        SE_NICLK_IO     3000    CLK_B>;
-                                        txd5 =         <&PIO14 5       ALT2 OUT        SE_NICLK_IO     3000    CLK_B>;
-                                        txd6 =         <&PIO14 6       ALT2 OUT        SE_NICLK_IO     3000    CLK_B>;
-                                        txd7 =         <&PIO14 7       ALT2 OUT        SE_NICLK_IO     3000    CLK_B>;
-
-                                        txclk =        <&PIO15 0       ALT2 IN         NICLK   0       CLK_A>;
-                                        txer =         <&PIO15 1       ALT2 OUT        SE_NICLK_IO     3000    CLK_A>;
-                                        crs =          <&PIO15 2       ALT2 IN         BYPASS  1000>;
-                                        col =          <&PIO15 3       ALT2 IN         BYPASS  1000>;
-                                        rxdv =         <&PIO15 6       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
-                                        rx_er =        <&PIO15 7       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
-
-                                        rxd0 =         <&PIO16 0       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
-                                        rxd1 =         <&PIO16 1       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
-                                        rxd2 =         <&PIO16 2       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
-                                        rxd3 =         <&PIO16 3       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
-                                        rxd4 =         <&PIO16 4       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
-                                        rxd5 =         <&PIO16 5       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
-                                        rxd6 =         <&PIO16 6       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
-                                        rxd7 =         <&PIO16 7       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
-
-                                        rxclk =        <&PIO17 0       ALT2 IN NICLK   0       CLK_A>;
-                                        clk125 =       <&PIO17 6       ALT1 IN NICLK   0       CLK_A>;
-                                         phyclk =       <&PIO13 5       ALT4 OUT NICLK   0       CLK_B>;
+                                        mdint =        <&pio13 6       ALT2 IN         BYPASS  0>;
+                                        mdio  =        <&pio15 4       ALT2 OUT        BYPASS  3000>;
+                                        mdc   =        <&pio15 5       ALT2 OUT        NICLK   0       CLK_B>;
+                                        txen =         <&pio13 7       ALT2 OUT        SE_NICLK_IO     3000    CLK_A>;
+
+                                        txd0 =         <&pio14 0       ALT2 OUT        SE_NICLK_IO     3000    CLK_A>;
+                                        txd1 =         <&pio14 1       ALT2 OUT        SE_NICLK_IO     3000    CLK_A>;
+                                        txd2 =         <&pio14 2       ALT2 OUT        SE_NICLK_IO     3000    CLK_B>;
+                                        txd3 =         <&pio14 3       ALT2 OUT        SE_NICLK_IO     3000    CLK_B>;
+                                        txd4 =         <&pio14 4       ALT2 OUT        SE_NICLK_IO     3000    CLK_B>;
+                                        txd5 =         <&pio14 5       ALT2 OUT        SE_NICLK_IO     3000    CLK_B>;
+                                        txd6 =         <&pio14 6       ALT2 OUT        SE_NICLK_IO     3000    CLK_B>;
+                                        txd7 =         <&pio14 7       ALT2 OUT        SE_NICLK_IO     3000    CLK_B>;
+
+                                        txclk =        <&pio15 0       ALT2 IN         NICLK   0       CLK_A>;
+                                        txer =         <&pio15 1       ALT2 OUT        SE_NICLK_IO     3000    CLK_A>;
+                                        crs =          <&pio15 2       ALT2 IN         BYPASS  1000>;
+                                        col =          <&pio15 3       ALT2 IN         BYPASS  1000>;
+                                        rxdv =         <&pio15 6       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
+                                        rx_er =        <&pio15 7       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
+
+                                        rxd0 =         <&pio16 0       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
+                                        rxd1 =         <&pio16 1       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
+                                        rxd2 =         <&pio16 2       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
+                                        rxd3 =         <&pio16 3       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
+                                        rxd4 =         <&pio16 4       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
+                                        rxd5 =         <&pio16 5       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
+                                        rxd6 =         <&pio16 6       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
+                                        rxd7 =         <&pio16 7       ALT2 IN         SE_NICLK_IO     1500    CLK_A>;
+
+                                        rxclk =        <&pio17 0       ALT2 IN NICLK   0       CLK_A>;
+                                        clk125 =       <&pio17 6       ALT1 IN NICLK   0       CLK_A>;
+                                         phyclk =       <&pio13 5       ALT4 OUT NICLK   0       CLK_B>;
 
 
                                        };
                                };
                        };
+
+                       mmc0 {
+                               pinctrl_mmc0: mmc0 {
+                                       st,pins {
+                                               mmcclk = <&pio13 4 ALT4 BIDIR_PU NICLK 0 CLK_B>;
+                                               data0  = <&pio14 4 ALT4 BIDIR_PU BYPASS 0>;
+                                               data1  = <&pio14 5 ALT4 BIDIR_PU BYPASS 0>;
+                                               data2  = <&pio14 6 ALT4 BIDIR_PU BYPASS 0>;
+                                               data3  = <&pio14 7 ALT4 BIDIR_PU BYPASS 0>;
+                                               cmd    = <&pio15 1 ALT4 BIDIR_PU BYPASS 0>;
+                                               wp     = <&pio15 3 ALT4 IN>;
+                                               data4  = <&pio16 4 ALT4 BIDIR_PU BYPASS 0>;
+                                               data5  = <&pio16 5 ALT4 BIDIR_PU BYPASS 0>;
+                                               data6  = <&pio16 6 ALT4 BIDIR_PU BYPASS 0>;
+                                               data7  = <&pio16 7 ALT4 BIDIR_PU BYPASS 0>;
+                                               pwr    = <&pio17 1 ALT4 OUT>;
+                                               cd     = <&pio17 2 ALT4 IN>;
+                                               led    = <&pio17 3 ALT4 OUT>;
+                                       };
+                               };
+                       };
                };
 
                pin-controller-left {
                        interrupt-names = "irqmux";
                        ranges          = <0 0xfd6b0000 0x3000>;
 
-                       PIO100: gpio@fd6b0000 {
+                       pio100: gpio@fd6b0000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0 0x100>;
                                st,bank-name    = "PIO100";
                        };
-                       PIO101: gpio@fd6b1000 {
+                       pio101: gpio@fd6b1000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x1000 0x100>;
                                st,bank-name    = "PIO101";
                        };
-                       PIO102: gpio@fd6b2000 {
+                       pio102: gpio@fd6b2000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                        interrupt-names = "irqmux";
                        ranges          = <0 0xfd330000 0x5000>;
 
-                       PIO103: gpio@fd330000 {
+                       pio103: gpio@fd330000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0 0x100>;
                                st,bank-name    = "PIO103";
                        };
-                       PIO104: gpio@fd331000 {
+                       pio104: gpio@fd331000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x1000 0x100>;
                                st,bank-name    = "PIO104";
                        };
-                       PIO105: gpio@fd332000 {
+                       pio105: gpio@fd332000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x2000 0x100>;
                                st,bank-name    = "PIO105";
                        };
-                       PIO106: gpio@fd333000 {
+                       pio106: gpio@fd333000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x3000 0x100>;
                                st,bank-name    = "PIO106";
                        };
-                       PIO107: gpio@fd334000 {
+                       pio107: gpio@fd334000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
index a0f6f75fe3b558d6cb32dbfb1c03f2fb121c45ac..9198c12765ea0eb49de1a0b53545b6819b4b48bc 100644 (file)
                        resets  = <&powerdown STIH415_KEYSCAN_POWERDOWN>,
                                  <&softreset STIH415_KEYSCAN_SOFTRESET>;
                };
+
+               mmc0: sdhci@fe81e000 {
+                       compatible      = "st,sdhci";
+                       status          = "disabled";
+                       reg             = <0xfe81e000 0x1000>;
+                       interrupts      = <GIC_SPI 145 IRQ_TYPE_NONE>;
+                       interrupt-names = "mmcirq";
+                       pinctrl-names   = "default";
+                       pinctrl-0       = <&pinctrl_mmc0>;
+                       clock-names     = "mmc";
+                       clocks          = <&clk_s_a1_ls 1>;
+               };
        };
 };
index 4e2df66b99eaf2443e03a8062eebd1b2ea6f7686..200a81844765d203c421df8e081a56f1801fb7a2 100644 (file)
 / {
        model = "STiH416 B2020";
        compatible = "st,stih416-b2020", "st,stih416";
+
+       soc {
+               mmc1: sdhci@fe81f000 {
+                       status       = "okay";
+                       bus-width    = <8>;
+                       non-removable;
+               };
+
+               miphy365x_phy: phy@fe382000 {
+                       phy_port0: port@fe382000 {
+                               st,sata-gen = <3>;
+                       };
+
+                       phy_port1: port@fe38a000 {
+                               st,pcie-tx-pol-inv;
+                       };
+               };
+
+               sata0: sata@fe380000{
+                       status = "okay";
+               };
+       };
 };
index ba0fa2caaf1851be88c5c62f18d47f60bb652bc3..961799e1dc519e68ddd600645236010032c28420 100644 (file)
                        red {
                                #gpio-cells             = <1>;
                                label                   = "Front Panel LED";
-                               gpios                   = <&PIO4 1>;
+                               gpios                   = <&pio4 1>;
                                linux,default-trigger   = "heartbeat";
                        };
                        green {
-                               gpios                   = <&PIO1 3>;
+                               gpios                   = <&pio1 3>;
                                default-state           = "off";
                        };
                };
 
                ethernet1: dwmac@fef08000 {
-                       snps,reset-gpio = <&PIO0 7>;
+                       snps,reset-gpio = <&pio0 7>;
+               };
+
+               mmc1: sdhci@fe81f000 {
+                       status       = "okay";
+                       bus-width    = <8>;
+                       non-removable;
+               };
+
+               miphy365x_phy: phy@fe382000 {
+                       phy_port0: port@fe382000 {
+                               st,sata-gen = <3>;
+                       };
+
+                       phy_port1: port@fe38a000 {
+                               st,pcie-tx-pol-inv;
+                       };
+               };
+
+               sata0: sata@fe380000{
+                       status = "okay";
                };
        };
 };
index ee6c119e261e89e8a887b18a78fdfdff284c0975..9cccf2d6aa26f5c17e0bd83684e17bb4335acabf 100644 (file)
 / {
 
        aliases {
-               gpio0   = &PIO0;
-               gpio1   = &PIO1;
-               gpio2   = &PIO2;
-               gpio3   = &PIO3;
-               gpio4   = &PIO4;
-               gpio5   = &PIO40;
-               gpio6   = &PIO5;
-               gpio7   = &PIO6;
-               gpio8   = &PIO7;
-               gpio9   = &PIO8;
-               gpio10  = &PIO9;
-               gpio11  = &PIO10;
-               gpio12  = &PIO11;
-               gpio13  = &PIO12;
-               gpio14  = &PIO30;
-               gpio15  = &PIO31;
-               gpio16  = &PIO13;
-               gpio17  = &PIO14;
-               gpio18  = &PIO15;
-               gpio19  = &PIO16;
-               gpio20  = &PIO17;
-               gpio21  = &PIO18;
-               gpio22  = &PIO100;
-               gpio23  = &PIO101;
-               gpio24  = &PIO102;
-               gpio25  = &PIO103;
-               gpio26  = &PIO104;
-               gpio27  = &PIO105;
-               gpio28  = &PIO106;
-               gpio29  = &PIO107;
+               gpio0   = &pio0;
+               gpio1   = &pio1;
+               gpio2   = &pio2;
+               gpio3   = &pio3;
+               gpio4   = &pio4;
+               gpio5   = &pio40;
+               gpio6   = &pio5;
+               gpio7   = &pio6;
+               gpio8   = &pio7;
+               gpio9   = &pio8;
+               gpio10  = &pio9;
+               gpio11  = &pio10;
+               gpio12  = &pio11;
+               gpio13  = &pio12;
+               gpio14  = &pio30;
+               gpio15  = &pio31;
+               gpio16  = &pio13;
+               gpio17  = &pio14;
+               gpio18  = &pio15;
+               gpio19  = &pio16;
+               gpio20  = &pio17;
+               gpio21  = &pio18;
+               gpio22  = &pio100;
+               gpio23  = &pio101;
+               gpio24  = &pio102;
+               gpio25  = &pio103;
+               gpio26  = &pio104;
+               gpio27  = &pio105;
+               gpio28  = &pio106;
+               gpio29  = &pio107;
        };
 
        soc {
@@ -56,7 +56,7 @@
                        interrupt-names = "irqmux";
                        ranges          = <0 0xfe610000 0x6000>;
 
-                       PIO0: gpio@fe610000 {
+                       pio0: gpio@fe610000 {
                                gpio-controller;
                                #gpio-cells = <1>;
                                interrupt-controller;
@@ -64,7 +64,7 @@
                                reg             = <0 0x100>;
                                st,bank-name    = "PIO0";
                        };
-                       PIO1: gpio@fe611000 {
+                       pio1: gpio@fe611000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
@@ -72,7 +72,7 @@
                                reg             = <0x1000 0x100>;
                                st,bank-name    = "PIO1";
                        };
-                       PIO2: gpio@fe612000 {
+                       pio2: gpio@fe612000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
@@ -80,7 +80,7 @@
                                reg             = <0x2000 0x100>;
                                st,bank-name    = "PIO2";
                        };
-                       PIO3: gpio@fe613000 {
+                       pio3: gpio@fe613000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
@@ -88,7 +88,7 @@
                                reg             = <0x3000 0x100>;
                                st,bank-name    = "PIO3";
                        };
-                       PIO4: gpio@fe614000 {
+                       pio4: gpio@fe614000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
@@ -96,7 +96,7 @@
                                reg             = <0x4000 0x100>;
                                st,bank-name    = "PIO4";
                        };
-                       PIO40: gpio@fe615000 {
+                       pio40: gpio@fe615000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                        rc{
                                pinctrl_ir: ir0 {
                                        st,pins {
-                                               ir = <&PIO4 0 ALT2 IN>;
+                                               ir = <&pio4 0 ALT2 IN>;
                                        };
                                };
                        };
                        sbc_serial1 {
                                pinctrl_sbc_serial1: sbc_serial1 {
                                        st,pins {
-                                               tx      = <&PIO2 6 ALT3 OUT>;
-                                               rx      = <&PIO2 7 ALT3 IN>;
+                                               tx      = <&pio2 6 ALT3 OUT>;
+                                               rx      = <&pio2 7 ALT3 IN>;
                                        };
                                };
                        };
                        keyscan {
                                pinctrl_keyscan: keyscan {
                                        st,pins {
-                                               keyin0 = <&PIO0 2 ALT2 IN>;
-                                               keyin1 = <&PIO0 3 ALT2 IN>;
-                                               keyin2 = <&PIO0 4 ALT2 IN>;
-                                               keyin3 = <&PIO2 6 ALT2 IN>;
-
-                                               keyout0 = <&PIO1 6 ALT2 OUT>;
-                                               keyout1 = <&PIO1 7 ALT2 OUT>;
-                                               keyout2 = <&PIO0 6 ALT2 OUT>;
-                                               keyout3 = <&PIO2 7 ALT2 OUT>;
+                                               keyin0 = <&pio0 2 ALT2 IN>;
+                                               keyin1 = <&pio0 3 ALT2 IN>;
+                                               keyin2 = <&pio0 4 ALT2 IN>;
+                                               keyin3 = <&pio2 6 ALT2 IN>;
+
+                                               keyout0 = <&pio1 6 ALT2 OUT>;
+                                               keyout1 = <&pio1 7 ALT2 OUT>;
+                                               keyout2 = <&pio0 6 ALT2 OUT>;
+                                               keyout3 = <&pio2 7 ALT2 OUT>;
                                        };
                                };
                        };
                        sbc_i2c0 {
                                pinctrl_sbc_i2c0_default: sbc_i2c0-default {
                                        st,pins {
-                                               sda = <&PIO4 6 ALT1 BIDIR>;
-                                               scl = <&PIO4 5 ALT1 BIDIR>;
+                                               sda = <&pio4 6 ALT1 BIDIR>;
+                                               scl = <&pio4 5 ALT1 BIDIR>;
+                                       };
+                               };
+                       };
+
+                       usb {
+                               pinctrl_usb3: usb3 {
+                                       st,pins {
+                                               oc-detect = <&pio40 0 ALT1 IN>;
+                                               pwr-enable = <&pio40 1 ALT1 OUT>;
                                        };
                                };
                        };
                        sbc_i2c1 {
                                pinctrl_sbc_i2c1_default: sbc_i2c1-default {
                                        st,pins {
-                                               sda = <&PIO3 2 ALT2 BIDIR>;
-                                               scl = <&PIO3 1 ALT2 BIDIR>;
+                                               sda = <&pio3 2 ALT2 BIDIR>;
+                                               scl = <&pio3 1 ALT2 BIDIR>;
                                        };
                                };
                        };
                        gmac1 {
                                pinctrl_mii1: mii1 {
                                        st,pins {
-                                               txd0 = <&PIO0 0 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
-                                               txd1 = <&PIO0 1 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
-                                               txd2 = <&PIO0 2 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
-                                               txd3 = <&PIO0 3 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
-                                               txer = <&PIO0 4 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
-                                               txen = <&PIO0 5 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
-                                               txclk = <&PIO0 6 ALT1 IN NICLK 0 CLK_A>;
-                                               col =   <&PIO0 7 ALT1 IN BYPASS 1000>;
-
-                                               mdio =  <&PIO1 0 ALT1 OUT BYPASS 1500>;
-                                               mdc =   <&PIO1 1 ALT1 OUT NICLK 0 CLK_A>;
-                                               crs =   <&PIO1 2 ALT1 IN BYPASS 1000>;
-                                               mdint = <&PIO1 3 ALT1 IN BYPASS 0>;
-                                               rxd0 =  <&PIO1 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
-                                               rxd1 =  <&PIO1 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
-                                               rxd2 =  <&PIO1 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
-                                               rxd3 =  <&PIO1 7 ALT1 IN SE_NICLK_IO 0 CLK_A>;
-
-                                               rxdv =  <&PIO2 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
-                                               rx_er = <&PIO2 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
-                                               rxclk = <&PIO2 2 ALT1 IN NICLK 0 CLK_A>;
-                                               phyclk = <&PIO2 3 ALT1 OUT NICLK 0 CLK_A>;
+                                               txd0 = <&pio0 0 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
+                                               txd1 = <&pio0 1 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
+                                               txd2 = <&pio0 2 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
+                                               txd3 = <&pio0 3 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
+                                               txer = <&pio0 4 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
+                                               txen = <&pio0 5 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
+                                               txclk = <&pio0 6 ALT1 IN NICLK 0 CLK_A>;
+                                               col =   <&pio0 7 ALT1 IN BYPASS 1000>;
+
+                                               mdio =  <&pio1 0 ALT1 OUT BYPASS 1500>;
+                                               mdc =   <&pio1 1 ALT1 OUT NICLK 0 CLK_A>;
+                                               crs =   <&pio1 2 ALT1 IN BYPASS 1000>;
+                                               mdint = <&pio1 3 ALT1 IN BYPASS 0>;
+                                               rxd0 =  <&pio1 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               rxd1 =  <&pio1 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               rxd2 =  <&pio1 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               rxd3 =  <&pio1 7 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+
+                                               rxdv =  <&pio2 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               rx_er = <&pio2 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
+                                               rxclk = <&pio2 2 ALT1 IN NICLK 0 CLK_A>;
+                                               phyclk = <&pio2 3 ALT1 OUT NICLK 0 CLK_A>;
                                        };
                                };
                                pinctrl_rgmii1: rgmii1-0 {
                                        st,pins {
-                                               txd0 =  <&PIO0 0 ALT1 OUT DE_IO 500 CLK_A>;
-                                               txd1 =  <&PIO0 1 ALT1 OUT DE_IO 500 CLK_A>;
-                                               txd2 =  <&PIO0 2 ALT1 OUT DE_IO 500 CLK_A>;
-                                               txd3 =  <&PIO0 3 ALT1 OUT DE_IO 500 CLK_A>;
-                                               txen =  <&PIO0 5 ALT1 OUT DE_IO 0   CLK_A>;
-                                               txclk = <&PIO0 6 ALT1 IN  NICLK 0   CLK_A>;
-
-                                               mdio = <&PIO1 0 ALT1 OUT BYPASS 0>;
-                                               mdc  = <&PIO1 1 ALT1 OUT NICLK  0 CLK_A>;
-                                               rxd0 = <&PIO1 4 ALT1 IN DE_IO 500 CLK_A>;
-                                               rxd1 = <&PIO1 5 ALT1 IN DE_IO 500 CLK_A>;
-                                               rxd2 = <&PIO1 6 ALT1 IN DE_IO 500 CLK_A>;
-                                               rxd3 = <&PIO1 7 ALT1 IN DE_IO 500 CLK_A>;
-
-                                               rxdv   = <&PIO2 0 ALT1 IN  DE_IO 500 CLK_A>;
-                                               rxclk  = <&PIO2 2 ALT1 IN  NICLK 0   CLK_A>;
-                                               phyclk = <&PIO2 3 ALT4 OUT NICLK 0   CLK_B>;
-
-                                               clk125= <&PIO3 7 ALT4 IN NICLK 0 CLK_A>;
+                                               txd0 =  <&pio0 0 ALT1 OUT DE_IO 500 CLK_A>;
+                                               txd1 =  <&pio0 1 ALT1 OUT DE_IO 500 CLK_A>;
+                                               txd2 =  <&pio0 2 ALT1 OUT DE_IO 500 CLK_A>;
+                                               txd3 =  <&pio0 3 ALT1 OUT DE_IO 500 CLK_A>;
+                                               txen =  <&pio0 5 ALT1 OUT DE_IO 0   CLK_A>;
+                                               txclk = <&pio0 6 ALT1 IN  NICLK 0   CLK_A>;
+
+                                               mdio = <&pio1 0 ALT1 OUT BYPASS 0>;
+                                               mdc  = <&pio1 1 ALT1 OUT NICLK  0 CLK_A>;
+                                               rxd0 = <&pio1 4 ALT1 IN DE_IO 500 CLK_A>;
+                                               rxd1 = <&pio1 5 ALT1 IN DE_IO 500 CLK_A>;
+                                               rxd2 = <&pio1 6 ALT1 IN DE_IO 500 CLK_A>;
+                                               rxd3 = <&pio1 7 ALT1 IN DE_IO 500 CLK_A>;
+
+                                               rxdv   = <&pio2 0 ALT1 IN  DE_IO 500 CLK_A>;
+                                               rxclk  = <&pio2 2 ALT1 IN  NICLK 0   CLK_A>;
+                                               phyclk = <&pio2 3 ALT4 OUT NICLK 0   CLK_B>;
+
+                                               clk125= <&pio3 7 ALT4 IN NICLK 0 CLK_A>;
                                        };
                                };
                        };
                        interrupt-names = "irqmux";
                        ranges          = <0 0xfee00000 0x10000>;
 
-                       PIO5: gpio@fee00000 {
+                       pio5: gpio@fee00000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0 0x100>;
                                st,bank-name    = "PIO5";
                        };
-                       PIO6: gpio@fee01000 {
+                       pio6: gpio@fee01000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x1000 0x100>;
                                st,bank-name    = "PIO6";
                        };
-                       PIO7: gpio@fee02000 {
+                       pio7: gpio@fee02000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x2000 0x100>;
                                st,bank-name    = "PIO7";
                        };
-                       PIO8: gpio@fee03000 {
+                       pio8: gpio@fee03000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x3000 0x100>;
                                st,bank-name    = "PIO8";
                        };
-                       PIO9: gpio@fee04000 {
+                       pio9: gpio@fee04000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x4000 0x100>;
                                st,bank-name    = "PIO9";
                        };
-                       PIO10: gpio@fee05000 {
+                       pio10: gpio@fee05000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x5000 0x100>;
                                st,bank-name    = "PIO10";
                        };
-                       PIO11: gpio@fee06000 {
+                       pio11: gpio@fee06000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x6000 0x100>;
                                st,bank-name    = "PIO11";
                        };
-                       PIO12: gpio@fee07000 {
+                       pio12: gpio@fee07000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x7000 0x100>;
                                st,bank-name    = "PIO12";
                        };
-                       PIO30: gpio@fee08000 {
+                       pio30: gpio@fee08000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x8000 0x100>;
                                st,bank-name    = "PIO30";
                        };
-                       PIO31: gpio@fee09000 {
+                       pio31: gpio@fee09000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                        serial2-oe {
                                pinctrl_serial2_oe: serial2-1 {
                                        st,pins {
-                                               output-enable   = <&PIO11 3 ALT2 OUT>;
+                                               output-enable   = <&pio11 3 ALT2 OUT>;
                                        };
                                };
                        };
                        i2c0 {
                                pinctrl_i2c0_default: i2c0-default {
                                        st,pins {
-                                               sda = <&PIO9 3 ALT1 BIDIR>;
-                                               scl = <&PIO9 2 ALT1 BIDIR>;
+                                               sda = <&pio9 3 ALT1 BIDIR>;
+                                               scl = <&pio9 2 ALT1 BIDIR>;
+                                       };
+                               };
+                       };
+
+                       usb {
+                               pinctrl_usb0: usb0 {
+                                       st,pins {
+                                               oc-detect = <&pio9 4 ALT1 IN>;
+                                               pwr-enable = <&pio9 5 ALT1 OUT>;
                                        };
                                };
                        };
 
+
                        i2c1 {
                                pinctrl_i2c1_default: i2c1-default {
                                        st,pins {
-                                               sda = <&PIO12 1 ALT1 BIDIR>;
-                                               scl = <&PIO12 0 ALT1 BIDIR>;
+                                               sda = <&pio12 1 ALT1 BIDIR>;
+                                               scl = <&pio12 0 ALT1 BIDIR>;
                                        };
                                };
                        };
                        fsm {
                                pinctrl_fsm: fsm {
                                        st,pins {
-                                               spi-fsm-clk  = <&PIO12 2 ALT1 OUT>;
-                                               spi-fsm-cs   = <&PIO12 3 ALT1 OUT>;
-                                               spi-fsm-mosi = <&PIO12 4 ALT1 OUT>;
-                                               spi-fsm-miso = <&PIO12 5 ALT1 IN>;
-                                               spi-fsm-hol  = <&PIO12 6 ALT1 OUT>;
-                                               spi-fsm-wp   = <&PIO12 7 ALT1 OUT>;
+                                               spi-fsm-clk  = <&pio12 2 ALT1 OUT>;
+                                               spi-fsm-cs   = <&pio12 3 ALT1 OUT>;
+                                               spi-fsm-mosi = <&pio12 4 ALT1 OUT>;
+                                               spi-fsm-miso = <&pio12 5 ALT1 IN>;
+                                               spi-fsm-hol  = <&pio12 6 ALT1 OUT>;
+                                               spi-fsm-wp   = <&pio12 7 ALT1 OUT>;
                                        };
                                };
                        };
                        interrupt-names = "irqmux";
                        ranges          = <0 0xfe820000 0x6000>;
 
-                       PIO13: gpio@fe820000 {
+                       pio13: gpio@fe820000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0 0x100>;
                                st,bank-name    = "PIO13";
                        };
-                       PIO14: gpio@fe821000 {
+                       pio14: gpio@fe821000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x1000 0x100>;
                                st,bank-name    = "PIO14";
                        };
-                       PIO15: gpio@fe822000 {
+                       pio15: gpio@fe822000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x2000 0x100>;
                                st,bank-name    = "PIO15";
                        };
-                       PIO16: gpio@fe823000 {
+                       pio16: gpio@fe823000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x3000 0x100>;
                                st,bank-name    = "PIO16";
                        };
-                       PIO17: gpio@fe824000 {
+                       pio17: gpio@fe824000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x4000 0x100>;
                                st,bank-name    = "PIO17";
                        };
-                       PIO18: gpio@fe825000 {
+                       pio18: gpio@fe825000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                        serial2 {
                                pinctrl_serial2: serial2-0 {
                                        st,pins {
-                                               tx      = <&PIO17 4 ALT2 OUT>;
-                                               rx      = <&PIO17 5 ALT2 IN>;
+                                               tx      = <&pio17 4 ALT2 OUT>;
+                                               rx      = <&pio17 5 ALT2 IN>;
                                        };
                                };
                        };
                        gmac0 {
                                pinctrl_mii0: mii0 {
                                        st,pins {
-                                               mdint = <&PIO13 6 ALT2 IN  BYPASS      0>;
-                                               txen =  <&PIO13 7 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
-                                               txd0 =  <&PIO14 0 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
-                                               txd1 =  <&PIO14 1 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
-                                               txd2 =  <&PIO14 2 ALT2 OUT SE_NICLK_IO 0 CLK_B>;
-                                               txd3 =  <&PIO14 3 ALT2 OUT SE_NICLK_IO 0 CLK_B>;
-
-                                               txclk = <&PIO15 0 ALT2 IN  NICLK       0 CLK_A>;
-                                               txer =  <&PIO15 1 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
-                                               crs = <&PIO15 2 ALT2 IN  BYPASS 1000>;
-                                               col = <&PIO15 3 ALT2 IN  BYPASS 1000>;
-                                               mdio= <&PIO15 4 ALT2 OUT BYPASS 1500>;
-                                               mdc = <&PIO15 5 ALT2 OUT NICLK  0    CLK_B>;
-
-                                               rxd0 =  <&PIO16 0 ALT2 IN SE_NICLK_IO 0 CLK_A>;
-                                               rxd1 =  <&PIO16 1 ALT2 IN SE_NICLK_IO 0 CLK_A>;
-                                               rxd2 =  <&PIO16 2 ALT2 IN SE_NICLK_IO 0 CLK_A>;
-                                               rxd3 =  <&PIO16 3 ALT2 IN SE_NICLK_IO 0 CLK_A>;
-                                               rxdv =  <&PIO15 6 ALT2 IN SE_NICLK_IO 0 CLK_A>;
-                                               rx_er = <&PIO15 7 ALT2 IN SE_NICLK_IO 0 CLK_A>;
-                                               rxclk = <&PIO17 0 ALT2 IN NICLK 0 CLK_A>;
-                                               phyclk = <&PIO13 5 ALT2 OUT NICLK 0 CLK_B>;
+                                               mdint = <&pio13 6 ALT2 IN  BYPASS      0>;
+                                               txen =  <&pio13 7 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
+                                               txd0 =  <&pio14 0 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
+                                               txd1 =  <&pio14 1 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
+                                               txd2 =  <&pio14 2 ALT2 OUT SE_NICLK_IO 0 CLK_B>;
+                                               txd3 =  <&pio14 3 ALT2 OUT SE_NICLK_IO 0 CLK_B>;
+
+                                               txclk = <&pio15 0 ALT2 IN  NICLK       0 CLK_A>;
+                                               txer =  <&pio15 1 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
+                                               crs = <&pio15 2 ALT2 IN  BYPASS 1000>;
+                                               col = <&pio15 3 ALT2 IN  BYPASS 1000>;
+                                               mdio= <&pio15 4 ALT2 OUT BYPASS 1500>;
+                                               mdc = <&pio15 5 ALT2 OUT NICLK  0    CLK_B>;
+
+                                               rxd0 =  <&pio16 0 ALT2 IN SE_NICLK_IO 0 CLK_A>;
+                                               rxd1 =  <&pio16 1 ALT2 IN SE_NICLK_IO 0 CLK_A>;
+                                               rxd2 =  <&pio16 2 ALT2 IN SE_NICLK_IO 0 CLK_A>;
+                                               rxd3 =  <&pio16 3 ALT2 IN SE_NICLK_IO 0 CLK_A>;
+                                               rxdv =  <&pio15 6 ALT2 IN SE_NICLK_IO 0 CLK_A>;
+                                               rx_er = <&pio15 7 ALT2 IN SE_NICLK_IO 0 CLK_A>;
+                                               rxclk = <&pio17 0 ALT2 IN NICLK 0 CLK_A>;
+                                               phyclk = <&pio13 5 ALT2 OUT NICLK 0 CLK_B>;
                                        };
                                };
 
                                };
                                pinctrl_rgmii0: rgmii0 {
                                        st,pins {
-                                                phyclk = <&PIO13  5 ALT4 OUT NICLK 0 CLK_B>;
-                                                txen = <&PIO13 7 ALT2 OUT DE_IO 0 CLK_A>;
-                                                txd0  = <&PIO14 0 ALT2 OUT DE_IO 500 CLK_A>;
-                                                txd1  = <&PIO14 1 ALT2 OUT DE_IO 500 CLK_A>;
-                                                txd2  = <&PIO14 2 ALT2 OUT DE_IO 500 CLK_B>;
-                                                txd3  = <&PIO14 3 ALT2 OUT DE_IO 500 CLK_B>;
-                                                txclk = <&PIO15 0 ALT2 IN NICLK 0 CLK_A>;
-
-                                                mdio = <&PIO15 4 ALT2 OUT BYPASS 0>;
-                                                mdc = <&PIO15 5 ALT2 OUT NICLK 0 CLK_B>;
-
-                                                rxdv = <&PIO15 6 ALT2 IN DE_IO 500 CLK_A>;
-                                                rxd0 =<&PIO16 0 ALT2 IN DE_IO  500 CLK_A>;
-                                                rxd1 =<&PIO16 1 ALT2 IN DE_IO  500 CLK_A>;
-                                                rxd2 =<&PIO16 2 ALT2 IN DE_IO  500 CLK_A>;
-                                                rxd3  =<&PIO16 3 ALT2 IN DE_IO 500 CLK_A>;
-                                                rxclk =<&PIO17 0 ALT2 IN NICLK 0 CLK_A>;
-
-                                                clk125=<&PIO17 6 ALT1 IN NICLK 0 CLK_A>;
+                                                phyclk = <&pio13  5 ALT4 OUT NICLK 0 CLK_B>;
+                                                txen = <&pio13 7 ALT2 OUT DE_IO 0 CLK_A>;
+                                                txd0  = <&pio14 0 ALT2 OUT DE_IO 500 CLK_A>;
+                                                txd1  = <&pio14 1 ALT2 OUT DE_IO 500 CLK_A>;
+                                                txd2  = <&pio14 2 ALT2 OUT DE_IO 500 CLK_B>;
+                                                txd3  = <&pio14 3 ALT2 OUT DE_IO 500 CLK_B>;
+                                                txclk = <&pio15 0 ALT2 IN NICLK 0 CLK_A>;
+
+                                                mdio = <&pio15 4 ALT2 OUT BYPASS 0>;
+                                                mdc = <&pio15 5 ALT2 OUT NICLK 0 CLK_B>;
+
+                                                rxdv = <&pio15 6 ALT2 IN DE_IO 500 CLK_A>;
+                                                rxd0 =<&pio16 0 ALT2 IN DE_IO  500 CLK_A>;
+                                                rxd1 =<&pio16 1 ALT2 IN DE_IO  500 CLK_A>;
+                                                rxd2 =<&pio16 2 ALT2 IN DE_IO  500 CLK_A>;
+                                                rxd3  =<&pio16 3 ALT2 IN DE_IO 500 CLK_A>;
+                                                rxclk =<&pio17 0 ALT2 IN NICLK 0 CLK_A>;
+
+                                                clk125=<&pio17 6 ALT1 IN NICLK 0 CLK_A>;
+                                       };
+                               };
+                       };
+
+                       mmc0 {
+                               pinctrl_mmc0: mmc0 {
+                                       st,pins {
+                                               mmcclk  = <&pio13 4 ALT4 BIDIR_PU NICLK 0 CLK_B>;
+                                               data0   = <&pio14 4 ALT4 BIDIR_PU BYPASS 0>;
+                                               data1   = <&pio14 5 ALT4 BIDIR_PU BYPASS 0>;
+                                               data2   = <&pio14 6 ALT4 BIDIR_PU BYPASS 0>;
+                                               data3   = <&pio14 7 ALT4 BIDIR_PU BYPASS 0>;
+                                               cmd     = <&pio15 1 ALT4 BIDIR_PU BYPASS 0>;
+                                               wp      = <&pio15 3 ALT4 IN>;
+                                               data4   = <&pio16 4 ALT4 BIDIR_PU BYPASS 0>;
+                                               data5   = <&pio16 5 ALT4 BIDIR_PU BYPASS 0>;
+                                               data6   = <&pio16 6 ALT4 BIDIR_PU BYPASS 0>;
+                                               data7   = <&pio16 7 ALT4 BIDIR_PU BYPASS 0>;
+                                               pwr     = <&pio17 1 ALT4 OUT>;
+                                               cd      = <&pio17 2 ALT4 IN>;
+                                               led     = <&pio17 3 ALT4 OUT>;
+                                       };
+                               };
+                       };
+                       mmc1 {
+                               pinctrl_mmc1: mmc1 {
+                                       st,pins {
+                                               mmcclk  = <&pio15 0 ALT3 BIDIR_PU NICLK 0 CLK_B>;
+                                               data0   = <&pio13 7 ALT3 BIDIR_PU BYPASS 0>;
+                                               data1   = <&pio14 1 ALT3 BIDIR_PU BYPASS 0>;
+                                               data2   = <&pio14 2 ALT3 BIDIR_PU BYPASS 0>;
+                                               data3   = <&pio14 3 ALT3 BIDIR_PU BYPASS 0>;
+                                               cmd     = <&pio15 4 ALT3 BIDIR_PU BYPASS 0>;
+                                               data4   = <&pio15 6 ALT3 BIDIR_PU BYPASS 0>;
+                                               data5   = <&pio15 7 ALT3 BIDIR_PU BYPASS 0>;
+                                               data6   = <&pio16 0 ALT3 BIDIR_PU BYPASS 0>;
+                                               data7   = <&pio16 1 ALT3 BIDIR_PU BYPASS 0>;
+                                               pwr     = <&pio16 2 ALT3 OUT>;
+                                               nreset  = <&pio13 6 ALT3 OUT>;
+                                       };
+                               };
+                       };
+
+                       usb {
+                               pinctrl_usb1: usb1 {
+                                       st,pins {
+                                               oc-detect = <&pio18 0 ALT1 IN>;
+                                               pwr-enable = <&pio18 1 ALT1 OUT>;
+                                       };
+                               };
+                               pinctrl_usb2: usb2 {
+                                       st,pins {
+                                               oc-detect = <&pio18 2 ALT1 IN>;
+                                               pwr-enable = <&pio18 3 ALT1 OUT>;
                                        };
                                };
                        };
                        interrupt-names = "irqmux";
                        ranges          = <0 0xfd6b0000 0x3000>;
 
-                       PIO100: gpio@fd6b0000 {
+                       pio100: gpio@fd6b0000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0 0x100>;
                                st,bank-name    = "PIO100";
                        };
-                       PIO101: gpio@fd6b1000 {
+                       pio101: gpio@fd6b1000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x1000 0x100>;
                                st,bank-name    = "PIO101";
                        };
-                       PIO102: gpio@fd6b2000 {
+                       pio102: gpio@fd6b2000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                        interrupt-names = "irqmux";
                        ranges                  = <0 0xfd330000 0x5000>;
 
-                       PIO103: gpio@fd330000 {
+                       pio103: gpio@fd330000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0 0x100>;
                                st,bank-name    = "PIO103";
                        };
-                       PIO104: gpio@fd331000 {
+                       pio104: gpio@fd331000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x1000 0x100>;
                                st,bank-name    = "PIO104";
                        };
-                       PIO105: gpio@fd332000 {
+                       pio105: gpio@fd332000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                reg             = <0x2000 0x100>;
                                st,bank-name    = "PIO105";
                        };
-                       PIO106: gpio@fd333000 {
+                       pio106: gpio@fd333000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
                                st,bank-name    = "PIO106";
                        };
 
-                       PIO107: gpio@fd334000 {
+                       pio107: gpio@fd334000 {
                                gpio-controller;
                                #gpio-cells     = <1>;
                                interrupt-controller;
index 84758d76d064f5bc790cc0b08629e48bd8fec7ea..fad9073ddeed1a3e4193f30140bb8c30773fd955 100644 (file)
@@ -9,6 +9,8 @@
 #include "stih41x.dtsi"
 #include "stih416-clock.dtsi"
 #include "stih416-pinctrl.dtsi"
+
+#include <dt-bindings/phy/phy-miphy365x.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/reset-controller/stih416-resets.h>
 / {
                        resets  = <&powerdown STIH416_KEYSCAN_POWERDOWN>,
                                  <&softreset STIH416_KEYSCAN_SOFTRESET>;
                };
+
+               temp0 {
+                       compatible = "st,stih416-sas-thermal";
+                       clock-names = "thermal";
+                       clocks = <&clockgen_c_vcc 14>;
+
+                       status = "okay";
+               };
+
+               temp1@fdfe8000 {
+                       compatible = "st,stih416-mpe-thermal";
+                       reg = <0xfdfe8000 0x10>;
+                       clocks = <&clockgen_e 3>;
+                       clock-names = "thermal";
+                       interrupts = <GIC_SPI 23 IRQ_TYPE_EDGE_RISING>;
+
+                       status = "okay";
+               };
+
+               mmc0: sdhci@fe81e000 {
+                       compatible      = "st,sdhci";
+                       status          = "disabled";
+                       reg             = <0xfe81e000 0x1000>;
+                       interrupts      = <GIC_SPI 127 IRQ_TYPE_NONE>;
+                       interrupt-names = "mmcirq";
+                       pinctrl-names   = "default";
+                       pinctrl-0       = <&pinctrl_mmc0>;
+                       clock-names     = "mmc";
+                       clocks          = <&clk_s_a1_ls 1>;
+               };
+
+               mmc1: sdhci@fe81f000 {
+                       compatible      = "st,sdhci";
+                       status          = "disabled";
+                       reg             = <0xfe81f000 0x1000>;
+                       interrupts      = <GIC_SPI 128 IRQ_TYPE_NONE>;
+                       interrupt-names = "mmcirq";
+                       pinctrl-names   = "default";
+                       pinctrl-0       = <&pinctrl_mmc1>;
+                       clock-names     = "mmc";
+                       clocks          = <&clk_s_a1_ls 8>;
+               };
+
+               miphy365x_phy: phy@fe382000 {
+                       compatible      = "st,miphy365x-phy";
+                       st,syscfg       = <&syscfg_rear>;
+                       #address-cells  = <1>;
+                       #size-cells     = <1>;
+                       ranges;
+
+                       phy_port0: port@fe382000 {
+                               #phy-cells = <1>;
+                               reg = <0xfe382000 0x100>, <0xfe394000 0x100>, <0x824 0x4>;
+                               reg-names = "sata", "pcie", "syscfg";
+                       };
+
+                       phy_port1: port@fe38a000 {
+                               #phy-cells = <1>;
+                               reg = <0xfe38a000 0x100>, <0xfe804000 0x100>, <0x828 0x4>;
+                               reg-names = "sata", "pcie", "syscfg";
+                       };
+               };
+
+               sata0: sata@fe380000 {
+                       compatible      = "st,sti-ahci";
+                       reg             = <0xfe380000 0x1000>;
+                       interrupts      = <GIC_SPI 157 IRQ_TYPE_NONE>;
+                       interrupt-names = "hostc";
+                       phys            = <&phy_port0 MIPHY_TYPE_SATA>;
+                       phy-names       = "sata-phy";
+                       resets          = <&powerdown STIH416_SATA0_POWERDOWN>,
+                                         <&softreset STIH416_SATA0_SOFTRESET>;
+                       reset-names     = "pwr-dwn", "sw-rst";
+                       clock-names     = "ahci_clk";
+                       clocks          = <&clk_s_a0_ls CLK_ICN_REG>;
+
+                       status          = "disabled";
+               };
+
+               usb2_phy: phy@0 {
+                       compatible = "st,stih416-usb-phy";
+                       #phy-cells = <0>;
+                       st,syscfg = <&syscfg_rear>;
+                       clocks = <&clk_sysin>;
+                       clock-names = "osc_phy";
+               };
+
+               ehci0: usb@fe1ffe00 {
+                       compatible = "st,st-ehci-300x";
+                       reg = <0xfe1ffe00 0x100>;
+                       interrupts = <GIC_SPI 148 IRQ_TYPE_NONE>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usb0>;
+                       clocks = <&clk_s_a1_ls 0>,
+                                <&clockgen_b0 0>;
+                       clock-names = "ic", "clk48";
+                       phys = <&usb2_phy>;
+                       phy-names = "usb";
+                       resets = <&powerdown STIH416_USB0_POWERDOWN>,
+                                <&softreset STIH416_USB0_SOFTRESET>;
+                       reset-names = "power", "softreset";
+               };
+
+               ohci0: usb@fe1ffc00 {
+                       compatible = "st,st-ohci-300x";
+                       reg = <0xfe1ffc00 0x100>;
+                       interrupts = <GIC_SPI 149 IRQ_TYPE_NONE>;
+                       clocks = <&clk_s_a1_ls 0>,
+                                <&clockgen_b0 0>;
+                       clock-names = "ic", "clk48";
+                       phys = <&usb2_phy>;
+                       phy-names = "usb";
+                       status = "okay";
+                       resets = <&powerdown STIH416_USB0_POWERDOWN>,
+                                <&softreset STIH416_USB0_SOFTRESET>;
+                       reset-names = "power", "softreset";
+               };
+
+               ehci1: usb@fe203e00 {
+                       compatible = "st,st-ehci-300x";
+                       reg = <0xfe203e00 0x100>;
+                       interrupts = <GIC_SPI 150 IRQ_TYPE_NONE>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usb1>;
+                       clocks = <&clk_s_a1_ls 0>,
+                                <&clockgen_b0 0>;
+                       clock-names = "ic", "clk48";
+                       phys = <&usb2_phy>;
+                       phy-names = "usb";
+                       resets = <&powerdown STIH416_USB1_POWERDOWN>,
+                                <&softreset STIH416_USB1_SOFTRESET>;
+                       reset-names = "power", "softreset";
+               };
+
+               ohci1: usb@fe203c00 {
+                       compatible = "st,st-ohci-300x";
+                       reg = <0xfe203c00 0x100>;
+                       interrupts = <GIC_SPI 151 IRQ_TYPE_NONE>;
+                       clocks = <&clk_s_a1_ls 0>,
+                                <&clockgen_b0 0>;
+                       clock-names = "ic", "clk48";
+                       phys = <&usb2_phy>;
+                       phy-names = "usb";
+                       resets = <&powerdown STIH416_USB1_POWERDOWN>,
+                                <&softreset STIH416_USB1_SOFTRESET>;
+                       reset-names = "power", "softreset";
+               };
+
+               ehci2: usb@fe303e00 {
+                       compatible = "st,st-ehci-300x";
+                       reg = <0xfe303e00 0x100>;
+                       interrupts = <GIC_SPI 152 IRQ_TYPE_NONE>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usb2>;
+                       clocks = <&clk_s_a1_ls 0>,
+                                <&clockgen_b0 0>;
+                       clock-names = "ic", "clk48";
+                       phys = <&usb2_phy>;
+                       phy-names = "usb";
+                       resets = <&powerdown STIH416_USB2_POWERDOWN>,
+                                <&softreset STIH416_USB2_SOFTRESET>;
+                       reset-names = "power", "softreset";
+               };
+
+               ohci2: usb@fe303c00 {
+                       compatible = "st,st-ohci-300x";
+                       reg = <0xfe303c00 0x100>;
+                       interrupts = <GIC_SPI 153 IRQ_TYPE_NONE>;
+                       clocks = <&clk_s_a1_ls 0>,
+                                <&clockgen_b0 0>;
+                       clock-names = "ic", "clk48";
+                       phys = <&usb2_phy>;
+                       phy-names = "usb";
+                       resets = <&powerdown STIH416_USB2_POWERDOWN>,
+                                <&softreset STIH416_USB2_SOFTRESET>;
+                       reset-names = "power", "softreset";
+               };
+
+               ehci3: usb@fe343e00 {
+                       compatible = "st,st-ehci-300x";
+                       reg = <0xfe343e00 0x100>;
+                       interrupts = <GIC_SPI 154 IRQ_TYPE_NONE>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usb3>;
+                       clocks = <&clk_s_a1_ls 0>,
+                                <&clockgen_b0 0>;
+                       clock-names = "ic", "clk48";
+                       phys = <&usb2_phy>;
+                       phy-names = "usb";
+                       resets = <&powerdown STIH416_USB3_POWERDOWN>,
+                                <&softreset STIH416_USB3_SOFTRESET>;
+                       reset-names = "power", "softreset";
+               };
+
+               ohci3: usb@fe343c00 {
+                       compatible = "st,st-ohci-300x";
+                       reg = <0xfe343c00 0x100>;
+                       interrupts = <GIC_SPI 155 IRQ_TYPE_NONE>;
+                       clocks = <&clk_s_a1_ls 0>,
+                                <&clockgen_b0 0>;
+                       clock-names = "ic", "clk48";
+                       phys = <&usb2_phy>;
+                       phy-names = "usb";
+                       resets = <&powerdown STIH416_USB3_POWERDOWN>,
+                                <&softreset STIH416_USB3_SOFTRESET>;
+                       reset-names = "power", "softreset";
+               };
        };
 };
index b3dd6ca5c2ae0bff23f33fd3fbc0e3d8c11c6c28..5f91f455f05b7084927f0c05da530e1271de59c7 100644 (file)
@@ -35,7 +35,7 @@
                        fp_led {
                                #gpio-cells = <1>;
                                label   = "Front Panel LED";
-                               gpios   = <&PIO105 7>;
+                               gpios   = <&pio105 7>;
                                linux,default-trigger   = "heartbeat";
                        };
                };
@@ -55,7 +55,7 @@
                        phy-mode                = "mii";
                        pinctrl-0               = <&pinctrl_mii0>;
 
-                       snps,reset-gpio         = <&PIO106 2>;
+                       snps,reset-gpio         = <&pio106 2>;
                        snps,reset-active-low;
                        snps,reset-delays-us    = <0 10000 10000>;
                };
@@ -65,7 +65,7 @@
                        phy-mode                = "mii";
                        st,tx-retime-src        = "txclk";
 
-                       snps,reset-gpio         = <&PIO4 7>;
+                       snps,reset-gpio         = <&pio4 7>;
                        snps,reset-active-low;
                        snps,reset-delays-us    = <0 10000 10000>;
                };
index d8a84295c328bf778d35ad064c55a63f21ed96c4..487d7d87dbefb1127a1de540c5a839145e0325ad 100644 (file)
                        red {
                                #gpio-cells = <1>;
                                label   = "Front Panel LED";
-                               gpios   = <&PIO4 1>;
+                               gpios   = <&pio4 1>;
                                linux,default-trigger   = "heartbeat";
                        };
                        green {
-                               gpios   = <&PIO4 7>;
+                               gpios   = <&pio4 7>;
                                default-state = "off";
                        };
                };
                        phy-mode                = "rgmii-id";
                        max-speed               = <1000>;
                        st,tx-retime-src        = "clk_125";
-                       snps,reset-gpio         = <&PIO3 0>;
+                       snps,reset-gpio         = <&pio3 0>;
                        snps,reset-active-low;
                        snps,reset-delays-us    = <0 10000 10000>;
 
                        pinctrl-0       = <&pinctrl_rgmii1>;
                };
+
+               mmc0: sdhci@fe81e000 {
+                       bus-width = <8>;
+               };
        };
 };
index df01c1211b329fc0d271de5498316b74f56f9bce..f797a0607382f35ce1b0cb9b60debeb6ee586446 100644 (file)
@@ -8,6 +8,10 @@
  */
 / {
        soc {
+               mmc0: sdhci@fe81e000 {
+                       status = "okay";
+               };
+
                spifsm: spifsm@fe902000 {
                        #address-cells = <1>;
                        #size-cells    = <1>;
diff --git a/arch/arm/boot/dts/stihxxx-b2120.dtsi b/arch/arm/boot/dts/stihxxx-b2120.dtsi
new file mode 100644 (file)
index 0000000..0074bd4
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2014 STMicroelectronics (R&D) Limited.
+ * Author: Giuseppe Cavallaro <peppe.cavallaro@st.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.
+ */
+/ {
+       soc {
+               sbc_serial0: serial@9530000 {
+                       status = "okay";
+               };
+
+               leds {
+                       compatible = "gpio-leds";
+                       red {
+                               #gpio-cells = <2>;
+                               label = "Front Panel LED";
+                               gpios = <&pio4 1 0>;
+                               linux,default-trigger = "heartbeat";
+                       };
+                       green {
+                               #gpio-cells = <2>;
+                               gpios = <&pio1 3 0>;
+                               default-state = "off";
+                       };
+               };
+
+               i2c@9842000 {
+                       status = "okay";
+               };
+
+               i2c@9843000 {
+                       status = "okay";
+               };
+
+               i2c@9844000 {
+                       status = "okay";
+               };
+
+               i2c@9845000 {
+                       status = "okay";
+               };
+
+               i2c@9540000 {
+                       status = "okay";
+               };
+
+               /* SSC11 to HDMI */
+               i2c@9541000 {
+                       status = "okay";
+                       /* HDMI V1.3a supports Standard mode only */
+                       clock-frequency = <100000>;
+                       st,i2c-min-scl-pulse-width-us = <0>;
+                       st,i2c-min-sda-pulse-width-us = <5>;
+               };
+       };
+};
index 9e99ade35e37b3e2117bd1b3fd9ef304875cdfc2..3bcfd81837f048c2d329cee59d08733998f99f8b 100644 (file)
@@ -3,12 +3,48 @@
  *
  * Emilio López <emilio@elopez.com.ar>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
index 1763cc7ec02385297e6d93f93f2f5f448da25ed1..f3f2974658e4f12689b6515e20419af502075e78 100644 (file)
@@ -1,12 +1,48 @@
 /*
  * Copyright 2014 Hans de Goede <hdegoede@redhat.com>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
index 3ce56bfbc0b5f6ee46b685112648b5c9af7c8fbf..6a310da53f185bb961b30b4977d7cf17d1f9f634 100644 (file)
@@ -2,12 +2,48 @@
  * Copyright 2012 Stefan Roese
  * Stefan Roese <sr@denx.de>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
index 891ea446abae9480f189b2d95fb31608ca5aa3f9..efc116287e0fd69154626b846b533373ffd4c08f 100644 (file)
@@ -3,12 +3,48 @@
  *
  * Maxime Ripard <maxime.ripard@free-electrons.com>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
index 6b0c37812ade80ef457fe38b56d114be02659c28..3e25ee4d324863824eea0a192834c1e65a424ebb 100644 (file)
@@ -3,12 +3,48 @@
  *
  * David Lanzendörfer <david.lanzendoerfer@o2s.ch>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
index b9ecce60f2e7e68d77621ec9a99a4b2ddbedd07a..8b3f974702492ce40c6a1ee8b16db8b8b243dafe 100644 (file)
@@ -3,12 +3,48 @@
  *
  * Maxime Ripard <maxime.ripard@free-electrons.com>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
index d046d568f5a1f1f55b93a387e205838e9499aee2..88cf1a531155b6354103ee0b6b1cc58775e8b5cf 100644 (file)
@@ -1,12 +1,48 @@
 /*
  * Copyright 2014 - Hans de Goede <hdegoede@redhat.com>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
index 6675bcd7860e8eea367ca0fd9975e3ff2aea95b9..ce5994597407aaff1a5329658fa525f38698dac3 100644 (file)
@@ -2,12 +2,48 @@
  * Copyright 2014 Zoltan HERPAI
  * Zoltan HERPAI <wigyori@uid0.hu>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
index ea9519da57643ffbbc2539fe5396c1f24dceace9..fe3c559ca6a8e6d24412abe6d2a81c2a6b97bdda 100644 (file)
@@ -3,12 +3,48 @@
  *
  * Maxime Ripard <maxime.ripard@free-electrons.com>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
index 43a93762d4f290075d3f506e4822adb1b79e13cc..1fa2916eafc2752c69436e69eb2c965662719379 100644 (file)
@@ -1,12 +1,48 @@
 /*
  * Copyright 2014 Hans de Goede <hdegoede@redhat.com>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
index 8b3cd0907b3249775977dc5b760beb5c93227551..eeed1f236ee8c400465cbe87824516462dc6ec63 100644 (file)
@@ -6,18 +6,18 @@
  * licensing only applies to this file, and not this project as a
  * whole.
  *
- *  a) This library is free software; you can redistribute it and/or
+ *  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 library is distributed in the hope that it will be useful,
+ *     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 library; if not, write to the Free
+ *     License along with this file; if not, write to the Free
  *     Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
  *     MA 02110-1301 USA
  *
index fa44b026483b34c59197bb8d1d2594c068b81448..916ee8bb826f7186380ecaf967d55488f84db6aa 100644 (file)
@@ -1,15 +1,49 @@
 /*
- * Copyright 2012 Maxime Ripard
+ * Copyright 2012 Maxime Ripard <maxime.ripard@free-electrons.com>
  * Copyright 2013 Hans de Goede <hdegoede@redhat.com>
  *
- * Maxime Ripard <maxime.ripard@free-electrons.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.
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ *  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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *     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/;
index 429994e1943e83eda0ce8a0fa9ef29d39f435628..e31d291d14cbcd22add60622a9a2e83b8206ea11 100644 (file)
@@ -3,12 +3,48 @@
  *
  * Maxime Ripard <maxime.ripard@free-electrons.com>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
index 2bbf8867362b59b7c083381b87675ac8b6a71666..c74a63a395312da47dd24dca1e2c271376a3789d 100644 (file)
@@ -3,12 +3,48 @@
  *
  * Boris Brezillon <boris.brezillon@free-electrons.com>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
index 546cf6eff5c796fcaa65da5f2bd58331ef0a59c1..c36b4dc89c1300f596601cc761dbefdb13bbdc97 100644 (file)
@@ -3,12 +3,48 @@
  *
  * Maxime Ripard <maxime.ripard@free-electrons.com>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
index f142065b3c1fb4c807cf5c25ee8e039179dbd94c..6e924d9d2912ba5cb53eabfb9164601ce7565fc4 100644 (file)
@@ -3,12 +3,48 @@
  *
  * Maxime Ripard <maxime.ripard@free-electrons.com>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
index bc6115da5ae14055dd07f36de51cc0204dffdd9b..3ab544f3af4a5dc93ff7c6bac66583ff82a5f981 100644 (file)
@@ -1,12 +1,48 @@
 /*
  * Copyright 2014 Hans de Goede <hdegoede@redhat.com>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
                        status = "okay";
                };
 
+               usbphy: phy@01c19400 {
+                       usb1_vbus-supply = <&reg_usb1_vbus>;
+                       status = "okay";
+               };
+
+               ehci0: usb@01c1a000 {
+                       status = "okay";
+               };
+
+               ehci1: usb@01c1b000 {
+                       status = "okay";
+               };
+
                pio: pinctrl@01c20800 {
+                       led_pins_m9: led_pins@0 {
+                               allwinner,pins = "PH13";
+                               allwinner,function = "gpio_out";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+
                        mmc0_cd_pin_m9: mmc0_cd_pin@0 {
                                allwinner,pins = "PH22";
                                allwinner,function = "gpio_in";
                                allwinner,drive = <0>;
                                allwinner,pull = <1>;
                        };
+
+                       usb1_vbus_pin_m9: usb1_vbus_pin@0 {
+                               allwinner,pins = "PC27";
+                               allwinner,function = "gpio_out";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
                };
 
                uart0: serial@01c28000 {
                        pinctrl-0 = <&uart0_pins_a>;
                        status = "okay";
                };
+
+               gmac: ethernet@01c30000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gmac_pins_mii_a>;
+                       phy = <&phy1>;
+                       phy-mode = "mii";
+                       status = "okay";
+
+                       phy1: ethernet-phy@1 {
+                               reg = <1>;
+                       };
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins_m9>;
+
+               blue {
+                       label = "m9:blue:usr";
+                       gpios = <&pio 7 13 0>;
+               };
+       };
+
+       reg_usb1_vbus: usb1-vbus {
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb1_vbus_pin_m9>;
+               gpio = <&pio 2 27 0>;
+               status = "okay";
        };
 };
index 543f895d18d3c870446f52085095221566ef83a3..529c738039766cd92e94d6d71b5d93fe909f68a6 100644 (file)
@@ -8,18 +8,18 @@
  * licensing only applies to this file, and not this project as a
  * whole.
  *
- *  a) This library is free software; you can redistribute it and/or
+ *  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 library is distributed in the hope that it will be useful,
+ *     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 library; if not, write to the Free
+ *     License along with this file; if not, write to the Free
  *     Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
  *     MA 02110-1301 USA
  *
                };
 
                pll6: clk@01c20028 {
-                       #clock-cells = <0>;
+                       #clock-cells = <1>;
                        compatible = "allwinner,sun6i-a31-pll6-clk";
                        reg = <0x01c20028 0x4>;
                        clocks = <&osc24M>;
-                       clock-output-names = "pll6";
+                       clock-output-names = "pll6", "pll6x2";
                };
 
                cpu: cpu@01c20050 {
                        #clock-cells = <0>;
                        compatible = "allwinner,sun6i-a31-ahb1-mux-clk";
                        reg = <0x01c20054 0x4>;
-                       clocks = <&osc32k>, <&osc24M>, <&axi>, <&pll6>;
+                       clocks = <&osc32k>, <&osc24M>, <&axi>, <&pll6 0>;
                        clock-output-names = "ahb1_mux";
                };
 
                        #clock-cells = <0>;
                        compatible = "allwinner,sun4i-a10-apb1-mux-clk";
                        reg = <0x01c20058 0x4>;
-                       clocks = <&osc32k>, <&osc24M>, <&pll6>, <&pll6>;
+                       clocks = <&osc32k>, <&osc24M>, <&pll6 0>, <&pll6 0>;
                        clock-output-names = "apb2_mux";
                };
 
                        #clock-cells = <0>;
                        compatible = "allwinner,sun4i-a10-mod0-clk";
                        reg = <0x01c20088 0x4>;
-                       clocks = <&osc24M>, <&pll6>;
+                       clocks = <&osc24M>, <&pll6 0>;
                        clock-output-names = "mmc0";
                };
 
                        #clock-cells = <0>;
                        compatible = "allwinner,sun4i-a10-mod0-clk";
                        reg = <0x01c2008c 0x4>;
-                       clocks = <&osc24M>, <&pll6>;
+                       clocks = <&osc24M>, <&pll6 0>;
                        clock-output-names = "mmc1";
                };
 
                        #clock-cells = <0>;
                        compatible = "allwinner,sun4i-a10-mod0-clk";
                        reg = <0x01c20090 0x4>;
-                       clocks = <&osc24M>, <&pll6>;
+                       clocks = <&osc24M>, <&pll6 0>;
                        clock-output-names = "mmc2";
                };
 
                        #clock-cells = <0>;
                        compatible = "allwinner,sun4i-a10-mod0-clk";
                        reg = <0x01c20094 0x4>;
-                       clocks = <&osc24M>, <&pll6>;
+                       clocks = <&osc24M>, <&pll6 0>;
                        clock-output-names = "mmc3";
                };
 
                        #clock-cells = <0>;
                        compatible = "allwinner,sun4i-a10-mod0-clk";
                        reg = <0x01c200a0 0x4>;
-                       clocks = <&osc24M>, <&pll6>;
+                       clocks = <&osc24M>, <&pll6 0>;
                        clock-output-names = "spi0";
                };
 
                        #clock-cells = <0>;
                        compatible = "allwinner,sun4i-a10-mod0-clk";
                        reg = <0x01c200a4 0x4>;
-                       clocks = <&osc24M>, <&pll6>;
+                       clocks = <&osc24M>, <&pll6 0>;
                        clock-output-names = "spi1";
                };
 
                        #clock-cells = <0>;
                        compatible = "allwinner,sun4i-a10-mod0-clk";
                        reg = <0x01c200a8 0x4>;
-                       clocks = <&osc24M>, <&pll6>;
+                       clocks = <&osc24M>, <&pll6 0>;
                        clock-output-names = "spi2";
                };
 
                        #clock-cells = <0>;
                        compatible = "allwinner,sun4i-a10-mod0-clk";
                        reg = <0x01c200ac 0x4>;
-                       clocks = <&osc24M>, <&pll6>;
+                       clocks = <&osc24M>, <&pll6 0>;
                        clock-output-names = "spi3";
                };
 
                        clocks = <&ahb1_gates 6>;
                        resets = <&ahb1_rst 6>;
                        #dma-cells = <1>;
+
+                       /* DMA controller requires AHB1 clocked from PLL6 */
+                       assigned-clocks = <&ahb1_mux>;
+                       assigned-clock-parents = <&pll6 0>;
                };
 
                mmc0: mmc@01c0f000 {
                        ar100: ar100_clk {
                                compatible = "allwinner,sun6i-a31-ar100-clk";
                                #clock-cells = <0>;
-                               clocks = <&osc32k>, <&osc24M>, <&pll6>, <&pll6>;
+                               clocks = <&osc32k>, <&osc24M>, <&pll6 0>, <&pll6 0>;
                                clock-output-names = "ar100";
                        };
 
diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi.dts b/arch/arm/boot/dts/sun7i-a20-bananapi.dts
new file mode 100644 (file)
index 0000000..1cf1214
--- /dev/null
@@ -0,0 +1,214 @@
+/*
+ * Copyright 2014 Hans de Goede <hdegoede@redhat.com>
+ *
+ * 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.
+ *
+ *     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/ "sun7i-a20.dtsi"
+/include/ "sunxi-common-regulators.dtsi"
+
+/ {
+       model = "LeMaker Banana Pi";
+       compatible = "lemaker,bananapi", "allwinner,sun7i-a20";
+
+       soc@01c00000 {
+               spi0: spi@01c05000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&spi0_pins_a>;
+                       status = "okay";
+               };
+
+               mmc0: mmc@01c0f000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_bananapi>;
+                       vmmc-supply = <&reg_vcc3v3>;
+                       bus-width = <4>;
+                       cd-gpios = <&pio 7 10 0>; /* PH10 */
+                       cd-inverted;
+                       status = "okay";
+               };
+
+               usbphy: phy@01c13400 {
+                       usb1_vbus-supply = <&reg_usb1_vbus>;
+                       usb2_vbus-supply = <&reg_usb2_vbus>;
+                       status = "okay";
+               };
+
+               ehci0: usb@01c14000 {
+                       status = "okay";
+               };
+
+               ohci0: usb@01c14400 {
+                       status = "okay";
+               };
+
+               ahci: sata@01c18000 {
+                       status = "okay";
+               };
+
+               ehci1: usb@01c1c000 {
+                       status = "okay";
+               };
+
+               ohci1: usb@01c1c400 {
+                       status = "okay";
+               };
+
+               pinctrl@01c20800 {
+                       mmc0_cd_pin_bananapi: mmc0_cd_pin@0 {
+                               allwinner,pins = "PH10";
+                               allwinner,function = "gpio_in";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <1>;
+                       };
+
+                       gmac_power_pin_bananapi: gmac_power_pin@0 {
+                               allwinner,pins = "PH23";
+                               allwinner,function = "gpio_out";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+
+                       led_pins_bananapi: led_pins@0 {
+                               allwinner,pins = "PH24";
+                               allwinner,function = "gpio_out";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+               };
+
+               ir0: ir@01c21800 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&ir0_pins_a>;
+                       status = "okay";
+               };
+
+               uart0: serial@01c28000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart0_pins_a>;
+                       status = "okay";
+               };
+
+               uart3: serial@01c28c00 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart3_pins_b>;
+                       status = "okay";
+               };
+
+               uart7: serial@01c29c00 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart7_pins_a>;
+                       status = "okay";
+               };
+
+               i2c0: i2c@01c2ac00 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c0_pins_a>;
+                       status = "okay";
+
+                       axp209: pmic@34 {
+                               compatible = "x-powers,axp209";
+                               reg = <0x34>;
+                               interrupt-parent = <&nmi_intc>;
+                               interrupts = <0 8>;
+
+                               interrupt-controller;
+                               #interrupt-cells = <1>;
+                       };
+               };
+
+               i2c2: i2c@01c2b400 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c2_pins_a>;
+                       status = "okay";
+               };
+
+               gmac: ethernet@01c50000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gmac_pins_rgmii_a>;
+                       phy = <&phy1>;
+                       phy-mode = "rgmii";
+                       phy-supply = <&reg_gmac_3v3>;
+                       status = "okay";
+
+                       phy1: ethernet-phy@1 {
+                               reg = <1>;
+                       };
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins_bananapi>;
+
+               green {
+                       label = "bananapi:green:usr";
+                       gpios = <&pio 7 24 0>;
+               };
+       };
+
+       reg_usb1_vbus: usb1-vbus {
+               status = "okay";
+       };
+
+       reg_usb2_vbus: usb2-vbus {
+               status = "okay";
+       };
+
+       reg_gmac_3v3: gmac-3v3 {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&gmac_power_pin_bananapi>;
+               regulator-name = "gmac-3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <100000>;
+               enable-active-high;
+               gpio = <&pio 7 23 0>;
+       };
+};
index a6c1a3c717bcaf94d2115f9e147059da01c7a984..a281d259b9b8ce0218d690ef0ddd9c05bfe0f844 100644 (file)
@@ -40,6 +40,7 @@
                };
 
                usbphy: phy@01c13400 {
+                       usb0_vbus-supply = <&reg_usb0_vbus>;
                        usb1_vbus-supply = <&reg_usb1_vbus>;
                        usb2_vbus-supply = <&reg_usb2_vbus>;
                        status = "okay";
                                allwinner,drive = <0>;
                                allwinner,pull = <0>;
                        };
+
+                       usb0_vbus_pin_a: usb0_vbus_pin@0 {
+                               allwinner,pins = "PH17";
+                               allwinner,function = "gpio_out";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
                };
 
                pwm: pwm@01c20e00 {
                status = "okay";
        };
 
+       reg_usb0_vbus: usb0-vbus {
+               pinctrl-0 = <&usb0_vbus_pin_a>;
+               gpio = <&pio 7 17 0>;
+               status = "okay";
+       };
+
        reg_usb1_vbus: usb1-vbus {
                status = "okay";
        };
index 6a67712d417acdb8dcea56c545875c3dccb54776..f38bb1a6656ca1e600f0a2391c822a094ced6030 100644 (file)
@@ -1,12 +1,48 @@
 /*
  * Copyright 2014 Hans de Goede <hdegoede@redhat.com>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
diff --git a/arch/arm/boot/dts/sun7i-a20-m3.dts b/arch/arm/boot/dts/sun7i-a20-m3.dts
new file mode 100644 (file)
index 0000000..b8e568c
--- /dev/null
@@ -0,0 +1,168 @@
+/*
+ * Copyright 2014 Hans de Goede <hdegoede@redhat.com>
+ *
+ * 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.
+ *
+ *     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/ "sun7i-a20.dtsi"
+/include/ "sunxi-common-regulators.dtsi"
+
+/ {
+       model = "Mele M3";
+       compatible = "mele,m3", "allwinner,sun7i-a20";
+
+       soc@01c00000 {
+               mmc0: mmc@01c0f000 {
+                       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 0>; /* PH1 */
+                       cd-inverted;
+                       status = "okay";
+               };
+
+               mmc2: mmc@01c11000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&mmc2_pins_a>;
+                       vmmc-supply = <&reg_vcc3v3>;
+                       bus-width = <4>;
+                       non-removable;
+                       status = "okay";
+               };
+
+               usbphy: phy@01c13400 {
+                       usb1_vbus-supply = <&reg_usb1_vbus>;
+                       usb2_vbus-supply = <&reg_usb2_vbus>;
+                       status = "okay";
+               };
+
+               ehci0: usb@01c14000 {
+                       status = "okay";
+               };
+
+               ohci0: usb@01c14400 {
+                       status = "okay";
+               };
+
+               ehci1: usb@01c1c000 {
+                       status = "okay";
+               };
+
+               ohci1: usb@01c1c400 {
+                       status = "okay";
+               };
+
+               pinctrl@01c20800 {
+                       led_pins_m3: led_pins@0 {
+                               allwinner,pins = "PH20";
+                               allwinner,function = "gpio_out";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+               };
+
+               ir0: ir@01c21800 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&ir0_pins_a>;
+                       status = "okay";
+               };
+
+               uart0: serial@01c28000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart0_pins_a>;
+                       status = "okay";
+               };
+
+               i2c0: i2c@01c2ac00 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c0_pins_a>;
+                       status = "okay";
+
+                       axp209: pmic@34 {
+                               compatible = "x-powers,axp209";
+                               reg = <0x34>;
+                               interrupt-parent = <&nmi_intc>;
+                               interrupts = <0 8>;
+
+                               interrupt-controller;
+                               #interrupt-cells = <1>;
+                       };
+               };
+
+               gmac: ethernet@01c50000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gmac_pins_mii_a>;
+                       phy = <&phy1>;
+                       phy-mode = "mii";
+                       status = "okay";
+
+                       phy1: ethernet-phy@1 {
+                               reg = <1>;
+                       };
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins_m3>;
+
+               blue {
+                       label = "m3:blue:usr";
+                       gpios = <&pio 7 20 0>;
+               };
+       };
+
+       reg_usb1_vbus: usb1-vbus {
+               status = "okay";
+       };
+
+       reg_usb2_vbus: usb2-vbus {
+               status = "okay";
+       };
+};
index 1eb8175959a60b9e07434e8de8830aa7b35f644b..3f3ff9693992b0effcf0bdf6d60939c2476db2f7 100644 (file)
@@ -4,12 +4,48 @@
  * Copyright 2014 - Hans de Goede <hdegoede@redhat.com>
  * Copyright (c) 2014 FUKAUMI Naoki <naobsd@gmail.com>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
new file mode 100644 (file)
index 0000000..ed364d5
--- /dev/null
@@ -0,0 +1,228 @@
+/*
+ * Copyright 2014 - Iain Paton <ipaton0@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/ "sun7i-a20.dtsi"
+/include/ "sunxi-common-regulators.dtsi"
+
+/ {
+       model = "Olimex A20-OLinuXino-LIME2";
+       compatible = "olimex,a20-olinuxino-lime2", "allwinner,sun7i-a20";
+
+       soc@01c00000 {
+               mmc0: mmc@01c0f000 {
+                       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 0>; /* PH1 */
+                       cd-inverted;
+                       status = "okay";
+               };
+
+               usbphy: phy@01c13400 {
+                       usb1_vbus-supply = <&reg_usb1_vbus>;
+                       usb2_vbus-supply = <&reg_usb2_vbus>;
+                       status = "okay";
+               };
+
+               ehci0: usb@01c14000 {
+                       status = "okay";
+               };
+
+               ohci0: usb@01c14400 {
+                       status = "okay";
+               };
+
+               ahci: sata@01c18000 {
+                       target-supply = <&reg_ahci_5v>;
+                       status = "okay";
+               };
+
+               ehci1: usb@01c1c000 {
+                       status = "okay";
+               };
+
+               ohci1: usb@01c1c400 {
+                       status = "okay";
+               };
+
+               pinctrl@01c20800 {
+                       ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 {
+                               allwinner,pins = "PC3";
+                               allwinner,function = "gpio_out";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+
+                       led_pins_olinuxinolime: led_pins@0 {
+                               allwinner,pins = "PH2";
+                               allwinner,function = "gpio_out";
+                               allwinner,drive = <1>;
+                               allwinner,pull = <0>;
+                       };
+               };
+
+               uart0: serial@01c28000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart0_pins_a>;
+                       status = "okay";
+               };
+
+               i2c0: i2c@01c2ac00 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c0_pins_a>;
+                       status = "okay";
+
+                       axp209: pmic@34 {
+                               compatible = "x-powers,axp209";
+                               reg = <0x34>;
+                               interrupt-parent = <&nmi_intc>;
+                               interrupts = <0 8>;
+
+                               interrupt-controller;
+                               #interrupt-cells = <1>;
+
+                               acin-supply = <&reg_axp_ipsout>;
+                               vin2-supply = <&reg_axp_ipsout>;
+                               vin3-supply = <&reg_axp_ipsout>;
+                               ldo24in-supply = <&reg_axp_ipsout>;
+                               ldo3in-supply = <&reg_axp_ipsout>;
+
+                               regulators {
+                                       vdd_rtc: ldo1 {
+                                               regulator-min-microvolt = <1300000>;
+                                               regulator-max-microvolt = <1300000>;
+                                               regulator-always-on;
+                                       };
+
+                                       avcc: ldo2 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <3300000>;
+                                               regulator-always-on;
+                                       };
+
+                                       vcc_csi0: ldo3 {
+                                               regulator-min-microvolt = <700000>;
+                                               regulator-max-microvolt = <3500000>;
+                                               regulator-always-on;
+                                       };
+
+                                       vcc_csi1: ldo4 {
+                                               regulator-min-microvolt = <1250000>;
+                                               regulator-max-microvolt = <3300000>;
+                                               regulator-always-on;
+                                       };
+
+                                       vdd_cpu: dcdc2 {
+                                               regulator-min-microvolt = <700000>;
+                                               regulator-max-microvolt = <2275000>;
+                                               regulator-always-on;
+                                       };
+
+                                       vdd_int: dcdc3 {
+                                               regulator-min-microvolt = <700000>;
+                                               regulator-max-microvolt = <3500000>;
+                                               regulator-always-on;
+                                       };
+                               };
+                       };
+               };
+
+               i2c1: i2c@01c2b000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c1_pins_a>;
+                       status = "okay";
+               };
+
+               gmac: ethernet@01c50000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gmac_pins_rgmii_a>;
+                       phy = <&phy1>;
+                       phy-mode = "rgmii";
+                       status = "okay";
+
+                       phy1: ethernet-phy@1 {
+                               reg = <1>;
+                       };
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins_olinuxinolime>;
+
+               green {
+                       label = "a20-olinuxino-lime2:green:usr";
+                       gpios = <&pio 7 2 0>;
+                       default-state = "on";
+               };
+       };
+
+       reg_ahci_5v: ahci-5v {
+               pinctrl-0 = <&ahci_pwr_pin_olinuxinolime>;
+               gpio = <&pio 2 3 0>;
+               status = "okay";
+       };
+
+       reg_usb1_vbus: usb1-vbus {
+               status = "okay";
+       };
+
+       reg_usb2_vbus: usb2-vbus {
+               status = "okay";
+       };
+
+       reg_axp_ipsout: axp_ipsout {
+               compatible = "regulator-fixed";
+               regulator-name = "axp-ipsout";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+};
index 046dfc0d45d8ebb21d8a7dd050fdb500dbbf6d35..8dca49b2477bc7737735a33c206605ee1f1d2e36 100644 (file)
@@ -2,12 +2,48 @@
  * Copyright 2014 Zoltan HERPAI
  * Zoltan HERPAI <wigyori@uid0.hu>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
index 82097c905c48cb5e99387db684c113fb6d37cb94..d7135f5282bc7c2d217e44e6af97b20176eeba94 100644 (file)
@@ -8,18 +8,18 @@
  * licensing only applies to this file, and not this project as a
  * whole.
  *
- *  a) This library is free software; you can redistribute it and/or
+ *  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 library is distributed in the hope that it will be useful,
+ *     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 library; if not, write to the Free
+ *     License along with this file; if not, write to the Free
  *     Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
  *     MA 02110-1301 USA
  *
                        reg-names = "phy_ctrl", "pmu1", "pmu2";
                        clocks = <&usb_clk 8>;
                        clock-names = "usb_phy";
-                       resets = <&usb_clk 1>, <&usb_clk 2>;
-                       reset-names = "usb1_reset", "usb2_reset";
+                       resets = <&usb_clk 0>, <&usb_clk 1>, <&usb_clk 2>;
+                       reset-names = "usb0_reset", "usb1_reset", "usb2_reset";
                        status = "disabled";
                };
 
                                allwinner,pull = <0>;
                        };
 
+                       uart3_pins_b: uart3@1 {
+                               allwinner,pins = "PH0", "PH1";
+                               allwinner,function = "uart3";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+
                        uart4_pins_a: uart4@0 {
                                allwinner,pins = "PG10", "PG11";
                                allwinner,function = "uart4";
                                allwinner,pull = <0>;
                        };
 
+                       spi0_pins_a: spi0@0 {
+                               allwinner,pins = "PI10", "PI11", "PI12", "PI13", "PI14";
+                               allwinner,function = "spi0";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+
                        spi1_pins_a: spi1@0 {
                                allwinner,pins = "PI16", "PI17", "PI18", "PI19";
                                allwinner,function = "spi1";
                                allwinner,pull = <1>;
                        };
 
+                       mmc2_pins_a: mmc2@0 {
+                               allwinner,pins = "PC6","PC7","PC8","PC9","PC10","PC11";
+                               allwinner,function = "mmc2";
+                               allwinner,drive = <2>;
+                               allwinner,pull = <1>;
+                       };
+
                        mmc3_pins_a: mmc3@0 {
                                allwinner,pins = "PI4","PI5","PI6","PI7","PI8","PI9";
                                allwinner,function = "mmc3";
index e9b8cca8dcc1cc7a9c61c9fe6a3450c72241849b..7f2117ce6985b1de46cfd2fbfbc42fb76e19a1d7 100644 (file)
@@ -3,12 +3,48 @@
  *
  * Chen-Yu Tsai <wens@csie.org>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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/;
index 6146ef15efbe31849eedd9ca1efa9de1d99935e1..6086adbf9d749adf1fb2040fb76675e84292bab9 100644 (file)
@@ -8,18 +8,18 @@
  * licensing only applies to this file, and not this project as a
  * whole.
  *
- *  a) This library is free software; you can redistribute it and/or
+ *  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 library is distributed in the hope that it will be useful,
+ *     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 library; if not, write to the Free
+ *     License along with this file; if not, write to the Free
  *     Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
  *     MA 02110-1301 USA
  *
diff --git a/arch/arm/boot/dts/sun9i-a80-optimus.dts b/arch/arm/boot/dts/sun9i-a80-optimus.dts
new file mode 100644 (file)
index 0000000..506948f
--- /dev/null
@@ -0,0 +1,119 @@
+/*
+ * Copyright 2014 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.
+ *
+ *     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/ "sun9i-a80.dtsi"
+
+/ {
+       model = "Merrii A80 Optimus Board";
+       compatible = "merrii,a80-optimus", "allwinner,sun9i-a80";
+
+       chosen {
+               bootargs = "earlyprintk console=ttyS0,115200";
+       };
+
+       soc {
+               pio: pinctrl@06000800 {
+                       i2c3_pins_a: i2c3@0 {
+                               /* Enable internal pull-up */
+                               allwinner,pull = <1>;
+                       };
+
+                       led_pins_optimus: led-pins@0 {
+                               allwinner,pins = "PH0", "PH1";
+                               allwinner,function = "gpio_out";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+
+                       uart4_pins_a: uart4@0 {
+                               /* Enable internal pull-up */
+                               allwinner,pull = <1>;
+                       };
+               };
+
+               uart0: serial@07000000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart0_pins_a>;
+                       status = "okay";
+               };
+
+               uart4: serial@07001000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart4_pins_a>;
+                       status = "okay";
+               };
+
+               i2c3: i2c@07003400 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c3_pins_a>;
+                       status = "okay";
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins_optimus>;
+
+               /* The LED names match those found on the board */
+
+               led2 {
+                       label = "optimus:led2:usr";
+                       gpios = <&pio 7 1 0>;
+               };
+
+               /* led3 is on PM15, in R_PIO */
+
+               led4 {
+                       label = "optimus:led4:usr";
+                       gpios = <&pio 7 0 0>;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/sun9i-a80.dtsi b/arch/arm/boot/dts/sun9i-a80.dtsi
new file mode 100644 (file)
index 0000000..494714f
--- /dev/null
@@ -0,0 +1,514 @@
+/*
+ * Copyright 2014 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.
+ *
+ *     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.
+ */
+
+/include/ "skeleton64.dtsi"
+
+/ {
+       interrupt-parent = <&gic>;
+
+       aliases {
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+               serial3 = &uart3;
+               serial4 = &uart4;
+               serial5 = &uart5;
+               serial6 = &r_uart;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: cpu@0 {
+                       compatible = "arm,cortex-a7";
+                       device_type = "cpu";
+                       reg = <0x0>;
+               };
+
+               cpu1: cpu@1 {
+                       compatible = "arm,cortex-a7";
+                       device_type = "cpu";
+                       reg = <0x1>;
+               };
+
+               cpu2: cpu@2 {
+                       compatible = "arm,cortex-a7";
+                       device_type = "cpu";
+                       reg = <0x2>;
+               };
+
+               cpu3: cpu@3 {
+                       compatible = "arm,cortex-a7";
+                       device_type = "cpu";
+                       reg = <0x3>;
+               };
+
+               cpu4: cpu@100 {
+                       compatible = "arm,cortex-a15";
+                       device_type = "cpu";
+                       reg = <0x100>;
+               };
+
+               cpu5: cpu@101 {
+                       compatible = "arm,cortex-a15";
+                       device_type = "cpu";
+                       reg = <0x101>;
+               };
+
+               cpu6: cpu@102 {
+                       compatible = "arm,cortex-a15";
+                       device_type = "cpu";
+                       reg = <0x102>;
+               };
+
+               cpu7: cpu@103 {
+                       compatible = "arm,cortex-a15";
+                       device_type = "cpu";
+                       reg = <0x103>;
+               };
+       };
+
+       memory {
+               /* 8GB max. with LPAE */
+               reg = <0 0x20000000 0x02 0>;
+       };
+
+       clocks {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               /*
+                * map 64 bit address range down to 32 bits,
+                * as the peripherals are all under 512MB.
+                */
+               ranges = <0 0 0 0x20000000>;
+
+               osc24M: osc24M_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <24000000>;
+                       clock-output-names = "osc24M";
+               };
+
+               osc32k: osc32k_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <32768>;
+                       clock-output-names = "osc32k";
+               };
+
+               pll4: clk@0600000c {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun9i-a80-pll4-clk";
+                       reg = <0x0600000c 0x4>;
+                       clocks = <&osc24M>;
+                       clock-output-names = "pll4";
+               };
+
+               pll12: clk@0600002c {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun9i-a80-pll4-clk";
+                       reg = <0x0600002c 0x4>;
+                       clocks = <&osc24M>;
+                       clock-output-names = "pll12";
+               };
+
+               gt_clk: clk@0600005c {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun9i-a80-gt-clk";
+                       reg = <0x0600005c 0x4>;
+                       clocks = <&osc24M>, <&pll4>, <&pll12>, <&pll12>;
+                       clock-output-names = "gt";
+               };
+
+               ahb0: clk@06000060 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun9i-a80-ahb-clk";
+                       reg = <0x06000060 0x4>;
+                       clocks = <&gt_clk>, <&pll4>, <&pll12>, <&pll12>;
+                       clock-output-names = "ahb0";
+               };
+
+               ahb1: clk@06000064 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun9i-a80-ahb-clk";
+                       reg = <0x06000064 0x4>;
+                       clocks = <&gt_clk>, <&pll4>, <&pll12>, <&pll12>;
+                       clock-output-names = "ahb1";
+               };
+
+               ahb2: clk@06000068 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun9i-a80-ahb-clk";
+                       reg = <0x06000068 0x4>;
+                       clocks = <&gt_clk>, <&pll4>, <&pll12>, <&pll12>;
+                       clock-output-names = "ahb2";
+               };
+
+               apb0: clk@06000070 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun9i-a80-apb0-clk";
+                       reg = <0x06000070 0x4>;
+                       clocks = <&osc24M>, <&pll4>;
+                       clock-output-names = "apb0";
+               };
+
+               apb1: clk@06000074 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun9i-a80-apb1-clk";
+                       reg = <0x06000074 0x4>;
+                       clocks = <&osc24M>, <&pll4>;
+                       clock-output-names = "apb1";
+               };
+
+               cci400_clk: clk@06000078 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun9i-a80-gt-clk";
+                       reg = <0x06000078 0x4>;
+                       clocks = <&osc24M>, <&pll4>, <&pll12>, <&pll12>;
+                       clock-output-names = "cci400";
+               };
+
+               ahb0_gates: clk@06000580 {
+                       #clock-cells = <1>;
+                       compatible = "allwinner,sun9i-a80-ahb0-gates-clk";
+                       reg = <0x06000580 0x4>;
+                       clocks = <&ahb0>;
+                       clock-output-names = "ahb0_fd", "ahb0_ve", "ahb0_gpu",
+                                       "ahb0_ss", "ahb0_sd", "ahb0_nand1",
+                                       "ahb0_nand0", "ahb0_sdram",
+                                       "ahb0_mipi_hsi", "ahb0_sata", "ahb0_ts",
+                                       "ahb0_spi0","ahb0_spi1", "ahb0_spi2",
+                                       "ahb0_spi3";
+               };
+
+               ahb1_gates: clk@06000584 {
+                       #clock-cells = <1>;
+                       compatible = "allwinner,sun9i-a80-ahb1-gates-clk";
+                       reg = <0x06000584 0x4>;
+                       clocks = <&ahb1>;
+                       clock-output-names = "ahb1_usbotg", "ahb1_usbhci",
+                                       "ahb1_gmac", "ahb1_msgbox",
+                                       "ahb1_spinlock", "ahb1_hstimer",
+                                       "ahb1_dma";
+               };
+
+               ahb2_gates: clk@06000588 {
+                       #clock-cells = <1>;
+                       compatible = "allwinner,sun9i-a80-ahb2-gates-clk";
+                       reg = <0x06000588 0x4>;
+                       clocks = <&ahb2>;
+                       clock-output-names = "ahb2_lcd0", "ahb2_lcd1",
+                                       "ahb2_edp", "ahb2_csi", "ahb2_hdmi",
+                                       "ahb2_de", "ahb2_mp", "ahb2_mipi_dsi";
+               };
+
+               apb0_gates: clk@06000590 {
+                       #clock-cells = <1>;
+                       compatible = "allwinner,sun9i-a80-apb0-gates-clk";
+                       reg = <0x06000590 0x4>;
+                       clocks = <&apb0>;
+                       clock-output-names = "apb0_spdif", "apb0_pio",
+                                       "apb0_ac97", "apb0_i2s0", "apb0_i2s1",
+                                       "apb0_lradc", "apb0_gpadc", "apb0_twd",
+                                       "apb0_cirtx";
+               };
+
+               apb1_gates: clk@06000594 {
+                       #clock-cells = <1>;
+                       compatible = "allwinner,sun9i-a80-apb1-gates-clk";
+                       reg = <0x06000594 0x4>;
+                       clocks = <&apb1>;
+                       clock-output-names = "apb1_i2c0", "apb1_i2c1",
+                                       "apb1_i2c2", "apb1_i2c3", "apb1_i2c4",
+                                       "apb1_uart0", "apb1_uart1",
+                                       "apb1_uart2", "apb1_uart3",
+                                       "apb1_uart4", "apb1_uart5";
+               };
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               /*
+                * map 64 bit address range down to 32 bits,
+                * as the peripherals are all under 512MB.
+                */
+               ranges = <0 0 0 0x20000000>;
+
+               gic: interrupt-controller@01c41000 {
+                       compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
+                       reg = <0x01c41000 0x1000>,
+                             <0x01c42000 0x1000>,
+                             <0x01c44000 0x2000>,
+                             <0x01c46000 0x2000>;
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+                       interrupts = <1 9 0xf04>;
+               };
+
+               ahb0_resets: reset@060005a0 {
+                       #reset-cells = <1>;
+                       compatible = "allwinner,sun6i-a31-clock-reset";
+                       reg = <0x060005a0 0x4>;
+               };
+
+               ahb1_resets: reset@060005a4 {
+                       #reset-cells = <1>;
+                       compatible = "allwinner,sun6i-a31-clock-reset";
+                       reg = <0x060005a4 0x4>;
+               };
+
+               ahb2_resets: reset@060005a8 {
+                       #reset-cells = <1>;
+                       compatible = "allwinner,sun6i-a31-clock-reset";
+                       reg = <0x060005a8 0x4>;
+               };
+
+               apb0_resets: reset@060005b0 {
+                       #reset-cells = <1>;
+                       compatible = "allwinner,sun6i-a31-clock-reset";
+                       reg = <0x060005b0 0x4>;
+               };
+
+               apb1_resets: reset@060005b4 {
+                       #reset-cells = <1>;
+                       compatible = "allwinner,sun6i-a31-clock-reset";
+                       reg = <0x060005b4 0x4>;
+               };
+
+               timer@06000c00 {
+                       compatible = "allwinner,sun4i-a10-timer";
+                       reg = <0x06000c00 0xa0>;
+                       interrupts = <0 18 4>,
+                                    <0 19 4>,
+                                    <0 20 4>,
+                                    <0 21 4>,
+                                    <0 22 4>,
+                                    <0 23 4>;
+
+                       clocks = <&osc24M>;
+               };
+
+               pio: pinctrl@06000800 {
+                       compatible = "allwinner,sun9i-a80-pinctrl";
+                       reg = <0x06000800 0x400>;
+                       interrupts = <0 11 4>,
+                                    <0 15 4>,
+                                    <0 16 4>,
+                                    <0 17 4>,
+                                    <0 120 4>;
+                       clocks = <&apb0_gates 5>;
+                       gpio-controller;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       #size-cells = <0>;
+                       #gpio-cells = <3>;
+
+                       i2c3_pins_a: i2c3@0 {
+                               allwinner,pins = "PG10", "PG11";
+                               allwinner,function = "i2c3";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+
+                       uart0_pins_a: uart0@0 {
+                               allwinner,pins = "PH12", "PH13";
+                               allwinner,function = "uart0";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+
+                       uart4_pins_a: uart4@0 {
+                               allwinner,pins = "PG12", "PG13", "PG14", "PG15";
+                               allwinner,function = "uart4";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+               };
+
+               uart0: serial@07000000 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x07000000 0x400>;
+                       interrupts = <0 0 4>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clocks = <&apb1_gates 16>;
+                       resets = <&apb1_resets 16>;
+                       status = "disabled";
+               };
+
+               uart1: serial@07000400 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x07000400 0x400>;
+                       interrupts = <0 1 4>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clocks = <&apb1_gates 17>;
+                       resets = <&apb1_resets 17>;
+                       status = "disabled";
+               };
+
+               uart2: serial@07000800 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x07000800 0x400>;
+                       interrupts = <0 2 4>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clocks = <&apb1_gates 18>;
+                       resets = <&apb1_resets 18>;
+                       status = "disabled";
+               };
+
+               uart3: serial@07000c00 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x07000c00 0x400>;
+                       interrupts = <0 3 4>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clocks = <&apb1_gates 19>;
+                       resets = <&apb1_resets 19>;
+                       status = "disabled";
+               };
+
+               uart4: serial@07001000 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x07001000 0x400>;
+                       interrupts = <0 4 4>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clocks = <&apb1_gates 20>;
+                       resets = <&apb1_resets 20>;
+                       status = "disabled";
+               };
+
+               uart5: serial@07001400 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x07001400 0x400>;
+                       interrupts = <0 5 4>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clocks = <&apb1_gates 21>;
+                       resets = <&apb1_resets 21>;
+                       status = "disabled";
+               };
+
+               i2c0: i2c@07002800 {
+                       compatible = "allwinner,sun6i-a31-i2c";
+                       reg = <0x07002800 0x400>;
+                       interrupts = <0 6 4>;
+                       clocks = <&apb1_gates 0>;
+                       resets = <&apb1_resets 0>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c1: i2c@07002c00 {
+                       compatible = "allwinner,sun6i-a31-i2c";
+                       reg = <0x07002c00 0x400>;
+                       interrupts = <0 7 4>;
+                       clocks = <&apb1_gates 1>;
+                       resets = <&apb1_resets 1>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c2: i2c@07003000 {
+                       compatible = "allwinner,sun6i-a31-i2c";
+                       reg = <0x07003000 0x400>;
+                       interrupts = <0 8 4>;
+                       clocks = <&apb1_gates 2>;
+                       resets = <&apb1_resets 2>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c3: i2c@07003400 {
+                       compatible = "allwinner,sun6i-a31-i2c";
+                       reg = <0x07003400 0x400>;
+                       interrupts = <0 9 4>;
+                       clocks = <&apb1_gates 3>;
+                       resets = <&apb1_resets 3>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c4: i2c@07003800 {
+                       compatible = "allwinner,sun6i-a31-i2c";
+                       reg = <0x07003800 0x400>;
+                       interrupts = <0 10 4>;
+                       clocks = <&apb1_gates 4>;
+                       resets = <&apb1_resets 4>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               r_wdt: watchdog@08001000 {
+                       compatible = "allwinner,sun6i-a31-wdt";
+                       reg = <0x08001000 0x20>;
+                       interrupts = <0 36 4>;
+               };
+
+               r_uart: serial@08002800 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x08002800 0x400>;
+                       interrupts = <0 38 4>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clocks = <&osc24M>;
+                       status = "disabled";
+               };
+       };
+};
index c9c5b10e03eb11dbff0c8b40bb308e8764572777..d8876634f965e47e99e6554d0fccca2c88f4afc4 100644 (file)
@@ -3,12 +3,48 @@
  *
  * Copyright 2014 - Hans de Goede <hdegoede@redhat.com>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * 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.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  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.
  */
 
 / {
                                allwinner,pull = <0>;
                        };
 
+                       usb0_vbus_pin_a: usb0_vbus_pin@0 {
+                               allwinner,pins = "PB9";
+                               allwinner,function = "gpio_out";
+                               allwinner,drive = <0>;
+                               allwinner,pull = <0>;
+                       };
+
                        usb1_vbus_pin_a: usb1_vbus_pin@0 {
                                allwinner,pins = "PH6";
                                allwinner,function = "gpio_out";
                regulator-name = "ahci-5v";
                regulator-min-microvolt = <5000000>;
                regulator-max-microvolt = <5000000>;
+               regulator-boot-on;
                enable-active-high;
                gpio = <&pio 1 8 0>;
                status = "disabled";
        };
 
+       reg_usb0_vbus: usb0-vbus {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb0_vbus_pin_a>;
+               regulator-name = "usb0-vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+               gpio = <&pio 1 9 0>;
+               status = "disabled";
+       };
+
        reg_usb1_vbus: usb1-vbus {
                compatible = "regulator-fixed";
                pinctrl-names = "default";
index 20637954624425795453cc78699e674276de5430..dcc6c75553a467878b0e7790b4e76c445fce8d79 100644 (file)
 
                /* ALS and Proximity sensor */
                isl29028@44 {
-                       compatible = "isil,isl29028";
+                       compatible = "isl,isl29028";
                        reg = <0x44>;
                        interrupt-parent = <&gpio>;
                        interrupts = <TEGRA_GPIO(L, 0) IRQ_TYPE_LEVEL_HIGH>;
index 263ae3869e32c5f9ecf8bc2f2fd63b8ce8291eda..7d2ad30d9e705c4e9c18865285292aa119fe7ccf 100644 (file)
@@ -20,7 +20,6 @@ CONFIG_PREEMPT=y
 CONFIG_AEABI=y
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_FPE_NWFPE=y
 CONFIG_NET=y
 CONFIG_PACKET=y
 CONFIG_UNIX=y
@@ -57,14 +56,12 @@ CONFIG_MTD_NAND_FSMC=y
 CONFIG_MTD_ONENAND=y
 CONFIG_MTD_ONENAND_VERIFY_WRITE=y
 CONFIG_MTD_ONENAND_GENERIC=y
-CONFIG_PROC_DEVICETREE=y
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_CRYPTOLOOP=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_SG=y
-CONFIG_SCSI_MULTI_LUN=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
 CONFIG_SCSI_SCAN_ASYNC=y
@@ -83,21 +80,21 @@ CONFIG_PPP_SYNC_TTY=m
 CONFIG_INPUT_EVDEV=y
 # CONFIG_KEYBOARD_ATKBD is not set
 CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_STMPE=y
 # CONFIG_MOUSE_PS2 is not set
 # CONFIG_SERIO is not set
 # CONFIG_LEGACY_PTYS is not set
 CONFIG_SERIAL_AMBA_PL011=y
 CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
 CONFIG_HW_RANDOM=y
-CONFIG_HW_RANDOM_NOMADIK=y
 CONFIG_I2C_CHARDEV=y
 CONFIG_I2C_GPIO=y
-CONFIG_I2C_NOMADIK=y
 CONFIG_DEBUG_GPIO=y
+CONFIG_GPIO_STMPE=y
 # CONFIG_HWMON is not set
+CONFIG_MFD_STMPE=y
 CONFIG_REGULATOR=y
 CONFIG_MMC=y
-CONFIG_MMC_UNSAFE_RESUME=y
 # CONFIG_MMC_BLOCK_BOUNCE is not set
 CONFIG_MMC_ARMMMCI=y
 CONFIG_NEW_LEDS=y
@@ -125,12 +122,12 @@ CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ASCII=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_ISO8859_15=y
+CONFIG_DEBUG_INFO=y
 # CONFIG_ENABLE_MUST_CHECK is not set
 CONFIG_DEBUG_FS=y
 # CONFIG_SCHED_DEBUG is not set
 # CONFIG_DEBUG_PREEMPT is not set
 # CONFIG_DEBUG_BUGVERBOSE is not set
-CONFIG_DEBUG_INFO=y
 CONFIG_CRYPTO_MD5=y
 CONFIG_CRYPTO_SHA1=y
 CONFIG_CRYPTO_DES=y
index f2acf075350df967285aa1bcf76d982baf0d2c1f..a9549005097e035271ca34fae7a6a71caffdf956 100644 (file)
@@ -19,6 +19,9 @@
 
 static const char * const mediatek_board_dt_compat[] = {
        "mediatek,mt6589",
+       "mediatek,mt6592",
+       "mediatek,mt8127",
+       "mediatek,mt8135",
        NULL,
 };
 
index 9116ca476d7ce391b00a76bccac239c2eaef838b..9bda46f1fab7315c0b1bb7a47ea803ae68222f9b 100644 (file)
@@ -144,6 +144,7 @@ static int __init cpu8815_mmcsd_init(void)
 device_initcall(cpu8815_mmcsd_init);
 
 static const char * cpu8815_board_compat[] = {
+       "st,nomadik-nhk-15",
        "calaosystems,usb-s8815",
        NULL,
 };
index cec9d6c6442c80b03d3d6954c2c3feb65a62176f..3d7eee1d3cfa7c2060b027141847c03eb57a2fed 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/of_platform.h>
+#include <linux/ti_wilink_st.h>
 #include <linux/wl12xx.h>
 
 #include <linux/platform_data/pinctrl-single.h>
@@ -130,17 +131,45 @@ static void __init omap3_sbc_t3730_legacy_init(void)
 {
        omap3_sbc_t3x_usb_hub_init(167, "sb-t35 usb hub");
        legacy_init_wl12xx(WL12XX_REFCLOCK_38, 0, 136);
-       omap_ads7846_init(1, 57, 0, NULL);
 }
 
 static void __init omap3_sbc_t3530_legacy_init(void)
 {
        omap3_sbc_t3x_usb_hub_init(167, "sb-t35 usb hub");
-       omap_ads7846_init(1, 57, 0, NULL);
 }
 
-static void __init omap3_igep0020_legacy_init(void)
+struct ti_st_plat_data wilink_pdata = {
+       .nshutdown_gpio = 137,
+       .dev_name = "/dev/ttyO1",
+       .flow_cntrl = 1,
+       .baud_rate = 300000,
+};
+
+static struct platform_device wl18xx_device = {
+       .name   = "kim",
+       .id     = -1,
+       .dev    = {
+               .platform_data = &wilink_pdata,
+       }
+};
+
+static struct platform_device btwilink_device = {
+       .name   = "btwilink",
+       .id     = -1,
+};
+
+static void __init omap3_igep0020_rev_f_legacy_init(void)
+{
+       legacy_init_wl12xx(0, 0, 177);
+       platform_device_register(&wl18xx_device);
+       platform_device_register(&btwilink_device);
+}
+
+static void __init omap3_igep0030_rev_g_legacy_init(void)
 {
+       legacy_init_wl12xx(0, 0, 136);
+       platform_device_register(&wl18xx_device);
+       platform_device_register(&btwilink_device);
 }
 
 static void __init omap3_evm_legacy_init(void)
@@ -218,7 +247,6 @@ static void __init omap3_sbc_t3517_legacy_init(void)
        hsmmc2_internal_input_clk();
        omap3_sbc_t3517_wifi_init();
        legacy_init_wl12xx(WL12XX_REFCLOCK_38, 0, 145);
-       omap_ads7846_init(1, 57, 0, NULL);
 }
 
 static void __init am3517_evm_legacy_init(void)
@@ -390,7 +418,8 @@ static struct pdata_init pdata_quirks[] __initdata = {
        { "nokia,omap3-n900", nokia_n900_legacy_init, },
        { "nokia,omap3-n9", hsmmc2_internal_input_clk, },
        { "nokia,omap3-n950", hsmmc2_internal_input_clk, },
-       { "isee,omap3-igep0020", omap3_igep0020_legacy_init, },
+       { "isee,omap3-igep0020-rev-f", omap3_igep0020_rev_f_legacy_init, },
+       { "isee,omap3-igep0030-rev-g", omap3_igep0030_rev_g_legacy_init, },
        { "ti,omap3-evm-37xx", omap3_evm_legacy_init, },
        { "ti,omap3-zoom3", omap3_zoom_legacy_init, },
        { "ti,am3517-evm", am3517_evm_legacy_init, },
index 9db2029aa6321a99fe8948176f41bcf02fdac529..565925f37dc5d4242cc9816479775325e040a387 100644 (file)
@@ -1,6 +1,19 @@
 menu "RealView platform type"
        depends on ARCH_REALVIEW
 
+config REALVIEW_DT
+       bool "Support RealView(R) Device Tree based boot"
+       select ARM_GIC
+       select MFD_SYSCON
+       select POWER_RESET
+       select POWER_RESET_VERSATILE
+       select POWER_SUPPLY
+       select SOC_REALVIEW
+       select USE_OF
+       help
+         Include support for booting the ARM(R) RealView(R) evaluation
+         boards using a device tree machine description.
+
 config MACH_REALVIEW_EB
        bool "Support RealView(R) Emulation Baseboard"
        select ARM_GIC
index 541fa4c109ef0e800869d8640affd82ec7fe0442..e07fdf7ae8a7e61948f268942e4cc5f01238ec81 100644 (file)
@@ -3,6 +3,7 @@
 #
 
 obj-y                                  := core.o
+obj-$(CONFIG_REALVIEW_DT)              += realview-dt.o
 obj-$(CONFIG_MACH_REALVIEW_EB)         += realview_eb.o
 obj-$(CONFIG_MACH_REALVIEW_PB11MP)     += realview_pb11mp.o
 obj-$(CONFIG_MACH_REALVIEW_PB1176)     += realview_pb1176.o
diff --git a/arch/arm/mach-realview/realview-dt.c b/arch/arm/mach-realview/realview-dt.c
new file mode 100644 (file)
index 0000000..cc28b89
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2014 Linaro Ltd.
+ *
+ * Author: Linus Walleij <linus.walleij@linaro.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2, as
+ * published by the Free Software Foundation.
+ *
+ */
+#include <linux/of_platform.h>
+#include <asm/mach/arch.h>
+#include <asm/hardware/cache-l2x0.h>
+#include "core.h"
+
+static const char *realview_dt_platform_compat[] __initconst = {
+       "arm,realview-eb",
+       "arm,realview-pb1176",
+       "arm,realview-pb11mp",
+       "arm,realview-pba8",
+       "arm,realview-pbx",
+       NULL,
+};
+
+DT_MACHINE_START(REALVIEW_DT, "ARM RealView Machine (Device Tree Support)")
+#ifdef CONFIG_ZONE_DMA
+       .dma_zone_size  = SZ_256M,
+#endif
+       .dt_compat      = realview_dt_platform_compat,
+       .l2c_aux_val = 0x0,
+       .l2c_aux_mask = ~0x0,
+MACHINE_END
index a6503d8c77de07c76288de39d6c4ede94db91090..3b68370b03a09ad1fa64e7aadc1acf7396f17c22 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include <linux/gpio.h>
@@ -48,7 +44,6 @@ static void __init ape6evm_add_standard_devices(void)
        clk_put(parent);
        clk_put(mp);
 
-       r8a73a4_add_dt_devices();
        of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
 }
 
index b222f68d55b7251ef2d8da0e2fcd50005fdfdef4..66f67816a844623977a4595ef23642ed381b3549 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include <linux/gpio.h>
index e709835344038a5a1fbace09bcf68d554c27aa8b..0e912aff53ded12a956d8e190f5e0fb130d767ab 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
  */
 
 #include <linux/clk.h>
index 79c47847f2004d5921d3061ff7a73f120a1b4ce3..d649ade4a202a2794abb107fd5b252047b5958c9 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include <linux/of_platform.h>
index 1cf2c75dacfb49b94c5a26c03d6edb15c064baf1..f27b5a833bf0bb966a7046ae18a64f3f306f3134 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include <linux/mfd/tmio.h>
index 46aa540133d6b81cb05053ffaab7a1a28aa21553..451ba624ce6e343d023ddfb5595624484cfeb781 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-#include <linux/dma-mapping.h>
 #include <linux/kernel.h>
 #include <linux/of_platform.h>
-#include <linux/platform_data/rcar-du.h>
 
 #include <asm/mach/arch.h>
 
-#include "clock.h"
 #include "common.h"
-#include "irqs.h"
 #include "r8a7791.h"
 #include "rcar-gen2.h"
 
-/* DU */
-static struct rcar_du_encoder_data koelsch_du_encoders[] = {
-       {
-               .type = RCAR_DU_ENCODER_NONE,
-               .output = RCAR_DU_OUTPUT_LVDS0,
-               .connector.lvds.panel = {
-                       .width_mm = 210,
-                       .height_mm = 158,
-                       .mode = {
-                               .pixelclock = 65000000,
-                               .hactive = 1024,
-                               .hfront_porch = 20,
-                               .hback_porch = 160,
-                               .hsync_len = 136,
-                               .vactive = 768,
-                               .vfront_porch = 3,
-                               .vback_porch = 29,
-                               .vsync_len = 6,
-                       },
-               },
-       },
-};
-
-static struct rcar_du_platform_data koelsch_du_pdata = {
-       .encoders = koelsch_du_encoders,
-       .num_encoders = ARRAY_SIZE(koelsch_du_encoders),
-};
-
-static const struct resource du_resources[] __initconst = {
-       DEFINE_RES_MEM(0xfeb00000, 0x40000),
-       DEFINE_RES_MEM_NAMED(0xfeb90000, 0x1c, "lvds.0"),
-       DEFINE_RES_IRQ(gic_spi(256)),
-       DEFINE_RES_IRQ(gic_spi(268)),
-};
-
-static void __init koelsch_add_du_device(void)
-{
-       struct platform_device_info info = {
-               .name = "rcar-du-r8a7791",
-               .id = -1,
-               .res = du_resources,
-               .num_res = ARRAY_SIZE(du_resources),
-               .data = &koelsch_du_pdata,
-               .size_data = sizeof(koelsch_du_pdata),
-               .dma_mask = DMA_BIT_MASK(32),
-       };
-
-       platform_device_register_full(&info);
-}
-
-/*
- * This is a really crude hack to provide clkdev support to platform
- * devices until they get moved to DT.
- */
-static const struct clk_name clk_names[] __initconst = {
-       { "du0", "du.0", "rcar-du-r8a7791" },
-       { "du1", "du.1", "rcar-du-r8a7791" },
-       { "lvds0", "lvds.0", "rcar-du-r8a7791" },
-};
-
-static void __init koelsch_add_standard_devices(void)
-{
-       shmobile_clk_workaround(clk_names, ARRAY_SIZE(clk_names), false);
-       of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
-
-       koelsch_add_du_device();
-}
-
 static const char * const koelsch_boards_compat_dt[] __initconst = {
        "renesas,koelsch",
        "renesas,koelsch-reference",
@@ -110,7 +34,6 @@ DT_MACHINE_START(KOELSCH_DT, "koelsch")
        .smp            = smp_ops(r8a7791_smp_ops),
        .init_early     = shmobile_init_delay,
        .init_time      = rcar_gen2_timer_init,
-       .init_machine   = koelsch_add_standard_devices,
        .init_late      = shmobile_init_late,
        .reserve        = rcar_gen2_reserve,
        .dt_compat      = koelsch_boards_compat_dt,
index 7111b5c1d67b764f79daec420390fea7f408c92c..3a6a2766dc2b8699a5a6d47f89dbedda4cd2c996 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include <linux/dma-mapping.h>
index d9cdf9a97e2390b4f63cb4b22b11246b2088bea6..f2ef759b6e969cc811f283c7700ef18de0f057ac 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include <linux/delay.h>
index 77e36fa0b14216bb644149b2969267961ae43367..7c9b63bdde9fa458c3ddc7aa751030e0484beaf2 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include <linux/delay.h>
index bc4b48357ddea891ccb0365ba267325adff374d8..fa06bdba61df19d33fe6990eaa0a867855434c98 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-#include <linux/dma-mapping.h>
 #include <linux/init.h>
 #include <linux/of_platform.h>
-#include <linux/platform_data/rcar-du.h>
 
 #include <asm/mach/arch.h>
 
-#include "clock.h"
 #include "common.h"
-#include "irqs.h"
 #include "r8a7790.h"
 #include "rcar-gen2.h"
 
-/* DU */
-static struct rcar_du_encoder_data lager_du_encoders[] = {
-       {
-               .type = RCAR_DU_ENCODER_VGA,
-               .output = RCAR_DU_OUTPUT_DPAD0,
-       }, {
-               .type = RCAR_DU_ENCODER_NONE,
-               .output = RCAR_DU_OUTPUT_LVDS1,
-               .connector.lvds.panel = {
-                       .width_mm = 210,
-                       .height_mm = 158,
-                       .mode = {
-                               .pixelclock = 65000000,
-                               .hactive = 1024,
-                               .hfront_porch = 20,
-                               .hback_porch = 160,
-                               .hsync_len = 136,
-                               .vactive = 768,
-                               .vfront_porch = 3,
-                               .vback_porch = 29,
-                               .vsync_len = 6,
-                       },
-               },
-       },
-};
-
-static struct rcar_du_platform_data lager_du_pdata = {
-       .encoders = lager_du_encoders,
-       .num_encoders = ARRAY_SIZE(lager_du_encoders),
-};
-
-static const struct resource du_resources[] __initconst = {
-       DEFINE_RES_MEM(0xfeb00000, 0x70000),
-       DEFINE_RES_MEM_NAMED(0xfeb90000, 0x1c, "lvds.0"),
-       DEFINE_RES_MEM_NAMED(0xfeb94000, 0x1c, "lvds.1"),
-       DEFINE_RES_IRQ(gic_spi(256)),
-       DEFINE_RES_IRQ(gic_spi(268)),
-       DEFINE_RES_IRQ(gic_spi(269)),
-};
-
-static void __init lager_add_du_device(void)
-{
-       struct platform_device_info info = {
-               .name = "rcar-du-r8a7790",
-               .id = -1,
-               .res = du_resources,
-               .num_res = ARRAY_SIZE(du_resources),
-               .data = &lager_du_pdata,
-               .size_data = sizeof(lager_du_pdata),
-               .dma_mask = DMA_BIT_MASK(32),
-       };
-
-       platform_device_register_full(&info);
-}
-
-/*
- * This is a really crude hack to provide clkdev support to platform
- * devices until they get moved to DT.
- */
-static const struct clk_name clk_names[] __initconst = {
-       { "du0", "du.0", "rcar-du-r8a7790" },
-       { "du1", "du.1", "rcar-du-r8a7790" },
-       { "du2", "du.2", "rcar-du-r8a7790" },
-       { "lvds0", "lvds.0", "rcar-du-r8a7790" },
-       { "lvds1", "lvds.1", "rcar-du-r8a7790" },
-};
-
-static void __init lager_add_standard_devices(void)
-{
-       shmobile_clk_workaround(clk_names, ARRAY_SIZE(clk_names), false);
-       of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
-
-       lager_add_du_device();
-}
-
 static const char *lager_boards_compat_dt[] __initdata = {
        "renesas,lager",
        "renesas,lager-reference",
@@ -116,7 +33,6 @@ DT_MACHINE_START(LAGER_DT, "lager")
        .smp            = smp_ops(r8a7790_smp_ops),
        .init_early     = shmobile_init_delay,
        .init_time      = rcar_gen2_timer_init,
-       .init_machine   = lager_add_standard_devices,
        .init_late      = shmobile_init_late,
        .reserve        = rcar_gen2_reserve,
        .dt_compat      = lager_boards_compat_dt,
index 571327b1c942c138fbba5cfe8e5ea03d7896ccb1..b47262afb2408c45d5ab10ca3ffc512bc2b14af2 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include <linux/gpio.h>
index ca5d34b92aa7fc8e70d55cf4e6c2cf31aa103e13..ed1087031c5def92376b7acc100ee9dd8234cff2 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include <linux/delay.h>
 #include <linux/kernel.h>
index 38d9cdd26587ebf3c843ea25d09d26674b9430c4..f0757bbaff872a428f6ac889cff47fd811d33ea8 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include <linux/clk/shmobile.h>
index ce33d7825c49a818a2bb1927299be684a7196544..994dc7d86ae241fff8ebba14948cefd1f4fff313 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include <linux/kernel.h>
index c2330ea1802c6142dc4319836afe1490a7f4d5aa..1cf44dc6d718bcc0da183bc4e19aa595dfc7d08f 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include <linux/init.h>
 #include <linux/io.h>
index 0794f0426e7044810ec46d695c4a9e0c87abd38b..969e85dad09b3588775a4cdd9de0c9229bcef8d4 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 #include <linux/init.h>
 #include <linux/kernel.h>
index 67980a08a601bfee89430fa48be2141ab3d82bb5..e8510c35558c11637d35e08d78690fbe87eff7c6 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
 /*
index c51f9db3f66fb2f9408094cc112b52c3d716d534..fa8ab2cc91878af5f568b58521b62d3b9340a96e 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 #include <linux/bitops.h>
 #include <linux/init.h>
index 126ddafad5265dc62793fd6e7f25aea16b7c42e1..c395ff1942544f558a2e53295b3bc8359d88b7b9 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include <linux/init.h>
 #include <linux/io.h>
index 453b23129cfa0cd3903e7ebdc3aaef8009bb3542..82143ca3bae9ab7b72877c407425010bbcac51aa 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include <linux/init.h>
 #include <linux/io.h>
index 7071676145c497ae911fd7199b721692c71c2b8e..3bc92f46060e9ce55c793ea6104b6214d84b8bb7 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 #include <linux/init.h>
 #include <linux/kernel.h>
index 02a6f45a0b9e1c832d5c5d6bfcb79395a42363a2..6b4c1f313cc987c15ab0028b0f82ed4cde98a0fb 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 #include <linux/init.h>
 #include <linux/kernel.h>
index 806f94038cc49a8421f85d305a018113a59009b8..1f81ad747153b6bd0ae90b9bc48ecb7a6200b65c 100644 (file)
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
  */
 #include <linux/kernel.h>
 #include <linux/init.h>
index f2e79f2376e19f6f0a227af94bf2e4fc3be76409..e329ccbd0a6734f1e1c477f63ec878779cbce3d5 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include <linux/kernel.h>
 #include <linux/init.h>
index f45dde701d7b598c0bc7f2544ea438b0ea19327e..69df8bfac1672202073d5096631e1897857f5a5e 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR /PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
  */
 
 #include <linux/linkage.h>
index e2af00b1bd9dc465eefec06ad84398b41dda1657..1ccf49cb485fd96ae5f96c5d2f85d06f8dc7d02e 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include <linux/kernel.h>
 #include <linux/init.h>
index 44457a94897b28708c83cbb12a394ab857b860f1..9e3618028accea72442a4ca8fc1a09b36f267dd2 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include <linux/kernel.h>
 #include <linux/init.h>
index 5fafd6fcedf790c45564b0c731f4b317a5dba659..70dcd847a86ea360d5a904d4600c27da3b224d3f 100644 (file)
@@ -11,7 +11,6 @@ enum {
 };
 
 void r8a73a4_add_standard_devices(void);
-void r8a73a4_add_dt_devices(void);
 void r8a73a4_clock_init(void);
 void r8a73a4_pinmux_init(void);
 
index f369b4b0863d0bb38a2705e7c2fc12e83438c340..ca7805ad7ea3d64ea24c487f1ff1c5981e0f6e7f 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #ifndef __ASM_R8A7740_H__
index f4076a50e970a357c8c9dfbbbc07d4f6d61ada25..9086dfc6746af9376c70cc9804e37c127bc06928 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #ifndef __ASM_R8A7778_H__
 #define __ASM_R8A7778_H__
index b06a9e8f59a5fb7a232f00a747e1715bc23b5a71..aad97be9cbe1b0fabe069136e2e264cc51de8a24 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include <linux/kernel.h>
 #include <linux/init.h>
index 4122104359f98d909ae03a923256b479972ff3e0..171174777b6f8d3fa447cd183eafbf3d3b9ff291 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include <linux/kernel.h>
index 53f40b70680de9087fa90c0e61ae2711ac8a0fc7..c27682291cbf032c5d02f88495af7af150575cdd 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include <linux/irq.h>
 #include <linux/kernel.h>
@@ -180,18 +176,13 @@ static struct resource cmt1_resources[] = {
        DEFINE_RES_IRQ(gic_spi(120)),
 };
 
-#define r8a7790_register_cmt(idx)                                      \
+#define r8a73a4_register_cmt(idx)                                      \
        platform_device_register_resndata(NULL, "sh-cmt-48-gen2",       \
                                          idx, cmt##idx##_resources,    \
                                          ARRAY_SIZE(cmt##idx##_resources), \
                                          &cmt##idx##_platform_data,    \
                                          sizeof(struct sh_timer_config))
 
-void __init r8a73a4_add_dt_devices(void)
-{
-       r8a7790_register_cmt(1);
-}
-
 /* DMA */
 static const struct sh_dmae_slave_config dma_slaves[] = {
        {
@@ -282,7 +273,7 @@ static struct resource dma_resources[] = {
 
 void __init r8a73a4_add_standard_devices(void)
 {
-       r8a73a4_add_dt_devices();
+       r8a73a4_register_cmt(1);
        r8a73a4_register_scif(0);
        r8a73a4_register_scif(1);
        r8a73a4_register_scif(2);
index 8894e1b7ab0e65bbf66975ac36ca9b2b5917604f..fe15dd26d15dc3ec5a33a94528b066595849eadb 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include <linux/delay.h>
 #include <linux/dma-mapping.h>
index 85fe016d6a872a6233effacc6118f2195d8cdbc8..7c7223de1e9c99bc8a0524791e76488dcee6e269 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include <linux/kernel.h>
@@ -292,8 +288,6 @@ void __init r8a7778_add_dt_devices(void)
                l2x0_init(base, 0x00400000, 0xc20f0fff);
        }
 #endif
-
-       r8a7778_register_tmu(0);
 }
 
 /* HPB-DMA */
@@ -501,6 +495,7 @@ static void __init r8a7778_register_hpb_dmae(void)
 void __init r8a7778_add_standard_devices(void)
 {
        r8a7778_add_dt_devices();
+       r8a7778_register_tmu(0);
        r8a7778_register_scif(0);
        r8a7778_register_scif(1);
        r8a7778_register_scif(2);
index 136078ab9407cc2d2f31b43b213c105e6bbaaa4e..d08e75cceaab3ead2a84eb294bfa08ddcbd6d409 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include <linux/kernel.h>
 #include <linux/init.h>
index 877fdeb985d0c240e52eea158eeb16edd1b2ef68..ec7d97dca4de2108cbb3a7bbb3ee5b52dd0d8f95 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include <linux/irq.h>
index 35d78639244fd805d08d2f44954a5f889379ff6c..d930925f8f1a1ee8837316f5ab30de3f0839cace 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include <linux/irq.h>
index 42d5b43089235375e1a1d75b440a32d8940ac1ed..a669377aea5798194e65451aaf2c51e99d36e808 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
 #include <linux/clk/shmobile.h>
index d646c8d12423a600332f5e5876f75445426fdca3..e81c38538e13f12e639e0ffa47a140cd21f4e1f7 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include <linux/kernel.h>
 #include <linux/init.h>
index b7bd8e50966879608cde0e5c152cefb12185d9f1..1c8172dc2c6c22600eaf949b5d1ab1916faca907 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include <linux/kernel.h>
 #include <linux/init.h>
index 9782862899e81f1895ae0f1312cdfa5623d58914..146b8de16432fe3ca573243ded57e8dc8208218d 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR /PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
  */
 
 #include <linux/linkage.h>
index 6ff1df1df9a752c313514284a09a0e747e906c4c..baff3b5efed8c31b5e1c5cd18e21e4348dcc1360 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include <linux/kernel.h>
 #include <linux/init.h>
index 3100e355c3fde4e589aa015a50a68e7b1f57da85..3f761f8390430d61fa7753511412d06827eaf284 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include <linux/kernel.h>
 #include <linux/init.h>
index 22d8f87b23e9006b206a3c04fe9720a384926c81..c16dbfe9836c527de5116c5620434ffb1ced2ef6 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 #include <linux/kernel.h>
 #include <linux/init.h>
index 87c6be1e79bd989d24c64ccfc4a95342be5ddc4d..1081b763e0f390d627c2ce7f561a7533bc19872b 100644 (file)
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
  */
 #include <linux/platform_device.h>
 #include <linux/clocksource.h>
index 878e9ec97d0fc810249628533c3ff4acc2e11d15..8825bc9e2553057145a9d2839bf4001e71960bd8 100644 (file)
@@ -42,4 +42,14 @@ config SOC_STIH416
          and other digital audio/video applications using Flattened Device
          Trees.
 
+config SOC_STIH407
+       bool "STiH407 STMicroelectronics Consumer Electronics family"
+       default y
+       select STIH407_RESET
+       help
+         This enables support for STMicroelectronics Digital Consumer
+         Electronics family StiH407 parts, targetted at set-top-box
+         and other digital audio/video applications using Flattened Device
+         Trees.
+
 endif
index 38493ff28fa56b2ca4b19f8bd3fa6d153b21016e..7f9be0785c6a552fe573d61192c7ed2a5b4f1c21 100644 (file)
@@ -1041,6 +1041,8 @@ gic_of_init(struct device_node *node, struct device_node *parent)
        return 0;
 }
 IRQCHIP_DECLARE(gic_400, "arm,gic-400", gic_of_init);
+IRQCHIP_DECLARE(arm11mp_gic, "arm,arm11mp-gic", gic_of_init);
+IRQCHIP_DECLARE(arm1176jzf_dc_gic, "arm,arm1176jzf-devchip-gic", gic_of_init);
 IRQCHIP_DECLARE(cortex_a15_gic, "arm,cortex-a15-gic", gic_of_init);
 IRQCHIP_DECLARE(cortex_a9_gic, "arm,cortex-a9-gic", gic_of_init);
 IRQCHIP_DECLARE(cortex_a7_gic, "arm,cortex-a7-gic", gic_of_init);
index 6014625920b04a42e22a32120f078ae346a76a0d..e969107ddb47e18727223a67b9ad5844ba65619e 100644 (file)
@@ -537,7 +537,8 @@ static const struct i2c_device_id isl29028_id[] = {
 MODULE_DEVICE_TABLE(i2c, isl29028_id);
 
 static const struct of_device_id isl29028_of_match[] = {
-       { .compatible = "isil,isl29028", },
+       { .compatible = "isl,isl29028", },
+       { .compatible = "isil,isl29028", },/* deprecated, don't use */
        { },
 };
 MODULE_DEVICE_TABLE(of, isl29028_of_match);
index f6b4b0fe7a43313c2ee7ba60b8fd915e3cbf0a84..476135da0f238811889460a6ca524230fc51a368 100644 (file)
@@ -40,6 +40,7 @@
 
 /* MSTP2 */
 #define R8A7740_CLK_SCIFA6     30
+#define R8A7740_CLK_INTCA      29
 #define R8A7740_CLK_SCIFA7     22
 #define R8A7740_CLK_DMAC1      18
 #define R8A7740_CLK_DMAC2      17
index 8ea7ab0346ad9c28e248ad648401aff57a8c94bc..c27b3b5133b9442ea11bbe4d19e39769fad7956b 100644 (file)
 #define R8A7790_CLK_MSIOF0             0
 
 /* MSTP1 */
-#define R8A7790_CLK_JPU                6
+#define R8A7790_CLK_VCP1               0
+#define R8A7790_CLK_VCP0               1
+#define R8A7790_CLK_VPC1               2
+#define R8A7790_CLK_VPC0               3
+#define R8A7790_CLK_JPU                        6
+#define R8A7790_CLK_SSP1               9
 #define R8A7790_CLK_TMU1               11
+#define R8A7790_CLK_3DG                        12
+#define R8A7790_CLK_2DDMAC             15
+#define R8A7790_CLK_FDP1_2             17
+#define R8A7790_CLK_FDP1_1             18
+#define R8A7790_CLK_FDP1_0             19
 #define R8A7790_CLK_TMU3               21
 #define R8A7790_CLK_TMU2               22
 #define R8A7790_CLK_CMT0               24
@@ -68,6 +78,8 @@
 #define R8A7790_CLK_USBDMAC1           31
 
 /* MSTP5 */
+#define R8A7790_CLK_AUDIO_DMAC1                1
+#define R8A7790_CLK_AUDIO_DMAC0                2
 #define R8A7790_CLK_THERMAL            22
 #define R8A7790_CLK_PWM                        23
 
index 58c3f49d068c0e75887aa468f038d1d5fa5dd730..3ea2bbc0da3f585331ad1669a625b382860bd778 100644 (file)
 #define R8A7791_CLK_MSIOF0             0
 
 /* MSTP1 */
-#define R8A7791_CLK_JPU                6
+#define R8A7791_CLK_VCP0               1
+#define R8A7791_CLK_VPC0               3
+#define R8A7791_CLK_JPU                        6
+#define R8A7791_CLK_SSP1               9
 #define R8A7791_CLK_TMU1               11
+#define R8A7791_CLK_3DG                        12
+#define R8A7791_CLK_2DDMAC             15
+#define R8A7791_CLK_FDP1_1             18
+#define R8A7791_CLK_FDP1_0             19
 #define R8A7791_CLK_TMU3               21
 #define R8A7791_CLK_TMU2               22
 #define R8A7791_CLK_CMT0               24
@@ -62,6 +69,8 @@
 #define R8A7791_CLK_USBDMAC1           31
 
 /* MSTP5 */
+#define R8A7791_CLK_AUDIO_DMAC1                1
+#define R8A7791_CLK_AUDIO_DMAC0                2
 #define R8A7791_CLK_THERMAL            22
 #define R8A7791_CLK_PWM                        23
 
index 9ac1043e25bce45a20b45cf116404a0ccb9cdd26..aa9c286e60c0a322d10d45273686adb034591fa1 100644 (file)
 #define R8A7794_CLK_MSIOF0             0
 
 /* MSTP1 */
+#define R8A7794_CLK_VCP0               1
+#define R8A7794_CLK_VPC0               3
 #define R8A7794_CLK_TMU1               11
+#define R8A7794_CLK_3DG                        12
+#define R8A7794_CLK_2DDMAC             15
+#define R8A7794_CLK_FDP1_0             19
 #define R8A7794_CLK_TMU3               21
 #define R8A7794_CLK_TMU2               22
 #define R8A7794_CLK_CMT0               24
 #define R8A7794_CLK_TMU0               25
+#define R8A7794_CLK_VSP1_DU0           28
+#define R8A7794_CLK_VSP1_S             31
 
 /* MSTP2 */
 #define R8A7794_CLK_SCIFA2             2
@@ -61,6 +68,8 @@
 #define R8A7794_CLK_SCIF0              21
 
 /* MSTP8 */
+#define R8A7794_CLK_VIN1               10
+#define R8A7794_CLK_VIN0               11
 #define R8A7794_CLK_ETHER              13
 
 /* MSTP9 */
diff --git a/include/dt-bindings/clock/stih407-clks.h b/include/dt-bindings/clock/stih407-clks.h
new file mode 100644 (file)
index 0000000..7af2b71
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+ * This header provides constants clk index STMicroelectronics
+ * STiH407 SoC.
+ */
+#ifndef _DT_BINDINGS_CLK_STIH407
+#define _DT_BINDINGS_CLK_STIH407
+
+/* CLOCKGEN C0 */
+#define CLK_ICN_GPU            0
+#define CLK_FDMA               1
+#define CLK_NAND               2
+#define CLK_HVA                        3
+#define CLK_PROC_STFE          4
+#define CLK_PROC_TP            5
+#define CLK_RX_ICN_DMU         6
+#define CLK_RX_ICN_DISP_0      6
+#define CLK_RX_ICN_DISP_1      6
+#define CLK_RX_ICN_HVA         7
+#define CLK_RX_ICN_TS          7
+#define CLK_ICN_CPU            8
+#define CLK_TX_ICN_DMU         9
+#define CLK_TX_ICN_HVA         9
+#define CLK_TX_ICN_TS          9
+#define CLK_ICN_COMPO          9
+#define CLK_MMC_0              10
+#define CLK_MMC_1              11
+#define CLK_JPEGDEC            12
+#define CLK_ICN_REG            13
+#define CLK_TRACE_A9           13
+#define CLK_PTI_STM            13
+#define CLK_EXT2F_A9           13
+#define CLK_IC_BDISP_0         14
+#define CLK_IC_BDISP_1         15
+#define CLK_PP_DMU             16
+#define CLK_VID_DMU            17
+#define CLK_DSS_LPC            18
+#define CLK_ST231_AUD_0                19
+#define CLK_ST231_GP_0         19
+#define CLK_ST231_GP_1         20
+#define CLK_ST231_DMU          21
+#define CLK_ICN_LMI            22
+#define CLK_TX_ICN_DISP_0      23
+#define CLK_TX_ICN_DISP_1      23
+#define CLK_ICN_SBC            24
+#define CLK_STFE_FRC2          25
+#define CLK_ETH_PHY            26
+#define CLK_ETH_REF_PHYCLK     27
+#define CLK_FLASH_PROMIP       28
+#define CLK_MAIN_DISP          29
+#define CLK_AUX_DISP           30
+#define CLK_COMPO_DVP          31
+
+/* CLOCKGEN D0 */
+#define CLK_PCM_0              0
+#define CLK_PCM_1              1
+#define CLK_PCM_2              2
+#define CLK_SPDIFF             3
+
+/* CLOCKGEN D2 */
+#define CLK_PIX_MAIN_DISP      0
+#define CLK_PIX_PIP            1
+#define CLK_PIX_GDP1           2
+#define CLK_PIX_GDP2           3
+#define CLK_PIX_GDP3           4
+#define CLK_PIX_GDP4           5
+#define CLK_PIX_AUX_DISP       6
+#define CLK_DENC               7
+#define CLK_PIX_HDDAC          8
+#define CLK_HDDAC              9
+#define CLK_SDDAC              10
+#define CLK_PIX_DVO            11
+#define CLK_DVO                        12
+#define CLK_PIX_HDMI           13
+#define CLK_TMDS_HDMI          14
+#define CLK_REF_HDMIPHY                15
+
+/* CLOCKGEN D3 */
+#define CLK_STFE_FRC1          0
+#define CLK_TSOUT_0            1
+#define CLK_TSOUT_1            2
+#define CLK_MCHI               3
+#define CLK_VSENS_COMPO                4
+#define CLK_FRC1_REMOTE                5
+#define CLK_LPC_0              6
+#define CLK_LPC_1              7
+#endif
diff --git a/include/dt-bindings/clock/stih410-clks.h b/include/dt-bindings/clock/stih410-clks.h
new file mode 100644 (file)
index 0000000..2097a4b
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * This header provides constants clk index STMicroelectronics
+ * STiH410 SoC.
+ */
+#ifndef _DT_BINDINGS_CLK_STIH410
+#define _DT_BINDINGS_CLK_STIH410
+
+#include "stih407-clks.h"
+
+/* STiH410 introduces new clock outputs compared to STiH407 */
+
+/* CLOCKGEN C0 */
+#define CLK_TX_ICN_HADES       32
+#define CLK_RX_ICN_HADES       33
+#define CLK_ICN_REG_16         34
+#define CLK_PP_HADES           35
+#define CLK_CLUST_HADES                36
+#define CLK_HWPE_HADES         37
+#define CLK_FC_HADES           38
+
+/* CLOCKGEN D0 */
+#define CLK_PCMR10_MASTER      4
+#define CLK_USB2_PHY           5
+
+#endif
diff --git a/include/dt-bindings/reset-controller/stih407-resets.h b/include/dt-bindings/reset-controller/stih407-resets.h
new file mode 100644 (file)
index 0000000..02d4328
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * This header provides constants for the reset controller
+ * based peripheral powerdown requests on the STMicroelectronics
+ * STiH407 SoC.
+ */
+#ifndef _DT_BINDINGS_RESET_CONTROLLER_STIH407
+#define _DT_BINDINGS_RESET_CONTROLLER_STIH407
+
+/* Powerdown requests control 0 */
+#define STIH407_EMISS_POWERDOWN                0
+#define STIH407_NAND_POWERDOWN         1
+
+/* Synp GMAC PowerDown */
+#define STIH407_ETH1_POWERDOWN         2
+
+/* Powerdown requests control 1 */
+#define STIH407_USB3_POWERDOWN         3
+#define STIH407_USB2_PORT1_POWERDOWN   4
+#define STIH407_USB2_PORT0_POWERDOWN   5
+#define STIH407_PCIE1_POWERDOWN                6
+#define STIH407_PCIE0_POWERDOWN                7
+#define STIH407_SATA1_POWERDOWN                8
+#define STIH407_SATA0_POWERDOWN                9
+
+/* Reset defines */
+#define STIH407_ETH1_SOFTRESET         0
+#define STIH407_MMC1_SOFTRESET         1
+#define STIH407_PICOPHY_SOFTRESET      2
+#define STIH407_IRB_SOFTRESET          3
+#define STIH407_PCIE0_SOFTRESET                4
+#define STIH407_PCIE1_SOFTRESET                5
+#define STIH407_SATA0_SOFTRESET                6
+#define STIH407_SATA1_SOFTRESET                7
+#define STIH407_MIPHY0_SOFTRESET       8
+#define STIH407_MIPHY1_SOFTRESET       9
+#define STIH407_MIPHY2_SOFTRESET       10
+#define STIH407_SATA0_PWR_SOFTRESET    11
+#define STIH407_SATA1_PWR_SOFTRESET    12
+#define STIH407_DELTA_SOFTRESET                13
+#define STIH407_BLITTER_SOFTRESET      14
+#define STIH407_HDTVOUT_SOFTRESET      15
+#define STIH407_HDQVDP_SOFTRESET       16
+#define STIH407_VDP_AUX_SOFTRESET      17
+#define STIH407_COMPO_SOFTRESET                18
+#define STIH407_HDMI_TX_PHY_SOFTRESET  19
+#define STIH407_JPEG_DEC_SOFTRESET     20
+#define STIH407_VP8_DEC_SOFTRESET      21
+#define STIH407_GPU_SOFTRESET          22
+#define STIH407_HVA_SOFTRESET          23
+#define STIH407_ERAM_HVA_SOFTRESET     24
+#define STIH407_LPM_SOFTRESET          25
+#define STIH407_KEYSCAN_SOFTRESET      26
+#define STIH407_USB2_PORT0_SOFTRESET   27
+#define STIH407_USB2_PORT1_SOFTRESET   28
+
+/* Picophy reset defines */
+#define STIH407_PICOPHY0_RESET         0
+#define STIH407_PICOPHY1_RESET         1
+#define STIH407_PICOPHY2_RESET         2
+
+#endif /* _DT_BINDINGS_RESET_CONTROLLER_STIH407 */