Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 8 Oct 2016 04:29:04 +0000 (21:29 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 8 Oct 2016 04:29:04 +0000 (21:29 -0700)
Pull ARM DT updates from Arnd Bergmann:
 "These are as usual a very large number of mostly boring updates to
  enable devices in existing machines, or to fix minor bugs. Notably, an
  ongoing treewide effort to fix warnings caused by an update to the
  device tree compiler. These are enabled with "make W=1" at the moment
  but can hopefully become the default once all issues have been
  addressed.

  No new SoC platform is added this time around (Armada 395 and Orion
  mv88f5181 are slight variations of existing ones), but a significant
  number of new dts files are added, which I list by platform:

   - Allwinner: Empire Electronix M712 and iNet d978 Rev2 tablets,
     Orange Pi PC Plus, Orange Pi 2, Orange Pi Plus 2E, Orange Pi Lite,
     Olimex A33-Olinuxino, and Nano Pi Neo single-board computers

   - ARM Realview: all supported machines (ported from board files)

   - Broadcom: BCM958525er, BCM958522er, BCM988312hr, BCM958623hr and
     BCM958622hr reference boards for Northstar platform, Raspberry Pi
     Zero single-board computer

   - Marvell EBU: Netgear WNR854T router (ported from board file),
     Armada 395 SoC platform and GP board Armada 390 DB development
     board

   - NXP i.MX: imx7s Warp7 reference board, Gateworks Ventana GW553x
     single-board computer, Technologic Systems TS-4900 and Engicam
     IMX6UL GEA M6UL computer-on-module, Inverse Path USB armory board

   - Qualcomm: LG Nexus 5 Phone

   - Renesas: r8a7792/wheat and r7s72100/rskrza1 development boards

   - Rockchip: Rockchip RK3288 Fennec reference board, Firefly RK3288
     Reload platform

   - ST Microelectronics STi: B2260 (96boards) single-board computer

   - TI Davinci: OMAP-L138 LCDK Development kit

   - TI OMAP: beagleboard-x15 rev B1 single-board computer"

* tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (390 commits)
  ARM: dts: sony-nsz-gs7: add missing unit name to /memory node
  ARM: dts: chromecast: add missing unit name to /memory node
  ARM: dts: berlin2q-marvell-dmp: add missing unit name to /memory node
  ARM: dts: berlin2: Add missing unit name to /soc node
  ARM: dts: berlin2cd: Add missing unit name to /soc node
  ARM: dts: berlin2q: Add missing unit name to /soc node
  ARM: dts: berlin2: Remove skeleton.dtsi inclusion
  ARM: dts: berlin2cd: Remove skeleton.dtsi inclusion
  ARM: dts: berlin2q: Remove skeleton.dtsi inclusion
  arm: dts: berlin2q: enable all wdt nodes unconditionally
  arm: dts: berlin2: enable all wdt nodes unconditionally
  ARM: dts: omap5-igep0050.dts: Use tabs for indentation
  ARM: dts: Fix igepv5 power button GPIO direction
  ARM: dts: am335x-evmsk: Add blue-and-red-wiring -property to lcdc node
  ARM: dts: am335x-evmsk: Whitespace cleanup of lcdc related nodes
  ARM: dts: am335x-evm: Add blue-and-red-wiring -property to lcdc node
  ARM: dts: s3c64xx: Use macros for pinctrl configuration
  ARM: dts: s3c2416: Use macros for pinctrl configuration
  ARM: dts: s5pv210: Use macros for pinctrl configuration
  ARM: dts: s3c64xx: Use common macros for pinctrl configuration
  ...

425 files changed:
Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
Documentation/devicetree/bindings/arm/davinci.txt
Documentation/devicetree/bindings/arm/marvell/armada-39x.txt
Documentation/devicetree/bindings/arm/marvell/marvell,orion5x.txt [new file with mode: 0644]
Documentation/devicetree/bindings/arm/omap/omap.txt
Documentation/devicetree/bindings/arm/rockchip.txt
Documentation/devicetree/bindings/arm/shmobile.txt
Documentation/devicetree/bindings/arm/technologic.txt
Documentation/devicetree/bindings/clock/qcom,gcc.txt
Documentation/devicetree/bindings/display/exynos/exynos_hdmi.txt
Documentation/devicetree/bindings/display/panel/tpo,tpg110.txt [new file with mode: 0644]
Documentation/devicetree/bindings/net/brcm,amac.txt [new file with mode: 0644]
Documentation/devicetree/bindings/net/brcm,bgmac-nsp.txt [new file with mode: 0644]
Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
Documentation/devicetree/bindings/vendor-prefixes.txt
MAINTAINERS
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/am335x-baltos.dtsi
arch/arm/boot/dts/am335x-base0033.dts
arch/arm/boot/dts/am335x-bone-common.dtsi
arch/arm/boot/dts/am335x-boneblack.dts
arch/arm/boot/dts/am335x-chilisom.dtsi
arch/arm/boot/dts/am335x-cm-t335.dts
arch/arm/boot/dts/am335x-evm.dts
arch/arm/boot/dts/am335x-evmsk.dts
arch/arm/boot/dts/am335x-icev2.dts
arch/arm/boot/dts/am335x-igep0033.dtsi
arch/arm/boot/dts/am335x-lxm.dts
arch/arm/boot/dts/am335x-nano.dts
arch/arm/boot/dts/am335x-pepper.dts
arch/arm/boot/dts/am335x-phycore-som.dtsi
arch/arm/boot/dts/am335x-shc.dts
arch/arm/boot/dts/am335x-sl50.dts
arch/arm/boot/dts/am335x-wega.dtsi
arch/arm/boot/dts/am33xx.dtsi
arch/arm/boot/dts/am3517-craneboard.dts
arch/arm/boot/dts/am3517-evm.dts
arch/arm/boot/dts/am3517.dtsi
arch/arm/boot/dts/am3517_mt_ventoux.dts
arch/arm/boot/dts/am4372.dtsi
arch/arm/boot/dts/am437x-cm-t43.dts
arch/arm/boot/dts/am437x-gp-evm.dts
arch/arm/boot/dts/am437x-idk-evm.dts
arch/arm/boot/dts/am437x-sk-evm.dts
arch/arm/boot/dts/am43x-epos-evm.dts
arch/arm/boot/dts/am572x-idk.dts
arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts [new file with mode: 0644]
arch/arm/boot/dts/am57xx-beagle-x15.dts
arch/arm/boot/dts/am57xx-cl-som-am57x.dts
arch/arm/boot/dts/am57xx-idk-common.dtsi
arch/arm/boot/dts/arm-realview-eb-11mp-bbrevd-ctrevb.dts [new file with mode: 0644]
arch/arm/boot/dts/arm-realview-eb-11mp-bbrevd.dts [new file with mode: 0644]
arch/arm/boot/dts/arm-realview-eb-11mp-ctrevb.dts [new file with mode: 0644]
arch/arm/boot/dts/arm-realview-eb-11mp-revb.dts [deleted file]
arch/arm/boot/dts/arm-realview-eb-11mp.dts
arch/arm/boot/dts/arm-realview-eb-a9mp-bbrevd.dts [new file with mode: 0644]
arch/arm/boot/dts/arm-realview-eb-bbrevd.dts [new file with mode: 0644]
arch/arm/boot/dts/arm-realview-eb-bbrevd.dtsi [new file with mode: 0644]
arch/arm/boot/dts/arm-realview-eb.dtsi
arch/arm/boot/dts/armada-370-db.dts
arch/arm/boot/dts/armada-370-seagate-personal-cloud.dtsi
arch/arm/boot/dts/armada-370-synology-ds213j.dts
arch/arm/boot/dts/armada-370-xp.dtsi
arch/arm/boot/dts/armada-370.dtsi
arch/arm/boot/dts/armada-385-db-ap.dts
arch/arm/boot/dts/armada-385-linksys.dtsi
arch/arm/boot/dts/armada-388-clearfog.dts
arch/arm/boot/dts/armada-388-db.dts
arch/arm/boot/dts/armada-388-gp.dts
arch/arm/boot/dts/armada-388-rd.dts
arch/arm/boot/dts/armada-38x.dtsi
arch/arm/boot/dts/armada-390-db.dts [new file with mode: 0644]
arch/arm/boot/dts/armada-390.dtsi
arch/arm/boot/dts/armada-395-gp.dts [new file with mode: 0644]
arch/arm/boot/dts/armada-395.dtsi [new file with mode: 0644]
arch/arm/boot/dts/armada-398-db.dts
arch/arm/boot/dts/armada-398.dtsi
arch/arm/boot/dts/armada-39x.dtsi
arch/arm/boot/dts/armada-xp-axpwifiap.dts
arch/arm/boot/dts/armada-xp-db.dts
arch/arm/boot/dts/armada-xp-gp.dts
arch/arm/boot/dts/armada-xp-linksys-mamba.dts
arch/arm/boot/dts/armada-xp-synology-ds414.dts
arch/arm/boot/dts/armada-xp.dtsi
arch/arm/boot/dts/armv7-m.dtsi
arch/arm/boot/dts/artpec6.dtsi
arch/arm/boot/dts/axp209.dtsi
arch/arm/boot/dts/bcm-nsp.dtsi
arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
arch/arm/boot/dts/bcm2835-rpi-a.dts
arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
arch/arm/boot/dts/bcm2835-rpi-b.dts
arch/arm/boot/dts/bcm2835-rpi-zero.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm2836-rpi-2-b.dts
arch/arm/boot/dts/bcm283x-rpi-usb-host.dtsi [new file with mode: 0644]
arch/arm/boot/dts/bcm283x.dtsi
arch/arm/boot/dts/bcm5301x.dtsi
arch/arm/boot/dts/bcm958522er.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm958525er.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm958525xmc.dts
arch/arm/boot/dts/bcm958622hr.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm958623hr.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm958625hr.dts
arch/arm/boot/dts/bcm958625k.dts
arch/arm/boot/dts/bcm988312hr.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/da850-evm.dts
arch/arm/boot/dts/da850-lcdk.dts [new file with mode: 0644]
arch/arm/boot/dts/da850.dtsi
arch/arm/boot/dts/dm8148-evm.dts
arch/arm/boot/dts/dm8148-t410.dts
arch/arm/boot/dts/dm814x.dtsi
arch/arm/boot/dts/dm8168-evm.dts
arch/arm/boot/dts/dm816x.dtsi
arch/arm/boot/dts/dra62x-j5eco-evm.dts
arch/arm/boot/dts/dra7-evm.dts
arch/arm/boot/dts/dra7.dtsi
arch/arm/boot/dts/dra72-evm-common.dtsi
arch/arm/boot/dts/dra72-evm-revc.dts
arch/arm/boot/dts/dra72-evm.dts
arch/arm/boot/dts/dra74x.dtsi
arch/arm/boot/dts/dra7xx-clocks.dtsi
arch/arm/boot/dts/efm32gg-dk3750.dts
arch/arm/boot/dts/efm32gg.dtsi
arch/arm/boot/dts/exynos3250-artik5.dtsi
arch/arm/boot/dts/exynos3250-monk.dts
arch/arm/boot/dts/exynos3250-pinctrl.dtsi
arch/arm/boot/dts/exynos3250-rinato.dts
arch/arm/boot/dts/exynos3250.dtsi
arch/arm/boot/dts/exynos4.dtsi
arch/arm/boot/dts/exynos4210-origen.dts
arch/arm/boot/dts/exynos4210-pinctrl.dtsi
arch/arm/boot/dts/exynos4210-smdkv310.dts
arch/arm/boot/dts/exynos4210-trats.dts
arch/arm/boot/dts/exynos4210-universal_c210.dts
arch/arm/boot/dts/exynos4412-odroid-common.dtsi
arch/arm/boot/dts/exynos4412-odroidu3.dts
arch/arm/boot/dts/exynos4412-odroidx.dts
arch/arm/boot/dts/exynos4412-odroidx2.dts
arch/arm/boot/dts/exynos4412-origen.dts
arch/arm/boot/dts/exynos4412-smdk4412.dts
arch/arm/boot/dts/exynos4412-tiny4412.dts
arch/arm/boot/dts/exynos4412-trats2.dts
arch/arm/boot/dts/exynos4415-pinctrl.dtsi
arch/arm/boot/dts/exynos4415.dtsi
arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
arch/arm/boot/dts/exynos4x12.dtsi
arch/arm/boot/dts/exynos5.dtsi
arch/arm/boot/dts/exynos5250-arndale.dts
arch/arm/boot/dts/exynos5250-pinctrl.dtsi
arch/arm/boot/dts/exynos5250-smdk5250.dts
arch/arm/boot/dts/exynos5250-snow-common.dtsi
arch/arm/boot/dts/exynos5250-snow-rev5.dts
arch/arm/boot/dts/exynos5250-snow.dts
arch/arm/boot/dts/exynos5250-spring.dts
arch/arm/boot/dts/exynos5260-pinctrl.dtsi
arch/arm/boot/dts/exynos5260-xyref5260.dts
arch/arm/boot/dts/exynos5260.dtsi
arch/arm/boot/dts/exynos5410-odroidxu.dts
arch/arm/boot/dts/exynos5410-pinctrl.dtsi
arch/arm/boot/dts/exynos5410-smdk5410.dts
arch/arm/boot/dts/exynos5420-arndale-octa.dts
arch/arm/boot/dts/exynos5420-peach-pit.dts
arch/arm/boot/dts/exynos5420-pinctrl.dtsi
arch/arm/boot/dts/exynos5420-smdk5420.dts
arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
arch/arm/boot/dts/exynos5440-sd5v1.dts
arch/arm/boot/dts/exynos5440-ssdk5440.dts
arch/arm/boot/dts/exynos5440.dtsi
arch/arm/boot/dts/exynos54xx.dtsi
arch/arm/boot/dts/exynos5800-peach-pi.dts
arch/arm/boot/dts/imx35.dtsi
arch/arm/boot/dts/imx50.dtsi
arch/arm/boot/dts/imx53-usbarmory.dts [new file with mode: 0644]
arch/arm/boot/dts/imx53.dtsi
arch/arm/boot/dts/imx6dl-gw553x.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6dl-riotboard.dts
arch/arm/boot/dts/imx6dl-ts4900.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6dl.dtsi
arch/arm/boot/dts/imx6q-arm2.dts
arch/arm/boot/dts/imx6q-b450v3.dts
arch/arm/boot/dts/imx6q-b650v3.dts
arch/arm/boot/dts/imx6q-ba16.dtsi
arch/arm/boot/dts/imx6q-bx50v3.dtsi
arch/arm/boot/dts/imx6q-cm-fx6.dts
arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts
arch/arm/boot/dts/imx6q-evi.dts
arch/arm/boot/dts/imx6q-gw5400-a.dts
arch/arm/boot/dts/imx6q-gw553x.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6q-marsboard.dts
arch/arm/boot/dts/imx6q-novena.dts
arch/arm/boot/dts/imx6q-sbc6x.dts
arch/arm/boot/dts/imx6q-tbs2910.dts
arch/arm/boot/dts/imx6q-ts4900.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6q.dtsi
arch/arm/boot/dts/imx6qdl-apalis.dtsi
arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi
arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
arch/arm/boot/dts/imx6qdl-gw551x.dtsi
arch/arm/boot/dts/imx6qdl-gw552x.dtsi
arch/arm/boot/dts/imx6qdl-gw553x.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
arch/arm/boot/dts/imx6qdl-rex.dtsi
arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
arch/arm/boot/dts/imx6qdl-sabresd.dtsi
arch/arm/boot/dts/imx6qdl-ts4900.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-udoo.dtsi
arch/arm/boot/dts/imx6qdl-wandboard.dtsi
arch/arm/boot/dts/imx6sl.dtsi
arch/arm/boot/dts/imx6sx-pinfunc.h
arch/arm/boot/dts/imx6sx.dtsi
arch/arm/boot/dts/imx6ul-geam-kit.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ul-geam.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6ul-pico-hobbit.dts
arch/arm/boot/dts/imx6ul.dtsi
arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi
arch/arm/boot/dts/imx7-colibri.dtsi
arch/arm/boot/dts/imx7d.dtsi
arch/arm/boot/dts/imx7s-warp.dts [new file with mode: 0644]
arch/arm/boot/dts/imx7s.dtsi
arch/arm/boot/dts/keystone-k2e-evm.dts
arch/arm/boot/dts/keystone-k2e.dtsi
arch/arm/boot/dts/keystone-k2g.dtsi
arch/arm/boot/dts/keystone-k2hk-evm.dts
arch/arm/boot/dts/keystone-k2l-evm.dts
arch/arm/boot/dts/keystone.dtsi
arch/arm/boot/dts/kirkwood-openblocks_a6.dts
arch/arm/boot/dts/logicpd-torpedo-som.dtsi
arch/arm/boot/dts/lpc18xx.dtsi
arch/arm/boot/dts/lpc4337-ciaa.dts
arch/arm/boot/dts/lpc4350-hitex-eval.dts
arch/arm/boot/dts/lpc4357-ea4357-devkit.dts
arch/arm/boot/dts/ls1021a-twr.dts
arch/arm/boot/dts/meson8b.dtsi
arch/arm/boot/dts/mps2.dtsi
arch/arm/boot/dts/omap2.dtsi
arch/arm/boot/dts/omap2420-h4.dts
arch/arm/boot/dts/omap2420-n8x0-common.dtsi
arch/arm/boot/dts/omap2430-sdp.dts
arch/arm/boot/dts/omap3-beagle-xm.dts
arch/arm/boot/dts/omap3-beagle.dts
arch/arm/boot/dts/omap3-cm-t3x.dtsi
arch/arm/boot/dts/omap3-devkit8000-common.dtsi
arch/arm/boot/dts/omap3-evm-37xx.dts
arch/arm/boot/dts/omap3-evm.dts
arch/arm/boot/dts/omap3-gta04.dtsi
arch/arm/boot/dts/omap3-igep.dtsi
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-overo-alto35-common.dtsi
arch/arm/boot/dts/omap3-overo-base.dtsi
arch/arm/boot/dts/omap3-overo-chestnut43-common.dtsi
arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi
arch/arm/boot/dts/omap3-overo-gallop43-common.dtsi
arch/arm/boot/dts/omap3-overo-palo35-common.dtsi
arch/arm/boot/dts/omap3-overo-palo43-common.dtsi
arch/arm/boot/dts/omap3-pandora-common.dtsi
arch/arm/boot/dts/omap3-sniper.dts
arch/arm/boot/dts/omap3-tao3530.dtsi
arch/arm/boot/dts/omap3-zoom3.dts
arch/arm/boot/dts/omap3.dtsi
arch/arm/boot/dts/omap3430-sdp.dts
arch/arm/boot/dts/omap34xx.dtsi
arch/arm/boot/dts/omap36xx.dtsi
arch/arm/boot/dts/omap4-duovero-parlor.dts
arch/arm/boot/dts/omap4-duovero.dtsi
arch/arm/boot/dts/omap4-kc1.dts
arch/arm/boot/dts/omap4-panda-common.dtsi
arch/arm/boot/dts/omap4-sdp.dts
arch/arm/boot/dts/omap4-var-som-om44.dtsi
arch/arm/boot/dts/omap4.dtsi
arch/arm/boot/dts/omap5-board-common.dtsi
arch/arm/boot/dts/omap5-cm-t54.dts
arch/arm/boot/dts/omap5-igep0050.dts
arch/arm/boot/dts/omap5-uevm.dts
arch/arm/boot/dts/omap5.dtsi
arch/arm/boot/dts/orion5x-mv88f5181.dtsi [new file with mode: 0644]
arch/arm/boot/dts/orion5x-netgear-wnr854t.dts [new file with mode: 0644]
arch/arm/boot/dts/orion5x.dtsi
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts
arch/arm/boot/dts/qcom-apq8064.dtsi
arch/arm/boot/dts/qcom-apq8084.dtsi
arch/arm/boot/dts/qcom-ipq8064-ap148.dts
arch/arm/boot/dts/qcom-msm8660.dtsi
arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts [new file with mode: 0644]
arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
arch/arm/boot/dts/qcom-msm8974.dtsi
arch/arm/boot/dts/qcom-pm8941.dtsi
arch/arm/boot/dts/r7s72100-rskrza1.dts [new file with mode: 0644]
arch/arm/boot/dts/r7s72100.dtsi
arch/arm/boot/dts/r8a7790.dtsi
arch/arm/boot/dts/r8a7791.dtsi
arch/arm/boot/dts/r8a7792-blanche.dts
arch/arm/boot/dts/r8a7792-wheat.dts [new file with mode: 0644]
arch/arm/boot/dts/r8a7792.dtsi
arch/arm/boot/dts/r8a7794-alt.dts
arch/arm/boot/dts/r8a7794-silk.dts
arch/arm/boot/dts/r8a7794.dtsi
arch/arm/boot/dts/rk3036.dtsi
arch/arm/boot/dts/rk3288-evb-act8846.dts
arch/arm/boot/dts/rk3288-evb-rk808.dts
arch/arm/boot/dts/rk3288-evb.dtsi
arch/arm/boot/dts/rk3288-fennec.dts [new file with mode: 0644]
arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi [new file with mode: 0644]
arch/arm/boot/dts/rk3288-firefly-reload.dts [new file with mode: 0644]
arch/arm/boot/dts/rk3288-popmetal.dts
arch/arm/boot/dts/rk3288.dtsi
arch/arm/boot/dts/rk3xxx.dtsi
arch/arm/boot/dts/s3c2416-pinctrl.dtsi
arch/arm/boot/dts/s3c6410-mini6410.dts
arch/arm/boot/dts/s3c64xx-pinctrl.dtsi
arch/arm/boot/dts/s5pv210-aquila.dts
arch/arm/boot/dts/s5pv210-goni.dts
arch/arm/boot/dts/s5pv210-pinctrl.dtsi
arch/arm/boot/dts/s5pv210-smdkc110.dts
arch/arm/boot/dts/s5pv210-smdkv210.dts
arch/arm/boot/dts/s5pv210-torbreck.dts
arch/arm/boot/dts/s5pv210.dtsi
arch/arm/boot/dts/sama5d2.dtsi
arch/arm/boot/dts/skeleton.dtsi
arch/arm/boot/dts/ste-nomadik-nhk15.dts
arch/arm/boot/dts/ste-nomadik-stn8815.dtsi
arch/arm/boot/dts/stih407-clock.dtsi
arch/arm/boot/dts/stih407-family.dtsi
arch/arm/boot/dts/stih407-pinctrl.dtsi
arch/arm/boot/dts/stih407.dtsi
arch/arm/boot/dts/stih410-b2260.dts [new file with mode: 0644]
arch/arm/boot/dts/stih410-clock.dtsi
arch/arm/boot/dts/stih410.dtsi
arch/arm/boot/dts/stih415-pinctrl.dtsi
arch/arm/boot/dts/stih416-b2020e.dts
arch/arm/boot/dts/stih416-pinctrl.dtsi
arch/arm/boot/dts/stih416.dtsi
arch/arm/boot/dts/stih418-b2199.dts
arch/arm/boot/dts/stih418-clock.dtsi
arch/arm/boot/dts/stih41x-b2000.dtsi
arch/arm/boot/dts/stih41x-b2020.dtsi
arch/arm/boot/dts/stihxxx-b2120.dtsi
arch/arm/boot/dts/stm32f429.dtsi
arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts
arch/arm/boot/dts/sun5i-a13-empire-electronix-m712.dts [new file with mode: 0644]
arch/arm/boot/dts/sun5i-a13-inet-98v-rev2.dts
arch/arm/boot/dts/sun5i-r8-chip.dts
arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts
arch/arm/boot/dts/sun6i-a31s-inet-q972.dts [new file with mode: 0644]
arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi [new file with mode: 0644]
arch/arm/boot/dts/sun8i-a23-a33.dtsi
arch/arm/boot/dts/sun8i-a23-gt90h-v4.dts
arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts
arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts
arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts
arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts [new file with mode: 0644]
arch/arm/boot/dts/sun8i-a33-olinuxino.dts [new file with mode: 0644]
arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts [new file with mode: 0644]
arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts [new file with mode: 0644]
arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts [new file with mode: 0644]
arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts [new file with mode: 0644]
arch/arm/boot/dts/sun8i-h3.dtsi
arch/arm/boot/dts/sun8i-q8-common.dtsi
arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
arch/arm/boot/dts/sun9i-a80-optimus.dts
arch/arm/boot/dts/sun9i-a80.dtsi
arch/arm/boot/dts/tegra114.dtsi
arch/arm/boot/dts/uniphier-common32.dtsi
arch/arm/boot/dts/uniphier-ld4-ref.dts [new file with mode: 0644]
arch/arm/boot/dts/uniphier-ld4.dtsi [new file with mode: 0644]
arch/arm/boot/dts/uniphier-ld6b-ref.dts [new file with mode: 0644]
arch/arm/boot/dts/uniphier-ld6b.dtsi [new file with mode: 0644]
arch/arm/boot/dts/uniphier-ph1-ld4-ref.dts [deleted file]
arch/arm/boot/dts/uniphier-ph1-ld4.dtsi [deleted file]
arch/arm/boot/dts/uniphier-ph1-ld6b-ref.dts [deleted file]
arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi [deleted file]
arch/arm/boot/dts/uniphier-ph1-pro4-ace.dts [deleted file]
arch/arm/boot/dts/uniphier-ph1-pro4-ref.dts [deleted file]
arch/arm/boot/dts/uniphier-ph1-pro4-sanji.dts [deleted file]
arch/arm/boot/dts/uniphier-ph1-pro4.dtsi [deleted file]
arch/arm/boot/dts/uniphier-ph1-pro5.dtsi [deleted file]
arch/arm/boot/dts/uniphier-ph1-sld3-ref.dts [deleted file]
arch/arm/boot/dts/uniphier-ph1-sld3.dtsi [deleted file]
arch/arm/boot/dts/uniphier-ph1-sld8-ref.dts [deleted file]
arch/arm/boot/dts/uniphier-ph1-sld8.dtsi [deleted file]
arch/arm/boot/dts/uniphier-pro4-ace.dts [new file with mode: 0644]
arch/arm/boot/dts/uniphier-pro4-ref.dts [new file with mode: 0644]
arch/arm/boot/dts/uniphier-pro4-sanji.dts [new file with mode: 0644]
arch/arm/boot/dts/uniphier-pro4.dtsi [new file with mode: 0644]
arch/arm/boot/dts/uniphier-pro5.dtsi [new file with mode: 0644]
arch/arm/boot/dts/uniphier-proxstream2-gentil.dts [deleted file]
arch/arm/boot/dts/uniphier-proxstream2-vodka.dts [deleted file]
arch/arm/boot/dts/uniphier-proxstream2.dtsi [deleted file]
arch/arm/boot/dts/uniphier-pxs2-gentil.dts [new file with mode: 0644]
arch/arm/boot/dts/uniphier-pxs2-vodka.dts [new file with mode: 0644]
arch/arm/boot/dts/uniphier-pxs2.dtsi [new file with mode: 0644]
arch/arm/boot/dts/uniphier-sld3-ref.dts [new file with mode: 0644]
arch/arm/boot/dts/uniphier-sld3.dtsi [new file with mode: 0644]
arch/arm/boot/dts/uniphier-sld8-ref.dts [new file with mode: 0644]
arch/arm/boot/dts/uniphier-sld8.dtsi [new file with mode: 0644]
arch/arm/boot/dts/vf-colibri-eval-v3.dtsi
arch/arm/boot/dts/vf610m4.dtsi
arch/arm/mach-davinci/da8xx-dt.c
arch/arm/mach-nomadik/Kconfig
include/dt-bindings/clock/r7s72100-clock.h
include/dt-bindings/clock/r8a7794-clock.h
include/dt-bindings/pinctrl/samsung.h [new file with mode: 0644]
include/dt-bindings/soc/rockchip,boot-mode.h [new file with mode: 0644]

index 6ffe087..9c97de2 100644 (file)
@@ -38,6 +38,10 @@ Raspberry Pi Compute Module
 Required root node properties:
 compatible = "raspberrypi,compute-module", "brcm,bcm2835";
 
+Raspberry Pi Zero
+Required root node properties:
+compatible = "raspberrypi,model-zero", "brcm,bcm2835";
+
 Generic BCM2835 board
 Required root node properties:
 compatible = "brcm,bcm2835";
index cfaeda4..f0841ce 100644 (file)
@@ -5,6 +5,10 @@ DA850/OMAP-L138/AM18x Evaluation Module (EVM) board
 Required root node properties:
     - compatible = "ti,da850-evm", "ti,da850";
 
+DA850/OMAP-L138/AM18x L138/C6748 Development Kit (LCDK) board
+Required root node properties:
+    - compatible = "ti,da850-lcdk", "ti,da850";
+
 EnBW AM1808 based CMC board
 Required root node properties:
     - compatible = "enbw,cmc", "ti,da850;
index 53d4ff9..8946866 100644 (file)
@@ -8,8 +8,19 @@ Required root node property:
 
  - compatible: must contain "marvell,armada390"
 
-In addition, boards using the Marvell Armada 398 SoC shall have the
-following property before the previous one:
+In addition, boards using the Marvell Armada 395 SoC shall have the
+following property before the common "marvell,armada390" one:
+
+Required root node property:
+
+compatible: must contain "marvell,armada395"
+
+Example:
+
+compatible = "marvell,a395-gp", "marvell,armada395", "marvell,armada390";
+
+Boards using the Marvell Armada 398 SoC shall have the following
+property before the common "marvell,armada390" one:
 
 Required root node property:
 
diff --git a/Documentation/devicetree/bindings/arm/marvell/marvell,orion5x.txt b/Documentation/devicetree/bindings/arm/marvell/marvell,orion5x.txt
new file mode 100644 (file)
index 0000000..748a8f2
--- /dev/null
@@ -0,0 +1,25 @@
+Marvell Orion SoC Family Device Tree Bindings
+---------------------------------------------
+
+Boards with a SoC of the Marvell Orion family, eg 88f5181
+
+* Required root node properties:
+compatible: must contain "marvell,orion5x"
+
+In addition, the above compatible shall be extended with the specific
+SoC. Currently known SoC compatibles are:
+
+"marvell,orion5x-88f5181"
+"marvell,orion5x-88f5182"
+
+And in addition, the compatible shall be extended with the specific
+board. Currently known boards are:
+
+"buffalo,lsgl"
+"buffalo,lswsgl"
+"buffalo,lswtgl"
+"lacie,ethernet-disk-mini-v2"
+"lacie,d2-network"
+"marvell,rd-88f5182-nas"
+"maxtor,shared-storage-2"
+"netgear,wnr854t"
index 94b57f2..f53e2ee 100644 (file)
@@ -180,3 +180,9 @@ Boards:
 
 - DRA722 EVM: Software Development Board for DRA722
   compatible = "ti,dra72-evm", "ti,dra722", "ti,dra72", "ti,dra7"
+
+- DM3730 Logic PD Torpedo + Wireless: Commercial System on Module with WiFi and Bluetooth
+  compatible = "logicpd,dm3730-torpedo-devkit", "ti,omap3630", "ti,omap3"
+
+- DM3730 Logic PD SOM-LV: Commercial System on Module with WiFi and Bluetooth
+  compatible = "logicpd,dm3730-som-lv-devkit", "ti,omap3630", "ti,omap3"
index 6668645..a4f59b5 100644 (file)
@@ -31,6 +31,10 @@ Rockchip platforms device tree bindings
     or
       - compatible = "firefly,firefly-rk3288-beta", "rockchip,rk3288";
 
+- Firefly Firefly-RK3288 Reload board:
+    Required root node properties:
+      - compatible = "firefly,firefly-rk3288-reload", "rockchip,rk3288";
+
 - ChipSPARK PopMetal-RK3288 board:
     Required root node properties:
       - compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";
@@ -110,6 +114,10 @@ Rockchip platforms device tree bindings
 - Rockchip RK3229 Evaluation board:
      - compatible = "rockchip,rk3229-evb", "rockchip,rk3229";
 
+- Rockchip RK3288 Fennec board:
+    Required root node properties:
+     - compatible = "rockchip,rk3288-fennec", "rockchip,rk3288";
+
 - Rockchip RK3399 evb:
     Required root node properties:
       - compatible = "rockchip,rk3399-evb", "rockchip,rk3399";
index 1df32d3..5484c31 100644 (file)
@@ -63,9 +63,13 @@ Boards:
     compatible = "renesas,marzen", "renesas,r8a7779"
   - Porter (M2-LCDP)
     compatible = "renesas,porter", "renesas,r8a7791"
+  - RSKRZA1 (YR0K77210C000BE)
+    compatible = "renesas,rskrza1", "renesas,r7s72100"
   - Salvator-X (RTP0RC7795SIPB0010S)
     compatible = "renesas,salvator-x", "renesas,r8a7795";
   - Salvator-X
     compatible = "renesas,salvator-x", "renesas,r8a7796";
   - SILK (RTP0RC7794LCB00011S)
     compatible = "renesas,silk", "renesas,r8a7794"
+  - Wheat
+    compatible = "renesas,wheat", "renesas,r8a7792"
index 8422988..33797ac 100644 (file)
@@ -4,3 +4,9 @@ Technologic Systems Platforms Device Tree Bindings
 TS-4800 board
 Required root node properties:
        - compatible = "technologic,imx51-ts4800", "fsl,imx51";
+
+TS-4900 is a System-on-Module based on the Freescale i.MX6 System-on-Chip.
+It can be mounted on a carrier board providing additional peripheral connectors.
+Required root node properties:
+       - compatible = "technologic,imx6dl-ts4900", "fsl,imx6dl"
+       - compatible = "technologic,imx6q-ts4900", "fsl,imx6q"
index 869a2f0..3cf4421 100644 (file)
@@ -23,6 +23,11 @@ Required properties :
 
 Optional properties :
 - #power-domain-cells : shall contain 1
+- Qualcomm TSENS (thermal sensor device) on some devices can
+be part of GCC and hence the TSENS properties can also be
+part of the GCC/clock-controller node.
+For more details on the TSENS properties please refer
+Documentation/devicetree/bindings/thermal/qcom-tsens.txt
 
 Example:
        clock-controller@900000 {
@@ -32,3 +37,14 @@ Example:
                #reset-cells = <1>;
                #power-domain-cells = <1>;
        };
+
+Example of GCC with TSENS properties:
+       clock-controller@900000 {
+               compatible = "qcom,gcc-apq8064";
+               reg = <0x00900000 0x4000>;
+               nvmem-cells = <&tsens_calib>, <&tsens_backup>;
+               nvmem-cell-names = "calib", "calib_backup";
+               #clock-cells = <1>;
+               #reset-cells = <1>;
+               #thermal-sensor-cells = <1>;
+       };
index a2ec4c1..6394ea9 100644 (file)
@@ -9,7 +9,7 @@ Required properties:
 - reg: physical base address of the hdmi and length of memory mapped
        region.
 - interrupts: interrupt number to the cpu.
-- hpd-gpio: following information about the hotplug gpio pin.
+- hpd-gpios: following information about the hotplug gpio pin.
        a) phandle of the gpio controller node.
        b) pin number within the gpio controller.
        c) optional flags and pull up/down.
@@ -56,7 +56,7 @@ Example:
                compatible = "samsung,exynos4212-hdmi";
                reg = <0x14530000 0x100000>;
                interrupts = <0 95 0>;
-               hpd-gpio = <&gpx3 7 1>;
+               hpd-gpios = <&gpx3 7 1>;
                ddc = <&hdmi_ddc_node>;
                phy = <&hdmi_phy_node>;
                samsung,syscon-phandle = <&pmu_system_controller>;
diff --git a/Documentation/devicetree/bindings/display/panel/tpo,tpg110.txt b/Documentation/devicetree/bindings/display/panel/tpo,tpg110.txt
new file mode 100644 (file)
index 0000000..f5e3c6f
--- /dev/null
@@ -0,0 +1,47 @@
+TPO TPG110 Panel
+================
+
+This binding builds on the DPI bindings, adding a few properties
+as a superset of a DPI. See panel-dpi.txt for the required DPI
+bindings.
+
+Required properties:
+- compatible : "tpo,tpg110"
+- grestb-gpios : panel reset GPIO
+- scen-gpios : serial control enable GPIO
+- scl-gpios : serial control clock line GPIO
+- sda-gpios : serial control data line GPIO
+
+Required nodes:
+- Video port for DPI input, see panel-dpi.txt
+- Panel timing for DPI setup, see panel-dpi.txt
+
+Example
+-------
+
+panel {
+       compatible = "tpo,tpg110", "panel-dpi";
+       grestb-gpios = <&stmpe_gpio44 5 GPIO_ACTIVE_LOW>;
+       scen-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
+       scl-gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
+       backlight = <&bl>;
+
+       port {
+               nomadik_clcd_panel: endpoint {
+                       remote-endpoint = <&nomadik_clcd_pads>;
+               };
+       };
+
+       panel-timing {
+               clock-frequency = <33200000>;
+               hactive = <800>;
+               hback-porch = <216>;
+               hfront-porch = <40>;
+               hsync-len = <1>;
+               vactive = <480>;
+               vback-porch = <35>;
+               vfront-porch = <10>;
+               vsync-len = <1>;
+       };
+};
diff --git a/Documentation/devicetree/bindings/net/brcm,amac.txt b/Documentation/devicetree/bindings/net/brcm,amac.txt
new file mode 100644 (file)
index 0000000..ba5ecc1
--- /dev/null
@@ -0,0 +1,24 @@
+Broadcom AMAC Ethernet Controller Device Tree Bindings
+-------------------------------------------------------------
+
+Required properties:
+ - compatible: "brcm,amac" or "brcm,nsp-amac"
+ - reg:                Address and length of the GMAC registers,
+               Address and length of the GMAC IDM registers
+ - reg-names:  Names of the registers.  Must have both "amac_base" and
+               "idm_base"
+ - interrupts: Interrupt number
+
+Optional properties:
+- mac-address: See ethernet.txt file in the same directory
+
+Examples:
+
+amac0: ethernet@18022000 {
+       compatible = "brcm,nsp-amac";
+       reg = <0x18022000 0x1000>,
+             <0x18110000 0x1000>;
+       reg-names = "amac_base", "idm_base";
+       interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+       status = "disabled";
+};
diff --git a/Documentation/devicetree/bindings/net/brcm,bgmac-nsp.txt b/Documentation/devicetree/bindings/net/brcm,bgmac-nsp.txt
new file mode 100644 (file)
index 0000000..022946c
--- /dev/null
@@ -0,0 +1,24 @@
+Broadcom GMAC Ethernet Controller Device Tree Bindings
+-------------------------------------------------------------
+
+Required properties:
+ - compatible: "brcm,bgmac-nsp"
+ - reg:                Address and length of the GMAC registers,
+               Address and length of the GMAC IDM registers
+ - reg-names:  Names of the registers.  Must have both "gmac_base" and
+               "idm_base"
+ - interrupts: Interrupt number
+
+Optional properties:
+- mac-address: See ethernet.txt file in the same directory
+
+Examples:
+
+gmac0: ethernet@18022000 {
+       compatible = "brcm,bgmac-nsp";
+       reg = <0x18022000 0x1000>,
+             <0x18110000 0x1000>;
+       reg-names = "gmac_base", "idm_base";
+       interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+       status = "disabled";
+};
index 6db16b9..d49e22d 100644 (file)
@@ -229,6 +229,8 @@ Example: A pin-controller node with pin banks:
 
 Example 1: A pin-controller node with pin groups.
 
+       #include <dt-bindings/pinctrl/samsung.h>
+
        pinctrl_0: pinctrl@11400000 {
                compatible = "samsung,exynos4210-pinctrl";
                reg = <0x11400000 0x1000>;
@@ -238,53 +240,53 @@ Example 1: A pin-controller node with pin groups.
 
                uart0_data: uart0-data {
                        samsung,pins = "gpa0-0", "gpa0-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart0_fctl: uart0-fctl {
                        samsung,pins = "gpa0-2", "gpa0-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart1_data: uart1-data {
                        samsung,pins = "gpa0-4", "gpa0-5";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart1_fctl: uart1-fctl {
                        samsung,pins = "gpa0-6", "gpa0-7";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                i2c2_bus: i2c2-bus {
                        samsung,pins = "gpa0-6", "gpa0-7";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                sd4_bus8: sd4-bus-width8 {
                        part-1 {
                                samsung,pins = "gpk0-3", "gpk0-4",
                                                "gpk0-5", "gpk0-6";
-                               samsung,pin-function = <3>;
-                               samsung,pin-pud = <3>;
-                               samsung,pin-drv = <3>;
+                               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                        };
                        part-2 {
                                samsung,pins = "gpk1-3", "gpk1-4",
                                                "gpk1-5", "gpk1-6";
-                               samsung,pin-function = <4>;
-                               samsung,pin-pud = <4>;
-                               samsung,pin-drv = <3>;
+                               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+                               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                        };
                };
        };
index 77e985f..24c6f65 100644 (file)
@@ -101,6 +101,7 @@ ezchip      EZchip Semiconductor
 fcs    Fairchild Semiconductor
 firefly        Firefly
 focaltech      FocalTech Systems Co.,Ltd
+friendlyarm    Guangzhou FriendlyARM Computer Tech Co., Ltd
 fsl    Freescale Semiconductor
 ge     General Electric Company
 geekbuying     GeekBuying
@@ -137,6 +138,7 @@ innolux     Innolux Corporation
 intel  Intel Corporation
 intercontrol   Inter Control Group
 invensense     InvenSense Inc.
+inversepath    Inverse Path
 iom    Iomega Corporation
 isee   ISEE 2007 S.L.
 isil   Intersil
@@ -280,6 +282,7 @@ toshiba     Toshiba Corporation
 toumaz Toumaz
 tpk    TPK U.S.A. LLC
 tplink TP-LINK Technologies Co., Ltd.
+tpo    TPO
 tronfy Tronfy
 tronsmart      Tronsmart
 truly  Truly Semiconductors Limited
index 8a5ce7d..5327bbe 100644 (file)
@@ -9453,6 +9453,8 @@ L:        linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 L:     linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
 S:     Maintained
 F:     drivers/pinctrl/samsung/
+F:     include/dt-bindings/pinctrl/samsung.h
+F:     Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
 
 PIN CONTROLLER - SINGLE
 M:     Tony Lindgren <tony@atomide.com>
index faacd52..cf989f2 100644 (file)
@@ -69,7 +69,8 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
        bcm2835-rpi-b-rev2.dtb \
        bcm2835-rpi-b-plus.dtb \
        bcm2835-rpi-a-plus.dtb \
-       bcm2836-rpi-2-b.dtb
+       bcm2836-rpi-2-b.dtb \
+       bcm2835-rpi-zero.dtb
 dtb-$(CONFIG_ARCH_BCM_5301X) += \
        bcm4708-asus-rt-ac56u.dtb \
        bcm4708-asus-rt-ac68u.dtb \
@@ -102,8 +103,13 @@ dtb-$(CONFIG_ARCH_BCM_MOBILE) += \
        bcm21664-garnet.dtb \
        bcm23550-sparrow.dtb
 dtb-$(CONFIG_ARCH_BCM_NSP) += \
+       bcm958522er.dtb \
+       bcm958525er.dtb \
        bcm958525xmc.dtb \
+       bcm958622hr.dtb \
+       bcm958623hr.dtb \
        bcm958625hr.dtb \
+       bcm988312hr.dtb \
        bcm958625k.dtb
 dtb-$(CONFIG_ARCH_BERLIN) += \
        berlin2-sony-nsz-gs7.dtb \
@@ -114,6 +120,7 @@ dtb-$(CONFIG_ARCH_BRCMSTB) += \
 dtb-$(CONFIG_ARCH_CLPS711X) += \
        ep7211-edb7211.dtb
 dtb-$(CONFIG_ARCH_DAVINCI) += \
+       da850-lcdk.dtb \
        da850-enbw-cmc.dtb \
        da850-evm.dtb
 dtb-$(CONFIG_ARCH_DIGICOLOR) += \
@@ -315,6 +322,7 @@ dtb-$(CONFIG_SOC_IMX53) += \
        imx53-smd.dtb \
        imx53-tx53-x03x.dtb \
        imx53-tx53-x13x.dtb \
+       imx53-usbarmory.dtb \
        imx53-voipac-bsb.dtb
 dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6dl-apf6dev.dtb \
@@ -330,6 +338,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6dl-gw54xx.dtb \
        imx6dl-gw551x.dtb \
        imx6dl-gw552x.dtb \
+       imx6dl-gw553x.dtb \
        imx6dl-hummingboard.dtb \
        imx6dl-nit6xlite.dtb \
        imx6dl-nitrogen6x.dtb \
@@ -339,6 +348,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6dl-sabreauto.dtb \
        imx6dl-sabrelite.dtb \
        imx6dl-sabresd.dtb \
+       imx6dl-ts4900.dtb \
        imx6dl-tx6dl-comtft.dtb \
        imx6dl-tx6s-8034.dtb \
        imx6dl-tx6s-8035.dtb \
@@ -368,6 +378,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6q-gw54xx.dtb \
        imx6q-gw551x.dtb \
        imx6q-gw552x.dtb \
+       imx6q-gw553x.dtb \
        imx6q-h100.dtb \
        imx6q-hummingboard.dtb \
        imx6q-icore-rqs.dtb \
@@ -382,6 +393,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6q-sabresd.dtb \
        imx6q-sbc6x.dtb \
        imx6q-tbs2910.dtb \
+       imx6q-ts4900.dtb \
        imx6q-tx6q-1010.dtb \
        imx6q-tx6q-1010-comtft.dtb \
        imx6q-tx6q-1020.dtb \
@@ -407,6 +419,7 @@ dtb-$(CONFIG_SOC_IMX6SX) += \
        imx6sx-sdb.dtb
 dtb-$(CONFIG_SOC_IMX6UL) += \
        imx6ul-14x14-evk.dtb \
+       imx6ul-geam-kit.dtb \
        imx6ul-pico-hobbit.dtb \
        imx6ul-tx6ul-0010.dtb \
        imx6ul-tx6ul-0011.dtb \
@@ -417,7 +430,8 @@ dtb-$(CONFIG_SOC_IMX7D) += \
        imx7d-nitrogen7.dtb \
        imx7d-sbc-imx7.dtb \
        imx7d-sdb.dtb \
-       imx7s-colibri-eval-v3.dtb
+       imx7s-colibri-eval-v3.dtb \
+       imx7s-warp.dtb
 dtb-$(CONFIG_SOC_LS1021A) += \
        ls1021a-qds.dtb \
        ls1021a-twr.dtb
@@ -570,6 +584,7 @@ dtb-$(CONFIG_SOC_OMAP5) += \
        omap5-uevm.dtb
 dtb-$(CONFIG_SOC_DRA7XX) += \
        am57xx-beagle-x15.dtb \
+       am57xx-beagle-x15-revb1.dtb \
        am57xx-cl-som-am57x.dtb \
        am57xx-sbc-am57x.dtb \
        am572x-idk.dtb \
@@ -584,6 +599,7 @@ dtb-$(CONFIG_ARCH_ORION5X) += \
        orion5x-linkstation-lswtgl.dtb \
        orion5x-lswsgl.dtb \
        orion5x-maxtor-shared-storage-2.dtb \
+       orion5x-netgear-wnr854t.dtb \
        orion5x-rd88f5182-nas.dtb
 dtb-$(CONFIG_ARCH_PRIMA2) += \
        prima2-evb.dtb
@@ -603,14 +619,19 @@ dtb-$(CONFIG_ARCH_QCOM) += \
        qcom-ipq8064-ap148.dtb \
        qcom-msm8660-surf.dtb \
        qcom-msm8960-cdp.dtb \
+       qcom-msm8974-lge-nexus5-hammerhead.dtb \
        qcom-msm8974-sony-xperia-honami.dtb
 dtb-$(CONFIG_ARCH_REALVIEW) += \
        arm-realview-pb1176.dtb \
        arm-realview-pb11mp.dtb \
        arm-realview-eb.dtb \
+       arm-realview-eb-bbrevd.dtb \
        arm-realview-eb-11mp.dtb \
-       arm-realview-eb-11mp-revb.dtb \
+       arm-realview-eb-11mp-bbrevd.dtb \
+       arm-realview-eb-11mp-ctrevb.dtb \
+       arm-realview-eb-11mp-bbrevd-ctrevb.dtb \
        arm-realview-eb-a9mp.dtb \
+       arm-realview-eb-a9mp-bbrevd.dtb \
        arm-realview-pba8.dtb \
        arm-realview-pbx-a9.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += \
@@ -624,8 +645,10 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \
        rk3229-evb.dtb \
        rk3288-evb-act8846.dtb \
        rk3288-evb-rk808.dtb \
+       rk3288-fennec.dtb \
        rk3288-firefly-beta.dtb \
        rk3288-firefly.dtb \
+       rk3288-firefly-reload.dtb \
        rk3288-miqi.dtb \
        rk3288-popmetal.dtb \
        rk3288-r89.dtb \
@@ -651,6 +674,7 @@ dtb-$(CONFIG_ARCH_S5PV210) += \
 dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \
        emev2-kzm9d.dtb \
        r7s72100-genmai.dtb \
+       r7s72100-rskrza1.dtb \
        r8a73a4-ape6evm.dtb \
        r8a7740-armadillo800eva.dtb \
        r8a7778-bockw.dtb \
@@ -659,6 +683,7 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \
        r8a7791-koelsch.dtb \
        r8a7791-porter.dtb \
        r8a7792-blanche.dtb \
+       r8a7792-wheat.dtb \
        r8a7793-gose.dtb \
        r8a7794-alt.dtb \
        r8a7794-silk.dtb \
@@ -686,6 +711,7 @@ dtb-$(CONFIG_ARCH_SPEAR6XX) += \
 dtb-$(CONFIG_ARCH_STI) += \
        stih407-b2120.dtb \
        stih410-b2120.dtb \
+       stih410-b2260.dtb \
        stih415-b2000.dtb \
        stih415-b2020.dtb \
        stih416-b2000.dtb \
@@ -727,6 +753,7 @@ dtb-$(CONFIG_MACH_SUN5I) += \
        sun5i-a10s-wobo-i5.dtb \
        sun5i-a13-difrnce-dit4350.dtb \
        sun5i-a13-empire-electronix-d709.dtb \
+       sun5i-a13-empire-electronix-m712.dtb \
        sun5i-a13-hsg-h702.dtb \
        sun5i-a13-inet-98v-rev2.dtb \
        sun5i-a13-olinuxino.dtb \
@@ -743,6 +770,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \
        sun6i-a31-mele-a1000g-quad.dtb \
        sun6i-a31s-colorfly-e708-q1.dtb \
        sun6i-a31s-cs908.dtb \
+       sun6i-a31s-inet-q972.dtb \
        sun6i-a31s-primo81.dtb \
        sun6i-a31s-sina31s.dtb \
        sun6i-a31s-sinovoip-bpi-m2.dtb \
@@ -782,16 +810,22 @@ dtb-$(CONFIG_MACH_SUN8I) += \
        sun8i-a23-q8-tablet.dtb \
        sun8i-a33-et-q8-v1.6.dtb \
        sun8i-a33-ga10h-v1.1.dtb \
+       sun8i-a33-inet-d978-rev2.dtb \
        sun8i-a33-ippo-q8h-v1.2.dtb \
+       sun8i-a33-olinuxino.dtb \
        sun8i-a33-q8-tablet.dtb \
        sun8i-a33-sinlinx-sina33.dtb \
        sun8i-a83t-allwinner-h8homlet-v2.dtb \
        sun8i-a83t-cubietruck-plus.dtb \
        sun8i-h3-bananapi-m2-plus.dtb \
+       sun8i-h3-nanopi-neo.dtb \
        sun8i-h3-orangepi-2.dtb \
+       sun8i-h3-orangepi-lite.dtb \
        sun8i-h3-orangepi-one.dtb \
        sun8i-h3-orangepi-pc.dtb \
+       sun8i-h3-orangepi-pc-plus.dtb \
        sun8i-h3-orangepi-plus.dtb \
+       sun8i-h3-orangepi-plus2e.dtb \
        sun8i-r16-parrot.dtb
 dtb-$(CONFIG_MACH_SUN9I) += \
        sun9i-a80-optimus.dtb \
@@ -836,15 +870,15 @@ dtb-$(CONFIG_ARCH_U8500) += \
        ste-ccu8540.dtb \
        ste-ccu9540.dtb
 dtb-$(CONFIG_ARCH_UNIPHIER) += \
-       uniphier-ph1-ld4-ref.dtb \
-       uniphier-ph1-ld6b-ref.dtb \
-       uniphier-ph1-pro4-ace.dtb \
-       uniphier-ph1-pro4-ref.dtb \
-       uniphier-ph1-pro4-sanji.dtb \
-       uniphier-ph1-sld3-ref.dtb \
-       uniphier-ph1-sld8-ref.dtb \
-       uniphier-proxstream2-gentil.dtb \
-       uniphier-proxstream2-vodka.dtb
+       uniphier-ld4-ref.dtb \
+       uniphier-ld6b-ref.dtb \
+       uniphier-pro4-ace.dtb \
+       uniphier-pro4-ref.dtb \
+       uniphier-pro4-sanji.dtb \
+       uniphier-pxs2-gentil.dtb \
+       uniphier-pxs2-vodka.dtb \
+       uniphier-sld3-ref.dtb \
+       uniphier-sld8-ref.dtb
 dtb-$(CONFIG_ARCH_VERSATILE) += \
        versatile-ab.dtb \
        versatile-pb.dtb
index b689172..dd45d17 100644 (file)
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
 
-       vbat: fixedregulator@0 {
+       vbat: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "vbat";
                regulator-min-microvolt = <5000000>;
@@ -37,7 +37,7 @@
                regulator-boot-on;
        };
 
-       wl12xx_vmmc: fixedregulator@2 {
+       wl12xx_vmmc: fixedregulator2 {
                pinctrl-names = "default";
                pinctrl-0 = <&wl12xx_gpio>;
                compatible = "regulator-fixed";
index 58a05f7..c2bee45 100644 (file)
 
                compatible = "gpio-leds";
 
-               led@0 {
+               led0 {
                        label = "base:red:user";
                        gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;   /* gpio1_21 */
                        default-state = "off";
                };
 
-               led@1 {
+               led1 {
                        label = "base:green:user";
                        gpios = <&gpio2 0 GPIO_ACTIVE_HIGH>;    /* gpio2_0 */
                        default-state = "off";
index e247c15..007b5e5 100644 (file)
@@ -13,7 +13,7 @@
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
 
                compatible = "gpio-leds";
 
-               led@2 {
+               led2 {
                        label = "beaglebone:green:heartbeat";
                        gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                        default-state = "off";
                };
 
-               led@3 {
+               led3 {
                        label = "beaglebone:green:mmc0";
                        gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "mmc0";
                        default-state = "off";
                };
 
-               led@4 {
+               led4 {
                        label = "beaglebone:green:usr2";
                        gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "cpu0";
                        default-state = "off";
                };
 
-               led@5 {
+               led5 {
                        label = "beaglebone:green:usr3";
                        gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "mmc1";
@@ -57,7 +57,7 @@
                };
        };
 
-       vmmcsd_fixed: fixedregulator@0 {
+       vmmcsd_fixed: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "vmmcsd_fixed";
                regulator-min-microvolt = <3300000>;
index ca72167..55c0e95 100644 (file)
        status = "okay";
 };
 
-&cpu0_opp_table {
-       /*
-        * All PG 2.0 silicon may not support 1GHz but some of the early
-        * BeagleBone Blacks have PG 2.0 silicon which is guaranteed
-        * to support 1GHz OPP so enable it for PG 2.0 on this board.
-        */
-       oppnitro@1000000000 {
-               opp-supported-hw = <0x06 0x0100>;
-       };
-};
-
 &am33xx_pinmux {
        nxp_hdmi_bonelt_pins: nxp_hdmi_bonelt_pins {
                pinctrl-single,pins = <
index 1d64735..f9ee585 100644 (file)
@@ -19,7 +19,7 @@
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x20000000>; /* 512 MB */
        };
index 817b1de..947c81b 100644 (file)
@@ -17,7 +17,7 @@
        model = "CompuLab CM-T335";
        compatible = "compulab,cm-t335", "ti,am33xx";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x8000000>;   /* 128 MB */
        };
@@ -26,7 +26,7 @@
                compatible = "gpio-leds";
                pinctrl-names = "default";
                pinctrl-0 = <&gpio_led_pins>;
-               led@0 {
+               led0 {
                        label = "cm_t335:green";
                        gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;     /* gpio2_0 */
                        linux,default-trigger = "heartbeat";
@@ -34,7 +34,7 @@
        };
 
        /* regulator for mmc */
-       vmmc_fixed: fixedregulator@0 {
+       vmmc_fixed: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "vmmc_fixed";
                regulator-min-microvolt = <3300000>;
@@ -42,7 +42,7 @@
        };
 
        /* Regulator for WiFi */
-       vwlan_fixed: fixedregulator@2 {
+       vwlan_fixed: fixedregulator2 {
                compatible = "regulator-fixed";
                regulator-name = "vwlan_fixed";
                gpio = <&gpio0 20 GPIO_ACTIVE_HIGH>; /* gpio0_20 */
index 5d28712..e82432c 100644 (file)
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
 
-       vbat: fixedregulator@0 {
+       vbat: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "vbat";
                regulator-min-microvolt = <5000000>;
                regulator-boot-on;
        };
 
-       lis3_reg: fixedregulator@1 {
+       lis3_reg: fixedregulator1 {
                compatible = "regulator-fixed";
                regulator-name = "lis3_reg";
                regulator-boot-on;
        };
 
-       wlan_en_reg: fixedregulator@2 {
+       wlan_en_reg: fixedregulator2 {
                compatible = "regulator-fixed";
                regulator-name = "wlan-en-regulator";
                regulator-min-microvolt = <1800000>;
@@ -53,7 +53,7 @@
                enable-active-high;
        };
 
-       matrix_keypad: matrix_keypad@0 {
+       matrix_keypad: matrix_keypad0 {
                compatible = "gpio-matrix-keypad";
                debounce-delay-ms = <5>;
                col-scan-delay-us = <2>;
                                0x0201006c>;    /* DOWN */
        };
 
-       gpio_keys: volume_keys@0 {
+       gpio_keys: volume_keys0 {
                compatible = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
                autorepeat;
 
-               switch@9 {
+               switch9 {
                        label = "volume-up";
                        linux,code = <115>;
                        gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
                        wakeup-source;
                };
 
-               switch@10 {
+               switch10 {
                        label = "volume-down";
                        linux,code = <114>;
                        gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
 
 &lcdc {
        status = "okay";
+
+       blue-and-red-wiring = "crossed";
 };
 
 &elm {
index 09308d6..975c36e 100644 (file)
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
 
-       vbat: fixedregulator@0 {
+       vbat: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "vbat";
                regulator-min-microvolt = <5000000>;
                regulator-boot-on;
        };
 
-       lis3_reg: fixedregulator@1 {
+       lis3_reg: fixedregulator1 {
                compatible = "regulator-fixed";
                regulator-name = "lis3_reg";
                regulator-boot-on;
        };
 
-       wl12xx_vmmc: fixedregulator@2 {
+       wl12xx_vmmc: fixedregulator2 {
                pinctrl-names = "default";
                pinctrl-0 = <&wl12xx_gpio>;
                compatible = "regulator-fixed";
@@ -58,7 +58,7 @@
                enable-active-high;
        };
 
-       vtt_fixed: fixedregulator@3 {
+       vtt_fixed: fixedregulator3 {
                compatible = "regulator-fixed";
                regulator-name = "vtt";
                regulator-min-microvolt = <1500000>;
 
                compatible = "gpio-leds";
 
-               led@1 {
+               led1 {
                        label = "evmsk:green:usr0";
                        gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@2 {
+               led2 {
                        label = "evmsk:green:usr1";
                        gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@3 {
+               led3 {
                        label = "evmsk:green:mmc0";
                        gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "mmc0";
                        default-state = "off";
                };
 
-               led@4 {
+               led4 {
                        label = "evmsk:green:heartbeat";
                        gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                };
        };
 
-       gpio_buttons: gpio_buttons@0 {
+       gpio_buttons: gpio_buttons0 {
                compatible = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
 
-               switch@1 {
+               switch1 {
                        label = "button0";
                        linux,code = <0x100>;
                        gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
                };
 
-               switch@2 {
+               switch2 {
                        label = "button1";
                        linux,code = <0x101>;
                        gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
                };
 
-               switch@3 {
+               switch3 {
                        label = "button2";
                        linux,code = <0x102>;
                        gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>;
                        wakeup-source;
                };
 
-               switch@4 {
+               switch4 {
                        label = "button3";
                        linux,code = <0x103>;
                        gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
                pinctrl-1 = <&lcd_pins_sleep>;
                status = "okay";
                panel-info {
-                       ac-bias           = <255>;
-                       ac-bias-intrpt    = <0>;
-                       dma-burst-sz      = <16>;
-                       bpp               = <32>;
-                       fdd               = <0x80>;
-                       sync-edge         = <0>;
-                       sync-ctrl         = <1>;
-                       raster-order      = <0>;
-                       fifo-th           = <0>;
+                       ac-bias         = <255>;
+                       ac-bias-intrpt  = <0>;
+                       dma-burst-sz    = <16>;
+                       bpp             = <32>;
+                       fdd             = <0x80>;
+                       sync-edge       = <0>;
+                       sync-ctrl       = <1>;
+                       raster-order    = <0>;
+                       fifo-th         = <0>;
                };
                display-timings {
                        480x272 {
-                               hactive         = <480>;
-                               vactive         = <272>;
-                               hback-porch     = <43>;
-                               hfront-porch    = <8>;
-                               hsync-len       = <4>;
-                               vback-porch     = <12>;
-                               vfront-porch    = <4>;
-                               vsync-len       = <10>;
+                               hactive         = <480>;
+                               vactive         = <272>;
+                               hback-porch     = <43>;
+                               hfront-porch    = <8>;
+                               hsync-len       = <4>;
+                               vback-porch     = <12>;
+                               vfront-porch    = <4>;
+                               vsync-len       = <10>;
                                clock-frequency = <9000000>;
-                               hsync-active    = <0>;
-                               vsync-active    = <0>;
+                               hsync-active    = <0>;
+                               vsync-active    = <0>;
                        };
                };
        };
 };
 
 &lcdc {
-      status = "okay";
+       status = "okay";
+
+       blue-and-red-wiring = "crossed";
 };
index 7d8b8fe..85e04c2 100644 (file)
        model = "TI AM3359 ICE-V2";
        compatible = "ti,am3359-icev2", "ti,am33xx";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
 
-       vbat: fixedregulator@0 {
+       vbat: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "vbat";
                regulator-min-microvolt = <5000000>;
@@ -32,7 +32,7 @@
                regulator-boot-on;
        };
 
-       vtt_fixed: fixedregulator@1 {
+       vtt_fixed: fixedregulator1 {
                compatible = "regulator-fixed";
                regulator-name = "vtt";
                regulator-min-microvolt = <1500000>;
                enable-active-high;
        };
 
-       leds@0 {
+       leds0 {
                compatible = "gpio-leds";
 
-               led@0 {
+               led0 {
                        label = "out0";
                        gpios = <&tpic2810 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@1 {
+               led1 {
                        label = "out1";
                        gpios = <&tpic2810 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@2 {
+               led2 {
                        label = "out2";
                        gpios = <&tpic2810 2 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@3 {
+               led3 {
                        label = "out3";
                        gpios = <&tpic2810 3 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@4 {
+               led4 {
                        label = "out4";
                        gpios = <&tpic2810 4 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@5 {
+               led5 {
                        label = "out5";
                        gpios = <&tpic2810 5 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@6 {
+               led6 {
                        label = "out6";
                        gpios = <&tpic2810 6 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@7 {
+               led7 {
                        label = "out7";
                        gpios = <&tpic2810 7 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
        };
 
        /* Tricolor status LEDs */
-       leds@1 {
+       leds1 {
                compatible = "gpio-leds";
                pinctrl-names = "default";
                pinctrl-0 = <&user_leds>;
 
-               led@0 {
+               led0 {
                        label = "status0:red:cpu0";
                        gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                        linux,default-trigger = "cpu0";
                };
 
-               led@1 {
+               led1 {
                        label = "status0:green:usr";
                        gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@2 {
+               led2 {
                        label = "status0:yellow:usr";
                        gpios = <&gpio3 9 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@3 {
+               led3 {
                        label = "status1:red:mmc0";
                        gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                        linux,default-trigger = "mmc0";
                };
 
-               led@4 {
+               led4 {
                        label = "status1:green:usr";
                        gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@5 {
+               led5 {
                        label = "status1:yellow:usr";
                        gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
        };
+       gpio-decoder {
+               compatible = "gpio-decoder";
+               gpios = <&pca9536 3 GPIO_ACTIVE_HIGH>,
+                       <&pca9536 2 GPIO_ACTIVE_HIGH>,
+                       <&pca9536 1 GPIO_ACTIVE_HIGH>,
+                       <&pca9536 0 GPIO_ACTIVE_HIGH>;
+               linux,axis = <0>; /* ABS_X */
+               decoder-max-value = <9>;
+       };
 };
 
 &am33xx_pinmux {
index e7d9ca1..a5769a8 100644 (file)
@@ -20,7 +20,7 @@
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
 
                compatible = "gpio-leds";
 
-               led@0 {
+               led0 {
                        label = "com:green:user";
                        gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
                        default-state = "on";
                };
        };
 
-       vbat: fixedregulator@0 {
+       vbat: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "vbat";
                regulator-min-microvolt = <5000000>;
@@ -46,7 +46,7 @@
                regulator-boot-on;
        };
 
-       vmmc: fixedregulator@0 {
+       vmmc: fixedregulator1 {
                compatible = "regulator-fixed";
                regulator-name = "vmmc";
                regulator-min-microvolt = <3300000>;
index d97b0ef..1d6c6fa 100644 (file)
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x20000000>; /* 512 MB */
        };
 
        /* Power supply provides a fixed 5V @2A */
-       vbat: fixedregulator@0 {
+       vbat: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "vbat";
                regulator-min-microvolt = <5000000>;
@@ -34,7 +34,7 @@
        };
 
        /* Power supply provides a fixed 3.3V @3A */
-       vmmcsd_fixed: fixedregulator@1 {
+       vmmcsd_fixed: fixedregulator1 {
                compatible = "regulator-fixed";
                regulator-name = "vmmcsd_fixed";
                regulator-min-microvolt = <3300000>;
index f313999..483d585 100644 (file)
@@ -19,7 +19,7 @@
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
@@ -27,7 +27,7 @@
        leds {
                compatible = "gpio-leds";
 
-               led@0 {
+               led0 {
                        label = "nanobone:green:usr1";
                        gpios = <&gpio1 5 0>;
                        default-state = "off";
index 8867aaa..30e2f87 100644 (file)
@@ -20,7 +20,7 @@
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x20000000>; /* 512 MB */
        };
                compatible = "ti,da830-evm-audio";
        };
 
-       vbat: fixedregulator@0 {
+       vbat: fixedregulator0 {
                compatible = "regulator-fixed";
        };
 
-       v3v3c_reg: fixedregulator@1 {
+       v3v3c_reg: fixedregulator1 {
                compatible = "regulator-fixed";
        };
 
-       vdd5_reg: fixedregulator@2 {
+       vdd5_reg: fixedregulator2 {
                compatible = "regulator-fixed";
        };
 };
        pinctrl-names = "default";
        pinctrl-0 = <&user_leds_pins>;
 
-       led@0 {
+       led0 {
                label = "pepper:user0:blue";
                gpios = <&gpio1 20 GPIO_ACTIVE_HIGH>;
                linux,default-trigger = "none";
                default-state = "off";
        };
 
-       led@1 {
+       led1 {
                label = "pepper:user1:red";
                gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
                linux,default-trigger = "none";
        #address-cells = <1>;
        #size-cells = <0>;
 
-       button@0 {
+       button0 {
                label = "home";
                linux,code = <KEY_HOME>;
                gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
                wakeup-source;
        };
 
-       button@1 {
+       button1 {
                label = "menu";
                linux,code = <KEY_MENU>;
                gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
                wakeup-source;
        };
 
-       buttons@2 {
+       buttons2 {
                label = "power";
                linux,code = <KEY_POWER>;
                gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
index 1263c9d..75e24ad 100644 (file)
@@ -25,7 +25,7 @@
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
@@ -33,7 +33,7 @@
        regulators {
                compatible = "simple-bus";
 
-               vcc5v: fixedregulator@0 {
+               vcc5v: fixedregulator0 {
                        compatible = "regulator-fixed";
                        regulator-name = "vcc5v";
                        regulator-min-microvolt = <5000000>;
index 837d5b8..bf8727a 100644 (file)
 
                compatible = "gpio-leds";
 
-               led@1 {
+               led1 {
                        label = "shc:power:red";
                        gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@2 {
+               led2 {
                        label = "shc:power:bl";
                        gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "timer";
                        default-state = "on";
                };
 
-               led@3 {
+               led3 {
                        label = "shc:lan:red";
                        gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@4 {
+               led4 {
                        label = "shc:lan:bl";
                        gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@5 {
+               led5 {
                        label = "shc:cloud:red";
                        gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@6 {
+               led6 {
                        label = "shc:cloud:bl";
                        gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x20000000>; /* 512 MB */
        };
 
-       vmmcsd_fixed: fixedregulator@0 {
+       vmmcsd_fixed: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "vmmcsd_fixed";
                regulator-min-microvolt = <3300000>;
index a6efbe6..b0dfa6f 100644 (file)
                };
        };
 
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x20000000>; /* 512 MB */
+       };
+
        chosen {
                stdout-path = &uart0;
        };
                pinctrl-names = "default";
                pinctrl-0 = <&led_pins>;
 
-               led@0 {
+               led0 {
                        label = "sl50:green:usr0";
                        gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
 
-               led@1 {
+               led1 {
                        label = "sl50:red:usr1";
                        gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
 
-               led@2 {
+               led2 {
                        label = "sl50:green:usr2";
                        gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
 
-               led@3 {
+               led3 {
                        label = "sl50:red:usr3";
                        gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
        };
 
-       vmmcsd_fixed: fixedregulator@0 {
+       vmmcsd_fixed: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "vmmcsd_fixed";
                regulator-min-microvolt = <3300000>;
index 282f6d4..02c6736 100644 (file)
        model = "Phytec AM335x phyBOARD-WEGA";
        compatible = "phytec,am335x-wega", "phytec,am335x-phycore-som", "ti,am33xx";
 
+       sound: sound_iface {
+               compatible = "ti,da830-evm-audio";
+       };
+
        regulators {
                compatible = "simple-bus";
 
-               vcc3v3: fixedregulator@1 {
+               vcc3v3: fixedregulator1 {
                        compatible = "regulator-fixed";
                        regulator-name = "vcc3v3";
                        regulator-min-microvolt = <3300000>;
        };
 };
 
+/* Audio */
+&am33xx_pinmux {
+       mcasp0_pins: pinmux_mcasp0 {
+               pinctrl-single,pins = <
+                       AM33XX_IOPAD(0x9AC, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_ahclkx.mcasp0_ahclkx */
+                       AM33XX_IOPAD(0x990, PIN_INPUT_PULLDOWN | MUX_MODE0)  /* mcasp0_aclkx.mcasp0_aclkx */
+                       AM33XX_IOPAD(0x994, PIN_INPUT_PULLDOWN | MUX_MODE0)  /* mcasp0_fsx.mcasp0_fsx */
+                       AM33XX_IOPAD(0x998, PIN_INPUT_PULLDOWN | MUX_MODE0)  /* mcasp0_axr0.mcasp0_axr0 */
+                       AM33XX_IOPAD(0x9A8, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_axr1.mcasp0_axr1 */
+               >;
+       };
+};
+
+&i2c0 {
+       tlv320aic3007: tlv320aic3007@18 {
+               compatible = "ti,tlv320aic3007";
+               reg = <0x18>;
+               AVDD-supply = <&vcc3v3>;
+               IOVDD-supply = <&vcc3v3>;
+               DRVDD-supply = <&vcc3v3>;
+               DVDD-supply = <&vdig1_reg>;
+               status = "okay";
+       };
+};
+
+&mcasp0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcasp0_pins>;
+       op-mode = <0>; /* DAVINCI_MCASP_IIS_MODE */
+       tdm-slots = <2>;
+       serial-dir = <
+               2 1 0 0 /* # 0: INACTIVE, 1: TX, 2: RX */
+       >;
+       tx-num-evt = <16>;
+       rt-num-evt = <16>;
+       status = "okay";
+};
+
+&sound {
+       ti,model = "AM335x-Wega";
+       ti,audio-codec = <&tlv320aic3007>;
+       ti,mcasp-controller = <&mcasp0>;
+       ti,audio-routing =
+               "Line Out",             "LLOUT",
+               "Line Out",             "RLOUT",
+               "LINE1L",               "Line In",
+               "LINE1R",               "Line In";
+       clocks = <&mcasp0_fck>;
+       clock-names = "mclk";
+       status = "okay";
+};
+
 /* CAN Busses */
 &am33xx_pinmux {
        dcan1_pins: pinmux_dcan1 {
        status = "okay";
 };
 
+/* Power */
+&vdig1_reg {
+       regulator-boot-on;
+       regulator-always-on;
+};
+
 /* UARTs */
 &am33xx_pinmux {
        uart0_pins: pinmux_uart0 {
index 98748c6..194d884 100644 (file)
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/pinctrl/am33xx.h>
 
-#include "skeleton.dtsi"
-
 / {
        compatible = "ti,am33xx";
        interrupt-parent = <&intc>;
+       #address-cells = <1>;
+       #size-cells = <1>;
 
        aliases {
                i2c0 = &i2c0;
                        device_type = "cpu";
                        reg = <0>;
 
-                       operating-points-v2 = <&cpu0_opp_table>;
-                       ti,syscon-efuse = <&scm_conf 0x7fc 0x1fff 0>;
-                       ti,syscon-rev = <&scm_conf 0x600>;
+                       /*
+                        * To consider voltage drop between PMIC and SoC,
+                        * tolerance value is reduced to 2% from 4% and
+                        * voltage value is increased as a precaution.
+                        */
+                       operating-points = <
+                               /* kHz    uV */
+                               720000  1285000
+                               600000  1225000
+                               500000  1125000
+                               275000  1125000
+                       >;
+                       voltage-tolerance = <2>; /* 2 percentage */
 
                        clocks = <&dpll_mpu_ck>;
                        clock-names = "cpu";
                };
        };
 
-       cpu0_opp_table: opp_table0 {
-               compatible = "operating-points-v2";
-
-               /*
-                * The three following nodes are marked with opp-suspend
-                * because the can not be enabled simultaneously on a
-                * single SoC.
-                */
-               opp50@300000000 {
-                       opp-hz = /bits/ 64 <300000000>;
-                       opp-microvolt = <950000 931000 969000>;
-                       opp-supported-hw = <0x06 0x0010>;
-                       opp-suspend;
-               };
-
-               opp100@275000000 {
-                       opp-hz = /bits/ 64 <275000000>;
-                       opp-microvolt = <1100000 1078000 1122000>;
-                       opp-supported-hw = <0x01 0x00FF>;
-                       opp-suspend;
-               };
-
-               opp100@300000000 {
-                       opp-hz = /bits/ 64 <300000000>;
-                       opp-microvolt = <1100000 1078000 1122000>;
-                       opp-supported-hw = <0x06 0x0020>;
-                       opp-suspend;
-               };
-
-               opp100@500000000 {
-                       opp-hz = /bits/ 64 <500000000>;
-                       opp-microvolt = <1100000 1078000 1122000>;
-                       opp-supported-hw = <0x01 0xFFFF>;
-               };
-
-               opp100@600000000 {
-                       opp-hz = /bits/ 64 <600000000>;
-                       opp-microvolt = <1100000 1078000 1122000>;
-                       opp-supported-hw = <0x06 0x0040>;
-               };
-
-               opp120@600000000 {
-                       opp-hz = /bits/ 64 <600000000>;
-                       opp-microvolt = <1200000 1176000 1224000>;
-                       opp-supported-hw = <0x01 0xFFFF>;
-               };
-
-               opp120@720000000 {
-                       opp-hz = /bits/ 64 <720000000>;
-                       opp-microvolt = <1200000 1176000 1224000>;
-                       opp-supported-hw = <0x06 0x0080>;
-               };
-
-               oppturbo@720000000 {
-                       opp-hz = /bits/ 64 <720000000>;
-                       opp-microvolt = <1260000 1234800 1285200>;
-                       opp-supported-hw = <0x01 0xFFFF>;
-               };
-
-               oppturbo@800000000 {
-                       opp-hz = /bits/ 64 <800000000>;
-                       opp-microvolt = <1260000 1234800 1285200>;
-                       opp-supported-hw = <0x06 0x0100>;
-               };
-
-               oppnitro@1000000000 {
-                       opp-hz = /bits/ 64 <1000000000>;
-                       opp-microvolt = <1325000 1298500 1351500>;
-                       opp-supported-hw = <0x04 0x0200>;
-               };
-       };
-
        pmu {
                compatible = "arm,cortex-a8-pmu";
                interrupts = <3>;
index f9d8f39..083ff50 100644 (file)
@@ -15,7 +15,7 @@
        model = "TI AM3517 CraneBoard (TMDSEVM3517)";
        compatible = "ti,am3517-craneboard", "ti,am3517", "ti,omap3";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>;  /* 256 MB */
        };
index b4127c6..0e4a125 100644 (file)
@@ -13,7 +13,7 @@
        model = "TI AM3517 EVM (AM3517/05 TMDSEVM3517)";
        compatible = "ti,am3517-evm", "ti,am3517", "ti,omap3";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
index 5e3f5e8..0db19d3 100644 (file)
@@ -15,7 +15,7 @@
                serial3 = &uart4;
        };
 
-       ocp {
+       ocp@68000000 {
                am35x_otg_hs: am35x_otg_hs@5c040000 {
                        compatible = "ti,omap3-musb";
                        ti,hwmods = "am35x_otg_hs";
index fdf5ce6..3395783 100644 (file)
@@ -13,7 +13,7 @@
        model = "TeeJet Mt.Ventoux";
        compatible = "teejet,mt_ventoux", "ti,omap3";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
index 0fadae5..a275fa9 100644 (file)
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 
-#include "skeleton.dtsi"
-
 / {
        compatible = "ti,am4372", "ti,am43";
        interrupt-parent = <&wakeupgen>;
+       #address-cells = <1>;
+       #size-cells = <1>;
 
+       memory@0 {
+               device_type = "memory";
+               reg = <0 0>;
+       };
 
        aliases {
                i2c0 = &i2c0;
                cache-level = <2>;
        };
 
-       ocp {
+       ocp@44000000 {
                compatible = "ti,am4372-l3-noc", "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
index 9551c47..9e92d48 100644 (file)
                #interrupt-cells = <2>;
 
                dcdc1: regulator-dcdc1 {
-                       compatible = "ti,tps65218-dcdc1";
                        regulator-name = "vdd_core";
                        regulator-min-microvolt = <912000>;
                        regulator-max-microvolt = <1144000>;
                };
 
                dcdc2: regulator-dcdc2 {
-                       compatible = "ti,tps65218-dcdc2";
                        regulator-name = "vdd_mpu";
                        regulator-min-microvolt = <912000>;
                        regulator-max-microvolt = <1378000>;
                };
 
                dcdc3: regulator-dcdc3 {
-                       compatible = "ti,tps65218-dcdc3";
                        regulator-name = "vdcdc3";
                        regulator-suspend-enable;
                        regulator-min-microvolt = <1500000>;
                };
 
                dcdc5: regulator-dcdc5 {
-                       compatible = "ti,tps65218-dcdc5";
                        regulator-name = "v1_0bat";
                        regulator-min-microvolt = <1000000>;
                        regulator-max-microvolt = <1000000>;
                };
 
                dcdc6: regulator-dcdc6 {
-                       compatible = "ti,tps65218-dcdc6";
                        regulator-name = "v1_8bat";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                };
 
                ldo1: regulator-ldo1 {
-                       compatible = "ti,tps65218-ldo1";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        regulator-boot-on;
index 14677d5..957840c 100644 (file)
@@ -58,7 +58,7 @@
                default-brightness-level = <8>;
        };
 
-       matrix_keypad: matrix_keypad@0 {
+       matrix_keypad: matrix_keypad0 {
                compatible = "gpio-matrix-keypad";
                debounce-delay-ms = <5>;
                col-scan-delay-us = <2>;
                #interrupt-cells = <2>;
 
                dcdc1: regulator-dcdc1 {
-                       compatible = "ti,tps65218-dcdc1";
                        regulator-name = "vdd_core";
                        regulator-min-microvolt = <912000>;
                        regulator-max-microvolt = <1144000>;
                };
 
                dcdc2: regulator-dcdc2 {
-                       compatible = "ti,tps65218-dcdc2";
                        regulator-name = "vdd_mpu";
                        regulator-min-microvolt = <912000>;
                        regulator-max-microvolt = <1378000>;
                };
 
                dcdc3: regulator-dcdc3 {
-                       compatible = "ti,tps65218-dcdc3";
                        regulator-name = "vdcdc3";
                        regulator-min-microvolt = <1500000>;
                        regulator-max-microvolt = <1500000>;
                        regulator-boot-on;
                        regulator-always-on;
+                       regulator-state-mem {
+                               regulator-on-in-suspend;
+                       };
+                       regulator-state-disk {
+                               regulator-off-in-suspend;
+                       };
                };
+
                dcdc5: regulator-dcdc5 {
-                       compatible = "ti,tps65218-dcdc5";
                        regulator-name = "v1_0bat";
                        regulator-min-microvolt = <1000000>;
                        regulator-max-microvolt = <1000000>;
                        regulator-boot-on;
                        regulator-always-on;
+                       regulator-state-mem {
+                               regulator-on-in-suspend;
+                       };
                };
 
                dcdc6: regulator-dcdc6 {
-                       compatible = "ti,tps65218-dcdc6";
                        regulator-name = "v1_8bat";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        regulator-boot-on;
                        regulator-always-on;
+                       regulator-state-mem {
+                               regulator-on-in-suspend;
+                       };
                };
 
                ldo1: regulator-ldo1 {
-                       compatible = "ti,tps65218-ldo1";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        regulator-boot-on;
index 12a6951..25ce611 100644 (file)
                #address-cells = <1>;
                #size-cells = <0>;
 
-               switch@0 {
+               switch0 {
                        label = "power-button";
                        linux,code = <KEY_POWER>;
                        gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
index 5687d6b..319d942 100644 (file)
@@ -64,7 +64,7 @@
                };
        };
 
-       matrix_keypad: matrix_keypad@0 {
+       matrix_keypad: matrix_keypad0 {
                compatible = "gpio-matrix-keypad";
 
                pinctrl-names = "default";
                pinctrl-names = "default";
                pinctrl-0 = <&leds_pins>;
 
-               led@0 {
+               led0 {
                        label = "am437x-sk:red:heartbeat";
                        gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>;    /* Bank 5, pin 0 */
                        linux,default-trigger = "heartbeat";
                        default-state = "off";
                };
 
-               led@1 {
+               led1 {
                        label = "am437x-sk:green:mmc1";
                        gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;    /* Bank 5, pin 1 */
                        linux,default-trigger = "mmc0";
                        default-state = "off";
                };
 
-               led@2 {
+               led2 {
                        label = "am437x-sk:blue:cpu0";
                        gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;    /* Bank 5, pin 2 */
                        linux,default-trigger = "cpu0";
                        default-state = "off";
                };
 
-               led@3 {
+               led3 {
                        label = "am437x-sk:blue:usr3";
                        gpios = <&gpio5 3 GPIO_ACTIVE_HIGH>;    /* Bank 5, pin 3 */
                        default-state = "off";
                #interrupt-cells = <2>;
 
                dcdc1: regulator-dcdc1 {
-                       compatible = "ti,tps65218-dcdc1";
                        /* VDD_CORE limits min of OPP50 and max of OPP100 */
                        regulator-name = "vdd_core";
                        regulator-min-microvolt = <912000>;
                };
 
                dcdc2: regulator-dcdc2 {
-                       compatible = "ti,tps65218-dcdc2";
                        /* VDD_MPU limits min of OPP50 and max of OPP_NITRO */
                        regulator-name = "vdd_mpu";
                        regulator-min-microvolt = <912000>;
                };
 
                dcdc3: regulator-dcdc3 {
-                       compatible = "ti,tps65218-dcdc3";
                        regulator-name = "vdds_ddr";
                        regulator-min-microvolt = <1500000>;
                        regulator-max-microvolt = <1500000>;
                        regulator-boot-on;
                        regulator-always-on;
+                       regulator-state-mem {
+                               regulator-on-in-suspend;
+                       };
+                       regulator-state-disk {
+                               regulator-off-in-suspend;
+                       };
                };
 
                dcdc4: regulator-dcdc4 {
-                       compatible = "ti,tps65218-dcdc4";
                        regulator-name = "v3_3d";
                        regulator-min-microvolt = <3300000>;
                        regulator-max-microvolt = <3300000>;
                        regulator-always-on;
                };
 
+               dcdc5: regulator-dcdc5 {
+                       compatible = "ti,tps65218-dcdc5";
+                       regulator-name = "v1_0bat";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+                       regulator-state-mem {
+                               regulator-on-in-suspend;
+                       };
+               };
+
+               dcdc6: regulator-dcdc6 {
+                       compatible = "ti,tps65218-dcdc6";
+                       regulator-name = "v1_8bat";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+                       regulator-state-mem {
+                               regulator-on-in-suspend;
+                       };
+               };
+
                ldo1: regulator-ldo1 {
-                       compatible = "ti,tps65218-ldo1";
                        regulator-name = "v1_8d";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
index ad32e55..9d35c3f 100644 (file)
@@ -32,7 +32,7 @@
                enable-active-high;
        };
 
-       vbat: fixedregulator@0 {
+       vbat: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "vbat";
                regulator-min-microvolt = <5000000>;
@@ -67,7 +67,7 @@
                };
        };
 
-       matrix_keypad: matrix_keypad@0 {
+       matrix_keypad: matrix_keypad0 {
                compatible = "gpio-matrix-keypad";
                debounce-delay-ms = <5>;
                col-scan-delay-us = <2>;
                #interrupt-cells = <2>;
 
                dcdc1: regulator-dcdc1 {
-                       compatible = "ti,tps65218-dcdc1";
                        regulator-name = "vdd_core";
                        regulator-min-microvolt = <912000>;
                        regulator-max-microvolt = <1144000>;
                };
 
                dcdc2: regulator-dcdc2 {
-                       compatible = "ti,tps65218-dcdc2";
                        regulator-name = "vdd_mpu";
                        regulator-min-microvolt = <912000>;
                        regulator-max-microvolt = <1378000>;
                };
 
                dcdc3: regulator-dcdc3 {
-                       compatible = "ti,tps65218-dcdc3";
                        regulator-name = "vdcdc3";
                        regulator-min-microvolt = <1500000>;
                        regulator-max-microvolt = <1500000>;
                };
 
                dcdc4: regulator-dcdc4 {
-                       compatible = "ti,tps65218-dcdc4";
                        regulator-name = "vdcdc4";
                        regulator-min-microvolt = <3300000>;
                        regulator-max-microvolt = <3300000>;
                };
 
                dcdc5: regulator-dcdc5 {
-                       compatible = "ti,tps65218-dcdc5";
                        regulator-name = "v1_0bat";
                        regulator-min-microvolt = <1000000>;
                        regulator-max-microvolt = <1000000>;
                };
 
                dcdc6: regulator-dcdc6 {
-                       compatible = "ti,tps65218-dcdc6";
                        regulator-name = "v1_8bat";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                };
 
                ldo1: regulator-ldo1 {
-                       compatible = "ti,tps65218-ldo1";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        regulator-boot-on;
index e3acb99..87bbc66 100644 (file)
@@ -18,7 +18,7 @@
        compatible = "ti,am5728-idk", "ti,am5728", "ti,dra742", "ti,dra74",
                     "ti,dra7";
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x0 0x80000000 0x0 0x80000000>;
        };
diff --git a/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi b/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
new file mode 100644 (file)
index 0000000..6df7829
--- /dev/null
@@ -0,0 +1,596 @@
+/*
+ * Copyright (C) 2014-2016 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 "am57xx-commercial-grade.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       compatible = "ti,am572x-beagle-x15", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
+
+       aliases {
+               rtc0 = &mcp_rtc;
+               rtc1 = &tps659038_rtc;
+               rtc2 = &rtc;
+               display0 = &hdmi0;
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x80000000 0x0 0x80000000>;
+       };
+
+       vdd_3v3: fixedregulator-vdd_3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_3v3";
+               vin-supply = <&regen1>;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       aic_dvdd: fixedregulator-aic_dvdd {
+               compatible = "regulator-fixed";
+               regulator-name = "aic_dvdd_fixed";
+               vin-supply = <&vdd_3v3>;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       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";
+
+               led0 {
+                       label = "beagle-x15:usr0";
+                       gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+                       default-state = "off";
+               };
+
+               led1 {
+                       label = "beagle-x15:usr1";
+                       gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "cpu0";
+                       default-state = "off";
+               };
+
+               led2 {
+                       label = "beagle-x15:usr2";
+                       gpios = <&gpio7 14 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "mmc0";
+                       default-state = "off";
+               };
+
+               led3 {
+                       label = "beagle-x15:usr3";
+                       gpios = <&gpio7 15 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "disk-activity";
+                       default-state = "off";
+               };
+       };
+
+       gpio_fan: gpio_fan {
+               /* Based on 5v 500mA AFB02505HHB */
+               compatible = "gpio-fan";
+               gpios =  <&tps659038_gpio 2 GPIO_ACTIVE_HIGH>;
+               gpio-fan,speed-map = <0     0>,
+                                    <13000 1>;
+               #cooling-cells = <2>;
+       };
+
+       hdmi0: connector {
+               compatible = "hdmi-connector";
+               label = "hdmi";
+
+               type = "a";
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&tpd12s015_out>;
+                       };
+               };
+       };
+
+       tpd12s015: encoder {
+               compatible = "ti,tpd12s015";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               tpd12s015_in: endpoint {
+                                       remote-endpoint = <&hdmi_out>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               tpd12s015_out: endpoint {
+                                       remote-endpoint = <&hdmi_connector_in>;
+                               };
+                       };
+               };
+       };
+
+       sound0: sound0 {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "BeagleBoard-X15";
+               simple-audio-card,widgets =
+                       "Line", "Line Out",
+                       "Line", "Line In";
+               simple-audio-card,routing =
+                       "Line Out",     "LLOUT",
+                       "Line Out",     "RLOUT",
+                       "MIC2L",        "Line In",
+                       "MIC2R",        "Line In";
+               simple-audio-card,format = "dsp_b";
+               simple-audio-card,bitclock-master = <&sound0_master>;
+               simple-audio-card,frame-master = <&sound0_master>;
+               simple-audio-card,bitclock-inversion;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&mcasp3>;
+               };
+
+               sound0_master: simple-audio-card,codec {
+                       sound-dai = <&tlv320aic3104>;
+                       clocks = <&clkout2_clk>;
+               };
+       };
+};
+
+&dra7_pmx_core {
+       mmc1_pins_default: mmc1_pins_default {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14)       /* mmc1sdcd.gpio219 */
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
+                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc2_pins_default: mmc2_pins_default {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
+                       DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
+                       DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
+                       DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
+                       DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
+                       DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
+                       DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
+                       DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
+                       DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
+                       DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
+               >;
+       };
+};
+&i2c1 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       tps659038: tps659038@58 {
+               compatible = "ti,tps659038";
+               reg = <0x58>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+
+               #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 = <1250000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               smps6_reg: smps6 {
+                                       /* VDD_CORE */
+                                       regulator-name = "smps6";
+                                       regulator-min-microvolt = <850000>;
+                                       regulator-max-microvolt = <1150000>;
+                                       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 / VDDSHV8  */
+                                       regulator-name = "ldo1";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-boot-on;
+                                       regulator-always-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_PHYA */
+                                       regulator-name = "ldo3";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo4_reg: ldo4 {
+                                       /* VDDA_1V8_PHYB */
+                                       regulator-name = "ldo4";
+                                       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>;
+               };
+
+               tps659038_gpio: tps659038_gpio {
+                       compatible = "ti,palmas-gpio";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+               };
+
+               extcon_usb2: tps659038_usb {
+                       compatible = "ti,palmas-usb-vid";
+                       ti,enable-vbus-detection;
+                       vbus-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
+               };
+
+       };
+
+       tmp102: tmp102@48 {
+               compatible = "ti,tmp102";
+               reg = <0x48>;
+               interrupt-parent = <&gpio7>;
+               interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
+               #thermal-sensor-cells = <1>;
+       };
+
+       tlv320aic3104: tlv320aic3104@18 {
+               #sound-dai-cells = <0>;
+               compatible = "ti,tlv320aic3104";
+               reg = <0x18>;
+               assigned-clocks = <&clkoutmux2_clk_mux>;
+               assigned-clock-parents = <&sys_clk2_dclk_div>;
+
+               status = "okay";
+               adc-settle-ms = <40>;
+
+               AVDD-supply = <&vdd_3v3>;
+               IOVDD-supply = <&vdd_3v3>;
+               DRVDD-supply = <&vdd_3v3>;
+               DVDD-supply = <&aic_dvdd>;
+       };
+
+       eeprom: eeprom@50 {
+               compatible = "at,24c32";
+               reg = <0x50>;
+       };
+};
+
+&i2c3 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       mcp_rtc: rtc@6f {
+               compatible = "microchip,mcp7941x";
+               reg = <0x6f>;
+               interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
+                                     <&dra7_pmx_core 0x424>;
+               interrupt-names = "irq", "wakeup";
+
+               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 = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
+                             <&dra7_pmx_core 0x3f8>;
+};
+
+&mac {
+       status = "okay";
+       dual_emac;
+};
+
+&cpsw_emac0 {
+       phy_id = <&davinci_mdio>, <1>;
+       phy-mode = "rgmii";
+       dual_emac_res_vlan = <1>;
+};
+
+&cpsw_emac1 {
+       phy_id = <&davinci_mdio>, <2>;
+       phy-mode = "rgmii";
+       dual_emac_res_vlan = <2>;
+};
+
+&mmc1 {
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins_default>;
+
+       bus-width = <4>;
+       cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* 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>;
+};
+
+&usb2_phy2 {
+       phy-supply = <&ldousb_reg>;
+};
+
+&usb1 {
+       dr_mode = "host";
+};
+
+&omap_dwc3_2 {
+       extcon = <&extcon_usb2>;
+};
+
+&usb2 {
+       /*
+        * Stand alone usage is peripheral only.
+        * However, with some resistor modifications
+        * this port can be used via expansion connectors
+        * as "host" or "dual-role". If so, provide
+        * the necessary dr_mode override in the expansion
+        * board's DT.
+        */
+       dr_mode = "peripheral";
+};
+
+&cpu_trips {
+       cpu_alert1: cpu_alert1 {
+               temperature = <50000>; /* millicelsius */
+               hysteresis = <2000>; /* millicelsius */
+               type = "active";
+       };
+};
+
+&cpu_cooling_maps {
+       map1 {
+               trip = <&cpu_alert1>;
+               cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+       };
+};
+
+&thermal_zones {
+       board_thermal: board_thermal {
+               polling-delay-passive = <1250>; /* milliseconds */
+               polling-delay = <1500>; /* milliseconds */
+
+                               /* sensor       ID */
+               thermal-sensors = <&tmp102     0>;
+
+               board_trips: trips {
+                       board_alert0: board_alert {
+                               temperature = <40000>; /* millicelsius */
+                               hysteresis = <2000>; /* millicelsius */
+                               type = "active";
+                       };
+
+                       board_crit: board_crit {
+                               temperature = <105000>; /* millicelsius */
+                               hysteresis = <0>; /* millicelsius */
+                               type = "critical";
+                       };
+               };
+
+               board_cooling_maps: cooling-maps {
+                       map0 {
+                               trip = <&board_alert0>;
+                               cooling-device =
+                                 <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                       };
+               };
+       };
+};
+
+&dss {
+       status = "ok";
+
+       vdda_video-supply = <&ldoln_reg>;
+};
+
+&hdmi {
+       status = "ok";
+       vdda-supply = <&ldo4_reg>;
+
+       port {
+               hdmi_out: endpoint {
+                       remote-endpoint = <&tpd12s015_in>;
+               };
+       };
+};
+
+&pcie1 {
+       gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
+};
+
+&mcasp3 {
+       #sound-dai-cells = <0>;
+       assigned-clocks = <&mcasp3_ahclkx_mux>;
+       assigned-clock-parents = <&sys_clkin2>;
+       status = "okay";
+
+       op-mode = <0>;  /* MCASP_IIS_MODE */
+       tdm-slots = <2>;
+       /* 4 serializers */
+       serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
+               1 2 0 0
+       >;
+       tx-num-evt = <32>;
+       rx-num-evt = <32>;
+};
+
+&mailbox5 {
+       status = "okay";
+       mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
+               status = "okay";
+       };
+       mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
+               status = "okay";
+       };
+};
+
+&mailbox6 {
+       status = "okay";
+       mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
+               status = "okay";
+       };
+       mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
+               status = "okay";
+       };
+};
diff --git a/arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts b/arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts
new file mode 100644 (file)
index 0000000..ca85570
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2014-2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "am57xx-beagle-x15-common.dtsi"
+
+/ {
+       model = "TI AM5728 BeagleBoard-X15 rev B1";
+};
+
+&tpd12s015 {
+       gpios = <&gpio7 10 GPIO_ACTIVE_HIGH>,   /* gpio7_10, CT CP HPD */
+               <&gpio2 30 GPIO_ACTIVE_HIGH>,   /* gpio2_30, LS OE */
+               <&gpio7 12 GPIO_ACTIVE_HIGH>;   /* gpio7_12/sp1_cs2, HPD */
+};
+
+&mmc1 {
+       vmmc-supply = <&vdd_3v3>;
+       vmmc-aux-supply = <&ldo1_reg>;
+};
index c4d04c5..8c66f2e 100644 (file)
 /*
- * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
+ * Copyright (C) 2014-2016 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 "am57xx-commercial-grade.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/interrupt-controller/irq.h>
+#include "am57xx-beagle-x15-common.dtsi"
 
 / {
+       /* NOTE: This describes the "original" pre-production A2 revision */
        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;
-               rtc2 = &rtc;
-               display0 = &hdmi0;
-       };
-
-       memory {
-               device_type = "memory";
-               reg = <0x0 0x80000000 0x0 0x80000000>;
-       };
-
-       vdd_3v3: fixedregulator-vdd_3v3 {
-               compatible = "regulator-fixed";
-               regulator-name = "vdd_3v3";
-               vin-supply = <&regen1>;
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       aic_dvdd: fixedregulator-aic_dvdd {
-               compatible = "regulator-fixed";
-               regulator-name = "aic_dvdd_fixed";
-               vin-supply = <&vdd_3v3>;
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       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 = "disk-activity";
-                       default-state = "off";
-               };
-       };
-
-       gpio_fan: gpio_fan {
-               /* Based on 5v 500mA AFB02505HHB */
-               compatible = "gpio-fan";
-               gpios =  <&tps659038_gpio 2 GPIO_ACTIVE_HIGH>;
-               gpio-fan,speed-map = <0     0>,
-                                    <13000 1>;
-               #cooling-cells = <2>;
-       };
-
-       hdmi0: connector {
-               compatible = "hdmi-connector";
-               label = "hdmi";
-
-               type = "a";
-
-               port {
-                       hdmi_connector_in: endpoint {
-                               remote-endpoint = <&tpd12s015_out>;
-                       };
-               };
-       };
-
-       tpd12s015: encoder {
-               compatible = "ti,tpd12s015";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&tpd12s015_pins>;
-
-               gpios = <&gpio7 10 GPIO_ACTIVE_HIGH>,   /* gpio7_10, CT CP HPD */
-                       <&gpio6 28 GPIO_ACTIVE_HIGH>,   /* gpio6_28, LS OE */
-                       <&gpio7 12 GPIO_ACTIVE_HIGH>;   /* gpio7_12/sp1_cs2, HPD */
-
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       port@0 {
-                               reg = <0>;
-
-                               tpd12s015_in: endpoint {
-                                       remote-endpoint = <&hdmi_out>;
-                               };
-                       };
-
-                       port@1 {
-                               reg = <1>;
-
-                               tpd12s015_out: endpoint {
-                                       remote-endpoint = <&hdmi_connector_in>;
-                               };
-                       };
-               };
-       };
-
-       sound0: sound0 {
-               compatible = "simple-audio-card";
-               simple-audio-card,name = "BeagleBoard-X15";
-               simple-audio-card,widgets =
-                       "Line", "Line Out",
-                       "Line", "Line In";
-               simple-audio-card,routing =
-                       "Line Out",     "LLOUT",
-                       "Line Out",     "RLOUT",
-                       "MIC2L",        "Line In",
-                       "MIC2R",        "Line In";
-               simple-audio-card,format = "dsp_b";
-               simple-audio-card,bitclock-master = <&sound0_master>;
-               simple-audio-card,frame-master = <&sound0_master>;
-               simple-audio-card,bitclock-inversion;
-
-               simple-audio-card,cpu {
-                       sound-dai = <&mcasp3>;
-               };
-
-               sound0_master: simple-audio-card,codec {
-                       sound-dai = <&tlv320aic3104>;
-                       clocks = <&clkout2_clk>;
-               };
-       };
 };
 
-&dra7_pmx_core {
-       leds_pins_default: leds_pins_default {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x37a8, PIN_OUTPUT | MUX_MODE14)      /* spi1_d1.gpio7_8 */
-                       DRA7XX_CORE_IOPAD(0x37ac, PIN_OUTPUT | MUX_MODE14)      /* spi1_d0.gpio7_9 */
-                       DRA7XX_CORE_IOPAD(0x37c0, PIN_OUTPUT | MUX_MODE14)      /* spi2_sclk.gpio7_14 */
-                       DRA7XX_CORE_IOPAD(0x37c4, PIN_OUTPUT | MUX_MODE14)      /* spi2_d1.gpio7_15 */
-               >;
-       };
-
-       i2c1_pins_default: i2c1_pins_default {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda.sda */
-                       DRA7XX_CORE_IOPAD(0x3804, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl.scl */
-               >;
-       };
-
-       hdmi_pins: pinmux_hdmi_pins {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x3808, PIN_INPUT | MUX_MODE1)        /* i2c2_sda.hdmi1_ddc_scl */
-                       DRA7XX_CORE_IOPAD(0x380c, PIN_INPUT | MUX_MODE1)        /* i2c2_scl.hdmi1_ddc_sda */
-               >;
-       };
-
-       i2c3_pins_default: i2c3_pins_default {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x36a4, PIN_INPUT| MUX_MODE10)        /* mcasp1_aclkx.i2c3_sda */
-                       DRA7XX_CORE_IOPAD(0x36a8, PIN_INPUT| MUX_MODE10)        /* mcasp1_fsx.i2c3_scl */
-               >;
-       };
-
-       uart3_pins_default: uart3_pins_default {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x37f8, PIN_INPUT_SLEW | MUX_MODE2) /* uart2_ctsn.uart3_rxd */
-                       DRA7XX_CORE_IOPAD(0x37fc, PIN_INPUT_SLEW | MUX_MODE1) /* uart2_rtsn.uart3_txd */
-               >;
-       };
-
-       mmc1_pins_default: mmc1_pins_default {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14)       /* mmc1sdcd.gpio219 */
-                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
-                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
-                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
-                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
-                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
-                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
-               >;
-       };
-
-       mmc2_pins_default: mmc2_pins_default {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
-                       DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
-                       DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
-                       DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
-                       DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
-                       DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
-                       DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
-                       DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
-                       DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
-                       DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
-               >;
-       };
-
-       cpsw_pins_default: cpsw_pins_default {
-               pinctrl-single,pins = <
-                       /* Slave 1 */
-                       DRA7XX_CORE_IOPAD(0x3650, PIN_OUTPUT | MUX_MODE0)       /* rgmii1_tclk */
-                       DRA7XX_CORE_IOPAD(0x3654, PIN_OUTPUT | MUX_MODE0)       /* rgmii1_tctl */
-                       DRA7XX_CORE_IOPAD(0x3658, PIN_OUTPUT | MUX_MODE0)       /* rgmii1_td3 */
-                       DRA7XX_CORE_IOPAD(0x365c, PIN_OUTPUT | MUX_MODE0)       /* rgmii1_td2 */
-                       DRA7XX_CORE_IOPAD(0x3660, PIN_OUTPUT | MUX_MODE0)       /* rgmii1_td1 */
-                       DRA7XX_CORE_IOPAD(0x3664, PIN_OUTPUT | MUX_MODE0)       /* rgmii1_td0 */
-                       DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT | MUX_MODE0)        /* rgmii1_rclk */
-                       DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT | MUX_MODE0)        /* rgmii1_rctl */
-                       DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT | MUX_MODE0)        /* rgmii1_rd3 */
-                       DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT | MUX_MODE0)        /* rgmii1_rd2 */
-                       DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT | MUX_MODE0)        /* rgmii1_rd1 */
-                       DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT | MUX_MODE0)        /* rgmii1_rd0 */
-
-                       /* Slave 2 */
-                       DRA7XX_CORE_IOPAD(0x3598, PIN_OUTPUT | MUX_MODE3)       /* rgmii2_tclk */
-                       DRA7XX_CORE_IOPAD(0x359c, PIN_OUTPUT | MUX_MODE3)       /* rgmii2_tctl */
-                       DRA7XX_CORE_IOPAD(0x35a0, PIN_OUTPUT | MUX_MODE3)       /* rgmii2_td3 */
-                       DRA7XX_CORE_IOPAD(0x35a4, PIN_OUTPUT | MUX_MODE3)       /* rgmii2_td2 */
-                       DRA7XX_CORE_IOPAD(0x35a8, PIN_OUTPUT | MUX_MODE3)       /* rgmii2_td1 */
-                       DRA7XX_CORE_IOPAD(0x35ac, PIN_OUTPUT | MUX_MODE3)       /* rgmii2_td0 */
-                       DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE3)        /* rgmii2_rclk */
-                       DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE3)        /* rgmii2_rctl */
-                       DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE3)        /* rgmii2_rd3 */
-                       DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE3)        /* rgmii2_rd2 */
-                       DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE3)        /* rgmii2_rd1 */
-                       DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE3)        /* rgmii2_rd0 */
-               >;
-
-       };
-
-       cpsw_pins_sleep: cpsw_pins_sleep {
-               pinctrl-single,pins = <
-                       /* Slave 1 */
-                       DRA7XX_CORE_IOPAD(0x3650, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x3654, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x3658, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x365c, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x3660, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x3664, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT | MUX_MODE15)
-
-                       /* Slave 2 */
-                       DRA7XX_CORE_IOPAD(0x3598, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x359c, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x35a0, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x35a4, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x35a8, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x35ac, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE15)
-               >;
-       };
-
-       davinci_mdio_pins_default: davinci_mdio_pins_default {
-               pinctrl-single,pins = <
-                       /* MDIO */
-                       DRA7XX_CORE_IOPAD(0x363c, PIN_OUTPUT_PULLUP | MUX_MODE0)        /* mdio_mclk */
-                       DRA7XX_CORE_IOPAD(0x3640, PIN_INPUT_PULLUP | MUX_MODE0) /* mdio_d */
-               >;
-       };
-
-       davinci_mdio_pins_sleep: davinci_mdio_pins_sleep {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x363c, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x3640, PIN_INPUT | MUX_MODE15)
-               >;
-       };
-
-       tps659038_pins_default: tps659038_pins_default {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x3818, PIN_INPUT_PULLUP | MUX_MODE14)        /* wakeup0.gpio1_0 */
-               >;
-       };
-
-       tmp102_pins_default: tmp102_pins_default {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x37c8, PIN_INPUT_PULLUP | MUX_MODE14)        /* spi2_d0.gpio7_16 */
-               >;
-       };
-
-       mcp79410_pins_default: mcp79410_pins_default {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x3824, PIN_INPUT_PULLUP | MUX_MODE1) /* wakeup3.sys_nirq1 */
-               >;
-       };
-
-       usb1_pins: pinmux_usb1_pins {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x3680, PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */
-               >;
-       };
-
-       tpd12s015_pins: pinmux_tpd12s015_pins {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x37b0, PIN_OUTPUT | MUX_MODE14)              /* gpio7_10 CT_CP_HPD */
-                       DRA7XX_CORE_IOPAD(0x37b8, PIN_INPUT_PULLDOWN | MUX_MODE14)      /* gpio7_12 HPD */
-                       DRA7XX_CORE_IOPAD(0x3770, PIN_OUTPUT | MUX_MODE14)              /* gpio6_28 LS_OE */
-               >;
-       };
-
-       clkout2_pins_default: clkout2_pins_default {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x3694, PIN_OUTPUT_PULLDOWN | MUX_MODE9)      /* xref_clk0.clkout2 */
-               >;
-       };
-
-       clkout2_pins_sleep: clkout2_pins_sleep {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x3694, PIN_INPUT | MUX_MODE15)       /* xref_clk0.clkout2 */
-               >;
-       };
-
-       mcasp3_pins_default: mcasp3_pins_default {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_aclkx.mcasp3_aclkx */
-                       DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_fsx.mcasp3_fsx */
-                       DRA7XX_CORE_IOPAD(0x372c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr0.mcasp3_axr0 */
-                       DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr1.mcasp3_axr1 */
-               >;
-       };
-
-       mcasp3_pins_sleep: mcasp3_pins_sleep {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x372c, PIN_INPUT | MUX_MODE15)
-                       DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT | MUX_MODE15)
-               >;
-       };
-};
-
-&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 = <1250000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               smps6_reg: smps6 {
-                                       /* VDD_CORE */
-                                       regulator-name = "smps6";
-                                       regulator-min-microvolt = <850000>;
-                                       regulator-max-microvolt = <1150000>;
-                                       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 / VDDSHV8  */
-                                       regulator-name = "ldo1";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <3300000>;
-                                       regulator-boot-on;
-                                       regulator-always-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_PHYA */
-                                       regulator-name = "ldo3";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                                       regulator-boot-on;
-                               };
-
-                               ldo4_reg: ldo4 {
-                                       /* VDDA_1V8_PHYB */
-                                       regulator-name = "ldo4";
-                                       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>;
-               };
-
-               tps659038_gpio: tps659038_gpio {
-                       compatible = "ti,palmas-gpio";
-                       gpio-controller;
-                       #gpio-cells = <2>;
-               };
-
-               extcon_usb2: tps659038_usb {
-                       compatible = "ti,palmas-usb-vid";
-                       ti,enable-vbus-detection;
-                       vbus-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
-               };
-
-       };
-
-       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>;
-               #thermal-sensor-cells = <1>;
-       };
-
-       tlv320aic3104: tlv320aic3104@18 {
-               #sound-dai-cells = <0>;
-               compatible = "ti,tlv320aic3104";
-               reg = <0x18>;
-               pinctrl-names = "default", "sleep";
-               pinctrl-0 = <&clkout2_pins_default>;
-               pinctrl-1 = <&clkout2_pins_sleep>;
-               assigned-clocks = <&clkoutmux2_clk_mux>;
-               assigned-clock-parents = <&sys_clk2_dclk_div>;
-
-               status = "okay";
-               adc-settle-ms = <40>;
-
-               AVDD-supply = <&vdd_3v3>;
-               IOVDD-supply = <&vdd_3v3>;
-               DRVDD-supply = <&vdd_3v3>;
-               DVDD-supply = <&aic_dvdd>;
-       };
-
-       eeprom: eeprom@50 {
-               compatible = "at,24c32";
-               reg = <0x50>;
-       };
-};
-
-&i2c3 {
-       status = "okay";
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c3_pins_default>;
-       clock-frequency = <400000>;
-
-       mcp_rtc: rtc@6f {
-               compatible = "microchip,mcp7941x";
-               reg = <0x6f>;
-               interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
-                                     <&dra7_pmx_core 0x424>;
-               interrupt-names = "irq", "wakeup";
-
-               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 = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
-                             <&dra7_pmx_core 0x3f8>;
-
-       pinctrl-names = "default";
-       pinctrl-0 = <&uart3_pins_default>;
-};
-
-&mac {
-       status = "okay";
-       pinctrl-names = "default", "sleep";
-       pinctrl-0 = <&cpsw_pins_default>;
-       pinctrl-1 = <&cpsw_pins_sleep>;
-       dual_emac;
-};
-
-&cpsw_emac0 {
-       phy_id = <&davinci_mdio>, <1>;
-       phy-mode = "rgmii";
-       dual_emac_res_vlan = <1>;
-};
-
-&cpsw_emac1 {
-       phy_id = <&davinci_mdio>, <2>;
-       phy-mode = "rgmii";
-       dual_emac_res_vlan = <2>;
-};
-
-&davinci_mdio {
-       pinctrl-names = "default", "sleep";
-       pinctrl-0 = <&davinci_mdio_pins_default>;
-       pinctrl-1 = <&davinci_mdio_pins_sleep>;
+&tpd12s015 {
+       gpios = <&gpio7 10 GPIO_ACTIVE_HIGH>,   /* gpio7_10, CT CP HPD */
+               <&gpio6 28 GPIO_ACTIVE_HIGH>,   /* gpio6_28, LS OE */
+               <&gpio7 12 GPIO_ACTIVE_HIGH>;   /* gpio7_12/sp1_cs2, HPD */
 };
 
 &mmc1 {
-       status = "okay";
-
-       pinctrl-names = "default";
-       pinctrl-0 = <&mmc1_pins_default>;
-
        vmmc-supply = <&ldo1_reg>;
-       bus-width = <4>;
-       cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* 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>;
-};
-
-&usb2_phy2 {
-       phy-supply = <&ldousb_reg>;
-};
-
-&usb1 {
-       dr_mode = "host";
-       pinctrl-names = "default";
-       pinctrl-0 = <&usb1_pins>;
-};
-
-&omap_dwc3_2 {
-       extcon = <&extcon_usb2>;
-};
-
-&usb2 {
-       /*
-        * Stand alone usage is peripheral only.
-        * However, with some resistor modifications
-        * this port can be used via expansion connectors
-        * as "host" or "dual-role". If so, provide
-        * the necessary dr_mode override in the expansion
-        * board's DT.
-        */
-       dr_mode = "peripheral";
-};
-
-&cpu_trips {
-       cpu_alert1: cpu_alert1 {
-               temperature = <50000>; /* millicelsius */
-               hysteresis = <2000>; /* millicelsius */
-               type = "active";
-       };
-};
-
-&cpu_cooling_maps {
-       map1 {
-               trip = <&cpu_alert1>;
-               cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
-       };
-};
-
-&thermal_zones {
-       board_thermal: board_thermal {
-               polling-delay-passive = <1250>; /* milliseconds */
-               polling-delay = <1500>; /* milliseconds */
-
-                               /* sensor       ID */
-               thermal-sensors = <&tmp102     0>;
-
-               board_trips: trips {
-                       board_alert0: board_alert {
-                               temperature = <40000>; /* millicelsius */
-                               hysteresis = <2000>; /* millicelsius */
-                               type = "active";
-                       };
-
-                       board_crit: board_crit {
-                               temperature = <105000>; /* millicelsius */
-                               hysteresis = <0>; /* millicelsius */
-                               type = "critical";
-                       };
-               };
-
-               board_cooling_maps: cooling-maps {
-                       map0 {
-                               trip = <&board_alert0>;
-                               cooling-device =
-                                 <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
-                       };
-               };
-       };
-};
-
-&dss {
-       status = "ok";
-
-       vdda_video-supply = <&ldoln_reg>;
-};
-
-&hdmi {
-       status = "ok";
-       vdda-supply = <&ldo4_reg>;
-
-       pinctrl-names = "default";
-       pinctrl-0 = <&hdmi_pins>;
-
-       port {
-               hdmi_out: endpoint {
-                       remote-endpoint = <&tpd12s015_in>;
-               };
-       };
-};
-
-&pcie1 {
-       gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
-};
-
-&mcasp3 {
-       #sound-dai-cells = <0>;
-       pinctrl-names = "default", "sleep";
-       pinctrl-0 = <&mcasp3_pins_default>;
-       pinctrl-1 = <&mcasp3_pins_sleep>;
-       assigned-clocks = <&mcasp3_ahclkx_mux>;
-       assigned-clock-parents = <&sys_clkin2>;
-       status = "okay";
-
-       op-mode = <0>;  /* MCASP_IIS_MODE */
-       tdm-slots = <2>;
-       /* 4 serializers */
-       serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
-               1 2 0 0
-       >;
-       tx-num-evt = <32>;
-       rx-num-evt = <32>;
-};
-
-&mailbox5 {
-       status = "okay";
-       mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
-               status = "okay";
-       };
-       mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
-               status = "okay";
-       };
-};
-
-&mailbox6 {
-       status = "okay";
-       mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
-               status = "okay";
-       };
-       mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
-               status = "okay";
-       };
 };
index 378b142..203266f 100644 (file)
@@ -19,7 +19,7 @@
        model = "CompuLab CL-SOM-AM57x";
        compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x0 0x80000000 0x0 0x20000000>; /* 512 MB - minimal configuration */
        };
@@ -29,7 +29,7 @@
                pinctrl-names = "default";
                pinctrl-0 = <&leds_pins_default>;
 
-               led@0 {
+               led0 {
                        label = "cl-som-am57x:green";
                        gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
index 0e63b9d..03cec62 100644 (file)
        ti,non-removable;
        max-frequency = <96000000>;
 };
+
+&qspi {
+       status = "okay";
+
+       spi-max-frequency = <76800000>;
+       m25p80@0 {
+               compatible = "s25fl256s1", "jedec,spi-nor";
+               spi-max-frequency = <76800000>;
+               reg = <0>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <4>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               /* MTD partition table.
+                * The ROM checks the first four physical blocks
+                * for a valid file to boot and the flash here is
+                * 64KiB block size.
+                */
+               partition@0 {
+                       label = "QSPI.SPL";
+                       reg = <0x00000000 0x000040000>;
+               };
+               partition@1 {
+                       label = "QSPI.u-boot";
+                       reg = <0x00040000 0x00100000>;
+               };
+               partition@2 {
+                       label = "QSPI.u-boot-spl-os";
+                       reg = <0x00140000 0x00080000>;
+               };
+               partition@3 {
+                       label = "QSPI.u-boot-env";
+                       reg = <0x001c0000 0x00010000>;
+               };
+               partition@4 {
+                       label = "QSPI.u-boot-env.backup1";
+                       reg = <0x001d0000 0x0010000>;
+               };
+               partition@5 {
+                       label = "QSPI.kernel";
+                       reg = <0x001e0000 0x0800000>;
+               };
+               partition@6 {
+                       label = "QSPI.file-system";
+                       reg = <0x009e0000 0x01620000>;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/arm-realview-eb-11mp-bbrevd-ctrevb.dts b/arch/arm/boot/dts/arm-realview-eb-11mp-bbrevd-ctrevb.dts
new file mode 100644 (file)
index 0000000..e18769d
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2016 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.
+ */
+
+#include "arm-realview-eb-11mp-ctrevb.dts"
+#include "arm-realview-eb-bbrevd.dtsi"
+
+/*
+ * This is the EB with the new Revision D baseboard with SMSC9118 ethernet and
+ * the Rev B core tile.
+ */
+/ {
+       model = "ARM RealView Emulation Baseboard Rev D with ARM11MPCore Core Tile Rev B";
+};
diff --git a/arch/arm/boot/dts/arm-realview-eb-11mp-bbrevd.dts b/arch/arm/boot/dts/arm-realview-eb-11mp-bbrevd.dts
new file mode 100644 (file)
index 0000000..26b1c69
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2016 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.
+ */
+
+#include "arm-realview-eb-11mp.dts"
+#include "arm-realview-eb-bbrevd.dtsi"
+
+/ {
+       model = "ARM RealView Emulation Baseboard Rev D with ARM11MPCore Rev C Core Tile";
+};
diff --git a/arch/arm/boot/dts/arm-realview-eb-11mp-ctrevb.dts b/arch/arm/boot/dts/arm-realview-eb-11mp-ctrevb.dts
new file mode 100644 (file)
index 0000000..e68527b
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2016 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.
+ */
+
+#include "arm-realview-eb-11mp.dts"
+
+/ {
+       model = "ARM RealView Emulation Baseboard with ARM11MPCore Rev B";
+};
+
+/*
+ * The revision B has a distinctly different layout of the syscon, so
+ * append a specific compatible-string.
+ */
+&syscon {
+       compatible = "arm,realview-eb11mp-revb-syscon", "arm,realview-eb-syscon", "syscon", "simple-mfd";
+};
+
+&intc {
+       reg = <0x10101000 0x1000>,
+             <0x10100100 0x100>;
+};
+
+&L2 {
+       reg = <0x10102000 0x1000>;
+};
+
+&scu {
+       reg = <0x10100000 0x100>;
+};
+
+&twd_timer {
+       reg = <0x10100600 0x20>;
+};
+
+&twd_wdog {
+       reg = <0x10100620 0x20>;
+};
+
+/*
+ * On revision B, we cannot reach the secondary interrupt
+ * controller, as a result, some peripherals that are dependent
+ * on their IRQ cannot be reached, so disable them.
+ */
+&intc_second {
+       status = "disabled";
+};
+
+&gpio0 {
+       status = "disabled";
+};
+
+&gpio1 {
+       status = "disabled";
+};
+
+&gpio2 {
+       status = "disabled";
+};
+
+&serial2 {
+       status = "disabled";
+};
+
+&serial3 {
+       status = "disabled";
+};
+
+&ssp {
+       status = "disabled";
+};
+
+&wdog {
+       status = "disabled";
+};
diff --git a/arch/arm/boot/dts/arm-realview-eb-11mp-revb.dts b/arch/arm/boot/dts/arm-realview-eb-11mp-revb.dts
deleted file mode 100644 (file)
index e68527b..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-
-#include "arm-realview-eb-11mp.dts"
-
-/ {
-       model = "ARM RealView Emulation Baseboard with ARM11MPCore Rev B";
-};
-
-/*
- * The revision B has a distinctly different layout of the syscon, so
- * append a specific compatible-string.
- */
-&syscon {
-       compatible = "arm,realview-eb11mp-revb-syscon", "arm,realview-eb-syscon", "syscon", "simple-mfd";
-};
-
-&intc {
-       reg = <0x10101000 0x1000>,
-             <0x10100100 0x100>;
-};
-
-&L2 {
-       reg = <0x10102000 0x1000>;
-};
-
-&scu {
-       reg = <0x10100000 0x100>;
-};
-
-&twd_timer {
-       reg = <0x10100600 0x20>;
-};
-
-&twd_wdog {
-       reg = <0x10100620 0x20>;
-};
-
-/*
- * On revision B, we cannot reach the secondary interrupt
- * controller, as a result, some peripherals that are dependent
- * on their IRQ cannot be reached, so disable them.
- */
-&intc_second {
-       status = "disabled";
-};
-
-&gpio0 {
-       status = "disabled";
-};
-
-&gpio1 {
-       status = "disabled";
-};
-
-&gpio2 {
-       status = "disabled";
-};
-
-&serial2 {
-       status = "disabled";
-};
-
-&serial3 {
-       status = "disabled";
-};
-
-&ssp {
-       status = "disabled";
-};
-
-&wdog {
-       status = "disabled";
-};
index 87ff602..aac1edd 100644 (file)
@@ -24,7 +24,7 @@
 #include "arm-realview-eb-mp.dtsi"
 
 / {
-       model = "ARM RealView Emulation Baseboard with ARM11MPCore Rev C";
+       model = "ARM RealView Emulation Baseboard with ARM11MPCore Rev C Core Tile";
        arm,hbi = <0x146>;
 
        /*
diff --git a/arch/arm/boot/dts/arm-realview-eb-a9mp-bbrevd.dts b/arch/arm/boot/dts/arm-realview-eb-a9mp-bbrevd.dts
new file mode 100644 (file)
index 0000000..42efac7
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2016 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.
+ */
+
+#include "arm-realview-eb-a9mp.dts"
+#include "arm-realview-eb-bbrevd.dtsi"
+
+/ {
+       model = "ARM RealView EB Baseboard Rev D Cortex A9 MPCore";
+};
diff --git a/arch/arm/boot/dts/arm-realview-eb-bbrevd.dts b/arch/arm/boot/dts/arm-realview-eb-bbrevd.dts
new file mode 100644 (file)
index 0000000..f533c8b
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2016 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.
+ */
+
+/* This derives from the Realview Baseboard, and overlays the new ethernet */
+#include "arm-realview-eb.dts"
+#include "arm-realview-eb-bbrevd.dtsi"
+
+/ {
+       model = "ARM RealView Emulation Baseboard Rev D";
+};
diff --git a/arch/arm/boot/dts/arm-realview-eb-bbrevd.dtsi b/arch/arm/boot/dts/arm-realview-eb-bbrevd.dtsi
new file mode 100644 (file)
index 0000000..a79e1d1
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2016 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.
+ */
+
+/ {
+       /* Introduce a fixed regulator for the new ethernet controller */
+       veth: fixedregulator@0 {
+               compatible = "regulator-fixed";
+               regulator-name = "veth";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+       };
+};
+
+/*
+ * The revision D has a different ethernet controller that the elder boards:
+ * the older board uses LAN91C111 but the new one uses LAN9118.
+ */
+&ethernet {
+       compatible = "smsc,lan9118", "smsc,lan9115";
+       phy-mode = "mii";
+       smsc,irq-active-high;
+       smsc,irq-push-pull;
+       vdd33a-supply = <&veth>;
+       vddvario-supply = <&veth>;
+};
index 1c6a040..e2e9599 100644 (file)
                regulator-boot-on;
         };
 
-       veth: fixedregulator@0 {
-               compatible = "regulator-fixed";
-               regulator-name = "veth";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               regulator-boot-on;
-       };
-
        xtal24mhz: xtal24mhz@24M {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                bank-width = <4>;
        };
 
-       /* SMSC 9118 ethernet with PHY and EEPROM */
+       /* SMSC LAN91C111 ethernet with PHY and EEPROM */
        ethernet: ethernet@4e000000 {
-               compatible = "smsc,lan9118", "smsc,lan9115";
+               compatible = "smsc,lan91c111";
                reg = <0x4e000000 0x10000>;
-               phy-mode = "mii";
-               reg-io-width = <4>;
-               smsc,irq-active-high;
-               smsc,irq-push-pull;
-               vdd33a-supply = <&veth>;
-               vddvario-supply = <&veth>;
+               /*
+                * This means the adapter can be accessed with 8, 16 or
+                * 32 bit reads/writes.
+                */
+               reg-io-width = <7>;
        };
 
        usb: usb@4f000000 {
index 2364fc5..033fa63 100644 (file)
                                status = "okay";
                        };
 
-                       spi0: spi@10600 {
-                               pinctrl-0 = <&spi0_pins2>;
-                               pinctrl-names = "default";
-                               status = "okay";
-
-                               spi-flash@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-                                       compatible = "mx25l25635e", "jedec,spi-nor";
-                                       reg = <0>; /* Chip select 0 */
-                                       spi-max-frequency = <50000000>;
-                               };
-                       };
-
                        nand@d0000 {
                                status = "okay";
                                num-cs = <1>;
                compatible = "linux,spdif-dir";
        };
 };
+
+&spi0 {
+       pinctrl-0 = <&spi0_pins2>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "mx25l25635e", "jedec,spi-nor";
+               reg = <0>; /* Chip select 0 */
+               spi-max-frequency = <50000000>;
+       };
+};
+
index 1aba08e..01cded3 100644 (file)
                                phy-mode = "rgmii-id";
                        };
 
-                       spi@10600 {
-                               status = "okay";
-                               pinctrl-0 = <&spi0_pins2>;
-                               pinctrl-names = "default";
-
-                               spi-flash@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-                                       /* MX25L8006E */
-                                       compatible = "mxicy,mx25l8005", "jedec,spi-nor";
-                                       reg = <0>; /* Chip select 0 */
-                                       spi-max-frequency = <50000000>;
-
-                                       partition@0 {
-                                               label = "u-boot";
-                                               reg = <0x0 0x100000>;
-                                       };
-                               };
-                       };
-
                        usb@50000 {
                                status = "okay";
                        };
                marvell,function = "gpio";
        };
 };
+
+&spi0 {
+       status = "okay";
+       pinctrl-0 = <&spi0_pins2>;
+       pinctrl-names = "default";
+
+       spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               /* MX25L8006E */
+               compatible = "mxicy,mx25l8005", "jedec,spi-nor";
+               reg = <0>; /* Chip select 0 */
+               spi-max-frequency = <50000000>;
+
+               partition@0 {
+                       label = "u-boot";
+                       reg = <0x0 0x100000>;
+               };
+       };
+};
index 8ca7a43..a9cc427 100644 (file)
                                status = "disabled";
                        };
 
-                       spi0: spi@10600 {
-                               status = "okay";
-
-                               spi-flash@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-                                       compatible = "micron,n25q064", "jedec,spi-nor";
-                                       reg = <0>; /* Chip select 0 */
-                                       spi-max-frequency = <20000000>;
-
-                                       /*
-                                        * Warning!
-                                        *
-                                        * Synology u-boot uses its compiled-in environment
-                                        * and it seems Synology did not care to change u-boot
-                                        * default configuration in order to allow saving a
-                                        * modified environment at a sensible location. So,
-                                        * if you do a 'saveenv' under u-boot, your modified
-                                        * environment will be saved at 1MB after the start
-                                        * of the flash, i.e. in the middle of the uImage.
-                                        * For that reason, it is strongly advised not to
-                                        * change the default environment, unless you know
-                                        * what you are doing.
-                                        */
-                                       partition@00000000 { /* u-boot */
-                                               label = "RedBoot";
-                                               reg = <0x00000000 0x000c0000>; /* 768KB */
-                                       };
-
-                                       partition@000c0000 { /* uImage */
-                                               label = "zImage";
-                                               reg = <0x000c0000 0x002d0000>; /* 2880KB */
-                                       };
-
-                                       partition@00390000 { /* uInitramfs */
-                                               label = "rd.gz";
-                                               reg = <0x00390000 0x00440000>; /* 4250KB */
-                                       };
-
-                                       partition@007d0000 { /* MAC address and serial number */
-                                               label = "vendor";
-                                               reg = <0x007d0000 0x00010000>; /* 64KB */
-                                       };
-
-                                       partition@007e0000 {
-                                               label = "RedBoot config";
-                                               reg = <0x007e0000 0x00010000>; /* 64KB */
-                                       };
-
-                                       partition@007f0000 {
-                                               label = "FIS directory";
-                                               reg = <0x007f0000 0x00010000>; /* 64KB */
-                                       };
-                               };
-                       };
-
                        i2c@11000 {
                                compatible = "marvell,mv64xxx-i2c";
                                pinctrl-0 = <&i2c0_pins>;
                marvell,function = "gpio";
        };
 };
+
+&spi0 {
+       status = "okay";
+
+       spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "micron,n25q064", "jedec,spi-nor";
+               reg = <0>; /* Chip select 0 */
+               spi-max-frequency = <20000000>;
+
+               /*
+                * Warning!
+                *
+                * Synology u-boot uses its compiled-in environment
+                * and it seems Synology did not care to change u-boot
+                * default configuration in order to allow saving a
+                * modified environment at a sensible location. So,
+                * if you do a 'saveenv' under u-boot, your modified
+                * environment will be saved at 1MB after the start
+                * of the flash, i.e. in the middle of the uImage.
+                * For that reason, it is strongly advised not to
+                * change the default environment, unless you know
+                * what you are doing.
+                */
+               partition@00000000 { /* u-boot */
+                       label = "RedBoot";
+                       reg = <0x00000000 0x000c0000>; /* 768KB */
+               };
+
+               partition@000c0000 { /* uImage */
+                       label = "zImage";
+                       reg = <0x000c0000 0x002d0000>; /* 2880KB */
+               };
+
+               partition@00390000 { /* uInitramfs */
+                       label = "rd.gz";
+                       reg = <0x00390000 0x00440000>; /* 4250KB */
+               };
+
+               partition@007d0000 { /* MAC address and serial number */
+                       label = "vendor";
+                       reg = <0x007d0000 0x00010000>; /* 64KB */
+               };
+
+               partition@007e0000 {
+                       label = "RedBoot config";
+                       reg = <0x007e0000 0x00010000>; /* 64KB */
+               };
+
+               partition@007f0000 {
+                       label = "FIS directory";
+                       reg = <0x007f0000 0x00010000>; /* 64KB */
+               };
+       };
+};
index a718866..3ccedc9 100644 (file)
                                interrupts = <50>;
                        };
 
-                       spi0: spi@10600 {
-                               reg = <0x10600 0x28>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               cell-index = <0>;
-                               interrupts = <30>;
-                               clocks = <&coreclk 0>;
-                               status = "disabled";
-                       };
-
-                       spi1: spi@10680 {
-                               reg = <0x10680 0x28>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               cell-index = <1>;
-                               interrupts = <92>;
-                               clocks = <&coreclk 0>;
-                               status = "disabled";
-                       };
-
                        i2c0: i2c@11000 {
                                compatible = "marvell,mv64xxx-i2c";
                                #address-cells = <1>;
                                status = "disabled";
                        };
                };
+
+               spi0: spi@10600 {
+                       reg = <MBUS_ID(0xf0, 0x01) 0x10600 0x28>, /* control */
+                             <MBUS_ID(0x01, 0x1e) 0 0xffffffff>, /* CS0 */
+                             <MBUS_ID(0x01, 0x5e) 0 0xffffffff>, /* CS1 */
+                             <MBUS_ID(0x01, 0x9e) 0 0xffffffff>, /* CS2 */
+                             <MBUS_ID(0x01, 0xde) 0 0xffffffff>, /* CS3 */
+                             <MBUS_ID(0x01, 0x1f) 0 0xffffffff>, /* CS4 */
+                             <MBUS_ID(0x01, 0x5f) 0 0xffffffff>, /* CS5 */
+                             <MBUS_ID(0x01, 0x9f) 0 0xffffffff>, /* CS6 */
+                             <MBUS_ID(0x01, 0xdf) 0 0xffffffff>; /* CS7 */
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <0>;
+                       interrupts = <30>;
+                       clocks = <&coreclk 0>;
+                       status = "disabled";
+               };
+
+               spi1: spi@10680 {
+                       reg = <MBUS_ID(0xf0, 0x01) 0x10680 0x28>, /* control */
+                             <MBUS_ID(0x01, 0x1a) 0 0xffffffff>, /* CS0 */
+                             <MBUS_ID(0x01, 0x5a) 0 0xffffffff>, /* CS1 */
+                             <MBUS_ID(0x01, 0x9a) 0 0xffffffff>, /* CS2 */
+                             <MBUS_ID(0x01, 0xda) 0 0xffffffff>, /* CS3 */
+                             <MBUS_ID(0x01, 0x1b) 0 0xffffffff>, /* CS4 */
+                             <MBUS_ID(0x01, 0x5b) 0 0xffffffff>, /* CS5 */
+                             <MBUS_ID(0x01, 0x9b) 0 0xffffffff>, /* CS6 */
+                             <MBUS_ID(0x01, 0xdb) 0 0xffffffff>; /* CS7 */
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <1>;
+                       interrupts = <92>;
+                       clocks = <&coreclk 0>;
+                       status = "disabled";
+               };
        };
 
        clocks {
index 3b06aa8..b425810 100644 (file)
                                wt-override;
                        };
 
-                       /*
-                        * Default SPI pinctrl setting, can be overwritten on
-                        * board level if a different configuration is used.
-                        */
-                       spi0: spi@10600 {
-                               compatible = "marvell,armada-370-spi",
-                                               "marvell,orion-spi";
-                               pinctrl-0 = <&spi0_pins1>;
-                               pinctrl-names = "default";
-                       };
-
-                       spi1: spi@10680 {
-                               compatible = "marvell,armada-370-spi",
-                                               "marvell,orion-spi";
-                               pinctrl-0 = <&spi1_pins>;
-                               pinctrl-names = "default";
-                       };
-
                        i2c0: i2c@11000 {
                                reg = <0x11000 0x20>;
                        };
                marvell,function = "ge1";
        };
 };
+
+/*
+ * Default SPI pinctrl setting, can be overwritten on
+ * board level if a different configuration is used.
+ */
+&spi0 {
+       compatible = "marvell,armada-370-spi", "marvell,orion-spi";
+       pinctrl-0 = <&spi0_pins1>;
+       pinctrl-names = "default";
+};
+
+&spi1 {
+       compatible = "marvell,armada-370-spi", "marvell,orion-spi";
+       pinctrl-0 = <&spi1_pins>;
+       pinctrl-names = "default";
+};
index 2d3fd6e..db5b9f6 100644 (file)
                          MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
 
                internal-regs {
-                       spi1: spi@10680 {
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&spi1_pins>;
-                               status = "okay";
-
-                               spi-flash@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-                                       compatible = "st,m25p128", "jedec,spi-nor";
-                                       reg = <0>; /* Chip select 0 */
-                                       spi-max-frequency = <54000000>;
-                               };
-                       };
-
                        i2c0: i2c@11000 {
                                pinctrl-names = "default";
                                pinctrl-0 = <&i2c0_pins>;
                                bm,pool-short = <3>;
                        };
 
+                       usb@58000 {
+                               status = "okay";
+                       };
+
                        /* CON4 */
                        ethernet@70000 {
                                pinctrl-names = "default";
 
                        nfc: flash@d0000 {
                                status = "okay";
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-
                                num-cs = <1>;
                                nand-ecc-strength = <4>;
                                nand-ecc-step-size = <512>;
                                marvell,nand-keep-config;
                                marvell,nand-enable-arbiter;
                                nand-on-flash-bbt;
+
+                               partitions {
+                                       compatible = "fixed-partitions";
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+
+                                       partition@0 {
+                                               label = "U-Boot";
+                                               reg = <0x00000000 0x00800000>;
+                                               read-only;
+                                       };
+
+                                       partition@800000 {
+                                               label = "uImage";
+                                               reg = <0x00800000 0x00400000>;
+                                               read-only;
+                                       };
+
+                                       partition@c00000 {
+                                               label = "Root";
+                                               reg = <0x00c00000 0x3f400000>;
+                                       };
+                               };
                        };
 
                        usb3@f0000 {
                gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
        };
 };
+
+&spi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi1_pins>;
+       status = "okay";
+
+       spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "st,m25p128", "jedec,spi-nor";
+               reg = <0>; /* Chip select 0 */
+               spi-max-frequency = <54000000>;
+       };
+};
index 22f7a13..8f0e508 100644 (file)
                          MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>;
 
                internal-regs {
-
-                       spi@10600 {
-                               status = "disabled";
-                       };
-
                        i2c@11000 {
                                pinctrl-names = "default";
                                pinctrl-0 = <&i2c0_pins>;
                marvell,function = "gpio";
        };
 };
+
+&spi0 {
+       status = "disabled";
+};
index d3e6bd8..71ce201 100644 (file)
                                status = "okay";
                        };
 
-                       spi@10680 {
-                               /*
-                                * We don't seem to have the W25Q32 on the
-                                * A1 Rev 2.0 boards, so disable SPI.
-                                * CS0: W25Q32 (doesn't appear to be present)
-                                * CS1:
-                                * CS2: mikrobus
-                                */
-                               pinctrl-0 = <&spi1_pins
-                                            &clearfog_spi1_cs_pins
-                                            &mikro_spi_pins>;
-                               pinctrl-names = "default";
-                               status = "okay";
-
-                               spi-flash@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
-                                       compatible = "w25q32", "jedec,spi-nor";
-                                       reg = <0>; /* Chip select 0 */
-                                       spi-max-frequency = <3000000>;
-                                       status = "disabled";
-                               };
-                       };
-
                        usb@58000 {
                                /* CON3, nearest  power. */
                                status = "okay";
                };
        };
 };
+
+&spi1 {
+       /*
+        * We don't seem to have the W25Q32 on the
+        * A1 Rev 2.0 boards, so disable SPI.
+        * CS0: W25Q32 (doesn't appear to be present)
+        * CS1:
+        * CS2: mikrobus
+        */
+       pinctrl-0 = <&spi1_pins
+                    &clearfog_spi1_cs_pins
+                    &mikro_spi_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "w25q32", "jedec,spi-nor";
+               reg = <0>; /* Chip select 0 */
+               spi-max-frequency = <3000000>;
+               status = "disabled";
+       };
+};
index ea93ed7..de26c76 100644 (file)
                          MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
 
                internal-regs {
-                       spi@10600 {
-                               status = "okay";
-
-                               spi-flash@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-                                       compatible = "w25q32", "jedec,spi-nor";
-                                       reg = <0>; /* Chip select 0 */
-                                       spi-max-frequency = <108000000>;
-                               };
-                       };
-
                        i2c@11000 {
                                status = "okay";
                                clock-frequency = <100000>;
                };
        };
 };
+
+&spi0 {
+       status = "okay";
+
+       spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "w25q32", "jedec,spi-nor";
+               reg = <0>; /* Chip select 0 */
+               spi-max-frequency = <108000000>;
+       };
+};
+
index fd75e5e..895fa6c 100644 (file)
                          MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
 
                internal-regs {
-                       spi@10600 {
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&spi0_pins>;
-                               status = "okay";
-
-                               spi-flash@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-                                       compatible = "st,m25p128", "jedec,spi-nor";
-                                       reg = <0>; /* Chip select 0 */
-                                       spi-max-frequency = <50000000>;
-                                       m25p,fast-read;
-                               };
-                       };
-
                        i2c@11000 {
                                pinctrl-names = "default";
                                pinctrl-0 = <&i2c0_pins>;
                marvell,function = "gpio";
        };
 };
+
+&spi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0_pins>;
+       status = "okay";
+
+       spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "st,m25p128", "jedec,spi-nor";
+               reg = <0>; /* Chip select 0 */
+               spi-max-frequency = <50000000>;
+               m25p,fast-read;
+       };
+};
index 853f973..dd3462d 100644 (file)
                          MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>;
 
                internal-regs {
-                       spi@10600 {
-                               status = "okay";
-
-                               spi-flash@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-                                       compatible = "st,m25p128", "jedec,spi-nor";
-                                       reg = <0>; /* Chip select 0 */
-                                       spi-max-frequency = <108000000>;
-                               };
-                       };
-
                        i2c@11000 {
                                status = "okay";
                                clock-frequency = <100000>;
                };
        };
 };
+
+&spi0 {
+       status = "okay";
+
+       spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "st,m25p128", "jedec,spi-nor";
+               reg = <0>; /* Chip select 0 */
+               spi-max-frequency = <108000000>;
+       };
+};
+
index 3312be6..2d76688 100644 (file)
                                      <0xc100 0x100>;
                        };
 
-                       spi0: spi@10600 {
-                               compatible = "marvell,armada-380-spi",
-                                               "marvell,orion-spi";
-                               reg = <0x10600 0x50>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               cell-index = <0>;
-                               interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&coreclk 0>;
-                               status = "disabled";
-                       };
-
-                       spi1: spi@10680 {
-                               compatible = "marvell,armada-380-spi",
-                                               "marvell,orion-spi";
-                               reg = <0x10680 0x50>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               cell-index = <1>;
-                               interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&coreclk 0>;
-                               status = "disabled";
-                       };
-
                        i2c0: i2c@11000 {
                                compatible = "marvell,mv64xxx-i2c";
                                reg = <0x11000 0x20>;
                                        marvell,function = "spi1";
                                };
 
+                               nand_pins: nand-pins {
+                                       marvell,pins = "mpp22", "mpp34", "mpp23",
+                                                      "mpp33", "mpp38", "mpp28",
+                                                      "mpp40", "mpp42", "mpp35",
+                                                      "mpp36", "mpp25", "mpp30",
+                                                      "mpp32";
+                                       marvell,function = "dev";
+                               };
+
                                uart0_pins: uart-pins-0 {
                                        marvell,pins = "mpp0", "mpp1";
                                        marvell,function = "ua0";
                        no-memory-wc;
                        status = "disabled";
                };
+
+               spi0: spi@10600 {
+                       compatible = "marvell,armada-380-spi",
+                                       "marvell,orion-spi";
+                       reg = <MBUS_ID(0xf0, 0x01) 0x10600 0x50>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <0>;
+                       interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&coreclk 0>;
+                       status = "disabled";
+               };
+
+               spi1: spi@10680 {
+                       compatible = "marvell,armada-380-spi",
+                                       "marvell,orion-spi";
+                       reg = <MBUS_ID(0xf0, 0x01) 0x10680 0x50>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <1>;
+                       interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&coreclk 0>;
+                       status = "disabled";
+               };
        };
 
        clocks {
diff --git a/arch/arm/boot/dts/armada-390-db.dts b/arch/arm/boot/dts/armada-390-db.dts
new file mode 100644 (file)
index 0000000..34e279d
--- /dev/null
@@ -0,0 +1,175 @@
+/*
+ * Device Tree file for Marvell Armada 390 Development Board
+ * (DB-88F6920)
+ *
+ * Copyright (C) 2016 Marvell
+ *
+ * Grzegorz Jaszczyk <jaz@semihalf.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "armada-390.dtsi"
+
+/ {
+       model = "Marvell Armada 390 Development Board";
+       compatible = "marvell,a390-db", "marvell,armada390";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x00000000 0x80000000>; /* 2 GB */
+       };
+
+       soc {
+               ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
+                         MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000>;
+
+               internal-regs {
+                       i2c@11000 {
+                               status = "okay";
+                               clock-frequency = <100000>;
+
+                               eeprom@50 {
+                                       compatible = "atmel,24c64";
+                                       reg = <0x50>;
+                               };
+                       };
+
+                       /* CON104 */
+                       serial@12000 {
+                               status = "okay";
+                       };
+
+                       /* CON97 */
+                       usb@58000 {
+                               status = "okay";
+                       };
+
+                       flash@d0000 {
+                               status = "okay";
+                               pinctrl-0 = <&nand_pins>;
+                               pinctrl-names = "default";
+                               num-cs = <1>;
+                               marvell,nand-keep-config;
+                               marvell,nand-enable-arbiter;
+                               nand-on-flash-bbt;
+                               nand-ecc-strength = <8>;
+                               nand-ecc-step-size = <512>;
+
+                               partitions {
+                                       compatible = "fixed-partitions";
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+
+                                       partition@0 {
+                                               label = "U-Boot";
+                                               reg = <0 0x800000>;
+                                       };
+                                       partition@800000 {
+                                               label = "Linux";
+                                               reg = <0x800000 0x800000>;
+                                       };
+                                       partition@1000000 {
+                                               label = "Filesystem";
+                                               reg = <0x1000000 0x3f000000>;
+                                       };
+                               };
+                       };
+
+                       /* CON98 */
+                       usb3@f8000 {
+                               status = "okay";
+                       };
+               };
+
+               pcie-controller {
+                       status = "okay";
+
+                       /* CON30 */
+                       pcie@1,0 {
+                               status = "okay";
+                       };
+
+                       /* CON44 */
+                       pcie@2,0 {
+                               status = "okay";
+                       };
+
+                       /* CON61 */
+                       pcie@3,0 {
+                               status = "okay";
+                       };
+               };
+       };
+};
+
+&spi1 {
+       status = "okay";
+       pinctrl-0 = <&spi1_pins>;
+       pinctrl-names = "default";
+
+       spi-flash@1 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "n25q128a13",
+                            "jedec,spi-nor";
+               reg = <0>; /* Chip select 0 */
+               spi-max-frequency = <108000000>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "U-Boot";
+                               reg = <0 0x400000>;
+                       };
+                       partition@400000 {
+                               label = "Filesystem";
+                               reg = <0x400000 0xc00000>;
+                       };
+               };
+       };
+};
index 094e39c..6cd18d8 100644 (file)
@@ -47,6 +47,8 @@
 #include "armada-39x.dtsi"
 
 / {
+       compatible = "marvell,armada390";
+
        soc {
                internal-regs {
                        pinctrl@18000 {
@@ -54,4 +56,5 @@
                                reg = <0x18000 0x20>;
                        };
                };
+       };
 };
diff --git a/arch/arm/boot/dts/armada-395-gp.dts b/arch/arm/boot/dts/armada-395-gp.dts
new file mode 100644 (file)
index 0000000..2cdbba8
--- /dev/null
@@ -0,0 +1,163 @@
+/*
+ * Device Tree file for Marvell Armada 395 GP board
+ *
+ * Copyright (C) 2016 Marvell
+ *
+ * Grzegorz Jaszczyk <jaz@semihalf.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 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.
+ *
+ * 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 "armada-395.dtsi"
+
+/ {
+       model = "Marvell Armada 395 GP Board";
+       compatible = "marvell,a395-gp", "marvell,armada395",
+                    "marvell,armada390";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x00000000 0x40000000>; /* 1 GB */
+       };
+
+       soc {
+               ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
+                         MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000>;
+
+               internal-regs {
+                       i2c@11000 {
+                               status = "okay";
+                               clock-frequency = <100000>;
+
+                               eeprom@57 {
+                                       compatible = "atmel,24c64";
+                                       reg = <0x57>;
+                               };
+                       };
+
+                       serial@12000 {
+                               /*
+                                * Exported on the micro USB connector CON17
+                                * through an FTDI
+                                */
+                               status = "okay";
+                       };
+
+                       /* CON1 */
+                       usb@58000 {
+                               status = "okay";
+                       };
+
+                       /* CON2 */
+                       sata@a8000 {
+                               status = "okay";
+                       };
+
+                       flash@d0000 {
+                               status = "okay";
+                               pinctrl-0 = <&nand_pins>;
+                               pinctrl-names = "default";
+                               num-cs = <1>;
+                               marvell,nand-keep-config;
+                               marvell,nand-enable-arbiter;
+                               nand-on-flash-bbt;
+                               nand-ecc-strength = <4>;
+                               nand-ecc-step-size = <512>;
+
+                               partitions {
+                                       compatible = "fixed-partitions";
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+
+                                       partition@0 {
+                                               label = "U-Boot";
+                                               reg = <0x00000000 0x00600000>;
+                                               read-only;
+                                       };
+
+                                       partition@800000 {
+                                               label = "uImage";
+                                               reg = <0x00600000 0x00400000>;
+                                               read-only;
+                                       };
+
+                                       partition@1000000 {
+                                               label = "Root";
+                                               reg = <0x00a00000 0x3f600000>;
+                                       };
+                               };
+                       };
+
+                       /* CON18 */
+                       sdhci@d8000 {
+                               clock-frequency = <200000000>;
+                               broken-cd;
+                               wp-inverted;
+                               bus-width = <8>;
+                               status = "okay";
+                               no-1-8-v;
+                       };
+
+                       /* CON4 */
+                       usb3@f0000 {
+                               status = "okay";
+                       };
+               };
+
+               pcie-controller {
+                       status = "okay";
+
+                       /*
+                        * The two PCIe units are accessible through
+                        * mini PCIe slot on the board.
+                        */
+
+                       /* CON7 */
+                       pcie@2,0 {
+                               /* Port 1, Lane 0 */
+                               status = "okay";
+                       };
+
+                       /* CON8 */
+                       pcie@4,0 {
+                               /* Port 3, Lane 0 */
+                               status = "okay";
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/armada-395.dtsi b/arch/arm/boot/dts/armada-395.dtsi
new file mode 100644 (file)
index 0000000..ab5dc49
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Device Tree Include file for Marvell Armada 395 SoC.
+ *
+ * Copyright (C) 2016 Marvell
+ *
+ * Grzegorz Jaszczyk <jaz@semihalf.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "armada-39x.dtsi"
+
+/ {
+       compatible = "marvell,armada395", "marvell,armada390";
+
+       soc {
+               internal-regs {
+                       pinctrl@18000 {
+                               compatible = "marvell,mv88f6925-pinctrl";
+                               reg = <0x18000 0x20>;
+                       };
+
+                       sata@a8000 {
+                               compatible = "marvell,armada-380-ahci";
+                               reg = <0xa8000 0x2000>;
+                               interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gateclk 15>;
+                               status = "disabled";
+                       };
+
+                       usb3@f0000 {
+                               compatible = "marvell,armada-380-xhci";
+                               reg = <0xf0000 0x4000>,<0xf4000 0x4000>;
+                               interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gateclk 9>;
+                               status = "disabled";
+                       };
+               };
+       };
+};
index 788c3ba..268c834 100644 (file)
                          MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000>;
 
                internal-regs {
-                       spi@10680 {
-                               status = "okay";
-                               pinctrl-0 = <&spi1_pins>;
-                               pinctrl-names = "default";
-
-                               spi-flash@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
-                                       compatible = "n25q128a13", "jedec,spi-nor";
-                                       reg = <0>;
-                                       spi-max-frequency = <108000000>;
-
-                                       partition@0 {
-                                               label = "U-Boot";
-                                               reg = <0 0x400000>;
-                                       };
-
-                                       partition@400000 {
-                                               label = "Filesystem";
-                                               reg = <0x400000 0x1000000>;
-                                       };
-                               };
-                       };
-
                        i2c@11000 {
                                pinctrl-0 = <&i2c0_pins>;
                                pinctrl-names = "default";
                                status = "okay";
                        };
 
+                       usb@58000 {
+                               status = "okay";
+                       };
+
                        flash@d0000 {
                                status = "okay";
                                pinctrl-0 = <&nand_pins>;
                                        reg = <0x1000000 0x3f000000>;
                                };
                        };
+
+                       usb3@f8000 {
+                               status = "okay";
+                       };
                };
 
                pcie-controller {
                };
        };
 };
+
+&spi1 {
+       status = "okay";
+       pinctrl-0 = <&spi1_pins>;
+       pinctrl-names = "default";
+
+       spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "n25q128a13", "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <108000000>;
+
+               partition@0 {
+                       label = "U-Boot";
+                       reg = <0 0x400000>;
+               };
+
+               partition@400000 {
+                       label = "Filesystem";
+                       reg = <0x400000 0x1000000>;
+               };
+       };
+};
index fdc2591..234a998 100644 (file)
@@ -44,7 +44,7 @@
  *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
-#include "armada-39x.dtsi"
+#include "armada-395.dtsi"
 
 / {
        compatible = "marvell,armada398", "marvell,armada390";
                                compatible = "marvell,mv88f6928-pinctrl";
                                reg = <0x18000 0x20>;
                        };
+
+                       sata@e0000 {
+                               compatible = "marvell,armada-380-ahci";
+                               reg = <0xe0000 0x2000>;
+                               interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gateclk 30>;
+                               status = "disabled";
+                       };
                };
        };
 };
index dc6efd3..34cba87 100644 (file)
@@ -55,6 +55,8 @@
        compatible = "marvell,armada390";
 
        aliases {
+               gpio0 = &gpio0;
+               gpio1 = &gpio1;
                serial0 = &uart0;
                serial1 = &uart1;
                serial2 = &uart2;
                };
        };
 
+       pmu {
+               compatible = "arm,cortex-a9-pmu";
+               interrupts-extended = <&mpic 3>;
+       };
+
        soc {
                compatible = "marvell,armada390-mbus", "marvell,armadaxp-mbus",
                             "simple-bus";
                                      <0xc100 0x100>;
                        };
 
-                       spi0: spi@10600 {
-                               compatible = "marvell,armada-390-spi",
-                                               "marvell,orion-spi";
-                               reg = <0x10600 0x50>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               cell-index = <0>;
-                               interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&coreclk 0>;
-                               status = "disabled";
-                       };
-
-                       spi1: spi@10680 {
-                               compatible = "marvell,armada-390-spi",
-                                               "marvell,orion-spi";
-                               reg = <0x10680 0x50>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               cell-index = <1>;
-                               interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&coreclk 0>;
-                               status = "disabled";
-                       };
-
                        i2c0: i2c@11000 {
                                compatible = "marvell,mv64xxx-i2c";
                                reg = <0x11000 0x20>;
                                };
                        };
 
+                       gpio0: gpio@18100 {
+                               compatible = "marvell,orion-gpio";
+                               reg = <0x18100 0x40>;
+                               ngpios = <32>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       gpio1: gpio@18140 {
+                               compatible = "marvell,orion-gpio";
+                               reg = <0x18140 0x40>;
+                               ngpios = <28>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
                        system-controller@18200 {
                                compatible = "marvell,armada-390-system-controller",
                                             "marvell,armada-370-xp-system-controller";
                                clock-names = "nbclk", "fixed";
                        };
 
+                       watchdog@20300 {
+                               compatible = "marvell,armada-380-wdt";
+                               reg = <0x20300 0x34>, <0x20704 0x4>,
+                                     <0x18260 0x4>;
+                               clocks = <&coreclk 2>, <&refclk>;
+                               clock-names = "nbclk", "fixed";
+                       };
+
                        cpurst@20800 {
                                compatible = "marvell,armada-370-cpu-reset";
                                reg = <0x20800 0x10>;
                        };
 
+                       mpcore-soc-ctrl@20d20 {
+                               compatible = "marvell,armada-380-mpcore-soc-ctrl";
+                               reg = <0x20d20 0x6c>;
+                       };
+
+                       coherency-fabric@21010 {
+                               compatible = "marvell,armada-380-coherency-fabric";
+                               reg = <0x21010 0x1c>;
+                       };
+
                        pmsu@22000 {
                                compatible = "marvell,armada-390-pmsu",
                                             "marvell,armada-380-pmsu";
                                };
                        };
 
+                       rtc@a3800 {
+                               compatible = "marvell,armada-380-rtc";
+                               reg = <0xa3800 0x20>, <0x184a0 0x0c>;
+                               reg-names = "rtc", "rtc-soc";
+                               interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
                        flash@d0000 {
                                compatible = "marvell,armada370-nand";
                                reg = <0xd0000 0x54>;
 
                        sdhci@d8000 {
                                compatible = "marvell,armada-380-sdhci";
-                               reg = <0xd8000 0x1000>, <0xdc000 0x100>;
+                               reg-names = "sdhci", "mbus", "conf-sdio3";
+                               reg = <0xd8000 0x1000>,
+                                       <0xdc000 0x100>,
+                                       <0x18454 0x4>;
                                interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&gateclk 17>;
                                mrvl,clk-delay-cycles = <0x1F>;
                                clocks = <&mainpll>;
                                clock-output-names = "nand";
                        };
+
+                       thermal@e8078 {
+                               compatible = "marvell,armada380-thermal";
+                               reg = <0xe4078 0x4>, <0xe4074 0x4>;
+                               status = "okay";
+                       };
                };
 
                pcie-controller {
                                status = "disabled";
                        };
                };
+
+               spi0: spi@10600 {
+                       compatible = "marvell,armada-390-spi",
+                                       "marvell,orion-spi";
+                       reg = <MBUS_ID(0xf0, 0x01) 0x10600 0x50>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <0>;
+                       interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&coreclk 0>;
+                       status = "disabled";
+               };
+
+               spi1: spi@10680 {
+                       compatible = "marvell,armada-390-spi",
+                                       "marvell,orion-spi";
+                       reg = <MBUS_ID(0xf0, 0x01) 0x10680 0x50>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       cell-index = <1>;
+                       interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&coreclk 0>;
+                       status = "disabled";
+               };
        };
 
        clocks {
                        #clock-cells = <0>;
                        clock-frequency = <1000000000>;
                };
+
+               /* 25 MHz reference crystal */
+               refclk: oscillator {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <25000000>;
+               };
        };
 };
index 5c21b23..ce15271 100644 (file)
                                phy = <&phy1>;
                                phy-mode = "rgmii-id";
                        };
-
-                       spi0: spi@10600 {
-                               status = "okay";
-
-                               spi-flash@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-                                       compatible = "n25q128a13", "jedec,spi-nor";
-                                       reg = <0>; /* Chip select 0 */
-                                       spi-max-frequency = <108000000>;
-                               };
-                       };
                };
        };
 
                marvell,function = "gpio";
        };
 };
+
+&spi0 {
+       status = "okay";
+
+       spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "n25q128a13", "jedec,spi-nor";
+               reg = <0>; /* Chip select 0 */
+               spi-max-frequency = <108000000>;
+       };
+};
index 62422a9..075120b 100644 (file)
                                status = "okay";
                        };
 
-                       spi0: spi@10600 {
-                               status = "okay";
-
-                               spi-flash@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-                                       compatible = "m25p64", "jedec,spi-nor";
-                                       reg = <0>; /* Chip select 0 */
-                                       spi-max-frequency = <20000000>;
-                               };
-                       };
-
                        nand@d0000 {
                                status = "okay";
                                num-cs = <1>;
                };
        };
 };
+
+&spi0 {
+       status = "okay";
+
+       spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "m25p64", "jedec,spi-nor";
+               reg = <0>; /* Chip select 0 */
+               spi-max-frequency = <20000000>;
+       };
+};
index 061f423..190e4ec 100644 (file)
                                status = "okay";
                        };
 
-                       spi0: spi@10600 {
-                               status = "okay";
-
-                               spi-flash@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-                                       compatible = "n25q128a13", "jedec,spi-nor";
-                                       reg = <0>; /* Chip select 0 */
-                                       spi-max-frequency = <108000000>;
-                               };
-                       };
-
                        bm@c0000 {
                                status = "okay";
                        };
                };
        };
 };
+
+&spi0 {
+       status = "okay";
+
+       spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "n25q128a13", "jedec,spi-nor";
+               reg = <0>; /* Chip select 0 */
+               spi-max-frequency = <108000000>;
+       };
+};
index 7a46154..076f27f 100644 (file)
                                        reg = <0x180000 0x780000>;   /* 7.5MB */
                                };
                        };
-
-                       spi0: spi@10600 {
-                               status = "okay";
-
-                               spi-flash@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-                                       compatible = "everspin,mr25h256";
-                                       reg = <0>; /* Chip select 0 */
-                                       spi-max-frequency = <40000000>;
-                               };
-                       };
                };
        };
 
                marvell,function = "gpio";
        };
 };
+
+&spi0 {
+       status = "okay";
+
+       spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "everspin,mr25h256";
+               reg = <0>; /* Chip select 0 */
+               spi-max-frequency = <40000000>;
+       };
+};
index d17dab0..ae28673 100644 (file)
                                status = "disabled";
                        };
 
-                       spi0: spi@10600 {
-                               status = "okay";
-
-                               spi-flash@0 {
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-                                       compatible = "micron,n25q064", "jedec,spi-nor";
-                                       reg = <0>; /* Chip select 0 */
-                                       spi-max-frequency = <20000000>;
-
-                                       /*
-                                        * Warning!
-                                        *
-                                        * Synology u-boot uses its compiled-in environment
-                                        * and it seems Synology did not care to change u-boot
-                                        * default configuration in order to allow saving a
-                                        * modified environment at a sensible location. So,
-                                        * if you do a 'saveenv' under u-boot, your modified
-                                        * environment will be saved at 1MB after the start
-                                        * of the flash, i.e. in the middle of the uImage.
-                                        * For that reason, it is strongly advised not to
-                                        * change the default environment, unless you know
-                                        * what you are doing.
-                                        */
-                                       partition@00000000 { /* u-boot */
-                                               label = "RedBoot";
-                                               reg = <0x00000000 0x000d0000>; /* 832KB */
-                                       };
-
-                                       partition@000c0000 { /* uImage */
-                                               label = "zImage";
-                                               reg = <0x000d0000 0x002d0000>; /* 2880KB */
-                                       };
-
-                                       partition@003a0000 { /* uInitramfs */
-                                               label = "rd.gz";
-                                               reg = <0x003a0000 0x00430000>; /* 4250KB */
-                                       };
-
-                                       partition@007d0000 { /* MAC address and serial number */
-                                               label = "vendor";
-                                               reg = <0x007d0000 0x00010000>; /* 64KB */
-                                       };
-
-                                       partition@007e0000 {
-                                               label = "RedBoot config";
-                                               reg = <0x007e0000 0x00010000>; /* 64KB */
-                                       };
-
-                                       partition@007f0000 {
-                                               label = "FIS directory";
-                                               reg = <0x007f0000 0x00010000>; /* 64KB */
-                                       };
-                               };
-                       };
-
                        i2c@11000 {
                                clock-frequency = <400000>;
                                status = "okay";
                marvell,function = "gpio";
        };
 };
+
+&spi0 {
+       status = "okay";
+
+       spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "micron,n25q064", "jedec,spi-nor";
+               reg = <0>; /* Chip select 0 */
+               spi-max-frequency = <20000000>;
+
+               /*
+                * Warning!
+                *
+                * Synology u-boot uses its compiled-in environment
+                * and it seems Synology did not care to change u-boot
+                * default configuration in order to allow saving a
+                * modified environment at a sensible location. So,
+                * if you do a 'saveenv' under u-boot, your modified
+                * environment will be saved at 1MB after the start
+                * of the flash, i.e. in the middle of the uImage.
+                * For that reason, it is strongly advised not to
+                * change the default environment, unless you know
+                * what you are doing.
+                */
+               partition@00000000 { /* u-boot */
+                       label = "RedBoot";
+                       reg = <0x00000000 0x000d0000>; /* 832KB */
+               };
+
+               partition@000c0000 { /* uImage */
+                       label = "zImage";
+                       reg = <0x000d0000 0x002d0000>; /* 2880KB */
+               };
+
+               partition@003a0000 { /* uInitramfs */
+                       label = "rd.gz";
+                       reg = <0x003a0000 0x00430000>; /* 4250KB */
+               };
+
+               partition@007d0000 { /* MAC address and serial number */
+                       label = "vendor";
+                       reg = <0x007d0000 0x00010000>; /* 64KB */
+               };
+
+               partition@007e0000 {
+                       label = "RedBoot config";
+                       reg = <0x007e0000 0x00010000>; /* 64KB */
+               };
+
+               partition@007f0000 {
+                       label = "FIS directory";
+                       reg = <0x007f0000 0x00010000>; /* 64KB */
+               };
+       };
+};
index 553349c..4a5f99e 100644 (file)
                                wt-override;
                        };
 
-                       spi0: spi@10600 {
-                               compatible = "marvell,armada-xp-spi",
-                                               "marvell,orion-spi";
-                               pinctrl-0 = <&spi0_pins>;
-                               pinctrl-names = "default";
-                       };
-
-                       spi1: spi@10680 {
-                               compatible = "marvell,armada-xp-spi",
-                                               "marvell,orion-spi";
-                       };
-
-
                        i2c0: i2c@11000 {
                                compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
                                reg = <0x11000 0x100>;
                marvell,function = "spi0";
        };
 
+       spi1_pins: spi1-pins {
+               marvell,pins = "mpp13", "mpp14",
+                              "mpp16", "mpp17";
+               marvell,function = "spi1";
+       };
+
        uart2_pins: uart2-pins {
                marvell,pins = "mpp42", "mpp43";
                marvell,function = "uart2";
                marvell,function = "uart3";
        };
 };
+
+&spi0 {
+       compatible = "marvell,armada-xp-spi", "marvell,orion-spi";
+       pinctrl-0 = <&spi0_pins>;
+       pinctrl-names = "default";
+};
+
+&spi1 {
+       compatible = "marvell,armada-xp-spi", "marvell,orion-spi";
+       pinctrl-0 = <&spi1_pins>;
+       pinctrl-names = "default";
+};
index 16331aa..ba332e3 100644 (file)
@@ -1,5 +1,3 @@
-#include "skeleton.dtsi"
-
 / {
        nvic: interrupt-controller@e000e100  {
                compatible = "arm,armv7m-nvic";
index 3fac4c4..3489019 100644 (file)
@@ -41,6 +41,7 @@
  */
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/axis,artpec6-clkctrl.h>
 #include "skeleton.dtsi"
 
 / {
                compatible = "arm,cortex-a9-global-timer";
                reg = <0xfaf00200 0x20>;
                interrupts = <GIC_PPI 11 0xf01>;
-               clocks = <&clkctrl 1>;
+               clocks = <&clkctrl ARTPEC6_CLK_CPU_PERIPH>;
        };
 
        timer@faf00600 {
                compatible = "arm,cortex-a9-twd-timer";
                reg = <0xfaf00600 0x20>;
                interrupts = <GIC_PPI 13 0xf04>;
-               clocks = <&clkctrl 1>;
+               clocks = <&clkctrl ARTPEC6_CLK_CPU_PERIPH>;
                status = "disabled";
        };
 
                arm,data-latency = <1 1 1>;
                arm,tag-latency = <1 1 1>;
                arm,filter-ranges = <0x0 0x80000000>;
+               arm,double-linefill = <1>;
+               arm,double-linefill-incr = <0>;
+               arm,double-linefill-wrap = <0>;
+               prefetch-data = <1>;
+               prefetch-instr = <1>;
+               arm,prefetch-offset = <0>;
+               arm,prefetch-drop = <1>;
        };
 
        pmu {
                compatible = "arm,cortex-a9-pmu";
                interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
                        <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-affinity = <&cpu0>, <&cpu1>;
                interrupt-parent = <&intc>;
        };
 
                ethernet: ethernet@f8010000 {
                        clock-names = "phy_ref_clk", "apb_pclk";
                        clocks = <&eth_phy_ref_clk>,
-                               <&clkctrl 4>;
+                               <&clkctrl ARTPEC6_CLK_ETH_ACLK>;
                        compatible = "snps,dwc-qos-ethernet-4.10";
                        interrupt-parent = <&intc>;
                        interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
                        compatible = "arm,pl011", "arm,primecell";
                        reg = <0xf8036000 0x1000>;
                        interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&clkctrl 13>,
-                               <&clkctrl 12>;
+                       clocks = <&clkctrl ARTPEC6_CLK_UART_REFCLK>,
+                               <&clkctrl ARTPEC6_CLK_UART_PCLK>;
                        clock-names = "uart_clk", "apb_pclk";
                        status = "disabled";
                };
                        compatible = "arm,pl011", "arm,primecell";
                        reg = <0xf8037000 0x1000>;
                        interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&clkctrl 13>,
-                               <&clkctrl 12>;
+                       clocks = <&clkctrl ARTPEC6_CLK_UART_REFCLK>,
+                               <&clkctrl ARTPEC6_CLK_UART_PCLK>;
                        clock-names = "uart_clk", "apb_pclk";
                        status = "disabled";
                };
                        compatible = "arm,pl011", "arm,primecell";
                        reg = <0xf8038000 0x1000>;
                        interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&clkctrl 13>,
-                               <&clkctrl 12>;
+                       clocks = <&clkctrl ARTPEC6_CLK_UART_REFCLK>,
+                               <&clkctrl ARTPEC6_CLK_UART_PCLK>;
                        clock-names = "uart_clk", "apb_pclk";
                        status = "disabled";
                };
                        compatible = "arm,pl011", "arm,primecell";
                        reg = <0xf8039000 0x1000>;
                        interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&clkctrl 13>,
-                               <&clkctrl 12>;
+                       clocks = <&clkctrl ARTPEC6_CLK_UART_REFCLK>,
+                               <&clkctrl ARTPEC6_CLK_UART_PCLK>;
                        clock-names = "uart_clk", "apb_pclk";
                        status = "disabled";
                };
index afbe89c..675bb0f 100644 (file)
        interrupt-controller;
        #interrupt-cells = <1>;
 
+       axp_gpio: gpio {
+               compatible = "x-powers,axp209-gpio";
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
        regulators {
                /* Default work frequency for buck regulators */
                x-powers,dcdc-freq = <1500>;
index c3bf7d2..7c9e0fa 100644 (file)
                        #dma-cells = <1>;
                };
 
+               amac0: ethernet@22000 {
+                       compatible = "brcm,nsp-amac";
+                       reg = <0x022000 0x1000>,
+                             <0x110000 0x1000>;
+                       reg-names = "amac_base", "idm_base";
+                       interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               amac1: ethernet@23000 {
+                       compatible = "brcm,nsp-amac";
+                       reg = <0x023000 0x1000>,
+                             <0x111000 0x1000>;
+                       reg-names = "amac_base", "idm_base";
+                       interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
                nand: nand@26000 {
                        compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
                        reg = <0x026000 0x600>,
                        brcm,nand-has-wp;
                };
 
+               pwm: pwm@31000 {
+                       compatible = "brcm,iproc-pwm";
+                       reg = <0x31000 0x28>;
+                       clocks = <&osc>;
+                       #pwm-cells = <3>;
+                       status = "disabled";
+               };
+
                rng: rng@33000 {
                        compatible = "brcm,bcm-nsp-rng";
                        reg = <0x33000 0x14>;
                        clock-names = "apb_pclk";
                };
 
+               srab: srab@36000 {
+                       compatible = "brcm,nsp-srab";
+                       reg = <0x36000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       status = "disabled";
+
+                       /* ports are defined in board DTS */
+               };
+
                i2c0: i2c@38000 {
                        compatible = "brcm,iproc-i2c";
                        reg = <0x38000 0x50>;
index 35ff4e7..f7f9db3 100644 (file)
@@ -1,6 +1,7 @@
 /dts-v1/;
 #include "bcm2835.dtsi"
 #include "bcm2835-rpi.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
 
 / {
        compatible = "raspberrypi,model-a-plus", "brcm,bcm2835";
index 306a84e..8be102f 100644 (file)
@@ -1,6 +1,7 @@
 /dts-v1/;
 #include "bcm2835.dtsi"
 #include "bcm2835-rpi.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
 
 / {
        compatible = "raspberrypi,model-a", "brcm,bcm2835";
index d5fdb8e..35cde65 100644 (file)
@@ -2,6 +2,7 @@
 #include "bcm2835.dtsi"
 #include "bcm2835-rpi.dtsi"
 #include "bcm283x-rpi-smsc9514.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
 
 / {
        compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";
index bfc4bd9..84df85e 100644 (file)
@@ -2,6 +2,7 @@
 #include "bcm2835.dtsi"
 #include "bcm2835-rpi.dtsi"
 #include "bcm283x-rpi-smsc9512.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
 
 / {
        compatible = "raspberrypi,model-b-rev2", "brcm,bcm2835";
index 0371bb7..8e626a8 100644 (file)
@@ -2,6 +2,7 @@
 #include "bcm2835.dtsi"
 #include "bcm2835-rpi.dtsi"
 #include "bcm283x-rpi-smsc9512.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
 
 / {
        compatible = "raspberrypi,model-b", "brcm,bcm2835";
diff --git a/arch/arm/boot/dts/bcm2835-rpi-zero.dts b/arch/arm/boot/dts/bcm2835-rpi-zero.dts
new file mode 100644 (file)
index 0000000..60e359f
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2016 Stefan Wahren <stefan.wahren@i2se.com>
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+#include "bcm2835.dtsi"
+#include "bcm2835-rpi.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
+
+/ {
+       compatible = "raspberrypi,model-zero", "brcm,bcm2835";
+       model = "Raspberry Pi Zero";
+
+       leds {
+               act {
+                       gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+&gpio {
+       pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>;
+
+       /* I2S interface */
+       i2s_alt0: i2s_alt0 {
+               brcm,pins = <18 19 20 21>;
+               brcm,function = <BCM2835_FSEL_ALT0>;
+       };
+};
+
+&hdmi {
+       hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
+};
index 29e1cfe..39dccf6 100644 (file)
@@ -2,6 +2,7 @@
 #include "bcm2836.dtsi"
 #include "bcm2835-rpi.dtsi"
 #include "bcm283x-rpi-smsc9514.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
 
 / {
        compatible = "raspberrypi,2-model-b", "brcm,bcm2836";
diff --git a/arch/arm/boot/dts/bcm283x-rpi-usb-host.dtsi b/arch/arm/boot/dts/bcm283x-rpi-usb-host.dtsi
new file mode 100644 (file)
index 0000000..73f4ece
--- /dev/null
@@ -0,0 +1,3 @@
+&usb {
+       dr_mode = "host";
+};
index 445624a..46d46d8 100644 (file)
                        interrupts = <1 9>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&clk_usb>;
+                       clock-names = "otg";
                };
 
                v3d: v3d@7ec00000 {
                        clock-frequency = <19200000>;
                };
 
+               clk_usb: clock@4 {
+                       compatible = "fixed-clock";
+                       reg = <4>;
+                       #clock-cells = <0>;
+                       clock-output-names = "otg";
+                       clock-frequency = <480000000>;
+               };
        };
 };
index 8af4791..ae4b388 100644 (file)
                };
        };
 
+       usb2_phy: usb2-phy {
+               compatible = "brcm,ns-usb2-phy";
+               reg = <0x1800c000 0x1000>;
+               reg-names = "dmu";
+               #phy-cells = <0>;
+               clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
+               clock-names = "phy-ref-clk";
+       };
+
        axi@18000000 {
                compatible = "brcm,bus-axi";
                reg = <0x18000000 0x1000>;
 
                        #address-cells = <1>;
                        #size-cells = <1>;
+
+                       phys = <&usb2_phy>;
                };
 
                usb3: usb3@23000 {
diff --git a/arch/arm/boot/dts/bcm958522er.dts b/arch/arm/boot/dts/bcm958522er.dts
new file mode 100644 (file)
index 0000000..a21b0fd
--- /dev/null
@@ -0,0 +1,130 @@
+/*
+ *  BSD LICENSE
+ *
+ *  Copyright(c) 2016 Broadcom.  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-nsp.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "NorthStar Plus SVK (BCM958522ER)";
+       compatible = "brcm,bcm58522", "brcm,nsp";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x60000000 0x80000000>;
+       };
+
+       gpio-restart {
+               compatible = "gpio-restart";
+               gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
+               priority = <200>;
+       };
+};
+
+/* USB 2/3 support needed to be complete */
+
+&amac0 {
+       status = "okay";
+};
+
+
+&amac1 {
+       status = "okay";
+};
+
+&nand {
+       nandcs@0 {
+               compatible = "brcm,nandcs";
+               reg = <0>;
+               nand-on-flash-bbt;
+
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               nand-ecc-strength = <24>;
+               nand-ecc-step-size = <1024>;
+
+               brcm,nand-oob-sector-size = <27>;
+
+               partition@0 {
+                       label = "nboot";
+                       reg = <0x00000000 0x00200000>;
+                       read-only;
+               };
+               partition@200000 {
+                       label = "nenv";
+                       reg = <0x00200000 0x00400000>;
+               };
+               partition@600000 {
+                       label = "nsystem";
+                       reg = <0x00600000 0x00a00000>;
+               };
+               partition@1000000 {
+                       label = "nrootfs";
+                       reg = <0x01000000 0x03000000>;
+               };
+               partition@4000000 {
+                       label = "ncustfs";
+                       reg = <0x04000000 0x3c000000>;
+               };
+       };
+};
+
+&pcie0 {
+       status = "okay";
+};
+
+&pcie1 {
+       status = "okay";
+};
+
+&pinctrl {
+       pinctrl-names = "default";
+       pinctrl-0 = <&nand_sel>;
+       nand_sel: nand_sel {
+               function = "nand";
+               groups = "nand_grp";
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/bcm958525er.dts b/arch/arm/boot/dts/bcm958525er.dts
new file mode 100644 (file)
index 0000000..be7f2f8
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+ *  BSD LICENSE
+ *
+ *  Copyright(c) 2016 Broadcom.  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-nsp.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "NorthStar Plus SVK (BCM958525ER)";
+       compatible = "brcm,bcm58525", "brcm,nsp";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x60000000 0x80000000>;
+       };
+
+       gpio-restart {
+               compatible = "gpio-restart";
+               gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
+               priority = <200>;
+       };
+};
+
+/* USB 2/3 support needed to be complete */
+
+&amac0 {
+       status = "okay";
+};
+
+
+&amac1 {
+       status = "okay";
+};
+
+&nand {
+       nandcs@0 {
+               compatible = "brcm,nandcs";
+               reg = <0>;
+               nand-on-flash-bbt;
+
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               nand-ecc-strength = <24>;
+               nand-ecc-step-size = <1024>;
+
+               brcm,nand-oob-sector-size = <27>;
+
+               partition@0 {
+                       label = "nboot";
+                       reg = <0x00000000 0x00200000>;
+                       read-only;
+               };
+               partition@200000 {
+                       label = "nenv";
+                       reg = <0x00200000 0x00400000>;
+               };
+               partition@600000 {
+                       label = "nsystem";
+                       reg = <0x00600000 0x00a00000>;
+               };
+               partition@1000000 {
+                       label = "nrootfs";
+                       reg = <0x01000000 0x03000000>;
+               };
+               partition@4000000 {
+                       label = "ncustfs";
+                       reg = <0x04000000 0x3c000000>;
+               };
+       };
+};
+
+&pcie0 {
+       status = "okay";
+};
+
+&pcie1 {
+       status = "okay";
+};
+
+&pinctrl {
+       pinctrl-names = "default";
+       pinctrl-0 = <&nand_sel>;
+       nand_sel: nand_sel {
+               function = "nand";
+               groups = "nand_grp";
+       };
+};
+
+&sata_phy0 {
+       status = "okay";
+};
+
+&sata_phy1 {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
index d257e83..959cde9 100644 (file)
@@ -33,6 +33,7 @@
 /dts-v1/;
 
 #include "bcm-nsp.dtsi"
+#include <dt-bindings/gpio/gpio.h>
 
 / {
        model = "NorthStar Plus XMC (BCM958525xmc)";
        chosen {
                stdout-path = "serial0:115200n8";
        };
+
+       memory {
+               device_type = "memory";
+               reg = <0x60000000 0x40000000>;
+       };
+
+       gpio-restart {
+               compatible = "gpio-restart";
+               gpios = <&gpioa 31 GPIO_ACTIVE_LOW>;
+               priority = <200>;
+       };
+};
+
+&i2c0 {
+       temperature-sensor@4c {
+               compatible = "adi,adt7461a";
+               reg = <0x4c>;
+       };
+
+       eeprom@52 {
+               compatible = "atmel,24c02";
+               reg = <0x52>;
+               pagesize = <16>;
+       };
+
+       rtc@68 {
+               compatible = "st,m41t81";
+               reg = <0x68>;
+       };
 };
 
 &nand {
        };
 };
 
-/* XHCI, SATA, MMC, and Ethernet support needed to be complete */
+/* XHCI, MMC, and Ethernet support needed to be complete */
 
 &uart0 {
        status = "okay";
        status = "okay";
 };
 
+&sata_phy0 {
+       status = "okay";
+};
+
+&sata_phy1 {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
+
 &pinctrl {
        pinctrl-names = "default";
        pinctrl-0 = <&nand_sel>;
diff --git a/arch/arm/boot/dts/bcm958622hr.dts b/arch/arm/boot/dts/bcm958622hr.dts
new file mode 100644 (file)
index 0000000..ad2aa87
--- /dev/null
@@ -0,0 +1,170 @@
+/*
+ *  BSD LICENSE
+ *
+ *  Copyright(c) 2016 Broadcom.  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-nsp.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "NorthStar Plus SVK (BCM958622HR)";
+       compatible = "brcm,bcm58622", "brcm,nsp";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x60000000 0x80000000>;
+       };
+
+       gpio-restart {
+               compatible = "gpio-restart";
+               gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
+               priority = <200>;
+       };
+};
+
+/* USB 2/3 and SLIC support needed to be complete */
+
+&amac0 {
+       status = "okay";
+};
+
+&nand {
+       nandcs@0 {
+               compatible = "brcm,nandcs";
+               reg = <0>;
+               nand-on-flash-bbt;
+
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               nand-ecc-strength = <24>;
+               nand-ecc-step-size = <1024>;
+
+               brcm,nand-oob-sector-size = <27>;
+
+               partition@0 {
+                       label = "nboot";
+                       reg = <0x00000000 0x00200000>;
+                       read-only;
+               };
+               partition@200000 {
+                       label = "nenv";
+                       reg = <0x00200000 0x00400000>;
+               };
+               partition@600000 {
+                       label = "nsystem";
+                       reg = <0x00600000 0x00a00000>;
+               };
+               partition@1000000 {
+                       label = "nrootfs";
+                       reg = <0x01000000 0x03000000>;
+               };
+               partition@4000000 {
+                       label = "ncustfs";
+                       reg = <0x04000000 0x3c000000>;
+               };
+       };
+};
+
+&pcie0 {
+       status = "okay";
+};
+
+&pcie1 {
+       status = "okay";
+};
+
+&pinctrl {
+       pinctrl-names = "default";
+       pinctrl-0 = <&nand_sel>;
+       nand_sel: nand_sel {
+               function = "nand";
+               groups = "nand_grp";
+       };
+};
+
+&srab {
+       compatible = "brcm,bcm58622-srab", "brcm,nsp-srab";
+       status = "okay";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       label = "port0";
+                       reg = <0>;
+               };
+
+               port@1 {
+                       label = "port1";
+                       reg = <1>;
+               };
+
+               port@2 {
+                       label = "port2";
+                       reg = <2>;
+               };
+
+               port@3 {
+                       label = "port3";
+                       reg = <3>;
+               };
+
+               port@4 {
+                       label = "port4";
+                       reg = <4>;
+               };
+
+               port@5 {
+                       ethernet = <&amac0>;
+                       label = "cpu";
+                       reg = <5>;
+                       fixed-link {
+                               speed = <1000>;
+                               full-duplex;
+                       };
+               };
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/bcm958623hr.dts b/arch/arm/boot/dts/bcm958623hr.dts
new file mode 100644 (file)
index 0000000..4ceb8fe
--- /dev/null
@@ -0,0 +1,178 @@
+/*
+ *  BSD LICENSE
+ *
+ *  Copyright(c) 2016 Broadcom.  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-nsp.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "NorthStar Plus SVK (BCM958623HR)";
+       compatible = "brcm,bcm58623", "brcm,nsp";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x60000000 0x80000000>;
+       };
+
+       gpio-restart {
+               compatible = "gpio-restart";
+               gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
+               priority = <200>;
+       };
+};
+
+/* USB 2/3 and SLIC support needed to be complete */
+
+&amac0 {
+       status = "okay";
+};
+
+&nand {
+       nandcs@0 {
+               compatible = "brcm,nandcs";
+               reg = <0>;
+               nand-on-flash-bbt;
+
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               nand-ecc-strength = <24>;
+               nand-ecc-step-size = <1024>;
+
+               brcm,nand-oob-sector-size = <27>;
+
+               partition@0 {
+                       label = "nboot";
+                       reg = <0x00000000 0x00200000>;
+                       read-only;
+               };
+               partition@200000 {
+                       label = "nenv";
+                       reg = <0x00200000 0x00400000>;
+               };
+               partition@600000 {
+                       label = "nsystem";
+                       reg = <0x00600000 0x00a00000>;
+               };
+               partition@1000000 {
+                       label = "nrootfs";
+                       reg = <0x01000000 0x03000000>;
+               };
+               partition@4000000 {
+                       label = "ncustfs";
+                       reg = <0x04000000 0x3c000000>;
+               };
+       };
+};
+
+&pcie0 {
+       status = "okay";
+};
+
+&pcie1 {
+       status = "okay";
+};
+
+&pinctrl {
+       pinctrl-names = "default";
+       pinctrl-0 = <&nand_sel>;
+       nand_sel: nand_sel {
+               function = "nand";
+               groups = "nand_grp";
+       };
+};
+
+&srab {
+       compatible = "brcm,bcm58623-srab", "brcm,nsp-srab";
+       status = "okay";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       label = "port0";
+                       reg = <0>;
+               };
+
+               port@1 {
+                       label = "port1";
+                       reg = <1>;
+               };
+
+               port@2 {
+                       label = "port2";
+                       reg = <2>;
+               };
+
+               port@3 {
+                       label = "port3";
+                       reg = <3>;
+               };
+
+               port@4 {
+                       label = "port4";
+                       reg = <4>;
+               };
+
+               port@5 {
+                       ethernet = <&amac0>;
+                       label = "cpu";
+                       reg = <5>;
+                       fixed-link {
+                               speed = <1000>;
+                               full-duplex;
+                       };
+               };
+       };
+};
+
+&sata_phy0 {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
index 03b8bbe..4420025 100644 (file)
@@ -33,6 +33,7 @@
 /dts-v1/;
 
 #include "bcm-nsp.dtsi"
+#include <dt-bindings/gpio/gpio.h>
 
 / {
        model = "NorthStar Plus SVK (BCM958625HR)";
        };
 
        memory {
-               reg = <0x60000000 0x20000000>;
+               device_type = "memory";
+               reg = <0x60000000 0x80000000>;
+       };
+
+       gpio-restart {
+               compatible = "gpio-restart";
+               gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
+               priority = <200>;
        };
 };
 
                groups = "nand_grp";
        };
 };
+
+&amac0 {
+       status = "okay";
+};
+
+&srab {
+       compatible = "brcm,bcm58625-srab", "brcm,nsp-srab";
+       status = "okay";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       label = "port0";
+                       reg = <0>;
+               };
+
+               port@1 {
+                       label = "port1";
+                       reg = <1>;
+               };
+
+               port@2 {
+                       label = "port2";
+                       reg = <2>;
+               };
+
+               port@3 {
+                       label = "port3";
+                       reg = <3>;
+               };
+
+               port@4 {
+                       label = "port4";
+                       reg = <4>;
+               };
+
+               port@5 {
+                       ethernet = <&amac0>;
+                       label = "cpu";
+                       reg = <5>;
+                       fixed-link {
+                               speed = <1000>;
+                               full-duplex;
+                       };
+               };
+       };
+};
+
+&sata_phy0 {
+       status = "okay";
+};
+
+&sata_phy1 {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
index 2d84226..05c5f98 100644 (file)
        chosen {
                stdout-path = "serial0:115200n8";
        };
+
+       memory {
+               device_type = "memory";
+               reg = <0x60000000 0x80000000>;
+       };
 };
 
 &uart0 {
        status = "okay";
 };
 
+&amac0 {
+       status = "okay";
+};
+
+&amac1 {
+       status = "okay";
+};
+
 &pcie0 {
        status = "okay";
 };
diff --git a/arch/arm/boot/dts/bcm988312hr.dts b/arch/arm/boot/dts/bcm988312hr.dts
new file mode 100644 (file)
index 0000000..104afe9
--- /dev/null
@@ -0,0 +1,182 @@
+/*
+ *  BSD LICENSE
+ *
+ *  Copyright(c) 2016 Broadcom.  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-nsp.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "NorthStar Plus SVK (BCM988312HR)";
+       compatible = "brcm,bcm88312", "brcm,nsp";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x60000000 0x80000000>;
+       };
+
+       gpio-restart {
+               compatible = "gpio-restart";
+               gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
+               priority = <200>;
+       };
+};
+
+/* USB 2/3 support needed to be complete */
+
+&amac0 {
+       status = "okay";
+};
+
+&nand {
+       nandcs@0 {
+               compatible = "brcm,nandcs";
+               reg = <0>;
+               nand-on-flash-bbt;
+
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               nand-ecc-strength = <24>;
+               nand-ecc-step-size = <1024>;
+
+               brcm,nand-oob-sector-size = <27>;
+
+               partition@0 {
+                       label = "nboot";
+                       reg = <0x00000000 0x00200000>;
+                       read-only;
+               };
+               partition@200000 {
+                       label = "nenv";
+                       reg = <0x00200000 0x00400000>;
+               };
+               partition@600000 {
+                       label = "nsystem";
+                       reg = <0x00600000 0x00a00000>;
+               };
+               partition@1000000 {
+                       label = "nrootfs";
+                       reg = <0x01000000 0x03000000>;
+               };
+               partition@4000000 {
+                       label = "ncustfs";
+                       reg = <0x04000000 0x3c000000>;
+               };
+       };
+};
+
+&pcie0 {
+       status = "okay";
+};
+
+&pcie1 {
+       status = "okay";
+};
+
+&pinctrl {
+       pinctrl-names = "default";
+       pinctrl-0 = <&nand_sel>;
+       nand_sel: nand_sel {
+               function = "nand";
+               groups = "nand_grp";
+       };
+};
+
+&sata_phy0 {
+       status = "okay";
+};
+
+&sata_phy1 {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
+
+&srab {
+       compatible = "brcm,bcm88312-srab", "brcm,nsp-srab";
+       status = "okay";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       label = "port0";
+                       reg = <0>;
+               };
+
+               port@1 {
+                       label = "port1";
+                       reg = <1>;
+               };
+
+               port@2 {
+                       label = "port2";
+                       reg = <2>;
+               };
+
+               port@3 {
+                       label = "port3";
+                       reg = <3>;
+               };
+
+               port@4 {
+                       label = "port4";
+                       reg = <4>;
+               };
+
+               port@5 {
+                       ethernet = <&amac0>;
+                       label = "cpu";
+                       reg = <5>;
+                       fixed-link {
+                               speed = <1000>;
+                               full-duplex;
+                       };
+               };
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
index 3c0907b..1c47579 100644 (file)
@@ -49,7 +49,7 @@
                stdout-path = "serial0:115200n8";
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x00000000 0x40000000>; /* 1 GB */
        };
index ae81009..425c489 100644 (file)
  *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
-#include "skeleton.dtsi"
 #include <dt-bindings/clock/berlin2.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 
 / {
        model = "Marvell Armada 1500 (BG2) SoC";
        compatible = "marvell,berlin2", "marvell,berlin";
+       #address-cells = <1>;
+       #size-cells = <1>;
 
        aliases {
                serial0 = &uart0;
@@ -89,7 +90,7 @@
                clock-frequency = <25000000>;
        };
 
-       soc {
+       soc@f7000000 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
                                reg = <0x2000 0x100>;
                                clocks = <&refclk>;
                                interrupts = <1>;
-                               status = "disabled";
                        };
 
                        wdt2: watchdog@3000 {
                                reg = <0x3000 0x100>;
                                clocks = <&refclk>;
                                interrupts = <2>;
-                               status = "disabled";
                        };
 
                        sm_gpio1: gpio@5000 {
index 8ba8b50..ca24def 100644 (file)
@@ -50,7 +50,7 @@
                stdout-path = "serial0:115200n8";
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x00000000 0x20000000>; /* 512 MB */
        };
index 6d06b61..4fe1574 100644 (file)
  *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
-#include "skeleton.dtsi"
 #include <dt-bindings/clock/berlin2.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 
 / {
        model = "Marvell Armada 1500-mini (BG2CD) SoC";
        compatible = "marvell,berlin2cd", "marvell,berlin";
+       #address-cells = <1>;
+       #size-cells = <1>;
 
        aliases {
                serial0 = &uart0;
@@ -78,7 +79,7 @@
                clock-frequency = <25000000>;
        };
 
-       soc {
+       soc@f7000000 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
index 33b2875..f485308 100644 (file)
@@ -43,7 +43,7 @@
        model = "Marvell BG2-Q DMP";
        compatible = "marvell,berlin2q-dmp", "marvell,berlin2q", "marvell,berlin";
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x00000000 0x80000000>;
        };
index 2c34bfb..e548229 100644 (file)
 #include <dt-bindings/clock/berlin2q.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 
-#include "skeleton.dtsi"
-
 / {
        model = "Marvell Armada 1500 pro (BG2-Q) SoC";
        compatible = "marvell,berlin2q", "marvell,berlin";
+       #address-cells = <1>;
+       #size-cells = <1>;
 
        aliases {
                serial0 = &uart0;
@@ -99,7 +99,7 @@
                clock-frequency = <25000000>;
        };
 
-       soc {
+       soc@f7000000 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
                                reg = <0x2000 0x100>;
                                clocks = <&refclk>;
                                interrupts = <1>;
-                               status = "disabled";
                        };
 
                        wdt2: watchdog@3000 {
                                reg = <0x3000 0x100>;
                                clocks = <&refclk>;
                                interrupts = <2>;
-                               status = "disabled";
                        };
 
                        sm_gpio1: gpio@5000 {
index 1a15db8..41de15f 100644 (file)
                                        0x04 0x00011000 0x000ff000
                                >;
                        };
+                       nand_pins: nand_pins {
+                               pinctrl-single,bits = <
+                                       /* EMA_WAIT[0], EMA_OE, EMA_WE, EMA_CS[4], EMA_CS[3] */
+                                       0x1c 0x10110110  0xf0ff0ff0
+                                       /*
+                                        * EMA_D[0], EMA_D[1], EMA_D[2],
+                                        * EMA_D[3], EMA_D[4], EMA_D[5],
+                                        * EMA_D[6], EMA_D[7]
+                                        */
+                                       0x24 0x11111111  0xffffffff
+                                       /* EMA_A[1], EMA_A[2] */
+                                       0x30 0x01100000  0x0ff00000
+                               >;
+                       };
                };
                serial0: serial@42000 {
                        status = "okay";
                        status = "okay";
                };
        };
-       nand_cs3@62000000 {
-               status = "okay";
-               pinctrl-names = "default";
-               pinctrl-0 = <&nand_cs3_pins>;
-       };
-       vbat: fixedregulator@0 {
+       vbat: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "vbat";
                regulator-min-microvolt = <5000000>;
 &edma1 {
        ti,edma-reserved-slot-ranges = <32 90>;
 };
+
+&aemif {
+       pinctrl-names = "default";
+       pinctrl-0 = <&nand_pins>;
+       status = "ok";
+       cs3 {
+               #address-cells = <2>;
+               #size-cells = <1>;
+               clock-ranges;
+               ranges;
+
+               ti,cs-chipselect = <3>;
+
+               nand@2000000,0 {
+                       compatible = "ti,davinci-nand";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0 0x02000000 0x02000000
+                              1 0x00000000 0x00008000>;
+
+                       ti,davinci-chipselect = <1>;
+                       ti,davinci-mask-ale = <0>;
+                       ti,davinci-mask-cle = <0>;
+                       ti,davinci-mask-chipsel = <0>;
+                       ti,davinci-ecc-mode = "hw";
+                       ti,davinci-ecc-bits = <4>;
+                       ti,davinci-nand-use-bbt;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/da850-lcdk.dts b/arch/arm/boot/dts/da850-lcdk.dts
new file mode 100644 (file)
index 0000000..7b8ab21
--- /dev/null
@@ -0,0 +1,221 @@
+/*
+ * Copyright (c) 2016 BayLibre, Inc.
+ *
+ * Licensed under GPLv2.
+ */
+/dts-v1/;
+#include "da850.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "DA850/AM1808/OMAP-L138 LCDK";
+       compatible = "ti,da850-lcdk", "ti,da850";
+
+       aliases {
+               serial2 = &serial2;
+       };
+
+       chosen {
+               stdout-path = "serial2:115200n8";
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0xc0000000 0x08000000>;
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "DA850/OMAP-L138 LCDK";
+               simple-audio-card,widgets =
+                       "Line", "Line In",
+                       "Line", "Line Out";
+               simple-audio-card,routing =
+                       "LINE1L", "Line In",
+                       "LINE1R", "Line In",
+                       "Line Out", "LLOUT",
+                       "Line Out", "RLOUT";
+               simple-audio-card,format = "dsp_b";
+               simple-audio-card,bitclock-master = <&link0_codec>;
+               simple-audio-card,frame-master = <&link0_codec>;
+               simple-audio-card,bitclock-inversion;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&mcasp0>;
+                       system-clock-frequency = <24576000>;
+               };
+
+               link0_codec: simple-audio-card,codec {
+                       sound-dai = <&tlv320aic3106>;
+                       system-clock-frequency = <24576000>;
+               };
+       };
+};
+
+&pmx_core {
+       status = "okay";
+
+       mcasp0_pins: pinmux_mcasp0_pins {
+               pinctrl-single,bits = <
+                       /* AHCLKX AFSX ACLKX */
+                       0x00 0x00101010 0x00f0f0f0
+                       /* ARX13 ARX14 */
+                       0x04 0x00000110 0x00000ff0
+               >;
+       };
+
+       nand_pins: nand_pins {
+               pinctrl-single,bits = <
+                       /* EMA_WAIT[0], EMA_OE, EMA_WE, EMA_CS[3] */
+                       0x1c 0x10110010  0xf0ff00f0
+                       /*
+                        * EMA_D[0], EMA_D[1], EMA_D[2],
+                        * EMA_D[3], EMA_D[4], EMA_D[5],
+                        * EMA_D[6], EMA_D[7]
+                        */
+                       0x24 0x11111111  0xffffffff
+                       /*
+                        * EMA_D[8],  EMA_D[9],  EMA_D[10],
+                        * EMA_D[11], EMA_D[12], EMA_D[13],
+                        * EMA_D[14], EMA_D[15]
+                        */
+                       0x20 0x11111111  0xffffffff
+                       /* EMA_A[1], EMA_A[2] */
+                       0x30 0x01100000  0x0ff00000
+               >;
+       };
+};
+
+&serial2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&serial2_rxtx_pins>;
+       status = "okay";
+};
+
+&wdt {
+       status = "okay";
+};
+
+&rtc0 {
+       status = "okay";
+};
+
+&gpio {
+       status = "okay";
+};
+
+&mdio {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mdio_pins>;
+       bus_freq = <2200000>;
+       status = "okay";
+};
+
+&eth0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mii_pins>;
+       status = "okay";
+};
+
+&mmc0 {
+       max-frequency = <50000000>;
+       bus-width = <4>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins>;
+       cd-gpios = <&gpio 64 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins>;
+       clock-frequency = <100000>;
+       status = "okay";
+
+       tlv320aic3106: tlv320aic3106@18 {
+               #sound-dai-cells = <0>;
+               compatible = "ti,tlv320aic3106";
+               reg = <0x18>;
+               status = "okay";
+       };
+};
+
+&mcasp0 {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcasp0_pins>;
+       status = "okay";
+
+       op-mode = <0>;   /* DAVINCI_MCASP_IIS_MODE */
+       tdm-slots = <2>;
+       serial-dir = <   /* 0: INACTIVE, 1: TX, 2: RX */
+               0 0 0 0
+               0 0 0 0
+               0 0 0 0
+               0 1 2 0
+       >;
+       tx-num-evt = <32>;
+       rx-num-evt = <32>;
+};
+
+&aemif {
+       pinctrl-names = "default";
+       pinctrl-0 = <&nand_pins>;
+       status = "okay";
+       cs3 {
+               #address-cells = <2>;
+               #size-cells = <1>;
+               clock-ranges;
+               ranges;
+
+               ti,cs-chipselect = <3>;
+
+               nand@2000000,0 {
+                       compatible = "ti,davinci-nand";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0 0x02000000 0x02000000
+                              1 0x00000000 0x00008000>;
+
+                       ti,davinci-chipselect = <1>;
+                       ti,davinci-mask-ale = <0>;
+                       ti,davinci-mask-cle = <0>;
+                       ti,davinci-mask-chipsel = <0>;
+
+                       ti,davinci-nand-buswidth = <16>;
+                       ti,davinci-ecc-mode = "hw";
+                       ti,davinci-ecc-bits = <4>;
+                       ti,davinci-nand-use-bbt;
+
+                       /*
+                        * The OMAP-L132/L138 Bootloader doc SPRAB41E reads:
+                        * "To boot from NAND Flash, the AIS should be written
+                        * to NAND block 1 (NAND block 0 is not used by default)".
+                        * The same doc mentions that for ROM "Silicon Revision 2.1",
+                        * "Updated NAND boot mode to offer boot from block 0 or block 1".
+                        * However the limitaion is left here by default for compatibility
+                        * with older silicon and because it needs new boot pin settings
+                        * not possible in stock LCDK.
+                        */
+                       partitions {
+                               compatible = "fixed-partitions";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+
+                               partition@0 {
+                                       label = "u-boot env";
+                                       reg = <0 0x020000>;
+                               };
+                               partition@0x020000 {
+                                       /* The LCDK defaults to booting from this partition */
+                                       label = "u-boot";
+                                       reg = <0x020000 0x080000>;
+                               };
+                               partition@0x0a0000 {
+                                       label = "free space";
+                                       reg = <0x0a0000 0>;
+                               };
+                       };
+               };
+       };
+};
index 25f0f8e..f79e1b9 100644 (file)
                        pinctrl-single,function-mask = <0xf>;
                        status = "disabled";
 
-                       nand_cs3_pins: pinmux_nand_pins {
+                       serial0_rtscts_pins: pinmux_serial0_rtscts_pins {
                                pinctrl-single,bits = <
-                                       /* EMA_OE, EMA_WE */
-                                       0x1c 0x00110000  0x00ff0000
-                                       /* EMA_CS[4],EMA_CS[3]*/
-                                       0x1c 0x00000110  0x00000ff0
-                                       /*
-                                        * EMA_D[0], EMA_D[1], EMA_D[2],
-                                        * EMA_D[3], EMA_D[4], EMA_D[5],
-                                        * EMA_D[6], EMA_D[7]
-                                        */
-                                       0x24 0x11111111  0xffffffff
-                                       /* EMA_A[1], EMA_A[2] */
-                                       0x30 0x01100000  0x0ff00000
+                                       /* UART0_RTS UART0_CTS */
+                                       0x0c 0x22000000 0xff000000
+                               >;
+                       };
+                       serial0_rxtx_pins: pinmux_serial0_rxtx_pins {
+                               pinctrl-single,bits = <
+                                       /* UART0_TXD UART0_RXD */
+                                       0x0c 0x00220000 0x00ff0000
+                               >;
+                       };
+                       serial1_rtscts_pins: pinmux_serial1_rtscts_pins {
+                               pinctrl-single,bits = <
+                                       /* UART1_CTS UART1_RTS */
+                                       0x00 0x00440000 0x00ff0000
+                               >;
+                       };
+                       serial1_rxtx_pins: pinmux_serial1_rxtx_pins {
+                               pinctrl-single,bits = <
+                                       /* UART1_TXD UART1_RXD */
+                                       0x10 0x22000000 0xff000000
+                               >;
+                       };
+                       serial2_rtscts_pins: pinmux_serial2_rtscts_pins {
+                               pinctrl-single,bits = <
+                                       /* UART2_CTS UART2_RTS */
+                                       0x00 0x44000000 0xff000000
+                               >;
+                       };
+                       serial2_rxtx_pins: pinmux_serial2_rxtx_pins {
+                               pinctrl-single,bits = <
+                                       /* UART2_TXD UART2_RXD */
+                                       0x10 0x00220000 0x00ff0000
                                >;
                        };
                        i2c0_pins: pinmux_i2c0_pins {
                        status = "disabled";
                };
                ehrpwm0: pwm@300000 {
-                       compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm";
+                       compatible = "ti,da850-ehrpwm", "ti,am3352-ehrpwm",
+                                    "ti,am33xx-ehrpwm";
                        #pwm-cells = <3>;
                        reg = <0x300000 0x2000>;
                        status = "disabled";
                };
                ehrpwm1: pwm@302000 {
-                       compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm";
+                       compatible = "ti,da850-ehrpwm", "ti,am3352-ehrpwm",
+                                    "ti,am33xx-ehrpwm";
                        #pwm-cells = <3>;
                        reg = <0x302000 0x2000>;
                        status = "disabled";
                };
                ecap0: ecap@306000 {
-                       compatible = "ti,da850-ecap", "ti,am33xx-ecap";
+                       compatible = "ti,da850-ecap", "ti,am3352-ecap",
+                                    "ti,am33xx-ecap";
                        #pwm-cells = <3>;
                        reg = <0x306000 0x80>;
                        status = "disabled";
                };
                ecap1: ecap@307000 {
-                       compatible = "ti,da850-ecap", "ti,am33xx-ecap";
+                       compatible = "ti,da850-ecap", "ti,am3352-ecap",
+                                    "ti,am33xx-ecap";
                        #pwm-cells = <3>;
                        reg = <0x307000 0x80>;
                        status = "disabled";
                };
                ecap2: ecap@308000 {
-                       compatible = "ti,da850-ecap", "ti,am33xx-ecap";
+                       compatible = "ti,da850-ecap", "ti,am3352-ecap",
+                                    "ti,am33xx-ecap";
                        #pwm-cells = <3>;
                        reg = <0x308000 0x80>;
                        status = "disabled";
                        dma-names = "tx", "rx";
                };
        };
-       nand_cs3@62000000 {
-               compatible = "ti,davinci-nand";
-               reg = <0x62000000 0x807ff
-                      0x68000000 0x8000>;
-               ti,davinci-chipselect = <1>;
-               ti,davinci-mask-ale = <0>;
-               ti,davinci-mask-cle = <0>;
-               ti,davinci-mask-chipsel = <0>;
-               ti,davinci-ecc-mode = "hw";
-               ti,davinci-ecc-bits = <4>;
-               ti,davinci-nand-use-bbt;
+       aemif: aemif@68000000 {
+               compatible = "ti,da850-aemif";
+               #address-cells = <2>;
+               #size-cells = <1>;
+
+               reg = <0x68000000 0x00008000>;
+               ranges = <0 0 0x60000000 0x08000000
+                         1 0 0x68000000 0x00008000>;
                status = "disabled";
        };
 };
index 4128fa9..d6657b3 100644 (file)
        model = "DM8148 EVM";
        compatible = "ti,dm8148-evm", "ti,dm8148";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x40000000>;  /* 1 GB */
        };
 
        /* MIC94060YC6 controlled by SD1_POW pin */
-       vmmcsd_fixed: fixedregulator@0 {
+       vmmcsd_fixed: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "vmmcsd_fixed";
                regulator-min-microvolt = <3300000>;
index 3f18486..63883b3 100644 (file)
@@ -11,7 +11,7 @@
        model = "HP t410 Smart Zero Client";
        compatible = "hp,t410", "ti,dm8148";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x40000000>;  /* 1 GB */
        };
@@ -27,7 +27,7 @@
                regulator-always-on;
        };
 
-       vmmcsd_fixed: fixedregulator@0 {
+       vmmcsd_fixed: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "vmmcsd_fixed";
                regulator-min-microvolt = <3300000>;
index 68e412c..ff90a6c 100644 (file)
@@ -7,11 +7,11 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/pinctrl/dm814x.h>
 
-#include "skeleton.dtsi"
-
 / {
        compatible = "ti,dm814";
        interrupt-parent = <&intc>;
+       #address-cells = <1>;
+       #size-cells = <1>;
 
        aliases {
                i2c0 = &i2c1;
index f50348b..0bf55fa 100644 (file)
        model = "DM8168 EVM";
        compatible = "ti,dm8168-evm", "ti,dm8168";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x40000000    /* 1 GB */
                       0xc0000000 0x40000000>;  /* 1 GB */
        };
 
        /* FDC6331L controlled by SD_POW pin */
-       vmmcsd_fixed: fixedregulator@0 {
+       vmmcsd_fixed: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "vmmcsd_fixed";
                regulator-min-microvolt = <3300000>;
index 44e39c7..f1e0f77 100644 (file)
@@ -7,11 +7,11 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/pinctrl/omap.h>
 
-#include "skeleton.dtsi"
-
 / {
        compatible = "ti,dm816";
        interrupt-parent = <&intc>;
+       #address-cells = <1>;
+       #size-cells = <1>;
 
        aliases {
                i2c0 = &i2c1;
index f820573..155eb32 100644 (file)
        model = "DRA62x J5 Eco EVM";
        compatible = "ti,dra62x-j5eco-evm", "ti,dra62x", "ti,dm8148";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x40000000>;  /* 1 GB */
        };
 
        /* MIC94060YC6 controlled by SD1_POW pin */
-       vmmcsd_fixed: fixedregulator@0 {
+       vmmcsd_fixed: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "vmmcsd_fixed";
                regulator-min-microvolt = <3300000>;
index bafcfac..132f2be 100644 (file)
@@ -16,7 +16,7 @@
        model = "TI DRA742";
        compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7";
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x0 0x80000000 0x0 0x60000000>; /* 1536 MB */
        };
 
        leds {
                compatible = "gpio-leds";
-               led@0 {
+               led0 {
                        label = "dra7:usr1";
                        gpios = <&pcf_lcd 4 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
 
-               led@1 {
+               led1 {
                        label = "dra7:usr2";
                        gpios = <&pcf_lcd 5 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
 
-               led@2 {
+               led2 {
                        label = "dra7:usr3";
                        gpios = <&pcf_lcd 6 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
 
-               led@3 {
+               led3 {
                        label = "dra7:usr4";
                        gpios = <&pcf_lcd 7 GPIO_ACTIVE_LOW>;
                        default-state = "off";
 &qspi {
        status = "okay";
 
-       spi-max-frequency = <64000000>;
+       spi-max-frequency = <76800000>;
        m25p80@0 {
                compatible = "s25fl256s1";
-               spi-max-frequency = <64000000>;
+               spi-max-frequency = <76800000>;
                reg = <0>;
                spi-tx-bus-width = <1>;
                spi-rx-bus-width = <4>;
index d9bfb94..d4fcd68 100644 (file)
@@ -10,8 +10,6 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/pinctrl/dra.h>
 
-#include "skeleton.dtsi"
-
 #define MAX_SOURCES 400
 
 / {
                        compatible = "arm,cortex-a15";
                        reg = <0>;
 
-                       operating-points-v2 = <&cpu0_opp_table>;
-                       ti,syscon-efuse = <&scm_wkup 0x20c 0xf80000 19>;
-                       ti,syscon-rev = <&scm_wkup 0x204>;
+                       operating-points = <
+                               /* kHz    uV */
+                               1000000 1060000
+                               1176000 1160000
+                               >;
 
                        clocks = <&dpll_mpu_ck>;
                        clock-names = "cpu";
                };
        };
 
-       cpu0_opp_table: opp_table0 {
-               compatible = "operating-points-v2";
-               opp-shared;
-
-               opp_nom@1000000000 {
-                       opp-hz = /bits/ 64 <1000000000>;
-                       opp-microvolt = <1060000 850000 1150000>;
-                       opp-supported-hw = <0xFF 0x01>;
-                       opp-suspend;
-               };
-
-               opp_od@1176000000 {
-                       opp-hz = /bits/ 64 <1176000000>;
-                       opp-microvolt = <1160000 885000 1160000>;
-                       opp-supported-hw = <0xFF 0x02>;
-               };
-       };
-
        /*
         * The soc node represents the soc top level view. It is used for IPs
         * that are not memory mapped in the MPU view or for the MPU itself.
                                          0x82000000 0 0x20013000 0x13000 0 0xffed000>;
                                #interrupt-cells = <1>;
                                num-lanes = <1>;
+                               linux,pci-domain = <0>;
                                ti,hwmods = "pcie1";
                                phys = <&pcie1_phy>;
                                phy-names = "pcie-phy0";
                                          0x82000000 0 0x30013000 0x13000 0 0xffed000>;
                                #interrupt-cells = <1>;
                                num-lanes = <1>;
+                               linux,pci-domain = <1>;
                                ti,hwmods = "pcie2";
                                phys = <&pcie2_phy>;
                                phy-names = "pcie-phy0";
                        ti,hwmods = "ocp2scp1";
 
                        usb2_phy1: phy@4a084000 {
-                               compatible = "ti,omap-usb2";
+                               compatible = "ti,dra7x-usb2", "ti,omap-usb2";
                                reg = <0x4a084000 0x400>;
                                syscon-phy-power = <&scm_conf 0x300>;
                                clocks = <&usb_phy1_always_on_clk32k>,
                mac: ethernet@48484000 {
                        compatible = "ti,dra7-cpsw","ti,cpsw";
                        ti,hwmods = "gmac";
-                       clocks = <&dpll_gmac_ck>, <&gmac_gmii_ref_clk_div>;
+                       clocks = <&gmac_main_clk>, <&gmac_rft_clk_mux>;
                        clock-names = "fck", "cpts";
                        cpdma_channels = <8>;
                        ale_entries = <1024>;
                        mac_control = <0x20>;
                        slaves = <2>;
                        active_slave = <0>;
-                       cpts_clock_mult = <0x80000000>;
+                       cpts_clock_mult = <0x784CFE14>;
                        cpts_clock_shift = <29>;
                        reg = <0x48484000 0x1000
                               0x48485200 0x2E00>;
index 9d3cf50..c94d8d6 100644 (file)
 &qspi {
        status = "okay";
 
-       spi-max-frequency = <64000000>;
+       spi-max-frequency = <76800000>;
        m25p80@0 {
                compatible = "s25fl256s1";
-               spi-max-frequency = <64000000>;
+               spi-max-frequency = <76800000>;
                reg = <0>;
                spi-tx-bus-width = <1>;
                spi-rx-bus-width = <4>;
index f9cfd3b..064b322 100644 (file)
@@ -11,7 +11,7 @@
 / {
        model = "TI DRA722 Rev C EVM";
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x0 0x80000000 0x0 0x80000000>; /* 2GB */
        };
index cc1d32c..e3a9b69 100644 (file)
@@ -9,7 +9,7 @@
 / {
        model = "TI DRA722";
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x0 0x80000000 0x0 0x40000000>; /* 1024 MB */
        };
index 8987b3e..0a78347 100644 (file)
@@ -17,7 +17,6 @@
                        device_type = "cpu";
                        compatible = "arm,cortex-a15";
                        reg = <1>;
-                       operating-points-v2 = <&cpu0_opp_table>;
                };
        };
 
index 8378b44..3330738 100644 (file)
                ti,index-power-of-two;
        };
 
+       gmac_main_clk: gmac_main_clk {
+               #clock-cells = <0>;
+               compatible = "fixed-factor-clock";
+               clocks = <&gmac_250m_dclk_div>;
+               clock-mult = <1>;
+               clock-div = <2>;
+       };
+
        l3init_480m_dclk_div: l3init_480m_dclk_div@1ac {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
                reg = <0x0c00>;
        };
 
-       gmac_gmii_ref_clk_div: gmac_gmii_ref_clk_div@13d0 {
+       rmii_50mhz_clk_mux: rmii_50mhz_clk_mux@13d0 {
                #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&dpll_gmac_m2_ck>;
+               compatible = "ti,mux-clock";
+               clocks = <&dpll_gmac_h11x2_ck>, <&rmii_clk_ck>;
                ti,bit-shift = <24>;
                reg = <0x13d0>;
-               ti,dividers = <2>;
        };
 
        gmac_rft_clk_mux: gmac_rft_clk_mux@13d0 {
index 504cf45..98fc667 100644 (file)
@@ -16,7 +16,8 @@
                bootargs = "console=ttyefm4,115200 init=/linuxrc ignore_loglevel ihash_entries=64 dhash_entries=64 earlyprintk uclinux.physaddr=0x8c400000 root=/dev/mtdblock0";
        };
 
-       memory {
+       memory@88000000 {
+               device_type = "memory";
                reg = <0x88000000 0x400000>;
        };
 
@@ -74,7 +75,7 @@
                        status = "ok";
                };
 
-               boardfpga: boardfpga {
+               boardfpga: boardfpga@80000000 {
                        compatible = "efm32board";
                        reg = <0x80000000 0x400>;
                        irq-gpios = <&gpio 64 1>;
index c747983..b78c57e 100644 (file)
@@ -4,10 +4,14 @@
  * Documentation available from
  * http://www.silabs.com/Support%20Documents/TechnicalDocs/EFM32GG-RM.pdf
  */
+
 #include "armv7-m.dtsi"
 #include "dt-bindings/clock/efm32-cmu.h"
 
 / {
+       #address-cells = <1>;
+       #size-cells = <1>;
+
        aliases {
                i2c0 = &i2c0;
                i2c1 = &i2c1;
index 130e946..a70819b 100644 (file)
@@ -24,7 +24,8 @@
                stdout-path = &serial_2;
        };
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg = <0x40000000 0x1ff00000>;
        };
 
index 8c89062..66f04f6 100644 (file)
@@ -27,7 +27,8 @@
                i2c7 = &i2c_max77836;
        };
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg =  <0x40000000 0x1ff00000>;
        };
 
index 40ea7de..ec33116 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_DRV_LV1            0
-#define PIN_DRV_LV2            2
-#define PIN_DRV_LV3            1
-#define PIN_DRV_LV4            3
-
-#define PIN_PDN_OUT0           0
-#define PIN_PDN_OUT1           1
-#define PIN_PDN_INPUT          2
-#define PIN_PDN_PREV           3
-
-#define PIN_IN(_pin, _pull, _drv)                      \
-       _pin {                                          \
-               samsung,pins = #_pin;                   \
-               samsung,pin-function = <0>;             \
-               samsung,pin-pud = <PIN_PULL_ ##_pull>;  \
-               samsung,pin-drv = <PIN_DRV_ ##_drv>;    \
+#include <dt-bindings/pinctrl/samsung.h>
+
+#define PIN_IN(_pin, _pull, _drv)                                      \
+       _pin {                                                          \
+               samsung,pins = #_pin;                                   \
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;         \
+               samsung,pin-pud = <EXYNOS_PIN_PULL_ ##_pull>;           \
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_ ##_drv>;            \
        }
 
-#define PIN_OUT(_pin, _drv)                            \
-       _pin {                                          \
-               samsung,pins = #_pin;                   \
-               samsung,pin-function = <1>;             \
-               samsung,pin-pud = <0>;                  \
-               samsung,pin-drv = <PIN_DRV_ ##_drv>;    \
+#define PIN_OUT(_pin, _drv)                                            \
+       _pin {                                                          \
+               samsung,pins = #_pin;                                   \
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;        \
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;               \
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_ ##_drv>;            \
        }
 
-#define PIN_OUT_SET(_pin, _val, _drv)                  \
-       _pin {                                          \
-               samsung,pins = #_pin;                   \
-               samsung,pin-function = <1>;             \
-               samsung,pin-pud = <0>;                  \
-               samsung,pin-drv = <PIN_DRV_ ##_drv>;    \
-               samsung,pin-val = <_val>;               \
+#define PIN_OUT_SET(_pin, _val, _drv)                                  \
+       _pin {                                                          \
+               samsung,pins = #_pin;                                   \
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;        \
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;               \
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_ ##_drv>;            \
+               samsung,pin-val = <_val>;                               \
        }
 
-#define PIN_CFG(_pin, _sel, _pull, _drv)               \
-       _pin {                                          \
-               samsung,pins = #_pin;                   \
-               samsung,pin-function = <_sel>;          \
-               samsung,pin-pud = <PIN_PULL_ ##_pull>;  \
-               samsung,pin-drv = <PIN_DRV_ ##_drv>;    \
+#define PIN_CFG(_pin, _sel, _pull, _drv)                               \
+       _pin {                                                          \
+               samsung,pins = #_pin;                                   \
+               samsung,pin-function = <_sel>;                          \
+               samsung,pin-pud = <EXYNOS_PIN_PULL_ ##_pull>;           \
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_ ##_drv>;            \
        }
 
-#define PIN_SLP(_pin, _mode, _pull)                            \
-       _pin {                                                  \
-               samsung,pins = #_pin;                           \
-               samsung,pin-con-pdn = <PIN_PDN_ ##_mode>;       \
-               samsung,pin-pud-pdn = <PIN_PULL_ ##_pull>;      \
+#define PIN_SLP(_pin, _mode, _pull)                                    \
+       _pin {                                                          \
+               samsung,pins = #_pin;                                   \
+               samsung,pin-con-pdn = <EXYNOS_PIN_PDN_ ##_mode>;        \
+               samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_ ##_pull>;       \
        }
 
 &pinctrl_0 {
 
        uart0_data: uart0-data {
                samsung,pins = "gpa0-0", "gpa0-1";
-               samsung,pin-function = <0x2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart0_fctl: uart0-fctl {
                samsung,pins = "gpa0-2", "gpa0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart1_data: uart1-data {
                samsung,pins = "gpa0-4", "gpa0-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart1_fctl: uart1-fctl {
                samsung,pins = "gpa0-6", "gpa0-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c2_bus: i2c2-bus {
                samsung,pins = "gpa0-6", "gpa0-7";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart2_data: uart2-data {
                samsung,pins = "gpa1-0", "gpa1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c3_bus: i2c3-bus {
                samsung,pins = "gpa1-2", "gpa1-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        spi0_bus: spi0-bus {
                samsung,pins = "gpb-0", "gpb-2", "gpb-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c4_bus: i2c4-bus {
                samsung,pins = "gpb-0", "gpb-1";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        spi1_bus: spi1-bus {
                samsung,pins = "gpb-4", "gpb-6", "gpb-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c5_bus: i2c5-bus {
                samsung,pins = "gpb-2", "gpb-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c6_bus: i2c6-bus {
                samsung,pins = "gpc1-3", "gpc1-4";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm0_out: pwm0-out {
                samsung,pins = "gpd0-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm1_out: pwm1-out {
                samsung,pins = "gpd0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c7_bus: i2c7-bus {
                samsung,pins = "gpd0-2", "gpd0-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm2_out: pwm2-out {
                samsung,pins = "gpd0-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm3_out: pwm3-out {
                samsung,pins = "gpd0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c0_bus: i2c0-bus {
                samsung,pins = "gpd1-0", "gpd1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        mipi0_clk: mipi0-clk {
                samsung,pins = "gpd1-0", "gpd1-1";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c1_bus: i2c1-bus {
                samsung,pins = "gpd1-2", "gpd1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
 
        sd0_clk: sd0-clk {
                samsung,pins = "gpk0-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_cmd: sd0-cmd {
                samsung,pins = "gpk0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_cd: sd0-cd {
                samsung,pins = "gpk0-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_rdqs: sd0-rdqs {
                samsung,pins = "gpk0-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_bus1: sd0-bus-width1 {
                samsung,pins = "gpk0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_clk: sd1-clk {
                samsung,pins = "gpk1-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_cmd: sd1-cmd {
                samsung,pins = "gpk1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_cd: sd1-cd {
                samsung,pins = "gpk1-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_bus1: sd1-bus-width1 {
                samsung,pins = "gpk1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_clk: sd2-clk {
                samsung,pins = "gpk2-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_cmd: sd2-cmd {
                samsung,pins = "gpk2-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_cd: sd2-cd {
                samsung,pins = "gpk2-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_bus1: sd2-bus-width1 {
                samsung,pins = "gpk2-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_bus4: sd2-bus-width4 {
                samsung,pins = "gpk2-4", "gpk2-5", "gpk2-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        fimc_is_i2c0: fimc-is-i2c0 {
                samsung,pins = "gpm4-0", "gpm4-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        fimc_is_i2c1: fimc-is-i2c1 {
                samsung,pins = "gpm4-2", "gpm4-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        fimc_is_uart: fimc-is-uart {
                samsung,pins = "gpm3-5", "gpm3-7";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
index a921813..3967ee5 100644 (file)
@@ -27,7 +27,8 @@
                i2c7 = &i2c_max77836;
        };
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg =  <0x40000000 0x1ff00000>;
        };
 
index 70e3ace..e9d2556 100644 (file)
@@ -17,7 +17,6 @@
  * published by the Free Software Foundation.
  */
 
-#include "skeleton.dtsi"
 #include "exynos4-cpu-thermal.dtsi"
 #include "exynos-syscon-restart.dtsi"
 #include <dt-bindings/clock/exynos3250.h>
@@ -25,6 +24,8 @@
 / {
        compatible = "samsung,exynos3250";
        interrupt-parent = <&gic>;
+       #address-cells = <1>;
+       #size-cells = <1>;
 
        aliases {
                pinctrl0 = &pinctrl_0;
index 32f22e1..5f034eb 100644 (file)
 
 #include <dt-bindings/clock/exynos4.h>
 #include <dt-bindings/clock/exynos-audss-clk.h>
-#include "skeleton.dtsi"
 #include "exynos-syscon-restart.dtsi"
 
 / {
        interrupt-parent = <&gic>;
+       #address-cells = <1>;
+       #size-cells = <1>;
 
        aliases {
                spi0 = &spi_0;
index be2751e..a2c6a13 100644 (file)
@@ -24,7 +24,8 @@
        model = "Insignal Origen evaluation board based on Exynos4210";
        compatible = "insignal,origen", "samsung,exynos4210", "samsung,exynos4";
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg = <0x40000000 0x10000000
                       0x50000000 0x10000000
                       0x60000000 0x10000000
index 9331c62..d9b6d25 100644 (file)
@@ -14,6 +14,8 @@
  * published by the Free Software Foundation.
 */
 
+#include <dt-bindings/pinctrl/samsung.h>
+
 / {
        pinctrl@11400000 {
                gpa0: gpa0 {
 
                uart0_data: uart0-data {
                        samsung,pins = "gpa0-0", "gpa0-1";
-                       samsung,pin-function = <0x2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart0_fctl: uart0-fctl {
                        samsung,pins = "gpa0-2", "gpa0-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart1_data: uart1-data {
                        samsung,pins = "gpa0-4", "gpa0-5";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart1_fctl: uart1-fctl {
                        samsung,pins = "gpa0-6", "gpa0-7";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                i2c2_bus: i2c2-bus {
                        samsung,pins = "gpa0-6", "gpa0-7";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart2_data: uart2-data {
                        samsung,pins = "gpa1-0", "gpa1-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart2_fctl: uart2-fctl {
                        samsung,pins = "gpa1-2", "gpa1-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart_audio_a: uart-audio-a {
                        samsung,pins = "gpa1-0", "gpa1-1";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                i2c3_bus: i2c3-bus {
                        samsung,pins = "gpa1-2", "gpa1-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart3_data: uart3-data {
                        samsung,pins = "gpa1-4", "gpa1-5";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart_audio_b: uart-audio-b {
                        samsung,pins = "gpa1-4", "gpa1-5";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                spi0_bus: spi0-bus {
                        samsung,pins = "gpb-0", "gpb-2", "gpb-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                i2c4_bus: i2c4-bus {
                        samsung,pins = "gpb-2", "gpb-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                spi1_bus: spi1-bus {
                        samsung,pins = "gpb-4", "gpb-6", "gpb-7";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                i2c5_bus: i2c5-bus {
                        samsung,pins = "gpb-6", "gpb-7";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                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>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                pcm1_bus: pcm1-bus {
                        samsung,pins = "gpc0-0", "gpc0-1", "gpc0-2", "gpc0-3",
                                        "gpc0-4";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                ac97_bus: ac97-bus {
                        samsung,pins = "gpc0-0", "gpc0-1", "gpc0-2", "gpc0-3",
                                        "gpc0-4";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                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>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                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>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                spdif_bus: spdif-bus {
                        samsung,pins = "gpc1-0", "gpc1-1";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                i2c6_bus: i2c6-bus {
                        samsung,pins = "gpc1-3", "gpc1-4";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                spi2_bus: spi2-bus {
                        samsung,pins = "gpc1-1", "gpc1-2", "gpc1-3", "gpc1-4";
-                       samsung,pin-function = <5>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_5>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                i2c7_bus: i2c7-bus {
                        samsung,pins = "gpd0-2", "gpd0-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                i2c0_bus: i2c0-bus {
                        samsung,pins = "gpd1-0", "gpd1-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                i2c1_bus: i2c1-bus {
                        samsung,pins = "gpd1-2", "gpd1-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                pwm0_out: pwm0-out {
                        samsung,pins = "gpd0-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                pwm1_out: pwm1-out {
                        samsung,pins = "gpd0-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                pwm2_out: pwm2-out {
                        samsung,pins = "gpd0-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                pwm3_out: pwm3-out {
                        samsung,pins = "gpd0-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                lcd_ctrl: lcd-ctrl {
                        samsung,pins = "gpd0-0", "gpd0-1";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                lcd_sync: lcd-sync {
                        samsung,pins = "gpf0-0", "gpf0-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                lcd_en: lcd-en {
                        samsung,pins = "gpe3-4";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                lcd_clk: lcd-clk {
                        samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                lcd_data16: lcd-data-width16 {
                                        "gpf1-3", "gpf1-6", "gpf1-7", "gpf2-0",
                                        "gpf2-1", "gpf2-2", "gpf2-3", "gpf2-7",
                                        "gpf3-0", "gpf3-1", "gpf3-2", "gpf3-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                lcd_data18: lcd-data-width18 {
                                        "gpf2-0", "gpf2-1", "gpf2-2", "gpf2-3",
                                        "gpf2-6", "gpf2-7", "gpf3-0", "gpf3-1",
                                        "gpf3-2", "gpf3-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                lcd_data24: lcd-data-width24 {
                                        "gpf2-0", "gpf2-1", "gpf2-2", "gpf2-3",
                                        "gpf2-4", "gpf2-5", "gpf2-6", "gpf2-7",
                                        "gpf3-0", "gpf3-1", "gpf3-2", "gpf3-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
        };
 
 
                sd0_clk: sd0-clk {
                        samsung,pins = "gpk0-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd0_cmd: sd0-cmd {
                        samsung,pins = "gpk0-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd0_cd: sd0-cd {
                        samsung,pins = "gpk0-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd0_bus1: sd0-bus-width1 {
                        samsung,pins = "gpk0-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd0_bus4: sd0-bus-width4 {
                        samsung,pins = "gpk0-3", "gpk0-4", "gpk0-5", "gpk0-6";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd0_bus8: sd0-bus-width8 {
                        samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd4_clk: sd4-clk {
                        samsung,pins = "gpk0-0";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd4_cmd: sd4-cmd {
                        samsung,pins = "gpk0-1";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd4_cd: sd4-cd {
                        samsung,pins = "gpk0-2";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd4_bus1: sd4-bus-width1 {
                        samsung,pins = "gpk0-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd4_bus4: sd4-bus-width4 {
                        samsung,pins = "gpk0-3", "gpk0-4", "gpk0-5", "gpk0-6";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd4_bus8: sd4-bus-width8 {
                        samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <4>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd1_clk: sd1-clk {
                        samsung,pins = "gpk1-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd1_cmd: sd1-cmd {
                        samsung,pins = "gpk1-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd1_cd: sd1-cd {
                        samsung,pins = "gpk1-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd1_bus1: sd1-bus-width1 {
                        samsung,pins = "gpk1-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd1_bus4: sd1-bus-width4 {
                        samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd2_clk: sd2-clk {
                        samsung,pins = "gpk2-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd2_cmd: sd2-cmd {
                        samsung,pins = "gpk2-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd2_cd: sd2-cd {
                        samsung,pins = "gpk2-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd2_bus1: sd2-bus-width1 {
                        samsung,pins = "gpk2-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd2_bus4: sd2-bus-width4 {
                        samsung,pins = "gpk2-3", "gpk2-4", "gpk2-5", "gpk2-6";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd2_bus8: sd2-bus-width8 {
                        samsung,pins = "gpk3-3", "gpk3-4", "gpk3-5", "gpk3-6";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd3_clk: sd3-clk {
                        samsung,pins = "gpk3-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd3_cmd: sd3-cmd {
                        samsung,pins = "gpk3-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd3_cd: sd3-cd {
                        samsung,pins = "gpk3-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd3_bus1: sd3-bus-width1 {
                        samsung,pins = "gpk3-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd3_bus4: sd3-bus-width4 {
                        samsung,pins = "gpk3-3", "gpk3-4", "gpk3-5", "gpk3-6";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                eint0: ext-int0 {
                        samsung,pins = "gpx0-0";
-                       samsung,pin-function = <0xf>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                eint8: ext-int8 {
                        samsung,pins = "gpx1-0";
-                       samsung,pin-function = <0xf>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                eint15: ext-int15 {
                        samsung,pins = "gpx1-7";
-                       samsung,pin-function = <0xf>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                eint16: ext-int16 {
                        samsung,pins = "gpx2-0";
-                       samsung,pin-function = <0xf>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                eint31: ext-int31 {
                        samsung,pins = "gpx3-7";
-                       samsung,pin-function = <0xf>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                cam_port_a_io: cam-port-a-io {
                        samsung,pins = "gpj0-0", "gpj0-1", "gpj0-2", "gpj0-3",
                                        "gpj0-4", "gpj0-5", "gpj0-6", "gpj0-7",
                                        "gpj1-0", "gpj1-1", "gpj1-2", "gpj1-4";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                cam_port_a_clk_active: cam-port-a-clk-active {
                        samsung,pins = "gpj1-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                cam_port_a_clk_idle: cam-port-a-clk-idle {
                        samsung,pins = "gpj1-3";
-                       samsung,pin-function = <0>;
-                       samsung,pin-pud = <1>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                hdmi_cec: hdmi-cec {
                        samsung,pins = "gpx3-6";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
        };
 
                i2s0_bus: i2s0-bus {
                        samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
                                        "gpz-4", "gpz-5", "gpz-6";
-                       samsung,pin-function = <0x2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                pcm0_bus: pcm0-bus {
                        samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
                                        "gpz-4";
-                       samsung,pin-function = <0x3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
        };
 };
index 847fae3..9c98a37 100644 (file)
@@ -23,7 +23,8 @@
        model = "Samsung smdkv310 evaluation board based on Exynos4210";
        compatible = "samsung,smdkv310", "samsung,exynos4210", "samsung,exynos4";
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg = <0x40000000 0x80000000>;
        };
 
 &pinctrl_1 {
        keypad_rows: keypad-rows {
                samsung,pins = "gpx2-0", "gpx2-1";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_cols: keypad-cols {
                samsung,pins = "gpx1-0", "gpx1-1", "gpx1-2", "gpx1-3",
                               "gpx1-4", "gpx1-5", "gpx1-6", "gpx1-7";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
index 79d9830..0ca1b4d 100644 (file)
@@ -20,7 +20,8 @@
        model = "Samsung Trats based on Exynos4210";
        compatible = "samsung,trats", "samsung,exynos4210", "samsung,exynos4";
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg =  <0x40000000 0x10000000
                        0x50000000 0x10000000
                        0x60000000 0x10000000
index 9a75e3e..0c89ea9 100644 (file)
@@ -20,7 +20,8 @@
        model = "Samsung Universal C210 based on Exynos4210 rev0";
        compatible = "samsung,universal_c210", "samsung,exynos4210", "samsung,exynos4";
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg =  <0x40000000 0x10000000
                        0x50000000 0x10000000>;
        };
 };
 
 &hdmi {
-       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+       hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
        pinctrl-names = "default";
        pinctrl-0 = <&hdmi_hpd>;
        hdmi-en-supply = <&hdmi_en>;
 &pinctrl_1 {
        hdmi_hpd: hdmi-hpd {
                samsung,pins = "gpx3-7";
-               samsung,pin-pud = <0>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
        };
 };
 
 &pinctrl_0 {
        i2c_ddc_bus: i2c-ddc-bus {
                samsung,pins = "gpe4-2", "gpe4-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
index 58ad48e..8aa19ba 100644 (file)
 
 /* RSTN signal for eMMC */
 &sd1_cd {
-       samsung,pin-pud = <0>;
-       samsung,pin-drv = <0>;
+       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
 };
 
 &pinctrl_1 {
        gpio_power_key: power_key {
                samsung,pins = "gpx1-3";
-               samsung,pin-pud = <0>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
        };
 
        max77686_irq: max77686-irq {
                samsung,pins = "gpx3-2";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        hdmi_hpd: hdmi-hpd {
                samsung,pins = "gpx3-7";
-               samsung,pin-pud = <1>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
        };
 };
 
 };
 
 &hdmi {
-       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+       hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
        pinctrl-names = "default";
        pinctrl-0 = <&hdmi_hpd>;
        vdd-supply = <&ldo8_reg>;
index d73aa6c..99634c5 100644 (file)
@@ -18,7 +18,8 @@
        model = "Hardkernel ODROID-U3 board based on Exynos4412";
        compatible = "hardkernel,odroid-u3", "samsung,exynos4412", "samsung,exynos4";
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg = <0x40000000 0x7FF00000>;
        };
 
index 2af2351..61906b3 100644 (file)
@@ -18,7 +18,8 @@
        model = "Hardkernel ODROID-X board based on Exynos4412";
        compatible = "hardkernel,odroid-x", "samsung,exynos4412", "samsung,exynos4";
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg = <0x40000000 0x3FF00000>;
        };
 
@@ -83,7 +84,7 @@
 &pinctrl_1 {
        gpio_home_key: home_key {
                samsung,pins = "gpx2-2";
-               samsung,pin-pud = <0>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
        };
 };
 
index 3e35842..4d22885 100644 (file)
@@ -17,7 +17,8 @@
        model = "Hardkernel ODROID-X2 board based on Exynos4412";
        compatible = "hardkernel,odroid-x2", "samsung,exynos4412", "samsung,exynos4";
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg = <0x40000000 0x7FF00000>;
        };
 };
index 26a36fe..a1ab6f9 100644 (file)
@@ -22,7 +22,8 @@
        model = "Insignal Origen evaluation board based on Exynos4412";
        compatible = "insignal,origen4412", "samsung,exynos4412", "samsung,exynos4";
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg = <0x40000000 0x40000000>;
        };
 
 &pinctrl_1 {
        keypad_rows: keypad-rows {
                samsung,pins = "gpx2-0", "gpx2-1", "gpx2-2";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_cols: keypad-cols {
                samsung,pins = "gpx1-0", "gpx1-1";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
index 231ffbd..7fcb434 100644 (file)
@@ -20,7 +20,8 @@
        model = "Samsung SMDK evaluation board based on Exynos4412";
        compatible = "samsung,smdk4412", "samsung,exynos4412", "samsung,exynos4";
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg = <0x40000000 0x40000000>;
        };
 
 &pinctrl_1 {
        keypad_rows: keypad-rows {
                samsung,pins = "gpx2-0", "gpx2-1", "gpx2-2";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_cols: keypad-cols {
                samsung,pins = "gpx1-0", "gpx1-1", "gpx1-2", "gpx1-3",
                               "gpx1-4", "gpx1-5", "gpx1-6", "gpx1-7";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
index 4840bbd..5504398 100644 (file)
@@ -23,7 +23,8 @@
                stdout-path = &serial_0;
        };
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg = <0x40000000 0x40000000>;
        };
 
index 129e973..41ecd6d 100644 (file)
@@ -30,7 +30,8 @@
                i2c12 = &i2c_max77693_fuel;
        };
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg =  <0x40000000 0x40000000>;
        };
 
index 75af9c5..76cfd87 100644 (file)
@@ -11,6 +11,8 @@
  * published by the Free Software Foundation.
 */
 
+#include <dt-bindings/pinctrl/samsung.h>
+
 &pinctrl_0 {
        gpa0: gpa0 {
                gpio-controller;
 
        uart0_data: uart0-data {
                samsung,pins = "gpa0-0", "gpa0-1";
-               samsung,pin-function = <0x2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart0_fctl: uart0-fctl {
                samsung,pins = "gpa0-2", "gpa0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart1_data: uart1-data {
                samsung,pins = "gpa0-4", "gpa0-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart1_fctl: uart1-fctl {
                samsung,pins = "gpa0-6", "gpa0-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart2_data: uart2-data {
                samsung,pins = "gpa1-0", "gpa1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart2_fctl: uart2-fctl {
                samsung,pins = "gpa1-2", "gpa1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart3_data: uart3-data {
                samsung,pins = "gpa1-4", "gpa1-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c2_bus: i2c2-bus {
                samsung,pins = "gpa0-6", "gpa0-7";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c3_bus: i2c3-bus {
                samsung,pins = "gpa1-2", "gpa1-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        spi0_bus: spi0-bus {
                samsung,pins = "gpb-0", "gpb-2", "gpb-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c4_bus: i2c4-bus {
                samsung,pins = "gpb-0", "gpb-1";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        spi1_bus: spi1-bus {
                samsung,pins = "gpb-4", "gpb-6", "gpb-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c5_bus: i2c5-bus {
                samsung,pins = "gpb-2", "gpb-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c6_bus: i2c6-bus {
                samsung,pins = "gpc1-3", "gpc1-4";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        spi2_bus: spi2-bus {
                samsung,pins = "gpc1-1", "gpc1-3", "gpc1-4";
-               samsung,pin-function = <5>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_5>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm0_out: pwm0-out {
                samsung,pins = "gpd0-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm1_out: pwm1-out {
                samsung,pins = "gpd0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm2_out: pwm2-out {
                samsung,pins = "gpd0-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm3_out: pwm3-out {
                samsung,pins = "gpd0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c7_bus: i2c7-bus {
                samsung,pins = "gpd0-2", "gpd0-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c0_bus: i2c0-bus {
                samsung,pins = "gpd1-0", "gpd1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c1_bus: i2c1-bus {
                samsung,pins = "gpd1-2", "gpd1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
 
        sd0_clk: sd0-clk {
                samsung,pins = "gpk0-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_cmd: sd0-cmd {
                samsung,pins = "gpk0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_cd: sd0-cd {
                samsung,pins = "gpk0-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_rdqs: sd0-rdqs {
                samsung,pins = "gpk0-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_bus1: sd0-bus-width1 {
                samsung,pins = "gpk0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_clk: sd1-clk {
                samsung,pins = "gpk1-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_cmd: sd1-cmd {
                samsung,pins = "gpk1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_cd: sd1-cd {
                samsung,pins = "gpk1-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_bus1: sd1-bus-width1 {
                samsung,pins = "gpk1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_clk: sd2-clk {
                samsung,pins = "gpk2-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <4>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_cmd: sd2-cmd {
                samsung,pins = "gpk2-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <4>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_cd: sd2-cd {
                samsung,pins = "gpk2-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_bus1: sd2-bus-width1 {
                samsung,pins = "gpk2-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <4>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        fimc_is_i2c0: fimc-is-i2c0 {
                samsung,pins = "gpm4-0", "gpm4-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        fimc_is_i2c1: fimc-is-i2c1 {
                samsung,pins = "gpm4-2", "gpm4-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        fimc_is_uart: fimc-is-uart {
                samsung,pins = "gpm3-5", "gpm3-7";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
index 28b04b6..3c40f8a 100644 (file)
  * 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>;
+       #address-cells = <1>;
+       #size-cells = <1>;
 
        aliases {
                pinctrl0 = &pinctrl_0;
index 856b292..a56bf9b 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>;      \
+#include <dt-bindings/pinctrl/samsung.h>
+
+#define PIN_SLP(_pin, _mode, _pull)                                    \
+       _pin {                                                          \
+               samsung,pins = #_pin;                                   \
+               samsung,pin-con-pdn = <EXYNOS_PIN_PDN_ ##_mode>;        \
+               samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_ ##_pull>;       \
        }
 
 / {
 
                uart0_data: uart0-data {
                        samsung,pins = "gpa0-0", "gpa0-1";
-                       samsung,pin-function = <0x2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart0_fctl: uart0-fctl {
                        samsung,pins = "gpa0-2", "gpa0-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart1_data: uart1-data {
                        samsung,pins = "gpa0-4", "gpa0-5";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart1_fctl: uart1-fctl {
                        samsung,pins = "gpa0-6", "gpa0-7";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                i2c2_bus: i2c2-bus {
                        samsung,pins = "gpa0-6", "gpa0-7";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart2_data: uart2-data {
                        samsung,pins = "gpa1-0", "gpa1-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart2_fctl: uart2-fctl {
                        samsung,pins = "gpa1-2", "gpa1-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart_audio_a: uart-audio-a {
                        samsung,pins = "gpa1-0", "gpa1-1";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                i2c3_bus: i2c3-bus {
                        samsung,pins = "gpa1-2", "gpa1-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart3_data: uart3-data {
                        samsung,pins = "gpa1-4", "gpa1-5";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                uart_audio_b: uart-audio-b {
                        samsung,pins = "gpa1-4", "gpa1-5";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                spi0_bus: spi0-bus {
                        samsung,pins = "gpb-0", "gpb-2", "gpb-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                i2c4_bus: i2c4-bus {
                        samsung,pins = "gpb-0", "gpb-1";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                spi1_bus: spi1-bus {
                        samsung,pins = "gpb-4", "gpb-6", "gpb-7";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                i2c5_bus: i2c5-bus {
                        samsung,pins = "gpb-2", "gpb-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                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>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                pcm1_bus: pcm1-bus {
                        samsung,pins = "gpc0-0", "gpc0-1", "gpc0-2", "gpc0-3",
                                        "gpc0-4";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                ac97_bus: ac97-bus {
                        samsung,pins = "gpc0-0", "gpc0-1", "gpc0-2", "gpc0-3",
                                        "gpc0-4";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                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>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                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>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                spdif_bus: spdif-bus {
                        samsung,pins = "gpc1-0", "gpc1-1";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                i2c6_bus: i2c6-bus {
                        samsung,pins = "gpc1-3", "gpc1-4";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                spi2_bus: spi2-bus {
                        samsung,pins = "gpc1-1", "gpc1-3", "gpc1-4";
-                       samsung,pin-function = <5>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_5>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                pwm0_out: pwm0-out {
                        samsung,pins = "gpd0-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                pwm1_out: pwm1-out {
                        samsung,pins = "gpd0-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                lcd_ctrl: lcd-ctrl {
                        samsung,pins = "gpd0-0", "gpd0-1";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                i2c7_bus: i2c7-bus {
                        samsung,pins = "gpd0-2", "gpd0-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                pwm2_out: pwm2-out {
                        samsung,pins = "gpd0-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                pwm3_out: pwm3-out {
                        samsung,pins = "gpd0-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                i2c0_bus: i2c0-bus {
                        samsung,pins = "gpd1-0", "gpd1-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                mipi0_clk: mipi0-clk {
                        samsung,pins = "gpd1-0", "gpd1-1";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                i2c1_bus: i2c1-bus {
                        samsung,pins = "gpd1-2", "gpd1-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                mipi1_clk: mipi1-clk {
                        samsung,pins = "gpd1-2", "gpd1-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                lcd_clk: lcd-clk {
                        samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                lcd_data16: lcd-data-width16 {
                                        "gpf1-3", "gpf1-6", "gpf1-7", "gpf2-0",
                                        "gpf2-1", "gpf2-2", "gpf2-3", "gpf2-7",
                                        "gpf3-0", "gpf3-1", "gpf3-2", "gpf3-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                lcd_data18: lcd-data-width18 {
                                        "gpf2-0", "gpf2-1", "gpf2-2", "gpf2-3",
                                        "gpf2-6", "gpf2-7", "gpf3-0", "gpf3-1",
                                        "gpf3-2", "gpf3-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                lcd_data24: lcd-data-width24 {
                                        "gpf2-0", "gpf2-1", "gpf2-2", "gpf2-3",
                                        "gpf2-4", "gpf2-5", "gpf2-6", "gpf2-7",
                                        "gpf3-0", "gpf3-1", "gpf3-2", "gpf3-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                lcd_ldi: lcd-ldi {
                        samsung,pins = "gpf3-4";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                cam_port_a_io: cam-port-a-io {
                        samsung,pins = "gpj0-0", "gpj0-1", "gpj0-2", "gpj0-3",
                                        "gpj0-4", "gpj0-5", "gpj0-6", "gpj0-7",
                                        "gpj1-0", "gpj1-1", "gpj1-2", "gpj1-4";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                cam_port_a_clk_active: cam-port-a-clk-active {
                        samsung,pins = "gpj1-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                cam_port_a_clk_idle: cam-port-a-clk-idle {
                        samsung,pins = "gpj1-3";
-                       samsung,pin-function = <0>;
-                       samsung,pin-pud = <1>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
        };
 
 
                sd0_clk: sd0-clk {
                        samsung,pins = "gpk0-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd0_cmd: sd0-cmd {
                        samsung,pins = "gpk0-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd0_cd: sd0-cd {
                        samsung,pins = "gpk0-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd0_bus1: sd0-bus-width1 {
                        samsung,pins = "gpk0-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd0_bus4: sd0-bus-width4 {
                        samsung,pins = "gpk0-3", "gpk0-4", "gpk0-5", "gpk0-6";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd0_bus8: sd0-bus-width8 {
                        samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd4_clk: sd4-clk {
                        samsung,pins = "gpk0-0";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd4_cmd: sd4-cmd {
                        samsung,pins = "gpk0-1";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd4_cd: sd4-cd {
                        samsung,pins = "gpk0-2";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd4_bus1: sd4-bus-width1 {
                        samsung,pins = "gpk0-3";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd4_bus4: sd4-bus-width4 {
                        samsung,pins = "gpk0-3", "gpk0-4", "gpk0-5", "gpk0-6";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd4_bus8: sd4-bus-width8 {
                        samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6";
-                       samsung,pin-function = <4>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd1_clk: sd1-clk {
                        samsung,pins = "gpk1-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd1_cmd: sd1-cmd {
                        samsung,pins = "gpk1-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd1_cd: sd1-cd {
                        samsung,pins = "gpk1-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd1_bus1: sd1-bus-width1 {
                        samsung,pins = "gpk1-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd1_bus4: sd1-bus-width4 {
                        samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd2_clk: sd2-clk {
                        samsung,pins = "gpk2-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd2_cmd: sd2-cmd {
                        samsung,pins = "gpk2-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd2_cd: sd2-cd {
                        samsung,pins = "gpk2-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd2_bus1: sd2-bus-width1 {
                        samsung,pins = "gpk2-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd2_bus4: sd2-bus-width4 {
                        samsung,pins = "gpk2-3", "gpk2-4", "gpk2-5", "gpk2-6";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd2_bus8: sd2-bus-width8 {
                        samsung,pins = "gpk3-3", "gpk3-4", "gpk3-5", "gpk3-6";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd3_clk: sd3-clk {
                        samsung,pins = "gpk3-0";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd3_cmd: sd3-cmd {
                        samsung,pins = "gpk3-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd3_cd: sd3-cd {
                        samsung,pins = "gpk3-2";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd3_bus1: sd3-bus-width1 {
                        samsung,pins = "gpk3-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                sd3_bus4: sd3-bus-width4 {
                        samsung,pins = "gpk3-3", "gpk3-4", "gpk3-5", "gpk3-6";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <3>;
-                       samsung,pin-drv = <3>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                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>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                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>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
                };
 
                cam_port_b_clk_idle: cam-port-b-clk-idle {
                        samsung,pins = "gpm2-2";
-                       samsung,pin-function = <0>;
-                       samsung,pin-pud = <1>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                eint0: ext-int0 {
                        samsung,pins = "gpx0-0";
-                       samsung,pin-function = <0xf>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                eint8: ext-int8 {
                        samsung,pins = "gpx1-0";
-                       samsung,pin-function = <0xf>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                eint15: ext-int15 {
                        samsung,pins = "gpx1-7";
-                       samsung,pin-function = <0xf>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                eint16: ext-int16 {
                        samsung,pins = "gpx2-0";
-                       samsung,pin-function = <0xf>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                eint31: ext-int31 {
                        samsung,pins = "gpx3-7";
-                       samsung,pin-function = <0xf>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                fimc_is_i2c0: fimc-is-i2c0 {
                        samsung,pins = "gpm4-0", "gpm4-1";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                fimc_is_i2c1: fimc-is-i2c1 {
                        samsung,pins = "gpm4-2", "gpm4-3";
-                       samsung,pin-function = <2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                fimc_is_uart: fimc-is-uart {
                        samsung,pins = "gpm3-5", "gpm3-7";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                hdmi_cec: hdmi-cec {
                        samsung,pins = "gpx3-6";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
        };
 
                i2s0_bus: i2s0-bus {
                        samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
                                        "gpz-4", "gpz-5", "gpz-6";
-                       samsung,pin-function = <0x2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
 
                pcm0_bus: pcm0-bus {
                        samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
                                        "gpz-4";
-                       samsung,pin-function = <0x3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
        };
 
                                        "gpv3-0", "gpv3-1", "gpv3-2", "gpv3-3",
                                        "gpv3-4", "gpv3-5", "gpv3-6", "gpv3-7",
                                        "gpv4-0", "gpv4-1";
-                       samsung,pin-function = <0x2>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
+                       samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+                       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+                       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
                };
        };
 };
index c452499..3394bdc 100644 (file)
                                 <&clock CLK_MOUT_MPLL_USER_T>,
                                 <&clock CLK_FIMC_ISP>, <&clock CLK_FIMC_DRC>,
                                 <&clock CLK_FIMC_FD>, <&clock CLK_MCUISP>,
-                                <&clock CLK_DIV_ISP0>,<&clock CLK_DIV_ISP1>,
+                                <&clock CLK_GICISP>, <&clock CLK_MCUCTL_ISP>,
+                                <&clock CLK_PWM_ISP>,
+                                <&clock CLK_DIV_ISP0>, <&clock CLK_DIV_ISP1>,
                                 <&clock CLK_DIV_MCUISP0>,
                                 <&clock CLK_DIV_MCUISP1>,
                                 <&clock CLK_UART_ISP_SCLK>,
                        clock-names = "lite0", "lite1", "ppmuispx",
                                      "ppmuispmx", "mpll", "isp",
                                      "drc", "fd", "mcuisp",
+                                     "gicisp", "mcuctl_isp", "pwm_isp",
                                      "ispdiv0", "ispdiv1", "mcuispdiv0",
                                      "mcuispdiv1", "uart", "aclk200",
                                      "div_aclk200", "aclk400mcuisp",
index cab9178..8f06609 100644 (file)
  * published by the Free Software Foundation.
  */
 
-#include "skeleton.dtsi"
 #include "exynos-syscon-restart.dtsi"
 
 / {
        interrupt-parent = <&gic>;
+       #address-cells = <1>;
+       #size-cells = <1>;
 
        aliases {
                i2c0 = &i2c_0;
index ea70603..6098dac 100644 (file)
@@ -20,7 +20,8 @@
        model = "Insignal Arndale evaluation board based on EXYNOS5250";
        compatible = "insignal,arndale", "samsung,exynos5250", "samsung,exynos5";
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg = <0x40000000 0x80000000>;
        };
 
 };
 
 &hdmi {
-       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_LOW>;
+       hpd-gpios = <&gpx3 7 GPIO_ACTIVE_LOW>;
        vdd_osc-supply = <&ldo10_reg>;
        vdd_pll-supply = <&ldo8_reg>;
        vdd-supply = <&ldo8_reg>;
index 880917e..2f6ab32 100644 (file)
@@ -12,6 +12,8 @@
  * published by the Free Software Foundation.
 */
 
+#include <dt-bindings/pinctrl/samsung.h>
+
 &pinctrl_0 {
        gpa0: gpa0 {
                gpio-controller;
 
        uart0_data: uart0-data {
                samsung,pins = "gpa0-0", "gpa0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart0_fctl: uart0-fctl {
                samsung,pins = "gpa0-2", "gpa0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c2_bus: i2c2-bus {
                samsung,pins = "gpa0-6", "gpa0-7";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c2_hs_bus: i2c2-hs-bus {
                samsung,pins = "gpa0-6", "gpa0-7";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart2_data: uart2-data {
                samsung,pins = "gpa1-0", "gpa1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart2_fctl: uart2-fctl {
                samsung,pins = "gpa1-2", "gpa1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c3_bus: i2c3-bus {
                samsung,pins = "gpa1-2", "gpa1-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c3_hs_bus: i2c3-hs-bus {
                samsung,pins = "gpa1-2", "gpa1-3";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart3_data: uart3-data {
                samsung,pins = "gpa1-4", "gpa1-4";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        spi0_bus: spi0-bus {
                samsung,pins = "gpa2-0", "gpa2-2", "gpa2-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c4_bus: i2c4-bus {
                samsung,pins = "gpa2-0", "gpa2-1";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c5_bus: i2c5-bus {
                samsung,pins = "gpa2-2", "gpa2-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        spi1_bus: spi1-bus {
                samsung,pins = "gpa2-4", "gpa2-6", "gpa2-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2s1_bus: i2s1-bus {
                samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
                               "gpb0-4";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pcm1_bus: pcm1-bus {
                samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
                               "gpb0-4";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        ac97_bus: ac97-bus {
                samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
                               "gpb0-4";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2s2_bus: i2s2-bus {
                samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
                               "gpb1-4";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pcm2_bus: pcm2-bus {
                samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
                               "gpb1-4";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        spdif_bus: spdif-bus {
                samsung,pins = "gpb1-0", "gpb1-1";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        spi2_bus: spi2-bus {
                samsung,pins = "gpb1-1", "gpb1-3", "gpb1-4";
-               samsung,pin-function = <5>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_5>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c6_bus: i2c6-bus {
                samsung,pins = "gpb1-3", "gpb1-4";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm0_out: pwm0-out {
                samsung,pins = "gpb2-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm1_out: pwm1-out {
                samsung,pins = "gpb2-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm2_out: pwm2-out {
                samsung,pins = "gpb2-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm3_out: pwm3-out {
                samsung,pins = "gpb2-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c7_bus: i2c7-bus {
                samsung,pins = "gpb2-2", "gpb2-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c0_bus: i2c0-bus {
                samsung,pins = "gpb3-0", "gpb3-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c1_bus: i2c1-bus {
                samsung,pins = "gpb3-2", "gpb3-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c0_hs_bus: i2c0-hs-bus {
                samsung,pins = "gpb3-0", "gpb3-1";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c1_hs_bus: i2c1-hs-bus {
                samsung,pins = "gpb3-2", "gpb3-3";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        sd0_clk: sd0-clk {
                samsung,pins = "gpc0-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_cmd: sd0-cmd {
                samsung,pins = "gpc0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_cd: sd0-cd {
                samsung,pins = "gpc0-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_bus1: sd0-bus-width1 {
                samsung,pins = "gpc0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_bus4: sd0-bus-width4 {
                samsung,pins = "gpc0-3", "gpc0-4", "gpc0-5", "gpc0-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_bus8: sd0-bus-width8 {
                samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_clk: sd1-clk {
                samsung,pins = "gpc2-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_cmd: sd1-cmd {
                samsung,pins = "gpc2-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_cd: sd1-cd {
                samsung,pins = "gpc2-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_bus1: sd1-bus-width1 {
                samsung,pins = "gpc2-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_bus4: sd1-bus-width4 {
                samsung,pins = "gpc2-3", "gpc2-4", "gpc2-5", "gpc2-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_clk: sd2-clk {
                samsung,pins = "gpc3-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_cmd: sd2-cmd {
                samsung,pins = "gpc3-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_cd: sd2-cd {
                samsung,pins = "gpc3-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_bus1: sd2-bus-width1 {
                samsung,pins = "gpc3-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_bus4: sd2-bus-width4 {
                samsung,pins = "gpc3-3", "gpc3-4", "gpc3-5", "gpc3-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_bus8: sd2-bus-width8 {
                samsung,pins = "gpc4-3", "gpc4-4", "gpc4-5", "gpc4-6";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd3_clk: sd3-clk {
                samsung,pins = "gpc4-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd3_cmd: sd3-cmd {
                samsung,pins = "gpc4-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd3_cd: sd3-cd {
                samsung,pins = "gpc4-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd3_bus1: sd3-bus-width1 {
                samsung,pins = "gpc4-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd3_bus4: sd3-bus-width4 {
                samsung,pins = "gpc4-3", "gpc4-4", "gpc4-5", "gpc4-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        uart1_data: uart1-data {
                samsung,pins = "gpd0-0", "gpd0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart1_fctl: uart1-fctl {
                samsung,pins = "gpd0-2", "gpd0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        dp_hpd: dp_hpd {
                samsung,pins = "gpx0-7";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
                samsung,pins = "gpe0-0", "gpe0-1", "gpe0-2", "gpe0-3",
                               "gpe0-4", "gpe0-5", "gpe0-6", "gpe0-7",
                               "gpe1-0", "gpe1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        cam_gpio_b: cam-gpio-b {
                samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3",
                               "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        cam_i2c2_bus: cam-i2c2-bus {
                samsung,pins = "gpe0-6", "gpe1-0";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        cam_spi1_bus: cam-spi1-bus {
                samsung,pins = "gpe0-4", "gpe0-5", "gpf0-2", "gpf0-3";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        cam_i2c1_bus: cam-i2c1-bus {
                samsung,pins = "gpf0-2", "gpf0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        cam_i2c0_bus: cam-i2c0-bus {
                samsung,pins = "gpf0-0", "gpf0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        cam_spi0_bus: cam-spi0-bus {
                samsung,pins = "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        cam_bayrgb_bus: cam-bayrgb-bus {
                               "gpg1-0", "gpg1-1", "gpg1-2", "gpg1-3",
                               "gpg1-4", "gpg1-5", "gpg1-6", "gpg1-7",
                               "gpg2-0", "gpg2-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        cam_port_a: cam-port-a {
                samsung,pins = "gph0-0", "gph0-1", "gph0-2", "gph0-3",
                               "gph1-0", "gph1-1", "gph1-2", "gph1-3",
                               "gph1-4", "gph1-5", "gph1-6", "gph1-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
                               "gpv0-4", "gpv0-5", "gpv0-6", "gpv0-7",
                               "gpv1-0", "gpv1-1", "gpv1-2", "gpv1-3",
                               "gpv1-4", "gpv1-5", "gpv1-6", "gpv1-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        c2c_txd: c2c-txd {
                               "gpv2-4", "gpv2-5", "gpv2-6", "gpv2-7",
                               "gpv3-0", "gpv3-1", "gpv3-2", "gpv3-3",
                               "gpv3-4", "gpv3-5", "gpv3-6", "gpv3-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
index 381af13..a97a785 100644 (file)
@@ -22,7 +22,8 @@
        aliases {
        };
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg = <0x40000000 0x80000000>;
        };
 
 };
 
 &hdmi {
-       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+       hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
 };
 
 &i2c_0 {
 &pinctrl_0 {
        max77686_irq: max77686-irq {
                samsung,pins = "gpx3-2";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
index fadbea7..d5d5191 100644 (file)
@@ -19,7 +19,8 @@
                i2c104 = &i2c_104;
        };
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg = <0x40000000 0x80000000>;
        };
 
 };
 
 &hdmi {
-       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+       hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
        pinctrl-names = "default";
        pinctrl-0 = <&hdmi_hpd_irq>;
        phy = <&hdmiphy>;
  * double-pulling gets us out of spec in some cases.
  */
 &i2c2_bus {
-       samsung,pin-pud = <0>;
+       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
 };
 
 &i2c_2 {
 &pinctrl_0 {
        wifi_en: wifi-en {
                samsung,pins = "gpx0-1";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        wifi_rst: wifi-rst {
                samsung,pins = "gpx0-2";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        power_key_irq: power-key-irq {
                samsung,pins = "gpx1-3";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        ec_irq: ec-irq {
                samsung,pins = "gpx1-6";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        tps65090_irq: tps65090-irq {
                samsung,pins = "gpx2-6";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        usb3_vbus_en: usb3-vbus-en {
                samsung,pins = "gpx2-7";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        max77686_irq: max77686-irq {
                samsung,pins = "gpx3-2";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        lid_irq: lid-irq {
                samsung,pins = "gpx3-5";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        hdmi_hpd_irq: hdmi-hpd-irq {
                samsung,pins = "gpx3-7";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
 &pinctrl_1 {
        arb_their_claim: arb-their-claim {
                samsung,pins = "gpe0-4";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        arb_our_claim: arb-our-claim {
                samsung,pins = "gpf0-3";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
 };
 
 &sd3_bus4 {
-       samsung,pin-drv = <0>;
+       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
 };
 
 &sd3_clk {
-       samsung,pin-drv = <0>;
+       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
 };
 
 &sd3_cmd {
-       samsung,pin-pud = <3>;
-       samsung,pin-drv = <0>;
+       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
 };
 
 &spi_1 {
index f811dc8..90560c3 100644 (file)
@@ -40,8 +40,8 @@
 &pinctrl_0 {
        max98090_irq: max98090-irq {
                samsung,pins = "gpx0-4";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
index 995c7ce..df48f2c 100644 (file)
@@ -36,8 +36,8 @@
 &pinctrl_0 {
        max98095_en: max98095-en {
                samsung,pins = "gpx1-7";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
index 44f4292..4d7bdb7 100644 (file)
@@ -20,7 +20,8 @@
        model = "Google Spring";
        compatible = "google,spring", "samsung,exynos5250", "samsung,exynos5";
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg = <0x40000000 0x80000000>;
        };
 
@@ -91,7 +92,7 @@
 };
 
 &hdmi {
-       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+       hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
        pinctrl-names = "default";
        pinctrl-0 = <&hdmi_hpd_irq>;
        phy = <&hdmiphy>;
  * double-pulling gets us out of spec in some cases.
  */
 &i2c2_bus {
-       samsung,pin-pud = <0>;
+       samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
 };
 
 &i2c_2 {
 &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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        dp_hpd_gpio: dp-hpd-gpio {
                samsung,pins = "gpc3-0";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        trackpad_irq: trackpad-irq {
                samsung,pins = "gpx1-2";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        power_key_irq: power-key-irq {
                samsung,pins = "gpx1-3";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        ec_irq: ec-irq {
                samsung,pins = "gpx1-6";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        s5m8767_ds: s5m8767-ds {
                samsung,pins = "gpx2-3", "gpx2-4", "gpx2-5";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        s5m8767_irq: s5m8767-irq {
                samsung,pins = "gpx3-2";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        lid_irq: lid-irq {
                samsung,pins = "gpx3-5";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        hdmi_hpd_irq: hdmi-hpd-irq {
                samsung,pins = "gpx3-7";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
 &pinctrl_1 {
        hsic_reset: hsic-reset {
                samsung,pins = "gpe1-0";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
 &sd1_bus4 {
-       samsung,pin-drv = <0>;
+       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
 };
 
 &sd1_cd {
-       samsung,pin-drv = <0>;
+       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
 };
 
 &sd1_clk {
-       samsung,pin-drv = <0>;
+       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
 };
 
 &sd1_cmd {
-       samsung,pin-pud = <3>;
-       samsung,pin-drv = <0>;
+       samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+       samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
 };
 
 &spi_1 {
index f6ee55e..1b911a2 100644 (file)
@@ -12,9 +12,7 @@
  * published by the Free Software Foundation.
 */
 
-#define PIN_PULL_NONE  0
-#define PIN_PULL_DOWN  1
-#define PIN_PULL_UP    3
+#include <dt-bindings/pinctrl/samsung.h>
 
 &pinctrl_0 {
        gpa0: gpa0 {
 
        uart0_data: uart0-data {
                samsung,pins = "gpa0-0", "gpa0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        uart0_fctl: uart0-fctl {
                samsung,pins = "gpa0-2", "gpa0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        uart1_data: uart1-data {
                samsung,pins = "gpa1-0", "gpa1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        uart1_fctl: uart1-fctl {
                samsung,pins = "gpa1-2", "gpa1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        uart2_data: uart2-data {
                samsung,pins = "gpa1-4", "gpa1-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        spi0_bus: spi0-bus {
                samsung,pins = "gpa2-0", "gpa2-2", "gpa2-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        spi1_bus: spi1-bus {
                samsung,pins = "gpa2-4", "gpa2-6", "gpa2-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        usb3_vbus0_en: usb3-vbus0-en {
                samsung,pins = "gpa2-4";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        i2s1_bus: i2s1-bus {
                samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
                                "gpb0-4";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        pcm1_bus: pcm1-bus {
                samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
                                "gpb0-4";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        spdif1_bus: spdif1-bus {
                samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        spi2_bus: spi2-bus {
                samsung,pins = "gpb1-0", "gpb1-2", "gpb1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        i2c0_hs_bus: i2c0-hs-bus {
                samsung,pins = "gpb3-0", "gpb3-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        i2c1_hs_bus: i2c1-hs-bus {
                samsung,pins = "gpb3-2", "gpb3-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        i2c2_hs_bus: i2c2-hs-bus {
                samsung,pins = "gpb3-4", "gpb3-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        i2c3_hs_bus: i2c3-hs-bus {
                samsung,pins = "gpb3-6", "gpb3-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        i2c4_bus: i2c4-bus {
                samsung,pins = "gpb4-0", "gpb4-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        i2c5_bus: i2c5-bus {
                samsung,pins = "gpb4-2", "gpb4-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        i2c6_bus: i2c6-bus {
                samsung,pins = "gpb4-4", "gpb4-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        i2c7_bus: i2c7-bus {
                samsung,pins = "gpb4-6", "gpb4-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        i2c8_bus: i2c8-bus {
                samsung,pins = "gpb5-0", "gpb5-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        i2c9_bus: i2c9-bus {
                samsung,pins = "gpb5-2", "gpb5-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        i2c10_bus: i2c10-bus {
                samsung,pins = "gpb5-4", "gpb5-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        i2c11_bus: i2c11-bus {
                samsung,pins = "gpb5-6", "gpb5-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        cam_gpio_a: cam-gpio-a {
                samsung,pins = "gpe0-0", "gpe0-1", "gpe0-2", "gpe0-3",
                        "gpe0-4", "gpe0-5", "gpe0-6", "gpe0-7",
                        "gpe1-0", "gpe1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        cam_gpio_b: cam-gpio-b {
                samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3",
                        "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        cam_i2c1_bus: cam-i2c1-bus {
                samsung,pins = "gpf0-2", "gpf0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        cam_i2c0_bus: cam-i2c0-bus {
                samsung,pins = "gpf0-0", "gpf0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        cam_spi0_bus: cam-spi0-bus {
                samsung,pins = "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 
        cam_spi1_bus: cam-spi1-bus {
                samsung,pins = "gpf1-4", "gpf1-5", "gpf1-6", "gpf1-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 };
 
 
        sd0_clk: sd0-clk {
                samsung,pins = "gpc0-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV6>;
        };
 
        sd0_cmd: sd0-cmd {
                samsung,pins = "gpc0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV6>;
        };
 
        sd0_bus1: sd0-bus-width1 {
                samsung,pins = "gpc0-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV6>;
        };
 
        sd0_bus4: sd0-bus-width4 {
                samsung,pins = "gpc0-3", "gpc0-4", "gpc0-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV6>;
        };
 
        sd0_bus8: sd0-bus-width8 {
                samsung,pins = "gpc3-0", "gpc3-1", "gpc3-2", "gpc3-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV6>;
        };
 
        sd0_rdqs: sd0-rdqs {
                samsung,pins = "gpc0-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV6>;
        };
 
        sd1_clk: sd1-clk {
                samsung,pins = "gpc1-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV6>;
        };
 
        sd1_cmd: sd1-cmd {
                samsung,pins = "gpc1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV6>;
        };
 
        sd1_bus1: sd1-bus-width1 {
                samsung,pins = "gpc1-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV6>;
        };
 
        sd1_bus4: sd1-bus-width4 {
                samsung,pins = "gpc1-3", "gpc1-4", "gpc1-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV6>;
        };
 
        sd1_bus8: sd1-bus-width8 {
                samsung,pins = "gpc4-0", "gpc4-1", "gpc4-2", "gpc4-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV6>;
        };
 
        sd2_clk: sd2-clk {
                samsung,pins = "gpc2-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV6>;
        };
 
        sd2_cmd: sd2-cmd {
                samsung,pins = "gpc2-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV6>;
        };
 
        sd2_cd: sd2-cd {
                samsung,pins = "gpc2-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV6>;
        };
 
        sd2_bus1: sd2-bus-width1 {
                samsung,pins = "gpc2-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV6>;
        };
 
        sd2_bus4: sd2-bus-width4 {
                samsung,pins = "gpc2-4", "gpc2-5", "gpc2-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV6>;
        };
 };
 
index 3daef94..d0cc300 100644 (file)
@@ -16,7 +16,8 @@
        model = "SAMSUNG XYREF5260 board based on EXYNOS5260";
        compatible = "samsung,xyref5260", "samsung,exynos5260", "samsung,exynos5";
 
-       memory {
+       memory@20000000 {
+               device_type = "memory";
                reg = <0x20000000 0x80000000>;
        };
 
@@ -42,9 +43,9 @@
 &pinctrl_0 {
        hdmi_hpd_irq: hdmi-hpd-irq {
                samsung,pins = "gpx3-7";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
        };
 };
 
index 36da38e..a86a489 100644 (file)
@@ -9,13 +9,13 @@
  * published by the Free Software Foundation.
 */
 
-#include "skeleton.dtsi"
-
 #include <dt-bindings/clock/exynos5260-clk.h>
 
 / {
        compatible = "samsung,exynos5260", "samsung,exynos5";
        interrupt-parent = <&gic>;
+       #address-cells = <1>;
+       #size-cells = <1>;
 
        aliases {
                pinctrl0 = &pinctrl_0;
index f6d1352..3c271cb 100644 (file)
        model = "Hardkernel Odroid XU";
        compatible = "hardkernel,odroid-xu", "samsung,exynos5410", "samsung,exynos5";
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg = <0x40000000 0x7ea00000>;
        };
 
        chosen {
-               linux,stdout-path = &serial_2;
+               stdout-path = "serial2:115200n8";
        };
 
        emmc_pwrseq: pwrseq {
 &pinctrl_0 {
        emmc_nrst_pin: emmc-nrst {
                samsung,pins = "gpd1-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pmic_dvs_3: pmic-dvs-3 {
                samsung,pins = "gpx0-0";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pmic_dvs_2: pmic-dvs-2 {
                samsung,pins = "gpx0-1";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pmic_dvs_1: pmic-dvs-1 {
                samsung,pins = "gpx0-2";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
                samsung,pin-val = <1>;
        };
 
        max77802_irq: max77802-irq {
                samsung,pins = "gpx0-4";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 };
 
index b58a0f2..a083d23 100644 (file)
@@ -9,6 +9,8 @@
  * published by the Free Software Foundation.
  */
 
+#include <dt-bindings/pinctrl/samsung.h>
+
 &pinctrl_0 {
        gpa0: gpa0 {
                gpio-controller;
 
        uart0_data: uart0-data {
                samsung,pins = "gpa0-0", "gpa0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        uart0_fctl: uart0-fctl {
                samsung,pins = "gpa0-2", "gpa0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        uart1_data: uart1-data {
                samsung,pins = "gpa0-4", "gpa0-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        uart1_fctl: uart1-fctl {
                samsung,pins = "gpa0-6", "gpa0-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c2_bus: i2c2-bus {
                samsung,pins = "gpa0-6", "gpa0-7";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        uart2_data: uart2-data {
                samsung,pins = "gpa1-0", "gpa1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        uart2_fctl: uart2-fctl {
                samsung,pins = "gpa1-2", "gpa1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c3_bus: i2c3-bus {
                samsung,pins = "gpa1-2", "gpa1-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        uart3_data: uart3-data {
                samsung,pins = "gpa1-4", "gpa1-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c4_hs_bus: i2c4-hs-bus {
                samsung,pins = "gpa2-0", "gpa2-1";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c5_hs_bus: i2c5-hs-bus {
                samsung,pins = "gpa2-2", "gpa2-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c6_hs_bus: i2c6-hs-bus {
                samsung,pins = "gpb1-3", "gpb1-4";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pwm0_out: pwm0-out {
                samsung,pins = "gpb2-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pwm1_out: pwm1-out {
                samsung,pins = "gpb2-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pwm2_out: pwm2-out {
                samsung,pins = "gpb2-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pwm3_out: pwm3-out {
                samsung,pins = "gpb2-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c7_hs_bus: i2c7-hs-bus {
                samsung,pins = "gpb2-2", "gpb2-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c0_bus: i2c0-bus {
                samsung,pins = "gpb3-0", "gpb3-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c1_bus: i2c1-bus {
                samsung,pins = "gpb3-2", "gpb3-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        sd0_clk: sd0-clk {
                samsung,pins = "gpc0-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd0_cmd: sd0-cmd {
                samsung,pins = "gpc0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd0_cd: sd0-cd {
                samsung,pins = "gpc0-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd0_bus1: sd0-bus-width1 {
                samsung,pins = "gpc0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd0_bus4: sd0-bus-width4 {
                samsung,pins = "gpc0-4", "gpc0-5", "gpc0-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd2_clk: sd2-clk {
                samsung,pins = "gpc2-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd2_cmd: sd2-cmd {
                samsung,pins = "gpc2-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd2_cd: sd2-cd {
                samsung,pins = "gpc2-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd2_bus1: sd2-bus-width1 {
                samsung,pins = "gpc2-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd2_bus4: sd2-bus-width4 {
                samsung,pins = "gpc2-4", "gpc2-5", "gpc2-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd0_bus8: sd0-bus-width8 {
                samsung,pins = "gpc3-0", "gpc3-1", "gpc3-2", "gpc3-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 };
 
index 777fcf2..6cc74d9 100644 (file)
@@ -16,7 +16,8 @@
        model = "Samsung SMDK5410 board based on EXYNOS5410";
        compatible = "samsung,smdk5410", "samsung,exynos5410", "samsung,exynos5";
 
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg = <0x40000000 0x80000000>;
        };
 
@@ -66,8 +67,8 @@
        srom_ctl: srom-ctl {
                samsung,pins = "gpy0-3", "gpy0-4", "gpy0-5",
                               "gpy1-0", "gpy1-1", "gpy1-2", "gpy1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        srom_ebi: srom-ebi {
@@ -77,9 +78,9 @@
                               "gpy5-4", "gpy5-5", "gpy5-6", "gpy5-7",
                               "gpy6-0", "gpy6-1", "gpy6-2", "gpy6-3",
                               "gpy6-4", "gpy6-5", "gpy6-6", "gpy6-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 };
 
index 39a3b81..9cc83c5 100644 (file)
@@ -22,7 +22,8 @@
        model = "Insignal Arndale Octa evaluation board based on EXYNOS5420";
        compatible = "insignal,arndale-octa", "samsung,exynos5420", "samsung,exynos5";
 
-       memory {
+       memory@20000000 {
+               device_type = "memory";
                reg = <0x20000000 0x80000000>;
        };
 
        status = "disabled";
 };
 
+&hdmi {
+       hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+       vdd_osc-supply = <&ldo7_reg>;
+       vdd_pll-supply = <&ldo6_reg>;
+       vdd-supply = <&ldo6_reg>;
+       ddc = <&i2c_2>;
+       status = "okay";
+};
+
 &hsi2c_4 {
        status = "okay";
 
        };
 };
 
+&i2c_2 {
+       status = "okay";
+};
+
 &mmc_0 {
        status = "okay";
        broken-cd;
 &pinctrl_0 {
        s2mps11_irq: s2mps11-irq {
                samsung,pins = "gpx3-2";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 };
 
index fe4e091..ec4a00f 100644 (file)
@@ -79,7 +79,8 @@
                };
        };
 
-       memory {
+       memory@20000000 {
+               device_type = "memory";
                reg = <0x20000000 0x80000000>;
        };
 
 
 &hdmi {
        status = "okay";
-       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+       hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
        pinctrl-names = "default";
        pinctrl-0 = <&hdmi_hpd_irq>;
        ddc = <&i2c_2>;
 
        wifi_en: wifi-en {
                samsung,pins = "gpx0-0";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        max98090_irq: max98090-irq {
                samsung,pins = "gpx0-2";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        /* We need GPX0_6 to be low at sleep time; just keep it low always */
        mask_tpm_reset: mask-tpm-reset {
                samsung,pins = "gpx0-6";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
                samsung,pin-val = <0>;
        };
 
        tpm_irq: tpm-irq {
                samsung,pins = "gpx1-0";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        trackpad_irq: trackpad-irq {
                samsung,pins = "gpx1-1";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        power_key_irq: power-key-irq {
                samsung,pins = "gpx1-2";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        ec_irq: ec-irq {
                samsung,pins = "gpx1-5";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        tps65090_irq: tps65090-irq {
                samsung,pins = "gpx2-5";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        dp_hpd_gpio: dp_hpd_gpio {
                samsung,pins = "gpx2-6";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        max77802_irq: max77802-irq {
                samsung,pins = "gpx3-1";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        lid_irq: lid-irq {
                samsung,pins = "gpx3-4";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        hdmi_hpd_irq: hdmi-hpd-irq {
                samsung,pins = "gpx3-7";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pmic_dvs_1: pmic-dvs-1 {
                samsung,pins = "gpy7-6";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 };
 
 &pinctrl_1 {
        /* Adjust WiFi drive strengths lower for EMI */
        sd1_clk: sd1-clk {
-               samsung,pin-drv = <2>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
        };
 
        sd1_cmd: sd1-cmd {
-               samsung,pin-drv = <2>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
        };
 
        sd1_bus1: sd1-bus-width1 {
-               samsung,pin-drv = <2>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
        };
 
        sd1_bus4: sd1-bus-width4 {
-               samsung,pin-drv = <2>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
        };
 
        sd1_bus8: sd1-bus-width8 {
-               samsung,pin-drv = <2>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
        };
 };
 
 &pinctrl_2 {
        pmic_dvs_2: pmic-dvs-2 {
                samsung,pins = "gpj4-2";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pmic_dvs_3: pmic-dvs-3 {
                samsung,pins = "gpj4-3";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 };
 
 &pinctrl_3 {
        /* Drive SPI lines at x2 for better integrity */
        spi2-bus {
-               samsung,pin-drv = <2>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
        };
 
        /* Drive SPI chip select at x2 for better integrity */
        ec_spi_cs: ec-spi-cs {
                samsung,pins = "gpb1-2";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
        };
 
        usb300_vbus_en: usb300-vbus-en {
                samsung,pins = "gph0-0";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        usb301_vbus_en: usb301-vbus-en {
                samsung,pins = "gph0-1";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pmic_selb: pmic-selb {
                samsung,pins = "gph0-2", "gph0-3", "gph0-4", "gph0-5",
                               "gph0-6";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 };
 
index 14beb7e..3924b4f 100644 (file)
@@ -12,6 +12,8 @@
  * published by the Free Software Foundation.
 */
 
+#include <dt-bindings/pinctrl/samsung.h>
+
 &pinctrl_0 {
        gpy7: gpy7 {
                gpio-controller;
@@ -61,9 +63,9 @@
 
        dp_hpd: dp_hpd {
                samsung,pins = "gpx0-7";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 };
 
 
        sd0_clk: sd0-clk {
                samsung,pins = "gpc0-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd0_cmd: sd0-cmd {
                samsung,pins = "gpc0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd0_cd: sd0-cd {
                samsung,pins = "gpc0-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd0_bus1: sd0-bus-width1 {
                samsung,pins = "gpc0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd0_bus4: sd0-bus-width4 {
                samsung,pins = "gpc0-4", "gpc0-5", "gpc0-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd0_bus8: sd0-bus-width8 {
                samsung,pins = "gpc3-0", "gpc3-1", "gpc3-2", "gpc3-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd0_rclk: sd0-rclk {
                samsung,pins = "gpc0-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd1_clk: sd1-clk {
                samsung,pins = "gpc1-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd1_cmd: sd1-cmd {
                samsung,pins = "gpc1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd1_cd: sd1-cd {
                samsung,pins = "gpc1-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd1_int: sd1-int {
                samsung,pins = "gpd1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        sd1_bus1: sd1-bus-width1 {
                samsung,pins = "gpc1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd1_bus4: sd1-bus-width4 {
                samsung,pins = "gpc1-4", "gpc1-5", "gpc1-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd1_bus8: sd1-bus-width8 {
                samsung,pins = "gpd1-4", "gpd1-5", "gpd1-6", "gpd1-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd2_clk: sd2-clk {
                samsung,pins = "gpc2-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd2_cmd: sd2-cmd {
                samsung,pins = "gpc2-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd2_cd: sd2-cd {
                samsung,pins = "gpc2-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd2_bus1: sd2-bus-width1 {
                samsung,pins = "gpc2-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 
        sd2_bus4: sd2-bus-width4 {
                samsung,pins = "gpc2-4", "gpc2-5", "gpc2-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
        };
 };
 
                samsung,pins = "gpe0-0", "gpe0-1", "gpe0-2", "gpe0-3",
                               "gpe0-4", "gpe0-5", "gpe0-6", "gpe0-7",
                               "gpe1-0", "gpe1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        cam_gpio_b: cam-gpio-b {
                samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3",
                               "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        cam_i2c2_bus: cam-i2c2-bus {
                samsung,pins = "gpf0-4", "gpf0-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        cam_spi1_bus: cam-spi1-bus {
                samsung,pins = "gpe0-4", "gpe0-5", "gpf0-2", "gpf0-3";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        cam_i2c1_bus: cam-i2c1-bus {
                samsung,pins = "gpf0-2", "gpf0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        cam_i2c0_bus: cam-i2c0-bus {
                samsung,pins = "gpf0-0", "gpf0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        cam_spi0_bus: cam-spi0-bus {
                samsung,pins = "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        cam_bayrgb_bus: cam-bayrgb-bus {
                               "gpg1-0", "gpg1-1", "gpg1-2", "gpg1-3",
                               "gpg1-4", "gpg1-5", "gpg1-6", "gpg1-7",
                               "gpg2-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 };
 
 
        uart0_data: uart0-data {
                samsung,pins = "gpa0-0", "gpa0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        uart0_fctl: uart0-fctl {
                samsung,pins = "gpa0-2", "gpa0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        uart1_data: uart1-data {
                samsung,pins = "gpa0-4", "gpa0-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        uart1_fctl: uart1-fctl {
                samsung,pins = "gpa0-6", "gpa0-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c2_bus: i2c2-bus {
                samsung,pins = "gpa0-6", "gpa0-7";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        uart2_data: uart2-data {
                samsung,pins = "gpa1-0", "gpa1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        uart2_fctl: uart2-fctl {
                samsung,pins = "gpa1-2", "gpa1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c3_bus: i2c3-bus {
                samsung,pins = "gpa1-2", "gpa1-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        uart3_data: uart3-data {
                samsung,pins = "gpa1-4", "gpa1-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        spi0_bus: spi0-bus {
                samsung,pins = "gpa2-0", "gpa2-1", "gpa2-2", "gpa2-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        spi1_bus: spi1-bus {
                samsung,pins = "gpa2-4", "gpa2-6", "gpa2-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c4_hs_bus: i2c4-hs-bus {
                samsung,pins = "gpa2-0", "gpa2-1";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c5_hs_bus: i2c5-hs-bus {
                samsung,pins = "gpa2-2", "gpa2-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2s1_bus: i2s1-bus {
                samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
                               "gpb0-4";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pcm1_bus: pcm1-bus {
                samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
                               "gpb0-4";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2s2_bus: i2s2-bus {
                samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
                               "gpb1-4";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pcm2_bus: pcm2-bus {
                samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
                               "gpb1-4";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        spdif_bus: spdif-bus {
                samsung,pins = "gpb1-0", "gpb1-1";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        spi2_bus: spi2-bus {
                samsung,pins = "gpb1-1", "gpb1-3", "gpb1-4";
-               samsung,pin-function = <5>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_5>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c6_hs_bus: i2c6-hs-bus {
                samsung,pins = "gpb1-3", "gpb1-4";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pwm0_out: pwm0-out {
                samsung,pins = "gpb2-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pwm1_out: pwm1-out {
                samsung,pins = "gpb2-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pwm2_out: pwm2-out {
                samsung,pins = "gpb2-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pwm3_out: pwm3-out {
                samsung,pins = "gpb2-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c7_hs_bus: i2c7-hs-bus {
                samsung,pins = "gpb2-2", "gpb2-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c0_bus: i2c0-bus {
                samsung,pins = "gpb3-0", "gpb3-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c1_bus: i2c1-bus {
                samsung,pins = "gpb3-2", "gpb3-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c8_hs_bus: i2c8-hs-bus {
                samsung,pins = "gpb3-4", "gpb3-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c9_hs_bus: i2c9-hs-bus {
                samsung,pins = "gpb3-6", "gpb3-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        i2c10_hs_bus: i2c10-hs-bus {
                samsung,pins = "gpb4-0", "gpb4-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 };
index ed8f342..aaccd0d 100644 (file)
@@ -19,7 +19,8 @@
        model = "Samsung SMDK5420 board based on EXYNOS5420";
        compatible = "samsung,smdk5420", "samsung,exynos5420", "samsung,exynos5";
 
-       memory {
+       memory@20000000 {
+               device_type = "memory";
                reg = <0x20000000 0x80000000>;
        };
 
 
 &hdmi {
        status = "okay";
-       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+       hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
        pinctrl-names = "default";
        pinctrl-0 = <&hdmi_hpd_irq>;
 };
 &pinctrl_0 {
        hdmi_hpd_irq: hdmi-hpd-irq {
                samsung,pins = "gpx3-7";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 };
 
 &pinctrl_2 {
        usb300_vbus_en: usb300-vbus-en {
                samsung,pins = "gpg0-5";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        usb301_vbus_en: usb301-vbus-en {
                samsung,pins = "gpg1-4";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 };
 
index d562530..246d298 100644 (file)
 #include "exynos-mfc-reserved-memory.dtsi"
 
 / {
-       memory {
+       memory@40000000 {
+               device_type = "memory";
                reg = <0x40000000 0x7EA00000>;
        };
 
        chosen {
-               linux,stdout-path = &serial_2;
+               stdout-path = "serial2:115200n8";
        };
 
        firmware@02073000 {
 
 &hdmi {
        status = "okay";
-       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+       hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
        pinctrl-names = "default";
        pinctrl-0 = <&hdmi_hpd_irq>;
 
 &pinctrl_0 {
        hdmi_hpd_irq: hdmi-hpd-irq {
                samsung,pins = "gpx3-7";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        s2mps11_irq: s2mps11-irq {
                samsung,pins = "gpx0-4";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 };
 
 &pinctrl_1 {
        emmc_nrst_pin: emmc-nrst {
                samsung,pins = "gpd1-0";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 };
 
index a98501b..ad6f533 100644 (file)
                bootargs = "root=/dev/sda2 rw rootwait ignore_loglevel earlyprintk no_console_suspend mem=2048M@0x80000000 mem=6144M@0x100000000 console=ttySAC0,115200";
        };
 
+       /* FIXME: set reg property with correct start address and size */
+       memory@0 {
+               device_type = "memory";
+               reg = <0 0>;
+       };
+
        fixed-rate-clocks {
                xtal {
                        compatible = "samsung,clock-xtal";
index 6a0d802..92bd2c6 100644 (file)
                bootargs = "root=/dev/sda2 rw rootwait ignore_loglevel earlyprintk no_console_suspend mem=2048M@0x80000000 mem=6144M@0x100000000 console=ttySAC0,115200";
        };
 
+       /* FIXME: set reg property with correct start address and size */
+       memory@0 {
+               device_type = "memory";
+               reg = <0 0>;
+       };
+
        fixed-rate-clocks {
                xtal {
                        compatible = "samsung,clock-xtal";
index fd17681..e6bffd1 100644 (file)
 */
 
 #include <dt-bindings/clock/exynos5440.h>
-#include "skeleton.dtsi"
 
 / {
        compatible = "samsung,exynos5440", "samsung,exynos5";
 
        interrupt-parent = <&gic>;
+       #address-cells = <1>;
+       #size-cells = <1>;
 
        aliases {
                serial0 = &serial_0;
index 06a6049..9d31cdc 100644 (file)
@@ -14,7 +14,6 @@
  * published by the Free Software Foundation.
  */
 
-#include "skeleton.dtsi"
 #include "exynos5.dtsi"
 
 / {
index 5ec71e2..01f4668 100644 (file)
@@ -79,7 +79,8 @@
 
        };
 
-       memory {
+       memory@20000000 {
+               device_type = "memory";
                reg = <0x20000000 0x80000000>;
        };
 
 
 &hdmi {
        status = "okay";
-       hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+       hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
        pinctrl-names = "default";
        pinctrl-0 = <&hdmi_hpd_irq>;
        ddc = <&i2c_2>;
 
        wifi_en: wifi-en {
                samsung,pins = "gpx0-0";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        max98091_irq: max98091-irq {
                samsung,pins = "gpx0-2";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        /* We need GPX0_6 to be low at sleep time; just keep it low always */
        mask_tpm_reset: mask-tpm-reset {
                samsung,pins = "gpx0-6";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
                samsung,pin-val = <0>;
        };
 
        tpm_irq: tpm-irq {
                samsung,pins = "gpx1-0";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        trackpad_irq: trackpad-irq {
                samsung,pins = "gpx1-1";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        power_key_irq: power-key-irq {
                samsung,pins = "gpx1-2";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        ec_irq: ec-irq {
                samsung,pins = "gpx1-5";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        tps65090_irq: tps65090-irq {
                samsung,pins = "gpx2-5";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        dp_hpd_gpio: dp_hpd_gpio {
                samsung,pins = "gpx2-6";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        max77802_irq: max77802-irq {
                samsung,pins = "gpx3-1";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        lid_irq: lid-irq {
                samsung,pins = "gpx3-4";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        hdmi_hpd_irq: hdmi-hpd-irq {
                samsung,pins = "gpx3-7";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pmic_dvs_1: pmic-dvs-1 {
                samsung,pins = "gpy7-6";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 };
 
 &pinctrl_1 {
        /* Adjust WiFi drive strengths lower for EMI */
        sd1_clk: sd1-clk {
-               samsung,pin-drv = <2>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
        };
 
        sd1_cmd: sd1-cmd {
-               samsung,pin-drv = <2>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
        };
 
        sd1_bus1: sd1-bus-width1 {
-               samsung,pin-drv = <2>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
        };
 
        sd1_bus4: sd1-bus-width4 {
-               samsung,pin-drv = <2>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
        };
 
        sd1_bus8: sd1-bus-width8 {
-               samsung,pin-drv = <2>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
        };
 };
 
 &pinctrl_2 {
        pmic_dvs_2: pmic-dvs-2 {
                samsung,pins = "gpj4-2";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pmic_dvs_3: pmic-dvs-3 {
                samsung,pins = "gpj4-3";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 };
 
 &pinctrl_3 {
        /* Drive SPI lines at x2 for better integrity */
        spi2-bus {
-               samsung,pin-drv = <2>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
        };
 
        /* Drive SPI chip select at x2 for better integrity */
        ec_spi_cs: ec-spi-cs {
                samsung,pins = "gpb1-2";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
        };
 
        usb300_vbus_en: usb300-vbus-en {
                samsung,pins = "gph0-0";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        usb301_vbus_en: usb301-vbus-en {
                samsung,pins = "gph0-1";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 
        pmic_selb: pmic-selb {
                samsung,pins = "gph0-2", "gph0-3", "gph0-4", "gph0-5",
                               "gph0-6";
-               samsung,pin-function = <1>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
        };
 };
 
index 490b7b4..f812d58 100644 (file)
                                status = "disabled";
                        };
 
+                       iim@53ff0000 {
+                               compatible = "fsl,imx35-iim";
+                               reg = <0x53ff0000 0x4000>;
+                               interrupts = <19>;
+                               clocks = <&clks 80>;
+                       };
+
                        usbotg: usb@53ff4000 {
                                compatible = "fsl,imx35-usb", "fsl,imx27-usb";
                                reg = <0x53ff4000 0x0200>;
index e245713..8fe8bee 100644 (file)
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 151 28>;
                        };
 
                        gpio2: gpio@53f88000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc  0 75 8>, <&iomuxc 8 100 8>,
+                                             <&iomuxc 16 83 1>, <&iomuxc 17 85 1>,
+                                             <&iomuxc 18 87 1>, <&iomuxc 19 84 1>,
+                                             <&iomuxc 20 88 1>, <&iomuxc 21 86 1>;
                        };
 
                        gpio3: gpio@53f8c000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 108 32>;
                        };
 
                        gpio4: gpio@53f90000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc  0   8  8>, <&iomuxc 8 45 12>,
+                                             <&iomuxc 20 140 11>;
                        };
 
                        wdog1: wdog@53f98000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 57 18>, <&iomuxc 18 89 11>;
                        };
 
                        gpio6: gpio@53fe0000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 27 18>, <&iomuxc 18 16 11>;
                        };
 
                        i2c3: i2c@53fec000 {
diff --git a/arch/arm/boot/dts/imx53-usbarmory.dts b/arch/arm/boot/dts/imx53-usbarmory.dts
new file mode 100644 (file)
index 0000000..6782d7f
--- /dev/null
@@ -0,0 +1,224 @@
+/*
+ * USB armory MkI device tree file
+ * https://inversepath.com/usbarmory
+ *
+ * Copyright (C) 2015, Inverse Path
+ * Andrej Rosano <andrej@inversepath.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 "imx53.dtsi"
+
+/ {
+       model = "Inverse Path USB armory";
+       compatible = "inversepath,imx53-usbarmory", "fsl,imx53";
+};
+
+/ {
+       chosen {
+               stdout-path = &uart1;
+       };
+
+       memory {
+               reg = <0x70000000 0x20000000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_led>;
+
+               user {
+                       label = "LED";
+                       gpios = <&gpio4 27 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+};
+
+/*
+ * Not every i.MX53 P/N supports clock > 800MHz.
+ * As USB armory does not mount a specific P/N set a safe clock upper limit.
+ */
+&cpu0 {
+       operating-points = <
+               /* kHz */
+               166666  850000
+               400000  900000
+               800000 1050000
+       >;
+};
+
+&esdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_esdhc1>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_esdhc1: esdhc1grp {
+               fsl,pins = <
+                       MX53_PAD_SD1_DATA0__ESDHC1_DAT0         0x1d5
+                       MX53_PAD_SD1_DATA1__ESDHC1_DAT1         0x1d5
+                       MX53_PAD_SD1_DATA2__ESDHC1_DAT2         0x1d5
+                       MX53_PAD_SD1_DATA3__ESDHC1_DAT3         0x1d5
+                       MX53_PAD_SD1_CMD__ESDHC1_CMD            0x1d5
+                       MX53_PAD_SD1_CLK__ESDHC1_CLK            0x1d5
+               >;
+       };
+
+       pinctrl_i2c1_pmic: i2c1grp {
+               fsl,pins = <
+                       MX53_PAD_EIM_D21__I2C1_SCL      0x80
+                       MX53_PAD_EIM_D28__I2C1_SDA      0x80
+               >;
+       };
+
+       pinctrl_led: ledgrp {
+               fsl,pins = <
+                       MX53_PAD_DISP0_DAT6__GPIO4_27 0x1e4
+               >;
+       };
+
+       /*
+        * UART mode pin header configration
+        * 3 - GPIO5[26], pull-down 100K
+        * 4 - GPIO5[27], pull-down 100K
+        * 5 - TX, pull-up 100K
+        * 6 - RX, pull-up 100K
+        * 7 - GPIO5[30], pull-down 100K
+        */
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX53_PAD_CSI0_DAT8__GPIO5_26            0xc0
+                       MX53_PAD_CSI0_DAT9__GPIO5_27            0xc0
+                       MX53_PAD_CSI0_DAT10__UART1_TXD_MUX      0x1e4
+                       MX53_PAD_CSI0_DAT11__UART1_RXD_MUX      0x1e4
+                       MX53_PAD_CSI0_DAT12__GPIO5_30           0xc0
+               >;
+       };
+};
+
+&i2c1 {
+       pinctrl-0 = <&pinctrl_i2c1_pmic>;
+       status = "okay";
+
+       ltc3589: pmic@34 {
+               compatible = "lltc,ltc3589-2";
+               reg = <0x34>;
+
+               regulators {
+                       sw1_reg: sw1 {
+                               regulator-min-microvolt = <591930>;
+                               regulator-max-microvolt = <1224671>;
+                               lltc,fb-voltage-divider = <100000 158000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       sw2_reg: sw2 {
+                               regulator-min-microvolt = <704123>;
+                               regulator-max-microvolt = <1456803>;
+                               lltc,fb-voltage-divider = <180000 191000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       sw3_reg: sw3 {
+                               regulator-min-microvolt = <1341250>;
+                               regulator-max-microvolt = <2775000>;
+                               lltc,fb-voltage-divider = <270000 100000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       bb_out_reg: bb-out {
+                               regulator-min-microvolt = <3387341>;
+                               regulator-max-microvolt = <3387341>;
+                               lltc,fb-voltage-divider = <511000 158000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo1_reg: ldo1 {
+                               regulator-min-microvolt = <1306329>;
+                               regulator-max-microvolt = <1306329>;
+                               lltc,fb-voltage-divider = <100000 158000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo2_reg: ldo2 {
+                               regulator-min-microvolt = <704123>;
+                               regulator-max-microvolt = <1456806>;
+                               lltc,fb-voltage-divider = <180000 191000>;
+                               regulator-ramp-delay = <7000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo3_reg: ldo3 {
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-boot-on;
+                       };
+
+                       ldo4_reg: ldo4 {
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3200000>;
+                       };
+               };
+       };
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&usbotg {
+       dr_mode = "peripheral";
+       status = "okay";
+};
index cd17037..0777b41 100644 (file)
                        clock-names = "bus", "di0", "di1";
                        resets = <&src 2>;
 
+                       ipu_csi0: port@0 {
+                               reg = <0>;
+                       };
+
+                       ipu_csi1: port@1 {
+                               reg = <1>;
+                       };
+
                        ipu_di0: port@2 {
                                #address-cells = <1>;
                                #size-cells = <0>;
                                        clocks = <&clks IMX5_CLK_UART3_IPG_GATE>,
                                                 <&clks IMX5_CLK_UART3_PER_GATE>;
                                        clock-names = "ipg", "per";
+                                       dmas = <&sdma 42 4 0>, <&sdma 43 4 0>;
+                                       dma-names = "rx", "tx";
                                        status = "disabled";
                                };
 
                                clocks = <&clks IMX5_CLK_UART1_IPG_GATE>,
                                         <&clks IMX5_CLK_UART1_PER_GATE>;
                                clock-names = "ipg", "per";
+                               dmas = <&sdma 18 4 0>, <&sdma 19 4 0>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
                                clocks = <&clks IMX5_CLK_UART2_IPG_GATE>,
                                         <&clks IMX5_CLK_UART2_PER_GATE>;
                                clock-names = "ipg", "per";
+                               dmas = <&sdma 12 4 0>, <&sdma 13 4 0>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
                                clocks = <&clks IMX5_CLK_UART4_IPG_GATE>,
                                         <&clks IMX5_CLK_UART4_PER_GATE>;
                                clock-names = "ipg", "per";
+                               dmas = <&sdma 2 4 0>, <&sdma 3 4 0>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
                };
                                clocks = <&clks IMX5_CLK_UART5_IPG_GATE>,
                                         <&clks IMX5_CLK_UART5_PER_GATE>;
                                clock-names = "ipg", "per";
+                               dmas = <&sdma 16 4 0>, <&sdma 17 4 0>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
diff --git a/arch/arm/boot/dts/imx6dl-gw553x.dts b/arch/arm/boot/dts/imx6dl-gw553x.dts
new file mode 100644 (file)
index 0000000..59b8afc
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2016 Gateworks Corporation
+ *
+ * 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 "imx6dl.dtsi"
+#include "imx6qdl-gw553x.dtsi"
+
+/ {
+       model = "Gateworks Ventana i.MX6 DualLite/Solo GW553X";
+       compatible = "gw,imx6dl-gw553x", "gw,ventana", "fsl,imx6dl";
+};
index 2becd7c..75d7343 100644 (file)
                        fsl,pins = <
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
                                MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x0a0b1         /* AR8035 CLK_25M --> ENET_REF_CLK (V22) */
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0         /* AR8035 pin strapping: IO voltage: pull up */
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x130b0         /* AR8035 pin strapping: PHYADDR#0: pull down */
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x130b0         /* AR8035 pin strapping: PHYADDR#1: pull down */
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0         /* AR8035 pin strapping: MODE#1: pull up */
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0         /* AR8035 pin strapping: MODE#3: pull up */
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030         /* AR8035 pin strapping: IO voltage: pull up */
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x13030         /* AR8035 pin strapping: PHYADDR#0: pull down */
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x13030         /* AR8035 pin strapping: PHYADDR#1: pull down */
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030         /* AR8035 pin strapping: MODE#1: pull up */
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030         /* AR8035 pin strapping: MODE#3: pull up */
                                MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x130b0         /* AR8035 pin strapping: MODE#0: pull down */
                                MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8      /* GPIO16 -> AR8035 25MHz */
                                MX6QDL_PAD_EIM_D31__GPIO3_IO31          0x130b0         /* RGMII_nRST */
diff --git a/arch/arm/boot/dts/imx6dl-ts4900.dts b/arch/arm/boot/dts/imx6dl-ts4900.dts
new file mode 100644 (file)
index 0000000..85eddeb
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2015 Technologic Systems
+ *
+ * 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
+ *     version 2 as published by the Free Software Foundation.
+ *
+ *     This file is distributed in the hope that it will be useful
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "imx6dl.dtsi"
+#include "imx6qdl-ts4900.dtsi"
+
+/ {
+       model = "Technologic Systems i.MX6 Solo/DualLite TS-4900 (Default Device Tree)";
+       compatible = "technologic,imx6dl-ts4900", "fsl,imx6dl";
+};
index 9a4c22c..1ade195 100644 (file)
        };
 };
 
+&gpio1 {
+       gpio-ranges = <&iomuxc  0 131 2>, <&iomuxc  2 137 8>, <&iomuxc 10 189 2>,
+                     <&iomuxc 12 194 1>, <&iomuxc 13 193 1>, <&iomuxc 14 192 1>,
+                     <&iomuxc 15 191 1>, <&iomuxc 16 185 2>, <&iomuxc 18 184 1>,
+                     <&iomuxc 19 187 1>, <&iomuxc 20 183 1>, <&iomuxc 21 188 1>,
+                     <&iomuxc 22 123 3>, <&iomuxc 25 121 1>, <&iomuxc 26 127 1>,
+                     <&iomuxc 27 126 1>, <&iomuxc 28 128 1>, <&iomuxc 29 130 1>,
+                     <&iomuxc 30 129 1>, <&iomuxc 31 122 1>;
+};
+
+&gpio2 {
+       gpio-ranges = <&iomuxc  0 161 8>, <&iomuxc  8 208 8>, <&iomuxc 16  74 1>,
+                     <&iomuxc 17  73 1>, <&iomuxc 18  72 1>, <&iomuxc 19  71 1>,
+                     <&iomuxc 20  70 1>, <&iomuxc 21  69 1>, <&iomuxc 22  68 1>,
+                     <&iomuxc 23  79 2>, <&iomuxc 25 118 2>, <&iomuxc 27 117 1>,
+                     <&iomuxc 28 113 4>;
+};
+
+&gpio3 {
+       gpio-ranges = <&iomuxc  0 97  2>, <&iomuxc 2 105 8>, <&iomuxc 10 99 6>,
+                     <&iomuxc 16 81 16>;
+};
+
+&gpio4 {
+       gpio-ranges = <&iomuxc  5 136 1>, <&iomuxc  6 145 1>, <&iomuxc  7 150 1>,
+                     <&iomuxc  8 146 1>, <&iomuxc  9 151 1>, <&iomuxc 10 147 1>,
+                     <&iomuxc 11 151 1>, <&iomuxc 12 148 1>, <&iomuxc 13 153 1>,
+                     <&iomuxc 14 149 1>, <&iomuxc 15 154 1>, <&iomuxc 16  39 7>,
+                     <&iomuxc 23  56 1>, <&iomuxc 24  61 7>, <&iomuxc 31  46 1>;
+};
+
+&gpio5 {
+       gpio-ranges = <&iomuxc  0 120 1>, <&iomuxc  2 77 1>, <&iomuxc  4 76 1>,
+                     <&iomuxc  5  47 9>, <&iomuxc 14 57 4>, <&iomuxc 18 37 1>,
+                     <&iomuxc 19  36 1>, <&iomuxc 20 35 1>, <&iomuxc 21 38 1>,
+                     <&iomuxc 22  29 6>, <&iomuxc 28 19 4>;
+};
+
+&gpio6 {
+       gpio-ranges = <&iomuxc  0  23 6>, <&iomuxc  6  75 1>, <&iomuxc  7 156 1>,
+                     <&iomuxc  8 155 1>, <&iomuxc  9 170 1>, <&iomuxc 10 169 1>,
+                     <&iomuxc 11 157 1>, <&iomuxc 14 158 3>, <&iomuxc 17 204 1>,
+                     <&iomuxc 18 203 1>, <&iomuxc 19 182 1>, <&iomuxc 20 177 4>,
+                     <&iomuxc 24 175 1>, <&iomuxc 25 171 1>, <&iomuxc 26 181 1>,
+                     <&iomuxc 27 172 3>, <&iomuxc 30 176 1>, <&iomuxc 31  78 1>;
+};
+
+&gpio7 {
+       gpio-ranges = <&iomuxc 0 202 1>, <&iomuxc  1 201 1>, <&iomuxc  2 196 1>,
+                     <&iomuxc 3 195 1>, <&iomuxc  4 197 4>, <&iomuxc  8 205 1>,
+                     <&iomuxc 9 207 1>, <&iomuxc 10 206 1>, <&iomuxc 11 133 3>;
+};
+
 &gpt {
        compatible = "fsl,imx6dl-gpt";
 };
index d8acf15..4989d0b 100644 (file)
                        fsl,pins = <
                                MX6QDL_PAD_KEY_COL1__ENET_MDIO          0x1b0b0
                                MX6QDL_PAD_KEY_COL2__ENET_MDC           0x1b0b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
                                MX6QDL_PAD_GPIO_6__ENET_IRQ             0x000b1
                        >;
                };
index f0a2be5..78bfc1a 100644 (file)
                };
        };
 };
+
+&pca9539 {
+       P04 {
+               gpio-hog;
+               gpios = <4 0>;
+               output-low;
+               line-name = "PCA9539-P04";
+       };
+
+       P05 {
+               gpio-hog;
+               gpios = <5 0>;
+               output-low;
+               line-name = "PCA9539-P05";
+       };
+};
index 33cb71a..d853887 100644 (file)
                };
        };
 };
+
+&pca9539 {
+       P05 {
+               gpio-hog;
+               gpios = <5 0>;
+               output-low;
+               line-name = "PCA9539-P05";
+       };
+};
index f2adc60..308e11c 100644 (file)
                fsl,pins = <
                        MX6QDL_PAD_ENET_MDIO__ENET_MDIO       0x100b0
                        MX6QDL_PAD_ENET_MDC__ENET_MDC         0x100b0
-                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC       0x100b0
-                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0       0x100b0
-                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1       0x100b0
-                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2       0x100b0
-                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3       0x100b0
-                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x100b0
+                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC       0x10030
+                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0       0x10030
+                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1       0x10030
+                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2       0x10030
+                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3       0x10030
+                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x10030
                        MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK  0x100b0
-                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC       0x1b0b0
-                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0       0x1b0b0
-                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1       0x1b0b0
-                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2       0x1b0b0
-                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3       0x1b0b0
-                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
+                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC       0x1b030
+                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0       0x1b030
+                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1       0x1b030
+                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2       0x1b030
+                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3       0x1b030
+                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
                        /* FEC Reset */
                        MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28     0x1b0b0
                        /* AR8033 Interrupt */
index cf3fd31..e4a415f 100644 (file)
                                interrupt-controller;
                                interrupt-parent = <&gpio2>;
                                interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+
+                               P06 {
+                                       gpio-hog;
+                                       gpios = <6 0>;
+                                       output-low;
+                                       line-name = "PCA9539-P06";
+                               };
+
+                               P07 {
+                                       gpio-hog;
+                                       gpios = <7 0>;
+                                       output-low;
+                                       line-name = "PCA9539-P07";
+                               };
+
+                               P10 {
+                                       gpio-hog;
+                                       gpios = <8 0>;
+                                       output-low;
+                                       line-name = "PCA9539-P10";
+                               };
+
+                               P11 {
+                                       gpio-hog;
+                                       gpios = <9 0>;
+                                       output-low;
+                                       line-name = "PCA9539-P11";
+                               };
+
+                               P12 {
+                                       gpio-hog;
+                                       gpios = <10 0>;
+                                       output-low;
+                                       line-name = "PCA9539-P12";
+                               };
+
+                               P13 {
+                                       gpio-hog;
+                                       gpios = <11 0>;
+                                       output-low;
+                                       line-name = "PCA9539-P13";
+                               };
+
+                               P14 {
+                                       gpio-hog;
+                                       gpios = <12 0>;
+                                       output-low;
+                                       line-name = "PCA9539-P14";
+                               };
+
+                               P15 {
+                                       gpio-hog;
+                                       gpios = <13 0>;
+                                       output-low;
+                                       line-name = "PCA9539-P15";
+                               };
+
+                               P16 {
+                                       gpio-hog;
+                                       gpios = <14 0>;
+                                       output-low;
+                                       line-name = "PCA9539-P16";
+                               };
+
+                               P17 {
+                                       gpio-hog;
+                                       gpios = <15 0>;
+                                       output-low;
+                                       line-name = "PCA9539-P17";
+                               };
                        };
                };
 
index b5de7e6..59bc5a4 100644 (file)
 
        pinctrl_enet: enetgrp {
                fsl,pins = <
-                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
-                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
+                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                        MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
                        MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
                        MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
index 9059073..908dab6 100644 (file)
 
                pinctrl_enet: enetgrp {
                        fsl,pins = <
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
                                MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
index 4fa5601..6de21ff 100644 (file)
        pinctrl-0 = <&pinctrl_enet>;
        phy-mode = "rgmii";
        phy-reset-gpios = <&gpio1 25 0>;
+       interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
+                             <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
+       fsl,err006687-workaround-present;
        status = "okay";
 };
 
                fsl,pins = <
                        MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
                        MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
-                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0
-                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0
-                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0
-                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0
-                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0
-                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0
+                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
+                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
+                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
+                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
+                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
+                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
                        MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
-                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
-                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0
-                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0
-                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0
-                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0
-                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
+                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
+                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030
+                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030
+                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
+                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
+                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
                        MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x4001b0a8
                        MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x1b0b0
+                       MX6QDL_PAD_GPIO_6__ENET_IRQ 0x000b1
                >;
        };
 
index 0511137..747bc10 100644 (file)
 
                pinctrl_enet: enetgrp {
                        fsl,pins = <
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
                                MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
diff --git a/arch/arm/boot/dts/imx6q-gw553x.dts b/arch/arm/boot/dts/imx6q-gw553x.dts
new file mode 100644 (file)
index 0000000..e9c224c
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2016 Gateworks Corporation
+ *
+ * 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 "imx6q.dtsi"
+#include "imx6qdl-gw553x.dtsi"
+
+/ {
+       model = "Gateworks Ventana i.MX6 Dual/Quad GW553X";
+       compatible = "gw,imx6q-gw553x", "gw,ventana", "fsl,imx6q";
+};
index 3f8013c..f7995c5 100644 (file)
                fsl,pins = <
                        MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
                        MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
-                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                        /* AR8035 CLK_25M --> ENET_REF_CLK (V22) */
                        MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x0a0b1
                        /* AR8035 pin strapping: IO voltage: pull up */
-                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
+                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
                        /* AR8035 pin strapping: PHYADDR#0: pull down */
-                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x130b0
+                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x13030
                        /* AR8035 pin strapping: PHYADDR#1: pull down */
-                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x130b0
+                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x13030
                        /* AR8035 pin strapping: MODE#1: pull up */
-                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
+                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
                        /* AR8035 pin strapping: MODE#3: pull up */
-                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
+                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
                        /* AR8035 pin strapping: MODE#0: pull down */
-                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x130b0
+                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x13030
                        /* GPIO16 -> AR8035 25MHz */
                        MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
                        /* RGMII_nRST */
index 5acd0c6..1723e89 100644 (file)
                        MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b028
                        MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b028
                        MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
-                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
+                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
                        MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
                        /* Ethernet reset */
                        MX6QDL_PAD_EIM_D23__GPIO3_IO23          0x1b0b1
index 86cf093..2557330 100644 (file)
                        fsl,pins = <
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
                                MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
                                MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
                        >;
                };
index d7c8ccb..06f492e 100644 (file)
                fsl,pins = <
                        MX6QDL_PAD_ENET_MDIO__ENET_MDIO       0x1b0b0
                        MX6QDL_PAD_ENET_MDC__ENET_MDC         0x1b0b0
-                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC       0x1b0b0
-                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0       0x1b0b0
-                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1       0x1b0b0
-                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2       0x1b0b0
-                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3       0x1b0b0
-                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0
+                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC       0x1b030
+                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0       0x1b030
+                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1       0x1b030
+                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2       0x1b030
+                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3       0x1b030
+                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
                        MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK  0x1b0b0
-                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC       0x1b0b0
-                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0       0x1b0b0
-                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1       0x1b0b0
-                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2       0x1b0b0
-                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3       0x1b0b0
-                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
+                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC       0x1b030
+                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0       0x1b030
+                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1       0x1b030
+                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2       0x1b030
+                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3       0x1b030
+                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
                        MX6QDL_PAD_GPIO_16__ENET_REF_CLK      0x4001b0a8
                        MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25    0x1b059
                >;
diff --git a/arch/arm/boot/dts/imx6q-ts4900.dts b/arch/arm/boot/dts/imx6q-ts4900.dts
new file mode 100644 (file)
index 0000000..9b81ebc
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2015 Technologic Systems
+ *
+ * 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
+ *     version 2 as published by the Free Software Foundation.
+ *
+ *     This file is distributed in the hope that it will be useful
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "imx6q.dtsi"
+#include "imx6qdl-ts4900.dtsi"
+
+/ {
+       model = "Technologic Systems i.MX6 Quad TS-4900 (Default Device Tree)";
+       compatible = "technologic,imx6q-ts4900", "fsl,imx6q";
+};
+
+&sata {
+       status = "okay";
+};
index c30c836..e9a5d0b 100644 (file)
        };
 };
 
+&gpio1 {
+       gpio-ranges = <&iomuxc  0 136  2>, <&iomuxc  2 141 1>, <&iomuxc  3 139 1>,
+                     <&iomuxc  4 142  2>, <&iomuxc  6 140 1>, <&iomuxc  7 144 2>,
+                     <&iomuxc  9 138  1>, <&iomuxc 10 213 3>, <&iomuxc 13  20 1>,
+                     <&iomuxc 14  19  1>, <&iomuxc 15  21 1>, <&iomuxc 16 208 1>,
+                     <&iomuxc 17 207  1>, <&iomuxc 18 210 3>, <&iomuxc 21 209 1>,
+                     <&iomuxc 22 116 10>;
+};
+
+&gpio2 {
+       gpio-ranges = <&iomuxc  0 191 16>, <&iomuxc 16 55 14>, <&iomuxc 30 35 1>,
+                     <&iomuxc 31  44  1>;
+};
+
+&gpio3 {
+       gpio-ranges = <&iomuxc 0 69 16>, <&iomuxc 16 36 8>, <&iomuxc 24 45 8>;
+};
+
+&gpio4 {
+       gpio-ranges = <&iomuxc 5 149 1>, <&iomuxc 6 126 10>, <&iomuxc 16 87 16>;
+};
+
+&gpio5 {
+       gpio-ranges = <&iomuxc 0  85  1>, <&iomuxc  2  34  1>, <&iomuxc 4 53 1>,
+                     <&iomuxc 5 103 13>, <&iomuxc 18 150 14>;
+};
+
+&gpio6 {
+       gpio-ranges = <&iomuxc  0 164 6>, <&iomuxc  6  54 1>, <&iomuxc  7 181  5>,
+                     <&iomuxc 14 186 3>, <&iomuxc 17 170 2>, <&iomuxc 19  22 12>,
+                     <&iomuxc 31  86 1>;
+};
+
+&gpio7 {
+       gpio-ranges = <&iomuxc 0 172 9>, <&iomuxc 9 189 2>, <&iomuxc 11 146 3>;
+};
+
 &hdmi {
        compatible = "fsl,imx6q-hdmi";
 
index 315e033..99e323b 100644 (file)
                fsl,pins = <
                        MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x100b0
                        MX6QDL_PAD_ENET_MDC__ENET_MDC           0x100b0
-                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x100b0
-                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x100b0
-                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x100b0
-                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x100b0
-                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x100b0
-                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x100b0
+                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x10030
+                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x10030
+                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x10030
+                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x10030
+                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x10030
+                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x10030
                        MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x100b0
-                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
+                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
                        /* Ethernet PHY reset */
                        MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25      0x000b0
                        /* Ethernet PHY interrupt */
index da1341d..b2c083d 100644 (file)
 
                pinctrl_enet: enetgrp {
                        fsl,pins = <
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
                                MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
index 9d7ab6c..afec2c7 100644 (file)
        status = "okay";
 };
 
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+};
+
 &iomuxc {
        imx6qdl-gw51xx {
                pinctrl_enet: enetgrp {
                        fsl,pins = <
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
                                MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
                                MX6QDL_PAD_EIM_D22__GPIO3_IO22          0x1b0b0 /* OTG_PWR_EN */
                        >;
                };
+
+               pinctrl_wdog: wdoggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_DISP0_DAT8__WDOG1_B          0x1b0b0
+                       >;
+               };
        };
 };
index 7191b84..a7100f9 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
+       uart-has-rtscts;
+       rts-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
        status = "okay";
 };
 
        status = "okay";
 };
 
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+};
+
 &iomuxc {
        imx6qdl-gw52xx {
                pinctrl_audmux: audmuxgrp {
 
                pinctrl_enet: enetgrp {
                        fsl,pins = <
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
                                MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
                        fsl,pins = <
                                MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA      0x1b0b1
                                MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA      0x1b0b1
+                               MX6QDL_PAD_SD3_DAT4__GPIO7_IO01         0x4001b0b1 /* TEN */
                        >;
                };
 
                                MX6QDL_PAD_NANDF_CS1__SD3_VSELECT       0x170f9
                        >;
                };
+
+               pinctrl_wdog: wdoggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_DISP0_DAT8__WDOG1_B          0x1b0b0
+                       >;
+               };
        };
 };
index 40d06b0..8953eba 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
+       uart-has-rtscts;
+       rts-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
        status = "okay";
 };
 
        status = "okay";
 };
 
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+};
+
 &iomuxc {
        imx6qdl-gw53xx {
                pinctrl_audmux: audmuxgrp {
 
                pinctrl_enet: enetgrp {
                        fsl,pins = <
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
                                MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
                        fsl,pins = <
                                MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA      0x1b0b1
                                MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA      0x1b0b1
+                               MX6QDL_PAD_SD3_DAT4__GPIO7_IO01         0x4001b0b1 /* TEN */
                        >;
                };
 
                                MX6QDL_PAD_NANDF_CS1__SD3_VSELECT       0x170f9
                        >;
                };
+
+               pinctrl_wdog: wdoggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_DISP0_DAT8__WDOG1_B          0x1b0b0
+                       >;
+               };
        };
 };
index d6dbe2a..6ac41c7 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
+       uart-has-rtscts;
+       rts-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
        status = "okay";
 };
 
        status = "okay";
 };
 
+&wdog1 {
+       status = "disabled";
+};
+
+&wdog2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
 &iomuxc {
        imx6qdl-gw54xx {
                pinctrl_audmux: audmuxgrp {
 
                pinctrl_enet: enetgrp {
                        fsl,pins = <
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
                                MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
                        fsl,pins = <
                                MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA      0x1b0b1
                                MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA      0x1b0b1
+                               MX6QDL_PAD_SD3_DAT4__GPIO7_IO01         0x4001b0b1 /* TEN */
                        >;
                };
 
                                MX6QDL_PAD_NANDF_CS1__SD3_VSELECT       0x170f9
                        >;
                };
+
+               pinctrl_wdog: wdoggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD1_DAT3__WDOG2_B            0x1b0b0
+                       >;
+               };
        };
 };
index 118bea5..4b9fef8 100644 (file)
        status = "okay";
 };
 
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+};
+
 &iomuxc {
        imx6qdl-gw51xx {
                pinctrl_flexcan1: flexcan1grp {
                                MX6QDL_PAD_GPIO_1__USB_OTG_ID           0x17059
                        >;
                };
+
+               pinctrl_wdog: wdoggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_DISP0_DAT8__WDOG1_B          0x1b0b0
+                       >;
+               };
        };
 };
index f27f184..805e236 100644 (file)
        status = "okay";
 };
 
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+};
+
 &iomuxc {
        imx6qdl-gw552x {
                pinctrl_gpio_leds: gpioledsgrp {
                                MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA      0x1b0b1
                        >;
                 };
+
+               pinctrl_wdog: wdoggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_DISP0_DAT8__WDOG1_B          0x1b0b0
+                       >;
+               };
        };
 };
diff --git a/arch/arm/boot/dts/imx6qdl-gw553x.dtsi b/arch/arm/boot/dts/imx6qdl-gw553x.dtsi
new file mode 100644 (file)
index 0000000..86cec05
--- /dev/null
@@ -0,0 +1,433 @@
+/*
+ * Copyright 2016 Gateworks Corporation
+ *
+ * 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 <dt-bindings/gpio/gpio.h>
+
+/ {
+       /* these are used by bootloader for disabling nodes */
+       aliases {
+               led0 = &led0;
+               led1 = &led1;
+               nand = &gpmi;
+               usb0 = &usbh1;
+               usb1 = &usbotg;
+       };
+
+       chosen {
+               stdout-path = &uart2;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_leds>;
+
+               led0: user1 {
+                       label = "user1";
+                       gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>; /* MX6_PANLEDG */
+                       default-state = "on";
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led1: user2 {
+                       label = "user2";
+                       gpios = <&gpio4 11 GPIO_ACTIVE_HIGH>; /* MX6_PANLEDR */
+                       default-state = "off";
+               };
+       };
+
+       memory {
+               reg = <0x10000000 0x20000000>;
+       };
+
+       pps {
+               compatible = "pps-gpio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pps>;
+               gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
+               status = "okay";
+       };
+
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "3P0V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       reg_5p0v: regulator-5p0v {
+               compatible = "regulator-fixed";
+               regulator-name = "5P0V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+
+       reg_usb_otg_vbus: regulator-usb-otg-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_otg_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+};
+
+&gpmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpmi_nand>;
+       status = "okay";
+};
+
+&hdmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hdmi>;
+       ddc-i2c-bus = <&i2c3>;
+       status = "okay";
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       gpio: pca9555@23 {
+               compatible = "nxp,pca9555";
+               reg = <0x23>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       eeprom1: eeprom@50 {
+               compatible = "atmel,24c02";
+               reg = <0x50>;
+               pagesize = <16>;
+       };
+
+       eeprom2: eeprom@51 {
+               compatible = "atmel,24c02";
+               reg = <0x51>;
+               pagesize = <16>;
+       };
+
+       eeprom3: eeprom@52 {
+               compatible = "atmel,24c02";
+               reg = <0x52>;
+               pagesize = <16>;
+       };
+
+       eeprom4: eeprom@53 {
+               compatible = "atmel,24c02";
+               reg = <0x53>;
+               pagesize = <16>;
+       };
+
+       rtc: ds1672@68 {
+               compatible = "dallas,ds1672";
+               reg = <0x68>;
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+};
+
+&i2c3 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       status = "okay";
+};
+
+&pcie {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pcie>;
+       reset-gpio = <&gpio1 0 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&pwm2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm2>; /* MX6_DIO1 */
+       status = "disabled";
+};
+
+&pwm3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm3>; /* MX6_DIO2 */
+       status = "disabled";
+};
+
+&pwm4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm4>; /* MX6_DIO3 */
+       status = "disabled";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       status = "okay";
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       status = "okay";
+};
+
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4>;
+       status = "okay";
+};
+
+&uart5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart5>;
+       status = "okay";
+};
+
+&usbh1 {
+       status = "okay";
+};
+
+&usbotg {
+       vbus-supply = <&reg_usb_otg_vbus>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg>;
+       disable-over-current;
+       status = "okay";
+};
+
+&usdhc3 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
+       vmmc-supply = <&reg_3p3v>;
+       status = "okay";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+};
+
+&iomuxc {
+       pinctrl_gpmi_nand: gpminandgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_NANDF_CLE__NAND_CLE          0xb0b1
+                       MX6QDL_PAD_NANDF_ALE__NAND_ALE          0xb0b1
+                       MX6QDL_PAD_NANDF_WP_B__NAND_WP_B        0xb0b1
+                       MX6QDL_PAD_NANDF_RB0__NAND_READY_B      0xb000
+                       MX6QDL_PAD_NANDF_CS0__NAND_CE0_B        0xb0b1
+                       MX6QDL_PAD_SD4_CMD__NAND_RE_B           0xb0b1
+                       MX6QDL_PAD_SD4_CLK__NAND_WE_B           0xb0b1
+                       MX6QDL_PAD_NANDF_D0__NAND_DATA00        0xb0b1
+                       MX6QDL_PAD_NANDF_D1__NAND_DATA01        0xb0b1
+                       MX6QDL_PAD_NANDF_D2__NAND_DATA02        0xb0b1
+                       MX6QDL_PAD_NANDF_D3__NAND_DATA03        0xb0b1
+                       MX6QDL_PAD_NANDF_D4__NAND_DATA04        0xb0b1
+                       MX6QDL_PAD_NANDF_D5__NAND_DATA05        0xb0b1
+                       MX6QDL_PAD_NANDF_D6__NAND_DATA06        0xb0b1
+                       MX6QDL_PAD_NANDF_D7__NAND_DATA07        0xb0b1
+               >;
+       };
+
+       pinctrl_hdmi: hdmigrp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE    0x1f8b0
+               >;
+       };
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D21__I2C1_SCL            0x4001b8b1
+                       MX6QDL_PAD_EIM_D28__I2C1_SDA            0x4001b8b1
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL3__I2C2_SCL           0x4001b8b1
+                       MX6QDL_PAD_KEY_ROW3__I2C2_SDA           0x4001b8b1
+               >;
+       };
+
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_3__I2C3_SCL             0x4001b8b1
+                       MX6QDL_PAD_GPIO_6__I2C3_SDA             0x4001b8b1
+               >;
+       };
+
+       pinctrl_gpio_leds: gpioledsgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL2__GPIO4_IO10         0x1b0b0
+                       MX6QDL_PAD_KEY_ROW2__GPIO4_IO11         0x1b0b0
+               >;
+       };
+
+       pinctrl_pcie: pciegrp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_0__GPIO1_IO00           0x1b0b0
+                       MX6QDL_PAD_GPIO_17__GPIO7_IO12          0x4001b0b0 /* PCIESKT_WDIS# */
+               >;
+       };
+
+       pinctrl_pps: ppsgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_ENET_RXD1__GPIO1_IO26        0x1b0b1
+               >;
+       };
+
+       pinctrl_pwm2: pwm2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD1_DAT2__PWM2_OUT           0x1b0b1
+               >;
+       };
+
+       pinctrl_pwm3: pwm3grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD4_DAT1__PWM3_OUT           0x1b0b1
+               >;
+       };
+
+       pinctrl_pwm4: pwm4grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD1_CMD__PWM4_OUT            0x1b0b1
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA      0x1b0b1
+                       MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA      0x1b0b1
+               >;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D24__UART3_TX_DATA       0x1b0b1
+                       MX6QDL_PAD_EIM_D25__UART3_RX_DATA       0x1b0b1
+               >;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL0__UART4_TX_DATA      0x1b0b1
+                       MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA      0x1b0b1
+               >;
+       };
+
+       pinctrl_uart5: uart5grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL1__UART5_TX_DATA      0x1b0b1
+                       MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA      0x1b0b1
+               >;
+       };
+
+       pinctrl_usbotg: usbotggrp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_1__USB_OTG_ID           0x17059
+                       MX6QDL_PAD_EIM_D22__GPIO3_IO22          0x1b0b0 /* OTG_PWR_EN */
+               >;
+       };
+
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD3_CMD__SD3_CMD             0x17059
+                       MX6QDL_PAD_SD3_CLK__SD3_CLK             0x10059
+                       MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x17059
+                       MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x17059
+                       MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x17059
+                       MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x17059
+                       MX6QDL_PAD_SD3_DAT5__GPIO7_IO00         0x17059 /* CD */
+                       MX6QDL_PAD_NANDF_CS1__SD3_VSELECT       0x17059
+               >;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+               fsl,pins = <
+                       MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170b9
+                       MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100b9
+                       MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x170b9
+                       MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x170b9
+                       MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x170b9
+                       MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x170b9
+                       MX6QDL_PAD_SD3_DAT5__GPIO7_IO00         0x170b9 /* CD */
+                       MX6QDL_PAD_NANDF_CS1__SD3_VSELECT       0x170b9
+               >;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+               fsl,pins = <
+                       MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170f9
+                       MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100f9
+                       MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x170f9
+                       MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x170f9
+                       MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x170f9
+                       MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x170f9
+                       MX6QDL_PAD_SD3_DAT5__GPIO7_IO00         0x170f9 /* CD */
+                       MX6QDL_PAD_NANDF_CS1__SD3_VSELECT       0x170f9
+               >;
+       };
+
+       pinctrl_wdog: wdoggrp {
+               fsl,pins = <
+                       MX6QDL_PAD_DISP0_DAT8__WDOG1_B          0x1b0b0
+               >;
+       };
+};
index f8d945a..d5c3aa8 100644 (file)
                fsl,pins = <
                        MX6QDL_PAD_ENET_MDIO__ENET_MDIO       0x1b0b0
                        MX6QDL_PAD_ENET_MDC__ENET_MDC         0x1b0b0
-                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC       0x1b0b0
-                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0       0x1b0b0
-                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1       0x1b0b0
-                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2       0x1b0b0
-                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3       0x1b0b0
-                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0
+                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC       0x1b030
+                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0       0x1b030
+                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1       0x1b030
+                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2       0x1b030
+                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3       0x1b030
+                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
                        MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK  0x1b0b0
-                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC       0x1b0b0
-                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0       0x1b0b0
-                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1       0x1b0b0
-                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2       0x1b0b0
-                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3       0x1b0b0
-                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
+                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC       0x1b030
+                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0       0x1b030
+                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1       0x1b030
+                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2       0x1b030
+                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3       0x1b030
+                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
                        MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN     0x1b0b0
                >;
        };
index cfd50ea..880bd78 100644 (file)
                                MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x100b0
                                MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x100b0
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x100b0
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
                                /* Phy reset */
                                MX6QDL_PAD_ENET_RXD0__GPIO1_IO27        0x0f0b0
                                MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28       0x1b0b0
index 9677bf3..b0b3220 100644 (file)
                        fsl,pins = <
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x100b0
                                MX6QDL_PAD_ENET_MDC__ENET_MDC           0x100b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x100b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x100b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x100b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x100b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x100b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x100b0
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x10030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x10030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x10030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x10030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x10030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x10030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x100b0
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
                                /* Phy reset */
                                MX6QDL_PAD_ENET_RXD0__GPIO1_IO27        0x0f0b0
                                MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28       0x1b0b0
index 97d9c33..db868bc 100644 (file)
                        fsl,pins = <
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x100b0
                                MX6QDL_PAD_ENET_MDC__ENET_MDC           0x100b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x100b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x100b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x100b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x100b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x100b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x100b0
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x10030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x10030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x10030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x10030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x10030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x10030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x100b0
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
                                /* Phy reset */
                                MX6QDL_PAD_ENET_RXD0__GPIO1_IO27        0x000b0
                                MX6QDL_PAD_GPIO_6__ENET_IRQ             0x000b1
index d6d98d4..e0280ca 100644 (file)
                        fsl,pins = <
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
                                MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
                                MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN       0x1b0b0
                        >;
                };
        status = "disabled";
 };
 
+&reg_arm {
+       vin-supply = <&vddcore_reg>;
+};
+
+&reg_pu {
+       vin-supply = <&vddsoc_reg>;
+};
+
+&reg_soc {
+       vin-supply = <&vddsoc_reg>;
+};
+
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3>;
index cacf593..17704a5 100644 (file)
                        fsl,pins = <
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
                                MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
                                MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
                                /* Phy reset */
                                MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25      0x000b0
index 6aa193f..e000e6f 100644 (file)
                        fsl,pins = <
                                MX6QDL_PAD_KEY_COL1__ENET_MDIO          0x1b0b0
                                MX6QDL_PAD_KEY_COL2__ENET_MDC           0x1b0b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
                                MX6QDL_PAD_GPIO_6__ENET_IRQ             0x000b1
                        >;
                };
index f65fdfc..81dd6cd 100644 (file)
                        fsl,pins = <
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x100b0
                                MX6QDL_PAD_ENET_MDC__ENET_MDC           0x100b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x100b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x100b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x100b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x100b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x100b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x100b0
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x10030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x10030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x10030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x10030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x10030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x10030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x100b0
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
                                /* Phy reset */
                                MX6QDL_PAD_EIM_D23__GPIO3_IO23          0x000b0
                                MX6QDL_PAD_GPIO_6__ENET_IRQ             0x000b1
index d77ea94..8e9e0d9 100644 (file)
                        fsl,pins = <
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
                                MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
                                MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
                        >;
                };
diff --git a/arch/arm/boot/dts/imx6qdl-ts4900.dtsi b/arch/arm/boot/dts/imx6qdl-ts4900.dtsi
new file mode 100644 (file)
index 0000000..5c26b26
--- /dev/null
@@ -0,0 +1,481 @@
+/*
+ * Copyright 2015 Technologic Systems
+ *
+ * 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
+ *     version 2 as published by the Free Software Foundation.
+ *
+ *     This file is distributed in the hope that it will be useful
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       aliases {
+               ethernet0 = &fec;
+       };
+
+       leds {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_leds1>;
+               compatible = "gpio-leds";
+
+               green-led {
+                       label = "green-led";
+                       gpios = <&gpio2 24 GPIO_ACTIVE_LOW>;
+                       default-state = "on";
+               };
+
+               red-led {
+                       label = "red-led";
+                       gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+       };
+
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "3p3v";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reg_usb_otg_vbus: regulator-usb-otg-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_otg_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+};
+
+&can1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1>;
+       status = "okay";
+};
+
+&can2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       status = "okay";
+};
+
+&ecspi1 {
+       fsl,spi-num-chipselects = <1>;
+       cs-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1>;
+       status = "okay";
+
+       n25q064: flash@0 {
+               compatible = "micron,n25q064", "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <20000000>;
+       };
+};
+
+&ecspi2 {
+       fsl,spi-num-chipselects = <1>;
+       cs-gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi2>;
+       status = "okay";
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet>;
+       phy-mode = "rgmii";
+       status = "okay";
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+
+       isl12022: rtc@6f {
+               compatible = "isil,isl12022";
+               reg = <0x6f>;
+       };
+
+       gpio8: gpio@28 {
+               compatible = "technologic,ts4900-gpio";
+               reg = <0x28>;
+               #gpio-cells = <2>;
+               gpio-controller;
+               ngpio = <32>;
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       pinctrl-1 = <&pinctrl_i2c2_gpio>;
+       scl-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       pinctrl_ecspi1: ecspi1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D17__ECSPI1_MISO         0x100b1
+                       MX6QDL_PAD_EIM_D18__ECSPI1_MOSI         0x100b1
+                       MX6QDL_PAD_EIM_D16__ECSPI1_SCLK         0x100b1
+                       MX6QDL_PAD_EIM_D19__GPIO3_IO19          0x100b1 /* Onboard flash CS1# */
+               >;
+       };
+
+       pinctrl_ecspi2: ecspi2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_CSI0_DAT8__ECSPI2_SCLK       0x100b1
+                       MX6QDL_PAD_CSI0_DAT9__ECSPI2_MOSI       0x100b1
+                       MX6QDL_PAD_CSI0_DAT10__ECSPI2_MISO      0x100b1
+                       MX6QDL_PAD_CSI0_DAT11__GPIO5_IO29       0x100b1 /* Offboard CS0# */
+                       MX6QDL_PAD_CSI0_DAT16__GPIO6_IO02       0x100b1 /* FPGA CS1# */
+                       MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21       0x1b0b1 /* FPGA_RESET# */
+                       MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20     0x1b0b1 /* FPGA_DONE */
+                       MX6QDL_PAD_GPIO_3__XTALOSC_REF_CLK_24M  0x10    /* FPGA 24MHZ */
+                       MX6QDL_PAD_GPIO_4__GPIO1_IO04           0x1b0b1 /* FPGA_IRQ */
+               >;
+       };
+
+       pinctrl_enet: enetgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
+                       MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
+                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
+                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
+                       MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x4001b0a8
+                       MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28       0x1b0b1
+                       MX6QDL_PAD_DI0_PIN4__GPIO4_IO20         0x1b0b1 /* ETH_PHY_RESET */
+               >;
+       };
+
+       pinctrl_flexcan1: flexcan1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX        0x1b0b1
+                       MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX        0x1b0b1
+               >;
+       };
+
+       pinctrl_flexcan2: flexcan2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX        0x1b0b1
+                       MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX        0x1b0b1
+               >;
+       };
+
+       pinctrl_hog: hoggrp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_A17__GPIO2_IO21          0x1b0b1 /* OFF_BD_RESET# */
+                       MX6QDL_PAD_EIM_A16__GPIO2_IO22          0x1b0b1 /* EN_USB_5V# */
+                       MX6QDL_PAD_EIM_A19__GPIO2_IO19          0x1b0b1 /* EN_LCD_3.3V */
+                       MX6QDL_PAD_GPIO_0__CCM_CLKO1            0x130b0 /* Audio CLK */
+                       MX6QDL_PAD_GPIO_5__GPIO1_IO05           0x1b0b1 /* DIO_1 */
+                       MX6QDL_PAD_GPIO_6__GPIO1_IO06           0x1b0b1 /* DIO_2 */
+                       MX6QDL_PAD_GPIO_9__GPIO1_IO09           0x1b0b1 /* DIO_3 */
+                       MX6QDL_PAD_GPIO_16__GPIO7_IO11          0x1b0b1 /* DIO_4 */
+                       MX6QDL_PAD_GPIO_17__GPIO7_IO12          0x1b0b1 /* DIO_5 */
+                       MX6QDL_PAD_GPIO_19__GPIO4_IO05          0x1b0b1 /* DIO_7 */
+                       MX6QDL_PAD_CSI0_MCLK__GPIO5_IO19        0x1b0b1 /* DIO_8 */
+                       MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18      0x1b0b1 /* DIO_9 */
+                       MX6QDL_PAD_CSI0_DAT12__GPIO5_IO30       0x1b0b1 /* DIO_0 */
+                       MX6QDL_PAD_CSI0_DAT13__GPIO5_IO31       0x1b0b1 /* DIO_6 */
+                       MX6QDL_PAD_CSI0_DAT17__GPIO6_IO03       0x1b0b1 /* CPU_DIO_A */
+                       MX6QDL_PAD_SD4_DAT7__GPIO2_IO15         0x1b0b1 /* DIO_2 */
+                       MX6QDL_PAD_SD3_RST__GPIO7_IO08          0x1b0b1 /* CPU_DIO_B */
+                       MX6QDL_PAD_EIM_LBA__GPIO2_IO27          0x1b0b1 /* BUS_ALE# */
+                       MX6QDL_PAD_EIM_OE__GPIO2_IO25           0x1b0b1 /* DIO_15 */
+                       MX6QDL_PAD_EIM_RW__GPIO2_IO26           0x1b0b1 /* BUS_DIR */
+                       MX6QDL_PAD_EIM_CS0__GPIO2_IO23          0x1b0b1 /* BUS_CS# */
+                       MX6QDL_PAD_EIM_A18__GPIO2_IO20          0x1b0b1 /* DIO_14 */
+                       MX6QDL_PAD_EIM_A20__GPIO2_IO18          0x1b0b1 /* DIO_16 */
+                       MX6QDL_PAD_EIM_A21__GPIO2_IO17          0x1b0b1 /* DIO_12 */
+                       MX6QDL_PAD_EIM_A22__GPIO2_IO16          0x1b0b1 /* DIO_18 */
+                       MX6QDL_PAD_EIM_A23__GPIO6_IO06          0x1b0b1 /* DIO_19 */
+                       MX6QDL_PAD_EIM_A24__GPIO5_IO04          0x1b0b1 /* DIO_20 */
+                       MX6QDL_PAD_EIM_D31__GPIO3_IO31          0x1b0b1 /* BUS_BHE# */
+                       MX6QDL_PAD_EIM_BCLK__GPIO6_IO31         0x1b0b1 /* DIO_13 */
+                       MX6QDL_PAD_EIM_WAIT__GPIO5_IO00         0x1b0b1 /* EIM_WAIT# */
+                       MX6QDL_PAD_EIM_EB1__GPIO2_IO29          0x1b0b1 /* DIO_10 */
+                       MX6QDL_PAD_EIM_DA0__GPIO3_IO00          0x1b0b1 /* MUX_AD_00 */
+                       MX6QDL_PAD_EIM_DA1__GPIO3_IO01          0x1b0b1 /* MUX_AD_01 */
+                       MX6QDL_PAD_EIM_DA2__GPIO3_IO02          0x1b0b1 /* MUX_AD_02 */
+                       MX6QDL_PAD_EIM_DA3__GPIO3_IO03          0x1b0b1 /* MUX_AD_03 */
+                       MX6QDL_PAD_EIM_DA4__GPIO3_IO04          0x1b0b1 /* MUX_AD_04 */
+                       MX6QDL_PAD_EIM_DA5__GPIO3_IO05          0x1b0b1 /* MUX_AD_05 */
+                       MX6QDL_PAD_EIM_DA6__GPIO3_IO06          0x1b0b1 /* MUX_AD_06 */
+                       MX6QDL_PAD_EIM_DA7__GPIO3_IO07          0x1b0b1 /* MUX_AD_07 */
+                       MX6QDL_PAD_EIM_DA8__GPIO3_IO08          0x1b0b1 /* MUX_AD_08 */
+                       MX6QDL_PAD_EIM_DA9__GPIO3_IO09          0x1b0b1 /* MUX_AD_09 */
+                       MX6QDL_PAD_EIM_DA10__GPIO3_IO10         0x1b0b1 /* MUX_AD_10 */
+                       MX6QDL_PAD_EIM_DA11__GPIO3_IO11         0x1b0b1 /* MUX_AD_11 */
+                       MX6QDL_PAD_EIM_DA12__GPIO3_IO12         0x1b0b1 /* MUX_AD_12 */
+                       MX6QDL_PAD_EIM_DA13__GPIO3_IO13         0x1b0b1 /* MUX_AD_13 */
+                       MX6QDL_PAD_EIM_DA14__GPIO3_IO14         0x1b0b1 /* MUX_AD_14 */
+                       MX6QDL_PAD_EIM_DA15__GPIO3_IO15         0x1b0b1 /* MUX_AD_15 */
+                       MX6QDL_PAD_DI0_DISP_CLK__GPIO4_IO16     0x1b0b1 /* LCD_CLK */
+                       MX6QDL_PAD_DI0_PIN15__GPIO4_IO17        0x1b0b1 /* DE */
+                       MX6QDL_PAD_DI0_PIN2__GPIO4_IO18         0x1b0b1 /* Hsync */
+                       MX6QDL_PAD_DI0_PIN3__GPIO4_IO19         0x1b0b1 /* Vsync */
+                       MX6QDL_PAD_DISP0_DAT0__GPIO4_IO21       0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT1__GPIO4_IO22       0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT2__GPIO4_IO23       0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24       0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT4__GPIO4_IO25       0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT5__GPIO4_IO26       0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT6__GPIO4_IO27       0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT7__GPIO4_IO28       0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT8__GPIO4_IO29       0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30       0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT10__GPIO4_IO31      0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT11__GPIO5_IO05      0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT12__GPIO5_IO06      0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT13__GPIO5_IO07      0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT14__GPIO5_IO08      0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT15__GPIO5_IO09      0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT16__GPIO5_IO10      0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT17__GPIO5_IO11      0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12      0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13      0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14      0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15      0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT22__GPIO5_IO16      0x1b0b1
+                       MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17      0x1b0b1
+               >;
+       };
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D21__I2C1_SCL            0x4001b8b1
+                       MX6QDL_PAD_EIM_D28__I2C1_SDA            0x4001b8b1
+               >;
+       };
+
+       pinctrl_i2c1_gpio: i2c1gpiogrp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D21__GPIO3_IO21          0x4001b8b1
+                       MX6QDL_PAD_EIM_D28__GPIO3_IO28          0x4001b8b1
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL3__I2C2_SCL           0x4001b8b1
+                       MX6QDL_PAD_KEY_ROW3__I2C2_SDA           0x4001b8b1
+               >;
+       };
+
+       pinctrl_i2c2_gpio: i2c2gpiogrp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL3__GPIO4_IO12         0x4001b8b1
+                       MX6QDL_PAD_KEY_ROW3__GPIO4_IO13         0x4001b8b1
+               >;
+       };
+
+       pinctrl_leds1: leds1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_2__GPIO1_IO02           0x1b0b1 /* RED_LED# */
+                       MX6QDL_PAD_EIM_CS1__GPIO2_IO24          0x1b0b1 /* GREEN_LED# */
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA      0x1b0b1
+                       MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA      0x1b0b1
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_7__UART2_TX_DATA        0x1b0b1
+                       MX6QDL_PAD_GPIO_8__UART2_RX_DATA        0x1b0b1
+                       MX6QDL_PAD_SD4_DAT6__UART2_CTS_B        0x1b0b1
+                       MX6QDL_PAD_SD4_DAT5__UART2_RTS_B        0x1b0b1
+               >;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D24__UART3_TX_DATA       0x1b0b1
+                       MX6QDL_PAD_EIM_D25__UART3_RX_DATA       0x1b0b1
+               >;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL0__UART4_TX_DATA      0x1b0b1
+                       MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA      0x1b0b1
+               >;
+       };
+
+       pinctrl_uart5: uart5grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL1__UART5_TX_DATA      0x1b0b1
+                       MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA      0x1b0b1
+               >;
+       };
+
+       pinctrl_usbotg: usbotggrp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_1__USB_OTG_ID           0x17059
+               >;
+       };
+
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD1_CMD__SD1_CMD             0x17059
+                       MX6QDL_PAD_SD1_CLK__SD1_CLK             0x10059
+                       MX6QDL_PAD_SD1_DAT0__SD1_DATA0          0x17059
+                       MX6QDL_PAD_SD1_DAT1__SD1_DATA1          0x17059
+                       MX6QDL_PAD_SD1_DAT2__SD1_DATA2          0x17059
+                       MX6QDL_PAD_SD1_DAT3__SD1_DATA3          0x17059
+                       MX6QDL_PAD_ENET_RXD1__GPIO1_IO26        0x17059 /* WIFI IRQ */
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD2_CMD__SD2_CMD             0x17059
+                       MX6QDL_PAD_SD2_CLK__SD2_CLK             0x10059
+                       MX6QDL_PAD_SD2_DAT0__SD2_DATA0          0x17059
+                       MX6QDL_PAD_SD2_DAT1__SD2_DATA1          0x17059
+                       MX6QDL_PAD_SD2_DAT2__SD2_DATA2          0x17059
+                       MX6QDL_PAD_SD2_DAT3__SD2_DATA3          0x17059
+                       MX6QDL_PAD_EIM_EB0__GPIO2_IO28          0x1b0b1 /* EN_SD_POWER# */
+               >;
+       };
+
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD3_CMD__SD3_CMD             0x17059
+                       MX6QDL_PAD_SD3_CLK__SD3_CLK             0x10059
+                       MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x17059
+                       MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x17059
+                       MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x17059
+                       MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x17059
+               >;
+       };
+};
+
+&pcie {
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       status = "okay";
+};
+
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4>;
+       status = "okay";
+};
+
+&uart5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart5>;
+       status = "okay";
+};
+
+&usbh1 {
+       status = "okay";
+};
+
+&usbotg {
+       vbus-supply = <&reg_usb_otg_vbus>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg>;
+       disable-over-current;
+       status = "okay";
+};
+
+/* SD */
+&usdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc2>;
+       vmmc-supply = <&reg_3p3v>;
+       bus-width = <4>;
+       fsl,wp-controller;
+       status = "okay";
+};
+
+/* eMMC */
+&usdhc3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       vmmc-supply = <&reg_3p3v>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+};
index 3bee2f9..c96c91d 100644 (file)
        imx6q-udoo {
                pinctrl_enet: enetgrp {
                        fsl,pins = <
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
                                MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
index 3ffe00c..2b9c2be 100644 (file)
                        fsl,pins = <
                                MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
                                MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
+                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
+                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
+                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
+                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
+                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
                                MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
+                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
+                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b030
+                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b030
+                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
+                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
+                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b030
                                MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
                                MX6QDL_PAD_GPIO_6__ENET_IRQ             0x000b1
                        >;
index 5425150..02378db 100644 (file)
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc  0 22 1>, <&iomuxc  1 20 2>,
+                                             <&iomuxc  3 23 1>, <&iomuxc  4 25 1>,
+                                             <&iomuxc  5 24 1>, <&iomuxc  6 19 1>,
+                                             <&iomuxc  7 36 2>, <&iomuxc  9 44 8>,
+                                             <&iomuxc 17 38 6>, <&iomuxc 23 68 4>,
+                                             <&iomuxc 27 64 4>, <&iomuxc 31 52 1>;
                        };
 
                        gpio2: gpio@020a0000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc  0  53 3>, <&iomuxc  3  72 2>,
+                                             <&iomuxc  5  34 2>, <&iomuxc  7  57 4>,
+                                             <&iomuxc 11  56 1>, <&iomuxc 12  61 3>,
+                                             <&iomuxc 15 107 1>, <&iomuxc 16 132 2>,
+                                             <&iomuxc 18 135 1>, <&iomuxc 19 134 1>,
+                                             <&iomuxc 20 108 2>, <&iomuxc 22 120 1>,
+                                             <&iomuxc 23 125 7>, <&iomuxc 30 110 2>;
                        };
 
                        gpio3: gpio@020a4000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc  0 112 8>, <&iomuxc  8 121 4>,
+                                             <&iomuxc 12  97 4>, <&iomuxc 16 166 3>,
+                                             <&iomuxc 19  85 2>, <&iomuxc 21 137 2>,
+                                             <&iomuxc 23 136 1>, <&iomuxc 24  91 1>,
+                                             <&iomuxc 25  99 1>, <&iomuxc 26  92 1>,
+                                             <&iomuxc 27 100 1>, <&iomuxc 28  93 1>,
+                                             <&iomuxc 29 101 1>, <&iomuxc 30  94 1>,
+                                             <&iomuxc 31 102 1>;
                        };
 
                        gpio4: gpio@020a8000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc  0  95 1>, <&iomuxc  1 103 1>,
+                                             <&iomuxc  2  96 1>, <&iomuxc  3 104 1>,
+                                             <&iomuxc  4  97 1>, <&iomuxc  5 105 1>,
+                                             <&iomuxc  6  98 1>, <&iomuxc  7 106 1>,
+                                             <&iomuxc  8  28 1>, <&iomuxc  9  27 1>,
+                                             <&iomuxc 10  26 1>, <&iomuxc 11  29 1>,
+                                             <&iomuxc 12  32 1>, <&iomuxc 13  31 1>,
+                                             <&iomuxc 14  30 1>, <&iomuxc 15  33 1>,
+                                             <&iomuxc 16  84 1>, <&iomuxc 17  79 2>,
+                                             <&iomuxc 19  78 1>, <&iomuxc 20  76 1>,
+                                             <&iomuxc 21  81 2>, <&iomuxc 23  75 1>,
+                                             <&iomuxc 24  83 1>, <&iomuxc 25  74 1>,
+                                             <&iomuxc 26  77 1>, <&iomuxc 27 159 1>,
+                                             <&iomuxc 28 154 1>, <&iomuxc 29 157 1>,
+                                             <&iomuxc 30 152 1>, <&iomuxc 31 156 1>;
                        };
 
                        gpio5: gpio@020ac000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc  0 158 1>, <&iomuxc  1 151 1>,
+                                             <&iomuxc  2 155 1>, <&iomuxc  3 153 1>,
+                                             <&iomuxc  4 150 1>, <&iomuxc  5 149 1>,
+                                             <&iomuxc  6 144 1>, <&iomuxc  7 147 1>,
+                                             <&iomuxc  8 142 1>, <&iomuxc  9 146 1>,
+                                             <&iomuxc 10 148 1>, <&iomuxc 11 141 1>,
+                                             <&iomuxc 12 145 1>, <&iomuxc 13 143 1>,
+                                             <&iomuxc 14 140 1>, <&iomuxc 15 139 1>,
+                                             <&iomuxc 16 164 2>, <&iomuxc 18 160 1>,
+                                             <&iomuxc 19 162 1>, <&iomuxc 20 163 1>,
+                                             <&iomuxc 21 161 1>;
                        };
 
                        kpp: kpp@020b8000 {
index bb9c6b7..42c4c80 100644 (file)
 #define MX6SX_PAD_ENET1_RX_CLK__VDEC_DEBUG_35                     0x008C 0x03D4 0x0000 0x8 0x0
 #define MX6SX_PAD_ENET1_RX_CLK__PCIE_CTRL_DEBUG_29                0x008C 0x03D4 0x0000 0x9 0x0
 #define MX6SX_PAD_ENET1_TX_CLK__ENET1_TX_CLK                      0x0090 0x03D8 0x0000 0x0 0x0
+/*
+ * SION bit is necessary for ENET1_REF_CLK1 (ENET2_REF_CLK2 untested) if it is
+ * used as clock output of IMX6SX_CLK_ENET_REF (ENET1_TX_CLK) to e.g. supply a
+ * PHY in RMII mode. This configuration is valid if:
+ *  - bit 1 in field IMX6SX_GPR1_FEC_CLOCK_PAD_DIR_MASK is set
+ *  - bit 1 in field IMX6SX_GPR1_FEC_CLOCK_MUX_SEL_MASK unset
+ * It seems to be a silicon bug that in this configuration ENET1_TX reference
+ * clock isn't provided automatically.  According to i.MX6SX reference manual
+ * (IOMUXC_GPR_GPR1 field descriptions: ENET1_CLK_SEL, Rev. 0 from 2/2015) it
+ * should be the case.
+ * So this might have unwanted side effects for other hardware units that are
+ * also connected to that pin and using respective function as input (e.g.
+ * UART1's DTR handling on MX6SX_PAD_ENET1_TX_CLK__UART1_DTR_B).
+ */
 #define MX6SX_PAD_ENET1_TX_CLK__ENET1_REF_CLK1                    0x0090 0x03D8 0x0760 0x1 0x1
 #define MX6SX_PAD_ENET1_TX_CLK__AUDMUX_AUD4_RXD                   0x0090 0x03D8 0x0644 0x2 0x1
 #define MX6SX_PAD_ENET1_TX_CLK__UART1_DTR_B                       0x0090 0x03D8 0x0000 0x3 0x0
index 2863c52..1a473e8 100644 (file)
                        arm,data-latency = <4 2 3>;
                };
 
+               gpu: gpu@01800000 {
+                       compatible = "vivante,gc";
+                       reg = <0x01800000 0x4000>;
+                       interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clks IMX6SX_CLK_GPU>,
+                                <&clks IMX6SX_CLK_GPU>,
+                                <&clks IMX6SX_CLK_GPU>;
+                       clock-names = "bus", "core", "shader";
+               };
+
                dma_apbh: dma-apbh@01804000 {
                        compatible = "fsl,imx6sx-dma-apbh", "fsl,imx28-dma-apbh";
                        reg = <0x01804000 0x2000>;
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 5 26>;
                        };
 
                        gpio2: gpio@020a0000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 31 20>;
                        };
 
                        gpio3: gpio@020a4000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 51 29>;
                        };
 
                        gpio4: gpio@020a8000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 80 32>;
                        };
 
                        gpio5: gpio@020ac000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 112 24>;
                        };
 
                        gpio6: gpio@020b0000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 136 12>, <&iomuxc 12 158 11>;
                        };
 
                        gpio7: gpio@020b4000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 148 10>, <&iomuxc 10 169 2>;
                        };
 
                        kpp: kpp@020b8000 {
                        status = "disabled";
                };
        };
+
+       gpu-subsystem {
+               compatible = "fsl,imx-gpu-subsystem";
+               cores = <&gpu>;
+       };
 };
diff --git a/arch/arm/boot/dts/imx6ul-geam-kit.dts b/arch/arm/boot/dts/imx6ul-geam-kit.dts
new file mode 100644 (file)
index 0000000..4c4af76
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2016 Amarula Solutions B.V.
+ * Copyright (C) 2016 Engicam S.r.l.
+ *
+ * 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
+ *     version 2 as published by the Free Software Foundation.
+ *
+ *     This file is distributed in the hope that it will be useful
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "imx6ul-geam.dtsi"
+
+/ {
+       model = "Engicam GEAM6UL";
+       compatible = "engicam,imx6ul-geam", "fsl,imx6ul";
+};
+
+&can1 {
+       status = "okay";
+};
+
+&can2 {
+       status = "okay";
+};
+
+&lcdif {
+       display = <&display0>;
+       status = "okay";
+
+       display0: display {
+               bits-per-pixel = <16>;
+               bus-width = <18>;
+               status = "okay";
+
+               display-timings {
+                       native-mode = <&timing0>;
+                       timing0: timing0 {
+                               clock-frequency = <28000000>;
+                               hactive = <800>;
+                               vactive = <480>;
+                               hfront-porch = <30>;
+                               hback-porch = <30>;
+                               hsync-len = <64>;
+                               vback-porch = <5>;
+                               vfront-porch = <5>;
+                               vsync-len = <20>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               de-active = <1>;
+                               pixelclk-active = <0>;
+                       };
+               };
+       };
+};
+
+&usdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       status = "okay";
+};
+
+&tsc {
+       measure-delay-time = <0x1ffff>;
+       pre-charge-time = <0x1fff>;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6ul-geam.dtsi b/arch/arm/boot/dts/imx6ul-geam.dtsi
new file mode 100644 (file)
index 0000000..64eb9ed
--- /dev/null
@@ -0,0 +1,361 @@
+/*
+ * Copyright (C) 2016 Amarula Solutions B.V.
+ * Copyright (C) 2016 Engicam S.r.l.
+ *
+ * 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
+ *     version 2 as published by the Free Software Foundation.
+ *
+ *     This file is distributed in the hope that it will be useful
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include "imx6ul.dtsi"
+
+/ {
+       memory {
+               reg = <0x80000000 0x08000000>;
+       };
+
+       chosen {
+               stdout-path = &uart1;
+       };
+
+       reg_1p8v: regulator-1p8v {
+               compatible = "regulator-fixed";
+               regulator-name = "1P8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "3P3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&can1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1>;
+       xceiver-supply = <&reg_3p3v>;
+};
+
+&can2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       xceiver-supply = <&reg_3p3v>;
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet1>;
+       phy-mode = "rmii";
+       phy-handle = <&ethphy0>;
+       status = "okay";
+};
+
+&fec2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet2>;
+       phy-mode = "rmii";
+       phy-handle = <&ethphy1>;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+               };
+
+               ethphy1: ethernet-phy@1 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <1>;
+               };
+       };
+};
+
+&gpmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpmi_nand>;
+       nand-on-flash-bbt;
+       status = "okay";
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+};
+
+&i2c2 {
+       clock_frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+};
+
+&lcdif {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lcdif_dat
+                    &pinctrl_lcdif_ctrl>;
+       display = <&display0>;
+};
+
+&tsc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_tsc>;
+       xnur-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       status = "okay";
+};
+
+&usbotg1 {
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&usbotg2 {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+       bus-width = <4>;
+       cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
+       no-1-8-v;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_enet1: enet1grp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN      0x1b0b0
+                       MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
+                       MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN      0x1b0b0
+                       MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1  0x4001b031
+               >;
+       };
+
+       pinctrl_enet2: enet2grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO07__ENET2_MDC         0x1b0b0
+                       MX6UL_PAD_GPIO1_IO06__ENET2_MDIO        0x1b0b0
+                       MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN      0x1b0b0
+                       MX6UL_PAD_ENET2_RX_ER__GPIO2_IO15       0x1b0b0         /* ENET_nRST */
+                       MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
+                       MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
+                       MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN      0x1b0b0
+                       MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0
+                       MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0
+                       MX6UL_PAD_GPIO1_IO05__ENET2_REF_CLK2    0x4001b031
+               >;
+       };
+
+       pinctrl_flexcan1: flexcan1grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX      0x1b020
+                       MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX      0x1b020
+               >;
+       };
+
+       pinctrl_flexcan2: flexcan2grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART2_RTS_B__FLEXCAN2_RX      0x1b020
+                       MX6UL_PAD_UART2_CTS_B__FLEXCAN2_TX      0x1b020
+               >;
+       };
+
+       pinctrl_gpmi_nand: gpmi-nand {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_CLE__RAWNAND_CLE         0xb0b1
+                       MX6UL_PAD_NAND_ALE__RAWNAND_ALE         0xb0b1
+                       MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B       0xb0b1
+                       MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B 0xb000
+                       MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B     0xb0b1
+                       MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B       0xb0b1
+                       MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B       0xb0b1
+                       MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00   0xb0b1
+                       MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01   0xb0b1
+                       MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02   0xb0b1
+                       MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03   0xb0b1
+                       MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04   0xb0b1
+                       MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05   0xb0b1
+                       MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06   0xb0b1
+                       MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07   0xb0b1
+               >;
+       };
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
+                       MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+                       fsl,pins = <
+                       MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x4001b8b0
+                       MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0
+               >;
+       };
+
+       pinctrl_lcdif_ctrl: lcdifctrlgrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_CLK__LCDIF_CLK        0x79
+                       MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE  0x79
+                       MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC    0x79
+                       MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC    0x79
+               >;
+       };
+
+       pinctrl_lcdif_dat: lcdifdatgrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA00__LCDIF_DATA00  0x79
+                       MX6UL_PAD_LCD_DATA01__LCDIF_DATA01  0x79
+                       MX6UL_PAD_LCD_DATA02__LCDIF_DATA02  0x79
+                       MX6UL_PAD_LCD_DATA03__LCDIF_DATA03  0x79
+                       MX6UL_PAD_LCD_DATA04__LCDIF_DATA04  0x79
+                       MX6UL_PAD_LCD_DATA05__LCDIF_DATA05  0x79
+                       MX6UL_PAD_LCD_DATA06__LCDIF_DATA06  0x79
+                       MX6UL_PAD_LCD_DATA07__LCDIF_DATA07  0x79
+                       MX6UL_PAD_LCD_DATA08__LCDIF_DATA08  0x79
+                       MX6UL_PAD_LCD_DATA09__LCDIF_DATA09  0x79
+                       MX6UL_PAD_LCD_DATA10__LCDIF_DATA10  0x79
+                       MX6UL_PAD_LCD_DATA11__LCDIF_DATA11  0x79
+                       MX6UL_PAD_LCD_DATA12__LCDIF_DATA12  0x79
+                       MX6UL_PAD_LCD_DATA13__LCDIF_DATA13  0x79
+                       MX6UL_PAD_LCD_DATA14__LCDIF_DATA14  0x79
+                       MX6UL_PAD_LCD_DATA15__LCDIF_DATA15  0x79
+                       MX6UL_PAD_LCD_DATA16__LCDIF_DATA16  0x79
+                       MX6UL_PAD_LCD_DATA17__LCDIF_DATA17  0x79
+               >;
+       };
+
+       pinctrl_tsc: tscgrp {
+               fsl,pin = <
+                       MX6UL_PAD_GPIO1_IO01__GPIO1_IO01        0xb0
+                       MX6UL_PAD_GPIO1_IO02__GPIO1_IO02        0xb0
+                       MX6UL_PAD_GPIO1_IO03__GPIO1_IO03        0xb0
+                       MX6UL_PAD_GPIO1_IO04__GPIO1_IO04        0xb0
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
+                       MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX   0x1b0b1
+                       MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS  0x1b0b1
+                       MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS  0x1b0b1
+               >;
+       };
+
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x17059
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x10059
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059
+               >;
+       };
+
+       pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x170b9
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x100b9
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9
+               >;
+       };
+
+       pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x170f9
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x100f9
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_VSYNC__USDHC2_CLK     0x17070
+                       MX6UL_PAD_CSI_HSYNC__USDHC2_CMD     0x10070
+                       MX6UL_PAD_CSI_DATA00__USDHC2_DATA0  0x17070
+                       MX6UL_PAD_CSI_DATA01__USDHC2_DATA1  0x17070
+                       MX6UL_PAD_CSI_DATA02__USDHC2_DATA2  0x17070
+                       MX6UL_PAD_CSI_DATA03__USDHC2_DATA3  0x17070
+               >;
+       };
+};
index 86f68fa..827d9e8 100644 (file)
                gpio = <&gpio1 6 0>;
        };
 
+       reg_brcm: regulator-brcm {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio4 8 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_brcm_reg>;
+               regulator-name = "brcm_reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <200000>;
+       };
+
        sound {
                compatible = "fsl,imx-audio-sgtl5000";
                model = "imx6ul-sgtl5000";
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usdhc2>;
        no-1-8-v;
+       non-removable;
        keep-power-in-suspend;
        wakeup-source;
+       vmmc-supply = <&reg_brcm>;
        status = "okay";
 };
 
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+};
+
 &iomuxc {
+       pinctrl_brcm_reg: brcmreggrp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_DATA06__GPIO4_IO08       0x10b0  /* WL_REG_ON */
+                       MX6UL_PAD_NAND_DATA04__GPIO4_IO06       0x10b0  /* WL_HOST_WAKE */
+               >;
+       };
+
        pinctrl_enet2: enet2grp {
                fsl,pins = <
                        MX6UL_PAD_ENET1_TX_DATA1__ENET2_MDIO    0x1b0b0
                        MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x17059
                >;
        };
+
+       pinctrl_wdog: wdoggrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_RESET__WDOG1_WDOG_ANY    0x30b0
+               >;
+       };
 };
index 33b95d7..c5c05fd 100644 (file)
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc  0 23 10>, <&iomuxc 10 17 6>,
+                                             <&iomuxc 16 33 16>;
                        };
 
                        gpio2: gpio@020a0000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 49 16>, <&iomuxc 16 111 6>;
                        };
 
                        gpio3: gpio@020a4000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 65 29>;
                        };
 
                        gpio4: gpio@020a8000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 94 17>, <&iomuxc 17 117 12>;
                        };
 
                        gpio5: gpio@020ac000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 7 10>, <&iomuxc 10 5 2>;
                        };
 
                        fec2: ethernet@020b4000 {
                        };
 
                        gpr: iomuxc-gpr@020e4000 {
-                               compatible = "fsl,imx6ul-iomuxc-gpr", "syscon";
+                               compatible = "fsl,imx6ul-iomuxc-gpr",
+                                            "fsl,imx6q-iomuxc-gpr", "syscon";
                                reg = <0x020e4000 0x4000>;
                        };
 
index 1545661..373ee19 100644 (file)
 };
 
 &usdhc1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_cd_usdhc1>;
-       no-1-8-v;
-       cd-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
        keep-power-in-suspend;
        wakeup-source;
        status = "okay";
index 0a9d3a8..a9cc657 100644 (file)
                pwms = <&pwm1 0 5000000>;
        };
 
-       reg_3p3v: regulator-3p3v {
+       reg_module_3v3: regulator-module-3v3 {
                compatible = "regulator-fixed";
-               regulator-name = "3P3V";
+               regulator-name = "+V3.3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reg_module_3v3_avdd: regulator-module-3v3-avdd {
+               compatible = "regulator-fixed";
+               regulator-name = "+V3.3_AVDD_AUDIO";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
-               regulator-always-on;
        };
 
        reg_vref_1v8: regulator-vref-1v8 {
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <1800000>;
        };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "imx7-sgtl5000";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,bitclock-master = <&dailink_master>;
+               simple-audio-card,frame-master = <&dailink_master>;
+               simple-audio-card,cpu {
+                       sound-dai = <&sai1>;
+               };
+
+               dailink_master: simple-audio-card,codec {
+                       sound-dai = <&codec>;
+                       clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
+               };
+       };
 };
 
 &adc1 {
        pinctrl-0 = <&pinctrl_i2c1 &pinctrl_i2c1_int>;
        status = "okay";
 
+       codec: sgtl5000@0a {
+               compatible = "fsl,sgtl5000";
+               #sound-dai-cells = <0>;
+               reg = <0x0a>;
+               clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_sai1_mclk>;
+               VDDA-supply = <&reg_module_3v3_avdd>;
+               VDDIO-supply = <&reg_module_3v3>;
+               VDDD-supply = <&reg_DCDC3>;
+       };
+
        ad7879@2c {
                compatible = "adi,ad7879-1";
                reg = <0x2c>;
        vin-supply = <&reg_DCDC3>;
 };
 
+&sai1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai1>;
+       status = "okay";
+};
+
 &snvs_pwrkey {
        status = "disabled";
 };
        dr_mode = "host";
 };
 
+&usdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_cd_usdhc1>;
+       no-1-8-v;
+       cd-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
+       disable-wp;
+};
+
 &iomuxc {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_gpio1 &pinctrl_gpio2 &pinctrl_gpio3 &pinctrl_gpio4>;
 
        pinctrl_sai1: sai1-grp {
                fsl,pins = <
-                       MX7D_PAD_SAI1_MCLK__SAI1_MCLK           0x1f
                        MX7D_PAD_ENET1_RX_CLK__SAI1_TX_BCLK     0x1f
                        MX7D_PAD_SAI1_TX_SYNC__SAI1_TX_SYNC     0x1f
                        MX7D_PAD_ENET1_COL__SAI1_TX_DATA0       0x30
                        MX7D_PAD_ENET1_TX_CLK__SAI1_RX_DATA0    0x1f
                >;
        };
+
+       pinctrl_sai1_mclk: sai1grp_mclk {
+               fsl,pins = <
+                       MX7D_PAD_SAI1_MCLK__SAI1_MCLK           0x1f
+               >;
+       };
 };
 
 &iomuxc_lpsr {
index 51c13cb..f6dee41 100644 (file)
 
 / {
        cpus {
+               cpu0: cpu@0 {
+                       operating-points = <
+                               /* KHz  uV */
+                               996000  1075000
+                               792000  975000
+                       >;
+                       clock-frequency = <996000000>;
+               };
+
                cpu1: cpu@1 {
                        compatible = "arm,cortex-a7";
                        device_type = "cpu";
                        reg = <1>;
+                       clock-frequency = <996000000>;
                };
        };
 
-       etm@3007d000 {
-               compatible = "arm,coresight-etm3x", "arm,primecell";
-               reg = <0x3007d000 0x1000>;
+       soc {
+               etm@3007d000 {
+                       compatible = "arm,coresight-etm3x", "arm,primecell";
+                       reg = <0x3007d000 0x1000>;
 
-               /*
-                * System will hang if added nosmp in kernel command line
-                * without arm,primecell-periphid because amba bus try to
-                * read id and core1 power off at this time.
-                */
-               arm,primecell-periphid = <0xbb956>;
-               cpu = <&cpu1>;
-               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
-               clock-names = "apb_pclk";
+                       /*
+                        * System will hang if added nosmp in kernel command line
+                        * without arm,primecell-periphid because amba bus try to
+                        * read id and core1 power off at this time.
+                        */
+                       arm,primecell-periphid = <0xbb956>;
+                       cpu = <&cpu1>;
+                       clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+                       clock-names = "apb_pclk";
 
-               port {
-                       etm1_out_port: endpoint {
-                               remote-endpoint = <&ca_funnel_in_port1>;
+                       port {
+                               etm1_out_port: endpoint {
+                                       remote-endpoint = <&ca_funnel_in_port1>;
+                               };
                        };
                };
        };
diff --git a/arch/arm/boot/dts/imx7s-warp.dts b/arch/arm/boot/dts/imx7s-warp.dts
new file mode 100644 (file)
index 0000000..0345267
--- /dev/null
@@ -0,0 +1,446 @@
+/*
+ * Copyright (C) 2016 NXP Semiconductors.
+ * Author: Fabio Estevam <fabio.estevam@nxp.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 <dt-bindings/input/input.h>
+#include "imx7s.dtsi"
+
+/ {
+       model = "Warp i.MX7 Board";
+       compatible = "warp,imx7s-warp", "fsl,imx7s";
+
+       memory {
+               reg = <0x80000000 0x20000000>;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&pinctrl_gpio>;
+               autorepeat;
+
+               back {
+                       label = "Back";
+                       gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
+                       linux,code = <KEY_BACK>;
+                       wakeup-source;
+               };
+       };
+
+       reg_brcm: regulator-brcm {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio5 10 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_brcm_reg>;
+               regulator-name = "brcm_reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <200000>;
+       };
+
+       reg_bt: regulator-bt {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_bt_reg>;
+               enable-active-high;
+               gpio = <&gpio5 17 GPIO_ACTIVE_HIGH>;
+               regulator-name = "bt_reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "imx7-sgtl5000";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,bitclock-master = <&dailink_master>;
+               simple-audio-card,frame-master = <&dailink_master>;
+               simple-audio-card,cpu {
+                       sound-dai = <&sai1>;
+               };
+
+               dailink_master: simple-audio-card,codec {
+                       sound-dai = <&codec>;
+                       clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
+               };
+       };
+};
+
+&clks {
+       assigned-clocks = <&clks IMX7D_PLL_AUDIO_POST_DIV>;
+       assigned-clock-rates = <884736000>;
+};
+
+&cpu0 {
+       arm-supply = <&sw1a_reg>;
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       pmic: pfuze3000@08 {
+               compatible = "fsl,pfuze3000";
+               reg = <0x08>;
+
+               regulators {
+                       sw1a_reg: sw1a {
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1475000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <6250>;
+                       };
+
+                       /* use sw1c_reg to align with pfuze100/pfuze200 */
+                       sw1c_reg: sw1b {
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1475000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <6250>;
+                       };
+
+                       sw2_reg: sw2 {
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <1850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       sw3a_reg: sw3 {
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1650000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       swbst_reg: swbst {
+                               regulator-min-microvolt = <5000000>;
+                               regulator-max-microvolt = <5150000>;
+                       };
+
+                       snvs_reg: vsnvs {
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vref_reg: vrefddr {
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vgen1_reg: vldo1 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen2_reg: vldo2 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                       };
+
+                       vgen3_reg: vccsd {
+                               regulator-min-microvolt = <2850000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen4_reg: v33 {
+                               regulator-min-microvolt = <2850000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen5_reg: vldo3 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen6_reg: vldo4 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+};
+
+&i2c4 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c4>;
+       status = "okay";
+
+       codec: sgtl5000@0a {
+               #sound-dai-cells = <0>;
+               reg = <0x0a>;
+               compatible = "fsl,sgtl5000";
+               clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_sai1_mclk>;
+               VDDA-supply = <&vgen4_reg>;
+               VDDIO-supply = <&vgen4_reg>;
+               VDDD-supply = <&vgen2_reg>;
+       };
+
+       mpl3115@60 {
+               compatible = "fsl,mpl3115";
+               reg = <0x60>;
+       };
+};
+
+&sai1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai1>;
+       assigned-clocks = <&clks IMX7D_SAI1_ROOT_SRC>,
+                         <&clks IMX7D_SAI1_ROOT_CLK>;
+       assigned-clock-parents = <&clks IMX7D_PLL_AUDIO_POST_DIV>;
+       assigned-clock-rates = <0>, <36864000>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       assigned-clocks = <&clks IMX7D_UART1_ROOT_SRC>;
+       assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
+       status = "okay";
+};
+
+&uart3  {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       assigned-clocks = <&clks IMX7D_UART3_ROOT_SRC>;
+       assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&usbotg1 {
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&usdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       bus-width = <4>;
+       keep-power-in-suspend;
+       no-1-8-v;
+       non-removable;
+       vmmc-supply = <&reg_brcm>;
+       status = "okay";
+};
+
+&usdhc3 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       assigned-clocks = <&clks IMX7D_USDHC3_ROOT_CLK>;
+       assigned-clock-rates = <400000000>;
+       bus-width = <8>;
+       fsl,tuning-step = <2>;
+       non-removable;
+       status = "okay";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_brcm_reg: brcmreggrp {
+               fsl,pins = <
+                       MX7D_PAD_SD2_WP__GPIO5_IO10     0x14 /* WL_REG_ON */
+               >;
+       };
+
+       pinctrl_bt_reg: btreggrp {
+               fsl,pins = <
+                       MX7D_PAD_SD2_DATA3__GPIO5_IO17  0x14 /* BT_REG_ON */
+               >;
+       };
+
+       pinctrl_gpio: gpiogrp {
+               fsl,pins = <
+                       MX7D_PAD_ENET1_RGMII_RD1__GPIO7_IO1     0x14
+               >;
+       };
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX7D_PAD_I2C1_SDA__I2C1_SDA             0x4000007f
+                       MX7D_PAD_I2C1_SCL__I2C1_SCL             0x4000007f
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX7D_PAD_I2C2_SDA__I2C2_SDA     0x4000007f
+                       MX7D_PAD_I2C2_SCL__I2C2_SCL     0x4000007f
+               >;
+       };
+
+       pinctrl_i2c4: i2c4grp {
+               fsl,pins = <
+                       MX7D_PAD_I2C4_SCL__I2C4_SCL     0x4000007f
+                       MX7D_PAD_I2C4_SDA__I2C4_SDA     0x4000007f
+               >;
+       };
+
+       pinctrl_sai1: sai1grp {
+               fsl,pins = <
+                       MX7D_PAD_SAI1_RX_DATA__SAI1_RX_DATA0    0x1f
+                       MX7D_PAD_SAI1_TX_BCLK__SAI1_TX_BCLK     0x1f
+                       MX7D_PAD_SAI1_TX_SYNC__SAI1_TX_SYNC     0x1f
+                       MX7D_PAD_SAI1_TX_DATA__SAI1_TX_DATA0    0x30
+               >;
+       };
+
+       pinctrl_sai1_mclk: sai1mclkgrp {
+               fsl,pins = <
+                       MX7D_PAD_SAI1_MCLK__SAI1_MCLK           0x1f
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX    0x79
+                       MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX    0x79
+               >;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <
+                       MX7D_PAD_UART3_TX_DATA__UART3_DCE_TX    0x79
+                       MX7D_PAD_UART3_RX_DATA__UART3_DCE_RX    0x79
+                       MX7D_PAD_UART3_CTS_B__UART3_DCE_CTS     0x79
+                       MX7D_PAD_UART3_RTS_B__UART3_DCE_RTS     0x79
+               >;
+       };
+
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX7D_PAD_SD1_CMD__SD1_CMD       0x59
+                       MX7D_PAD_SD1_CLK__SD1_CLK       0x19
+                       MX7D_PAD_SD1_DATA0__SD1_DATA0   0x59
+                       MX7D_PAD_SD1_DATA1__SD1_DATA1   0x59
+                       MX7D_PAD_SD1_DATA2__SD1_DATA2   0x59
+                       MX7D_PAD_SD1_DATA3__SD1_DATA3   0x59
+                       MX7D_PAD_SD2_RESET_B__GPIO5_IO11 0x14 /* WL_HOST_WAKE */
+               >;
+       };
+
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       MX7D_PAD_SD3_CMD__SD3_CMD               0x59
+                       MX7D_PAD_SD3_CLK__SD3_CLK               0x19
+                       MX7D_PAD_SD3_DATA0__SD3_DATA0           0x59
+                       MX7D_PAD_SD3_DATA1__SD3_DATA1           0x59
+                       MX7D_PAD_SD3_DATA2__SD3_DATA2           0x59
+                       MX7D_PAD_SD3_DATA3__SD3_DATA3           0x59
+                       MX7D_PAD_SD3_DATA4__SD3_DATA4           0x59
+                       MX7D_PAD_SD3_DATA5__SD3_DATA5           0x59
+                       MX7D_PAD_SD3_DATA6__SD3_DATA6           0x59
+                       MX7D_PAD_SD3_DATA7__SD3_DATA7           0x59
+                       MX7D_PAD_SD3_RESET_B__SD3_RESET_B       0x19
+               >;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3grp_100mhz {
+               fsl,pins = <
+                       MX7D_PAD_SD3_CMD__SD3_CMD               0x5a
+                       MX7D_PAD_SD3_CLK__SD3_CLK               0x1a
+                       MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5a
+                       MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5a
+                       MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5a
+                       MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5a
+                       MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5a
+                       MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5a
+                       MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5a
+                       MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5a
+                       MX7D_PAD_SD3_RESET_B__SD3_RESET_B       0x1a
+               >;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3grp_200mhz {
+               fsl,pins = <
+                       MX7D_PAD_SD3_CMD__SD3_CMD               0x5b
+                       MX7D_PAD_SD3_CLK__SD3_CLK               0x1b
+                       MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5b
+                       MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5b
+                       MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5b
+                       MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5b
+                       MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5b
+                       MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5b
+                       MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5b
+                       MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5b
+                       MX7D_PAD_SD3_RESET_B__SD3_RESET_B       0x1b
+               >;
+       };
+
+       pinctrl_wdog: wdoggrp {
+               fsl,pins = <
+                       MX7D_PAD_GPIO1_IO00__WDOD1_WDOG_B       0x74
+               >;
+       };
+};
index 1e90bdb..0d7d5ac 100644 (file)
                        compatible = "arm,cortex-a7";
                        device_type = "cpu";
                        reg = <0>;
-                       operating-points = <
-                               /* KHz  uV */
-                               996000  1075000
-                               792000  975000
-                       >;
+                       clock-frequency = <792000000>;
                        clock-latency = <61036>; /* two CLK32 periods */
                        clocks = <&clks IMX7D_CLK_ARM>;
                };
        };
 
-       intc: interrupt-controller@31001000 {
-               compatible = "arm,cortex-a7-gic";
-               #interrupt-cells = <3>;
-               interrupt-controller;
-               reg = <0x31001000 0x1000>,
-                     <0x31002000 0x1000>,
-                     <0x31004000 0x2000>,
-                     <0x31006000 0x2000>;
-       };
-
        ckil: clock-cki {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-output-names = "osc";
        };
 
-       timer {
-               compatible = "arm,armv7-timer";
-               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
+       soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
                interrupt-parent = <&intc>;
-       };
+               ranges;
+
+               funnel@30041000 {
+                       compatible = "arm,coresight-funnel", "arm,primecell";
+                       reg = <0x30041000 0x1000>;
+                       clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+                       clock-names = "apb_pclk";
 
-       etr@30086000 {
-               compatible = "arm,coresight-tmc", "arm,primecell";
-               reg = <0x30086000 0x1000>;
-               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
-               clock-names = "apb_pclk";
+                       ca_funnel_ports: ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
 
-               port {
-                       etr_in_port: endpoint {
-                               slave-mode;
-                               remote-endpoint = <&replicator_out_port1>;
+                               /* funnel input ports */
+                               port@0 {
+                                       reg = <0>;
+                                       ca_funnel_in_port0: endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <&etm0_out_port>;
+                                       };
+                               };
+
+                               /* funnel output port */
+                               port@2 {
+                                       reg = <0>;
+                                       ca_funnel_out_port0: endpoint {
+                                               remote-endpoint = <&hugo_funnel_in_port0>;
+                                       };
+                               };
+
+                               /* the other input ports are not connect to anything */
                        };
                };
-       };
 
-       tpiu@30087000 {
-               compatible = "arm,coresight-tpiu", "arm,primecell";
-               reg = <0x30087000 0x1000>;
-               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
-               clock-names = "apb_pclk";
+               etm@3007c000 {
+                       compatible = "arm,coresight-etm3x", "arm,primecell";
+                       reg = <0x3007c000 0x1000>;
+                       cpu = <&cpu0>;
+                       clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+                       clock-names = "apb_pclk";
 
-               port {
-                       tpiu_in_port: endpoint {
-                               slave-mode;
-                               remote-endpoint = <&replicator_out_port1>;
+                       port {
+                               etm0_out_port: endpoint {
+                                       remote-endpoint = <&ca_funnel_in_port0>;
+                               };
                        };
                };
-       };
 
-       replicator {
-               /*
-                * non-configurable replicators don't show up on the
-                * AMBA bus.  As such no need to add "arm,primecell"
-                */
-               compatible = "arm,coresight-replicator";
+               funnel@30083000 {
+                       compatible = "arm,coresight-funnel", "arm,primecell";
+                       reg = <0x30083000 0x1000>;
+                       clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+                       clock-names = "apb_pclk";
 
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
 
-                       /* replicator output ports */
-                       port@0 {
-                               reg = <0>;
-                               replicator_out_port0: endpoint {
-                                       remote-endpoint = <&tpiu_in_port>;
+                               /* funnel input ports */
+                               port@0 {
+                                       reg = <0>;
+                                       hugo_funnel_in_port0: endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <&ca_funnel_out_port0>;
+                                       };
                                };
-                       };
 
-                       port@1 {
-                               reg = <1>;
-                               replicator_out_port1: endpoint {
-                                       remote-endpoint = <&etr_in_port>;
+                               port@1 {
+                                       reg = <1>;
+                                       hugo_funnel_in_port1: endpoint {
+                                               slave-mode; /* M4 input */
+                                       };
                                };
-                       };
 
-                       /* replicator input port */
-                       port@2 {
-                               reg = <0>;
-                               replicator_in_port0: endpoint {
-                                       slave-mode;
-                                       remote-endpoint = <&etf_out_port>;
+                               port@2 {
+                                       reg = <0>;
+                                       hugo_funnel_out_port0: endpoint {
+                                               remote-endpoint = <&etf_in_port>;
+                                       };
                                };
+
+                               /* the other input ports are not connect to anything */
                        };
                };
-       };
 
-       etf@30084000 {
-               compatible = "arm,coresight-tmc", "arm,primecell";
-               reg = <0x30084000 0x1000>;
-               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
-               clock-names = "apb_pclk";
+               etf@30084000 {
+                       compatible = "arm,coresight-tmc", "arm,primecell";
+                       reg = <0x30084000 0x1000>;
+                       clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+                       clock-names = "apb_pclk";
 
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
 
-                       port@0 {
-                               reg = <0>;
-                               etf_in_port: endpoint {
-                                       slave-mode;
-                                       remote-endpoint = <&hugo_funnel_out_port0>;
+                               port@0 {
+                                       reg = <0>;
+                                       etf_in_port: endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <&hugo_funnel_out_port0>;
+                                       };
                                };
-                       };
 
-                       port@1 {
-                               reg = <0>;
-                               etf_out_port: endpoint {
-                                       remote-endpoint = <&replicator_in_port0>;
+                               port@1 {
+                                       reg = <0>;
+                                       etf_out_port: endpoint {
+                                               remote-endpoint = <&replicator_in_port0>;
+                                       };
                                };
                        };
                };
-       };
-
-       funnel@30083000 {
-               compatible = "arm,coresight-funnel", "arm,primecell";
-               reg = <0x30083000 0x1000>;
-               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
-               clock-names = "apb_pclk";
 
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+               etr@30086000 {
+                       compatible = "arm,coresight-tmc", "arm,primecell";
+                       reg = <0x30086000 0x1000>;
+                       clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+                       clock-names = "apb_pclk";
 
-                       /* funnel input ports */
-                       port@0 {
-                               reg = <0>;
-                               hugo_funnel_in_port0: endpoint {
+                       port {
+                               etr_in_port: endpoint {
                                        slave-mode;
-                                       remote-endpoint = <&ca_funnel_out_port0>;
+                                       remote-endpoint = <&replicator_out_port1>;
                                };
                        };
+               };
 
-                       port@1 {
-                               reg = <1>;
-                               hugo_funnel_in_port1: endpoint {
-                                       slave-mode; /* M4 input */
-                               };
-                       };
+               tpiu@30087000 {
+                       compatible = "arm,coresight-tpiu", "arm,primecell";
+                       reg = <0x30087000 0x1000>;
+                       clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+                       clock-names = "apb_pclk";
 
-                       port@2 {
-                               reg = <0>;
-                               hugo_funnel_out_port0: endpoint {
-                                       remote-endpoint = <&etf_in_port>;
+                       port {
+                               tpiu_in_port: endpoint {
+                                       slave-mode;
+                                       remote-endpoint = <&replicator_out_port1>;
                                };
                        };
-
-                       /* the other input ports are not connect to anything */
                };
-       };
 
-       funnel@30041000 {
-               compatible = "arm,coresight-funnel", "arm,primecell";
-               reg = <0x30041000 0x1000>;
-               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
-               clock-names = "apb_pclk";
+               replicator {
+                       /*
+                        * non-configurable replicators don't show up on the
+                        * AMBA bus.  As such no need to add "arm,primecell"
+                        */
+                       compatible = "arm,coresight-replicator";
 
-               ca_funnel_ports: ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
 
-                       /* funnel input ports */
-                       port@0 {
-                               reg = <0>;
-                               ca_funnel_in_port0: endpoint {
-                                       slave-mode;
-                                       remote-endpoint = <&etm0_out_port>;
+                               /* replicator output ports */
+                               port@0 {
+                                       reg = <0>;
+                                       replicator_out_port0: endpoint {
+                                               remote-endpoint = <&tpiu_in_port>;
+                                       };
                                };
-                       };
 
-                       /* funnel output port */
-                       port@2 {
-                               reg = <0>;
-                               ca_funnel_out_port0: endpoint {
-                                       remote-endpoint = <&hugo_funnel_in_port0>;
+                               port@1 {
+                                       reg = <1>;
+                                       replicator_out_port1: endpoint {
+                                               remote-endpoint = <&etr_in_port>;
+                                       };
                                };
-                       };
 
-                       /* the other input ports are not connect to anything */
+                               /* replicator input port */
+                               port@2 {
+                                       reg = <0>;
+                                       replicator_in_port0: endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <&etf_out_port>;
+                                       };
+                               };
+                       };
                };
-       };
 
-       etm@3007c000 {
-               compatible = "arm,coresight-etm3x", "arm,primecell";
-               reg = <0x3007c000 0x1000>;
-               cpu = <&cpu0>;
-               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
-               clock-names = "apb_pclk";
-
-               port {
-                       etm0_out_port: endpoint {
-                               remote-endpoint = <&ca_funnel_in_port0>;
-                       };
+               intc: interrupt-controller@31001000 {
+                       compatible = "arm,cortex-a7-gic";
+                       interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
+                       #interrupt-cells = <3>;
+                       interrupt-controller;
+                       reg = <0x31001000 0x1000>,
+                             <0x31002000 0x2000>,
+                             <0x31004000 0x2000>,
+                             <0x31006000 0x2000>;
                };
-       };
 
-       soc {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "simple-bus";
-               interrupt-parent = <&intc>;
-               ranges;
+               timer {
+                       compatible = "arm,armv7-timer";
+                       interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                                    <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                                    <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                                    <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
+               };
 
                aips1: aips-bus@30000000 {
                        compatible = "fsl,aips-bus", "simple-bus";
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc_lpsr 0 0 8>, <&iomuxc 8 5 8>;
                        };
 
                        gpio2: gpio@30210000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 13 32>;
                        };
 
                        gpio3: gpio@30220000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 45 29>;
                        };
 
                        gpio4: gpio@30230000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 74 24>;
                        };
 
                        gpio5: gpio@30240000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 98 18>;
                        };
 
                        gpio6: gpio@30250000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 116 23>;
                        };
 
                        gpio7: gpio@30260000 {
                                #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
+                               gpio-ranges = <&iomuxc 0 139 16>;
                        };
 
                        wdog1: wdog@30280000 {
                                status = "disabled";
                        };
 
+                       sai1: sai@308a0000 {
+                               #sound-dai-cells = <0>;
+                               compatible = "fsl,imx7d-sai", "fsl,imx6sx-sai";
+                               reg = <0x308a0000 0x10000>;
+                               interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_SAI1_IPG_CLK>,
+                                        <&clks IMX7D_SAI1_ROOT_CLK>,
+                                        <&clks IMX7D_CLK_DUMMY>,
+                                        <&clks IMX7D_CLK_DUMMY>;
+                               clock-names = "bus", "mclk1", "mclk2", "mclk3";
+                               dma-names = "rx", "tx";
+                               dmas = <&sdma 8 24 0>, <&sdma 9 24 0>;
+                               status = "disabled";
+                       };
+
+                       sai2: sai@308b0000 {
+                               #sound-dai-cells = <0>;
+                               compatible = "fsl,imx7d-sai", "fsl,imx6sx-sai";
+                               reg = <0x308b0000 0x10000>;
+                               interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_SAI2_IPG_CLK>,
+                                        <&clks IMX7D_SAI2_ROOT_CLK>,
+                                        <&clks IMX7D_CLK_DUMMY>,
+                                        <&clks IMX7D_CLK_DUMMY>;
+                               clock-names = "bus", "mclk1", "mclk2", "mclk3";
+                               dma-names = "rx", "tx";
+                               dmas = <&sdma 10 24 0>, <&sdma 11 24 0>;
+                               status = "disabled";
+                       };
+
+                       sai3: sai@308c0000 {
+                               #sound-dai-cells = <0>;
+                               compatible = "fsl,imx7d-sai", "fsl,imx6sx-sai";
+                               reg = <0x308c0000 0x10000>;
+                               interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_SAI3_IPG_CLK>,
+                                        <&clks IMX7D_SAI3_ROOT_CLK>,
+                                        <&clks IMX7D_CLK_DUMMY>,
+                                        <&clks IMX7D_CLK_DUMMY>;
+                               clock-names = "bus", "mclk1", "mclk2", "mclk3";
+                               dma-names = "rx", "tx";
+                               dmas = <&sdma 12 24 0>, <&sdma 13 24 0>;
+                               status = "disabled";
+                       };
+
                        flexcan1: can@30a00000 {
                                compatible = "fsl,imx7d-flexcan", "fsl,imx6q-flexcan";
                                reg = <0x30a00000 0x10000>;
                                status = "disabled";
                        };
 
+                       sdma: sdma@30bd0000 {
+                               compatible = "fsl,imx7d-sdma", "fsl,imx35-sdma";
+                               reg = <0x30bd0000 0x10000>;
+                               interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_SDMA_CORE_CLK>,
+                                        <&clks IMX7D_AHB_CHANNEL_ROOT_CLK>;
+                               clock-names = "ipg", "ahb";
+                               #dma-cells = <3>;
+                               fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
+                       };
+
                        fec1: ethernet@30be0000 {
                                compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec";
                                reg = <0x30be0000 0x10000>;
index 4c32ebc..ae1ebe7 100644 (file)
        status = "okay";
 };
 
-&usb {
+&keystone_usb0 {
        status = "okay";
 };
 
+&usb0 {
+       dr_mode = "host";
+};
+
 &usb1_phy {
        status = "okay";
 };
 
-&usb1 {
+&keystone_usb1 {
        status = "okay";
 };
 
+&usb1 {
+       dr_mode = "peripheral";
+};
+
 &i2c0 {
        dtt@50 {
                compatible = "at,24c1024";
index 9a51b8c..497c417 100644 (file)
@@ -61,7 +61,7 @@
                        status = "disabled";
                };
 
-               usb1: usb@25000000 {
+               keystone_usb1: usb@25000000 {
                        compatible = "ti,keystone-dwc3";
                        #address-cells = <1>;
                        #size-cells = <1>;
@@ -74,7 +74,7 @@
                        dma-ranges;
                        status = "disabled";
 
-                       dwc3@25010000 {
+                       usb1: dwc3@25010000 {
                                compatible = "synopsys,dwc3";
                                reg = <0x25010000 0x70000>;
                                interrupts = <GIC_SPI 414 IRQ_TYPE_EDGE_RISING>;
index 3372615..2919c51 100644 (file)
                        pinctrl-single,function-mask = <0x001b0007>;
                };
 
+               devctrl: device-state-control@02620000 {
+                       compatible = "ti,keystone-devctrl", "syscon";
+                       reg = <0x02620000 0x1000>;
+               };
+
                uart0: serial@02530c00 {
                        compatible = "ns16550a";
                        current-speed = <115200>;
                        clock-frequency = <200000000>;
                        status = "disabled";
                };
+
+               kirq0: keystone_irq@026202a0 {
+                       compatible = "ti,keystone-irq";
+                       interrupts = <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+                       ti,syscon-dev = <&devctrl 0x2a0>;
+               };
+
+               dspgpio0: keystone_dsp_gpio@02620240 {
+                       compatible = "ti,keystone-dsp-gpio";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio,syscon-dev = <&devctrl 0x240>;
+               };
+
+               msgmgr: msgmgr@02a00000 {
+                       compatible = "ti,k2g-message-manager";
+                       #mbox-cells = <2>;
+                       reg-names = "queue_proxy_region",
+                                   "queue_state_debug_region";
+                       reg = <0x02a00000 0x400000>, <0x028c3400 0x400>;
+                       interrupt-names = "rx_005",
+                                         "rx_057";
+                       interrupts = <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
+               };
        };
 };
index b38b344..2156ff9 100644 (file)
        status = "okay";
 };
 
-&usb {
+&keystone_usb0 {
        status = "okay";
 };
 
+&usb0 {
+       dr_mode = "host";
+};
+
 &aemif {
        cs0 {
                #address-cells = <2>;
index 7f9c2e9..056b42f 100644 (file)
        status = "okay";
 };
 
-&usb {
+&keystone_usb0 {
        status = "okay";
 };
 
+&usb0 {
+       dr_mode = "host";
+};
+
 &i2c0 {
        dtt@50 {
                compatible = "at,24c1024";
index e23f46d..02708ba 100644 (file)
                        status = "disabled";
                };
 
-               usb: usb@2680000 {
+               keystone_usb0: usb@2680000 {
                        compatible = "ti,keystone-dwc3";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        dma-ranges;
                        status = "disabled";
 
-                       dwc3@2690000 {
+                       usb0: dwc3@2690000 {
                                compatible = "synopsys,dwc3";
                                reg = <0x2690000 0x70000>;
                                interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>;
index 0db0e3e..94e49f3 100644 (file)
@@ -41,7 +41,7 @@
                };
 
                pinctrl: pin-controller@10000 {
-                       pinctrl-0 = <&pmx_dip_switches &pmx_gpio_header>;
+                       pinctrl-0 = <&pmx_dip_switches>;
                        pinctrl-names = "default";
 
                        pmx_uart0: pmx-uart0 {
                phy-handle = <&ethphy0>;
        };
 };
+
+&gpio0 {
+       status = "okay";
+
+       pinctrl-0 = <&pmx_gpio_header>;
+       pinctrl-names = "default";
+};
index 1c2c746..731ec37 100644 (file)
                };
        };
 
+       memory@0 {
+               device_type = "memory";
+               reg = <0 0>;
+       };
+
        leds {
                compatible = "gpio-leds";
                user0 {
index fdb736c..7cae9c5 100644 (file)
@@ -20,6 +20,9 @@
 #define LPC_GPIO(port, pin)    (port * 32 + pin)
 
 / {
+       #address-cells = <1>;
+       #size-cells = <1>;
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
                        clock-names = "stmmaceth";
                        resets = <&rgu 22>;
                        reset-names = "stmmaceth";
+                       rx-fifo-depth = <256>;
+                       tx-fifo-depth = <256>;
+                       snps,pbl = <4>; /* 32 (8x mode) */
+                       snps,force_thresh_dma_mode;
                        status = "disabled";
                };
 
index 5cfadb0..7c16d63 100644 (file)
@@ -30,7 +30,7 @@
                stdout-path = &uart2;
        };
 
-       memory {
+       memory@28000000 {
                device_type = "memory";
                reg = <0x28000000 0x0800000>; /* 8 MB */
        };
index 6c9048d..874c75d 100644 (file)
@@ -33,7 +33,7 @@
                stdout-path = &uart0;
        };
 
-       memory {
+       memory@28000000 {
                device_type = "memory";
                reg = <0x28000000 0x800000>; /* 8 MB */
        };
 
        /* NXP SE97BTP with temperature sensor + eeprom */
        sensor@18 {
-               compatible = "nxp,jc42";
+               compatible = "nxp,se97", "jedec,jc-42.4-temp";
                reg = <0x18>;
        };
 
index 1919be4..9b5fad6 100644 (file)
@@ -33,7 +33,7 @@
                stdout-path = &uart0;
        };
 
-       memory {
+       memory@28000000 {
                device_type = "memory";
                reg = <0x28000000 0x2000000>; /* 32 MB */
        };
index 75ecaed..a8b148a 100644 (file)
 
        panel: panel {
                compatible = "nec,nl4827hc19-05b";
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&dcu_out>;
+                       };
+               };
        };
 };
 
 &dcu {
-       fsl,panel = <&panel>;
        status = "okay";
+
+       port {
+               dcu_out: endpoint {
+                       remote-endpoint = <&panel_in>;
+               };
+       };
 };
 
 &dspi1 {
index fc4080d..41fd536 100644 (file)
                        reg = <0xc1108000 0x4>, <0xc1104000 0x460>;
                };
 
+               pwm_ab: pwm@8550 {
+                       compatible = "amlogic,meson8b-pwm";
+                       reg = <0xc1108550 0x10>;
+                       #pwm-cells = <3>;
+                       status = "disabled";
+               };
+
+               pwm_cd: pwm@8650 {
+                       compatible = "amlogic,meson8b-pwm";
+                       reg = <0xc1108650 0x10>;
+                       #pwm-cells = <3>;
+                       status = "disabled";
+               };
+
+               pwm_ef: pwm@86c0 {
+                       compatible = "amlogic,meson8b-pwm";
+                       reg = <0xc11086c0 0x10>;
+                       #pwm-cells = <3>;
+                       status = "disabled";
+               };
+
                pinctrl_cbus: pinctrl@c1109880 {
                        compatible = "amlogic,meson8b-cbus-pinctrl";
                        reg = <0xc1109880 0x10>;
index e3fed8d..efb8a03 100644 (file)
@@ -42,6 +42,7 @@
  *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
+#include "skeleton.dtsi"
 #include "armv7-m.dtsi"
 
 / {
index 578fa2a..4f793a0 100644 (file)
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pinctrl/omap.h>
 
-#include "skeleton.dtsi"
-
 / {
        compatible = "ti,omap2430", "ti,omap2420", "ti,omap2";
        interrupt-parent = <&intc>;
+       #address-cells = <1>;
+       #size-cells = <1>;
 
        aliases {
                serial0 = &uart1;
index 34cdecb..9265c0b 100644 (file)
@@ -13,7 +13,7 @@
        model = "TI OMAP2420 H4 board";
        compatible = "ti,omap2420-h4", "ti,omap2420", "ti,omap2";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x4000000>; /* 64 MB */
        };
index db95aad..7e5ffc5 100644 (file)
@@ -1,7 +1,7 @@
 #include "omap2420.dtsi"
 
 / {
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x8000000>; /* 128 MB */
        };
index 6b36ede..4f7d9d7 100644 (file)
@@ -13,7 +13,7 @@
        model = "TI OMAP2430 SDP";
        compatible = "ti,omap2430-sdp", "ti,omap2430", "ti,omap2";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x8000000>; /* 128 MB */
        };
index 8ffde06..85e297e 100644 (file)
@@ -19,7 +19,7 @@
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x20000000>; /* 512 MB */
        };
index a19d907..4be85ce 100644 (file)
@@ -19,7 +19,7 @@
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
index 6a0df13..57b9a02 100644 (file)
@@ -4,7 +4,7 @@
 
 / {
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
index 5860101..f330c69 100644 (file)
@@ -10,7 +10,7 @@
 
 #include "omap34xx.dtsi"
 / {
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>;  /* 256 MB */
        };
index ed44982..4f9a765 100644 (file)
@@ -15,7 +15,7 @@
        model = "TI OMAP37XX EVM (TMDSEVM3730)";
        compatible = "ti,omap3-evm-37xx", "ti,omap3630", "ti,omap3";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
index e10dcd0..99b2bfc 100644 (file)
@@ -14,7 +14,7 @@
        model = "TI OMAP35XX EVM (TMDSEVM3530)";
        compatible = "ti,omap3-evm", "ti,omap3";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
index c09a057..b3a8b1f 100644 (file)
@@ -21,7 +21,7 @@
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x20000000>; /* 512 MB */
        };
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm11 0 2000000 0>;
+               pwms = <&pwm11 0 12000000 0>;
                pwm-names = "backlight";
                brightness-levels = <0 11 20 30 40 50 60 70 80 90 100>;
                default-brightness-level = <9>; /* => 90 */
index f4f2ce4..54c4c07 100644 (file)
@@ -13,7 +13,7 @@
 #include "omap36xx.dtsi"
 
 / {
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x20000000>; /* 512 MB */
        };
index 2f353da..e28fe13 100644 (file)
@@ -15,7 +15,7 @@
        model = "TI OMAP3430 LDP (Zoom1 Labrador)";
        compatible = "ti,omap3-ldp", "ti,omap3";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x8000000>; /* 128 MB */
        };
index eff816e..fa611a5 100644 (file)
@@ -17,7 +17,7 @@
                        bootargs = "console=ttyO0,115200n8 vt.global_cursor_default=0 consoleblank=0";
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x8000000>;   /* 128 MB */
        };
index 2a6078a..87ca50b 100644 (file)
@@ -54,7 +54,7 @@
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
index 927b17f..5d8c4b4 100644 (file)
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x40000000>; /* 1 GB */
        };
 
-       vemmc: fixedregulator@0 {
+       vemmc: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "VEMMC";
                regulator-min-microvolt = <2900000>;
@@ -39,7 +39,7 @@
                enable-active-high;
        };
 
-       vwlan_fixed: fixedregulator@2 {
+       vwlan_fixed: fixedregulator2 {
                compatible = "regulator-fixed";
                regulator-name = "VWLAN";
                gpio = <&gpio2 3 GPIO_ACTIVE_HIGH>; /* gpio 35 */
index 3b3a759..99a7eee 100644 (file)
@@ -44,7 +44,7 @@
                #size-cells = <0>;
                pinctrl-names = "default";
                pinctrl-0 = <&button_pins>;
-               button0@10 {
+               button0 {
                        label = "button0";
                        linux,code = <BTN_0>;
                        gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;            /* gpio_10 */
index 3e946ca..401fae8 100644 (file)
  */
 
 / {
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0 0>;
+       };
+
        pwmleds {
                compatible = "pwm-leds";
 
index 4f4c6ef..56dbd11 100644 (file)
                pinctrl-0 = <&button_pins>;
                #address-cells = <1>;
                #size-cells = <0>;
-               button0@23 {
+               button0 {
                        label = "button0";
                        linux,code = <BTN_0>;
                        gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;            /* gpio_23 */
                        wakeup-source;
                };
-               button1@14 {
+               button1 {
                        label = "button1";
                        linux,code = <BTN_1>;
                        gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;            /* gpio_14 */
index ca86da6..854117d 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&mcspi1_pins>;
 
-       lcd0: display {
+       lcd0: display@1 {
                compatible = "lgphilips,lb035q02";
                label = "lcd35";
 
index 250cc7f..286f5ba 100644 (file)
                pinctrl-0 = <&button_pins>;
                #address-cells = <1>;
                #size-cells = <0>;
-               button0@23 {
+               button0 {
                        label = "button0";
                        linux,code = <BTN_0>;
                        gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;            /* gpio_23 */
                        wakeup-source;
                };
-               button1@14 {
+               button1 {
                        label = "button1";
                        linux,code = <BTN_1>;
                        gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;            /* gpio_14 */
index 8df7ec3..a8020fb 100644 (file)
                pinctrl-0 = <&button_pins>;
                #address-cells = <1>;
                #size-cells = <0>;
-               button0@23 {
+               button0 {
                        label = "button0";
                        linux,code = <BTN_0>;
                        gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;            /* gpio_23 */
                        wakeup-source;
                };
-               button1@14 {
+               button1 {
                        label = "button1";
                        linux,code = <BTN_1>;
                        gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;            /* gpio_14 */
index 0ea2c45..1196573 100644 (file)
                pinctrl-0 = <&button_pins>;
                #address-cells = <1>;
                #size-cells = <0>;
-               button0@23 {
+               button0 {
                        label = "button0";
                        linux,code = <BTN_0>;
                        gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;            /* gpio_23 */
                        wakeup-source;
                };
-               button1@14 {
+               button1 {
                        label = "button1";
                        linux,code = <BTN_1>;
                        gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;            /* gpio_14 */
index dbc4dc7..53e007a 100644 (file)
@@ -18,7 +18,7 @@
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x20000000>; /* 512 MB */
        };
                pinctrl-names = "default";
                pinctrl-0 = <&led_pins>;
 
-               led@1 {
+               led1 {
                        label = "pandora::sd1";
                        gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>;    /* GPIO_128 */
                        linux,default-trigger = "mmc0";
                        default-state = "off";
                };
 
-               led@2 {
+               led2 {
                        label = "pandora::sd2";
                        gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;    /* GPIO_129 */
                        linux,default-trigger = "mmc1";
                        default-state = "off";
                };
 
-               led@3 {
+               led3 {
                        label = "pandora::bluetooth";
                        gpios = <&gpio5 30 GPIO_ACTIVE_HIGH>;   /* GPIO_158 */
                        linux,default-trigger = "heartbeat";
                        default-state = "off";
                };
 
-               led@4 {
+               led4 {
                        label = "pandora::wifi";
                        gpios = <&gpio5 31 GPIO_ACTIVE_HIGH>;   /* GPIO_159 */
                        linux,default-trigger = "mmc2";
index 78a1184..bc4498e 100644 (file)
@@ -20,7 +20,7 @@
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x20000000>; /* 512 MB */
        };
index 644d3c8..dc80886 100644 (file)
@@ -26,7 +26,7 @@
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
index c29b41d..45e2ce0 100644 (file)
@@ -20,7 +20,7 @@
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x20000000>; /* 512 MB */
        };
index 4c3c471..353d818 100644 (file)
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pinctrl/omap.h>
 
-#include "skeleton.dtsi"
-
 / {
        compatible = "ti,omap3430", "ti,omap3";
        interrupt-parent = <&intc>;
+       #address-cells = <1>;
+       #size-cells = <1>;
 
        aliases {
                i2c0 = &i2c1;
@@ -78,7 +78,7 @@
         * the moment, just use a fake OCP bus entry to represent the whole bus
         * hierarchy.
         */
-       ocp {
+       ocp@68000000 {
                compatible = "ti,omap3-l3-smx", "simple-bus";
                reg = <0x68000000 0x10000>;
                interrupts = <9 10>;
index a0dc8d8..abd6921 100644 (file)
@@ -13,7 +13,7 @@
        model = "TI OMAP3430 SDP";
        compatible = "ti,omap3430-sdp", "ti,omap3";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
index e446562..e41c52d 100644 (file)
@@ -28,7 +28,7 @@
                };
        };
 
-       ocp {
+       ocp@68000000 {
                omap3_pmx_core2: pinmux@480025d8 {
                        compatible = "ti,omap3-padconf", "pinctrl-single";
                        reg = <0x480025d8 0x24>;
index 8b79791..718fa88 100644 (file)
@@ -30,7 +30,7 @@
                };
        };
 
-       ocp {
+       ocp@68000000 {
                uart4: serial@49042000 {
                        compatible = "ti,omap3-uart";
                        reg = <0x49042000 0x400>;
index 6b39808..1b82512 100644 (file)
@@ -32,7 +32,7 @@
                compatible = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
-               button0@121 {
+               button0 {
                        label = "button0";
                        linux,code = <BTN_0>;
                        gpios = <&gpio4 25 GPIO_ACTIVE_LOW>;    /* gpio_121 */
index a90b582..ec0bd97 100644 (file)
@@ -12,7 +12,7 @@
        model = "Gumstix Duovero";
        compatible = "gumstix,omap4-duovero", "ti,omap4430", "ti,omap4";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x40000000>; /* 1 GB */
        };
index 2251bd5..e3763ac 100644 (file)
@@ -13,7 +13,7 @@
        model = "Amazon Kindle Fire (first generation)";
        compatible = "amazon,omap4-kc1", "ti,omap4430", "ti,omap4";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x20000000>; /* 512 MB */
        };
index f8f1395..1673689 100644 (file)
@@ -8,7 +8,7 @@
 #include "elpida_ecb240abacn.dtsi"
 
 / {
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x40000000>; /* 1 GB */
        };
        pinctrl-names = "default";
        pinctrl-0 = <&wl12xx_pins>;
        vmmc-supply = <&wl12xx_vmmc>;
+       interrupts-extended = <&wakeupgen GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH
+                              &omap4_pmx_core 0x10e>;
        non-removable;
        bus-width = <4>;
        cap-power-off-card;
index 10d73a7..d728ec9 100644 (file)
@@ -14,7 +14,7 @@
        model = "TI OMAP4 SDP board";
        compatible = "ti,omap4-sdp", "ti,omap4430", "ti,omap4";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x40000000>; /* 1 GB */
        };
index 873cfc8..758b6eb 100644 (file)
@@ -12,7 +12,7 @@
        model = "Variscite VAR-SOM-OM44";
        compatible = "variscite,var-som-om44", "ti,omap4460", "ti,omap4";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x40000000>; /* 1 GB */
        };
index 3fdc51c..0ced079 100644 (file)
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/pinctrl/omap.h>
 
-#include "skeleton.dtsi"
-
 / {
        compatible = "ti,omap4430", "ti,omap4";
        interrupt-parent = <&wakeupgen>;
+       #address-cells = <1>;
+       #size-cells = <1>;
 
        aliases {
                i2c0 = &i2c1;
index 5196113..6365635 100644 (file)
                reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>; /* gpio3_79 ETH_NRESET */
        };
 
-       leds {
-               compatible = "gpio-leds";
-               led@1 {
-                       label = "omap5:blue:usr1";
-                       gpios = <&gpio5 25 GPIO_ACTIVE_HIGH>; /* gpio5_153 D1 LED */
-                       linux,default-trigger = "heartbeat";
-                       default-state = "off";
-               };
-       };
-
        tpd12s015: encoder {
                compatible = "ti,tpd12s015";
 
 
        wlcore_irq_pin: pinmux_wlcore_irq_pin {
                pinctrl-single,pins = <
-                       OMAP5_IOPAD(0x40, PIN_INPUT_PULLUP | MUX_MODE6) /* llia_wakereqin.gpio1_wk14 */
+                       OMAP5_IOPAD(0x40, PIN_INPUT | MUX_MODE6)        /* llia_wakereqin.gpio1_wk14 */
                >;
        };
 };
        non-removable;
        cap-power-off-card;
        pinctrl-names = "default";
-       pinctrl-0 = <&mmc3_pins &wlcore_irq_pin>;
-       interrupts-extended = <&gic GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH
-                              &omap5_pmx_core 0x168>;
+       pinctrl-0 = <&mmc3_pins>;
+       interrupts-extended = <&wakeupgen GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH
+                              &omap5_pmx_core 0x16a>;
 
        #address-cells = <1>;
        #size-cells = <0>;
        wlcore: wlcore@2 {
                compatible = "ti,wl1271";
                reg = <2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlcore_irq_pin>;
                interrupt-parent = <&gpio1>;
                interrupts = <14 IRQ_TYPE_LEVEL_HIGH>;  /* gpio 14 */
                ref-clock-frequency = <26000000>;
                interrupt-controller;
                #interrupt-cells = <2>;
                ti,system-power-controller;
+               ti,mux-pad1 = <0xa1>;
+               ti,mux-pad2 = <0x1b>;
                pinctrl-names = "default";
                pinctrl-0 = <&palmas_sys_nirq_pins &palmas_msecure_pins>;
 
+               palmas_gpio: gpio {
+                       compatible = "ti,palmas-gpio";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+               };
+
                extcon_usb3: palmas_usb {
                        compatible = "ti,palmas-usb-vid";
                        ti,enable-vbus-detection;
                        ti,enable-id-detection;
                        ti,wakeup;
+                       id-gpios = <&palmas_gpio 0 GPIO_ACTIVE_HIGH>;
                };
 
                clk32kgaudio: palmas_clk32k@1 {
index a976560..b153f60 100644 (file)
@@ -11,9 +11,9 @@
        model = "CompuLab CM-T54";
        compatible = "compulab,omap5-cm-t54", "ti,omap5";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
-               reg = <0x80000000 0x7F000000>; /* 2048 MB */
+               reg = <0 0x80000000 0 0x7f000000>; /* 2048 MB */
        };
 
        aliases {
@@ -72,7 +72,7 @@
 
        leds {
                compatible = "gpio-leds";
-               led@1 {
+               led1 {
                        label = "Heartbeat";
                        gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>; /* gpio3_80 ACT_LED */
                        linux,default-trigger = "heartbeat";
index f75ce02..8fc1921 100644 (file)
@@ -7,15 +7,47 @@
  */
 /dts-v1/;
 
+#include <dt-bindings/input/input.h>
 #include "omap5-board-common.dtsi"
 
 / {
        model = "IGEPv5";
        compatible = "isee,omap5-igep0050", "ti,omap5";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
-               reg = <0x80000000 0x7f000000>; /* 2032 MB */
+               reg = <0x0 0x80000000 0 0x7f000000>;    /* 2032 MB */
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&power_button_pin>;
+               pinctrl-names = "default";
+
+               power-button {
+                       label = "Power Button";
+                       linux,code = <KEY_POWER>;
+                       gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               led@1 {
+                       label = "board:green:usr0";
+                       gpios = <&tca6416 1 0>;
+                       default-state = "off";
+               };
+               led@2 {
+                       label = "board:red:usr1";
+                       gpios = <&tca6416 2 0>;
+                       default-state = "off";
+               };
+               led@3 {
+                       label = "board:blue:usr1";
+                       gpios = <&tca6416 3 0>;
+                       default-state = "off";
+               };
        };
 };
 
                        OMAP5_IOPAD(0x0fa, PIN_INPUT | MUX_MODE0)       /* i2c4_sda */
                >;
        };
+
+       power_button_pin: pinctrl_power_button_pin {
+               pinctrl-single,pins = <
+                       OMAP5_IOPAD(0x086, PIN_INPUT | MUX_MODE6)       /* gpio4_118 */
+               >;
+       };
 };
 
 &tpd12s015 {
index a51e605..53d31a8 100644 (file)
        model = "TI OMAP5 uEVM board";
        compatible = "ti,omap5-uevm", "ti,omap5";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
-               reg = <0x80000000 0x7F000000>; /* 2032 MB */
+               reg = <0 0x80000000 0 0x7f000000>; /* 2032 MB */
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               led1 {
+                       label = "omap5:blue:usr1";
+                       gpios = <&gpio5 25 GPIO_ACTIVE_HIGH>; /* gpio5_153 D1 LED */
+                       linux,default-trigger = "heartbeat";
+                       default-state = "off";
+               };
        };
 };
 
@@ -61,3 +71,7 @@
                OMAP5_IOPAD(0x1be, PIN_OUTPUT | MUX_MODE6)      /* mcspi1_somi.gpio5_141 */
        >;
 };
+
+&wlcore {
+       compatible = "ti,wl1837";
+};
index 84c1019..2526211 100644 (file)
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/pinctrl/omap.h>
 
-#include "skeleton.dtsi"
-
 / {
-       #address-cells = <1>;
-       #size-cells = <1>;
+       #address-cells = <2>;
+       #size-cells = <2>;
 
        compatible = "ti,omap5";
        interrupt-parent = <&wakeupgen>;
                compatible = "arm,cortex-a15-gic";
                interrupt-controller;
                #interrupt-cells = <3>;
-               reg = <0x48211000 0x1000>,
-                     <0x48212000 0x1000>,
-                     <0x48214000 0x2000>,
-                     <0x48216000 0x2000>;
+               reg = <0 0x48211000 0 0x1000>,
+                     <0 0x48212000 0 0x1000>,
+                     <0 0x48214000 0 0x2000>,
+                     <0 0x48216000 0 0x2000>;
                interrupt-parent = <&gic>;
        };
 
                compatible = "ti,omap5-wugen-mpu", "ti,omap4-wugen-mpu";
                interrupt-controller;
                #interrupt-cells = <3>;
-               reg = <0x48281000 0x1000>;
+               reg = <0 0x48281000 0 0x1000>;
                interrupt-parent = <&gic>;
        };
 
                compatible = "ti,omap5-l3-noc", "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
-               ranges;
+               ranges = <0 0 0 0xc0000000>;
                ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3";
-               reg = <0x44000000 0x2000>,
-                     <0x44800000 0x3000>,
-                     <0x45000000 0x4000>;
+               reg = <0 0x44000000 0 0x2000>,
+                     <0 0x44800000 0 0x3000>,
+                     <0 0x45000000 0 0x4000>;
                interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
 
                        #size-cells = <1>;
                        utmi-mode = <2>;
                        ranges;
-                       dwc3@4a030000 {
+                       dwc3: dwc3@4a030000 {
                                compatible = "snps,dwc3";
                                reg = <0x4a030000 0x10000>;
                                interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
diff --git a/arch/arm/boot/dts/orion5x-mv88f5181.dtsi b/arch/arm/boot/dts/orion5x-mv88f5181.dtsi
new file mode 100644 (file)
index 0000000..f667012
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2016 Jamie Lentin <jm@lentin.co.uk>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2. This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+#include "orion5x.dtsi"
+
+/ {
+       compatible = "marvell,orion5x-88f5181", "marvell,orion5x";
+
+       soc {
+               compatible = "marvell,orion5x-88f5181-mbus", "simple-bus";
+
+               internal-regs {
+                       pinctrl: pinctrl@10000 {
+                               compatible = "marvell,88f5181-pinctrl";
+                               reg = <0x10000 0x8>, <0x10050 0x4>;
+                       };
+
+                       core_clk: core-clocks@10030 {
+                               compatible = "marvell,mv88f5181-core-clock";
+                               reg = <0x10010 0x4>;
+                               #clock-cells = <1>;
+                       };
+
+                       mbusc: mbus-controller@20000 {
+                               compatible = "marvell,mbus-controller";
+                               reg = <0x20000 0x100>, <0x1500 0x20>;
+                       };
+               };
+       };
+};
+
+&pinctrl {
+       pmx_ge: pmx-ge {
+               marvell,pins = "mpp8", "mpp9", "mpp10", "mpp11",
+                              "mpp12", "mpp13", "mpp14", "mpp15",
+                              "mpp16", "mpp17", "mpp18", "mpp19";
+               marvell,function = "ge";
+       };
+};
+
+&eth {
+       pinctrl-0 = <&pmx_ge>;
+       pinctrl-names = "default";
+};
diff --git a/arch/arm/boot/dts/orion5x-netgear-wnr854t.dts b/arch/arm/boot/dts/orion5x-netgear-wnr854t.dts
new file mode 100644 (file)
index 0000000..9f6ae4e
--- /dev/null
@@ -0,0 +1,251 @@
+/*
+ * Copyright (C) 2016 Jamie Lentin <jm@lentin.co.uk>
+ *
+ * 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 <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include "orion5x-mv88f5181.dtsi"
+
+/ {
+       model = "Netgear WNR854-t";
+       compatible = "netgear,wnr854t", "marvell,orion5x-88f5181",
+                    "marvell,orion5x";
+       aliases {
+               serial0 = &uart0;
+       };
+
+       memory {
+               reg = <0x00000000 0x2000000>; /* 32 MB */
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       soc {
+               ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>,
+                        <MBUS_ID(0x09, 0x00) 0 0xf2200000 0x800>,
+                        <MBUS_ID(0x01, 0x0f) 0 0xf4000000 0x800000>;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&pmx_reset_button>;
+               pinctrl-names = "default";
+
+               reset {
+                       label = "Reset Button";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-0 = <&pmx_power_led &pmx_power_led_blink &pmx_wan_led>;
+               pinctrl-names = "default";
+
+               led@0 {
+                       label = "wnr854t:green:power";
+                       gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
+               };
+
+               led@1 {
+                       label = "wnr854t:blink:power";
+                       gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+               };
+
+               led@2 {
+                       label = "wnr854t:green:wan";
+                       gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&devbus_bootcs {
+       status = "okay";
+
+       devbus,keep-config;
+
+       flash@0 {
+               compatible = "cfi-flash";
+               reg = <0 0x800000>;
+               bank-width = <2>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "kernel";
+                               reg = <0x0 0x100000>;
+                       };
+
+                       partition@100000 {
+                               label = "rootfs";
+                               reg = <0x100000 0x660000>;
+                       };
+
+                       partition@760000 {
+                               label = "uboot_env";
+                               reg = <0x760000 0x20000>;
+                       };
+
+                       partition@780000 {
+                               label = "uboot";
+                               reg = <0x780000 0x80000>;
+                               read-only;
+                       };
+               };
+       };
+};
+
+&mdio {
+       status = "okay";
+
+       switch: switch@0 {
+               compatible = "marvell,mv88e6085";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0>;
+               dsa,member = <0 0>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               label = "lan3";
+                               phy-handle = <&lan3phy>;
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               label = "lan4";
+                               phy-handle = <&lan4phy>;
+                       };
+
+                       port@2 {
+                               reg = <2>;
+                               label = "wan";
+                               phy-handle = <&wanphy>;
+                       };
+
+                       port@3 {
+                               reg = <3>;
+                               label = "cpu";
+                               ethernet = <&ethport>;
+                       };
+
+                       port@5 {
+                               reg = <5>;
+                               label = "lan1";
+                               phy-handle = <&lan1phy>;
+                       };
+
+                       port@7 {
+                               reg = <7>;
+                               label = "lan2";
+                               phy-handle = <&lan2phy>;
+                       };
+               };
+
+               mdio {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       lan3phy: ethernet-phy@0 {
+                               /* Marvell 88E1121R (port 1) */
+                               compatible = "ethernet-phy-id0141.0cb0",
+                                            "ethernet-phy-ieee802.3-c22";
+                               reg = <0>;
+                               marvell,reg-init = <3 16 0 0x1777 3 17 0 0x15>;
+                       };
+
+                       lan4phy: ethernet-phy@1 {
+                               /* Marvell 88E1121R (port 2) */
+                               compatible = "ethernet-phy-id0141.0cb0",
+                                            "ethernet-phy-ieee802.3-c22";
+                               reg = <1>;
+                               marvell,reg-init = <3 16 0 0x1777 3 17 0 0x15>;
+                       };
+
+                       wanphy: ethernet-phy@2 {
+                               /* Marvell 88E1121R (port 1) */
+                               compatible = "ethernet-phy-id0141.0cb0",
+                                            "ethernet-phy-ieee802.3-c22";
+                               reg = <2>;
+                               marvell,reg-init = <3 16 0 0x1777 3 17 0 0x15>;
+                       };
+
+                       lan1phy: ethernet-phy@5 {
+                               /* Marvell 88E1112 */
+                               compatible = "ethernet-phy-id0141.0cb0",
+                                            "ethernet-phy-ieee802.3-c22";
+                               reg = <5>;
+                               marvell,reg-init = <3 16 0 0x1777 3 17 0 0x15>;
+                       };
+
+                       lan2phy: ethernet-phy@7 {
+                               /* Marvell 88E1112 */
+                               compatible = "ethernet-phy-id0141.0cb0",
+                                            "ethernet-phy-ieee802.3-c22";
+                               reg = <7>;
+                               marvell,reg-init = <3 16 0 0x1777 3 17 0 0x15>;
+                       };
+               };
+       };
+};
+
+&eth {
+       status = "okay";
+
+       ethernet-port@0 {
+               /* Hardwired to DSA switch */
+               speed = <1000>;
+               duplex = <1>;
+       };
+};
+
+&pinctrl {
+       pinctrl-0 = <&pmx_pci_gpios>;
+       pinctrl-names = "default";
+
+       pmx_power_led: pmx-power-led {
+               marvell,pins = "mpp0";
+               marvell,function = "gpio";
+       };
+
+       pmx_reset_button: pmx-reset-button {
+               marvell,pins = "mpp1";
+               marvell,function = "gpio";
+       };
+
+       pmx_power_led_blink: pmx-power-led-blink {
+               marvell,pins = "mpp2";
+               marvell,function = "gpio";
+       };
+
+       pmx_wan_led: pmx-wan-led {
+               marvell,pins = "mpp3";
+               marvell,function = "gpio";
+       };
+
+       pmx_pci_gpios: pmx-pci-gpios {
+               marvell,pins = "mpp4";
+               marvell,function = "gpio";
+       };
+};
+
+&uart0 {
+       /* Pin 1: Tx, Pin 7: Rx, Pin 8: Gnd */
+       status = "okay";
+};
index e1b6d2a..fbccfbb 100644 (file)
 
                        wdt: wdt@20300 {
                                compatible = "marvell,orion-wdt";
-                               reg = <0x20300 0x28>;
+                               reg = <0x20300 0x28>, <0x20108 0x4>;
                                interrupt-parent = <&bridge_intc>;
                                interrupts = <3>;
+                               clocks = <&core_clk 0>;
                                status = "okay";
                        };
 
index 0abc93e..6c00383 100644 (file)
                                                };
                                        };
                                };
+
+                               led@48 {
+                                       /*
+                                        * The keypad LED @0x48 is routed to
+                                        * the sensor board where it is
+                                        * connected to an infrared LED
+                                        * SFH4650 (60mW, @850nm) next to the
+                                        * ambient light and proximity sensor
+                                        * Capella Microsystems CM3605.
+                                        */
+                                       compatible = "qcom,pm8058-keypad-led";
+                                       reg = <0x48>;
+                                       label = "pm8058:infrared:proximitysensor";
+                                       default-state = "off";
+                               };
+                               led@131 {
+                                       compatible = "qcom,pm8058-led";
+                                       reg = <0x131>;
+                                       label = "pm8058:red";
+                                       default-state = "off";
+                               };
+                               led@132 {
+                                       /*
+                                        * This is actually green too on my
+                                        * board, but documented as yellow.
+                                        */
+                                       compatible = "qcom,pm8058-led";
+                                       reg = <0x132>;
+                                       label = "pm8058:yellow";
+                                       default-state = "off";
+                                       linux,default-trigger = "mmc0";
+                               };
+                               led@133 {
+                                       compatible = "qcom,pm8058-led";
+                                       reg = <0x133>;
+                                       label = "pm8058:green";
+                                       default-state = "on";
+                                       linux,default-trigger = "heartbeat";
+                               };
                        };
                };
 
index 7b05f07..b72e095 100644 (file)
                        vddcx-supply    = <&pm8921_s3>;
                        v3p3-supply     = <&pm8921_l3>;
                        v1p8-supply     = <&pm8921_l4>;
+                       dr_mode         = "otg";
                };
 
                gadget@12500000 {
                                vqmmc-supply = <&pm8921_s4>;
                        };
                };
+
+               imem@2a03f000 {
+                       compatible = "syscon", "simple-mfd";
+                       reg = <0x2a03f000 0x1000>;
+
+                       reboot-mode {
+                               compatible = "syscon-reboot-mode";
+                               offset = <0x65c>;
+
+                               mode-normal     = <0x77665501>;
+                               mode-bootloader = <0x77665500>;
+                               mode-recovery   = <0x77665502>;
+                       };
+               };
        };
 };
index 74a9b6c..1dbe697 100644 (file)
@@ -5,6 +5,7 @@
 #include <dt-bindings/reset/qcom,gcc-msm8960.h>
 #include <dt-bindings/clock/qcom,mmcc-msm8960.h>
 #include <dt-bindings/soc/qcom,gsbi.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 / {
        model = "Qualcomm APQ8064";
                };
        };
 
+       thermal-zones {
+               cpu-thermal0 {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&gcc 7>;
+                       coefficients = <1199 0>;
+
+                       trips {
+                               cpu_alert0: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit0: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-thermal1 {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&gcc 8>;
+                       coefficients = <1132 0>;
+
+                       trips {
+                               cpu_alert1: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit1: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-thermal2 {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&gcc 9>;
+                       coefficients = <1199 0>;
+
+                       trips {
+                               cpu_alert2: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit2: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-thermal3 {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&gcc 10>;
+                       coefficients = <1132 0>;
+
+                       trips {
+                               cpu_alert3: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit3: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+
        cpu-pmu {
                compatible = "qcom,krait-pmu";
                interrupts = <1 10 0x304>;
                                        compatible = "qcom,pm8921-gpio",
                                                     "qcom,ssbi-gpio";
                                        reg = <0x150>;
-                                       interrupts = <192 1>, <193 1>, <194 1>,
-                                                    <195 1>, <196 1>, <197 1>,
-                                                    <198 1>, <199 1>, <200 1>,
-                                                    <201 1>, <202 1>, <203 1>,
-                                                    <204 1>, <205 1>, <206 1>,
-                                                    <207 1>, <208 1>, <209 1>,
-                                                    <210 1>, <211 1>, <212 1>,
-                                                    <213 1>, <214 1>, <215 1>,
-                                                    <216 1>, <217 1>, <218 1>,
-                                                    <219 1>, <220 1>, <221 1>,
-                                                    <222 1>, <223 1>, <224 1>,
-                                                    <225 1>, <226 1>, <227 1>,
-                                                    <228 1>, <229 1>, <230 1>,
-                                                    <231 1>, <232 1>, <233 1>,
-                                                    <234 1>, <235 1>;
-
+                                       interrupts = <192 IRQ_TYPE_NONE>,
+                                                    <193 IRQ_TYPE_NONE>,
+                                                    <194 IRQ_TYPE_NONE>,
+                                                    <195 IRQ_TYPE_NONE>,
+                                                    <196 IRQ_TYPE_NONE>,
+                                                    <197 IRQ_TYPE_NONE>,
+                                                    <198 IRQ_TYPE_NONE>,
+                                                    <199 IRQ_TYPE_NONE>,
+                                                    <200 IRQ_TYPE_NONE>,
+                                                    <201 IRQ_TYPE_NONE>,
+                                                    <202 IRQ_TYPE_NONE>,
+                                                    <203 IRQ_TYPE_NONE>,
+                                                    <204 IRQ_TYPE_NONE>,
+                                                    <205 IRQ_TYPE_NONE>,
+                                                    <206 IRQ_TYPE_NONE>,
+                                                    <207 IRQ_TYPE_NONE>,
+                                                    <208 IRQ_TYPE_NONE>,
+                                                    <209 IRQ_TYPE_NONE>,
+                                                    <210 IRQ_TYPE_NONE>,
+                                                    <211 IRQ_TYPE_NONE>,
+                                                    <212 IRQ_TYPE_NONE>,
+                                                    <213 IRQ_TYPE_NONE>,
+                                                    <214 IRQ_TYPE_NONE>,
+                                                    <215 IRQ_TYPE_NONE>,
+                                                    <216 IRQ_TYPE_NONE>,
+                                                    <217 IRQ_TYPE_NONE>,
+                                                    <218 IRQ_TYPE_NONE>,
+                                                    <219 IRQ_TYPE_NONE>,
+                                                    <220 IRQ_TYPE_NONE>,
+                                                    <221 IRQ_TYPE_NONE>,
+                                                    <222 IRQ_TYPE_NONE>,
+                                                    <223 IRQ_TYPE_NONE>,
+                                                    <224 IRQ_TYPE_NONE>,
+                                                    <225 IRQ_TYPE_NONE>,
+                                                    <226 IRQ_TYPE_NONE>,
+                                                    <227 IRQ_TYPE_NONE>,
+                                                    <228 IRQ_TYPE_NONE>,
+                                                    <229 IRQ_TYPE_NONE>,
+                                                    <230 IRQ_TYPE_NONE>,
+                                                    <231 IRQ_TYPE_NONE>,
+                                                    <232 IRQ_TYPE_NONE>,
+                                                    <233 IRQ_TYPE_NONE>,
+                                                    <234 IRQ_TYPE_NONE>,
+                                                    <235 IRQ_TYPE_NONE>;
                                        gpio-controller;
                                        #gpio-cells = <2>;
 
                                        gpio-controller;
                                        #gpio-cells = <2>;
                                        interrupts =
-                                       <128 1>, <129 1>, <130 1>, <131 1>,
-                                       <132 1>, <133 1>, <134 1>, <135 1>,
-                                       <136 1>, <137 1>, <138 1>, <139 1>;
+                                       <128 IRQ_TYPE_NONE>,
+                                       <129 IRQ_TYPE_NONE>,
+                                       <130 IRQ_TYPE_NONE>,
+                                       <131 IRQ_TYPE_NONE>,
+                                       <132 IRQ_TYPE_NONE>,
+                                       <133 IRQ_TYPE_NONE>,
+                                       <134 IRQ_TYPE_NONE>,
+                                       <135 IRQ_TYPE_NONE>,
+                                       <136 IRQ_TYPE_NONE>,
+                                       <137 IRQ_TYPE_NONE>,
+                                       <138 IRQ_TYPE_NONE>,
+                                       <139 IRQ_TYPE_NONE>;
                                };
 
                                rtc@11d {
                        };
                };
 
+               qfprom: qfprom@700000 {
+                       compatible      = "qcom,qfprom";
+                       reg             = <0x00700000 0x1000>;
+                       #address-cells  = <1>;
+                       #size-cells     = <1>;
+                       ranges;
+                       tsens_calib: calib {
+                               reg = <0x404 0x10>;
+                       };
+                       tsens_backup: backup_calib {
+                               reg = <0x414 0x10>;
+                       };
+               };
+
                gcc: clock-controller@900000 {
                        compatible = "qcom,gcc-apq8064";
                        reg = <0x00900000 0x4000>;
+                       nvmem-cells = <&tsens_calib>, <&tsens_backup>;
+                       nvmem-cell-names = "calib", "calib_backup";
                        #clock-cells = <1>;
                        #reset-cells = <1>;
+                       #thermal-sensor-cells = <1>;
                };
 
                lcc: clock-controller@28000000 {
                        reg             = <0x12500000 0x400>;
                        interrupts      = <GIC_SPI 100 IRQ_TYPE_NONE>;
                        status          = "disabled";
-                       dr_mode         = "host";
 
                        clocks          = <&gcc USB_HS1_XCVR_CLK>,
                                          <&gcc USB_HS1_H_CLK>;
index 7c2df06..39eb7a4 100644 (file)
                };
        };
 
+       thermal-zones {
+               cpu-thermal0 {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 5>;
+
+                       trips {
+                               cpu_alert0: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit0: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-thermal1 {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 6>;
+
+                       trips {
+                               cpu_alert1: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit1: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-thermal2 {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 7>;
+
+                       trips {
+                               cpu_alert2: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit2: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-thermal3 {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 8>;
+
+                       trips {
+                               cpu_alert3: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit3: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+
        cpu-pmu {
                compatible = "qcom,krait-pmu";
                interrupts = <1 7 0xf04>;
                        reg = <0xf9011000 0x1000>;
                };
 
+               qfprom: qfprom@fc4bc000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "qcom,qfprom";
+                       reg = <0xfc4bc000 0x1000>;
+                       tsens_calib: calib@d0 {
+                               reg = <0xd0 0x18>;
+                       };
+                       tsens_backup: backup@440 {
+                               reg = <0x440 0x10>;
+                       };
+               };
+
+               tsens: thermal-sensor@fc4a8000 {
+                       compatible = "qcom,msm8974-tsens";
+                       reg = <0xfc4a8000 0x2000>;
+                       nvmem-cells = <&tsens_calib>, <&tsens_backup>;
+                       nvmem-cell-names = "calib", "calib_backup";
+                       #thermal-sensor-cells = <1>;
+               };
+
                timer@f9020000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
index d501382..348503d 100644 (file)
@@ -95,6 +95,7 @@
                };
 
                sata@29000000 {
+                       ports-implemented = <0x1>;
                        status = "ok";
                };
        };
index acbe71f..8c65e0d 100644 (file)
@@ -2,6 +2,7 @@
 
 /include/ "skeleton.dtsi"
 
+#include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/clock/qcom,gcc-msm8660.h>
 #include <dt-bindings/soc/qcom,gsbi.h>
                                                     "qcom,ssbi-gpio";
                                        reg = <0x150>;
                                        interrupt-parent = <&pmicintc>;
-                                       interrupts = <192 1>, <193 1>, <194 1>,
-                                                    <195 1>, <196 1>, <197 1>,
-                                                    <198 1>, <199 1>, <200 1>,
-                                                    <201 1>, <202 1>, <203 1>,
-                                                    <204 1>, <205 1>, <206 1>,
-                                                    <207 1>, <208 1>, <209 1>,
-                                                    <210 1>, <211 1>, <212 1>,
-                                                    <213 1>, <214 1>, <215 1>,
-                                                    <216 1>, <217 1>, <218 1>,
-                                                    <219 1>, <220 1>, <221 1>,
-                                                    <222 1>, <223 1>, <224 1>,
-                                                    <225 1>, <226 1>, <227 1>,
-                                                    <228 1>, <229 1>, <230 1>,
-                                                    <231 1>, <232 1>, <233 1>,
-                                                    <234 1>, <235 1>;
+                                       interrupts = <192 IRQ_TYPE_NONE>,
+                                                    <193 IRQ_TYPE_NONE>,
+                                                    <194 IRQ_TYPE_NONE>,
+                                                    <195 IRQ_TYPE_NONE>,
+                                                    <196 IRQ_TYPE_NONE>,
+                                                    <197 IRQ_TYPE_NONE>,
+                                                    <198 IRQ_TYPE_NONE>,
+                                                    <199 IRQ_TYPE_NONE>,
+                                                    <200 IRQ_TYPE_NONE>,
+                                                    <201 IRQ_TYPE_NONE>,
+                                                    <202 IRQ_TYPE_NONE>,
+                                                    <203 IRQ_TYPE_NONE>,
+                                                    <204 IRQ_TYPE_NONE>,
+                                                    <205 IRQ_TYPE_NONE>,
+                                                    <206 IRQ_TYPE_NONE>,
+                                                    <207 IRQ_TYPE_NONE>,
+                                                    <208 IRQ_TYPE_NONE>,
+                                                    <209 IRQ_TYPE_NONE>,
+                                                    <210 IRQ_TYPE_NONE>,
+                                                    <211 IRQ_TYPE_NONE>,
+                                                    <212 IRQ_TYPE_NONE>,
+                                                    <213 IRQ_TYPE_NONE>,
+                                                    <214 IRQ_TYPE_NONE>,
+                                                    <215 IRQ_TYPE_NONE>,
+                                                    <216 IRQ_TYPE_NONE>,
+                                                    <217 IRQ_TYPE_NONE>,
+                                                    <218 IRQ_TYPE_NONE>,
+                                                    <219 IRQ_TYPE_NONE>,
+                                                    <220 IRQ_TYPE_NONE>,
+                                                    <221 IRQ_TYPE_NONE>,
+                                                    <222 IRQ_TYPE_NONE>,
+                                                    <223 IRQ_TYPE_NONE>,
+                                                    <224 IRQ_TYPE_NONE>,
+                                                    <225 IRQ_TYPE_NONE>,
+                                                    <226 IRQ_TYPE_NONE>,
+                                                    <227 IRQ_TYPE_NONE>,
+                                                    <228 IRQ_TYPE_NONE>,
+                                                    <229 IRQ_TYPE_NONE>,
+                                                    <230 IRQ_TYPE_NONE>,
+                                                    <231 IRQ_TYPE_NONE>,
+                                                    <232 IRQ_TYPE_NONE>,
+                                                    <233 IRQ_TYPE_NONE>,
+                                                    <234 IRQ_TYPE_NONE>,
+                                                    <235 IRQ_TYPE_NONE>;
                                        gpio-controller;
                                        #gpio-cells = <2>;
 
                                        #gpio-cells = <2>;
                                        interrupt-parent = <&pmicintc>;
                                        interrupts =
-                                       <128 1>, <129 1>, <130 1>, <131 1>,
-                                       <132 1>, <133 1>, <134 1>, <135 1>,
-                                       <136 1>, <137 1>, <138 1>, <139 1>;
+                                       <128 IRQ_TYPE_NONE>,
+                                       <129 IRQ_TYPE_NONE>,
+                                       <130 IRQ_TYPE_NONE>,
+                                       <131 IRQ_TYPE_NONE>,
+                                       <132 IRQ_TYPE_NONE>,
+                                       <133 IRQ_TYPE_NONE>,
+                                       <134 IRQ_TYPE_NONE>,
+                                       <135 IRQ_TYPE_NONE>,
+                                       <136 IRQ_TYPE_NONE>,
+                                       <137 IRQ_TYPE_NONE>,
+                                       <138 IRQ_TYPE_NONE>,
+                                       <139 IRQ_TYPE_NONE>;
                                };
 
                                pwrkey@1c {
diff --git a/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts b/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts
new file mode 100644 (file)
index 0000000..c0fb4a6
--- /dev/null
@@ -0,0 +1,262 @@
+#include "qcom-msm8974.dtsi"
+#include "qcom-pm8841.dtsi"
+#include "qcom-pm8941.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+
+/ {
+       model = "LGE MSM 8974 HAMMERHEAD";
+       compatible = "lge,hammerhead", "qcom,msm8974";
+
+       aliases {
+               serial0 = &blsp1_uart1;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       smd {
+               rpm {
+                       rpm_requests {
+                               pm8841-regulators {
+                                       s1 {
+                                               regulator-min-microvolt = <675000>;
+                                               regulator-max-microvolt = <1050000>;
+                                       };
+
+                                       s2 {
+                                               regulator-min-microvolt = <500000>;
+                                               regulator-max-microvolt = <1050000>;
+                                       };
+
+                                       s3 {
+                                               regulator-min-microvolt = <1050000>;
+                                               regulator-max-microvolt = <1050000>;
+                                       };
+
+                                       s4 {
+                                               regulator-min-microvolt = <815000>;
+                                               regulator-max-microvolt = <900000>;
+                                       };
+                               };
+
+                               pm8941-regulators {
+                                       vdd_l1_l3-supply = <&pm8941_s1>;
+                                       vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
+                                       vdd_l4_l11-supply = <&pm8941_s1>;
+                                       vdd_l5_l7-supply = <&pm8941_s2>;
+                                       vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
+                                       vdd_l8_l16_l18_l19-supply = <&vreg_vph_pwr>;
+                                       vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
+                                       vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
+                                       vdd_l21-supply = <&vreg_boost>;
+
+                                       s1 {
+                                               regulator-min-microvolt = <1300000>;
+                                               regulator-max-microvolt = <1300000>;
+
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       s2 {
+                                               regulator-min-microvolt = <2150000>;
+                                               regulator-max-microvolt = <2150000>;
+
+                                               regulator-boot-on;
+                                       };
+
+                                       s3 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       l1 {
+                                               regulator-min-microvolt = <1225000>;
+                                               regulator-max-microvolt = <1225000>;
+
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       l2 {
+                                               regulator-min-microvolt = <1200000>;
+                                               regulator-max-microvolt = <1200000>;
+                                       };
+
+                                       l3 {
+                                               regulator-min-microvolt = <1225000>;
+                                               regulator-max-microvolt = <1225000>;
+                                       };
+
+                                       l4 {
+                                               regulator-min-microvolt = <1225000>;
+                                               regulator-max-microvolt = <1225000>;
+                                       };
+
+                                       l5 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+                                       };
+
+                                       l6 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+
+                                               regulator-boot-on;
+                                       };
+
+                                       l7 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+
+                                               regulator-boot-on;
+                                       };
+
+                                       l8 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+                                       };
+
+                                       l9 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <2950000>;
+                                       };
+
+                                       l10 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <2950000>;
+                                       };
+
+                                       l11 {
+                                               regulator-min-microvolt = <1300000>;
+                                               regulator-max-microvolt = <1300000>;
+                                       };
+
+                                       l12 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       l13 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <2950000>;
+
+                                               regulator-boot-on;
+                                       };
+
+                                       l14 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+                                       };
+
+                                       l15 {
+                                               regulator-min-microvolt = <2050000>;
+                                               regulator-max-microvolt = <2050000>;
+                                       };
+
+                                       l16 {
+                                               regulator-min-microvolt = <2700000>;
+                                               regulator-max-microvolt = <2700000>;
+                                       };
+
+                                       l17 {
+                                               regulator-min-microvolt = <2850000>;
+                                               regulator-max-microvolt = <2850000>;
+                                       };
+
+                                       l18 {
+                                               regulator-min-microvolt = <2850000>;
+                                               regulator-max-microvolt = <2850000>;
+                                       };
+
+                                       l19 {
+                                               regulator-min-microvolt = <3000000>;
+                                               regulator-max-microvolt = <3300000>;
+                                       };
+
+                                       l20 {
+                                               regulator-min-microvolt = <2950000>;
+                                               regulator-max-microvolt = <2950000>;
+
+                                               regulator-boot-on;
+                                       };
+
+                                       l21 {
+                                               regulator-min-microvolt = <2950000>;
+                                               regulator-max-microvolt = <2950000>;
+
+                                               regulator-boot-on;
+                                       };
+
+                                       l22 {
+                                               regulator-min-microvolt = <3000000>;
+                                               regulator-max-microvolt = <3300000>;
+                                       };
+
+                                       l23 {
+                                               regulator-min-microvolt = <3000000>;
+                                               regulator-max-microvolt = <3000000>;
+                                       };
+
+                                       l24 {
+                                               regulator-min-microvolt = <3075000>;
+                                               regulator-max-microvolt = <3075000>;
+
+                                               regulator-boot-on;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&soc {
+       serial@f991d000 {
+               status = "ok";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               input-name = "gpio-keys";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_pin_a>;
+
+               volume-up {
+                       label = "volume_up";
+                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+
+               volume-down {
+                       label = "volume_down";
+                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+       };
+};
+
+&spmi_bus {
+       pm8941@0 {
+               gpios@c000 {
+                       gpio_keys_pin_a: gpio-keys-active {
+                               pins = "gpio2", "gpio3";
+                               function = "normal";
+
+                               bias-pull-up;
+                               power-source = <PM8941_GPIO_S3>;
+                       };
+               };
+       };
+};
index 3fb4dad..e7c1577 100644 (file)
                        };
                };
        };
-
-       vreg_boost: vreg-boost {
-               compatible = "regulator-fixed";
-
-               regulator-name = "vreg-boost";
-               regulator-min-microvolt = <3150000>;
-               regulator-max-microvolt = <3150000>;
-
-               regulator-always-on;
-               regulator-boot-on;
-
-               gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&boost_bypass_n_pin>;
-     };
 };
 
 &soc {
                pinctrl-0 = <&blsp1_uart2_pin_a>;
        };
 
+       i2c@f9924000 {
+               status = "ok";
+
+               clock-frequency = <355000>;
+               qcom,src-freq = <50000000>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c2_pins>;
+
+               synaptics@2c {
+                       compatible = "syna,rmi4-i2c";
+                       reg = <0x2c>;
+
+                       interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>;
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       vdd-supply = <&pm8941_l22>;
+                       vio-supply = <&pm8941_lvs3>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&ts_int_pin>;
+
+                       syna,startup-delay-ms = <10>;
+
+                       rmi4-f01@1 {
+                               reg = <0x1>;
+                               syna,nosleep-mode = <1>;
+                       };
+
+                       rmi4-f11@11 {
+                               reg = <0x11>;
+                               touchscreen-inverted-x;
+                               syna,sensor-type = <1>;
+                       };
+               };
+       };
+
        pinctrl@fd510000 {
                blsp1_uart2_pin_a: blsp1-uart2-pin-active {
                        rx {
                        };
                };
 
+               i2c2_pins: i2c2 {
+                       mux {
+                               pins = "gpio6", "gpio7";
+                               function = "blsp_i2c2";
+
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+               };
+
                sdhc1_pin_a: sdhc1-pin-active {
                        clk {
                                pins = "sdc1_clk";
                        };
                };
 
+               ts_int_pin: touch-int {
+                       pin {
+                               pins = "gpio61";
+                               function = "gpio";
+
+                               drive-strength = <2>;
+                               bias-disable;
+                               input-enable;
+                       };
+               };
        };
 
        dma-controller@f9944000 {
                };
 
                gpios@c000 {
-                       boost_bypass_n_pin: boost-bypass {
-                               pins = "gpio21";
-                               function = "normal";
-                       };
-
                        gpio_keys_pin_a: gpio-keys-active {
                                pins = "gpio2", "gpio3", "gpio4", "gpio5";
                                function = "normal";
index 561d4d1..d210947 100644 (file)
@@ -2,6 +2,7 @@
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/clock/qcom,gcc-msm8974.h>
+#include <dt-bindings/gpio/gpio.h>
 #include "skeleton.dtsi"
 
 / {
                };
        };
 
+       thermal-zones {
+               cpu-thermal0 {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 5>;
+
+                       trips {
+                               cpu_alert0: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit0: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-thermal1 {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 6>;
+
+                       trips {
+                               cpu_alert1: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit1: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-thermal2 {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 7>;
+
+                       trips {
+                               cpu_alert2: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit2: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-thermal3 {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 8>;
+
+                       trips {
+                               cpu_alert3: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit3: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+
        cpu-pmu {
                compatible = "qcom,krait-pmu";
                interrupts = <1 7 0xf04>;
                        reg = <0xf9011000 0x1000>;
                };
 
+               qfprom: qfprom@fc4bc000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "qcom,qfprom";
+                       reg = <0xfc4bc000 0x1000>;
+                       tsens_calib: calib@d0 {
+                               reg = <0xd0 0x18>;
+                       };
+                       tsens_backup: backup@440 {
+                               reg = <0x440 0x10>;
+                       };
+               };
+
+               tsens: thermal-sensor@fc4a8000 {
+                       compatible = "qcom,msm8974-tsens";
+                       reg = <0xfc4a8000 0x2000>;
+                       nvmem-cells = <&tsens_calib>, <&tsens_backup>;
+                       nvmem-cell-names = "calib", "calib_backup";
+                       #thermal-sensor-cells = <1>;
+               };
+
                timer@f9020000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        reg = <0xfc428000 0x4000>;
                };
 
+               blsp1_uart1: serial@f991d000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0xf991d000 0x1000>;
+                       interrupts = <0 107 0x0>;
+                       clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
                blsp1_uart2: serial@f991e000 {
                        compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
                        reg = <0xf991e000 0x1000>;
                        };
                };
        };
+
+       vreg_boost: vreg-boost {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vreg-boost";
+               regulator-min-microvolt = <3150000>;
+               regulator-max-microvolt = <3150000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+
+               gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&boost_bypass_n_pin>;
+       };
+       vreg_vph_pwr: vreg-vph-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "vph-pwr";
+
+               regulator-min-microvolt = <3600000>;
+               regulator-max-microvolt = <3600000>;
+
+               regulator-always-on;
+       };
 };
index d95edb6..f8eb5e3 100644 (file)
                                     <0 0xe1 0 IRQ_TYPE_NONE>,
                                     <0 0xe2 0 IRQ_TYPE_NONE>,
                                     <0 0xe3 0 IRQ_TYPE_NONE>;
+
+                       boost_bypass_n_pin: boost-bypass {
+                               pins = "gpio21";
+                               function = "normal";
+                       };
                };
 
                pm8941_mpps: mpps@a000 {
diff --git a/arch/arm/boot/dts/r7s72100-rskrza1.dts b/arch/arm/boot/dts/r7s72100-rskrza1.dts
new file mode 100644 (file)
index 0000000..e5dea5b
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Device Tree Source for the RZ/A1H RSK board
+ *
+ * Copyright (C) 2016 Renesas Electronics
+ *
+ * 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 "r7s72100.dtsi"
+
+/ {
+       model = "RSKRZA1";
+       compatible = "renesas,rskrza1", "renesas,r7s72100";
+
+       aliases {
+               serial0 = &scif2;
+       };
+
+       chosen {
+               bootargs = "ignore_loglevel";
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@8000000 {
+               device_type = "memory";
+               reg = <0x08000000 0x02000000>;
+       };
+
+       lbsc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+       };
+};
+
+&extal_clk {
+       clock-frequency = <13330000>;
+};
+
+&usb_x1_clk {
+       clock-frequency = <48000000>;
+};
+
+&mtu2 {
+       status = "okay";
+};
+
+&ether {
+       status = "okay";
+       renesas,no-ether-link;
+       phy-handle = <&phy0>;
+       phy0: ethernet-phy@0 {
+               reg = <0>;
+       };
+};
+
+&scif2 {
+       status = "okay";
+};
index e8e2a5d..fb9ef9c 100644 (file)
                        clock-output-names = "scif0", "scif1", "scif2", "scif3", "scif4", "scif5", "scif6", "scif7";
                };
 
+               mstp7_clks: mstp7_clks@fcfe0430 {
+                       #clock-cells = <1>;
+                       compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
+                       reg = <0xfcfe0430 4>;
+                       clocks = <&p0_clk>;
+                       clock-indices = <R7S72100_CLK_ETHER>;
+                       clock-output-names = "ether";
+               };
+
                mstp9_clks: mstp9_clks@fcfe0438 {
                        #clock-cells = <1>;
                        compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
                power-domains = <&cpg_clocks>;
                status = "disabled";
        };
+
+       ether: ethernet@e8203000 {
+               compatible = "renesas,ether-r7s72100";
+               reg = <0xe8203000 0x800>,
+                     <0xe8204800 0x200>;
+               interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp7_clks R7S72100_CLK_ETHER>;
+               power-domains = <&cpg_clocks>;
+               phy-mode = "mii";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
 };
index d18558f..351fcc2 100644 (file)
                interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp1_clks R8A7790_CLK_VSP1_R>;
                power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
-
-               renesas,has-sru;
-               renesas,#rpf = <5>;
-               renesas,#uds = <1>;
-               renesas,#wpf = <4>;
        };
 
        vsp1@fe928000 {
                interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp1_clks R8A7790_CLK_VSP1_S>;
                power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
-
-               renesas,has-lut;
-               renesas,has-sru;
-               renesas,#rpf = <5>;
-               renesas,#uds = <3>;
-               renesas,#wpf = <4>;
        };
 
        vsp1@fe930000 {
                interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp1_clks R8A7790_CLK_VSP1_DU0>;
                power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
-
-               renesas,has-lif;
-               renesas,has-lut;
-               renesas,#rpf = <4>;
-               renesas,#uds = <1>;
-               renesas,#wpf = <4>;
        };
 
        vsp1@fe938000 {
                interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp1_clks R8A7790_CLK_VSP1_DU1>;
                power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
-
-               renesas,has-lif;
-               renesas,has-lut;
-               renesas,#rpf = <4>;
-               renesas,#uds = <1>;
-               renesas,#wpf = <4>;
        };
 
        du: display@feb00000 {
index 8f0086b..162b55c 100644 (file)
                interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp1_clks R8A7791_CLK_VSP1_S>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
-
-               renesas,has-lut;
-               renesas,has-sru;
-               renesas,#rpf = <5>;
-               renesas,#uds = <3>;
-               renesas,#wpf = <4>;
        };
 
        vsp1@fe930000 {
                interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp1_clks R8A7791_CLK_VSP1_DU0>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
-
-               renesas,has-lif;
-               renesas,has-lut;
-               renesas,#rpf = <4>;
-               renesas,#uds = <1>;
-               renesas,#wpf = <4>;
        };
 
        vsp1@fe938000 {
                interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp1_clks R8A7791_CLK_VSP1_DU1>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
-
-               renesas,has-lif;
-               renesas,has-lut;
-               renesas,#rpf = <4>;
-               renesas,#uds = <1>;
-               renesas,#wpf = <4>;
        };
 
        du: display@feb00000 {
index e7b40f0..f3ea43b 100644 (file)
@@ -11,6 +11,8 @@
 
 /dts-v1/;
 #include "r8a7792.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
 
 / {
        model = "Blanche";
                reg-io-width = <4>;
                vddvario-supply = <&d3_3v>;
                vdd33a-supply = <&d3_3v>;
+
+               pinctrl-0 = <&lan89218_pins>;
+               pinctrl-names = "default";
+       };
+
+       vga-encoder {
+               compatible = "adi,adv7123";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               adv7123_in: endpoint {
+                                       remote-endpoint = <&du_out_rgb1>;
+                               };
+                       };
+                       port@1 {
+                               reg = <1>;
+                               adv7123_out: endpoint {
+                                       remote-endpoint = <&vga_in>;
+                               };
+                       };
+               };
+       };
+
+       hdmi-out {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con: endpoint {
+                               remote-endpoint = <&adv7511_out>;
+                       };
+               };
+       };
+
+       vga {
+               compatible = "vga-connector";
+
+               port {
+                       vga_in: endpoint {
+                               remote-endpoint = <&adv7123_out>;
+                       };
+               };
+       };
+
+       x1_clk: x1 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <74250000>;
+       };
+
+       x2_clk: x2 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <65000000>;
+       };
+
+       keyboard {
+               compatible = "gpio-keys";
+
+               key-1 {
+                       linux,code = <KEY_1>;
+                       label = "SW2-1";
+                       wakeup-source;
+                       debounce-interval = <20>;
+                       gpios = <&gpio3 10 GPIO_ACTIVE_LOW>;
+               };
+               key-2 {
+                       linux,code = <KEY_2>;
+                       label = "SW2-2";
+                       wakeup-source;
+                       debounce-interval = <20>;
+                       gpios = <&gpio3 11 GPIO_ACTIVE_LOW>;
+               };
+               key-3 {
+                       linux,code = <KEY_3>;
+                       label = "SW2-3";
+                       wakeup-source;
+                       debounce-interval = <20>;
+                       gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
+               };
+               key-4 {
+                       linux,code = <KEY_4>;
+                       label = "SW2-4";
+                       wakeup-source;
+                       debounce-interval = <20>;
+                       gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
+               };
+               key-a {
+                       linux,code = <KEY_A>;
+                       label = "SW24";
+                       wakeup-source;
+                       debounce-interval = <20>;
+                       gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
+               };
+               key-b {
+                       linux,code = <KEY_B>;
+                       label = "SW25";
+                       wakeup-source;
+                       debounce-interval = <20>;
+                       gpios = <&gpio11 2 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led17 {
+                       gpios = <&gpio10 10 GPIO_ACTIVE_HIGH>;
+               };
+               led18 {
+                       gpios = <&gpio10 11 GPIO_ACTIVE_HIGH>;
+               };
+               led19 {
+                       gpios = <&gpio10 12 GPIO_ACTIVE_HIGH>;
+               };
+               led20 {
+                       gpios = <&gpio10 23 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       vcc_sdhi0: regulator-vcc-sdhi0 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "SDHI0 Vcc";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&gpio11 12 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
        };
 };
 
        clock-frequency = <20000000>;
 };
 
+&can_clk {
+       clock-frequency = <48000000>;
+};
+
+&pfc {
+       scif0_pins: scif0 {
+               groups = "scif0_data";
+               function = "scif0";
+       };
+
+       scif3_pins: scif3 {
+               groups = "scif3_data";
+               function = "scif3";
+       };
+
+       lan89218_pins: lan89218 {
+               intc {
+                       groups = "intc_irq0";
+                       function = "intc";
+               };
+               lbsc {
+                       groups = "lbsc_ex_cs0";
+                       function = "lbsc";
+               };
+       };
+
+       can0_pins: can0 {
+               groups = "can0_data", "can_clk";
+               function = "can0";
+       };
+
+       sdhi0_pins: sdhi0 {
+               groups = "sdhi0_data4", "sdhi0_ctrl";
+               function = "sdhi0";
+       };
+
+       du0_pins: du0 {
+               groups = "du0_rgb888", "du0_sync", "du0_disp";
+               function = "du0";
+       };
+
+       du1_pins: du1 {
+               groups = "du1_rgb666", "du1_sync", "du1_disp";
+               function = "du1";
+       };
+};
+
 &scif0 {
+       pinctrl-0 = <&scif0_pins>;
+       pinctrl-names = "default";
+
        status = "okay";
 };
 
 &scif3 {
+       pinctrl-0 = <&scif3_pins>;
+       pinctrl-names = "default";
+
        status = "okay";
 };
+
+&can0 {
+       pinctrl-0 = <&can0_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&sdhi0 {
+       pinctrl-0 = <&sdhi0_pins>;
+       pinctrl-names = "default";
+
+       vmmc-supply = <&vcc_sdhi0>;
+       cd-gpios = <&gpio11 11 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       hdmi@39 {
+               compatible = "adi,adv7511w";
+               reg = <0x39>;
+               interrupt-parent = <&irqc>;
+               interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
+
+               adi,input-depth = <8>;
+               adi,input-colorspace = "rgb";
+               adi,input-clock = "1x";
+               adi,input-style = <1>;
+               adi,input-justification = "evenly";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               adv7511_in: endpoint {
+                                       remote-endpoint = <&du_out_rgb0>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               adv7511_out: endpoint {
+                                       remote-endpoint = <&hdmi_con>;
+                               };
+                       };
+               };
+       };
+};
+
+&du {
+       pinctrl-0 = <&du0_pins &du1_pins>;
+       pinctrl-names = "default";
+
+       clocks = <&mstp7_clks R8A7792_CLK_DU0>, <&mstp7_clks R8A7792_CLK_DU1>,
+                <&x1_clk>, <&x2_clk>;
+       clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
+       status = "okay";
+
+       ports {
+               port@0 {
+                       endpoint {
+                               remote-endpoint = <&adv7511_in>;
+                       };
+               };
+               port@1 {
+                       endpoint {
+                               remote-endpoint = <&adv7123_in>;
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/r8a7792-wheat.dts b/arch/arm/boot/dts/r8a7792-wheat.dts
new file mode 100644 (file)
index 0000000..6dbb941
--- /dev/null
@@ -0,0 +1,199 @@
+/*
+ * Device Tree Source for the Wheat board
+ *
+ * Copyright (C) 2016 Renesas Electronics Corporation
+ * Copyright (C) 2016 Cogent  Embedded, Inc.
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/dts-v1/;
+#include "r8a7792.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+       model = "Wheat";
+       compatible = "renesas,wheat", "renesas,r8a7792";
+
+       aliases {
+               serial0 = &scif0;
+       };
+
+       chosen {
+               bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0 0x40000000 0 0x40000000>;
+       };
+
+       d3_3v: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "D3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       ethernet@18000000 {
+               compatible = "smsc,lan89218", "smsc,lan9115";
+               reg = <0 0x18000000 0 0x100>;
+               phy-mode = "mii";
+               interrupt-parent = <&irqc>;
+               interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
+               smsc,irq-push-pull;
+               smsc,save-mac-address;
+               reg-io-width = <4>;
+               vddvario-supply = <&d3_3v>;
+               vdd33a-supply = <&d3_3v>;
+
+               pinctrl-0 = <&lan89218_pins>;
+               pinctrl-names = "default";
+       };
+
+       keyboard {
+               compatible = "gpio-keys";
+
+               key-a {
+                       linux,code = <KEY_A>;
+                       label = "SW2";
+                       wakeup-source;
+                       debounce-interval = <20>;
+                       gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
+               };
+               key-b {
+                       linux,code = <KEY_B>;
+                       label = "SW3";
+                       wakeup-source;
+                       debounce-interval = <20>;
+                       gpios = <&gpio11 2 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       vcc_sdhi0: regulator-vcc-sdhi0 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "SDHI0 Vcc";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&gpio11 12 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+};
+
+&extal_clk {
+       clock-frequency = <20000000>;
+};
+
+&pfc {
+       scif0_pins: scif0 {
+               groups = "scif0_data";
+               function = "scif0";
+       };
+
+       lan89218_pins: lan89218 {
+               intc {
+                       groups = "intc_irq0";
+                       function = "intc";
+               };
+               lbsc {
+                       groups = "lbsc_ex_cs0";
+                       function = "lbsc";
+               };
+       };
+
+       can0_pins: can0 {
+               groups = "can0_data";
+               function = "can0";
+       };
+
+       can1_pins: can1 {
+               groups = "can1_data";
+               function = "can1";
+       };
+
+       sdhi0_pins: sdhi0 {
+               groups = "sdhi0_data4", "sdhi0_ctrl";
+               function = "sdhi0";
+       };
+
+       qspi_pins: qspi {
+               groups = "qspi_ctrl", "qspi_data4";
+               function = "qspi";
+       };
+};
+
+&scif0 {
+       pinctrl-0 = <&scif0_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&can0 {
+       pinctrl-0 = <&can0_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&can1 {
+       pinctrl-0 = <&can1_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&sdhi0 {
+       pinctrl-0 = <&sdhi0_pins>;
+       pinctrl-names = "default";
+
+       vmmc-supply = <&vcc_sdhi0>;
+       cd-gpios = <&gpio11 11 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&qspi {
+       pinctrl-0 = <&qspi_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       flash@0 {
+               compatible = "spansion,s25fl512s", "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <30000000>;
+               spi-tx-bus-width = <4>;
+               spi-rx-bus-width = <4>;
+               spi-cpol;
+               spi-cpha;
+               m25p,fast-read;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "loader";
+                               reg = <0x00000000 0x00040000>;
+                               read-only;
+                       };
+                       partition@40000 {
+                               label = "user";
+                               reg = <0x00040000 0x00400000>;
+                               read-only;
+                       };
+                       partition@440000 {
+                               label = "flash";
+                               reg = <0x00440000 0x03bc0000>;
+                       };
+               };
+       };
+};
index 3fd61d7..713141d 100644 (file)
        #address-cells = <2>;
        #size-cells = <2>;
 
+       aliases {
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c4 = &i2c4;
+               i2c5 = &i2c5;
+               spi0 = &qspi;
+               vin0 = &vin0;
+               vin1 = &vin1;
+               vin2 = &vin2;
+               vin3 = &vin3;
+               vin4 = &vin4;
+               vin5 = &vin5;
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
                        #power-domain-cells = <1>;
                };
 
+               pfc: pin-controller@e6060000 {
+                       compatible = "renesas,pfc-r8a7792";
+                       reg = <0 0xe6060000 0 0x144>;
+               };
+
+               gpio0: gpio@e6050000 {
+                       compatible = "renesas,gpio-r8a7792",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6050000 0 0x50>;
+                       interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 0 29>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&mstp9_clks R8A7792_CLK_GPIO0>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+               };
+
+               gpio1: gpio@e6051000 {
+                       compatible = "renesas,gpio-r8a7792",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6051000 0 0x50>;
+                       interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 32 23>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&mstp9_clks R8A7792_CLK_GPIO1>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+               };
+
+               gpio2: gpio@e6052000 {
+                       compatible = "renesas,gpio-r8a7792",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6052000 0 0x50>;
+                       interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 64 32>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&mstp9_clks R8A7792_CLK_GPIO2>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+               };
+
+               gpio3: gpio@e6053000 {
+                       compatible = "renesas,gpio-r8a7792",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6053000 0 0x50>;
+                       interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 96 28>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&mstp9_clks R8A7792_CLK_GPIO3>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+               };
+
+               gpio4: gpio@e6054000 {
+                       compatible = "renesas,gpio-r8a7792",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6054000 0 0x50>;
+                       interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 128 17>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&mstp9_clks R8A7792_CLK_GPIO4>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+               };
+
+               gpio5: gpio@e6055000 {
+                       compatible = "renesas,gpio-r8a7792",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6055000 0 0x50>;
+                       interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 160 17>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&mstp9_clks R8A7792_CLK_GPIO5>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+               };
+
+               gpio6: gpio@e6055100 {
+                       compatible = "renesas,gpio-r8a7792",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6055100 0 0x50>;
+                       interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 192 17>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&mstp9_clks R8A7792_CLK_GPIO6>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+               };
+
+               gpio7: gpio@e6055200 {
+                       compatible = "renesas,gpio-r8a7792",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6055200 0 0x50>;
+                       interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 224 17>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&mstp9_clks R8A7792_CLK_GPIO7>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+               };
+
+               gpio8: gpio@e6055300 {
+                       compatible = "renesas,gpio-r8a7792",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6055300 0 0x50>;
+                       interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 256 17>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&mstp9_clks R8A7792_CLK_GPIO8>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+               };
+
+               gpio9: gpio@e6055400 {
+                       compatible = "renesas,gpio-r8a7792",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6055400 0 0x50>;
+                       interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 288 17>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&mstp9_clks R8A7792_CLK_GPIO9>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+               };
+
+               gpio10: gpio@e6055500 {
+                       compatible = "renesas,gpio-r8a7792",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6055500 0 0x50>;
+                       interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 320 32>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&mstp9_clks R8A7792_CLK_GPIO10>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+               };
+
+               gpio11: gpio@e6055600 {
+                       compatible = "renesas,gpio-r8a7792",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6055600 0 0x50>;
+                       interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 352 30>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&mstp9_clks R8A7792_CLK_GPIO11>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+               };
+
                dmac0: dma-controller@e6700000 {
                        compatible = "renesas,dmac-r8a7792",
                                     "renesas,rcar-dmac";
                        status = "disabled";
                };
 
+               sdhi0: sd@ee100000 {
+                       compatible = "renesas,sdhi-r8a7792";
+                       reg = <0 0xee100000 0 0x328>;
+                       interrupts = <0 165 IRQ_TYPE_LEVEL_HIGH>;
+                       dmas = <&dmac0 0xcd>, <&dmac0 0xce>,
+                              <&dmac1 0xcd>, <&dmac1 0xce>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       clocks = <&mstp3_clks R8A7792_CLK_SDHI0>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       status = "disabled";
+               };
+
                jpu: jpeg-codec@fe980000 {
                        compatible = "renesas,jpu-r8a7792",
                                     "renesas,rcar-gen2-jpu";
                        power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
                };
 
+               avb: ethernet@e6800000 {
+                       compatible = "renesas,etheravb-r8a7792",
+                                    "renesas,etheravb-rcar-gen2";
+                       reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>;
+                       interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp8_clks R8A7792_CLK_ETHERAVB>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               /* I2C doesn't need pinmux */
+               i2c0: i2c@e6508000 {
+                       compatible = "renesas,i2c-r8a7792";
+                       reg = <0 0xe6508000 0 0x40>;
+                       interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp9_clks R8A7792_CLK_I2C0>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       i2c-scl-internal-delay-ns = <6>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c1: i2c@e6518000 {
+                       compatible = "renesas,i2c-r8a7792";
+                       reg = <0 0xe6518000 0 0x40>;
+                       interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp9_clks R8A7792_CLK_I2C1>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       i2c-scl-internal-delay-ns = <6>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@e6530000 {
+                       compatible = "renesas,i2c-r8a7792";
+                       reg = <0 0xe6530000 0 0x40>;
+                       interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp9_clks R8A7792_CLK_I2C2>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       i2c-scl-internal-delay-ns = <6>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c3: i2c@e6540000 {
+                       compatible = "renesas,i2c-r8a7792";
+                       reg = <0 0xe6540000 0 0x40>;
+                       interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp9_clks R8A7792_CLK_I2C3>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       i2c-scl-internal-delay-ns = <6>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c4: i2c@e6520000 {
+                       compatible = "renesas,i2c-r8a7792";
+                       reg = <0 0xe6520000 0 0x40>;
+                       interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp9_clks R8A7792_CLK_I2C4>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       i2c-scl-internal-delay-ns = <6>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c5: i2c@e6528000 {
+                       compatible = "renesas,i2c-r8a7792";
+                       reg = <0 0xe6528000 0 0x40>;
+                       interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp9_clks R8A7792_CLK_I2C5>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       i2c-scl-internal-delay-ns = <110>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               qspi: spi@e6b10000 {
+                       compatible = "renesas,qspi-r8a7792", "renesas,qspi";
+                       reg = <0 0xe6b10000 0 0x2c>;
+                       interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp9_clks R8A7792_CLK_QSPI_MOD>;
+                       dmas = <&dmac0 0x17>, <&dmac0 0x18>,
+                              <&dmac1 0x17>, <&dmac1 0x18>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       num-cs = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               du: display@feb00000 {
+                       compatible = "renesas,du-r8a7792";
+                       reg = <0 0xfeb00000 0 0x40000>;
+                       reg-names = "du";
+                       interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp7_clks R8A7792_CLK_DU0>,
+                                <&mstp7_clks R8A7792_CLK_DU1>;
+                       clock-names = "du.0", "du.1";
+                       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 {
+                                       };
+                               };
+                       };
+               };
+
+               can0: can@e6e80000 {
+                       compatible = "renesas,can-r8a7792",
+                                    "renesas,rcar-gen2-can";
+                       reg = <0 0xe6e80000 0 0x1000>;
+                       interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp9_clks R8A7792_CLK_CAN0>,
+                                <&rcan_clk>, <&can_clk>;
+                       clock-names = "clkp1", "clkp2", "can_clk";
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       status = "disabled";
+               };
+
+               can1: can@e6e88000 {
+                       compatible = "renesas,can-r8a7792",
+                                    "renesas,rcar-gen2-can";
+                       reg = <0 0xe6e88000 0 0x1000>;
+                       interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp9_clks R8A7792_CLK_CAN1>,
+                                <&rcan_clk>, <&can_clk>;
+                       clock-names = "clkp1", "clkp2", "can_clk";
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       status = "disabled";
+               };
+
+               vin0: video@e6ef0000 {
+                       compatible = "renesas,vin-r8a7792",
+                                    "renesas,rcar-gen2-vin";
+                       reg = <0 0xe6ef0000 0 0x1000>;
+                       interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp8_clks R8A7792_CLK_VIN0>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       status = "disabled";
+               };
+
+               vin1: video@e6ef1000 {
+                       compatible = "renesas,vin-r8a7792",
+                                    "renesas,rcar-gen2-vin";
+                       reg = <0 0xe6ef1000 0 0x1000>;
+                       interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp8_clks R8A7792_CLK_VIN1>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       status = "disabled";
+               };
+
+               vin2: video@e6ef2000 {
+                       compatible = "renesas,vin-r8a7792",
+                                    "renesas,rcar-gen2-vin";
+                       reg = <0 0xe6ef2000 0 0x1000>;
+                       interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp8_clks R8A7792_CLK_VIN2>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       status = "disabled";
+               };
+
+               vin3: video@e6ef3000 {
+                       compatible = "renesas,vin-r8a7792",
+                                    "renesas,rcar-gen2-vin";
+                       reg = <0 0xe6ef3000 0 0x1000>;
+                       interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp8_clks R8A7792_CLK_VIN3>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       status = "disabled";
+               };
+
+               vin4: video@e6ef4000 {
+                       compatible = "renesas,vin-r8a7792",
+                                    "renesas,rcar-gen2-vin";
+                       reg = <0 0xe6ef4000 0 0x1000>;
+                       interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp8_clks R8A7792_CLK_VIN4>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       status = "disabled";
+               };
+
+               vin5: video@e6ef5000 {
+                       compatible = "renesas,vin-r8a7792",
+                                    "renesas,rcar-gen2-vin";
+                       reg = <0 0xe6ef5000 0 0x1000>;
+                       interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp8_clks R8A7792_CLK_VIN5>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       status = "disabled";
+               };
+
+               vsp1@fe928000 {
+                       compatible = "renesas,vsp1";
+                       reg = <0 0xfe928000 0 0x8000>;
+                       interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp1_clks R8A7792_CLK_VSP1_SY>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+               };
+
+               vsp1@fe930000 {
+                       compatible = "renesas,vsp1";
+                       reg = <0 0xfe930000 0 0x8000>;
+                       interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp1_clks R8A7792_CLK_VSP1DU0>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+               };
+
+               vsp1@fe938000 {
+                       compatible = "renesas,vsp1";
+                       reg = <0 0xfe938000 0 0x8000>;
+                       interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&mstp1_clks R8A7792_CLK_VSP1DU1>;
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+               };
+
                /* Special CPG clocks */
                cpg_clocks: cpg_clocks@e6150000 {
                        compatible = "renesas,r8a7792-cpg-clocks",
                        clock-div = <2>;
                        clock-mult = <1>;
                };
+               zx_clk: zx {
+                       compatible = "fixed-factor-clock";
+                       clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
+                       #clock-cells = <0>;
+                       clock-div = <3>;
+                       clock-mult = <1>;
+               };
                zs_clk: zs {
                        compatible = "fixed-factor-clock";
                        clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
                        clock-div = <6>;
                        clock-mult = <1>;
                };
+               hp_clk: hp {
+                       compatible = "fixed-factor-clock";
+                       clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
+                       #clock-cells = <0>;
+                       clock-div = <12>;
+                       clock-mult = <1>;
+               };
                p_clk: p {
                        compatible = "fixed-factor-clock";
                        clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
                        clock-div = <8>;
                        clock-mult = <1>;
                };
+               sd_clk: sd {
+                       compatible = "fixed-factor-clock";
+                       clocks = <&pll1_div2_clk>;
+                       #clock-cells = <0>;
+                       clock-div = <8>;
+                       clock-mult = <1>;
+               };
+               rcan_clk: rcan {
+                       compatible = "fixed-factor-clock";
+                       clocks = <&pll1_div2_clk>;
+                       #clock-cells = <0>;
+                       clock-div = <49>;
+                       clock-mult = <1>;
+               };
+               zg_clk: zg {
+                       compatible = "fixed-factor-clock";
+                       clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
+                       #clock-cells = <0>;
+                       clock-div = <5>;
+                       clock-mult = <1>;
+               };
 
                /* Gate clocks */
                mstp1_clks: mstp1_clks@e6150134 {
                        compatible = "renesas,r8a7792-mstp-clocks",
                                     "renesas,cpg-mstp-clocks";
                        reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>;
-                       clocks = <&m2_clk>;
+                       clocks = <&m2_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>;
                        #clock-cells = <1>;
-                       clock-indices = <R8A7792_CLK_JPU>;
-                       clock-output-names = "jpu";
+                       clock-indices = <
+                               R8A7792_CLK_JPU
+                               R8A7792_CLK_VSP1DU1 R8A7792_CLK_VSP1DU0
+                               R8A7792_CLK_VSP1_SY
+                       >;
+                       clock-output-names = "jpu", "vsp1du1", "vsp1du0",
+                                            "vsp1-sy";
                };
                mstp2_clks: mstp2_clks@e6150138 {
                        compatible = "renesas,r8a7792-mstp-clocks",
                        >;
                        clock-output-names = "sys-dmac1", "sys-dmac0";
                };
+               mstp3_clks: mstp3_clks@e615013c {
+                       compatible = "renesas,r8a7792-mstp-clocks",
+                                    "renesas,cpg-mstp-clocks";
+                       reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>;
+                       clocks = <&sd_clk>;
+                       #clock-cells = <1>;
+                       renesas,clock-indices = <R8A7792_CLK_SDHI0>;
+                       clock-output-names = "sdhi0";
+               };
                mstp4_clks: mstp4_clks@e6150140 {
                        compatible = "renesas,r8a7792-mstp-clocks",
                                     "renesas,cpg-mstp-clocks";
                                     "renesas,cpg-mstp-clocks";
                        reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>;
                        clocks = <&zs_clk>, <&zs_clk>, <&p_clk>, <&p_clk>,
-                                <&p_clk>, <&p_clk>;
+                                <&p_clk>, <&p_clk>, <&zx_clk>, <&zx_clk>;
                        #clock-cells = <1>;
                        clock-indices = <
                                R8A7792_CLK_HSCIF1 R8A7792_CLK_HSCIF0
                                R8A7792_CLK_SCIF3 R8A7792_CLK_SCIF2
                                R8A7792_CLK_SCIF1 R8A7792_CLK_SCIF0
+                               R8A7792_CLK_DU1 R8A7792_CLK_DU0
                        >;
                        clock-output-names = "hscif1", "hscif0", "scif3",
-                                            "scif2", "scif1", "scif0";
+                                            "scif2", "scif1", "scif0",
+                                            "du1", "du0";
+               };
+               mstp8_clks: mstp8_clks@e6150990 {
+                       compatible = "renesas,r8a7792-mstp-clocks",
+                                    "renesas,cpg-mstp-clocks";
+                       reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>;
+                       clocks = <&zg_clk>, <&zg_clk>, <&zg_clk>, <&zg_clk>,
+                                <&zg_clk>, <&zg_clk>, <&hp_clk>;
+                       #clock-cells = <1>;
+                       clock-indices = <
+                               R8A7792_CLK_VIN5 R8A7792_CLK_VIN4
+                               R8A7792_CLK_VIN3 R8A7792_CLK_VIN2
+                               R8A7792_CLK_VIN1 R8A7792_CLK_VIN0
+                               R8A7792_CLK_ETHERAVB
+                       >;
+                       clock-output-names = "vin5", "vin4", "vin3", "vin2",
+                                            "vin1", "vin0", "etheravb";
+               };
+               mstp9_clks: mstp9_clks@e6150994 {
+                       compatible = "renesas,r8a7792-mstp-clocks",
+                                    "renesas,cpg-mstp-clocks";
+                       reg = <0 0xe6150994 0 4>, <0 0xe61509a4 0 4>;
+                       clocks = <&cp_clk>, <&cp_clk>, <&cp_clk>, <&cp_clk>,
+                                <&cp_clk>, <&cp_clk>, <&cp_clk>, <&cp_clk>,
+                                <&cp_clk>, <&cp_clk>, <&p_clk>, <&p_clk>,
+                                <&cpg_clocks R8A7792_CLK_QSPI>,
+                                <&cp_clk>, <&cp_clk>, <&hp_clk>, <&hp_clk>,
+                                <&hp_clk>, <&hp_clk>, <&hp_clk>, <&hp_clk>;
+                       #clock-cells = <1>;
+                       clock-indices = <
+                               R8A7792_CLK_GPIO7 R8A7792_CLK_GPIO6
+                               R8A7792_CLK_GPIO5 R8A7792_CLK_GPIO4
+                               R8A7792_CLK_GPIO3 R8A7792_CLK_GPIO2
+                               R8A7792_CLK_GPIO1 R8A7792_CLK_GPIO0
+                               R8A7792_CLK_GPIO11 R8A7792_CLK_GPIO10
+                               R8A7792_CLK_CAN1 R8A7792_CLK_CAN0
+                               R8A7792_CLK_QSPI_MOD
+                               R8A7792_CLK_GPIO9 R8A7792_CLK_GPIO8
+                               R8A7792_CLK_I2C5 R8A7792_CLK_I2C4
+                               R8A7792_CLK_I2C3 R8A7792_CLK_I2C2
+                               R8A7792_CLK_I2C1 R8A7792_CLK_I2C0
+                       >;
+                       clock-output-names =
+                               "gpio7", "gpio6", "gpio5", "gpio4",
+                               "gpio3", "gpio2", "gpio1", "gpio0",
+                               "gpio11", "gpio10", "can1", "can0",
+                               "qspi_mod", "gpio9", "gpio8",
+                               "i2c5", "i2c4", "i2c3", "i2c2",
+                               "i2c1", "i2c0";
                };
        };
 
                /* This value must be overridden by the board. */
                clock-frequency = <0>;
        };
+
+       /* External CAN clock */
+       can_clk: can {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               /* This value must be overridden by the board. */
+               clock-frequency = <0>;
+       };
 };
index 1ad37d4..8d1b35a 100644 (file)
@@ -10,6 +10,7 @@
 
 /dts-v1/;
 #include "r8a7794.dtsi"
+#include <dt-bindings/gpio/gpio.h>
 
 / {
        model = "Alt";
                reg = <0 0x40000000 0 0x40000000>;
        };
 
+       d3_3v: regulator-d3-3v {
+               compatible = "regulator-fixed";
+               regulator-name = "D3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vcc_sdhi0: regulator-vcc-sdhi0 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "SDHI0 Vcc";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&gpio2 26 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       vccq_sdhi0: regulator-vccq-sdhi0 {
+               compatible = "regulator-gpio";
+
+               regulator-name = "SDHI0 VccQ";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>;
+               gpios-states = <1>;
+               states = <3300000 1
+                         1800000 0>;
+       };
+
+       vcc_sdhi1: regulator-vcc-sdhi1 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "SDHI1 Vcc";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&gpio4 26 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       vccq_sdhi1: regulator-vccq-sdhi1 {
+               compatible = "regulator-gpio";
+
+               regulator-name = "SDHI1 VccQ";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
+               gpios-states = <1>;
+               states = <3300000 1
+                         1800000 0>;
+       };
+
        lbsc {
                #address-cells = <1>;
                #size-cells = <1>;
                groups = "vin0_data8", "vin0_clk";
                function = "vin0";
        };
+
+       mmcif0_pins: mmcif0 {
+               groups = "mmc_data8", "mmc_ctrl";
+               function = "mmc";
+       };
+
+       sdhi0_pins: sd0 {
+               groups = "sdhi0_data4", "sdhi0_ctrl";
+               function = "sdhi0";
+       };
+
+       sdhi1_pins: sd1 {
+               groups = "sdhi1_data4", "sdhi1_ctrl";
+               function = "sdhi1";
+       };
 };
 
 &cmt0 {
        };
 };
 
+&mmcif0 {
+       pinctrl-0 = <&mmcif0_pins>;
+       pinctrl-names = "default";
+
+       vmmc-supply = <&d3_3v>;
+       vqmmc-supply = <&d3_3v>;
+       bus-width = <8>;
+       non-removable;
+       status = "okay";
+};
+
+&sdhi0 {
+       pinctrl-0 = <&sdhi0_pins>;
+       pinctrl-names = "default";
+
+       vmmc-supply = <&vcc_sdhi0>;
+       vqmmc-supply = <&vccq_sdhi0>;
+       cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
+       wp-gpios = <&gpio6 7 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&sdhi1 {
+       pinctrl-0 = <&sdhi1_pins>;
+       pinctrl-names = "default";
+
+       vmmc-supply = <&vcc_sdhi1>;
+       vqmmc-supply = <&vccq_sdhi1>;
+       cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
+       wp-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
 &i2c1 {
        pinctrl-0 = <&i2c1_pins>;
        pinctrl-names = "default";
index cf24f45..cf880ac 100644 (file)
  * kind, whether express or implied.
  */
 
+/*
+ * SSI-AK4643
+ *
+ * SW1: 2-1: AK4643
+ *      2-3: ADV7511
+ *
+ * This command is required before playback/capture:
+ *
+ *     amixer set "LINEOUT Mixer DACL" on
+ */
+
 /dts-v1/;
 #include "r8a7794.dtsi"
 #include <dt-bindings/gpio/gpio.h>
                #clock-cells = <0>;
                clock-frequency = <74250000>;
        };
+
+       x9_clk: audio_clock {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <12288000>;
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+
+               simple-audio-card,format = "left_j";
+               simple-audio-card,bitclock-master = <&soundcodec>;
+               simple-audio-card,frame-master = <&soundcodec>;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&rcar_sound>;
+               };
+
+               soundcodec: simple-audio-card,codec {
+                       sound-dai = <&ak4643>;
+                       clocks = <&x9_clk>;
+               };
+       };
 };
 
 &extal_clk {
                groups = "du1_rgb666", "du1_sync", "du1_disp", "du1_clk0_out";
                function = "du1";
        };
+
+       ssi_pins: sound {
+               groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
+               function = "ssi";
+       };
+
+       audio_clk_pins: audio_clk {
+               groups = "audio_clkc";
+               function = "audio_clk";
+       };
 };
 
 &scif2 {
        status = "okay";
        clock-frequency = <400000>;
 
+       ak4643: codec@12 {
+               compatible = "asahi-kasei,ak4643";
+               #sound-dai-cells = <0>;
+               reg = <0x12>;
+       };
+
        composite-in@20 {
                compatible = "adi,adv7180";
                reg = <0x20>;
                };
        };
 };
+
+&rcar_sound {
+       pinctrl-0 = <&ssi_pins &audio_clk_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       /* Single DAI */
+       #sound-dai-cells = <0>;
+
+       rcar_sound,dai {
+               dai0 {
+                       playback = <&ssi0>;
+                       capture  = <&ssi1>;
+               };
+       };
+};
+
+&ssi1 {
+       shared-pin;
+};
index 685f986..9365580 100644 (file)
                dma-channels = <15>;
        };
 
+       audma0: dma-controller@ec700000 {
+               compatible = "renesas,dmac-r8a7794", "renesas,rcar-dmac";
+               reg = <0 0xec700000 0 0x10000>;
+               interrupts =    <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH
+                                GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH
+                                GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH
+                                GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH
+                                GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH
+                                GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH
+                                GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH
+                                GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH
+                                GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH
+                                GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH
+                                GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH
+                                GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH
+                                GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH
+                                GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "error",
+                                 "ch0", "ch1", "ch2", "ch3", "ch4", "ch5",
+                                 "ch6", "ch7", "ch8", "ch9", "ch10", "ch11",
+                                 "ch12";
+               clocks = <&mstp5_clks R8A7794_CLK_AUDIO_DMAC0>;
+               clock-names = "fck";
+               power-domains = <&cpg_clocks>;
+               #dma-cells = <1>;
+               dma-channels = <13>;
+       };
+
        scifa0: serial@e6c40000 {
                compatible = "renesas,scifa-r8a7794",
                             "renesas,rcar-gen2-scifa", "renesas,scifa";
 
        sdhi0: sd@ee100000 {
                compatible = "renesas,sdhi-r8a7794";
-               reg = <0 0xee100000 0 0x200>;
+               reg = <0 0xee100000 0 0x328>;
                interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp3_clks R8A7794_CLK_SDHI0>;
                dmas = <&dmac0 0xcd>, <&dmac0 0xce>,
                };
        };
 
+       vsp1@fe928000 {
+               compatible = "renesas,vsp1";
+               reg = <0 0xfe928000 0 0x8000>;
+               interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp1_clks R8A7794_CLK_VSP1_S>;
+               power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
+       };
+
+       vsp1@fe930000 {
+               compatible = "renesas,vsp1";
+               reg = <0 0xfe930000 0 0x8000>;
+               interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp1_clks R8A7794_CLK_VSP1_DU0>;
+               power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
+       };
+
        du: display@feb00000 {
                compatible = "renesas,du-r8a7794";
                reg = <0 0xfeb00000 0 0x40000>;
                        clock-frequency = <0>;
                };
 
+               /*
+                * The external audio clocks are configured  as 0 Hz fixed
+                * frequency clocks by default.  Boards that provide audio
+                * clocks should override them.
+                */
+               audio_clka: audio_clka {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <0>;
+               };
+               audio_clkb: audio_clkb {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <0>;
+               };
+               audio_clkc: audio_clkc {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <0>;
+               };
+
                /* Special CPG clocks */
                cpg_clocks: cpg_clocks@e6150000 {
                        compatible = "renesas,r8a7794-cpg-clocks",
                        clock-indices = <R8A7794_CLK_IRQC>;
                        clock-output-names = "irqc";
                };
+               mstp5_clks: mstp5_clks@e6150144 {
+                       compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
+                       reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>;
+                       clocks = <&hp_clk>, <&p_clk>;
+                       #clock-cells = <1>;
+                       clock-indices = <R8A7794_CLK_AUDIO_DMAC0
+                                        R8A7794_CLK_PWM>;
+                       clock-output-names = "audmac0", "pwm";
+               };
                mstp7_clks: mstp7_clks@e615014c {
                        compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
                        reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>;
                                "gpio1", "gpio0", "rcan1", "rcan0", "qspi_mod",
                                "i2c5", "i2c4", "i2c3", "i2c2", "i2c1", "i2c0";
                };
+               mstp10_clks: mstp10_clks@e6150998 {
+                       compatible = "renesas,r8a7794-mstp-clocks",
+                                    "renesas,cpg-mstp-clocks";
+                       reg = <0 0xe6150998 0 4>, <0 0xe61509a8 0 4>;
+                       clocks = <&p_clk>,
+                                <&mstp10_clks R8A7794_CLK_SSI_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SSI_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SSI_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SSI_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SSI_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SSI_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SSI_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SSI_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SSI_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SSI_ALL>,
+                                <&p_clk>,
+                                <&mstp10_clks R8A7794_CLK_SCU_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SCU_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SCU_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SCU_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SCU_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SCU_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SCU_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SCU_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SCU_ALL>,
+                                <&mstp10_clks R8A7794_CLK_SCU_ALL>;
+                       #clock-cells = <1>;
+                       clock-indices = <R8A7794_CLK_SSI_ALL
+                                        R8A7794_CLK_SSI9 R8A7794_CLK_SSI8
+                                        R8A7794_CLK_SSI7 R8A7794_CLK_SSI6
+                                        R8A7794_CLK_SSI5 R8A7794_CLK_SSI4
+                                        R8A7794_CLK_SSI3 R8A7794_CLK_SSI2
+                                        R8A7794_CLK_SSI1 R8A7794_CLK_SSI0
+                                        R8A7794_CLK_SCU_ALL
+                                        R8A7794_CLK_SCU_DVC1
+                                        R8A7794_CLK_SCU_DVC0
+                                        R8A7794_CLK_SCU_CTU1_MIX1
+                                        R8A7794_CLK_SCU_CTU0_MIX0
+                                        R8A7794_CLK_SCU_SRC6
+                                        R8A7794_CLK_SCU_SRC5
+                                        R8A7794_CLK_SCU_SRC4
+                                        R8A7794_CLK_SCU_SRC3
+                                        R8A7794_CLK_SCU_SRC2
+                                        R8A7794_CLK_SCU_SRC1>;
+                       clock-output-names = "ssi-all", "ssi9", "ssi8", "ssi7",
+                                            "ssi6", "ssi5", "ssi4", "ssi3",
+                                            "ssi2", "ssi1", "ssi0",
+                                            "scu-all", "scu-dvc1", "scu-dvc0",
+                                            "scu-ctu1-mix1", "scu-ctu0-mix0",
+                                            "scu-src6", "scu-src5", "scu-src4",
+                                            "scu-src3", "scu-src2", "scu-src1";
+               };
                mstp11_clks: mstp11_clks@e615099c {
                        compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
                        reg = <0 0xe615099c 0 4>, <0 0xe61509ac 0 4>;
                #iommu-cells = <1>;
                status = "disabled";
        };
+
+       rcar_sound: sound@ec500000 {
+               /*
+                * #sound-dai-cells is required
+                *
+                * Single DAI : #sound-dai-cells = <0>;         <&rcar_sound>;
+                * Multi  DAI : #sound-dai-cells = <1>;         <&rcar_sound N>;
+                */
+               compatible = "renesas,rcar_sound-r8a7794",
+                            "renesas,rcar_sound-gen2";
+               reg =   <0 0xec500000 0 0x1000>, /* SCU */
+                       <0 0xec5a0000 0 0x100>,  /* ADG */
+                       <0 0xec540000 0 0x1000>, /* SSIU */
+                       <0 0xec541000 0 0x280>,  /* SSI */
+                       <0 0xec740000 0 0x200>;  /* Audio DMAC peri peri */
+               reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
+
+               clocks = <&mstp10_clks R8A7794_CLK_SSI_ALL>,
+                        <&mstp10_clks R8A7794_CLK_SSI9>,
+                        <&mstp10_clks R8A7794_CLK_SSI8>,
+                        <&mstp10_clks R8A7794_CLK_SSI7>,
+                        <&mstp10_clks R8A7794_CLK_SSI6>,
+                        <&mstp10_clks R8A7794_CLK_SSI5>,
+                        <&mstp10_clks R8A7794_CLK_SSI4>,
+                        <&mstp10_clks R8A7794_CLK_SSI3>,
+                        <&mstp10_clks R8A7794_CLK_SSI2>,
+                        <&mstp10_clks R8A7794_CLK_SSI1>,
+                        <&mstp10_clks R8A7794_CLK_SSI0>,
+                        <&mstp10_clks R8A7794_CLK_SCU_SRC6>,
+                        <&mstp10_clks R8A7794_CLK_SCU_SRC5>,
+                        <&mstp10_clks R8A7794_CLK_SCU_SRC4>,
+                        <&mstp10_clks R8A7794_CLK_SCU_SRC3>,
+                        <&mstp10_clks R8A7794_CLK_SCU_SRC2>,
+                        <&mstp10_clks R8A7794_CLK_SCU_SRC1>,
+                        <&mstp10_clks R8A7794_CLK_SCU_CTU0_MIX0>,
+                        <&mstp10_clks R8A7794_CLK_SCU_CTU1_MIX1>,
+                        <&mstp10_clks R8A7794_CLK_SCU_CTU0_MIX0>,
+                        <&mstp10_clks R8A7794_CLK_SCU_CTU1_MIX1>,
+                        <&mstp10_clks R8A7794_CLK_SCU_DVC0>,
+                        <&mstp10_clks R8A7794_CLK_SCU_DVC1>,
+                        <&audio_clka>, <&audio_clkb>, <&audio_clkc>,
+                        <&m2_clk>;
+               clock-names = "ssi-all",
+                             "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
+                             "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0",
+                             "src.6", "src.5", "src.4", "src.3", "src.2",
+                             "src.1",
+                             "ctu.0", "ctu.1",
+                             "mix.0", "mix.1",
+                             "dvc.0", "dvc.1",
+                             "clk_a", "clk_b", "clk_c", "clk_i";
+               power-domains = <&cpg_clocks>;
+
+               status = "disabled";
+
+               rcar_sound,dvc {
+                       dvc0: dvc@0 {
+                               dmas = <&audma0 0xbc>;
+                               dma-names = "tx";
+                       };
+                       dvc1: dvc@1 {
+                               dmas = <&audma0 0xbe>;
+                               dma-names = "tx";
+                       };
+               };
+
+               rcar_sound,mix {
+                       mix0: mix@0 { };
+                       mix1: mix@1 { };
+               };
+
+               rcar_sound,ctu {
+                       ctu00: ctu@0 { };
+                       ctu01: ctu@1 { };
+                       ctu02: ctu@2 { };
+                       ctu03: ctu@3 { };
+                       ctu10: ctu@4 { };
+                       ctu11: ctu@5 { };
+                       ctu12: ctu@6 { };
+                       ctu13: ctu@7 { };
+               };
+
+               rcar_sound,src {
+                       src@0 {
+                               status = "disabled";
+                       };
+                       src1: src@1 {
+                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&audma0 0x87>, <&audma0 0x9c>;
+                               dma-names = "rx", "tx";
+                       };
+                       src2: src@2 {
+                               interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&audma0 0x89>, <&audma0 0x9e>;
+                               dma-names = "rx", "tx";
+                       };
+                       src3: src@3 {
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&audma0 0x8b>, <&audma0 0xa0>;
+                               dma-names = "rx", "tx";
+                       };
+                       src4: src@4 {
+                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&audma0 0x8d>, <&audma0 0xb0>;
+                               dma-names = "rx", "tx";
+                       };
+                       src5: src@5 {
+                               interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&audma0 0x8f>, <&audma0 0xb2>;
+                               dma-names = "rx", "tx";
+                       };
+                       src6: src@6 {
+                               interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&audma0 0x91>, <&audma0 0xb4>;
+                               dma-names = "rx", "tx";
+                       };
+               };
+
+               rcar_sound,ssi {
+                       ssi0: ssi@0 {
+                               interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&audma0 0x01>, <&audma0 0x02>,
+                                      <&audma0 0x15>, <&audma0 0x16>;
+                               dma-names = "rx", "tx", "rxu", "txu";
+                       };
+                       ssi1: ssi@1 {
+                               interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&audma0 0x03>, <&audma0 0x04>,
+                                      <&audma0 0x49>, <&audma0 0x4a>;
+                               dma-names = "rx", "tx", "rxu", "txu";
+                       };
+                       ssi2: ssi@2 {
+                               interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&audma0 0x05>, <&audma0 0x06>,
+                                      <&audma0 0x63>, <&audma0 0x64>;
+                               dma-names = "rx", "tx", "rxu", "txu";
+                       };
+                       ssi3: ssi@3 {
+                               interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&audma0 0x07>, <&audma0 0x08>,
+                                      <&audma0 0x6f>, <&audma0 0x70>;
+                               dma-names = "rx", "tx", "rxu", "txu";
+                       };
+                       ssi4: ssi@4 {
+                               interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&audma0 0x09>, <&audma0 0x0a>,
+                                      <&audma0 0x71>, <&audma0 0x72>;
+                               dma-names = "rx", "tx", "rxu", "txu";
+                       };
+                       ssi5: ssi@5 {
+                               interrupts = <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&audma0 0x0b>, <&audma0 0x0c>,
+                                      <&audma0 0x73>, <&audma0 0x74>;
+                               dma-names = "rx", "tx", "rxu", "txu";
+                       };
+                       ssi6: ssi@6 {
+                               interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&audma0 0x0d>, <&audma0 0x0e>,
+                                      <&audma0 0x75>, <&audma0 0x76>;
+                               dma-names = "rx", "tx", "rxu", "txu";
+                       };
+                       ssi7: ssi@7 {
+                               interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&audma0 0x0f>, <&audma0 0x10>,
+                                      <&audma0 0x79>, <&audma0 0x7a>;
+                               dma-names = "rx", "tx", "rxu", "txu";
+                       };
+                       ssi8: ssi@8 {
+                               interrupts = <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&audma0 0x11>, <&audma0 0x12>,
+                                      <&audma0 0x7b>, <&audma0 0x7c>;
+                               dma-names = "rx", "tx", "rxu", "txu";
+                       };
+                       ssi9: ssi@9 {
+                               interrupts = <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&audma0 0x13>, <&audma0 0x14>,
+                                      <&audma0 0x7d>, <&audma0 0x7e>;
+                               dma-names = "rx", "tx", "rxu", "txu";
+                       };
+               };
+       };
 };
index 843d2be..a935523 100644 (file)
@@ -43,6 +43,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/pinctrl/rockchip.h>
 #include <dt-bindings/clock/rk3036-cru.h>
+#include <dt-bindings/soc/rockchip,boot-mode.h>
 #include "skeleton.dtsi"
 
 / {
        };
 
        grf: syscon@20008000 {
-               compatible = "rockchip,rk3036-grf", "syscon";
+               compatible = "rockchip,rk3036-grf", "syscon", "simple-mfd";
                reg = <0x20008000 0x1000>;
+
+               reboot-mode {
+                       compatible = "syscon-reboot-mode";
+                       offset = <0x1d8>;
+                       mode-normal = <BOOT_NORMAL>;
+                       mode-recovery = <BOOT_RECOVERY>;
+                       mode-bootloader = <BOOT_FASTBOOT>;
+                       mode-loader = <BOOT_BL_DOWNLOAD>;
+               };
        };
 
        acodec: acodec-ana@20030000 {
index 452ca24..041dd5d 100644 (file)
        };
 };
 
+&panel {
+       power-supply = <&vcc_lcd>;
+};
+
 &pinctrl {
        lcd {
                lcd_en: lcd-en  {
index 736b08b..44ebc6e 100644 (file)
                };
        };
 };
+
+&panel {
+       power-supply = <&vcc_lcd>;
+};
index 963365d..d59208b 100644 (file)
@@ -48,7 +48,7 @@
                reg = <0x0 0x80000000>;
        };
 
-       backlight {
+       backlight: backlight {
                compatible = "pwm-backlight";
                brightness-levels = <
                          0   1   2   3   4   5   6   7
                #clock-cells = <0>;
        };
 
+       panel: panel {
+               compatible ="lg,lp079qx1-sp0v", "simple-panel";
+               backlight = <&backlight>;
+               enable-gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&lcd_cs>;
+
+               ports {
+                       panel_in: port {
+                               panel_in_edp: endpoint {
+                                       remote-endpoint = <&edp_out_panel>;
+                               };
+                       };
+               };
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
                autorepeat;
        cpu0-supply = <&vdd_cpu>;
 };
 
+&edp {
+       force-hpd;
+       status = "okay";
+
+       ports {
+               edp_out: port@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       edp_out_panel: endpoint {
+                               reg = <0>;
+                               remote-endpoint = <&panel_in_edp>;
+                       };
+               };
+       };
+};
+
+&edp_phy {
+       status = "okay";
+};
+
 &emmc {
        bus-width = <8>;
        cap-mmc-highspeed;
                };
        };
 
+       lcd {
+               lcd_cs: lcd-cs {
+                       rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        pmic {
                pmic_int: pmic-int {
                        rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
diff --git a/arch/arm/boot/dts/rk3288-fennec.dts b/arch/arm/boot/dts/rk3288-fennec.dts
new file mode 100644 (file)
index 0000000..2e3c341
--- /dev/null
@@ -0,0 +1,382 @@
+/*
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+
+#include "rk3288.dtsi"
+
+/ {
+       model = "Rockchip RK3288 Fennec Board";
+       compatible = "rockchip,rk3288-fennec", "rockchip,rk3288";
+
+       memory {
+               reg = <0x0 0x80000000>;
+               device_type = "memory";
+       };
+
+       ext_gmac: external-gmac-clock {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <125000000>;
+               clock-output-names = "ext_gmac";
+       };
+
+       vcc_sys: vsys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_sys";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&cpu0 {
+       cpu0-supply = <&vdd_cpu>;
+};
+
+&emmc {
+       bus-width = <8>;
+       cap-mmc-highspeed;
+       disable-wp;
+       non-removable;
+       num-slots = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
+       status = "okay";
+};
+
+&gmac {
+       assigned-clocks = <&cru SCLK_MAC>;
+       assigned-clock-parents = <&ext_gmac>;
+       clock_in_out = "input";
+       pinctrl-names = "default";
+       pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>;
+       phy-supply = <&vcc_lan>;
+       phy-mode = "rgmii";
+       snps,reset-active-low;
+       snps,reset-delays-us = <0 10000 1000000>;
+       snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>;
+       tx_delay = <0x30>;
+       rx_delay = <0x10>;
+       status = "okay";
+};
+
+&hdmi {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       rk808: pmic@1b {
+               compatible = "rockchip,rk808";
+               reg = <0x1b>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
+               #clock-cells = <1>;
+               clock-output-names = "xin32k", "rk808-clkout2";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int &global_pwroff>;
+               rockchip,system-power-controller;
+               wakeup-source;
+
+               vcc1-supply = <&vcc_sys>;
+               vcc2-supply = <&vcc_sys>;
+               vcc3-supply = <&vcc_sys>;
+               vcc4-supply = <&vcc_sys>;
+               vcc6-supply = <&vcc_sys>;
+               vcc7-supply = <&vcc_sys>;
+               vcc8-supply = <&vcc_io>;
+               vcc9-supply = <&vcc_io>;
+               vcc10-supply = <&vcc_io>;
+               vcc11-supply = <&vcc_io>;
+               vcc12-supply = <&vcc_io>;
+               vddio-supply = <&vcc_io>;
+
+               regulators {
+                       vdd_cpu: DCDC_REG1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-name = "vdd_arm";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_gpu: DCDC_REG2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <1250000>;
+                               regulator-name = "vdd_gpu";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1000000>;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vcc_ddr";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_io: DCDC_REG4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc_io";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vccio_pmu: LDO_REG1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vccio_pmu";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcca_33: LDO_REG2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcca_33";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_10: LDO_REG3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-name = "vdd_10";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1000000>;
+                               };
+                       };
+
+                       vcc_wl: LDO_REG4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_wl";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vccio_sd: LDO_REG5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vccio_sd";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vdd10_lcd: LDO_REG6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-name = "vdd10_lcd";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1000000>;
+                               };
+                       };
+
+                       vcc_18: LDO_REG7 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_18";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcc18_lcd: LDO_REG8 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc18_lcd";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcc_sd: SWITCH_REG1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vcc_sd";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_lan: SWITCH_REG2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vcc_lan";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+               };
+       };
+};
+
+&pinctrl {
+       pcfg_output_high: pcfg-output-high {
+               output-high;
+       };
+
+       pcfg_output_low: pcfg-output-low {
+               output-low;
+       };
+
+       pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
+               drive-strength = <8>;
+       };
+
+       pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
+               bias-pull-up;
+               drive-strength = <8>;
+       };
+
+       gmac {
+               phy_int: phy-int {
+                       rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               phy_pmeb: phy-pmeb {
+                       rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               phy_rst: phy-rst {
+                       rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
+               };
+       };
+
+       pmic {
+               pmic_int: pmic-int {
+                       rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       usbphy {
+               host_drv: host-drv {
+                       rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usbphy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&host_drv>;
+       vbus_drv-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host1 {
+       status = "okay";
+};
+
+&usb_otg {
+       status = "okay";
+};
+
+&usb_hsic {
+       status = "okay";
+};
+
+&vopb {
+       status = "okay";
+};
+
+&vopb_mmu {
+       status = "okay";
+};
+
+&vopl {
+       status = "okay";
+};
+
+&vopl_mmu {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi b/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi
new file mode 100644 (file)
index 0000000..ec418c9
--- /dev/null
@@ -0,0 +1,310 @@
+/*
+ * Device tree file for Firefly Rockchip RK3288 Core board
+ * Copyright (c) 2016 Randy Li <ayaka@soulik.info>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <dt-bindings/input/input.h>
+#include "rk3288.dtsi"
+
+/ {
+       memory {
+               device_type = "memory";
+               reg = <0 0x80000000>;
+       };
+
+       ext_gmac: external-gmac-clock {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <125000000>;
+               clock-output-names = "ext_gmac";
+       };
+
+
+       vcc_flash: flash-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_flash";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc_io>;
+       };
+};
+
+&cpu0 {
+       cpu0-supply = <&vdd_cpu>;
+};
+
+&emmc {
+       bus-width = <8>;
+       cap-mmc-highspeed;
+       disable-wp;
+       mmc-ddr-1_8v;
+       mmc-hs200-1_8v;
+       non-removable;
+       num-slots = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>;
+       vmmc-supply = <&vcc_io>;
+       vqmmc-supply = <&vcc_flash>;
+       status = "okay";
+};
+
+&gmac {
+       assigned-clocks = <&cru SCLK_MAC>;
+       assigned-clock-parents = <&ext_gmac>;
+       clock_in_out = "input";
+       pinctrl-names = "default";
+       pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>;
+       phy-supply = <&vcc_lan>;
+       phy-mode = "rgmii";
+       snps,reset-active-low;
+       snps,reset-delays-us = <0 10000 1000000>;
+       snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>;
+       tx_delay = <0x30>;
+       rx_delay = <0x10>;
+       status = "ok";
+};
+
+&i2c0 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       vdd_cpu: syr827@40 {
+               compatible = "silergy,syr827";
+               fcs,suspend-voltage-selector = <1>;
+               reg = <0x40>;
+               regulator-name = "vdd_cpu";
+               regulator-min-microvolt = <850000>;
+               regulator-max-microvolt = <1350000>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-enable-ramp-delay = <300>;
+               regulator-ramp-delay = <8000>;
+               vin-supply = <&vcc_sys>;
+       };
+
+       vdd_gpu: syr828@41 {
+               compatible = "silergy,syr828";
+               fcs,suspend-voltage-selector = <1>;
+               reg = <0x41>;
+               regulator-name = "vdd_gpu";
+               regulator-min-microvolt = <850000>;
+               regulator-max-microvolt = <1350000>;
+               regulator-always-on;
+               vin-supply = <&vcc_sys>;
+       };
+
+       act8846: act8846@5a {
+               compatible = "active-semi,act8846";
+               reg = <0x5a>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_vsel>, <&pwr_hold>;
+               system-power-controller;
+
+               vp1-supply = <&vcc_sys>;
+               vp2-supply = <&vcc_sys>;
+               vp3-supply = <&vcc_sys>;
+               vp4-supply = <&vcc_sys>;
+               inl1-supply = <&vcc_sys>;
+               inl2-supply = <&vcc_sys>;
+               inl3-supply = <&vcc_20>;
+
+               regulators {
+                       vcc_ddr: REG1 {
+                               regulator-name = "vcc_ddr";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                       };
+
+                       vcc_io: REG2 {
+                               regulator-name = "vcc_io";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vdd_log: REG3 {
+                               regulator-name = "vdd_log";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-always-on;
+                       };
+
+                       vcc_20: REG4 {
+                               regulator-name = "vcc_20";
+                               regulator-min-microvolt = <2000000>;
+                               regulator-max-microvolt = <2000000>;
+                               regulator-always-on;
+                       };
+
+                       vccio_sd: REG5 {
+                               regulator-name = "vccio_sd";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       vdd10_lcd: REG6 {
+                               regulator-name = "vdd10_lcd";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                       };
+
+                       vcca_18: REG7  {
+                               regulator-name = "vcca_18";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                       };
+
+                       vcca_33: REG8 {
+                               regulator-name = "vcca_33";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vcc_lan: REG9 {
+                               regulator-name = "vcca_lan";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       vdd_10: REG10 {
+                               regulator-name = "vdd_10";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                       };
+
+                       vccio_wl: vcc_18: REG11 {
+                               regulator-name = "vcc_18";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       vcc18_lcd: REG12 {
+                               regulator-name = "vcc18_lcd";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+               };
+       };
+};
+
+&io_domains {
+       status = "okay";
+
+       audio-supply = <&vccio_wl>;
+       bb-supply = <&vcc_io>;
+       dvp-supply = <&dovdd_1v8>;
+       flash0-supply = <&vcc_flash>;
+       flash1-supply = <&vcc_lan>;
+       gpio30-supply = <&vcc_io>;
+       gpio1830-supply = <&vcc_io>;
+       lcdc-supply = <&vcc_io>;
+       sdcard-supply = <&vccio_sd>;
+       wifi-supply = <&vccio_wl>;
+};
+
+&pinctrl {
+       pcfg_output_high: pcfg-output-high {
+               output-high;
+       };
+
+       pcfg_output_low: pcfg-output-low {
+               output-low;
+       };
+
+       pcfg_pull_up_drv_12ma: pcfg-pull-up-drv-12ma {
+               bias-pull-up;
+               drive-strength = <12>;
+       };
+
+       act8846 {
+               pwr_hold: pwr-hold {
+                       rockchip,pins = <0 1 RK_FUNC_GPIO &pcfg_output_high>;
+               };
+
+               pmic_vsel: pmic-vsel {
+                       rockchip,pins = <7 14 RK_FUNC_GPIO &pcfg_output_low>;
+               };
+       };
+
+       gmac {
+               phy_int: phy-int {
+                       rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               phy_pmeb: phy-pmeb {
+                       rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               phy_rst: phy-rst {
+                       rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
+               };
+       };
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <0>;
+       rockchip,hw-tshut-polarity = <0>;
+       status = "okay";
+};
+
+&vopb {
+       status = "okay";
+};
+
+&vopb_mmu {
+       status = "okay";
+};
+
+&vopl {
+       status = "okay";
+};
+
+&vopl_mmu {
+       status = "okay";
+};
+
+&wdt {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/rk3288-firefly-reload.dts b/arch/arm/boot/dts/rk3288-firefly-reload.dts
new file mode 100644 (file)
index 0000000..751bee8
--- /dev/null
@@ -0,0 +1,403 @@
+/*
+ * Device tree file for Firefly Rockchip RK3288 Core board
+ * Copyright (c) 2016 Randy Li <ayaka@soulik.info>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "rk3288-firefly-reload-core.dtsi"
+
+/ {
+       model = "Firefly-RK3288-reload";
+       compatible = "firefly,firefly-rk3288-reload", "rockchip,rk3288";
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               power {
+                       wakeup-source;
+                       gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
+                       label = "GPIO Power";
+                       linux,code = <KEY_POWER>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pwr_key>;
+               };
+       };
+
+       ir-receiver {
+               compatible = "gpio-ir-receiver";
+               gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               power {
+                       gpios = <&gpio8 2 GPIO_ACTIVE_LOW>;
+                       label = "firefly:blue:power";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&power_led>;
+                       panic-indicator;
+               };
+
+               work {
+                       gpios = <&gpio8 1 GPIO_ACTIVE_LOW>;
+                       label = "firefly:blue:user";
+                       linux,default-trigger = "rc-feedback";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&work_led>;
+               };
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&hym8563>;
+               clock-names = "ext_clock";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_enable>;
+               reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "SPDIF";
+               simple-audio-card,dai-link@1 {  /* S/PDIF - S/PDIF */
+                       cpu { sound-dai = <&spdif>; };
+                       codec { sound-dai = <&spdif_out>; };
+               };
+       };
+
+       spdif_out: spdif-out {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
+       vcc_host_5v: usb-host-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&host_vbus_drv>;
+               regulator-name = "vcc_host_5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               vin-supply = <&vcc_5v>;
+       };
+
+       vcc_5v: vcc_sys: vsys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vcc_sd: sdmmc-regulator {
+               compatible = "regulator-fixed";
+               gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sdmmc_pwr>;
+               regulator-name = "vcc_sd";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <100000>;
+               vin-supply = <&vcc_io>;
+       };
+
+       vcc_otg_5v: usb-otg-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&otg_vbus_drv>;
+               regulator-name = "vcc_otg_5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               vin-supply = <&vcc_5v>;
+       };
+
+       dovdd_1v8: dovdd-1v8-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&dvp_pwr>;
+               regulator-name = "dovdd_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc_io>;
+       };
+
+       vcc28_dvp: vcc28-dvp-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&dvp_pwr>;
+               regulator-name = "vcc28_dvp";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+               vin-supply = <&vcc_io>;
+       };
+
+       af_28: af_28-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&dvp_pwr>;
+               regulator-name = "af_28";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+               vin-supply = <&vcc_io>;
+       };
+
+       dvdd_1v2: af_28-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&cif_pwr>;
+               regulator-name = "dvdd_1v2";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               vin-supply = <&vcc_io>;
+       };
+
+       vbat_wl: wifi-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vbat_wl";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_io>;
+       };
+};
+
+&i2c0 {
+       hym8563: hym8563@51 {
+               compatible = "haoyu,hym8563";
+               reg = <0x51>;
+               #clock-cells = <0>;
+               clock-frequency = <32768>;
+               clock-output-names = "xin32k";
+               interrupt-parent = <&gpio7>;
+               interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&rtc_int>;
+       };
+};
+
+&i2c2 {
+       status = "okay";
+
+       codec: es8328@10 {
+               compatible = "everest,es8328";
+               DVDD-supply = <&vcca_33>;
+               AVDD-supply = <&vcca_33>;
+               PVDD-supply = <&vcca_33>;
+               HPVDD-supply = <&vcca_33>;
+               clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
+               clock-names = "i2s_hclk", "i2s_clk";
+               reg = <0x10>;
+       };
+};
+
+&i2s {
+       status = "okay";
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       card-detect-delay = <200>;
+       disable-wp;
+       num-slots = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
+       vmmc-supply = <&vcc_sd>;
+       vqmmc-supply = <&vccio_sd>;
+       status = "okay";
+};
+
+&sdio0 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       disable-wp;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       non-removable;
+       num-slots = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>, <&sdio0_int>;
+       sd-uhs-sdr12;
+       sd-uhs-sdr25;
+       sd-uhs-sdr50;
+       sd-uhs-ddr50;
+       vmmc-supply = <&vbat_wl>;
+       vqmmc-supply = <&vccio_wl>;
+       status = "okay";
+};
+
+&spdif {
+       status = "okay";
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>;
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart3 {
+       status = "okay";
+};
+
+&usbphy {
+       status = "okay";
+};
+
+&usb_host1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usbhub_rst>;
+       status = "okay";
+};
+
+&usb_otg {
+       status = "okay";
+};
+
+&pinctrl {
+       ir {
+               ir_int: ir-int {
+                       rockchip,pins = <7 0 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       dvp {
+               dvp_pwr: dvp-pwr {
+                       rockchip,pins = <0 11 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               cif_pwr: cif-pwr {
+                       rockchip,pins = <7 12 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       hym8563 {
+               rtc_int: rtc-int {
+                       rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       keys {
+               pwr_key: pwr-key {
+                       rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       leds {
+               power_led: power-led {
+                       rockchip,pins = <8 2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               work_led: work-led {
+                       rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       sdmmc {
+               /*
+                * Default drive strength isn't enough to achieve even
+                * high-speed mode on firefly board so bump up to 12ma.
+                */
+               sdmmc_bus4: sdmmc-bus4 {
+                       rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
+                                       <6 17 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
+                                       <6 18 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
+                                       <6 19 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
+               };
+
+               sdmmc_clk: sdmmc-clk {
+                       rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_12ma>;
+               };
+
+               sdmmc_cmd: sdmmc-cmd {
+                       rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
+               };
+
+               sdmmc_pwr: sdmmc-pwr {
+                       rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       sdio {
+               wifi_enable: wifi-enable {
+                       rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb_host {
+               host_vbus_drv: host-vbus-drv {
+                       rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               usbhub_rst: usbhub-rst {
+                       rockchip,pins = <8 3 RK_FUNC_GPIO &pcfg_output_high>;
+               };
+       };
+
+       usb_otg {
+               otg_vbus_drv: otg-vbus-drv {
+                       rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
index dda8d25..56dd377 100644 (file)
                interrupts = <1 IRQ_TYPE_EDGE_RISING>;
                pinctrl-names = "default";
                pinctrl-0 = <&comp_int>;
+               vdd-supply = <&vcc_io>;
+               vid-supply = <&vcc_io>;
        };
 
-       l3g4200d: l3g4200d@68 {
+       l3g4200d: l3g4200d@69 {
                compatible = "st,l3g4200d-gyro";
                st,drdy-int-pin = <2>;
-               reg = <0x6b>;
+               reg = <0x69>;
+               vdd-supply = <&vcc_io>;
+               vddio-supply = <&vcc_io>;
        };
 
        mma8452: mma8452@1d {
 &usbphy {
        status = "okay";
 };
+
+&usb_otg {
+       status = "okay";
+};
index 91c4b3c..17ec2e2 100644 (file)
@@ -45,6 +45,7 @@
 #include <dt-bindings/clock/rk3288-cru.h>
 #include <dt-bindings/thermal/thermal.h>
 #include <dt-bindings/power/rk3288-power.h>
+#include <dt-bindings/soc/rockchip,boot-mode.h>
 #include "skeleton.dtsi"
 
 / {
                                clocks = <&cru ACLK_GPU>;
                        };
                };
+
+               reboot-mode {
+                       compatible = "syscon-reboot-mode";
+                       offset = <0x94>;
+                       mode-normal = <BOOT_NORMAL>;
+                       mode-recovery = <BOOT_RECOVERY>;
+                       mode-bootloader = <BOOT_FASTBOOT>;
+                       mode-loader = <BOOT_BL_DOWNLOAD>;
+               };
        };
 
        sgrf: syscon@ff740000 {
                        compatible = "rockchip,rk3288-io-voltage-domain";
                        status = "disabled";
                };
+
+               usbphy: usbphy {
+                       compatible = "rockchip,rk3288-usb-phy";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       usbphy0: usb-phy@320 {
+                               #phy-cells = <0>;
+                               reg = <0x320>;
+                               clocks = <&cru SCLK_OTGPHY0>;
+                               clock-names = "phyclk";
+                               #clock-cells = <0>;
+                       };
+
+                       usbphy1: usb-phy@334 {
+                               #phy-cells = <0>;
+                               reg = <0x334>;
+                               clocks = <&cru SCLK_OTGPHY1>;
+                               clock-names = "phyclk";
+                               #clock-cells = <0>;
+                       };
+
+                       usbphy2: usb-phy@348 {
+                               #phy-cells = <0>;
+                               reg = <0x348>;
+                               clocks = <&cru SCLK_OTGPHY2>;
+                               clock-names = "phyclk";
+                               #clock-cells = <0>;
+                       };
+               };
        };
 
        wdt: watchdog@ff800000 {
                };
        };
 
-       usbphy: phy {
-               compatible = "rockchip,rk3288-usb-phy";
-               rockchip,grf = <&grf>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-
-               usbphy0: usb-phy@320 {
-                       #phy-cells = <0>;
-                       reg = <0x320>;
-                       clocks = <&cru SCLK_OTGPHY0>;
-                       clock-names = "phyclk";
-                       #clock-cells = <0>;
-               };
-
-               usbphy1: usb-phy@334 {
-                       #phy-cells = <0>;
-                       reg = <0x334>;
-                       clocks = <&cru SCLK_OTGPHY1>;
-                       clock-names = "phyclk";
-                       #clock-cells = <0>;
-               };
-
-               usbphy2: usb-phy@348 {
-                       #phy-cells = <0>;
-                       reg = <0x348>;
-                       clocks = <&cru SCLK_OTGPHY2>;
-                       clock-names = "phyclk";
-                       #clock-cells = <0>;
-               };
-       };
-
        pinctrl: pinctrl {
                compatible = "rockchip,rk3288-pinctrl";
                rockchip,grf = <&grf>;
index e2cd683..e15beb3 100644 (file)
@@ -43,6 +43,7 @@
 
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/soc/rockchip,boot-mode.h>
 #include "skeleton.dtsi"
 
 / {
        };
 
        pmu: pmu@20004000 {
-               compatible = "rockchip,rk3066-pmu", "syscon";
+               compatible = "rockchip,rk3066-pmu", "syscon", "simple-mfd";
                reg = <0x20004000 0x100>;
+
+               reboot-mode {
+                       compatible = "syscon-reboot-mode";
+                       offset = <0x40>;
+                       mode-normal = <BOOT_NORMAL>;
+                       mode-recovery = <BOOT_RECOVERY>;
+                       mode-bootloader = <BOOT_FASTBOOT>;
+                       mode-loader = <BOOT_BL_DOWNLOAD>;
+               };
        };
 
        grf: grf@20008000 {
index 527e319..6274359 100644 (file)
@@ -8,6 +8,8 @@
  * published by the Free Software Foundation.
  */
 
+#include <dt-bindings/pinctrl/samsung.h>
+
 &pinctrl_0 {
        /*
         * Pin banks
 
        uart0_data: uart0-data {
                samsung,pins = "gph-0", "gph-1";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 
        uart0_fctl: uart0-fctl {
                samsung,pins = "gph-8", "gph-9";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 
        uart1_data: uart1-data {
                samsung,pins = "gph-2", "gph-3";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 
        uart1_fctl: uart1-fctl {
                samsung,pins = "gph-10", "gph-11";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 
        uart2_data: uart2-data {
                samsung,pins = "gph-4", "gph-5";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 
        uart2_fctl: uart2-fctl {
                samsung,pins = "gph-6", "gph-7";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 
        uart3_data: uart3-data {
                samsung,pins = "gph-6", "gph-7";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 
        extuart_clk: extuart-clk {
                samsung,pins = "gph-12";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 
        i2c0_bus: i2c0-bus {
                samsung,pins = "gpe-14", "gpe-15";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 
        spi0_bus: spi0-bus {
                samsung,pins = "gpe-11", "gpe-12", "gpe-13";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 
        sd0_clk: sd0-clk {
                samsung,pins = "gpe-5";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 
        sd0_cmd: sd0-cmd {
                samsung,pins = "gpe-6";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 
        sd0_bus1: sd0-bus1 {
                samsung,pins = "gpe-7";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 
        sd0_bus4: sd0-bus4 {
                samsung,pins = "gpe-8", "gpe-9", "gpe-10";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 
        sd1_cmd: sd1-cmd {
                samsung,pins = "gpl-8";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 
        sd1_clk: sd1-clk {
                samsung,pins = "gpl-9";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 
        sd1_bus1: sd1-bus1 {
                samsung,pins = "gpl-0";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 
        sd1_bus4: sd1-bus4 {
                samsung,pins = "gpl-1", "gpl-2", "gpl-3";
-               samsung,pin-function = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
        };
 };
index a25debb..f4afda3 100644 (file)
 &pinctrl0 {
        gpio_leds: gpio-leds {
                samsung,pins = "gpk-4", "gpk-5", "gpk-6", "gpk-7";
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        gpio_keys: gpio-keys {
                samsung,pins = "gpn-0", "gpn-1", "gpn-2", "gpn-3",
                                "gpn-4", "gpn-5", "gpl-11", "gpl-12";
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 };
 
index b1197d8..4e8e802 100644 (file)
@@ -12,9 +12,7 @@
  * published by the Free Software Foundation.
  */
 
-#define PIN_PULL_NONE  0
-#define PIN_PULL_DOWN  1
-#define PIN_PULL_UP    2
+#include <dt-bindings/pinctrl/samsung.h>
 
 &pinctrl0 {
        /*
 
        uart0_data: uart0-data {
                samsung,pins = "gpa-0", "gpa-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        uart0_fctl: uart0-fctl {
                samsung,pins = "gpa-2", "gpa-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        uart1_data: uart1-data {
                samsung,pins = "gpa-4", "gpa-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        uart1_fctl: uart1-fctl {
                samsung,pins = "gpa-6", "gpa-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        uart2_data: uart2-data {
                samsung,pins = "gpb-0", "gpb-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        uart3_data: uart3-data {
                samsung,pins = "gpb-2", "gpb-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        ext_dma_0: ext-dma-0 {
                samsung,pins = "gpb-0", "gpb-1";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        ext_dma_1: ext-dma-1 {
                samsung,pins = "gpb-2", "gpb-3";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        irda_data_0: irda-data-0 {
                samsung,pins = "gpb-0", "gpb-1";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        irda_data_1: irda-data-1 {
                samsung,pins = "gpb-2", "gpb-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        irda_sdbw: irda-sdbw {
                samsung,pins = "gpb-4";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        i2c0_bus: i2c0-bus {
                samsung,pins = "gpb-5", "gpb-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
        };
 
        i2c1_bus: i2c1-bus {
                /* S3C6410-only */
                samsung,pins = "gpb-2", "gpb-3";
-               samsung,pin-function = <6>;
-               samsung,pin-pud = <PIN_PULL_UP>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_6>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
        };
 
        spi0_bus: spi0-bus {
                samsung,pins = "gpc-0", "gpc-1", "gpc-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
        };
 
        spi0_cs: spi0-cs {
                samsung,pins = "gpc-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        spi1_bus: spi1-bus {
                samsung,pins = "gpc-4", "gpc-5", "gpc-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
        };
 
        spi1_cs: spi1-cs {
                samsung,pins = "gpc-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        sd0_cmd: sd0-cmd {
                samsung,pins = "gpg-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        sd0_clk: sd0-clk {
                samsung,pins = "gpg-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        sd0_bus1: sd0-bus1 {
                samsung,pins = "gpg-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        sd0_bus4: sd0-bus4 {
                samsung,pins = "gpg-2", "gpg-3", "gpg-4", "gpg-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        sd0_cd: sd0-cd {
                samsung,pins = "gpg-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_UP>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
        };
 
        sd1_cmd: sd1-cmd {
                samsung,pins = "gph-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        sd1_clk: sd1-clk {
                samsung,pins = "gph-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        sd1_bus1: sd1-bus1 {
                samsung,pins = "gph-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        sd1_bus4: sd1-bus4 {
                samsung,pins = "gph-2", "gph-3", "gph-4", "gph-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        sd1_bus8: sd1-bus8 {
                samsung,pins = "gph-2", "gph-3", "gph-4", "gph-5",
                                "gph-6", "gph-7", "gph-8", "gph-9";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        sd1_cd: sd1-cd {
                samsung,pins = "gpg-6";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_UP>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
        };
 
        sd2_cmd: sd2-cmd {
                samsung,pins = "gpc-4";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        sd2_clk: sd2-clk {
                samsung,pins = "gpc-5";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        sd2_bus1: sd2-bus1 {
                samsung,pins = "gph-6";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        sd2_bus4: sd2-bus4 {
                samsung,pins = "gph-6", "gph-7", "gph-8", "gph-9";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        i2s0_bus: i2s0-bus {
                samsung,pins = "gpd-0", "gpd-2", "gpd-3", "gpd-4";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        i2s0_cdclk: i2s0-cdclk {
                samsung,pins = "gpd-1";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        i2s1_bus: i2s1-bus {
                samsung,pins = "gpe-0", "gpe-2", "gpe-3", "gpe-4";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        i2s1_cdclk: i2s1-cdclk {
                samsung,pins = "gpe-1";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        i2s2_bus: i2s2-bus {
                /* S3C6410-only */
                samsung,pins = "gpc-4", "gpc-5", "gpc-6", "gph-6",
                                "gph-8", "gph-9";
-               samsung,pin-function = <5>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_5>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        i2s2_cdclk: i2s2-cdclk {
                /* S3C6410-only */
                samsung,pins = "gph-7";
-               samsung,pin-function = <5>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_5>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        pcm0_bus: pcm0-bus {
                samsung,pins = "gpd-0", "gpd-2", "gpd-3", "gpd-4";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        pcm0_extclk: pcm0-extclk {
                samsung,pins = "gpd-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        pcm1_bus: pcm1-bus {
                samsung,pins = "gpe-0", "gpe-2", "gpe-3", "gpe-4";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        pcm1_extclk: pcm1-extclk {
                samsung,pins = "gpe-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        ac97_bus_0: ac97-bus-0 {
                samsung,pins = "gpd-0", "gpd-1", "gpd-2", "gpd-3", "gpd-4";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        ac97_bus_1: ac97-bus-1 {
                samsung,pins = "gpe-0", "gpe-1", "gpe-2", "gpe-3", "gpe-4";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        cam_port: cam-port {
                samsung,pins = "gpf-0", "gpf-1", "gpf-2", "gpf-4",
                                "gpf-5", "gpf-6", "gpf-7", "gpf-8",
                                "gpf-9", "gpf-10", "gpf-11", "gpf-12";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        cam_rst: cam-rst {
                samsung,pins = "gpf-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        cam_field: cam-field {
                /* S3C6410-only */
                samsung,pins = "gpb-4";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        pwm_extclk: pwm-extclk {
                samsung,pins = "gpf-13";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        pwm0_out: pwm0-out {
                samsung,pins = "gpf-14";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        pwm1_out: pwm1-out {
                samsung,pins = "gpf-15";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        clkout0: clkout-0 {
                samsung,pins = "gpf-14";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_col0_0: keypad-col0-0 {
                samsung,pins = "gph-0";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_col1_0: keypad-col1-0 {
                samsung,pins = "gph-1";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_col2_0: keypad-col2-0 {
                samsung,pins = "gph-2";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_col3_0: keypad-col3-0 {
                samsung,pins = "gph-3";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_col4_0: keypad-col4-0 {
                samsung,pins = "gph-4";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_col5_0: keypad-col5-0 {
                samsung,pins = "gph-5";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_col6_0: keypad-col6-0 {
                samsung,pins = "gph-6";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_col7_0: keypad-col7-0 {
                samsung,pins = "gph-7";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_col0_1: keypad-col0-1 {
                samsung,pins = "gpl-0";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_col1_1: keypad-col1-1 {
                samsung,pins = "gpl-1";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_col2_1: keypad-col2-1 {
                samsung,pins = "gpl-2";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_col3_1: keypad-col3-1 {
                samsung,pins = "gpl-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_col4_1: keypad-col4-1 {
                samsung,pins = "gpl-4";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_col5_1: keypad-col5-1 {
                samsung,pins = "gpl-5";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_col6_1: keypad-col6-1 {
                samsung,pins = "gpl-6";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_col7_1: keypad-col7-1 {
                samsung,pins = "gpl-7";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_row0_0: keypad-row0-0 {
                samsung,pins = "gpk-8";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_row1_0: keypad-row1-0 {
                samsung,pins = "gpk-9";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_row2_0: keypad-row2-0 {
                samsung,pins = "gpk-10";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_row3_0: keypad-row3-0 {
                samsung,pins = "gpk-11";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_row4_0: keypad-row4-0 {
                samsung,pins = "gpk-12";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_row5_0: keypad-row5-0 {
                samsung,pins = "gpk-13";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_row6_0: keypad-row6-0 {
                samsung,pins = "gpk-14";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_row7_0: keypad-row7-0 {
                samsung,pins = "gpk-15";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_row0_1: keypad-row0-1 {
                samsung,pins = "gpn-0";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_row1_1: keypad-row1-1 {
                samsung,pins = "gpn-1";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_row2_1: keypad-row2-1 {
                samsung,pins = "gpn-2";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_row3_1: keypad-row3-1 {
                samsung,pins = "gpn-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_row4_1: keypad-row4-1 {
                samsung,pins = "gpn-4";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_row5_1: keypad-row5-1 {
                samsung,pins = "gpn-5";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_row6_1: keypad-row6-1 {
                samsung,pins = "gpn-6";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        keypad_row7_1: keypad-row7-1 {
                samsung,pins = "gpn-7";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        lcd_ctrl: lcd-ctrl {
                samsung,pins = "gpj-8", "gpj-9", "gpj-10", "gpj-11";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        lcd_data16: lcd-data-width16 {
                                "gpi-7", "gpi-10", "gpi-11", "gpi-12",
                                "gpi-13", "gpi-14", "gpi-15", "gpj-3",
                                "gpj-4", "gpj-5", "gpj-6", "gpj-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        lcd_data18: lcd-data-width18 {
                                "gpi-12", "gpi-13", "gpi-14", "gpi-15",
                                "gpj-2", "gpj-3", "gpj-4", "gpj-5",
                                "gpj-6", "gpj-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        lcd_data24: lcd-data-width24 {
                                "gpi-12", "gpi-13", "gpi-14", "gpi-15",
                                "gpj-0", "gpj-1", "gpj-2", "gpj-3",
                                "gpj-4", "gpj-5", "gpj-6", "gpj-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 
        hsi_bus: hsi-bus {
                samsung,pins = "gpk-0", "gpk-1", "gpk-2", "gpk-3",
                                "gpk-4", "gpk-5", "gpk-6", "gpk-7";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <PIN_PULL_NONE>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 };
index da24ab5..4013992 100644 (file)
@@ -29,7 +29,7 @@
                bootargs = "console=ttySAC2,115200n8 root=/dev/mmcblk1p5 rw rootwait ignore_loglevel earlyprintk";
        };
 
-       memory {
+       memory@30000000 {
                device_type = "memory";
                reg = <0x30000000 0x05000000
                        0x40000000 0x18000000>;
 &pinctrl0 {
        t_flash_detect: t-flash-detect {
                samsung,pins = "gph3-4";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
        };
 };
index 0a33d40..c56f51e 100644 (file)
@@ -29,7 +29,7 @@
                bootargs = "console=ttySAC0,115200n8 root=/dev/mmcblk0p5 rw rootwait ignore_loglevel earlyprintk";
        };
 
-       memory {
+       memory@30000000 {
                device_type = "memory";
                reg = <0x30000000 0x05000000
                        0x40000000 0x10000000
index 8c71408..9a3e851 100644 (file)
@@ -19,6 +19,8 @@
  * published by the Free Software Foundation.
  */
 
+#include <dt-bindings/pinctrl/samsung.h>
+
 &pinctrl0 {
        gpa0: gpa0 {
                gpio-controller;
 
        uart0_data: uart0-data {
                samsung,pins = "gpa0-0", "gpa0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart0_fctl: uart0-fctl {
                samsung,pins = "gpa0-2", "gpa0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart1_data: uart1-data {
                samsung,pins = "gpa0-4", "gpa0-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart1_fctl: uart1-fctl {
                samsung,pins = "gpa0-6", "gpa0-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart2_data: uart2-data {
                samsung,pins = "gpa1-0", "gpa1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart2_fctl: uart2-fctl {
                samsung,pins = "gpa1-2", "gpa1-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart3_data: uart3-data {
                samsung,pins = "gpa1-2", "gpa1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart_audio: uart-audio {
                samsung,pins = "gpa1-2", "gpa1-3";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        spi0_bus: spi0-bus {
                samsung,pins = "gpb-0", "gpb-2", "gpb-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        spi1_bus: spi1-bus {
                samsung,pins = "gpb-4", "gpb-6", "gpb-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2s0_bus: i2s0-bus {
                samsung,pins = "gpi-0", "gpi-1", "gpi-2", "gpi-3",
                                "gpi-4", "gpi-5", "gpi-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2s2_bus: i2s2-bus {
                samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3",
                                "gpc1-4";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pcm1_bus: pcm1-bus {
                samsung,pins = "gpc0-0", "gpc0-1", "gpc0-2", "gpc0-3",
                                "gpc0-4";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        ac97_bus: ac97-bus {
                samsung,pins = "gpc0-0", "gpc0-1", "gpc0-2", "gpc0-3",
                                "gpc0-4";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        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>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        spdif_bus: spdif-bus {
                samsung,pins = "gpc1-0", "gpc1-1";
-               samsung,pin-function = <4>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        spi2_bus: spi2-bus {
                samsung,pins = "gpc1-1", "gpc1-2", "gpc1-3", "gpc1-4";
-               samsung,pin-function = <5>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_5>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c0_bus: i2c0-bus {
                samsung,pins = "gpd1-0", "gpd1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c1_bus: i2c1-bus {
                samsung,pins = "gpd1-2", "gpd1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        i2c2_bus: i2c2-bus {
                samsung,pins = "gpd1-4", "gpd1-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm0_out: pwm0-out {
                samsung,pins = "gpd0-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm1_out: pwm1-out {
                samsung,pins = "gpd0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm2_out: pwm2-out {
                samsung,pins = "gpd0-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm3_out: pwm3-out {
                samsung,pins = "gpd0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_row0: keypad-row-0 {
                samsung,pins = "gph3-0";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_row1: keypad-row-1 {
                samsung,pins = "gph3-1";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_row2: keypad-row-2 {
                samsung,pins = "gph3-2";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_row3: keypad-row-3 {
                samsung,pins = "gph3-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_row4: keypad-row-4 {
                samsung,pins = "gph3-4";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_row5: keypad-row-5 {
                samsung,pins = "gph3-5";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_row6: keypad-row-6 {
                samsung,pins = "gph3-6";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_row7: keypad-row-7 {
                samsung,pins = "gph3-7";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_col0: keypad-col-0 {
                samsung,pins = "gph2-0";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_col1: keypad-col-1 {
                samsung,pins = "gph2-1";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_col2: keypad-col-2 {
                samsung,pins = "gph2-2";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_col3: keypad-col-3 {
                samsung,pins = "gph2-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_col4: keypad-col-4 {
                samsung,pins = "gph2-4";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_col5: keypad-col-5 {
                samsung,pins = "gph2-5";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_col6: keypad-col-6 {
                samsung,pins = "gph2-6";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        keypad_col7: keypad-col-7 {
                samsung,pins = "gph2-7";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        sd0_clk: sd0-clk {
                samsung,pins = "gpg0-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_cmd: sd0-cmd {
                samsung,pins = "gpg0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_cd: sd0-cd {
                samsung,pins = "gpg0-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_bus1: sd0-bus-width1 {
                samsung,pins = "gpg0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_bus4: sd0-bus-width4 {
                samsung,pins = "gpg0-3", "gpg0-4", "gpg0-5", "gpg0-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd0_bus8: sd0-bus-width8 {
                samsung,pins = "gpg1-3", "gpg1-4", "gpg1-5", "gpg1-6";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_clk: sd1-clk {
                samsung,pins = "gpg1-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_cmd: sd1-cmd {
                samsung,pins = "gpg1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_cd: sd1-cd {
                samsung,pins = "gpg1-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_bus1: sd1-bus-width1 {
                samsung,pins = "gpg1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd1_bus4: sd1-bus-width4 {
                samsung,pins = "gpg1-3", "gpg1-4", "gpg1-5", "gpg1-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_clk: sd2-clk {
                samsung,pins = "gpg2-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_cmd: sd2-cmd {
                samsung,pins = "gpg2-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_cd: sd2-cd {
                samsung,pins = "gpg2-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_bus1: sd2-bus-width1 {
                samsung,pins = "gpg2-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_bus4: sd2-bus-width4 {
                samsung,pins = "gpg2-3", "gpg2-4", "gpg2-5", "gpg2-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_bus8: sd2-bus-width8 {
                samsung,pins = "gpg3-3", "gpg3-4", "gpg3-5", "gpg3-6";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd3_clk: sd3-clk {
                samsung,pins = "gpg3-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd3_cmd: sd3-cmd {
                samsung,pins = "gpg3-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd3_cd: sd3-cd {
                samsung,pins = "gpg3-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd3_bus1: sd3-bus-width1 {
                samsung,pins = "gpg3-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd3_bus4: sd3-bus-width4 {
                samsung,pins = "gpg3-3", "gpg3-4", "gpg3-5", "gpg3-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <2>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        eint0: ext-int0 {
                samsung,pins = "gph0-0";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        eint8: ext-int8 {
                samsung,pins = "gph1-0";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        eint15: ext-int15 {
                samsung,pins = "gph1-7";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        eint16: ext-int16 {
                samsung,pins = "gph2-0";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        eint31: ext-int31 {
                samsung,pins = "gph3-7";
-               samsung,pin-function = <0xf>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        cam_port_a_io: cam-port-a-io {
                samsung,pins = "gpe0-0", "gpe0-1", "gpe0-2", "gpe0-3",
                                "gpe0-4", "gpe0-5", "gpe0-6", "gpe0-7",
                                "gpe1-0", "gpe1-1", "gpe1-2", "gpe1-4";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        cam_port_a_clk_active: cam-port-a-clk-active {
                samsung,pins = "gpe1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        cam_port_a_clk_idle: cam-port-a-clk-idle {
                samsung,pins = "gpe1-3";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        cam_port_b_io: cam-port-b-io {
                samsung,pins = "gpj0-0", "gpj0-1", "gpj0-2", "gpj0-3",
                                "gpj0-4", "gpj0-5", "gpj0-6", "gpj0-7",
                                "gpj1-0", "gpj1-1", "gpj1-2", "gpj1-4";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        cam_port_b_clk_active: cam-port-b-clk-active {
                samsung,pins = "gpj1-3";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        cam_port_b_clk_idle: cam-port-b-clk-idle {
                samsung,pins = "gpj1-3";
-               samsung,pin-function = <0>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
                lcd_ctrl: lcd-ctrl {
                samsung,pins = "gpd0-0", "gpd0-1";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        lcd_sync: lcd-sync {
                samsung,pins = "gpf0-0", "gpf0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        lcd_clk: lcd-clk {
                samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        lcd_data24: lcd-data-width24 {
                                "gpf2-0", "gpf2-1", "gpf2-2", "gpf2-3",
                                "gpf2-4", "gpf2-5", "gpf2-6", "gpf2-7",
                                "gpf3-0", "gpf3-1", "gpf3-2", "gpf3-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
index 1eedab7..5d14da9 100644 (file)
@@ -29,7 +29,7 @@
                bootargs = "console=ttySAC0,115200n8 root=/dev/mmcblk0p1 rw rootwait ignore_loglevel earlyprintk";
        };
 
-       memory {
+       memory@20000000 {
                device_type = "memory";
                reg = <0x20000000 0x20000000>;
        };
index 9eb6aff..7539831 100644 (file)
@@ -29,7 +29,7 @@
                bootargs = "console=ttySAC0,115200n8 root=/dev/mmcblk0p1 rw rootwait ignore_loglevel earlyprintk";
        };
 
-       memory {
+       memory@20000000 {
                device_type = "memory";
                reg = <0x20000000 0x40000000>;
        };
index 622599f..7cb50bc 100644 (file)
@@ -29,7 +29,7 @@
                bootargs = "console=ttySAC0,115200n8 root=/dev/mmcblk0p1 rw rootwait ignore_loglevel earlyprintk";
        };
 
-       memory {
+       memory@20000000 {
                device_type = "memory";
                reg = <0x20000000 0x20000000>;
        };
index ffc36bd..a853918 100644 (file)
  * published by the Free Software Foundation.
 */
 
-#include "skeleton.dtsi"
 #include <dt-bindings/clock/s5pv210.h>
 #include <dt-bindings/clock/s5pv210-audss.h>
 
 / {
+       #address-cells = <1>;
+       #size-cells = <1>;
+
        aliases {
                csis0 = &csis0;
                fimc0 = &fimc0;
index 353d0e5..7173ec9 100644 (file)
                interrupts = <2 IRQ_TYPE_LEVEL_HIGH 0>;
        };
 
+       etb {
+               compatible = "arm,coresight-etb10", "arm,primecell";
+               reg = <0x740000 0x1000>;
+
+               clocks = <&mck>;
+               clock-names = "apb_pclk";
+
+               port {
+                       etb_in: endpoint {
+                               slave-mode;
+                               remote-endpoint = <&etm_out>;
+                       };
+               };
+       };
+
+       etm {
+               compatible = "arm,coresight-etm3x", "arm,primecell";
+               reg = <0x73C000 0x1000>;
+
+               clocks = <&mck>;
+               clock-names = "apb_pclk";
+
+               port {
+                       etm_out: endpoint {
+                               remote-endpoint = <&etb_in>;
+                       };
+               };
+       };
+
        memory {
                reg = <0x20000000 0x20000000>;
        };
index b41d241..28b81d6 100644 (file)
@@ -1,4 +1,8 @@
 /*
+ * This file is deprecated, and will be removed once existing users have been
+ * updated. New dts{,i} files should *not* include skeleton.dtsi, and should
+ * instead explicitly provide the below nodes only as required.
+ *
  * Skeleton device tree; the bare minimum needed to boot; just include and
  * add a compatible value.  The bootloader will typically populate the memory
  * node.
index d35aa88..1ec46a7 100644 (file)
                                                0x03020067 // Up
                                                0x0303006c>; // Down
                        };
+                       stmpe0_pwm: stmpe_pwm {
+                               compatible = "st,stmpe-pwm";
+                               #pwm-cells = <2>;
+                       };
                };
                stmpe1: stmpe2401@44 {
                        compatible = "st,stmpe2401";
        };
 
        amba {
+               clcd@10120000 {
+                       status = "okay";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&clcd_24bit_mux>;
+                       port {
+                               nomadik_clcd_pads: endpoint {
+                                       remote-endpoint = <&nomadik_clcd_panel>;
+                                       arm,pl11x,tft-r0g0b0-pads = <16 8 0>;
+                               };
+                       };
+
+                       /*
+                        * WVGA connector 21
+                        * WVGA (800x480): 4.3" TPG110 TDO43MTEA2 24-bit RGB
+                        * with TPO touch screen.
+                        */
+                       panel {
+                               compatible = "tpo,tpg110", "panel-dpi";
+                               grestb-gpios = <&stmpe_gpio44 5 GPIO_ACTIVE_LOW>;
+                               scen-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
+                               scl-gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
+                               sda-gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
+                               backlight = <&bl>;
+
+                               port {
+                                       nomadik_clcd_panel: endpoint {
+                                               remote-endpoint = <&nomadik_clcd_pads>;
+                                       };
+                               };
+
+                               panel-timing {
+                                       clock-frequency = <33200000>;
+                                       hactive = <800>;
+                                       hback-porch = <216>;
+                                       hfront-porch = <40>;
+                                       hsync-len = <1>;
+                                       vactive = <480>;
+                                       vback-porch = <35>;
+                                       vfront-porch = <10>;
+                                       vsync-len = <1>;
+                               };
+                       };
+               };
+
                /* Activate RX/TX and CTS/RTS on UART 0 */
                uart0: uart@101fd000 {
                        pinctrl-names = "default";
                        wp-gpios = <&stmpe_gpio44 18 GPIO_ACTIVE_HIGH>;
                };
        };
+
+       bl: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&stmpe0_pwm 0 500000>;
+               pwm-names = "backlight";
+               brightness-levels = <
+                       0  1  2  3  4  5  6  7  8  9
+                       10 11 12 13 14 15 16 17 18 19
+                       20 21 22 23 24 25 26 27 28 29
+                       30 31 32 33 34 35 36 37 38 39
+                       40 41 42 43 44 45 46 47 48 49
+                       50 51 52 53 54 55 56 57 58 59
+                       60 61 62 63 64 65 66 67 68 69
+                       70 71 72 73 74 75 76 77 78 79
+                       80 81 82 83 84 85 86 87 88 89
+                       90 91 92 93 94 95 96 97 98 99
+                       100
+               >;
+               default-brightness-level = <100>;
+       };
 };
index d2d532a..adb1c09 100644 (file)
                                };
                        };
                };
+               clcd {
+                       /*
+                        * This should be activated to use the additional
+                        * 8 lines for bits 16 thru 23 from the CLCD block.
+                        */
+                       clcd_24bit_mux: clcd_mux {
+                               clcd_24bit_mux {
+                                       function = "clcd";
+                                       groups = "clcd_16_23_b_1";
+                               };
+                       };
+               };
+       };
+
+       /* Power Management Unit */
+       pmu: pmu@101e9000 {
+               compatible = "stericsson,nomadik-pmu", "syscon";
+               reg = <0x101e0000 0x1000>;
        };
 
        src: src@101e0000 {
                #size-cells = <1>;
                ranges;
 
+               clcd@10120000 {
+                       compatible = "arm,pl110", "arm,primecell";
+                       reg = <0x10120000 0x1000>;
+                       interrupt-names = "combined";
+                       interrupts = <14>;
+                       clocks = <&clcdclk>, <&hclkclcd>;
+                       clock-names = "clcdclk", "apb_pclk";
+                       status = "disabled";
+               };
+
                vica: intc@10140000 {
                        compatible = "arm,versatile-vic";
                        interrupt-controller;
index ad45f5e..13029c0 100644 (file)
@@ -42,7 +42,7 @@
 
                        clockgen_a9_pll: clockgen-a9-pll {
                                #clock-cells = <1>;
-                               compatible = "st,stih407-plls-c32-a9", "st,clkgen-plls-c32";
+                               compatible = "st,stih407-clkgen-plla9";
 
                                clocks = <&clk_sysin>;
 
@@ -55,7 +55,7 @@
                 */
                clk_m_a9: clk-m-a9@92b0000 {
                        #clock-cells = <0>;
-                       compatible = "st,stih407-clkgen-a9-mux", "st,clkgen-mux";
+                       compatible = "st,stih407-clkgen-a9-mux";
                        reg = <0x92b0000 0x10000>;
 
                        clocks = <&clockgen_a9_pll 0>,
@@ -96,7 +96,7 @@
 
                        clk_s_a0_pll: clk-s-a0-pll {
                                #clock-cells = <1>;
-                               compatible = "st,stih407-plls-c32-a0", "st,clkgen-plls-c32";
+                               compatible = "st,clkgen-pll0";
 
                                clocks = <&clk_sysin>;
 
 
                clk_s_c0_quadfs: clk-s-c0-quadfs@9103000 {
                        #clock-cells = <1>;
-                       compatible = "st,stih407-quadfs660-C", "st,quadfs";
+                       compatible = "st,quadfs-pll";
                        reg = <0x9103000 0x1000>;
 
                        clocks = <&clk_sysin>;
 
                        clk_s_c0_pll0: clk-s-c0-pll0 {
                                #clock-cells = <1>;
-                               compatible = "st,plls-c32-cx_0", "st,clkgen-plls-c32";
+                               compatible = "st,clkgen-pll0";
 
                                clocks = <&clk_sysin>;
 
 
                        clk_s_c0_pll1: clk-s-c0-pll1 {
                                #clock-cells = <1>;
-                               compatible = "st,plls-c32-cx_1", "st,clkgen-plls-c32";
+                               compatible = "st,clkgen-pll1";
 
                                clocks = <&clk_sysin>;
 
 
                clk_s_d0_quadfs: clk-s-d0-quadfs@9104000 {
                        #clock-cells = <1>;
-                       compatible = "st,stih407-quadfs660-D", "st,quadfs";
+                       compatible = "st,quadfs";
                        reg = <0x9104000 0x1000>;
 
                        clocks = <&clk_sysin>;
 
                        clk_s_d0_flexgen: clk-s-d0-flexgen {
                                #clock-cells = <1>;
-                               compatible = "st,flexgen";
+                               compatible = "st,flexgen-audio", "st,flexgen";
 
                                clocks = <&clk_s_d0_quadfs 0>,
                                         <&clk_s_d0_quadfs 1>,
 
                clk_s_d2_quadfs: clk-s-d2-quadfs@9106000 {
                        #clock-cells = <1>;
-                       compatible = "st,stih407-quadfs660-D", "st,quadfs";
+                       compatible = "st,quadfs";
                        reg = <0x9106000 0x1000>;
 
                        clocks = <&clk_sysin>;
 
                        clk_s_d2_flexgen: clk-s-d2-flexgen {
                                #clock-cells = <1>;
-                               compatible = "st,flexgen";
+                               compatible = "st,flexgen-video", "st,flexgen";
 
                                clocks = <&clk_s_d2_quadfs 0>,
                                         <&clk_s_d2_quadfs 1>,
 
                clk_s_d3_quadfs: clk-s-d3-quadfs@9107000 {
                        #clock-cells = <1>;
-                       compatible = "st,stih407-quadfs660-D", "st,quadfs";
+                       compatible = "st,quadfs";
                        reg = <0x9107000 0x1000>;
 
                        clocks = <&clk_sysin>;
index 8b063ab..5430747 100644 (file)
                        clocks = <&clk_s_c0_flexgen CLK_MMC_0>,
                                 <&clk_s_c0_flexgen CLK_RX_ICN_HVA>;
                        bus-width = <8>;
-                       non-removable;
                };
 
                mmc1: sdhci@09080000 {
                        clock-names = "ahci_clk";
                        clocks = <&clk_s_c0_flexgen CLK_ICN_REG>;
 
+                       ports-implemented = <0x1>;
+
                        status = "disabled";
                };
 
                        clock-names = "ahci_clk";
                        clocks = <&clk_s_c0_flexgen CLK_ICN_REG>;
 
+                       ports-implemented = <0x1>;
+
                        status = "disabled";
                };
 
                        compatible      = "st,sti-pwm";
                        #pwm-cells      = <2>;
                        reg             = <0x9810000 0x68>;
+                       interrupts      = <GIC_SPI 128 IRQ_TYPE_NONE>;
                        pinctrl-names   = "default";
                        pinctrl-0       = <&pinctrl_pwm0_chan0_default>;
                        clock-names     = "pwm";
                        clock-frequency = <600000000>;
                        st,syscfg       = <&syscfg_core 0x224>;
                };
+
+               /* fdma audio */
+               fdma0: dma-controller@8e20000 {
+                       compatible = "st,stih407-fdma-mpe31-11", "st,slim-rproc";
+                       reg = <0x8e20000 0x8000>,
+                             <0x8e30000 0x3000>,
+                             <0x8e37000 0x1000>,
+                             <0x8e38000 0x8000>;
+                       reg-names = "slimcore", "dmem", "peripherals", "imem";
+                       clocks = <&clk_s_c0_flexgen CLK_FDMA>,
+                                <&clk_s_c0_flexgen CLK_EXT2F_A9>,
+                                <&clk_s_c0_flexgen CLK_EXT2F_A9>,
+                                <&clk_s_c0_flexgen CLK_EXT2F_A9>;
+                       interrupts = <GIC_SPI 5 IRQ_TYPE_NONE>;
+                       dma-channels = <16>;
+                       #dma-cells = <3>;
+               };
+
+               /* fdma app */
+               fdma1: dma-controller@8e40000 {
+                       compatible = "st,stih407-fdma-mpe31-12", "st,slim-rproc";
+                       reg = <0x8e40000 0x8000>,
+                             <0x8e50000 0x3000>,
+                             <0x8e57000 0x1000>,
+                             <0x8e58000 0x8000>;
+                       reg-names = "slimcore", "dmem", "peripherals", "imem";
+                       clocks = <&clk_s_c0_flexgen CLK_FDMA>,
+                               <&clk_s_c0_flexgen CLK_TX_ICN_DMU>,
+                               <&clk_s_c0_flexgen CLK_TX_ICN_DMU>,
+                               <&clk_s_c0_flexgen CLK_EXT2F_A9>;
+
+                       interrupts = <GIC_SPI 7 IRQ_TYPE_NONE>;
+                       dma-channels = <16>;
+                       #dma-cells = <3>;
+               };
+
+               /* fdma free running */
+               fdma2: dma-controller@8e60000 {
+                       compatible = "st,stih407-fdma-mpe31-13", "st,slim-rproc";
+                       reg = <0x8e60000 0x8000>,
+                             <0x8e70000 0x3000>,
+                             <0x8e77000 0x1000>,
+                             <0x8e78000 0x8000>;
+                       reg-names = "slimcore", "dmem", "peripherals", "imem";
+                       interrupts = <GIC_SPI 9 IRQ_TYPE_NONE>;
+                       dma-channels = <16>;
+                       #dma-cells = <3>;
+                       clocks = <&clk_s_c0_flexgen CLK_FDMA>,
+                               <&clk_s_c0_flexgen CLK_EXT2F_A9>,
+                               <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>,
+                               <&clk_s_c0_flexgen CLK_EXT2F_A9>;
+               };
+
+               sti_sasg_codec: sti-sasg-codec {
+                       compatible = "st,stih407-sas-codec";
+                       #sound-dai-cells = <1>;
+                       status = "disabled";
+                       st,syscfg = <&syscfg_core>;
+               };
+
+               sti_uni_player0: sti-uni-player@8d80000 {
+                       compatible = "st,sti-uni-player";
+                       #sound-dai-cells = <0>;
+                       st,syscfg = <&syscfg_core>;
+                       clocks = <&clk_s_d0_flexgen CLK_PCM_0>;
+                       assigned-clocks = <&clk_s_d0_quadfs 0>, <&clk_s_d0_flexgen CLK_PCM_0>;
+                       assigned-clock-parents = <0>, <&clk_s_d0_quadfs 0>;
+                       assigned-clock-rates = <50000000>;
+                       reg = <0x8d80000 0x158>;
+                       interrupts = <GIC_SPI 84 IRQ_TYPE_NONE>;
+                       dmas = <&fdma0 2 0 1>;
+                       dai-name = "Uni Player #0 (HDMI)";
+                       dma-names = "tx";
+                       st,uniperiph-id = <0>;
+                       st,version = <5>;
+                       st,mode = "HDMI";
+
+                       status          = "disabled";
+               };
+
+               sti_uni_player1: sti-uni-player@8d81000 {
+                       compatible = "st,sti-uni-player";
+                       #sound-dai-cells = <0>;
+                       st,syscfg = <&syscfg_core>;
+                       clocks = <&clk_s_d0_flexgen CLK_PCM_1>;
+                       assigned-clocks = <&clk_s_d0_quadfs 1>, <&clk_s_d0_flexgen CLK_PCM_1>;
+                       assigned-clock-parents = <0>, <&clk_s_d0_quadfs 1>;
+                       assigned-clock-rates = <50000000>;
+                       reg = <0x8d81000 0x158>;
+                       interrupts = <GIC_SPI 85 IRQ_TYPE_NONE>;
+                       dmas = <&fdma0 3 0 1>;
+                       dai-name = "Uni Player #1 (PIO)";
+                       dma-names = "tx";
+                       st,uniperiph-id = <1>;
+                       st,version = <5>;
+                       st,mode = "PCM";
+
+                       status = "disabled";
+               };
+
+               sti_uni_player2: sti-uni-player@8d82000 {
+                       compatible = "st,sti-uni-player";
+                       #sound-dai-cells = <0>;
+                       st,syscfg = <&syscfg_core>;
+                       clocks = <&clk_s_d0_flexgen CLK_PCM_2>;
+                       assigned-clocks = <&clk_s_d0_quadfs 2>, <&clk_s_d0_flexgen CLK_PCM_2>;
+                       assigned-clock-parents = <0>, <&clk_s_d0_quadfs 2>;
+                       assigned-clock-rates = <50000000>;
+                       reg = <0x8d82000 0x158>;
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_NONE>;
+                       dmas = <&fdma0 4 0 1>;
+                       dai-name = "Uni Player #1 (DAC)";
+                       dma-names = "tx";
+                       st,uniperiph-id = <2>;
+                       st,version = <5>;
+                       st,mode = "PCM";
+
+                       status = "disabled";
+               };
+
+               sti_uni_player3: sti-uni-player@8d85000 {
+                       compatible = "st,sti-uni-player";
+                       #sound-dai-cells = <0>;
+                       st,syscfg = <&syscfg_core>;
+                       clocks = <&clk_s_d0_flexgen CLK_SPDIFF>;
+                       assigned-clocks = <&clk_s_d0_quadfs 3>, <&clk_s_d0_flexgen CLK_SPDIFF>;
+                       assigned-clock-parents = <0>, <&clk_s_d0_quadfs 3>;
+                       assigned-clock-rates = <50000000>;
+                       reg = <0x8d85000 0x158>;
+                       interrupts = <GIC_SPI 89 IRQ_TYPE_NONE>;
+                       dmas = <&fdma0 7 0 1>;
+                       dma-names = "tx";
+                       dai-name = "Uni Player #1 (PIO)";
+                       st,uniperiph-id = <3>;
+                       st,version = <5>;
+                       st,mode = "SPDIF";
+
+                       status = "disabled";
+               };
+
+               sti_uni_reader0: sti-uni-reader@8d83000 {
+                       compatible = "st,sti-uni-reader";
+                       #sound-dai-cells = <0>;
+                       st,syscfg = <&syscfg_core>;
+                       reg = <0x8d83000 0x158>;
+                       interrupts = <GIC_SPI 87 IRQ_TYPE_NONE>;
+                       dmas = <&fdma0 5 0 1>;
+                       dma-names = "rx";
+                       dai-name = "Uni Reader #0 (PCM IN)";
+                       st,version = <3>;
+
+                       status = "disabled";
+               };
+
+               sti_uni_reader1: sti-uni-reader@8d84000 {
+                       compatible = "st,sti-uni-reader";
+                       #sound-dai-cells = <0>;
+                       st,syscfg = <&syscfg_core>;
+                       reg = <0x8d84000 0x158>;
+                       interrupts = <GIC_SPI 88 IRQ_TYPE_NONE>;
+                       dmas = <&fdma0 6 0 1>;
+                       dma-names = "rx";
+                       dai-name = "Uni Reader #1 (HDMI RX)";
+                       st,version = <3>;
+
+                       status = "disabled";
+               };
        };
 };
index a538ae5..c325cc0 100644 (file)
@@ -58,7 +58,7 @@
 
                        pio0: gpio@09610000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x0 0x100>;
@@ -66,7 +66,7 @@
                        };
                        pio1: gpio@09611000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x1000 0x100>;
@@ -74,7 +74,7 @@
                        };
                        pio2: gpio@09612000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x2000 0x100>;
@@ -82,7 +82,7 @@
                        };
                        pio3: gpio@09613000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x3000 0x100>;
@@ -90,7 +90,7 @@
                        };
                        pio4: gpio@09614000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x4000 0x100>;
@@ -99,7 +99,7 @@
 
                        pio5: gpio@09615000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x5000 0x100>;
                                        };
                                };
 
+                               pinctrl_rgmii1_mdio_1: rgmii1-mdio-1 {
+                                       st,pins {
+                                               mdio = <&pio1 0 ALT1 OUT BYPASS 0>;
+                                               mdc = <&pio1 1 ALT1 OUT NICLK 0 CLK_A>;
+                                       };
+                               };
+
                                pinctrl_mii1: mii1 {
                                        st,pins {
                                                txd0 = <&pio0 0 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
                                pinctrl_pwm1_chan0_default: pwm1-0-default {
                                        st,pins {
                                                pwm-out = <&pio3 0 ALT1 OUT>;
+                                               pwm-capturein = <&pio3 2 ALT1 IN>;
                                        };
                                };
                                pinctrl_pwm1_chan1_default: pwm1-1-default {
                                        st,pins {
+                                               pwm-capturein = <&pio4 3 ALT1 IN>;
                                                pwm-out = <&pio4 4 ALT1 OUT>;
                                        };
                                };
 
                        pio10: pio@09200000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x0 0x100>;
                        };
                        pio11: pio@09201000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x1000 0x100>;
                        };
                        pio12: pio@09202000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x2000 0x100>;
                        };
                        pio13: pio@09203000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x3000 0x100>;
                        };
                        pio14: pio@09204000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x4000 0x100>;
                        };
                        pio15: pio@09205000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x5000 0x100>;
                        };
                        pio16: pio@09206000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x6000 0x100>;
                        };
                        pio17: pio@09207000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x7000 0x100>;
                        };
                        pio18: pio@09208000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x8000 0x100>;
                        };
                        pio19: pio@09209000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x9000 0x100>;
                                                scl = <&pio15 5 ALT2 BIDIR>;
                                        };
                                };
+
+                               pinctrl_i2c2_alt2_1: i2c2-alt2-1 {
+                                       st,pins {
+                                               sda = <&pio12 6 ALT2 BIDIR>;
+                                               scl = <&pio12 5 ALT2 BIDIR>;
+                                       };
+                               };
                        };
 
                        i2c3 {
                        interrupt-names = "irqmux";
                        ranges = <0 0x09210000 0x10000>;
 
+                       pio20: pio@09210000 {
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               reg = <0x0 0x100>;
+                               st,bank-name = "PIO20";
+                       };
+
                        tsin4 {
                                pinctrl_tsin4_serial_alt1: tsin4_serial_alt1 {
                                        st,pins {
                                        };
                                };
                        };
-
-                       pio20: pio@09210000 {
-                               gpio-controller;
-                               #gpio-cells = <1>;
-                               interrupt-controller;
-                               #interrupt-cells = <2>;
-                               reg = <0x0 0x100>;
-                               st,bank-name = "PIO20";
-                       };
                };
 
                pin-controller-rear {
 
                        pio30: gpio@09220000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x0 0x100>;
                        };
                        pio31: gpio@09221000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x1000 0x100>;
                        };
                        pio32: gpio@09222000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x2000 0x100>;
                        };
                        pio33: gpio@09223000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x3000 0x100>;
                        };
                        pio34: gpio@09224000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x4000 0x100>;
                        };
                        pio35: gpio@09225000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x5000 0x100>;
                        pwm0 {
                                pinctrl_pwm0_chan0_default: pwm0-0-default {
                                        st,pins {
+                                               pwm-capturein = <&pio31 0 ALT1 IN>;
                                                pwm-out = <&pio31 1 ALT1 OUT>;
                                        };
                                };
                                };
                        };
 
+                       i2s_out {
+                               pinctrl_i2s_8ch_out: i2s_8ch_out{
+                                       st,pins {
+                                               mclk = <&pio33 5 ALT1 OUT>;
+                                               lrclk = <&pio33 7 ALT1 OUT>;
+                                               sclk = <&pio33 6 ALT1 OUT>;
+                                               data0 = <&pio33 4 ALT1 OUT>;
+                                               data1 = <&pio34 0 ALT1 OUT>;
+                                               data2 = <&pio34 1 ALT1 OUT>;
+                                               data3 = <&pio34 2 ALT1 OUT>;
+                                       };
+                               };
+
+                               pinctrl_i2s_2ch_out: i2s_2ch_out{
+                                       st,pins {
+                                               mclk = <&pio33 5 ALT1 OUT>;
+                                               lrclk = <&pio33 7 ALT1 OUT>;
+                                               sclk = <&pio33 6 ALT1 OUT>;
+                                               data0 = <&pio33 4 ALT1 OUT>;
+                                       };
+                               };
+                       };
+
+                       i2s_in {
+                               pinctrl_i2s_8ch_in: i2s_8ch_in{
+                                       st,pins {
+                                               mclk = <&pio32 5 ALT1 IN>;
+                                               lrclk = <&pio32 7 ALT1 IN>;
+                                               sclk = <&pio32 6 ALT1 IN>;
+                                               data0 = <&pio32 4 ALT1 IN>;
+                                               data1 = <&pio33 0 ALT1 IN>;
+                                               data2 = <&pio33 1 ALT1 IN>;
+                                               data3 = <&pio33 2 ALT1 IN>;
+                                               data4 = <&pio33 3 ALT1 IN>;
+                                       };
+                               };
+
+                               pinctrl_i2s_2ch_in: i2s_2ch_in{
+                                       st,pins {
+                                               mclk = <&pio32 5 ALT1 IN>;
+                                               lrclk = <&pio32 7 ALT1 IN>;
+                                               sclk = <&pio32 6 ALT1 IN>;
+                                               data0 = <&pio32 4 ALT1 IN>;
+                                       };
+                               };
+                       };
+
+                       spdif_out {
+                               pinctrl_spdif_out: spdif_out{
+                                       st,pins {
+                                               spdif_out = <&pio34 7 ALT1 OUT>;
+                                       };
+                               };
+                       };
+
                        serial3 {
                                pinctrl_serial3: serial3-0 {
                                        st,pins {
 
                        pio40: gpio@09230000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0 0x100>;
                        };
                        pio41: gpio@09231000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x1000 0x100>;
                        };
                        pio42: gpio@09232000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x2000 0x100>;
index d60f0d8..291ffac 100644 (file)
                        #size-cells = <1>;
 
                        assigned-clocks = <&clk_s_d2_quadfs 0>,
-                                         <&clk_s_d2_quadfs 0>,
+                                         <&clk_s_d2_quadfs 1>,
+                                         <&clk_s_c0_pll1 0>,
+                                         <&clk_s_c0_flexgen CLK_COMPO_DVP>,
+                                         <&clk_s_c0_flexgen CLK_MAIN_DISP>,
                                          <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>,
                                          <&clk_s_d2_flexgen CLK_PIX_AUX_DISP>,
                                          <&clk_s_d2_flexgen CLK_PIX_GDP1>,
 
                        assigned-clock-parents = <0>,
                                                 <0>,
+                                                <0>,
+                                                <&clk_s_c0_pll1 0>,
+                                                <&clk_s_c0_pll1 0>,
                                                 <&clk_s_d2_quadfs 0>,
-                                                <&clk_s_d2_quadfs 0>,
+                                                <&clk_s_d2_quadfs 1>,
                                                 <&clk_s_d2_quadfs 0>,
                                                 <&clk_s_d2_quadfs 0>,
                                                 <&clk_s_d2_quadfs 0>,
                                                 <&clk_s_d2_quadfs 0>;
 
-                       assigned-clock-rates = <297000000>, <297000000>;
+                       assigned-clock-rates = <297000000>,
+                                              <108000000>,
+                                              <0>,
+                                              <400000000>,
+                                              <400000000>;
 
                        ranges;
 
diff --git a/arch/arm/boot/dts/stih410-b2260.dts b/arch/arm/boot/dts/stih410-b2260.dts
new file mode 100644 (file)
index 0000000..ef2ff2f
--- /dev/null
@@ -0,0 +1,194 @@
+/*
+ * Copyright (C) 2016 STMicroelectronics (R&D) Limited.
+ * Author: Patrice Chotard <patrice.chotard@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.
+ */
+/dts-v1/;
+#include "stih410.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "STiH410 B2260";
+       compatible = "st,stih410-b2260", "st,stih410";
+
+       chosen {
+               bootargs = "console=ttyAS1,115200 clk_ignore_unused";
+               linux,stdout-path = &uart1;
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x40000000 0x40000000>;
+       };
+
+       aliases {
+               ttyAS1 = &uart1;
+               ethernet0 = &ethernet0;
+       };
+
+       soc {
+
+               leds {
+                       compatible = "gpio-leds";
+                       user_green_1 {
+                               label = "User_green_1";
+                               gpios = <&pio1 3 GPIO_ACTIVE_LOW>;
+                               linux,default-trigger = "heartbeat";
+                               default-state = "off";
+                       };
+
+                       user_green_2 {
+                               label = "User_green_2";
+                               gpios = <&pio4 1 GPIO_ACTIVE_LOW>;
+                               default-state = "off";
+                       };
+
+                       user_green_3 {
+                               label = "User_green_3";
+                               gpios = <&pio2 1 GPIO_ACTIVE_LOW>;
+                               default-state = "off";
+                       };
+
+                       user_green_4 {
+                               label = "User_green_4";
+                               gpios = <&pio2 5 GPIO_ACTIVE_LOW>;
+                               default-state = "off";
+                       };
+               };
+
+               /* Low speed expansion connector */
+               uart0: serial@9830000 {
+                       label = "LS-UART0";
+                       status = "okay";
+               };
+
+               /* Low speed expansion connector */
+               uart1: serial@9831000 {
+                       label = "LS-UART1";
+                       status = "okay";
+               };
+
+               /* Low speed expansion connector */
+               spi0: spi@9844000 {
+                       label = "LS-SPI0";
+                       cs-gpio = <&pio30 3 0>;
+                       status = "okay";
+               };
+
+               /* Low speed expansion connector */
+               i2c0: i2c@9840000 {
+                       label = "LS-I2C0";
+                       status = "okay";
+               };
+
+               /* Low speed expansion connector */
+               i2c1: i2c@9841000 {
+                       label = "LS-I2C1";
+                       status = "okay";
+               };
+
+               /* high speed expansion connector */
+               i2c2: i2c@9842000 {
+                       label = "HS-I2C2";
+                       pinctrl-0 = <&pinctrl_i2c2_alt2_1>;
+                       status = "okay";
+               };
+
+               /* high speed expansion connector */
+               i2c3: i2c@9843000 {
+                       label = "HS-I2C3";
+                       pinctrl-0 = <&pinctrl_i2c3_alt3_0>;
+                       status = "okay";
+               };
+
+               mmc0: sdhci@09060000 {
+                       pinctrl-0 = <&pinctrl_sd0>;
+                       bus-width = <4>;
+                       status = "okay";
+               };
+
+               /* high speed expansion connector */
+               mmc1: sdhci@09080000 {
+                       status = "okay";
+               };
+
+               pwm0: pwm@9810000 {
+                       status = "okay";
+               };
+
+               pwm1: pwm@9510000 {
+                       status = "okay";
+               };
+
+               usb2_picophy1: phy2 {
+                       status = "okay";
+               };
+
+               usb2_picophy2: phy3 {
+                       status = "okay";
+               };
+
+               ohci0: usb@9a03c00 {
+                       status = "okay";
+               };
+
+               ehci0: usb@9a03e00 {
+                       status = "okay";
+               };
+
+               ohci1: usb@9a83c00 {
+                       status = "okay";
+               };
+
+               ehci1: usb@9a83e00 {
+                       status = "okay";
+               };
+
+               st_dwc3: dwc3@8f94000 {
+                       status = "okay";
+               };
+
+               ethernet0: dwmac@9630000 {
+                       phy-mode = "rgmii";
+                       pinctrl-0 = <&pinctrl_rgmii1 &pinctrl_rgmii1_mdio_1>;
+
+                       snps,phy-bus-name = "stmmac";
+                       snps,phy-bus-id = <0>;
+                       snps,phy-addr = <0>;
+                       snps,reset-gpio = <&pio0 7 0>;
+                       snps,reset-active-low;
+                       snps,reset-delays-us = <0 10000 1000000>;
+
+                       status = "okay";
+               };
+
+               /* SSC11 to HDMI */
+               hdmiddc: i2c@9541000 {
+                       /* 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>;
+                       status = "okay";
+               };
+
+               sti-display-subsystem {
+                       sti_hdmi: sti-hdmi@8d04000 {
+                               status = "okay";
+                       };
+               };
+
+               miphy28lp_phy: miphy28lp@9b22000 {
+
+                       phy_port1: port@9b2a000 {
+                               st,osc-force-ext;
+                       };
+               };
+
+               sata1: sata@9b28000 {
+                       status = "okay";
+               };
+       };
+};
index fd50496..8598eff 100644 (file)
@@ -44,7 +44,7 @@
 
                        clockgen_a9_pll: clockgen-a9-pll {
                                #clock-cells = <1>;
-                               compatible = "st,stih407-plls-c32-a9", "st,clkgen-plls-c32";
+                               compatible = "st,stih407-clkgen-plla9";
 
                                clocks = <&clk_sysin>;
 
@@ -98,7 +98,7 @@
 
                        clk_s_a0_pll: clk-s-a0-pll {
                                #clock-cells = <1>;
-                               compatible = "st,stih407-plls-c32-a0", "st,clkgen-plls-c32";
+                               compatible = "st,clkgen-pll0";
 
                                clocks = <&clk_sysin>;
 
 
                clk_s_c0_quadfs: clk-s-c0-quadfs@9103000 {
                        #clock-cells = <1>;
-                       compatible = "st,stih407-quadfs660-C", "st,quadfs";
+                       compatible = "st,quadfs-pll";
                        reg = <0x9103000 0x1000>;
 
                        clocks = <&clk_sysin>;
 
                        clk_s_c0_pll0: clk-s-c0-pll0 {
                                #clock-cells = <1>;
-                               compatible = "st,plls-c32-cx_0", "st,clkgen-plls-c32";
+                               compatible = "st,clkgen-pll0";
 
                                clocks = <&clk_sysin>;
 
 
                        clk_s_c0_pll1: clk-s-c0-pll1 {
                                #clock-cells = <1>;
-                               compatible = "st,plls-c32-cx_1", "st,clkgen-plls-c32";
+                               compatible = "st,clkgen-pll1";
 
                                clocks = <&clk_sysin>;
 
 
                clk_s_d0_quadfs: clk-s-d0-quadfs@9104000 {
                        #clock-cells = <1>;
-                       compatible = "st,stih407-quadfs660-D", "st,quadfs";
+                       compatible = "st,quadfs";
                        reg = <0x9104000 0x1000>;
 
                        clocks = <&clk_sysin>;
 
                        clk_s_d0_flexgen: clk-s-d0-flexgen {
                                #clock-cells = <1>;
-                               compatible = "st,flexgen";
+                               compatible = "st,flexgen-audio", "st,flexgen";
 
                                clocks = <&clk_s_d0_quadfs 0>,
                                         <&clk_s_d0_quadfs 1>,
 
                clk_s_d2_quadfs: clk-s-d2-quadfs@9106000 {
                        #clock-cells = <1>;
-                       compatible = "st,stih407-quadfs660-D", "st,quadfs";
+                       compatible = "st,quadfs";
                        reg = <0x9106000 0x1000>;
 
                        clocks = <&clk_sysin>;
 
                        clk_s_d2_flexgen: clk-s-d2-flexgen {
                                #clock-cells = <1>;
-                               compatible = "st,flexgen";
+                               compatible = "st,flexgen-video", "st,flexgen";
 
                                clocks = <&clk_s_d2_quadfs 0>,
                                         <&clk_s_d2_quadfs 1>,
 
                clk_s_d3_quadfs: clk-s-d3-quadfs@9107000 {
                        #clock-cells = <1>;
-                       compatible = "st,stih407-quadfs660-D", "st,quadfs";
+                       compatible = "st,quadfs";
                        reg = <0x9107000 0x1000>;
 
                        clocks = <&clk_sysin>;
index 4031886..a3ef734 100644 (file)
                        #size-cells = <1>;
 
                        assigned-clocks = <&clk_s_d2_quadfs 0>,
-                                         <&clk_s_d2_quadfs 0>,
+                                         <&clk_s_d2_quadfs 1>,
+                                         <&clk_s_c0_pll1 0>,
+                                         <&clk_s_c0_flexgen CLK_COMPO_DVP>,
+                                         <&clk_s_c0_flexgen CLK_MAIN_DISP>,
                                          <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>,
                                          <&clk_s_d2_flexgen CLK_PIX_AUX_DISP>,
                                          <&clk_s_d2_flexgen CLK_PIX_GDP1>,
 
                        assigned-clock-parents = <0>,
                                                 <0>,
+                                                <0>,
+                                                <&clk_s_c0_pll1 0>,
+                                                <&clk_s_c0_pll1 0>,
                                                 <&clk_s_d2_quadfs 0>,
-                                                <&clk_s_d2_quadfs 0>,
+                                                <&clk_s_d2_quadfs 1>,
                                                 <&clk_s_d2_quadfs 0>,
                                                 <&clk_s_d2_quadfs 0>,
                                                 <&clk_s_d2_quadfs 0>,
                                                 <&clk_s_d2_quadfs 0>;
 
-                       assigned-clock-rates = <297000000>, <297000000>;
+                       assigned-clock-rates = <297000000>,
+                                              <108000000>,
+                                              <0>,
+                                              <400000000>,
+                                              <400000000>;
 
                        ranges;
 
                        clock-names = "bdisp";
                        clocks = <&clk_s_c0_flexgen CLK_IC_BDISP_0>;
                };
+
+               hva@8c85000 {
+                       compatible = "st,st-hva";
+                       reg = <0x8c85000 0x400>, <0x6000000 0x40000>;
+                       reg-names = "hva_registers", "hva_esram";
+                       interrupts = <GIC_SPI 58 IRQ_TYPE_NONE>,
+                                    <GIC_SPI 59 IRQ_TYPE_NONE>;
+                       clock-names = "clk_hva";
+                       clocks = <&clk_s_c0_flexgen CLK_HVA>;
+               };
+
+               thermal@91a0000 {
+                       compatible = "st,stih407-thermal";
+                       reg = <0x91a0000 0x28>;
+                       clock-names = "thermal";
+                       clocks = <&clk_sysin>;
+                       interrupts = <GIC_SPI 205 IRQ_TYPE_EDGE_RISING>;
+               };
        };
 };
index 3791ad9..bd028ce 100644 (file)
@@ -54,7 +54,7 @@
 
                        pio0: gpio@fe610000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0 0x100>;
@@ -62,7 +62,7 @@
                        };
                        pio1: gpio@fe611000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x1000 0x100>;
@@ -70,7 +70,7 @@
                        };
                        pio2: gpio@fe612000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x2000 0x100>;
@@ -78,7 +78,7 @@
                        };
                        pio3: gpio@fe613000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x3000 0x100>;
@@ -86,7 +86,7 @@
                        };
                        pio4: gpio@fe614000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x4000 0x100>;
 
                        pio5: gpio@fee00000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0 0x100>;
                        };
                        pio6: gpio@fee01000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x1000 0x100>;
                        };
                        pio7: gpio@fee02000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x2000 0x100>;
                        };
                        pio8: gpio@fee03000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x3000 0x100>;
                        };
                        pio9: gpio@fee04000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x4000 0x100>;
                        };
                        pio10: gpio@fee05000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x5000 0x100>;
                        };
                        pio11: gpio@fee06000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x6000 0x100>;
                        };
                        pio12: gpio@fee07000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x7000 0x100>;
 
                        pio13: gpio@fe820000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0 0x100>;
                        };
                        pio14: gpio@fe821000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x1000 0x100>;
                        };
                        pio15: gpio@fe822000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x2000 0x100>;
                        };
                        pio16: gpio@fe823000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x3000 0x100>;
                        };
                        pio17: gpio@fe824000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x4000 0x100>;
                        };
                        pio18: gpio@fe825000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x5000 0x100>;
 
                        pio100: gpio@fd6b0000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0 0x100>;
                        };
                        pio101: gpio@fd6b1000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x1000 0x100>;
                        };
                        pio102: gpio@fd6b2000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x2000 0x100>;
 
                        pio103: gpio@fd330000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0 0x100>;
                        };
                        pio104: gpio@fd331000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x1000 0x100>;
                        };
                        pio105: gpio@fd332000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x2000 0x100>;
                        };
                        pio106: gpio@fd333000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x3000 0x100>;
                        };
                        pio107: gpio@fd334000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x4000 0x100>;
index f1ceee1..de320cd 100644 (file)
@@ -9,6 +9,7 @@
 /dts-v1/;
 #include "stih416.dtsi"
 #include "stih41x-b2020.dtsi"
+#include <dt-bindings/gpio/gpio.h>
 / {
        model = "STiH416 B2020 REV-E";
        compatible = "st,stih416-b2020", "st,stih416";
                leds {
                        compatible = "gpio-leds";
                        red {
-                               #gpio-cells             = <1>;
                                label                   = "Front Panel LED";
-                               gpios                   = <&pio4 1>;
+                               gpios                   = <&pio4 1 GPIO_ACTIVE_HIGH>;
                                linux,default-trigger   = "heartbeat";
                        };
                        green {
-                               gpios                   = <&pio1 3>;
+                               gpios                   = <&pio1 3 GPIO_ACTIVE_HIGH>;
                                default-state           = "off";
                        };
                };
index 051fc16..9c97f7e 100644 (file)
@@ -58,7 +58,7 @@
 
                        pio0: gpio@fe610000 {
                                gpio-controller;
-                               #gpio-cells = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0 0x100>;
@@ -66,7 +66,7 @@
                        };
                        pio1: gpio@fe611000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x1000 0x100>;
@@ -74,7 +74,7 @@
                        };
                        pio2: gpio@fe612000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x2000 0x100>;
@@ -82,7 +82,7 @@
                        };
                        pio3: gpio@fe613000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x3000 0x100>;
@@ -90,7 +90,7 @@
                        };
                        pio4: gpio@fe614000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x4000 0x100>;
@@ -98,7 +98,7 @@
                        };
                        pio40: gpio@fe615000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x5000 0x100>;
                                pinctrl_pwm1_chan0_default: pwm1-0-default {
                                        st,pins {
                                                pwm-out    = <&pio3 0 ALT1 OUT>;
+                                               pwm-capturein = <&pio3 2 ALT1 IN>;
+
                                        };
                                };
                                pinctrl_pwm1_chan1_default: pwm1-1-default {
                                        st,pins {
                                                pwm-out    = <&pio4 4 ALT1 OUT>;
+                                               pwm-capturein = <&pio4 3 ALT1 IN>;
                                        };
                                };
                                pinctrl_pwm1_chan2_default: pwm1-2-default {
 
                        pio5: gpio@fee00000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0 0x100>;
                        };
                        pio6: gpio@fee01000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x1000 0x100>;
                        };
                        pio7: gpio@fee02000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x2000 0x100>;
                        };
                        pio8: gpio@fee03000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x3000 0x100>;
                        };
                        pio9: gpio@fee04000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x4000 0x100>;
                        };
                        pio10: gpio@fee05000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x5000 0x100>;
                        };
                        pio11: gpio@fee06000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x6000 0x100>;
                        };
                        pio12: gpio@fee07000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x7000 0x100>;
                        };
                        pio30: gpio@fee08000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x8000 0x100>;
                        };
                        pio31: gpio@fee09000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x9000 0x100>;
                                pinctrl_pwm0_chan0_default: pwm0-0-default {
                                        st,pins {
                                                pwm-out    = <&pio9 7 ALT2 OUT>;
+                                               pwm-capturein = <&pio9 6 ALT2 IN>;
                                        };
                                };
                        };
 
                        pio13: gpio@fe820000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0 0x100>;
                        };
                        pio14: gpio@fe821000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x1000 0x100>;
                        };
                        pio15: gpio@fe822000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x2000 0x100>;
                        };
                        pio16: gpio@fe823000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x3000 0x100>;
                        };
                        pio17: gpio@fe824000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x4000 0x100>;
                        };
                        pio18: gpio@fe825000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x5000 0x100>;
                                pinctrl_pwm0_chan1_default: pwm0-1-default {
                                        st,pins {
                                                pwm-out    = <&pio13 2 ALT2 OUT>;
+                                               pwm-capturein = <&pio13 1 ALT2 IN>;
                                        };
                                };
                                pinctrl_pwm0_chan2_default: pwm0-2-default {
 
                        pio100: gpio@fd6b0000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0 0x100>;
                        };
                        pio101: gpio@fd6b1000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x1000 0x100>;
                        };
                        pio102: gpio@fd6b2000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x2000 0x100>;
 
                        pio103: gpio@fd330000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0 0x100>;
                        };
                        pio104: gpio@fd331000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x1000 0x100>;
                        };
                        pio105: gpio@fd332000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x2000 0x100>;
                        };
                        pio106: gpio@fd333000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x3000 0x100>;
 
                        pio107: gpio@fd334000 {
                                gpio-controller;
-                               #gpio-cells     = <1>;
+                               #gpio-cells     = <2>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg             = <0x4000 0x100>;
index 9e3170c..fe1f9cf 100644 (file)
                        status          = "disabled";
                        #pwm-cells      = <2>;
                        reg             = <0xfed10000 0x68>;
+                       interrupts      = <GIC_SPI 200 IRQ_TYPE_NONE>;
 
                        pinctrl-names   = "default";
                        pinctrl-0 =     <&pinctrl_pwm0_chan0_default
                                        &pinctrl_pwm0_chan2_default
                                        &pinctrl_pwm0_chan3_default>;
 
-                       clock-names     = "pwm";
-                       clocks          = <&clk_sysin>;
+                       clock-names     = "pwm", "capture";
+                       clocks          = <&clk_sysin>, <&clk_s_a0_ls CLK_ICN_REG>;
+
                        st,pwm-num-chan = <4>;
+                       st,capture-num-chan = <2>;
                };
 
                /* SBC PWM Module */
                        status          = "disabled";
                        #pwm-cells      = <2>;
                        reg             = <0xfe510000 0x68>;
+                       interrupts      = <GIC_SPI 202 IRQ_TYPE_NONE>;
 
                        pinctrl-names   = "default";
                        pinctrl-0       = <&pinctrl_pwm1_chan0_default
index 772d2bb..438e54c 100644 (file)
@@ -8,6 +8,7 @@
  */
 /dts-v1/;
 #include "stih418.dtsi"
+#include <dt-bindings/gpio/gpio.h>
 / {
        model = "STiH418 B2199";
        compatible = "st,stih418-b2199", "st,stih418";
                leds {
                        compatible = "gpio-leds";
                        red {
-                               #gpio-cells = <2>;
                                label = "Front Panel LED";
-                               gpios = <&pio4 1 0>;
+                               gpios = <&pio4 1 GPIO_ACTIVE_HIGH>;
                                linux,default-trigger = "heartbeat";
                        };
                        green {
-                               #gpio-cells = <2>;
-                               gpios = <&pio1 3 0>;
+                               gpios = <&pio1 3 GPIO_ACTIVE_HIGH>;
                                default-state = "off";
                        };
                };
@@ -86,6 +85,7 @@
                        sd-uhs-sdr50;
                        sd-uhs-sdr104;
                        sd-uhs-ddr50;
+                       non-removable;
                };
 
                miphy28lp_phy: miphy28lp@9b22000 {
index ae6d997..ee6614b 100644 (file)
@@ -44,7 +44,7 @@
 
                        clockgen_a9_pll: clockgen-a9-pll {
                                #clock-cells = <1>;
-                               compatible = "st,stih418-plls-c28-a9", "st,clkgen-plls-c32";
+                               compatible = "st,stih418-clkgen-plla9";
 
                                clocks = <&clk_sysin>;
 
@@ -98,7 +98,7 @@
 
                        clk_s_a0_pll: clk-s-a0-pll {
                                #clock-cells = <1>;
-                               compatible = "st,stih407-plls-c32-a0", "st,clkgen-plls-c32";
+                               compatible = "st,clkgen-pll0";
 
                                clocks = <&clk_sysin>;
 
 
                clk_s_c0_quadfs: clk-s-c0-quadfs@9103000 {
                        #clock-cells = <1>;
-                       compatible = "st,stih407-quadfs660-C", "st,quadfs";
+                       compatible = "st,quadfs-pll";
                        reg = <0x9103000 0x1000>;
 
                        clocks = <&clk_sysin>;
 
                        clk_s_c0_pll0: clk-s-c0-pll0 {
                                #clock-cells = <1>;
-                               compatible = "st,plls-c32-cx_0", "st,clkgen-plls-c32";
+                               compatible = "st,clkgen-pll0";
 
                                clocks = <&clk_sysin>;
 
 
                        clk_s_c0_pll1: clk-s-c0-pll1 {
                                #clock-cells = <1>;
-                               compatible = "st,plls-c32-cx_1", "st,clkgen-plls-c32";
+                               compatible = "st,clkgen-pll1";
 
                                clocks = <&clk_sysin>;
 
 
                clk_s_d0_quadfs: clk-s-d0-quadfs@9104000 {
                        #clock-cells = <1>;
-                       compatible = "st,stih407-quadfs660-D", "st,quadfs";
+                       compatible = "st,quadfs";
                        reg = <0x9104000 0x1000>;
 
                        clocks = <&clk_sysin>;
 
                        clk_s_d0_flexgen: clk-s-d0-flexgen {
                                #clock-cells = <1>;
-                               compatible = "st,flexgen";
+                               compatible = "st,flexgen-audio", "st,flexgen";
 
                                clocks = <&clk_s_d0_quadfs 0>,
                                         <&clk_s_d0_quadfs 1>,
 
                clk_s_d2_quadfs: clk-s-d2-quadfs@9106000 {
                        #clock-cells = <1>;
-                       compatible = "st,stih407-quadfs660-D", "st,quadfs";
+                       compatible = "st,quadfs";
                        reg = <0x9106000 0x1000>;
 
                        clocks = <&clk_sysin>;
 
                        clk_s_d2_flexgen: clk-s-d2-flexgen {
                                #clock-cells = <1>;
-                               compatible = "st,flexgen";
+                               compatible = "st,flexgen-video", "st,flexgen";
 
                                clocks = <&clk_s_d2_quadfs 0>,
                                         <&clk_s_d2_quadfs 1>,
 
                clk_s_d3_quadfs: clk-s-d3-quadfs@9107000 {
                        #clock-cells = <1>;
-                       compatible = "st,stih407-quadfs660-D", "st,quadfs";
+                       compatible = "st,quadfs";
                        reg = <0x9107000 0x1000>;
 
                        clocks = <&clk_sysin>;
index 5f91f45..9bfa067 100644 (file)
@@ -7,6 +7,8 @@
  * publishhed by the Free Software Foundation.
  */
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/gpio/gpio.h>
+
 / {
 
        memory{
@@ -33,9 +35,8 @@
                leds {
                        compatible      = "gpio-leds";
                        fp_led {
-                               #gpio-cells = <1>;
                                label   = "Front Panel LED";
-                               gpios   = <&pio105 7>;
+                               gpios   = <&pio105 7 GPIO_ACTIVE_HIGH>;
                                linux,default-trigger   = "heartbeat";
                        };
                };
index 487d7d8..322e0e9 100644 (file)
@@ -7,6 +7,7 @@
  * publishhed by the Free Software Foundation.
  */
 #include "stih41x-b2020x.dtsi"
+#include <dt-bindings/gpio/gpio.h>
 / {
        memory{
                device_type = "memory";
                leds {
                        compatible      = "gpio-leds";
                        red {
-                               #gpio-cells = <1>;
                                label   = "Front Panel LED";
-                               gpios   = <&pio4 1>;
+                               gpios   = <&pio4 1 GPIO_ACTIVE_HIGH>;
                                linux,default-trigger   = "heartbeat";
                        };
                        green {
-                               gpios   = <&pio4 7>;
+                               gpios   = <&pio4 7 GPIO_ACTIVE_HIGH>;
                                default-state = "off";
                        };
                };
index 133375b..ed2b7a9 100644 (file)
                leds {
                        compatible = "gpio-leds";
                        red {
-                               #gpio-cells = <2>;
                                label = "Front Panel LED";
-                               gpios = <&pio4 1 0>;
+                               gpios = <&pio4 1 GPIO_ACTIVE_HIGH>;
                                linux,default-trigger = "heartbeat";
                        };
                        green {
-                               #gpio-cells = <2>;
-                               gpios = <&pio1 3 0>;
+                               gpios = <&pio1 3 GPIO_ACTIVE_HIGH>;
                                default-state = "off";
                        };
                };
@@ -65,6 +63,7 @@
                };
 
                mmc0: sdhci@09060000 {
+                       non-removable;
                        status = "okay";
                };
 
                                dvb-card        = <STV0367_TDA18212_NIMA_1>;
                        };
                };
+
+               sti_uni_player2: sti-uni-player@8d82000 {
+                       status = "okay";
+               };
+
+               sti_uni_player3: sti-uni-player@8d85000 {
+                       status = "okay";
+               };
+
+               sti_sasg_codec: sti-sasg-codec {
+                       status = "okay";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_spdif_out>;
+               };
+
+               sound {
+                       compatible = "simple-audio-card";
+                       simple-audio-card,name = "sti audio card";
+                       status = "okay";
+
+                       simple-audio-card,dai-link@0 {
+                               /* DAC */
+                               format = "i2s";
+                               mclk-fs = <256>;
+                               cpu {
+                                       sound-dai = <&sti_uni_player2>;
+                               };
+
+                               codec {
+                                       sound-dai = <&sti_sasg_codec 1>;
+                               };
+                       };
+                       simple-audio-card,dai-link@1 {
+                               /* SPDIF */
+                               format = "left_j";
+                               mclk-fs = <128>;
+                               cpu {
+                                       sound-dai = <&sti_uni_player3>;
+                               };
+
+                               codec {
+                                       sound-dai = <&sti_sasg_codec 0>;
+                               };
+                       };
+               };
        };
 };
index 2e0741b..336ee4f 100644 (file)
@@ -45,6 +45,7 @@
  *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
+#include "skeleton.dtsi"
 #include "armv7-m.dtsi"
 #include <dt-bindings/pinctrl/stm32f429-pinfunc.h>
 
index f3cb297..5f98582 100644 (file)
        status = "okay";
 };
 
-&ohci1 {
-       status = "okay";
-};
-
 &otg_sram {
        status = "okay";
 };
diff --git a/arch/arm/boot/dts/sun5i-a13-empire-electronix-m712.dts b/arch/arm/boot/dts/sun5i-a13-empire-electronix-m712.dts
new file mode 100644 (file)
index 0000000..b1e2afd
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2016 Hans de Goede <hdegoede@redhat.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "sun5i-a13.dtsi"
+#include "sun5i-reference-design-tablet.dtsi"
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       model = "Empire Electronix M712 tablet";
+       compatible = "empire-electronix,m712", "allwinner,sun5i-a13";
+};
index 1b11ec9..439ae3b 100644 (file)
 
 /dts-v1/;
 #include "sun5i-a13.dtsi"
-#include "sunxi-common-regulators.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/interrupt-controller/irq.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
+#include "sun5i-reference-design-tablet.dtsi"
 
 / {
        model = "INet-98V Rev 02";
        compatible = "primux,inet98v-rev2", "allwinner,sun5i-a13";
-
-       aliases {
-               serial0 = &uart1;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-};
-
-&cpu0 {
-       cpu-supply = <&reg_dcdc2>;
-};
-
-&ehci0 {
-       status = "okay";
-};
-
-&i2c0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c0_pins_a>;
-       status = "okay";
-
-       axp209: pmic@34 {
-               reg = <0x34>;
-               interrupts = <0>;
-       };
-};
-
-#include "axp209.dtsi"
-
-&i2c1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c1_pins_a>;
-       status = "okay";
-
-       pcf8563: rtc@51 {
-               compatible = "nxp,pcf8563";
-               reg = <0x51>;
-       };
-};
-
-&lradc {
-       vref-supply = <&reg_ldo2>;
-       status = "okay";
-
-       button@200 {
-               label = "Volume Up";
-               linux,code = <KEY_VOLUMEUP>;
-               channel = <0>;
-               voltage = <200000>;
-       };
-
-       button@400 {
-               label = "Volume Down";
-               linux,code = <KEY_VOLUMEDOWN>;
-               channel = <0>;
-               voltage = <400000>;
-       };
-};
-
-&mmc0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_inet98fv2>;
-       vmmc-supply = <&reg_vcc3v3>;
-       bus-width = <4>;
-       cd-gpios = <&pio 6 0 GPIO_ACTIVE_HIGH>; /* PG0 */
-       cd-inverted;
-       status = "okay";
-};
-
-&otg_sram {
-       status = "okay";
-};
-
-&pio {
-       mmc0_cd_pin_inet98fv2: mmc0_cd_pin@0 {
-               allwinner,pins = "PG0";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
-       };
-
-       usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
-               allwinner,pins = "PG1";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
-       };
-
-       usb0_id_detect_pin: usb0_id_detect_pin@0 {
-               allwinner,pins = "PG2";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
-       };
-};
-
-&reg_dcdc2 {
-       regulator-always-on;
-       regulator-min-microvolt = <1000000>;
-       regulator-max-microvolt = <1400000>;
-       regulator-name = "vdd-cpu";
-};
-
-&reg_dcdc3 {
-       regulator-always-on;
-       regulator-min-microvolt = <1250000>;
-       regulator-max-microvolt = <1250000>;
-       regulator-name = "vdd-int-pll";
-};
-
-&reg_ldo1 {
-       regulator-name = "vdd-rtc";
-};
-
-&reg_ldo2 {
-       regulator-always-on;
-       regulator-min-microvolt = <3000000>;
-       regulator-max-microvolt = <3000000>;
-       regulator-name = "avcc";
-};
-
-&reg_ldo3 {
-       regulator-min-microvolt = <3300000>;
-       regulator-max-microvolt = <3300000>;
-       regulator-name = "vcc-wifi";
-};
-
-&reg_usb0_vbus {
-       gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
-       status = "okay";
-};
-
-&uart1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&uart1_pins_b>;
-       status = "okay";
-};
-
-&usb_otg {
-       dr_mode = "otg";
-       status = "okay";
-};
-
-&usb0_vbus_pin_a {
-       allwinner,pins = "PG12";
-};
-
-&usbphy {
-       pinctrl-names = "default";
-       pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
-       usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
-       usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
-       usb0_vbus-supply = <&reg_usb0_vbus>;
-       usb1_vbus-supply = <&reg_ldo3>;
-       status = "okay";
 };
index f694482..b68a123 100644 (file)
        chosen {
                stdout-path = "serial0:115200n8";
        };
+
+       leds {
+               compatible = "gpio-leds";
+
+               status {
+                       label = "chip:white:status";
+                       gpios = <&axp_gpio 2 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+               };
+       };
 };
 
 &be0 {
index e182eec..882a4d8 100644 (file)
 
 /dts-v1/;
 #include "sun6i-a31s.dtsi"
-#include "sunxi-common-regulators.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
+#include "sun6i-reference-design-tablet.dtsi"
 
 / {
        model = "Colorfly E708 Q1 tablet";
        compatible = "colorfly,e708-q1", "allwinner,sun6i-a31s";
-
-       aliases {
-               serial0 = &uart0;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-};
-
-&cpu0 {
-       cpu-supply = <&reg_dcdc3>;
-};
-
-&ehci0 {
-       /* rtl8188etv wifi is connected here */
-       status = "okay";
 };
 
 &lradc {
        };
 };
 
-&mmc0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_e708_q1>;
-       vmmc-supply = <&reg_dcdc1>;
-       bus-width = <4>;
-       cd-gpios = <&pio 0 8 GPIO_ACTIVE_HIGH>; /* PA8 */
-       cd-inverted;
-       status = "okay";
-};
-
-&pio {
-       mma8452_int_e708_q1: mma8452_int_pin@0 {
-               allwinner,pins = "PA9";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
-       };
-
-       mmc0_cd_pin_e708_q1: mmc0_cd_pin@0 {
-               allwinner,pins = "PA8";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
-       };
-};
-
-&p2wi {
-       status = "okay";
-
-       axp22x: pmic@68 {
-               compatible = "x-powers,axp221";
-               reg = <0x68>;
-               interrupt-parent = <&nmi_intc>;
-               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
-       };
-};
-
-#include "axp22x.dtsi"
-
-&reg_aldo3 {
-       regulator-always-on;
-       regulator-min-microvolt = <2700000>;
-       regulator-max-microvolt = <3300000>;
-       regulator-name = "avcc";
-};
-
-&reg_dc1sw {
-       regulator-name = "vcc-lcd";
-};
-
-&reg_dc5ldo {
-       regulator-always-on;
-       regulator-min-microvolt = <700000>;
-       regulator-max-microvolt = <1320000>;
-       regulator-name = "vdd-cpus"; /* This is an educated guess */
-};
-
-&reg_dcdc1 {
-       regulator-always-on;
-       regulator-min-microvolt = <3000000>;
-       regulator-max-microvolt = <3000000>;
-       regulator-name = "vcc-3v0";
-};
-
-&reg_dcdc2 {
-       regulator-min-microvolt = <700000>;
-       regulator-max-microvolt = <1320000>;
-       regulator-name = "vdd-gpu";
-};
-
-&reg_dcdc3 {
-       regulator-always-on;
-       regulator-min-microvolt = <700000>;
-       regulator-max-microvolt = <1320000>;
-       regulator-name = "vdd-cpu";
-};
-
-&reg_dcdc4 {
-       regulator-always-on;
-       regulator-min-microvolt = <700000>;
-       regulator-max-microvolt = <1320000>;
-       regulator-name = "vdd-sys-dll";
-};
-
-&reg_dcdc5 {
-       regulator-always-on;
-       regulator-min-microvolt = <1500000>;
-       regulator-max-microvolt = <1500000>;
-       regulator-name = "vcc-dram";
-};
-
-&reg_dldo1 {
-       regulator-min-microvolt = <3300000>;
-       regulator-max-microvolt = <3300000>;
-       regulator-name = "vcc-wifi";
-};
-
 &reg_dldo2 {
        regulator-min-microvolt = <1800000>;
        regulator-max-microvolt = <1800000>;
 };
 
 &simplefb_lcd {
-       vcc-lcd-supply = <&reg_dc1sw>;
        vcc-pg-supply = <&reg_dldo2>;
 };
-
-/*
- * FIXME for now we only support host mode and rely on u-boot to have
- * turned on Vbus which is controlled by the axp221 pmic on the board.
- *
- * Once we have axp221 power-supply and vbus-usb support we should switch
- * to fully supporting otg.
- */
-&usb_otg {
-       dr_mode = "host";
-       status = "okay";
-};
-
-&usbphy {
-       usb1_vbus-supply = <&reg_dldo1>;
-       status = "okay";
-};
diff --git a/arch/arm/boot/dts/sun6i-a31s-inet-q972.dts b/arch/arm/boot/dts/sun6i-a31s-inet-q972.dts
new file mode 100644 (file)
index 0000000..e584e6b
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2016 Hans de Goede <hdegoede@redhat.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "sun6i-a31s.dtsi"
+#include "sun6i-reference-design-tablet.dtsi"
+
+/ {
+       model = "iNet Q972 tablet";
+       compatible = "inet-tek,inet-q972", "allwinner,sun6i-a31s";
+};
+
+&ehci1 {
+       status = "okay";
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins_a>;
+       status = "okay";
+
+       ft5406ee8: touchscreen@38 {
+               compatible = "edt,edt-ft5406";
+               reg = <0x38>;
+               interrupt-parent = <&pio>;
+               interrupts = <0 3 IRQ_TYPE_LEVEL_HIGH>; /* PA3 */
+               touchscreen-size-x = <768>;
+               touchscreen-size-y = <1024>;
+               touchscreen-swapped-x-y;
+       };
+};
+
+&lradc {
+       vref-supply = <&reg_aldo3>;
+       status = "okay";
+
+       button@200 {
+               label = "Volume Down";
+               linux,code = <KEY_VOLUMEDOWN>;
+               channel = <0>;
+               voltage = <200000>;
+       };
+
+       button@900 {
+               label = "Volume Up";
+               linux,code = <KEY_VOLUMEUP>;
+               channel = <0>;
+               voltage = <900000>;
+       };
+
+       button@1200 {
+               label = "Back";
+               linux,code = <KEY_BACK>;
+               channel = <0>;
+               voltage = <1200000>;
+       };
+};
+
+&ohci1 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi b/arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi
new file mode 100644 (file)
index 0000000..0c43430
--- /dev/null
@@ -0,0 +1,193 @@
+/*
+ * Copyright 2016 Hans de Goede <hdegoede@redhat.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "sunxi-common-regulators.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/pinctrl/sun4i-a10.h>
+
+/ {
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&reg_dcdc3>;
+};
+
+&ehci0 {
+       /* Wifi is connected here */
+       status = "okay";
+};
+
+&mmc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_e708_q1>;
+       vmmc-supply = <&reg_dcdc1>;
+       bus-width = <4>;
+       cd-gpios = <&pio 0 8 GPIO_ACTIVE_HIGH>; /* PA8 */
+       cd-inverted;
+       status = "okay";
+};
+
+&pio {
+       mmc0_cd_pin_e708_q1: mmc0_cd_pin@0 {
+               allwinner,pins = "PA8";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+       };
+
+       usb0_id_detect_pin: usb0_id_detect_pin@0 {
+               allwinner,pins = "PA15";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+       };
+};
+
+&p2wi {
+       status = "okay";
+
+       axp22x: pmic@68 {
+               compatible = "x-powers,axp221";
+               reg = <0x68>;
+               interrupt-parent = <&nmi_intc>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+               drivevbus-supply = <&reg_vcc5v0>;
+               x-powers,drive-vbus-en;
+       };
+};
+
+#include "axp22x.dtsi"
+
+&reg_aldo3 {
+       regulator-always-on;
+       regulator-min-microvolt = <2700000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "avcc";
+};
+
+&reg_dc1sw {
+       regulator-name = "vcc-lcd";
+};
+
+&reg_dc5ldo {
+       regulator-always-on;
+       regulator-min-microvolt = <700000>;
+       regulator-max-microvolt = <1320000>;
+       regulator-name = "vdd-cpus"; /* This is an educated guess */
+};
+
+&reg_dcdc1 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "vcc-3v0";
+};
+
+&reg_dcdc2 {
+       regulator-min-microvolt = <700000>;
+       regulator-max-microvolt = <1320000>;
+       regulator-name = "vdd-gpu";
+};
+
+&reg_dcdc3 {
+       regulator-always-on;
+       regulator-min-microvolt = <700000>;
+       regulator-max-microvolt = <1320000>;
+       regulator-name = "vdd-cpu";
+};
+
+&reg_dcdc4 {
+       regulator-always-on;
+       regulator-min-microvolt = <700000>;
+       regulator-max-microvolt = <1320000>;
+       regulator-name = "vdd-sys-dll";
+};
+
+&reg_dcdc5 {
+       regulator-always-on;
+       regulator-min-microvolt = <1500000>;
+       regulator-max-microvolt = <1500000>;
+       regulator-name = "vcc-dram";
+};
+
+&reg_dldo1 {
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-wifi";
+};
+
+&reg_drivevbus {
+       regulator-name = "usb0-vbus";
+       status = "okay";
+};
+
+&simplefb_lcd {
+       vcc-lcd-supply = <&reg_dc1sw>;
+};
+
+&usb_otg {
+       dr_mode = "otg";
+       status = "okay";
+};
+
+&usb_power_supply {
+       status = "okay";
+};
+
+&usbphy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb0_id_detect_pin>;
+       usb0_id_det-gpio = <&pio 0 15 GPIO_ACTIVE_HIGH>; /* PA15 */
+       usb0_vbus_power-supply = <&usb_power_supply>;
+       usb0_vbus-supply = <&reg_drivevbus>;
+       usb1_vbus-supply = <&reg_dldo1>;
+       status = "okay";
+};
index e3b196e..826877b 100644 (file)
                                             "mmc2_sample";
                };
 
+               nand_clk: clk@01c20080 {
+                       #clock-cells = <0>;
+                       compatible = "allwinner,sun4i-a10-mod0-clk";
+                       reg = <0x01c20080 0x4>;
+                       clocks = <&osc24M>, <&pll6 1>;
+                       clock-output-names = "nand";
+               };
+
                usb_clk: clk@01c200cc {
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                        #size-cells = <0>;
                };
 
+               nfc: nand@01c03000 {
+                       compatible = "allwinner,sun4i-a10-nand";
+                       reg = <0x01c03000 0x1000>;
+                       interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&ahb1_gates 13>, <&nand_clk>;
+                       clock-names = "ahb", "mod";
+                       resets = <&ahb1_rst 13>;
+                       reset-names = "ahb";
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
                ehci0: usb@01c1a000 {
                        compatible = "allwinner,sun8i-a23-ehci", "generic-ehci";
                        reg = <0x01c1a000 0x100>;
index b2ce284..f27ebbb 100644 (file)
 
 /dts-v1/;
 #include "sun8i-a23.dtsi"
-#include "sunxi-common-regulators.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
-#include <dt-bindings/pwm/pwm.h>
+#include "sun8i-reference-design-tablet.dtsi"
 
 / {
        model = "Allwinner GT90H Dual Core Tablet (v4)";
        compatible = "allwinner,gt90h-v4", "allwinner,sun8i-a23";
-
-       aliases {
-               serial0 = &r_uart;
-       };
-
-       backlight: backlight {
-               compatible = "pwm-backlight";
-               pinctrl-names = "default";
-               pinctrl-0 = <&bl_en_pin_gt90h>;
-               pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
-               brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
-               default-brightness-level = <8>;
-               enable-gpios = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
 };
 
 &ehci0 {
        status = "okay";
 };
 
-&i2c0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c0_pins_a>;
-       status = "okay";
-};
-
-&i2c1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c1_pins_a>;
-       status = "okay";
-};
-
 &lradc {
-       vref-supply = <&reg_vcc3v0>;
-       status = "okay";
-
-       button@200 {
-               label = "Volume Up";
-               linux,code = <KEY_VOLUMEUP>;
-               channel = <0>;
-               voltage = <200000>;
-       };
-
-       button@400 {
-               label = "Volume Down";
-               linux,code = <KEY_VOLUMEDOWN>;
-               channel = <0>;
-               voltage = <400000>;
-       };
-
        button@600 {
                label = "Back";
                linux,code = <KEY_BACK>;
        };
 };
 
-&mmc0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_gt90h>;
-       vmmc-supply = <&reg_aldo1>;
-       bus-width = <4>;
-       cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
-       cd-inverted;
-       status = "okay";
-};
-
-&pio {
-       bl_en_pin_gt90h: bl_en_pin@0 {
-               allwinner,pins = "PH6";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
-       };
-
-       mmc0_cd_pin_gt90h: mmc0_cd_pin@0 {
-               allwinner,pins = "PB4";
-               allwinner,function = "gpio_in";
-               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
-       };
-};
-
-&pwm {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pwm0_pins>;
-       status = "okay";
-};
-
-&r_rsb {
-       status = "okay";
-
-       axp22x: pmic@3a3 {
-               compatible = "x-powers,axp223";
-               reg = <0x3a3>;
-               interrupt-parent = <&nmi_intc>;
-               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
-               eldoin-supply = <&reg_dcdc1>;
-       };
-};
-
-&r_uart {
-       pinctrl-names = "default";
-       pinctrl-0 = <&r_uart_pins_a>;
-       status = "okay";
-};
-
-#include "axp22x.dtsi"
-
-&reg_aldo1 {
-       regulator-always-on;
-       regulator-min-microvolt = <3000000>;
-       regulator-max-microvolt = <3000000>;
-       regulator-name = "vcc-io";
-};
-
-&reg_aldo2 {
-       regulator-always-on;
-       regulator-min-microvolt = <2350000>;
-       regulator-max-microvolt = <2650000>;
-       regulator-name = "vdd-dll";
-};
-
-&reg_aldo3 {
-       regulator-always-on;
-       regulator-min-microvolt = <2700000>;
-       regulator-max-microvolt = <3300000>;
-       regulator-name = "vcc-pll-avcc";
-};
-
-&reg_dc1sw {
-       regulator-name = "vcc-lcd";
-};
-
-&reg_dc5ldo {
-       regulator-always-on;
-       regulator-min-microvolt = <900000>;
-       regulator-max-microvolt = <1400000>;
-       regulator-name = "vdd-cpus";
-};
-
-&reg_dcdc1 {
-       regulator-always-on;
-       regulator-min-microvolt = <3000000>;
-       regulator-max-microvolt = <3000000>;
-       regulator-name = "vcc-3v0";
-};
-
-&reg_dcdc2 {
-       regulator-always-on;
-       regulator-min-microvolt = <900000>;
-       regulator-max-microvolt = <1400000>;
-       regulator-name = "vdd-sys";
-};
-
-&reg_dcdc3 {
-       regulator-always-on;
-       regulator-min-microvolt = <900000>;
-       regulator-max-microvolt = <1400000>;
-       regulator-name = "vdd-cpu";
-};
-
-&reg_dcdc5 {
-       regulator-always-on;
-       regulator-min-microvolt = <1500000>;
-       regulator-max-microvolt = <1500000>;
-       regulator-name = "vcc-dram";
-};
-
-&reg_dldo1 {
-       regulator-min-microvolt = <3300000>;
-       regulator-max-microvolt = <3300000>;
-       regulator-name = "vcc-wifi";
-};
-
-&reg_rtc_ldo {
-       regulator-name = "vcc-rtc";
-};
-
-&simplefb_lcd {
-       vcc-lcd-supply = <&reg_dc1sw>;
-};
-
-/*
- * FIXME for now we only support host mode and rely on u-boot to have
- * turned on Vbus which is controlled by the axp223 pmic on the board.
- *
- * Once we have axp223 support we should switch to fully supporting otg.
- */
-&usb_otg {
-       dr_mode = "host";
-       status = "okay";
-};
-
 &usbphy {
        usb1_vbus-supply = <&reg_dldo1>;
-       status = "okay";
 };
index e300442..4789aac 100644 (file)
 / {
        model = "Polaroid MID2407PXE03 tablet";
        compatible = "polaroid,mid2407pxe03", "allwinner,sun8i-a23";
+
+       aliases {
+               ethernet0 = &esp8089;
+       };
+
+       wifi_pwrseq: wifi_pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_pwrseq_pin_mid2407>;
+               reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL6 */
+               /* The esp8089 needs 200 ms after driving wifi-en high */
+               post-power-on-delay-ms = <200>;
+       };
+};
+
+&mmc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins_a>;
+       vmmc-supply = <&reg_dldo1>;
+       mmc-pwrseq = <&wifi_pwrseq>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+
+       esp8089: sdio_wifi@1 {
+               compatible = "esp,esp8089";
+               reg = <1>;
+               esp,crystal-26M-en = <2>;
+       };
+};
+
+&mmc1_pins_a {
+       allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+};
+
+&r_pio {
+       wifi_pwrseq_pin_mid2407: wifi_pwrseq_pin@0 {
+               allwinner,pins = "PL6";
+               allwinner,function = "gpio_out";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
 };
index 6d06e24..c9213ca 100644 (file)
 / {
        model = "Polaroid MID2809PXE04 tablet";
        compatible = "polaroid,mid2809pxe04", "allwinner,sun8i-a23";
+
+       aliases {
+               ethernet0 = &esp8089;
+       };
+
+       wifi_pwrseq: wifi_pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_pwrseq_pin_mid2809>;
+               reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL6 */
+               /* The esp8089 needs 200 ms after driving wifi-en high */
+               post-power-on-delay-ms = <200>;
+       };
+};
+
+&mmc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins_a>;
+       vmmc-supply = <&reg_dldo1>;
+       mmc-pwrseq = <&wifi_pwrseq>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+
+       esp8089: sdio_wifi@1 {
+               compatible = "esp,esp8089";
+               reg = <1>;
+               esp,crystal-26M-en = <2>;
+       };
+};
+
+&mmc1_pins_a {
+       allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+};
+
+&r_pio {
+       wifi_pwrseq_pin_mid2809: wifi_pwrseq_pin@0 {
+               allwinner,pins = "PL6";
+               allwinner,function = "gpio_out";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
 };
index 6566032..de6269d 100644 (file)
 / {
        model = "Allwinner GA10H Quad Core Tablet (v1.1)";
        compatible = "allwinner,ga10h-v1.1", "allwinner,sun8i-a33";
+
+       aliases {
+               /* Make u-boot set mac-address for rtl8703as (no eeprom) */
+               ethernet0 = &rtl8703as;
+       };
 };
 
 &ehci0 {
        };
 };
 
+&mmc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins_a>;
+       vmmc-supply = <&reg_dldo1>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+
+       rtl8703as: sdio_wifi@1 {
+               reg = <1>;
+       };
+};
+
 &ohci0 {
        status = "okay";
 };
diff --git a/arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts b/arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts
new file mode 100644 (file)
index 0000000..0f52cd9
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2015 Hans de Goede <hdegoede@redhat.com>
+ * Copyright 2016 Icenowy Zheng <icenowy@aosc.xyz>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "sun8i-a33.dtsi"
+#include "sun8i-reference-design-tablet.dtsi"
+
+/ {
+       model = "INet-D978 Rev 02";
+       compatible = "primux,inet-d978-rev2", "allwinner,sun8i-a33";
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pin_d978>;
+
+               home {
+                       label = "d978:blue:home";
+                       gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */
+               };
+       };
+};
+
+&mmc1_pins_a {
+       allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+};
+
+&mmc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins_a>;
+       vmmc-supply = <&reg_dldo1>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+
+       rtl8723bs: sdio_wifi@1 {
+               reg = <1>;
+       };
+};
+
+&r_pio {
+       led_pin_d978: led_pin_d978@0 {
+               allwinner,pins = "PL5";
+               allwinner,function = "gpio_out";
+               allwinner,drive = <SUN4I_PINCTRL_20_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
+};
diff --git a/arch/arm/boot/dts/sun8i-a33-olinuxino.dts b/arch/arm/boot/dts/sun8i-a33-olinuxino.dts
new file mode 100644 (file)
index 0000000..9ea637e
--- /dev/null
@@ -0,0 +1,226 @@
+/*
+ * Copyright 2016 - Stefan Mavrodiev <stefan.mavrodiev@gmail.com>
+ *                  Olimex LTD. <support@olimex.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "sun8i-a33.dtsi"
+#include "sunxi-common-regulators.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+       model = "Olimex A33-OLinuXino";
+       compatible = "olimex,a33-olinuxino","allwinner,sun8i-a33";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pin_olinuxino>;
+
+               green {
+                       label = "a33-olinuxino:green:usr";
+                       gpios = <&pio 1 7 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&mmc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_olinuxino>;
+       vmmc-supply = <&reg_dcdc1>;
+       bus-width = <4>;
+       cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
+       cd-inverted;
+       status = "okay";
+};
+
+&ohci0 {
+       status = "okay";
+};
+
+&pio {
+       led_pin_olinuxino: led_pins@0 {
+               allwinner,pins = "PB7";
+               allwinner,function = "gpio_out";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
+
+       mmc0_cd_pin_olinuxino: mmc0_cd_pin@0 {
+               allwinner,pins = "PB4";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
+
+       usb0_id_detect_pin: usb0_id_detect_pin@0 {
+               allwinner,pins = "PB3";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
+};
+
+&r_rsb {
+       status = "okay";
+
+       axp22x: pmic@3a3 {
+               compatible = "x-powers,axp223";
+               reg = <0x3a3>;
+               interrupt-parent = <&nmi_intc>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+               eldoin-supply = <&reg_dcdc1>;
+               x-powers,drive-vbus-en;
+       };
+};
+
+#include "axp22x.dtsi"
+
+&reg_aldo1 {
+       regulator-always-on;
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-io";
+};
+
+&reg_aldo2 {
+       regulator-always-on;
+       regulator-min-microvolt = <2350000>;
+       regulator-max-microvolt = <2650000>;
+       regulator-name = "vdd-dll";
+};
+
+&reg_aldo3 {
+       regulator-always-on;
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-avcc";
+};
+
+&reg_dc1sw {
+       regulator-name = "vcc-lcd";
+};
+
+&reg_dc5ldo {
+       regulator-always-on;
+       regulator-min-microvolt = <900000>;
+       regulator-max-microvolt = <1400000>;
+       regulator-name = "vdd-cpus";
+};
+
+&reg_dcdc1 {
+       regulator-always-on;
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-3v3";
+};
+
+&reg_dcdc2 {
+       regulator-always-on;
+       regulator-min-microvolt = <900000>;
+       regulator-max-microvolt = <1400000>;
+       regulator-name = "vdd-sys";
+};
+
+&reg_dcdc3 {
+       regulator-always-on;
+       regulator-min-microvolt = <900000>;
+       regulator-max-microvolt = <1400000>;
+       regulator-name = "vdd-cpu";
+};
+
+&reg_dcdc5 {
+       regulator-always-on;
+       regulator-min-microvolt = <1500000>;
+       regulator-max-microvolt = <1500000>;
+       regulator-name = "vcc-dram";
+};
+
+&reg_drivevbus {
+       regulator-name = "usb0-vbus";
+       status = "okay";
+};
+
+&reg_rtc_ldo {
+       regulator-name = "vcc-rtc";
+};
+
+&simplefb_lcd {
+       vcc-lcd-supply = <&reg_dc1sw>;
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins_b>;
+       status = "okay";
+};
+
+&usb_otg {
+       dr_mode = "otg";
+       status = "okay";
+};
+
+&usb_power_supply {
+       status = "okay";
+};
+
+&usbphy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb0_id_detect_pin>;
+       usb0_id_det-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
+       usb0_vbus_power-supply = <&usb_power_supply>;
+       usb0_vbus-supply = <&reg_drivevbus>;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts
new file mode 100644 (file)
index 0000000..3d64caf
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2016 James Pettigrew <james@innovum.com.au>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "sun8i-h3.dtsi"
+#include "sunxi-common-regulators.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/sun4i-a10.h>
+
+/ {
+       model = "FriendlyARM NanoPi NEO";
+       compatible = "friendlyarm,nanopi-neo", "allwinner,sun8i-h3";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&leds_opc>, <&leds_r_opc>;
+
+               pwr {
+                       label = "nanopi:green:pwr";
+                       gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */
+                       default-state = "on";
+               };
+
+               status {
+                       label = "nanopi:blue:status";
+                       gpios = <&pio 0 10 GPIO_ACTIVE_HIGH>; /* PA10 */
+               };
+       };
+};
+
+&ehci3 {
+       status = "okay";
+};
+
+&mmc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
+       vmmc-supply = <&reg_vcc3v3>;
+       bus-width = <4>;
+       cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
+       cd-inverted;
+       status = "okay";
+};
+
+&ohci3 {
+       status = "okay";
+};
+
+&pio {
+       leds_opc: led-pins {
+               allwinner,pins = "PA10";
+               allwinner,function = "gpio_out";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
+};
+
+&r_pio {
+       leds_r_opc: led-pins {
+               allwinner,pins = "PL10";
+               allwinner,function = "gpio_out";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins_a>;
+       status = "okay";
+};
+
+&usbphy {
+       /* USB VBUS is always on */
+       status = "okay";
+};
index f93f5d1..f89fe00 100644 (file)
@@ -54,6 +54,8 @@
 
        aliases {
                serial0 = &uart0;
+               /* ethernet0 is the H3 emac, defined in sun8i-h3.dtsi */
+               ethernet1 = &rtl8189;
        };
 
        chosen {
        bus-width = <4>;
        non-removable;
        status = "okay";
+
+       /*
+        * Explicitly define the sdio device, so that we can add an ethernet
+        * alias for it (which e.g. makes u-boot set a mac-address).
+        */
+       rtl8189: sdio_wifi@1 {
+               reg = <1>;
+       };
 };
 
 &pio {
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts
new file mode 100644 (file)
index 0000000..1550fee
--- /dev/null
@@ -0,0 +1,178 @@
+/*
+ * Copyright (C) 2016 Hans de Goede <hdegoede@redhat.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "sun8i-h3.dtsi"
+#include "sunxi-common-regulators.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/pinctrl/sun4i-a10.h>
+
+/ {
+       model = "Xunlong Orange Pi Lite";
+       compatible = "xunlong,orangepi-lite", "allwinner,sun8i-h3";
+
+       aliases {
+               /* The H3 emac is not used so the wifi is ethernet0 */
+               ethernet0 = &rtl8189ftv;
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&leds_opc>, <&leds_r_opc>;
+
+               pwr_led {
+                       label = "orangepi:green:pwr";
+                       gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+               };
+
+               status_led {
+                       label = "orangepi:red:status";
+                       gpios = <&pio 0 15 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       r_gpio_keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&sw_r_opc>;
+
+               sw4 {
+                       label = "sw4";
+                       linux,code = <BTN_0>;
+                       gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&ehci1 {
+       status = "okay";
+};
+
+&ehci2 {
+       status = "okay";
+};
+
+&ir {
+       pinctrl-names = "default";
+       pinctrl-0 = <&ir_pins_a>;
+       status = "okay";
+};
+
+&mmc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
+       vmmc-supply = <&reg_vcc3v3>;
+       bus-width = <4>;
+       cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
+       cd-inverted;
+       status = "okay";
+};
+
+&mmc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins_a>;
+       vmmc-supply = <&reg_vcc3v3>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+
+       /*
+        * Explicitly define the sdio device, so that we can add an ethernet
+        * alias for it (which e.g. makes u-boot set a mac-address).
+        */
+       rtl8189ftv: sdio_wifi@1 {
+               reg = <1>;
+       };
+};
+
+&ohci1 {
+       status = "okay";
+};
+
+&ohci2 {
+       status = "okay";
+};
+
+&pio {
+       leds_opc: led_pins@0 {
+               allwinner,pins = "PA15";
+               allwinner,function = "gpio_out";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
+};
+
+&r_pio {
+       leds_r_opc: led_pins@0 {
+               allwinner,pins = "PL10";
+               allwinner,function = "gpio_out";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
+
+       sw_r_opc: key_pins@0 {
+               allwinner,pins = "PL3";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins_a>;
+       status = "okay";
+};
+
+&usbphy {
+       /* USB VBUS is always on */
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
new file mode 100644 (file)
index 0000000..851fd2c
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2016 Hans de Goede <hdegoede@redhat.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/* The Orange Pi PC Plus is an extended version of the regular PC */
+#include "sun8i-h3-orangepi-pc.dts"
+
+/ {
+       model = "Xunlong Orange Pi PC Plus";
+       compatible = "xunlong,orangepi-pc-plus", "allwinner,sun8i-h3";
+
+       aliases {
+               /* ethernet0 is the H3 emac, defined in sun8i-h3.dtsi */
+               ethernet1 = &rtl8189ftv;
+       };
+};
+
+&mmc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins_a>;
+       vmmc-supply = <&reg_vcc3v3>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+
+       /*
+        * Explicitly define the sdio device, so that we can add an ethernet
+        * alias for it (which e.g. makes u-boot set a mac-address).
+        */
+       rtl8189ftv: sdio_wifi@1 {
+               reg = <1>;
+       };
+};
+
+&mmc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_8bit_pins>;
+       vmmc-supply = <&reg_vcc3v3>;
+       bus-width = <8>;
+       non-removable;
+       cap-mmc-hw-reset;
+       status = "okay";
+};
+
+&mmc2_8bit_pins {
+       /* Increase drive strength for DDR modes */
+       allwinner,drive = <SUN4I_PINCTRL_40_MA>;
+       /* eMMC is missing pull-ups */
+       allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+};
index b0cb417..bb58591 100644 (file)
@@ -44,7 +44,7 @@
 #include "sun8i-h3-orangepi-2.dts"
 
 / {
-       model = "Xunlong Orange Pi Plus";
+       model = "Xunlong Orange Pi Plus / Plus 2";
        compatible = "xunlong,orangepi-plus", "allwinner,sun8i-h3";
 
        reg_usb3_vbus: usb3-vbus {
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
new file mode 100644 (file)
index 0000000..5851a47
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2016 Hans de Goede <hdegoede@redhat.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * The Orange Pi Plus 2E is an extended version of the Orange Pi PC Plus,
+ * with 2G RAM and an external gbit ethernet phy.
+ */
+
+#include "sun8i-h3-orangepi-pc-plus.dts"
+
+/ {
+       model = "Xunlong Orange Pi Plus 2E";
+       compatible = "xunlong,orangepi-plus2e", "allwinner,sun8i-h3";
+};
index 8a95e36..9ea313d 100644 (file)
                        interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               pwm: pwm@01c21400 {
+                       compatible = "allwinner,sun8i-h3-pwm";
+                       reg = <0x01c21400 0x8>;
+                       clocks = <&osc24M>;
+                       #pwm-cells = <3>;
+                       status = "disabled";
+               };
+
                uart0: serial@01c28000 {
                        compatible = "snps,dw-apb-uart";
                        reg = <0x01c28000 0x400>;
index 60fa958..29f837a 100644 (file)
 #include "sunxi-reference-design-tablet.dtsi"
 #include "sun8i-reference-design-tablet.dtsi"
 
+/ {
+       aliases {
+               serial0 = &r_uart;
+               /* Make u-boot set mac-address for wifi without an eeprom */
+               ethernet0 = &sdio_wifi;
+       };
+
+       wifi_pwrseq: wifi_pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               /*
+                * Q8 boards use various PL# pins as wifi-en. On other boards
+                * these may be connected to a wifi module output pin. To avoid
+                * short-circuits we configure these as inputs with pull-ups via
+                * pinctrl, instead of listing them as active-low reset-gpios.
+                */
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_pwrseq_pin_q8>;
+               /* The esp8089 needs 200 ms after driving wifi-en high */
+               post-power-on-delay-ms = <200>;
+       };
+};
+
 &ehci0 {
        status  = "okay";
 };
 
+&mmc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins_a>;
+       vmmc-supply = <&reg_dldo1>;
+       mmc-pwrseq = <&wifi_pwrseq>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+
+       sdio_wifi: sdio_wifi@1 {
+               reg = <1>;
+       };
+};
+
+&mmc1_pins_a {
+       allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+};
+
+&r_pio {
+       wifi_pwrseq_pin_q8: wifi_pwrseq_pin@0 {
+               allwinner,pins = "PL6", "PL7", "PL11";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+       };
+};
+
 &usbphy {
        usb1_vbus-supply = <&reg_dldo1>;
 };
index 9d90361..08cd001 100644 (file)
        };
 };
 
+&i2c0 {
+       /*
+        * The gsl1680 is rated at 400KHz and it will not work reliable at
+        * 100KHz, this has been confirmed on multiple different q8 tablets.
+        * The gsl1680 is the only device on this bus.
+        */
+       clock-frequency = <400000>;
+
+       touchscreen: touchscreen@0 {
+               interrupt-parent = <&pio>;
+               interrupts = <1 5 IRQ_TYPE_EDGE_FALLING>; /* PB5 */
+               pinctrl-names = "default";
+               pinctrl-0 = <&ts_power_pin>;
+               power-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
+               /* Tablet dts must provide reg and compatible */
+               status = "disabled";
+       };
+};
+
 &mmc0 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
                allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
        };
 
+       ts_power_pin: ts_power_pin@0 {
+               allwinner,pins = "PH1";
+               allwinner,function = "gpio_out";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
+
        usb0_id_detect_pin: usb0_id_detect_pin@0 {
                allwinner,pins = "PH8";
                allwinner,function = "gpio_in";
index 1526b41..04b0146 100644 (file)
        allwinner,drive = <SUN4I_PINCTRL_40_MA>;
 };
 
+&osc32k {
+       /* osc32k input is from AC100 */
+       clocks = <&ac100_rtc 0>;
+};
+
 &pio {
        led_pins_cubieboard4: led-pins@0 {
                allwinner,pins = "PH6", "PH17";
                        };
                };
        };
+
+       ac100: codec@e89 {
+               compatible = "x-powers,ac100";
+               reg = <0xe89>;
+
+               ac100_codec: codec {
+                       compatible = "x-powers,ac100-codec";
+                       interrupt-parent = <&r_pio>;
+                       interrupts = <0 9 IRQ_TYPE_LEVEL_LOW>; /* PL9 */
+                       #clock-cells = <0>;
+                       clock-output-names = "4M_adda";
+               };
+
+               ac100_rtc: rtc {
+                       compatible = "x-powers,ac100-rtc";
+                       interrupt-parent = <&nmi_intc>;
+                       interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+                       clocks = <&ac100_codec>;
+                       #clock-cells = <1>;
+                       clock-output-names = "cko1_rtc",
+                                            "cko2_rtc",
+                                            "cko3_rtc";
+               };
+       };
 };
 
 #include "axp809.dtsi"
index 7fd22e8..fd874de 100644 (file)
        status = "okay";
 };
 
+&osc32k {
+       /* osc32k input is from AC100 */
+       clocks = <&ac100_rtc 0>;
+};
+
 &pio {
        led_pins_optimus: led-pins@0 {
                allwinner,pins = "PH0", "PH1";
                        };
                };
        };
+
+       ac100: codec@e89 {
+               compatible = "x-powers,ac100";
+               reg = <0xe89>;
+
+               ac100_codec: codec {
+                       compatible = "x-powers,ac100-codec";
+                       interrupt-parent = <&r_pio>;
+                       interrupts = <0 9 IRQ_TYPE_LEVEL_LOW>; /* PL9 */
+                       #clock-cells = <0>;
+                       clock-output-names = "4M_adda";
+               };
+
+               ac100_rtc: rtc {
+                       compatible = "x-powers,ac100-rtc";
+                       interrupt-parent = <&nmi_intc>;
+                       interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+                       clocks = <&ac100_codec>;
+                       #clock-cells = <1>;
+                       clock-output-names = "cko1_rtc",
+                                            "cko2_rtc",
+                                            "cko3_rtc";
+               };
+       };
 };
 
 #include "axp809.dtsi"
index f68b324..3c5214c 100644 (file)
 
                /*
                 * The 32k clock is from an external source, normally the
-                * AC100 codec/RTC chip. This clock is by default enabled
-                * and clocked at 32768 Hz, from the oscillator connected
-                * to the AC100. It is configurable, but no such driver or
-                * bindings exist yet.
+                * AC100 codec/RTC chip. This serves as a placeholder for
+                * board dts files to specify the source.
                 */
                osc32k: osc32k_clk {
                        #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <32768>;
+                       compatible = "fixed-factor-clock";
+                       clock-div = <1>;
+                       clock-mult = <1>;
                        clock-output-names = "osc32k";
                };
 
                        resets = <&apbs_rst 0>;
                        gpio-controller;
                        interrupt-controller;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+                       #interrupt-cells = <3>;
                        #gpio-cells = <3>;
 
                        r_ir_pins: r_ir {
index cb9393a..8932ea3 100644 (file)
        };
 
        usb@7d000000 {
-               compatible = "nvidia,tegra30-ehci", "usb-ehci";
+               compatible = "nvidia,tegra114-ehci", "nvidia,tegra30-ehci", "usb-ehci";
                reg = <0x7d000000 0x4000>;
                interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
                phy_type = "utmi";
        };
 
        phy1: usb-phy@7d000000 {
-               compatible = "nvidia,tegra30-usb-phy";
+               compatible = "nvidia,tegra114-usb-phy", "nvidia,tegra30-usb-phy";
                reg = <0x7d000000 0x4000 0x7d000000 0x4000>;
                phy_type = "utmi";
                clocks = <&tegra_car TEGRA114_CLK_USBD>,
        };
 
        usb@7d008000 {
-               compatible = "nvidia,tegra30-ehci", "usb-ehci";
+               compatible = "nvidia,tegra114-ehci", "nvidia,tegra30-ehci", "usb-ehci";
                reg = <0x7d008000 0x4000>;
                interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
                phy_type = "utmi";
        };
 
        phy3: usb-phy@7d008000 {
-               compatible = "nvidia,tegra30-usb-phy";
+               compatible = "nvidia,tegra114-usb-phy", "nvidia,tegra30-usb-phy";
                reg = <0x7d008000 0x4000 0x7d000000 0x4000>;
                phy_type = "utmi";
                clocks = <&tegra_car TEGRA114_CLK_USB3>,
index 03f60ec..8c8a851 100644 (file)
@@ -1,7 +1,8 @@
 /*
  * Device Tree Source commonly used by UniPhier ARM SoCs
  *
- * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
+ * Copyright (C) 2015-2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
  *
  * This file is dual-licensed: you can use it either under the terms
  * of the GPL or the X11 license, at your option. Note that this dual
 /include/ "skeleton.dtsi"
 
 / {
+       psci {
+               compatible = "arm,psci-0.2";
+               method = "smc";
+       };
+
        clocks {
                refclk: ref {
                        #clock-cells = <0>;
@@ -66,7 +72,7 @@
                        interrupts = <0 33 4>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_uart0>;
-                       clocks = <&uart_clk>;
+                       clocks = <&peri_clk 0>;
                };
 
                serial1: serial@54006900 {
@@ -76,7 +82,7 @@
                        interrupts = <0 35 4>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_uart1>;
-                       clocks = <&uart_clk>;
+                       clocks = <&peri_clk 1>;
                };
 
                serial2: serial@54006a00 {
@@ -86,7 +92,7 @@
                        interrupts = <0 37 4>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_uart2>;
-                       clocks = <&uart_clk>;
+                       clocks = <&peri_clk 2>;
                };
 
                serial3: serial@54006b00 {
                        interrupts = <0 177 4>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_uart3>;
-                       clocks = <&uart_clk>;
+                       clocks = <&peri_clk 3>;
                };
 
                system_bus: system-bus@58c00000 {
                        reg = <0x59801000 0x400>;
                };
 
+               mioctrl@59810000 {
+                       compatible = "socionext,uniphier-mioctrl",
+                                    "simple-mfd", "syscon";
+                       reg = <0x59810000 0x800>;
+
+                       mio_clk: clock {
+                               #clock-cells = <1>;
+                       };
+
+                       mio_rst: reset {
+                               #reset-cells = <1>;
+                       };
+               };
+
+               perictrl@59820000 {
+                       compatible = "socionext,uniphier-perictrl",
+                                    "simple-mfd", "syscon";
+                       reg = <0x59820000 0x200>;
+
+                       peri_clk: clock {
+                               #clock-cells = <1>;
+                       };
+
+                       peri_rst: reset {
+                               #reset-cells = <1>;
+                       };
+               };
+
                timer@60000200 {
                        compatible = "arm,cortex-a9-global-timer";
                        reg = <0x60000200 0x20>;
                };
 
                soc-glue@5f800000 {
-                       compatible = "simple-mfd", "syscon";
+                       compatible = "socionext,uniphier-soc-glue",
+                                    "simple-mfd", "syscon";
                        reg = <0x5f800000 0x2000>;
 
                        pinctrl: pinctrl {
-                                /* specify compatible in each SoC DTSI */
+                               /* specify compatible in each SoC DTSI */
+                       };
+               };
+
+               sysctrl@61840000 {
+                       compatible = "socionext,uniphier-sysctrl",
+                                    "simple-mfd", "syscon";
+                       reg = <0x61840000 0x4000>;
+
+                       sys_clk: clock {
+                               #clock-cells = <1>;
+                       };
+
+                       sys_rst: reset {
+                               #reset-cells = <1>;
                        };
                };
        };
diff --git a/arch/arm/boot/dts/uniphier-ld4-ref.dts b/arch/arm/boot/dts/uniphier-ld4-ref.dts
new file mode 100644 (file)
index 0000000..110031b
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Device Tree Source for UniPhier LD4 Reference Board
+ *
+ * Copyright (C) 2015-2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+/include/ "uniphier-ld4.dtsi"
+/include/ "uniphier-ref-daughter.dtsi"
+/include/ "uniphier-support-card.dtsi"
+
+/ {
+       model = "UniPhier LD4 Reference Board";
+       compatible = "socionext,uniphier-ld4-ref", "socionext,uniphier-ld4";
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x20000000>;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               serial3 = &serial3;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+       };
+};
+
+&ethsc {
+       interrupts = <0 49 4>;
+};
+
+&serial0 {
+       status = "okay";
+};
+
+&serial2 {
+       status = "okay";
+};
+
+&serial3 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&usb0 {
+       status = "okay";
+};
+
+&usb1 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/uniphier-ld4.dtsi b/arch/arm/boot/dts/uniphier-ld4.dtsi
new file mode 100644 (file)
index 0000000..95f342c
--- /dev/null
@@ -0,0 +1,207 @@
+/*
+ * Device Tree Source for UniPhier LD4 SoC
+ *
+ * Copyright (C) 2015-2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/include/ "uniphier-common32.dtsi"
+
+/ {
+       compatible = "socionext,uniphier-ld4";
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2>;
+               };
+       };
+
+       clocks {
+               arm_timer_clk: arm_timer_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <50000000>;
+               };
+       };
+};
+
+&soc {
+       l2: l2-cache@500c0000 {
+               compatible = "socionext,uniphier-system-cache";
+               reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>;
+               interrupts = <0 174 4>, <0 175 4>;
+               cache-unified;
+               cache-size = <(512 * 1024)>;
+               cache-sets = <256>;
+               cache-line-size = <128>;
+               cache-level = <2>;
+       };
+
+       i2c0: i2c@58400000 {
+               compatible = "socionext,uniphier-i2c";
+               status = "disabled";
+               reg = <0x58400000 0x40>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 41 1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c0>;
+               clocks = <&peri_clk 4>;
+               clock-frequency = <100000>;
+       };
+
+       i2c1: i2c@58480000 {
+               compatible = "socionext,uniphier-i2c";
+               status = "disabled";
+               reg = <0x58480000 0x40>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 42 1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c1>;
+               clocks = <&peri_clk 5>;
+               clock-frequency = <100000>;
+       };
+
+       /* chip-internal connection for DMD */
+       i2c2: i2c@58500000 {
+               compatible = "socionext,uniphier-i2c";
+               reg = <0x58500000 0x40>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 43 1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c2>;
+               clocks = <&peri_clk 6>;
+               clock-frequency = <400000>;
+       };
+
+       i2c3: i2c@58580000 {
+               compatible = "socionext,uniphier-i2c";
+               status = "disabled";
+               reg = <0x58580000 0x40>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 44 1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c3>;
+               clocks = <&peri_clk 7>;
+               clock-frequency = <100000>;
+       };
+
+       usb0: usb@5a800100 {
+               compatible = "socionext,uniphier-ehci", "generic-ehci";
+               status = "disabled";
+               reg = <0x5a800100 0x100>;
+               interrupts = <0 80 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usb0>;
+               clocks = <&mio_clk 7>, <&mio_clk 8>, <&mio_clk 12>;
+               resets = <&mio_rst 7>, <&mio_rst 8>, <&mio_rst 12>, <&sys_rst 8>;
+       };
+
+       usb1: usb@5a810100 {
+               compatible = "socionext,uniphier-ehci", "generic-ehci";
+               status = "disabled";
+               reg = <0x5a810100 0x100>;
+               interrupts = <0 81 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usb1>;
+               clocks = <&mio_clk 7>, <&mio_clk 9>, <&mio_clk 13>;
+               resets = <&mio_rst 7>, <&mio_rst 9>, <&mio_rst 13>, <&sys_rst 8>;
+       };
+
+       usb2: usb@5a820100 {
+               compatible = "socionext,uniphier-ehci", "generic-ehci";
+               status = "disabled";
+               reg = <0x5a820100 0x100>;
+               interrupts = <0 82 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usb2>;
+               clocks = <&mio_clk 7>, <&mio_clk 10>, <&mio_clk 14>;
+               resets = <&mio_rst 7>, <&mio_rst 10>, <&mio_rst 14>, <&sys_rst 8>;
+       };
+
+};
+
+&refclk {
+       clock-frequency = <24576000>;
+};
+
+&serial3 {
+       interrupts = <0 29 4>;
+};
+
+&mio_clk {
+       compatible = "socionext,uniphier-ld4-mio-clock";
+};
+
+&mio_rst {
+       compatible = "socionext,uniphier-ld4-mio-reset";
+       resets = <&sys_rst 7>;
+};
+
+&peri_clk {
+       compatible = "socionext,uniphier-ld4-peri-clock";
+};
+
+&peri_rst {
+       compatible = "socionext,uniphier-ld4-peri-reset";
+};
+
+&pinctrl {
+       compatible = "socionext,uniphier-ld4-pinctrl";
+};
+
+&sys_clk {
+       compatible = "socionext,uniphier-ld4-clock";
+};
+
+&sys_rst {
+       compatible = "socionext,uniphier-ld4-reset";
+};
diff --git a/arch/arm/boot/dts/uniphier-ld6b-ref.dts b/arch/arm/boot/dts/uniphier-ld6b-ref.dts
new file mode 100644 (file)
index 0000000..c05d631
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * Device Tree Source for UniPhier LD6b Reference Board
+ *
+ * Copyright (C) 2015-2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+/include/ "uniphier-ld6b.dtsi"
+/include/ "uniphier-ref-daughter.dtsi"
+/include/ "uniphier-support-card.dtsi"
+
+/ {
+       model = "UniPhier LD6b Reference Board";
+       compatible = "socionext,uniphier-ld6b-ref", "socionext,uniphier-ld6b";
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x80000000>;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c4 = &i2c4;
+               i2c5 = &i2c5;
+               i2c6 = &i2c6;
+       };
+};
+
+&ethsc {
+       interrupts = <0 52 4>;
+};
+
+&serial0 {
+       status = "okay";
+};
+
+&serial1 {
+       status = "okay";
+};
+
+&serial2 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/uniphier-ld6b.dtsi b/arch/arm/boot/dts/uniphier-ld6b.dtsi
new file mode 100644 (file)
index 0000000..905c77d
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Device Tree Source for UniPhier LD6b SoC
+ *
+ * Copyright (C) 2015-2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * LD6b consists of two silicon dies: D-chip and A-chip.
+ * The D-chip (digital chip) is the same as the PXs2 die.
+ * Reuse the PXs2 device tree with some properties overridden.
+ */
+/include/ "uniphier-pxs2.dtsi"
+
+/ {
+       compatible = "socionext,uniphier-ld6b";
+};
+
+/* UART3 unavailable: the pads are not wired to the package balls */
+&serial3 {
+       status = "disabled";
+};
+
+/*
+ * LD6b and PXs2 have completely different packages,
+ * which makes the pinctrl driver unshareable.
+ */
+&pinctrl {
+       compatible = "socionext,uniphier-ld6b-pinctrl";
+};
diff --git a/arch/arm/boot/dts/uniphier-ph1-ld4-ref.dts b/arch/arm/boot/dts/uniphier-ph1-ld4-ref.dts
deleted file mode 100644 (file)
index ec94b7a..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Device Tree Source for UniPhier PH1-LD4 Reference Board
- *
- * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-/include/ "uniphier-ph1-ld4.dtsi"
-/include/ "uniphier-ref-daughter.dtsi"
-/include/ "uniphier-support-card.dtsi"
-
-/ {
-       model = "UniPhier PH1-LD4 Reference Board";
-       compatible = "socionext,ph1-ld4-ref", "socionext,ph1-ld4";
-
-       memory {
-               device_type = "memory";
-               reg = <0x80000000 0x20000000>;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-               serial2 = &serial2;
-               serial3 = &serial3;
-               i2c0 = &i2c0;
-               i2c1 = &i2c1;
-               i2c2 = &i2c2;
-               i2c3 = &i2c3;
-       };
-};
-
-&ethsc {
-       interrupts = <0 49 4>;
-};
-
-&serial0 {
-       status = "okay";
-};
-
-&serial2 {
-       status = "okay";
-};
-
-&serial3 {
-       status = "okay";
-};
-
-&i2c0 {
-       status = "okay";
-};
-
-&usb0 {
-       status = "okay";
-};
-
-&usb1 {
-       status = "okay";
-};
diff --git a/arch/arm/boot/dts/uniphier-ph1-ld4.dtsi b/arch/arm/boot/dts/uniphier-ph1-ld4.dtsi
deleted file mode 100644 (file)
index debad7f..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Device Tree Source for UniPhier PH1-LD4 SoC
- *
- * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/include/ "uniphier-common32.dtsi"
-
-/ {
-       compatible = "socionext,ph1-ld4";
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu@0 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a9";
-                       reg = <0>;
-                       next-level-cache = <&l2>;
-               };
-       };
-
-       clocks {
-               arm_timer_clk: arm_timer_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <50000000>;
-               };
-
-               uart_clk: uart_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <36864000>;
-               };
-
-               iobus_clk: iobus_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <100000000>;
-               };
-       };
-};
-
-&soc {
-       l2: l2-cache@500c0000 {
-               compatible = "socionext,uniphier-system-cache";
-               reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>;
-               interrupts = <0 174 4>, <0 175 4>;
-               cache-unified;
-               cache-size = <(512 * 1024)>;
-               cache-sets = <256>;
-               cache-line-size = <128>;
-               cache-level = <2>;
-       };
-
-       i2c0: i2c@58400000 {
-               compatible = "socionext,uniphier-i2c";
-               status = "disabled";
-               reg = <0x58400000 0x40>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 41 1>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c0>;
-               clocks = <&iobus_clk>;
-               clock-frequency = <100000>;
-       };
-
-       i2c1: i2c@58480000 {
-               compatible = "socionext,uniphier-i2c";
-               status = "disabled";
-               reg = <0x58480000 0x40>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 42 1>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c1>;
-               clocks = <&iobus_clk>;
-               clock-frequency = <100000>;
-       };
-
-       /* chip-internal connection for DMD */
-       i2c2: i2c@58500000 {
-               compatible = "socionext,uniphier-i2c";
-               reg = <0x58500000 0x40>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 43 1>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c2>;
-               clocks = <&iobus_clk>;
-               clock-frequency = <400000>;
-       };
-
-       i2c3: i2c@58580000 {
-               compatible = "socionext,uniphier-i2c";
-               status = "disabled";
-               reg = <0x58580000 0x40>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 44 1>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c3>;
-               clocks = <&iobus_clk>;
-               clock-frequency = <100000>;
-       };
-
-       usb0: usb@5a800100 {
-               compatible = "socionext,uniphier-ehci", "generic-ehci";
-               status = "disabled";
-               reg = <0x5a800100 0x100>;
-               interrupts = <0 80 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_usb0>;
-       };
-
-       usb1: usb@5a810100 {
-               compatible = "socionext,uniphier-ehci", "generic-ehci";
-               status = "disabled";
-               reg = <0x5a810100 0x100>;
-               interrupts = <0 81 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_usb1>;
-       };
-
-       usb2: usb@5a820100 {
-               compatible = "socionext,uniphier-ehci", "generic-ehci";
-               status = "disabled";
-               reg = <0x5a820100 0x100>;
-               interrupts = <0 82 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_usb2>;
-       };
-
-};
-
-&refclk {
-       clock-frequency = <24576000>;
-};
-
-&serial3 {
-       interrupts = <0 29 4>;
-};
-
-&pinctrl {
-       compatible = "socionext,uniphier-ld4-pinctrl";
-};
diff --git a/arch/arm/boot/dts/uniphier-ph1-ld6b-ref.dts b/arch/arm/boot/dts/uniphier-ph1-ld6b-ref.dts
deleted file mode 100644 (file)
index b8134c6..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Device Tree Source for UniPhier PH1-LD6b Reference Board
- *
- * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-/include/ "uniphier-ph1-ld6b.dtsi"
-/include/ "uniphier-ref-daughter.dtsi"
-/include/ "uniphier-support-card.dtsi"
-
-/ {
-       model = "UniPhier PH1-LD6b Reference Board";
-       compatible = "socionext,ph1-ld6b-ref", "socionext,ph1-ld6b";
-
-       memory {
-               device_type = "memory";
-               reg = <0x80000000 0x80000000>;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-               serial2 = &serial2;
-               i2c0 = &i2c0;
-               i2c1 = &i2c1;
-               i2c2 = &i2c2;
-               i2c3 = &i2c3;
-               i2c4 = &i2c4;
-               i2c5 = &i2c5;
-               i2c6 = &i2c6;
-       };
-};
-
-&ethsc {
-       interrupts = <0 52 4>;
-};
-
-&serial0 {
-       status = "okay";
-};
-
-&serial1 {
-       status = "okay";
-};
-
-&serial2 {
-       status = "okay";
-};
-
-&i2c0 {
-       status = "okay";
-};
diff --git a/arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi b/arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi
deleted file mode 100644 (file)
index 19c107c..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Device Tree Source for UniPhier PH1-LD6b SoC
- *
- * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/*
- * PH1-LD6b consists of two silicon dies: D-chip and A-chip.
- * The D-chip (digital chip) is the same as the ProXstream2 die.
- * Reuse the ProXstream2 device tree with some properties overridden.
- */
-/include/ "uniphier-proxstream2.dtsi"
-
-/ {
-       compatible = "socionext,ph1-ld6b";
-};
-
-/* UART3 unavailable: the pads are not wired to the package balls */
-&serial3 {
-       status = "disabled";
-};
-
-/*
- * PH1-LD6b and ProXstream2 have completely different packages,
- * which makes the pinctrl driver unshareable.
- */
-&pinctrl {
-       compatible = "socionext,uniphier-ld6b-pinctrl";
-};
diff --git a/arch/arm/boot/dts/uniphier-ph1-pro4-ace.dts b/arch/arm/boot/dts/uniphier-ph1-pro4-ace.dts
deleted file mode 100644 (file)
index d343586..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Device Tree Source for UniPhier PH1-Pro4 Ace Board
- *
- * Copyright (C) 2016 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-/include/ "uniphier-ph1-pro4.dtsi"
-
-/ {
-       model = "UniPhier PH1-Pro4 Ace Board";
-       compatible = "socionext,ph1-pro4-ace", "socionext,ph1-pro4";
-
-       memory {
-               device_type = "memory";
-               reg = <0x80000000 0x40000000>;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-               serial2 = &serial2;
-               i2c0 = &i2c0;
-               i2c1 = &i2c1;
-               i2c2 = &i2c2;
-               i2c3 = &i2c3;
-               i2c5 = &i2c5;
-               i2c6 = &i2c6;
-       };
-};
-
-&serial0 {
-       status = "okay";
-};
-
-&serial1 {
-       status = "okay";
-};
-
-&serial2 {
-       status = "okay";
-};
-
-&i2c0 {
-       status = "okay";
-
-       eeprom@54 {
-               compatible = "st,24c64";
-               reg = <0x54>;
-       };
-};
-
-&i2c1 {
-       status = "okay";
-};
-
-&i2c2 {
-       status = "okay";
-};
-
-&i2c3 {
-       status = "okay";
-};
-
-&usb2 {
-       status = "okay";
-};
-
-&usb3 {
-       status = "okay";
-};
diff --git a/arch/arm/boot/dts/uniphier-ph1-pro4-ref.dts b/arch/arm/boot/dts/uniphier-ph1-pro4-ref.dts
deleted file mode 100644 (file)
index 95f631a..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Device Tree Source for UniPhier PH1-Pro4 Reference Board
- *
- * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-/include/ "uniphier-ph1-pro4.dtsi"
-/include/ "uniphier-ref-daughter.dtsi"
-/include/ "uniphier-support-card.dtsi"
-
-/ {
-       model = "UniPhier PH1-Pro4 Reference Board";
-       compatible = "socionext,ph1-pro4-ref", "socionext,ph1-pro4";
-
-       memory {
-               device_type = "memory";
-               reg = <0x80000000 0x40000000>;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-               serial2 = &serial2;
-               serial3 = &serial3;
-               i2c0 = &i2c0;
-               i2c1 = &i2c1;
-               i2c2 = &i2c2;
-               i2c3 = &i2c3;
-               i2c5 = &i2c5;
-               i2c6 = &i2c6;
-       };
-};
-
-&ethsc {
-       interrupts = <0 50 4>;
-};
-
-&serial0 {
-       status = "okay";
-};
-
-&serial1 {
-       status = "okay";
-};
-
-&serial2 {
-       status = "okay";
-};
-
-&i2c0 {
-       status = "okay";
-};
-
-&usb2 {
-       status = "okay";
-};
-
-&usb3 {
-       status = "okay";
-};
diff --git a/arch/arm/boot/dts/uniphier-ph1-pro4-sanji.dts b/arch/arm/boot/dts/uniphier-ph1-pro4-sanji.dts
deleted file mode 100644 (file)
index 7c3a1fc..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Device Tree Source for UniPhier PH1-Pro4 Sanji Board
- *
- * Copyright (C) 2016 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-/include/ "uniphier-ph1-pro4.dtsi"
-
-/ {
-       model = "UniPhier PH1-Pro4 Sanji Board";
-       compatible = "socionext,ph1-pro4-sanji", "socionext,ph1-pro4";
-
-       memory {
-               device_type = "memory";
-               reg = <0x80000000 0x80000000>;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-               i2c0 = &i2c0;
-               i2c1 = &i2c1;
-               i2c2 = &i2c2;
-               i2c3 = &i2c3;
-               i2c5 = &i2c5;
-               i2c6 = &i2c6;
-       };
-};
-
-&serial0 {
-       status = "okay";
-};
-
-&serial1 {
-       status = "okay";
-};
-
-&i2c0 {
-       status = "okay";
-
-       eeprom@54 {
-               compatible = "st,24c64";
-               reg = <0x54>;
-       };
-};
-
-&i2c1 {
-       status = "okay";
-};
-
-&i2c2 {
-       status = "okay";
-};
-
-&i2c3 {
-       status = "okay";
-};
-
-&usb2 {
-       status = "okay";
-};
-
-&usb3 {
-       status = "okay";
-};
diff --git a/arch/arm/boot/dts/uniphier-ph1-pro4.dtsi b/arch/arm/boot/dts/uniphier-ph1-pro4.dtsi
deleted file mode 100644 (file)
index 7b9da08..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Device Tree Source for UniPhier PH1-Pro4 SoC
- *
- * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/include/ "uniphier-common32.dtsi"
-
-/ {
-       compatible = "socionext,ph1-pro4";
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               enable-method = "socionext,uniphier-smp";
-
-               cpu@0 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a9";
-                       reg = <0>;
-                       next-level-cache = <&l2>;
-               };
-
-               cpu@1 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a9";
-                       reg = <1>;
-                       next-level-cache = <&l2>;
-               };
-       };
-
-       clocks {
-               arm_timer_clk: arm_timer_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <50000000>;
-               };
-
-               uart_clk: uart_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <73728000>;
-               };
-
-               i2c_clk: i2c_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <50000000>;
-               };
-       };
-};
-
-&soc {
-       l2: l2-cache@500c0000 {
-               compatible = "socionext,uniphier-system-cache";
-               reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>;
-               interrupts = <0 174 4>, <0 175 4>;
-               cache-unified;
-               cache-size = <(768 * 1024)>;
-               cache-sets = <256>;
-               cache-line-size = <128>;
-               cache-level = <2>;
-       };
-
-       i2c0: i2c@58780000 {
-               compatible = "socionext,uniphier-fi2c";
-               status = "disabled";
-               reg = <0x58780000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 41 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c0>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <100000>;
-       };
-
-       i2c1: i2c@58781000 {
-               compatible = "socionext,uniphier-fi2c";
-               status = "disabled";
-               reg = <0x58781000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 42 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c1>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <100000>;
-       };
-
-       i2c2: i2c@58782000 {
-               compatible = "socionext,uniphier-fi2c";
-               status = "disabled";
-               reg = <0x58782000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 43 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c2>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <100000>;
-       };
-
-       i2c3: i2c@58783000 {
-               compatible = "socionext,uniphier-fi2c";
-               status = "disabled";
-               reg = <0x58783000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 44 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c3>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <100000>;
-       };
-
-       /* i2c4 does not exist */
-
-       /* chip-internal connection for DMD */
-       i2c5: i2c@58785000 {
-               compatible = "socionext,uniphier-fi2c";
-               reg = <0x58785000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 25 4>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <400000>;
-       };
-
-       /* chip-internal connection for HDMI */
-       i2c6: i2c@58786000 {
-               compatible = "socionext,uniphier-fi2c";
-               reg = <0x58786000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 26 4>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <400000>;
-       };
-
-       usb2: usb@5a800100 {
-               compatible = "socionext,uniphier-ehci", "generic-ehci";
-               status = "disabled";
-               reg = <0x5a800100 0x100>;
-               interrupts = <0 80 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_usb2>;
-       };
-
-       usb3: usb@5a810100 {
-               compatible = "socionext,uniphier-ehci", "generic-ehci";
-               status = "disabled";
-               reg = <0x5a810100 0x100>;
-               interrupts = <0 81 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_usb3>;
-       };
-};
-
-&refclk {
-       clock-frequency = <25000000>;
-};
-
-&pinctrl {
-       compatible = "socionext,uniphier-pro4-pinctrl";
-};
diff --git a/arch/arm/boot/dts/uniphier-ph1-pro5.dtsi b/arch/arm/boot/dts/uniphier-ph1-pro5.dtsi
deleted file mode 100644 (file)
index 7e4aa2f..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Device Tree Source for UniPhier PH1-Pro5 SoC
- *
- * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/include/ "uniphier-common32.dtsi"
-
-/ {
-       compatible = "socionext,ph1-pro5";
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               enable-method = "socionext,uniphier-smp";
-
-               cpu@0 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a9";
-                       reg = <0>;
-                       next-level-cache = <&l2>;
-               };
-
-               cpu@1 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a9";
-                       reg = <1>;
-                       next-level-cache = <&l2>;
-               };
-       };
-
-       clocks {
-               arm_timer_clk: arm_timer_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <50000000>;
-               };
-
-               uart_clk: uart_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <73728000>;
-               };
-
-               i2c_clk: i2c_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <50000000>;
-               };
-       };
-};
-
-&soc {
-       l2: l2-cache@500c0000 {
-               compatible = "socionext,uniphier-system-cache";
-               reg = <0x500c0000 0x2000>, <0x503c0100 0x8>, <0x506c0000 0x400>;
-               interrupts = <0 190 4>, <0 191 4>;
-               cache-unified;
-               cache-size = <(2 * 1024 * 1024)>;
-               cache-sets = <512>;
-               cache-line-size = <128>;
-               cache-level = <2>;
-               next-level-cache = <&l3>;
-       };
-
-       l3: l3-cache@500c8000 {
-               compatible = "socionext,uniphier-system-cache";
-               reg = <0x500c8000 0x2000>, <0x503c8100 0x8>, <0x506c8000 0x400>;
-               interrupts = <0 174 4>, <0 175 4>;
-               cache-unified;
-               cache-size = <(2 * 1024 * 1024)>;
-               cache-sets = <512>;
-               cache-line-size = <256>;
-               cache-level = <3>;
-       };
-
-       i2c0: i2c@58780000 {
-               compatible = "socionext,uniphier-fi2c";
-               status = "disabled";
-               reg = <0x58780000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 41 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c0>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <100000>;
-       };
-
-       i2c1: i2c@58781000 {
-               compatible = "socionext,uniphier-fi2c";
-               status = "disabled";
-               reg = <0x58781000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 42 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c1>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <100000>;
-       };
-
-       i2c2: i2c@58782000 {
-               compatible = "socionext,uniphier-fi2c";
-               status = "disabled";
-               reg = <0x58782000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 43 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c2>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <100000>;
-       };
-
-       i2c3: i2c@58783000 {
-               compatible = "socionext,uniphier-fi2c";
-               status = "disabled";
-               reg = <0x58783000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 44 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c3>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <100000>;
-       };
-
-       /* i2c4 does not exist */
-
-       /* chip-internal connection for DMD */
-       i2c5: i2c@58785000 {
-               compatible = "socionext,uniphier-fi2c";
-               reg = <0x58785000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 25 4>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <400000>;
-       };
-
-       /* chip-internal connection for HDMI */
-       i2c6: i2c@58786000 {
-               compatible = "socionext,uniphier-fi2c";
-               reg = <0x58786000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 26 4>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <400000>;
-       };
-};
-
-&refclk {
-       clock-frequency = <20000000>;
-};
-
-&pinctrl {
-       compatible = "socionext,uniphier-pro5-pinctrl";
-};
diff --git a/arch/arm/boot/dts/uniphier-ph1-sld3-ref.dts b/arch/arm/boot/dts/uniphier-ph1-sld3-ref.dts
deleted file mode 100644 (file)
index acb4204..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Device Tree Source for UniPhier PH1-sLD3 Reference Board
- *
- * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-/include/ "uniphier-ph1-sld3.dtsi"
-/include/ "uniphier-ref-daughter.dtsi"
-/include/ "uniphier-support-card.dtsi"
-
-/ {
-       model = "UniPhier PH1-sLD3 Reference Board";
-       compatible = "socionext,ph1-sld3-ref", "socionext,ph1-sld3";
-
-       memory {
-               device_type = "memory";
-               reg = <0x80000000 0x20000000
-                      0xc0000000 0x20000000>;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-               serial2 = &serial2;
-               i2c0 = &i2c0;
-               i2c1 = &i2c1;
-               i2c2 = &i2c2;
-               i2c3 = &i2c3;
-               i2c4 = &i2c4;
-       };
-};
-
-&ethsc {
-       interrupts = <0 49 4>;
-};
-
-&serial0 {
-       status = "okay";
-};
-
-&serial1 {
-       status = "okay";
-};
-
-&serial2 {
-       status = "okay";
-};
-
-&i2c0 {
-       status = "okay";
-};
-
-&usb0 {
-       status = "okay";
-};
-
-&usb1 {
-       status = "okay";
-};
-
-&usb2 {
-       status = "okay";
-};
-
-&usb3 {
-       status = "okay";
-};
diff --git a/arch/arm/boot/dts/uniphier-ph1-sld3.dtsi b/arch/arm/boot/dts/uniphier-ph1-sld3.dtsi
deleted file mode 100644 (file)
index 03292f4..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-/*
- * Device Tree Source for UniPhier PH1-sLD3 SoC
- *
- * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/include/ "skeleton.dtsi"
-
-/ {
-       compatible = "socionext,ph1-sld3";
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               enable-method = "socionext,uniphier-smp";
-
-               cpu@0 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a9";
-                       reg = <0>;
-                       next-level-cache = <&l2>;
-               };
-
-               cpu@1 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a9";
-                       reg = <1>;
-                       next-level-cache = <&l2>;
-               };
-       };
-
-       clocks {
-               refclk: ref {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <24576000>;
-               };
-
-               arm_timer_clk: arm_timer_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <50000000>;
-               };
-
-               uart_clk: uart_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <36864000>;
-               };
-
-               iobus_clk: iobus_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <100000000>;
-               };
-       };
-
-       soc {
-               compatible = "simple-bus";
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-               interrupt-parent = <&intc>;
-
-               timer@20000200 {
-                       compatible = "arm,cortex-a9-global-timer";
-                       reg = <0x20000200 0x20>;
-                       interrupts = <1 11 0x304>;
-                       clocks = <&arm_timer_clk>;
-               };
-
-               timer@20000600 {
-                       compatible = "arm,cortex-a9-twd-timer";
-                       reg = <0x20000600 0x20>;
-                       interrupts = <1 13 0x304>;
-                       clocks = <&arm_timer_clk>;
-               };
-
-               intc: interrupt-controller@20001000 {
-                       compatible = "arm,cortex-a9-gic";
-                       #interrupt-cells = <3>;
-                       interrupt-controller;
-                       reg = <0x20001000 0x1000>,
-                             <0x20000100 0x100>;
-               };
-
-               l2: l2-cache@500c0000 {
-                       compatible = "socionext,uniphier-system-cache";
-                       reg = <0x500c0000 0x2000>, <0x503c0100 0x4>,
-                             <0x506c0000 0x400>;
-                       interrupts = <0 174 4>, <0 175 4>;
-                       cache-unified;
-                       cache-size = <(512 * 1024)>;
-                       cache-sets = <256>;
-                       cache-line-size = <128>;
-                       cache-level = <2>;
-               };
-
-               serial0: serial@54006800 {
-                       compatible = "socionext,uniphier-uart";
-                       status = "disabled";
-                       reg = <0x54006800 0x40>;
-                       interrupts = <0 33 4>;
-                       clocks = <&uart_clk>;
-                       fifo-size = <64>;
-               };
-
-               serial1: serial@54006900 {
-                       compatible = "socionext,uniphier-uart";
-                       status = "disabled";
-                       reg = <0x54006900 0x40>;
-                       interrupts = <0 35 4>;
-                       clocks = <&uart_clk>;
-                       fifo-size = <64>;
-               };
-
-               serial2: serial@54006a00 {
-                       compatible = "socionext,uniphier-uart";
-                       status = "disabled";
-                       reg = <0x54006a00 0x40>;
-                       interrupts = <0 37 4>;
-                       clocks = <&uart_clk>;
-                       fifo-size = <64>;
-               };
-
-               i2c0: i2c@58400000 {
-                       compatible = "socionext,uniphier-i2c";
-                       status = "disabled";
-                       reg = <0x58400000 0x40>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <0 41 1>;
-                       clocks = <&iobus_clk>;
-                       clock-frequency = <100000>;
-               };
-
-               i2c1: i2c@58480000 {
-                       compatible = "socionext,uniphier-i2c";
-                       status = "disabled";
-                       reg = <0x58480000 0x40>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <0 42 1>;
-                       clocks = <&iobus_clk>;
-                       clock-frequency = <100000>;
-               };
-
-               i2c2: i2c@58500000 {
-                       compatible = "socionext,uniphier-i2c";
-                       status = "disabled";
-                       reg = <0x58500000 0x40>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <0 43 1>;
-                       clocks = <&iobus_clk>;
-                       clock-frequency = <100000>;
-               };
-
-               i2c3: i2c@58580000 {
-                       compatible = "socionext,uniphier-i2c";
-                       status = "disabled";
-                       reg = <0x58580000 0x40>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <0 44 1>;
-                       clocks = <&iobus_clk>;
-                       clock-frequency = <100000>;
-               };
-
-               /* chip-internal connection for DMD */
-               i2c4: i2c@58600000 {
-                       compatible = "socionext,uniphier-i2c";
-                       reg = <0x58600000 0x40>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <0 45 1>;
-                       clocks = <&iobus_clk>;
-                       clock-frequency = <400000>;
-               };
-
-               system_bus: system-bus@58c00000 {
-                       compatible = "socionext,uniphier-system-bus";
-                       status = "disabled";
-                       reg = <0x58c00000 0x400>;
-                       #address-cells = <2>;
-                       #size-cells = <1>;
-               };
-
-               smpctrl@59800000 {
-                       compatible = "socionext,uniphier-smpctrl";
-                       reg = <0x59801000 0x400>;
-               };
-
-               usb0: usb@5a800100 {
-                       compatible = "socionext,uniphier-ehci", "generic-ehci";
-                       status = "disabled";
-                       reg = <0x5a800100 0x100>;
-                       interrupts = <0 80 4>;
-               };
-
-               usb1: usb@5a810100 {
-                       compatible = "socionext,uniphier-ehci", "generic-ehci";
-                       status = "disabled";
-                       reg = <0x5a810100 0x100>;
-                       interrupts = <0 81 4>;
-               };
-
-               usb2: usb@5a820100 {
-                       compatible = "socionext,uniphier-ehci", "generic-ehci";
-                       status = "disabled";
-                       reg = <0x5a820100 0x100>;
-                       interrupts = <0 82 4>;
-               };
-
-               usb3: usb@5a830100 {
-                       compatible = "socionext,uniphier-ehci", "generic-ehci";
-                       status = "disabled";
-                       reg = <0x5a830100 0x100>;
-                       interrupts = <0 83 4>;
-               };
-       };
-};
diff --git a/arch/arm/boot/dts/uniphier-ph1-sld8-ref.dts b/arch/arm/boot/dts/uniphier-ph1-sld8-ref.dts
deleted file mode 100644 (file)
index d594f40..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Device Tree Source for UniPhier PH1-sLD8 Reference Board
- *
- * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-/include/ "uniphier-ph1-sld8.dtsi"
-/include/ "uniphier-ref-daughter.dtsi"
-/include/ "uniphier-support-card.dtsi"
-
-/ {
-       model = "UniPhier PH1-sLD8 Reference Board";
-       compatible = "socionext,ph1-sld8-ref", "socionext,ph1-sld8";
-
-       memory {
-               device_type = "memory";
-               reg = <0x80000000 0x20000000>;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-               serial2 = &serial2;
-               serial3 = &serial3;
-               i2c0 = &i2c0;
-               i2c1 = &i2c1;
-               i2c2 = &i2c2;
-               i2c3 = &i2c3;
-       };
-};
-
-&ethsc {
-       interrupts = <0 48 4>;
-};
-
-&serial0 {
-       status = "okay";
-};
-
-&serial2 {
-       status = "okay";
-};
-
-&serial3 {
-       status = "okay";
-};
-
-&i2c0 {
-       status = "okay";
-};
-
-&usb0 {
-       status = "okay";
-};
-
-&usb1 {
-       status = "okay";
-};
-
-&usb2 {
-       status = "okay";
-};
diff --git a/arch/arm/boot/dts/uniphier-ph1-sld8.dtsi b/arch/arm/boot/dts/uniphier-ph1-sld8.dtsi
deleted file mode 100644 (file)
index 467f9d8..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Device Tree Source for UniPhier PH1-sLD8 SoC
- *
- * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/include/ "uniphier-common32.dtsi"
-
-/ {
-       compatible = "socionext,ph1-sld8";
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu@0 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a9";
-                       reg = <0>;
-                       next-level-cache = <&l2>;
-               };
-       };
-
-       clocks {
-               arm_timer_clk: arm_timer_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <50000000>;
-               };
-
-               uart_clk: uart_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <80000000>;
-               };
-
-               iobus_clk: iobus_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <100000000>;
-               };
-       };
-};
-
-&soc {
-       l2: l2-cache@500c0000 {
-               compatible = "socionext,uniphier-system-cache";
-               reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>;
-               interrupts = <0 174 4>, <0 175 4>;
-               cache-unified;
-               cache-size = <(256 * 1024)>;
-               cache-sets = <256>;
-               cache-line-size = <128>;
-               cache-level = <2>;
-       };
-
-       i2c0: i2c@58400000 {
-               compatible = "socionext,uniphier-i2c";
-               status = "disabled";
-               reg = <0x58400000 0x40>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 41 1>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c0>;
-               clocks = <&iobus_clk>;
-               clock-frequency = <100000>;
-       };
-
-       i2c1: i2c@58480000 {
-               compatible = "socionext,uniphier-i2c";
-               status = "disabled";
-               reg = <0x58480000 0x40>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 42 1>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c1>;
-               clocks = <&iobus_clk>;
-               clock-frequency = <100000>;
-       };
-
-       /* chip-internal connection for DMD */
-       i2c2: i2c@58500000 {
-               compatible = "socionext,uniphier-i2c";
-               reg = <0x58500000 0x40>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 43 1>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c2>;
-               clocks = <&iobus_clk>;
-               clock-frequency = <400000>;
-       };
-
-       i2c3: i2c@58580000 {
-               compatible = "socionext,uniphier-i2c";
-               status = "disabled";
-               reg = <0x58580000 0x40>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 44 1>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c3>;
-               clocks = <&iobus_clk>;
-               clock-frequency = <100000>;
-       };
-
-       usb0: usb@5a800100 {
-               compatible = "socionext,uniphier-ehci", "generic-ehci";
-               status = "disabled";
-               reg = <0x5a800100 0x100>;
-               interrupts = <0 80 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_usb0>;
-       };
-
-       usb1: usb@5a810100 {
-               compatible = "socionext,uniphier-ehci", "generic-ehci";
-               status = "disabled";
-               reg = <0x5a810100 0x100>;
-               interrupts = <0 81 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_usb1>;
-       };
-
-       usb2: usb@5a820100 {
-               compatible = "socionext,uniphier-ehci", "generic-ehci";
-               status = "disabled";
-               reg = <0x5a820100 0x100>;
-               interrupts = <0 82 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_usb2>;
-       };
-};
-
-&refclk {
-       clock-frequency = <25000000>;
-};
-
-&serial3 {
-       interrupts = <0 29 4>;
-};
-
-&pinctrl {
-       compatible = "socionext,uniphier-sld8-pinctrl";
-};
diff --git a/arch/arm/boot/dts/uniphier-pro4-ace.dts b/arch/arm/boot/dts/uniphier-pro4-ace.dts
new file mode 100644 (file)
index 0000000..0ab0a40
--- /dev/null
@@ -0,0 +1,114 @@
+/*
+ * Device Tree Source for UniPhier Pro4 Ace Board
+ *
+ * Copyright (C) 2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+/include/ "uniphier-pro4.dtsi"
+
+/ {
+       model = "UniPhier Pro4 Ace Board";
+       compatible = "socionext,uniphier-pro4-ace", "socionext,uniphier-pro4";
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x40000000>;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c5 = &i2c5;
+               i2c6 = &i2c6;
+       };
+};
+
+&serial0 {
+       status = "okay";
+};
+
+&serial1 {
+       status = "okay";
+};
+
+&serial2 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       eeprom@54 {
+               compatible = "st,24c64";
+               reg = <0x54>;
+       };
+};
+
+&i2c1 {
+       status = "okay";
+};
+
+&i2c2 {
+       status = "okay";
+};
+
+&i2c3 {
+       status = "okay";
+};
+
+&usb2 {
+       status = "okay";
+};
+
+&usb3 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/uniphier-pro4-ref.dts b/arch/arm/boot/dts/uniphier-pro4-ref.dts
new file mode 100644 (file)
index 0000000..9e92e60
--- /dev/null
@@ -0,0 +1,104 @@
+/*
+ * Device Tree Source for UniPhier Pro4 Reference Board
+ *
+ * Copyright (C) 2015-2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+/include/ "uniphier-pro4.dtsi"
+/include/ "uniphier-ref-daughter.dtsi"
+/include/ "uniphier-support-card.dtsi"
+
+/ {
+       model = "UniPhier Pro4 Reference Board";
+       compatible = "socionext,uniphier-pro4-ref", "socionext,uniphier-pro4";
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x40000000>;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               serial3 = &serial3;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c5 = &i2c5;
+               i2c6 = &i2c6;
+       };
+};
+
+&ethsc {
+       interrupts = <0 50 4>;
+};
+
+&serial0 {
+       status = "okay";
+};
+
+&serial1 {
+       status = "okay";
+};
+
+&serial2 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&usb2 {
+       status = "okay";
+};
+
+&usb3 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/uniphier-pro4-sanji.dts b/arch/arm/boot/dts/uniphier-pro4-sanji.dts
new file mode 100644 (file)
index 0000000..dc4ea88
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+ * Device Tree Source for UniPhier Pro4 Sanji Board
+ *
+ * Copyright (C) 2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+/include/ "uniphier-pro4.dtsi"
+
+/ {
+       model = "UniPhier Pro4 Sanji Board";
+       compatible = "socionext,uniphier-pro4-sanji", "socionext,uniphier-pro4";
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x80000000>;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c5 = &i2c5;
+               i2c6 = &i2c6;
+       };
+};
+
+&serial0 {
+       status = "okay";
+};
+
+&serial1 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       eeprom@54 {
+               compatible = "st,24c64";
+               reg = <0x54>;
+       };
+};
+
+&i2c1 {
+       status = "okay";
+};
+
+&i2c2 {
+       status = "okay";
+};
+
+&i2c3 {
+       status = "okay";
+};
+
+&usb2 {
+       status = "okay";
+};
+
+&usb3 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/uniphier-pro4.dtsi b/arch/arm/boot/dts/uniphier-pro4.dtsi
new file mode 100644 (file)
index 0000000..ba70026
--- /dev/null
@@ -0,0 +1,223 @@
+/*
+ * Device Tree Source for UniPhier Pro4 SoC
+ *
+ * Copyright (C) 2015-2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/include/ "uniphier-common32.dtsi"
+
+/ {
+       compatible = "socionext,uniphier-pro4";
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2>;
+               };
+
+               cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <1>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2>;
+               };
+       };
+
+       clocks {
+               arm_timer_clk: arm_timer_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <50000000>;
+               };
+       };
+};
+
+&soc {
+       l2: l2-cache@500c0000 {
+               compatible = "socionext,uniphier-system-cache";
+               reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>;
+               interrupts = <0 174 4>, <0 175 4>;
+               cache-unified;
+               cache-size = <(768 * 1024)>;
+               cache-sets = <256>;
+               cache-line-size = <128>;
+               cache-level = <2>;
+       };
+
+       i2c0: i2c@58780000 {
+               compatible = "socionext,uniphier-fi2c";
+               status = "disabled";
+               reg = <0x58780000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 41 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c0>;
+               clocks = <&peri_clk 4>;
+               clock-frequency = <100000>;
+       };
+
+       i2c1: i2c@58781000 {
+               compatible = "socionext,uniphier-fi2c";
+               status = "disabled";
+               reg = <0x58781000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 42 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c1>;
+               clocks = <&peri_clk 5>;
+               clock-frequency = <100000>;
+       };
+
+       i2c2: i2c@58782000 {
+               compatible = "socionext,uniphier-fi2c";
+               status = "disabled";
+               reg = <0x58782000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 43 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c2>;
+               clocks = <&peri_clk 6>;
+               clock-frequency = <100000>;
+       };
+
+       i2c3: i2c@58783000 {
+               compatible = "socionext,uniphier-fi2c";
+               status = "disabled";
+               reg = <0x58783000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 44 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c3>;
+               clocks = <&peri_clk 7>;
+               clock-frequency = <100000>;
+       };
+
+       /* i2c4 does not exist */
+
+       /* chip-internal connection for DMD */
+       i2c5: i2c@58785000 {
+               compatible = "socionext,uniphier-fi2c";
+               reg = <0x58785000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 25 4>;
+               clocks = <&peri_clk 9>;
+               clock-frequency = <400000>;
+       };
+
+       /* chip-internal connection for HDMI */
+       i2c6: i2c@58786000 {
+               compatible = "socionext,uniphier-fi2c";
+               reg = <0x58786000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 26 4>;
+               clocks = <&peri_clk 10>;
+               clock-frequency = <400000>;
+       };
+
+       usb2: usb@5a800100 {
+               compatible = "socionext,uniphier-ehci", "generic-ehci";
+               status = "disabled";
+               reg = <0x5a800100 0x100>;
+               interrupts = <0 80 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usb2>;
+               clocks = <&mio_clk 7>, <&mio_clk 8>, <&mio_clk 12>;
+               resets = <&mio_rst 7>, <&mio_rst 8>, <&mio_rst 12>, <&sys_rst 8>;
+       };
+
+       usb3: usb@5a810100 {
+               compatible = "socionext,uniphier-ehci", "generic-ehci";
+               status = "disabled";
+               reg = <0x5a810100 0x100>;
+               interrupts = <0 81 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usb3>;
+               clocks = <&mio_clk 7>, <&mio_clk 9>, <&mio_clk 13>;
+               resets = <&mio_rst 7>, <&mio_rst 9>, <&mio_rst 13>, <&sys_rst 8>;
+       };
+};
+
+&refclk {
+       clock-frequency = <25000000>;
+};
+
+&mio_clk {
+       compatible = "socionext,uniphier-pro4-mio-clock";
+};
+
+&mio_rst {
+       compatible = "socionext,uniphier-pro4-mio-reset";
+       resets = <&sys_rst 7>;
+};
+
+&peri_clk {
+       compatible = "socionext,uniphier-pro4-peri-clock";
+};
+
+&peri_rst {
+       compatible = "socionext,uniphier-pro4-peri-reset";
+};
+
+&pinctrl {
+       compatible = "socionext,uniphier-pro4-pinctrl";
+};
+
+&sys_clk {
+       compatible = "socionext,uniphier-pro4-clock";
+};
+
+&sys_rst {
+       compatible = "socionext,uniphier-pro4-reset";
+};
diff --git a/arch/arm/boot/dts/uniphier-pro5.dtsi b/arch/arm/boot/dts/uniphier-pro5.dtsi
new file mode 100644 (file)
index 0000000..2c49c36
--- /dev/null
@@ -0,0 +1,212 @@
+/*
+ * Device Tree Source for UniPhier Pro5 SoC
+ *
+ * Copyright (C) 2015-2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/include/ "uniphier-common32.dtsi"
+
+/ {
+       compatible = "socionext,uniphier-pro5";
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2>;
+               };
+
+               cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <1>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2>;
+               };
+       };
+
+       clocks {
+               arm_timer_clk: arm_timer_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <50000000>;
+               };
+       };
+};
+
+&soc {
+       l2: l2-cache@500c0000 {
+               compatible = "socionext,uniphier-system-cache";
+               reg = <0x500c0000 0x2000>, <0x503c0100 0x8>, <0x506c0000 0x400>;
+               interrupts = <0 190 4>, <0 191 4>;
+               cache-unified;
+               cache-size = <(2 * 1024 * 1024)>;
+               cache-sets = <512>;
+               cache-line-size = <128>;
+               cache-level = <2>;
+               next-level-cache = <&l3>;
+       };
+
+       l3: l3-cache@500c8000 {
+               compatible = "socionext,uniphier-system-cache";
+               reg = <0x500c8000 0x2000>, <0x503c8100 0x8>, <0x506c8000 0x400>;
+               interrupts = <0 174 4>, <0 175 4>;
+               cache-unified;
+               cache-size = <(2 * 1024 * 1024)>;
+               cache-sets = <512>;
+               cache-line-size = <256>;
+               cache-level = <3>;
+       };
+
+       i2c0: i2c@58780000 {
+               compatible = "socionext,uniphier-fi2c";
+               status = "disabled";
+               reg = <0x58780000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 41 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c0>;
+               clocks = <&peri_clk 4>;
+               clock-frequency = <100000>;
+       };
+
+       i2c1: i2c@58781000 {
+               compatible = "socionext,uniphier-fi2c";
+               status = "disabled";
+               reg = <0x58781000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 42 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c1>;
+               clocks = <&peri_clk 5>;
+               clock-frequency = <100000>;
+       };
+
+       i2c2: i2c@58782000 {
+               compatible = "socionext,uniphier-fi2c";
+               status = "disabled";
+               reg = <0x58782000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 43 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c2>;
+               clocks = <&peri_clk 6>;
+               clock-frequency = <100000>;
+       };
+
+       i2c3: i2c@58783000 {
+               compatible = "socionext,uniphier-fi2c";
+               status = "disabled";
+               reg = <0x58783000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 44 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c3>;
+               clocks = <&peri_clk 7>;
+               clock-frequency = <100000>;
+       };
+
+       /* i2c4 does not exist */
+
+       /* chip-internal connection for DMD */
+       i2c5: i2c@58785000 {
+               compatible = "socionext,uniphier-fi2c";
+               reg = <0x58785000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 25 4>;
+               clocks = <&peri_clk 9>;
+               clock-frequency = <400000>;
+       };
+
+       /* chip-internal connection for HDMI */
+       i2c6: i2c@58786000 {
+               compatible = "socionext,uniphier-fi2c";
+               reg = <0x58786000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 26 4>;
+               clocks = <&peri_clk 10>;
+               clock-frequency = <400000>;
+       };
+};
+
+&refclk {
+       clock-frequency = <20000000>;
+};
+
+&mio_clk {
+       compatible = "socionext,uniphier-pro5-mio-clock";
+};
+
+&mio_rst {
+       compatible = "socionext,uniphier-pro5-mio-reset";
+};
+
+&peri_clk {
+       compatible = "socionext,uniphier-pro5-peri-clock";
+};
+
+&peri_rst {
+       compatible = "socionext,uniphier-pro5-peri-reset";
+};
+
+&pinctrl {
+       compatible = "socionext,uniphier-pro5-pinctrl";
+};
+
+&sys_clk {
+       compatible = "socionext,uniphier-pro5-clock";
+};
+
+&sys_rst {
+       compatible = "socionext,uniphier-pro5-reset";
+};
diff --git a/arch/arm/boot/dts/uniphier-proxstream2-gentil.dts b/arch/arm/boot/dts/uniphier-proxstream2-gentil.dts
deleted file mode 100644 (file)
index 98d895b..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Device Tree Source for UniPhier ProXstream2 Gentil Board
- *
- * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-/include/ "uniphier-proxstream2.dtsi"
-
-/ {
-       model = "UniPhier ProXstream2 Gentil Board";
-       compatible = "socionext,proxstream2-gentil", "socionext,proxstream2";
-
-       memory {
-               device_type = "memory";
-               reg = <0x80000000 0x80000000>;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       aliases {
-               serial0 = &serial2;
-               serial1 = &serial0;
-               serial2 = &serial1;
-               i2c0 = &i2c0;
-               i2c2 = &i2c2;
-               i2c4 = &i2c4;
-               i2c5 = &i2c5;
-               i2c6 = &i2c6;
-       };
-};
-
-&serial2 {
-       status = "okay";
-};
-
-&i2c0 {
-       status = "okay";
-
-       eeprom@54 {
-               compatible = "st,24c64";
-               reg = <0x54>;
-       };
-};
-
-&i2c2 {
-       status = "okay";
-};
diff --git a/arch/arm/boot/dts/uniphier-proxstream2-vodka.dts b/arch/arm/boot/dts/uniphier-proxstream2-vodka.dts
deleted file mode 100644 (file)
index 1fb8bd7..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Device Tree Source for UniPhier ProXstream2 Vodka Board
- *
- * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-/include/ "uniphier-proxstream2.dtsi"
-
-/ {
-       model = "UniPhier ProXstream2 Vodka Board";
-       compatible = "socionext,proxstream2-vodka", "socionext,proxstream2";
-
-       memory {
-               device_type = "memory";
-               reg = <0x80000000 0x80000000>;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       aliases {
-               serial0 = &serial2;
-               serial1 = &serial0;
-               serial2 = &serial1;
-               i2c0 = &i2c0;
-               i2c4 = &i2c4;
-               i2c5 = &i2c5;
-               i2c6 = &i2c6;
-       };
-};
-
-&serial2 {
-       status = "okay";
-};
-
-&i2c0 {
-       status = "okay";
-};
diff --git a/arch/arm/boot/dts/uniphier-proxstream2.dtsi b/arch/arm/boot/dts/uniphier-proxstream2.dtsi
deleted file mode 100644 (file)
index d00d6f5..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * Device Tree Source for UniPhier ProXstream2 SoC
- *
- * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/include/ "uniphier-common32.dtsi"
-
-/ {
-       compatible = "socionext,proxstream2";
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               enable-method = "socionext,uniphier-smp";
-
-               cpu@0 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a9";
-                       reg = <0>;
-                       next-level-cache = <&l2>;
-               };
-
-               cpu@1 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a9";
-                       reg = <1>;
-                       next-level-cache = <&l2>;
-               };
-
-               cpu@2 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a9";
-                       reg = <2>;
-                       next-level-cache = <&l2>;
-               };
-
-               cpu@3 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a9";
-                       reg = <3>;
-                       next-level-cache = <&l2>;
-               };
-       };
-
-       clocks {
-               arm_timer_clk: arm_timer_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <50000000>;
-               };
-
-               uart_clk: uart_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <88900000>;
-               };
-
-               i2c_clk: i2c_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <50000000>;
-               };
-       };
-};
-
-&soc {
-       l2: l2-cache@500c0000 {
-               compatible = "socionext,uniphier-system-cache";
-               reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>;
-               interrupts = <0 174 4>, <0 175 4>, <0 190 4>, <0 191 4>;
-               cache-unified;
-               cache-size = <(1280 * 1024)>;
-               cache-sets = <512>;
-               cache-line-size = <128>;
-               cache-level = <2>;
-       };
-
-       i2c0: i2c@58780000 {
-               compatible = "socionext,uniphier-fi2c";
-               status = "disabled";
-               reg = <0x58780000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 41 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c0>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <100000>;
-       };
-
-       i2c1: i2c@58781000 {
-               compatible = "socionext,uniphier-fi2c";
-               status = "disabled";
-               reg = <0x58781000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 42 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c1>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <100000>;
-       };
-
-       i2c2: i2c@58782000 {
-               compatible = "socionext,uniphier-fi2c";
-               status = "disabled";
-               reg = <0x58782000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c2>;
-               interrupts = <0 43 4>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <100000>;
-       };
-
-       i2c3: i2c@58783000 {
-               compatible = "socionext,uniphier-fi2c";
-               status = "disabled";
-               reg = <0x58783000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 44 4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c3>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <100000>;
-       };
-
-       /* chip-internal connection for DMD */
-       i2c4: i2c@58784000 {
-               compatible = "socionext,uniphier-fi2c";
-               reg = <0x58784000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 45 4>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <400000>;
-       };
-
-       /* chip-internal connection for STM */
-       i2c5: i2c@58785000 {
-               compatible = "socionext,uniphier-fi2c";
-               reg = <0x58785000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 25 4>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <400000>;
-       };
-
-       /* chip-internal connection for HDMI */
-       i2c6: i2c@58786000 {
-               compatible = "socionext,uniphier-fi2c";
-               reg = <0x58786000 0x80>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <0 26 4>;
-               clocks = <&i2c_clk>;
-               clock-frequency = <400000>;
-       };
-};
-
-&refclk {
-       clock-frequency = <25000000>;
-};
-
-&pinctrl {
-       compatible = "socionext,uniphier-pxs2-pinctrl";
-};
diff --git a/arch/arm/boot/dts/uniphier-pxs2-gentil.dts b/arch/arm/boot/dts/uniphier-pxs2-gentil.dts
new file mode 100644 (file)
index 0000000..373818a
--- /dev/null
@@ -0,0 +1,90 @@
+/*
+ * Device Tree Source for UniPhier PXs2 Gentil Board
+ *
+ * Copyright (C) 2015-2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+/include/ "uniphier-pxs2.dtsi"
+
+/ {
+       model = "UniPhier PXs2 Gentil Board";
+       compatible = "socionext,uniphier-pxs2-gentil",
+                    "socionext,uniphier-pxs2";
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x80000000>;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       aliases {
+               serial0 = &serial2;
+               serial1 = &serial0;
+               serial2 = &serial1;
+               i2c0 = &i2c0;
+               i2c2 = &i2c2;
+               i2c4 = &i2c4;
+               i2c5 = &i2c5;
+               i2c6 = &i2c6;
+       };
+};
+
+&serial2 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       eeprom@54 {
+               compatible = "st,24c64";
+               reg = <0x54>;
+       };
+};
+
+&i2c2 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/uniphier-pxs2-vodka.dts b/arch/arm/boot/dts/uniphier-pxs2-vodka.dts
new file mode 100644 (file)
index 0000000..51a3eac
--- /dev/null
@@ -0,0 +1,79 @@
+/*
+ * Device Tree Source for UniPhier PXs2 Vodka Board
+ *
+ * Copyright (C) 2015-2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+/include/ "uniphier-pxs2.dtsi"
+
+/ {
+       model = "UniPhier PXs2 Vodka Board";
+       compatible = "socionext,uniphier-pxs2-vodka", "socionext,uniphier-pxs2";
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x80000000>;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       aliases {
+               serial0 = &serial2;
+               serial1 = &serial0;
+               serial2 = &serial1;
+               i2c0 = &i2c0;
+               i2c4 = &i2c4;
+               i2c5 = &i2c5;
+               i2c6 = &i2c6;
+       };
+};
+
+&serial2 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/uniphier-pxs2.dtsi b/arch/arm/boot/dts/uniphier-pxs2.dtsi
new file mode 100644 (file)
index 0000000..8789cd5
--- /dev/null
@@ -0,0 +1,225 @@
+/*
+ * Device Tree Source for UniPhier PXs2 SoC
+ *
+ * Copyright (C) 2015-2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/include/ "uniphier-common32.dtsi"
+
+/ {
+       compatible = "socionext,uniphier-pxs2";
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2>;
+               };
+
+               cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <1>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2>;
+               };
+
+               cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <2>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2>;
+               };
+
+               cpu@3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <3>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2>;
+               };
+       };
+
+       clocks {
+               arm_timer_clk: arm_timer_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <50000000>;
+               };
+       };
+};
+
+&soc {
+       l2: l2-cache@500c0000 {
+               compatible = "socionext,uniphier-system-cache";
+               reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>;
+               interrupts = <0 174 4>, <0 175 4>, <0 190 4>, <0 191 4>;
+               cache-unified;
+               cache-size = <(1280 * 1024)>;
+               cache-sets = <512>;
+               cache-line-size = <128>;
+               cache-level = <2>;
+       };
+
+       i2c0: i2c@58780000 {
+               compatible = "socionext,uniphier-fi2c";
+               status = "disabled";
+               reg = <0x58780000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 41 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c0>;
+               clocks = <&peri_clk 4>;
+               clock-frequency = <100000>;
+       };
+
+       i2c1: i2c@58781000 {
+               compatible = "socionext,uniphier-fi2c";
+               status = "disabled";
+               reg = <0x58781000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 42 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c1>;
+               clocks = <&peri_clk 5>;
+               clock-frequency = <100000>;
+       };
+
+       i2c2: i2c@58782000 {
+               compatible = "socionext,uniphier-fi2c";
+               status = "disabled";
+               reg = <0x58782000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c2>;
+               interrupts = <0 43 4>;
+               clocks = <&peri_clk 6>;
+               clock-frequency = <100000>;
+       };
+
+       i2c3: i2c@58783000 {
+               compatible = "socionext,uniphier-fi2c";
+               status = "disabled";
+               reg = <0x58783000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 44 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c3>;
+               clocks = <&peri_clk 7>;
+               clock-frequency = <100000>;
+       };
+
+       /* chip-internal connection for DMD */
+       i2c4: i2c@58784000 {
+               compatible = "socionext,uniphier-fi2c";
+               reg = <0x58784000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 45 4>;
+               clocks = <&peri_clk 8>;
+               clock-frequency = <400000>;
+       };
+
+       /* chip-internal connection for STM */
+       i2c5: i2c@58785000 {
+               compatible = "socionext,uniphier-fi2c";
+               reg = <0x58785000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 25 4>;
+               clocks = <&peri_clk 9>;
+               clock-frequency = <400000>;
+       };
+
+       /* chip-internal connection for HDMI */
+       i2c6: i2c@58786000 {
+               compatible = "socionext,uniphier-fi2c";
+               reg = <0x58786000 0x80>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 26 4>;
+               clocks = <&peri_clk 10>;
+               clock-frequency = <400000>;
+       };
+};
+
+&refclk {
+       clock-frequency = <25000000>;
+};
+
+&mio_clk {
+       compatible = "socionext,uniphier-pxs2-mio-clock";
+};
+
+&mio_rst {
+       compatible = "socionext,uniphier-pxs2-mio-reset";
+};
+
+&peri_clk {
+       compatible = "socionext,uniphier-pxs2-peri-clock";
+};
+
+&peri_rst {
+       compatible = "socionext,uniphier-pxs2-peri-reset";
+};
+
+&pinctrl {
+       compatible = "socionext,uniphier-pxs2-pinctrl";
+};
+
+&sys_clk {
+       compatible = "socionext,uniphier-pxs2-clock";
+};
+
+&sys_rst {
+       compatible = "socionext,uniphier-pxs2-reset";
+};
diff --git a/arch/arm/boot/dts/uniphier-sld3-ref.dts b/arch/arm/boot/dts/uniphier-sld3-ref.dts
new file mode 100644 (file)
index 0000000..ac792ae
--- /dev/null
@@ -0,0 +1,111 @@
+/*
+ * Device Tree Source for UniPhier sLD3 Reference Board
+ *
+ * Copyright (C) 2015-2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+/include/ "uniphier-sld3.dtsi"
+/include/ "uniphier-ref-daughter.dtsi"
+/include/ "uniphier-support-card.dtsi"
+
+/ {
+       model = "UniPhier sLD3 Reference Board";
+       compatible = "socionext,uniphier-sld3-ref", "socionext,uniphier-sld3";
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x20000000
+                      0xc0000000 0x20000000>;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c4 = &i2c4;
+       };
+};
+
+&ethsc {
+       interrupts = <0 49 4>;
+};
+
+&serial0 {
+       status = "okay";
+};
+
+&serial1 {
+       status = "okay";
+};
+
+&serial2 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&usb0 {
+       status = "okay";
+};
+
+&usb1 {
+       status = "okay";
+};
+
+&usb2 {
+       status = "okay";
+};
+
+&usb3 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/uniphier-sld3.dtsi b/arch/arm/boot/dts/uniphier-sld3.dtsi
new file mode 100644 (file)
index 0000000..5fa96c9
--- /dev/null
@@ -0,0 +1,287 @@
+/*
+ * Device Tree Source for UniPhier sLD3 SoC
+ *
+ * Copyright (C) 2015-2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/include/ "skeleton.dtsi"
+
+/ {
+       compatible = "socionext,uniphier-sld3";
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2>;
+               };
+
+               cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <1>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2>;
+               };
+       };
+
+       psci {
+               compatible = "arm,psci-0.2";
+               method = "smc";
+       };
+
+       clocks {
+               refclk: ref {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <24576000>;
+               };
+
+               arm_timer_clk: arm_timer_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <50000000>;
+               };
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               interrupt-parent = <&intc>;
+
+               timer@20000200 {
+                       compatible = "arm,cortex-a9-global-timer";
+                       reg = <0x20000200 0x20>;
+                       interrupts = <1 11 0x304>;
+                       clocks = <&arm_timer_clk>;
+               };
+
+               timer@20000600 {
+                       compatible = "arm,cortex-a9-twd-timer";
+                       reg = <0x20000600 0x20>;
+                       interrupts = <1 13 0x304>;
+                       clocks = <&arm_timer_clk>;
+               };
+
+               intc: interrupt-controller@20001000 {
+                       compatible = "arm,cortex-a9-gic";
+                       #interrupt-cells = <3>;
+                       interrupt-controller;
+                       reg = <0x20001000 0x1000>,
+                             <0x20000100 0x100>;
+               };
+
+               l2: l2-cache@500c0000 {
+                       compatible = "socionext,uniphier-system-cache";
+                       reg = <0x500c0000 0x2000>, <0x503c0100 0x4>,
+                             <0x506c0000 0x400>;
+                       interrupts = <0 174 4>, <0 175 4>;
+                       cache-unified;
+                       cache-size = <(512 * 1024)>;
+                       cache-sets = <256>;
+                       cache-line-size = <128>;
+                       cache-level = <2>;
+               };
+
+               serial0: serial@54006800 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006800 0x40>;
+                       interrupts = <0 33 4>;
+                       clocks = <&sys_clk 0>;
+                       fifo-size = <64>;
+               };
+
+               serial1: serial@54006900 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006900 0x40>;
+                       interrupts = <0 35 4>;
+                       clocks = <&sys_clk 0>;
+                       fifo-size = <64>;
+               };
+
+               serial2: serial@54006a00 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006a00 0x40>;
+                       interrupts = <0 37 4>;
+                       clocks = <&sys_clk 0>;
+                       fifo-size = <64>;
+               };
+
+               i2c0: i2c@58400000 {
+                       compatible = "socionext,uniphier-i2c";
+                       status = "disabled";
+                       reg = <0x58400000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 41 1>;
+                       clocks = <&sys_clk 1>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c1: i2c@58480000 {
+                       compatible = "socionext,uniphier-i2c";
+                       status = "disabled";
+                       reg = <0x58480000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 42 1>;
+                       clocks = <&sys_clk 1>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c2: i2c@58500000 {
+                       compatible = "socionext,uniphier-i2c";
+                       status = "disabled";
+                       reg = <0x58500000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 43 1>;
+                       clocks = <&sys_clk 1>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c3: i2c@58580000 {
+                       compatible = "socionext,uniphier-i2c";
+                       status = "disabled";
+                       reg = <0x58580000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 44 1>;
+                       clocks = <&sys_clk 1>;
+                       clock-frequency = <100000>;
+               };
+
+               /* chip-internal connection for DMD */
+               i2c4: i2c@58600000 {
+                       compatible = "socionext,uniphier-i2c";
+                       reg = <0x58600000 0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 45 1>;
+                       clocks = <&sys_clk 1>;
+                       clock-frequency = <400000>;
+               };
+
+               system_bus: system-bus@58c00000 {
+                       compatible = "socionext,uniphier-system-bus";
+                       status = "disabled";
+                       reg = <0x58c00000 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+               };
+
+               smpctrl@59800000 {
+                       compatible = "socionext,uniphier-smpctrl";
+                       reg = <0x59801000 0x400>;
+               };
+
+               mioctrl@59810000 {
+                       compatible = "socionext,uniphier-mioctrl",
+                                    "simple-mfd", "syscon";
+                       reg = <0x59810000 0x800>;
+
+                       mio_clk: clock {
+                               compatible = "socionext,uniphier-sld3-mio-clock";
+                               #clock-cells = <1>;
+                       };
+
+                       mio_rst: reset {
+                               compatible = "socionext,uniphier-sld3-mio-reset";
+                               #reset-cells = <1>;
+                       };
+               };
+
+               usb0: usb@5a800100 {
+                       compatible = "socionext,uniphier-ehci", "generic-ehci";
+                       status = "disabled";
+                       reg = <0x5a800100 0x100>;
+                       interrupts = <0 80 4>;
+               };
+
+               usb1: usb@5a810100 {
+                       compatible = "socionext,uniphier-ehci", "generic-ehci";
+                       status = "disabled";
+                       reg = <0x5a810100 0x100>;
+                       interrupts = <0 81 4>;
+               };
+
+               usb2: usb@5a820100 {
+                       compatible = "socionext,uniphier-ehci", "generic-ehci";
+                       status = "disabled";
+                       reg = <0x5a820100 0x100>;
+                       interrupts = <0 82 4>;
+               };
+
+               usb3: usb@5a830100 {
+                       compatible = "socionext,uniphier-ehci", "generic-ehci";
+                       status = "disabled";
+                       reg = <0x5a830100 0x100>;
+                       interrupts = <0 83 4>;
+               };
+
+               sysctrl@f1840000 {
+                       compatible = "socionext,uniphier-sysctrl",
+                                    "simple-mfd", "syscon";
+                       reg = <0xf1840000 0x4000>;
+
+                       sys_clk: clock {
+                               compatible = "socionext,uniphier-sld3-clock";
+                               #clock-cells = <1>;
+                       };
+
+                       sys_rst: reset {
+                               compatible = "socionext,uniphier-sld3-reset";
+                               #reset-cells = <1>;
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/uniphier-sld8-ref.dts b/arch/arm/boot/dts/uniphier-sld8-ref.dts
new file mode 100644 (file)
index 0000000..a8291f9
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ * Device Tree Source for UniPhier sLD8 Reference Board
+ *
+ * Copyright (C) 2015-2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+/include/ "uniphier-sld8.dtsi"
+/include/ "uniphier-ref-daughter.dtsi"
+/include/ "uniphier-support-card.dtsi"
+
+/ {
+       model = "UniPhier sLD8 Reference Board";
+       compatible = "socionext,uniphier-sld8-ref", "socionext,uniphier-sld8";
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x20000000>;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               serial3 = &serial3;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+       };
+};
+
+&ethsc {
+       interrupts = <0 48 4>;
+};
+
+&serial0 {
+       status = "okay";
+};
+
+&serial2 {
+       status = "okay";
+};
+
+&serial3 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&usb0 {
+       status = "okay";
+};
+
+&usb1 {
+       status = "okay";
+};
+
+&usb2 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/uniphier-sld8.dtsi b/arch/arm/boot/dts/uniphier-sld8.dtsi
new file mode 100644 (file)
index 0000000..d8cf0e7
--- /dev/null
@@ -0,0 +1,206 @@
+/*
+ * Device Tree Source for UniPhier sLD8 SoC
+ *
+ * Copyright (C) 2015-2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/include/ "uniphier-common32.dtsi"
+
+/ {
+       compatible = "socionext,uniphier-sld8";
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a9";
+                       reg = <0>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2>;
+               };
+       };
+
+       clocks {
+               arm_timer_clk: arm_timer_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <50000000>;
+               };
+       };
+};
+
+&soc {
+       l2: l2-cache@500c0000 {
+               compatible = "socionext,uniphier-system-cache";
+               reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>;
+               interrupts = <0 174 4>, <0 175 4>;
+               cache-unified;
+               cache-size = <(256 * 1024)>;
+               cache-sets = <256>;
+               cache-line-size = <128>;
+               cache-level = <2>;
+       };
+
+       i2c0: i2c@58400000 {
+               compatible = "socionext,uniphier-i2c";
+               status = "disabled";
+               reg = <0x58400000 0x40>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 41 1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c0>;
+               clocks = <&peri_clk 4>;
+               clock-frequency = <100000>;
+       };
+
+       i2c1: i2c@58480000 {
+               compatible = "socionext,uniphier-i2c";
+               status = "disabled";
+               reg = <0x58480000 0x40>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 42 1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c1>;
+               clocks = <&peri_clk 5>;
+               clock-frequency = <100000>;
+       };
+
+       /* chip-internal connection for DMD */
+       i2c2: i2c@58500000 {
+               compatible = "socionext,uniphier-i2c";
+               reg = <0x58500000 0x40>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 43 1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c2>;
+               clocks = <&peri_clk 6>;
+               clock-frequency = <400000>;
+       };
+
+       i2c3: i2c@58580000 {
+               compatible = "socionext,uniphier-i2c";
+               status = "disabled";
+               reg = <0x58580000 0x40>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <0 44 1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c3>;
+               clocks = <&peri_clk 7>;
+               clock-frequency = <100000>;
+       };
+
+       usb0: usb@5a800100 {
+               compatible = "socionext,uniphier-ehci", "generic-ehci";
+               status = "disabled";
+               reg = <0x5a800100 0x100>;
+               interrupts = <0 80 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usb0>;
+               clocks = <&mio_clk 7>, <&mio_clk 8>, <&mio_clk 12>;
+               resets = <&mio_rst 7>, <&mio_rst 8>, <&mio_rst 12>, <&sys_rst 8>;
+       };
+
+       usb1: usb@5a810100 {
+               compatible = "socionext,uniphier-ehci", "generic-ehci";
+               status = "disabled";
+               reg = <0x5a810100 0x100>;
+               interrupts = <0 81 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usb1>;
+               clocks = <&mio_clk 7>, <&mio_clk 9>, <&mio_clk 13>;
+               resets = <&mio_rst 7>, <&mio_rst 9>, <&mio_rst 13>, <&sys_rst 8>;
+       };
+
+       usb2: usb@5a820100 {
+               compatible = "socionext,uniphier-ehci", "generic-ehci";
+               status = "disabled";
+               reg = <0x5a820100 0x100>;
+               interrupts = <0 82 4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usb2>;
+               clocks = <&mio_clk 7>, <&mio_clk 10>, <&mio_clk 14>;
+               resets = <&mio_rst 7>, <&mio_rst 10>, <&mio_rst 14>, <&sys_rst 8>;
+       };
+};
+
+&refclk {
+       clock-frequency = <25000000>;
+};
+
+&serial3 {
+       interrupts = <0 29 4>;
+};
+
+&mio_clk {
+       compatible = "socionext,uniphier-sld8-mio-clock";
+};
+
+&mio_rst {
+       compatible = "socionext,uniphier-sld8-mio-reset";
+       resets = <&sys_rst 7>;
+};
+
+&peri_clk {
+       compatible = "socionext,uniphier-sld8-peri-clock";
+};
+
+&peri_rst {
+       compatible = "socionext,uniphier-sld8-peri-reset";
+};
+
+&pinctrl {
+       compatible = "socionext,uniphier-sld8-pinctrl";
+};
+
+&sys_clk {
+       compatible = "socionext,uniphier-sld8-clock";
+};
+
+&sys_rst {
+       compatible = "socionext,uniphier-sld8-reset";
+};
index a8a8e43..1e0b823 100644 (file)
        panel: panel {
                compatible = "edt,et057090dhu";
                backlight = <&bl>;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&dcu_out>;
+                       };
+               };
        };
 
        reg_3v3: regulator-3v3 {
 &dcu0 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_dcu0_1>;
-       fsl,panel = <&panel>;
        status = "okay";
+
+       port {
+               dcu_out: endpoint {
+                       remote-endpoint = <&panel_in>;
+               };
+       };
 };
 
 &dspi1 {
index 9ffe2eb..9f2c731 100644 (file)
@@ -42,6 +42,7 @@
  *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
+#include "skeleton.dtsi"
 #include "armv7-m.dtsi"
 #include "vfxxx.dtsi"
 
index 35c0d65..c9f7e92 100644 (file)
@@ -50,6 +50,7 @@ static void __init da850_init_machine(void)
 
 static const char *const da850_boards_compat[] __initconst = {
        "enbw,cmc",
+       "ti,da850-lcdk",
        "ti,da850-evm",
        "ti,da850",
        NULL,
index b7e9801..3ae45b8 100644 (file)
@@ -7,6 +7,7 @@ menuconfig ARCH_NOMADIK
        select CLKSRC_NOMADIK_MTU_SCHED_CLOCK
        select CPU_ARM926T
        select GPIOLIB
+       select MFD_SYSCON
        select MIGHT_HAVE_CACHE_L2X0
        select PINCTRL
        select PINCTRL_NOMADIK
index 5128f4d..3cd8138 100644 (file)
@@ -25,6 +25,9 @@
 #define R7S72100_CLK_SCIF6     1
 #define R7S72100_CLK_SCIF7     0
 
+/* MSTP7 */
+#define R7S72100_CLK_ETHER     4
+
 /* MSTP9 */
 #define R7S72100_CLK_I2C0      7
 #define R7S72100_CLK_I2C1      6
index a3491ba..9d02f53 100644 (file)
@@ -67,6 +67,7 @@
 #define R8A7794_CLK_IRQC               7
 
 /* MSTP5 */
+#define R8A7794_CLK_AUDIO_DMAC0                2
 #define R8A7794_CLK_PWM                        23
 
 /* MSTP7 */
 #define R8A7794_CLK_I2C1               30
 #define R8A7794_CLK_I2C0               31
 
+/* MSTP10 */
+#define R8A7794_CLK_SSI_ALL            5
+#define R8A7794_CLK_SSI9               6
+#define R8A7794_CLK_SSI8               7
+#define R8A7794_CLK_SSI7               8
+#define R8A7794_CLK_SSI6               9
+#define R8A7794_CLK_SSI5               10
+#define R8A7794_CLK_SSI4               11
+#define R8A7794_CLK_SSI3               12
+#define R8A7794_CLK_SSI2               13
+#define R8A7794_CLK_SSI1               14
+#define R8A7794_CLK_SSI0               15
+#define R8A7794_CLK_SCU_ALL            17
+#define R8A7794_CLK_SCU_DVC1           18
+#define R8A7794_CLK_SCU_DVC0           19
+#define R8A7794_CLK_SCU_CTU1_MIX1      20
+#define R8A7794_CLK_SCU_CTU0_MIX0      21
+#define R8A7794_CLK_SCU_SRC6           25
+#define R8A7794_CLK_SCU_SRC5           26
+#define R8A7794_CLK_SCU_SRC4           27
+#define R8A7794_CLK_SCU_SRC3           28
+#define R8A7794_CLK_SCU_SRC2           29
+#define R8A7794_CLK_SCU_SRC1           30
+
 /* MSTP11 */
 #define R8A7794_CLK_SCIFA3             6
 #define R8A7794_CLK_SCIFA4             7
diff --git a/include/dt-bindings/pinctrl/samsung.h b/include/dt-bindings/pinctrl/samsung.h
new file mode 100644 (file)
index 0000000..6276eb7
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Samsung's Exynos pinctrl bindings
+ *
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ *             http://www.samsung.com
+ * Author: Krzysztof Kozlowski <krzk@kernel.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.
+*/
+
+#ifndef __DT_BINDINGS_PINCTRL_SAMSUNG_H__
+#define __DT_BINDINGS_PINCTRL_SAMSUNG_H__
+
+#define EXYNOS_PIN_PULL_NONE           0
+#define EXYNOS_PIN_PULL_DOWN           1
+#define EXYNOS_PIN_PULL_UP             3
+
+#define S3C64XX_PIN_PULL_NONE          0
+#define S3C64XX_PIN_PULL_DOWN          1
+#define S3C64XX_PIN_PULL_UP            2
+
+/* Pin function in power down mode */
+#define EXYNOS_PIN_PDN_OUT0            0
+#define EXYNOS_PIN_PDN_OUT1            1
+#define EXYNOS_PIN_PDN_INPUT           2
+#define EXYNOS_PIN_PDN_PREV            3
+
+/* Drive strengths for Exynos3250, Exynos4 (all) and Exynos5250 */
+#define EXYNOS4_PIN_DRV_LV1            0
+#define EXYNOS4_PIN_DRV_LV2            2
+#define EXYNOS4_PIN_DRV_LV3            1
+#define EXYNOS4_PIN_DRV_LV4            3
+
+/* Drive strengths for Exynos5260 */
+#define EXYNOS5260_PIN_DRV_LV1         0
+#define EXYNOS5260_PIN_DRV_LV2         1
+#define EXYNOS5260_PIN_DRV_LV4         2
+#define EXYNOS5260_PIN_DRV_LV6         3
+
+/* Drive strengths for Exynos5410, Exynos542x and Exynos5800 */
+#define EXYNOS5420_PIN_DRV_LV1         0
+#define EXYNOS5420_PIN_DRV_LV2         1
+#define EXYNOS5420_PIN_DRV_LV3         2
+#define EXYNOS5420_PIN_DRV_LV4         3
+
+#define EXYNOS_PIN_FUNC_INPUT          0
+#define EXYNOS_PIN_FUNC_OUTPUT         1
+#define EXYNOS_PIN_FUNC_2              2
+#define EXYNOS_PIN_FUNC_3              3
+#define EXYNOS_PIN_FUNC_4              4
+#define EXYNOS_PIN_FUNC_5              5
+#define EXYNOS_PIN_FUNC_6              6
+#define EXYNOS_PIN_FUNC_F              0xf
+
+#endif /* __DT_BINDINGS_PINCTRL_SAMSUNG_H__ */
diff --git a/include/dt-bindings/soc/rockchip,boot-mode.h b/include/dt-bindings/soc/rockchip,boot-mode.h
new file mode 100644 (file)
index 0000000..ae7c867
--- /dev/null
@@ -0,0 +1,15 @@
+#ifndef __ROCKCHIP_BOOT_MODE_H
+#define __ROCKCHIP_BOOT_MODE_H
+
+/*high 24 bits is tag, low 8 bits is type*/
+#define REBOOT_FLAG            0x5242C300
+/* normal boot */
+#define BOOT_NORMAL            (REBOOT_FLAG + 0)
+/* enter bootloader rockusb mode */
+#define BOOT_BL_DOWNLOAD       (REBOOT_FLAG + 1)
+/* enter recovery */
+#define BOOT_RECOVERY          (REBOOT_FLAG + 3)
+ /* enter fastboot mode */
+#define BOOT_FASTBOOT          (REBOOT_FLAG + 9)
+
+#endif