aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-01-20 21:16:29 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2016-01-20 21:16:29 -0500
commit6d1c244803f2c013fb9c31b0904c01f1830b73ab (patch)
tree5b699795f2b899e93dcf03cbaf63154b4a7d4b75
parent1305eda751d7df3069b1fcb6f62036185acd24a0 (diff)
parent4dd041b6f68ad942b843038e4ff6932c6571ccad (diff)
Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM DT updates from Olof Johansson: "As usual, the bulk of this release is again DT file contents. There's a huge number of changes here, and it's challenging to give a crisp overview of just what is in here. To start with: New boards: - TI-based DM3730 from LogicPD (Torpedo) - Cosmic+ M4 (nommu) initial support (Freescale Vybrid) - Raspberry Pi 2 DT files - Watchdog on Meson8b - Veyron-mickey (ASUS Chromebit) DTS - Rockchip rk3228 SoC and eval board - Sigma Designs Tango4 Improvements: - Improved support for Qualcomm APQ8084, including Sony Xperia Z DT files - Misc new devices for Rockchip rk3036 and rk3288 - Allwinner updates for misc SoCs and systems ... and a _large_ number of other changes across the field. Devices added to SoC DTSI and board DTS files for a number of SoC vendors, new product boards on already-supported SoCs, cleanups and refactorings of existing DTS/DTSI files and a bunch of other changes" * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (469 commits) ARM: dts: compulab: add new board description ARM: versatile: add the syscon LEDs to the DT dts: vt8500: Fix errors in SDHC node for WM8505 ARM: dts: imx6q: clean up unused ipu2grp ARM: dts: silk: Add compatible property to "partitions" node ARM: dts: gose: Add compatible property to "partitions" node ARM: dts: porter: Add compatible property to "partitions" node ARM: dts: koelsch: Add compatible property to "partitions" node ARM: dts: lager: Add compatible property to "partitions" node ARM: dts: bockw: Add compatible property to "partitions" node ARM: dts: meson8b: Add watchdog node Documentation: watchdog: Add new bindings for meson8b ARM: meson: Add status LED for Odroid-C1 ARM: dts: uniphier: fix a typo in comment block ARM: bcm2835: Add the auxiliary clocks to the device tree. ARM: bcm2835: Add devicetree for bcm2836 and Raspberry Pi 2 B ARM: bcm2835: Move the CPU/peripheral include out of common RPi DT. ARM: bcm2835: Split the DT for peripherals from the DT for the CPU ARM: realview: set up cache correctly on the PB11MPCore ARM: dts: Unify G2D device node with other devices on exynos4 ...
-rw-r--r--Documentation/devicetree/bindings/arm/bcm/brcm,bcm4708.txt7
-rw-r--r--Documentation/devicetree/bindings/arm/bcm/brcm,nsp-cpu-method.txt39
-rw-r--r--Documentation/devicetree/bindings/arm/compulab-boards.txt25
-rw-r--r--Documentation/devicetree/bindings/arm/cpus.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/marvell,kirkwood.txt2
-rw-r--r--Documentation/devicetree/bindings/arm/mediatek.txt4
-rw-r--r--Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt2
-rw-r--r--Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt2
-rw-r--r--Documentation/devicetree/bindings/arm/omap/omap.txt18
-rw-r--r--Documentation/devicetree/bindings/arm/rockchip.txt22
-rw-r--r--Documentation/devicetree/bindings/arm/scu.txt3
-rw-r--r--Documentation/devicetree/bindings/arm/technologic.txt6
-rw-r--r--Documentation/devicetree/bindings/clock/arm-syscon-icst.txt40
-rw-r--r--Documentation/devicetree/bindings/clock/dove-divider-clock.txt28
-rw-r--r--Documentation/devicetree/bindings/display/exynos/exynos_hdmi.txt7
-rw-r--r--Documentation/devicetree/bindings/display/panel/startek,startek-kd050c.txt4
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/mediatek,sysirq.txt1
-rw-r--r--Documentation/devicetree/bindings/regulator/tps65217.txt10
-rw-r--r--Documentation/devicetree/bindings/serial/mtk-uart.txt14
-rw-r--r--Documentation/devicetree/bindings/soc/dove/pmu.txt56
-rw-r--r--Documentation/devicetree/bindings/soc/mediatek/scpsys.txt12
-rw-r--r--Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt104
-rw-r--r--Documentation/devicetree/bindings/soc/qcom/qcom,smsm.txt104
-rw-r--r--Documentation/devicetree/bindings/spi/ti_qspi.txt22
-rw-r--r--Documentation/devicetree/bindings/timer/mediatek,mtk-timer.txt1
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt3
-rw-r--r--Documentation/devicetree/bindings/watchdog/meson-wdt.txt (renamed from Documentation/devicetree/bindings/watchdog/meson6-wdt.txt)2
-rw-r--r--Documentation/devicetree/bindings/watchdog/mtk-wdt.txt6
-rw-r--r--arch/arm/boot/dts/Makefile63
-rw-r--r--arch/arm/boot/dts/am335x-baltos-ir5221.dts186
-rw-r--r--arch/arm/boot/dts/am335x-bone-common.dtsi118
-rw-r--r--arch/arm/boot/dts/am335x-boneblack.dts44
-rw-r--r--arch/arm/boot/dts/am335x-bonegreen.dts4
-rw-r--r--arch/arm/boot/dts/am335x-chiliboard.dts20
-rw-r--r--arch/arm/boot/dts/am335x-chilisom.dtsi94
-rw-r--r--arch/arm/boot/dts/am335x-cm-t335.dts396
-rw-r--r--arch/arm/boot/dts/am335x-evm.dts233
-rw-r--r--arch/arm/boot/dts/am335x-evmsk.dts280
-rw-r--r--arch/arm/boot/dts/am335x-lxm.dts120
-rw-r--r--arch/arm/boot/dts/am335x-nano.dts154
-rw-r--r--arch/arm/boot/dts/am335x-pepper.dts231
-rw-r--r--arch/arm/boot/dts/am335x-phycore-som.dtsi60
-rw-r--r--arch/arm/boot/dts/am335x-sbc-t335.dts219
-rw-r--r--arch/arm/boot/dts/am335x-shc.dts577
-rw-r--r--arch/arm/boot/dts/am335x-sl50.dts13
-rw-r--r--arch/arm/boot/dts/am335x-wega.dtsi58
-rw-r--r--arch/arm/boot/dts/am33xx.dtsi96
-rw-r--r--arch/arm/boot/dts/am3517-craneboard.dts2
-rw-r--r--arch/arm/boot/dts/am4372.dtsi87
-rw-r--r--arch/arm/boot/dts/am437x-cm-t43.dts422
-rw-r--r--arch/arm/boot/dts/am437x-gp-evm.dts389
-rw-r--r--arch/arm/boot/dts/am437x-idk-evm.dts128
-rw-r--r--arch/arm/boot/dts/am437x-sbc-t43.dts180
-rw-r--r--arch/arm/boot/dts/am437x-sk-evm.dts298
-rw-r--r--arch/arm/boot/dts/am43x-epos-evm.dts246
-rw-r--r--arch/arm/boot/dts/am57xx-beagle-x15.dts198
-rw-r--r--arch/arm/boot/dts/am57xx-cl-som-am57x.dts617
-rw-r--r--arch/arm/boot/dts/am57xx-sbc-am57x.dts179
-rw-r--r--arch/arm/boot/dts/arm-realview-pb11mp.dts681
-rw-r--r--arch/arm/boot/dts/armada-370-netgear-rn102.dts2
-rw-r--r--arch/arm/boot/dts/armada-370-netgear-rn104.dts2
-rw-r--r--arch/arm/boot/dts/armada-388-clearfog.dts456
-rw-r--r--arch/arm/boot/dts/armada-388-gp.dts10
-rw-r--r--arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi115
-rw-r--r--arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts72
-rw-r--r--arch/arm/boot/dts/armada-xp-netgear-rn2120.dts2
-rw-r--r--arch/arm/boot/dts/at91-sama5d2_xplained.dts21
-rw-r--r--arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi127
-rw-r--r--arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts170
-rw-r--r--arch/arm/boot/dts/at91-vinco.dts256
-rw-r--r--arch/arm/boot/dts/bcm-cygnus.dtsi101
-rw-r--r--arch/arm/boot/dts/bcm-nsp.dtsi232
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi-a-plus.dts1
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi-b-plus.dts1
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts1
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi-b.dts1
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi.dtsi2
-rw-r--r--arch/arm/boot/dts/bcm2835.dtsi194
-rw-r--r--arch/arm/boot/dts/bcm2836-rpi-2-b.dts35
-rw-r--r--arch/arm/boot/dts/bcm2836.dtsi78
-rw-r--r--arch/arm/boot/dts/bcm283x.dtsi212
-rw-r--r--arch/arm/boot/dts/bcm4709-netgear-r8000.dts30
-rw-r--r--arch/arm/boot/dts/bcm5301x.dtsi92
-rw-r--r--arch/arm/boot/dts/bcm63138.dtsi36
-rw-r--r--arch/arm/boot/dts/bcm94708.dts56
-rw-r--r--arch/arm/boot/dts/bcm94709.dts56
-rw-r--r--arch/arm/boot/dts/bcm953012k.dts63
-rw-r--r--arch/arm/boot/dts/bcm958625k.dts59
-rw-r--r--arch/arm/boot/dts/berlin2.dtsi23
-rw-r--r--arch/arm/boot/dts/berlin2cd.dtsi23
-rw-r--r--arch/arm/boot/dts/berlin2q-marvell-dmp.dts38
-rw-r--r--arch/arm/boot/dts/berlin2q.dtsi34
-rw-r--r--arch/arm/boot/dts/compulab-sb-som.dtsi49
-rw-r--r--arch/arm/boot/dts/da850-enbw-cmc.dts8
-rw-r--r--arch/arm/boot/dts/da850-evm.dts8
-rw-r--r--arch/arm/boot/dts/da850.dtsi58
-rw-r--r--arch/arm/boot/dts/dm8148-evm.dts55
-rw-r--r--arch/arm/boot/dts/dm8148-t410.dts70
-rw-r--r--arch/arm/boot/dts/dm814x.dtsi226
-rw-r--r--arch/arm/boot/dts/dm816x.dtsi14
-rw-r--r--arch/arm/boot/dts/dove-cubox.dts8
-rw-r--r--arch/arm/boot/dts/dove.dtsi22
-rw-r--r--arch/arm/boot/dts/dra62x-clocks.dtsi23
-rw-r--r--arch/arm/boot/dts/dra62x-j5eco-evm.dts80
-rw-r--r--arch/arm/boot/dts/dra62x.dtsi23
-rw-r--r--arch/arm/boot/dts/dra7-evm.dts255
-rw-r--r--arch/arm/boot/dts/dra7.dtsi7
-rw-r--r--arch/arm/boot/dts/dra72-evm.dts204
-rw-r--r--arch/arm/boot/dts/ea3250.dts41
-rw-r--r--arch/arm/boot/dts/exynos4.dtsi18
-rw-r--r--arch/arm/boot/dts/exynos4210-origen.dts4
-rw-r--r--arch/arm/boot/dts/exynos4210-smdkv310.dts4
-rw-r--r--arch/arm/boot/dts/exynos4210-universal_c210.dts8
-rw-r--r--arch/arm/boot/dts/exynos4210.dtsi14
-rw-r--r--arch/arm/boot/dts/exynos4412-odroid-common.dtsi4
-rw-r--r--arch/arm/boot/dts/exynos4412-odroidu3.dts1
-rw-r--r--arch/arm/boot/dts/exynos4412-origen.dts4
-rw-r--r--arch/arm/boot/dts/exynos4412-smdk4412.dts4
-rw-r--r--arch/arm/boot/dts/exynos4412-trats2.dts4
-rw-r--r--arch/arm/boot/dts/exynos4x12.dtsi5
-rw-r--r--arch/arm/boot/dts/exynos5250-snow-common.dtsi6
-rw-r--r--arch/arm/boot/dts/exynos5250.dtsi9
-rw-r--r--arch/arm/boot/dts/exynos5420-peach-pit.dts5
-rw-r--r--arch/arm/boot/dts/exynos5420.dtsi19
-rw-r--r--arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi5
-rw-r--r--arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts2
-rw-r--r--arch/arm/boot/dts/exynos5422-odroidxu3.dts2
-rw-r--r--arch/arm/boot/dts/exynos5800-peach-pi.dts5
-rw-r--r--arch/arm/boot/dts/imx25-pinfunc.h3
-rw-r--r--arch/arm/boot/dts/imx25.dtsi4
-rw-r--r--arch/arm/boot/dts/imx28-cfa10057.dts4
-rw-r--r--arch/arm/boot/dts/imx28.dtsi11
-rw-r--r--arch/arm/boot/dts/imx51-ts4800.dts302
-rw-r--r--arch/arm/boot/dts/imx6dl.dtsi7
-rw-r--r--arch/arm/boot/dts/imx6q-novena.dts785
-rw-r--r--arch/arm/boot/dts/imx6q.dtsi52
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw51xx.dtsi36
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw52xx.dtsi48
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw53xx.dtsi33
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw54xx.dtsi47
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw551x.dtsi24
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw552x.dtsi24
-rw-r--r--arch/arm/boot/dts/imx6qdl.dtsi61
-rw-r--r--arch/arm/boot/dts/imx6sl.dtsi11
-rw-r--r--arch/arm/boot/dts/imx6sx.dtsi19
-rw-r--r--arch/arm/boot/dts/imx6ul.dtsi18
-rw-r--r--arch/arm/boot/dts/imx7d-cl-som-imx7.dts286
-rw-r--r--arch/arm/boot/dts/imx7d-sbc-imx7.dts42
-rw-r--r--arch/arm/boot/dts/imx7d-sdb.dts10
-rw-r--r--arch/arm/boot/dts/imx7d.dtsi22
-rw-r--r--arch/arm/boot/dts/kirkwood-nsa325.dts238
-rw-r--r--arch/arm/boot/dts/kirkwood-pogoplug-series-4.dts178
-rw-r--r--arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts155
-rw-r--r--arch/arm/boot/dts/logicpd-torpedo-som.dtsi44
-rw-r--r--arch/arm/boot/dts/lpc18xx.dtsi11
-rw-r--r--arch/arm/boot/dts/lpc32xx.dtsi142
-rw-r--r--arch/arm/boot/dts/lpc4337-ciaa.dts34
-rw-r--r--arch/arm/boot/dts/lpc4357-ea4357-devkit.dts5
-rw-r--r--arch/arm/boot/dts/lpc4357.dtsi4
-rw-r--r--arch/arm/boot/dts/ls1021a-qds.dts4
-rw-r--r--arch/arm/boot/dts/ls1021a-twr.dts13
-rw-r--r--arch/arm/boot/dts/ls1021a.dtsi21
-rw-r--r--arch/arm/boot/dts/meson8b-odroidc1.dts11
-rw-r--r--arch/arm/boot/dts/meson8b.dtsi6
-rw-r--r--arch/arm/boot/dts/mt2701-evb.dts29
-rw-r--r--arch/arm/boot/dts/mt2701.dtsi146
-rw-r--r--arch/arm/boot/dts/mt8135.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-beagle-xm.dts20
-rw-r--r--arch/arm/boot/dts/omap3-beagle.dts66
-rw-r--r--arch/arm/boot/dts/omap3-cm-t3x.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-devkit8000-common.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-evm-37xx.dts54
-rw-r--r--arch/arm/boot/dts/omap3-gta04.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-igep0020.dts24
-rw-r--r--arch/arm/boot/dts/omap3-igep0030.dts24
-rw-r--r--arch/arm/boot/dts/omap3-ldp.dts60
-rw-r--r--arch/arm/boot/dts/omap3-lilly-a83x.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-n900.dts116
-rw-r--r--arch/arm/boot/dts/omap3-n950-n9.dtsi12
-rw-r--r--arch/arm/boot/dts/omap3-overo-alto35-common.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-overo-chestnut43-common.dtsi4
-rw-r--r--arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-overo-gallop43-common.dtsi4
-rw-r--r--arch/arm/boot/dts/omap3-overo-palo35-common.dtsi4
-rw-r--r--arch/arm/boot/dts/omap3-overo-palo43-common.dtsi4
-rw-r--r--arch/arm/boot/dts/omap3-pandora-common.dtsi34
-rw-r--r--arch/arm/boot/dts/omap3-panel-sharp-ls037v7dw01.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-zoom3.dts60
-rw-r--r--arch/arm/boot/dts/omap3.dtsi2
-rw-r--r--arch/arm/boot/dts/omap4-duovero-parlor.dts2
-rw-r--r--arch/arm/boot/dts/omap4-panda-a4.dts6
-rw-r--r--arch/arm/boot/dts/omap4-panda-common.dtsi164
-rw-r--r--arch/arm/boot/dts/omap4-panda-es.dts10
-rw-r--r--arch/arm/boot/dts/omap4-sdp-es23plus.dts6
-rw-r--r--arch/arm/boot/dts/omap4-sdp.dts110
-rw-r--r--arch/arm/boot/dts/omap4-var-om44customboard.dtsi2
-rw-r--r--arch/arm/boot/dts/omap4.dtsi10
-rw-r--r--arch/arm/boot/dts/omap5-board-common.dtsi94
-rw-r--r--arch/arm/boot/dts/omap5-cm-t54.dts4
-rw-r--r--arch/arm/boot/dts/omap5-uevm.dts4
-rw-r--r--arch/arm/boot/dts/omap5.dtsi2
-rw-r--r--arch/arm/boot/dts/phy3250.dts41
-rw-r--r--arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts16
-rw-r--r--arch/arm/boot/dts/qcom-apq8064-ifc6410.dts22
-rw-r--r--arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts436
-rw-r--r--arch/arm/boot/dts/qcom-apq8064.dtsi130
-rw-r--r--arch/arm/boot/dts/qcom-apq8074-dragonboard.dts2
-rw-r--r--arch/arm/boot/dts/qcom-apq8084-ifc6540.dts3
-rw-r--r--arch/arm/boot/dts/qcom-apq8084-mtp.dts1
-rw-r--r--arch/arm/boot/dts/qcom-apq8084.dtsi108
-rw-r--r--arch/arm/boot/dts/qcom-msm8960.dtsi23
-rw-r--r--arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts382
-rw-r--r--arch/arm/boot/dts/qcom-msm8974.dtsi11
-rw-r--r--arch/arm/boot/dts/qcom-pm8841.dtsi10
-rw-r--r--arch/arm/boot/dts/qcom-pm8941.dtsi21
-rw-r--r--arch/arm/boot/dts/qcom-pma8084.dtsi12
-rw-r--r--arch/arm/boot/dts/r8a73a4-ape6evm.dts4
-rw-r--r--arch/arm/boot/dts/r8a7740-armadillo800eva.dts2
-rw-r--r--arch/arm/boot/dts/r8a7740.dtsi13
-rw-r--r--arch/arm/boot/dts/r8a7778-bockw.dts33
-rw-r--r--arch/arm/boot/dts/r8a7778.dtsi7
-rw-r--r--arch/arm/boot/dts/r8a7790-lager.dts56
-rw-r--r--arch/arm/boot/dts/r8a7790.dtsi32
-rw-r--r--arch/arm/boot/dts/r8a7791-henninger.dts320
-rw-r--r--arch/arm/boot/dts/r8a7791-koelsch.dts60
-rw-r--r--arch/arm/boot/dts/r8a7791-porter.dts56
-rw-r--r--arch/arm/boot/dts/r8a7791.dtsi65
-rw-r--r--arch/arm/boot/dts/r8a7793-gose.dts77
-rw-r--r--arch/arm/boot/dts/r8a7793.dtsi534
-rw-r--r--arch/arm/boot/dts/r8a7794-alt.dts140
-rw-r--r--arch/arm/boot/dts/r8a7794-silk.dts76
-rw-r--r--arch/arm/boot/dts/r8a7794.dtsi68
-rw-r--r--arch/arm/boot/dts/rk3036-evb.dts64
-rw-r--r--arch/arm/boot/dts/rk3036-kylin.dts300
-rw-r--r--arch/arm/boot/dts/rk3036.dtsi622
-rw-r--r--arch/arm/boot/dts/rk3066a.dtsi19
-rw-r--r--arch/arm/boot/dts/rk3188.dtsi15
-rw-r--r--arch/arm/boot/dts/rk3228-evb.dts66
-rw-r--r--arch/arm/boot/dts/rk3228.dtsi442
-rw-r--r--arch/arm/boot/dts/rk3288-evb-act8846.dts44
-rw-r--r--arch/arm/boot/dts/rk3288-evb-rk808.dts27
-rw-r--r--arch/arm/boot/dts/rk3288-evb.dtsi37
-rw-r--r--arch/arm/boot/dts/rk3288-r89.dts13
-rw-r--r--arch/arm/boot/dts/rk3288-rock2-som.dtsi1
-rw-r--r--arch/arm/boot/dts/rk3288-rock2-square.dts13
-rw-r--r--arch/arm/boot/dts/rk3288-thermal.dtsi14
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-brain.dts139
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-mickey.dts250
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-minnie.dts12
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-speedy.dts8
-rw-r--r--arch/arm/boot/dts/rk3288-veyron.dtsi5
-rw-r--r--arch/arm/boot/dts/rk3288.dtsi30
-rw-r--r--arch/arm/boot/dts/rk3xxx.dtsi1
-rw-r--r--arch/arm/boot/dts/sama5d2.dtsi31
-rw-r--r--arch/arm/boot/dts/sama5d4.dtsi26
-rw-r--r--arch/arm/boot/dts/sh73a0-kzm9g.dts2
-rw-r--r--arch/arm/boot/dts/sh73a0.dtsi86
-rw-r--r--arch/arm/boot/dts/socfpga.dtsi1
-rw-r--r--arch/arm/boot/dts/socfpga_arria5_socdk.dts1
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts1
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi34
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_mcvevk.dts94
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_socdk.dts1
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_sockit.dts1
-rw-r--r--arch/arm/boot/dts/ste-dbx5x0.dtsi33
-rw-r--r--arch/arm/boot/dts/ste-href-stuib.dtsi23
-rw-r--r--arch/arm/boot/dts/ste-href-tvk1281618.dtsi52
-rw-r--r--arch/arm/boot/dts/ste-hrefv60plus.dtsi18
-rw-r--r--arch/arm/boot/dts/ste-nomadik-s8815.dts2
-rw-r--r--arch/arm/boot/dts/ste-snowball.dts7
-rw-r--r--arch/arm/boot/dts/ste-u300.dts10
-rw-r--r--arch/arm/boot/dts/sun4i-a10-gemei-g9.dts54
-rw-r--r--arch/arm/boot/dts/sun4i-a10-inet1.dts48
-rw-r--r--arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts164
-rw-r--r--arch/arm/boot/dts/sun4i-a10-mk802.dts4
-rw-r--r--arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts61
-rw-r--r--arch/arm/boot/dts/sun4i-a10.dtsi45
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts14
-rw-r--r--arch/arm/boot/dts/sun5i-a13-empire-electronix-d709.dts241
-rw-r--r--arch/arm/boot/dts/sun5i-a13-utoo-p66.dts30
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts85
-rw-r--r--arch/arm/boot/dts/sun7i-a20-bananapi.dts4
-rw-r--r--arch/arm/boot/dts/sun7i-a20-icnova-swac.dts169
-rw-r--r--arch/arm/boot/dts/sun7i-a20-mk808c.dts4
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts77
-rw-r--r--arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts4
-rw-r--r--arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts4
-rw-r--r--arch/arm/boot/dts/sun7i-a20-pcduino3.dts4
-rw-r--r--arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts57
-rw-r--r--arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts12
-rw-r--r--arch/arm/boot/dts/sun7i-a20.dtsi41
-rw-r--r--arch/arm/boot/dts/sun8i-a23-a33.dtsi2
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts77
-rw-r--r--arch/arm/boot/dts/sun8i-h3.dtsi497
-rw-r--r--arch/arm/boot/dts/sun9i-a80-cubieboard4.dts30
-rw-r--r--arch/arm/boot/dts/sun9i-a80-optimus.dts24
-rw-r--r--arch/arm/boot/dts/sun9i-a80.dtsi159
-rw-r--r--arch/arm/boot/dts/tango4-common.dtsi130
-rw-r--r--arch/arm/boot/dts/tango4-smp8758.dtsi31
-rw-r--r--arch/arm/boot/dts/tango4-vantage-1172.dts37
-rw-r--r--arch/arm/boot/dts/tps65217.dtsi56
-rw-r--r--arch/arm/boot/dts/twl4030_omap3.dtsi2
-rw-r--r--arch/arm/boot/dts/twl6030_omap4.dtsi4
-rw-r--r--arch/arm/boot/dts/uniphier-common32.dtsi135
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-ld4.dtsi265
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi2
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-pro4.dtsi288
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-pro5.dtsi274
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-sld8.dtsi266
-rw-r--r--arch/arm/boot/dts/uniphier-proxstream2.dtsi269
-rw-r--r--arch/arm/boot/dts/versatile-ab.dts62
-rw-r--r--arch/arm/boot/dts/vf-colibri.dtsi26
-rw-r--r--arch/arm/boot/dts/vf610m4-cosmic.dts90
-rw-r--r--arch/arm/boot/dts/vfxxx.dtsi24
-rw-r--r--arch/arm/boot/dts/wm8505.dtsi4
-rw-r--r--arch/arm/boot/dts/zynq-7000.dtsi8
-rw-r--r--arch/arm/boot/dts/zynq-zc702.dts4
-rw-r--r--arch/arm/mach-mediatek/mediatek.c1
-rw-r--r--arch/arm/mach-omap2/pdata-quirks.c24
-rw-r--r--arch/arm64/boot/dts/mediatek/mt8173.dtsi2
-rw-r--r--drivers/clk/samsung/clk-exynos4.c1
-rw-r--r--include/dt-bindings/clock/exynos4.h1
-rw-r--r--include/dt-bindings/clock/r8a7791-clock.h1
-rw-r--r--include/dt-bindings/clock/r8a7794-clock.h1
-rw-r--r--include/dt-bindings/clock/sh73a0-clock.h6
-rw-r--r--include/dt-bindings/pinctrl/am43xx.h6
-rw-r--r--include/dt-bindings/pinctrl/dm814x.h48
-rw-r--r--include/dt-bindings/pinctrl/dra.h6
-rw-r--r--include/dt-bindings/pinctrl/omap.h3
-rw-r--r--include/dt-bindings/reset/mt8135-resets.h (renamed from include/dt-bindings/reset-controller/mt8135-resets.h)0
-rw-r--r--include/dt-bindings/reset/mt8173-resets.h (renamed from include/dt-bindings/reset-controller/mt8173-resets.h)0
333 files changed, 19552 insertions, 4367 deletions
diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm4708.txt b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm4708.txt
index 6b0f49f6f499..8608a776caa7 100644
--- a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm4708.txt
+++ b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm4708.txt
@@ -5,4 +5,11 @@ Boards with the BCM4708 SoC shall have the following properties:
5 5
6Required root node property: 6Required root node property:
7 7
8bcm4708
8compatible = "brcm,bcm4708"; 9compatible = "brcm,bcm4708";
10
11bcm4709
12compatible = "brcm,bcm4709";
13
14bcm53012
15compatible = "brcm,bcm53012";
diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,nsp-cpu-method.txt b/Documentation/devicetree/bindings/arm/bcm/brcm,nsp-cpu-method.txt
new file mode 100644
index 000000000000..677ef9d9f445
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/bcm/brcm,nsp-cpu-method.txt
@@ -0,0 +1,39 @@
1Broadcom Northstar Plus SoC CPU Enable Method
2---------------------------------------------
3This binding defines the enable method used for starting secondary
4CPU in the following Broadcom SoCs:
5 BCM58522, BCM58525, BCM58535, BCM58622, BCM58623, BCM58625, BCM88312
6
7The enable method is specified by defining the following required
8properties in the corresponding secondary "cpu" device tree node:
9 - enable-method = "brcm,bcm-nsp-smp";
10 - secondary-boot-reg = <...>;
11
12The secondary-boot-reg property is a u32 value that specifies the
13physical address of the register which should hold the common
14entry point for a secondary CPU. This entry is cpu node specific
15and should be added per cpu. E.g., in case of NSP (BCM58625) which
16is a dual core CPU SoC, this entry should be added to cpu1 node.
17
18
19Example:
20 cpus {
21 #address-cells = <1>;
22 #size-cells = <0>;
23
24 cpu0: cpu@0 {
25 device_type = "cpu";
26 compatible = "arm,cortex-a9";
27 next-level-cache = <&L2>;
28 reg = <0>;
29 };
30
31 cpu1: cpu@1 {
32 device_type = "cpu";
33 compatible = "arm,cortex-a9";
34 next-level-cache = <&L2>;
35 enable-method = "brcm,bcm-nsp-smp";
36 secondary-boot-reg = <0xffff042c>;
37 reg = <1>;
38 };
39 };
diff --git a/Documentation/devicetree/bindings/arm/compulab-boards.txt b/Documentation/devicetree/bindings/arm/compulab-boards.txt
new file mode 100644
index 000000000000..42a10285af9c
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/compulab-boards.txt
@@ -0,0 +1,25 @@
1CompuLab SB-SOM is a multi-module baseboard capable of carrying:
2 - CM-T43
3 - CM-T54
4 - CM-QS600
5 - CL-SOM-AM57x
6 - CL-SOM-iMX7
7modules with minor modifications to the SB-SOM assembly.
8
9Required root node properties:
10 - compatible = should be "compulab,sb-som"
11
12Compulab CL-SOM-iMX7 is a miniature System-on-Module (SoM) based on
13Freescale i.MX7 ARM Cortex-A7 System-on-Chip.
14
15Required root node properties:
16 - compatible = "compulab,cl-som-imx7", "fsl,imx7d";
17
18Compulab SBC-iMX7 is a single board computer based on the
19Freescale i.MX7 system-on-chip. SBC-iMX7 is implemented with
20the CL-SOM-iMX7 System-on-Module providing most of the functions,
21and SB-SOM-iMX7 carrier board providing additional peripheral
22functions and connectors.
23
24Required root node properties:
25 - compatible = "compulab,sbc-imx7", "compulab,cl-som-imx7", "fsl,imx7d";
diff --git a/Documentation/devicetree/bindings/arm/cpus.txt b/Documentation/devicetree/bindings/arm/cpus.txt
index 9bddd9fc7b5a..ae9be074d09f 100644
--- a/Documentation/devicetree/bindings/arm/cpus.txt
+++ b/Documentation/devicetree/bindings/arm/cpus.txt
@@ -192,6 +192,7 @@ nodes to be present and contain the properties described below.
192 "allwinner,sun8i-a23" 192 "allwinner,sun8i-a23"
193 "arm,psci" 193 "arm,psci"
194 "arm,realview-smp" 194 "arm,realview-smp"
195 "brcm,bcm-nsp-smp"
195 "brcm,brahma-b15" 196 "brcm,brahma-b15"
196 "marvell,armada-375-smp" 197 "marvell,armada-375-smp"
197 "marvell,armada-380-smp" 198 "marvell,armada-380-smp"
diff --git a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
index 5171ad8f48ff..ab0c9cdf388e 100644
--- a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
+++ b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
@@ -24,6 +24,8 @@ board. Currently known boards are:
24"buffalo,lswxl" 24"buffalo,lswxl"
25"buffalo,lsxhl" 25"buffalo,lsxhl"
26"buffalo,lsxl" 26"buffalo,lsxl"
27"cloudengines,pogo02"
28"cloudengines,pogoplugv4"
27"dlink,dns-320" 29"dlink,dns-320"
28"dlink,dns-320-a1" 30"dlink,dns-320-a1"
29"dlink,dns-325" 31"dlink,dns-325"
diff --git a/Documentation/devicetree/bindings/arm/mediatek.txt b/Documentation/devicetree/bindings/arm/mediatek.txt
index 618a91994a18..54f43bc2df44 100644
--- a/Documentation/devicetree/bindings/arm/mediatek.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek.txt
@@ -6,6 +6,7 @@ following property:
6Required root node property: 6Required root node property:
7 7
8compatible: Must contain one of 8compatible: Must contain one of
9 "mediatek,mt2701"
9 "mediatek,mt6580" 10 "mediatek,mt6580"
10 "mediatek,mt6589" 11 "mediatek,mt6589"
11 "mediatek,mt6592" 12 "mediatek,mt6592"
@@ -17,6 +18,9 @@ compatible: Must contain one of
17 18
18Supported boards: 19Supported boards:
19 20
21- Evaluation board for MT2701:
22 Required root node properties:
23 - compatible = "mediatek,mt2701-evb", "mediatek,mt2701";
20- Evaluation board for MT6580: 24- Evaluation board for MT6580:
21 Required root node properties: 25 Required root node properties:
22 - compatible = "mediatek,mt6580-evbp1", "mediatek,mt6580"; 26 - compatible = "mediatek,mt6580-evbp1", "mediatek,mt6580";
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
index f6cd3e4192ff..aaf8d1460c4d 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
@@ -18,7 +18,7 @@ The available clocks are defined in dt-bindings/clock/mt*-clk.h.
18Also it uses the common reset controller binding from 18Also it uses the common reset controller binding from
19Documentation/devicetree/bindings/reset/reset.txt. 19Documentation/devicetree/bindings/reset/reset.txt.
20The available reset outputs are defined in 20The available reset outputs are defined in
21dt-bindings/reset-controller/mt*-resets.h 21dt-bindings/reset/mt*-resets.h
22 22
23Example: 23Example:
24 24
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt
index f25b85499a6f..2f6ff86df49f 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt
@@ -18,7 +18,7 @@ The available clocks are defined in dt-bindings/clock/mt*-clk.h.
18Also it uses the common reset controller binding from 18Also it uses the common reset controller binding from
19Documentation/devicetree/bindings/reset/reset.txt. 19Documentation/devicetree/bindings/reset/reset.txt.
20The available reset outputs are defined in 20The available reset outputs are defined in
21dt-bindings/reset-controller/mt*-resets.h 21dt-bindings/reset/mt*-resets.h
22 22
23Example: 23Example:
24 24
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
index 9f4e5136e568..a2bd593881ca 100644
--- a/Documentation/devicetree/bindings/arm/omap/omap.txt
+++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
@@ -138,9 +138,21 @@ Boards:
138- AM335X phyBOARD-WEGA: Single Board Computer dev kit 138- AM335X phyBOARD-WEGA: Single Board Computer dev kit
139 compatible = "phytec,am335x-wega", "phytec,am335x-phycore-som", "ti,am33xx" 139 compatible = "phytec,am335x-wega", "phytec,am335x-phycore-som", "ti,am33xx"
140 140
141- AM335X CM-T335 : System On Module, built around the Sitara AM3352/4
142 compatible = "compulab,cm-t335", "ti,am33xx"
143
144- AM335X SBC-T335 : single board computer, built around the Sitara AM3352/4
145 compatible = "compulab,sbc-t335", "compulab,cm-t335", "ti,am33xx"
146
141- OMAP5 EVM : Evaluation Module 147- OMAP5 EVM : Evaluation Module
142 compatible = "ti,omap5-evm", "ti,omap5" 148 compatible = "ti,omap5-evm", "ti,omap5"
143 149
150- AM437x CM-T43
151 compatible = "compulab,am437x-cm-t43", "ti,am4372", "ti,am43"
152
153- AM437x SBC-T43
154 compatible = "compulab,am437x-sbc-t43", "compulab,am437x-cm-t43", "ti,am4372", "ti,am43"
155
144- AM43x EPOS EVM 156- AM43x EPOS EVM
145 compatible = "ti,am43x-epos-evm", "ti,am4372", "ti,am43" 157 compatible = "ti,am43x-epos-evm", "ti,am4372", "ti,am43"
146 158
@@ -150,6 +162,12 @@ Boards:
150- AM437x SK EVM: AM437x StarterKit Evaluation Module 162- AM437x SK EVM: AM437x StarterKit Evaluation Module
151 compatible = "ti,am437x-sk-evm", "ti,am4372", "ti,am43" 163 compatible = "ti,am437x-sk-evm", "ti,am4372", "ti,am43"
152 164
165- AM57XX CL-SOM-AM57x
166 compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"
167
168- AM57XX SBC-AM57x
169 compatible = "compulab,sbc-am57x", "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"
170
153- DRA742 EVM: Software Development Board for DRA742 171- DRA742 EVM: Software Development Board for DRA742
154 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7" 172 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"
155 173
diff --git a/Documentation/devicetree/bindings/arm/rockchip.txt b/Documentation/devicetree/bindings/arm/rockchip.txt
index 8e985dd2f181..c980b2b81227 100644
--- a/Documentation/devicetree/bindings/arm/rockchip.txt
+++ b/Documentation/devicetree/bindings/arm/rockchip.txt
@@ -1,6 +1,10 @@
1Rockchip platforms device tree bindings 1Rockchip platforms device tree bindings
2--------------------------------------- 2---------------------------------------
3 3
4- Kylin RK3036 board:
5 Required root node properties:
6 - compatible = "rockchip,kylin-rk3036", "rockchip,rk3036";
7
4- MarsBoard RK3066 board: 8- MarsBoard RK3066 board:
5 Required root node properties: 9 Required root node properties:
6 - compatible = "haoyu,marsboard-rk3066", "rockchip,rk3066a"; 10 - compatible = "haoyu,marsboard-rk3066", "rockchip,rk3066a";
@@ -35,6 +39,11 @@ Rockchip platforms device tree bindings
35 Required root node properties: 39 Required root node properties:
36 - compatible = "netxeon,r89", "rockchip,rk3288"; 40 - compatible = "netxeon,r89", "rockchip,rk3288";
37 41
42- Google Brain (dev-board):
43 Required root node properties:
44 - compatible = "google,veyron-brain-rev0", "google,veyron-brain",
45 "google,veyron", "rockchip,rk3288";
46
38- Google Jaq (Haier Chromebook 11 and more): 47- Google Jaq (Haier Chromebook 11 and more):
39 Required root node properties: 48 Required root node properties:
40 - compatible = "google,veyron-jaq-rev5", "google,veyron-jaq-rev4", 49 - compatible = "google,veyron-jaq-rev5", "google,veyron-jaq-rev4",
@@ -49,6 +58,15 @@ Rockchip platforms device tree bindings
49 "google,veyron-jerry-rev3", "google,veyron-jerry", 58 "google,veyron-jerry-rev3", "google,veyron-jerry",
50 "google,veyron", "rockchip,rk3288"; 59 "google,veyron", "rockchip,rk3288";
51 60
61- Google Mickey (Asus Chromebit CS10):
62 Required root node properties:
63 - compatible = "google,veyron-mickey-rev8", "google,veyron-mickey-rev7",
64 "google,veyron-mickey-rev6", "google,veyron-mickey-rev5",
65 "google,veyron-mickey-rev4", "google,veyron-mickey-rev3",
66 "google,veyron-mickey-rev2", "google,veyron-mickey-rev1",
67 "google,veyron-mickey-rev0", "google,veyron-mickey",
68 "google,veyron", "rockchip,rk3288";
69
52- Google Minnie (Asus Chromebook Flip C100P): 70- Google Minnie (Asus Chromebook Flip C100P):
53 Required root node properties: 71 Required root node properties:
54 - compatible = "google,veyron-minnie-rev4", "google,veyron-minnie-rev3", 72 - compatible = "google,veyron-minnie-rev4", "google,veyron-minnie-rev3",
@@ -72,3 +90,7 @@ Rockchip platforms device tree bindings
72- Rockchip R88 board: 90- Rockchip R88 board:
73 Required root node properties: 91 Required root node properties:
74 - compatible = "rockchip,r88", "rockchip,rk3368"; 92 - compatible = "rockchip,r88", "rockchip,rk3368";
93
94- Rockchip RK3228 Evaluation board:
95 Required root node properties:
96 - compatible = "rockchip,rk3228-evb", "rockchip,rk3228";
diff --git a/Documentation/devicetree/bindings/arm/scu.txt b/Documentation/devicetree/bindings/arm/scu.txt
index c447680519bb..08a587875996 100644
--- a/Documentation/devicetree/bindings/arm/scu.txt
+++ b/Documentation/devicetree/bindings/arm/scu.txt
@@ -10,10 +10,13 @@ References:
10 Revision r2p0 10 Revision r2p0
11- Cortex-A5: see DDI0434B Cortex-A5 MPCore Technical Reference Manual 11- Cortex-A5: see DDI0434B Cortex-A5 MPCore Technical Reference Manual
12 Revision r0p1 12 Revision r0p1
13- ARM11 MPCore: see DDI0360F ARM 11 MPCore Processor Technical Reference
14 Manial Revision r2p0
13 15
14- compatible : Should be: 16- compatible : Should be:
15 "arm,cortex-a9-scu" 17 "arm,cortex-a9-scu"
16 "arm,cortex-a5-scu" 18 "arm,cortex-a5-scu"
19 "arm,arm11mp-scu"
17 20
18- reg : Specify the base address and the size of the SCU register window. 21- reg : Specify the base address and the size of the SCU register window.
19 22
diff --git a/Documentation/devicetree/bindings/arm/technologic.txt b/Documentation/devicetree/bindings/arm/technologic.txt
new file mode 100644
index 000000000000..842298894cf0
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/technologic.txt
@@ -0,0 +1,6 @@
1Technologic Systems Platforms Device Tree Bindings
2--------------------------------------------------
3
4TS-4800 board
5Required root node properties:
6 - compatible = "technologic,imx51-ts4800", "fsl,imx51";
diff --git a/Documentation/devicetree/bindings/clock/arm-syscon-icst.txt b/Documentation/devicetree/bindings/clock/arm-syscon-icst.txt
new file mode 100644
index 000000000000..8b7177cecb36
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/arm-syscon-icst.txt
@@ -0,0 +1,40 @@
1ARM System Controller ICST clocks
2
3The ICS525 and ICS307 oscillators are produced by Integrated Devices
4Technology (IDT). ARM integrated these oscillators deeply into their
5reference designs by adding special control registers that manage such
6oscillators to their system controllers.
7
8The ARM system controller contains logic to serialize and initialize
9an ICST clock request after a write to the 32 bit register at an offset
10into the system controller. Furthermore, to even be able to alter one of
11these frequencies, the system controller must first be unlocked by
12writing a special token to another offset in the system controller.
13
14The ICST oscillator must be provided inside a system controller node.
15
16Required properties:
17- lock-offset: the offset address into the system controller where the
18 unlocking register is located
19- vco-offset: the offset address into the system controller where the
20 ICST control register is located (even 32 bit address)
21- compatible: must be one of "arm,syscon-icst525" or "arm,syscon-icst307"
22- #clock-cells: must be <0>
23- clocks: parent clock, since the ICST needs a parent clock to derive its
24 frequency from, this attribute is compulsory.
25
26Example:
27
28syscon: syscon@10000000 {
29 compatible = "syscon";
30 reg = <0x10000000 0x1000>;
31
32 oscclk0: osc0@0c {
33 compatible = "arm,syscon-icst307";
34 #clock-cells = <0>;
35 lock-offset = <0x20>;
36 vco-offset = <0x0c>;
37 clocks = <&xtal24mhz>;
38 };
39 (...)
40};
diff --git a/Documentation/devicetree/bindings/clock/dove-divider-clock.txt b/Documentation/devicetree/bindings/clock/dove-divider-clock.txt
new file mode 100644
index 000000000000..e3eb0f657c5e
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/dove-divider-clock.txt
@@ -0,0 +1,28 @@
1PLL divider based Dove clocks
2
3Marvell Dove has a 2GHz PLL, which feeds into a set of dividers to provide
4high speed clocks for a number of peripherals. These dividers are part of
5the PMU, and thus this node should be a child of the PMU node.
6
7The following clocks are provided:
8
9ID Clock
10-------------
110 AXI bus clock
121 GPU clock
132 VMeta clock
143 LCD clock
15
16Required properties:
17- compatible : shall be "marvell,dove-divider-clock"
18- reg : shall be the register address of the Core PLL and Clock Divider
19 Control 0 register. This will cover that register, as well as the
20 Core PLL and Clock Divider Control 1 register. Thus, it will have
21 a size of 8.
22- #clock-cells : from common clock binding; shall be set to 1
23
24divider_clk: core-clock@0064 {
25 compatible = "marvell,dove-divider-clock";
26 reg = <0x0064 0x8>;
27 #clock-cells = <1>;
28};
diff --git a/Documentation/devicetree/bindings/display/exynos/exynos_hdmi.txt b/Documentation/devicetree/bindings/display/exynos/exynos_hdmi.txt
index 1fd8cf9cbfac..d474f59be6d6 100644
--- a/Documentation/devicetree/bindings/display/exynos/exynos_hdmi.txt
+++ b/Documentation/devicetree/bindings/display/exynos/exynos_hdmi.txt
@@ -2,10 +2,9 @@ Device-Tree bindings for drm hdmi driver
2 2
3Required properties: 3Required properties:
4- compatible: value should be one among the following: 4- compatible: value should be one among the following:
5 1) "samsung,exynos5-hdmi" <DEPRECATED> 5 1) "samsung,exynos4210-hdmi"
6 2) "samsung,exynos4210-hdmi" 6 2) "samsung,exynos4212-hdmi"
7 3) "samsung,exynos4212-hdmi" 7 3) "samsung,exynos5420-hdmi"
8 4) "samsung,exynos5420-hdmi"
9- reg: physical base address of the hdmi and length of memory mapped 8- reg: physical base address of the hdmi and length of memory mapped
10 region. 9 region.
11- interrupts: interrupt number to the cpu. 10- interrupts: interrupt number to the cpu.
diff --git a/Documentation/devicetree/bindings/display/panel/startek,startek-kd050c.txt b/Documentation/devicetree/bindings/display/panel/startek,startek-kd050c.txt
new file mode 100644
index 000000000000..70cd8d18d841
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/startek,startek-kd050c.txt
@@ -0,0 +1,4 @@
1Startek Electronic Technology Co. KD050C 5.0" WVGA TFT LCD panel
2
3Required properties:
4- compatible: should be "startek,startek-kd050c"
diff --git a/Documentation/devicetree/bindings/interrupt-controller/mediatek,sysirq.txt b/Documentation/devicetree/bindings/interrupt-controller/mediatek,sysirq.txt
index afef6a85ac51..b8e1674c7837 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/mediatek,sysirq.txt
+++ b/Documentation/devicetree/bindings/interrupt-controller/mediatek,sysirq.txt
@@ -14,6 +14,7 @@ Required properties:
14 "mediatek,mt6582-sysirq" 14 "mediatek,mt6582-sysirq"
15 "mediatek,mt6580-sysirq" 15 "mediatek,mt6580-sysirq"
16 "mediatek,mt6577-sysirq" 16 "mediatek,mt6577-sysirq"
17 "mediatek,mt2701-sysirq"
17- interrupt-controller : Identifies the node as an interrupt controller 18- interrupt-controller : Identifies the node as an interrupt controller
18- #interrupt-cells : Use the same format as specified by GIC in 19- #interrupt-cells : Use the same format as specified by GIC in
19 Documentation/devicetree/bindings/arm/gic.txt 20 Documentation/devicetree/bindings/arm/gic.txt
diff --git a/Documentation/devicetree/bindings/regulator/tps65217.txt b/Documentation/devicetree/bindings/regulator/tps65217.txt
index 4f05d208c95c..d18109657da6 100644
--- a/Documentation/devicetree/bindings/regulator/tps65217.txt
+++ b/Documentation/devicetree/bindings/regulator/tps65217.txt
@@ -26,7 +26,11 @@ Example:
26 ti,pmic-shutdown-controller; 26 ti,pmic-shutdown-controller;
27 27
28 regulators { 28 regulators {
29 #address-cells = <1>;
30 #size-cells = <0>;
31
29 dcdc1_reg: dcdc1 { 32 dcdc1_reg: dcdc1 {
33 reg = <0>;
30 regulator-min-microvolt = <900000>; 34 regulator-min-microvolt = <900000>;
31 regulator-max-microvolt = <1800000>; 35 regulator-max-microvolt = <1800000>;
32 regulator-boot-on; 36 regulator-boot-on;
@@ -34,6 +38,7 @@ Example:
34 }; 38 };
35 39
36 dcdc2_reg: dcdc2 { 40 dcdc2_reg: dcdc2 {
41 reg = <1>;
37 regulator-min-microvolt = <900000>; 42 regulator-min-microvolt = <900000>;
38 regulator-max-microvolt = <3300000>; 43 regulator-max-microvolt = <3300000>;
39 regulator-boot-on; 44 regulator-boot-on;
@@ -41,6 +46,7 @@ Example:
41 }; 46 };
42 47
43 dcdc3_reg: dcc3 { 48 dcdc3_reg: dcc3 {
49 reg = <2>;
44 regulator-min-microvolt = <900000>; 50 regulator-min-microvolt = <900000>;
45 regulator-max-microvolt = <1500000>; 51 regulator-max-microvolt = <1500000>;
46 regulator-boot-on; 52 regulator-boot-on;
@@ -48,6 +54,7 @@ Example:
48 }; 54 };
49 55
50 ldo1_reg: ldo1 { 56 ldo1_reg: ldo1 {
57 reg = <3>;
51 regulator-min-microvolt = <1000000>; 58 regulator-min-microvolt = <1000000>;
52 regulator-max-microvolt = <3300000>; 59 regulator-max-microvolt = <3300000>;
53 regulator-boot-on; 60 regulator-boot-on;
@@ -55,6 +62,7 @@ Example:
55 }; 62 };
56 63
57 ldo2_reg: ldo2 { 64 ldo2_reg: ldo2 {
65 reg = <4>;
58 regulator-min-microvolt = <900000>; 66 regulator-min-microvolt = <900000>;
59 regulator-max-microvolt = <3300000>; 67 regulator-max-microvolt = <3300000>;
60 regulator-boot-on; 68 regulator-boot-on;
@@ -62,6 +70,7 @@ Example:
62 }; 70 };
63 71
64 ldo3_reg: ldo3 { 72 ldo3_reg: ldo3 {
73 reg = <5>;
65 regulator-min-microvolt = <1800000>; 74 regulator-min-microvolt = <1800000>;
66 regulator-max-microvolt = <3300000>; 75 regulator-max-microvolt = <3300000>;
67 regulator-boot-on; 76 regulator-boot-on;
@@ -69,6 +78,7 @@ Example:
69 }; 78 };
70 79
71 ldo4_reg: ldo4 { 80 ldo4_reg: ldo4 {
81 reg = <6>;
72 regulator-min-microvolt = <1800000>; 82 regulator-min-microvolt = <1800000>;
73 regulator-max-microvolt = <3300000>; 83 regulator-max-microvolt = <3300000>;
74 regulator-boot-on; 84 regulator-boot-on;
diff --git a/Documentation/devicetree/bindings/serial/mtk-uart.txt b/Documentation/devicetree/bindings/serial/mtk-uart.txt
index 2d47add34765..a833a016f656 100644
--- a/Documentation/devicetree/bindings/serial/mtk-uart.txt
+++ b/Documentation/devicetree/bindings/serial/mtk-uart.txt
@@ -2,15 +2,15 @@
2 2
3Required properties: 3Required properties:
4- compatible should contain: 4- compatible should contain:
5 * "mediatek,mt8135-uart" for MT8135 compatible UARTS 5 * "mediatek,mt2701-uart" for MT2701 compatible UARTS
6 * "mediatek,mt6580-uart" for MT6580 compatible UARTS
7 * "mediatek,mt6582-uart" for MT6582 compatible UARTS
8 * "mediatek,mt6589-uart" for MT6589 compatible UARTS
9 * "mediatek,mt6795-uart" for MT6795 compatible UARTS
6 * "mediatek,mt8127-uart" for MT8127 compatible UARTS 10 * "mediatek,mt8127-uart" for MT8127 compatible UARTS
11 * "mediatek,mt8135-uart" for MT8135 compatible UARTS
7 * "mediatek,mt8173-uart" for MT8173 compatible UARTS 12 * "mediatek,mt8173-uart" for MT8173 compatible UARTS
8 * "mediatek,mt6795-uart" for MT6795 compatible UARTS 13 * "mediatek,mt6577-uart" for MT6577 and all of the above
9 * "mediatek,mt6589-uart" for MT6589 compatible UARTS
10 * "mediatek,mt6582-uart" for MT6582 compatible UARTS
11 * "mediatek,mt6580-uart" for MT6580 compatible UARTS
12 * "mediatek,mt6577-uart" for all compatible UARTS (MT8173, MT6795,
13 MT6589, MT6582, MT6580, MT6577)
14 14
15- reg: The base address of the UART register bank. 15- reg: The base address of the UART register bank.
16 16
diff --git a/Documentation/devicetree/bindings/soc/dove/pmu.txt b/Documentation/devicetree/bindings/soc/dove/pmu.txt
new file mode 100644
index 000000000000..edd40b796b74
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/dove/pmu.txt
@@ -0,0 +1,56 @@
1Device Tree bindings for Marvell PMU
2
3Required properties:
4 - compatible: value should be "marvell,dove-pmu".
5 May also include "simple-bus" if there are child devices, in which
6 case the ranges node is required.
7 - reg: two base addresses and sizes of the PM controller and PMU.
8 - interrupts: single interrupt number for the PMU interrupt
9 - interrupt-controller: must be specified as the PMU itself is an
10 interrupt controller.
11 - #interrupt-cells: must be 1.
12 - #reset-cells: must be 1.
13 - domains: sub-node containing domain descriptions
14
15Optional properties:
16 - ranges: defines the address mapping for child devices, as per the
17 standard property of this name. Required when compatible includes
18 "simple-bus".
19
20Power domain descriptions are listed as child nodes of the "domains"
21sub-node. Each domain has the following properties:
22
23Required properties:
24 - #power-domain-cells: must be 0.
25
26Optional properties:
27 - marvell,pmu_pwr_mask: specifies the mask value for PMU power register
28 - marvell,pmu_iso_mask: specifies the mask value for PMU isolation register
29 - resets: points to the reset manager (PMU node) and reset index.
30
31Example:
32
33 pmu: power-management@d0000 {
34 compatible = "marvell,dove-pmu";
35 reg = <0xd0000 0x8000>, <0xd8000 0x8000>;
36 interrupts = <33>;
37 interrupt-controller;
38 #interrupt-cells = <1>;
39 #reset-cells = <1>;
40
41 domains {
42 vpu_domain: vpu-domain {
43 #power-domain-cells = <0>;
44 marvell,pmu_pwr_mask = <0x00000008>;
45 marvell,pmu_iso_mask = <0x00000001>;
46 resets = <&pmu 16>;
47 };
48
49 gpu_domain: gpu-domain {
50 #power-domain-cells = <0>;
51 marvell,pmu_pwr_mask = <0x00000004>;
52 marvell,pmu_iso_mask = <0x00000002>;
53 resets = <&pmu 18>;
54 };
55 };
56 };
diff --git a/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt b/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
index a6c8afc8385a..e8f15e34027f 100644
--- a/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
+++ b/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
@@ -21,6 +21,18 @@ Required properties:
21 These are the clocks which hardware needs to be enabled 21 These are the clocks which hardware needs to be enabled
22 before enabling certain power domains. 22 before enabling certain power domains.
23 23
24Optional properties:
25- vdec-supply: Power supply for the vdec power domain
26- venc-supply: Power supply for the venc power domain
27- isp-supply: Power supply for the isp power domain
28- mm-supply: Power supply for the mm power domain
29- venc_lt-supply: Power supply for the venc_lt power domain
30- audio-supply: Power supply for the audio power domain
31- usb-supply: Power supply for the usb power domain
32- mfg_async-supply: Power supply for the mfg_async power domain
33- mfg_2d-supply: Power supply for the mfg_2d power domain
34- mfg-supply: Power supply for the mfg power domain
35
24Example: 36Example:
25 37
26 scpsys: scpsys@10006000 { 38 scpsys: scpsys@10006000 {
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt
new file mode 100644
index 000000000000..5cc82b8353d8
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt
@@ -0,0 +1,104 @@
1Qualcomm Shared Memory Point 2 Point binding
2
3The Shared Memory Point to Point (SMP2P) protocol facilitates communication of
4a single 32-bit value between two processors. Each value has a single writer
5(the local side) and a single reader (the remote side). Values are uniquely
6identified in the system by the directed edge (local processor ID to remote
7processor ID) and a string identifier.
8
9- compatible:
10 Usage: required
11 Value type: <string>
12 Definition: must be one of:
13 "qcom,smp2p"
14
15- interrupts:
16 Usage: required
17 Value type: <prop-encoded-array>
18 Definition: one entry specifying the smp2p notification interrupt
19
20- qcom,ipc:
21 Usage: required
22 Value type: <prop-encoded-array>
23 Definition: three entries specifying the outgoing ipc bit used for
24 signaling the remote end of the smp2p edge:
25 - phandle to a syscon node representing the apcs registers
26 - u32 representing offset to the register within the syscon
27 - u32 representing the ipc bit within the register
28
29- qcom,smem:
30 Usage: required
31 Value type: <u32 array>
32 Definition: two identifiers of the inbound and outbound smem items used
33 for this edge
34
35- qcom,local-pid:
36 Usage: required
37 Value type: <u32>
38 Definition: specifies the identfier of the local endpoint of this edge
39
40- qcom,remote-pid:
41 Usage: required
42 Value type: <u32>
43 Definition: specifies the identfier of the remote endpoint of this edge
44
45= SUBNODES
46Each SMP2P pair contain a set of inbound and outbound entries, these are
47described in subnodes of the smp2p device node. The node names are not
48important.
49
50- qcom,entry-name:
51 Usage: required
52 Value type: <string>
53 Definition: specifies the name of this entry, for inbound entries this
54 will be used to match against the remotely allocated entry
55 and for outbound entries this name is used for allocating
56 entries
57
58- interrupt-controller:
59 Usage: required for incoming entries
60 Value type: <empty>
61 Definition: marks the entry as inbound; the node should be specified
62 as a two cell interrupt-controller as defined in
63 "../interrupt-controller/interrupts.txt"
64 If not specified this node will denote the outgoing entry
65
66- #interrupt-cells:
67 Usage: required for incoming entries
68 Value type: <u32>
69 Definition: must be 2 - denoting the bit in the entry and IRQ flags
70
71- #qcom,state-cells:
72 Usage: required for outgoing entries
73 Value type: <u32>
74 Definition: must be 1 - denoting the bit in the entry
75
76= EXAMPLE
77The following example shows the SMP2P setup with the wireless processor,
78defined from the 8974 apps processor's point-of-view. It encompasses one
79inbound and one outbound entry:
80
81wcnss-smp2p {
82 compatible = "qcom,smp2p";
83 qcom,smem = <431>, <451>;
84
85 interrupts = <0 143 1>;
86
87 qcom,ipc = <&apcs 8 18>;
88
89 qcom,local-pid = <0>;
90 qcom,remote-pid = <4>;
91
92 wcnss_smp2p_out: master-kernel {
93 qcom,entry-name = "master-kernel";
94
95 #qcom,state-cells = <1>;
96 };
97
98 wcnss_smp2p_in: slave-kernel {
99 qcom,entry-name = "slave-kernel";
100
101 interrupt-controller;
102 #interrupt-cells = <2>;
103 };
104};
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smsm.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,smsm.txt
new file mode 100644
index 000000000000..a6634c70850d
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smsm.txt
@@ -0,0 +1,104 @@
1Qualcomm Shared Memory State Machine
2
3The Shared Memory State Machine facilitates broadcasting of single bit state
4information between the processors in a Qualcomm SoC. Each processor is
5assigned 32 bits of state that can be modified. A processor can through a
6matrix of bitmaps signal subscription of notifications upon changes to a
7certain bit owned by a certain remote processor.
8
9- compatible:
10 Usage: required
11 Value type: <string>
12 Definition: must be one of:
13 "qcom,smsm"
14
15- qcom,ipc-N:
16 Usage: required
17 Value type: <prop-encoded-array>
18 Definition: three entries specifying the outgoing ipc bit used for
19 signaling the N:th remote processor
20 - phandle to a syscon node representing the apcs registers
21 - u32 representing offset to the register within the syscon
22 - u32 representing the ipc bit within the register
23
24- qcom,local-host:
25 Usage: optional
26 Value type: <u32>
27 Definition: identifier of the local processor in the list of hosts, or
28 in other words specifier of the column in the subscription
29 matrix representing the local processor
30 defaults to host 0
31
32- #address-cells:
33 Usage: required
34 Value type: <u32>
35 Definition: must be 1
36
37- #size-cells:
38 Usage: required
39 Value type: <u32>
40 Definition: must be 0
41
42= SUBNODES
43Each processor's state bits are described by a subnode of the smsm device node.
44Nodes can either be flagged as an interrupt-controller to denote a remote
45processor's state bits or the local processors bits. The node names are not
46important.
47
48- reg:
49 Usage: required
50 Value type: <u32>
51 Definition: specifies the offset, in words, of the first bit for this
52 entry
53
54- #qcom,state-cells:
55 Usage: required for local entry
56 Value type: <u32>
57 Definition: must be 1 - denotes bit number
58
59- interrupt-controller:
60 Usage: required for remote entries
61 Value type: <empty>
62 Definition: marks the entry as a interrupt-controller and the state bits
63 to belong to a remote processor
64
65- #interrupt-cells:
66 Usage: required for remote entries
67 Value type: <u32>
68 Definition: must be 2 - denotes bit number and IRQ flags
69
70- interrupts:
71 Usage: required for remote entries
72 Value type: <prop-encoded-array>
73 Definition: one entry specifying remote IRQ used by the remote processor
74 to signal changes of its state bits
75
76
77= EXAMPLE
78The following example shows the SMEM setup for controlling properties of the
79wireless processor, defined from the 8974 apps processor's point-of-view. It
80encompasses one outbound entry and the outgoing interrupt for the wireless
81processor.
82
83smsm {
84 compatible = "qcom,smsm";
85
86 #address-cells = <1>;
87 #size-cells = <0>;
88
89 qcom,ipc-3 = <&apcs 8 19>;
90
91 apps_smsm: apps@0 {
92 reg = <0>;
93
94 #qcom,state-cells = <1>;
95 };
96
97 wcnss_smsm: wcnss@7 {
98 reg = <7>;
99 interrupts = <0 144 1>;
100
101 interrupt-controller;
102 #interrupt-cells = <2>;
103 };
104};
diff --git a/Documentation/devicetree/bindings/spi/ti_qspi.txt b/Documentation/devicetree/bindings/spi/ti_qspi.txt
index 601a360531a5..cc8304aa64ac 100644
--- a/Documentation/devicetree/bindings/spi/ti_qspi.txt
+++ b/Documentation/devicetree/bindings/spi/ti_qspi.txt
@@ -15,14 +15,32 @@ Recommended properties:
15- spi-max-frequency: Definition as per 15- spi-max-frequency: Definition as per
16 Documentation/devicetree/bindings/spi/spi-bus.txt 16 Documentation/devicetree/bindings/spi/spi-bus.txt
17 17
18Optional properties:
19- syscon-chipselects: Handle to system control region contains QSPI
20 chipselect register and offset of that register.
21
18Example: 22Example:
19 23
24For am4372:
20qspi: qspi@4b300000 { 25qspi: qspi@4b300000 {
21 compatible = "ti,dra7xxx-qspi"; 26 compatible = "ti,am4372-qspi";
22 reg = <0x47900000 0x100>, <0x30000000 0x3ffffff>; 27 reg = <0x47900000 0x100>, <0x30000000 0x4000000>;
23 reg-names = "qspi_base", "qspi_mmap"; 28 reg-names = "qspi_base", "qspi_mmap";
24 #address-cells = <1>; 29 #address-cells = <1>;
25 #size-cells = <0>; 30 #size-cells = <0>;
26 spi-max-frequency = <25000000>; 31 spi-max-frequency = <25000000>;
27 ti,hwmods = "qspi"; 32 ti,hwmods = "qspi";
28}; 33};
34
35For dra7xx:
36qspi: qspi@4b300000 {
37 compatible = "ti,dra7xxx-qspi";
38 reg = <0x4b300000 0x100>,
39 <0x5c000000 0x4000000>,
40 reg-names = "qspi_base", "qspi_mmap";
41 syscon-chipselects = <&scm_conf 0x558>;
42 #address-cells = <1>;
43 #size-cells = <0>;
44 spi-max-frequency = <48000000>;
45 ti,hwmods = "qspi";
46};
diff --git a/Documentation/devicetree/bindings/timer/mediatek,mtk-timer.txt b/Documentation/devicetree/bindings/timer/mediatek,mtk-timer.txt
index 64083bc5633c..8ff54eb464dc 100644
--- a/Documentation/devicetree/bindings/timer/mediatek,mtk-timer.txt
+++ b/Documentation/devicetree/bindings/timer/mediatek,mtk-timer.txt
@@ -3,6 +3,7 @@ Mediatek MT6577, MT6572 and MT6589 Timers
3 3
4Required properties: 4Required properties:
5- compatible should contain: 5- compatible should contain:
6 * "mediatek,mt2701-timer" for MT2701 compatible timers
6 * "mediatek,mt6580-timer" for MT6580 compatible timers 7 * "mediatek,mt6580-timer" for MT6580 compatible timers
7 * "mediatek,mt6589-timer" for MT6589 compatible timers 8 * "mediatek,mt6589-timer" for MT6589 compatible timers
8 * "mediatek,mt8127-timer" for MT8127 compatible timers 9 * "mediatek,mt8127-timer" for MT8127 compatible timers
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 084439d35747..72e2c5a2b327 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -124,6 +124,7 @@ jedec JEDEC Solid State Technology Association
124karo Ka-Ro electronics GmbH 124karo Ka-Ro electronics GmbH
125keymile Keymile GmbH 125keymile Keymile GmbH
126kinetic Kinetic Technologies 126kinetic Kinetic Technologies
127kosagi Sutajio Ko-Usagi PTE Ltd.
127kyo Kyocera Corporation 128kyo Kyocera Corporation
128lacie LaCie 129lacie LaCie
129lantiq Lantiq Semiconductor 130lantiq Lantiq Semiconductor
@@ -222,11 +223,13 @@ sony Sony Corporation
222spansion Spansion Inc. 223spansion Spansion Inc.
223sprd Spreadtrum Communications Inc. 224sprd Spreadtrum Communications Inc.
224st STMicroelectronics 225st STMicroelectronics
226startek Startek
225ste ST-Ericsson 227ste ST-Ericsson
226stericsson ST-Ericsson 228stericsson ST-Ericsson
227synology Synology, Inc. 229synology Synology, Inc.
228tbs TBS Technologies 230tbs TBS Technologies
229tcl Toby Churchill Ltd. 231tcl Toby Churchill Ltd.
232technologic Technologic Systems
230thine THine Electronics, Inc. 233thine THine Electronics, Inc.
231ti Texas Instruments 234ti Texas Instruments
232tlm Trusted Logic Mobility 235tlm Trusted Logic Mobility
diff --git a/Documentation/devicetree/bindings/watchdog/meson6-wdt.txt b/Documentation/devicetree/bindings/watchdog/meson-wdt.txt
index 9200fc2d508c..ae70185d96e6 100644
--- a/Documentation/devicetree/bindings/watchdog/meson6-wdt.txt
+++ b/Documentation/devicetree/bindings/watchdog/meson-wdt.txt
@@ -2,7 +2,7 @@ Meson SoCs Watchdog timer
2 2
3Required properties: 3Required properties:
4 4
5- compatible : should be "amlogic,meson6-wdt" 5- compatible : should be "amlogic,meson6-wdt" or "amlogic,meson8b-wdt"
6- reg : Specifies base physical address and size of the registers. 6- reg : Specifies base physical address and size of the registers.
7 7
8Example: 8Example:
diff --git a/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt b/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
index af9eb5b8a253..6a00939a059a 100644
--- a/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
+++ b/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
@@ -2,7 +2,11 @@ Mediatek SoCs Watchdog timer
2 2
3Required properties: 3Required properties:
4 4
5- compatible : should be "mediatek,mt6589-wdt" 5- compatible should contain:
6 * "mediatek,mt2701-wdt" for MT2701 compatible watchdog timers
7 * "mediatek,mt6589-wdt" for all compatible watchdog timers (MT2701,
8 MT6589)
9
6- reg : Specifies base physical address and size of the registers. 10- reg : Specifies base physical address and size of the registers.
7 11
8Example: 12Example:
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 30bbc3746130..a4a6d70e8b26 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -48,8 +48,10 @@ dtb-$(CONFIG_SOC_SAM_V7) += \
48 sama5d34ek.dtb \ 48 sama5d34ek.dtb \
49 sama5d35ek.dtb \ 49 sama5d35ek.dtb \
50 sama5d36ek.dtb \ 50 sama5d36ek.dtb \
51 at91-sama5d4_ma5d4evk.dtb \
51 at91-sama5d4_xplained.dtb \ 52 at91-sama5d4_xplained.dtb \
52 at91-sama5d4ek.dtb 53 at91-sama5d4ek.dtb \
54 at91-vinco.dtb
53dtb-$(CONFIG_ARCH_ATLAS6) += \ 55dtb-$(CONFIG_ARCH_ATLAS6) += \
54 atlas6-evb.dtb 56 atlas6-evb.dtb
55dtb-$(CONFIG_ARCH_ATLAS7) += \ 57dtb-$(CONFIG_ARCH_ATLAS7) += \
@@ -60,7 +62,8 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
60 bcm2835-rpi-b.dtb \ 62 bcm2835-rpi-b.dtb \
61 bcm2835-rpi-b-rev2.dtb \ 63 bcm2835-rpi-b-rev2.dtb \
62 bcm2835-rpi-b-plus.dtb \ 64 bcm2835-rpi-b-plus.dtb \
63 bcm2835-rpi-a-plus.dtb 65 bcm2835-rpi-a-plus.dtb \
66 bcm2836-rpi-2-b.dtb
64dtb-$(CONFIG_ARCH_BCM_5301X) += \ 67dtb-$(CONFIG_ARCH_BCM_5301X) += \
65 bcm4708-asus-rt-ac56u.dtb \ 68 bcm4708-asus-rt-ac56u.dtb \
66 bcm4708-asus-rt-ac68u.dtb \ 69 bcm4708-asus-rt-ac68u.dtb \
@@ -75,7 +78,10 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
75 bcm4709-asus-rt-ac87u.dtb \ 78 bcm4709-asus-rt-ac87u.dtb \
76 bcm4709-buffalo-wxr-1900dhp.dtb \ 79 bcm4709-buffalo-wxr-1900dhp.dtb \
77 bcm4709-netgear-r7000.dtb \ 80 bcm4709-netgear-r7000.dtb \
78 bcm4709-netgear-r8000.dtb 81 bcm4709-netgear-r8000.dtb \
82 bcm94708.dtb \
83 bcm94709.dtb \
84 bcm953012k.dtb
79dtb-$(CONFIG_ARCH_BCM_63XX) += \ 85dtb-$(CONFIG_ARCH_BCM_63XX) += \
80 bcm963138dvt.dtb 86 bcm963138dvt.dtb
81dtb-$(CONFIG_ARCH_BCM_CYGNUS) += \ 87dtb-$(CONFIG_ARCH_BCM_CYGNUS) += \
@@ -200,12 +206,14 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
200 kirkwood-ns2mini.dtb \ 206 kirkwood-ns2mini.dtb \
201 kirkwood-nsa310.dtb \ 207 kirkwood-nsa310.dtb \
202 kirkwood-nsa310a.dtb \ 208 kirkwood-nsa310a.dtb \
209 kirkwood-nsa325.dtb \
203 kirkwood-openblocks_a6.dtb \ 210 kirkwood-openblocks_a6.dtb \
204 kirkwood-openblocks_a7.dtb \ 211 kirkwood-openblocks_a7.dtb \
205 kirkwood-openrd-base.dtb \ 212 kirkwood-openrd-base.dtb \
206 kirkwood-openrd-client.dtb \ 213 kirkwood-openrd-client.dtb \
207 kirkwood-openrd-ultimate.dtb \ 214 kirkwood-openrd-ultimate.dtb \
208 kirkwood-pogo_e02.dtb \ 215 kirkwood-pogo_e02.dtb \
216 kirkwood-pogoplug-series-4.dtb \
209 kirkwood-rd88f6192.dtb \ 217 kirkwood-rd88f6192.dtb \
210 kirkwood-rd88f6281-z0.dtb \ 218 kirkwood-rd88f6281-z0.dtb \
211 kirkwood-rd88f6281-a.dtb \ 219 kirkwood-rd88f6281-a.dtb \
@@ -268,7 +276,8 @@ dtb-$(CONFIG_SOC_IMX51) += \
268 imx51-apf51dev.dtb \ 276 imx51-apf51dev.dtb \
269 imx51-babbage.dtb \ 277 imx51-babbage.dtb \
270 imx51-digi-connectcore-jsk.dtb \ 278 imx51-digi-connectcore-jsk.dtb \
271 imx51-eukrea-mbimxsd51-baseboard.dtb 279 imx51-eukrea-mbimxsd51-baseboard.dtb \
280 imx51-ts4800.dtb
272dtb-$(CONFIG_SOC_IMX53) += \ 281dtb-$(CONFIG_SOC_IMX53) += \
273 imx53-ard.dtb \ 282 imx53-ard.dtb \
274 imx53-m53evk.dtb \ 283 imx53-m53evk.dtb \
@@ -325,6 +334,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
325 imx6q-hummingboard.dtb \ 334 imx6q-hummingboard.dtb \
326 imx6q-nitrogen6x.dtb \ 335 imx6q-nitrogen6x.dtb \
327 imx6q-nitrogen6_max.dtb \ 336 imx6q-nitrogen6_max.dtb \
337 imx6q-novena.dtb \
328 imx6q-phytec-pbab01.dtb \ 338 imx6q-phytec-pbab01.dtb \
329 imx6q-rex-pro.dtb \ 339 imx6q-rex-pro.dtb \
330 imx6q-sabreauto.dtb \ 340 imx6q-sabreauto.dtb \
@@ -350,6 +360,8 @@ dtb-$(CONFIG_SOC_IMX6SX) += \
350dtb-$(CONFIG_SOC_IMX6UL) += \ 360dtb-$(CONFIG_SOC_IMX6UL) += \
351 imx6ul-14x14-evk.dtb 361 imx6ul-14x14-evk.dtb
352dtb-$(CONFIG_SOC_IMX7D) += \ 362dtb-$(CONFIG_SOC_IMX7D) += \
363 imx7d-cl-som-imx7.dtb \
364 imx7d-sbc-imx7.dtb \
353 imx7d-sdb.dtb 365 imx7d-sdb.dtb
354dtb-$(CONFIG_SOC_LS1021A) += \ 366dtb-$(CONFIG_SOC_LS1021A) += \
355 ls1021a-qds.dtb \ 367 ls1021a-qds.dtb \
@@ -359,6 +371,7 @@ dtb-$(CONFIG_SOC_VF610) += \
359 vf610-colibri-eval-v3.dtb \ 371 vf610-colibri-eval-v3.dtb \
360 vf610m4-colibri.dtb \ 372 vf610m4-colibri.dtb \
361 vf610-cosmic.dtb \ 373 vf610-cosmic.dtb \
374 vf610m4-cosmic.dtb \
362 vf610-twr.dtb 375 vf610-twr.dtb
363dtb-$(CONFIG_ARCH_MXS) += \ 376dtb-$(CONFIG_ARCH_MXS) += \
364 imx23-evk.dtb \ 377 imx23-evk.dtb \
@@ -452,20 +465,24 @@ dtb-$(CONFIG_ARCH_OMAP3) += \
452dtb-$(CONFIG_SOC_TI81XX) += \ 465dtb-$(CONFIG_SOC_TI81XX) += \
453 dm8148-evm.dtb \ 466 dm8148-evm.dtb \
454 dm8148-t410.dtb \ 467 dm8148-t410.dtb \
455 dm8168-evm.dtb 468 dm8168-evm.dtb \
469 dra62x-j5eco-evm.dtb
456dtb-$(CONFIG_SOC_AM33XX) += \ 470dtb-$(CONFIG_SOC_AM33XX) += \
457 am335x-baltos-ir5221.dtb \ 471 am335x-baltos-ir5221.dtb \
458 am335x-base0033.dtb \ 472 am335x-base0033.dtb \
459 am335x-bone.dtb \ 473 am335x-bone.dtb \
460 am335x-boneblack.dtb \ 474 am335x-boneblack.dtb \
461 am335x-bonegreen.dtb \ 475 am335x-bonegreen.dtb \
462 am335x-sl50.dtb \ 476 am335x-chiliboard.dtb \
477 am335x-cm-t335.dtb \
463 am335x-evm.dtb \ 478 am335x-evm.dtb \
464 am335x-evmsk.dtb \ 479 am335x-evmsk.dtb \
480 am335x-lxm.dtb \
465 am335x-nano.dtb \ 481 am335x-nano.dtb \
466 am335x-pepper.dtb \ 482 am335x-pepper.dtb \
467 am335x-lxm.dtb \ 483 am335x-shc.dtb \
468 am335x-chiliboard.dtb \ 484 am335x-sbc-t335.dtb \
485 am335x-sl50.dtb \
469 am335x-wega-rdk.dtb 486 am335x-wega-rdk.dtb
470dtb-$(CONFIG_ARCH_OMAP4) += \ 487dtb-$(CONFIG_ARCH_OMAP4) += \
471 omap4-duovero-parlor.dtb \ 488 omap4-duovero-parlor.dtb \
@@ -478,17 +495,21 @@ dtb-$(CONFIG_ARCH_OMAP4) += \
478 omap4-var-stk-om44.dtb 495 omap4-var-stk-om44.dtb
479dtb-$(CONFIG_SOC_AM43XX) += \ 496dtb-$(CONFIG_SOC_AM43XX) += \
480 am43x-epos-evm.dtb \ 497 am43x-epos-evm.dtb \
481 am437x-sk-evm.dtb \ 498 am437x-cm-t43.dtb \
499 am437x-gp-evm.dtb \
482 am437x-idk-evm.dtb \ 500 am437x-idk-evm.dtb \
483 am437x-gp-evm.dtb 501 am437x-sbc-t43.dtb \
502 am437x-sk-evm.dtb
484dtb-$(CONFIG_SOC_OMAP5) += \ 503dtb-$(CONFIG_SOC_OMAP5) += \
485 omap5-cm-t54.dtb \ 504 omap5-cm-t54.dtb \
486 omap5-igep0050.dtb \ 505 omap5-igep0050.dtb \
487 omap5-sbc-t54.dtb \ 506 omap5-sbc-t54.dtb \
488 omap5-uevm.dtb 507 omap5-uevm.dtb
489dtb-$(CONFIG_SOC_DRA7XX) += \ 508dtb-$(CONFIG_SOC_DRA7XX) += \
490 dra7-evm.dtb \
491 am57xx-beagle-x15.dtb \ 509 am57xx-beagle-x15.dtb \
510 am57xx-cl-som-am57x.dtb \
511 am57xx-sbc-am57x.dtb \
512 dra7-evm.dtb \
492 dra72-evm.dtb 513 dra72-evm.dtb
493dtb-$(CONFIG_ARCH_ORION5X) += \ 514dtb-$(CONFIG_ARCH_ORION5X) += \
494 orion5x-lacie-d2-network.dtb \ 515 orion5x-lacie-d2-network.dtb \
@@ -502,6 +523,7 @@ dtb-$(CONFIG_ARCH_PRIMA2) += \
502dtb-$(CONFIG_ARCH_QCOM) += \ 523dtb-$(CONFIG_ARCH_QCOM) += \
503 qcom-apq8064-cm-qs600.dtb \ 524 qcom-apq8064-cm-qs600.dtb \
504 qcom-apq8064-ifc6410.dtb \ 525 qcom-apq8064-ifc6410.dtb \
526 qcom-apq8064-sony-xperia-yuga.dtb \
505 qcom-apq8074-dragonboard.dtb \ 527 qcom-apq8074-dragonboard.dtb \
506 qcom-apq8084-ifc6540.dtb \ 528 qcom-apq8084-ifc6540.dtb \
507 qcom-apq8084-mtp.dtb \ 529 qcom-apq8084-mtp.dtb \
@@ -510,12 +532,16 @@ dtb-$(CONFIG_ARCH_QCOM) += \
510 qcom-msm8960-cdp.dtb \ 532 qcom-msm8960-cdp.dtb \
511 qcom-msm8974-sony-xperia-honami.dtb 533 qcom-msm8974-sony-xperia-honami.dtb
512dtb-$(CONFIG_ARCH_REALVIEW) += \ 534dtb-$(CONFIG_ARCH_REALVIEW) += \
513 arm-realview-pb1176.dtb 535 arm-realview-pb1176.dtb \
536 arm-realview-pb11mp.dtb
514dtb-$(CONFIG_ARCH_ROCKCHIP) += \ 537dtb-$(CONFIG_ARCH_ROCKCHIP) += \
538 rk3036-evb.dtb \
539 rk3036-kylin.dtb \
515 rk3066a-bqcurie2.dtb \ 540 rk3066a-bqcurie2.dtb \
516 rk3066a-marsboard.dtb \ 541 rk3066a-marsboard.dtb \
517 rk3066a-rayeager.dtb \ 542 rk3066a-rayeager.dtb \
518 rk3188-radxarock.dtb \ 543 rk3188-radxarock.dtb \
544 rk3228-evb.dtb \
519 rk3288-evb-act8846.dtb \ 545 rk3288-evb-act8846.dtb \
520 rk3288-evb-rk808.dtb \ 546 rk3288-evb-rk808.dtb \
521 rk3288-firefly-beta.dtb \ 547 rk3288-firefly-beta.dtb \
@@ -523,8 +549,10 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \
523 rk3288-popmetal.dtb \ 549 rk3288-popmetal.dtb \
524 rk3288-r89.dtb \ 550 rk3288-r89.dtb \
525 rk3288-rock2-square.dtb \ 551 rk3288-rock2-square.dtb \
552 rk3288-veyron-brain.dtb \
526 rk3288-veyron-jaq.dtb \ 553 rk3288-veyron-jaq.dtb \
527 rk3288-veyron-jerry.dtb \ 554 rk3288-veyron-jerry.dtb \
555 rk3288-veyron-mickey.dtb \
528 rk3288-veyron-minnie.dtb \ 556 rk3288-veyron-minnie.dtb \
529 rk3288-veyron-pinky.dtb \ 557 rk3288-veyron-pinky.dtb \
530 rk3288-veyron-speedy.dtb 558 rk3288-veyron-speedy.dtb
@@ -547,7 +575,6 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \
547 r8a7778-bockw.dtb \ 575 r8a7778-bockw.dtb \
548 r8a7779-marzen.dtb \ 576 r8a7779-marzen.dtb \
549 r8a7790-lager.dtb \ 577 r8a7790-lager.dtb \
550 r8a7791-henninger.dtb \
551 r8a7791-koelsch.dtb \ 578 r8a7791-koelsch.dtb \
552 r8a7791-porter.dtb \ 579 r8a7791-porter.dtb \
553 r8a7793-gose.dtb \ 580 r8a7793-gose.dtb \
@@ -557,6 +584,7 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \
557dtb-$(CONFIG_ARCH_SOCFPGA) += \ 584dtb-$(CONFIG_ARCH_SOCFPGA) += \
558 socfpga_arria5_socdk.dtb \ 585 socfpga_arria5_socdk.dtb \
559 socfpga_arria10_socdk_sdmmc.dtb \ 586 socfpga_arria10_socdk_sdmmc.dtb \
587 socfpga_cyclone5_mcvevk.dtb \
560 socfpga_cyclone5_socdk.dtb \ 588 socfpga_cyclone5_socdk.dtb \
561 socfpga_cyclone5_de0_sockit.dtb \ 589 socfpga_cyclone5_de0_sockit.dtb \
562 socfpga_cyclone5_sockit.dtb \ 590 socfpga_cyclone5_sockit.dtb \
@@ -612,6 +640,7 @@ dtb-$(CONFIG_MACH_SUN5I) += \
612 sun5i-a10s-olinuxino-micro.dtb \ 640 sun5i-a10s-olinuxino-micro.dtb \
613 sun5i-a10s-r7-tv-dongle.dtb \ 641 sun5i-a10s-r7-tv-dongle.dtb \
614 sun5i-a10s-wobo-i5.dtb \ 642 sun5i-a10s-wobo-i5.dtb \
643 sun5i-a13-empire-electronix-d709.dtb \
615 sun5i-a13-hsg-h702.dtb \ 644 sun5i-a13-hsg-h702.dtb \
616 sun5i-a13-inet-98v-rev2.dtb \ 645 sun5i-a13-inet-98v-rev2.dtb \
617 sun5i-a13-olinuxino.dtb \ 646 sun5i-a13-olinuxino.dtb \
@@ -638,6 +667,7 @@ dtb-$(CONFIG_MACH_SUN7I) += \
638 sun7i-a20-cubietruck.dtb \ 667 sun7i-a20-cubietruck.dtb \
639 sun7i-a20-hummingbird.dtb \ 668 sun7i-a20-hummingbird.dtb \
640 sun7i-a20-i12-tvbox.dtb \ 669 sun7i-a20-i12-tvbox.dtb \
670 sun7i-a20-icnova-swac.dtb \
641 sun7i-a20-m3.dtb \ 671 sun7i-a20-m3.dtb \
642 sun7i-a20-mk808c.dtb \ 672 sun7i-a20-mk808c.dtb \
643 sun7i-a20-olimex-som-evb.dtb \ 673 sun7i-a20-olimex-som-evb.dtb \
@@ -660,10 +690,13 @@ dtb-$(CONFIG_MACH_SUN8I) += \
660 sun8i-a33-ga10h-v1.1.dtb \ 690 sun8i-a33-ga10h-v1.1.dtb \
661 sun8i-a33-ippo-q8h-v1.2.dtb \ 691 sun8i-a33-ippo-q8h-v1.2.dtb \
662 sun8i-a33-q8-tablet.dtb \ 692 sun8i-a33-q8-tablet.dtb \
663 sun8i-a33-sinlinx-sina33.dtb 693 sun8i-a33-sinlinx-sina33.dtb \
694 sun8i-h3-orangepi-plus.dtb
664dtb-$(CONFIG_MACH_SUN9I) += \ 695dtb-$(CONFIG_MACH_SUN9I) += \
665 sun9i-a80-optimus.dtb \ 696 sun9i-a80-optimus.dtb \
666 sun9i-a80-cubieboard4.dtb 697 sun9i-a80-cubieboard4.dtb
698dtb-$(CONFIG_ARCH_TANGO) += \
699 tango4-vantage-1172.dtb
667dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += \ 700dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += \
668 tegra20-harmony.dtb \ 701 tegra20-harmony.dtb \
669 tegra20-iris-512.dtb \ 702 tegra20-iris-512.dtb \
@@ -748,6 +781,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
748 armada-385-db-ap.dtb \ 781 armada-385-db-ap.dtb \
749 armada-385-linksys-caiman.dtb \ 782 armada-385-linksys-caiman.dtb \
750 armada-385-linksys-cobra.dtb \ 783 armada-385-linksys-cobra.dtb \
784 armada-388-clearfog.dtb \
751 armada-388-db.dtb \ 785 armada-388-db.dtb \
752 armada-388-gp.dtb \ 786 armada-388-gp.dtb \
753 armada-388-rd.dtb 787 armada-388-rd.dtb
@@ -771,6 +805,7 @@ dtb-$(CONFIG_MACH_DOVE) += \
771 dove-dove-db.dtb \ 805 dove-dove-db.dtb \
772 dove-sbc-a510.dtb 806 dove-sbc-a510.dtb
773dtb-$(CONFIG_ARCH_MEDIATEK) += \ 807dtb-$(CONFIG_ARCH_MEDIATEK) += \
808 mt2701-evb.dtb \
774 mt6580-evbp1.dtb \ 809 mt6580-evbp1.dtb \
775 mt6589-aquaris5.dtb \ 810 mt6589-aquaris5.dtb \
776 mt6592-evb.dtb \ 811 mt6592-evb.dtb \
diff --git a/arch/arm/boot/dts/am335x-baltos-ir5221.dts b/arch/arm/boot/dts/am335x-baltos-ir5221.dts
index 7d36601697da..ded1eb64ea52 100644
--- a/arch/arm/boot/dts/am335x-baltos-ir5221.dts
+++ b/arch/arm/boot/dts/am335x-baltos-ir5221.dts
@@ -56,175 +56,171 @@
56&am33xx_pinmux { 56&am33xx_pinmux {
57 mmc2_pins: pinmux_mmc2_pins { 57 mmc2_pins: pinmux_mmc2_pins {
58 pinctrl-single,pins = < 58 pinctrl-single,pins = <
59 0x020 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_ad8.mmc1_dat0_mux0 */ 59 AM33XX_IOPAD(0x820, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_ad8.mmc1_dat0_mux0 */
60 0x024 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_ad9.mmc1_dat1_mux0 */ 60 AM33XX_IOPAD(0x824, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_ad9.mmc1_dat1_mux0 */
61 0x028 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_ad10.mmc1_dat2_mux0 */ 61 AM33XX_IOPAD(0x828, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_ad10.mmc1_dat2_mux0 */
62 0x02c (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_ad11.mmc1_dat3_mux0 */ 62 AM33XX_IOPAD(0x82c, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_ad11.mmc1_dat3_mux0 */
63 0x080 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk_mux0 */ 63 AM33XX_IOPAD(0x880, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk_mux0 */
64 0x084 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd_mux0 */ 64 AM33XX_IOPAD(0x884, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd_mux0 */
65 0x1e4 (PIN_INPUT_PULLUP | MUX_MODE7) /* emu0.gpio3[7] */ 65 AM33XX_IOPAD(0x9e4, PIN_INPUT_PULLUP | MUX_MODE7) /* emu0.gpio3[7] */
66 >; 66 >;
67 }; 67 };
68 68
69 wl12xx_gpio: pinmux_wl12xx_gpio { 69 wl12xx_gpio: pinmux_wl12xx_gpio {
70 pinctrl-single,pins = < 70 pinctrl-single,pins = <
71 0x1e8 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* emu1.gpio3[8] */ 71 AM33XX_IOPAD(0x9e8, PIN_OUTPUT_PULLUP | MUX_MODE7) /* emu1.gpio3[8] */
72 >; 72 >;
73 }; 73 };
74 74
75 tps65910_pins: pinmux_tps65910_pins { 75 tps65910_pins: pinmux_tps65910_pins {
76 pinctrl-single,pins = < 76 pinctrl-single,pins = <
77 0x078 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_ben1.gpio1[28] */ 77 AM33XX_IOPAD(0x878, PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_ben1.gpio1[28] */
78 >; 78 >;
79 }; 79 };
80 80
81 tca6416_pins: pinmux_tca6416_pins { 81 tca6416_pins: pinmux_tca6416_pins {
82 pinctrl-single,pins = < 82 pinctrl-single,pins = <
83 0x1b4 (PIN_INPUT_PULLUP | MUX_MODE7) /* xdma_event_intr1.gpio0[20] tca6416 stuff */ 83 AM33XX_IOPAD(0x9b4, PIN_INPUT_PULLUP | MUX_MODE7) /* xdma_event_intr1.gpio0[20] tca6416 stuff */
84 >; 84 >;
85 }; 85 };
86 86
87 i2c1_pins: pinmux_i2c1_pins { 87 i2c1_pins: pinmux_i2c1_pins {
88 pinctrl-single,pins = < 88 pinctrl-single,pins = <
89 0x158 0x2a /* spi0_d1.i2c1_sda_mux3, INPUT | MODE2 */ 89 AM33XX_IOPAD(0x958, PIN_INPUT | MUX_MODE2) /* spi0_d1.i2c1_sda_mux3 */
90 0x15c 0x2a /* spi0_cs0.i2c1_scl_mux3, INPUT | MODE2 */ 90 AM33XX_IOPAD(0x95c, PIN_INPUT | MUX_MODE2) /* spi0_cs0.i2c1_scl_mux3 */
91 >; 91 >;
92 }; 92 };
93 93
94 dcan1_pins: pinmux_dcan1_pins { 94 dcan1_pins: pinmux_dcan1_pins {
95 pinctrl-single,pins = < 95 pinctrl-single,pins = <
96 0x168 0x0a /* uart0_ctsn.dcan1_tx_mux0, OUTPUT | MODE2 */ 96 AM33XX_IOPAD(0x968, PIN_OUTPUT | MUX_MODE2) /* uart0_ctsn.dcan1_tx_mux0 */
97 0x16c 0x2a /* uart0_rtsn.dcan1_rx_mux0, INPUT | MODE2 */ 97 AM33XX_IOPAD(0x96c, PIN_INPUT | MUX_MODE2) /* uart0_rtsn.dcan1_rx_mux0 */
98 >; 98 >;
99 }; 99 };
100 100
101 uart0_pins: pinmux_uart0_pins { 101 uart0_pins: pinmux_uart0_pins {
102 pinctrl-single,pins = < 102 pinctrl-single,pins = <
103 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ 103 AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
104 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ 104 AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
105 >; 105 >;
106 }; 106 };
107 107
108 uart1_pins: pinmux_uart1_pins { 108 uart1_pins: pinmux_uart1_pins {
109 pinctrl-single,pins = < 109 pinctrl-single,pins = <
110 0x180 0x28 /* uart1_rxd, INPUT | MODE0 */ 110 AM33XX_IOPAD(0x980, PIN_INPUT | MUX_MODE0) /* uart1_rxd */
111 0x184 0x28 /* uart1_txd, INPUT | MODE0 */ 111 AM33XX_IOPAD(0x984, PIN_INPUT | MUX_MODE0) /* uart1_txd */
112 /*0x178 0x28*/ /* uart1_ctsn, INPUT | MODE0 */ 112 AM33XX_IOPAD(0x978, PIN_INPUT_PULLDOWN | MUX_MODE7) /* uart1_ctsn, INPUT | MODE0 */
113 /*0x17c 0x08*/ /* uart1_rtsn, OUTPUT | MODE0 */ 113 AM33XX_IOPAD(0x97c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* uart1_rtsn, OUTPUT | MODE0 */
114 0x178 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* uart1_ctsn, INPUT | MODE0 */ 114 AM33XX_IOPAD(0x8e0, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* lcd_vsync.gpio2[22] DTR */
115 0x17c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* uart1_rtsn, OUTPUT | MODE0 */ 115 AM33XX_IOPAD(0x8e4, PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_hsync.gpio2[23] DSR */
116 0x0e0 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* lcd_vsync.gpio2[22] DTR */ 116 AM33XX_IOPAD(0x8e8, PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_pclk.gpio2[24] DCD */
117 0x0e4 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_hsync.gpio2[23] DSR */ 117 AM33XX_IOPAD(0x8ec, PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_ac_bias_en.gpio2[25] RI */
118 0x0e8 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_pclk.gpio2[24] DCD */
119 0x0ec (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_ac_bias_en.gpio2[25] RI */
120 >; 118 >;
121 }; 119 };
122 120
123 uart2_pins: pinmux_uart2_pins { 121 uart2_pins: pinmux_uart2_pins {
124 pinctrl-single,pins = < 122 pinctrl-single,pins = <
125 0x150 0x29 /* spi0_sclk.uart2_rxd_mux3, INPUT | MODE1 */ 123 AM33XX_IOPAD(0x950, PIN_INPUT | MUX_MODE1) /* spi0_sclk.uart2_rxd_mux3 */
126 0x154 0x09 /* spi0_d0.uart2_txd_mux3, OUTPUT | MODE1 */ 124 AM33XX_IOPAD(0x954, PIN_OUTPUT | MUX_MODE1) /* spi0_d0.uart2_txd_mux3 */
127 /*0x188 0x2a*/ /* i2c0_sda.uart2_ctsn_mux0, INPUT | MODE2 */ 125 AM33XX_IOPAD(0x988, PIN_INPUT_PULLDOWN | MUX_MODE7) /* i2c0_sda.uart2_ctsn_mux0 */
128 /*0x18c 0x2a*/ /* i2c0_scl.uart2_rtsn_mux0, INPUT | MODE2 */ 126 AM33XX_IOPAD(0x98c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* i2c0_scl.uart2_rtsn_mux0 */
129 0x188 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* i2c0_sda.uart2_ctsn_mux0 */ 127 AM33XX_IOPAD(0x830, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad12.gpio1[12] DTR */
130 0x18c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* i2c0_scl.uart2_rtsn_mux0 */ 128 AM33XX_IOPAD(0x834, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad13.gpio1[13] DSR */
131 0x030 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad12.gpio1[12] DTR */ 129 AM33XX_IOPAD(0x838, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad14.gpio1[14] DCD */
132 0x034 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad13.gpio1[13] DSR */ 130 AM33XX_IOPAD(0x83c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad15.gpio1[15] RI */
133 0x038 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad14.gpio1[14] DCD */ 131
134 0x03c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad15.gpio1[15] RI */ 132 AM33XX_IOPAD(0x9a0, PIN_INPUT_PULLUP | MUX_MODE7) /* mcasp0_aclkr.gpio3[18], INPUT_PULLDOWN | MODE7 */
135
136 0x1a0 (PIN_INPUT_PULLUP | MUX_MODE7) /* mcasp0_aclkr.gpio3[18], INPUT_PULLDOWN | MODE7 */
137 >; 133 >;
138 }; 134 };
139 135
140 cpsw_default: cpsw_default { 136 cpsw_default: cpsw_default {
141 pinctrl-single,pins = < 137 pinctrl-single,pins = <
142 /* Slave 1 */ 138 /* Slave 1 */
143 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_crs.rmii1_crs_dv */ 139 AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_crs.rmii1_crs_dv */
144 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_tx_en.rmii1_txen */ 140 AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_tx_en.rmii1_txen */
145 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd1.rmii1_txd1 */ 141 AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd1.rmii1_txd1 */
146 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd0.rmii1_txd0 */ 142 AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd0.rmii1_txd0 */
147 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd1.rmii1_rxd1 */ 143 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd1.rmii1_rxd1 */
148 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */ 144 AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */
149 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii1_ref_clk.rmii1_refclk */ 145 AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii1_ref_clk.rmii1_refclk */
150 146
151 147
152 /* Slave 2 */ 148 /* Slave 2 */
153 0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a0.rgmii2_tctl */ 149 AM33XX_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a0.rgmii2_tctl */
154 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a1.rgmii2_rctl */ 150 AM33XX_IOPAD(0x844, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a1.rgmii2_rctl */
155 0x48 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a2.rgmii2_td3 */ 151 AM33XX_IOPAD(0x848, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a2.rgmii2_td3 */
156 0x4c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a3.rgmii2_td2 */ 152 AM33XX_IOPAD(0x84c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a3.rgmii2_td2 */
157 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a4.rgmii2_td1 */ 153 AM33XX_IOPAD(0x850, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a4.rgmii2_td1 */
158 0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a5.rgmii2_td0 */ 154 AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a5.rgmii2_td0 */
159 0x58 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a6.rgmii2_tclk */ 155 AM33XX_IOPAD(0x858, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a6.rgmii2_tclk */
160 0x5c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a7.rgmii2_rclk */ 156 AM33XX_IOPAD(0x85c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a7.rgmii2_rclk */
161 0x60 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a8.rgmii2_rd3 */ 157 AM33XX_IOPAD(0x860, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a8.rgmii2_rd3 */
162 0x64 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a9.rgmii2_rd2 */ 158 AM33XX_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a9.rgmii2_rd2 */
163 0x68 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a10.rgmii2_rd1 */ 159 AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a10.rgmii2_rd1 */
164 0x6c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a11.rgmii2_rd0 */ 160 AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a11.rgmii2_rd0 */
165 >; 161 >;
166 }; 162 };
167 163
168 cpsw_sleep: cpsw_sleep { 164 cpsw_sleep: cpsw_sleep {
169 pinctrl-single,pins = < 165 pinctrl-single,pins = <
170 /* Slave 1 reset value */ 166 /* Slave 1 reset value */
171 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7) 167 AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE7)
172 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) 168 AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
173 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) 169 AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
174 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) 170 AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
175 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) 171 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
176 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) 172 AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
177 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7) 173 AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7)
178 174
179 /* Slave 2 reset value*/ 175 /* Slave 2 reset value*/
180 0x40 (PIN_INPUT_PULLDOWN | MUX_MODE7) 176 AM33XX_IOPAD(0x840, PIN_INPUT_PULLDOWN | MUX_MODE7)
181 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE7) 177 AM33XX_IOPAD(0x844, PIN_INPUT_PULLDOWN | MUX_MODE7)
182 0x48 (PIN_INPUT_PULLDOWN | MUX_MODE7) 178 AM33XX_IOPAD(0x848, PIN_INPUT_PULLDOWN | MUX_MODE7)
183 0x4c (PIN_INPUT_PULLDOWN | MUX_MODE7) 179 AM33XX_IOPAD(0x84c, PIN_INPUT_PULLDOWN | MUX_MODE7)
184 0x50 (PIN_INPUT_PULLDOWN | MUX_MODE7) 180 AM33XX_IOPAD(0x850, PIN_INPUT_PULLDOWN | MUX_MODE7)
185 0x54 (PIN_INPUT_PULLDOWN | MUX_MODE7) 181 AM33XX_IOPAD(0x854, PIN_INPUT_PULLDOWN | MUX_MODE7)
186 0x58 (PIN_INPUT_PULLDOWN | MUX_MODE7) 182 AM33XX_IOPAD(0x858, PIN_INPUT_PULLDOWN | MUX_MODE7)
187 0x5c (PIN_INPUT_PULLDOWN | MUX_MODE7) 183 AM33XX_IOPAD(0x85c, PIN_INPUT_PULLDOWN | MUX_MODE7)
188 0x60 (PIN_INPUT_PULLDOWN | MUX_MODE7) 184 AM33XX_IOPAD(0x860, PIN_INPUT_PULLDOWN | MUX_MODE7)
189 0x64 (PIN_INPUT_PULLDOWN | MUX_MODE7) 185 AM33XX_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE7)
190 0x68 (PIN_INPUT_PULLDOWN | MUX_MODE7) 186 AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE7)
191 0x6c (PIN_INPUT_PULLDOWN | MUX_MODE7) 187 AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE7)
192 >; 188 >;
193 }; 189 };
194 190
195 davinci_mdio_default: davinci_mdio_default { 191 davinci_mdio_default: davinci_mdio_default {
196 pinctrl-single,pins = < 192 pinctrl-single,pins = <
197 /* MDIO */ 193 /* MDIO */
198 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ 194 AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
199 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ 195 AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
200 >; 196 >;
201 }; 197 };
202 198
203 davinci_mdio_sleep: davinci_mdio_sleep { 199 davinci_mdio_sleep: davinci_mdio_sleep {
204 pinctrl-single,pins = < 200 pinctrl-single,pins = <
205 /* MDIO reset value */ 201 /* MDIO reset value */
206 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) 202 AM33XX_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
207 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) 203 AM33XX_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
208 >; 204 >;
209 }; 205 };
210 206
211 nandflash_pins_s0: nandflash_pins_s0 { 207 nandflash_pins_s0: nandflash_pins_s0 {
212 pinctrl-single,pins = < 208 pinctrl-single,pins = <
213 0x0 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */ 209 AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */
214 0x4 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */ 210 AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */
215 0x8 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */ 211 AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */
216 0xc (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */ 212 AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */
217 0x10 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */ 213 AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */
218 0x14 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */ 214 AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */
219 0x18 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */ 215 AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */
220 0x1c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */ 216 AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */
221 0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */ 217 AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */
222 0x74 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_30 */ 218 AM33XX_IOPAD(0x874, PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_30 */
223 0x7c (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */ 219 AM33XX_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */
224 0x90 (PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */ 220 AM33XX_IOPAD(0x890, PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */
225 0x94 (PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */ 221 AM33XX_IOPAD(0x894, PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */
226 0x98 (PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */ 222 AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */
227 0x9c (PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */ 223 AM33XX_IOPAD(0x89c, PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */
228 >; 224 >;
229 }; 225 };
230}; 226};
diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
index 5d370d54bd30..f3db13d2d90e 100644
--- a/arch/arm/boot/dts/am335x-bone-common.dtsi
+++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
@@ -67,112 +67,112 @@
67 67
68 user_leds_s0: user_leds_s0 { 68 user_leds_s0: user_leds_s0 {
69 pinctrl-single,pins = < 69 pinctrl-single,pins = <
70 0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a5.gpio1_21 */ 70 AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a5.gpio1_21 */
71 0x58 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a6.gpio1_22 */ 71 AM33XX_IOPAD(0x858, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a6.gpio1_22 */
72 0x5c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a7.gpio1_23 */ 72 AM33XX_IOPAD(0x85c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a7.gpio1_23 */
73 0x60 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a8.gpio1_24 */ 73 AM33XX_IOPAD(0x860, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a8.gpio1_24 */
74 >; 74 >;
75 }; 75 };
76 76
77 i2c0_pins: pinmux_i2c0_pins { 77 i2c0_pins: pinmux_i2c0_pins {
78 pinctrl-single,pins = < 78 pinctrl-single,pins = <
79 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ 79 AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */
80 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ 80 AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */
81 >; 81 >;
82 }; 82 };
83 83
84 i2c2_pins: pinmux_i2c2_pins { 84 i2c2_pins: pinmux_i2c2_pins {
85 pinctrl-single,pins = < 85 pinctrl-single,pins = <
86 0x178 (PIN_INPUT_PULLUP | MUX_MODE3) /* uart1_ctsn.i2c2_sda */ 86 AM33XX_IOPAD(0x978, PIN_INPUT_PULLUP | MUX_MODE3) /* uart1_ctsn.i2c2_sda */
87 0x17c (PIN_INPUT_PULLUP | MUX_MODE3) /* uart1_rtsn.i2c2_scl */ 87 AM33XX_IOPAD(0x97c, PIN_INPUT_PULLUP | MUX_MODE3) /* uart1_rtsn.i2c2_scl */
88 >; 88 >;
89 }; 89 };
90 90
91 uart0_pins: pinmux_uart0_pins { 91 uart0_pins: pinmux_uart0_pins {
92 pinctrl-single,pins = < 92 pinctrl-single,pins = <
93 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ 93 AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
94 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ 94 AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
95 >; 95 >;
96 }; 96 };
97 97
98 clkout2_pin: pinmux_clkout2_pin { 98 clkout2_pin: pinmux_clkout2_pin {
99 pinctrl-single,pins = < 99 pinctrl-single,pins = <
100 0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */ 100 AM33XX_IOPAD(0x9b4, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */
101 >; 101 >;
102 }; 102 };
103 103
104 cpsw_default: cpsw_default { 104 cpsw_default: cpsw_default {
105 pinctrl-single,pins = < 105 pinctrl-single,pins = <
106 /* Slave 1 */ 106 /* Slave 1 */
107 0x110 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxerr.mii1_rxerr */ 107 AM33XX_IOPAD(0x910, PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxerr.mii1_rxerr */
108 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txen.mii1_txen */ 108 AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txen.mii1_txen */
109 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxdv.mii1_rxdv */ 109 AM33XX_IOPAD(0x918, PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxdv.mii1_rxdv */
110 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd3.mii1_txd3 */ 110 AM33XX_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd3.mii1_txd3 */
111 0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd2.mii1_txd2 */ 111 AM33XX_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd2.mii1_txd2 */
112 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd1.mii1_txd1 */ 112 AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd1.mii1_txd1 */
113 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd0.mii1_txd0 */ 113 AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd0.mii1_txd0 */
114 0x12c (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_txclk.mii1_txclk */ 114 AM33XX_IOPAD(0x92c, PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_txclk.mii1_txclk */
115 0x130 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxclk.mii1_rxclk */ 115 AM33XX_IOPAD(0x930, PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxclk.mii1_rxclk */
116 0x134 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd3.mii1_rxd3 */ 116 AM33XX_IOPAD(0x934, PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd3.mii1_rxd3 */
117 0x138 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd2.mii1_rxd2 */ 117 AM33XX_IOPAD(0x938, PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd2.mii1_rxd2 */
118 0x13c (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd1.mii1_rxd1 */ 118 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd1.mii1_rxd1 */
119 0x140 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd0.mii1_rxd0 */ 119 AM33XX_IOPAD(0x940, PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd0.mii1_rxd0 */
120 >; 120 >;
121 }; 121 };
122 122
123 cpsw_sleep: cpsw_sleep { 123 cpsw_sleep: cpsw_sleep {
124 pinctrl-single,pins = < 124 pinctrl-single,pins = <
125 /* Slave 1 reset value */ 125 /* Slave 1 reset value */
126 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7) 126 AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7)
127 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) 127 AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
128 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) 128 AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7)
129 0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7) 129 AM33XX_IOPAD(0x91c, PIN_INPUT_PULLDOWN | MUX_MODE7)
130 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7) 130 AM33XX_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE7)
131 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) 131 AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
132 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) 132 AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
133 0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7) 133 AM33XX_IOPAD(0x92c, PIN_INPUT_PULLDOWN | MUX_MODE7)
134 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7) 134 AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE7)
135 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7) 135 AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE7)
136 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7) 136 AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE7)
137 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) 137 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
138 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) 138 AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
139 >; 139 >;
140 }; 140 };
141 141
142 davinci_mdio_default: davinci_mdio_default { 142 davinci_mdio_default: davinci_mdio_default {
143 pinctrl-single,pins = < 143 pinctrl-single,pins = <
144 /* MDIO */ 144 /* MDIO */
145 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ 145 AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
146 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ 146 AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
147 >; 147 >;
148 }; 148 };
149 149
150 davinci_mdio_sleep: davinci_mdio_sleep { 150 davinci_mdio_sleep: davinci_mdio_sleep {
151 pinctrl-single,pins = < 151 pinctrl-single,pins = <
152 /* MDIO reset value */ 152 /* MDIO reset value */
153 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) 153 AM33XX_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
154 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) 154 AM33XX_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
155 >; 155 >;
156 }; 156 };
157 157
158 mmc1_pins: pinmux_mmc1_pins { 158 mmc1_pins: pinmux_mmc1_pins {
159 pinctrl-single,pins = < 159 pinctrl-single,pins = <
160 0x160 (PIN_INPUT | MUX_MODE7) /* GPIO0_6 */ 160 AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* GPIO0_6 */
161 >; 161 >;
162 }; 162 };
163 163
164 emmc_pins: pinmux_emmc_pins { 164 emmc_pins: pinmux_emmc_pins {
165 pinctrl-single,pins = < 165 pinctrl-single,pins = <
166 0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */ 166 AM33XX_IOPAD(0x880, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
167 0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */ 167 AM33XX_IOPAD(0x884, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
168 0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */ 168 AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */
169 0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */ 169 AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */
170 0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */ 170 AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */
171 0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */ 171 AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */
172 0x10 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */ 172 AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */
173 0x14 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */ 173 AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */
174 0x18 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */ 174 AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */
175 0x1c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */ 175 AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */
176 >; 176 >;
177 }; 177 };
178}; 178};
@@ -285,10 +285,8 @@
285 }; 285 };
286}; 286};
287 287
288
289/include/ "tps65217.dtsi"
290
291&tps { 288&tps {
289 compatible = "ti,tps65217";
292 /* 290 /*
293 * Configure pmic to enter OFF-state instead of SLEEP-state ("RTC-only 291 * Configure pmic to enter OFF-state instead of SLEEP-state ("RTC-only
294 * mode") at poweroff. Most BeagleBone versions do not support RTC-only 292 * mode") at poweroff. Most BeagleBone versions do not support RTC-only
@@ -309,12 +307,17 @@
309 ti,pmic-shutdown-controller; 307 ti,pmic-shutdown-controller;
310 308
311 regulators { 309 regulators {
310 #address-cells = <1>;
311 #size-cells = <0>;
312
312 dcdc1_reg: regulator@0 { 313 dcdc1_reg: regulator@0 {
314 reg = <0>;
313 regulator-name = "vdds_dpr"; 315 regulator-name = "vdds_dpr";
314 regulator-always-on; 316 regulator-always-on;
315 }; 317 };
316 318
317 dcdc2_reg: regulator@1 { 319 dcdc2_reg: regulator@1 {
320 reg = <1>;
318 /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ 321 /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
319 regulator-name = "vdd_mpu"; 322 regulator-name = "vdd_mpu";
320 regulator-min-microvolt = <925000>; 323 regulator-min-microvolt = <925000>;
@@ -324,6 +327,7 @@
324 }; 327 };
325 328
326 dcdc3_reg: regulator@2 { 329 dcdc3_reg: regulator@2 {
330 reg = <2>;
327 /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */ 331 /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
328 regulator-name = "vdd_core"; 332 regulator-name = "vdd_core";
329 regulator-min-microvolt = <925000>; 333 regulator-min-microvolt = <925000>;
@@ -333,21 +337,25 @@
333 }; 337 };
334 338
335 ldo1_reg: regulator@3 { 339 ldo1_reg: regulator@3 {
340 reg = <3>;
336 regulator-name = "vio,vrtc,vdds"; 341 regulator-name = "vio,vrtc,vdds";
337 regulator-always-on; 342 regulator-always-on;
338 }; 343 };
339 344
340 ldo2_reg: regulator@4 { 345 ldo2_reg: regulator@4 {
346 reg = <4>;
341 regulator-name = "vdd_3v3aux"; 347 regulator-name = "vdd_3v3aux";
342 regulator-always-on; 348 regulator-always-on;
343 }; 349 };
344 350
345 ldo3_reg: regulator@5 { 351 ldo3_reg: regulator@5 {
352 reg = <5>;
346 regulator-name = "vdd_1v8"; 353 regulator-name = "vdd_1v8";
347 regulator-always-on; 354 regulator-always-on;
348 }; 355 };
349 356
350 ldo4_reg: regulator@6 { 357 ldo4_reg: regulator@6 {
358 reg = <6>;
351 regulator-name = "vdd_3v3a"; 359 regulator-name = "vdd_3v3a";
352 regulator-always-on; 360 regulator-always-on;
353 }; 361 };
diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts
index eadbba32386d..55c0e954b146 100644
--- a/arch/arm/boot/dts/am335x-boneblack.dts
+++ b/arch/arm/boot/dts/am335x-boneblack.dts
@@ -36,32 +36,32 @@
36&am33xx_pinmux { 36&am33xx_pinmux {
37 nxp_hdmi_bonelt_pins: nxp_hdmi_bonelt_pins { 37 nxp_hdmi_bonelt_pins: nxp_hdmi_bonelt_pins {
38 pinctrl-single,pins = < 38 pinctrl-single,pins = <
39 0x1b0 0x03 /* xdma_event_intr0, OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT */ 39 AM33XX_IOPAD(0x9b0, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr0 */
40 0xa0 0x08 /* lcd_data0.lcd_data0, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 40 AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */
41 0xa4 0x08 /* lcd_data1.lcd_data1, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 41 AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0) /* lcd_data1.lcd_data1 */
42 0xa8 0x08 /* lcd_data2.lcd_data2, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 42 AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0) /* lcd_data2.lcd_data2 */
43 0xac 0x08 /* lcd_data3.lcd_data3, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 43 AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0) /* lcd_data3.lcd_data3 */
44 0xb0 0x08 /* lcd_data4.lcd_data4, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 44 AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0) /* lcd_data4.lcd_data4 */
45 0xb4 0x08 /* lcd_data5.lcd_data5, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 45 AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0) /* lcd_data5.lcd_data5 */
46 0xb8 0x08 /* lcd_data6.lcd_data6, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 46 AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0) /* lcd_data6.lcd_data6 */
47 0xbc 0x08 /* lcd_data7.lcd_data7, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 47 AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0) /* lcd_data7.lcd_data7 */
48 0xc0 0x08 /* lcd_data8.lcd_data8, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 48 AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0) /* lcd_data8.lcd_data8 */
49 0xc4 0x08 /* lcd_data9.lcd_data9, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 49 AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0) /* lcd_data9.lcd_data9 */
50 0xc8 0x08 /* lcd_data10.lcd_data10, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 50 AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0) /* lcd_data10.lcd_data10 */
51 0xcc 0x08 /* lcd_data11.lcd_data11, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 51 AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0) /* lcd_data11.lcd_data11 */
52 0xd0 0x08 /* lcd_data12.lcd_data12, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 52 AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0) /* lcd_data12.lcd_data12 */
53 0xd4 0x08 /* lcd_data13.lcd_data13, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 53 AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0) /* lcd_data13.lcd_data13 */
54 0xd8 0x08 /* lcd_data14.lcd_data14, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 54 AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0) /* lcd_data14.lcd_data14 */
55 0xdc 0x08 /* lcd_data15.lcd_data15, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 55 AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0) /* lcd_data15.lcd_data15 */
56 0xe0 0x00 /* lcd_vsync.lcd_vsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ 56 AM33XX_IOPAD(0x8e0, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_vsync.lcd_vsync */
57 0xe4 0x00 /* lcd_hsync.lcd_hsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ 57 AM33XX_IOPAD(0x8e4, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_hsync.lcd_hsync */
58 0xe8 0x00 /* lcd_pclk.lcd_pclk, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ 58 AM33XX_IOPAD(0x8e8, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_pclk.lcd_pclk */
59 0xec 0x00 /* lcd_ac_bias_en.lcd_ac_bias_en, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ 59 AM33XX_IOPAD(0x8ec, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en */
60 >; 60 >;
61 }; 61 };
62 nxp_hdmi_bonelt_off_pins: nxp_hdmi_bonelt_off_pins { 62 nxp_hdmi_bonelt_off_pins: nxp_hdmi_bonelt_off_pins {
63 pinctrl-single,pins = < 63 pinctrl-single,pins = <
64 0x1b0 0x03 /* xdma_event_intr0, OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT */ 64 AM33XX_IOPAD(0x9b0, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr0 */
65 >; 65 >;
66 }; 66 };
67}; 67};
diff --git a/arch/arm/boot/dts/am335x-bonegreen.dts b/arch/arm/boot/dts/am335x-bonegreen.dts
index 0f65bdaaa583..dce3c8657e04 100644
--- a/arch/arm/boot/dts/am335x-bonegreen.dts
+++ b/arch/arm/boot/dts/am335x-bonegreen.dts
@@ -36,8 +36,8 @@
36&am33xx_pinmux { 36&am33xx_pinmux {
37 uart2_pins: uart2_pins { 37 uart2_pins: uart2_pins {
38 pinctrl-single,pins = < 38 pinctrl-single,pins = <
39 0x150 (PIN_INPUT | MUX_MODE1) /* spi0_sclk.uart2_rxd */ 39 AM33XX_IOPAD(0x950, PIN_INPUT | MUX_MODE1) /* spi0_sclk.uart2_rxd */
40 0x154 (PIN_OUTPUT | MUX_MODE1) /* spi0_d0.uart2_txd */ 40 AM33XX_IOPAD(0x954, PIN_OUTPUT | MUX_MODE1) /* spi0_d0.uart2_txd */
41 >; 41 >;
42 }; 42 };
43}; 43};
diff --git a/arch/arm/boot/dts/am335x-chiliboard.dts b/arch/arm/boot/dts/am335x-chiliboard.dts
index 310da20a8aa7..15d47ab28865 100644
--- a/arch/arm/boot/dts/am335x-chiliboard.dts
+++ b/arch/arm/boot/dts/am335x-chiliboard.dts
@@ -37,26 +37,26 @@
37&am33xx_pinmux { 37&am33xx_pinmux {
38 usb1_drvvbus: usb1_drvvbus { 38 usb1_drvvbus: usb1_drvvbus {
39 pinctrl-single,pins = < 39 pinctrl-single,pins = <
40 0x234 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* usb1_drvvbus.usb1_drvvbus */ 40 AM33XX_IOPAD(0xa34, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* usb1_drvvbus.usb1_drvvbus */
41 >; 41 >;
42 }; 42 };
43 43
44 sd_pins: pinmux_sd_card { 44 sd_pins: pinmux_sd_card {
45 pinctrl-single,pins = < 45 pinctrl-single,pins = <
46 0xf0 (PIN_INPUT | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */ 46 AM33XX_IOPAD(0x8f0, PIN_INPUT | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
47 0xf4 (PIN_INPUT | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */ 47 AM33XX_IOPAD(0x8f4, PIN_INPUT | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
48 0xf8 (PIN_INPUT | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */ 48 AM33XX_IOPAD(0x8f8, PIN_INPUT | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
49 0xfc (PIN_INPUT | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */ 49 AM33XX_IOPAD(0x8fc, PIN_INPUT | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
50 0x100 (PIN_INPUT | MUX_MODE0) /* mmc0_clk.mmc0_clk */ 50 AM33XX_IOPAD(0x900, PIN_INPUT | MUX_MODE0) /* mmc0_clk.mmc0_clk */
51 0x104 (PIN_INPUT | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */ 51 AM33XX_IOPAD(0x904, PIN_INPUT | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
52 0x160 (PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */ 52 AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */
53 >; 53 >;
54 }; 54 };
55 55
56 led_gpio_pins: led_gpio_pins { 56 led_gpio_pins: led_gpio_pins {
57 pinctrl-single,pins = < 57 pinctrl-single,pins = <
58 0x1e4 (PIN_OUTPUT | MUX_MODE7) /* emu0.gpio3_7 */ 58 AM33XX_IOPAD(0x9e4, PIN_OUTPUT | MUX_MODE7) /* emu0.gpio3_7 */
59 0x1e8 (PIN_OUTPUT | MUX_MODE7) /* emu1.gpio3_8 */ 59 AM33XX_IOPAD(0x9e8, PIN_OUTPUT | MUX_MODE7) /* emu1.gpio3_8 */
60 >; 60 >;
61 }; 61 };
62}; 62};
diff --git a/arch/arm/boot/dts/am335x-chilisom.dtsi b/arch/arm/boot/dts/am335x-chilisom.dtsi
index 7e9a34dffe21..fda457b07e15 100644
--- a/arch/arm/boot/dts/am335x-chilisom.dtsi
+++ b/arch/arm/boot/dts/am335x-chilisom.dtsi
@@ -29,81 +29,81 @@
29 29
30 i2c0_pins: pinmux_i2c0_pins { 30 i2c0_pins: pinmux_i2c0_pins {
31 pinctrl-single,pins = < 31 pinctrl-single,pins = <
32 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ 32 AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */
33 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ 33 AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */
34 >; 34 >;
35 }; 35 };
36 36
37 uart0_pins: pinmux_uart0_pins { 37 uart0_pins: pinmux_uart0_pins {
38 pinctrl-single,pins = < 38 pinctrl-single,pins = <
39 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ 39 AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
40 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ 40 AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
41 >; 41 >;
42 }; 42 };
43 43
44 cpsw_default: cpsw_default { 44 cpsw_default: cpsw_default {
45 pinctrl-single,pins = < 45 pinctrl-single,pins = <
46 /* Slave 1 */ 46 /* Slave 1 */
47 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_crs.rmii1_crs */ 47 AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_crs.rmii1_crs */
48 0x110 (PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxerr.rmii1_rxerr */ 48 AM33XX_IOPAD(0x910, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxerr.rmii1_rxerr */
49 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txen.rmii1_txen */ 49 AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txen.rmii1_txen */
50 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd1.rmii1_txd1 */ 50 AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd1.rmii1_txd1 */
51 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd0.rmii1_txd0 */ 51 AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd0.rmii1_txd0 */
52 0x13c (PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxd1.rmii1_rxd1 */ 52 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxd1.rmii1_rxd1 */
53 0x140 (PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */ 53 AM33XX_IOPAD(0x940, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */
54 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii1_ref_clk.rmii_ref_clk */ 54 AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii1_ref_clk.rmii_ref_clk */
55 >; 55 >;
56 }; 56 };
57 57
58 cpsw_sleep: cpsw_sleep { 58 cpsw_sleep: cpsw_sleep {
59 pinctrl-single,pins = < 59 pinctrl-single,pins = <
60 /* Slave 1 reset value */ 60 /* Slave 1 reset value */
61 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7) 61 AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE7)
62 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7) 62 AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7)
63 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) 63 AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
64 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) 64 AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7)
65 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) 65 AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
66 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) 66 AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
67 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) 67 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
68 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) 68 AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
69 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7) 69 AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7)
70 >; 70 >;
71 }; 71 };
72 72
73 davinci_mdio_default: davinci_mdio_default { 73 davinci_mdio_default: davinci_mdio_default {
74 pinctrl-single,pins = < 74 pinctrl-single,pins = <
75 /* mdio_data.mdio_data */ 75 /* mdio_data.mdio_data */
76 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) 76 AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)
77 /* mdio_clk.mdio_clk */ 77 /* mdio_clk.mdio_clk */
78 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) 78 AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0)
79 >; 79 >;
80 }; 80 };
81 81
82 davinci_mdio_sleep: davinci_mdio_sleep { 82 davinci_mdio_sleep: davinci_mdio_sleep {
83 pinctrl-single,pins = < 83 pinctrl-single,pins = <
84 /* MDIO reset value */ 84 /* MDIO reset value */
85 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) 85 AM33XX_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
86 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) 86 AM33XX_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
87 >; 87 >;
88 }; 88 };
89 89
90 nandflash_pins: nandflash_pins { 90 nandflash_pins: nandflash_pins {
91 pinctrl-single,pins = < 91 pinctrl-single,pins = <
92 0x00 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */ 92 AM33XX_IOPAD(0x800, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */
93 0x04 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */ 93 AM33XX_IOPAD(0x804, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */
94 0x08 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */ 94 AM33XX_IOPAD(0x808, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */
95 0x0c (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */ 95 AM33XX_IOPAD(0x80c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */
96 0x10 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */ 96 AM33XX_IOPAD(0x810, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */
97 0x14 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */ 97 AM33XX_IOPAD(0x814, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */
98 0x18 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */ 98 AM33XX_IOPAD(0x818, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */
99 0x1c (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */ 99 AM33XX_IOPAD(0x81c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */
100 100
101 0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */ 101 AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */
102 0x7c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */ 102 AM33XX_IOPAD(0x87c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */
103 0x90 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */ 103 AM33XX_IOPAD(0x890, PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */
104 0x94 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */ 104 AM33XX_IOPAD(0x894, PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */
105 0x98 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_wen.gpmc_wen */ 105 AM33XX_IOPAD(0x898, PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_wen.gpmc_wen */
106 0x9c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */ 106 AM33XX_IOPAD(0x89c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */
107 >; 107 >;
108 }; 108 };
109}; 109};
@@ -128,16 +128,21 @@
128 128
129}; 129};
130 130
131/include/ "tps65217.dtsi"
132
133&tps { 131&tps {
132 compatible = "ti,tps65217";
133
134 regulators { 134 regulators {
135 #address-cells = <1>;
136 #size-cells = <0>;
137
135 dcdc1_reg: regulator@0 { 138 dcdc1_reg: regulator@0 {
139 reg = <0>;
136 regulator-name = "vdds_dpr"; 140 regulator-name = "vdds_dpr";
137 regulator-always-on; 141 regulator-always-on;
138 }; 142 };
139 143
140 dcdc2_reg: regulator@1 { 144 dcdc2_reg: regulator@1 {
145 reg = <1>;
141 /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ 146 /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
142 regulator-name = "vdd_mpu"; 147 regulator-name = "vdd_mpu";
143 regulator-min-microvolt = <925000>; 148 regulator-min-microvolt = <925000>;
@@ -147,6 +152,7 @@
147 }; 152 };
148 153
149 dcdc3_reg: regulator@2 { 154 dcdc3_reg: regulator@2 {
155 reg = <2>;
150 /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */ 156 /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
151 regulator-name = "vdd_core"; 157 regulator-name = "vdd_core";
152 regulator-min-microvolt = <925000>; 158 regulator-min-microvolt = <925000>;
@@ -156,24 +162,28 @@
156 }; 162 };
157 163
158 ldo1_reg: regulator@3 { 164 ldo1_reg: regulator@3 {
165 reg = <3>;
159 regulator-name = "vio,vrtc,vdds"; 166 regulator-name = "vio,vrtc,vdds";
160 regulator-boot-on; 167 regulator-boot-on;
161 regulator-always-on; 168 regulator-always-on;
162 }; 169 };
163 170
164 ldo2_reg: regulator@4 { 171 ldo2_reg: regulator@4 {
172 reg = <4>;
165 regulator-name = "vdd_3v3aux"; 173 regulator-name = "vdd_3v3aux";
166 regulator-boot-on; 174 regulator-boot-on;
167 regulator-always-on; 175 regulator-always-on;
168 }; 176 };
169 177
170 ldo3_reg: regulator@5 { 178 ldo3_reg: regulator@5 {
179 reg = <5>;
171 regulator-name = "vdd_1v8"; 180 regulator-name = "vdd_1v8";
172 regulator-boot-on; 181 regulator-boot-on;
173 regulator-always-on; 182 regulator-always-on;
174 }; 183 };
175 184
176 ldo4_reg: regulator@6 { 185 ldo4_reg: regulator@6 {
186 reg = <6>;
177 regulator-name = "vdd_3v3d"; 187 regulator-name = "vdd_3v3d";
178 regulator-boot-on; 188 regulator-boot-on;
179 regulator-always-on; 189 regulator-always-on;
diff --git a/arch/arm/boot/dts/am335x-cm-t335.dts b/arch/arm/boot/dts/am335x-cm-t335.dts
new file mode 100644
index 000000000000..42e9b665582a
--- /dev/null
+++ b/arch/arm/boot/dts/am335x-cm-t335.dts
@@ -0,0 +1,396 @@
1/*
2 * am335x-cm-t335.dts - Device Tree file for Compulab CM-T335
3 *
4 * Copyright (C) 2014 - 2015 CompuLab Ltd. - http://www.compulab.co.il/
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10
11/dts-v1/;
12
13#include "am33xx.dtsi"
14
15/ {
16 model = "CompuLab CM-T335";
17 compatible = "compulab,cm-t335", "ti,am33xx";
18
19 memory {
20 device_type = "memory";
21 reg = <0x80000000 0x8000000>; /* 128 MB */
22 };
23
24 leds {
25 compatible = "gpio-leds";
26 pinctrl-names = "default";
27 pinctrl-0 = <&gpio_led_pins>;
28 led@0 {
29 label = "cm_t335:green";
30 gpios = <&gpio2 0 GPIO_ACTIVE_LOW>; /* gpio2_0 */
31 linux,default-trigger = "heartbeat";
32 };
33 };
34
35 /* regulator for mmc */
36 vmmc_fixed: fixedregulator@0 {
37 compatible = "regulator-fixed";
38 regulator-name = "vmmc_fixed";
39 regulator-min-microvolt = <3300000>;
40 regulator-max-microvolt = <3300000>;
41 };
42
43 backlight {
44 compatible = "pwm-backlight";
45 pwms = <&ecap0 0 50000 0>;
46 brightness-levels = <0 51 53 56 62 75 101 152 255>;
47 default-brightness-level = <8>;
48 };
49};
50
51&am33xx_pinmux {
52 pinctrl-names = "default";
53 pinctrl-0 = <&bluetooth_pins>;
54
55 i2c0_pins: pinmux_i2c0_pins {
56 pinctrl-single,pins = <
57 /* i2c0_sda.i2c0_sda */
58 AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0)
59 /* i2c0_scl.i2c0_scl */
60 AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0)
61 >;
62 };
63
64 i2c1_pins: pinmux_i2c1_pins {
65 pinctrl-single,pins = <
66 /* uart0_ctsn.i2c1_sda */
67 AM33XX_IOPAD(0x968, PIN_INPUT_PULLUP | MUX_MODE2)
68 /* uart0_rtsn.i2c1_scl */
69 AM33XX_IOPAD(0x96c, PIN_INPUT_PULLUP | MUX_MODE2)
70 >;
71 };
72
73 gpio_led_pins: pinmux_gpio_led_pins {
74 pinctrl-single,pins = <
75 /* gpmc_csn3.gpio2_0 */
76 AM33XX_IOPAD(0x888, PIN_OUTPUT | MUX_MODE7)
77 >;
78 };
79
80 nandflash_pins: pinmux_nandflash_pins {
81 pinctrl-single,pins = <
82 /* gpmc_ad0.gpmc_ad0 */
83 AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE0)
84 /* gpmc_ad1.gpmc_ad1 */
85 AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE0)
86 /* gpmc_ad2.gpmc_ad2 */
87 AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE0)
88 /* gpmc_ad3.gpmc_ad3 */
89 AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE0)
90 /* gpmc_ad4.gpmc_ad4 */
91 AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE0)
92 /* gpmc_ad5.gpmc_ad5 */
93 AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE0)
94 /* gpmc_ad6.gpmc_ad6 */
95 AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE0)
96 /* gpmc_ad7.gpmc_ad7 */
97 AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE0)
98 /* gpmc_wait0.gpmc_wait0 */
99 AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE0)
100 /* gpmc_wpn.gpio0_30 */
101 AM33XX_IOPAD(0x874, PIN_INPUT_PULLUP | MUX_MODE7)
102 /* gpmc_csn0.gpmc_csn0 */
103 AM33XX_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE0)
104 /* gpmc_advn_ale.gpmc_advn_ale */
105 AM33XX_IOPAD(0x890, PIN_OUTPUT | MUX_MODE0)
106 /* gpmc_oen_ren.gpmc_oen_ren */
107 AM33XX_IOPAD(0x894, PIN_OUTPUT | MUX_MODE0)
108 /* gpmc_wen.gpmc_wen */
109 AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE0)
110 /* gpmc_ben0_cle.gpmc_ben0_cle */
111 AM33XX_IOPAD(0x89c, PIN_OUTPUT | MUX_MODE0)
112 >;
113 };
114
115 uart0_pins: pinmux_uart0_pins {
116 pinctrl-single,pins = <
117 /* uart0_rxd.uart0_rxd */
118 AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0)
119 /* uart0_txd.uart0_txd */
120 AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
121 >;
122 };
123
124 uart1_pins: pinmux_uart1_pins {
125 pinctrl-single,pins = <
126 /* uart1_ctsn.uart1_ctsn */
127 AM33XX_IOPAD(0x978, PIN_INPUT | MUX_MODE0)
128 /* uart1_rtsn.uart1_rtsn */
129 AM33XX_IOPAD(0x97C, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
130 /* uart1_rxd.uart1_rxd */
131 AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0)
132 /* uart1_txd.uart1_txd */
133 AM33XX_IOPAD(0x984, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
134 >;
135 };
136
137 ecap0_pins: pinmux_ecap0_pins {
138 pinctrl-single,pins = <
139 /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */
140 AM33XX_IOPAD(0x964, 0x0)
141 >;
142 };
143
144 cpsw_default: cpsw_default {
145 pinctrl-single,pins = <
146 /* Slave 1 */
147 /* mii1_tx_en.rgmii1_tctl */
148 AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
149 /* mii1_rxdv.rgmii1_rctl */
150 AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE2)
151 /* mii1_txd3.rgmii1_td3 */
152 AM33XX_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
153 /* mii1_txd2.rgmii1_td2 */
154 AM33XX_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
155 /* mii1_txd1.rgmii1_td1 */
156 AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
157 /* mii1_txd0.rgmii1_td0 */
158 AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
159 /* mii1_txclk.rgmii1_tclk */
160 AM33XX_IOPAD(0x92c, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
161 /* mii1_rxclk.rgmii1_rclk */
162 AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE2)
163 /* mii1_rxd3.rgmii1_rd3 */
164 AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE2)
165 /* mii1_rxd2.rgmii1_rd2 */
166 AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE2)
167 /* mii1_rxd1.rgmii1_rd1 */
168 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE2)
169 /* mii1_rxd0.rgmii1_rd0 */
170 AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE2)
171 >;
172 };
173
174 cpsw_sleep: cpsw_sleep {
175 pinctrl-single,pins = <
176 /* Slave 1 reset value */
177 AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
178 AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7)
179 AM33XX_IOPAD(0x91c, PIN_INPUT_PULLDOWN | MUX_MODE7)
180 AM33XX_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE7)
181 AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
182 AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
183 AM33XX_IOPAD(0x92c, PIN_INPUT_PULLDOWN | MUX_MODE7)
184 AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE7)
185 AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE7)
186 AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE7)
187 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
188 AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
189 >;
190 };
191
192 davinci_mdio_default: davinci_mdio_default {
193 pinctrl-single,pins = <
194 /* mdio_data.mdio_data */
195 AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)
196 /* mdio_clk.mdio_clk */
197 AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0)
198 >;
199 };
200
201 davinci_mdio_sleep: davinci_mdio_sleep {
202 pinctrl-single,pins = <
203 /* MDIO reset value */
204 AM33XX_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
205 AM33XX_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
206 >;
207 };
208
209 mmc1_pins: pinmux_mmc1_pins {
210 pinctrl-single,pins = <
211 /* mmc0_dat3.mmc0_dat3 */
212 AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0)
213 /* mmc0_dat2.mmc0_dat2 */
214 AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0)
215 /* mmc0_dat1.mmc0_dat1 */
216 AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0)
217 /* mmc0_dat0.mmc0_dat0 */
218 AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0)
219 /* mmc0_clk.mmc0_clk */
220 AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0)
221 /* mmc0_cmd.mmc0_cmd */
222 AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0)
223 >;
224 };
225
226 /* wl1271 bluetooth */
227 bluetooth_pins: pinmux_bluetooth_pins {
228 pinctrl-single,pins = <
229 /* XDMA_EVENT_INTR0.gpio0_19 - bluetooth enable */
230 AM33XX_IOPAD(0x9b0, PIN_OUTPUT_PULLUP | MUX_MODE7)
231 >;
232 };
233};
234
235&uart0 {
236 pinctrl-names = "default";
237 pinctrl-0 = <&uart0_pins>;
238
239 status = "okay";
240};
241
242/* WLS1271 bluetooth */
243&uart1 {
244 pinctrl-names = "default";
245 pinctrl-0 = <&uart1_pins>;
246
247status = "okay";
248};
249
250&i2c0 {
251 pinctrl-names = "default";
252 pinctrl-0 = <&i2c0_pins>;
253
254 status = "okay";
255 clock-frequency = <400000>;
256 /* CM-T335 board EEPROM */
257 eeprom: 24c02@50 {
258 compatible = "atmel,24c02";
259 reg = <0x50>;
260 pagesize = <16>;
261 };
262 /* Real Time Clock */
263 ext_rtc: em3027@56 {
264 compatible = "emmicro,em3027";
265 reg = <0x56>;
266 };
267};
268
269&usb {
270 status = "okay";
271};
272
273&usb_ctrl_mod {
274 status = "okay";
275};
276
277&usb0_phy {
278 status = "okay";
279};
280
281&usb0 {
282 status = "okay";
283};
284
285&cppi41dma {
286 status = "okay";
287};
288
289&epwmss0 {
290 status = "okay";
291
292 ecap0: ecap@48300100 {
293 status = "okay";
294 pinctrl-names = "default";
295 pinctrl-0 = <&ecap0_pins>;
296 };
297};
298
299&gpmc {
300 status = "okay";
301 pinctrl-names = "default";
302 pinctrl-0 = <&nandflash_pins>;
303 ranges = <0 0 0x08000000 0x10000000>; /* CS0: NAND */
304 nand@0,0 {
305 reg = <0 0 0>; /* CS0, offset 0 */
306 ti,nand-ecc-opt = "bch8";
307 ti,elm-id = <&elm>;
308 nand-bus-width = <8>;
309 gpmc,device-width = <1>;
310 gpmc,sync-clk-ps = <0>;
311 gpmc,cs-on-ns = <0>;
312 gpmc,cs-rd-off-ns = <44>;
313 gpmc,cs-wr-off-ns = <44>;
314 gpmc,adv-on-ns = <6>;
315 gpmc,adv-rd-off-ns = <34>;
316 gpmc,adv-wr-off-ns = <44>;
317 gpmc,we-on-ns = <0>;
318 gpmc,we-off-ns = <40>;
319 gpmc,oe-on-ns = <0>;
320 gpmc,oe-off-ns = <54>;
321 gpmc,access-ns = <64>;
322 gpmc,rd-cycle-ns = <82>;
323 gpmc,wr-cycle-ns = <82>;
324 gpmc,wait-on-read = "true";
325 gpmc,wait-on-write = "true";
326 gpmc,bus-turnaround-ns = <0>;
327 gpmc,cycle2cycle-delay-ns = <0>;
328 gpmc,clk-activation-ns = <0>;
329 gpmc,wait-monitoring-ns = <0>;
330 gpmc,wr-access-ns = <40>;
331 gpmc,wr-data-mux-bus-ns = <0>;
332 /* MTD partition table */
333 #address-cells = <1>;
334 #size-cells = <1>;
335 partition@0 {
336 label = "spl";
337 reg = <0x00000000 0x00200000>;
338 };
339 partition@1 {
340 label = "uboot";
341 reg = <0x00200000 0x00100000>;
342 };
343 partition@2 {
344 label = "uboot environment";
345 reg = <0x00300000 0x00100000>;
346 };
347 partition@3 {
348 label = "dtb";
349 reg = <0x00400000 0x00100000>;
350 };
351 partition@4 {
352 label = "splash";
353 reg = <0x00500000 0x00400000>;
354 };
355 partition@5 {
356 label = "linux";
357 reg = <0x00900000 0x00600000>;
358 };
359 partition@6 {
360 label = "rootfs";
361 reg = <0x00F00000 0>;
362 };
363 };
364};
365
366&elm {
367 status = "okay";
368};
369
370&mac {
371 pinctrl-names = "default", "sleep";
372 pinctrl-0 = <&cpsw_default>;
373 pinctrl-1 = <&cpsw_sleep>;
374 slaves = <1>;
375 status = "okay";
376};
377
378&davinci_mdio {
379 pinctrl-names = "default", "sleep";
380 pinctrl-0 = <&davinci_mdio_default>;
381 pinctrl-1 = <&davinci_mdio_sleep>;
382 status = "okay";
383};
384
385&cpsw_emac0 {
386 phy_id = <&davinci_mdio>, <0>;
387 phy-mode = "rgmii-txid";
388};
389
390&mmc1 {
391 status = "okay";
392 vmmc-supply = <&vmmc_fixed>;
393 bus-width = <4>;
394 pinctrl-names = "default";
395 pinctrl-0 = <&mmc1_pins>;
396};
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index d9d00ab863a2..0d6a68ce434a 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -83,14 +83,14 @@
83 label = "volume-up"; 83 label = "volume-up";
84 linux,code = <115>; 84 linux,code = <115>;
85 gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; 85 gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
86 gpio-key,wakeup; 86 wakeup-source;
87 }; 87 };
88 88
89 switch@10 { 89 switch@10 {
90 label = "volume-down"; 90 label = "volume-down";
91 linux,code = <114>; 91 linux,code = <114>;
92 gpios = <&gpio0 3 GPIO_ACTIVE_LOW>; 92 gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
93 gpio-key,wakeup; 93 wakeup-source;
94 }; 94 };
95 }; 95 };
96 96
@@ -168,215 +168,215 @@
168 168
169 matrix_keypad_s0: matrix_keypad_s0 { 169 matrix_keypad_s0: matrix_keypad_s0 {
170 pinctrl-single,pins = < 170 pinctrl-single,pins = <
171 0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a5.gpio1_21 */ 171 AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a5.gpio1_21 */
172 0x58 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a6.gpio1_22 */ 172 AM33XX_IOPAD(0x858, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a6.gpio1_22 */
173 0x64 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a9.gpio1_25 */ 173 AM33XX_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a9.gpio1_25 */
174 0x68 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a10.gpio1_26 */ 174 AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a10.gpio1_26 */
175 0x6c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.gpio1_27 */ 175 AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.gpio1_27 */
176 >; 176 >;
177 }; 177 };
178 178
179 volume_keys_s0: volume_keys_s0 { 179 volume_keys_s0: volume_keys_s0 {
180 pinctrl-single,pins = < 180 pinctrl-single,pins = <
181 0x150 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* spi0_sclk.gpio0_2 */ 181 AM33XX_IOPAD(0x950, PIN_INPUT_PULLDOWN | MUX_MODE7) /* spi0_sclk.gpio0_2 */
182 0x154 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* spi0_d0.gpio0_3 */ 182 AM33XX_IOPAD(0x954, PIN_INPUT_PULLDOWN | MUX_MODE7) /* spi0_d0.gpio0_3 */
183 >; 183 >;
184 }; 184 };
185 185
186 i2c0_pins: pinmux_i2c0_pins { 186 i2c0_pins: pinmux_i2c0_pins {
187 pinctrl-single,pins = < 187 pinctrl-single,pins = <
188 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ 188 AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */
189 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ 189 AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */
190 >; 190 >;
191 }; 191 };
192 192
193 i2c1_pins: pinmux_i2c1_pins { 193 i2c1_pins: pinmux_i2c1_pins {
194 pinctrl-single,pins = < 194 pinctrl-single,pins = <
195 0x158 (PIN_INPUT_PULLUP | MUX_MODE2) /* spi0_d1.i2c1_sda */ 195 AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE2) /* spi0_d1.i2c1_sda */
196 0x15c (PIN_INPUT_PULLUP | MUX_MODE2) /* spi0_cs0.i2c1_scl */ 196 AM33XX_IOPAD(0x95c, PIN_INPUT_PULLUP | MUX_MODE2) /* spi0_cs0.i2c1_scl */
197 >; 197 >;
198 }; 198 };
199 199
200 uart0_pins: pinmux_uart0_pins { 200 uart0_pins: pinmux_uart0_pins {
201 pinctrl-single,pins = < 201 pinctrl-single,pins = <
202 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ 202 AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
203 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ 203 AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
204 >; 204 >;
205 }; 205 };
206 206
207 uart1_pins: pinmux_uart1_pins { 207 uart1_pins: pinmux_uart1_pins {
208 pinctrl-single,pins = < 208 pinctrl-single,pins = <
209 0x178 (PIN_INPUT | MUX_MODE0) /* uart1_ctsn.uart1_ctsn */ 209 AM33XX_IOPAD(0x978, PIN_INPUT | MUX_MODE0) /* uart1_ctsn.uart1_ctsn */
210 0x17C (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_rtsn.uart1_rtsn */ 210 AM33XX_IOPAD(0x97C, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_rtsn.uart1_rtsn */
211 0x180 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */ 211 AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */
212 0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 212 AM33XX_IOPAD(0x984, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
213 >; 213 >;
214 }; 214 };
215 215
216 clkout2_pin: pinmux_clkout2_pin { 216 clkout2_pin: pinmux_clkout2_pin {
217 pinctrl-single,pins = < 217 pinctrl-single,pins = <
218 0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */ 218 AM33XX_IOPAD(0x9b4, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */
219 >; 219 >;
220 }; 220 };
221 221
222 nandflash_pins_s0: nandflash_pins_s0 { 222 nandflash_pins_s0: nandflash_pins_s0 {
223 pinctrl-single,pins = < 223 pinctrl-single,pins = <
224 0x0 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */ 224 AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */
225 0x4 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */ 225 AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */
226 0x8 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */ 226 AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */
227 0xc (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */ 227 AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */
228 0x10 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */ 228 AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */
229 0x14 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */ 229 AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */
230 0x18 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */ 230 AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */
231 0x1c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */ 231 AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */
232 0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */ 232 AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */
233 0x74 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_30 */ 233 AM33XX_IOPAD(0x874, PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_30 */
234 0x7c (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */ 234 AM33XX_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */
235 0x90 (PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */ 235 AM33XX_IOPAD(0x890, PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */
236 0x94 (PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */ 236 AM33XX_IOPAD(0x894, PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */
237 0x98 (PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */ 237 AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */
238 0x9c (PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */ 238 AM33XX_IOPAD(0x89c, PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */
239 >; 239 >;
240 }; 240 };
241 241
242 ecap0_pins: backlight_pins { 242 ecap0_pins: backlight_pins {
243 pinctrl-single,pins = < 243 pinctrl-single,pins = <
244 0x164 0x0 /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */ 244 AM33XX_IOPAD(0x964, MUX_MODE0) /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out */
245 >; 245 >;
246 }; 246 };
247 247
248 cpsw_default: cpsw_default { 248 cpsw_default: cpsw_default {
249 pinctrl-single,pins = < 249 pinctrl-single,pins = <
250 /* Slave 1 */ 250 /* Slave 1 */
251 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */ 251 AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */
252 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */ 252 AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */
253 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd3.rgmii1_td3 */ 253 AM33XX_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd3.rgmii1_td3 */
254 0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd2.rgmii1_td2 */ 254 AM33XX_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd2.rgmii1_td2 */
255 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */ 255 AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */
256 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */ 256 AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */
257 0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */ 257 AM33XX_IOPAD(0x92c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */
258 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rgmii1_rclk */ 258 AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rgmii1_rclk */
259 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd3.rgmii1_rd3 */ 259 AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd3.rgmii1_rd3 */
260 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd2.rgmii1_rd2 */ 260 AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd2.rgmii1_rd2 */
261 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */ 261 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */
262 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */ 262 AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */
263 >; 263 >;
264 }; 264 };
265 265
266 cpsw_sleep: cpsw_sleep { 266 cpsw_sleep: cpsw_sleep {
267 pinctrl-single,pins = < 267 pinctrl-single,pins = <
268 /* Slave 1 reset value */ 268 /* Slave 1 reset value */
269 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) 269 AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
270 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) 270 AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7)
271 0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7) 271 AM33XX_IOPAD(0x91c, PIN_INPUT_PULLDOWN | MUX_MODE7)
272 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7) 272 AM33XX_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE7)
273 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) 273 AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
274 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) 274 AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
275 0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7) 275 AM33XX_IOPAD(0x92c, PIN_INPUT_PULLDOWN | MUX_MODE7)
276 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7) 276 AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE7)
277 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7) 277 AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE7)
278 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7) 278 AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE7)
279 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) 279 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
280 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) 280 AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
281 >; 281 >;
282 }; 282 };
283 283
284 davinci_mdio_default: davinci_mdio_default { 284 davinci_mdio_default: davinci_mdio_default {
285 pinctrl-single,pins = < 285 pinctrl-single,pins = <
286 /* MDIO */ 286 /* MDIO */
287 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ 287 AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
288 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ 288 AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
289 >; 289 >;
290 }; 290 };
291 291
292 davinci_mdio_sleep: davinci_mdio_sleep { 292 davinci_mdio_sleep: davinci_mdio_sleep {
293 pinctrl-single,pins = < 293 pinctrl-single,pins = <
294 /* MDIO reset value */ 294 /* MDIO reset value */
295 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) 295 AM33XX_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
296 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) 296 AM33XX_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
297 >; 297 >;
298 }; 298 };
299 299
300 mmc1_pins: pinmux_mmc1_pins { 300 mmc1_pins: pinmux_mmc1_pins {
301 pinctrl-single,pins = < 301 pinctrl-single,pins = <
302 0x160 (PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */ 302 AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */
303 >; 303 >;
304 }; 304 };
305 305
306 mmc3_pins: pinmux_mmc3_pins { 306 mmc3_pins: pinmux_mmc3_pins {
307 pinctrl-single,pins = < 307 pinctrl-single,pins = <
308 0x44 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a1.mmc2_dat0, INPUT_PULLUP | MODE3 */ 308 AM33XX_IOPAD(0x844, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a1.mmc2_dat0, INPUT_PULLUP | MODE3 */
309 0x48 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a2.mmc2_dat1, INPUT_PULLUP | MODE3 */ 309 AM33XX_IOPAD(0x848, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a2.mmc2_dat1, INPUT_PULLUP | MODE3 */
310 0x4C (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a3.mmc2_dat2, INPUT_PULLUP | MODE3 */ 310 AM33XX_IOPAD(0x84c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a3.mmc2_dat2, INPUT_PULLUP | MODE3 */
311 0x78 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ben1.mmc2_dat3, INPUT_PULLUP | MODE3 */ 311 AM33XX_IOPAD(0x878, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ben1.mmc2_dat3, INPUT_PULLUP | MODE3 */
312 0x88 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_csn3.mmc2_cmd, INPUT_PULLUP | MODE3 */ 312 AM33XX_IOPAD(0x888, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_csn3.mmc2_cmd, INPUT_PULLUP | MODE3 */
313 0x8C (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_clk.mmc2_clk, INPUT_PULLUP | MODE3 */ 313 AM33XX_IOPAD(0x88c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_clk.mmc2_clk, INPUT_PULLUP | MODE3 */
314 >; 314 >;
315 }; 315 };
316 316
317 wlan_pins: pinmux_wlan_pins { 317 wlan_pins: pinmux_wlan_pins {
318 pinctrl-single,pins = < 318 pinctrl-single,pins = <
319 0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a0.gpio1_16 */ 319 AM33XX_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a0.gpio1_16 */
320 0x19C (PIN_INPUT | MUX_MODE7) /* mcasp0_ahclkr.gpio3_17 */ 320 AM33XX_IOPAD(0x99c, PIN_INPUT | MUX_MODE7) /* mcasp0_ahclkr.gpio3_17 */
321 0x1AC (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* mcasp0_ahclkx.gpio3_21 */ 321 AM33XX_IOPAD(0x9ac, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* mcasp0_ahclkx.gpio3_21 */
322 >; 322 >;
323 }; 323 };
324 324
325 lcd_pins_s0: lcd_pins_s0 { 325 lcd_pins_s0: lcd_pins_s0 {
326 pinctrl-single,pins = < 326 pinctrl-single,pins = <
327 0x20 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad8.lcd_data23 */ 327 AM33XX_IOPAD(0x820, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad8.lcd_data23 */
328 0x24 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad9.lcd_data22 */ 328 AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad9.lcd_data22 */
329 0x28 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad10.lcd_data21 */ 329 AM33XX_IOPAD(0x828, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad10.lcd_data21 */
330 0x2c (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad11.lcd_data20 */ 330 AM33XX_IOPAD(0x82c, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad11.lcd_data20 */
331 0x30 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad12.lcd_data19 */ 331 AM33XX_IOPAD(0x830, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad12.lcd_data19 */
332 0x34 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad13.lcd_data18 */ 332 AM33XX_IOPAD(0x834, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad13.lcd_data18 */
333 0x38 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad14.lcd_data17 */ 333 AM33XX_IOPAD(0x838, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad14.lcd_data17 */
334 0x3c (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad15.lcd_data16 */ 334 AM33XX_IOPAD(0x83c, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad15.lcd_data16 */
335 0xa0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */ 335 AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */
336 0xa4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data1.lcd_data1 */ 336 AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0) /* lcd_data1.lcd_data1 */
337 0xa8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data2.lcd_data2 */ 337 AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0) /* lcd_data2.lcd_data2 */
338 0xac (PIN_OUTPUT | MUX_MODE0) /* lcd_data3.lcd_data3 */ 338 AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0) /* lcd_data3.lcd_data3 */
339 0xb0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data4.lcd_data4 */ 339 AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0) /* lcd_data4.lcd_data4 */
340 0xb4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data5.lcd_data5 */ 340 AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0) /* lcd_data5.lcd_data5 */
341 0xb8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data6.lcd_data6 */ 341 AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0) /* lcd_data6.lcd_data6 */
342 0xbc (PIN_OUTPUT | MUX_MODE0) /* lcd_data7.lcd_data7 */ 342 AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0) /* lcd_data7.lcd_data7 */
343 0xc0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data8.lcd_data8 */ 343 AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0) /* lcd_data8.lcd_data8 */
344 0xc4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data9.lcd_data9 */ 344 AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0) /* lcd_data9.lcd_data9 */
345 0xc8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data10.lcd_data10 */ 345 AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0) /* lcd_data10.lcd_data10 */
346 0xcc (PIN_OUTPUT | MUX_MODE0) /* lcd_data11.lcd_data11 */ 346 AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0) /* lcd_data11.lcd_data11 */
347 0xd0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data12.lcd_data12 */ 347 AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0) /* lcd_data12.lcd_data12 */
348 0xd4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data13.lcd_data13 */ 348 AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0) /* lcd_data13.lcd_data13 */
349 0xd8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data14.lcd_data14 */ 349 AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0) /* lcd_data14.lcd_data14 */
350 0xdc (PIN_OUTPUT | MUX_MODE0) /* lcd_data15.lcd_data15 */ 350 AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0) /* lcd_data15.lcd_data15 */
351 0xe0 (PIN_OUTPUT | MUX_MODE0) /* lcd_vsync.lcd_vsync */ 351 AM33XX_IOPAD(0x8e0, PIN_OUTPUT | MUX_MODE0) /* lcd_vsync.lcd_vsync */
352 0xe4 (PIN_OUTPUT | MUX_MODE0) /* lcd_hsync.lcd_hsync */ 352 AM33XX_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE0) /* lcd_hsync.lcd_hsync */
353 0xe8 (PIN_OUTPUT | MUX_MODE0) /* lcd_pclk.lcd_pclk */ 353 AM33XX_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE0) /* lcd_pclk.lcd_pclk */
354 0xec (PIN_OUTPUT | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en */ 354 AM33XX_IOPAD(0x8ec, PIN_OUTPUT | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en */
355 >; 355 >;
356 }; 356 };
357 357
358 mcasp1_pins: mcasp1_pins { 358 mcasp1_pins: mcasp1_pins {
359 pinctrl-single,pins = < 359 pinctrl-single,pins = <
360 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */ 360 AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */
361 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */ 361 AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */
362 0x108 (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */ 362 AM33XX_IOPAD(0x908, PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */
363 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */ 363 AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */
364 >; 364 >;
365 }; 365 };
366 366
367 mcasp1_pins_sleep: mcasp1_pins_sleep { 367 mcasp1_pins_sleep: mcasp1_pins_sleep {
368 pinctrl-single,pins = < 368 pinctrl-single,pins = <
369 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7) 369 AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE7)
370 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7) 370 AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7)
371 0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7) 371 AM33XX_IOPAD(0x908, PIN_INPUT_PULLDOWN | MUX_MODE7)
372 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7) 372 AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7)
373 >; 373 >;
374 }; 374 };
375 375
376 dcan1_pins_default: dcan1_pins_default { 376 dcan1_pins_default: dcan1_pins_default {
377 pinctrl-single,pins = < 377 pinctrl-single,pins = <
378 0x168 (PIN_OUTPUT | MUX_MODE2) /* uart0_ctsn.d_can1_tx */ 378 AM33XX_IOPAD(0x968, PIN_OUTPUT | MUX_MODE2) /* uart0_ctsn.d_can1_tx */
379 0x16c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* uart0_rtsn.d_can1_rx */ 379 AM33XX_IOPAD(0x96c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* uart0_rtsn.d_can1_rx */
380 >; 380 >;
381 }; 381 };
382}; 382};
@@ -743,8 +743,8 @@
743&mmc3 { 743&mmc3 {
744 /* these are on the crossbar and are outlined in the 744 /* these are on the crossbar and are outlined in the
745 xbar-event-map element */ 745 xbar-event-map element */
746 dmas = <&edma 12 746 dmas = <&edma_xbar 12 0 1
747 &edma 13>; 747 &edma_xbar 13 0 2>;
748 dma-names = "tx", "rx"; 748 dma-names = "tx", "rx";
749 status = "okay"; 749 status = "okay";
750 vmmc-supply = <&wlan_en_reg>; 750 vmmc-supply = <&wlan_en_reg>;
@@ -766,11 +766,6 @@
766 }; 766 };
767}; 767};
768 768
769&edma {
770 ti,edma-xbar-event-map = /bits/ 16 <1 12
771 2 13>;
772};
773
774&sham { 769&sham {
775 status = "okay"; 770 status = "okay";
776}; 771};
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts
index 89442e98a837..282fe1b37095 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -123,7 +123,7 @@
123 label = "button2"; 123 label = "button2";
124 linux,code = <0x102>; 124 linux,code = <0x102>;
125 gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>; 125 gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>;
126 gpio-key,wakeup; 126 wakeup-source;
127 }; 127 };
128 128
129 switch@4 { 129 switch@4 {
@@ -204,234 +204,234 @@
204 204
205 lcd_pins_default: lcd_pins_default { 205 lcd_pins_default: lcd_pins_default {
206 pinctrl-single,pins = < 206 pinctrl-single,pins = <
207 0x20 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad8.lcd_data23 */ 207 AM33XX_IOPAD(0x820, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad8.lcd_data23 */
208 0x24 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad9.lcd_data22 */ 208 AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad9.lcd_data22 */
209 0x28 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad10.lcd_data21 */ 209 AM33XX_IOPAD(0x828, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad10.lcd_data21 */
210 0x2c (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad11.lcd_data20 */ 210 AM33XX_IOPAD(0x82c, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad11.lcd_data20 */
211 0x30 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad12.lcd_data19 */ 211 AM33XX_IOPAD(0x830, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad12.lcd_data19 */
212 0x34 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad13.lcd_data18 */ 212 AM33XX_IOPAD(0x834, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad13.lcd_data18 */
213 0x38 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad14.lcd_data17 */ 213 AM33XX_IOPAD(0x838, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad14.lcd_data17 */
214 0x3c (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad15.lcd_data16 */ 214 AM33XX_IOPAD(0x83c, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad15.lcd_data16 */
215 0xa0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */ 215 AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */
216 0xa4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data1.lcd_data1 */ 216 AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0) /* lcd_data1.lcd_data1 */
217 0xa8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data2.lcd_data2 */ 217 AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0) /* lcd_data2.lcd_data2 */
218 0xac (PIN_OUTPUT | MUX_MODE0) /* lcd_data3.lcd_data3 */ 218 AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0) /* lcd_data3.lcd_data3 */
219 0xb0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data4.lcd_data4 */ 219 AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0) /* lcd_data4.lcd_data4 */
220 0xb4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data5.lcd_data5 */ 220 AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0) /* lcd_data5.lcd_data5 */
221 0xb8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data6.lcd_data6 */ 221 AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0) /* lcd_data6.lcd_data6 */
222 0xbc (PIN_OUTPUT | MUX_MODE0) /* lcd_data7.lcd_data7 */ 222 AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0) /* lcd_data7.lcd_data7 */
223 0xc0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data8.lcd_data8 */ 223 AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0) /* lcd_data8.lcd_data8 */
224 0xc4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data9.lcd_data9 */ 224 AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0) /* lcd_data9.lcd_data9 */
225 0xc8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data10.lcd_data10 */ 225 AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0) /* lcd_data10.lcd_data10 */
226 0xcc (PIN_OUTPUT | MUX_MODE0) /* lcd_data11.lcd_data11 */ 226 AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0) /* lcd_data11.lcd_data11 */
227 0xd0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data12.lcd_data12 */ 227 AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0) /* lcd_data12.lcd_data12 */
228 0xd4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data13.lcd_data13 */ 228 AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0) /* lcd_data13.lcd_data13 */
229 0xd8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data14.lcd_data14 */ 229 AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0) /* lcd_data14.lcd_data14 */
230 0xdc (PIN_OUTPUT | MUX_MODE0) /* lcd_data15.lcd_data15 */ 230 AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0) /* lcd_data15.lcd_data15 */
231 0xe0 (PIN_OUTPUT | MUX_MODE0) /* lcd_vsync.lcd_vsync */ 231 AM33XX_IOPAD(0x8e0, PIN_OUTPUT | MUX_MODE0) /* lcd_vsync.lcd_vsync */
232 0xe4 (PIN_OUTPUT | MUX_MODE0) /* lcd_hsync.lcd_hsync */ 232 AM33XX_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE0) /* lcd_hsync.lcd_hsync */
233 0xe8 (PIN_OUTPUT | MUX_MODE0) /* lcd_pclk.lcd_pclk */ 233 AM33XX_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE0) /* lcd_pclk.lcd_pclk */
234 0xec (PIN_OUTPUT | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en */ 234 AM33XX_IOPAD(0x8ec, PIN_OUTPUT | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en */
235 >; 235 >;
236 }; 236 };
237 237
238 lcd_pins_sleep: lcd_pins_sleep { 238 lcd_pins_sleep: lcd_pins_sleep {
239 pinctrl-single,pins = < 239 pinctrl-single,pins = <
240 0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad8.lcd_data23 */ 240 AM33XX_IOPAD(0x820, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad8.lcd_data23 */
241 0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad9.lcd_data22 */ 241 AM33XX_IOPAD(0x824, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad9.lcd_data22 */
242 0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad10.lcd_data21 */ 242 AM33XX_IOPAD(0x828, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad10.lcd_data21 */
243 0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad11.lcd_data20 */ 243 AM33XX_IOPAD(0x82c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad11.lcd_data20 */
244 0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad12.lcd_data19 */ 244 AM33XX_IOPAD(0x830, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad12.lcd_data19 */
245 0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad13.lcd_data18 */ 245 AM33XX_IOPAD(0x834, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad13.lcd_data18 */
246 0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad14.lcd_data17 */ 246 AM33XX_IOPAD(0x838, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad14.lcd_data17 */
247 0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad15.lcd_data16 */ 247 AM33XX_IOPAD(0x83c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad15.lcd_data16 */
248 0xa0 (PULL_DISABLE | MUX_MODE7) /* lcd_data0.lcd_data0 */ 248 AM33XX_IOPAD(0x8a0, PULL_DISABLE | MUX_MODE7) /* lcd_data0.lcd_data0 */
249 0xa4 (PULL_DISABLE | MUX_MODE7) /* lcd_data1.lcd_data1 */ 249 AM33XX_IOPAD(0x8a4, PULL_DISABLE | MUX_MODE7) /* lcd_data1.lcd_data1 */
250 0xa8 (PULL_DISABLE | MUX_MODE7) /* lcd_data2.lcd_data2 */ 250 AM33XX_IOPAD(0x8a8, PULL_DISABLE | MUX_MODE7) /* lcd_data2.lcd_data2 */
251 0xac (PULL_DISABLE | MUX_MODE7) /* lcd_data3.lcd_data3 */ 251 AM33XX_IOPAD(0x8ac, PULL_DISABLE | MUX_MODE7) /* lcd_data3.lcd_data3 */
252 0xb0 (PULL_DISABLE | MUX_MODE7) /* lcd_data4.lcd_data4 */ 252 AM33XX_IOPAD(0x8b0, PULL_DISABLE | MUX_MODE7) /* lcd_data4.lcd_data4 */
253 0xb4 (PULL_DISABLE | MUX_MODE7) /* lcd_data5.lcd_data5 */ 253 AM33XX_IOPAD(0x8b4, PULL_DISABLE | MUX_MODE7) /* lcd_data5.lcd_data5 */
254 0xb8 (PULL_DISABLE | MUX_MODE7) /* lcd_data6.lcd_data6 */ 254 AM33XX_IOPAD(0x8b8, PULL_DISABLE | MUX_MODE7) /* lcd_data6.lcd_data6 */
255 0xbc (PULL_DISABLE | MUX_MODE7) /* lcd_data7.lcd_data7 */ 255 AM33XX_IOPAD(0x8bc, PULL_DISABLE | MUX_MODE7) /* lcd_data7.lcd_data7 */
256 0xc0 (PULL_DISABLE | MUX_MODE7) /* lcd_data8.lcd_data8 */ 256 AM33XX_IOPAD(0x8c0, PULL_DISABLE | MUX_MODE7) /* lcd_data8.lcd_data8 */
257 0xc4 (PULL_DISABLE | MUX_MODE7) /* lcd_data9.lcd_data9 */ 257 AM33XX_IOPAD(0x8c4, PULL_DISABLE | MUX_MODE7) /* lcd_data9.lcd_data9 */
258 0xc8 (PULL_DISABLE | MUX_MODE7) /* lcd_data10.lcd_data10 */ 258 AM33XX_IOPAD(0x8c8, PULL_DISABLE | MUX_MODE7) /* lcd_data10.lcd_data10 */
259 0xcc (PULL_DISABLE | MUX_MODE7) /* lcd_data11.lcd_data11 */ 259 AM33XX_IOPAD(0x8cc, PULL_DISABLE | MUX_MODE7) /* lcd_data11.lcd_data11 */
260 0xd0 (PULL_DISABLE | MUX_MODE7) /* lcd_data12.lcd_data12 */ 260 AM33XX_IOPAD(0x8d0, PULL_DISABLE | MUX_MODE7) /* lcd_data12.lcd_data12 */
261 0xd4 (PULL_DISABLE | MUX_MODE7) /* lcd_data13.lcd_data13 */ 261 AM33XX_IOPAD(0x8d4, PULL_DISABLE | MUX_MODE7) /* lcd_data13.lcd_data13 */
262 0xd8 (PULL_DISABLE | MUX_MODE7) /* lcd_data14.lcd_data14 */ 262 AM33XX_IOPAD(0x8d8, PULL_DISABLE | MUX_MODE7) /* lcd_data14.lcd_data14 */
263 0xdc (PULL_DISABLE | MUX_MODE7) /* lcd_data15.lcd_data15 */ 263 AM33XX_IOPAD(0x8dc, PULL_DISABLE | MUX_MODE7) /* lcd_data15.lcd_data15 */
264 0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_vsync.lcd_vsync */ 264 AM33XX_IOPAD(0x8e0, PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_vsync.lcd_vsync */
265 0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_hsync.lcd_hsync */ 265 AM33XX_IOPAD(0x8e4, PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_hsync.lcd_hsync */
266 0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_pclk.lcd_pclk */ 266 AM33XX_IOPAD(0x8e8, PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_pclk.lcd_pclk */
267 0xec (PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_ac_bias_en.lcd_ac_bias_en */ 267 AM33XX_IOPAD(0x8ec, PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_ac_bias_en.lcd_ac_bias_en */
268 >; 268 >;
269 }; 269 };
270 270
271 271
272 user_leds_s0: user_leds_s0 { 272 user_leds_s0: user_leds_s0 {
273 pinctrl-single,pins = < 273 pinctrl-single,pins = <
274 0x10 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad4.gpio1_4 */ 274 AM33XX_IOPAD(0x810, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad4.gpio1_4 */
275 0x14 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad5.gpio1_5 */ 275 AM33XX_IOPAD(0x814, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad5.gpio1_5 */
276 0x18 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad6.gpio1_6 */ 276 AM33XX_IOPAD(0x818, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad6.gpio1_6 */
277 0x1c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad7.gpio1_7 */ 277 AM33XX_IOPAD(0x81c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad7.gpio1_7 */
278 >; 278 >;
279 }; 279 };
280 280
281 gpio_keys_s0: gpio_keys_s0 { 281 gpio_keys_s0: gpio_keys_s0 {
282 pinctrl-single,pins = < 282 pinctrl-single,pins = <
283 0x94 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_oen_ren.gpio2_3 */ 283 AM33XX_IOPAD(0x894, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_oen_ren.gpio2_3 */
284 0x90 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_advn_ale.gpio2_2 */ 284 AM33XX_IOPAD(0x890, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_advn_ale.gpio2_2 */
285 0x70 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_wait0.gpio0_30 */ 285 AM33XX_IOPAD(0x870, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_wait0.gpio0_30 */
286 0x9c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ben0_cle.gpio2_5 */ 286 AM33XX_IOPAD(0x89c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ben0_cle.gpio2_5 */
287 >; 287 >;
288 }; 288 };
289 289
290 i2c0_pins: pinmux_i2c0_pins { 290 i2c0_pins: pinmux_i2c0_pins {
291 pinctrl-single,pins = < 291 pinctrl-single,pins = <
292 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ 292 AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */
293 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ 293 AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */
294 >; 294 >;
295 }; 295 };
296 296
297 uart0_pins: pinmux_uart0_pins { 297 uart0_pins: pinmux_uart0_pins {
298 pinctrl-single,pins = < 298 pinctrl-single,pins = <
299 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ 299 AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
300 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ 300 AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
301 >; 301 >;
302 }; 302 };
303 303
304 clkout2_pin: pinmux_clkout2_pin { 304 clkout2_pin: pinmux_clkout2_pin {
305 pinctrl-single,pins = < 305 pinctrl-single,pins = <
306 0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */ 306 AM33XX_IOPAD(0x9b4, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */
307 >; 307 >;
308 }; 308 };
309 309
310 ecap2_pins: backlight_pins { 310 ecap2_pins: backlight_pins {
311 pinctrl-single,pins = < 311 pinctrl-single,pins = <
312 0x19c 0x4 /* mcasp0_ahclkr.ecap2_in_pwm2_out MODE4 */ 312 AM33XX_IOPAD(0x99c, MUX_MODE4) /* mcasp0_ahclkr.ecap2_in_pwm2_out */
313 >; 313 >;
314 }; 314 };
315 315
316 cpsw_default: cpsw_default { 316 cpsw_default: cpsw_default {
317 pinctrl-single,pins = < 317 pinctrl-single,pins = <
318 /* Slave 1 */ 318 /* Slave 1 */
319 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */ 319 AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */
320 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */ 320 AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */
321 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd3.rgmii1_td3 */ 321 AM33XX_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd3.rgmii1_td3 */
322 0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd2.rgmii1_td2 */ 322 AM33XX_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd2.rgmii1_td2 */
323 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */ 323 AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */
324 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */ 324 AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */
325 0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */ 325 AM33XX_IOPAD(0x92c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */
326 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rgmii1_rclk */ 326 AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rgmii1_rclk */
327 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd3.rgmii1_rd3 */ 327 AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd3.rgmii1_rd3 */
328 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd2.rgmii1_rd2 */ 328 AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd2.rgmii1_rd2 */
329 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */ 329 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */
330 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */ 330 AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */
331 331
332 /* Slave 2 */ 332 /* Slave 2 */
333 0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a0.rgmii2_tctl */ 333 AM33XX_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a0.rgmii2_tctl */
334 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a1.rgmii2_rctl */ 334 AM33XX_IOPAD(0x844, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a1.rgmii2_rctl */
335 0x48 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a2.rgmii2_td3 */ 335 AM33XX_IOPAD(0x848, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a2.rgmii2_td3 */
336 0x4c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a3.rgmii2_td2 */ 336 AM33XX_IOPAD(0x84c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a3.rgmii2_td2 */
337 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a4.rgmii2_td1 */ 337 AM33XX_IOPAD(0x850, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a4.rgmii2_td1 */
338 0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a5.rgmii2_td0 */ 338 AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a5.rgmii2_td0 */
339 0x58 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a6.rgmii2_tclk */ 339 AM33XX_IOPAD(0x858, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a6.rgmii2_tclk */
340 0x5c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a7.rgmii2_rclk */ 340 AM33XX_IOPAD(0x85c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a7.rgmii2_rclk */
341 0x60 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a8.rgmii2_rd3 */ 341 AM33XX_IOPAD(0x860, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a8.rgmii2_rd3 */
342 0x64 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a9.rgmii2_rd2 */ 342 AM33XX_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a9.rgmii2_rd2 */
343 0x68 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a10.rgmii2_rd1 */ 343 AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a10.rgmii2_rd1 */
344 0x6c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a11.rgmii2_rd0 */ 344 AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a11.rgmii2_rd0 */
345 >; 345 >;
346 }; 346 };
347 347
348 cpsw_sleep: cpsw_sleep { 348 cpsw_sleep: cpsw_sleep {
349 pinctrl-single,pins = < 349 pinctrl-single,pins = <
350 /* Slave 1 reset value */ 350 /* Slave 1 reset value */
351 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) 351 AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
352 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) 352 AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7)
353 0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7) 353 AM33XX_IOPAD(0x91c, PIN_INPUT_PULLDOWN | MUX_MODE7)
354 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7) 354 AM33XX_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE7)
355 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) 355 AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
356 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) 356 AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
357 0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7) 357 AM33XX_IOPAD(0x92c, PIN_INPUT_PULLDOWN | MUX_MODE7)
358 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7) 358 AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE7)
359 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7) 359 AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE7)
360 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7) 360 AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE7)
361 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) 361 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
362 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) 362 AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
363 363
364 /* Slave 2 reset value*/ 364 /* Slave 2 reset value*/
365 0x40 (PIN_INPUT_PULLDOWN | MUX_MODE7) 365 AM33XX_IOPAD(0x840, PIN_INPUT_PULLDOWN | MUX_MODE7)
366 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE7) 366 AM33XX_IOPAD(0x844, PIN_INPUT_PULLDOWN | MUX_MODE7)
367 0x48 (PIN_INPUT_PULLDOWN | MUX_MODE7) 367 AM33XX_IOPAD(0x848, PIN_INPUT_PULLDOWN | MUX_MODE7)
368 0x4c (PIN_INPUT_PULLDOWN | MUX_MODE7) 368 AM33XX_IOPAD(0x84c, PIN_INPUT_PULLDOWN | MUX_MODE7)
369 0x50 (PIN_INPUT_PULLDOWN | MUX_MODE7) 369 AM33XX_IOPAD(0x850, PIN_INPUT_PULLDOWN | MUX_MODE7)
370 0x54 (PIN_INPUT_PULLDOWN | MUX_MODE7) 370 AM33XX_IOPAD(0x854, PIN_INPUT_PULLDOWN | MUX_MODE7)
371 0x58 (PIN_INPUT_PULLDOWN | MUX_MODE7) 371 AM33XX_IOPAD(0x858, PIN_INPUT_PULLDOWN | MUX_MODE7)
372 0x5c (PIN_INPUT_PULLDOWN | MUX_MODE7) 372 AM33XX_IOPAD(0x85c, PIN_INPUT_PULLDOWN | MUX_MODE7)
373 0x60 (PIN_INPUT_PULLDOWN | MUX_MODE7) 373 AM33XX_IOPAD(0x860, PIN_INPUT_PULLDOWN | MUX_MODE7)
374 0x64 (PIN_INPUT_PULLDOWN | MUX_MODE7) 374 AM33XX_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE7)
375 0x68 (PIN_INPUT_PULLDOWN | MUX_MODE7) 375 AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE7)
376 0x6c (PIN_INPUT_PULLDOWN | MUX_MODE7) 376 AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE7)
377 >; 377 >;
378 }; 378 };
379 379
380 davinci_mdio_default: davinci_mdio_default { 380 davinci_mdio_default: davinci_mdio_default {
381 pinctrl-single,pins = < 381 pinctrl-single,pins = <
382 /* MDIO */ 382 /* MDIO */
383 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ 383 AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
384 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ 384 AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
385 >; 385 >;
386 }; 386 };
387 387
388 davinci_mdio_sleep: davinci_mdio_sleep { 388 davinci_mdio_sleep: davinci_mdio_sleep {
389 pinctrl-single,pins = < 389 pinctrl-single,pins = <
390 /* MDIO reset value */ 390 /* MDIO reset value */
391 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) 391 AM33XX_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
392 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) 392 AM33XX_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
393 >; 393 >;
394 }; 394 };
395 395
396 mmc1_pins: pinmux_mmc1_pins { 396 mmc1_pins: pinmux_mmc1_pins {
397 pinctrl-single,pins = < 397 pinctrl-single,pins = <
398 0x160 (PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */ 398 AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */
399 >; 399 >;
400 }; 400 };
401 401
402 mcasp1_pins: mcasp1_pins { 402 mcasp1_pins: mcasp1_pins {
403 pinctrl-single,pins = < 403 pinctrl-single,pins = <
404 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */ 404 AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */
405 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */ 405 AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */
406 0x108 (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */ 406 AM33XX_IOPAD(0x908, PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */
407 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */ 407 AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */
408 >; 408 >;
409 }; 409 };
410 410
411 mcasp1_pins_sleep: mcasp1_pins_sleep { 411 mcasp1_pins_sleep: mcasp1_pins_sleep {
412 pinctrl-single,pins = < 412 pinctrl-single,pins = <
413 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7) 413 AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE7)
414 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7) 414 AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7)
415 0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7) 415 AM33XX_IOPAD(0x908, PIN_INPUT_PULLDOWN | MUX_MODE7)
416 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7) 416 AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7)
417 >; 417 >;
418 }; 418 };
419 419
420 mmc2_pins: pinmux_mmc2_pins { 420 mmc2_pins: pinmux_mmc2_pins {
421 pinctrl-single,pins = < 421 pinctrl-single,pins = <
422 0x74 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_31 */ 422 AM33XX_IOPAD(0x874, PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_31 */
423 0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */ 423 AM33XX_IOPAD(0x880, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
424 0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */ 424 AM33XX_IOPAD(0x884, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
425 0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */ 425 AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */
426 0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */ 426 AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */
427 0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */ 427 AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */
428 0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */ 428 AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */
429 >; 429 >;
430 }; 430 };
431 431
432 wl12xx_gpio: pinmux_wl12xx_gpio { 432 wl12xx_gpio: pinmux_wl12xx_gpio {
433 pinctrl-single,pins = < 433 pinctrl-single,pins = <
434 0x7c (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_csn0.gpio1_29 */ 434 AM33XX_IOPAD(0x87c, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_csn0.gpio1_29 */
435 >; 435 >;
436 }; 436 };
437}; 437};
diff --git a/arch/arm/boot/dts/am335x-lxm.dts b/arch/arm/boot/dts/am335x-lxm.dts
index 5c5667a3624d..d97b0efa43f3 100644
--- a/arch/arm/boot/dts/am335x-lxm.dts
+++ b/arch/arm/boot/dts/am335x-lxm.dts
@@ -46,109 +46,109 @@
46&am33xx_pinmux { 46&am33xx_pinmux {
47 mmc1_pins: pinmux_mmc1_pins { 47 mmc1_pins: pinmux_mmc1_pins {
48 pinctrl-single,pins = < 48 pinctrl-single,pins = <
49 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3 */ 49 AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3 */
50 0xf4 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2 */ 50 AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2 */
51 0xf8 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1 */ 51 AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1 */
52 0xfc (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0 */ 52 AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0 */
53 0x100 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk */ 53 AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk */
54 0x104 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd */ 54 AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd */
55 >; 55 >;
56 }; 56 };
57 57
58 i2c0_pins: pinmux_i2c0_pins { 58 i2c0_pins: pinmux_i2c0_pins {
59 pinctrl-single,pins = < 59 pinctrl-single,pins = <
60 0x188 (PIN_INPUT | MUX_MODE0) /* i2c0_sda.i2c0_sda */ 60 AM33XX_IOPAD(0x988, PIN_INPUT | MUX_MODE0) /* i2c0_sda.i2c0_sda */
61 0x18c (PIN_INPUT | MUX_MODE0) /* i2c0_scl.i2c0_scl */ 61 AM33XX_IOPAD(0x98c, PIN_INPUT | MUX_MODE0) /* i2c0_scl.i2c0_scl */
62 >; 62 >;
63 }; 63 };
64 64
65 cpsw_default: cpsw_default { 65 cpsw_default: cpsw_default {
66 pinctrl-single,pins = < 66 pinctrl-single,pins = <
67 /* Slave 1 */ 67 /* Slave 1 */
68 0x64 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_int */ 68 AM33XX_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_int */
69 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* rmii1_crs_dv */ 69 AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* rmii1_crs_dv */
70 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* rmii1_rxer */ 70 AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE1) /* rmii1_rxer */
71 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* rmii1_txen */ 71 AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* rmii1_txen */
72 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* rmii1_td1 */ 72 AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* rmii1_td1 */
73 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* rmii1_td0 */ 73 AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* rmii1_td0 */
74 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* rmii1_rd1 */ 74 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* rmii1_rd1 */
75 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* rmii1_rd0 */ 75 AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE1) /* rmii1_rd0 */
76 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii1_refclk */ 76 AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii1_refclk */
77 77
78 /* Slave 2 */ 78 /* Slave 2 */
79 0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* rmii2_txen */ 79 AM33XX_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* rmii2_txen */
80 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* rmii2_td1 */ 80 AM33XX_IOPAD(0x850, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* rmii2_td1 */
81 0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* rmii2_td0 */ 81 AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* rmii2_td0 */
82 0x68 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* rmii2_rd1 */ 82 AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE3) /* rmii2_rd1 */
83 0x6c (PIN_INPUT_PULLDOWN | MUX_MODE3) /* rmii2_rd0 */ 83 AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE3) /* rmii2_rd0 */
84 0x70 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* rmii2_crs_dv */ 84 AM33XX_IOPAD(0x870, PIN_INPUT_PULLDOWN | MUX_MODE3) /* rmii2_crs_dv */
85 0x74 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* rmii2_rxer */ 85 AM33XX_IOPAD(0x874, PIN_INPUT_PULLDOWN | MUX_MODE3) /* rmii2_rxer */
86 0x78 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_int */ 86 AM33XX_IOPAD(0x878, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_int */
87 0x108 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* rmii2_refclk */ 87 AM33XX_IOPAD(0x908, PIN_INPUT_PULLDOWN | MUX_MODE1) /* rmii2_refclk */
88 >; 88 >;
89 }; 89 };
90 90
91 cpsw_sleep: cpsw_sleep { 91 cpsw_sleep: cpsw_sleep {
92 pinctrl-single,pins = < 92 pinctrl-single,pins = <
93 /* Slave 1 reset value */ 93 /* Slave 1 reset value */
94 0x64 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_int */ 94 AM33XX_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_int */
95 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_crs_dv */ 95 AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_crs_dv */
96 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_rxer */ 96 AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_rxer */
97 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_txen */ 97 AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_txen */
98 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_td1 */ 98 AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_td1 */
99 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_td0 */ 99 AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_td0 */
100 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_rd1 */ 100 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_rd1 */
101 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_rd0 */ 101 AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_rd0 */
102 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_refclk */ 102 AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii1_refclk */
103 103
104 /* Slave 2 reset value*/ 104 /* Slave 2 reset value*/
105 0x40 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_txen */ 105 AM33XX_IOPAD(0x840, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_txen */
106 0x50 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_td1 */ 106 AM33XX_IOPAD(0x850, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_td1 */
107 0x54 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_td0 */ 107 AM33XX_IOPAD(0x854, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_td0 */
108 0x68 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_rd1 */ 108 AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_rd1 */
109 0x6c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_rd0 */ 109 AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_rd0 */
110 0x70 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_crs_dv */ 110 AM33XX_IOPAD(0x870, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_crs_dv */
111 0x74 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_rxer */ 111 AM33XX_IOPAD(0x874, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_rxer */
112 0x78 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_int */ 112 AM33XX_IOPAD(0x878, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_int */
113 0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_refclk */ 113 AM33XX_IOPAD(0x908, PIN_INPUT_PULLDOWN | MUX_MODE7) /* rmii2_refclk */
114 >; 114 >;
115 }; 115 };
116 116
117 davinci_mdio_default: davinci_mdio_default { 117 davinci_mdio_default: davinci_mdio_default {
118 pinctrl-single,pins = < 118 pinctrl-single,pins = <
119 /* MDIO */ 119 /* MDIO */
120 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ 120 AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
121 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ 121 AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
122 >; 122 >;
123 }; 123 };
124 124
125 davinci_mdio_sleep: davinci_mdio_sleep { 125 davinci_mdio_sleep: davinci_mdio_sleep {
126 pinctrl-single,pins = < 126 pinctrl-single,pins = <
127 /* MDIO reset value */ 127 /* MDIO reset value */
128 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) 128 AM33XX_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
129 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) 129 AM33XX_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
130 >; 130 >;
131 }; 131 };
132 132
133 emmc_pins: pinmux_emmc_pins { 133 emmc_pins: pinmux_emmc_pins {
134 pinctrl-single,pins = < 134 pinctrl-single,pins = <
135 0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */ 135 AM33XX_IOPAD(0x880, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
136 0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */ 136 AM33XX_IOPAD(0x884, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
137 0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */ 137 AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */
138 0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */ 138 AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */
139 0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */ 139 AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */
140 0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */ 140 AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */
141 0x10 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */ 141 AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */
142 0x14 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */ 142 AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */
143 0x18 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */ 143 AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */
144 0x1c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */ 144 AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */
145 >; 145 >;
146 }; 146 };
147 147
148 uart0_pins: pinmux_uart0_pins { 148 uart0_pins: pinmux_uart0_pins {
149 pinctrl-single,pins = < 149 pinctrl-single,pins = <
150 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ 150 AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
151 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ 151 AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
152 >; 152 >;
153 }; 153 };
154}; 154};
diff --git a/arch/arm/boot/dts/am335x-nano.dts b/arch/arm/boot/dts/am335x-nano.dts
index 5ed4ca6eaf55..77559a1ded60 100644
--- a/arch/arm/boot/dts/am335x-nano.dts
+++ b/arch/arm/boot/dts/am335x-nano.dts
@@ -41,121 +41,121 @@
41 41
42 misc_pins: misc_pins { 42 misc_pins: misc_pins {
43 pinctrl-single,pins = < 43 pinctrl-single,pins = <
44 0x15c (PIN_OUTPUT | MUX_MODE7) /* spi0_cs0.gpio0_5 */ 44 AM33XX_IOPAD(0x95c, PIN_OUTPUT | MUX_MODE7) /* spi0_cs0.gpio0_5 */
45 >; 45 >;
46 }; 46 };
47 47
48 gpmc_pins: gpmc_pins { 48 gpmc_pins: gpmc_pins {
49 pinctrl-single,pins = < 49 pinctrl-single,pins = <
50 0x0 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */ 50 AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */
51 0x4 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */ 51 AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */
52 0x8 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */ 52 AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */
53 0xc (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */ 53 AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */
54 0x10 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */ 54 AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */
55 0x14 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */ 55 AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */
56 0x18 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */ 56 AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */
57 0x1c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */ 57 AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */
58 0x20 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad8.gpmc_ad8 */ 58 AM33XX_IOPAD(0x820, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad8.gpmc_ad8 */
59 0x24 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad9.gpmc_ad9 */ 59 AM33XX_IOPAD(0x824, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad9.gpmc_ad9 */
60 0x28 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad10.gpmc_ad10 */ 60 AM33XX_IOPAD(0x828, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad10.gpmc_ad10 */
61 0x2c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad11.gpmc_ad11 */ 61 AM33XX_IOPAD(0x82c, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad11.gpmc_ad11 */
62 0x30 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad12.gpmc_ad12 */ 62 AM33XX_IOPAD(0x830, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad12.gpmc_ad12 */
63 0x34 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad13.gpmc_ad13 */ 63 AM33XX_IOPAD(0x834, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad13.gpmc_ad13 */
64 0x38 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad14.gpmc_ad14 */ 64 AM33XX_IOPAD(0x838, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad14.gpmc_ad14 */
65 0x3c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad15.gpmc_ad15 */ 65 AM33XX_IOPAD(0x83c, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad15.gpmc_ad15 */
66 66
67 0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */ 67 AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */
68 0x7c (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */ 68 AM33XX_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */
69 0x80 (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn1.gpmc_csn1 */ 69 AM33XX_IOPAD(0x880, PIN_OUTPUT | MUX_MODE0) /* gpmc_csn1.gpmc_csn1 */
70 0x84 (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn2.gpmc_csn2 */ 70 AM33XX_IOPAD(0x884, PIN_OUTPUT | MUX_MODE0) /* gpmc_csn2.gpmc_csn2 */
71 0x88 (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn3.gpmc_csn3 */ 71 AM33XX_IOPAD(0x888, PIN_OUTPUT | MUX_MODE0) /* gpmc_csn3.gpmc_csn3 */
72 72
73 0x90 (PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */ 73 AM33XX_IOPAD(0x890, PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */
74 0x94 (PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */ 74 AM33XX_IOPAD(0x894, PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */
75 0x98 (PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */ 75 AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */
76 0x9c (PIN_OUTPUT | MUX_MODE0) /* gpmc_ben0_cle.gpmc_ben0_cle */ 76 AM33XX_IOPAD(0x89c, PIN_OUTPUT | MUX_MODE0) /* gpmc_ben0_cle.gpmc_ben0_cle */
77 77
78 0xa4 (PIN_OUTPUT | MUX_MODE1) /* lcd_data1.gpmc_a1 */ 78 AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE1) /* lcd_data1.gpmc_a1 */
79 0xa8 (PIN_OUTPUT | MUX_MODE1) /* lcd_data2.gpmc_a2 */ 79 AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE1) /* lcd_data2.gpmc_a2 */
80 0xac (PIN_OUTPUT | MUX_MODE1) /* lcd_data3.gpmc_a3 */ 80 AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE1) /* lcd_data3.gpmc_a3 */
81 0xb0 (PIN_OUTPUT | MUX_MODE1) /* lcd_data4.gpmc_a4 */ 81 AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE1) /* lcd_data4.gpmc_a4 */
82 0xb4 (PIN_OUTPUT | MUX_MODE1) /* lcd_data5.gpmc_a5 */ 82 AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE1) /* lcd_data5.gpmc_a5 */
83 0xb8 (PIN_OUTPUT | MUX_MODE1) /* lcd_data6.gpmc_a6 */ 83 AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE1) /* lcd_data6.gpmc_a6 */
84 0xbc (PIN_OUTPUT | MUX_MODE1) /* lcd_data7.gpmc_a7 */ 84 AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE1) /* lcd_data7.gpmc_a7 */
85 85
86 0xe0 (PIN_OUTPUT | MUX_MODE1) /* lcd_vsync.gpmc_a8 */ 86 AM33XX_IOPAD(0x8e0, PIN_OUTPUT | MUX_MODE1) /* lcd_vsync.gpmc_a8 */
87 0xe4 (PIN_OUTPUT | MUX_MODE1) /* lcd_hsync.gpmc_a9 */ 87 AM33XX_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE1) /* lcd_hsync.gpmc_a9 */
88 0xe8 (PIN_OUTPUT | MUX_MODE1) /* lcd_pclk.gpmc_a10 */ 88 AM33XX_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE1) /* lcd_pclk.gpmc_a10 */
89 >; 89 >;
90 }; 90 };
91 91
92 i2c0_pins: i2c0_pins { 92 i2c0_pins: i2c0_pins {
93 pinctrl-single,pins = < 93 pinctrl-single,pins = <
94 0x188 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* i2c0_sda.i2c0_sda */ 94 AM33XX_IOPAD(0x988, PIN_INPUT_PULLDOWN | MUX_MODE0) /* i2c0_sda.i2c0_sda */
95 0x18c (PIN_INPUT_PULLDOWN | MUX_MODE0) /* i2c0_scl.i2c0_scl */ 95 AM33XX_IOPAD(0x98c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* i2c0_scl.i2c0_scl */
96 >; 96 >;
97 }; 97 };
98 98
99 uart0_pins: uart0_pins { 99 uart0_pins: uart0_pins {
100 pinctrl-single,pins = < 100 pinctrl-single,pins = <
101 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ 101 AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
102 0x174 (PIN_OUTPUT | MUX_MODE0) /* uart0_txd.uart0_txd */ 102 AM33XX_IOPAD(0x974, PIN_OUTPUT | MUX_MODE0) /* uart0_txd.uart0_txd */
103 >; 103 >;
104 }; 104 };
105 105
106 uart1_pins: uart1_pins { 106 uart1_pins: uart1_pins {
107 pinctrl-single,pins = < 107 pinctrl-single,pins = <
108 0x178 (PIN_OUTPUT | MUX_MODE7) /* uart1_ctsn.uart1_ctsn */ 108 AM33XX_IOPAD(0x978, PIN_OUTPUT | MUX_MODE7) /* uart1_ctsn.uart1_ctsn */
109 0x17c (PIN_OUTPUT | MUX_MODE7) /* uart1_rtsn.uart1_rtsn */ 109 AM33XX_IOPAD(0x97c, PIN_OUTPUT | MUX_MODE7) /* uart1_rtsn.uart1_rtsn */
110 0x180 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */ 110 AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */
111 0x184 (PIN_OUTPUT | MUX_MODE0) /* uart1_txd.uart1_txd */ 111 AM33XX_IOPAD(0x984, PIN_OUTPUT | MUX_MODE0) /* uart1_txd.uart1_txd */
112 >; 112 >;
113 }; 113 };
114 114
115 uart2_pins: uart2_pins { 115 uart2_pins: uart2_pins {
116 pinctrl-single,pins = < 116 pinctrl-single,pins = <
117 0xc0 (PIN_INPUT_PULLUP | MUX_MODE7) /* lcd_data8.gpio2[14] */ 117 AM33XX_IOPAD(0x8c0, PIN_INPUT_PULLUP | MUX_MODE7) /* lcd_data8.gpio2[14] */
118 0xc4 (PIN_OUTPUT | MUX_MODE7) /* lcd_data9.gpio2[15] */ 118 AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE7) /* lcd_data9.gpio2[15] */
119 0x150 (PIN_INPUT | MUX_MODE1) /* spi0_sclk.uart2_rxd */ 119 AM33XX_IOPAD(0x950, PIN_INPUT | MUX_MODE1) /* spi0_sclk.uart2_rxd */
120 0x154 (PIN_OUTPUT | MUX_MODE1) /* spi0_d0.uart2_txd */ 120 AM33XX_IOPAD(0x954, PIN_OUTPUT | MUX_MODE1) /* spi0_d0.uart2_txd */
121 >; 121 >;
122 }; 122 };
123 123
124 uart3_pins: uart3_pins { 124 uart3_pins: uart3_pins {
125 pinctrl-single,pins = < 125 pinctrl-single,pins = <
126 0xc8 (PIN_INPUT_PULLUP | MUX_MODE6) /* lcd_data10.uart3_ctsn */ 126 AM33XX_IOPAD(0x8c8, PIN_INPUT_PULLUP | MUX_MODE6) /* lcd_data10.uart3_ctsn */
127 0xcc (PIN_OUTPUT | MUX_MODE6) /* lcd_data11.uart3_rtsn */ 127 AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE6) /* lcd_data11.uart3_rtsn */
128 0x160 (PIN_INPUT | MUX_MODE1) /* spi0_cs1.uart3_rxd */ 128 AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE1) /* spi0_cs1.uart3_rxd */
129 0x164 (PIN_OUTPUT | MUX_MODE1) /* ecap0_in_pwm0_out.uart3_txd */ 129 AM33XX_IOPAD(0x964, PIN_OUTPUT | MUX_MODE1) /* ecap0_in_pwm0_out.uart3_txd */
130 >; 130 >;
131 }; 131 };
132 132
133 uart4_pins: uart4_pins { 133 uart4_pins: uart4_pins {
134 pinctrl-single,pins = < 134 pinctrl-single,pins = <
135 0xd0 (PIN_INPUT_PULLUP | MUX_MODE6) /* lcd_data12.uart4_ctsn */ 135 AM33XX_IOPAD(0x8d0, PIN_INPUT_PULLUP | MUX_MODE6) /* lcd_data12.uart4_ctsn */
136 0xd4 (PIN_OUTPUT | MUX_MODE6) /* lcd_data13.uart4_rtsn */ 136 AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE6) /* lcd_data13.uart4_rtsn */
137 0x168 (PIN_INPUT | MUX_MODE1) /* uart0_ctsn.uart4_rxd */ 137 AM33XX_IOPAD(0x968, PIN_INPUT | MUX_MODE1) /* uart0_ctsn.uart4_rxd */
138 0x16c (PIN_OUTPUT | MUX_MODE1) /* uart0_rtsn.uart4_txd */ 138 AM33XX_IOPAD(0x96c, PIN_OUTPUT | MUX_MODE1) /* uart0_rtsn.uart4_txd */
139 >; 139 >;
140 }; 140 };
141 141
142 uart5_pins: uart5_pins { 142 uart5_pins: uart5_pins {
143 pinctrl-single,pins = < 143 pinctrl-single,pins = <
144 0xd8 (PIN_INPUT | MUX_MODE4) /* lcd_data14.uart5_rxd */ 144 AM33XX_IOPAD(0x8d8, PIN_INPUT | MUX_MODE4) /* lcd_data14.uart5_rxd */
145 0x144 (PIN_OUTPUT | MUX_MODE3) /* rmiii1_refclk.uart5_txd */ 145 AM33XX_IOPAD(0x944, PIN_OUTPUT | MUX_MODE3) /* rmiii1_refclk.uart5_txd */
146 >; 146 >;
147 }; 147 };
148 148
149 mmc1_pins: mmc1_pins { 149 mmc1_pins: mmc1_pins {
150 pinctrl-single,pins = < 150 pinctrl-single,pins = <
151 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */ 151 AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
152 0xf4 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */ 152 AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
153 0xf8 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */ 153 AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
154 0xfc (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */ 154 AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
155 0x100 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */ 155 AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */
156 0x104 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */ 156 AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
157 0x1e8 (PIN_INPUT_PULLUP | MUX_MODE7) /* emu1.gpio3[8] */ 157 AM33XX_IOPAD(0x9e8, PIN_INPUT_PULLUP | MUX_MODE7) /* emu1.gpio3[8] */
158 0x1a0 (PIN_INPUT_PULLUP | MUX_MODE7) /* mcasp0_aclkr.gpio3[18] */ 158 AM33XX_IOPAD(0x9a0, PIN_INPUT_PULLUP | MUX_MODE7) /* mcasp0_aclkr.gpio3[18] */
159 >; 159 >;
160 }; 160 };
161}; 161};
@@ -375,11 +375,15 @@
375 wp-gpios = <&gpio3 18 0>; 375 wp-gpios = <&gpio3 18 0>;
376}; 376};
377 377
378#include "tps65217.dtsi"
379
380&tps { 378&tps {
379 compatible = "ti,tps65217";
380
381 regulators { 381 regulators {
382 #address-cells = <1>;
383 #size-cells = <0>;
384
382 dcdc1_reg: regulator@0 { 385 dcdc1_reg: regulator@0 {
386 reg = <0>;
383 /* +1.5V voltage with ±4% tolerance */ 387 /* +1.5V voltage with ±4% tolerance */
384 regulator-min-microvolt = <1450000>; 388 regulator-min-microvolt = <1450000>;
385 regulator-max-microvolt = <1550000>; 389 regulator-max-microvolt = <1550000>;
@@ -388,6 +392,7 @@
388 }; 392 };
389 393
390 dcdc2_reg: regulator@1 { 394 dcdc2_reg: regulator@1 {
395 reg = <1>;
391 /* VDD_MPU voltage limits 0.95V - 1.1V with ±4% tolerance */ 396 /* VDD_MPU voltage limits 0.95V - 1.1V with ±4% tolerance */
392 regulator-name = "vdd_mpu"; 397 regulator-name = "vdd_mpu";
393 regulator-min-microvolt = <915000>; 398 regulator-min-microvolt = <915000>;
@@ -397,6 +402,7 @@
397 }; 402 };
398 403
399 dcdc3_reg: regulator@2 { 404 dcdc3_reg: regulator@2 {
405 reg = <2>;
400 /* VDD_CORE voltage limits 0.95V - 1.1V with ±4% tolerance */ 406 /* VDD_CORE voltage limits 0.95V - 1.1V with ±4% tolerance */
401 regulator-name = "vdd_core"; 407 regulator-name = "vdd_core";
402 regulator-min-microvolt = <915000>; 408 regulator-min-microvolt = <915000>;
@@ -406,6 +412,7 @@
406 }; 412 };
407 413
408 ldo1_reg: regulator@3 { 414 ldo1_reg: regulator@3 {
415 reg = <3>;
409 /* +1.8V voltage with ±4% tolerance */ 416 /* +1.8V voltage with ±4% tolerance */
410 regulator-min-microvolt = <1750000>; 417 regulator-min-microvolt = <1750000>;
411 regulator-max-microvolt = <1870000>; 418 regulator-max-microvolt = <1870000>;
@@ -414,6 +421,7 @@
414 }; 421 };
415 422
416 ldo2_reg: regulator@4 { 423 ldo2_reg: regulator@4 {
424 reg = <4>;
417 /* +3.3V voltage with ±4% tolerance */ 425 /* +3.3V voltage with ±4% tolerance */
418 regulator-min-microvolt = <3175000>; 426 regulator-min-microvolt = <3175000>;
419 regulator-max-microvolt = <3430000>; 427 regulator-max-microvolt = <3430000>;
@@ -422,6 +430,7 @@
422 }; 430 };
423 431
424 ldo3_reg: regulator@5 { 432 ldo3_reg: regulator@5 {
433 reg = <5>;
425 /* +1.8V voltage with ±4% tolerance */ 434 /* +1.8V voltage with ±4% tolerance */
426 regulator-min-microvolt = <1750000>; 435 regulator-min-microvolt = <1750000>;
427 regulator-max-microvolt = <1870000>; 436 regulator-max-microvolt = <1870000>;
@@ -430,6 +439,7 @@
430 }; 439 };
431 440
432 ldo4_reg: regulator@6 { 441 ldo4_reg: regulator@6 {
442 reg = <6>;
433 /* +3.3V voltage with ±4% tolerance */ 443 /* +3.3V voltage with ±4% tolerance */
434 regulator-min-microvolt = <3175000>; 444 regulator-min-microvolt = <3175000>;
435 regulator-max-microvolt = <3430000>; 445 regulator-max-microvolt = <3430000>;
diff --git a/arch/arm/boot/dts/am335x-pepper.dts b/arch/arm/boot/dts/am335x-pepper.dts
index 7106114c7464..471a3a70ea1f 100644
--- a/arch/arm/boot/dts/am335x-pepper.dts
+++ b/arch/arm/boot/dts/am335x-pepper.dts
@@ -93,14 +93,14 @@
93&am33xx_pinmux { 93&am33xx_pinmux {
94 i2c0_pins: pinmux_i2c0 { 94 i2c0_pins: pinmux_i2c0 {
95 pinctrl-single,pins = < 95 pinctrl-single,pins = <
96 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ 96 AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */
97 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ 97 AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */
98 >; 98 >;
99 }; 99 };
100 i2c1_pins: pinmux_i2c1 { 100 i2c1_pins: pinmux_i2c1 {
101 pinctrl-single,pins = < 101 pinctrl-single,pins = <
102 0x10C (PIN_INPUT_PULLUP | MUX_MODE3) /* mii1_crs,i2c1_sda */ 102 AM33XX_IOPAD(0x90C, PIN_INPUT_PULLUP | MUX_MODE3) /* mii1_crs,i2c1_sda */
103 0x110 (PIN_INPUT_PULLUP | MUX_MODE3) /* mii1_rxerr,i2c1_scl */ 103 AM33XX_IOPAD(0x910, PIN_INPUT_PULLUP | MUX_MODE3) /* mii1_rxerr,i2c1_scl */
104 >; 104 >;
105 }; 105 };
106}; 106};
@@ -130,7 +130,7 @@
130&am33xx_pinmux { 130&am33xx_pinmux {
131 accel_pins: pinmux_accel { 131 accel_pins: pinmux_accel {
132 pinctrl-single,pins = < 132 pinctrl-single,pins = <
133 0x98 (PIN_INPUT | MUX_MODE7) /* gpmc_wen.gpio2_4 */ 133 AM33XX_IOPAD(0x898, PIN_INPUT | MUX_MODE7) /* gpmc_wen.gpio2_4 */
134 >; 134 >;
135 }; 135 };
136}; 136};
@@ -177,12 +177,12 @@
177&am33xx_pinmux { 177&am33xx_pinmux {
178 audio_pins: pinmux_audio { 178 audio_pins: pinmux_audio {
179 pinctrl-single,pins = < 179 pinctrl-single,pins = <
180 0x1AC (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_ahcklx.mcasp0_ahclkx */ 180 AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_ahcklx.mcasp0_ahclkx */
181 0x194 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_fsx.mcasp0_fsx */ 181 AM33XX_IOPAD(0x994, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_fsx.mcasp0_fsx */
182 0x190 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_aclkx.mcasp0_aclkx */ 182 AM33XX_IOPAD(0x990, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_aclkx.mcasp0_aclkx */
183 0x198 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_axr0.mcasp0_axr0 */ 183 AM33XX_IOPAD(0x998, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_axr0.mcasp0_axr0 */
184 0x1A8 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_axr1.mcasp0_axr1 */ 184 AM33XX_IOPAD(0x9a8, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_axr1.mcasp0_axr1 */
185 0x40 (PIN_OUTPUT | MUX_MODE7) /* gpmc_a0.gpio1_16 */ 185 AM33XX_IOPAD(0x840, PIN_OUTPUT | MUX_MODE7) /* gpmc_a0.gpio1_16 */
186 >; 186 >;
187 }; 187 };
188}; 188};
@@ -228,36 +228,36 @@
228&am33xx_pinmux { 228&am33xx_pinmux {
229 lcd_pins: pinmux_lcd { 229 lcd_pins: pinmux_lcd {
230 pinctrl-single,pins = < 230 pinctrl-single,pins = <
231 0xa0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */ 231 AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */
232 0xa4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data1.lcd_data1 */ 232 AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0) /* lcd_data1.lcd_data1 */
233 0xa8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data2.lcd_data2 */ 233 AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0) /* lcd_data2.lcd_data2 */
234 0xac (PIN_OUTPUT | MUX_MODE0) /* lcd_data3.lcd_data3 */ 234 AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0) /* lcd_data3.lcd_data3 */
235 0xb0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data4.lcd_data4 */ 235 AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0) /* lcd_data4.lcd_data4 */
236 0xb4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data5.lcd_data5 */ 236 AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0) /* lcd_data5.lcd_data5 */
237 0xb8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data6.lcd_data6 */ 237 AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0) /* lcd_data6.lcd_data6 */
238 0xbc (PIN_OUTPUT | MUX_MODE0) /* lcd_data7.lcd_data7 */ 238 AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0) /* lcd_data7.lcd_data7 */
239 0xc0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data8.lcd_data8 */ 239 AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0) /* lcd_data8.lcd_data8 */
240 0xc4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data9.lcd_data9 */ 240 AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0) /* lcd_data9.lcd_data9 */
241 0xc8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data10.lcd_data10 */ 241 AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0) /* lcd_data10.lcd_data10 */
242 0xcc (PIN_OUTPUT | MUX_MODE0) /* lcd_data11.lcd_data11 */ 242 AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0) /* lcd_data11.lcd_data11 */
243 0xd0 (PIN_OUTPUT | MUX_MODE0) /* lcd_data12.lcd_data12 */ 243 AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0) /* lcd_data12.lcd_data12 */
244 0xd4 (PIN_OUTPUT | MUX_MODE0) /* lcd_data13.lcd_data13 */ 244 AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0) /* lcd_data13.lcd_data13 */
245 0xd8 (PIN_OUTPUT | MUX_MODE0) /* lcd_data14.lcd_data14 */ 245 AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0) /* lcd_data14.lcd_data14 */
246 0xdc (PIN_OUTPUT | MUX_MODE0) /* lcd_data15.lcd_data15 */ 246 AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0) /* lcd_data15.lcd_data15 */
247 0x20 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad8.lcd_data16 */ 247 AM33XX_IOPAD(0x820, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad8.lcd_data16 */
248 0x24 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad9.lcd_data17 */ 248 AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad9.lcd_data17 */
249 0x28 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad10.lcd_data18 */ 249 AM33XX_IOPAD(0x828, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad10.lcd_data18 */
250 0x2c (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad11.lcd_data19 */ 250 AM33XX_IOPAD(0x82c, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad11.lcd_data19 */
251 0x30 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad12.lcd_data20 */ 251 AM33XX_IOPAD(0x830, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad12.lcd_data20 */
252 0x34 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad13.lcd_data21 */ 252 AM33XX_IOPAD(0x834, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad13.lcd_data21 */
253 0x38 (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad14.lcd_data22 */ 253 AM33XX_IOPAD(0x838, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad14.lcd_data22 */
254 0x3c (PIN_OUTPUT | MUX_MODE1) /* gpmc_ad15.lcd_data23 */ 254 AM33XX_IOPAD(0x83c, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad15.lcd_data23 */
255 0xe0 (PIN_OUTPUT | MUX_MODE0) /* lcd_vsync.lcd_vsync */ 255 AM33XX_IOPAD(0x8e0, PIN_OUTPUT | MUX_MODE0) /* lcd_vsync.lcd_vsync */
256 0xe4 (PIN_OUTPUT | MUX_MODE0) /* lcd_hsync.lcd_hsync */ 256 AM33XX_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE0) /* lcd_hsync.lcd_hsync */
257 0xe8 (PIN_OUTPUT | MUX_MODE0) /* lcd_pclk.lcd_pclk */ 257 AM33XX_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE0) /* lcd_pclk.lcd_pclk */
258 0xec (PIN_OUTPUT | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en */ 258 AM33XX_IOPAD(0x8ec, PIN_OUTPUT | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en */
259 /* Display Enable */ 259 /* Display Enable */
260 0x6c (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a11.gpio1_27 */ 260 AM33XX_IOPAD(0x86c, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a11.gpio1_27 */
261 >; 261 >;
262 }; 262 };
263}; 263};
@@ -291,29 +291,29 @@
291&am33xx_pinmux { 291&am33xx_pinmux {
292 ethernet_pins: pinmux_ethernet { 292 ethernet_pins: pinmux_ethernet {
293 pinctrl-single,pins = < 293 pinctrl-single,pins = <
294 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */ 294 AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */
295 0x118 (PIN_INPUT_PULLUP | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */ 295 AM33XX_IOPAD(0x918, PIN_INPUT_PULLUP | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */
296 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd3.rgmii1_td3 */ 296 AM33XX_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd3.rgmii1_td3 */
297 0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd2.rgmii1_td2 */ 297 AM33XX_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd2.rgmii1_td2 */
298 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */ 298 AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */
299 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */ 299 AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */
300 0x12c (PIN_INPUT_PULLUP | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */ 300 AM33XX_IOPAD(0x92c, PIN_INPUT_PULLUP | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */
301 0x130 (PIN_INPUT_PULLUP | MUX_MODE2) /* mii1_rxclk.rgmii1_rclk */ 301 AM33XX_IOPAD(0x930, PIN_INPUT_PULLUP | MUX_MODE2) /* mii1_rxclk.rgmii1_rclk */
302 0x134 (PIN_INPUT_PULLUP | MUX_MODE2) /* mii1_rxd3.rgmii1_rxd3 */ 302 AM33XX_IOPAD(0x934, PIN_INPUT_PULLUP | MUX_MODE2) /* mii1_rxd3.rgmii1_rxd3 */
303 0x138 (PIN_INPUT_PULLUP | MUX_MODE2) /* mii1_rxd2.rgmii1_rxd2 */ 303 AM33XX_IOPAD(0x938, PIN_INPUT_PULLUP | MUX_MODE2) /* mii1_rxd2.rgmii1_rxd2 */
304 0x13c (PIN_INPUT_PULLUP | MUX_MODE2) /* mii1_rxd1.rgmii1_rxd1 */ 304 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLUP | MUX_MODE2) /* mii1_rxd1.rgmii1_rxd1 */
305 0x140 (PIN_INPUT_PULLUP | MUX_MODE2) /* mii1_rxd0.rgmii1_rxd0 */ 305 AM33XX_IOPAD(0x940, PIN_INPUT_PULLUP | MUX_MODE2) /* mii1_rxd0.rgmii1_rxd0 */
306 /* ethernet interrupt */ 306 /* ethernet interrupt */
307 0x144 (PIN_INPUT_PULLUP | MUX_MODE7) /* rmii2_refclk.gpio0_29 */ 307 AM33XX_IOPAD(0x944, PIN_INPUT_PULLUP | MUX_MODE7) /* rmii2_refclk.gpio0_29 */
308 /* ethernet PHY nReset */ 308 /* ethernet PHY nReset */
309 0x108 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* mii1_col.gpio3_0 */ 309 AM33XX_IOPAD(0x908, PIN_OUTPUT_PULLUP | MUX_MODE7) /* mii1_col.gpio3_0 */
310 >; 310 >;
311 }; 311 };
312 312
313 mdio_pins: pinmux_mdio { 313 mdio_pins: pinmux_mdio {
314 pinctrl-single,pins = < 314 pinctrl-single,pins = <
315 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ 315 AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
316 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ 316 AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
317 >; 317 >;
318 }; 318 };
319}; 319};
@@ -339,13 +339,6 @@
339 ti,non-removable; 339 ti,non-removable;
340}; 340};
341 341
342&edma {
343 /* Map eDMA MMC2 Events from Crossbar */
344 ti,edma-xbar-event-map = /bits/ 16 <1 12
345 2 13>;
346};
347
348
349&mmc3 { 342&mmc3 {
350 /* Wifi & Bluetooth on MMC #3 */ 343 /* Wifi & Bluetooth on MMC #3 */
351 status = "okay"; 344 status = "okay";
@@ -354,8 +347,8 @@
354 vmmmc-supply = <&v3v3c_reg>; 347 vmmmc-supply = <&v3v3c_reg>;
355 bus-width = <4>; 348 bus-width = <4>;
356 ti,non-removable; 349 ti,non-removable;
357 dmas = <&edma 12 350 dmas = <&edma_xbar 12 0 1
358 &edma 13>; 351 &edma_xbar 13 0 2>;
359 dma-names = "tx", "rx"; 352 dma-names = "tx", "rx";
360}; 353};
361 354
@@ -363,45 +356,45 @@
363&am33xx_pinmux { 356&am33xx_pinmux {
364 sd_pins: pinmux_sd_card { 357 sd_pins: pinmux_sd_card {
365 pinctrl-single,pins = < 358 pinctrl-single,pins = <
366 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */ 359 AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
367 0xf4 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */ 360 AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
368 0xf8 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */ 361 AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
369 0xfc (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */ 362 AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
370 0x100 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */ 363 AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */
371 0x104 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */ 364 AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
372 0x160 (PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */ 365 AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */
373 >; 366 >;
374 }; 367 };
375 emmc_pins: pinmux_emmc { 368 emmc_pins: pinmux_emmc {
376 pinctrl-single,pins = < 369 pinctrl-single,pins = <
377 0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */ 370 AM33XX_IOPAD(0x880, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
378 0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */ 371 AM33XX_IOPAD(0x884, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
379 0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */ 372 AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */
380 0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */ 373 AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */
381 0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */ 374 AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */
382 0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */ 375 AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */
383 0x10 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */ 376 AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */
384 0x14 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */ 377 AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */
385 0x18 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */ 378 AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */
386 0x1c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */ 379 AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */
387 /* EMMC nReset */ 380 /* EMMC nReset */
388 0x74 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_31 */ 381 AM33XX_IOPAD(0x874, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_31 */
389 >; 382 >;
390 }; 383 };
391 wireless_pins: pinmux_wireless { 384 wireless_pins: pinmux_wireless {
392 pinctrl-single,pins = < 385 pinctrl-single,pins = <
393 0x44 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a1.mmc2_dat0 */ 386 AM33XX_IOPAD(0x844, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a1.mmc2_dat0 */
394 0x48 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a2.mmc2_dat1 */ 387 AM33XX_IOPAD(0x848, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a2.mmc2_dat1 */
395 0x4c (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a3.mmc2_dat2 */ 388 AM33XX_IOPAD(0x84c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a3.mmc2_dat2 */
396 0x78 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ben1.mmc2_dat3 */ 389 AM33XX_IOPAD(0x878, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ben1.mmc2_dat3 */
397 0x88 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_csn3.mmc2_cmd */ 390 AM33XX_IOPAD(0x888, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_csn3.mmc2_cmd */
398 0x8c (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_clk.mmc1_clk */ 391 AM33XX_IOPAD(0x88c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_clk.mmc1_clk */
399 /* WLAN nReset */ 392 /* WLAN nReset */
400 0x60 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a8.gpio1_24 */ 393 AM33XX_IOPAD(0x860, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a8.gpio1_24 */
401 /* WLAN nPower down */ 394 /* WLAN nPower down */
402 0x70 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_wait0.gpio0_30 */ 395 AM33XX_IOPAD(0x870, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_wait0.gpio0_30 */
403 /* 32kHz Clock */ 396 /* 32kHz Clock */
404 0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */ 397 AM33XX_IOPAD(0x9b4, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */
405 >; 398 >;
406 }; 399 };
407}; 400};
@@ -427,9 +420,9 @@
427 vin-supply = <&vbat>; 420 vin-supply = <&vbat>;
428}; 421};
429 422
430/include/ "tps65217.dtsi"
431
432&tps { 423&tps {
424 compatible = "ti,tps65217";
425
433 backlight { 426 backlight {
434 isel = <1>; /* ISET1 */ 427 isel = <1>; /* ISET1 */
435 fdim = <200>; /* TPS65217_BL_FDIM_200HZ */ 428 fdim = <200>; /* TPS65217_BL_FDIM_200HZ */
@@ -437,12 +430,17 @@
437 }; 430 };
438 431
439 regulators { 432 regulators {
433 #address-cells = <1>;
434 #size-cells = <0>;
435
440 dcdc1_reg: regulator@0 { 436 dcdc1_reg: regulator@0 {
437 reg = <0>;
441 /* VDD_1V8 system supply */ 438 /* VDD_1V8 system supply */
442 regulator-always-on; 439 regulator-always-on;
443 }; 440 };
444 441
445 dcdc2_reg: regulator@1 { 442 dcdc2_reg: regulator@1 {
443 reg = <1>;
446 /* VDD_CORE voltage limits 0.95V - 1.26V with +/-4% tolerance */ 444 /* VDD_CORE voltage limits 0.95V - 1.26V with +/-4% tolerance */
447 regulator-name = "vdd_core"; 445 regulator-name = "vdd_core";
448 regulator-min-microvolt = <925000>; 446 regulator-min-microvolt = <925000>;
@@ -452,6 +450,7 @@
452 }; 450 };
453 451
454 dcdc3_reg: regulator@2 { 452 dcdc3_reg: regulator@2 {
453 reg = <2>;
455 /* VDD_MPU voltage limits 0.95V - 1.1V with +/-4% tolerance */ 454 /* VDD_MPU voltage limits 0.95V - 1.1V with +/-4% tolerance */
456 regulator-name = "vdd_mpu"; 455 regulator-name = "vdd_mpu";
457 regulator-min-microvolt = <925000>; 456 regulator-min-microvolt = <925000>;
@@ -461,18 +460,21 @@
461 }; 460 };
462 461
463 ldo1_reg: regulator@3 { 462 ldo1_reg: regulator@3 {
463 reg = <3>;
464 /* VRTC 1.8V always-on supply */ 464 /* VRTC 1.8V always-on supply */
465 regulator-name = "vrtc,vdds"; 465 regulator-name = "vrtc,vdds";
466 regulator-always-on; 466 regulator-always-on;
467 }; 467 };
468 468
469 ldo2_reg: regulator@4 { 469 ldo2_reg: regulator@4 {
470 reg = <4>;
470 /* 3.3V rail */ 471 /* 3.3V rail */
471 regulator-name = "vdd_3v3aux"; 472 regulator-name = "vdd_3v3aux";
472 regulator-always-on; 473 regulator-always-on;
473 }; 474 };
474 475
475 ldo3_reg: regulator@5 { 476 ldo3_reg: regulator@5 {
477 reg = <5>;
476 /* VDD_3V3A 3.3V rail */ 478 /* VDD_3V3A 3.3V rail */
477 regulator-name = "vdd_3v3a"; 479 regulator-name = "vdd_3v3a";
478 regulator-min-microvolt = <3300000>; 480 regulator-min-microvolt = <3300000>;
@@ -480,6 +482,7 @@
480 }; 482 };
481 483
482 ldo4_reg: regulator@6 { 484 ldo4_reg: regulator@6 {
485 reg = <6>;
483 /* VDD_3V3B 3.3V rail */ 486 /* VDD_3V3B 3.3V rail */
484 regulator-name = "vdd_3v3b"; 487 regulator-name = "vdd_3v3b";
485 regulator-always-on; 488 regulator-always-on;
@@ -497,10 +500,10 @@
497&am33xx_pinmux { 500&am33xx_pinmux {
498 spi0_pins: pinmux_spi0 { 501 spi0_pins: pinmux_spi0 {
499 pinctrl-single,pins = < 502 pinctrl-single,pins = <
500 0x150 (PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_sclk.spi0_sclk */ 503 AM33XX_IOPAD(0x950, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_sclk.spi0_sclk */
501 0x15C (PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_cs0.spi0_cs0 */ 504 AM33XX_IOPAD(0x95C, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_cs0.spi0_cs0 */
502 0x154 (PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d0.spi0_d0 */ 505 AM33XX_IOPAD(0x954, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d0.spi0_d0 */
503 0x158 (PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d1.spi0_d1 */ 506 AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d1.spi0_d1 */
504 >; 507 >;
505 }; 508 };
506}; 509};
@@ -538,16 +541,16 @@
538&am33xx_pinmux { 541&am33xx_pinmux {
539 uart0_pins: pinmux_uart0 { 542 uart0_pins: pinmux_uart0 {
540 pinctrl-single,pins = < 543 pinctrl-single,pins = <
541 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ 544 AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
542 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ 545 AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
543 >; 546 >;
544 }; 547 };
545 uart1_pins: pinmux_uart1 { 548 uart1_pins: pinmux_uart1 {
546 pinctrl-single,pins = < 549 pinctrl-single,pins = <
547 0x178 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_ctsn.uart1_ctsn */ 550 AM33XX_IOPAD(0x978, PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_ctsn.uart1_ctsn */
548 0x17C (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_rtsn.uart1_rtsn */ 551 AM33XX_IOPAD(0x97C, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_rtsn.uart1_rtsn */
549 0x180 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */ 552 AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */
550 0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 553 AM33XX_IOPAD(0x984, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
551 >; 554 >;
552 }; 555 };
553}; 556};
@@ -590,9 +593,9 @@
590 usb_pins: pinmux_usb { 593 usb_pins: pinmux_usb {
591 pinctrl-single,pins = < 594 pinctrl-single,pins = <
592 /* USB0 Over-Current (active low) */ 595 /* USB0 Over-Current (active low) */
593 0x64 (PIN_INPUT | MUX_MODE7) /* gpmc_a9.gpio1_25 */ 596 AM33XX_IOPAD(0x864, PIN_INPUT | MUX_MODE7) /* gpmc_a9.gpio1_25 */
594 /* USB1 Over-Current (active low) */ 597 /* USB1 Over-Current (active low) */
595 0x68 (PIN_INPUT | MUX_MODE7) /* gpmc_a10.gpio1_26 */ 598 AM33XX_IOPAD(0x868, PIN_INPUT | MUX_MODE7) /* gpmc_a10.gpio1_26 */
596 >; 599 >;
597 }; 600 };
598}; 601};
@@ -627,37 +630,37 @@
627 label = "home"; 630 label = "home";
628 linux,code = <KEY_HOME>; 631 linux,code = <KEY_HOME>;
629 gpios = <&gpio1 22 GPIO_ACTIVE_LOW>; 632 gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
630 gpio-key,wakeup; 633 wakeup-source;
631 }; 634 };
632 635
633 button@1 { 636 button@1 {
634 label = "menu"; 637 label = "menu";
635 linux,code = <KEY_MENU>; 638 linux,code = <KEY_MENU>;
636 gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; 639 gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
637 gpio-key,wakeup; 640 wakeup-source;
638 }; 641 };
639 642
640 buttons@2 { 643 buttons@2 {
641 label = "power"; 644 label = "power";
642 linux,code = <KEY_POWER>; 645 linux,code = <KEY_POWER>;
643 gpios = <&gpio0 7 GPIO_ACTIVE_LOW>; 646 gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
644 gpio-key,wakeup; 647 wakeup-source;
645 }; 648 };
646}; 649};
647 650
648&am33xx_pinmux { 651&am33xx_pinmux {
649 user_leds_pins: pinmux_user_leds { 652 user_leds_pins: pinmux_user_leds {
650 pinctrl-single,pins = < 653 pinctrl-single,pins = <
651 0x50 (PIN_OUTPUT | MUX_MODE7) /* gpmc_a4.gpio1_20 */ 654 AM33XX_IOPAD(0x850, PIN_OUTPUT | MUX_MODE7) /* gpmc_a4.gpio1_20 */
652 0x54 (PIN_OUTPUT | MUX_MODE7) /* gpmc_a5.gpio1_21 */ 655 AM33XX_IOPAD(0x854, PIN_OUTPUT | MUX_MODE7) /* gpmc_a5.gpio1_21 */
653 >; 656 >;
654 }; 657 };
655 658
656 user_buttons_pins: pinmux_user_buttons { 659 user_buttons_pins: pinmux_user_buttons {
657 pinctrl-single,pins = < 660 pinctrl-single,pins = <
658 0x58 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a6.gpio1_22 */ 661 AM33XX_IOPAD(0x858, PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a6.gpio1_22 */
659 0x5C (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a7.gpio1_21 */ 662 AM33XX_IOPAD(0x85C, PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a7.gpio1_21 */
660 0x164 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a8.gpio0_7 */ 663 AM33XX_IOPAD(0x964, PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a8.gpio0_7 */
661 >; 664 >;
662 }; 665 };
663}; 666};
diff --git a/arch/arm/boot/dts/am335x-phycore-som.dtsi b/arch/arm/boot/dts/am335x-phycore-som.dtsi
index 2f43e458ea4a..c20ae6c6f6c7 100644
--- a/arch/arm/boot/dts/am335x-phycore-som.dtsi
+++ b/arch/arm/boot/dts/am335x-phycore-som.dtsi
@@ -56,22 +56,22 @@
56&am33xx_pinmux { 56&am33xx_pinmux {
57 ethernet0_pins: pinmux_ethernet0 { 57 ethernet0_pins: pinmux_ethernet0 {
58 pinctrl-single,pins = < 58 pinctrl-single,pins = <
59 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_crs.rmii1_crs_dv */ 59 AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_crs.rmii1_crs_dv */
60 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxerr.rmii1_rxerr */ 60 AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxerr.rmii1_rxerr */
61 0x114 (PIN_OUTPUT | MUX_MODE1) /* mii1_txen.rmii1_txen */ 61 AM33XX_IOPAD(0x914, PIN_OUTPUT | MUX_MODE1) /* mii1_txen.rmii1_txen */
62 0x124 (PIN_OUTPUT | MUX_MODE1) /* mii1_txd1.rmii1_txd1 */ 62 AM33XX_IOPAD(0x924, PIN_OUTPUT | MUX_MODE1) /* mii1_txd1.rmii1_txd1 */
63 0x128 (PIN_OUTPUT | MUX_MODE1) /* mii1_txd0.rmii1_txd0 */ 63 AM33XX_IOPAD(0x928, PIN_OUTPUT | MUX_MODE1) /* mii1_txd0.rmii1_txd0 */
64 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd1.rmii1_rxd1 */ 64 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd1.rmii1_rxd1 */
65 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */ 65 AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */
66 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii1_refclk.rmii1_refclk */ 66 AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii1_refclk.rmii1_refclk */
67 >; 67 >;
68 }; 68 };
69 69
70 mdio_pins: pinmux_mdio { 70 mdio_pins: pinmux_mdio {
71 pinctrl-single,pins = < 71 pinctrl-single,pins = <
72 /* MDIO */ 72 /* MDIO */
73 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ 73 AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
74 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ 74 AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
75 >; 75 >;
76 }; 76 };
77}; 77};
@@ -103,8 +103,8 @@
103&am33xx_pinmux { 103&am33xx_pinmux {
104 i2c0_pins: pinmux_i2c0 { 104 i2c0_pins: pinmux_i2c0 {
105 pinctrl-single,pins = < 105 pinctrl-single,pins = <
106 0x188 (PIN_INPUT | MUX_MODE0) /* i2c0_sda.i2c0_sda */ 106 AM33XX_IOPAD(0x988, PIN_INPUT | MUX_MODE0) /* i2c0_sda.i2c0_sda */
107 0x18c (PIN_INPUT | MUX_MODE0) /* i2c0_scl.i2c0_scl */ 107 AM33XX_IOPAD(0x98c, PIN_INPUT | MUX_MODE0) /* i2c0_scl.i2c0_scl */
108 >; 108 >;
109 }; 109 };
110}; 110};
@@ -137,20 +137,20 @@
137&am33xx_pinmux { 137&am33xx_pinmux {
138 nandflash_pins: pinmux_nandflash { 138 nandflash_pins: pinmux_nandflash {
139 pinctrl-single,pins = < 139 pinctrl-single,pins = <
140 0x0 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */ 140 AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */
141 0x4 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */ 141 AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */
142 0x8 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */ 142 AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */
143 0xc (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */ 143 AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */
144 0x10 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */ 144 AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */
145 0x14 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */ 145 AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */
146 0x18 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */ 146 AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */
147 0x1c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */ 147 AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */
148 0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */ 148 AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */
149 0x7c (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */ 149 AM33XX_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */
150 0x90 (PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */ 150 AM33XX_IOPAD(0x890, PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */
151 0x94 (PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */ 151 AM33XX_IOPAD(0x894, PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */
152 0x98 (PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */ 152 AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */
153 0x9c (PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */ 153 AM33XX_IOPAD(0x89c, PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */
154 >; 154 >;
155 }; 155 };
156}; 156};
@@ -324,10 +324,10 @@
324&am33xx_pinmux { 324&am33xx_pinmux {
325 spi0_pins: pinmux_spi0 { 325 spi0_pins: pinmux_spi0 {
326 pinctrl-single,pins = < 326 pinctrl-single,pins = <
327 0x150 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* spi0_clk.spi0_clk */ 327 AM33XX_IOPAD(0x950, PIN_INPUT_PULLDOWN | MUX_MODE0) /* spi0_clk.spi0_clk */
328 0x154 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* spi0_d0.spi0_d0 */ 328 AM33XX_IOPAD(0x954, PIN_INPUT_PULLDOWN | MUX_MODE0) /* spi0_d0.spi0_d0 */
329 0x158 (PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d1.spi0_d1 */ 329 AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d1.spi0_d1 */
330 0x15c (PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_cs0.spi0_cs0 */ 330 AM33XX_IOPAD(0x95c, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_cs0.spi0_cs0 */
331 >; 331 >;
332 }; 332 };
333}; 333};
diff --git a/arch/arm/boot/dts/am335x-sbc-t335.dts b/arch/arm/boot/dts/am335x-sbc-t335.dts
new file mode 100644
index 000000000000..917d7ccc9109
--- /dev/null
+++ b/arch/arm/boot/dts/am335x-sbc-t335.dts
@@ -0,0 +1,219 @@
1/*
2 * am335x-sbc-t335.dts - Device Tree file for Compulab SBC-T335
3 *
4 * Copyright (C) 2014 - 2015 CompuLab Ltd. - http://www.compulab.co.il/
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10
11#include "am335x-cm-t335.dts"
12
13/ {
14 model = "CompuLab CM-T335 on SB-T335";
15 compatible = "compulab,sbc-t335", "compulab,cm-t335", "ti,am33xx";
16
17 /* DRM display driver */
18 panel {
19 compatible = "ti,tilcdc,panel";
20 status = "okay";
21 pinctrl-names = "default", "sleep";
22 pinctrl-0 = <&lcd_pins_default>;
23 pinctrl-1 = <&lcd_pins_sleep>;
24
25 panel-info {
26 ac-bias = <255>;
27 ac-bias-intrpt = <0>;
28 dma-burst-sz = <16>;
29 bpp = <32>;
30 fdd = <0x80>;
31 sync-edge = <0>;
32 sync-ctrl = <1>;
33 raster-order = <0>;
34 fifo-th = <0>;
35 };
36 display-timings {
37 /* Timing selection performed by U-Boot */
38 timing0: lcd {/* 800x480p62 */
39 clock-frequency = <30000000>;
40 hactive = <800>;
41 vactive = <480>;
42 hfront-porch = <39>;
43 hback-porch = <39>;
44 hsync-len = <47>;
45 vback-porch = <29>;
46 vfront-porch = <13>;
47 vsync-len = <2>;
48 hsync-active = <1>;
49 vsync-active = <1>;
50 };
51 timing1: dvi { /* 1024x768p60 */
52 clock-frequency = <65000000>;
53 hactive = <1024>;
54 hfront-porch = <24>;
55 hback-porch = <160>;
56 hsync-len = <136>;
57 vactive = <768>;
58 vfront-porch = <3>;
59 vback-porch = <29>;
60 vsync-len = <6>;
61 hsync-active = <0>;
62 vsync-active = <0>;
63 };
64 };
65 };
66};
67
68&am33xx_pinmux {
69 /* Display */
70 lcd_pins_default: lcd_pins_default {
71 pinctrl-single,pins = <
72 /* gpmc_ad8.lcd_data23 */
73 AM33XX_IOPAD(0x820, PIN_OUTPUT | MUX_MODE1)
74 /* gpmc_ad9.lcd_data22 */
75 AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE1)
76 /* gpmc_ad10.lcd_data21 */
77 AM33XX_IOPAD(0x828, PIN_OUTPUT | MUX_MODE1)
78 /* gpmc_ad11.lcd_data20 */
79 AM33XX_IOPAD(0x82c, PIN_OUTPUT | MUX_MODE1)
80 /* gpmc_ad12.lcd_data19 */
81 AM33XX_IOPAD(0x830, PIN_OUTPUT | MUX_MODE1)
82 /* gpmc_ad13.lcd_data18 */
83 AM33XX_IOPAD(0x834, PIN_OUTPUT | MUX_MODE1)
84 /* gpmc_ad14.lcd_data17 */
85 AM33XX_IOPAD(0x838, PIN_OUTPUT | MUX_MODE1)
86 /* gpmc_ad15.lcd_data16 */
87 AM33XX_IOPAD(0x83c, PIN_OUTPUT | MUX_MODE1)
88 /* lcd_data0.lcd_data0 */
89 AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0)
90 /* lcd_data1.lcd_data1 */
91 AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0)
92 /* lcd_data2.lcd_data2 */
93 AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0)
94 /* lcd_data3.lcd_data3 */
95 AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0)
96 /* lcd_data4.lcd_data4 */
97 AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0)
98 /* lcd_data5.lcd_data5 */
99 AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0)
100 /* lcd_data6.lcd_data6 */
101 AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0)
102 /* lcd_data7.lcd_data7 */
103 AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0)
104 /* lcd_data8.lcd_data8 */
105 AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0)
106 /* lcd_data9.lcd_data9 */
107 AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0)
108 /* lcd_data10.lcd_data10 */
109 AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0)
110 /* lcd_data11.lcd_data11 */
111 AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0)
112 /* lcd_data12.lcd_data12 */
113 AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0)
114 /* lcd_data13.lcd_data13 */
115 AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0)
116 /* lcd_data14.lcd_data14 */
117 AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0)
118 /* lcd_data15.lcd_data15 */
119 AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0)
120 /* lcd_vsync.lcd_vsync */
121 AM33XX_IOPAD(0x8e0, PIN_OUTPUT | MUX_MODE0)
122 /* lcd_hsync.lcd_hsync */
123 AM33XX_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE0)
124 /* lcd_pclk.lcd_pclk */
125 AM33XX_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE0)
126 /* lcd_ac_bias_en.lcd_ac_bias_en */
127 AM33XX_IOPAD(0x8ec, PIN_OUTPUT | MUX_MODE0)
128 >;
129 };
130
131 lcd_pins_sleep: lcd_pins_sleep {
132 pinctrl-single,pins = <
133 /* gpmc_ad8.lcd_data23 */
134 AM33XX_IOPAD(0x820, PIN_INPUT_PULLDOWN | MUX_MODE7)
135 /* gpmc_ad9.lcd_data22 */
136 AM33XX_IOPAD(0x824, PIN_INPUT_PULLDOWN | MUX_MODE7)
137 /* gpmc_ad10.lcd_data21 */
138 AM33XX_IOPAD(0x828, PIN_INPUT_PULLDOWN | MUX_MODE7)
139 /* gpmc_ad11.lcd_data20 */
140 AM33XX_IOPAD(0x82c, PIN_INPUT_PULLDOWN | MUX_MODE7)
141 /* gpmc_ad12.lcd_data19 */
142 AM33XX_IOPAD(0x830, PIN_INPUT_PULLDOWN | MUX_MODE7)
143 /* gpmc_ad13.lcd_data18 */
144 AM33XX_IOPAD(0x834, PIN_INPUT_PULLDOWN | MUX_MODE7)
145 /* gpmc_ad14.lcd_data17 */
146 AM33XX_IOPAD(0x838, PIN_INPUT_PULLDOWN | MUX_MODE7)
147 /* gpmc_ad15.lcd_data16 */
148 AM33XX_IOPAD(0x83c, PIN_INPUT_PULLDOWN | MUX_MODE7)
149 /* lcd_data0.lcd_data0 */
150 AM33XX_IOPAD(0x8a0, PULL_DISABLE | MUX_MODE7)
151 /* lcd_data1.lcd_data1 */
152 AM33XX_IOPAD(0x8a4, PULL_DISABLE | MUX_MODE7)
153 /* lcd_data2.lcd_data2 */
154 AM33XX_IOPAD(0x8a8, PULL_DISABLE | MUX_MODE7)
155 /* lcd_data3.lcd_data3 */
156 AM33XX_IOPAD(0x8ac, PULL_DISABLE | MUX_MODE7)
157 /* lcd_data4.lcd_data4 */
158 AM33XX_IOPAD(0x8b0, PULL_DISABLE | MUX_MODE7)
159 /* lcd_data5.lcd_data5 */
160 AM33XX_IOPAD(0x8b4, PULL_DISABLE | MUX_MODE7)
161 /* lcd_data6.lcd_data6 */
162 AM33XX_IOPAD(0x8b8, PULL_DISABLE | MUX_MODE7)
163 /* lcd_data7.lcd_data7 */
164 AM33XX_IOPAD(0x8bc, PULL_DISABLE | MUX_MODE7)
165 /* lcd_data8.lcd_data8 */
166 AM33XX_IOPAD(0x8c0, PULL_DISABLE | MUX_MODE7)
167 /* lcd_data9.lcd_data9 */
168 AM33XX_IOPAD(0x8c4, PULL_DISABLE | MUX_MODE7)
169 /* lcd_data10.lcd_data10 */
170 AM33XX_IOPAD(0x8c8, PULL_DISABLE | MUX_MODE7)
171 /* lcd_data11.lcd_data11 */
172 AM33XX_IOPAD(0x8cc, PULL_DISABLE | MUX_MODE7)
173 /* lcd_data12.lcd_data12 */
174 AM33XX_IOPAD(0x8d0, PULL_DISABLE | MUX_MODE7)
175 /* lcd_data13.lcd_data13 */
176 AM33XX_IOPAD(0x8d4, PULL_DISABLE | MUX_MODE7)
177 /* lcd_data14.lcd_data14 */
178 AM33XX_IOPAD(0x8d8, PULL_DISABLE | MUX_MODE7)
179 /* lcd_data15.lcd_data15 */
180 AM33XX_IOPAD(0x8dc, PULL_DISABLE | MUX_MODE7)
181 /* lcd_vsync.lcd_vsync */
182 AM33XX_IOPAD(0x8e0, PIN_INPUT_PULLDOWN | MUX_MODE7)
183 /* lcd_hsync.lcd_hsync */
184 AM33XX_IOPAD(0x8e4, PIN_INPUT_PULLDOWN | MUX_MODE7)
185 /* lcd_pclk.lcd_pclk */
186 AM33XX_IOPAD(0x8e8, PIN_INPUT_PULLDOWN | MUX_MODE7)
187 /* lcd_ac_bias_en.lcd_ac_bias_en */
188 AM33XX_IOPAD(0x8ec, PIN_INPUT_PULLDOWN | MUX_MODE7)
189 >;
190 };
191};
192
193&i2c0 {
194 /* GPIO extender */
195 gpio_ext: pca9555@26 {
196 compatible = "nxp,pca9555";
197 pinctrl-names = "default";
198 gpio-controller;
199 #gpio-cells = <2>;
200 reg = <0x26>;
201 dvi_ena {
202 gpio-hog;
203 gpios = <13 GPIO_ACTIVE_HIGH>;
204 output-high;
205 line-name = "dvi-enable";
206 };
207 lcd_ena {
208 gpio-hog;
209 gpios = <11 GPIO_ACTIVE_HIGH>;
210 output-high;
211 line-name = "lcd-enable";
212 };
213 };
214};
215
216/* Display */
217&lcdc {
218 status = "okay";
219};
diff --git a/arch/arm/boot/dts/am335x-shc.dts b/arch/arm/boot/dts/am335x-shc.dts
new file mode 100644
index 000000000000..1b5b044fcd91
--- /dev/null
+++ b/arch/arm/boot/dts/am335x-shc.dts
@@ -0,0 +1,577 @@
1/*
2 * support for the bosch am335x based shc c3 board
3 *
4 * Copyright, C) 2015 Heiko Schocher <hs@denx.de>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10/dts-v1/;
11
12#include "am33xx.dtsi"
13#include <dt-bindings/input/input.h>
14
15/ {
16 model = "Bosch SHC";
17 compatible = "ti,am335x-shc", "ti,am335x-bone", "ti,am33xx";
18
19 aliases {
20 mmcblk0 = &mmc1;
21 mmcblk1 = &mmc2;
22 };
23
24 cpus {
25 cpu@0 {
26 /*
27 * To consider voltage drop between PMIC and SoC,
28 * tolerance value is reduced to 2% from 4% and
29 * voltage value is increased as a precaution.
30 */
31 operating-points = <
32 /* kHz uV */
33 594000 1225000
34 294000 1125000
35 >;
36 voltage-tolerance = <2>; /* 2 percentage */
37 cpu0-supply = <&dcdc2_reg>;
38 };
39 };
40
41 gpio_keys {
42 compatible = "gpio-keys";
43
44 back_button {
45 label = "Back Button";
46 gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
47 linux,code = <KEY_BACK>;
48 debounce-interval = <1000>;
49 gpio-key,wakeup;
50 };
51
52 front_button {
53 label = "Front Button";
54 gpios = <&gpio1 25 GPIO_ACTIVE_HIGH>;
55 linux,code = <KEY_FRONT>;
56 debounce-interval = <1000>;
57 gpio-key,wakeup;
58 };
59 };
60
61 leds {
62 pinctrl-names = "default";
63 pinctrl-0 = <&user_leds_s0>;
64
65 compatible = "gpio-leds";
66
67 led@1 {
68 label = "shc:power:red";
69 gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
70 default-state = "off";
71 };
72
73 led@2 {
74 label = "shc:power:bl";
75 gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
76 linux,default-trigger = "timer";
77 default-state = "on";
78 };
79
80 led@3 {
81 label = "shc:lan:red";
82 gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
83 default-state = "off";
84 };
85
86 led@4 {
87 label = "shc:lan:bl";
88 gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
89 default-state = "off";
90 };
91
92 led@5 {
93 label = "shc:cloud:red";
94 gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
95 default-state = "off";
96 };
97
98 led@6 {
99 label = "shc:cloud:bl";
100 gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
101 default-state = "off";
102 };
103 };
104
105 memory {
106 device_type = "memory";
107 reg = <0x80000000 0x20000000>; /* 512 MB */
108 };
109
110 vmmcsd_fixed: fixedregulator@0 {
111 compatible = "regulator-fixed";
112 regulator-name = "vmmcsd_fixed";
113 regulator-min-microvolt = <3300000>;
114 regulator-max-microvolt = <3300000>;
115 };
116};
117
118&aes {
119 status = "okay";
120};
121
122&cppi41dma {
123 status = "okay";
124};
125
126&davinci_mdio {
127 pinctrl-names = "default", "sleep";
128 pinctrl-0 = <&davinci_mdio_default>;
129 pinctrl-1 = <&davinci_mdio_sleep>;
130 status = "okay";
131
132 ethernetphy0: ethernet-phy@0 {
133 reg = <0>;
134 smsc,disable-energy-detect;
135 };
136};
137
138&epwmss1 {
139 status = "okay";
140
141 ehrpwm1: ehrpwm@48302200 {
142 pinctrl-names = "default";
143 pinctrl-0 = <&ehrpwm1_pins>;
144 status = "okay";
145 };
146};
147
148&gpio1 {
149 hmtc_rst {
150 gpio-hog;
151 gpios = <24 GPIO_ACTIVE_LOW>;
152 output-high;
153 line-name = "homematic_reset";
154 };
155
156 hmtc_prog {
157 gpio-hog;
158 gpios = <27 GPIO_ACTIVE_LOW>;
159 output-high;
160 line-name = "homematic_program";
161 };
162};
163
164&gpio3 {
165 zgb_rst {
166 gpio-hog;
167 gpios = <18 GPIO_ACTIVE_LOW>;
168 output-low;
169 line-name = "zigbee_reset";
170 };
171
172 zgb_boot {
173 gpio-hog;
174 gpios = <19 GPIO_ACTIVE_HIGH>;
175 output-high;
176 line-name = "zigbee_boot";
177 };
178};
179
180&i2c0 {
181 pinctrl-names = "default";
182 pinctrl-0 = <&i2c0_pins>;
183 status = "okay";
184 clock-frequency = <400000>;
185
186 tps: tps@24 {
187 reg = <0x24>;
188 };
189
190 at24@50 {
191 compatible = "at24,24c32";
192 pagesize = <32>;
193 reg = <0x50>;
194 };
195
196 pcf8563@51 {
197 compatible = "nxp,pcf8563";
198 reg = <0x51>;
199 };
200};
201
202&mac {
203 pinctrl-names = "default", "sleep";
204 pinctrl-0 = <&cpsw_default>;
205 pinctrl-1 = <&cpsw_sleep>;
206 status = "okay";
207 slaves = <1>;
208 cpsw_emac0: slave@4a100200 {
209 phy_id = <&davinci_mdio>, <0>;
210 phy-mode = "mii";
211 phy-handle = <&ethernetphy0>;
212 };
213};
214
215&mmc1 {
216 pinctrl-names = "default";
217 pinctrl-0 = <&mmc1_pins>;
218 bus-width = <0x4>;
219 cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
220 cd-inverted;
221 max-frequency = <26000000>;
222 vmmc-supply = <&vmmcsd_fixed>;
223 status = "okay";
224};
225
226&mmc2 {
227 pinctrl-names = "default";
228 pinctrl-0 = <&emmc_pins>;
229 bus-width = <8>;
230 max-frequency = <26000000>;
231 sd-uhs-sdr25;
232 vmmc-supply = <&vmmcsd_fixed>;
233 status = "okay";
234};
235
236&mmc3 {
237 pinctrl-names = "default";
238 pinctrl-0 = <&mmc3_pins>;
239 bus-width = <4>;
240 cap-power-off-card;
241 max-frequency = <26000000>;
242 sd-uhs-sdr25;
243 vmmc-supply = <&vmmcsd_fixed>;
244 status = "okay";
245};
246
247&rtc {
248 ti,no-init;
249};
250
251&sham {
252 status = "okay";
253};
254
255&tps {
256 compatible = "ti,tps65217";
257 ti,pmic-shutdown-controller;
258
259 regulators {
260 #address-cells = <1>;
261 #size-cells = <0>;
262
263 dcdc1_reg: regulator@0 {
264 reg = <0>;
265 regulator-name = "vdds_dpr";
266 regulator-compatible = "dcdc1";
267 regulator-min-microvolt = <1300000>;
268 regulator-max-microvolt = <1450000>;
269 regulator-boot-on;
270 regulator-always-on;
271 };
272
273 dcdc2_reg: regulator@1 {
274 reg = <1>;
275 /*
276 * VDD_MPU voltage limits 0.95V - 1.26V with
277 * +/-4% tolerance
278 */
279 regulator-compatible = "dcdc2";
280 regulator-name = "vdd_mpu";
281 regulator-min-microvolt = <925000>;
282 regulator-max-microvolt = <1375000>;
283 regulator-boot-on;
284 regulator-always-on;
285 regulator-ramp-delay = <70000>;
286 };
287
288 dcdc3_reg: regulator@2 {
289 reg = <2>;
290 /*
291 * VDD_CORE voltage limits 0.95V - 1.1V with
292 * +/-4% tolerance
293 */
294 regulator-name = "vdd_core";
295 regulator-compatible = "dcdc3";
296 regulator-min-microvolt = <925000>;
297 regulator-max-microvolt = <1125000>;
298 regulator-boot-on;
299 regulator-always-on;
300 };
301
302 ldo1_reg: regulator@3 {
303 reg = <3>;
304 regulator-name = "vio,vrtc,vdds";
305 regulator-compatible = "ldo1";
306 regulator-min-microvolt = <1000000>;
307 regulator-max-microvolt = <1800000>;
308 regulator-always-on;
309 };
310
311 ldo2_reg: regulator@4 {
312 reg = <4>;
313 regulator-name = "vdd_3v3aux";
314 regulator-compatible = "ldo2";
315 regulator-min-microvolt = <900000>;
316 regulator-max-microvolt = <3300000>;
317 regulator-always-on;
318 };
319
320 ldo3_reg: regulator@5 {
321 reg = <5>;
322 regulator-name = "vdd_1v8";
323 regulator-compatible = "ldo3";
324 regulator-min-microvolt = <900000>;
325 regulator-max-microvolt = <1800000>;
326 regulator-always-on;
327 };
328
329 ldo4_reg: regulator@6 {
330 reg = <6>;
331 regulator-name = "vdd_3v3a";
332 regulator-compatible = "ldo4";
333 regulator-min-microvolt = <1800000>;
334 regulator-max-microvolt = <3300000>;
335 regulator-always-on;
336 };
337 };
338};
339
340&uart0 {
341 pinctrl-names = "default";
342 pinctrl-0 = <&uart0_pins>;
343 status = "okay";
344};
345
346&uart1 {
347 pinctrl-names = "default";
348 pinctrl-0 = <&uart1_pins>;
349 status = "okay";
350};
351
352&uart2 {
353 pinctrl-names = "default";
354 pinctrl-0 = <&uart2_pins>;
355 status = "okay";
356};
357
358&uart4 {
359 pinctrl-names = "default";
360 pinctrl-0 = <&uart4_pins>;
361 status = "okay";
362};
363
364&usb {
365 status = "okay";
366};
367
368&usb_ctrl_mod {
369 status = "okay";
370};
371
372&usb1_phy {
373 status = "okay";
374};
375
376&usb1 {
377 status = "okay";
378 dr_mode = "host";
379};
380
381&am33xx_pinmux {
382 pinctrl-names = "default";
383 pinctrl-0 = <&clkout2_pin>;
384
385 clkout2_pin: pinmux_clkout2_pin {
386 pinctrl-single,pins = <
387 /* xdma_event_intr1.clkout2 */
388 AM33XX_IOPAD(0x9b4, PIN_INPUT | MUX_MODE6)
389 >;
390 };
391
392 cpsw_default: cpsw_default {
393 pinctrl-single,pins = <
394 /* Slave 1 */
395 AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE0)
396 AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
397 AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE0)
398 AM33XX_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
399 AM33XX_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
400 AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE0)
401 AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE0)
402 AM33XX_IOPAD(0x92c, PIN_INPUT_PULLUP | MUX_MODE0)
403 AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE0)
404 AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE0)
405 AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE0)
406 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE0)
407 AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE0)
408 >;
409 };
410
411 cpsw_sleep: cpsw_sleep {
412 pinctrl-single,pins = <
413 /* Slave 1 reset value */
414 AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7)
415 AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
416 AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7)
417 AM33XX_IOPAD(0x91c, PIN_INPUT_PULLDOWN | MUX_MODE7)
418 AM33XX_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE7)
419 AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
420 AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
421 AM33XX_IOPAD(0x92c, PIN_INPUT_PULLDOWN | MUX_MODE7)
422 AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE7)
423 AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE7)
424 AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE7)
425 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
426 AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
427 >;
428 };
429
430 davinci_mdio_default: davinci_mdio_default {
431 pinctrl-single,pins = <
432 /* mdio_data.mdio_data */
433 AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)
434 /* mdio_clk.mdio_clk */
435 AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0)
436 >;
437 };
438
439 davinci_mdio_sleep: davinci_mdio_sleep {
440 pinctrl-single,pins = <
441 /* MDIO reset value */
442 AM33XX_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
443 AM33XX_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
444 >;
445 };
446
447 ehrpwm1_pins: pinmux_ehrpwm1 {
448 pinctrl-single,pins = <
449 AM33XX_IOPAD(0x84c, PIN_OUTPUT | MUX_MODE6) /* gpmc_a3.gpio1_19 */
450 >;
451 };
452
453 emmc_pins: pinmux_emmc_pins {
454 pinctrl-single,pins = <
455 AM33XX_IOPAD(0x880, PIN_INPUT | MUX_MODE2)
456 AM33XX_IOPAD(0x884, PIN_INPUT_PULLUP | MUX_MODE2)
457 AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE1)
458 AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE1)
459 AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE1)
460 AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE1)
461 AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE1)
462 AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE1)
463 AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE1)
464 AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE1)
465 >;
466 };
467
468 i2c0_pins: pinmux_i2c0_pins {
469 pinctrl-single,pins = <
470 AM33XX_IOPAD(0x988, PIN_INPUT | MUX_MODE0)
471 AM33XX_IOPAD(0x98c, PIN_INPUT | MUX_MODE0)
472 >;
473 };
474
475 mmc1_pins: pinmux_mmc1_pins {
476 pinctrl-single,pins = <
477 AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE5)
478 >;
479 };
480
481 mmc3_pins: pinmux_mmc3_pins {
482 pinctrl-single,pins = <
483 AM33XX_IOPAD(0x830, PIN_INPUT | MUX_MODE3)
484 AM33XX_IOPAD(0x834, PIN_INPUT | MUX_MODE3)
485 AM33XX_IOPAD(0x838, PIN_INPUT | MUX_MODE3)
486 AM33XX_IOPAD(0x83c, PIN_INPUT | MUX_MODE3)
487 AM33XX_IOPAD(0x888, PIN_INPUT | MUX_MODE3)
488 AM33XX_IOPAD(0x88c, PIN_INPUT | MUX_MODE3)
489 >;
490 };
491
492 uart0_pins: pinmux_uart0_pins {
493 pinctrl-single,pins = <
494 AM33XX_IOPAD(0x968, PIN_INPUT_PULLDOWN | MUX_MODE0)
495 AM33XX_IOPAD(0x96c, PIN_OUTPUT | MUX_MODE0)
496 AM33XX_IOPAD(0x970, PIN_INPUT_PULLDOWN | MUX_MODE0)
497 AM33XX_IOPAD(0x974, PIN_OUTPUT | MUX_MODE0)
498 >;
499 };
500
501 uart1_pins: pinmux_uart1 {
502 pinctrl-single,pins = <
503 AM33XX_IOPAD(0x978, PIN_INPUT_PULLDOWN | MUX_MODE0)
504 AM33XX_IOPAD(0x97C, PIN_OUTPUT | MUX_MODE0)
505 AM33XX_IOPAD(0x980, PIN_INPUT | MUX_MODE0)
506 AM33XX_IOPAD(0x984, PIN_OUTPUT | MUX_MODE0)
507 >;
508 };
509
510 uart2_pins: pinmux_uart2_pins {
511 pinctrl-single,pins = <
512 AM33XX_IOPAD(0x950, PIN_INPUT | MUX_MODE1)
513 AM33XX_IOPAD(0x954, PIN_OUTPUT | MUX_MODE1)
514 >;
515 };
516
517 uart4_pins: pinmux_uart4_pins {
518 pinctrl-single,pins = <
519 AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE6)
520 AM33XX_IOPAD(0x874, PIN_OUTPUT_PULLUP | MUX_MODE6)
521 >;
522 };
523
524 user_leds_s0: user_leds_s0 {
525 pinctrl-single,pins = <
526 AM33XX_IOPAD(0x820, PIN_OUTPUT | MUX_MODE7)
527 AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE7)
528 AM33XX_IOPAD(0x828, PIN_OUTPUT | MUX_MODE7)
529 AM33XX_IOPAD(0x82c, PIN_OUTPUT | MUX_MODE7)
530 AM33XX_IOPAD(0x840, PIN_OUTPUT | MUX_MODE7)
531 AM33XX_IOPAD(0x844, PIN_OUTPUT | MUX_MODE7)
532 AM33XX_IOPAD(0x848, PIN_OUTPUT | MUX_MODE7)
533 AM33XX_IOPAD(0x850, PIN_OUTPUT_PULLDOWN | MUX_MODE7)
534 AM33XX_IOPAD(0x854, PIN_OUTPUT | MUX_MODE7)
535 AM33XX_IOPAD(0x858, PIN_OUTPUT | MUX_MODE7)
536 AM33XX_IOPAD(0x85c, PIN_OUTPUT_PULLUP | MUX_MODE7)
537 AM33XX_IOPAD(0x860, PIN_INPUT | MUX_MODE7)
538 AM33XX_IOPAD(0x864, PIN_INPUT | MUX_MODE7)
539 AM33XX_IOPAD(0x868, PIN_INPUT | MUX_MODE7)
540 AM33XX_IOPAD(0x86c, PIN_INPUT | MUX_MODE7)
541 AM33XX_IOPAD(0x878, PIN_OUTPUT_PULLUP | MUX_MODE7)
542 AM33XX_IOPAD(0x87c, PIN_INPUT | MUX_MODE7)
543 AM33XX_IOPAD(0x890, PIN_OUTPUT | MUX_MODE7)
544 AM33XX_IOPAD(0x894, PIN_INPUT | MUX_MODE7)
545 AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE7)
546 AM33XX_IOPAD(0x89c, PIN_OUTPUT | MUX_MODE7)
547 AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE7)
548 AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE7)
549 AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE7)
550 AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE7)
551 AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE7)
552 AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE7)
553 AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE7)
554 AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE7)
555 AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE7)
556 AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE7)
557 AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE7)
558 AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE7)
559 AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE7)
560 AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE7)
561 AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE7)
562 AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE7)
563 AM33XX_IOPAD(0x8e0, PIN_OUTPUT | MUX_MODE7)
564 AM33XX_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE7)
565 AM33XX_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE7)
566 AM33XX_IOPAD(0x8ec, PIN_OUTPUT | MUX_MODE7)
567 AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7)
568 AM33XX_IOPAD(0x958, PIN_OUTPUT | MUX_MODE7)
569 AM33XX_IOPAD(0x95c, PIN_OUTPUT | MUX_MODE7)
570 AM33XX_IOPAD(0x964, PIN_OUTPUT_PULLUP | MUX_MODE7)
571 AM33XX_IOPAD(0x9a0, PIN_OUTPUT_PULLDOWN | MUX_MODE7)
572 AM33XX_IOPAD(0x9a4, PIN_OUTPUT_PULLDOWN | MUX_MODE7)
573 AM33XX_IOPAD(0x9a8, PIN_INPUT_PULLDOWN | MUX_MODE7)
574 AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLUP | MUX_MODE7)
575 >;
576 };
577};
diff --git a/arch/arm/boot/dts/am335x-sl50.dts b/arch/arm/boot/dts/am335x-sl50.dts
index 3303c281697b..d38edfa53bb9 100644
--- a/arch/arm/boot/dts/am335x-sl50.dts
+++ b/arch/arm/boot/dts/am335x-sl50.dts
@@ -375,16 +375,19 @@
375 pinctrl-0 = <&uart4_pins>; 375 pinctrl-0 = <&uart4_pins>;
376}; 376};
377 377
378#include "tps65217.dtsi"
379
380&tps { 378&tps {
379 compatible = "ti,tps65217";
381 ti,pmic-shutdown-controller; 380 ti,pmic-shutdown-controller;
382 381
383 interrupt-parent = <&intc>; 382 interrupt-parent = <&intc>;
384 interrupts = <7>; /* NNMI */ 383 interrupts = <7>; /* NNMI */
385 384
386 regulators { 385 regulators {
386 #address-cells = <1>;
387 #size-cells = <0>;
388
387 dcdc1_reg: regulator@0 { 389 dcdc1_reg: regulator@0 {
390 reg = <0>;
388 /* VDDS_DDR */ 391 /* VDDS_DDR */
389 regulator-min-microvolt = <1500000>; 392 regulator-min-microvolt = <1500000>;
390 regulator-max-microvolt = <1500000>; 393 regulator-max-microvolt = <1500000>;
@@ -392,6 +395,7 @@
392 }; 395 };
393 396
394 dcdc2_reg: regulator@1 { 397 dcdc2_reg: regulator@1 {
398 reg = <1>;
395 /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ 399 /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
396 regulator-name = "vdd_mpu"; 400 regulator-name = "vdd_mpu";
397 regulator-min-microvolt = <925000>; 401 regulator-min-microvolt = <925000>;
@@ -401,6 +405,7 @@
401 }; 405 };
402 406
403 dcdc3_reg: regulator@2 { 407 dcdc3_reg: regulator@2 {
408 reg = <2>;
404 /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */ 409 /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
405 regulator-name = "vdd_core"; 410 regulator-name = "vdd_core";
406 regulator-min-microvolt = <925000>; 411 regulator-min-microvolt = <925000>;
@@ -410,6 +415,7 @@
410 }; 415 };
411 416
412 ldo1_reg: regulator@3 { 417 ldo1_reg: regulator@3 {
418 reg = <3>;
413 /* VRTC / VIO / VDDS*/ 419 /* VRTC / VIO / VDDS*/
414 regulator-always-on; 420 regulator-always-on;
415 regulator-min-microvolt = <1800000>; 421 regulator-min-microvolt = <1800000>;
@@ -417,6 +423,7 @@
417 }; 423 };
418 424
419 ldo2_reg: regulator@4 { 425 ldo2_reg: regulator@4 {
426 reg = <4>;
420 /* VDD_3V3AUX */ 427 /* VDD_3V3AUX */
421 regulator-always-on; 428 regulator-always-on;
422 regulator-min-microvolt = <3300000>; 429 regulator-min-microvolt = <3300000>;
@@ -424,6 +431,7 @@
424 }; 431 };
425 432
426 ldo3_reg: regulator@5 { 433 ldo3_reg: regulator@5 {
434 reg = <5>;
427 /* VDD_1V8 */ 435 /* VDD_1V8 */
428 regulator-min-microvolt = <1800000>; 436 regulator-min-microvolt = <1800000>;
429 regulator-max-microvolt = <1800000>; 437 regulator-max-microvolt = <1800000>;
@@ -431,6 +439,7 @@
431 }; 439 };
432 440
433 ldo4_reg: regulator@6 { 441 ldo4_reg: regulator@6 {
442 reg = <6>;
434 /* VDD_3V3A */ 443 /* VDD_3V3A */
435 regulator-min-microvolt = <3300000>; 444 regulator-min-microvolt = <3300000>;
436 regulator-max-microvolt = <3300000>; 445 regulator-max-microvolt = <3300000>;
diff --git a/arch/arm/boot/dts/am335x-wega.dtsi b/arch/arm/boot/dts/am335x-wega.dtsi
index 2cecb3951e1b..282f6d4b27bc 100644
--- a/arch/arm/boot/dts/am335x-wega.dtsi
+++ b/arch/arm/boot/dts/am335x-wega.dtsi
@@ -28,8 +28,8 @@
28&am33xx_pinmux { 28&am33xx_pinmux {
29 dcan1_pins: pinmux_dcan1 { 29 dcan1_pins: pinmux_dcan1 {
30 pinctrl-single,pins = < 30 pinctrl-single,pins = <
31 0x168 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* uart0_ctsn.d_can1_tx */ 31 AM33XX_IOPAD(0x968, PIN_OUTPUT_PULLUP | MUX_MODE2) /* uart0_ctsn.d_can1_tx */
32 0x16c (PIN_INPUT_PULLUP | MUX_MODE2) /* uart0_rtsn.d_can1_rx */ 32 AM33XX_IOPAD(0x96c, PIN_INPUT_PULLUP | MUX_MODE2) /* uart0_rtsn.d_can1_rx */
33 >; 33 >;
34 }; 34 };
35}; 35};
@@ -44,20 +44,20 @@
44&am33xx_pinmux { 44&am33xx_pinmux {
45 ethernet1_pins: pinmux_ethernet1 { 45 ethernet1_pins: pinmux_ethernet1 {
46 pinctrl-single,pins = < 46 pinctrl-single,pins = <
47 0x40 (PIN_OUTPUT | MUX_MODE1) /* gpmc_a0.mii2_txen */ 47 AM33XX_IOPAD(0x840, PIN_OUTPUT | MUX_MODE1) /* gpmc_a0.mii2_txen */
48 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a1.mii2_rxdv */ 48 AM33XX_IOPAD(0x844, PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a1.mii2_rxdv */
49 0x48 (PIN_OUTPUT | MUX_MODE1) /* gpmc_a2.mii2_txd3 */ 49 AM33XX_IOPAD(0x848, PIN_OUTPUT | MUX_MODE1) /* gpmc_a2.mii2_txd3 */
50 0x4c (PIN_OUTPUT | MUX_MODE1) /* gpmc_a3.mii2_txd2 */ 50 AM33XX_IOPAD(0x84c, PIN_OUTPUT | MUX_MODE1) /* gpmc_a3.mii2_txd2 */
51 0x50 (PIN_OUTPUT | MUX_MODE1) /* gpmc_a4.mii2_txd1 */ 51 AM33XX_IOPAD(0x850, PIN_OUTPUT | MUX_MODE1) /* gpmc_a4.mii2_txd1 */
52 0x54 (PIN_OUTPUT | MUX_MODE1) /* gpmc_a5.mii2_txd0 */ 52 AM33XX_IOPAD(0x854, PIN_OUTPUT | MUX_MODE1) /* gpmc_a5.mii2_txd0 */
53 0x58 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a6.mii2_txclk */ 53 AM33XX_IOPAD(0x858, PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a6.mii2_txclk */
54 0x5c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a7.mii2_rxclk */ 54 AM33XX_IOPAD(0x85c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a7.mii2_rxclk */
55 0x60 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a8.mii2_rxd3 */ 55 AM33XX_IOPAD(0x860, PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a8.mii2_rxd3 */
56 0x64 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a9.mii2_rxd2 */ 56 AM33XX_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a9.mii2_rxd2 */
57 0x68 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a10.mii2_rxd1 */ 57 AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a10.mii2_rxd1 */
58 0x6c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a11.mii2_rxd0 */ 58 AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a11.mii2_rxd0 */
59 0x74 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_wpn.mii2_rxerr */ 59 AM33XX_IOPAD(0x874, PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_wpn.mii2_rxerr */
60 0x78 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_ben1.mii2_col */ 60 AM33XX_IOPAD(0x878, PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_ben1.mii2_col */
61 >; 61 >;
62 }; 62 };
63}; 63};
@@ -79,13 +79,13 @@
79&am33xx_pinmux { 79&am33xx_pinmux {
80 mmc1_pins: pinmux_mmc1 { 80 mmc1_pins: pinmux_mmc1 {
81 pinctrl-single,pins = < 81 pinctrl-single,pins = <
82 0x0F0 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */ 82 AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
83 0x0F4 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */ 83 AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
84 0x0F8 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */ 84 AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
85 0x0FC (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */ 85 AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
86 0x100 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */ 86 AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */
87 0x104 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */ 87 AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
88 0x160 (PIN_INPUT_PULLUP | MUX_MODE7) /* spi0_cs1.mmc0_sdcd */ 88 AM33XX_IOPAD(0x960, PIN_INPUT_PULLUP | MUX_MODE7) /* spi0_cs1.mmc0_sdcd */
89 >; 89 >;
90 }; 90 };
91}; 91};
@@ -103,17 +103,17 @@
103&am33xx_pinmux { 103&am33xx_pinmux {
104 uart0_pins: pinmux_uart0 { 104 uart0_pins: pinmux_uart0 {
105 pinctrl-single,pins = < 105 pinctrl-single,pins = <
106 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ 106 AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
107 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ 107 AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
108 >; 108 >;
109 }; 109 };
110 110
111 uart1_pins: pinmux_uart1_pins { 111 uart1_pins: pinmux_uart1_pins {
112 pinctrl-single,pins = < 112 pinctrl-single,pins = <
113 0x180 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */ 113 AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */
114 0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 114 AM33XX_IOPAD(0x984, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
115 0x178 (PIN_INPUT | MUX_MODE0) /* uart1_ctsn.uart1_ctsn */ 115 AM33XX_IOPAD(0x978, PIN_INPUT | MUX_MODE0) /* uart1_ctsn.uart1_ctsn */
116 0x17c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_rtsn.uart1_rtsn */ 116 AM33XX_IOPAD(0x97c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_rtsn.uart1_rtsn */
117 >; 117 >;
118 }; 118 };
119}; 119};
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
index d23e2524d694..04885f9f959e 100644
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -161,6 +161,14 @@
161 mboxes = <&mailbox &mbox_wkupm3>; 161 mboxes = <&mailbox &mbox_wkupm3>;
162 }; 162 };
163 163
164 edma_xbar: dma-router@f90 {
165 compatible = "ti,am335x-edma-crossbar";
166 reg = <0xf90 0x40>;
167 #dma-cells = <3>;
168 dma-requests = <32>;
169 dma-masters = <&edma>;
170 };
171
164 scm_clockdomains: clockdomains { 172 scm_clockdomains: clockdomains {
165 }; 173 };
166 }; 174 };
@@ -174,12 +182,44 @@
174 }; 182 };
175 183
176 edma: edma@49000000 { 184 edma: edma@49000000 {
177 compatible = "ti,edma3"; 185 compatible = "ti,edma3-tpcc";
178 ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2"; 186 ti,hwmods = "tpcc";
179 reg = <0x49000000 0x10000>, 187 reg = <0x49000000 0x10000>;
180 <0x44e10f90 0x40>; 188 reg-names = "edma3_cc";
181 interrupts = <12 13 14>; 189 interrupts = <12 13 14>;
182 #dma-cells = <1>; 190 interrupt-names = "edma3_ccint", "emda3_mperr",
191 "edma3_ccerrint";
192 dma-requests = <64>;
193 #dma-cells = <2>;
194
195 ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
196 <&edma_tptc2 0>;
197
198 ti,edma-memcpy-channels = <20 21>;
199 };
200
201 edma_tptc0: tptc@49800000 {
202 compatible = "ti,edma3-tptc";
203 ti,hwmods = "tptc0";
204 reg = <0x49800000 0x100000>;
205 interrupts = <112>;
206 interrupt-names = "edma3_tcerrint";
207 };
208
209 edma_tptc1: tptc@49900000 {
210 compatible = "ti,edma3-tptc";
211 ti,hwmods = "tptc1";
212 reg = <0x49900000 0x100000>;
213 interrupts = <113>;
214 interrupt-names = "edma3_tcerrint";
215 };
216
217 edma_tptc2: tptc@49a00000 {
218 compatible = "ti,edma3-tptc";
219 ti,hwmods = "tptc2";
220 reg = <0x49a00000 0x100000>;
221 interrupts = <114>;
222 interrupt-names = "edma3_tcerrint";
183 }; 223 };
184 224
185 gpio0: gpio@44e07000 { 225 gpio0: gpio@44e07000 {
@@ -233,7 +273,7 @@
233 reg = <0x44e09000 0x2000>; 273 reg = <0x44e09000 0x2000>;
234 interrupts = <72>; 274 interrupts = <72>;
235 status = "disabled"; 275 status = "disabled";
236 dmas = <&edma 26>, <&edma 27>; 276 dmas = <&edma 26 0>, <&edma 27 0>;
237 dma-names = "tx", "rx"; 277 dma-names = "tx", "rx";
238 }; 278 };
239 279
@@ -244,7 +284,7 @@
244 reg = <0x48022000 0x2000>; 284 reg = <0x48022000 0x2000>;
245 interrupts = <73>; 285 interrupts = <73>;
246 status = "disabled"; 286 status = "disabled";
247 dmas = <&edma 28>, <&edma 29>; 287 dmas = <&edma 28 0>, <&edma 29 0>;
248 dma-names = "tx", "rx"; 288 dma-names = "tx", "rx";
249 }; 289 };
250 290
@@ -255,7 +295,7 @@
255 reg = <0x48024000 0x2000>; 295 reg = <0x48024000 0x2000>;
256 interrupts = <74>; 296 interrupts = <74>;
257 status = "disabled"; 297 status = "disabled";
258 dmas = <&edma 30>, <&edma 31>; 298 dmas = <&edma 30 0>, <&edma 31 0>;
259 dma-names = "tx", "rx"; 299 dma-names = "tx", "rx";
260 }; 300 };
261 301
@@ -322,8 +362,8 @@
322 ti,dual-volt; 362 ti,dual-volt;
323 ti,needs-special-reset; 363 ti,needs-special-reset;
324 ti,needs-special-hs-handling; 364 ti,needs-special-hs-handling;
325 dmas = <&edma 24 365 dmas = <&edma_xbar 24 0 0
326 &edma 25>; 366 &edma_xbar 25 0 0>;
327 dma-names = "tx", "rx"; 367 dma-names = "tx", "rx";
328 interrupts = <64>; 368 interrupts = <64>;
329 interrupt-parent = <&intc>; 369 interrupt-parent = <&intc>;
@@ -335,8 +375,8 @@
335 compatible = "ti,omap4-hsmmc"; 375 compatible = "ti,omap4-hsmmc";
336 ti,hwmods = "mmc2"; 376 ti,hwmods = "mmc2";
337 ti,needs-special-reset; 377 ti,needs-special-reset;
338 dmas = <&edma 2 378 dmas = <&edma 2 0
339 &edma 3>; 379 &edma 3 0>;
340 dma-names = "tx", "rx"; 380 dma-names = "tx", "rx";
341 interrupts = <28>; 381 interrupts = <28>;
342 interrupt-parent = <&intc>; 382 interrupt-parent = <&intc>;
@@ -474,10 +514,10 @@
474 interrupts = <65>; 514 interrupts = <65>;
475 ti,spi-num-cs = <2>; 515 ti,spi-num-cs = <2>;
476 ti,hwmods = "spi0"; 516 ti,hwmods = "spi0";
477 dmas = <&edma 16 517 dmas = <&edma 16 0
478 &edma 17 518 &edma 17 0
479 &edma 18 519 &edma 18 0
480 &edma 19>; 520 &edma 19 0>;
481 dma-names = "tx0", "rx0", "tx1", "rx1"; 521 dma-names = "tx0", "rx0", "tx1", "rx1";
482 status = "disabled"; 522 status = "disabled";
483 }; 523 };
@@ -490,10 +530,10 @@
490 interrupts = <125>; 530 interrupts = <125>;
491 ti,spi-num-cs = <2>; 531 ti,spi-num-cs = <2>;
492 ti,hwmods = "spi1"; 532 ti,hwmods = "spi1";
493 dmas = <&edma 42 533 dmas = <&edma 42 0
494 &edma 43 534 &edma 43 0
495 &edma 44 535 &edma 44 0
496 &edma 45>; 536 &edma 45 0>;
497 dma-names = "tx0", "rx0", "tx1", "rx1"; 537 dma-names = "tx0", "rx0", "tx1", "rx1";
498 status = "disabled"; 538 status = "disabled";
499 }; 539 };
@@ -819,6 +859,8 @@
819 ti,no-idle-on-init; 859 ti,no-idle-on-init;
820 reg = <0x50000000 0x2000>; 860 reg = <0x50000000 0x2000>;
821 interrupts = <100>; 861 interrupts = <100>;
862 dmas = <&edma 52>;
863 dma-names = "rxtx";
822 gpmc,num-cs = <7>; 864 gpmc,num-cs = <7>;
823 gpmc,num-waitpins = <2>; 865 gpmc,num-waitpins = <2>;
824 #address-cells = <2>; 866 #address-cells = <2>;
@@ -831,7 +873,7 @@
831 ti,hwmods = "sham"; 873 ti,hwmods = "sham";
832 reg = <0x53100000 0x200>; 874 reg = <0x53100000 0x200>;
833 interrupts = <109>; 875 interrupts = <109>;
834 dmas = <&edma 36>; 876 dmas = <&edma 36 0>;
835 dma-names = "rx"; 877 dma-names = "rx";
836 }; 878 };
837 879
@@ -840,8 +882,8 @@
840 ti,hwmods = "aes"; 882 ti,hwmods = "aes";
841 reg = <0x53500000 0xa0>; 883 reg = <0x53500000 0xa0>;
842 interrupts = <103>; 884 interrupts = <103>;
843 dmas = <&edma 6>, 885 dmas = <&edma 6 0>,
844 <&edma 5>; 886 <&edma 5 0>;
845 dma-names = "tx", "rx"; 887 dma-names = "tx", "rx";
846 }; 888 };
847 889
@@ -854,8 +896,8 @@
854 interrupts = <80>, <81>; 896 interrupts = <80>, <81>;
855 interrupt-names = "tx", "rx"; 897 interrupt-names = "tx", "rx";
856 status = "disabled"; 898 status = "disabled";
857 dmas = <&edma 8>, 899 dmas = <&edma 8 2>,
858 <&edma 9>; 900 <&edma 9 2>;
859 dma-names = "tx", "rx"; 901 dma-names = "tx", "rx";
860 }; 902 };
861 903
@@ -868,8 +910,8 @@
868 interrupts = <82>, <83>; 910 interrupts = <82>, <83>;
869 interrupt-names = "tx", "rx"; 911 interrupt-names = "tx", "rx";
870 status = "disabled"; 912 status = "disabled";
871 dmas = <&edma 10>, 913 dmas = <&edma 10 2>,
872 <&edma 11>; 914 <&edma 11 2>;
873 dma-names = "tx", "rx"; 915 dma-names = "tx", "rx";
874 }; 916 };
875 917
diff --git a/arch/arm/boot/dts/am3517-craneboard.dts b/arch/arm/boot/dts/am3517-craneboard.dts
index 2d40b3f241cd..cb7de1d4e05f 100644
--- a/arch/arm/boot/dts/am3517-craneboard.dts
+++ b/arch/arm/boot/dts/am3517-craneboard.dts
@@ -77,7 +77,7 @@
77&omap3_pmx_core { 77&omap3_pmx_core {
78 tps_pins: pinmux_tps_pins { 78 tps_pins: pinmux_tps_pins {
79 pinctrl-single,pins = < 79 pinctrl-single,pins = <
80 0x1b0 (PIN_INPUT_PULLUP | MUX_MODE0) /* sys_nirq.sys_nirq */ 80 OMAP3_CORE1_IOPAD(0x21e0, PIN_INPUT_PULLUP | MUX_MODE0) /* sys_nirq.sys_nirq */
81 >; 81 >;
82 }; 82 };
83}; 83};
diff --git a/arch/arm/boot/dts/am4372.dtsi b/arch/arm/boot/dts/am4372.dtsi
index de8791a4d131..df955ba4dc62 100644
--- a/arch/arm/boot/dts/am4372.dtsi
+++ b/arch/arm/boot/dts/am4372.dtsi
@@ -30,6 +30,7 @@
30 serial5 = &uart5; 30 serial5 = &uart5;
31 ethernet0 = &cpsw_emac0; 31 ethernet0 = &cpsw_emac0;
32 ethernet1 = &cpsw_emac1; 32 ethernet1 = &cpsw_emac1;
33 spi0 = &qspi;
33 }; 34 };
34 35
35 cpus { 36 cpus {
@@ -171,6 +172,14 @@
171 mboxes = <&mailbox &mbox_wkupm3>; 172 mboxes = <&mailbox &mbox_wkupm3>;
172 }; 173 };
173 174
175 edma_xbar: dma-router@f90 {
176 compatible = "ti,am335x-edma-crossbar";
177 reg = <0xf90 0x40>;
178 #dma-cells = <3>;
179 dma-requests = <64>;
180 dma-masters = <&edma>;
181 };
182
174 scm_clockdomains: clockdomains { 183 scm_clockdomains: clockdomains {
175 }; 184 };
176 }; 185 };
@@ -183,14 +192,46 @@
183 }; 192 };
184 193
185 edma: edma@49000000 { 194 edma: edma@49000000 {
186 compatible = "ti,edma3"; 195 compatible = "ti,edma3-tpcc";
187 ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2"; 196 ti,hwmods = "tpcc";
188 reg = <0x49000000 0x10000>, 197 reg = <0x49000000 0x10000>;
189 <0x44e10f90 0x10>; 198 reg-names = "edma3_cc";
190 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 199 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
191 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, 200 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
192 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 201 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
193 #dma-cells = <1>; 202 interrupt-names = "edma3_ccint", "emda3_mperr",
203 "edma3_ccerrint";
204 dma-requests = <64>;
205 #dma-cells = <2>;
206
207 ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
208 <&edma_tptc2 0>;
209
210 ti,edma-memcpy-channels = <32 33>;
211 };
212
213 edma_tptc0: tptc@49800000 {
214 compatible = "ti,edma3-tptc";
215 ti,hwmods = "tptc0";
216 reg = <0x49800000 0x100000>;
217 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
218 interrupt-names = "edma3_tcerrint";
219 };
220
221 edma_tptc1: tptc@49900000 {
222 compatible = "ti,edma3-tptc";
223 ti,hwmods = "tptc1";
224 reg = <0x49900000 0x100000>;
225 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
226 interrupt-names = "edma3_tcerrint";
227 };
228
229 edma_tptc2: tptc@49a00000 {
230 compatible = "ti,edma3-tptc";
231 ti,hwmods = "tptc2";
232 reg = <0x49a00000 0x100000>;
233 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
234 interrupt-names = "edma3_tcerrint";
194 }; 235 };
195 236
196 uart0: serial@44e09000 { 237 uart0: serial@44e09000 {
@@ -495,8 +536,8 @@
495 ti,hwmods = "mmc1"; 536 ti,hwmods = "mmc1";
496 ti,dual-volt; 537 ti,dual-volt;
497 ti,needs-special-reset; 538 ti,needs-special-reset;
498 dmas = <&edma 24 539 dmas = <&edma 24 0>,
499 &edma 25>; 540 <&edma 25 0>;
500 dma-names = "tx", "rx"; 541 dma-names = "tx", "rx";
501 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 542 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
502 status = "disabled"; 543 status = "disabled";
@@ -507,8 +548,8 @@
507 reg = <0x481d8000 0x1000>; 548 reg = <0x481d8000 0x1000>;
508 ti,hwmods = "mmc2"; 549 ti,hwmods = "mmc2";
509 ti,needs-special-reset; 550 ti,needs-special-reset;
510 dmas = <&edma 2 551 dmas = <&edma 2 0>,
511 &edma 3>; 552 <&edma 3 0>;
512 dma-names = "tx", "rx"; 553 dma-names = "tx", "rx";
513 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 554 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
514 status = "disabled"; 555 status = "disabled";
@@ -776,7 +817,7 @@
776 compatible = "ti,omap5-sham"; 817 compatible = "ti,omap5-sham";
777 ti,hwmods = "sham"; 818 ti,hwmods = "sham";
778 reg = <0x53100000 0x300>; 819 reg = <0x53100000 0x300>;
779 dmas = <&edma 36>; 820 dmas = <&edma 36 0>;
780 dma-names = "rx"; 821 dma-names = "rx";
781 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 822 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
782 }; 823 };
@@ -786,8 +827,8 @@
786 ti,hwmods = "aes"; 827 ti,hwmods = "aes";
787 reg = <0x53501000 0xa0>; 828 reg = <0x53501000 0xa0>;
788 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 829 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
789 dmas = <&edma 6 830 dmas = <&edma 6 0>,
790 &edma 5>; 831 <&edma 5 0>;
791 dma-names = "tx", "rx"; 832 dma-names = "tx", "rx";
792 }; 833 };
793 834
@@ -796,8 +837,8 @@
796 ti,hwmods = "des"; 837 ti,hwmods = "des";
797 reg = <0x53701000 0xa0>; 838 reg = <0x53701000 0xa0>;
798 interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>; 839 interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
799 dmas = <&edma 34 840 dmas = <&edma 34 0>,
800 &edma 33>; 841 <&edma 33 0>;
801 dma-names = "tx", "rx"; 842 dma-names = "tx", "rx";
802 }; 843 };
803 844
@@ -810,8 +851,8 @@
810 interrupts = <80>, <81>; 851 interrupts = <80>, <81>;
811 interrupt-names = "tx", "rx"; 852 interrupt-names = "tx", "rx";
812 status = "disabled"; 853 status = "disabled";
813 dmas = <&edma 8>, 854 dmas = <&edma 8 2>,
814 <&edma 9>; 855 <&edma 9 2>;
815 dma-names = "tx", "rx"; 856 dma-names = "tx", "rx";
816 }; 857 };
817 858
@@ -824,8 +865,8 @@
824 interrupts = <82>, <83>; 865 interrupts = <82>, <83>;
825 interrupt-names = "tx", "rx"; 866 interrupt-names = "tx", "rx";
826 status = "disabled"; 867 status = "disabled";
827 dmas = <&edma 10>, 868 dmas = <&edma 10 2>,
828 <&edma 11>; 869 <&edma 11 2>;
829 dma-names = "tx", "rx"; 870 dma-names = "tx", "rx";
830 }; 871 };
831 872
@@ -842,6 +883,8 @@
842 gpmc: gpmc@50000000 { 883 gpmc: gpmc@50000000 {
843 compatible = "ti,am3352-gpmc"; 884 compatible = "ti,am3352-gpmc";
844 ti,hwmods = "gpmc"; 885 ti,hwmods = "gpmc";
886 dmas = <&edma 52>;
887 dma-names = "rxtx";
845 clocks = <&l3s_gclk>; 888 clocks = <&l3s_gclk>;
846 clock-names = "fck"; 889 clock-names = "fck";
847 reg = <0x50000000 0x2000>; 890 reg = <0x50000000 0x2000>;
@@ -963,7 +1006,9 @@
963 1006
964 qspi: qspi@47900000 { 1007 qspi: qspi@47900000 {
965 compatible = "ti,am4372-qspi"; 1008 compatible = "ti,am4372-qspi";
966 reg = <0x47900000 0x100>; 1009 reg = <0x47900000 0x100>,
1010 <0x30000000 0x4000000>;
1011 reg-names = "qspi_base", "qspi_mmap";
967 #address-cells = <1>; 1012 #address-cells = <1>;
968 #size-cells = <0>; 1013 #size-cells = <0>;
969 ti,hwmods = "qspi"; 1014 ti,hwmods = "qspi";
diff --git a/arch/arm/boot/dts/am437x-cm-t43.dts b/arch/arm/boot/dts/am437x-cm-t43.dts
new file mode 100644
index 000000000000..8677f4cce9e9
--- /dev/null
+++ b/arch/arm/boot/dts/am437x-cm-t43.dts
@@ -0,0 +1,422 @@
1/*
2 * Copyright (C) 2015 CompuLab, Ltd. - http://www.compulab.co.il/
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9/dts-v1/;
10
11#include <dt-bindings/pinctrl/am43xx.h>
12#include <dt-bindings/gpio/gpio.h>
13#include <dt-bindings/interrupt-controller/irq.h>
14#include "am4372.dtsi"
15
16/ {
17 model = "CompuLab CM-T43";
18 compatible = "compulab,am437x-cm-t43", "ti,am4372", "ti,am43";
19
20 leds {
21 compatible = "gpio-leds";
22
23 ledb {
24 label = "cm-t43:green";
25 gpios = <&gpio0 24 GPIO_ACTIVE_HIGH>;
26 linux,default-trigger = "heartbeat";
27 };
28 };
29
30 vmmc_3v3: fixedregulator-v3_3 {
31 compatible = "regulator-fixed";
32 regulator-name = "vmmc_3v3";
33 regulator-min-microvolt = <3300000>;
34 regulator-max-microvolt = <3300000>;
35 regulator-always-on;
36 enable-active-high;
37 };
38};
39
40&am43xx_pinmux {
41 pinctrl-names = "default";
42 pinctrl-0 = <&cm_t43_led_pins>;
43
44 cm_t43_led_pins: cm_t43_led_pins {
45 pinctrl-single,pins = <
46 AM4372_IOPAD(0xa78, MUX_MODE7)
47 >;
48 };
49
50 i2c0_pins: i2c0_pins {
51 pinctrl-single,pins = <
52 AM4372_IOPAD(0x988, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_sda.i2c0_sda */
53 AM4372_IOPAD(0x98c, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_scl.i2c0_scl */
54 >;
55 };
56
57 emmc_pins: emmc_pins {
58 pinctrl-single,pins = <
59 AM4372_IOPAD(0x820, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_ad8.mmc1_dat0 */
60 AM4372_IOPAD(0x824, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_ad9.mmc1_dat1 */
61 AM4372_IOPAD(0x828, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_ad10.mmc1_dat2 */
62 AM4372_IOPAD(0x82c, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_ad11.mmc1_dat3 */
63 AM4372_IOPAD(0x830, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_ad12.mmc1_dat4 */
64 AM4372_IOPAD(0x834, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_ad13.mmc1_dat5 */
65 AM4372_IOPAD(0x838, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_ad14.mmc1_dat6 */
66 AM4372_IOPAD(0x83c, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_ad15.mmc1_dat7 */
67 AM4372_IOPAD(0x880, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
68 AM4372_IOPAD(0x884, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
69 >;
70 };
71
72 spi0_pins: pinmux_spi0_pins {
73 pinctrl-single,pins = <
74 AM4372_IOPAD(0x950, PIN_INPUT | MUX_MODE0) /* spi0_sclk.spi0_sclk */
75 AM4372_IOPAD(0x954, PIN_INPUT | MUX_MODE0) /* spi0_d0.spi0_d0 */
76 AM4372_IOPAD(0x958, PIN_OUTPUT | MUX_MODE0) /* spi0_d1.spi0_d1 */
77 AM4372_IOPAD(0x95C, PIN_OUTPUT | MUX_MODE0) /* spi0_cs0.spi0_cs0 */
78 >;
79 };
80
81 nand_flash_x8: nand_flash_x8 {
82 pinctrl-single,pins = <
83 AM4372_IOPAD(0x800, PIN_INPUT | PULL_DISABLE | MUX_MODE0)
84 AM4372_IOPAD(0x804, PIN_INPUT | PULL_DISABLE | MUX_MODE0)
85 AM4372_IOPAD(0x808, PIN_INPUT | PULL_DISABLE | MUX_MODE0)
86 AM4372_IOPAD(0x80c, PIN_INPUT | PULL_DISABLE | MUX_MODE0)
87 AM4372_IOPAD(0x810, PIN_INPUT | PULL_DISABLE | MUX_MODE0)
88 AM4372_IOPAD(0x814, PIN_INPUT | PULL_DISABLE | MUX_MODE0)
89 AM4372_IOPAD(0x818, PIN_INPUT | PULL_DISABLE | MUX_MODE0)
90 AM4372_IOPAD(0x81c, PIN_INPUT | PULL_DISABLE | MUX_MODE0)
91 AM4372_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE0)
92 AM4372_IOPAD(0x874, PIN_OUTPUT_PULLUP | MUX_MODE0)
93 AM4372_IOPAD(0x87c, PIN_OUTPUT_PULLUP | MUX_MODE0)
94 AM4372_IOPAD(0x898, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
95 AM4372_IOPAD(0x894, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
96 AM4372_IOPAD(0x890, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
97 AM4372_IOPAD(0x89c, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
98 >;
99 };
100
101 cpsw_default: cpsw_default {
102 pinctrl-single,pins = <
103 /* Slave 1 */
104 AM4372_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_txen */
105 AM4372_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rxctl */
106 AM4372_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_txd3 */
107 AM4372_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_txd2 */
108 AM4372_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_txd1 */
109 AM4372_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_txd0 */
110 AM4372_IOPAD(0x92c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rmii1_tclk */
111 AM4372_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rmii1_rclk */
112 AM4372_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rxd3 */
113 AM4372_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rxd2 */
114 AM4372_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rxd1 */
115 AM4372_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rxd0 */
116 AM4372_IOPAD(0xa74, MUX_MODE3)
117 /* Slave 2 */
118 AM4372_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a0.txen */
119 AM4372_IOPAD(0x844, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a1.rxctl */
120 AM4372_IOPAD(0x848, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a2.txd3 */
121 AM4372_IOPAD(0x84c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a3.txd2 */
122 AM4372_IOPAD(0x850, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a4.txd1 */
123 AM4372_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a5.txd0 */
124 AM4372_IOPAD(0x858, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a6.tclk */
125 AM4372_IOPAD(0x85c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a7.rclk */
126 AM4372_IOPAD(0x860, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a8.rxd3 */
127 AM4372_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a9.rxd2 */
128 AM4372_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a10.rxd1 */
129 AM4372_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a11.rxd0 */
130 AM4372_IOPAD(0xa38, MUX_MODE7)
131 >;
132 };
133
134 davinci_mdio_default: davinci_mdio_default {
135 pinctrl-single,pins = <
136 /* MDIO */
137 AM4372_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
138 AM4372_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
139 >;
140 };
141};
142
143&gpmc {
144 status = "okay";
145 pinctrl-names = "default";
146 pinctrl-0 = <&nand_flash_x8>;
147 ranges = <0 0 0x08000000 0x1000000>;
148 nand@0,0 {
149 reg = <0 0 0>;
150 ti,nand-ecc-opt = "bch8";
151 ti,elm-id = <&elm>;
152
153 nand-bus-width = <8>;
154 gpmc,device-width = <1>;
155 gpmc,sync-clk-ps = <0>;
156 gpmc,cs-on-ns = <0>;
157 gpmc,cs-rd-off-ns = <44>;
158 gpmc,cs-wr-off-ns = <44>;
159 gpmc,adv-on-ns = <6>;
160 gpmc,adv-rd-off-ns = <34>;
161 gpmc,adv-wr-off-ns = <44>;
162 gpmc,we-on-ns = <0>;
163 gpmc,we-off-ns = <40>;
164 gpmc,oe-on-ns = <0>;
165 gpmc,oe-off-ns = <54>;
166 gpmc,access-ns = <64>;
167 gpmc,rd-cycle-ns = <82>;
168 gpmc,wr-cycle-ns = <82>;
169 gpmc,wait-on-read = "true";
170 gpmc,wait-on-write = "true";
171 gpmc,bus-turnaround-ns = <0>;
172 gpmc,cycle2cycle-delay-ns = <0>;
173 gpmc,clk-activation-ns = <0>;
174 gpmc,wait-monitoring-ns = <0>;
175 gpmc,wr-access-ns = <40>;
176 gpmc,wr-data-mux-bus-ns = <0>;
177
178 gpmc,wait-pin = <0>;
179
180 #address-cells = <1>;
181 #size-cells = <1>;
182 /* MTD partition table */
183 partition@0 {
184 label = "kernel";
185 reg = <0x0 0x00980000>;
186 };
187 partition@980000 {
188 label = "dtb";
189 reg = <0x00980000 0x00080000>;
190 };
191 partition@a00000 {
192 label = "rootfs";
193 reg = <0x00a00000 0x0>;
194 };
195 };
196};
197
198&i2c0 {
199 status = "okay";
200 pinctrl-names = "default";
201 pinctrl-0 = <&i2c0_pins>;
202 clock-frequency = <100000>;
203
204 tps65218: tps65218@24 {
205 compatible = "ti,tps65218";
206 reg = <0x24>;
207 interrupts = <GIC_SPI 7 IRQ_TYPE_NONE>; /* NMIn */
208 interrupt-parent = <&gic>;
209 interrupt-controller;
210 #interrupt-cells = <2>;
211
212 dcdc1: regulator-dcdc1 {
213 compatible = "ti,tps65218-dcdc1";
214 regulator-name = "vdd_core";
215 regulator-min-microvolt = <912000>;
216 regulator-max-microvolt = <1144000>;
217 regulator-boot-on;
218 regulator-always-on;
219 };
220
221 dcdc2: regulator-dcdc2 {
222 compatible = "ti,tps65218-dcdc2";
223 regulator-name = "vdd_mpu";
224 regulator-min-microvolt = <912000>;
225 regulator-max-microvolt = <1378000>;
226 regulator-boot-on;
227 regulator-always-on;
228 };
229
230 dcdc3: regulator-dcdc3 {
231 compatible = "ti,tps65218-dcdc3";
232 regulator-name = "vdcdc3";
233 regulator-suspend-enable;
234 regulator-min-microvolt = <1500000>;
235 regulator-max-microvolt = <1500000>;
236 regulator-boot-on;
237 regulator-always-on;
238 };
239
240 dcdc5: regulator-dcdc5 {
241 compatible = "ti,tps65218-dcdc5";
242 regulator-name = "v1_0bat";
243 regulator-min-microvolt = <1000000>;
244 regulator-max-microvolt = <1000000>;
245 regulator-boot-on;
246 regulator-always-on;
247 };
248
249 dcdc6: regulator-dcdc6 {
250 compatible = "ti,tps65218-dcdc6";
251 regulator-name = "v1_8bat";
252 regulator-min-microvolt = <1800000>;
253 regulator-max-microvolt = <1800000>;
254 regulator-boot-on;
255 regulator-always-on;
256 };
257
258 ldo1: regulator-ldo1 {
259 compatible = "ti,tps65218-ldo1";
260 regulator-min-microvolt = <1800000>;
261 regulator-max-microvolt = <1800000>;
262 regulator-boot-on;
263 regulator-always-on;
264 };
265 };
266
267 eeprom_module: at24@50 {
268 compatible = "atmel,24c02";
269 reg = <0x50>;
270 pagesize = <16>;
271 };
272};
273
274&gpio0 {
275 status = "okay";
276};
277
278&gpio1 {
279 status = "okay";
280};
281
282&gpio2 {
283 status = "okay";
284};
285
286&gpio3 {
287 status = "okay";
288};
289
290&gpio4 {
291 status = "okay";
292};
293
294&gpio5 {
295 status = "okay";
296};
297
298&mmc2 {
299 status = "okay";
300 pinctrl-names = "default";
301 pinctrl-0 = <&emmc_pins>;
302 vmmc-supply = <&vmmc_3v3>;
303 bus-width = <8>;
304 ti,non-removable;
305};
306
307&spi0 {
308 status = "okay";
309 pinctrl-names = "default";
310 pinctrl-0 = <&spi0_pins>;
311 dmas = <&edma 16
312 &edma 17>;
313 dma-names = "tx0", "rx0";
314
315 flash: w25q64cvzpig@0 {
316 #address-cells = <1>;
317 #size-cells = <1>;
318 compatible = "jedec,spi-nor";
319 reg = <0>;
320 spi-max-frequency = <20000000>;
321 partition@0 {
322 label = "uboot";
323 reg = <0x0 0xc0000>;
324 };
325
326 partition@c0000 {
327 label = "uboot environment";
328 reg = <0xc0000 0x40000>;
329 };
330
331 partition@100000 {
332 label = "reserved";
333 reg = <0x100000 0x100000>;
334 };
335 };
336};
337
338&mac {
339 pinctrl-names = "default";
340 pinctrl-0 = <&cpsw_default>;
341 dual_emac = <1>;
342 status = "okay";
343};
344
345&davinci_mdio {
346 pinctrl-names = "default";
347 pinctrl-0 = <&davinci_mdio_default>;
348 status = "okay";
349};
350
351&cpsw_emac0 {
352 phy_id = <&davinci_mdio>, <0>;
353 phy-mode = "rgmii-txid";
354 dual_emac_res_vlan = <1>;
355};
356
357&cpsw_emac1 {
358 phy_id = <&davinci_mdio>, <1>;
359 phy-mode = "rgmii-txid";
360 dual_emac_res_vlan = <2>;
361};
362
363&dwc3_1 {
364 status = "okay";
365};
366
367&usb2_phy1 {
368 status = "okay";
369};
370
371&usb1 {
372 dr_mode = "host";
373 status = "okay";
374};
375
376&dwc3_2 {
377 status = "okay";
378};
379
380&usb2_phy2 {
381 status = "okay";
382};
383
384&usb2 {
385 dr_mode = "host";
386 status = "okay";
387 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>,
388 <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>,
389 <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
390 interrupt-names = "peripheral", "host", "otg";
391};
392
393&elm {
394 status = "okay";
395};
396
397&uart0 {
398 status = "okay";
399};
400
401&tscadc {
402 status = "okay";
403 tsc {
404 ti,wires = <4>;
405 ti,x-plate-resistance = <200>;
406 ti,coordiante-readouts = <5>;
407 ti,wire-config = <0x00 0x11 0x22 0x33>;
408 };
409
410 adc {
411 ti,adc-channels = <4 5 6 7>;
412 };
413};
414
415&cpu {
416 cpu0-supply = <&dcdc2>;
417 operating-points = <1000000 1330000>,
418 <800000 1260000>,
419 <720000 1200000>,
420 <600000 1100000>,
421 <300000 950000>;
422};
diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts
index d2450ab0a380..64d43325bcbc 100644
--- a/arch/arm/boot/dts/am437x-gp-evm.dts
+++ b/arch/arm/boot/dts/am437x-gp-evm.dts
@@ -154,138 +154,138 @@
154 154
155 i2c0_pins: i2c0_pins { 155 i2c0_pins: i2c0_pins {
156 pinctrl-single,pins = < 156 pinctrl-single,pins = <
157 0x188 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_sda.i2c0_sda */ 157 AM4372_IOPAD(0x988, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_sda.i2c0_sda */
158 0x18c (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_scl.i2c0_scl */ 158 AM4372_IOPAD(0x98c, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_scl.i2c0_scl */
159 >; 159 >;
160 }; 160 };
161 161
162 i2c1_pins: i2c1_pins { 162 i2c1_pins: i2c1_pins {
163 pinctrl-single,pins = < 163 pinctrl-single,pins = <
164 0x15c (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE2) /* spi0_cs0.i2c1_scl */ 164 AM4372_IOPAD(0x95c, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE2) /* spi0_cs0.i2c1_scl */
165 0x158 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE2) /* spi0_d1.i2c1_sda */ 165 AM4372_IOPAD(0x958, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE2) /* spi0_d1.i2c1_sda */
166 >; 166 >;
167 }; 167 };
168 168
169 mmc1_pins: pinmux_mmc1_pins { 169 mmc1_pins: pinmux_mmc1_pins {
170 pinctrl-single,pins = < 170 pinctrl-single,pins = <
171 0x160 (PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */ 171 AM4372_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */
172 >; 172 >;
173 }; 173 };
174 174
175 ecap0_pins: backlight_pins { 175 ecap0_pins: backlight_pins {
176 pinctrl-single,pins = < 176 pinctrl-single,pins = <
177 0x164 MUX_MODE0 /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */ 177 AM4372_IOPAD(0x964, MUX_MODE0) /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */
178 >; 178 >;
179 }; 179 };
180 180
181 pixcir_ts_pins: pixcir_ts_pins { 181 pixcir_ts_pins: pixcir_ts_pins {
182 pinctrl-single,pins = < 182 pinctrl-single,pins = <
183 0x264 (PIN_INPUT_PULLUP | MUX_MODE7) /* spi2_d0.gpio3_22 */ 183 AM4372_IOPAD(0xa64, PIN_INPUT_PULLUP | MUX_MODE7) /* spi2_d0.gpio3_22 */
184 >; 184 >;
185 }; 185 };
186 186
187 cpsw_default: cpsw_default { 187 cpsw_default: cpsw_default {
188 pinctrl-single,pins = < 188 pinctrl-single,pins = <
189 /* Slave 1 */ 189 /* Slave 1 */
190 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_txen */ 190 AM4372_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_txen */
191 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rxctl */ 191 AM4372_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rxctl */
192 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_txd3 */ 192 AM4372_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_txd3 */
193 0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_txd2 */ 193 AM4372_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_txd2 */
194 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_txd1 */ 194 AM4372_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_txd1 */
195 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_txd0 */ 195 AM4372_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_txd0 */
196 0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rmii1_tclk */ 196 AM4372_IOPAD(0x92c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rmii1_tclk */
197 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rmii1_rclk */ 197 AM4372_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rmii1_rclk */
198 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rxd3 */ 198 AM4372_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rxd3 */
199 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rxd2 */ 199 AM4372_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rxd2 */
200 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rxd1 */ 200 AM4372_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rxd1 */
201 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rxd0 */ 201 AM4372_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rxd0 */
202 >; 202 >;
203 }; 203 };
204 204
205 cpsw_sleep: cpsw_sleep { 205 cpsw_sleep: cpsw_sleep {
206 pinctrl-single,pins = < 206 pinctrl-single,pins = <
207 /* Slave 1 reset value */ 207 /* Slave 1 reset value */
208 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) 208 AM4372_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
209 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) 209 AM4372_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7)
210 0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7) 210 AM4372_IOPAD(0x91c, PIN_INPUT_PULLDOWN | MUX_MODE7)
211 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7) 211 AM4372_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE7)
212 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) 212 AM4372_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
213 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) 213 AM4372_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
214 0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7) 214 AM4372_IOPAD(0x92c, PIN_INPUT_PULLDOWN | MUX_MODE7)
215 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7) 215 AM4372_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE7)
216 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7) 216 AM4372_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE7)
217 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7) 217 AM4372_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE7)
218 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) 218 AM4372_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
219 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) 219 AM4372_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
220 >; 220 >;
221 }; 221 };
222 222
223 davinci_mdio_default: davinci_mdio_default { 223 davinci_mdio_default: davinci_mdio_default {
224 pinctrl-single,pins = < 224 pinctrl-single,pins = <
225 /* MDIO */ 225 /* MDIO */
226 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ 226 AM4372_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
227 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ 227 AM4372_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
228 >; 228 >;
229 }; 229 };
230 230
231 davinci_mdio_sleep: davinci_mdio_sleep { 231 davinci_mdio_sleep: davinci_mdio_sleep {
232 pinctrl-single,pins = < 232 pinctrl-single,pins = <
233 /* MDIO reset value */ 233 /* MDIO reset value */
234 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) 234 AM4372_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
235 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) 235 AM4372_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
236 >; 236 >;
237 }; 237 };
238 238
239 nand_flash_x8: nand_flash_x8 { 239 nand_flash_x8: nand_flash_x8 {
240 pinctrl-single,pins = < 240 pinctrl-single,pins = <
241 0x0 (PIN_INPUT | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */ 241 AM4372_IOPAD(0x800, PIN_INPUT | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */
242 0x4 (PIN_INPUT | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */ 242 AM4372_IOPAD(0x804, PIN_INPUT | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */
243 0x8 (PIN_INPUT | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */ 243 AM4372_IOPAD(0x808, PIN_INPUT | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */
244 0xc (PIN_INPUT | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */ 244 AM4372_IOPAD(0x80c, PIN_INPUT | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */
245 0x10 (PIN_INPUT | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */ 245 AM4372_IOPAD(0x810, PIN_INPUT | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */
246 0x14 (PIN_INPUT | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */ 246 AM4372_IOPAD(0x814, PIN_INPUT | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */
247 0x18 (PIN_INPUT | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */ 247 AM4372_IOPAD(0x818, PIN_INPUT | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */
248 0x1c (PIN_INPUT | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */ 248 AM4372_IOPAD(0x81c, PIN_INPUT | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */
249 0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */ 249 AM4372_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */
250 0x74 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpmc_wpn */ 250 AM4372_IOPAD(0x874, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpmc_wpn */
251 0x7c (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */ 251 AM4372_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */
252 0x90 (PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */ 252 AM4372_IOPAD(0x890, PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */
253 0x94 (PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */ 253 AM4372_IOPAD(0x894, PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */
254 0x98 (PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */ 254 AM4372_IOPAD(0x898, PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */
255 0x9c (PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */ 255 AM4372_IOPAD(0x89c, PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */
256 >; 256 >;
257 }; 257 };
258 258
259 dss_pins: dss_pins { 259 dss_pins: dss_pins {
260 pinctrl-single,pins = < 260 pinctrl-single,pins = <
261 0x020 (PIN_OUTPUT_PULLUP | MUX_MODE1) /*gpmc ad 8 -> DSS DATA 23 */ 261 AM4372_IOPAD(0x820, PIN_OUTPUT_PULLUP | MUX_MODE1) /*gpmc ad 8 -> DSS DATA 23 */
262 0x024 (PIN_OUTPUT_PULLUP | MUX_MODE1) 262 AM4372_IOPAD(0x824, PIN_OUTPUT_PULLUP | MUX_MODE1)
263 0x028 (PIN_OUTPUT_PULLUP | MUX_MODE1) 263 AM4372_IOPAD(0x828, PIN_OUTPUT_PULLUP | MUX_MODE1)
264 0x02c (PIN_OUTPUT_PULLUP | MUX_MODE1) 264 AM4372_IOPAD(0x82c, PIN_OUTPUT_PULLUP | MUX_MODE1)
265 0x030 (PIN_OUTPUT_PULLUP | MUX_MODE1) 265 AM4372_IOPAD(0x830, PIN_OUTPUT_PULLUP | MUX_MODE1)
266 0x034 (PIN_OUTPUT_PULLUP | MUX_MODE1) 266 AM4372_IOPAD(0x834, PIN_OUTPUT_PULLUP | MUX_MODE1)
267 0x038 (PIN_OUTPUT_PULLUP | MUX_MODE1) 267 AM4372_IOPAD(0x838, PIN_OUTPUT_PULLUP | MUX_MODE1)
268 0x03c (PIN_OUTPUT_PULLUP | MUX_MODE1) /*gpmc ad 15 -> DSS DATA 16 */ 268 AM4372_IOPAD(0x83c, PIN_OUTPUT_PULLUP | MUX_MODE1) /*gpmc ad 15 -> DSS DATA 16 */
269 0x0a0 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS DATA 0 */ 269 AM4372_IOPAD(0x8a0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS DATA 0 */
270 0x0a4 (PIN_OUTPUT_PULLUP | MUX_MODE0) 270 AM4372_IOPAD(0x8a4, PIN_OUTPUT_PULLUP | MUX_MODE0)
271 0x0a8 (PIN_OUTPUT_PULLUP | MUX_MODE0) 271 AM4372_IOPAD(0x8a8, PIN_OUTPUT_PULLUP | MUX_MODE0)
272 0x0ac (PIN_OUTPUT_PULLUP | MUX_MODE0) 272 AM4372_IOPAD(0x8ac, PIN_OUTPUT_PULLUP | MUX_MODE0)
273 0x0b0 (PIN_OUTPUT_PULLUP | MUX_MODE0) 273 AM4372_IOPAD(0x8b0, PIN_OUTPUT_PULLUP | MUX_MODE0)
274 0x0b4 (PIN_OUTPUT_PULLUP | MUX_MODE0) 274 AM4372_IOPAD(0x8b4, PIN_OUTPUT_PULLUP | MUX_MODE0)
275 0x0b8 (PIN_OUTPUT_PULLUP | MUX_MODE0) 275 AM4372_IOPAD(0x8b8, PIN_OUTPUT_PULLUP | MUX_MODE0)
276 0x0bc (PIN_OUTPUT_PULLUP | MUX_MODE0) 276 AM4372_IOPAD(0x8bc, PIN_OUTPUT_PULLUP | MUX_MODE0)
277 0x0c0 (PIN_OUTPUT_PULLUP | MUX_MODE0) 277 AM4372_IOPAD(0x8c0, PIN_OUTPUT_PULLUP | MUX_MODE0)
278 0x0c4 (PIN_OUTPUT_PULLUP | MUX_MODE0) 278 AM4372_IOPAD(0x8c4, PIN_OUTPUT_PULLUP | MUX_MODE0)
279 0x0c8 (PIN_OUTPUT_PULLUP | MUX_MODE0) 279 AM4372_IOPAD(0x8c8, PIN_OUTPUT_PULLUP | MUX_MODE0)
280 0x0cc (PIN_OUTPUT_PULLUP | MUX_MODE0) 280 AM4372_IOPAD(0x8cc, PIN_OUTPUT_PULLUP | MUX_MODE0)
281 0x0d0 (PIN_OUTPUT_PULLUP | MUX_MODE0) 281 AM4372_IOPAD(0x8d0, PIN_OUTPUT_PULLUP | MUX_MODE0)
282 0x0d4 (PIN_OUTPUT_PULLUP | MUX_MODE0) 282 AM4372_IOPAD(0x8d4, PIN_OUTPUT_PULLUP | MUX_MODE0)
283 0x0d8 (PIN_OUTPUT_PULLUP | MUX_MODE0) 283 AM4372_IOPAD(0x8d8, PIN_OUTPUT_PULLUP | MUX_MODE0)
284 0x0dc (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS DATA 15 */ 284 AM4372_IOPAD(0x8dc, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS DATA 15 */
285 0x0e0 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS VSYNC */ 285 AM4372_IOPAD(0x8e0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS VSYNC */
286 0x0e4 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS HSYNC */ 286 AM4372_IOPAD(0x8e4, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS HSYNC */
287 0x0e8 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS PCLK */ 287 AM4372_IOPAD(0x8e8, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS PCLK */
288 0x0ec (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS AC BIAS EN */ 288 AM4372_IOPAD(0x8ec, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS AC BIAS EN */
289 289
290 >; 290 >;
291 }; 291 };
@@ -293,208 +293,208 @@
293 display_mux_pins: display_mux_pins { 293 display_mux_pins: display_mux_pins {
294 pinctrl-single,pins = < 294 pinctrl-single,pins = <
295 /* GPIO 5_8 to select LCD / HDMI */ 295 /* GPIO 5_8 to select LCD / HDMI */
296 0x238 (PIN_OUTPUT_PULLUP | MUX_MODE7) 296 AM4372_IOPAD(0xa38, PIN_OUTPUT_PULLUP | MUX_MODE7)
297 >; 297 >;
298 }; 298 };
299 299
300 dcan0_default: dcan0_default_pins { 300 dcan0_default: dcan0_default_pins {
301 pinctrl-single,pins = < 301 pinctrl-single,pins = <
302 0x178 (PIN_OUTPUT | MUX_MODE2) /* uart1_ctsn.d_can0_tx */ 302 AM4372_IOPAD(0x978, PIN_OUTPUT | MUX_MODE2) /* uart1_ctsn.d_can0_tx */
303 0x17c (PIN_INPUT_PULLUP | MUX_MODE2) /* uart1_rtsn.d_can0_rx */ 303 AM4372_IOPAD(0x97c, PIN_INPUT_PULLUP | MUX_MODE2) /* uart1_rtsn.d_can0_rx */
304 >; 304 >;
305 }; 305 };
306 306
307 dcan0_sleep: dcan0_sleep_pins { 307 dcan0_sleep: dcan0_sleep_pins {
308 pinctrl-single,pins = < 308 pinctrl-single,pins = <
309 0x178 (PIN_INPUT_PULLUP | MUX_MODE7) /* uart1_ctsn.gpio0_12 */ 309 AM4372_IOPAD(0x978, PIN_INPUT_PULLUP | MUX_MODE7) /* uart1_ctsn.gpio0_12 */
310 0x17c (PIN_INPUT_PULLUP | MUX_MODE7) /* uart1_rtsn.gpio0_13 */ 310 AM4372_IOPAD(0x97c, PIN_INPUT_PULLUP | MUX_MODE7) /* uart1_rtsn.gpio0_13 */
311 >; 311 >;
312 }; 312 };
313 313
314 dcan1_default: dcan1_default_pins { 314 dcan1_default: dcan1_default_pins {
315 pinctrl-single,pins = < 315 pinctrl-single,pins = <
316 0x180 (PIN_OUTPUT | MUX_MODE2) /* uart1_rxd.d_can1_tx */ 316 AM4372_IOPAD(0x980, PIN_OUTPUT | MUX_MODE2) /* uart1_rxd.d_can1_tx */
317 0x184 (PIN_INPUT_PULLUP | MUX_MODE2) /* uart1_txd.d_can1_rx */ 317 AM4372_IOPAD(0x984, PIN_INPUT_PULLUP | MUX_MODE2) /* uart1_txd.d_can1_rx */
318 >; 318 >;
319 }; 319 };
320 320
321 dcan1_sleep: dcan1_sleep_pins { 321 dcan1_sleep: dcan1_sleep_pins {
322 pinctrl-single,pins = < 322 pinctrl-single,pins = <
323 0x180 (PIN_INPUT_PULLUP | MUX_MODE7) /* uart1_rxd.gpio0_14 */ 323 AM4372_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE7) /* uart1_rxd.gpio0_14 */
324 0x184 (PIN_INPUT_PULLUP | MUX_MODE7) /* uart1_txd.gpio0_15 */ 324 AM4372_IOPAD(0x984, PIN_INPUT_PULLUP | MUX_MODE7) /* uart1_txd.gpio0_15 */
325 >; 325 >;
326 }; 326 };
327 327
328 vpfe0_pins_default: vpfe0_pins_default { 328 vpfe0_pins_default: vpfe0_pins_default {
329 pinctrl-single,pins = < 329 pinctrl-single,pins = <
330 0x1B0 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_hd mode 0*/ 330 AM4372_IOPAD(0x9b0, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_hd mode 0*/
331 0x1B4 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_vd mode 0*/ 331 AM4372_IOPAD(0x9b4, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_vd mode 0*/
332 0x1C0 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_pclk mode 0*/ 332 AM4372_IOPAD(0x9c0, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_pclk mode 0*/
333 0x1C4 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data8 mode 0*/ 333 AM4372_IOPAD(0x9c4, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data8 mode 0*/
334 0x1C8 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data9 mode 0*/ 334 AM4372_IOPAD(0x9c8, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data9 mode 0*/
335 0x208 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data0 mode 0*/ 335 AM4372_IOPAD(0xa08, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data0 mode 0*/
336 0x20C (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data1 mode 0*/ 336 AM4372_IOPAD(0xa0c, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data1 mode 0*/
337 0x210 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data2 mode 0*/ 337 AM4372_IOPAD(0xa10, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data2 mode 0*/
338 0x214 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data3 mode 0*/ 338 AM4372_IOPAD(0xa14, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data3 mode 0*/
339 0x218 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data4 mode 0*/ 339 AM4372_IOPAD(0xa18, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data4 mode 0*/
340 0x21C (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data5 mode 0*/ 340 AM4372_IOPAD(0xa1c, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data5 mode 0*/
341 0x220 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data6 mode 0*/ 341 AM4372_IOPAD(0xa20, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data6 mode 0*/
342 0x224 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data7 mode 0*/ 342 AM4372_IOPAD(0xa24, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data7 mode 0*/
343 >; 343 >;
344 }; 344 };
345 345
346 vpfe0_pins_sleep: vpfe0_pins_sleep { 346 vpfe0_pins_sleep: vpfe0_pins_sleep {
347 pinctrl-single,pins = < 347 pinctrl-single,pins = <
348 0x1B0 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_hd mode 0*/ 348 AM4372_IOPAD(0x9b0, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_hd mode 0*/
349 0x1B4 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_vd mode 0*/ 349 AM4372_IOPAD(0x9b4, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_vd mode 0*/
350 0x1C0 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_pclk mode 0*/ 350 AM4372_IOPAD(0x9c0, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_pclk mode 0*/
351 0x1C4 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data8 mode 0*/ 351 AM4372_IOPAD(0x9c4, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data8 mode 0*/
352 0x1C8 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data9 mode 0*/ 352 AM4372_IOPAD(0x9c8, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data9 mode 0*/
353 0x208 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data0 mode 0*/ 353 AM4372_IOPAD(0xa08, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data0 mode 0*/
354 0x20C (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data1 mode 0*/ 354 AM4372_IOPAD(0xa0c, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data1 mode 0*/
355 0x210 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data2 mode 0*/ 355 AM4372_IOPAD(0xa10, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data2 mode 0*/
356 0x214 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data3 mode 0*/ 356 AM4372_IOPAD(0xa14, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data3 mode 0*/
357 0x218 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data4 mode 0*/ 357 AM4372_IOPAD(0xa18, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data4 mode 0*/
358 0x21C (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data5 mode 0*/ 358 AM4372_IOPAD(0xa1c, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data5 mode 0*/
359 0x220 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data6 mode 0*/ 359 AM4372_IOPAD(0xa20, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data6 mode 0*/
360 0x224 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data7 mode 0*/ 360 AM4372_IOPAD(0xa24, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data7 mode 0*/
361 >; 361 >;
362 }; 362 };
363 363
364 vpfe1_pins_default: vpfe1_pins_default { 364 vpfe1_pins_default: vpfe1_pins_default {
365 pinctrl-single,pins = < 365 pinctrl-single,pins = <
366 0x1CC (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data9 mode 0*/ 366 AM4372_IOPAD(0x9cc, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data9 mode 0*/
367 0x1D0 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data8 mode 0*/ 367 AM4372_IOPAD(0x9d0, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data8 mode 0*/
368 0x1D4 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_hd mode 0*/ 368 AM4372_IOPAD(0x9d4, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_hd mode 0*/
369 0x1D8 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_vd mode 0*/ 369 AM4372_IOPAD(0x9d8, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_vd mode 0*/
370 0x1DC (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_pclk mode 0*/ 370 AM4372_IOPAD(0x9dC, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_pclk mode 0*/
371 0x1E8 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data0 mode 0*/ 371 AM4372_IOPAD(0x9e8, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data0 mode 0*/
372 0x1EC (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data1 mode 0*/ 372 AM4372_IOPAD(0x9ec, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data1 mode 0*/
373 0x1F0 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data2 mode 0*/ 373 AM4372_IOPAD(0x9f0, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data2 mode 0*/
374 0x1F4 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data3 mode 0*/ 374 AM4372_IOPAD(0x9f4, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data3 mode 0*/
375 0x1F8 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data4 mode 0*/ 375 AM4372_IOPAD(0x9f8, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data4 mode 0*/
376 0x1FC (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data5 mode 0*/ 376 AM4372_IOPAD(0x9fc, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data5 mode 0*/
377 0x200 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data6 mode 0*/ 377 AM4372_IOPAD(0xa00, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data6 mode 0*/
378 0x204 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data7 mode 0*/ 378 AM4372_IOPAD(0xa04, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data7 mode 0*/
379 >; 379 >;
380 }; 380 };
381 381
382 vpfe1_pins_sleep: vpfe1_pins_sleep { 382 vpfe1_pins_sleep: vpfe1_pins_sleep {
383 pinctrl-single,pins = < 383 pinctrl-single,pins = <
384 0x1CC (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data9 mode 0*/ 384 AM4372_IOPAD(0x9cc, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data9 mode 0*/
385 0x1D0 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data8 mode 0*/ 385 AM4372_IOPAD(0x9d0, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data8 mode 0*/
386 0x1D4 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_hd mode 0*/ 386 AM4372_IOPAD(0x9d4, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_hd mode 0*/
387 0x1D8 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_vd mode 0*/ 387 AM4372_IOPAD(0x9d8, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_vd mode 0*/
388 0x1DC (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_pclk mode 0*/ 388 AM4372_IOPAD(0x9dc, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_pclk mode 0*/
389 0x1E8 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data0 mode 0*/ 389 AM4372_IOPAD(0x9e8, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data0 mode 0*/
390 0x1EC (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data1 mode 0*/ 390 AM4372_IOPAD(0x9ec, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data1 mode 0*/
391 0x1F0 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data2 mode 0*/ 391 AM4372_IOPAD(0x9f0, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data2 mode 0*/
392 0x1F4 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data3 mode 0*/ 392 AM4372_IOPAD(0x9f4, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data3 mode 0*/
393 0x1F8 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data4 mode 0*/ 393 AM4372_IOPAD(0x9f8, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data4 mode 0*/
394 0x1FC (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data5 mode 0*/ 394 AM4372_IOPAD(0x9fc, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data5 mode 0*/
395 0x200 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data6 mode 0*/ 395 AM4372_IOPAD(0xa00, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data6 mode 0*/
396 0x204 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data7 mode 0*/ 396 AM4372_IOPAD(0xa04, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data7 mode 0*/
397 >; 397 >;
398 }; 398 };
399 399
400 mmc3_pins_default: pinmux_mmc3_pins_default { 400 mmc3_pins_default: pinmux_mmc3_pins_default {
401 pinctrl-single,pins = < 401 pinctrl-single,pins = <
402 0x8c (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_clk.mmc2_clk */ 402 AM4372_IOPAD(0x88c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_clk.mmc2_clk */
403 0x88 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_csn3.mmc2_cmd */ 403 AM4372_IOPAD(0x888, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_csn3.mmc2_cmd */
404 0x44 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a1.mmc2_dat0 */ 404 AM4372_IOPAD(0x844, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a1.mmc2_dat0 */
405 0x48 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a2.mmc2_dat1 */ 405 AM4372_IOPAD(0x848, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a2.mmc2_dat1 */
406 0x4c (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a3.mmc2_dat2 */ 406 AM4372_IOPAD(0x84c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a3.mmc2_dat2 */
407 0x78 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_be1n.mmc2_dat3 */ 407 AM4372_IOPAD(0x878, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_be1n.mmc2_dat3 */
408 >; 408 >;
409 }; 409 };
410 410
411 mmc3_pins_sleep: pinmux_mmc3_pins_sleep { 411 mmc3_pins_sleep: pinmux_mmc3_pins_sleep {
412 pinctrl-single,pins = < 412 pinctrl-single,pins = <
413 0x8c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_clk.mmc2_clk */ 413 AM4372_IOPAD(0x88c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_clk.mmc2_clk */
414 0x88 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn3.mmc2_cmd */ 414 AM4372_IOPAD(0x888, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn3.mmc2_cmd */
415 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a1.mmc2_dat0 */ 415 AM4372_IOPAD(0x844, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a1.mmc2_dat0 */
416 0x48 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a2.mmc2_dat1 */ 416 AM4372_IOPAD(0x848, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a2.mmc2_dat1 */
417 0x4c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a3.mmc2_dat2 */ 417 AM4372_IOPAD(0x84c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a3.mmc2_dat2 */
418 0x78 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_be1n.mmc2_dat3 */ 418 AM4372_IOPAD(0x878, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_be1n.mmc2_dat3 */
419 >; 419 >;
420 }; 420 };
421 421
422 wlan_pins_default: pinmux_wlan_pins_default { 422 wlan_pins_default: pinmux_wlan_pins_default {
423 pinctrl-single,pins = < 423 pinctrl-single,pins = <
424 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a4.gpio1_20 WL_EN */ 424 AM4372_IOPAD(0x850, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a4.gpio1_20 WL_EN */
425 0x5c (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7) /* gpmc_a7.gpio1_23 WL_IRQ*/ 425 AM4372_IOPAD(0x85c, PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7) /* gpmc_a7.gpio1_23 WL_IRQ*/
426 0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a0.gpio1_16 BT_EN*/ 426 AM4372_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a0.gpio1_16 BT_EN*/
427 >; 427 >;
428 }; 428 };
429 429
430 wlan_pins_sleep: pinmux_wlan_pins_sleep { 430 wlan_pins_sleep: pinmux_wlan_pins_sleep {
431 pinctrl-single,pins = < 431 pinctrl-single,pins = <
432 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a4.gpio1_20 WL_EN */ 432 AM4372_IOPAD(0x850, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a4.gpio1_20 WL_EN */
433 0x5c (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7) /* gpmc_a7.gpio1_23 WL_IRQ*/ 433 AM4372_IOPAD(0x85c, PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7) /* gpmc_a7.gpio1_23 WL_IRQ*/
434 0x40 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a0.gpio1_16 BT_EN*/ 434 AM4372_IOPAD(0x840, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a0.gpio1_16 BT_EN*/
435 >; 435 >;
436 }; 436 };
437 437
438 uart3_pins: uart3_pins { 438 uart3_pins: uart3_pins {
439 pinctrl-single,pins = < 439 pinctrl-single,pins = <
440 0x228 (PIN_INPUT | MUX_MODE0) /* uart3_rxd.uart3_rxd */ 440 AM4372_IOPAD(0xa28, PIN_INPUT | MUX_MODE0) /* uart3_rxd.uart3_rxd */
441 0x22c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart3_txd.uart3_txd */ 441 AM4372_IOPAD(0xa2c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart3_txd.uart3_txd */
442 0x230 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart3_ctsn.uart3_ctsn */ 442 AM4372_IOPAD(0xa30, PIN_INPUT_PULLUP | MUX_MODE0) /* uart3_ctsn.uart3_ctsn */
443 0x234 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart3_rtsn.uart3_rtsn */ 443 AM4372_IOPAD(0xa34, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart3_rtsn.uart3_rtsn */
444 >; 444 >;
445 }; 445 };
446 446
447 mcasp1_pins: mcasp1_pins { 447 mcasp1_pins: mcasp1_pins {
448 pinctrl-single,pins = < 448 pinctrl-single,pins = <
449 0x108 (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */ 449 AM4372_IOPAD(0x908, PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */
450 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */ 450 AM4372_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */
451 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */ 451 AM4372_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */
452 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */ 452 AM4372_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */
453 >; 453 >;
454 }; 454 };
455 455
456 mcasp1_sleep_pins: mcasp1_sleep_pins { 456 mcasp1_sleep_pins: mcasp1_sleep_pins {
457 pinctrl-single,pins = < 457 pinctrl-single,pins = <
458 0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7) 458 AM4372_IOPAD(0x908, PIN_INPUT_PULLDOWN | MUX_MODE7)
459 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7) 459 AM4372_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE7)
460 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7) 460 AM4372_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7)
461 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7) 461 AM4372_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7)
462 >; 462 >;
463 }; 463 };
464 464
465 gpio0_pins: gpio0_pins { 465 gpio0_pins: gpio0_pins {
466 pinctrl-single,pins = < 466 pinctrl-single,pins = <
467 0x26c (PIN_OUTPUT | MUX_MODE9) /* spi2_cs0.gpio0_23 SEL_eMMCorNANDn */ 467 AM4372_IOPAD(0xa6c, PIN_OUTPUT | MUX_MODE9) /* spi2_cs0.gpio0_23 SEL_eMMCorNANDn */
468 >; 468 >;
469 }; 469 };
470 470
471 emmc_pins_default: emmc_pins_default { 471 emmc_pins_default: emmc_pins_default {
472 pinctrl-single,pins = < 472 pinctrl-single,pins = <
473 0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */ 473 AM4372_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */
474 0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */ 474 AM4372_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */
475 0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */ 475 AM4372_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */
476 0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */ 476 AM4372_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */
477 0x10 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */ 477 AM4372_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */
478 0x14 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */ 478 AM4372_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */
479 0x18 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */ 479 AM4372_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */
480 0x1c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */ 480 AM4372_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */
481 0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */ 481 AM4372_IOPAD(0x880, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
482 0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */ 482 AM4372_IOPAD(0x884, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
483 >; 483 >;
484 }; 484 };
485 485
486 emmc_pins_sleep: emmc_pins_sleep { 486 emmc_pins_sleep: emmc_pins_sleep {
487 pinctrl-single,pins = < 487 pinctrl-single,pins = <
488 0x00 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad0.gpio1_0 */ 488 AM4372_IOPAD(0x800, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad0.gpio1_0 */
489 0x04 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad1.gpio1_1 */ 489 AM4372_IOPAD(0x804, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad1.gpio1_1 */
490 0x08 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad2.gpio1_2 */ 490 AM4372_IOPAD(0x808, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad2.gpio1_2 */
491 0x0c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad3.gpio1_3 */ 491 AM4372_IOPAD(0x80c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad3.gpio1_3 */
492 0x10 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad4.gpio1_4 */ 492 AM4372_IOPAD(0x810, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad4.gpio1_4 */
493 0x14 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad5.gpio1_5 */ 493 AM4372_IOPAD(0x814, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad5.gpio1_5 */
494 0x18 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad6.gpio1_6 */ 494 AM4372_IOPAD(0x818, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad6.gpio1_6 */
495 0x1c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad7.gpio1_7 */ 495 AM4372_IOPAD(0x81c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad7.gpio1_7 */
496 0x80 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn1.gpio1_30 */ 496 AM4372_IOPAD(0x880, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn1.gpio1_30 */
497 0x84 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn2.gpio1_31 */ 497 AM4372_IOPAD(0x884, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn2.gpio1_31 */
498 >; 498 >;
499 }; 499 };
500}; 500};
@@ -734,8 +734,8 @@
734 status = "okay"; 734 status = "okay";
735 /* these are on the crossbar and are outlined in the 735 /* these are on the crossbar and are outlined in the
736 xbar-event-map element */ 736 xbar-event-map element */
737 dmas = <&edma 30 737 dmas = <&edma_xbar 30 0 1>,
738 &edma 31>; 738 <&edma_xbar 31 0 2>;
739 dma-names = "tx", "rx"; 739 dma-names = "tx", "rx";
740 vmmc-supply = <&vmmcwl_fixed>; 740 vmmc-supply = <&vmmcwl_fixed>;
741 bus-width = <4>; 741 bus-width = <4>;
@@ -756,11 +756,6 @@
756 }; 756 };
757}; 757};
758 758
759&edma {
760 ti,edma-xbar-event-map = /bits/ 16 <1 30
761 2 31>;
762};
763
764&uart3 { 759&uart3 {
765 status = "okay"; 760 status = "okay";
766 pinctrl-names = "default"; 761 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/am437x-idk-evm.dts b/arch/arm/boot/dts/am437x-idk-evm.dts
index 337fb91ee74c..76dcfc6d5f0d 100644
--- a/arch/arm/boot/dts/am437x-idk-evm.dts
+++ b/arch/arm/boot/dts/am437x-idk-evm.dts
@@ -122,137 +122,137 @@
122&am43xx_pinmux { 122&am43xx_pinmux {
123 gpio_keys_pins_default: gpio_keys_pins_default { 123 gpio_keys_pins_default: gpio_keys_pins_default {
124 pinctrl-single,pins = < 124 pinctrl-single,pins = <
125 0x1b8 (PIN_INPUT | MUX_MODE7) /* cam0_field.gpio4_2 */ 125 AM4372_IOPAD(0x9b8, PIN_INPUT | MUX_MODE7) /* cam0_field.gpio4_2 */
126 >; 126 >;
127 }; 127 };
128 128
129 i2c0_pins_default: i2c0_pins_default { 129 i2c0_pins_default: i2c0_pins_default {
130 pinctrl-single,pins = < 130 pinctrl-single,pins = <
131 0x188 (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_sda.i2c0_sda */ 131 AM4372_IOPAD(0x988, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_sda.i2c0_sda */
132 0x18c (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_scl.i2c0_scl */ 132 AM4372_IOPAD(0x98c, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_scl.i2c0_scl */
133 >; 133 >;
134 }; 134 };
135 135
136 i2c0_pins_sleep: i2c0_pins_sleep { 136 i2c0_pins_sleep: i2c0_pins_sleep {
137 pinctrl-single,pins = < 137 pinctrl-single,pins = <
138 0x188 (PIN_INPUT_PULLDOWN | MUX_MODE7) 138 AM4372_IOPAD(0x988, PIN_INPUT_PULLDOWN | MUX_MODE7)
139 0x18c (PIN_INPUT_PULLDOWN | MUX_MODE7) 139 AM4372_IOPAD(0x98c, PIN_INPUT_PULLDOWN | MUX_MODE7)
140 >; 140 >;
141 }; 141 };
142 142
143 i2c2_pins_default: i2c2_pins_default { 143 i2c2_pins_default: i2c2_pins_default {
144 pinctrl-single,pins = < 144 pinctrl-single,pins = <
145 0x1e8 (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE3) /* cam1_data1.i2c2_scl */ 145 AM4372_IOPAD(0x9e8, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE3) /* cam1_data1.i2c2_scl */
146 0x1ec (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE3) /* cam1_data0.i2c2_sda */ 146 AM4372_IOPAD(0x9ec, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE3) /* cam1_data0.i2c2_sda */
147 >; 147 >;
148 }; 148 };
149 149
150 i2c2_pins_sleep: i2c2_pins_sleep { 150 i2c2_pins_sleep: i2c2_pins_sleep {
151 pinctrl-single,pins = < 151 pinctrl-single,pins = <
152 0x1e8 (PIN_INPUT_PULLDOWN | MUX_MODE7) 152 AM4372_IOPAD(0x9e8, PIN_INPUT_PULLDOWN | MUX_MODE7)
153 0x1ec (PIN_INPUT_PULLDOWN | MUX_MODE7) 153 AM4372_IOPAD(0x9ec, PIN_INPUT_PULLDOWN | MUX_MODE7)
154 >; 154 >;
155 }; 155 };
156 156
157 mmc1_pins_default: pinmux_mmc1_pins_default { 157 mmc1_pins_default: pinmux_mmc1_pins_default {
158 pinctrl-single,pins = < 158 pinctrl-single,pins = <
159 0x100 (PIN_INPUT | MUX_MODE0) /* mmc0_clk.mmc0_clk */ 159 AM4372_IOPAD(0x900, PIN_INPUT | MUX_MODE0) /* mmc0_clk.mmc0_clk */
160 0x104 (PIN_INPUT | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */ 160 AM4372_IOPAD(0x904, PIN_INPUT | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
161 0x1f0 (PIN_INPUT | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */ 161 AM4372_IOPAD(0x9f0, PIN_INPUT | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
162 0x1f4 (PIN_INPUT | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */ 162 AM4372_IOPAD(0x9f4, PIN_INPUT | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
163 0x1f8 (PIN_INPUT | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */ 163 AM4372_IOPAD(0x9f8, PIN_INPUT | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
164 0x1fc (PIN_INPUT | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */ 164 AM4372_IOPAD(0x9fc, PIN_INPUT | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
165 0x160 (PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */ 165 AM4372_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */
166 >; 166 >;
167 }; 167 };
168 168
169 mmc1_pins_sleep: pinmux_mmc1_pins_sleep { 169 mmc1_pins_sleep: pinmux_mmc1_pins_sleep {
170 pinctrl-single,pins = < 170 pinctrl-single,pins = <
171 0x100 (PIN_INPUT_PULLDOWN | MUX_MODE7) 171 AM4372_IOPAD(0x900, PIN_INPUT_PULLDOWN | MUX_MODE7)
172 0x104 (PIN_INPUT_PULLDOWN | MUX_MODE7) 172 AM4372_IOPAD(0x904, PIN_INPUT_PULLDOWN | MUX_MODE7)
173 0x1f0 (PIN_INPUT_PULLDOWN | MUX_MODE7) 173 AM4372_IOPAD(0x9f0, PIN_INPUT_PULLDOWN | MUX_MODE7)
174 0x1f4 (PIN_INPUT_PULLDOWN | MUX_MODE7) 174 AM4372_IOPAD(0x9f4, PIN_INPUT_PULLDOWN | MUX_MODE7)
175 0x1f8 (PIN_INPUT_PULLDOWN | MUX_MODE7) 175 AM4372_IOPAD(0x9f8, PIN_INPUT_PULLDOWN | MUX_MODE7)
176 0x1fc (PIN_INPUT_PULLDOWN | MUX_MODE7) 176 AM4372_IOPAD(0x9fc, PIN_INPUT_PULLDOWN | MUX_MODE7)
177 0x160 (PIN_INPUT_PULLDOWN | MUX_MODE7) 177 AM4372_IOPAD(0x960, PIN_INPUT_PULLDOWN | MUX_MODE7)
178 >; 178 >;
179 }; 179 };
180 180
181 ecap0_pins_default: backlight_pins_default { 181 ecap0_pins_default: backlight_pins_default {
182 pinctrl-single,pins = < 182 pinctrl-single,pins = <
183 0x164 (PIN_OUTPUT | MUX_MODE0) /* ecap0_in_pwm0_out.ecap0_in_pwm0_out */ 183 AM4372_IOPAD(0x964, PIN_OUTPUT | MUX_MODE0) /* ecap0_in_pwm0_out.ecap0_in_pwm0_out */
184 >; 184 >;
185 }; 185 };
186 186
187 cpsw_default: cpsw_default { 187 cpsw_default: cpsw_default {
188 pinctrl-single,pins = < 188 pinctrl-single,pins = <
189 0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */ 189 AM4372_IOPAD(0x92c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */
190 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */ 190 AM4372_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */
191 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */ 191 AM4372_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */
192 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */ 192 AM4372_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */
193 0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td2 */ 193 AM4372_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td2 */
194 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td3 */ 194 AM4372_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td3 */
195 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rmii1_rclk */ 195 AM4372_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rmii1_rclk */
196 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */ 196 AM4372_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */
197 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */ 197 AM4372_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */
198 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */ 198 AM4372_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */
199 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd2 */ 199 AM4372_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd2 */
200 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd3 */ 200 AM4372_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd3 */
201 >; 201 >;
202 }; 202 };
203 203
204 cpsw_sleep: cpsw_sleep { 204 cpsw_sleep: cpsw_sleep {
205 pinctrl-single,pins = < 205 pinctrl-single,pins = <
206 0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7) 206 AM4372_IOPAD(0x92c, PIN_INPUT_PULLDOWN | MUX_MODE7)
207 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) 207 AM4372_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
208 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) 208 AM4372_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
209 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) 209 AM4372_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
210 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7) 210 AM4372_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE7)
211 0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7) 211 AM4372_IOPAD(0x91c, PIN_INPUT_PULLDOWN | MUX_MODE7)
212 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7) 212 AM4372_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE7)
213 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) 213 AM4372_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7)
214 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) 214 AM4372_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
215 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) 215 AM4372_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
216 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7) 216 AM4372_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE7)
217 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7) 217 AM4372_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE7)
218 >; 218 >;
219 }; 219 };
220 220
221 davinci_mdio_default: davinci_mdio_default { 221 davinci_mdio_default: davinci_mdio_default {
222 pinctrl-single,pins = < 222 pinctrl-single,pins = <
223 /* MDIO */ 223 /* MDIO */
224 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ 224 AM4372_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
225 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ 225 AM4372_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
226 >; 226 >;
227 }; 227 };
228 228
229 davinci_mdio_sleep: davinci_mdio_sleep { 229 davinci_mdio_sleep: davinci_mdio_sleep {
230 pinctrl-single,pins = < 230 pinctrl-single,pins = <
231 /* MDIO reset value */ 231 /* MDIO reset value */
232 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) 232 AM4372_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
233 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) 233 AM4372_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
234 >; 234 >;
235 }; 235 };
236 236
237 qspi_pins_default: qspi_pins_default { 237 qspi_pins_default: qspi_pins_default {
238 pinctrl-single,pins = < 238 pinctrl-single,pins = <
239 0x7c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_csn0.qspi_csn */ 239 AM4372_IOPAD(0x87c, PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_csn0.qspi_csn */
240 0x88 (PIN_OUTPUT | MUX_MODE2) /* gpmc_csn3.qspi_clk */ 240 AM4372_IOPAD(0x888, PIN_OUTPUT | MUX_MODE2) /* gpmc_csn3.qspi_clk */
241 0x90 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_advn_ale.qspi_d0 */ 241 AM4372_IOPAD(0x890, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_advn_ale.qspi_d0 */
242 0x94 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_oen_ren.qspi_d1 */ 242 AM4372_IOPAD(0x894, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_oen_ren.qspi_d1 */
243 0x98 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_wen.qspi_d2 */ 243 AM4372_IOPAD(0x898, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_wen.qspi_d2 */
244 0x9c (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_be0n_cle.qspi_d3 */ 244 AM4372_IOPAD(0x89c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_be0n_cle.qspi_d3 */
245 >; 245 >;
246 }; 246 };
247 247
248 qspi_pins_sleep: qspi_pins_sleep{ 248 qspi_pins_sleep: qspi_pins_sleep{
249 pinctrl-single,pins = < 249 pinctrl-single,pins = <
250 0x7c (PIN_INPUT_PULLDOWN | MUX_MODE7) 250 AM4372_IOPAD(0x87c, PIN_INPUT_PULLDOWN | MUX_MODE7)
251 0x88 (PIN_INPUT_PULLDOWN | MUX_MODE7) 251 AM4372_IOPAD(0x888, PIN_INPUT_PULLDOWN | MUX_MODE7)
252 0x90 (PIN_INPUT_PULLDOWN | MUX_MODE7) 252 AM4372_IOPAD(0x890, PIN_INPUT_PULLDOWN | MUX_MODE7)
253 0x94 (PIN_INPUT_PULLDOWN | MUX_MODE7) 253 AM4372_IOPAD(0x894, PIN_INPUT_PULLDOWN | MUX_MODE7)
254 0x98 (PIN_INPUT_PULLDOWN | MUX_MODE7) 254 AM4372_IOPAD(0x898, PIN_INPUT_PULLDOWN | MUX_MODE7)
255 0x9c (PIN_INPUT_PULLDOWN | MUX_MODE7) 255 AM4372_IOPAD(0x89c, PIN_INPUT_PULLDOWN | MUX_MODE7)
256 >; 256 >;
257 }; 257 };
258}; 258};
diff --git a/arch/arm/boot/dts/am437x-sbc-t43.dts b/arch/arm/boot/dts/am437x-sbc-t43.dts
new file mode 100644
index 000000000000..5f750c0ed6c9
--- /dev/null
+++ b/arch/arm/boot/dts/am437x-sbc-t43.dts
@@ -0,0 +1,180 @@
1/*
2 * Copyright (C) 2015 CompuLab, Ltd. - http://www.compulab.co.il/
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9#include "am437x-cm-t43.dts"
10#include "compulab-sb-som.dtsi"
11
12/ {
13 model = "CompuLab CM-T43 on SB-SOM-T43";
14 compatible = "compulab,am437x-sbc-t43", "compulab,am437x-cm-t43", "ti,am4372", "ti,am43";
15
16 aliases {
17 display0 = &lcd0;
18 };
19};
20
21&am43xx_pinmux {
22 mmc1_pins: pinmux_mmc1_pins {
23 pinctrl-single,pins = <
24 AM4372_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */
25 AM4372_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
26 AM4372_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
27 AM4372_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
28 AM4372_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
29 AM4372_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
30 AM4372_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */
31 AM4372_IOPAD(0x964, PIN_INPUT | MUX_MODE7) /* ecap0_in_pwm0_out.gpio0_7 */
32 >;
33 };
34
35 dss_pinctrl_default: dss_pinctrl_default {
36 pinctrl-single,pins = <
37 AM4372_IOPAD(0x9b0, PIN_OUTPUT_PULLUP | MUX_MODE2) /* cam0 hd -> DSS DATA 23 */
38 AM4372_IOPAD(0x9b4, PIN_OUTPUT_PULLUP | MUX_MODE2)
39 AM4372_IOPAD(0x9b8, PIN_OUTPUT_PULLUP | MUX_MODE2)
40 AM4372_IOPAD(0x9bc, PIN_OUTPUT_PULLUP | MUX_MODE2)
41 AM4372_IOPAD(0x9c0, PIN_OUTPUT_PULLUP | MUX_MODE2)
42 AM4372_IOPAD(0x9c4, PIN_OUTPUT_PULLUP | MUX_MODE2)
43 AM4372_IOPAD(0x9c8, PIN_OUTPUT_PULLUP | MUX_MODE2)
44 AM4372_IOPAD(0x9cc, PIN_OUTPUT_PULLUP | MUX_MODE2) /* cam1 data 9 -> DSS DATA 16 */
45
46 AM4372_IOPAD(0x8a0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS DATA 0 */
47 AM4372_IOPAD(0x8a4, PIN_OUTPUT_PULLUP | MUX_MODE0)
48 AM4372_IOPAD(0x8a8, PIN_OUTPUT_PULLUP | MUX_MODE0)
49 AM4372_IOPAD(0x8ac, PIN_OUTPUT_PULLUP | MUX_MODE0)
50 AM4372_IOPAD(0x8b0, PIN_OUTPUT_PULLUP | MUX_MODE0)
51 AM4372_IOPAD(0x8b4, PIN_OUTPUT_PULLUP | MUX_MODE0)
52 AM4372_IOPAD(0x8b8, PIN_OUTPUT_PULLUP | MUX_MODE0)
53 AM4372_IOPAD(0x8bc, PIN_OUTPUT_PULLUP | MUX_MODE0)
54 AM4372_IOPAD(0x8c0, PIN_OUTPUT_PULLUP | MUX_MODE0)
55 AM4372_IOPAD(0x8c4, PIN_OUTPUT_PULLUP | MUX_MODE0)
56 AM4372_IOPAD(0x8c8, PIN_OUTPUT_PULLUP | MUX_MODE0)
57 AM4372_IOPAD(0x8cc, PIN_OUTPUT_PULLUP | MUX_MODE0)
58 AM4372_IOPAD(0x8d0, PIN_OUTPUT_PULLUP | MUX_MODE0)
59 AM4372_IOPAD(0x8d4, PIN_OUTPUT_PULLUP | MUX_MODE0)
60 AM4372_IOPAD(0x8d8, PIN_OUTPUT_PULLUP | MUX_MODE0)
61 AM4372_IOPAD(0x8dc, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS DATA 15 */
62 AM4372_IOPAD(0x8e0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS VSYNC */
63 AM4372_IOPAD(0x8e4, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS HSYNC */
64 AM4372_IOPAD(0x8e8, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS PCLK */
65 AM4372_IOPAD(0x8ec, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS AC BIAS EN */
66 AM4372_IOPAD(0xa20, PIN_OUTPUT_PULLUP | MUX_MODE7)
67 >;
68 };
69
70 uart0_pins_default: uart0_pins_default {
71 pinctrl-single,pins = <
72 AM4372_IOPAD(0x968, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE0)
73 AM4372_IOPAD(0x96C, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE0)
74 AM4372_IOPAD(0x970, PIN_INPUT_PULLUP | SLEWCTRL_FAST | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* uart0_rxd.uart0_rxd */
75 AM4372_IOPAD(0x974, PIN_INPUT | PULL_DISABLE | SLEWCTRL_FAST | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* uart0_txd.uart0_txd */
76 >;
77 };
78
79 i2c1_pins: i2c1_pins {
80 pinctrl-single,pins = <
81 AM4372_IOPAD(0xa6c, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE1) /* spi2_cs0.i2c1_sda */
82 AM4372_IOPAD(0xa60, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE1) /* spi2_sclk.i2c1_scl */
83 >;
84 };
85
86 i2c2_pins: i2c2_pins {
87 pinctrl-single,pins = <
88 AM4372_IOPAD(0x978, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE3) /* uart1_ctsn.i2c2_sda */
89 AM4372_IOPAD(0x97c, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE3) /* uart1_rtsn.i2c2_scl */
90 >;
91 };
92
93 usb2_phy1_default: usb2_phy1_default {
94 pinctrl-single,pins = <
95 AM4372_IOPAD(0xac0, DS0_PULL_UP_DOWN_EN | PIN_INPUT_PULLDOWN | MUX_MODE0)
96 >;
97 };
98
99 usb2_phy2_default: usb2_phy2_default {
100 pinctrl-single,pins = <
101 AM4372_IOPAD(0xac4, DS0_PULL_UP_DOWN_EN | PIN_INPUT_PULLDOWN | MUX_MODE0)
102 >;
103 };
104};
105
106&i2c1 {
107 status = "okay";
108 pinctrl-names = "default";
109 pinctrl-0 = <&i2c1_pins>;
110
111 pca9555: pca9555@20 {
112 compatible = "nxp,pca9555";
113 reg = <0x20>;
114 gpio-controller;
115 #gpio-cells = <2>;
116 };
117
118 eeprom_base: at24@50 {
119 compatible = "atmel,24c02";
120 reg = <0x50>;
121 pagesize = <16>;
122 };
123};
124
125&i2c2 {
126 status = "okay";
127 pinctrl-names = "default";
128 pinctrl-0 = <&i2c2_pins>;
129};
130
131&mmc1 {
132 status = "okay";
133 bus-width = <4>;
134 pinctrl-names = "default";
135 pinctrl-0 = <&mmc1_pins>;
136 vmmc-supply = <&vsb_3v3>;
137 cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
138 wp-gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
139};
140
141&dss {
142 status = "ok";
143
144 pinctrl-names = "default";
145 pinctrl-0 = <&dss_pinctrl_default>;
146
147 port {
148 dpi_lcd_out: endpoint@0 {
149 remote-endpoint = <&lcd_in>;
150 data-lines = <24>;
151 };
152 };
153};
154
155&uart0 {
156 pinctrl-names = "default";
157 pinctrl-0 = <&uart0_pins_default>;
158};
159
160&dwc3_1 {
161 pinctrl-names = "default";
162 pinctrl-0 = <&usb2_phy1_default>;
163};
164
165&dwc3_2 {
166 pinctrl-names = "default";
167 pinctrl-0 = <&usb2_phy2_default>;
168};
169
170&lcd0 {
171 enable-gpios = <&pca9555 14 GPIO_ACTIVE_HIGH
172 &gpio4 28 GPIO_ACTIVE_HIGH>;
173
174 port {
175 lcd_in: endpoint {
176 remote-endpoint = <&dpi_lcd_out>;
177 data-lines = <24>;
178 };
179 };
180};
diff --git a/arch/arm/boot/dts/am437x-sk-evm.dts b/arch/arm/boot/dts/am437x-sk-evm.dts
index 63de2a1b4315..d82dd6e3f9b1 100644
--- a/arch/arm/boot/dts/am437x-sk-evm.dts
+++ b/arch/arm/boot/dts/am437x-sk-evm.dts
@@ -157,259 +157,259 @@
157&am43xx_pinmux { 157&am43xx_pinmux {
158 matrix_keypad_pins: matrix_keypad_pins { 158 matrix_keypad_pins: matrix_keypad_pins {
159 pinctrl-single,pins = < 159 pinctrl-single,pins = <
160 0x24c (PIN_OUTPUT | MUX_MODE7) /* gpio5_13.gpio5_13 */ 160 AM4372_IOPAD(0xa4c, PIN_OUTPUT | MUX_MODE7) /* gpio5_13.gpio5_13 */
161 0x250 (PIN_OUTPUT | MUX_MODE7) /* spi4_sclk.gpio5_4 */ 161 AM4372_IOPAD(0xa50, PIN_OUTPUT | MUX_MODE7) /* spi4_sclk.gpio5_4 */
162 0x254 (PIN_INPUT | MUX_MODE7) /* spi4_d0.gpio5_5 */ 162 AM4372_IOPAD(0xa54, PIN_INPUT | MUX_MODE7) /* spi4_d0.gpio5_5 */
163 0x258 (PIN_INPUT | MUX_MODE7) /* spi4_d1.gpio5_5 */ 163 AM4372_IOPAD(0xa58, PIN_INPUT | MUX_MODE7) /* spi4_d1.gpio5_5 */
164 >; 164 >;
165 }; 165 };
166 166
167 leds_pins: leds_pins { 167 leds_pins: leds_pins {
168 pinctrl-single,pins = < 168 pinctrl-single,pins = <
169 0x228 (PIN_OUTPUT | MUX_MODE7) /* uart3_rxd.gpio5_2 */ 169 AM4372_IOPAD(0xa28, PIN_OUTPUT | MUX_MODE7) /* uart3_rxd.gpio5_2 */
170 0x22c (PIN_OUTPUT | MUX_MODE7) /* uart3_txd.gpio5_3 */ 170 AM4372_IOPAD(0xa2c, PIN_OUTPUT | MUX_MODE7) /* uart3_txd.gpio5_3 */
171 0x230 (PIN_OUTPUT | MUX_MODE7) /* uart3_ctsn.gpio5_0 */ 171 AM4372_IOPAD(0xa30, PIN_OUTPUT | MUX_MODE7) /* uart3_ctsn.gpio5_0 */
172 0x234 (PIN_OUTPUT | MUX_MODE7) /* uart3_rtsn.gpio5_1 */ 172 AM4372_IOPAD(0xa34, PIN_OUTPUT | MUX_MODE7) /* uart3_rtsn.gpio5_1 */
173 >; 173 >;
174 }; 174 };
175 175
176 i2c0_pins: i2c0_pins { 176 i2c0_pins: i2c0_pins {
177 pinctrl-single,pins = < 177 pinctrl-single,pins = <
178 0x188 (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_sda.i2c0_sda */ 178 AM4372_IOPAD(0x988, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_sda.i2c0_sda */
179 0x18c (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_scl.i2c0_scl */ 179 AM4372_IOPAD(0x98c, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_scl.i2c0_scl */
180 >; 180 >;
181 }; 181 };
182 182
183 i2c1_pins: i2c1_pins { 183 i2c1_pins: i2c1_pins {
184 pinctrl-single,pins = < 184 pinctrl-single,pins = <
185 0x15c (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE2) /* spi0_cs0.i2c1_scl */ 185 AM4372_IOPAD(0x95c, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE2) /* spi0_cs0.i2c1_scl */
186 0x158 (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE2) /* spi0_d1.i2c1_sda */ 186 AM4372_IOPAD(0x958, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE2) /* spi0_d1.i2c1_sda */
187 >; 187 >;
188 }; 188 };
189 189
190 mmc1_pins: pinmux_mmc1_pins { 190 mmc1_pins: pinmux_mmc1_pins {
191 pinctrl-single,pins = < 191 pinctrl-single,pins = <
192 0x0f0 (PIN_INPUT | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */ 192 AM4372_IOPAD(0x8f0, PIN_INPUT | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
193 0x0f4 (PIN_INPUT | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */ 193 AM4372_IOPAD(0x8f4, PIN_INPUT | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
194 0x0f8 (PIN_INPUT | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */ 194 AM4372_IOPAD(0x8f8, PIN_INPUT | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
195 0x0fc (PIN_INPUT | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */ 195 AM4372_IOPAD(0x8fc, PIN_INPUT | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
196 0x100 (PIN_INPUT | MUX_MODE0) /* mmc0_clk.mmc0_clk */ 196 AM4372_IOPAD(0x900, PIN_INPUT | MUX_MODE0) /* mmc0_clk.mmc0_clk */
197 0x104 (PIN_INPUT | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */ 197 AM4372_IOPAD(0x904, PIN_INPUT | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
198 0x160 (PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */ 198 AM4372_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */
199 >; 199 >;
200 }; 200 };
201 201
202 ecap0_pins: backlight_pins { 202 ecap0_pins: backlight_pins {
203 pinctrl-single,pins = < 203 pinctrl-single,pins = <
204 0x164 (PIN_OUTPUT | MUX_MODE0) /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out */ 204 AM4372_IOPAD(0x964, PIN_OUTPUT | MUX_MODE0) /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out */
205 >; 205 >;
206 }; 206 };
207 207
208 edt_ft5306_ts_pins: edt_ft5306_ts_pins { 208 edt_ft5306_ts_pins: edt_ft5306_ts_pins {
209 pinctrl-single,pins = < 209 pinctrl-single,pins = <
210 0x74 (PIN_INPUT | MUX_MODE7) /* gpmc_wpn.gpio0_31 */ 210 AM4372_IOPAD(0x874, PIN_INPUT | MUX_MODE7) /* gpmc_wpn.gpio0_31 */
211 0x78 (PIN_OUTPUT | MUX_MODE7) /* gpmc_be1n.gpio1_28 */ 211 AM4372_IOPAD(0x878, PIN_OUTPUT | MUX_MODE7) /* gpmc_be1n.gpio1_28 */
212 >; 212 >;
213 }; 213 };
214 214
215 vpfe0_pins_default: vpfe0_pins_default { 215 vpfe0_pins_default: vpfe0_pins_default {
216 pinctrl-single,pins = < 216 pinctrl-single,pins = <
217 0x1b0 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_hd mode 0*/ 217 AM4372_IOPAD(0x9b0, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_hd mode 0*/
218 0x1b4 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_vd mode 0*/ 218 AM4372_IOPAD(0x9b4, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_vd mode 0*/
219 0x1b8 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_field mode 0*/ 219 AM4372_IOPAD(0x9b8, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_field mode 0*/
220 0x1bc (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_wen mode 0*/ 220 AM4372_IOPAD(0x9bc, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_wen mode 0*/
221 0x1c0 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_pclk mode 0*/ 221 AM4372_IOPAD(0x9c0, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_pclk mode 0*/
222 0x1c4 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data8 mode 0*/ 222 AM4372_IOPAD(0x9c4, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data8 mode 0*/
223 0x1c8 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data9 mode 0*/ 223 AM4372_IOPAD(0x9c8, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data9 mode 0*/
224 0x208 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data0 mode 0*/ 224 AM4372_IOPAD(0xa08, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data0 mode 0*/
225 0x20c (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data1 mode 0*/ 225 AM4372_IOPAD(0xa0c, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data1 mode 0*/
226 0x210 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data2 mode 0*/ 226 AM4372_IOPAD(0xa10, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data2 mode 0*/
227 0x214 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data3 mode 0*/ 227 AM4372_IOPAD(0xa14, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data3 mode 0*/
228 0x218 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data4 mode 0*/ 228 AM4372_IOPAD(0xa18, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data4 mode 0*/
229 0x21c (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data5 mode 0*/ 229 AM4372_IOPAD(0xa1c, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data5 mode 0*/
230 0x220 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data6 mode 0*/ 230 AM4372_IOPAD(0xa20, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data6 mode 0*/
231 0x224 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data7 mode 0*/ 231 AM4372_IOPAD(0xa24, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data7 mode 0*/
232 >; 232 >;
233 }; 233 };
234 234
235 vpfe0_pins_sleep: vpfe0_pins_sleep { 235 vpfe0_pins_sleep: vpfe0_pins_sleep {
236 pinctrl-single,pins = < 236 pinctrl-single,pins = <
237 0x1b0 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 237 AM4372_IOPAD(0x9b0, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
238 0x1b4 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 238 AM4372_IOPAD(0x9b4, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
239 0x1b8 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 239 AM4372_IOPAD(0x9b8, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
240 0x1bc (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 240 AM4372_IOPAD(0x9bc, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
241 0x1c0 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 241 AM4372_IOPAD(0x9c0, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
242 0x1c4 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 242 AM4372_IOPAD(0x9c4, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
243 0x1c8 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 243 AM4372_IOPAD(0x9c8, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
244 0x208 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 244 AM4372_IOPAD(0xa08, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
245 0x20c (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 245 AM4372_IOPAD(0xa0c, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
246 0x210 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 246 AM4372_IOPAD(0xa10, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
247 0x214 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 247 AM4372_IOPAD(0xa14, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
248 0x218 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 248 AM4372_IOPAD(0xa18, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
249 0x21c (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 249 AM4372_IOPAD(0xa1c, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
250 0x220 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 250 AM4372_IOPAD(0xa20, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
251 0x224 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 251 AM4372_IOPAD(0xa24, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
252 >; 252 >;
253 }; 253 };
254 254
255 cpsw_default: cpsw_default { 255 cpsw_default: cpsw_default {
256 pinctrl-single,pins = < 256 pinctrl-single,pins = <
257 /* Slave 1 */ 257 /* Slave 1 */
258 0x12c (PIN_OUTPUT | MUX_MODE2) /* mii1_txclk.rmii1_tclk */ 258 AM4372_IOPAD(0x92c, PIN_OUTPUT | MUX_MODE2) /* mii1_txclk.rmii1_tclk */
259 0x114 (PIN_OUTPUT | MUX_MODE2) /* mii1_txen.rgmii1_tctl */ 259 AM4372_IOPAD(0x914, PIN_OUTPUT | MUX_MODE2) /* mii1_txen.rgmii1_tctl */
260 0x128 (PIN_OUTPUT | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */ 260 AM4372_IOPAD(0x928, PIN_OUTPUT | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */
261 0x124 (PIN_OUTPUT | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */ 261 AM4372_IOPAD(0x924, PIN_OUTPUT | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */
262 0x120 (PIN_OUTPUT | MUX_MODE2) /* mii1_txd0.rgmii1_td2 */ 262 AM4372_IOPAD(0x920, PIN_OUTPUT | MUX_MODE2) /* mii1_txd0.rgmii1_td2 */
263 0x11c (PIN_OUTPUT | MUX_MODE2) /* mii1_txd1.rgmii1_td3 */ 263 AM4372_IOPAD(0x91c, PIN_OUTPUT | MUX_MODE2) /* mii1_txd1.rgmii1_td3 */
264 0x130 (PIN_INPUT | MUX_MODE2) /* mii1_rxclk.rmii1_rclk */ 264 AM4372_IOPAD(0x930, PIN_INPUT | MUX_MODE2) /* mii1_rxclk.rmii1_rclk */
265 0x118 (PIN_INPUT | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */ 265 AM4372_IOPAD(0x918, PIN_INPUT | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */
266 0x140 (PIN_INPUT | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */ 266 AM4372_IOPAD(0x940, PIN_INPUT | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */
267 0x13c (PIN_INPUT | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */ 267 AM4372_IOPAD(0x93c, PIN_INPUT | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */
268 0x138 (PIN_INPUT | MUX_MODE2) /* mii1_rxd0.rgmii1_rd2 */ 268 AM4372_IOPAD(0x938, PIN_INPUT | MUX_MODE2) /* mii1_rxd0.rgmii1_rd2 */
269 0x134 (PIN_INPUT | MUX_MODE2) /* mii1_rxd1.rgmii1_rd3 */ 269 AM4372_IOPAD(0x934, PIN_INPUT | MUX_MODE2) /* mii1_rxd1.rgmii1_rd3 */
270 270
271 /* Slave 2 */ 271 /* Slave 2 */
272 0x58 (PIN_OUTPUT | MUX_MODE2) /* gpmc_a6.rgmii2_tclk */ 272 AM4372_IOPAD(0x858, PIN_OUTPUT | MUX_MODE2) /* gpmc_a6.rgmii2_tclk */
273 0x40 (PIN_OUTPUT | MUX_MODE2) /* gpmc_a0.rgmii2_tctl */ 273 AM4372_IOPAD(0x840, PIN_OUTPUT | MUX_MODE2) /* gpmc_a0.rgmii2_tctl */
274 0x54 (PIN_OUTPUT | MUX_MODE2) /* gpmc_a5.rgmii2_td0 */ 274 AM4372_IOPAD(0x854, PIN_OUTPUT | MUX_MODE2) /* gpmc_a5.rgmii2_td0 */
275 0x50 (PIN_OUTPUT | MUX_MODE2) /* gpmc_a4.rgmii2_td1 */ 275 AM4372_IOPAD(0x850, PIN_OUTPUT | MUX_MODE2) /* gpmc_a4.rgmii2_td1 */
276 0x4c (PIN_OUTPUT | MUX_MODE2) /* gpmc_a3.rgmii2_td2 */ 276 AM4372_IOPAD(0x84c, PIN_OUTPUT | MUX_MODE2) /* gpmc_a3.rgmii2_td2 */
277 0x48 (PIN_OUTPUT | MUX_MODE2) /* gpmc_a2.rgmii2_td3 */ 277 AM4372_IOPAD(0x848, PIN_OUTPUT | MUX_MODE2) /* gpmc_a2.rgmii2_td3 */
278 0x5c (PIN_INPUT | MUX_MODE2) /* gpmc_a7.rgmii2_rclk */ 278 AM4372_IOPAD(0x85c, PIN_INPUT | MUX_MODE2) /* gpmc_a7.rgmii2_rclk */
279 0x44 (PIN_INPUT | MUX_MODE2) /* gpmc_a1.rgmii2_rtcl */ 279 AM4372_IOPAD(0x844, PIN_INPUT | MUX_MODE2) /* gpmc_a1.rgmii2_rtcl */
280 0x6c (PIN_INPUT | MUX_MODE2) /* gpmc_a11.rgmii2_rd0 */ 280 AM4372_IOPAD(0x86c, PIN_INPUT | MUX_MODE2) /* gpmc_a11.rgmii2_rd0 */
281 0x68 (PIN_INPUT | MUX_MODE2) /* gpmc_a10.rgmii2_rd1 */ 281 AM4372_IOPAD(0x868, PIN_INPUT | MUX_MODE2) /* gpmc_a10.rgmii2_rd1 */
282 0x64 (PIN_INPUT | MUX_MODE2) /* gpmc_a9.rgmii2_rd2 */ 282 AM4372_IOPAD(0x864, PIN_INPUT | MUX_MODE2) /* gpmc_a9.rgmii2_rd2 */
283 0x60 (PIN_INPUT | MUX_MODE2) /* gpmc_a8.rgmii2_rd3 */ 283 AM4372_IOPAD(0x860, PIN_INPUT | MUX_MODE2) /* gpmc_a8.rgmii2_rd3 */
284 >; 284 >;
285 }; 285 };
286 286
287 cpsw_sleep: cpsw_sleep { 287 cpsw_sleep: cpsw_sleep {
288 pinctrl-single,pins = < 288 pinctrl-single,pins = <
289 /* Slave 1 reset value */ 289 /* Slave 1 reset value */
290 0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7) 290 AM4372_IOPAD(0x92c, PIN_INPUT_PULLDOWN | MUX_MODE7)
291 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) 291 AM4372_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
292 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) 292 AM4372_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
293 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) 293 AM4372_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
294 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7) 294 AM4372_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE7)
295 0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7) 295 AM4372_IOPAD(0x91c, PIN_INPUT_PULLDOWN | MUX_MODE7)
296 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7) 296 AM4372_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE7)
297 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) 297 AM4372_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7)
298 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) 298 AM4372_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
299 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) 299 AM4372_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
300 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7) 300 AM4372_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE7)
301 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7) 301 AM4372_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE7)
302 302
303 /* Slave 2 reset value */ 303 /* Slave 2 reset value */
304 0x58 (PIN_INPUT_PULLDOWN | MUX_MODE7) 304 AM4372_IOPAD(0x858, PIN_INPUT_PULLDOWN | MUX_MODE7)
305 0x40 (PIN_INPUT_PULLDOWN | MUX_MODE7) 305 AM4372_IOPAD(0x840, PIN_INPUT_PULLDOWN | MUX_MODE7)
306 0x54 (PIN_INPUT_PULLDOWN | MUX_MODE7) 306 AM4372_IOPAD(0x854, PIN_INPUT_PULLDOWN | MUX_MODE7)
307 0x50 (PIN_INPUT_PULLDOWN | MUX_MODE7) 307 AM4372_IOPAD(0x850, PIN_INPUT_PULLDOWN | MUX_MODE7)
308 0x4c (PIN_INPUT_PULLDOWN | MUX_MODE7) 308 AM4372_IOPAD(0x84c, PIN_INPUT_PULLDOWN | MUX_MODE7)
309 0x48 (PIN_INPUT_PULLDOWN | MUX_MODE7) 309 AM4372_IOPAD(0x848, PIN_INPUT_PULLDOWN | MUX_MODE7)
310 0x5c (PIN_INPUT_PULLDOWN | MUX_MODE7) 310 AM4372_IOPAD(0x85c, PIN_INPUT_PULLDOWN | MUX_MODE7)
311 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE7) 311 AM4372_IOPAD(0x844, PIN_INPUT_PULLDOWN | MUX_MODE7)
312 0x6c (PIN_INPUT_PULLDOWN | MUX_MODE7) 312 AM4372_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE7)
313 0x68 (PIN_INPUT_PULLDOWN | MUX_MODE7) 313 AM4372_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE7)
314 0x64 (PIN_INPUT_PULLDOWN | MUX_MODE7) 314 AM4372_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE7)
315 0x60 (PIN_INPUT_PULLDOWN | MUX_MODE7) 315 AM4372_IOPAD(0x860, PIN_INPUT_PULLDOWN | MUX_MODE7)
316 >; 316 >;
317 }; 317 };
318 318
319 davinci_mdio_default: davinci_mdio_default { 319 davinci_mdio_default: davinci_mdio_default {
320 pinctrl-single,pins = < 320 pinctrl-single,pins = <
321 /* MDIO */ 321 /* MDIO */
322 0x148 (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ 322 AM4372_IOPAD(0x948, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
323 0x14c (PIN_OUTPUT | MUX_MODE0) /* mdio_clk.mdio_clk */ 323 AM4372_IOPAD(0x94c, PIN_OUTPUT | MUX_MODE0) /* mdio_clk.mdio_clk */
324 >; 324 >;
325 }; 325 };
326 326
327 davinci_mdio_sleep: davinci_mdio_sleep { 327 davinci_mdio_sleep: davinci_mdio_sleep {
328 pinctrl-single,pins = < 328 pinctrl-single,pins = <
329 /* MDIO reset value */ 329 /* MDIO reset value */
330 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) 330 AM4372_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
331 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) 331 AM4372_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
332 >; 332 >;
333 }; 333 };
334 334
335 dss_pins: dss_pins { 335 dss_pins: dss_pins {
336 pinctrl-single,pins = < 336 pinctrl-single,pins = <
337 0x020 (PIN_OUTPUT | MUX_MODE1) /* gpmc ad 8 -> DSS DATA 23 */ 337 AM4372_IOPAD(0x820, PIN_OUTPUT | MUX_MODE1) /* gpmc ad 8 -> DSS DATA 23 */
338 0x024 (PIN_OUTPUT | MUX_MODE1) 338 AM4372_IOPAD(0x824, PIN_OUTPUT | MUX_MODE1)
339 0x028 (PIN_OUTPUT | MUX_MODE1) 339 AM4372_IOPAD(0x828, PIN_OUTPUT | MUX_MODE1)
340 0x02c (PIN_OUTPUT | MUX_MODE1) 340 AM4372_IOPAD(0x82c, PIN_OUTPUT | MUX_MODE1)
341 0x030 (PIN_OUTPUT | MUX_MODE1) 341 AM4372_IOPAD(0x830, PIN_OUTPUT | MUX_MODE1)
342 0x034 (PIN_OUTPUT | MUX_MODE1) 342 AM4372_IOPAD(0x834, PIN_OUTPUT | MUX_MODE1)
343 0x038 (PIN_OUTPUT | MUX_MODE1) 343 AM4372_IOPAD(0x838, PIN_OUTPUT | MUX_MODE1)
344 0x03c (PIN_OUTPUT | MUX_MODE1) /* gpmc ad 15 -> DSS DATA 16 */ 344 AM4372_IOPAD(0x83c, PIN_OUTPUT | MUX_MODE1) /* gpmc ad 15 -> DSS DATA 16 */
345 0x0a0 (PIN_OUTPUT | MUX_MODE0) /* DSS DATA 0 */ 345 AM4372_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0) /* DSS DATA 0 */
346 0x0a4 (PIN_OUTPUT | MUX_MODE0) 346 AM4372_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0)
347 0x0a8 (PIN_OUTPUT | MUX_MODE0) 347 AM4372_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0)
348 0x0ac (PIN_OUTPUT | MUX_MODE0) 348 AM4372_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0)
349 0x0b0 (PIN_OUTPUT | MUX_MODE0) 349 AM4372_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0)
350 0x0b4 (PIN_OUTPUT | MUX_MODE0) 350 AM4372_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0)
351 0x0b8 (PIN_OUTPUT | MUX_MODE0) 351 AM4372_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0)
352 0x0bc (PIN_OUTPUT | MUX_MODE0) 352 AM4372_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0)
353 0x0c0 (PIN_OUTPUT | MUX_MODE0) 353 AM4372_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0)
354 0x0c4 (PIN_OUTPUT | MUX_MODE0) 354 AM4372_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0)
355 0x0c8 (PIN_OUTPUT | MUX_MODE0) 355 AM4372_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0)
356 0x0cc (PIN_OUTPUT | MUX_MODE0) 356 AM4372_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0)
357 0x0d0 (PIN_OUTPUT | MUX_MODE0) 357 AM4372_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0)
358 0x0d4 (PIN_OUTPUT | MUX_MODE0) 358 AM4372_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0)
359 0x0d8 (PIN_OUTPUT | MUX_MODE0) 359 AM4372_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0)
360 0x0dc (PIN_OUTPUT | MUX_MODE0) /* DSS DATA 15 */ 360 AM4372_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0) /* DSS DATA 15 */
361 0x0e0 (PIN_OUTPUT | MUX_MODE0) /* DSS VSYNC */ 361 AM4372_IOPAD(0x8e0, PIN_OUTPUT | MUX_MODE0) /* DSS VSYNC */
362 0x0e4 (PIN_OUTPUT | MUX_MODE0) /* DSS HSYNC */ 362 AM4372_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE0) /* DSS HSYNC */
363 0x0e8 (PIN_OUTPUT | MUX_MODE0) /* DSS PCLK */ 363 AM4372_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE0) /* DSS PCLK */
364 0x0ec (PIN_OUTPUT | MUX_MODE0) /* DSS AC BIAS EN */ 364 AM4372_IOPAD(0x8ec, PIN_OUTPUT | MUX_MODE0) /* DSS AC BIAS EN */
365 365
366 >; 366 >;
367 }; 367 };
368 368
369 qspi_pins: qspi_pins { 369 qspi_pins: qspi_pins {
370 pinctrl-single,pins = < 370 pinctrl-single,pins = <
371 0x7c (PIN_OUTPUT | MUX_MODE3) /* gpmc_csn0.qspi_csn */ 371 AM4372_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE3) /* gpmc_csn0.qspi_csn */
372 0x88 (PIN_OUTPUT | MUX_MODE2) /* gpmc_csn3.qspi_clk */ 372 AM4372_IOPAD(0x888, PIN_OUTPUT | MUX_MODE2) /* gpmc_csn3.qspi_clk */
373 0x90 (PIN_INPUT | MUX_MODE3) /* gpmc_advn_ale.qspi_d0 */ 373 AM4372_IOPAD(0x890, PIN_INPUT | MUX_MODE3) /* gpmc_advn_ale.qspi_d0 */
374 0x94 (PIN_INPUT | MUX_MODE3) /* gpmc_oen_ren.qspi_d1 */ 374 AM4372_IOPAD(0x894, PIN_INPUT | MUX_MODE3) /* gpmc_oen_ren.qspi_d1 */
375 0x98 (PIN_INPUT | MUX_MODE3) /* gpmc_wen.qspi_d2 */ 375 AM4372_IOPAD(0x898, PIN_INPUT | MUX_MODE3) /* gpmc_wen.qspi_d2 */
376 0x9c (PIN_INPUT | MUX_MODE3) /* gpmc_be0n_cle.qspi_d3 */ 376 AM4372_IOPAD(0x89c, PIN_INPUT | MUX_MODE3) /* gpmc_be0n_cle.qspi_d3 */
377 >; 377 >;
378 }; 378 };
379 379
380 mcasp1_pins: mcasp1_pins { 380 mcasp1_pins: mcasp1_pins {
381 pinctrl-single,pins = < 381 pinctrl-single,pins = <
382 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */ 382 AM4372_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */
383 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */ 383 AM4372_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */
384 0x108 (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */ 384 AM4372_IOPAD(0x908, PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */
385 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */ 385 AM4372_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */
386 >; 386 >;
387 }; 387 };
388 388
389 mcasp1_pins_sleep: mcasp1_pins_sleep { 389 mcasp1_pins_sleep: mcasp1_pins_sleep {
390 pinctrl-single,pins = < 390 pinctrl-single,pins = <
391 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7) 391 AM4372_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE7)
392 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7) 392 AM4372_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7)
393 0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7) 393 AM4372_IOPAD(0x908, PIN_INPUT_PULLDOWN | MUX_MODE7)
394 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7) 394 AM4372_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7)
395 >; 395 >;
396 }; 396 };
397 397
398 lcd_pins: lcd_pins { 398 lcd_pins: lcd_pins {
399 pinctrl-single,pins = < 399 pinctrl-single,pins = <
400 0x1c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpcm_ad7.gpio1_7 */ 400 AM4372_IOPAD(0x81c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpcm_ad7.gpio1_7 */
401 >; 401 >;
402 }; 402 };
403 403
404 usb1_pins: usb1_pins { 404 usb1_pins: usb1_pins {
405 pinctrl-single,pins = < 405 pinctrl-single,pins = <
406 0x2c0 (PIN_OUTPUT | MUX_MODE0) /* usb0_drvvbus.usb0_drvvbus */ 406 AM4372_IOPAD(0xac0, PIN_OUTPUT | MUX_MODE0) /* usb0_drvvbus.usb0_drvvbus */
407 >; 407 >;
408 }; 408 };
409 409
410 usb2_pins: usb2_pins { 410 usb2_pins: usb2_pins {
411 pinctrl-single,pins = < 411 pinctrl-single,pins = <
412 0x2c4 (PIN_OUTPUT | MUX_MODE0) /* usb0_drvvbus.usb0_drvvbus */ 412 AM4372_IOPAD(0xac4, PIN_OUTPUT | MUX_MODE0) /* usb0_drvvbus.usb0_drvvbus */
413 >; 413 >;
414 }; 414 };
415}; 415};
diff --git a/arch/arm/boot/dts/am43x-epos-evm.dts b/arch/arm/boot/dts/am43x-epos-evm.dts
index 47954ed990f8..746fd2b17958 100644
--- a/arch/arm/boot/dts/am43x-epos-evm.dts
+++ b/arch/arm/boot/dts/am43x-epos-evm.dts
@@ -144,228 +144,228 @@
144 cpsw_default: cpsw_default { 144 cpsw_default: cpsw_default {
145 pinctrl-single,pins = < 145 pinctrl-single,pins = <
146 /* Slave 1 */ 146 /* Slave 1 */
147 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_crs.rmii1_crs */ 147 AM4372_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_crs.rmii1_crs */
148 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxerr.rmii1_rxerr */ 148 AM4372_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxerr.rmii1_rxerr */
149 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txen.rmii1_txen */ 149 AM4372_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txen.rmii1_txen */
150 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxdv.rmii1_rxdv */ 150 AM4372_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxdv.rmii1_rxdv */
151 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd1.rmii1_txd1 */ 151 AM4372_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd1.rmii1_txd1 */
152 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd0.rmii1_txd0 */ 152 AM4372_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd0.rmii1_txd0 */
153 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd1.rmii1_rxd1 */ 153 AM4372_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd1.rmii1_rxd1 */
154 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */ 154 AM4372_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */
155 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii1_refclk.rmii1_refclk */ 155 AM4372_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii1_refclk.rmii1_refclk */
156 >; 156 >;
157 }; 157 };
158 158
159 cpsw_sleep: cpsw_sleep { 159 cpsw_sleep: cpsw_sleep {
160 pinctrl-single,pins = < 160 pinctrl-single,pins = <
161 /* Slave 1 reset value */ 161 /* Slave 1 reset value */
162 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7) 162 AM4372_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE7)
163 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7) 163 AM4372_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7)
164 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) 164 AM4372_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
165 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) 165 AM4372_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7)
166 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) 166 AM4372_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
167 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) 167 AM4372_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
168 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) 168 AM4372_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
169 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) 169 AM4372_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
170 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7) 170 AM4372_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7)
171 >; 171 >;
172 }; 172 };
173 173
174 davinci_mdio_default: davinci_mdio_default { 174 davinci_mdio_default: davinci_mdio_default {
175 pinctrl-single,pins = < 175 pinctrl-single,pins = <
176 /* MDIO */ 176 /* MDIO */
177 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ 177 AM4372_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
178 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ 178 AM4372_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
179 >; 179 >;
180 }; 180 };
181 181
182 davinci_mdio_sleep: davinci_mdio_sleep { 182 davinci_mdio_sleep: davinci_mdio_sleep {
183 pinctrl-single,pins = < 183 pinctrl-single,pins = <
184 /* MDIO reset value */ 184 /* MDIO reset value */
185 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) 185 AM4372_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
186 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) 186 AM4372_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
187 >; 187 >;
188 }; 188 };
189 189
190 i2c0_pins: pinmux_i2c0_pins { 190 i2c0_pins: pinmux_i2c0_pins {
191 pinctrl-single,pins = < 191 pinctrl-single,pins = <
192 0x188 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_sda.i2c0_sda */ 192 AM4372_IOPAD(0x988, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_sda.i2c0_sda */
193 0x18c (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_scl.i2c0_scl */ 193 AM4372_IOPAD(0x98c, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_scl.i2c0_scl */
194 >; 194 >;
195 }; 195 };
196 196
197 nand_flash_x8: nand_flash_x8 { 197 nand_flash_x8: nand_flash_x8 {
198 pinctrl-single,pins = < 198 pinctrl-single,pins = <
199 0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a0.SELQSPIorNAND/GPIO */ 199 AM4372_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a0.SELQSPIorNAND/GPIO */
200 0x0 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */ 200 AM4372_IOPAD(0x800, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */
201 0x4 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */ 201 AM4372_IOPAD(0x804, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */
202 0x8 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */ 202 AM4372_IOPAD(0x808, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */
203 0xc (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */ 203 AM4372_IOPAD(0x80c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */
204 0x10 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */ 204 AM4372_IOPAD(0x810, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */
205 0x14 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */ 205 AM4372_IOPAD(0x814, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */
206 0x18 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */ 206 AM4372_IOPAD(0x818, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */
207 0x1c (PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */ 207 AM4372_IOPAD(0x81c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */
208 0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */ 208 AM4372_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */
209 0x74 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpmc_wpn */ 209 AM4372_IOPAD(0x874, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpmc_wpn */
210 0x7c (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */ 210 AM4372_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */
211 0x90 (PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */ 211 AM4372_IOPAD(0x890, PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */
212 0x94 (PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */ 212 AM4372_IOPAD(0x894, PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */
213 0x98 (PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */ 213 AM4372_IOPAD(0x898, PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */
214 0x9c (PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */ 214 AM4372_IOPAD(0x89c, PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */
215 >; 215 >;
216 }; 216 };
217 217
218 ecap0_pins: backlight_pins { 218 ecap0_pins: backlight_pins {
219 pinctrl-single,pins = < 219 pinctrl-single,pins = <
220 0x164 MUX_MODE0 /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */ 220 AM4372_IOPAD(0x964, MUX_MODE0) /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */
221 >; 221 >;
222 }; 222 };
223 223
224 i2c2_pins: pinmux_i2c2_pins { 224 i2c2_pins: pinmux_i2c2_pins {
225 pinctrl-single,pins = < 225 pinctrl-single,pins = <
226 0x1c0 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE8) /* i2c2_sda.i2c2_sda */ 226 AM4372_IOPAD(0x9c0, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE8) /* i2c2_sda.i2c2_sda */
227 0x1c4 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE8) /* i2c2_scl.i2c2_scl */ 227 AM4372_IOPAD(0x9c4, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE8) /* i2c2_scl.i2c2_scl */
228 >; 228 >;
229 }; 229 };
230 230
231 spi0_pins: pinmux_spi0_pins { 231 spi0_pins: pinmux_spi0_pins {
232 pinctrl-single,pins = < 232 pinctrl-single,pins = <
233 0x150 (PIN_INPUT | MUX_MODE0) /* spi0_clk.spi0_clk */ 233 AM4372_IOPAD(0x950, PIN_INPUT | MUX_MODE0) /* spi0_clk.spi0_clk */
234 0x154 (PIN_OUTPUT | MUX_MODE0) /* spi0_d0.spi0_d0 */ 234 AM4372_IOPAD(0x954, PIN_OUTPUT | MUX_MODE0) /* spi0_d0.spi0_d0 */
235 0x158 (PIN_INPUT | MUX_MODE0) /* spi0_d1.spi0_d1 */ 235 AM4372_IOPAD(0x958, PIN_INPUT | MUX_MODE0) /* spi0_d1.spi0_d1 */
236 0x15c (PIN_OUTPUT | MUX_MODE0) /* spi0_cs0.spi0_cs0 */ 236 AM4372_IOPAD(0x95c, PIN_OUTPUT | MUX_MODE0) /* spi0_cs0.spi0_cs0 */
237 >; 237 >;
238 }; 238 };
239 239
240 spi1_pins: pinmux_spi1_pins { 240 spi1_pins: pinmux_spi1_pins {
241 pinctrl-single,pins = < 241 pinctrl-single,pins = <
242 0x190 (PIN_INPUT | MUX_MODE3) /* mcasp0_aclkx.spi1_clk */ 242 AM4372_IOPAD(0x990, PIN_INPUT | MUX_MODE3) /* mcasp0_aclkx.spi1_clk */
243 0x194 (PIN_OUTPUT | MUX_MODE3) /* mcasp0_fsx.spi1_d0 */ 243 AM4372_IOPAD(0x994, PIN_OUTPUT | MUX_MODE3) /* mcasp0_fsx.spi1_d0 */
244 0x198 (PIN_INPUT | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */ 244 AM4372_IOPAD(0x998, PIN_INPUT | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
245 0x19c (PIN_OUTPUT | MUX_MODE3) /* mcasp0_ahclkr.spi1_cs0 */ 245 AM4372_IOPAD(0x99c, PIN_OUTPUT | MUX_MODE3) /* mcasp0_ahclkr.spi1_cs0 */
246 >; 246 >;
247 }; 247 };
248 248
249 mmc1_pins: pinmux_mmc1_pins { 249 mmc1_pins: pinmux_mmc1_pins {
250 pinctrl-single,pins = < 250 pinctrl-single,pins = <
251 0x160 (PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */ 251 AM4372_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */
252 >; 252 >;
253 }; 253 };
254 254
255 qspi1_default: qspi1_default { 255 qspi1_default: qspi1_default {
256 pinctrl-single,pins = < 256 pinctrl-single,pins = <
257 0x7c (PIN_INPUT_PULLUP | MUX_MODE3) 257 AM4372_IOPAD(0x87c, PIN_INPUT_PULLUP | MUX_MODE3)
258 0x88 (PIN_INPUT_PULLUP | MUX_MODE2) 258 AM4372_IOPAD(0x888, PIN_INPUT_PULLUP | MUX_MODE2)
259 0x90 (PIN_INPUT_PULLUP | MUX_MODE3) 259 AM4372_IOPAD(0x890, PIN_INPUT_PULLUP | MUX_MODE3)
260 0x94 (PIN_INPUT_PULLUP | MUX_MODE3) 260 AM4372_IOPAD(0x894, PIN_INPUT_PULLUP | MUX_MODE3)
261 0x98 (PIN_INPUT_PULLUP | MUX_MODE3) 261 AM4372_IOPAD(0x898, PIN_INPUT_PULLUP | MUX_MODE3)
262 0x9c (PIN_INPUT_PULLUP | MUX_MODE3) 262 AM4372_IOPAD(0x89c, PIN_INPUT_PULLUP | MUX_MODE3)
263 >; 263 >;
264 }; 264 };
265 265
266 pixcir_ts_pins: pixcir_ts_pins { 266 pixcir_ts_pins: pixcir_ts_pins {
267 pinctrl-single,pins = < 267 pinctrl-single,pins = <
268 0x44 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a1.gpio1_17 */ 268 AM4372_IOPAD(0x844, PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_a1.gpio1_17 */
269 >; 269 >;
270 }; 270 };
271 271
272 hdq_pins: pinmux_hdq_pins { 272 hdq_pins: pinmux_hdq_pins {
273 pinctrl-single,pins = < 273 pinctrl-single,pins = <
274 0x234 (PIN_INPUT_PULLUP | MUX_MODE1) /* cam1_wen.hdq_gpio */ 274 AM4372_IOPAD(0xa34, PIN_INPUT_PULLUP | MUX_MODE1) /* cam1_wen.hdq_gpio */
275 >; 275 >;
276 }; 276 };
277 277
278 dss_pins: dss_pins { 278 dss_pins: dss_pins {
279 pinctrl-single,pins = < 279 pinctrl-single,pins = <
280 0x020 (PIN_OUTPUT_PULLUP | MUX_MODE1) /*gpmc ad 8 -> DSS DATA 23 */ 280 AM4372_IOPAD(0x820, PIN_OUTPUT_PULLUP | MUX_MODE1) /*gpmc ad 8 -> DSS DATA 23 */
281 0x024 (PIN_OUTPUT_PULLUP | MUX_MODE1) 281 AM4372_IOPAD(0x824, PIN_OUTPUT_PULLUP | MUX_MODE1)
282 0x028 (PIN_OUTPUT_PULLUP | MUX_MODE1) 282 AM4372_IOPAD(0x828, PIN_OUTPUT_PULLUP | MUX_MODE1)
283 0x02C (PIN_OUTPUT_PULLUP | MUX_MODE1) 283 AM4372_IOPAD(0x82c, PIN_OUTPUT_PULLUP | MUX_MODE1)
284 0x030 (PIN_OUTPUT_PULLUP | MUX_MODE1) 284 AM4372_IOPAD(0x830, PIN_OUTPUT_PULLUP | MUX_MODE1)
285 0x034 (PIN_OUTPUT_PULLUP | MUX_MODE1) 285 AM4372_IOPAD(0x834, PIN_OUTPUT_PULLUP | MUX_MODE1)
286 0x038 (PIN_OUTPUT_PULLUP | MUX_MODE1) 286 AM4372_IOPAD(0x838, PIN_OUTPUT_PULLUP | MUX_MODE1)
287 0x03C (PIN_OUTPUT_PULLUP | MUX_MODE1) /*gpmc ad 15 -> DSS DATA 16 */ 287 AM4372_IOPAD(0x83c, PIN_OUTPUT_PULLUP | MUX_MODE1) /*gpmc ad 15 -> DSS DATA 16 */
288 0x0A0 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS DATA 0 */ 288 AM4372_IOPAD(0x8a0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS DATA 0 */
289 0x0A4 (PIN_OUTPUT_PULLUP | MUX_MODE0) 289 AM4372_IOPAD(0x8a4, PIN_OUTPUT_PULLUP | MUX_MODE0)
290 0x0A8 (PIN_OUTPUT_PULLUP | MUX_MODE0) 290 AM4372_IOPAD(0x8a8, PIN_OUTPUT_PULLUP | MUX_MODE0)
291 0x0AC (PIN_OUTPUT_PULLUP | MUX_MODE0) 291 AM4372_IOPAD(0x8ac, PIN_OUTPUT_PULLUP | MUX_MODE0)
292 0x0B0 (PIN_OUTPUT_PULLUP | MUX_MODE0) 292 AM4372_IOPAD(0x8b0, PIN_OUTPUT_PULLUP | MUX_MODE0)
293 0x0B4 (PIN_OUTPUT_PULLUP | MUX_MODE0) 293 AM4372_IOPAD(0x8b4, PIN_OUTPUT_PULLUP | MUX_MODE0)
294 0x0B8 (PIN_OUTPUT_PULLUP | MUX_MODE0) 294 AM4372_IOPAD(0x8B8, PIN_OUTPUT_PULLUP | MUX_MODE0)
295 0x0BC (PIN_OUTPUT_PULLUP | MUX_MODE0) 295 AM4372_IOPAD(0x8bc, PIN_OUTPUT_PULLUP | MUX_MODE0)
296 0x0C0 (PIN_OUTPUT_PULLUP | MUX_MODE0) 296 AM4372_IOPAD(0x8c0, PIN_OUTPUT_PULLUP | MUX_MODE0)
297 0x0C4 (PIN_OUTPUT_PULLUP | MUX_MODE0) 297 AM4372_IOPAD(0x8c4, PIN_OUTPUT_PULLUP | MUX_MODE0)
298 0x0C8 (PIN_OUTPUT_PULLUP | MUX_MODE0) 298 AM4372_IOPAD(0x8c8, PIN_OUTPUT_PULLUP | MUX_MODE0)
299 0x0CC (PIN_OUTPUT_PULLUP | MUX_MODE0) 299 AM4372_IOPAD(0x8cc, PIN_OUTPUT_PULLUP | MUX_MODE0)
300 0x0D0 (PIN_OUTPUT_PULLUP | MUX_MODE0) 300 AM4372_IOPAD(0x8d0, PIN_OUTPUT_PULLUP | MUX_MODE0)
301 0x0D4 (PIN_OUTPUT_PULLUP | MUX_MODE0) 301 AM4372_IOPAD(0x8d4, PIN_OUTPUT_PULLUP | MUX_MODE0)
302 0x0D8 (PIN_OUTPUT_PULLUP | MUX_MODE0) 302 AM4372_IOPAD(0x8d8, PIN_OUTPUT_PULLUP | MUX_MODE0)
303 0x0DC (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS DATA 15 */ 303 AM4372_IOPAD(0x8dc, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS DATA 15 */
304 0x0E0 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS VSYNC */ 304 AM4372_IOPAD(0x8e0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS VSYNC */
305 0x0E4 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS HSYNC */ 305 AM4372_IOPAD(0x8e4, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS HSYNC */
306 0x0E8 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS PCLK */ 306 AM4372_IOPAD(0x8e8, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS PCLK */
307 0x0EC (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS AC BIAS EN */ 307 AM4372_IOPAD(0x8ec, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS AC BIAS EN */
308 >; 308 >;
309 }; 309 };
310 310
311 display_mux_pins: display_mux_pins { 311 display_mux_pins: display_mux_pins {
312 pinctrl-single,pins = < 312 pinctrl-single,pins = <
313 /* GPMC CLK -> GPIO 2_1 to select LCD / HDMI */ 313 /* GPMC CLK -> GPIO 2_1 to select LCD / HDMI */
314 0x08C (PIN_OUTPUT_PULLUP | MUX_MODE7) 314 AM4372_IOPAD(0x88C, PIN_OUTPUT_PULLUP | MUX_MODE7)
315 >; 315 >;
316 }; 316 };
317 317
318 vpfe1_pins_default: vpfe1_pins_default { 318 vpfe1_pins_default: vpfe1_pins_default {
319 pinctrl-single,pins = < 319 pinctrl-single,pins = <
320 0x1cc (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data9 mode 0 */ 320 AM4372_IOPAD(0x9cc, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data9 mode 0 */
321 0x1d0 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data8 mode 0 */ 321 AM4372_IOPAD(0x9d0, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data8 mode 0 */
322 0x1d4 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_hd mode 0 */ 322 AM4372_IOPAD(0x9d4, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_hd mode 0 */
323 0x1d8 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_vd mode 0 */ 323 AM4372_IOPAD(0x9d8, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_vd mode 0 */
324 0x1dc (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_pclk mode 0 */ 324 AM4372_IOPAD(0x9dc, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_pclk mode 0 */
325 0x1e8 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data0 mode 0 */ 325 AM4372_IOPAD(0x9e8, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data0 mode 0 */
326 0x1ec (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data1 mode 0 */ 326 AM4372_IOPAD(0x9ec, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data1 mode 0 */
327 0x1f0 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data2 mode 0 */ 327 AM4372_IOPAD(0x9f0, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data2 mode 0 */
328 0x1f4 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data3 mode 0 */ 328 AM4372_IOPAD(0x9f4, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data3 mode 0 */
329 0x1f8 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data4 mode 0 */ 329 AM4372_IOPAD(0x9f8, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data4 mode 0 */
330 0x1fc (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data5 mode 0 */ 330 AM4372_IOPAD(0x9fc, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data5 mode 0 */
331 0x200 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data6 mode 0 */ 331 AM4372_IOPAD(0xa00, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data6 mode 0 */
332 0x204 (PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data7 mode 0 */ 332 AM4372_IOPAD(0xa04, PIN_INPUT_PULLUP | MUX_MODE0) /* cam1_data7 mode 0 */
333 >; 333 >;
334 }; 334 };
335 335
336 vpfe1_pins_sleep: vpfe1_pins_sleep { 336 vpfe1_pins_sleep: vpfe1_pins_sleep {
337 pinctrl-single,pins = < 337 pinctrl-single,pins = <
338 0x1cc (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 338 AM4372_IOPAD(0x9cc, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
339 0x1d0 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 339 AM4372_IOPAD(0x9d0, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
340 0x1d4 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 340 AM4372_IOPAD(0x9d4, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
341 0x1d8 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 341 AM4372_IOPAD(0x9d8, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
342 0x1dc (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 342 AM4372_IOPAD(0x9dc, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
343 0x1e8 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 343 AM4372_IOPAD(0x9e8, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
344 0x1ec (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 344 AM4372_IOPAD(0x9ec, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
345 0x1f0 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 345 AM4372_IOPAD(0x9f0, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
346 0x1f4 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 346 AM4372_IOPAD(0x9f4, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
347 0x1f8 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 347 AM4372_IOPAD(0x9f8, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
348 0x1fc (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 348 AM4372_IOPAD(0x9fc, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
349 0x200 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 349 AM4372_IOPAD(0xa00, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
350 0x204 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 350 AM4372_IOPAD(0xa04, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
351 >; 351 >;
352 }; 352 };
353 353
354 mcasp1_pins: mcasp1_pins { 354 mcasp1_pins: mcasp1_pins {
355 pinctrl-single,pins = < 355 pinctrl-single,pins = <
356 0x1a0 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* MCASP0_ACLKR/MCASP1_ACLKX */ 356 AM4372_IOPAD(0x9a0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* MCASP0_ACLKR/MCASP1_ACLKX */
357 0x1a4 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* MCASP0_FSR/MCASP1_FSX */ 357 AM4372_IOPAD(0x9a4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* MCASP0_FSR/MCASP1_FSX */
358 0x1a8 (PIN_OUTPUT_PULLDOWN | MUX_MODE3)/* MCASP0_AXR1/MCASP1_AXR0 */ 358 AM4372_IOPAD(0x9a8, PIN_OUTPUT_PULLDOWN | MUX_MODE3)/* MCASP0_AXR1/MCASP1_AXR0 */
359 0x1ac (PIN_INPUT_PULLDOWN | MUX_MODE3) /* MCASP0_AHCLKX/MCASP1_AXR1 */ 359 AM4372_IOPAD(0x9ac, PIN_INPUT_PULLDOWN | MUX_MODE3) /* MCASP0_AHCLKX/MCASP1_AXR1 */
360 >; 360 >;
361 }; 361 };
362 362
363 mcasp1_sleep_pins: mcasp1_sleep_pins { 363 mcasp1_sleep_pins: mcasp1_sleep_pins {
364 pinctrl-single,pins = < 364 pinctrl-single,pins = <
365 0x1a0 (PIN_INPUT_PULLDOWN | MUX_MODE7) 365 AM4372_IOPAD(0x9a0, PIN_INPUT_PULLDOWN | MUX_MODE7)
366 0x1a4 (PIN_INPUT_PULLDOWN | MUX_MODE7) 366 AM4372_IOPAD(0x9a4, PIN_INPUT_PULLDOWN | MUX_MODE7)
367 0x1a8 (PIN_INPUT_PULLDOWN | MUX_MODE7) 367 AM4372_IOPAD(0x9a8, PIN_INPUT_PULLDOWN | MUX_MODE7)
368 0x1ac (PIN_INPUT_PULLDOWN | MUX_MODE7) 368 AM4372_IOPAD(0x9ac, PIN_INPUT_PULLDOWN | MUX_MODE7)
369 >; 369 >;
370 }; 370 };
371}; 371};
diff --git a/arch/arm/boot/dts/am57xx-beagle-x15.dts b/arch/arm/boot/dts/am57xx-beagle-x15.dts
index 00352e761b8c..36c0fa6c362a 100644
--- a/arch/arm/boot/dts/am57xx-beagle-x15.dts
+++ b/arch/arm/boot/dts/am57xx-beagle-x15.dts
@@ -181,97 +181,97 @@
181&dra7_pmx_core { 181&dra7_pmx_core {
182 leds_pins_default: leds_pins_default { 182 leds_pins_default: leds_pins_default {
183 pinctrl-single,pins = < 183 pinctrl-single,pins = <
184 0x3a8 (PIN_OUTPUT | MUX_MODE14) /* spi1_d1.gpio7_8 */ 184 DRA7XX_CORE_IOPAD(0x37a8, PIN_OUTPUT | MUX_MODE14) /* spi1_d1.gpio7_8 */
185 0x3ac (PIN_OUTPUT | MUX_MODE14) /* spi1_d0.gpio7_9 */ 185 DRA7XX_CORE_IOPAD(0x37ac, PIN_OUTPUT | MUX_MODE14) /* spi1_d0.gpio7_9 */
186 0x3c0 (PIN_OUTPUT | MUX_MODE14) /* spi2_sclk.gpio7_14 */ 186 DRA7XX_CORE_IOPAD(0x37c0, PIN_OUTPUT | MUX_MODE14) /* spi2_sclk.gpio7_14 */
187 0x3c4 (PIN_OUTPUT | MUX_MODE14) /* spi2_d1.gpio7_15 */ 187 DRA7XX_CORE_IOPAD(0x37c4, PIN_OUTPUT | MUX_MODE14) /* spi2_d1.gpio7_15 */
188 >; 188 >;
189 }; 189 };
190 190
191 i2c1_pins_default: i2c1_pins_default { 191 i2c1_pins_default: i2c1_pins_default {
192 pinctrl-single,pins = < 192 pinctrl-single,pins = <
193 0x400 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda.sda */ 193 DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda.sda */
194 0x404 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl.scl */ 194 DRA7XX_CORE_IOPAD(0x3804, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl.scl */
195 >; 195 >;
196 }; 196 };
197 197
198 hdmi_pins: pinmux_hdmi_pins { 198 hdmi_pins: pinmux_hdmi_pins {
199 pinctrl-single,pins = < 199 pinctrl-single,pins = <
200 0x408 (PIN_INPUT | MUX_MODE1) /* i2c2_sda.hdmi1_ddc_scl */ 200 DRA7XX_CORE_IOPAD(0x3808, PIN_INPUT | MUX_MODE1) /* i2c2_sda.hdmi1_ddc_scl */
201 0x40c (PIN_INPUT | MUX_MODE1) /* i2c2_scl.hdmi1_ddc_sda */ 201 DRA7XX_CORE_IOPAD(0x380c, PIN_INPUT | MUX_MODE1) /* i2c2_scl.hdmi1_ddc_sda */
202 >; 202 >;
203 }; 203 };
204 204
205 i2c3_pins_default: i2c3_pins_default { 205 i2c3_pins_default: i2c3_pins_default {
206 pinctrl-single,pins = < 206 pinctrl-single,pins = <
207 0x2a4 (PIN_INPUT| MUX_MODE10) /* mcasp1_aclkx.i2c3_sda */ 207 DRA7XX_CORE_IOPAD(0x36a4, PIN_INPUT| MUX_MODE10) /* mcasp1_aclkx.i2c3_sda */
208 0x2a8 (PIN_INPUT| MUX_MODE10) /* mcasp1_fsx.i2c3_scl */ 208 DRA7XX_CORE_IOPAD(0x36a8, PIN_INPUT| MUX_MODE10) /* mcasp1_fsx.i2c3_scl */
209 >; 209 >;
210 }; 210 };
211 211
212 uart3_pins_default: uart3_pins_default { 212 uart3_pins_default: uart3_pins_default {
213 pinctrl-single,pins = < 213 pinctrl-single,pins = <
214 0x3f8 (PIN_INPUT_SLEW | MUX_MODE2) /* uart2_ctsn.uart3_rxd */ 214 DRA7XX_CORE_IOPAD(0x37f8, PIN_INPUT_SLEW | MUX_MODE2) /* uart2_ctsn.uart3_rxd */
215 0x3fc (PIN_INPUT_SLEW | MUX_MODE1) /* uart2_rtsn.uart3_txd */ 215 DRA7XX_CORE_IOPAD(0x37fc, PIN_INPUT_SLEW | MUX_MODE1) /* uart2_rtsn.uart3_txd */
216 >; 216 >;
217 }; 217 };
218 218
219 mmc1_pins_default: mmc1_pins_default { 219 mmc1_pins_default: mmc1_pins_default {
220 pinctrl-single,pins = < 220 pinctrl-single,pins = <
221 0x36c (PIN_INPUT | MUX_MODE14) /* mmc1sdcd.gpio219 */ 221 DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14) /* mmc1sdcd.gpio219 */
222 0x354 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */ 222 DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
223 0x358 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */ 223 DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
224 0x35c (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */ 224 DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
225 0x360 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */ 225 DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
226 0x364 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */ 226 DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
227 0x368 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */ 227 DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
228 >; 228 >;
229 }; 229 };
230 230
231 mmc2_pins_default: mmc2_pins_default { 231 mmc2_pins_default: mmc2_pins_default {
232 pinctrl-single,pins = < 232 pinctrl-single,pins = <
233 0x9c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */ 233 DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
234 0xb0 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */ 234 DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
235 0xa0 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */ 235 DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
236 0xa4 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */ 236 DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
237 0xa8 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */ 237 DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
238 0xac (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */ 238 DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
239 0x8c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */ 239 DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
240 0x90 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */ 240 DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
241 0x94 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */ 241 DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
242 0x98 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */ 242 DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
243 >; 243 >;
244 }; 244 };
245 245
246 cpsw_pins_default: cpsw_pins_default { 246 cpsw_pins_default: cpsw_pins_default {
247 pinctrl-single,pins = < 247 pinctrl-single,pins = <
248 /* Slave 1 */ 248 /* Slave 1 */
249 0x250 (PIN_OUTPUT | MUX_MODE0) /* rgmii1_tclk */ 249 DRA7XX_CORE_IOPAD(0x3650, PIN_OUTPUT | MUX_MODE0) /* rgmii1_tclk */
250 0x254 (PIN_OUTPUT | MUX_MODE0) /* rgmii1_tctl */ 250 DRA7XX_CORE_IOPAD(0x3654, PIN_OUTPUT | MUX_MODE0) /* rgmii1_tctl */
251 0x258 (PIN_OUTPUT | MUX_MODE0) /* rgmii1_td3 */ 251 DRA7XX_CORE_IOPAD(0x3658, PIN_OUTPUT | MUX_MODE0) /* rgmii1_td3 */
252 0x25c (PIN_OUTPUT | MUX_MODE0) /* rgmii1_td2 */ 252 DRA7XX_CORE_IOPAD(0x365c, PIN_OUTPUT | MUX_MODE0) /* rgmii1_td2 */
253 0x260 (PIN_OUTPUT | MUX_MODE0) /* rgmii1_td1 */ 253 DRA7XX_CORE_IOPAD(0x3660, PIN_OUTPUT | MUX_MODE0) /* rgmii1_td1 */
254 0x264 (PIN_OUTPUT | MUX_MODE0) /* rgmii1_td0 */ 254 DRA7XX_CORE_IOPAD(0x3664, PIN_OUTPUT | MUX_MODE0) /* rgmii1_td0 */
255 0x268 (PIN_INPUT | MUX_MODE0) /* rgmii1_rclk */ 255 DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT | MUX_MODE0) /* rgmii1_rclk */
256 0x26c (PIN_INPUT | MUX_MODE0) /* rgmii1_rctl */ 256 DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT | MUX_MODE0) /* rgmii1_rctl */
257 0x270 (PIN_INPUT | MUX_MODE0) /* rgmii1_rd3 */ 257 DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT | MUX_MODE0) /* rgmii1_rd3 */
258 0x274 (PIN_INPUT | MUX_MODE0) /* rgmii1_rd2 */ 258 DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT | MUX_MODE0) /* rgmii1_rd2 */
259 0x278 (PIN_INPUT | MUX_MODE0) /* rgmii1_rd1 */ 259 DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT | MUX_MODE0) /* rgmii1_rd1 */
260 0x27c (PIN_INPUT | MUX_MODE0) /* rgmii1_rd0 */ 260 DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT | MUX_MODE0) /* rgmii1_rd0 */
261 261
262 /* Slave 2 */ 262 /* Slave 2 */
263 0x198 (PIN_OUTPUT | MUX_MODE3) /* rgmii2_tclk */ 263 DRA7XX_CORE_IOPAD(0x3598, PIN_OUTPUT | MUX_MODE3) /* rgmii2_tclk */
264 0x19c (PIN_OUTPUT | MUX_MODE3) /* rgmii2_tctl */ 264 DRA7XX_CORE_IOPAD(0x359c, PIN_OUTPUT | MUX_MODE3) /* rgmii2_tctl */
265 0x1a0 (PIN_OUTPUT | MUX_MODE3) /* rgmii2_td3 */ 265 DRA7XX_CORE_IOPAD(0x35a0, PIN_OUTPUT | MUX_MODE3) /* rgmii2_td3 */
266 0x1a4 (PIN_OUTPUT | MUX_MODE3) /* rgmii2_td2 */ 266 DRA7XX_CORE_IOPAD(0x35a4, PIN_OUTPUT | MUX_MODE3) /* rgmii2_td2 */
267 0x1a8 (PIN_OUTPUT | MUX_MODE3) /* rgmii2_td1 */ 267 DRA7XX_CORE_IOPAD(0x35a8, PIN_OUTPUT | MUX_MODE3) /* rgmii2_td1 */
268 0x1ac (PIN_OUTPUT | MUX_MODE3) /* rgmii2_td0 */ 268 DRA7XX_CORE_IOPAD(0x35ac, PIN_OUTPUT | MUX_MODE3) /* rgmii2_td0 */
269 0x1b0 (PIN_INPUT | MUX_MODE3) /* rgmii2_rclk */ 269 DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE3) /* rgmii2_rclk */
270 0x1b4 (PIN_INPUT | MUX_MODE3) /* rgmii2_rctl */ 270 DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE3) /* rgmii2_rctl */
271 0x1b8 (PIN_INPUT | MUX_MODE3) /* rgmii2_rd3 */ 271 DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE3) /* rgmii2_rd3 */
272 0x1bc (PIN_INPUT | MUX_MODE3) /* rgmii2_rd2 */ 272 DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE3) /* rgmii2_rd2 */
273 0x1c0 (PIN_INPUT | MUX_MODE3) /* rgmii2_rd1 */ 273 DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE3) /* rgmii2_rd1 */
274 0x1c4 (PIN_INPUT | MUX_MODE3) /* rgmii2_rd0 */ 274 DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE3) /* rgmii2_rd0 */
275 >; 275 >;
276 276
277 }; 277 };
@@ -279,115 +279,115 @@
279 cpsw_pins_sleep: cpsw_pins_sleep { 279 cpsw_pins_sleep: cpsw_pins_sleep {
280 pinctrl-single,pins = < 280 pinctrl-single,pins = <
281 /* Slave 1 */ 281 /* Slave 1 */
282 0x250 (PIN_INPUT | MUX_MODE15) 282 DRA7XX_CORE_IOPAD(0x3650, PIN_INPUT | MUX_MODE15)
283 0x254 (PIN_INPUT | MUX_MODE15) 283 DRA7XX_CORE_IOPAD(0x3654, PIN_INPUT | MUX_MODE15)
284 0x258 (PIN_INPUT | MUX_MODE15) 284 DRA7XX_CORE_IOPAD(0x3658, PIN_INPUT | MUX_MODE15)
285 0x25c (PIN_INPUT | MUX_MODE15) 285 DRA7XX_CORE_IOPAD(0x365c, PIN_INPUT | MUX_MODE15)
286 0x260 (PIN_INPUT | MUX_MODE15) 286 DRA7XX_CORE_IOPAD(0x3660, PIN_INPUT | MUX_MODE15)
287 0x264 (PIN_INPUT | MUX_MODE15) 287 DRA7XX_CORE_IOPAD(0x3664, PIN_INPUT | MUX_MODE15)
288 0x268 (PIN_INPUT | MUX_MODE15) 288 DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT | MUX_MODE15)
289 0x26c (PIN_INPUT | MUX_MODE15) 289 DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT | MUX_MODE15)
290 0x270 (PIN_INPUT | MUX_MODE15) 290 DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT | MUX_MODE15)
291 0x274 (PIN_INPUT | MUX_MODE15) 291 DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT | MUX_MODE15)
292 0x278 (PIN_INPUT | MUX_MODE15) 292 DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT | MUX_MODE15)
293 0x27c (PIN_INPUT | MUX_MODE15) 293 DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT | MUX_MODE15)
294 294
295 /* Slave 2 */ 295 /* Slave 2 */
296 0x198 (PIN_INPUT | MUX_MODE15) 296 DRA7XX_CORE_IOPAD(0x3598, PIN_INPUT | MUX_MODE15)
297 0x19c (PIN_INPUT | MUX_MODE15) 297 DRA7XX_CORE_IOPAD(0x359c, PIN_INPUT | MUX_MODE15)
298 0x1a0 (PIN_INPUT | MUX_MODE15) 298 DRA7XX_CORE_IOPAD(0x35a0, PIN_INPUT | MUX_MODE15)
299 0x1a4 (PIN_INPUT | MUX_MODE15) 299 DRA7XX_CORE_IOPAD(0x35a4, PIN_INPUT | MUX_MODE15)
300 0x1a8 (PIN_INPUT | MUX_MODE15) 300 DRA7XX_CORE_IOPAD(0x35a8, PIN_INPUT | MUX_MODE15)
301 0x1ac (PIN_INPUT | MUX_MODE15) 301 DRA7XX_CORE_IOPAD(0x35ac, PIN_INPUT | MUX_MODE15)
302 0x1b0 (PIN_INPUT | MUX_MODE15) 302 DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE15)
303 0x1b4 (PIN_INPUT | MUX_MODE15) 303 DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE15)
304 0x1b8 (PIN_INPUT | MUX_MODE15) 304 DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE15)
305 0x1bc (PIN_INPUT | MUX_MODE15) 305 DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE15)
306 0x1c0 (PIN_INPUT | MUX_MODE15) 306 DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE15)
307 0x1c4 (PIN_INPUT | MUX_MODE15) 307 DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE15)
308 >; 308 >;
309 }; 309 };
310 310
311 davinci_mdio_pins_default: davinci_mdio_pins_default { 311 davinci_mdio_pins_default: davinci_mdio_pins_default {
312 pinctrl-single,pins = < 312 pinctrl-single,pins = <
313 /* MDIO */ 313 /* MDIO */
314 0x23c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_mclk */ 314 DRA7XX_CORE_IOPAD(0x363c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_mclk */
315 0x240 (PIN_INPUT_PULLUP | MUX_MODE0) /* mdio_d */ 315 DRA7XX_CORE_IOPAD(0x3640, PIN_INPUT_PULLUP | MUX_MODE0) /* mdio_d */
316 >; 316 >;
317 }; 317 };
318 318
319 davinci_mdio_pins_sleep: davinci_mdio_pins_sleep { 319 davinci_mdio_pins_sleep: davinci_mdio_pins_sleep {
320 pinctrl-single,pins = < 320 pinctrl-single,pins = <
321 0x23c (PIN_INPUT | MUX_MODE15) 321 DRA7XX_CORE_IOPAD(0x363c, PIN_INPUT | MUX_MODE15)
322 0x240 (PIN_INPUT | MUX_MODE15) 322 DRA7XX_CORE_IOPAD(0x3640, PIN_INPUT | MUX_MODE15)
323 >; 323 >;
324 }; 324 };
325 325
326 tps659038_pins_default: tps659038_pins_default { 326 tps659038_pins_default: tps659038_pins_default {
327 pinctrl-single,pins = < 327 pinctrl-single,pins = <
328 0x418 (PIN_INPUT_PULLUP | MUX_MODE14) /* wakeup0.gpio1_0 */ 328 DRA7XX_CORE_IOPAD(0x3818, PIN_INPUT_PULLUP | MUX_MODE14) /* wakeup0.gpio1_0 */
329 >; 329 >;
330 }; 330 };
331 331
332 tmp102_pins_default: tmp102_pins_default { 332 tmp102_pins_default: tmp102_pins_default {
333 pinctrl-single,pins = < 333 pinctrl-single,pins = <
334 0x3C8 (PIN_INPUT_PULLUP | MUX_MODE14) /* spi2_d0.gpio7_16 */ 334 DRA7XX_CORE_IOPAD(0x37c8, PIN_INPUT_PULLUP | MUX_MODE14) /* spi2_d0.gpio7_16 */
335 >; 335 >;
336 }; 336 };
337 337
338 mcp79410_pins_default: mcp79410_pins_default { 338 mcp79410_pins_default: mcp79410_pins_default {
339 pinctrl-single,pins = < 339 pinctrl-single,pins = <
340 0x424 (PIN_INPUT_PULLUP | MUX_MODE1) /* wakeup3.sys_nirq1 */ 340 DRA7XX_CORE_IOPAD(0x3824, PIN_INPUT_PULLUP | MUX_MODE1) /* wakeup3.sys_nirq1 */
341 >; 341 >;
342 }; 342 };
343 343
344 usb1_pins: pinmux_usb1_pins { 344 usb1_pins: pinmux_usb1_pins {
345 pinctrl-single,pins = < 345 pinctrl-single,pins = <
346 0x280 (PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */ 346 DRA7XX_CORE_IOPAD(0x3680, PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */
347 >; 347 >;
348 }; 348 };
349 349
350 extcon_usb1_pins: extcon_usb1_pins { 350 extcon_usb1_pins: extcon_usb1_pins {
351 pinctrl-single,pins = < 351 pinctrl-single,pins = <
352 0x3ec (PIN_INPUT_PULLUP | MUX_MODE14) /* uart1_rtsn.gpio7_25 */ 352 DRA7XX_CORE_IOPAD(0x37ec, PIN_INPUT_PULLUP | MUX_MODE14) /* uart1_rtsn.gpio7_25 */
353 >; 353 >;
354 }; 354 };
355 355
356 tpd12s015_pins: pinmux_tpd12s015_pins { 356 tpd12s015_pins: pinmux_tpd12s015_pins {
357 pinctrl-single,pins = < 357 pinctrl-single,pins = <
358 0x3b0 (PIN_OUTPUT | MUX_MODE14) /* gpio7_10 CT_CP_HPD */ 358 DRA7XX_CORE_IOPAD(0x37b0, PIN_OUTPUT | MUX_MODE14) /* gpio7_10 CT_CP_HPD */
359 0x3b8 (PIN_INPUT_PULLDOWN | MUX_MODE14) /* gpio7_12 HPD */ 359 DRA7XX_CORE_IOPAD(0x37b8, PIN_INPUT_PULLDOWN | MUX_MODE14) /* gpio7_12 HPD */
360 0x370 (PIN_OUTPUT | MUX_MODE14) /* gpio6_28 LS_OE */ 360 DRA7XX_CORE_IOPAD(0x3770, PIN_OUTPUT | MUX_MODE14) /* gpio6_28 LS_OE */
361 >; 361 >;
362 }; 362 };
363 363
364 clkout2_pins_default: clkout2_pins_default { 364 clkout2_pins_default: clkout2_pins_default {
365 pinctrl-single,pins = < 365 pinctrl-single,pins = <
366 0x294 (PIN_OUTPUT_PULLDOWN | MUX_MODE9) /* xref_clk0.clkout2 */ 366 DRA7XX_CORE_IOPAD(0x3694, PIN_OUTPUT_PULLDOWN | MUX_MODE9) /* xref_clk0.clkout2 */
367 >; 367 >;
368 }; 368 };
369 369
370 clkout2_pins_sleep: clkout2_pins_sleep { 370 clkout2_pins_sleep: clkout2_pins_sleep {
371 pinctrl-single,pins = < 371 pinctrl-single,pins = <
372 0x294 (PIN_INPUT | MUX_MODE15) /* xref_clk0.clkout2 */ 372 DRA7XX_CORE_IOPAD(0x3694, PIN_INPUT | MUX_MODE15) /* xref_clk0.clkout2 */
373 >; 373 >;
374 }; 374 };
375 375
376 mcasp3_pins_default: mcasp3_pins_default { 376 mcasp3_pins_default: mcasp3_pins_default {
377 pinctrl-single,pins = < 377 pinctrl-single,pins = <
378 0x324 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_aclkx.mcasp3_aclkx */ 378 DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_aclkx.mcasp3_aclkx */
379 0x328 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_fsx.mcasp3_fsx */ 379 DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_fsx.mcasp3_fsx */
380 0x32c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr0.mcasp3_axr0 */ 380 DRA7XX_CORE_IOPAD(0x372c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr0.mcasp3_axr0 */
381 0x330 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr1.mcasp3_axr1 */ 381 DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr1.mcasp3_axr1 */
382 >; 382 >;
383 }; 383 };
384 384
385 mcasp3_pins_sleep: mcasp3_pins_sleep { 385 mcasp3_pins_sleep: mcasp3_pins_sleep {
386 pinctrl-single,pins = < 386 pinctrl-single,pins = <
387 0x324 (PIN_INPUT | MUX_MODE15) 387 DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT | MUX_MODE15)
388 0x328 (PIN_INPUT | MUX_MODE15) 388 DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT | MUX_MODE15)
389 0x32c (PIN_INPUT | MUX_MODE15) 389 DRA7XX_CORE_IOPAD(0x372c, PIN_INPUT | MUX_MODE15)
390 0x330 (PIN_INPUT | MUX_MODE15) 390 DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT | MUX_MODE15)
391 >; 391 >;
392 }; 392 };
393}; 393};
diff --git a/arch/arm/boot/dts/am57xx-cl-som-am57x.dts b/arch/arm/boot/dts/am57xx-cl-som-am57x.dts
new file mode 100644
index 000000000000..c53882643ae9
--- /dev/null
+++ b/arch/arm/boot/dts/am57xx-cl-som-am57x.dts
@@ -0,0 +1,617 @@
1/*
2 * Support for CompuLab CL-SOM-AM57x System-on-Module
3 *
4 * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/
5 * Author: Dmitry Lifshitz <lifshitz@compulab.co.il>
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation.
10 */
11
12/dts-v1/;
13
14#include <dt-bindings/gpio/gpio.h>
15#include <dt-bindings/interrupt-controller/irq.h>
16#include "dra74x.dtsi"
17
18/ {
19 model = "CompuLab CL-SOM-AM57x";
20 compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
21
22 memory {
23 device_type = "memory";
24 reg = <0x80000000 0x20000000>; /* 512 MB - minimal configuration */
25 };
26
27 leds {
28 compatible = "gpio-leds";
29 pinctrl-names = "default";
30 pinctrl-0 = <&leds_pins_default>;
31
32 led@0 {
33 label = "cl-som-am57x:green";
34 gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
35 linux,default-trigger = "heartbeat";
36 default-state = "off";
37 };
38 };
39
40 vdd_3v3: fixedregulator-vdd_3v3 {
41 compatible = "regulator-fixed";
42 regulator-name = "vdd_3v3";
43 regulator-min-microvolt = <3300000>;
44 regulator-max-microvolt = <3300000>;
45 };
46
47 ads7846reg: fixedregulator-ads7846-reg {
48 compatible = "regulator-fixed";
49 regulator-name = "ads7846-reg";
50 regulator-min-microvolt = <3300000>;
51 regulator-max-microvolt = <3300000>;
52 };
53
54 sound0: sound@0 {
55 compatible = "simple-audio-card";
56 simple-audio-card,name = "CL-SOM-AM57x-Sound-Card";
57 simple-audio-card,format = "i2s";
58 simple-audio-card,bitclock-master = <&dailink0_master>;
59 simple-audio-card,frame-master = <&dailink0_master>;
60 simple-audio-card,widgets =
61 "Headphone", "Headphone Jack",
62 "Microphone", "Microphone Jack",
63 "Line", "Line Jack";
64 simple-audio-card,routing =
65 "Headphone Jack", "RHPOUT",
66 "Headphone Jack", "LHPOUT",
67 "LLINEIN", "Line Jack",
68 "MICIN", "Mic Bias",
69 "Mic Bias", "Microphone Jack";
70
71 dailink0_master: simple-audio-card,cpu {
72 sound-dai = <&mcasp3>;
73 };
74
75 simple-audio-card,codec {
76 sound-dai = <&wm8731>;
77 system-clock-frequency = <12000000>;
78 };
79 };
80};
81
82&dra7_pmx_core {
83 leds_pins_default: leds_pins_default {
84 pinctrl-single,pins = <
85 DRA7XX_CORE_IOPAD(0x347c, PIN_OUTPUT | MUX_MODE14) /* gpmc_a15.gpio2_5 */
86 >;
87 };
88
89 i2c1_pins_default: i2c1_pins_default {
90 pinctrl-single,pins = <
91 DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda.sda */
92 DRA7XX_CORE_IOPAD(0x3804, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl.scl */
93 >;
94 };
95
96 i2c3_pins_default: i2c3_pins_default {
97 pinctrl-single,pins = <
98 DRA7XX_CORE_IOPAD(0x36a4, PIN_INPUT| MUX_MODE10) /* mcasp1_aclkx.i2c3_sda */
99 DRA7XX_CORE_IOPAD(0x36a8, PIN_INPUT| MUX_MODE10) /* mcasp1_fsx.i2c3_scl */
100 >;
101 };
102
103 i2c4_pins_default: i2c4_pins_default {
104 pinctrl-single,pins = <
105 DRA7XX_CORE_IOPAD(0x36ac, PIN_INPUT| MUX_MODE10) /* mcasp1_acl.i2c4_sda */
106 DRA7XX_CORE_IOPAD(0x36b0, PIN_INPUT| MUX_MODE10) /* mcasp1_fsr.i2c4_scl */
107 >;
108 };
109
110 tps659038_pins_default: tps659038_pins_default {
111 pinctrl-single,pins = <
112 DRA7XX_CORE_IOPAD(0x3818, PIN_INPUT_PULLUP | MUX_MODE14) /* wakeup0.gpio1_0 */
113 >;
114 };
115
116 mmc2_pins_default: mmc2_pins_default {
117 pinctrl-single,pins = <
118 DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
119 DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
120 DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
121 DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
122 DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
123 DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
124 DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
125 DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
126 DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
127 DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
128 >;
129 };
130
131 qspi1_pins: pinmux_qspi1_pins {
132 pinctrl-single,pins = <
133 DRA7XX_CORE_IOPAD(0x3474, PIN_INPUT | MUX_MODE1) /* gpmc_a13.qspi1_rtclk */
134 DRA7XX_CORE_IOPAD(0x3480, PIN_INPUT | MUX_MODE1) /* gpmc_a16.qspi1_d0 */
135 DRA7XX_CORE_IOPAD(0x3484, PIN_INPUT | MUX_MODE1) /* gpmc_a17.qspi1_d1 */
136 DRA7XX_CORE_IOPAD(0x3488, PIN_INPUT | MUX_MODE1) /* qpmc_a18.qspi1_sclk */
137 DRA7XX_CORE_IOPAD(0x34b8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs2.qspi1_cs0 */
138 DRA7XX_CORE_IOPAD(0x34bc, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs3.qspi1_cs1 */
139 >;
140 };
141
142 cpsw_pins_default: cpsw_pins_default {
143 pinctrl-single,pins = <
144 /* Slave at addr 0x0 */
145 DRA7XX_CORE_IOPAD(0x3650, PIN_OUTPUT | MUX_MODE0) /* rgmii0_tclk */
146 DRA7XX_CORE_IOPAD(0x3654, PIN_OUTPUT | MUX_MODE0) /* rgmii0_tctl */
147 DRA7XX_CORE_IOPAD(0x3658, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td3 */
148 DRA7XX_CORE_IOPAD(0x365c, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td2 */
149 DRA7XX_CORE_IOPAD(0x3660, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td1 */
150 DRA7XX_CORE_IOPAD(0x3664, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td0 */
151 DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rclk */
152 DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rctl */
153 DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd3 */
154 DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd2 */
155 DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd1 */
156 DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd0 */
157
158 /* Slave at addr 0x1 */
159 DRA7XX_CORE_IOPAD(0x3598, PIN_OUTPUT | MUX_MODE3) /* vin2a_d12.rgmii1_tclk */
160 DRA7XX_CORE_IOPAD(0x359c, PIN_OUTPUT | MUX_MODE3) /* vin2a_d13.rgmii1_tctl */
161 DRA7XX_CORE_IOPAD(0x35a0, PIN_OUTPUT | MUX_MODE3) /* vin2a_d14.rgmii1_td3 */
162 DRA7XX_CORE_IOPAD(0x35a4, PIN_OUTPUT | MUX_MODE3) /* vin2a_d15.rgmii1_td2 */
163 DRA7XX_CORE_IOPAD(0x35a8, PIN_OUTPUT | MUX_MODE3) /* vin2a_d16.rgmii1_td1 */
164 DRA7XX_CORE_IOPAD(0x35ac, PIN_OUTPUT | MUX_MODE3) /* vin2a_d17.rgmii1_td0 */
165 DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d18.rgmii1_rclk */
166 DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d19.rgmii1_rctl */
167 DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d20.rgmii1_rd3 */
168 DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d21.rgmii1_rd2 */
169 DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d22.rgmii1_rd1 */
170 DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT_PULLUP | MUX_MODE3) /* vin2a_d23.rgmii1_rd0 */
171 >;
172 };
173
174 cpsw_pins_sleep: cpsw_pins_sleep {
175 pinctrl-single,pins = <
176 /* Slave 1 */
177 DRA7XX_CORE_IOPAD(0x3650, PIN_INPUT | MUX_MODE15)
178 DRA7XX_CORE_IOPAD(0x3654, PIN_INPUT | MUX_MODE15)
179 DRA7XX_CORE_IOPAD(0x3658, PIN_INPUT | MUX_MODE15)
180 DRA7XX_CORE_IOPAD(0x365c, PIN_INPUT | MUX_MODE15)
181 DRA7XX_CORE_IOPAD(0x3660, PIN_INPUT | MUX_MODE15)
182 DRA7XX_CORE_IOPAD(0x3664, PIN_INPUT | MUX_MODE15)
183 DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT | MUX_MODE15)
184 DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT | MUX_MODE15)
185 DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT | MUX_MODE15)
186 DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT | MUX_MODE15)
187 DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT | MUX_MODE15)
188 DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT | MUX_MODE15)
189
190 /* Slave 2 */
191 DRA7XX_CORE_IOPAD(0x3598, PIN_INPUT | MUX_MODE15)
192 DRA7XX_CORE_IOPAD(0x359c, PIN_INPUT | MUX_MODE15)
193 DRA7XX_CORE_IOPAD(0x35a0, PIN_INPUT | MUX_MODE15)
194 DRA7XX_CORE_IOPAD(0x35a4, PIN_INPUT | MUX_MODE15)
195 DRA7XX_CORE_IOPAD(0x35a8, PIN_INPUT | MUX_MODE15)
196 DRA7XX_CORE_IOPAD(0x35ac, PIN_INPUT | MUX_MODE15)
197 DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE15)
198 DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE15)
199 DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE15)
200 DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE15)
201 DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE15)
202 DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE15)
203 >;
204 };
205
206 davinci_mdio_pins_default: davinci_mdio_pins_default {
207 pinctrl-single,pins = <
208 /* MDIO */
209 DRA7XX_CORE_IOPAD(0x3590, PIN_OUTPUT_PULLUP | MUX_MODE3)/* vin2a_d10.mdio_mclk */
210 DRA7XX_CORE_IOPAD(0x3594, PIN_INPUT_PULLUP | MUX_MODE3) /* vin2a_d11.mdio_d */
211 >;
212 };
213
214 davinci_mdio_pins_sleep: davinci_mdio_pins_sleep {
215 pinctrl-single,pins = <
216 DRA7XX_CORE_IOPAD(0x3590, PIN_INPUT | MUX_MODE15)
217 DRA7XX_CORE_IOPAD(0x3594, PIN_INPUT | MUX_MODE15)
218 >;
219 };
220
221 ads7846_pins: pinmux_ads7846_pins {
222 pinctrl-single,pins = <
223 DRA7XX_CORE_IOPAD(0x3464, PIN_INPUT_PULLDOWN | MUX_MODE14) /* gpmc_a9.gpio1_31 */
224 >;
225 };
226
227 mcasp3_pins_default: mcasp3_pins_default {
228 pinctrl-single,pins = <
229 DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_aclkx.mcasp3_aclkx */
230 DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_fsx.mcasp3_fsx */
231 DRA7XX_CORE_IOPAD(0x372c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr0.mcasp3_axr0 */
232 DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr1.mcasp3_axr1 */
233 >;
234 };
235
236 mcasp3_pins_sleep: mcasp3_pins_sleep {
237 pinctrl-single,pins = <
238 DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT | MUX_MODE15)
239 DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT | MUX_MODE15)
240 DRA7XX_CORE_IOPAD(0x372c, PIN_INPUT | MUX_MODE15)
241 DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT | MUX_MODE15)
242 >;
243 };
244};
245
246&i2c1 {
247 status = "okay";
248 pinctrl-names = "default";
249 pinctrl-0 = <&i2c1_pins_default>;
250 clock-frequency = <400000>;
251};
252
253&i2c3 {
254 status = "okay";
255 pinctrl-names = "default";
256 pinctrl-0 = <&i2c3_pins_default>;
257 clock-frequency = <400000>;
258};
259
260&i2c4 {
261 status = "okay";
262 pinctrl-names = "default";
263 pinctrl-0 = <&i2c4_pins_default>;
264 clock-frequency = <400000>;
265
266 tps659038: tps659038@58 {
267 compatible = "ti,tps659038";
268 reg = <0x58>;
269 interrupt-parent = <&gpio1>;
270 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
271
272 pinctrl-names = "default";
273 pinctrl-0 = <&tps659038_pins_default>;
274
275 #interrupt-cells = <2>;
276 interrupt-controller;
277
278 ti,system-power-controller;
279
280 tps659038_pmic {
281 compatible = "ti,tps659038-pmic";
282
283 regulators {
284 smps12_reg: smps12 {
285 /* VDD_MPU */
286 regulator-name = "smps12";
287 regulator-min-microvolt = < 850000>;
288 regulator-max-microvolt = <1250000>;
289 regulator-always-on;
290 regulator-boot-on;
291 };
292
293 smps3_reg: smps3 {
294 /* VDD_DDR */
295 regulator-name = "smps3";
296 regulator-min-microvolt = <1500000>;
297 regulator-max-microvolt = <1500000>;
298 regulator-always-on;
299 regulator-boot-on;
300 };
301
302 smps45_reg: smps45 {
303 /* VDD_DSPEVE */
304 regulator-name = "smps45";
305 regulator-min-microvolt = < 850000>;
306 regulator-max-microvolt = <1250000>;
307 regulator-always-on;
308 regulator-boot-on;
309 };
310
311 smps6_reg: smps6 {
312 /* VDD_GPU */
313 regulator-name = "smps6";
314 regulator-min-microvolt = < 850000>;
315 regulator-max-microvolt = <1250000>;
316 regulator-always-on;
317 regulator-boot-on;
318 };
319
320 smps7_reg: smps7 {
321 /* VDD_CORE */
322 regulator-name = "smps7";
323 regulator-min-microvolt = < 850000>;
324 regulator-max-microvolt = <1160000>;
325 regulator-always-on;
326 regulator-boot-on;
327 };
328
329 smps8_reg: smps8 {
330 /* VDD_IVA */
331 regulator-name = "smps8";
332 regulator-min-microvolt = < 850000>;
333 regulator-max-microvolt = <1250000>;
334 regulator-always-on;
335 regulator-boot-on;
336 };
337
338 smps9_reg: smps9 {
339 /* PMIC_3V3 */
340 regulator-name = "smps9";
341 regulator-min-microvolt = <3300000>;
342 regulator-max-microvolt = <3300000>;
343 regulator-always-on;
344 regulator-boot-on;
345 };
346
347
348 ldo1_reg: ldo1 {
349 /* VDD_SD / VDDSHV8 */
350 regulator-name = "ldo1";
351 regulator-min-microvolt = <1800000>;
352 regulator-max-microvolt = <3300000>;
353 regulator-boot-on;
354 regulator-always-on;
355 };
356
357 ldo2_reg: ldo2 {
358 /* VDD_1V8 */
359 regulator-name = "ldo2";
360 regulator-min-microvolt = <1800000>;
361 regulator-max-microvolt = <1800000>;
362 regulator-always-on;
363 regulator-boot-on;
364 };
365
366 ldo3_reg: ldo3 {
367 /* VDDA_1V8_PHYA - supplies VDDA_SATA, VDDA_USB1/2/3 */
368 regulator-name = "ldo3";
369 regulator-min-microvolt = <1800000>;
370 regulator-max-microvolt = <1800000>;
371 regulator-always-on;
372 regulator-boot-on;
373 };
374
375 ldo4_reg: ldo4 {
376 /* VDDA_1V8_PHYB - supplies VDDA_HDMI, VDDA_PCIE/0/1 */
377 regulator-name = "ldo4";
378 regulator-min-microvolt = <1800000>;
379 regulator-max-microvolt = <1800000>;
380 regulator-always-on;
381 regulator-boot-on;
382 };
383
384 ldo9_reg: ldo9 {
385 /* VDD_RTC */
386 regulator-name = "ldo9";
387 regulator-min-microvolt = <1050000>;
388 regulator-max-microvolt = <1050000>;
389 regulator-always-on;
390 regulator-boot-on;
391 };
392
393 ldoln_reg: ldoln {
394 /* VDDA_1V8_PLL */
395 regulator-name = "ldoln";
396 regulator-min-microvolt = <1800000>;
397 regulator-max-microvolt = <1800000>;
398 regulator-always-on;
399 regulator-boot-on;
400 };
401
402 ldousb_reg: ldousb {
403 /* VDDA_3V_USB: VDDA_USBHS33 */
404 regulator-name = "ldousb";
405 regulator-min-microvolt = <3300000>;
406 regulator-max-microvolt = <3300000>;
407 regulator-always-on;
408 regulator-boot-on;
409 };
410
411 /* regen1 not used */
412 };
413 };
414
415 tps659038_pwr_button: tps659038_pwr_button {
416 compatible = "ti,palmas-pwrbutton";
417 interrupt-parent = <&tps659038>;
418 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
419 wakeup-source;
420 ti,palmas-long-press-seconds = <12>;
421 };
422
423 tps659038_gpio: tps659038_gpio {
424 compatible = "ti,palmas-gpio";
425 gpio-controller;
426 #gpio-cells = <2>;
427 };
428 };
429
430 rtc0: rtc@56 {
431 compatible = "emmicro,em3027";
432 reg = <0x56>;
433 };
434
435 eeprom_module: atmel@50 {
436 compatible = "atmel,24c08";
437 reg = <0x50>;
438 pagesize = <16>;
439 };
440
441 wm8731: wm8731@1a {
442 #sound-dai-cells = <0>;
443 compatible = "wlf,wm8731";
444 reg = <0x1a>;
445 status = "okay";
446 };
447};
448
449&cpu0 {
450 cpu0-supply = <&smps12_reg>;
451 voltage-tolerance = <1>;
452};
453
454&sata {
455 status = "okay";
456};
457
458&mailbox5 {
459 status = "okay";
460 mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
461 status = "okay";
462 };
463 mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
464 status = "okay";
465 };
466};
467
468&mailbox6 {
469 status = "okay";
470 mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
471 status = "okay";
472 };
473 mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
474 status = "okay";
475 };
476};
477
478&mmc2 {
479 status = "okay";
480
481 pinctrl-names = "default";
482 pinctrl-0 = <&mmc2_pins_default>;
483
484 vmmc-supply = <&vdd_3v3>;
485 bus-width = <8>;
486 ti,non-removable;
487 cap-mmc-dual-data-rate;
488};
489
490&qspi {
491 status = "okay";
492 pinctrl-names = "default";
493 pinctrl-0 = <&qspi1_pins>;
494
495 spi-max-frequency = <20000000>;
496
497 spi_flash: spi_flash@0 {
498 #address-cells = <1>;
499 #size-cells = <1>;
500 compatible = "spansion,m25p80", "jedec,spi-nor";
501 reg = <0>; /* CS0 */
502 spi-max-frequency = <20000000>;
503
504 partition@0 {
505 label = "uboot";
506 reg = <0x0 0xc0000>;
507 };
508
509 partition@c0000 {
510 label = "uboot environment";
511 reg = <0xc0000 0x40000>;
512 };
513
514 partition@100000 {
515 label = "reserved";
516 reg = <0x100000 0x0>;
517 };
518 };
519
520 /* touch controller */
521 ads7846@0 {
522 pinctrl-names = "default";
523 pinctrl-0 = <&ads7846_pins>;
524
525 compatible = "ti,ads7846";
526 vcc-supply = <&ads7846reg>;
527
528 reg = <1>; /* CS1 */
529 spi-max-frequency = <1500000>;
530
531 interrupt-parent = <&gpio1>;
532 interrupts = <31 0>;
533 pendown-gpio = <&gpio1 31 0>;
534
535
536 ti,x-min = /bits/ 16 <0x0>;
537 ti,x-max = /bits/ 16 <0x0fff>;
538 ti,y-min = /bits/ 16 <0x0>;
539 ti,y-max = /bits/ 16 <0x0fff>;
540
541 ti,x-plate-ohms = /bits/ 16 <180>;
542 ti,pressure-max = /bits/ 16 <255>;
543
544 ti,debounce-max = /bits/ 16 <30>;
545 ti,debounce-tol = /bits/ 16 <10>;
546 ti,debounce-rep = /bits/ 16 <1>;
547
548 linux,wakeup;
549 };
550};
551
552&mac {
553 status = "okay";
554 pinctrl-names = "default", "sleep";
555 pinctrl-0 = <&cpsw_pins_default>;
556 pinctrl-1 = <&cpsw_pins_sleep>;
557 dual_emac;
558};
559
560&cpsw_emac0 {
561 phy_id = <&davinci_mdio>, <0>;
562 phy-mode = "rgmii";
563 dual_emac_res_vlan = <0>;
564};
565
566&cpsw_emac1 {
567 phy_id = <&davinci_mdio>, <1>;
568 phy-mode = "rgmii";
569 dual_emac_res_vlan = <1>;
570};
571
572&davinci_mdio {
573 pinctrl-names = "default", "sleep";
574 pinctrl-0 = <&davinci_mdio_pins_default>;
575 pinctrl-1 = <&davinci_mdio_pins_sleep>;
576};
577
578&usb2_phy1 {
579 phy-supply = <&ldousb_reg>;
580};
581
582&usb2_phy2 {
583 phy-supply = <&ldousb_reg>;
584};
585
586&usb1 {
587 dr_mode = "host";
588};
589
590&usb2 {
591 dr_mode = "peripheral";
592};
593
594&mcasp3 {
595 #sound-dai-cells = <0>;
596 pinctrl-names = "default", "sleep";
597 pinctrl-0 = <&mcasp3_pins_default>;
598 pinctrl-1 = <&mcasp3_pins_sleep>;
599 status = "okay";
600
601 op-mode = <0>; /* MCASP_IIS_MODE */
602 tdm-slots = <2>;
603 /* 4 serializers */
604 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
605 1 2 0 0
606 >;
607};
608
609&gpio3 {
610 status = "okay";
611 ti,no-reset-on-init;
612};
613
614&gpio2 {
615 status = "okay";
616 ti,no-reset-on-init;
617};
diff --git a/arch/arm/boot/dts/am57xx-sbc-am57x.dts b/arch/arm/boot/dts/am57xx-sbc-am57x.dts
new file mode 100644
index 000000000000..77bb8e17401a
--- /dev/null
+++ b/arch/arm/boot/dts/am57xx-sbc-am57x.dts
@@ -0,0 +1,179 @@
1/*
2 * Support for CompuLab SBC-AM57x single board computer
3 *
4 * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/
5 * Author: Dmitry Lifshitz <lifshitz@compulab.co.il>
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation.
10 */
11
12#include "am57xx-cl-som-am57x.dts"
13#include "compulab-sb-som.dtsi"
14
15/ {
16 model = "CompuLab CL-SOM-AM57x on SB-SOM-AM57x";
17 compatible = "compulab,sbc-am57x", "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
18
19 aliases {
20 display0 = &lcd0;
21 display1 = &hdmi;
22 };
23};
24
25&dra7_pmx_core {
26 uart3_pins_default: uart3_pins_default {
27 pinctrl-single,pins = <
28 DRA7XX_CORE_IOPAD(0x37f8, PIN_INPUT_SLEW | MUX_MODE2) /* uart2_ctsn.uart3_rxd */
29 DRA7XX_CORE_IOPAD(0x37fc, PIN_INPUT_SLEW | MUX_MODE1) /* uart2_rtsn.uart3_txd */
30 >;
31 };
32
33 mmc1_pins_default: mmc1_pins_default {
34 pinctrl-single,pins = <
35 DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
36 DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
37 DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
38 DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
39 DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
40 DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
41 DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14) /* mmc1_sdcd.gpio6_27 */
42 DRA7XX_CORE_IOPAD(0x377c, PIN_INPUT | MUX_MODE14) /* mmc1_sdwp.gpio6_28 */
43 >;
44 };
45
46 usb1_pins: pinmux_usb1_pins {
47 pinctrl-single,pins = <
48 DRA7XX_CORE_IOPAD(0x3680, PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */
49 >;
50 };
51
52 i2c5_pins_default: i2c5_pins_default {
53 pinctrl-single,pins = <
54 DRA7XX_CORE_IOPAD(0x36b4, PIN_INPUT| MUX_MODE10) /* mcasp1_axr0.i2c5_sda */
55 DRA7XX_CORE_IOPAD(0x36b8, PIN_INPUT| MUX_MODE10) /* mcasp1_axr1.i2c5_scl */
56 >;
57 };
58
59 lcd_pins_default: lcd_pins_default {
60 pinctrl-single,pins = <
61 DRA7XX_CORE_IOPAD(0x3564, PIN_OUTPUT | MUX_MODE14) /* vin2a_vsync0.gpio4_0 */
62 >;
63 };
64
65 hdmi_pins: pinmux_hdmi_pins {
66 pinctrl-single,pins = <
67 DRA7XX_CORE_IOPAD(0x3808, PIN_INPUT | MUX_MODE1) /* i2c2_sda.hdmi1_ddc_scl */
68 DRA7XX_CORE_IOPAD(0x380c, PIN_INPUT | MUX_MODE1) /* i2c2_scl.hdmi1_ddc_sda */
69 >;
70 };
71
72 hdmi_conn_pins: pinmux_hdmi_conn_pins {
73 pinctrl-single,pins = <
74 DRA7XX_CORE_IOPAD(0x37b8, PIN_INPUT | MUX_MODE14) /* spi1_cs2.gpio7_12 */
75 >;
76 };
77};
78
79&uart3 {
80 status = "okay";
81 interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
82 <&dra7_pmx_core 0x3f8>;
83
84 pinctrl-names = "default";
85 pinctrl-0 = <&uart3_pins_default>;
86};
87
88&mmc1 {
89 status = "okay";
90
91 pinctrl-names = "default";
92 pinctrl-0 = <&mmc1_pins_default>;
93
94 vmmc-supply = <&ldo1_reg>;
95 bus-width = <4>;
96 cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>;
97 wp-gpios = <&gpio6 28 GPIO_ACTIVE_HIGH>;
98};
99
100&usb1 {
101 pinctrl-names = "default";
102 pinctrl-0 = <&usb1_pins>;
103};
104
105&i2c5 {
106 status = "okay";
107 pinctrl-names = "default";
108 pinctrl-0 = <&i2c5_pins_default>;
109 clock-frequency = <400000>;
110
111 eeprom_base: atmel@50 {
112 compatible = "atmel,24c08";
113 reg = <0x50>;
114 pagesize = <16>;
115 };
116
117 pca9555: pca9555@20 {
118 compatible = "nxp,pca9555";
119 reg = <0x20>;
120 gpio-controller;
121 #gpio-cells = <2>;
122 };
123};
124
125&dss {
126 status = "ok";
127
128 vdda_video-supply = <&ldoln_reg>;
129
130 port {
131 dpi_lcd_out: endpoint@0 {
132 remote-endpoint = <&lcd_in>;
133 data-lines = <24>;
134 };
135 };
136};
137
138&lcd0 {
139 pinctrl-names = "default";
140 pinctrl-0 = <&lcd_pins_default>;
141
142 enable-gpios = <&pca9555 14 GPIO_ACTIVE_HIGH
143 &gpio4 0 GPIO_ACTIVE_HIGH>;
144
145 port {
146 lcd_in: endpoint {
147 remote-endpoint = <&dpi_lcd_out>;
148 data-lines = <24>;
149 };
150 };
151};
152
153&hdmi {
154 status = "ok";
155 vdda-supply = <&ldo4_reg>;
156
157 pinctrl-names = "default";
158 pinctrl-0 = <&hdmi_pins>;
159
160 port {
161 hdmi_out: endpoint {
162 remote-endpoint = <&hdmi_connector_in>;
163 lanes = <1 0 3 2 5 4 7 6>;
164 };
165 };
166};
167
168&hdmi_conn {
169 pinctrl-names = "default";
170 pinctrl-0 = <&hdmi_conn_pins>;
171
172 hpd-gpios = <&gpio7 12 GPIO_ACTIVE_HIGH>;
173
174 port {
175 hdmi_connector_in: endpoint {
176 remote-endpoint = <&hdmi_out>;
177 };
178 };
179};
diff --git a/arch/arm/boot/dts/arm-realview-pb11mp.dts b/arch/arm/boot/dts/arm-realview-pb11mp.dts
new file mode 100644
index 000000000000..da755c9851a7
--- /dev/null
+++ b/arch/arm/boot/dts/arm-realview-pb11mp.dts
@@ -0,0 +1,681 @@
1/*
2 * Copyright 2015 Linaro Ltd
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 * THE SOFTWARE.
21 */
22
23/dts-v1/;
24#include <dt-bindings/interrupt-controller/irq.h>
25#include <dt-bindings/gpio/gpio.h>
26#include "skeleton.dtsi"
27
28/ {
29 model = "ARM RealView PB11MPcore";
30 compatible = "arm,realview-pb11mp";
31
32 chosen { };
33
34 aliases {
35 serial0 = &pb11mp_serial0;
36 serial1 = &pb11mp_serial1;
37 serial2 = &pb11mp_serial2;
38 serial3 = &pb11mp_serial3;
39 };
40
41 memory {
42 /*
43 * The PB11MPCore has 512 MiB memory @ 0x70000000
44 * and the first 256 are also remapped @ 0x00000000
45 */
46 reg = <0x70000000 0x20000000>;
47 };
48
49 cpus {
50 #address-cells = <1>;
51 #size-cells = <0>;
52 enable-method = "arm,realview-smp";
53
54 MP11_0: cpu@0 {
55 device_type = "cpu";
56 compatible = "arm,arm11mpcore";
57 reg = <0>;
58 next-level-cache = <&L2>;
59 };
60
61 MP11_1: cpu@1 {
62 device_type = "cpu";
63 compatible = "arm,arm11mpcore";
64 reg = <1>;
65 next-level-cache = <&L2>;
66 };
67
68 MP11_2: cpu@2 {
69 device_type = "cpu";
70 compatible = "arm,arm11mpcore";
71 reg = <2>;
72 next-level-cache = <&L2>;
73 };
74
75 MP11_3: cpu@3 {
76 device_type = "cpu";
77 compatible = "arm,arm11mpcore";
78 reg = <3>;
79 next-level-cache = <&L2>;
80 };
81 };
82
83 /* Primary TestChip GIC synthesized with the CPU */
84 intc_tc11mp: interrupt-controller@1f000100 {
85 compatible = "arm,tc11mp-gic";
86 #interrupt-cells = <3>;
87 #address-cells = <1>;
88 interrupt-controller;
89 reg = <0x1f001000 0x1000>,
90 <0x1f000100 0x100>;
91 };
92
93 L2: l2-cache {
94 compatible = "arm,l220-cache";
95 reg = <0x1f002000 0x1000>;
96 interrupt-parent = <&intc_tc11mp>;
97 interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>,
98 <0 30 IRQ_TYPE_LEVEL_HIGH>,
99 <0 31 IRQ_TYPE_LEVEL_HIGH>;
100 cache-unified;
101 cache-level = <2>;
102 /*
103 * Override default cache size, sets and
104 * associativity as these may be erroneously set
105 * up by boot loader(s), probably for safety
106 * since th outer sync operation can cause the
107 * cache to hang unless disabled.
108 */
109 cache-size = <1048576>; // 1MB
110 cache-sets = <4096>;
111 cache-line-size = <32>;
112 arm,shared-override;
113 arm,parity-enable;
114 arm,outer-sync-disable;
115 };
116
117 scu@1f000000 {
118 compatible = "arm,arm11mp-scu";
119 reg = <0x1f000000 0x100>;
120 };
121
122 timer@1f000600 {
123 compatible = "arm,arm11mp-twd-timer";
124 reg = <0x1f000600 0x20>;
125 interrupt-parent = <&intc_tc11mp>;
126 interrupts = <1 13 0xf04>;
127 };
128
129 watchdog@1f000620 {
130 compatible = "arm,arm11mp-twd-wdt";
131 reg = <0x1f000620 0x20>;
132 interrupt-parent = <&intc_tc11mp>;
133 interrupts = <1 14 0xf04>;
134 };
135
136 /* PMU with one IRQ line per core */
137 pmu {
138 compatible = "arm,arm11mpcore-pmu";
139 interrupt-parent = <&intc_tc11mp>;
140 interrupts = <0 17 IRQ_TYPE_LEVEL_HIGH>,
141 <0 18 IRQ_TYPE_LEVEL_HIGH>,
142 <0 19 IRQ_TYPE_LEVEL_HIGH>,
143 <0 20 IRQ_TYPE_LEVEL_HIGH>;
144 interrupt-affinity = <&MP11_0>, <&MP11_1>, <&MP11_2>, <&MP11_3>;
145 };
146
147 /* The voltage to the MMC card is hardwired at 3.3V */
148 vmmc: fixedregulator@0 {
149 compatible = "regulator-fixed";
150 regulator-name = "vmmc";
151 regulator-min-microvolt = <3300000>;
152 regulator-max-microvolt = <3300000>;
153 regulator-boot-on;
154 };
155
156 veth: fixedregulator@0 {
157 compatible = "regulator-fixed";
158 regulator-name = "veth";
159 regulator-min-microvolt = <3300000>;
160 regulator-max-microvolt = <3300000>;
161 regulator-boot-on;
162 };
163
164 xtal24mhz: xtal24mhz@24M {
165 #clock-cells = <0>;
166 compatible = "fixed-clock";
167 clock-frequency = <24000000>;
168 };
169
170 refclk32khz: refclk32khz {
171 compatible = "fixed-clock";
172 #clock-cells = <0>;
173 clock-frequency = <32768>;
174 };
175
176 timclk: timclk@1M {
177 #clock-cells = <0>;
178 compatible = "fixed-factor-clock";
179 clock-div = <24>;
180 clock-mult = <1>;
181 clocks = <&xtal24mhz>;
182 };
183
184 mclk: mclk@24M {
185 #clock-cells = <0>;
186 compatible = "fixed-factor-clock";
187 clock-div = <1>;
188 clock-mult = <1>;
189 clocks = <&xtal24mhz>;
190 };
191
192 kmiclk: kmiclk@24M {
193 #clock-cells = <0>;
194 compatible = "fixed-factor-clock";
195 clock-div = <1>;
196 clock-mult = <1>;
197 clocks = <&xtal24mhz>;
198 };
199
200 sspclk: sspclk@24M {
201 #clock-cells = <0>;
202 compatible = "fixed-factor-clock";
203 clock-div = <1>;
204 clock-mult = <1>;
205 clocks = <&xtal24mhz>;
206 };
207
208 uartclk: uartclk@24M {
209 #clock-cells = <0>;
210 compatible = "fixed-factor-clock";
211 clock-div = <1>;
212 clock-mult = <1>;
213 clocks = <&xtal24mhz>;
214 };
215
216 wdogclk: wdogclk@24M {
217 #clock-cells = <0>;
218 compatible = "fixed-factor-clock";
219 clock-div = <1>;
220 clock-mult = <1>;
221 clocks = <&xtal24mhz>;
222 };
223
224 /* FIXME: this actually hangs off the PLL clocks */
225 pclk: pclk@0 {
226 #clock-cells = <0>;
227 compatible = "fixed-clock";
228 clock-frequency = <0>;
229 };
230
231 flash0@40000000 {
232 /* 2 * 32MiB NOR Flash memory */
233 compatible = "arm,vexpress-flash", "cfi-flash";
234 reg = <0x40000000 0x04000000>;
235 bank-width = <4>;
236 };
237
238 flash1@44000000 {
239 // 2 * 32MiB NOR Flash memory
240 compatible = "arm,vexpress-flash", "cfi-flash";
241 reg = <0x44000000 0x04000000>;
242 bank-width = <4>;
243 };
244
245 soc {
246 #address-cells = <1>;
247 #size-cells = <1>;
248 compatible = "arm,realview-pb11mp-soc", "simple-bus";
249 regmap = <&pb11mp_syscon>;
250 ranges;
251
252 pb11mp_syscon: syscon@10000000 {
253 compatible = "arm,realview-pb11mp-syscon", "syscon", "simple-mfd";
254 reg = <0x10000000 0x1000>;
255
256 led@08.0 {
257 compatible = "register-bit-led";
258 offset = <0x08>;
259 mask = <0x01>;
260 label = "versatile:0";
261 linux,default-trigger = "heartbeat";
262 default-state = "on";
263 };
264 led@08.1 {
265 compatible = "register-bit-led";
266 offset = <0x08>;
267 mask = <0x02>;
268 label = "versatile:1";
269 linux,default-trigger = "mmc0";
270 default-state = "off";
271 };
272 led@08.2 {
273 compatible = "register-bit-led";
274 offset = <0x08>;
275 mask = <0x04>;
276 label = "versatile:2";
277 linux,default-trigger = "cpu0";
278 default-state = "off";
279 };
280 led@08.3 {
281 compatible = "register-bit-led";
282 offset = <0x08>;
283 mask = <0x08>;
284 label = "versatile:3";
285 linux,default-trigger = "cpu1";
286 default-state = "off";
287 };
288 led@08.4 {
289 compatible = "register-bit-led";
290 offset = <0x08>;
291 mask = <0x10>;
292 label = "versatile:4";
293 linux,default-trigger = "cpu2";
294 default-state = "off";
295 };
296 led@08.5 {
297 compatible = "register-bit-led";
298 offset = <0x08>;
299 mask = <0x20>;
300 label = "versatile:5";
301 linux,default-trigger = "cpu3";
302 default-state = "off";
303 };
304 led@08.6 {
305 compatible = "register-bit-led";
306 offset = <0x08>;
307 mask = <0x40>;
308 label = "versatile:6";
309 default-state = "off";
310 };
311 led@08.7 {
312 compatible = "register-bit-led";
313 offset = <0x08>;
314 mask = <0x80>;
315 label = "versatile:7";
316 default-state = "off";
317 };
318
319 oscclk0: osc0@0c {
320 compatible = "arm,syscon-icst307";
321 #clock-cells = <0>;
322 lock-offset = <0x20>;
323 vco-offset = <0x0C>;
324 clocks = <&xtal24mhz>;
325 };
326 oscclk1: osc1@10 {
327 compatible = "arm,syscon-icst307";
328 #clock-cells = <0>;
329 lock-offset = <0x20>;
330 vco-offset = <0x10>;
331 clocks = <&xtal24mhz>;
332 };
333 oscclk2: osc2@14 {
334 compatible = "arm,syscon-icst307";
335 #clock-cells = <0>;
336 lock-offset = <0x20>;
337 vco-offset = <0x14>;
338 clocks = <&xtal24mhz>;
339 };
340 oscclk3: osc3@18 {
341 compatible = "arm,syscon-icst307";
342 #clock-cells = <0>;
343 lock-offset = <0x20>;
344 vco-offset = <0x18>;
345 clocks = <&xtal24mhz>;
346 };
347 oscclk4: osc4@1c {
348 compatible = "arm,syscon-icst307";
349 #clock-cells = <0>;
350 lock-offset = <0x20>;
351 vco-offset = <0x1c>;
352 clocks = <&xtal24mhz>;
353 };
354 oscclk5: osc5@d4 {
355 compatible = "arm,syscon-icst307";
356 #clock-cells = <0>;
357 lock-offset = <0x20>;
358 vco-offset = <0xd4>;
359 clocks = <&xtal24mhz>;
360 };
361 oscclk6: osc6@d8 {
362 compatible = "arm,syscon-icst307";
363 #clock-cells = <0>;
364 lock-offset = <0x20>;
365 vco-offset = <0xd8>;
366 clocks = <&xtal24mhz>;
367 };
368 };
369
370 sp810_syscon: sysctl@10001000 {
371 compatible = "arm,sp810", "arm,primecell";
372 reg = <0x10001000 0x1000>;
373 clocks = <&refclk32khz>, <&timclk>, <&xtal24mhz>;
374 clock-names = "refclk", "timclk", "apb_pclk";
375 #clock-cells = <1>;
376 clock-output-names = "timerclk0",
377 "timerclk1",
378 "timerclk2",
379 "timerclk3";
380 assigned-clocks = <&sp810_syscon 0>,
381 <&sp810_syscon 1>,
382 <&sp810_syscon 2>,
383 <&sp810_syscon 3>;
384 assigned-clock-parents = <&timclk>,
385 <&timclk>,
386 <&timclk>,
387 <&timclk>;
388 };
389
390 i2c0: i2c@10002000 {
391 #address-cells = <1>;
392 #size-cells = <0>;
393 compatible = "arm,versatile-i2c";
394 reg = <0x10002000 0x1000>;
395
396 rtc@68 {
397 compatible = "dallas,ds1338";
398 reg = <0x68>;
399 };
400 };
401
402 aaci: aaci@10004000 {
403 compatible = "arm,pl041", "arm,primecell";
404 reg = <0x10004000 0x1000>;
405 interrupt-parent = <&intc_tc11mp>;
406 interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>;
407 clocks = <&pclk>;
408 clock-names = "apb_pclk";
409 };
410
411 mci: mmcsd@10005000 {
412 compatible = "arm,pl18x", "arm,primecell";
413 reg = <0x10005000 0x1000>;
414 interrupt-parent = <&intc_tc11mp>;
415 interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>,
416 <0 15 IRQ_TYPE_LEVEL_HIGH>;
417 /* Due to frequent FIFO overruns, use just 500 kHz */
418 max-frequency = <500000>;
419 bus-width = <4>;
420 cap-sd-highspeed;
421 cap-mmc-highspeed;
422 clocks = <&mclk>, <&pclk>;
423 clock-names = "mclk", "apb_pclk";
424 vmmc-supply = <&vmmc>;
425 cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
426 wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
427 };
428
429 kmi0: kmi@10006000 {
430 compatible = "arm,pl050", "arm,primecell";
431 reg = <0x10006000 0x1000>;
432 interrupt-parent = <&intc_tc11mp>;
433 interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
434 clocks = <&kmiclk>, <&pclk>;
435 clock-names = "KMIREFCLK", "apb_pclk";
436 };
437
438 kmi1: kmi@10007000 {
439 compatible = "arm,pl050", "arm,primecell";
440 reg = <0x10007000 0x1000>;
441 interrupt-parent = <&intc_tc11mp>;
442 interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>;
443 clocks = <&kmiclk>, <&pclk>;
444 clock-names = "KMIREFCLK", "apb_pclk";
445 };
446
447 pb11mp_serial0: serial@10009000 {
448 compatible = "arm,pl011", "arm,primecell";
449 reg = <0x10009000 0x1000>;
450 interrupt-parent = <&intc_tc11mp>;
451 interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>;
452 clocks = <&uartclk>, <&pclk>;
453 clock-names = "uartclk", "apb_pclk";
454 };
455
456 pb11mp_serial1: serial@1000a000 {
457 compatible = "arm,pl011", "arm,primecell";
458 reg = <0x1000a000 0x1000>;
459 interrupt-parent = <&intc_tc11mp>;
460 interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
461 clocks = <&uartclk>, <&pclk>;
462 clock-names = "uartclk", "apb_pclk";
463 };
464
465 pb11mp_serial2: serial@1000b000 {
466 compatible = "arm,pl011", "arm,primecell";
467 reg = <0x1000b000 0x1000>;
468 interrupt-parent = <&intc_pb11mp>;
469 interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
470 clocks = <&uartclk>, <&pclk>;
471 clock-names = "uartclk", "apb_pclk";
472 };
473
474 pb11mp_serial3: serial@1000c000 {
475 compatible = "arm,pl011", "arm,primecell";
476 reg = <0x1000c000 0x1000>;
477 interrupt-parent = <&intc_pb11mp>;
478 interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>;
479 clocks = <&uartclk>, <&pclk>;
480 clock-names = "uartclk", "apb_pclk";
481 };
482
483 ssp@1000d000 {
484 compatible = "arm,pl022", "arm,primecell";
485 reg = <0x1000d000 0x1000>;
486 interrupt-parent = <&intc_pb11mp>;
487 interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
488 clocks = <&sspclk>, <&pclk>;
489 clock-names = "SSPCLK", "apb_pclk";
490 };
491
492 watchdog@1000f000 {
493 compatible = "arm,sp805", "arm,primecell";
494 reg = <0x1000f000 0x1000>;
495 interrupt-parent = <&intc_pb11mp>;
496 interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>;
497 clocks = <&wdogclk>, <&pclk>;
498 clock-names = "wdogclk", "apb_pclk";
499 status = "disabled";
500 };
501
502 watchdog@10010000 {
503 compatible = "arm,sp805", "arm,primecell";
504 reg = <0x10010000 0x1000>;
505 interrupt-parent = <&intc_pb11mp>;
506 interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>;
507 clocks = <&wdogclk>, <&pclk>;
508 clock-names = "wdogclk", "apb_pclk";
509 };
510
511 timer01: timer@10011000 {
512 compatible = "arm,sp804", "arm,primecell";
513 reg = <0x10011000 0x1000>;
514 interrupt-parent = <&intc_tc11mp>;
515 interrupts = <0 1 IRQ_TYPE_LEVEL_HIGH>;
516 arm,sp804-has-irq = <1>;
517 clocks = <&sp810_syscon 0>,
518 <&sp810_syscon 1>,
519 <&pclk>;
520 clock-names = "timerclk0",
521 "timerclk1",
522 "apb_pclk";
523 };
524
525 timer23: timer@10012000 {
526 compatible = "arm,sp804", "arm,primecell";
527 reg = <0x10012000 0x1000>;
528 interrupt-parent = <&intc_tc11mp>;
529 interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
530 arm,sp804-has-irq = <1>;
531 clocks = <&sp810_syscon 2>,
532 <&sp810_syscon 3>,
533 <&pclk>;
534 clock-names = "timerclk2",
535 "timerclk3",
536 "apb_pclk";
537 };
538
539 gpio0: gpio@10013000 {
540 compatible = "arm,pl061", "arm,primecell";
541 reg = <0x10013000 0x1000>;
542 gpio-controller;
543 interrupt-parent = <&intc_pb11mp>;
544 interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
545 #gpio-cells = <2>;
546 interrupt-controller;
547 #interrupt-cells = <2>;
548 clocks = <&pclk>;
549 clock-names = "apb_pclk";
550 };
551
552 gpio1: gpio@10014000 {
553 compatible = "arm,pl061", "arm,primecell";
554 reg = <0x10014000 0x1000>;
555 gpio-controller;
556 interrupt-parent = <&intc_pb11mp>;
557 interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
558 #gpio-cells = <2>;
559 interrupt-controller;
560 #interrupt-cells = <2>;
561 clocks = <&pclk>;
562 clock-names = "apb_pclk";
563 };
564
565 gpio2: gpio@10015000 {
566 compatible = "arm,pl061", "arm,primecell";
567 reg = <0x10015000 0x1000>;
568 gpio-controller;
569 interrupt-parent = <&intc_pb11mp>;
570 interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>;
571 #gpio-cells = <2>;
572 interrupt-controller;
573 #interrupt-cells = <2>;
574 clocks = <&pclk>;
575 clock-names = "apb_pclk";
576 };
577
578 rtc: rtc@10017000 {
579 compatible = "arm,pl031", "arm,primecell";
580 reg = <0x10017000 0x1000>;
581 interrupt-parent = <&intc_tc11mp>;
582 interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
583 clocks = <&pclk>;
584 clock-names = "apb_pclk";
585 };
586
587 timer45: timer@10018000 {
588 compatible = "arm,sp804", "arm,primecell";
589 reg = <0x10018000 0x1000>;
590 clocks = <&timclk>, <&pclk>;
591 clock-names = "timer", "apb_pclk";
592 status = "disabled";
593 };
594
595 timer67: timer@10019000 {
596 compatible = "arm,sp804", "arm,primecell";
597 reg = <0x10019000 0x1000>;
598 clocks = <&timclk>, <&pclk>;
599 clock-names = "timer", "apb_pclk";
600 status = "disabled";
601 };
602
603
604 clcd@10020000 {
605 compatible = "arm,pl111", "arm,primecell";
606 reg = <0x10020000 0x1000>;
607 interrupt-parent = <&intc_pb11mp>;
608 interrupt-names = "combined";
609 interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
610 clocks = <&oscclk4>, <&pclk>;
611 clock-names = "clcdclk", "apb_pclk";
612 max-memory-bandwidth = <130000000>; /* 16bpp @ 63.5MHz */
613
614 port {
615 clcd_pads: endpoint {
616 remote-endpoint = <&clcd_panel>;
617 arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
618 };
619 };
620
621 panel {
622 compatible = "panel-dpi";
623
624 port {
625 clcd_panel: endpoint {
626 remote-endpoint = <&clcd_pads>;
627 };
628 };
629
630 panel-timing {
631 clock-frequency = <63500127>;
632 hactive = <1024>;
633 hback-porch = <152>;
634 hfront-porch = <48>;
635 hsync-len = <104>;
636 vactive = <768>;
637 vback-porch = <23>;
638 vfront-porch = <3>;
639 vsync-len = <4>;
640 };
641 };
642 };
643
644 /*
645 * This GIC on the Platform Baseboard is cascaded off the
646 * TestChip GIC
647 */
648 intc_pb11mp: interrupt-controller@1e000000 {
649 compatible = "arm,arm11mp-gic";
650 #interrupt-cells = <3>;
651 #address-cells = <1>;
652 interrupt-controller;
653 reg = <0x1e001000 0x1000>,
654 <0x1e000000 0x100>;
655 interrupt-parent = <&intc_tc11mp>;
656 interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
657 };
658
659 /* SMSC 9118 ethernet with PHY and EEPROM */
660 ethernet@4e000000 {
661 compatible = "smsc,lan9118", "smsc,lan9115";
662 reg = <0x4e000000 0x10000>;
663 interrupt-parent = <&intc_tc11mp>;
664 interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
665 phy-mode = "mii";
666 reg-io-width = <4>;
667 smsc,irq-active-high;
668 smsc,irq-push-pull;
669 vdd33a-supply = <&veth>;
670 vddvario-supply = <&veth>;
671 };
672
673 usb@4f000000 {
674 compatible = "nxp,usb-isp1761";
675 reg = <0x4f000000 0x20000>;
676 interrupt-parent = <&intc_tc11mp>;
677 interrupts = <0 3 IRQ_TYPE_LEVEL_HIGH>;
678 port1-otg;
679 };
680 };
681};
diff --git a/arch/arm/boot/dts/armada-370-netgear-rn102.dts b/arch/arm/boot/dts/armada-370-netgear-rn102.dts
index 5555875f44f9..39181b3fa90d 100644
--- a/arch/arm/boot/dts/armada-370-netgear-rn102.dts
+++ b/arch/arm/boot/dts/armada-370-netgear-rn102.dts
@@ -127,7 +127,7 @@
127 isl12057: isl12057@68 { 127 isl12057: isl12057@68 {
128 compatible = "isil,isl12057"; 128 compatible = "isil,isl12057";
129 reg = <0x68>; 129 reg = <0x68>;
130 isil,irq2-can-wakeup-machine; 130 wakeup-source;
131 }; 131 };
132 132
133 g762: g762@3e { 133 g762: g762@3e {
diff --git a/arch/arm/boot/dts/armada-370-netgear-rn104.dts b/arch/arm/boot/dts/armada-370-netgear-rn104.dts
index 78b563c02f3c..faa474874cb8 100644
--- a/arch/arm/boot/dts/armada-370-netgear-rn104.dts
+++ b/arch/arm/boot/dts/armada-370-netgear-rn104.dts
@@ -133,7 +133,7 @@
133 isl12057: isl12057@68 { 133 isl12057: isl12057@68 {
134 compatible = "isil,isl12057"; 134 compatible = "isil,isl12057";
135 reg = <0x68>; 135 reg = <0x68>;
136 isil,irq2-can-wakeup-machine; 136 wakeup-source;
137 }; 137 };
138 138
139 g762: g762@3e { 139 g762: g762@3e {
diff --git a/arch/arm/boot/dts/armada-388-clearfog.dts b/arch/arm/boot/dts/armada-388-clearfog.dts
new file mode 100644
index 000000000000..c6e180eb3b11
--- /dev/null
+++ b/arch/arm/boot/dts/armada-388-clearfog.dts
@@ -0,0 +1,456 @@
1/*
2 * Device Tree file for SolidRun Clearfog revision A1 rev 2.0 (88F6828)
3 *
4 * Copyright (C) 2015 Russell King
5 *
6 * This board is in development; the contents of this file work with
7 * the A1 rev 2.0 of the board, which does not represent final
8 * production board. Things will change, don't expect this file to
9 * remain compatible info the future.
10 *
11 * This file is dual-licensed: you can use it either under the terms
12 * of the GPL or the X11 license, at your option. Note that this dual
13 * licensing only applies to this file, and not this project as a
14 * whole.
15 *
16 * a) This file is free software; you can redistribute it and/or
17 * modify it under the terms of the GNU General Public License
18 * version 2 as published by the Free Software Foundation.
19 *
20 * This file is distributed in the hope that it will be useful
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * Or, alternatively
26 *
27 * b) Permission is hereby granted, free of charge, to any person
28 * obtaining a copy of this software and associated documentation
29 * files (the "Software"), to deal in the Software without
30 * restriction, including without limitation the rights to use
31 * copy, modify, merge, publish, distribute, sublicense, and/or
32 * sell copies of the Software, and to permit persons to whom the
33 * Software is furnished to do so, subject to the following
34 * conditions:
35 *
36 * The above copyright notice and this permission notice shall be
37 * included in all copies or substantial portions of the Software.
38 *
39 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46 * OTHER DEALINGS IN THE SOFTWARE.
47 */
48
49/dts-v1/;
50#include "armada-388.dtsi"
51#include "armada-38x-solidrun-microsom.dtsi"
52
53/ {
54 model = "SolidRun Clearfog A1";
55 compatible = "solidrun,clearfog-a1", "marvell,armada388",
56 "marvell,armada385", "marvell,armada380";
57
58 aliases {
59 /* So that mvebu u-boot can update the MAC addresses */
60 ethernet1 = &eth0;
61 ethernet2 = &eth1;
62 ethernet3 = &eth2;
63 };
64
65 chosen {
66 stdout-path = "serial0:115200n8";
67 };
68
69 reg_3p3v: regulator-3p3v {
70 compatible = "regulator-fixed";
71 regulator-name = "3P3V";
72 regulator-min-microvolt = <3300000>;
73 regulator-max-microvolt = <3300000>;
74 regulator-always-on;
75 };
76
77 soc {
78 internal-regs {
79 ethernet@30000 {
80 phy-mode = "sgmii";
81 status = "okay";
82
83 fixed-link {
84 speed = <1000>;
85 full-duplex;
86 };
87 };
88
89 ethernet@34000 {
90 phy-mode = "sgmii";
91 status = "okay";
92
93 fixed-link {
94 speed = <1000>;
95 full-duplex;
96 };
97 };
98
99 i2c@11000 {
100 /* Is there anything on this? */
101 clock-frequency = <100000>;
102 pinctrl-0 = <&i2c0_pins>;
103 pinctrl-names = "default";
104 status = "okay";
105
106 /*
107 * PCA9655 GPIO expander, up to 1MHz clock.
108 * 0-CON3 CLKREQ#
109 * 1-CON3 PERST#
110 * 2-CON2 PERST#
111 * 3-CON3 W_DISABLE
112 * 4-CON2 CLKREQ#
113 * 5-USB3 overcurrent
114 * 6-USB3 power
115 * 7-CON2 W_DISABLE
116 * 8-JP4 P1
117 * 9-JP4 P4
118 * 10-JP4 P5
119 * 11-m.2 DEVSLP
120 * 12-SFP_LOS
121 * 13-SFP_TX_FAULT
122 * 14-SFP_TX_DISABLE
123 * 15-SFP_MOD_DEF0
124 */
125 expander0: gpio-expander@20 {
126 /*
127 * This is how it should be:
128 * compatible = "onnn,pca9655",
129 * "nxp,pca9555";
130 * but you can't do this because of
131 * the way I2C works.
132 */
133 compatible = "nxp,pca9555";
134 gpio-controller;
135 #gpio-cells = <2>;
136 reg = <0x20>;
137
138 pcie1_0_clkreq {
139 gpio-hog;
140 gpios = <0 GPIO_ACTIVE_LOW>;
141 input;
142 line-name = "pcie1.0-clkreq";
143 };
144 pcie1_0_w_disable {
145 gpio-hog;
146 gpios = <3 GPIO_ACTIVE_LOW>;
147 output-low;
148 line-name = "pcie1.0-w-disable";
149 };
150 pcie2_0_clkreq {
151 gpio-hog;
152 gpios = <4 GPIO_ACTIVE_LOW>;
153 input;
154 line-name = "pcie2.0-clkreq";
155 };
156 pcie2_0_w_disable {
157 gpio-hog;
158 gpios = <7 GPIO_ACTIVE_LOW>;
159 output-low;
160 line-name = "pcie2.0-w-disable";
161 };
162 usb3_ilimit {
163 gpio-hog;
164 gpios = <5 GPIO_ACTIVE_LOW>;
165 input;
166 line-name = "usb3-current-limit";
167 };
168 usb3_power {
169 gpio-hog;
170 gpios = <6 GPIO_ACTIVE_HIGH>;
171 output-high;
172 line-name = "usb3-power";
173 };
174 m2_devslp {
175 gpio-hog;
176 gpios = <11 GPIO_ACTIVE_HIGH>;
177 output-low;
178 line-name = "m.2 devslp";
179 };
180 sfp_los {
181 /* SFP loss of signal */
182 gpio-hog;
183 gpios = <12 GPIO_ACTIVE_HIGH>;
184 input;
185 line-name = "sfp-los";
186 };
187 sfp_tx_fault {
188 /* SFP laser fault */
189 gpio-hog;
190 gpios = <13 GPIO_ACTIVE_HIGH>;
191 input;
192 line-name = "sfp-tx-fault";
193 };
194 sfp_tx_disable {
195 /* SFP transmit disable */
196 gpio-hog;
197 gpios = <14 GPIO_ACTIVE_HIGH>;
198 output-low;
199 line-name = "sfp-tx-disable";
200 };
201 sfp_mod_def0 {
202 /* SFP module present */
203 gpio-hog;
204 gpios = <15 GPIO_ACTIVE_LOW>;
205 input;
206 line-name = "sfp-mod-def0";
207 };
208 };
209
210 /* The MCP3021 is 100kHz clock only */
211 mikrobus_adc: mcp3021@4c {
212 compatible = "microchip,mcp3021";
213 reg = <0x4c>;
214 };
215
216 /* Also something at 0x64 */
217 };
218
219 i2c@11100 {
220 /*
221 * Routed to SFP, mikrobus, and PCIe.
222 * SFP limits this to 100kHz, and requires
223 * an AT24C01A/02/04 with address pins tied
224 * low, which takes addresses 0x50 and 0x51.
225 * Mikrobus doesn't specify beyond an I2C
226 * bus being present.
227 * PCIe uses ARP to assign addresses, or
228 * 0x63-0x64.
229 */
230 clock-frequency = <100000>;
231 pinctrl-0 = <&clearfog_i2c1_pins>;
232 pinctrl-names = "default";
233 status = "okay";
234 };
235
236 mdio@72004 {
237 pinctrl-0 = <&mdio_pins>;
238 pinctrl-names = "default";
239
240 phy_dedicated: ethernet-phy@0 {
241 /*
242 * Annoyingly, the marvell phy driver
243 * configures the LED register, rather
244 * than preserving reset-loaded setting.
245 * We undo that rubbish here.
246 */
247 marvell,reg-init = <3 16 0 0x101e>;
248 reg = <0>;
249 };
250 };
251
252 pinctrl@18000 {
253 clearfog_dsa0_clk_pins: clearfog-dsa0-clk-pins {
254 marvell,pins = "mpp46";
255 marvell,function = "ref";
256 };
257 clearfog_dsa0_pins: clearfog-dsa0-pins {
258 marvell,pins = "mpp23", "mpp41";
259 marvell,function = "gpio";
260 };
261 clearfog_i2c1_pins: i2c1-pins {
262 /* SFP, PCIe, mSATA, mikrobus */
263 marvell,pins = "mpp26", "mpp27";
264 marvell,function = "i2c1";
265 };
266 clearfog_sdhci_cd_pins: clearfog-sdhci-cd-pins {
267 marvell,pins = "mpp20";
268 marvell,function = "gpio";
269 };
270 clearfog_sdhci_pins: clearfog-sdhci-pins {
271 marvell,pins = "mpp21", "mpp28",
272 "mpp37", "mpp38",
273 "mpp39", "mpp40";
274 marvell,function = "sd0";
275 };
276 clearfog_spi1_cs_pins: spi1-cs-pins {
277 marvell,pins = "mpp55";
278 marvell,function = "spi1";
279 };
280 mikro_pins: mikro-pins {
281 /* int: mpp22 rst: mpp29 */
282 marvell,pins = "mpp22", "mpp29";
283 marvell,function = "gpio";
284 };
285 mikro_spi_pins: mikro-spi-pins {
286 marvell,pins = "mpp43";
287 marvell,function = "spi1";
288 };
289 mikro_uart_pins: mikro-uart-pins {
290 marvell,pins = "mpp24", "mpp25";
291 marvell,function = "ua1";
292 };
293 rear_button_pins: rear-button-pins {
294 marvell,pins = "mpp34";
295 marvell,function = "gpio";
296 };
297 };
298
299 sata@a8000 {
300 /* pinctrl? */
301 status = "okay";
302 };
303
304 sata@e0000 {
305 /* pinctrl? */
306 status = "okay";
307 };
308
309 sdhci@d8000 {
310 bus-width = <4>;
311 cd-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
312 no-1-8-v;
313 pinctrl-0 = <&clearfog_sdhci_pins
314 &clearfog_sdhci_cd_pins>;
315 pinctrl-names = "default";
316 status = "okay";
317 vmmc = <&reg_3p3v>;
318 wp-inverted;
319 };
320
321 serial@12100 {
322 /* mikrobus uart */
323 pinctrl-0 = <&mikro_uart_pins>;
324 pinctrl-names = "default";
325 status = "okay";
326 };
327
328 spi@10680 {
329 /*
330 * We don't seem to have the W25Q32 on the
331 * A1 Rev 2.0 boards, so disable SPI.
332 * CS0: W25Q32 (doesn't appear to be present)
333 * CS1:
334 * CS2: mikrobus
335 */
336 pinctrl-0 = <&spi1_pins
337 &clearfog_spi1_cs_pins
338 &mikro_spi_pins>;
339 pinctrl-names = "default";
340 status = "okay";
341
342 spi-flash@0 {
343 #address-cells = <1>;
344 #size-cells = <0>;
345 compatible = "w25q32", "jedec,spi-nor";
346 reg = <0>; /* Chip select 0 */
347 spi-max-frequency = <3000000>;
348 status = "disabled";
349 };
350 };
351
352 usb@58000 {
353 /* CON3, nearest power. */
354 status = "okay";
355 };
356
357 usb3@f0000 {
358 /* CON2, nearest CPU, USB2 only. */
359 status = "okay";
360 };
361
362 usb3@f8000 {
363 /* CON7 */
364 status = "okay";
365 };
366 };
367
368 pcie-controller {
369 status = "okay";
370 /*
371 * The two PCIe units are accessible through
372 * the mini-PCIe connectors on the board.
373 */
374 pcie@2,0 {
375 /* Port 1, Lane 0. CON3, nearest power. */
376 reset-gpios = <&expander0 1 GPIO_ACTIVE_LOW>;
377 status = "okay";
378 };
379 pcie@3,0 {
380 /* Port 2, Lane 0. CON2, nearest CPU. */
381 reset-gpios = <&expander0 2 GPIO_ACTIVE_LOW>;
382 status = "okay";
383 };
384 };
385 };
386
387 dsa@0 {
388 compatible = "marvell,dsa";
389 dsa,ethernet = <&eth1>;
390 dsa,mii-bus = <&mdio>;
391 pinctrl-0 = <&clearfog_dsa0_clk_pins &clearfog_dsa0_pins>;
392 pinctrl-names = "default";
393 #address-cells = <2>;
394 #size-cells = <0>;
395
396 switch@0 {
397 #address-cells = <1>;
398 #size-cells = <0>;
399 reg = <4 0>;
400
401 port@0 {
402 reg = <0>;
403 label = "lan1";
404 };
405
406 port@1 {
407 reg = <1>;
408 label = "lan2";
409 };
410
411 port@2 {
412 reg = <2>;
413 label = "lan3";
414 };
415
416 port@3 {
417 reg = <3>;
418 label = "lan4";
419 };
420
421 port@4 {
422 reg = <4>;
423 label = "lan5";
424 };
425
426 port@5 {
427 reg = <5>;
428 label = "cpu";
429 };
430
431 port@6 {
432 /* 88E1512 external phy */
433 reg = <6>;
434 label = "lan6";
435 fixed-link {
436 speed = <1000>;
437 full-duplex;
438 };
439 };
440 };
441 };
442
443 gpio-keys {
444 compatible = "gpio-keys";
445 pinctrl-0 = <&rear_button_pins>;
446 pinctrl-names = "default";
447
448 button_0 {
449 /* The rear SW3 button */
450 label = "Rear Button";
451 gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
452 linux,can-disable;
453 linux,code = <BTN_0>;
454 };
455 };
456};
diff --git a/arch/arm/boot/dts/armada-388-gp.dts b/arch/arm/boot/dts/armada-388-gp.dts
index a633be3defda..cd316021d6ce 100644
--- a/arch/arm/boot/dts/armada-388-gp.dts
+++ b/arch/arm/boot/dts/armada-388-gp.dts
@@ -303,16 +303,6 @@
303 gpio = <&expander0 4 GPIO_ACTIVE_HIGH>; 303 gpio = <&expander0 4 GPIO_ACTIVE_HIGH>;
304 }; 304 };
305 305
306 reg_usb2_1_vbus: v5-vbus1 {
307 compatible = "regulator-fixed";
308 regulator-name = "v5.0-vbus1";
309 regulator-min-microvolt = <5000000>;
310 regulator-max-microvolt = <5000000>;
311 enable-active-high;
312 regulator-always-on;
313 gpio = <&expander0 4 GPIO_ACTIVE_HIGH>;
314 };
315
316 reg_sata0: pwr-sata0 { 306 reg_sata0: pwr-sata0 {
317 compatible = "regulator-fixed"; 307 compatible = "regulator-fixed";
318 regulator-name = "pwr_en_sata0"; 308 regulator-name = "pwr_en_sata0";
diff --git a/arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi b/arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi
new file mode 100644
index 000000000000..3f792a563c05
--- /dev/null
+++ b/arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi
@@ -0,0 +1,115 @@
1/*
2 * Device Tree file for SolidRun Armada 38x Microsom
3 *
4 * Copyright (C) 2015 Russell King
5 *
6 * This board is in development; the contents of this file work with
7 * the A1 rev 2.0 of the board, which does not represent final
8 * production board. Things will change, don't expect this file to
9 * remain compatible info the future.
10 *
11 * This file is dual-licensed: you can use it either under the terms
12 * of the GPL or the X11 license, at your option. Note that this dual
13 * licensing only applies to this file, and not this project as a
14 * whole.
15 *
16 * a) This file is free software; you can redistribute it and/or
17 * modify it under the terms of the GNU General Public License
18 * version 2 as published by the Free Software Foundation.
19 *
20 * This file is distributed in the hope that it will be useful
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * Or, alternatively
26 *
27 * b) Permission is hereby granted, free of charge, to any person
28 * obtaining a copy of this software and associated documentation
29 * files (the "Software"), to deal in the Software without
30 * restriction, including without limitation the rights to use
31 * copy, modify, merge, publish, distribute, sublicense, and/or
32 * sell copies of the Software, and to permit persons to whom the
33 * Software is furnished to do so, subject to the following
34 * conditions:
35 *
36 * The above copyright notice and this permission notice shall be
37 * included in all copies or substantial portions of the Software.
38 *
39 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46 * OTHER DEALINGS IN THE SOFTWARE.
47 */
48#include <dt-bindings/input/input.h>
49#include <dt-bindings/gpio/gpio.h>
50
51/ {
52 memory {
53 device_type = "memory";
54 reg = <0x00000000 0x10000000>; /* 256 MB */
55 };
56
57 soc {
58 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
59 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
60 MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
61 MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>;
62
63 internal-regs {
64 ethernet@70000 {
65 pinctrl-0 = <&ge0_rgmii_pins>;
66 pinctrl-names = "default";
67 phy = <&phy_dedicated>;
68 phy-mode = "rgmii-id";
69 status = "okay";
70 };
71
72 mdio@72004 {
73 /*
74 * Add the phy clock here, so the phy can be
75 * accessed to read its IDs prior to binding
76 * with the driver.
77 */
78 pinctrl-0 = <&mdio_pins &microsom_phy_clk_pins>;
79 pinctrl-names = "default";
80
81 phy_dedicated: ethernet-phy@0 {
82 /*
83 * Annoyingly, the marvell phy driver
84 * configures the LED register, rather
85 * than preserving reset-loaded setting.
86 * We undo that rubbish here.
87 */
88 marvell,reg-init = <3 16 0 0x101e>;
89 reg = <0>;
90 };
91 };
92
93 pinctrl@18000 {
94 microsom_phy_clk_pins: microsom-phy-clk-pins {
95 marvell,pins = "mpp45";
96 marvell,function = "ref";
97 };
98 };
99
100 rtc@a3800 {
101 /*
102 * If the rtc doesn't work, run "date reset"
103 * twice in u-boot.
104 */
105 status = "okay";
106 };
107
108 serial@12000 {
109 pinctrl-0 = <&uart0_pins>;
110 pinctrl-names = "default";
111 status = "okay";
112 };
113 };
114 };
115};
diff --git a/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts b/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts
index 58b500873bfd..13cf69a8d0fb 100644
--- a/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts
+++ b/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts
@@ -151,42 +151,42 @@
151 marvell,nand-enable-arbiter; 151 marvell,nand-enable-arbiter;
152 nand-on-flash-bbt; 152 nand-on-flash-bbt;
153 153
154 partition@0 { 154 partitions {
155 label = "u-boot"; 155 #address-cells = <1>;
156 reg = <0x0000000 0xe0000>; 156 #size-cells = <1>;
157 read-only; 157
158 }; 158 partition@0 {
159 159 label = "u-boot";
160 partition@e0000 { 160 reg = <0x00000000 0x000e0000>;
161 label = "u-boot-env"; 161 read-only;
162 reg = <0xe0000 0x20000>; 162 };
163 read-only; 163
164 }; 164 partition@e0000 {
165 165 label = "u-boot-env";
166 partition@100000 { 166 reg = <0x000e0000 0x00020000>;
167 label = "u-boot-env2"; 167 read-only;
168 reg = <0x100000 0x20000>; 168 };
169 read-only; 169
170 }; 170 partition@100000 {
171 171 label = "u-boot-env2";
172 partition@120000 { 172 reg = <0x00100000 0x00020000>;
173 label = "zImage"; 173 read-only;
174 reg = <0x120000 0x400000>; 174 };
175 }; 175
176 176 partition@120000 {
177 partition@520000 { 177 label = "zImage";
178 label = "initrd"; 178 reg = <0x00120000 0x00400000>;
179 reg = <0x520000 0x400000>; 179 };
180 }; 180
181 181 partition@520000 {
182 partition@xE00000 { 182 label = "initrd";
183 label = "boot"; 183 reg = <0x00520000 0x00400000>;
184 reg = <0xE00000 0x3F200000>; 184 };
185 }; 185
186 186 partition@e00000 {
187 partition@flash { 187 label = "boot";
188 label = "flash"; 188 reg = <0x00e00000 0x3f200000>;
189 reg = <0x0 0x40000000>; 189 };
190 }; 190 };
191 }; 191 };
192 }; 192 };
diff --git a/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts b/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts
index 6fe8972de0a2..62175a8848bc 100644
--- a/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts
+++ b/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts
@@ -141,7 +141,7 @@
141 isl12057: isl12057@68 { 141 isl12057: isl12057@68 {
142 compatible = "isil,isl12057"; 142 compatible = "isil,isl12057";
143 reg = <0x68>; 143 reg = <0x68>;
144 isil,irq2-can-wakeup-machine; 144 wakeup-source;
145 }; 145 };
146 }; 146 };
147 147
diff --git a/arch/arm/boot/dts/at91-sama5d2_xplained.dts b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
index e74df327cdd3..77ddff036409 100644
--- a/arch/arm/boot/dts/at91-sama5d2_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
@@ -119,6 +119,16 @@
119 status = "okay"; 119 status = "okay";
120 }; 120 };
121 121
122 pdmic@f8018000 {
123 pinctrl-names = "default";
124 pinctrl-0 = <&pinctrl_pdmic_default>;
125 atmel,model = "PDMIC @ sama5d2_xplained";
126 atmel,mic-min-freq = <1000000>;
127 atmel,mic-max-freq = <3246000>;
128 atmel,mic-offset = <0x0>;
129 status = "okay";
130 };
131
122 uart1: serial@f8020000 { 132 uart1: serial@f8020000 {
123 pinctrl-names = "default"; 133 pinctrl-names = "default";
124 pinctrl-0 = <&pinctrl_uart1_default>; 134 pinctrl-0 = <&pinctrl_uart1_default>;
@@ -129,6 +139,7 @@
129 dmas = <0>, <0>; 139 dmas = <0>, <0>;
130 pinctrl-names = "default"; 140 pinctrl-names = "default";
131 pinctrl-0 = <&pinctrl_i2c0_default>; 141 pinctrl-0 = <&pinctrl_i2c0_default>;
142 i2c-sda-hold-time-ns = <350>;
132 status = "okay"; 143 status = "okay";
133 144
134 pmic: act8865@5b { 145 pmic: act8865@5b {
@@ -207,6 +218,10 @@
207 }; 218 };
208 }; 219 };
209 220
221 watchdog@f8048040 {
222 status = "okay";
223 };
224
210 uart3: serial@fc008000 { 225 uart3: serial@fc008000 {
211 pinctrl-names = "default"; 226 pinctrl-names = "default";
212 pinctrl-0 = <&pinctrl_uart3_default>; 227 pinctrl-0 = <&pinctrl_uart3_default>;
@@ -285,6 +300,12 @@
285 bias-disable; 300 bias-disable;
286 }; 301 };
287 302
303 pinctrl_pdmic_default: pdmic_default {
304 pinmux = <PIN_PB26__PDMIC_DAT>,
305 <PIN_PB27__PDMIC_CLK>;
306 bias-disable;
307 };
308
288 pinctrl_sdmmc0_default: sdmmc0_default { 309 pinctrl_sdmmc0_default: sdmmc0_default {
289 cmd_data { 310 cmd_data {
290 pinmux = <PIN_PA1__SDMMC0_CMD>, 311 pinmux = <PIN_PA1__SDMMC0_CMD>,
diff --git a/arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi b/arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi
new file mode 100644
index 000000000000..e7b2109fc85a
--- /dev/null
+++ b/arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi
@@ -0,0 +1,127 @@
1/*
2 * Copyright (C) 2015 Marek Vasut <marex@denx.de>
3 *
4 * The code contained herein is licensed under the GNU General Public
5 * License. You may obtain a copy of the GNU General Public License
6 * Version 2 or later at the following locations:
7 *
8 * http://www.opensource.org/licenses/gpl-license.html
9 * http://www.gnu.org/copyleft/gpl.html
10 */
11
12#include "sama5d4.dtsi"
13
14/ {
15 model = "DENX MA5D4";
16 compatible = "denx,ma5d4", "atmel,sama5d4", "atmel,sama5";
17
18 memory {
19 reg = <0x20000000 0x10000000>;
20 };
21
22 clocks {
23 main_clock: main_clock {
24 compatible = "atmel,osc", "fixed-clock";
25 clock-frequency = <12000000>;
26 };
27
28 clk20m: clk20m {
29 compatible = "fixed-clock";
30 #clock-cells = <0>;
31 clock-frequency = <20000000>;
32 clock-output-names = "clk20m";
33 };
34 };
35
36 ahb {
37 apb {
38 mmc0: mmc@f8000000 {
39 pinctrl-names = "default";
40 pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_dat4_7>;
41 vmmc-supply = <&vcc_mmc0_reg>;
42 vqmmc-supply = <&vcc_3v3_reg>;
43 status = "okay";
44 slot@0 {
45 reg = <0>;
46 bus-width = <8>;
47 broken-cd;
48 };
49 };
50
51 spi0: spi@f8010000 {
52 cs-gpios = <&pioC 3 0>, <0>, <0>, <0>;
53 status = "okay";
54
55 m25p80@0 {
56 compatible = "atmel,at25df321a";
57 spi-max-frequency = <50000000>;
58 reg = <0>;
59 };
60 };
61
62 i2c0: i2c@f8014000 {
63 status = "okay";
64 };
65
66 spi1: spi@fc018000 {
67 cs-gpios = <&pioB 22 0>, <&pioB 23 0>, <0>, <0>;
68 status = "okay";
69
70 can0: can@0 {
71 compatible = "microchip,mcp2515";
72 reg = <0>;
73 clocks = <&clk20m>;
74 interrupt-parent = <&pioE>;
75 interrupts = <6 GPIO_ACTIVE_LOW>;
76 spi-max-frequency = <10000000>;
77 };
78
79 can1: can@1 {
80 compatible = "microchip,mcp2515";
81 reg = <1>;
82 clocks = <&clk20m>;
83 interrupt-parent = <&pioE>;
84 interrupts = <7 GPIO_ACTIVE_LOW>;
85 spi-max-frequency = <10000000>;
86 };
87 };
88
89 adc0: adc@fc034000 {
90 pinctrl-names = "default";
91 pinctrl-0 = <
92 /* external trigger conflicts with USBA_VBUS */
93 &pinctrl_adc0_ad0
94 &pinctrl_adc0_ad1
95 &pinctrl_adc0_ad2
96 &pinctrl_adc0_ad3
97 &pinctrl_adc0_ad4
98 >;
99 atmel,adc-vref = <3300>;
100 status = "okay";
101 };
102
103 watchdog@fc068640 {
104 status = "okay";
105 };
106 };
107 };
108
109 vcc_3v3_reg: fixedregulator@0 {
110 compatible = "regulator-fixed";
111 regulator-name = "VCC 3V3";
112 regulator-min-microvolt = <3300000>;
113 regulator-max-microvolt = <3300000>;
114 regulator-boot-on;
115 regulator-always-on;
116 };
117
118 vcc_mmc0_reg: fixedregulator@1 {
119 compatible = "regulator-fixed";
120 gpio = <&pioE 15 GPIO_ACTIVE_HIGH>;
121 regulator-name = "RST_n MCI0";
122 regulator-min-microvolt = <3300000>;
123 regulator-max-microvolt = <3300000>;
124 vin-supply = <&vcc_3v3_reg>;
125 regulator-boot-on;
126 };
127};
diff --git a/arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts b/arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts
new file mode 100644
index 000000000000..abaaba58fbec
--- /dev/null
+++ b/arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts
@@ -0,0 +1,170 @@
1/*
2 * Copyright (C) 2015 Marek Vasut <marex@denx.de>
3 *
4 * The code contained herein is licensed under the GNU General Public
5 * License. You may obtain a copy of the GNU General Public License
6 * Version 2 or later at the following locations:
7 *
8 * http://www.opensource.org/licenses/gpl-license.html
9 * http://www.gnu.org/copyleft/gpl.html
10 */
11
12/dts-v1/;
13#include "at91-sama5d4_ma5d4.dtsi"
14
15/ {
16 model = "DENX MA5D4EVK";
17 compatible = "denx,ma5d4evk", "atmel,sama5d4", "atmel,sama5";
18
19 chosen {
20 stdout-path = "serial3:115200n8";
21 };
22
23 ahb {
24 usb0: gadget@00400000 {
25 atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>;
26 pinctrl-names = "default";
27 pinctrl-0 = <&pinctrl_usba_vbus>;
28 status = "okay";
29 };
30
31 usb1: ohci@00500000 {
32 num-ports = <3>;
33 atmel,vbus-gpio = <0
34 &pioE 11 GPIO_ACTIVE_LOW
35 &pioE 14 GPIO_ACTIVE_LOW
36 >;
37 status = "okay";
38 };
39
40 usb2: ehci@00600000 {
41 status = "okay";
42 };
43
44 apb {
45 hlcdc: hlcdc@f0000000 {
46 status = "okay";
47
48 hlcdc-display-controller {
49 pinctrl-names = "default";
50 pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888>;
51
52 port@0 {
53 hlcdc_panel_output: endpoint@0 {
54 reg = <0>;
55 remote-endpoint = <&panel_input>;
56 };
57 };
58 };
59
60 };
61
62 macb0: ethernet@f8020000 {
63 phy-mode = "rmii";
64 status = "okay";
65
66 phy0: ethernet-phy@0 {
67 reg = <0>;
68 };
69 };
70
71 usart0: serial@f802c000 {
72 status = "okay";
73 };
74
75 usart1: serial@f8030000 {
76 status = "okay";
77 };
78
79 mmc1: mmc@fc000000 {
80 pinctrl-names = "default";
81 pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
82 vmmc-supply = <&vcc_mmc1_reg>;
83 vqmmc-supply = <&vcc_3v3_reg>;
84 status = "okay";
85 slot@0 {
86 reg = <0>;
87 bus-width = <4>;
88 cd-gpios = <&pioE 5 0>;
89 };
90 };
91
92 adc0: adc@fc034000 {
93 atmel,adc-ts-wires = <4>;
94 atmel,adc-ts-pressure-threshold = <10000>;
95 };
96
97
98 pinctrl@fc06a000 {
99 board {
100 pinctrl_mmc1_cd: mmc1_cd {
101 atmel,pins = <AT91_PIOE 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
102 };
103 pinctrl_usba_vbus: usba_vbus {
104 atmel,pins =
105 <AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
106 };
107 };
108 };
109 };
110 };
111
112 backlight: backlight {
113 compatible = "pwm-backlight";
114 pwms = <&hlcdc_pwm 0 50000 0>;
115 brightness-levels = <0 4 8 16 32 64 128 255>;
116 default-brightness-level = <6>;
117 status = "okay";
118 };
119
120 leds {
121 compatible = "gpio-leds";
122 status = "okay";
123
124 user1 {
125 label = "user1";
126 gpios = <&pioD 28 GPIO_ACTIVE_HIGH>;
127 linux,default-trigger = "heartbeat";
128 };
129
130 user2 {
131 label = "user2";
132 gpios = <&pioD 29 GPIO_ACTIVE_HIGH>;
133 linux,default-trigger = "heartbeat";
134 };
135
136 user3 {
137 label = "user3";
138 gpios = <&pioD 30 GPIO_ACTIVE_HIGH>;
139 linux,default-trigger = "heartbeat";
140 };
141 };
142
143 panel: panel {
144 /* Actually Ampire 800480R2 */
145 compatible = "foxlink,fl500wvr00-a0t", "simple-panel";
146 backlight = <&backlight>;
147 #address-cells = <1>;
148 #size-cells = <0>;
149 status = "okay";
150
151 port@0 {
152 #address-cells = <1>;
153 #size-cells = <0>;
154
155 panel_input: endpoint@0 {
156 reg = <0>;
157 remote-endpoint = <&hlcdc_panel_output>;
158 };
159 };
160 };
161
162 vcc_mmc1_reg: fixedregulator@2 {
163 compatible = "regulator-fixed";
164 gpio = <&pioE 17 GPIO_ACTIVE_LOW>;
165 regulator-name = "VDD MCI1";
166 regulator-min-microvolt = <3300000>;
167 regulator-max-microvolt = <3300000>;
168 vin-supply = <&vcc_3v3_reg>;
169 };
170};
diff --git a/arch/arm/boot/dts/at91-vinco.dts b/arch/arm/boot/dts/at91-vinco.dts
new file mode 100644
index 000000000000..79aec55e1ebc
--- /dev/null
+++ b/arch/arm/boot/dts/at91-vinco.dts
@@ -0,0 +1,256 @@
1/*
2 * Device Tree file for VInCo platform
3 *
4 * Copyright (C) 2014 Atmel,
5 * 2014 Nicolas Ferre <nicolas.ferre@atmel.com>
6 * 2015 Gregory CLEMENT <gregory.clement@free-electrons.com>
7 *
8 * This file is dual-licensed: you can use it either under the terms
9 * of the GPL or the X11 license, at your option. Note that this dual
10 * licensing only applies to this file, and not this project as a
11 * whole.
12 *
13 * a) This file is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License as
15 * published by the Free Software Foundation; either version 2 of the
16 * License, or (at your option) any later version.
17 *
18 * This file is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
22 *
23 * Or, alternatively,
24 *
25 * b) Permission is hereby granted, free of charge, to any person
26 * obtaining a copy of this software and associated documentation
27 * files (the "Software"), to deal in the Software without
28 * restriction, including without limitation the rights to use,
29 * copy, modify, merge, publish, distribute, sublicense, and/or
30 * sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following
32 * conditions:
33 *
34 * The above copyright notice and this permission notice shall be
35 * included in all copies or substantial portions of the Software.
36 *
37 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 * OTHER DEALINGS IN THE SOFTWARE.
45 */
46/dts-v1/;
47#include "sama5d4.dtsi"
48
49/ {
50 model = "L+G VInCo platform";
51 compatible = "l+g,vinco", "atmel,sama5d4", "atmel,sama5";
52
53 chosen {
54 stdout-path = "serial0:115200n8";
55 };
56
57 memory {
58 reg = <0x20000000 0x4000000>;
59 };
60
61 clocks {
62 slow_xtal {
63 clock-frequency = <32768>;
64 };
65
66 main_xtal {
67 clock-frequency = <12000000>;
68 };
69 };
70
71 ahb {
72 apb {
73
74 adc0: adc@fc034000 {
75 status = "okay"; /* Enable ADC IIO support */
76 };
77
78 mmc0: mmc@f8000000 {
79 pinctrl-names = "default";
80 pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0
81 &pinctrl_mmc0_dat1_3
82 &pinctrl_mmc0_dat4_7>;
83 vqmmc-supply = <&vcc_3v3_reg>;
84 vmmc-supply = <&vcc_3v3_reg>;
85 no-1-8-v;
86 status = "okay";
87 slot@0 {
88 reg = <0>;
89 bus-width = <8>;
90 non-removable;
91 broken-cd;
92 status = "okay";
93 };
94 };
95
96 spi0: spi@f8010000 {
97 cs-gpios = <&pioC 3 0>, <0>, <0>, <0>;
98 status = "okay";
99 m25p80@0 {
100 compatible = "n25q32b", "jedec,spi-nor";
101 spi-max-frequency = <50000000>;
102 reg = <0>;
103 };
104 };
105
106 i2c0: i2c@f8014000 {
107 status = "okay";
108 };
109
110 i2c1: i2c@f8018000 {
111 status = "okay";
112 /* kerkey security module */
113 };
114
115 macb0: ethernet@f8020000 {
116 phy-mode = "rmii";
117 status = "okay";
118
119 ethernet-phy@1 {
120 reg = <0x1>;
121 reset-gpios = <&pioE 8 GPIO_ACTIVE_HIGH>;
122 interrupt-parent = <&pioB>;
123 interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
124 };
125
126 };
127
128 i2c2: i2c@f8024000 {
129 status = "okay";
130
131 rtc1: rtc@64 {
132 compatible = "epson,rx8900";
133 reg = <0x32>;
134 };
135 };
136
137 usart2: serial@fc008000 {
138 /* MBUS */
139 status = "okay";
140 };
141
142 usart3: serial@fc00c000 {
143 /* debug */
144 status = "okay";
145 };
146
147 usart4: serial@fc010000 {
148 /* LMN */
149 pinctrl-0 = <&pinctrl_usart4 &pinctrl_usart4_rts>;
150 linux,rs485-enabled-at-boot-time;
151 status = "okay";
152 };
153
154 macb1: ethernet@fc028000 {
155 phy-mode = "rmii";
156 status = "okay";
157 #address-cells = <1>;
158 #size-cells = <0>;
159 status = "okay";
160
161 ethernet-phy@1 {
162 reg = <0x1>;
163 interrupt-parent = <&pioB>;
164 interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
165 reset-gpios = <&pioE 6 GPIO_ACTIVE_HIGH>;
166 };
167 };
168
169 watchdog@fc068640 {
170 status = "okay";
171 };
172
173 pinctrl@fc06a000 {
174 board {
175 pinctrl_usba_vbus: usba_vbus {
176 atmel,pins =
177 <AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
178 };
179 };
180 };
181 };
182
183 usb0: gadget@00400000 {
184 atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>;
185 pinctrl-names = "default";
186 pinctrl-0 = <&pinctrl_usba_vbus>;
187 status = "disable";
188 };
189
190 usb1: ohci@00500000 {
191 num-ports = <3>;
192 atmel,vbus-gpio = <0
193 &pioE 11 GPIO_ACTIVE_LOW
194 &pioE 12 GPIO_ACTIVE_LOW
195 >;
196 status = "disable";
197 };
198
199 usb2: ehci@00600000 {
200 /* 4G Modem */
201 status = "okay";
202 };
203
204 };
205
206 leds {
207 compatible = "gpio-leds";
208 status = "okay";
209
210 led_err {
211 label = "err";
212 gpios = <&pioA 7 GPIO_ACTIVE_LOW>;
213 default-state = "off";
214 };
215
216 led_rssi {
217 label = "rssi";
218 gpios = <&pioA 9 GPIO_ACTIVE_LOW>;
219 default-state = "off";
220 };
221
222 led_tls {
223 label = "tls";
224 gpios = <&pioA 24 GPIO_ACTIVE_LOW>;
225 default-state = "off";
226 };
227
228 led_lmc {
229 label = "lmc";
230 gpios = <&pioA 25 GPIO_ACTIVE_LOW>;
231 default-state = "off";
232 };
233
234 led_wmt {
235 label = "wmt";
236 gpios = <&pioA 29 GPIO_ACTIVE_LOW>;
237 default-state = "off";
238 };
239
240 led_pwr {
241 label = "pwr";
242 gpios = <&pioA 26 GPIO_ACTIVE_LOW>;
243 default-state = "on";
244 };
245
246 };
247
248 vcc_3v3_reg: fixedregulator@0 {
249 compatible = "regulator-fixed";
250 regulator-name = "VCC 3V3";
251 regulator-min-microvolt = <3300000>;
252 regulator-max-microvolt = <3300000>;
253 regulator-boot-on;
254 regulator-always-on;
255 };
256};
diff --git a/arch/arm/boot/dts/bcm-cygnus.dtsi b/arch/arm/boot/dts/bcm-cygnus.dtsi
index 2778533502d9..3878793364f0 100644
--- a/arch/arm/boot/dts/bcm-cygnus.dtsi
+++ b/arch/arm/boot/dts/bcm-cygnus.dtsi
@@ -91,6 +91,23 @@
91 #address-cells = <1>; 91 #address-cells = <1>;
92 #size-cells = <1>; 92 #size-cells = <1>;
93 93
94 pcie_phy: phy@0301d0a0 {
95 compatible = "brcm,cygnus-pcie-phy";
96 reg = <0x0301d0a0 0x14>;
97 #address-cells = <1>;
98 #size-cells = <0>;
99
100 pcie0_phy: phy@0 {
101 reg = <0>;
102 #phy-cells = <0>;
103 };
104
105 pcie1_phy: phy@1 {
106 reg = <1>;
107 #phy-cells = <0>;
108 };
109 };
110
94 pinctrl: pinctrl@0x0301d0c8 { 111 pinctrl: pinctrl@0x0301d0c8 {
95 compatible = "brcm,cygnus-pinmux"; 112 compatible = "brcm,cygnus-pinmux";
96 reg = <0x0301d0c8 0x30>, 113 reg = <0x0301d0c8 0x30>,
@@ -101,6 +118,7 @@
101 compatible = "brcm,cygnus-crmu-gpio"; 118 compatible = "brcm,cygnus-crmu-gpio";
102 reg = <0x03024800 0x50>, 119 reg = <0x03024800 0x50>,
103 <0x03024008 0x18>; 120 <0x03024008 0x18>;
121 ngpios = <6>;
104 #gpio-cells = <2>; 122 #gpio-cells = <2>;
105 gpio-controller; 123 gpio-controller;
106 }; 124 };
@@ -127,6 +145,7 @@
127 compatible = "brcm,cygnus-ccm-gpio"; 145 compatible = "brcm,cygnus-ccm-gpio";
128 reg = <0x1800a000 0x50>, 146 reg = <0x1800a000 0x50>,
129 <0x0301d164 0x20>; 147 <0x0301d164 0x20>;
148 ngpios = <24>;
130 #gpio-cells = <2>; 149 #gpio-cells = <2>;
131 gpio-controller; 150 gpio-controller;
132 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 151 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
@@ -161,7 +180,21 @@
161 ranges = <0x81000000 0 0 0x28000000 0 0x00010000 180 ranges = <0x81000000 0 0 0x28000000 0 0x00010000
162 0x82000000 0 0x20000000 0x20000000 0 0x04000000>; 181 0x82000000 0 0x20000000 0x20000000 0 0x04000000>;
163 182
183 phys = <&pcie0_phy>;
184 phy-names = "pcie-phy";
185
164 status = "disabled"; 186 status = "disabled";
187
188 msi-parent = <&msi0>;
189 msi0: msi@18012000 {
190 compatible = "brcm,iproc-msi";
191 msi-controller;
192 interrupt-parent = <&gic>;
193 interrupts = <GIC_SPI 96 IRQ_TYPE_NONE>,
194 <GIC_SPI 97 IRQ_TYPE_NONE>,
195 <GIC_SPI 98 IRQ_TYPE_NONE>,
196 <GIC_SPI 99 IRQ_TYPE_NONE>;
197 };
165 }; 198 };
166 199
167 pcie1: pcie@18013000 { 200 pcie1: pcie@18013000 {
@@ -182,7 +215,21 @@
182 ranges = <0x81000000 0 0 0x48000000 0 0x00010000 215 ranges = <0x81000000 0 0 0x48000000 0 0x00010000
183 0x82000000 0 0x40000000 0x40000000 0 0x04000000>; 216 0x82000000 0 0x40000000 0x40000000 0 0x04000000>;
184 217
218 phys = <&pcie1_phy>;
219 phy-names = "pcie-phy";
220
185 status = "disabled"; 221 status = "disabled";
222
223 msi-parent = <&msi1>;
224 msi1: msi@18013000 {
225 compatible = "brcm,iproc-msi";
226 msi-controller;
227 interrupt-parent = <&gic>;
228 interrupts = <GIC_SPI 102 IRQ_TYPE_NONE>,
229 <GIC_SPI 103 IRQ_TYPE_NONE>,
230 <GIC_SPI 104 IRQ_TYPE_NONE>,
231 <GIC_SPI 105 IRQ_TYPE_NONE>;
232 };
186 }; 233 };
187 234
188 uart0: serial@18020000 { 235 uart0: serial@18020000 {
@@ -245,13 +292,63 @@
245 gpio_asiu: gpio@180a5000 { 292 gpio_asiu: gpio@180a5000 {
246 compatible = "brcm,cygnus-asiu-gpio"; 293 compatible = "brcm,cygnus-asiu-gpio";
247 reg = <0x180a5000 0x668>; 294 reg = <0x180a5000 0x668>;
295 ngpios = <146>;
248 #gpio-cells = <2>; 296 #gpio-cells = <2>;
249 gpio-controller; 297 gpio-controller;
250 298
251 pinmux = <&pinctrl>;
252
253 interrupt-controller; 299 interrupt-controller;
254 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 300 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
301 gpio-ranges = <&pinctrl 0 42 1>,
302 <&pinctrl 1 44 3>,
303 <&pinctrl 4 48 1>,
304 <&pinctrl 5 50 3>,
305 <&pinctrl 8 126 1>,
306 <&pinctrl 9 155 1>,
307 <&pinctrl 10 152 1>,
308 <&pinctrl 11 154 1>,
309 <&pinctrl 12 153 1>,
310 <&pinctrl 13 127 3>,
311 <&pinctrl 16 140 1>,
312 <&pinctrl 17 145 7>,
313 <&pinctrl 24 130 10>,
314 <&pinctrl 34 141 4>,
315 <&pinctrl 38 54 1>,
316 <&pinctrl 39 56 3>,
317 <&pinctrl 42 60 3>,
318 <&pinctrl 45 64 3>,
319 <&pinctrl 48 68 2>,
320 <&pinctrl 50 84 6>,
321 <&pinctrl 56 94 6>,
322 <&pinctrl 62 72 1>,
323 <&pinctrl 63 70 1>,
324 <&pinctrl 64 80 1>,
325 <&pinctrl 65 74 3>,
326 <&pinctrl 68 78 1>,
327 <&pinctrl 69 82 1>,
328 <&pinctrl 70 156 17>,
329 <&pinctrl 87 104 12>,
330 <&pinctrl 99 102 2>,
331 <&pinctrl 101 90 4>,
332 <&pinctrl 105 116 6>,
333 <&pinctrl 111 100 2>,
334 <&pinctrl 113 122 4>,
335 <&pinctrl 123 11 1>,
336 <&pinctrl 124 38 4>,
337 <&pinctrl 128 43 1>,
338 <&pinctrl 129 47 1>,
339 <&pinctrl 130 49 1>,
340 <&pinctrl 131 53 1>,
341 <&pinctrl 132 55 1>,
342 <&pinctrl 133 59 1>,
343 <&pinctrl 134 63 1>,
344 <&pinctrl 135 67 1>,
345 <&pinctrl 136 71 1>,
346 <&pinctrl 137 73 1>,
347 <&pinctrl 138 77 1>,
348 <&pinctrl 139 79 1>,
349 <&pinctrl 140 81 1>,
350 <&pinctrl 141 83 1>,
351 <&pinctrl 142 10 1>;
255 }; 352 };
256 353
257 touchscreen: tsc@180a6000 { 354 touchscreen: tsc@180a6000 {
diff --git a/arch/arm/boot/dts/bcm-nsp.dtsi b/arch/arm/boot/dts/bcm-nsp.dtsi
index 58aca277e4a7..10bdef557ba0 100644
--- a/arch/arm/boot/dts/bcm-nsp.dtsi
+++ b/arch/arm/boot/dts/bcm-nsp.dtsi
@@ -32,6 +32,7 @@
32 32
33#include <dt-bindings/interrupt-controller/arm-gic.h> 33#include <dt-bindings/interrupt-controller/arm-gic.h>
34#include <dt-bindings/interrupt-controller/irq.h> 34#include <dt-bindings/interrupt-controller/irq.h>
35#include <dt-bindings/clock/bcm-nsp.h>
35 36
36#include "skeleton.dtsi" 37#include "skeleton.dtsi"
37 38
@@ -40,9 +41,30 @@
40 model = "Broadcom Northstar Plus SoC"; 41 model = "Broadcom Northstar Plus SoC";
41 interrupt-parent = <&gic>; 42 interrupt-parent = <&gic>;
42 43
44 cpus {
45 #address-cells = <1>;
46 #size-cells = <0>;
47
48 cpu@0 {
49 device_type = "cpu";
50 compatible = "arm,cortex-a9";
51 next-level-cache = <&L2>;
52 reg = <0x0>;
53 };
54
55 cpu@1 {
56 device_type = "cpu";
57 compatible = "arm,cortex-a9";
58 next-level-cache = <&L2>;
59 enable-method = "brcm,bcm-nsp-smp";
60 secondary-boot-reg = <0xffff042c>;
61 reg = <0x1>;
62 };
63 };
64
43 mpcore { 65 mpcore {
44 compatible = "simple-bus"; 66 compatible = "simple-bus";
45 ranges = <0x00000000 0x19020000 0x00003000>; 67 ranges = <0x00000000 0x19000000 0x00023000>;
46 #address-cells = <1>; 68 #address-cells = <1>;
47 #size-cells = <1>; 69 #size-cells = <1>;
48 70
@@ -58,27 +80,50 @@
58 }; 80 };
59 }; 81 };
60 82
61 L2: l2-cache { 83 a9pll: arm_clk@00000 {
62 compatible = "arm,pl310-cache"; 84 #clock-cells = <0>;
63 reg = <0x2000 0x1000>; 85 compatible = "brcm,nsp-armpll";
64 cache-unified; 86 clocks = <&osc>;
65 cache-level = <2>; 87 reg = <0x00000 0x1000>;
88 };
89
90 timer@20200 {
91 compatible = "arm,cortex-a9-global-timer";
92 reg = <0x20200 0x100>;
93 interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
94 clocks = <&periph_clk>;
95 };
96
97 twd-timer@20600 {
98 compatible = "arm,cortex-a9-twd-timer";
99 reg = <0x20600 0x20>;
100 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
101 IRQ_TYPE_LEVEL_HIGH)>;
102 clocks = <&periph_clk>;
103 };
104
105 twd-watchdog@20620 {
106 compatible = "arm,cortex-a9-twd-wdt";
107 reg = <0x20620 0x20>;
108 interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) |
109 IRQ_TYPE_LEVEL_HIGH)>;
110 clocks = <&periph_clk>;
66 }; 111 };
67 112
68 gic: interrupt-controller@19021000 { 113 gic: interrupt-controller@21000 {
69 compatible = "arm,cortex-a9-gic"; 114 compatible = "arm,cortex-a9-gic";
70 #interrupt-cells = <3>; 115 #interrupt-cells = <3>;
71 #address-cells = <0>; 116 #address-cells = <0>;
72 interrupt-controller; 117 interrupt-controller;
73 reg = <0x1000 0x1000>, 118 reg = <0x21000 0x1000>,
74 <0x0100 0x100>; 119 <0x20100 0x100>;
75 }; 120 };
76 121
77 timer@19020200 { 122 L2: l2-cache {
78 compatible = "arm,cortex-a9-global-timer"; 123 compatible = "arm,pl310-cache";
79 reg = <0x0200 0x100>; 124 reg = <0x22000 0x1000>;
80 interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>; 125 cache-unified;
81 clocks = <&periph_clk>; 126 cache-level = <2>;
82 }; 127 };
83 }; 128 };
84 129
@@ -87,33 +132,178 @@
87 #size-cells = <1>; 132 #size-cells = <1>;
88 ranges; 133 ranges;
89 134
90 periph_clk: periph_clk { 135 osc: oscillator {
136 #clock-cells = <0>;
91 compatible = "fixed-clock"; 137 compatible = "fixed-clock";
138 clock-frequency = <25000000>;
139 };
140
141 iprocmed: iprocmed {
142 #clock-cells = <0>;
143 compatible = "fixed-factor-clock";
144 clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
145 clock-div = <2>;
146 clock-mult = <1>;
147 };
148
149 iprocslow: iprocslow {
92 #clock-cells = <0>; 150 #clock-cells = <0>;
93 clock-frequency = <500000000>; 151 compatible = "fixed-factor-clock";
152 clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
153 clock-div = <4>;
154 clock-mult = <1>;
155 };
156
157 periph_clk: periph_clk {
158 #clock-cells = <0>;
159 compatible = "fixed-factor-clock";
160 clocks = <&a9pll>;
161 clock-div = <2>;
162 clock-mult = <1>;
94 }; 163 };
95 }; 164 };
96 165
97 axi { 166 axi {
98 compatible = "simple-bus"; 167 compatible = "simple-bus";
99 ranges = <0x00000000 0x18000000 0x00001000>; 168 ranges = <0x00000000 0x18000000 0x0011ba08>;
100 #address-cells = <1>; 169 #address-cells = <1>;
101 #size-cells = <1>; 170 #size-cells = <1>;
102 171
103 uart0: serial@18000300 { 172 uart0: serial@0300 {
104 compatible = "ns16550a"; 173 compatible = "ns16550a";
105 reg = <0x0300 0x100>; 174 reg = <0x0300 0x100>;
106 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 175 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
107 clock-frequency = <62499840>; 176 clocks = <&osc>;
108 status = "disabled"; 177 status = "disabled";
109 }; 178 };
110 179
111 uart1: serial@18000400 { 180 uart1: serial@0400 {
112 compatible = "ns16550a"; 181 compatible = "ns16550a";
113 reg = <0x0400 0x100>; 182 reg = <0x0400 0x100>;
114 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 183 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
115 clock-frequency = <62499840>; 184 clocks = <&osc>;
185 status = "disabled";
186 };
187
188 pcie0: pcie@12000 {
189 compatible = "brcm,iproc-pcie";
190 reg = <0x12000 0x1000>;
191
192 #interrupt-cells = <1>;
193 interrupt-map-mask = <0 0 0 0>;
194 interrupt-map = <0 0 0 0 &gic GIC_SPI 131 IRQ_TYPE_NONE>;
195
196 linux,pci-domain = <0>;
197
198 bus-range = <0x00 0xff>;
199
200 #address-cells = <3>;
201 #size-cells = <2>;
202 device_type = "pci";
203
204 /* Note: The HW does not support I/O resources. So,
205 * only the memory resource range is being specified.
206 */
207 ranges = <0x82000000 0 0x08000000 0x08000000 0 0x8000000>;
208
209 status = "disabled";
210 };
211
212 pcie1: pcie@13000 {
213 compatible = "brcm,iproc-pcie";
214 reg = <0x13000 0x1000>;
215
216 #interrupt-cells = <1>;
217 interrupt-map-mask = <0 0 0 0>;
218 interrupt-map = <0 0 0 0 &gic GIC_SPI 137 IRQ_TYPE_NONE>;
219
220 linux,pci-domain = <1>;
221
222 bus-range = <0x00 0xff>;
223
224 #address-cells = <3>;
225 #size-cells = <2>;
226 device_type = "pci";
227
228 /* Note: The HW does not support I/O resources. So,
229 * only the memory resource range is being specified.
230 */
231 ranges = <0x82000000 0 0x40000000 0x40000000 0 0x8000000>;
232
233 status = "disabled";
234 };
235
236 pcie2: pcie@14000 {
237 compatible = "brcm,iproc-pcie";
238 reg = <0x14000 0x1000>;
239
240 #interrupt-cells = <1>;
241 interrupt-map-mask = <0 0 0 0>;
242 interrupt-map = <0 0 0 0 &gic GIC_SPI 143 IRQ_TYPE_NONE>;
243
244 linux,pci-domain = <2>;
245
246 bus-range = <0x00 0xff>;
247
248 #address-cells = <3>;
249 #size-cells = <2>;
250 device_type = "pci";
251
252 /* Note: The HW does not support I/O resources. So,
253 * only the memory resource range is being specified.
254 */
255 ranges = <0x82000000 0 0x48000000 0x48000000 0 0x8000000>;
256
116 status = "disabled"; 257 status = "disabled";
117 }; 258 };
259
260 nand: nand@26000 {
261 compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
262 reg = <0x026000 0x600>,
263 <0x11b408 0x600>,
264 <0x026f00 0x20>;
265 reg-names = "nand", "iproc-idm", "iproc-ext";
266 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
267
268 #address-cells = <1>;
269 #size-cells = <0>;
270
271 brcm,nand-has-wp;
272 };
273
274 i2c0: i2c@38000 {
275 compatible = "brcm,iproc-i2c";
276 reg = <0x38000 0x50>;
277 #address-cells = <1>;
278 #size-cells = <0>;
279 interrupts = <GIC_SPI 89 IRQ_TYPE_NONE>;
280 clock-frequency = <100000>;
281 };
282
283 lcpll0: lcpll0@3f100 {
284 #clock-cells = <1>;
285 compatible = "brcm,nsp-lcpll0";
286 reg = <0x3f100 0x14>;
287 clocks = <&osc>;
288 clock-output-names = "lcpll0", "pcie_phy", "sdio",
289 "ddr_phy";
290 };
291
292 genpll: genpll@3f140 {
293 #clock-cells = <1>;
294 compatible = "brcm,nsp-genpll";
295 reg = <0x3f140 0x24>;
296 clocks = <&osc>;
297 clock-output-names = "genpll", "phy", "ethernetclk",
298 "usbclk", "iprocfast", "sata1",
299 "sata2";
300 };
301
302 pinctrl: pinctrl@3f1c0 {
303 compatible = "brcm,nsp-pinmux";
304 reg = <0x3f1c0 0x04>,
305 <0x30028 0x04>,
306 <0x3f408 0x04>;
307 };
118 }; 308 };
119}; 309};
diff --git a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
index b2bff43b135c..228614ffff44 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
@@ -1,4 +1,5 @@
1/dts-v1/; 1/dts-v1/;
2#include "bcm2835.dtsi"
2#include "bcm2835-rpi.dtsi" 3#include "bcm2835-rpi.dtsi"
3 4
4/ { 5/ {
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
index 668442b1bda5..ef5405025223 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
@@ -1,4 +1,5 @@
1/dts-v1/; 1/dts-v1/;
2#include "bcm2835.dtsi"
2#include "bcm2835-rpi.dtsi" 3#include "bcm2835-rpi.dtsi"
3 4
4/ { 5/ {
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
index eab8b5916e8a..86f1f2f598a7 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
@@ -1,4 +1,5 @@
1/dts-v1/; 1/dts-v1/;
2#include "bcm2835.dtsi"
2#include "bcm2835-rpi.dtsi" 3#include "bcm2835-rpi.dtsi"
3 4
4/ { 5/ {
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b.dts b/arch/arm/boot/dts/bcm2835-rpi-b.dts
index ff6b2d1c6c90..4859e9d81b23 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts
@@ -1,4 +1,5 @@
1/dts-v1/; 1/dts-v1/;
2#include "bcm2835.dtsi"
2#include "bcm2835-rpi.dtsi" 3#include "bcm2835-rpi.dtsi"
3 4
4/ { 5/ {
diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
index 3572f0367baf..3afb9fefe2d1 100644
--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
@@ -1,5 +1,3 @@
1#include "bcm2835.dtsi"
2
3/ { 1/ {
4 memory { 2 memory {
5 reg = <0 0x10000000>; 3 reg = <0 0x10000000>;
diff --git a/arch/arm/boot/dts/bcm2835.dtsi b/arch/arm/boot/dts/bcm2835.dtsi
index aef64de77495..b83b32639358 100644
--- a/arch/arm/boot/dts/bcm2835.dtsi
+++ b/arch/arm/boot/dts/bcm2835.dtsi
@@ -1,206 +1,14 @@
1#include <dt-bindings/pinctrl/bcm2835.h> 1#include "bcm283x.dtsi"
2#include <dt-bindings/clock/bcm2835.h>
3#include "skeleton.dtsi"
4 2
5/ { 3/ {
6 compatible = "brcm,bcm2835"; 4 compatible = "brcm,bcm2835";
7 model = "BCM2835";
8 interrupt-parent = <&intc>;
9
10 chosen {
11 bootargs = "earlyprintk console=ttyAMA0";
12 };
13 5
14 soc { 6 soc {
15 compatible = "simple-bus";
16 #address-cells = <1>;
17 #size-cells = <1>;
18 ranges = <0x7e000000 0x20000000 0x02000000>; 7 ranges = <0x7e000000 0x20000000 0x02000000>;
19 dma-ranges = <0x40000000 0x00000000 0x20000000>; 8 dma-ranges = <0x40000000 0x00000000 0x20000000>;
20 9
21 timer@7e003000 {
22 compatible = "brcm,bcm2835-system-timer";
23 reg = <0x7e003000 0x1000>;
24 interrupts = <1 0>, <1 1>, <1 2>, <1 3>;
25 /* This could be a reference to BCM2835_CLOCK_TIMER,
26 * but we don't have the driver using the common clock
27 * support yet.
28 */
29 clock-frequency = <1000000>;
30 };
31
32 dma: dma@7e007000 {
33 compatible = "brcm,bcm2835-dma";
34 reg = <0x7e007000 0xf00>;
35 interrupts = <1 16>,
36 <1 17>,
37 <1 18>,
38 <1 19>,
39 <1 20>,
40 <1 21>,
41 <1 22>,
42 <1 23>,
43 <1 24>,
44 <1 25>,
45 <1 26>,
46 <1 27>,
47 <1 28>;
48
49 #dma-cells = <1>;
50 brcm,dma-channel-mask = <0x7f35>;
51 };
52
53 intc: interrupt-controller@7e00b200 {
54 compatible = "brcm,bcm2835-armctrl-ic";
55 reg = <0x7e00b200 0x200>;
56 interrupt-controller;
57 #interrupt-cells = <2>;
58 };
59
60 watchdog@7e100000 {
61 compatible = "brcm,bcm2835-pm-wdt";
62 reg = <0x7e100000 0x28>;
63 };
64
65 clocks: cprman@7e101000 {
66 compatible = "brcm,bcm2835-cprman";
67 #clock-cells = <1>;
68 reg = <0x7e101000 0x2000>;
69
70 /* CPRMAN derives everything from the platform's
71 * oscillator.
72 */
73 clocks = <&clk_osc>;
74 };
75
76 rng@7e104000 {
77 compatible = "brcm,bcm2835-rng";
78 reg = <0x7e104000 0x10>;
79 };
80
81 mailbox: mailbox@7e00b800 {
82 compatible = "brcm,bcm2835-mbox";
83 reg = <0x7e00b880 0x40>;
84 interrupts = <0 1>;
85 #mbox-cells = <0>;
86 };
87
88 gpio: gpio@7e200000 {
89 compatible = "brcm,bcm2835-gpio";
90 reg = <0x7e200000 0xb4>;
91 /*
92 * The GPIO IP block is designed for 3 banks of GPIOs.
93 * Each bank has a GPIO interrupt for itself.
94 * There is an overall "any bank" interrupt.
95 * In order, these are GIC interrupts 17, 18, 19, 20.
96 * Since the BCM2835 only has 2 banks, the 2nd bank
97 * interrupt output appears to be mirrored onto the
98 * 3rd bank's interrupt signal.
99 * So, a bank0 interrupt shows up on 17, 20, and
100 * a bank1 interrupt shows up on 18, 19, 20!
101 */
102 interrupts = <2 17>, <2 18>, <2 19>, <2 20>;
103
104 gpio-controller;
105 #gpio-cells = <2>;
106
107 interrupt-controller;
108 #interrupt-cells = <2>;
109 };
110
111 uart0: uart@7e201000 {
112 compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
113 reg = <0x7e201000 0x1000>;
114 interrupts = <2 25>;
115 clocks = <&clocks BCM2835_CLOCK_UART>,
116 <&clocks BCM2835_CLOCK_VPU>;
117 clock-names = "uartclk", "apb_pclk";
118 arm,primecell-periphid = <0x00241011>;
119 };
120
121 i2s: i2s@7e203000 {
122 compatible = "brcm,bcm2835-i2s";
123 reg = <0x7e203000 0x20>,
124 <0x7e101098 0x02>;
125
126 dmas = <&dma 2>,
127 <&dma 3>;
128 dma-names = "tx", "rx";
129 status = "disabled";
130 };
131
132 spi: spi@7e204000 {
133 compatible = "brcm,bcm2835-spi";
134 reg = <0x7e204000 0x1000>;
135 interrupts = <2 22>;
136 clocks = <&clocks BCM2835_CLOCK_VPU>;
137 #address-cells = <1>;
138 #size-cells = <0>;
139 status = "disabled";
140 };
141
142 i2c0: i2c@7e205000 {
143 compatible = "brcm,bcm2835-i2c";
144 reg = <0x7e205000 0x1000>;
145 interrupts = <2 21>;
146 clocks = <&clocks BCM2835_CLOCK_VPU>;
147 #address-cells = <1>;
148 #size-cells = <0>;
149 status = "disabled";
150 };
151
152 sdhci: sdhci@7e300000 {
153 compatible = "brcm,bcm2835-sdhci";
154 reg = <0x7e300000 0x100>;
155 interrupts = <2 30>;
156 clocks = <&clocks BCM2835_CLOCK_EMMC>;
157 status = "disabled";
158 };
159
160 i2c1: i2c@7e804000 {
161 compatible = "brcm,bcm2835-i2c";
162 reg = <0x7e804000 0x1000>;
163 interrupts = <2 21>;
164 clocks = <&clocks BCM2835_CLOCK_VPU>;
165 #address-cells = <1>;
166 #size-cells = <0>;
167 status = "disabled";
168 };
169
170 i2c2: i2c@7e805000 {
171 compatible = "brcm,bcm2835-i2c";
172 reg = <0x7e805000 0x1000>;
173 interrupts = <2 21>;
174 clocks = <&clocks BCM2835_CLOCK_VPU>;
175 #address-cells = <1>;
176 #size-cells = <0>;
177 status = "disabled";
178 };
179
180 usb@7e980000 {
181 compatible = "brcm,bcm2835-usb";
182 reg = <0x7e980000 0x10000>;
183 interrupts = <1 9>;
184 };
185
186 arm-pmu { 10 arm-pmu {
187 compatible = "arm,arm1176-pmu"; 11 compatible = "arm,arm1176-pmu";
188 }; 12 };
189 }; 13 };
190
191 clocks {
192 compatible = "simple-bus";
193 #address-cells = <1>;
194 #size-cells = <0>;
195
196 /* The oscillator is the root of the clock tree. */
197 clk_osc: clock@3 {
198 compatible = "fixed-clock";
199 reg = <3>;
200 #clock-cells = <0>;
201 clock-output-names = "osc";
202 clock-frequency = <19200000>;
203 };
204
205 };
206}; 14};
diff --git a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
new file mode 100644
index 000000000000..ff946661bd13
--- /dev/null
+++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
@@ -0,0 +1,35 @@
1/dts-v1/;
2#include "bcm2836.dtsi"
3#include "bcm2835-rpi.dtsi"
4
5/ {
6 compatible = "raspberrypi,2-model-b", "brcm,bcm2836";
7 model = "Raspberry Pi 2 Model B";
8
9 memory {
10 reg = <0 0x40000000>;
11 };
12
13 leds {
14 act {
15 gpios = <&gpio 47 0>;
16 };
17
18 pwr {
19 label = "PWR";
20 gpios = <&gpio 35 0>;
21 default-state = "keep";
22 linux,default-trigger = "default-on";
23 };
24 };
25};
26
27&gpio {
28 pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>;
29
30 /* I2S interface */
31 i2s_alt0: i2s_alt0 {
32 brcm,pins = <18 19 20 21>;
33 brcm,function = <BCM2835_FSEL_ALT0>;
34 };
35};
diff --git a/arch/arm/boot/dts/bcm2836.dtsi b/arch/arm/boot/dts/bcm2836.dtsi
new file mode 100644
index 000000000000..9d0651d8f373
--- /dev/null
+++ b/arch/arm/boot/dts/bcm2836.dtsi
@@ -0,0 +1,78 @@
1#include "bcm283x.dtsi"
2
3/ {
4 compatible = "brcm,bcm2836";
5
6 soc {
7 ranges = <0x7e000000 0x3f000000 0x1000000>,
8 <0x40000000 0x40000000 0x00001000>;
9 dma-ranges = <0xc0000000 0x00000000 0x3f000000>;
10
11 local_intc: local_intc {
12 compatible = "brcm,bcm2836-l1-intc";
13 reg = <0x40000000 0x100>;
14 interrupt-controller;
15 #interrupt-cells = <1>;
16 interrupt-parent = <&local_intc>;
17 };
18
19 arm-pmu {
20 compatible = "arm,cortex-a7-pmu";
21 interrupt-parent = <&local_intc>;
22 interrupts = <9>;
23 };
24 };
25
26 timer {
27 compatible = "arm,armv7-timer";
28 interrupt-parent = <&local_intc>;
29 interrupts = <0>, // PHYS_SECURE_PPI
30 <1>, // PHYS_NONSECURE_PPI
31 <3>, // VIRT_PPI
32 <2>; // HYP_PPI
33 always-on;
34 };
35
36 cpus: cpus {
37 #address-cells = <1>;
38 #size-cells = <0>;
39
40 v7_cpu0: cpu@0 {
41 device_type = "cpu";
42 compatible = "arm,cortex-a7";
43 reg = <0xf00>;
44 clock-frequency = <800000000>;
45 };
46
47 v7_cpu1: cpu@1 {
48 device_type = "cpu";
49 compatible = "arm,cortex-a7";
50 reg = <0xf01>;
51 clock-frequency = <800000000>;
52 };
53
54 v7_cpu2: cpu@2 {
55 device_type = "cpu";
56 compatible = "arm,cortex-a7";
57 reg = <0xf02>;
58 clock-frequency = <800000000>;
59 };
60
61 v7_cpu3: cpu@3 {
62 device_type = "cpu";
63 compatible = "arm,cortex-a7";
64 reg = <0xf03>;
65 clock-frequency = <800000000>;
66 };
67 };
68};
69
70/* Make the BCM2835-style global interrupt controller be a child of the
71 * CPU-local interrupt controller.
72 */
73&intc {
74 compatible = "brcm,bcm2836-armctrl-ic";
75 reg = <0x7e00b200 0x200>;
76 interrupt-parent = <&local_intc>;
77 interrupts = <8>;
78};
diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
new file mode 100644
index 000000000000..971e741e5467
--- /dev/null
+++ b/arch/arm/boot/dts/bcm283x.dtsi
@@ -0,0 +1,212 @@
1#include <dt-bindings/pinctrl/bcm2835.h>
2#include <dt-bindings/clock/bcm2835.h>
3#include "skeleton.dtsi"
4
5/* This include file covers the common peripherals and configuration between
6 * bcm2835 and bcm2836 implementations, leaving the CPU configuration to
7 * bcm2835.dtsi and bcm2836.dtsi.
8 */
9
10/ {
11 compatible = "brcm,bcm2835";
12 model = "BCM2835";
13 interrupt-parent = <&intc>;
14
15 chosen {
16 bootargs = "earlyprintk console=ttyAMA0";
17 };
18
19 soc {
20 compatible = "simple-bus";
21 #address-cells = <1>;
22 #size-cells = <1>;
23
24 timer@7e003000 {
25 compatible = "brcm,bcm2835-system-timer";
26 reg = <0x7e003000 0x1000>;
27 interrupts = <1 0>, <1 1>, <1 2>, <1 3>;
28 /* This could be a reference to BCM2835_CLOCK_TIMER,
29 * but we don't have the driver using the common clock
30 * support yet.
31 */
32 clock-frequency = <1000000>;
33 };
34
35 dma: dma@7e007000 {
36 compatible = "brcm,bcm2835-dma";
37 reg = <0x7e007000 0xf00>;
38 interrupts = <1 16>,
39 <1 17>,
40 <1 18>,
41 <1 19>,
42 <1 20>,
43 <1 21>,
44 <1 22>,
45 <1 23>,
46 <1 24>,
47 <1 25>,
48 <1 26>,
49 <1 27>,
50 <1 28>;
51
52 #dma-cells = <1>;
53 brcm,dma-channel-mask = <0x7f35>;
54 };
55
56 intc: interrupt-controller@7e00b200 {
57 compatible = "brcm,bcm2835-armctrl-ic";
58 reg = <0x7e00b200 0x200>;
59 interrupt-controller;
60 #interrupt-cells = <2>;
61 };
62
63 watchdog@7e100000 {
64 compatible = "brcm,bcm2835-pm-wdt";
65 reg = <0x7e100000 0x28>;
66 };
67
68 clocks: cprman@7e101000 {
69 compatible = "brcm,bcm2835-cprman";
70 #clock-cells = <1>;
71 reg = <0x7e101000 0x2000>;
72
73 /* CPRMAN derives everything from the platform's
74 * oscillator.
75 */
76 clocks = <&clk_osc>;
77 };
78
79 rng@7e104000 {
80 compatible = "brcm,bcm2835-rng";
81 reg = <0x7e104000 0x10>;
82 };
83
84 mailbox: mailbox@7e00b800 {
85 compatible = "brcm,bcm2835-mbox";
86 reg = <0x7e00b880 0x40>;
87 interrupts = <0 1>;
88 #mbox-cells = <0>;
89 };
90
91 gpio: gpio@7e200000 {
92 compatible = "brcm,bcm2835-gpio";
93 reg = <0x7e200000 0xb4>;
94 /*
95 * The GPIO IP block is designed for 3 banks of GPIOs.
96 * Each bank has a GPIO interrupt for itself.
97 * There is an overall "any bank" interrupt.
98 * In order, these are GIC interrupts 17, 18, 19, 20.
99 * Since the BCM2835 only has 2 banks, the 2nd bank
100 * interrupt output appears to be mirrored onto the
101 * 3rd bank's interrupt signal.
102 * So, a bank0 interrupt shows up on 17, 20, and
103 * a bank1 interrupt shows up on 18, 19, 20!
104 */
105 interrupts = <2 17>, <2 18>, <2 19>, <2 20>;
106
107 gpio-controller;
108 #gpio-cells = <2>;
109
110 interrupt-controller;
111 #interrupt-cells = <2>;
112 };
113
114 uart0: uart@7e201000 {
115 compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
116 reg = <0x7e201000 0x1000>;
117 interrupts = <2 25>;
118 clocks = <&clocks BCM2835_CLOCK_UART>,
119 <&clocks BCM2835_CLOCK_VPU>;
120 clock-names = "uartclk", "apb_pclk";
121 arm,primecell-periphid = <0x00241011>;
122 };
123
124 i2s: i2s@7e203000 {
125 compatible = "brcm,bcm2835-i2s";
126 reg = <0x7e203000 0x20>,
127 <0x7e101098 0x02>;
128
129 dmas = <&dma 2>,
130 <&dma 3>;
131 dma-names = "tx", "rx";
132 status = "disabled";
133 };
134
135 spi: spi@7e204000 {
136 compatible = "brcm,bcm2835-spi";
137 reg = <0x7e204000 0x1000>;
138 interrupts = <2 22>;
139 clocks = <&clocks BCM2835_CLOCK_VPU>;
140 #address-cells = <1>;
141 #size-cells = <0>;
142 status = "disabled";
143 };
144
145 i2c0: i2c@7e205000 {
146 compatible = "brcm,bcm2835-i2c";
147 reg = <0x7e205000 0x1000>;
148 interrupts = <2 21>;
149 clocks = <&clocks BCM2835_CLOCK_VPU>;
150 #address-cells = <1>;
151 #size-cells = <0>;
152 status = "disabled";
153 };
154
155 aux: aux@0x7e215000 {
156 compatible = "brcm,bcm2835-aux";
157 #clock-cells = <1>;
158 reg = <0x7e215000 0x8>;
159 clocks = <&clocks BCM2835_CLOCK_VPU>;
160 };
161
162 sdhci: sdhci@7e300000 {
163 compatible = "brcm,bcm2835-sdhci";
164 reg = <0x7e300000 0x100>;
165 interrupts = <2 30>;
166 clocks = <&clocks BCM2835_CLOCK_EMMC>;
167 status = "disabled";
168 };
169
170 i2c1: i2c@7e804000 {
171 compatible = "brcm,bcm2835-i2c";
172 reg = <0x7e804000 0x1000>;
173 interrupts = <2 21>;
174 clocks = <&clocks BCM2835_CLOCK_VPU>;
175 #address-cells = <1>;
176 #size-cells = <0>;
177 status = "disabled";
178 };
179
180 i2c2: i2c@7e805000 {
181 compatible = "brcm,bcm2835-i2c";
182 reg = <0x7e805000 0x1000>;
183 interrupts = <2 21>;
184 clocks = <&clocks BCM2835_CLOCK_VPU>;
185 #address-cells = <1>;
186 #size-cells = <0>;
187 status = "disabled";
188 };
189
190 usb@7e980000 {
191 compatible = "brcm,bcm2835-usb";
192 reg = <0x7e980000 0x10000>;
193 interrupts = <1 9>;
194 };
195 };
196
197 clocks {
198 compatible = "simple-bus";
199 #address-cells = <1>;
200 #size-cells = <0>;
201
202 /* The oscillator is the root of the clock tree. */
203 clk_osc: clock@3 {
204 compatible = "fixed-clock";
205 reg = <3>;
206 #clock-cells = <0>;
207 clock-output-names = "osc";
208 clock-frequency = <19200000>;
209 };
210
211 };
212};
diff --git a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
index 446c586cd473..b52927c94e35 100644
--- a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
+++ b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
@@ -50,6 +50,36 @@
50 gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>; 50 gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
51 linux,default-trigger = "default-off"; 51 linux,default-trigger = "default-off";
52 }; 52 };
53
54 wireless {
55 label = "bcm53xx:white:wireless";
56 gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
57 linux,default-trigger = "default-off";
58 };
59
60 wps {
61 label = "bcm53xx:white:wps";
62 gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
63 linux,default-trigger = "default-off";
64 };
65
66 5ghz-2 {
67 label = "bcm53xx:white:5ghz-2";
68 gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
69 linux,default-trigger = "default-off";
70 };
71
72 usb3 {
73 label = "bcm53xx:white:usb3";
74 gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
75 linux,default-trigger = "default-off";
76 };
77
78 usb2 {
79 label = "bcm53xx:white:usb2";
80 gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
81 linux,default-trigger = "default-off";
82 };
53 }; 83 };
54 84
55 gpio-keys { 85 gpio-keys {
diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index 6f50f672efbd..65a1309bd6e2 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -8,6 +8,7 @@
8 * Licensed under the GNU/GPL. See COPYING for details. 8 * Licensed under the GNU/GPL. See COPYING for details.
9 */ 9 */
10 10
11#include <dt-bindings/clock/bcm-nsp.h>
11#include <dt-bindings/gpio/gpio.h> 12#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/input/input.h> 13#include <dt-bindings/input/input.h>
13#include <dt-bindings/interrupt-controller/irq.h> 14#include <dt-bindings/interrupt-controller/irq.h>
@@ -27,7 +28,7 @@
27 compatible = "ns16550"; 28 compatible = "ns16550";
28 reg = <0x0300 0x100>; 29 reg = <0x0300 0x100>;
29 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 30 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
30 clock-frequency = <100000000>; 31 clocks = <&iprocslow>;
31 status = "disabled"; 32 status = "disabled";
32 }; 33 };
33 34
@@ -35,48 +36,55 @@
35 compatible = "ns16550"; 36 compatible = "ns16550";
36 reg = <0x0400 0x100>; 37 reg = <0x0400 0x100>;
37 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 38 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
38 clock-frequency = <100000000>; 39 clocks = <&iprocslow>;
39 status = "disabled"; 40 status = "disabled";
40 }; 41 };
41 }; 42 };
42 43
43 mpcore { 44 mpcore {
44 compatible = "simple-bus"; 45 compatible = "simple-bus";
45 ranges = <0x00000000 0x19020000 0x00003000>; 46 ranges = <0x00000000 0x19000000 0x00023000>;
46 #address-cells = <1>; 47 #address-cells = <1>;
47 #size-cells = <1>; 48 #size-cells = <1>;
48 49
49 scu@0000 { 50 a9pll: arm_clk@00000 {
51 #clock-cells = <0>;
52 compatible = "brcm,nsp-armpll";
53 clocks = <&osc>;
54 reg = <0x00000 0x1000>;
55 };
56
57 scu@20000 {
50 compatible = "arm,cortex-a9-scu"; 58 compatible = "arm,cortex-a9-scu";
51 reg = <0x0000 0x100>; 59 reg = <0x20000 0x100>;
52 }; 60 };
53 61
54 timer@0200 { 62 timer@20200 {
55 compatible = "arm,cortex-a9-global-timer"; 63 compatible = "arm,cortex-a9-global-timer";
56 reg = <0x0200 0x100>; 64 reg = <0x20200 0x100>;
57 interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>; 65 interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
58 clocks = <&clk_periph>; 66 clocks = <&periph_clk>;
59 }; 67 };
60 68
61 local-timer@0600 { 69 local-timer@20600 {
62 compatible = "arm,cortex-a9-twd-timer"; 70 compatible = "arm,cortex-a9-twd-timer";
63 reg = <0x0600 0x100>; 71 reg = <0x20600 0x100>;
64 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>; 72 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>;
65 clocks = <&clk_periph>; 73 clocks = <&periph_clk>;
66 }; 74 };
67 75
68 gic: interrupt-controller@1000 { 76 gic: interrupt-controller@21000 {
69 compatible = "arm,cortex-a9-gic"; 77 compatible = "arm,cortex-a9-gic";
70 #interrupt-cells = <3>; 78 #interrupt-cells = <3>;
71 #address-cells = <0>; 79 #address-cells = <0>;
72 interrupt-controller; 80 interrupt-controller;
73 reg = <0x1000 0x1000>, 81 reg = <0x21000 0x1000>,
74 <0x0100 0x100>; 82 <0x20100 0x100>;
75 }; 83 };
76 84
77 L2: cache-controller@2000 { 85 L2: cache-controller@22000 {
78 compatible = "arm,pl310-cache"; 86 compatible = "arm,pl310-cache";
79 reg = <0x2000 0x1000>; 87 reg = <0x22000 0x1000>;
80 cache-unified; 88 cache-unified;
81 arm,shared-override; 89 arm,shared-override;
82 prefetch-data = <1>; 90 prefetch-data = <1>;
@@ -94,14 +102,37 @@
94 102
95 clocks { 103 clocks {
96 #address-cells = <1>; 104 #address-cells = <1>;
97 #size-cells = <0>; 105 #size-cells = <1>;
106 ranges;
98 107
99 /* As long as we do not have a real clock driver us this 108 osc: oscillator {
100 * fixed clock */ 109 #clock-cells = <0>;
101 clk_periph: periph {
102 compatible = "fixed-clock"; 110 compatible = "fixed-clock";
111 clock-frequency = <25000000>;
112 };
113
114 iprocmed: iprocmed {
115 #clock-cells = <0>;
116 compatible = "fixed-factor-clock";
117 clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
118 clock-div = <2>;
119 clock-mult = <1>;
120 };
121
122 iprocslow: iprocslow {
123 #clock-cells = <0>;
124 compatible = "fixed-factor-clock";
125 clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
126 clock-div = <4>;
127 clock-mult = <1>;
128 };
129
130 periph_clk: periph_clk {
103 #clock-cells = <0>; 131 #clock-cells = <0>;
104 clock-frequency = <400000000>; 132 compatible = "fixed-factor-clock";
133 clocks = <&a9pll>;
134 clock-div = <2>;
135 clock-mult = <1>;
105 }; 136 };
106 }; 137 };
107 138
@@ -178,6 +209,25 @@
178 }; 209 };
179 }; 210 };
180 211
212 lcpll0: lcpll0@1800c100 {
213 #clock-cells = <1>;
214 compatible = "brcm,nsp-lcpll0";
215 reg = <0x1800c100 0x14>;
216 clocks = <&osc>;
217 clock-output-names = "lcpll0", "pcie_phy", "sdio",
218 "ddr_phy";
219 };
220
221 genpll: genpll@1800c140 {
222 #clock-cells = <1>;
223 compatible = "brcm,nsp-genpll";
224 reg = <0x1800c140 0x24>;
225 clocks = <&osc>;
226 clock-output-names = "genpll", "phy", "ethernetclk",
227 "usbclk", "iprocfast", "sata1",
228 "sata2";
229 };
230
181 nand: nand@18028000 { 231 nand: nand@18028000 {
182 compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand"; 232 compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand";
183 reg = <0x18028000 0x600>, <0x1811a408 0x600>, <0x18028f00 0x20>; 233 reg = <0x18028000 0x600>, <0x1811a408 0x600>, <0x18028f00 0x20>;
diff --git a/arch/arm/boot/dts/bcm63138.dtsi b/arch/arm/boot/dts/bcm63138.dtsi
index 34cd64051250..d0560e8cd6de 100644
--- a/arch/arm/boot/dts/bcm63138.dtsi
+++ b/arch/arm/boot/dts/bcm63138.dtsi
@@ -43,18 +43,31 @@
43 #address-cells = <1>; 43 #address-cells = <1>;
44 #size-cells = <0>; 44 #size-cells = <0>;
45 45
46 arm_timer_clk: arm_timer_clk { 46 /* UBUS peripheral clock */
47 #clock-cells = <0>;
48 compatible = "fixed-clock";
49 clock-frequency = <500000000>;
50 };
51
52 periph_clk: periph_clk { 47 periph_clk: periph_clk {
53 #clock-cells = <0>; 48 #clock-cells = <0>;
54 compatible = "fixed-clock"; 49 compatible = "fixed-clock";
55 clock-frequency = <50000000>; 50 clock-frequency = <50000000>;
56 clock-output-names = "periph"; 51 clock-output-names = "periph";
57 }; 52 };
53
54 /* peripheral clock for system timer */
55 axi_clk: axi_clk {
56 #clock-cells = <0>;
57 compatible = "fixed-factor-clock";
58 clocks = <&armpll>;
59 clock-div = <2>;
60 clock-mult = <1>;
61 };
62
63 /* APB bus clock */
64 apb_clk: apb_clk {
65 #clock-cells = <0>;
66 compatible = "fixed-factor-clock";
67 clocks = <&armpll>;
68 clock-div = <4>;
69 clock-mult = <1>;
70 };
58 }; 71 };
59 72
60 /* ARM bus */ 73 /* ARM bus */
@@ -93,14 +106,14 @@
93 compatible = "arm,cortex-a9-global-timer"; 106 compatible = "arm,cortex-a9-global-timer";
94 reg = <0x1e200 0x20>; 107 reg = <0x1e200 0x20>;
95 interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>; 108 interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
96 clocks = <&arm_timer_clk>; 109 clocks = <&axi_clk>;
97 }; 110 };
98 111
99 local_timer: local-timer@1e600 { 112 local_timer: local-timer@1e600 {
100 compatible = "arm,cortex-a9-twd-timer"; 113 compatible = "arm,cortex-a9-twd-timer";
101 reg = <0x1e600 0x20>; 114 reg = <0x1e600 0x20>;
102 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>; 115 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>;
103 clocks = <&arm_timer_clk>; 116 clocks = <&axi_clk>;
104 }; 117 };
105 118
106 twd_watchdog: watchdog@1e620 { 119 twd_watchdog: watchdog@1e620 {
@@ -109,6 +122,13 @@
109 interrupts = <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>; 122 interrupts = <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>;
110 }; 123 };
111 124
125 armpll: armpll {
126 #clock-cells = <0>;
127 compatible = "brcm,bcm63138-armpll";
128 clocks = <&periph_clk>;
129 reg = <0x20000 0xf00>;
130 };
131
112 pmb0: reset-controller@4800c0 { 132 pmb0: reset-controller@4800c0 {
113 compatible = "brcm,bcm63138-pmb"; 133 compatible = "brcm,bcm63138-pmb";
114 reg = <0x4800c0 0x10>; 134 reg = <0x4800c0 0x10>;
diff --git a/arch/arm/boot/dts/bcm94708.dts b/arch/arm/boot/dts/bcm94708.dts
new file mode 100644
index 000000000000..251a486f2da6
--- /dev/null
+++ b/arch/arm/boot/dts/bcm94708.dts
@@ -0,0 +1,56 @@
1/*
2 * BSD LICENSE
3 *
4 * Copyright(c) 2015 Broadcom Corporation. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 * * Neither the name of Broadcom Corporation nor the names of its
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33/dts-v1/;
34
35#include "bcm4708.dtsi"
36
37/ {
38 model = "NorthStar SVK (BCM94708)";
39 compatible = "brcm,bcm94708", "brcm,bcm4708";
40
41 aliases {
42 serial0 = &uart0;
43 };
44
45 chosen {
46 stdout-path = "serial0:115200n8";
47 };
48
49 memory {
50 reg = <0x00000000 0x08000000>;
51 };
52};
53
54&uart0 {
55 status = "okay";
56};
diff --git a/arch/arm/boot/dts/bcm94709.dts b/arch/arm/boot/dts/bcm94709.dts
new file mode 100644
index 000000000000..b16cac92904f
--- /dev/null
+++ b/arch/arm/boot/dts/bcm94709.dts
@@ -0,0 +1,56 @@
1/*
2 * BSD LICENSE
3 *
4 * Copyright(c) 2015 Broadcom Corporation. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 * * Neither the name of Broadcom Corporation nor the names of its
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33/dts-v1/;
34
35#include "bcm4708.dtsi"
36
37/ {
38 model = "NorthStar SVK (BCM94709)";
39 compatible = "brcm,bcm94709", "brcm,bcm4709", "brcm,bcm4708";
40
41 aliases {
42 serial0 = &uart0;
43 };
44
45 chosen {
46 stdout-path = "serial0:115200n8";
47 };
48
49 memory {
50 reg = <0x00000000 0x08000000>;
51 };
52};
53
54&uart0 {
55 status = "okay";
56};
diff --git a/arch/arm/boot/dts/bcm953012k.dts b/arch/arm/boot/dts/bcm953012k.dts
new file mode 100644
index 000000000000..05a985a20378
--- /dev/null
+++ b/arch/arm/boot/dts/bcm953012k.dts
@@ -0,0 +1,63 @@
1/*
2 * BSD LICENSE
3 *
4 * Copyright(c) 2015 Broadcom Corporation. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 * * Neither the name of Broadcom Corporation nor the names of its
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33/dts-v1/;
34
35#include "bcm4708.dtsi"
36
37/ {
38 model = "NorthStar SVK (BCM953012K)";
39 compatible = "brcm,bcm953012k", "brcm,brcm53012", "brcm,bcm4708";
40
41 aliases {
42 serial0 = &uart0;
43 serial1 = &uart1;
44 };
45
46 chosen {
47 stdout-path = "serial0:115200n8";
48 };
49
50 memory {
51 reg = <0x00000000 0x10000000>;
52 };
53};
54
55&uart0 {
56 clock-frequency = <62499840>;
57 status = "okay";
58};
59
60&uart1 {
61 clock-frequency = <62499840>;
62 status = "okay";
63};
diff --git a/arch/arm/boot/dts/bcm958625k.dts b/arch/arm/boot/dts/bcm958625k.dts
index 16303dbd35df..e298450b49b2 100644
--- a/arch/arm/boot/dts/bcm958625k.dts
+++ b/arch/arm/boot/dts/bcm958625k.dts
@@ -55,3 +55,62 @@
55&uart1 { 55&uart1 {
56 status = "okay"; 56 status = "okay";
57}; 57};
58
59&pcie0 {
60 status = "okay";
61};
62
63&pcie1 {
64 status = "okay";
65};
66
67&pcie2 {
68 status = "okay";
69};
70
71&nand {
72 nandcs@0 {
73 compatible = "brcm,nandcs";
74 reg = <0>;
75 nand-on-flash-bbt;
76
77 #address-cells = <1>;
78 #size-cells = <1>;
79
80 nand-ecc-strength = <24>;
81 nand-ecc-step-size = <1024>;
82
83 brcm,nand-oob-sector-size = <27>;
84
85 partition@0 {
86 label = "nboot";
87 reg = <0x00000000 0x00200000>;
88 read-only;
89 };
90 partition@1 {
91 label = "nenv";
92 reg = <0x00200000 0x00400000>;
93 };
94 partition@2 {
95 label = "nsystem";
96 reg = <0x00600000 0x00a00000>;
97 };
98 partition@3 {
99 label = "nrootfs";
100 reg = <0x01000000 0x03000000>;
101 };
102 partition@4 {
103 label = "ncustfs";
104 reg = <0x04000000 0x3c000000>;
105 };
106 };
107};
108
109&pinctrl {
110 pinctrl-names = "default";
111 pinctrl-0 = <&nand_sel>;
112 nand_sel: nand_sel {
113 function = "nand";
114 groups = "nand_grp";
115 };
116};
diff --git a/arch/arm/boot/dts/berlin2.dtsi b/arch/arm/boot/dts/berlin2.dtsi
index eaadac3bdd44..ae81009741ff 100644
--- a/arch/arm/boot/dts/berlin2.dtsi
+++ b/arch/arm/boot/dts/berlin2.dtsi
@@ -435,6 +435,29 @@
435 ranges = <0 0xfc0000 0x10000>; 435 ranges = <0 0xfc0000 0x10000>;
436 interrupt-parent = <&sic>; 436 interrupt-parent = <&sic>;
437 437
438 wdt0: watchdog@1000 {
439 compatible = "snps,dw-wdt";
440 reg = <0x1000 0x100>;
441 clocks = <&refclk>;
442 interrupts = <0>;
443 };
444
445 wdt1: watchdog@2000 {
446 compatible = "snps,dw-wdt";
447 reg = <0x2000 0x100>;
448 clocks = <&refclk>;
449 interrupts = <1>;
450 status = "disabled";
451 };
452
453 wdt2: watchdog@3000 {
454 compatible = "snps,dw-wdt";
455 reg = <0x3000 0x100>;
456 clocks = <&refclk>;
457 interrupts = <2>;
458 status = "disabled";
459 };
460
438 sm_gpio1: gpio@5000 { 461 sm_gpio1: gpio@5000 {
439 compatible = "snps,dw-apb-gpio"; 462 compatible = "snps,dw-apb-gpio";
440 reg = <0x5000 0x400>; 463 reg = <0x5000 0x400>;
diff --git a/arch/arm/boot/dts/berlin2cd.dtsi b/arch/arm/boot/dts/berlin2cd.dtsi
index b16df157214d..6d06b6118d83 100644
--- a/arch/arm/boot/dts/berlin2cd.dtsi
+++ b/arch/arm/boot/dts/berlin2cd.dtsi
@@ -396,6 +396,29 @@
396 ranges = <0 0xfc0000 0x10000>; 396 ranges = <0 0xfc0000 0x10000>;
397 interrupt-parent = <&sic>; 397 interrupt-parent = <&sic>;
398 398
399 wdt0: watchdog@1000 {
400 compatible = "snps,dw-wdt";
401 reg = <0x1000 0x100>;
402 clocks = <&refclk>;
403 interrupts = <0>;
404 };
405
406 wdt1: watchdog@2000 {
407 compatible = "snps,dw-wdt";
408 reg = <0x2000 0x100>;
409 clocks = <&refclk>;
410 interrupts = <1>;
411 status = "disabled";
412 };
413
414 wdt2: watchdog@3000 {
415 compatible = "snps,dw-wdt";
416 reg = <0x3000 0x100>;
417 clocks = <&refclk>;
418 interrupts = <2>;
419 status = "disabled";
420 };
421
399 sm_gpio1: gpio@5000 { 422 sm_gpio1: gpio@5000 {
400 compatible = "snps,dw-apb-gpio"; 423 compatible = "snps,dw-apb-gpio";
401 reg = <0x5000 0x400>; 424 reg = <0x5000 0x400>;
diff --git a/arch/arm/boot/dts/berlin2q-marvell-dmp.dts b/arch/arm/boot/dts/berlin2q-marvell-dmp.dts
index da28c9704a9d..33b28757b8f6 100644
--- a/arch/arm/boot/dts/berlin2q-marvell-dmp.dts
+++ b/arch/arm/boot/dts/berlin2q-marvell-dmp.dts
@@ -84,17 +84,49 @@
84 gpio = <&portb 12 GPIO_ACTIVE_HIGH>; 84 gpio = <&portb 12 GPIO_ACTIVE_HIGH>;
85 enable-active-high; 85 enable-active-high;
86 }; 86 };
87
88 reg_sdio1_vmmc: regulator@3 {
89 compatible = "regulator-fixed";
90 regulator-min-microvolt = <3300000>;
91 regulator-max-microvolt = <3300000>;
92 regulator-name = "sdio1_vmmc";
93 enable-active-high;
94 regulator-boot-on;
95 gpio = <&portb 21 GPIO_ACTIVE_HIGH>;
96 };
97
98 reg_sdio1_vqmmc: regulator@4 {
99 compatible = "regulator-gpio";
100 regulator-min-microvolt = <1800000>;
101 regulator-max-microvolt = <3300000>;
102 regulator-name = "sdio1_vqmmc";
103 regulator-type = "voltage";
104 enable-active-high;
105 gpios = <&portb 16 GPIO_ACTIVE_HIGH>;
106 states = <3300000 0x1
107 1800000 0x0>;
108 };
109 };
110};
111
112&soc_pinctrl {
113 sd1gpio_pmux: sd1pwr-pmux {
114 groups = "G23", "G32";
115 function = "gpio";
87 }; 116 };
88}; 117};
89 118
90&sdhci1 { 119&sdhci1 {
91 broken-cd; 120 vmmc-supply = <&reg_sdio1_vmmc>;
92 sdhci,wp-inverted; 121 vqmmc-supply = <&reg_sdio1_vqmmc>;
122 cd-gpios = <&portc 30 GPIO_ACTIVE_LOW>;
123 wp-gpios = <&portd 0 GPIO_ACTIVE_HIGH>;
124 pinctrl-0 = <&sd1gpio_pmux>, <&sd1_pmux>;
125 pinctrl-names = "default";
93 status = "okay"; 126 status = "okay";
94}; 127};
95 128
96&sdhci2 { 129&sdhci2 {
97 broken-cd;
98 bus-width = <8>; 130 bus-width = <8>;
99 non-removable; 131 non-removable;
100 status = "okay"; 132 status = "okay";
diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi
index fb1da99996ea..2c34bfb13632 100644
--- a/arch/arm/boot/dts/berlin2q.dtsi
+++ b/arch/arm/boot/dts/berlin2q.dtsi
@@ -311,7 +311,6 @@
311 #address-cells = <1>; 311 #address-cells = <1>;
312 #size-cells = <0>; 312 #size-cells = <0>;
313 reg = <0x1400 0x100>; 313 reg = <0x1400 0x100>;
314 interrupt-parent = <&aic>;
315 interrupts = <4>; 314 interrupts = <4>;
316 clocks = <&chip_clk CLKID_CFG>; 315 clocks = <&chip_clk CLKID_CFG>;
317 pinctrl-0 = <&twsi0_pmux>; 316 pinctrl-0 = <&twsi0_pmux>;
@@ -324,7 +323,6 @@
324 #address-cells = <1>; 323 #address-cells = <1>;
325 #size-cells = <0>; 324 #size-cells = <0>;
326 reg = <0x1800 0x100>; 325 reg = <0x1800 0x100>;
327 interrupt-parent = <&aic>;
328 interrupts = <5>; 326 interrupts = <5>;
329 clocks = <&chip_clk CLKID_CFG>; 327 clocks = <&chip_clk CLKID_CFG>;
330 pinctrl-0 = <&twsi1_pmux>; 328 pinctrl-0 = <&twsi1_pmux>;
@@ -419,6 +417,11 @@
419 soc_pinctrl: pin-controller { 417 soc_pinctrl: pin-controller {
420 compatible = "marvell,berlin2q-soc-pinctrl"; 418 compatible = "marvell,berlin2q-soc-pinctrl";
421 419
420 sd1_pmux: sd1-pmux {
421 groups = "G31";
422 function = "sd1";
423 };
424
422 twsi0_pmux: twsi0-pmux { 425 twsi0_pmux: twsi0-pmux {
423 groups = "G6"; 426 groups = "G6";
424 function = "twsi0"; 427 function = "twsi0";
@@ -510,6 +513,29 @@
510 ranges = <0 0xfc0000 0x10000>; 513 ranges = <0 0xfc0000 0x10000>;
511 interrupt-parent = <&sic>; 514 interrupt-parent = <&sic>;
512 515
516 wdt0: watchdog@1000 {
517 compatible = "snps,dw-wdt";
518 reg = <0x1000 0x100>;
519 clocks = <&refclk>;
520 interrupts = <0>;
521 };
522
523 wdt1: watchdog@2000 {
524 compatible = "snps,dw-wdt";
525 reg = <0x2000 0x100>;
526 clocks = <&refclk>;
527 interrupts = <1>;
528 status = "disabled";
529 };
530
531 wdt2: watchdog@3000 {
532 compatible = "snps,dw-wdt";
533 reg = <0x3000 0x100>;
534 clocks = <&refclk>;
535 interrupts = <2>;
536 status = "disabled";
537 };
538
513 sm_gpio1: gpio@5000 { 539 sm_gpio1: gpio@5000 {
514 compatible = "snps,dw-apb-gpio"; 540 compatible = "snps,dw-apb-gpio";
515 reg = <0x5000 0x400>; 541 reg = <0x5000 0x400>;
@@ -530,7 +556,6 @@
530 #address-cells = <1>; 556 #address-cells = <1>;
531 #size-cells = <0>; 557 #size-cells = <0>;
532 reg = <0x7000 0x100>; 558 reg = <0x7000 0x100>;
533 interrupt-parent = <&sic>;
534 interrupts = <6>; 559 interrupts = <6>;
535 clocks = <&refclk>; 560 clocks = <&refclk>;
536 pinctrl-0 = <&twsi2_pmux>; 561 pinctrl-0 = <&twsi2_pmux>;
@@ -543,7 +568,6 @@
543 #address-cells = <1>; 568 #address-cells = <1>;
544 #size-cells = <0>; 569 #size-cells = <0>;
545 reg = <0x8000 0x100>; 570 reg = <0x8000 0x100>;
546 interrupt-parent = <&sic>;
547 interrupts = <7>; 571 interrupts = <7>;
548 clocks = <&refclk>; 572 clocks = <&refclk>;
549 pinctrl-0 = <&twsi3_pmux>; 573 pinctrl-0 = <&twsi3_pmux>;
@@ -554,7 +578,6 @@
554 uart0: uart@9000 { 578 uart0: uart@9000 {
555 compatible = "snps,dw-apb-uart"; 579 compatible = "snps,dw-apb-uart";
556 reg = <0x9000 0x100>; 580 reg = <0x9000 0x100>;
557 interrupt-parent = <&sic>;
558 interrupts = <8>; 581 interrupts = <8>;
559 clocks = <&refclk>; 582 clocks = <&refclk>;
560 reg-shift = <2>; 583 reg-shift = <2>;
@@ -566,7 +589,6 @@
566 uart1: uart@a000 { 589 uart1: uart@a000 {
567 compatible = "snps,dw-apb-uart"; 590 compatible = "snps,dw-apb-uart";
568 reg = <0xa000 0x100>; 591 reg = <0xa000 0x100>;
569 interrupt-parent = <&sic>;
570 interrupts = <9>; 592 interrupts = <9>;
571 clocks = <&refclk>; 593 clocks = <&refclk>;
572 reg-shift = <2>; 594 reg-shift = <2>;
diff --git a/arch/arm/boot/dts/compulab-sb-som.dtsi b/arch/arm/boot/dts/compulab-sb-som.dtsi
new file mode 100644
index 000000000000..93d7e235bc80
--- /dev/null
+++ b/arch/arm/boot/dts/compulab-sb-som.dtsi
@@ -0,0 +1,49 @@
1/*
2 * Copyright (C) 2015 CompuLab, Ltd. - http://www.compulab.co.il/
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9/ {
10 model = "CompuLab SB-SOM";
11 compatible = "compulab,sb-som";
12
13 vsb_3v3: fixedregulator-v3_3 {
14 compatible = "regulator-fixed";
15 regulator-name = "vsb_3v3";
16 regulator-min-microvolt = <3300000>;
17 regulator-max-microvolt = <3300000>;
18 regulator-always-on;
19 enable-active-high;
20 };
21
22 lcd0: display {
23 compatible = "startek,startek-kd050c", "panel-dpi";
24 label = "lcd";
25
26 panel-timing {
27 clock-frequency = <33000000>;
28 hactive = <800>;
29 vactive = <480>;
30 hfront-porch = <40>;
31 hback-porch = <40>;
32 hsync-len = <43>;
33 vback-porch = <29>;
34 vfront-porch = <13>;
35 vsync-len = <3>;
36 hsync-active = <0>;
37 vsync-active = <0>;
38 de-active = <1>;
39 pixelclk-active = <1>;
40 };
41 };
42
43 hdmi_conn: connector@0 {
44 compatible = "hdmi-connector";
45 label = "hdmi";
46
47 type = "a";
48 };
49};
diff --git a/arch/arm/boot/dts/da850-enbw-cmc.dts b/arch/arm/boot/dts/da850-enbw-cmc.dts
index e750ab9086d5..645549e14237 100644
--- a/arch/arm/boot/dts/da850-enbw-cmc.dts
+++ b/arch/arm/boot/dts/da850-enbw-cmc.dts
@@ -28,3 +28,11 @@
28 }; 28 };
29 }; 29 };
30}; 30};
31
32&edma0 {
33 ti,edma-reserved-slot-ranges = <32 50>;
34};
35
36&edma1 {
37 ti,edma-reserved-slot-ranges = <32 90>;
38};
diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts
index 4f935ad9f27b..ef061e9a2315 100644
--- a/arch/arm/boot/dts/da850-evm.dts
+++ b/arch/arm/boot/dts/da850-evm.dts
@@ -242,3 +242,11 @@
242 tx-num-evt = <32>; 242 tx-num-evt = <32>;
243 rx-num-evt = <32>; 243 rx-num-evt = <32>;
244}; 244};
245
246&edma0 {
247 ti,edma-reserved-slot-ranges = <32 50>;
248};
249
250&edma1 {
251 ti,edma-reserved-slot-ranges = <32 90>;
252};
diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi
index 0bd98cd00816..226cda76e77c 100644
--- a/arch/arm/boot/dts/da850.dtsi
+++ b/arch/arm/boot/dts/da850.dtsi
@@ -151,10 +151,44 @@
151 151
152 }; 152 };
153 edma0: edma@01c00000 { 153 edma0: edma@01c00000 {
154 compatible = "ti,edma3"; 154 compatible = "ti,edma3-tpcc";
155 reg = <0x0 0x10000>; 155 /* eDMA3 CC0: 0x01c0 0000 - 0x01c0 7fff */
156 interrupts = <11 13 12>; 156 reg = <0x0 0x8000>;
157 #dma-cells = <1>; 157 reg-names = "edma3_cc";
158 interrupts = <11 12>;
159 interrupt-names = "edma3_ccint", "edma3_ccerrint";
160 #dma-cells = <2>;
161
162 ti,tptcs = <&edma0_tptc0 7>, <&edma0_tptc1 0>;
163 };
164 edma0_tptc0: tptc@01c08000 {
165 compatible = "ti,edma3-tptc";
166 reg = <0x8000 0x400>;
167 interrupts = <13>;
168 interrupt-names = "edm3_tcerrint";
169 };
170 edma0_tptc1: tptc@01c08400 {
171 compatible = "ti,edma3-tptc";
172 reg = <0x8400 0x400>;
173 interrupts = <32>;
174 interrupt-names = "edm3_tcerrint";
175 };
176 edma1: edma@01e30000 {
177 compatible = "ti,edma3-tpcc";
178 /* eDMA3 CC1: 0x01e3 0000 - 0x01e3 7fff */
179 reg = <0x230000 0x8000>;
180 reg-names = "edma3_cc";
181 interrupts = <93 94>;
182 interrupt-names = "edma3_ccint", "edma3_ccerrint";
183 #dma-cells = <2>;
184
185 ti,tptcs = <&edma1_tptc0 7>;
186 };
187 edma1_tptc0: tptc@01e38000 {
188 compatible = "ti,edma3-tptc";
189 reg = <0x238000 0x400>;
190 interrupts = <95>;
191 interrupt-names = "edm3_tcerrint";
158 }; 192 };
159 serial0: serial@1c42000 { 193 serial0: serial@1c42000 {
160 compatible = "ns16550a"; 194 compatible = "ns16550a";
@@ -201,6 +235,16 @@
201 compatible = "ti,da830-mmc"; 235 compatible = "ti,da830-mmc";
202 reg = <0x40000 0x1000>; 236 reg = <0x40000 0x1000>;
203 interrupts = <16>; 237 interrupts = <16>;
238 dmas = <&edma0 16 0>, <&edma0 17 0>;
239 dma-names = "rx", "tx";
240 status = "disabled";
241 };
242 mmc1: mmc@1e1b000 {
243 compatible = "ti,da830-mmc";
244 reg = <0x21b000 0x1000>;
245 interrupts = <72>;
246 dmas = <&edma1 28 0>, <&edma1 29 0>;
247 dma-names = "rx", "tx";
204 status = "disabled"; 248 status = "disabled";
205 }; 249 };
206 ehrpwm0: ehrpwm@01f00000 { 250 ehrpwm0: ehrpwm@01f00000 {
@@ -241,6 +285,8 @@
241 num-cs = <4>; 285 num-cs = <4>;
242 ti,davinci-spi-intr-line = <1>; 286 ti,davinci-spi-intr-line = <1>;
243 interrupts = <56>; 287 interrupts = <56>;
288 dmas = <&edma0 18 0>, <&edma0 19 0>;
289 dma-names = "rx", "tx";
244 status = "disabled"; 290 status = "disabled";
245 }; 291 };
246 mdio: mdio@1e24000 { 292 mdio: mdio@1e24000 {
@@ -285,8 +331,8 @@
285 interrupts = <54>; 331 interrupts = <54>;
286 interrupt-names = "common"; 332 interrupt-names = "common";
287 status = "disabled"; 333 status = "disabled";
288 dmas = <&edma0 1>, 334 dmas = <&edma0 1 1>,
289 <&edma0 0>; 335 <&edma0 0 1>;
290 dma-names = "tx", "rx"; 336 dma-names = "tx", "rx";
291 }; 337 };
292 }; 338 };
diff --git a/arch/arm/boot/dts/dm8148-evm.dts b/arch/arm/boot/dts/dm8148-evm.dts
index 109fd4711647..e070862b1038 100644
--- a/arch/arm/boot/dts/dm8148-evm.dts
+++ b/arch/arm/boot/dts/dm8148-evm.dts
@@ -15,6 +15,14 @@
15 device_type = "memory"; 15 device_type = "memory";
16 reg = <0x80000000 0x40000000>; /* 1 GB */ 16 reg = <0x80000000 0x40000000>; /* 1 GB */
17 }; 17 };
18
19 /* MIC94060YC6 controlled by SD1_POW pin */
20 vmmcsd_fixed: fixedregulator@0 {
21 compatible = "regulator-fixed";
22 regulator-name = "vmmcsd_fixed";
23 regulator-min-microvolt = <3300000>;
24 regulator-max-microvolt = <3300000>;
25 };
18}; 26};
19 27
20&cpsw_emac0 { 28&cpsw_emac0 {
@@ -26,3 +34,50 @@
26 phy_id = <&davinci_mdio>, <1>; 34 phy_id = <&davinci_mdio>, <1>;
27 phy-mode = "rgmii"; 35 phy-mode = "rgmii";
28}; 36};
37
38&mmc2 {
39 pinctrl-names = "default";
40 pinctrl-0 = <&sd1_pins>;
41 vmmc-supply = <&vmmcsd_fixed>;
42 bus-width = <4>;
43 cd-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
44};
45
46&pincntl {
47 sd1_pins: pinmux_sd1_pins {
48 pinctrl-single,pins = <
49 DM814X_IOPAD(0x0800, PIN_INPUT | 0x1) /* SD1_CLK */
50 DM814X_IOPAD(0x0804, PIN_INPUT_PULLUP | 0x1) /* SD1_CMD */
51 DM814X_IOPAD(0x0808, PIN_INPUT_PULLUP | 0x1) /* SD1_DAT[0] */
52 DM814X_IOPAD(0x080c, PIN_INPUT_PULLUP | 0x1) /* SD1_DAT[1] */
53 DM814X_IOPAD(0x0810, PIN_INPUT_PULLUP | 0x1) /* SD1_DAT[2] */
54 DM814X_IOPAD(0x0814, PIN_INPUT_PULLUP | 0x1) /* SD1_DAT[3] */
55 DM814X_IOPAD(0x0924, PIN_OUTPUT | 0x40) /* SD1_POW */
56 DM814X_IOPAD(0x093C, PIN_INPUT_PULLUP | 0x80) /* GP1[6] */
57 >;
58 };
59
60 usb0_pins: pinmux_usb0_pins {
61 pinctrl-single,pins = <
62 DM814X_IOPAD(0x0c34, PIN_OUTPUT | 0x1) /* USB0_DRVVBUS */
63 >;
64 };
65
66 usb1_pins: pinmux_usb1_pins {
67 pinctrl-single,pins = <
68 DM814X_IOPAD(0x0834, PIN_OUTPUT | 0x80) /* USB1_DRVVBUS */
69 >;
70 };
71};
72
73&usb0 {
74 pinctrl-names = "default";
75 pinctrl-0 = <&usb0_pins>;
76 dr_mode = "host";
77};
78
79&usb1 {
80 pinctrl-names = "default";
81 pinctrl-0 = <&usb1_pins>;
82 dr_mode = "host";
83};
diff --git a/arch/arm/boot/dts/dm8148-t410.dts b/arch/arm/boot/dts/dm8148-t410.dts
index 79838dd8dee7..5d4313fd5a46 100644
--- a/arch/arm/boot/dts/dm8148-t410.dts
+++ b/arch/arm/boot/dts/dm8148-t410.dts
@@ -15,6 +15,24 @@
15 device_type = "memory"; 15 device_type = "memory";
16 reg = <0x80000000 0x40000000>; /* 1 GB */ 16 reg = <0x80000000 0x40000000>; /* 1 GB */
17 }; 17 };
18
19 /* gpio9 seems to control USB VBUS regulator and/or hub power */
20 usb_power: regulator@9 {
21 compatible = "regulator-fixed";
22 regulator-name = "usb_power";
23 regulator-min-microvolt = <5000000>;
24 regulator-max-microvolt = <5000000>;
25 gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
26 enable-active-high;
27 regulator-always-on;
28 };
29
30 vmmcsd_fixed: fixedregulator@0 {
31 compatible = "regulator-fixed";
32 regulator-name = "vmmcsd_fixed";
33 regulator-min-microvolt = <3300000>;
34 regulator-max-microvolt = <3300000>;
35 };
18}; 36};
19 37
20&cpsw_emac0 { 38&cpsw_emac0 {
@@ -26,3 +44,55 @@
26 phy_id = <&davinci_mdio>, <1>; 44 phy_id = <&davinci_mdio>, <1>;
27 phy-mode = "rgmii"; 45 phy-mode = "rgmii";
28}; 46};
47
48&mmc3 {
49 pinctrl-names = "default";
50 pinctrl-0 = <&sd2_pins>;
51 vmmc-supply = <&vmmcsd_fixed>;
52 bus-width = <8>;
53 dmas = <&edma_xbar 8 0 1 /* use SDTXEVT1 instead of MCASP0TX */
54 &edma_xbar 9 0 2>; /* use SDRXEVT1 instead of MCASP0RX */
55 dma-names = "tx", "rx";
56};
57
58&pincntl {
59 sd2_pins: pinmux_sd2_pins {
60 pinctrl-single,pins = <
61 DM814X_IOPAD(0x09c0, PIN_INPUT_PULLUP | 0x1) /* SD2_DAT[7] */
62 DM814X_IOPAD(0x09c4, PIN_INPUT_PULLUP | 0x1) /* SD2_DAT[6] */
63 DM814X_IOPAD(0x09c8, PIN_INPUT_PULLUP | 0x1) /* SD2_DAT[5] */
64 DM814X_IOPAD(0x09cc, PIN_INPUT_PULLUP | 0x1) /* SD2_DAT[4] */
65 DM814X_IOPAD(0x09d0, PIN_INPUT_PULLUP | 0x1) /* SD2_DAT[3] */
66 DM814X_IOPAD(0x09d4, PIN_INPUT_PULLUP | 0x1) /* SD2_DAT[2] */
67 DM814X_IOPAD(0x09d8, PIN_INPUT_PULLUP | 0x1) /* SD2_DAT[1] */
68 DM814X_IOPAD(0x09dc, PIN_INPUT_PULLUP | 0x1) /* SD2_DAT[0] */
69 DM814X_IOPAD(0x09e0, PIN_INPUT | 0x1) /* SD2_CLK */
70 DM814X_IOPAD(0x09f4, PIN_INPUT_PULLUP | 0x2) /* SD2_CMD */
71 DM814X_IOPAD(0x0920, PIN_INPUT | 40) /* SD2_SDCD */
72 >;
73 };
74
75 usb0_pins: pinmux_usb0_pins {
76 pinctrl-single,pins = <
77 DM814X_IOPAD(0x0c34, PIN_OUTPUT | 0x1) /* USB0_DRVVBUS */
78 >;
79 };
80
81 usb1_pins: pinmux_usb1_pins {
82 pinctrl-single,pins = <
83 DM814X_IOPAD(0x0834, PIN_OUTPUT | 0x80) /* USB1_DRVVBUS */
84 >;
85 };
86};
87
88&usb0 {
89 pinctrl-names = "default";
90 pinctrl-0 = <&usb0_pins>;
91 dr_mode = "host";
92};
93
94&usb1 {
95 pinctrl-names = "default";
96 pinctrl-0 = <&usb1_pins>;
97 dr_mode = "host";
98};
diff --git a/arch/arm/boot/dts/dm814x.dtsi b/arch/arm/boot/dts/dm814x.dtsi
index 09a8d88bde23..a25cd51e39ab 100644
--- a/arch/arm/boot/dts/dm814x.dtsi
+++ b/arch/arm/boot/dts/dm814x.dtsi
@@ -5,7 +5,7 @@
5 */ 5 */
6 6
7#include <dt-bindings/gpio/gpio.h> 7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/pinctrl/omap.h> 8#include <dt-bindings/pinctrl/dm814x.h>
9 9
10#include "skeleton.dtsi" 10#include "skeleton.dtsi"
11 11
@@ -21,6 +21,10 @@
21 serial2 = &uart3; 21 serial2 = &uart3;
22 ethernet0 = &cpsw_emac0; 22 ethernet0 = &cpsw_emac0;
23 ethernet1 = &cpsw_emac1; 23 ethernet1 = &cpsw_emac1;
24 usb0 = &usb0;
25 usb1 = &usb1;
26 phy0 = &usb0_phy;
27 phy1 = &usb1_phy;
24 }; 28 };
25 29
26 cpus { 30 cpus {
@@ -57,6 +61,113 @@
57 ranges; 61 ranges;
58 ti,hwmods = "l3_main"; 62 ti,hwmods = "l3_main";
59 63
64 usb: usb@47400000 {
65 compatible = "ti,am33xx-usb";
66 reg = <0x47400000 0x1000>;
67 ranges;
68 #address-cells = <1>;
69 #size-cells = <1>;
70 ti,hwmods = "usb_otg_hs";
71
72 usb0_phy: usb-phy@47401300 {
73 compatible = "ti,am335x-usb-phy";
74 reg = <0x47401300 0x100>;
75 reg-names = "phy";
76 ti,ctrl_mod = <&usb_ctrl_mod>;
77 };
78
79 usb0: usb@47401000 {
80 compatible = "ti,musb-am33xx";
81 reg = <0x47401400 0x400
82 0x47401000 0x200>;
83 reg-names = "mc", "control";
84
85 interrupts = <18>;
86 interrupt-names = "mc";
87 dr_mode = "otg";
88 mentor,multipoint = <1>;
89 mentor,num-eps = <16>;
90 mentor,ram-bits = <12>;
91 mentor,power = <500>;
92 phys = <&usb0_phy>;
93
94 dmas = <&cppi41dma 0 0 &cppi41dma 1 0
95 &cppi41dma 2 0 &cppi41dma 3 0
96 &cppi41dma 4 0 &cppi41dma 5 0
97 &cppi41dma 6 0 &cppi41dma 7 0
98 &cppi41dma 8 0 &cppi41dma 9 0
99 &cppi41dma 10 0 &cppi41dma 11 0
100 &cppi41dma 12 0 &cppi41dma 13 0
101 &cppi41dma 14 0 &cppi41dma 0 1
102 &cppi41dma 1 1 &cppi41dma 2 1
103 &cppi41dma 3 1 &cppi41dma 4 1
104 &cppi41dma 5 1 &cppi41dma 6 1
105 &cppi41dma 7 1 &cppi41dma 8 1
106 &cppi41dma 9 1 &cppi41dma 10 1
107 &cppi41dma 11 1 &cppi41dma 12 1
108 &cppi41dma 13 1 &cppi41dma 14 1>;
109 dma-names =
110 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
111 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
112 "rx14", "rx15",
113 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
114 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
115 "tx14", "tx15";
116 };
117
118 usb1: usb@47401800 {
119 compatible = "ti,musb-am33xx";
120 reg = <0x47401c00 0x400
121 0x47401800 0x200>;
122 reg-names = "mc", "control";
123 interrupts = <19>;
124 interrupt-names = "mc";
125 dr_mode = "otg";
126 mentor,multipoint = <1>;
127 mentor,num-eps = <16>;
128 mentor,ram-bits = <12>;
129 mentor,power = <500>;
130 phys = <&usb1_phy>;
131
132 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
133 &cppi41dma 17 0 &cppi41dma 18 0
134 &cppi41dma 19 0 &cppi41dma 20 0
135 &cppi41dma 21 0 &cppi41dma 22 0
136 &cppi41dma 23 0 &cppi41dma 24 0
137 &cppi41dma 25 0 &cppi41dma 26 0
138 &cppi41dma 27 0 &cppi41dma 28 0
139 &cppi41dma 29 0 &cppi41dma 15 1
140 &cppi41dma 16 1 &cppi41dma 17 1
141 &cppi41dma 18 1 &cppi41dma 19 1
142 &cppi41dma 20 1 &cppi41dma 21 1
143 &cppi41dma 22 1 &cppi41dma 23 1
144 &cppi41dma 24 1 &cppi41dma 25 1
145 &cppi41dma 26 1 &cppi41dma 27 1
146 &cppi41dma 28 1 &cppi41dma 29 1>;
147 dma-names =
148 "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
149 "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
150 "rx14", "rx15",
151 "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
152 "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
153 "tx14", "tx15";
154 };
155
156 cppi41dma: dma-controller@47402000 {
157 compatible = "ti,am3359-cppi41";
158 reg = <0x47400000 0x1000
159 0x47402000 0x1000
160 0x47403000 0x1000
161 0x47404000 0x4000>;
162 reg-names = "glue", "controller", "scheduler", "queuemgr";
163 interrupts = <17>;
164 interrupt-names = "glue";
165 #dma-cells = <2>;
166 #dma-channels = <30>;
167 #dma-requests = <256>;
168 };
169 };
170
60 /* 171 /*
61 * See TRM "Table 1-317. L4LS Instance Summary" for hints. 172 * See TRM "Table 1-317. L4LS Instance Summary" for hints.
62 * It shows the module target agent registers though, so the 173 * It shows the module target agent registers though, so the
@@ -126,8 +237,8 @@
126 interrupts = <65>; 237 interrupts = <65>;
127 ti,spi-num-cs = <4>; 238 ti,spi-num-cs = <4>;
128 ti,hwmods = "mcspi1"; 239 ti,hwmods = "mcspi1";
129 dmas = <&edma 16 &edma 17 240 dmas = <&edma 16 0 &edma 17 0
130 &edma 18 &edma 19>; 241 &edma 18 0 &edma 19 0>;
131 dma-names = "tx0", "rx0", "tx1", "rx1"; 242 dma-names = "tx0", "rx0", "tx1", "rx1";
132 }; 243 };
133 244
@@ -145,7 +256,7 @@
145 reg = <0x20000 0x2000>; 256 reg = <0x20000 0x2000>;
146 clock-frequency = <48000000>; 257 clock-frequency = <48000000>;
147 interrupts = <72>; 258 interrupts = <72>;
148 dmas = <&edma 26 &edma 27>; 259 dmas = <&edma 26 0 &edma 27 0>;
149 dma-names = "tx", "rx"; 260 dma-names = "tx", "rx";
150 }; 261 };
151 262
@@ -155,7 +266,7 @@
155 reg = <0x22000 0x2000>; 266 reg = <0x22000 0x2000>;
156 clock-frequency = <48000000>; 267 clock-frequency = <48000000>;
157 interrupts = <73>; 268 interrupts = <73>;
158 dmas = <&edma 28 &edma 29>; 269 dmas = <&edma 28 0 &edma 29 0>;
159 dma-names = "tx", "rx"; 270 dma-names = "tx", "rx";
160 }; 271 };
161 272
@@ -165,7 +276,7 @@
165 reg = <0x24000 0x2000>; 276 reg = <0x24000 0x2000>;
166 clock-frequency = <48000000>; 277 clock-frequency = <48000000>;
167 interrupts = <74>; 278 interrupts = <74>;
168 dmas = <&edma 30 &edma 31>; 279 dmas = <&edma 30 0 &edma 31 0>;
169 dma-names = "tx", "rx"; 280 dma-names = "tx", "rx";
170 }; 281 };
171 282
@@ -183,6 +294,28 @@
183 ti,hwmods = "timer3"; 294 ti,hwmods = "timer3";
184 }; 295 };
185 296
297 mmc1: mmc@60000 {
298 compatible = "ti,omap4-hsmmc";
299 ti,hwmods = "mmc1";
300 dmas = <&edma 24 0
301 &edma 25 0>;
302 dma-names = "tx", "rx";
303 interrupts = <64>;
304 interrupt-parent = <&intc>;
305 reg = <0x60000 0x1000>;
306 };
307
308 mmc2: mmc@1d8000 {
309 compatible = "ti,omap4-hsmmc";
310 ti,hwmods = "mmc2";
311 dmas = <&edma 2 0
312 &edma 3 0>;
313 dma-names = "tx", "rx";
314 interrupts = <28>;
315 interrupt-parent = <&intc>;
316 reg = <0x1d8000 0x1000>;
317 };
318
186 control: control@140000 { 319 control: control@140000 {
187 compatible = "ti,dm814-scm", "simple-bus"; 320 compatible = "ti,dm814-scm", "simple-bus";
188 reg = <0x140000 0x20000>; 321 reg = <0x140000 0x20000>;
@@ -205,6 +338,21 @@
205 }; 338 };
206 }; 339 };
207 340
341 usb_ctrl_mod: control@620 {
342 compatible = "ti,am335x-usb-ctrl-module";
343 reg = <0x620 0x10
344 0x648 0x4>;
345 reg-names = "phy_ctrl", "wakeup";
346 };
347
348 edma_xbar: dma-router@f90 {
349 compatible = "ti,am335x-edma-crossbar";
350 reg = <0xf90 0x40>;
351 #dma-cells = <3>;
352 dma-requests = <32>;
353 dma-masters = <&edma>;
354 };
355
208 /* 356 /*
209 * Note that silicon revision 2.1 and older 357 * Note that silicon revision 2.1 and older
210 * require input enabled (bit 18 set) for all 358 * require input enabled (bit 18 set) for all
@@ -221,6 +369,13 @@
221 pinctrl-single,register-width = <32>; 369 pinctrl-single,register-width = <32>;
222 pinctrl-single,function-mask = <0x307ff>; 370 pinctrl-single,function-mask = <0x307ff>;
223 }; 371 };
372
373 usb1_phy: usb-phy@1b00 {
374 compatible = "ti,am335x-usb-phy";
375 reg = <0x1b00 0x100>;
376 reg-names = "phy";
377 ti,ctrl_mod = <&usb_ctrl_mod>;
378 };
224 }; 379 };
225 380
226 prcm: prcm@180000 { 381 prcm: prcm@180000 {
@@ -271,13 +426,62 @@
271 reg = <0x48200000 0x1000>; 426 reg = <0x48200000 0x1000>;
272 }; 427 };
273 428
429 /* Board must configure evtmux with edma_xbar for EDMA */
430 mmc3: mmc@47810000 {
431 compatible = "ti,omap4-hsmmc";
432 ti,hwmods = "mmc3";
433 interrupts = <29>;
434 interrupt-parent = <&intc>;
435 reg = <0x47810000 0x1000>;
436 };
437
274 edma: edma@49000000 { 438 edma: edma@49000000 {
275 compatible = "ti,edma3"; 439 compatible = "ti,edma3-tpcc";
276 ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2"; 440 ti,hwmods = "tpcc";
277 reg = <0x49000000 0x10000>, 441 reg = <0x49000000 0x10000>;
278 <0x44e10f90 0x40>; 442 reg-names = "edma3_cc";
279 interrupts = <12 13 14>; 443 interrupts = <12 13 14>;
280 #dma-cells = <1>; 444 interrupt-names = "edma3_ccint", "emda3_mperr",
445 "edma3_ccerrint";
446 dma-requests = <64>;
447 #dma-cells = <2>;
448
449 ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
450 <&edma_tptc2 3>, <&edma_tptc3 0>;
451
452 ti,edma-memcpy-channels = <20 21>;
453 };
454
455 edma_tptc0: tptc@49800000 {
456 compatible = "ti,edma3-tptc";
457 ti,hwmods = "tptc0";
458 reg = <0x49800000 0x100000>;
459 interrupts = <112>;
460 interrupt-names = "edma3_tcerrint";
461 };
462
463 edma_tptc1: tptc@49900000 {
464 compatible = "ti,edma3-tptc";
465 ti,hwmods = "tptc1";
466 reg = <0x49900000 0x100000>;
467 interrupts = <113>;
468 interrupt-names = "edma3_tcerrint";
469 };
470
471 edma_tptc2: tptc@49a00000 {
472 compatible = "ti,edma3-tptc";
473 ti,hwmods = "tptc2";
474 reg = <0x49a00000 0x100000>;
475 interrupts = <114>;
476 interrupt-names = "edma3_tcerrint";
477 };
478
479 edma_tptc3: tptc@49b00000 {
480 compatible = "ti,edma3-tptc";
481 ti,hwmods = "tptc3";
482 reg = <0x49b00000 0x100000>;
483 interrupts = <115>;
484 interrupt-names = "edma3_tcerrint";
281 }; 485 };
282 486
283 /* See TRM "Table 1-318. L4HS Instance Summary" */ 487 /* See TRM "Table 1-318. L4HS Instance Summary" */
diff --git a/arch/arm/boot/dts/dm816x.dtsi b/arch/arm/boot/dts/dm816x.dtsi
index eee636de4cd8..c3b8811a3e58 100644
--- a/arch/arm/boot/dts/dm816x.dtsi
+++ b/arch/arm/boot/dts/dm816x.dtsi
@@ -64,7 +64,6 @@
64 #address-cells = <1>; 64 #address-cells = <1>;
65 #size-cells = <1>; 65 #size-cells = <1>;
66 ranges; 66 ranges;
67 ti,hwmods = "l3_main";
68 67
69 prcm: prcm@48180000 { 68 prcm: prcm@48180000 {
70 compatible = "ti,dm816-prcm"; 69 compatible = "ti,dm816-prcm";
@@ -180,6 +179,8 @@
180 #address-cells = <2>; 179 #address-cells = <2>;
181 #size-cells = <1>; 180 #size-cells = <1>;
182 interrupts = <100>; 181 interrupts = <100>;
182 dmas = <&edma 52>;
183 dma-names = "rxtx";
183 gpmc,num-cs = <6>; 184 gpmc,num-cs = <6>;
184 gpmc,num-waitpins = <2>; 185 gpmc,num-waitpins = <2>;
185 }; 186 };
@@ -227,6 +228,13 @@
227 }; 228 };
228 }; 229 };
229 230
231 spinbox: spinbox@480ca000 {
232 compatible = "ti,omap4-hwspinlock";
233 reg = <0x480ca000 0x2000>;
234 ti,hwmods = "spinbox";
235 #hwlock-cells = <1>;
236 };
237
230 mdio: mdio@4a100800 { 238 mdio: mdio@4a100800 {
231 compatible = "ti,davinci_mdio"; 239 compatible = "ti,davinci_mdio";
232 #address-cells = <1>; 240 #address-cells = <1>;
@@ -323,6 +331,7 @@
323 reg = <0x48044000 0x2000>; 331 reg = <0x48044000 0x2000>;
324 interrupts = <92>; 332 interrupts = <92>;
325 ti,hwmods = "timer4"; 333 ti,hwmods = "timer4";
334 ti,timer-pwm;
326 }; 335 };
327 336
328 timer5: timer@48046000 { 337 timer5: timer@48046000 {
@@ -330,6 +339,7 @@
330 reg = <0x48046000 0x2000>; 339 reg = <0x48046000 0x2000>;
331 interrupts = <93>; 340 interrupts = <93>;
332 ti,hwmods = "timer5"; 341 ti,hwmods = "timer5";
342 ti,timer-pwm;
333 }; 343 };
334 344
335 timer6: timer@48048000 { 345 timer6: timer@48048000 {
@@ -337,6 +347,7 @@
337 reg = <0x48048000 0x2000>; 347 reg = <0x48048000 0x2000>;
338 interrupts = <94>; 348 interrupts = <94>;
339 ti,hwmods = "timer6"; 349 ti,hwmods = "timer6";
350 ti,timer-pwm;
340 }; 351 };
341 352
342 timer7: timer@4804a000 { 353 timer7: timer@4804a000 {
@@ -344,6 +355,7 @@
344 reg = <0x4804a000 0x2000>; 355 reg = <0x4804a000 0x2000>;
345 interrupts = <95>; 356 interrupts = <95>;
346 ti,hwmods = "timer7"; 357 ti,hwmods = "timer7";
358 ti,timer-pwm;
347 }; 359 };
348 360
349 uart1: uart@48020000 { 361 uart1: uart@48020000 {
diff --git a/arch/arm/boot/dts/dove-cubox.dts b/arch/arm/boot/dts/dove-cubox.dts
index e6fa251e17b9..af3cb633135f 100644
--- a/arch/arm/boot/dts/dove-cubox.dts
+++ b/arch/arm/boot/dts/dove-cubox.dts
@@ -62,6 +62,10 @@
62 pinctrl-0 = <&pmx_gpio_19>; 62 pinctrl-0 = <&pmx_gpio_19>;
63 pinctrl-names = "default"; 63 pinctrl-names = "default";
64 }; 64 };
65
66 gpu-subsystem {
67 status = "okay";
68 };
65}; 69};
66 70
67&uart0 { status = "okay"; }; 71&uart0 { status = "okay"; };
@@ -74,6 +78,10 @@
74 reg = <1>; 78 reg = <1>;
75}; 79};
76 80
81&gpu {
82 status = "okay";
83};
84
77&i2c0 { 85&i2c0 {
78 status = "okay"; 86 status = "okay";
79 clock-frequency = <100000>; 87 clock-frequency = <100000>;
diff --git a/arch/arm/boot/dts/dove.dtsi b/arch/arm/boot/dts/dove.dtsi
index cd58c2e62757..698d58cea20d 100644
--- a/arch/arm/boot/dts/dove.dtsi
+++ b/arch/arm/boot/dts/dove.dtsi
@@ -33,6 +33,12 @@
33 marvell,tauros2-cache-features = <0>; 33 marvell,tauros2-cache-features = <0>;
34 }; 34 };
35 35
36 gpu-subsystem {
37 compatible = "marvell,dove-gpu-subsystem";
38 cores = <&gpu>;
39 status = "disabled";
40 };
41
36 i2c-mux { 42 i2c-mux {
37 compatible = "i2c-mux-pinctrl"; 43 compatible = "i2c-mux-pinctrl";
38 #address-cells = <1>; 44 #address-cells = <1>;
@@ -460,6 +466,12 @@
460 #clock-cells = <1>; 466 #clock-cells = <1>;
461 }; 467 };
462 468
469 divider_clk: core-clock@0064 {
470 compatible = "marvell,dove-divider-clock";
471 reg = <0x0064 0x8>;
472 #clock-cells = <1>;
473 };
474
463 pinctrl: pin-ctrl@0200 { 475 pinctrl: pin-ctrl@0200 {
464 compatible = "marvell,dove-pinctrl"; 476 compatible = "marvell,dove-pinctrl";
465 reg = <0x0200 0x14>, 477 reg = <0x0200 0x14>,
@@ -776,6 +788,16 @@
776 #address-cells = <1>; 788 #address-cells = <1>;
777 #size-cells = <1>; 789 #size-cells = <1>;
778 }; 790 };
791
792 gpu: gpu@840000 {
793 clocks = <&divider_clk 1>;
794 clock-names = "core";
795 compatible = "vivante,gc";
796 interrupts = <48>;
797 power-domains = <&gpu_domain>;
798 reg = <0x840000 0x4000>;
799 status = "disabled";
800 };
779 }; 801 };
780 }; 802 };
781}; 803};
diff --git a/arch/arm/boot/dts/dra62x-clocks.dtsi b/arch/arm/boot/dts/dra62x-clocks.dtsi
new file mode 100644
index 000000000000..6f98dc8df9dd
--- /dev/null
+++ b/arch/arm/boot/dts/dra62x-clocks.dtsi
@@ -0,0 +1,23 @@
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License version 2 as
4 * published by the Free Software Foundation.
5 */
6
7#include "dm814x-clocks.dtsi"
8
9/*
10 * Compared to dm814x, dra62x has different shifts and more mux options.
11 * Please add the extra options for ysclk_14 and 16 if really needed.
12 */
13&timer1_fck {
14 clocks = <&sysclk18_ck &aud_clkin0_ck &aud_clkin1_ck
15 &aud_clkin2_ck &devosc_ck &auxosc_ck &tclkin_ck>;
16 ti,bit-shift = <4>;
17};
18
19&timer2_fck {
20 clocks = <&sysclk18_ck &aud_clkin0_ck &aud_clkin1_ck
21 &aud_clkin2_ck &devosc_ck &auxosc_ck &tclkin_ck>;
22 ti,bit-shift = <8>;
23};
diff --git a/arch/arm/boot/dts/dra62x-j5eco-evm.dts b/arch/arm/boot/dts/dra62x-j5eco-evm.dts
new file mode 100644
index 000000000000..79008069020d
--- /dev/null
+++ b/arch/arm/boot/dts/dra62x-j5eco-evm.dts
@@ -0,0 +1,80 @@
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License version 2 as
4 * published by the Free Software Foundation.
5 */
6/dts-v1/;
7
8#include "dra62x.dtsi"
9
10/ {
11 model = "DRA62x J5 Eco EVM";
12 compatible = "ti,dra62x-j5eco-evm", "ti,dra62x", "ti,dm8148";
13
14 memory {
15 device_type = "memory";
16 reg = <0x80000000 0x40000000>; /* 1 GB */
17 };
18
19 /* MIC94060YC6 controlled by SD1_POW pin */
20 vmmcsd_fixed: fixedregulator@0 {
21 compatible = "regulator-fixed";
22 regulator-name = "vmmcsd_fixed";
23 regulator-min-microvolt = <3300000>;
24 regulator-max-microvolt = <3300000>;
25 };
26};
27
28&cpsw_emac0 {
29 phy_id = <&davinci_mdio>, <0>;
30 phy-mode = "rgmii";
31};
32
33&cpsw_emac1 {
34 phy_id = <&davinci_mdio>, <1>;
35 phy-mode = "rgmii";
36};
37
38&mmc2 {
39 pinctrl-names = "default";
40 pinctrl-0 = <&sd1_pins>;
41 vmmc-supply = <&vmmcsd_fixed>;
42 bus-width = <4>;
43 cd-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
44};
45
46&pincntl {
47 sd1_pins: pinmux_sd1_pins {
48 pinctrl-single,pins = <
49 DM814X_IOPAD(0x0800, PIN_INPUT | 0x1) /* SD1_CLK */
50 DM814X_IOPAD(0x0804, PIN_INPUT_PULLUP | 0x1) /* SD1_CMD */
51 DM814X_IOPAD(0x0808, PIN_INPUT_PULLUP | 0x1) /* SD1_DAT[0] */
52 DM814X_IOPAD(0x080c, PIN_INPUT_PULLUP | 0x1) /* SD1_DAT[1] */
53 DM814X_IOPAD(0x0810, PIN_INPUT_PULLUP | 0x1) /* SD1_DAT[2] */
54 DM814X_IOPAD(0x0814, PIN_INPUT_PULLUP | 0x1) /* SD1_DAT[3] */
55 DM814X_IOPAD(0x0924, PIN_OUTPUT | 0x40) /* SD1_POW */
56 DM814X_IOPAD(0x093C, PIN_INPUT_PULLUP | 0x80) /* GP1[6] */
57 >;
58 };
59
60 usb0_pins: pinmux_usb0_pins {
61 pinctrl-single,pins = <
62 DM814X_IOPAD(0x0c34, PIN_OUTPUT | 0x1) /* USB0_DRVVBUS */
63 >;
64 };
65};
66
67/* USB0_ID pin state: SW10[1] = 0 cable detection, SW10[1] = 1 ID grounded */
68&usb0 {
69 pinctrl-names = "default";
70 pinctrl-0 = <&usb0_pins>;
71 dr_mode = "otg";
72};
73
74&usb1_phy {
75 status = "disabled";
76};
77
78&usb1 {
79 status = "disabled";
80};
diff --git a/arch/arm/boot/dts/dra62x.dtsi b/arch/arm/boot/dts/dra62x.dtsi
new file mode 100644
index 000000000000..d3cbb4ea35a8
--- /dev/null
+++ b/arch/arm/boot/dts/dra62x.dtsi
@@ -0,0 +1,23 @@
1/*
2 * This file is licensed under the terms of the GNU General Public License
3 * version 2. This program is licensed "as is" without any warranty of any
4 * kind, whether express or implied.
5 */
6
7#include "dm814x.dtsi"
8
9/ {
10 compatible = "ti,dra62x";
11};
12
13/* Compared to dm814x, dra62x has different offsets for Ethernet */
14&mac {
15 reg = <0x4a100000 0x800
16 0x4a101200 0x100>;
17};
18
19&davinci_mdio {
20 reg = <0x4a101000 0x100>;
21};
22
23#include "dra62x-clocks.dtsi"
diff --git a/arch/arm/boot/dts/dra7-evm.dts b/arch/arm/boot/dts/dra7-evm.dts
index 864f60020124..cfc24e52244e 100644
--- a/arch/arm/boot/dts/dra7-evm.dts
+++ b/arch/arm/boot/dts/dra7-evm.dts
@@ -154,100 +154,100 @@
154 154
155 vtt_pin: pinmux_vtt_pin { 155 vtt_pin: pinmux_vtt_pin {
156 pinctrl-single,pins = < 156 pinctrl-single,pins = <
157 0x3b4 (PIN_OUTPUT | MUX_MODE14) /* spi1_cs1.gpio7_11 */ 157 DRA7XX_CORE_IOPAD(0x37b4, PIN_OUTPUT | MUX_MODE14) /* spi1_cs1.gpio7_11 */
158 >; 158 >;
159 }; 159 };
160 160
161 i2c1_pins: pinmux_i2c1_pins { 161 i2c1_pins: pinmux_i2c1_pins {
162 pinctrl-single,pins = < 162 pinctrl-single,pins = <
163 0x400 (PIN_INPUT | MUX_MODE0) /* i2c1_sda */ 163 DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT | MUX_MODE0) /* i2c1_sda */
164 0x404 (PIN_INPUT | MUX_MODE0) /* i2c1_scl */ 164 DRA7XX_CORE_IOPAD(0x3804, PIN_INPUT | MUX_MODE0) /* i2c1_scl */
165 >; 165 >;
166 }; 166 };
167 167
168 i2c2_pins: pinmux_i2c2_pins { 168 i2c2_pins: pinmux_i2c2_pins {
169 pinctrl-single,pins = < 169 pinctrl-single,pins = <
170 0x408 (PIN_INPUT | MUX_MODE0) /* i2c2_sda */ 170 DRA7XX_CORE_IOPAD(0x3808, PIN_INPUT | MUX_MODE0) /* i2c2_sda */
171 0x40c (PIN_INPUT | MUX_MODE0) /* i2c2_scl */ 171 DRA7XX_CORE_IOPAD(0x380c, PIN_INPUT | MUX_MODE0) /* i2c2_scl */
172 >; 172 >;
173 }; 173 };
174 174
175 i2c3_pins: pinmux_i2c3_pins { 175 i2c3_pins: pinmux_i2c3_pins {
176 pinctrl-single,pins = < 176 pinctrl-single,pins = <
177 0x288 (PIN_INPUT | MUX_MODE9) /* gpio6_14.i2c3_sda */ 177 DRA7XX_CORE_IOPAD(0x3688, PIN_INPUT | MUX_MODE9) /* gpio6_14.i2c3_sda */
178 0x28c (PIN_INPUT | MUX_MODE9) /* gpio6_15.i2c3_scl */ 178 DRA7XX_CORE_IOPAD(0x368c, PIN_INPUT | MUX_MODE9) /* gpio6_15.i2c3_scl */
179 >; 179 >;
180 }; 180 };
181 181
182 mcspi1_pins: pinmux_mcspi1_pins { 182 mcspi1_pins: pinmux_mcspi1_pins {
183 pinctrl-single,pins = < 183 pinctrl-single,pins = <
184 0x3a4 (PIN_INPUT | MUX_MODE0) /* spi1_sclk */ 184 DRA7XX_CORE_IOPAD(0x37a4, PIN_INPUT | MUX_MODE0) /* spi1_sclk */
185 0x3a8 (PIN_INPUT | MUX_MODE0) /* spi1_d1 */ 185 DRA7XX_CORE_IOPAD(0x37a8, PIN_INPUT | MUX_MODE0) /* spi1_d1 */
186 0x3ac (PIN_INPUT | MUX_MODE0) /* spi1_d0 */ 186 DRA7XX_CORE_IOPAD(0x37ac, PIN_INPUT | MUX_MODE0) /* spi1_d0 */
187 0x3b0 (PIN_INPUT_SLEW | MUX_MODE0) /* spi1_cs0 */ 187 DRA7XX_CORE_IOPAD(0x37b0, PIN_INPUT_SLEW | MUX_MODE0) /* spi1_cs0 */
188 0x3b8 (PIN_INPUT_SLEW | MUX_MODE6) /* spi1_cs2.hdmi1_hpd */ 188 DRA7XX_CORE_IOPAD(0x37b8, PIN_INPUT_SLEW | MUX_MODE6) /* spi1_cs2.hdmi1_hpd */
189 0x3bc (PIN_INPUT_SLEW | MUX_MODE6) /* spi1_cs3.hdmi1_cec */ 189 DRA7XX_CORE_IOPAD(0x37bc, PIN_INPUT_SLEW | MUX_MODE6) /* spi1_cs3.hdmi1_cec */
190 >; 190 >;
191 }; 191 };
192 192
193 mcspi2_pins: pinmux_mcspi2_pins { 193 mcspi2_pins: pinmux_mcspi2_pins {
194 pinctrl-single,pins = < 194 pinctrl-single,pins = <
195 0x3c0 (PIN_INPUT | MUX_MODE0) /* spi2_sclk */ 195 DRA7XX_CORE_IOPAD(0x37c0, PIN_INPUT | MUX_MODE0) /* spi2_sclk */
196 0x3c4 (PIN_INPUT_SLEW | MUX_MODE0) /* spi2_d1 */ 196 DRA7XX_CORE_IOPAD(0x37c4, PIN_INPUT_SLEW | MUX_MODE0) /* spi2_d1 */
197 0x3c8 (PIN_INPUT_SLEW | MUX_MODE0) /* spi2_d1 */ 197 DRA7XX_CORE_IOPAD(0x37c8, PIN_INPUT_SLEW | MUX_MODE0) /* spi2_d1 */
198 0x3cc (PIN_INPUT_SLEW | MUX_MODE0) /* spi2_cs0 */ 198 DRA7XX_CORE_IOPAD(0x37cc, PIN_INPUT_SLEW | MUX_MODE0) /* spi2_cs0 */
199 >; 199 >;
200 }; 200 };
201 201
202 uart1_pins: pinmux_uart1_pins { 202 uart1_pins: pinmux_uart1_pins {
203 pinctrl-single,pins = < 203 pinctrl-single,pins = <
204 0x3e0 (PIN_INPUT_SLEW | MUX_MODE0) /* uart1_rxd */ 204 DRA7XX_CORE_IOPAD(0x37e0, PIN_INPUT_SLEW | MUX_MODE0) /* uart1_rxd */
205 0x3e4 (PIN_INPUT_SLEW | MUX_MODE0) /* uart1_txd */ 205 DRA7XX_CORE_IOPAD(0x37e4, PIN_INPUT_SLEW | MUX_MODE0) /* uart1_txd */
206 0x3e8 (PIN_INPUT | MUX_MODE3) /* uart1_ctsn */ 206 DRA7XX_CORE_IOPAD(0x37e8, PIN_INPUT | MUX_MODE3) /* uart1_ctsn */
207 0x3ec (PIN_INPUT | MUX_MODE3) /* uart1_rtsn */ 207 DRA7XX_CORE_IOPAD(0x37ec, PIN_INPUT | MUX_MODE3) /* uart1_rtsn */
208 >; 208 >;
209 }; 209 };
210 210
211 uart2_pins: pinmux_uart2_pins { 211 uart2_pins: pinmux_uart2_pins {
212 pinctrl-single,pins = < 212 pinctrl-single,pins = <
213 0x3f0 (PIN_INPUT | MUX_MODE0) /* uart2_rxd */ 213 DRA7XX_CORE_IOPAD(0x37f0, PIN_INPUT | MUX_MODE0) /* uart2_rxd */
214 0x3f4 (PIN_INPUT | MUX_MODE0) /* uart2_txd */ 214 DRA7XX_CORE_IOPAD(0x37f4, PIN_INPUT | MUX_MODE0) /* uart2_txd */
215 0x3f8 (PIN_INPUT | MUX_MODE0) /* uart2_ctsn */ 215 DRA7XX_CORE_IOPAD(0x37f8, PIN_INPUT | MUX_MODE0) /* uart2_ctsn */
216 0x3fc (PIN_INPUT | MUX_MODE0) /* uart2_rtsn */ 216 DRA7XX_CORE_IOPAD(0x37fc, PIN_INPUT | MUX_MODE0) /* uart2_rtsn */
217 >; 217 >;
218 }; 218 };
219 219
220 uart3_pins: pinmux_uart3_pins { 220 uart3_pins: pinmux_uart3_pins {
221 pinctrl-single,pins = < 221 pinctrl-single,pins = <
222 0x248 (PIN_INPUT_SLEW | MUX_MODE0) /* uart3_rxd */ 222 DRA7XX_CORE_IOPAD(0x3648, PIN_INPUT_SLEW | MUX_MODE0) /* uart3_rxd */
223 0x24c (PIN_INPUT_SLEW | MUX_MODE0) /* uart3_txd */ 223 DRA7XX_CORE_IOPAD(0x364c, PIN_INPUT_SLEW | MUX_MODE0) /* uart3_txd */
224 >; 224 >;
225 }; 225 };
226 226
227 qspi1_pins: pinmux_qspi1_pins { 227 qspi1_pins: pinmux_qspi1_pins {
228 pinctrl-single,pins = < 228 pinctrl-single,pins = <
229 0x4c (PIN_INPUT | MUX_MODE1) /* gpmc_a3.qspi1_cs2 */ 229 DRA7XX_CORE_IOPAD(0x344c, PIN_INPUT | MUX_MODE1) /* gpmc_a3.qspi1_cs2 */
230 0x50 (PIN_INPUT | MUX_MODE1) /* gpmc_a4.qspi1_cs3 */ 230 DRA7XX_CORE_IOPAD(0x3450, PIN_INPUT | MUX_MODE1) /* gpmc_a4.qspi1_cs3 */
231 0x74 (PIN_INPUT | MUX_MODE1) /* gpmc_a13.qspi1_rtclk */ 231 DRA7XX_CORE_IOPAD(0x3474, PIN_INPUT | MUX_MODE1) /* gpmc_a13.qspi1_rtclk */
232 0x78 (PIN_INPUT | MUX_MODE1) /* gpmc_a14.qspi1_d3 */ 232 DRA7XX_CORE_IOPAD(0x3478, PIN_INPUT | MUX_MODE1) /* gpmc_a14.qspi1_d3 */
233 0x7c (PIN_INPUT | MUX_MODE1) /* gpmc_a15.qspi1_d2 */ 233 DRA7XX_CORE_IOPAD(0x347c, PIN_INPUT | MUX_MODE1) /* gpmc_a15.qspi1_d2 */
234 0x80 (PIN_INPUT | MUX_MODE1) /* gpmc_a16.qspi1_d1 */ 234 DRA7XX_CORE_IOPAD(0x3480, PIN_INPUT | MUX_MODE1) /* gpmc_a16.qspi1_d1 */
235 0x84 (PIN_INPUT | MUX_MODE1) /* gpmc_a17.qspi1_d0 */ 235 DRA7XX_CORE_IOPAD(0x3484, PIN_INPUT | MUX_MODE1) /* gpmc_a17.qspi1_d0 */
236 0x88 (PIN_INPUT | MUX_MODE1) /* qpmc_a18.qspi1_sclk */ 236 DRA7XX_CORE_IOPAD(0x3488, PIN_INPUT | MUX_MODE1) /* qpmc_a18.qspi1_sclk */
237 0xb8 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs2.qspi1_cs0 */ 237 DRA7XX_CORE_IOPAD(0x34b8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs2.qspi1_cs0 */
238 0xbc (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs3.qspi1_cs1 */ 238 DRA7XX_CORE_IOPAD(0x34bc, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs3.qspi1_cs1 */
239 >; 239 >;
240 }; 240 };
241 241
242 usb1_pins: pinmux_usb1_pins { 242 usb1_pins: pinmux_usb1_pins {
243 pinctrl-single,pins = < 243 pinctrl-single,pins = <
244 0x280 (PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */ 244 DRA7XX_CORE_IOPAD(0x3680, PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */
245 >; 245 >;
246 }; 246 };
247 247
248 usb2_pins: pinmux_usb2_pins { 248 usb2_pins: pinmux_usb2_pins {
249 pinctrl-single,pins = < 249 pinctrl-single,pins = <
250 0x284 (PIN_INPUT_SLEW | MUX_MODE0) /* usb2_drvvbus */ 250 DRA7XX_CORE_IOPAD(0x3684, PIN_INPUT_SLEW | MUX_MODE0) /* usb2_drvvbus */
251 >; 251 >;
252 }; 252 };
253 253
@@ -257,60 +257,60 @@
257 * SW5.9 (GPMC_WPN) = LOW 257 * SW5.9 (GPMC_WPN) = LOW
258 * SW5.1 (NAND_BOOTn) = HIGH */ 258 * SW5.1 (NAND_BOOTn) = HIGH */
259 pinctrl-single,pins = < 259 pinctrl-single,pins = <
260 0x0 (PIN_INPUT | MUX_MODE0) /* gpmc_ad0 */ 260 DRA7XX_CORE_IOPAD(0x3400, PIN_INPUT | MUX_MODE0) /* gpmc_ad0 */
261 0x4 (PIN_INPUT | MUX_MODE0) /* gpmc_ad1 */ 261 DRA7XX_CORE_IOPAD(0x3404, PIN_INPUT | MUX_MODE0) /* gpmc_ad1 */
262 0x8 (PIN_INPUT | MUX_MODE0) /* gpmc_ad2 */ 262 DRA7XX_CORE_IOPAD(0x3408, PIN_INPUT | MUX_MODE0) /* gpmc_ad2 */
263 0xc (PIN_INPUT | MUX_MODE0) /* gpmc_ad3 */ 263 DRA7XX_CORE_IOPAD(0x340c, PIN_INPUT | MUX_MODE0) /* gpmc_ad3 */
264 0x10 (PIN_INPUT | MUX_MODE0) /* gpmc_ad4 */ 264 DRA7XX_CORE_IOPAD(0x3410, PIN_INPUT | MUX_MODE0) /* gpmc_ad4 */
265 0x14 (PIN_INPUT | MUX_MODE0) /* gpmc_ad5 */ 265 DRA7XX_CORE_IOPAD(0x3414, PIN_INPUT | MUX_MODE0) /* gpmc_ad5 */
266 0x18 (PIN_INPUT | MUX_MODE0) /* gpmc_ad6 */ 266 DRA7XX_CORE_IOPAD(0x3418, PIN_INPUT | MUX_MODE0) /* gpmc_ad6 */
267 0x1c (PIN_INPUT | MUX_MODE0) /* gpmc_ad7 */ 267 DRA7XX_CORE_IOPAD(0x341c, PIN_INPUT | MUX_MODE0) /* gpmc_ad7 */
268 0x20 (PIN_INPUT | MUX_MODE0) /* gpmc_ad8 */ 268 DRA7XX_CORE_IOPAD(0x3420, PIN_INPUT | MUX_MODE0) /* gpmc_ad8 */
269 0x24 (PIN_INPUT | MUX_MODE0) /* gpmc_ad9 */ 269 DRA7XX_CORE_IOPAD(0x3424, PIN_INPUT | MUX_MODE0) /* gpmc_ad9 */
270 0x28 (PIN_INPUT | MUX_MODE0) /* gpmc_ad10 */ 270 DRA7XX_CORE_IOPAD(0x3428, PIN_INPUT | MUX_MODE0) /* gpmc_ad10 */
271 0x2c (PIN_INPUT | MUX_MODE0) /* gpmc_ad11 */ 271 DRA7XX_CORE_IOPAD(0x342c, PIN_INPUT | MUX_MODE0) /* gpmc_ad11 */
272 0x30 (PIN_INPUT | MUX_MODE0) /* gpmc_ad12 */ 272 DRA7XX_CORE_IOPAD(0x3430, PIN_INPUT | MUX_MODE0) /* gpmc_ad12 */
273 0x34 (PIN_INPUT | MUX_MODE0) /* gpmc_ad13 */ 273 DRA7XX_CORE_IOPAD(0x3434, PIN_INPUT | MUX_MODE0) /* gpmc_ad13 */
274 0x38 (PIN_INPUT | MUX_MODE0) /* gpmc_ad14 */ 274 DRA7XX_CORE_IOPAD(0x3438, PIN_INPUT | MUX_MODE0) /* gpmc_ad14 */
275 0x3c (PIN_INPUT | MUX_MODE0) /* gpmc_ad15 */ 275 DRA7XX_CORE_IOPAD(0x343c, PIN_INPUT | MUX_MODE0) /* gpmc_ad15 */
276 0xd8 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0 */ 276 DRA7XX_CORE_IOPAD(0x34d8, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0 */
277 0xcc (PIN_OUTPUT | MUX_MODE0) /* gpmc_wen */ 277 DRA7XX_CORE_IOPAD(0x34cc, PIN_OUTPUT | MUX_MODE0) /* gpmc_wen */
278 0xb4 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_csn0 */ 278 DRA7XX_CORE_IOPAD(0x34b4, PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_csn0 */
279 0xc4 (PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale */ 279 DRA7XX_CORE_IOPAD(0x34c4, PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale */
280 0xc8 (PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren */ 280 DRA7XX_CORE_IOPAD(0x34c8, PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren */
281 0xd0 (PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle */ 281 DRA7XX_CORE_IOPAD(0x34d0, PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle */
282 >; 282 >;
283 }; 283 };
284 284
285 cpsw_default: cpsw_default { 285 cpsw_default: cpsw_default {
286 pinctrl-single,pins = < 286 pinctrl-single,pins = <
287 /* Slave 1 */ 287 /* Slave 1 */
288 0x250 (PIN_OUTPUT | MUX_MODE0) /* rgmii0_txc.rgmii0_txc */ 288 DRA7XX_CORE_IOPAD(0x3650, PIN_OUTPUT | MUX_MODE0) /* rgmii0_txc.rgmii0_txc */
289 0x254 (PIN_OUTPUT | MUX_MODE0) /* rgmii0_txctl.rgmii0_txctl */ 289 DRA7XX_CORE_IOPAD(0x3654, PIN_OUTPUT | MUX_MODE0) /* rgmii0_txctl.rgmii0_txctl */
290 0x258 (PIN_OUTPUT | MUX_MODE0) /* rgmii0_td3.rgmii0_txd3 */ 290 DRA7XX_CORE_IOPAD(0x3658, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td3.rgmii0_txd3 */
291 0x25c (PIN_OUTPUT | MUX_MODE0) /* rgmii0_txd2.rgmii0_txd2 */ 291 DRA7XX_CORE_IOPAD(0x365c, PIN_OUTPUT | MUX_MODE0) /* rgmii0_txd2.rgmii0_txd2 */
292 0x260 (PIN_OUTPUT | MUX_MODE0) /* rgmii0_txd1.rgmii0_txd1 */ 292 DRA7XX_CORE_IOPAD(0x3660, PIN_OUTPUT | MUX_MODE0) /* rgmii0_txd1.rgmii0_txd1 */
293 0x264 (PIN_OUTPUT | MUX_MODE0) /* rgmii0_txd0.rgmii0_txd0 */ 293 DRA7XX_CORE_IOPAD(0x3664, PIN_OUTPUT | MUX_MODE0) /* rgmii0_txd0.rgmii0_txd0 */
294 0x268 (PIN_INPUT | MUX_MODE0) /* rgmii0_rxc.rgmii0_rxc */ 294 DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT | MUX_MODE0) /* rgmii0_rxc.rgmii0_rxc */
295 0x26c (PIN_INPUT | MUX_MODE0) /* rgmii0_rxctl.rgmii0_rxctl */ 295 DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT | MUX_MODE0) /* rgmii0_rxctl.rgmii0_rxctl */
296 0x270 (PIN_INPUT | MUX_MODE0) /* rgmii0_rxd3.rgmii0_rxd3 */ 296 DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT | MUX_MODE0) /* rgmii0_rxd3.rgmii0_rxd3 */
297 0x274 (PIN_INPUT | MUX_MODE0) /* rgmii0_rxd2.rgmii0_rxd2 */ 297 DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT | MUX_MODE0) /* rgmii0_rxd2.rgmii0_rxd2 */
298 0x278 (PIN_INPUT | MUX_MODE0) /* rgmii0_rxd1.rgmii0_rxd1 */ 298 DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT | MUX_MODE0) /* rgmii0_rxd1.rgmii0_rxd1 */
299 0x27c (PIN_INPUT | MUX_MODE0) /* rgmii0_rxd0.rgmii0_rxd0 */ 299 DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT | MUX_MODE0) /* rgmii0_rxd0.rgmii0_rxd0 */
300 300
301 /* Slave 2 */ 301 /* Slave 2 */
302 0x198 (PIN_OUTPUT | MUX_MODE3) /* vin2a_d12.rgmii1_txc */ 302 DRA7XX_CORE_IOPAD(0x3598, PIN_OUTPUT | MUX_MODE3) /* vin2a_d12.rgmii1_txc */
303 0x19c (PIN_OUTPUT | MUX_MODE3) /* vin2a_d13.rgmii1_tctl */ 303 DRA7XX_CORE_IOPAD(0x359c, PIN_OUTPUT | MUX_MODE3) /* vin2a_d13.rgmii1_tctl */
304 0x1a0 (PIN_OUTPUT | MUX_MODE3) /* vin2a_d14.rgmii1_td3 */ 304 DRA7XX_CORE_IOPAD(0x35a0, PIN_OUTPUT | MUX_MODE3) /* vin2a_d14.rgmii1_td3 */
305 0x1a4 (PIN_OUTPUT | MUX_MODE3) /* vin2a_d15.rgmii1_td2 */ 305 DRA7XX_CORE_IOPAD(0x35a4, PIN_OUTPUT | MUX_MODE3) /* vin2a_d15.rgmii1_td2 */
306 0x1a8 (PIN_OUTPUT | MUX_MODE3) /* vin2a_d16.rgmii1_td1 */ 306 DRA7XX_CORE_IOPAD(0x35a8, PIN_OUTPUT | MUX_MODE3) /* vin2a_d16.rgmii1_td1 */
307 0x1ac (PIN_OUTPUT | MUX_MODE3) /* vin2a_d17.rgmii1_td0 */ 307 DRA7XX_CORE_IOPAD(0x35ac, PIN_OUTPUT | MUX_MODE3) /* vin2a_d17.rgmii1_td0 */
308 0x1b0 (PIN_INPUT | MUX_MODE3) /* vin2a_d18.rgmii1_rclk */ 308 DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE3) /* vin2a_d18.rgmii1_rclk */
309 0x1b4 (PIN_INPUT | MUX_MODE3) /* vin2a_d19.rgmii1_rctl */ 309 DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE3) /* vin2a_d19.rgmii1_rctl */
310 0x1b8 (PIN_INPUT | MUX_MODE3) /* vin2a_d20.rgmii1_rd3 */ 310 DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE3) /* vin2a_d20.rgmii1_rd3 */
311 0x1bc (PIN_INPUT | MUX_MODE3) /* vin2a_d21.rgmii1_rd2 */ 311 DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE3) /* vin2a_d21.rgmii1_rd2 */
312 0x1c0 (PIN_INPUT | MUX_MODE3) /* vin2a_d22.rgmii1_rd1 */ 312 DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE3) /* vin2a_d22.rgmii1_rd1 */
313 0x1c4 (PIN_INPUT | MUX_MODE3) /* vin2a_d23.rgmii1_rd0 */ 313 DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE3) /* vin2a_d23.rgmii1_rd0 */
314 >; 314 >;
315 315
316 }; 316 };
@@ -318,85 +318,85 @@
318 cpsw_sleep: cpsw_sleep { 318 cpsw_sleep: cpsw_sleep {
319 pinctrl-single,pins = < 319 pinctrl-single,pins = <
320 /* Slave 1 */ 320 /* Slave 1 */
321 0x250 (MUX_MODE15) 321 DRA7XX_CORE_IOPAD(0x3650, MUX_MODE15)
322 0x254 (MUX_MODE15) 322 DRA7XX_CORE_IOPAD(0x3654, MUX_MODE15)
323 0x258 (MUX_MODE15) 323 DRA7XX_CORE_IOPAD(0x3658, MUX_MODE15)
324 0x25c (MUX_MODE15) 324 DRA7XX_CORE_IOPAD(0x365c, MUX_MODE15)
325 0x260 (MUX_MODE15) 325 DRA7XX_CORE_IOPAD(0x3660, MUX_MODE15)
326 0x264 (MUX_MODE15) 326 DRA7XX_CORE_IOPAD(0x3664, MUX_MODE15)
327 0x268 (MUX_MODE15) 327 DRA7XX_CORE_IOPAD(0x3668, MUX_MODE15)
328 0x26c (MUX_MODE15) 328 DRA7XX_CORE_IOPAD(0x366c, MUX_MODE15)
329 0x270 (MUX_MODE15) 329 DRA7XX_CORE_IOPAD(0x3670, MUX_MODE15)
330 0x274 (MUX_MODE15) 330 DRA7XX_CORE_IOPAD(0x3674, MUX_MODE15)
331 0x278 (MUX_MODE15) 331 DRA7XX_CORE_IOPAD(0x3678, MUX_MODE15)
332 0x27c (MUX_MODE15) 332 DRA7XX_CORE_IOPAD(0x367c, MUX_MODE15)
333 333
334 /* Slave 2 */ 334 /* Slave 2 */
335 0x198 (MUX_MODE15) 335 DRA7XX_CORE_IOPAD(0x3598, MUX_MODE15)
336 0x19c (MUX_MODE15) 336 DRA7XX_CORE_IOPAD(0x359c, MUX_MODE15)
337 0x1a0 (MUX_MODE15) 337 DRA7XX_CORE_IOPAD(0x35a0, MUX_MODE15)
338 0x1a4 (MUX_MODE15) 338 DRA7XX_CORE_IOPAD(0x35a4, MUX_MODE15)
339 0x1a8 (MUX_MODE15) 339 DRA7XX_CORE_IOPAD(0x35a8, MUX_MODE15)
340 0x1ac (MUX_MODE15) 340 DRA7XX_CORE_IOPAD(0x35ac, MUX_MODE15)
341 0x1b0 (MUX_MODE15) 341 DRA7XX_CORE_IOPAD(0x35b0, MUX_MODE15)
342 0x1b4 (MUX_MODE15) 342 DRA7XX_CORE_IOPAD(0x35b4, MUX_MODE15)
343 0x1b8 (MUX_MODE15) 343 DRA7XX_CORE_IOPAD(0x35b8, MUX_MODE15)
344 0x1bc (MUX_MODE15) 344 DRA7XX_CORE_IOPAD(0x35bc, MUX_MODE15)
345 0x1c0 (MUX_MODE15) 345 DRA7XX_CORE_IOPAD(0x35c0, MUX_MODE15)
346 0x1c4 (MUX_MODE15) 346 DRA7XX_CORE_IOPAD(0x35c4, MUX_MODE15)
347 >; 347 >;
348 }; 348 };
349 349
350 davinci_mdio_default: davinci_mdio_default { 350 davinci_mdio_default: davinci_mdio_default {
351 pinctrl-single,pins = < 351 pinctrl-single,pins = <
352 0x23c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_d.mdio_d */ 352 DRA7XX_CORE_IOPAD(0x363c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_d.mdio_d */
353 0x240 (PIN_INPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ 353 DRA7XX_CORE_IOPAD(0x3640, PIN_INPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
354 >; 354 >;
355 }; 355 };
356 356
357 davinci_mdio_sleep: davinci_mdio_sleep { 357 davinci_mdio_sleep: davinci_mdio_sleep {
358 pinctrl-single,pins = < 358 pinctrl-single,pins = <
359 0x23c (MUX_MODE15) 359 DRA7XX_CORE_IOPAD(0x363c, MUX_MODE15)
360 0x240 (MUX_MODE15) 360 DRA7XX_CORE_IOPAD(0x3640, MUX_MODE15)
361 >; 361 >;
362 }; 362 };
363 363
364 dcan1_pins_default: dcan1_pins_default { 364 dcan1_pins_default: dcan1_pins_default {
365 pinctrl-single,pins = < 365 pinctrl-single,pins = <
366 0x3d0 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* dcan1_tx */ 366 DRA7XX_CORE_IOPAD(0x37d0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* dcan1_tx */
367 0x418 (PULL_UP | MUX_MODE1) /* wakeup0.dcan1_rx */ 367 DRA7XX_CORE_IOPAD(0x3818, PULL_UP | MUX_MODE1) /* wakeup0.dcan1_rx */
368 >; 368 >;
369 }; 369 };
370 370
371 dcan1_pins_sleep: dcan1_pins_sleep { 371 dcan1_pins_sleep: dcan1_pins_sleep {
372 pinctrl-single,pins = < 372 pinctrl-single,pins = <
373 0x3d0 (MUX_MODE15 | PULL_UP) /* dcan1_tx.off */ 373 DRA7XX_CORE_IOPAD(0x37d0, MUX_MODE15 | PULL_UP) /* dcan1_tx.off */
374 0x418 (MUX_MODE15 | PULL_UP) /* wakeup0.off */ 374 DRA7XX_CORE_IOPAD(0x3818, MUX_MODE15 | PULL_UP) /* wakeup0.off */
375 >; 375 >;
376 }; 376 };
377 377
378 atl_pins: pinmux_atl_pins { 378 atl_pins: pinmux_atl_pins {
379 pinctrl-single,pins = < 379 pinctrl-single,pins = <
380 0x298 (PIN_OUTPUT | MUX_MODE5) /* xref_clk1.atl_clk1 */ 380 DRA7XX_CORE_IOPAD(0x3698, PIN_OUTPUT | MUX_MODE5) /* xref_clk1.atl_clk1 */
381 0x29c (PIN_OUTPUT | MUX_MODE5) /* xref_clk2.atl_clk2 */ 381 DRA7XX_CORE_IOPAD(0x369c, PIN_OUTPUT | MUX_MODE5) /* xref_clk2.atl_clk2 */
382 >; 382 >;
383 }; 383 };
384 384
385 mcasp3_pins: pinmux_mcasp3_pins { 385 mcasp3_pins: pinmux_mcasp3_pins {
386 pinctrl-single,pins = < 386 pinctrl-single,pins = <
387 0x324 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_aclkx */ 387 DRA7XX_CORE_IOPAD(0x3724, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_aclkx */
388 0x328 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_fsx */ 388 DRA7XX_CORE_IOPAD(0x3728, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_fsx */
389 0x32c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr0 */ 389 DRA7XX_CORE_IOPAD(0x372c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr0 */
390 0x330 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr1 */ 390 DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr1 */
391 >; 391 >;
392 }; 392 };
393 393
394 mcasp3_sleep_pins: pinmux_mcasp3_sleep_pins { 394 mcasp3_sleep_pins: pinmux_mcasp3_sleep_pins {
395 pinctrl-single,pins = < 395 pinctrl-single,pins = <
396 0x324 (MUX_MODE15) 396 DRA7XX_CORE_IOPAD(0x3724, MUX_MODE15)
397 0x328 (MUX_MODE15) 397 DRA7XX_CORE_IOPAD(0x3728, MUX_MODE15)
398 0x32c (MUX_MODE15) 398 DRA7XX_CORE_IOPAD(0x372c, MUX_MODE15)
399 0x330 (MUX_MODE15) 399 DRA7XX_CORE_IOPAD(0x3730, MUX_MODE15)
400 >; 400 >;
401 }; 401 };
402}; 402};
@@ -504,6 +504,7 @@
504 regulator-max-microvolt = <1050000>; 504 regulator-max-microvolt = <1050000>;
505 regulator-always-on; 505 regulator-always-on;
506 regulator-boot-on; 506 regulator-boot-on;
507 regulator-allow-bypass;
507 }; 508 };
508 509
509 ldoln_reg: ldoln { 510 ldoln_reg: ldoln {
diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi
index fe99231cbde5..c4d9175b90dc 100644
--- a/arch/arm/boot/dts/dra7.dtsi
+++ b/arch/arm/boot/dts/dra7.dtsi
@@ -41,6 +41,7 @@
41 ethernet1 = &cpsw_emac1; 41 ethernet1 = &cpsw_emac1;
42 d_can0 = &dcan1; 42 d_can0 = &dcan1;
43 d_can1 = &dcan2; 43 d_can1 = &dcan2;
44 spi0 = &qspi;
44 }; 45 };
45 46
46 timer { 47 timer {
@@ -1153,8 +1154,10 @@
1153 1154
1154 qspi: qspi@4b300000 { 1155 qspi: qspi@4b300000 {
1155 compatible = "ti,dra7xxx-qspi"; 1156 compatible = "ti,dra7xxx-qspi";
1156 reg = <0x4b300000 0x100>; 1157 reg = <0x4b300000 0x100>,
1157 reg-names = "qspi_base"; 1158 <0x5c000000 0x4000000>;
1159 reg-names = "qspi_base", "qspi_mmap";
1160 syscon-chipselects = <&scm_conf 0x558>;
1158 #address-cells = <1>; 1161 #address-cells = <1>;
1159 #size-cells = <0>; 1162 #size-cells = <0>;
1160 ti,hwmods = "qspi"; 1163 ti,hwmods = "qspi";
diff --git a/arch/arm/boot/dts/dra72-evm.dts b/arch/arm/boot/dts/dra72-evm.dts
index d6104d5f0c01..00b12002c07c 100644
--- a/arch/arm/boot/dts/dra72-evm.dts
+++ b/arch/arm/boot/dts/dra72-evm.dts
@@ -142,158 +142,158 @@
142&dra7_pmx_core { 142&dra7_pmx_core {
143 i2c1_pins: pinmux_i2c1_pins { 143 i2c1_pins: pinmux_i2c1_pins {
144 pinctrl-single,pins = < 144 pinctrl-single,pins = <
145 0x400 (PIN_INPUT | MUX_MODE0) /* i2c1_sda.i2c1_sda */ 145 DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT | MUX_MODE0) /* i2c1_sda.i2c1_sda */
146 0x404 (PIN_INPUT | MUX_MODE0) /* i2c1_scl.i2c1_scl */ 146 DRA7XX_CORE_IOPAD(0x3804, PIN_INPUT | MUX_MODE0) /* i2c1_scl.i2c1_scl */
147 >; 147 >;
148 }; 148 };
149 149
150 i2c5_pins: pinmux_i2c5_pins { 150 i2c5_pins: pinmux_i2c5_pins {
151 pinctrl-single,pins = < 151 pinctrl-single,pins = <
152 0x2b4 (PIN_INPUT | MUX_MODE10) /* mcasp1_axr0.i2c5_sda */ 152 DRA7XX_CORE_IOPAD(0x36b4, PIN_INPUT | MUX_MODE10) /* mcasp1_axr0.i2c5_sda */
153 0x2b8 (PIN_INPUT | MUX_MODE10) /* mcasp1_axr1.i2c5_scl */ 153 DRA7XX_CORE_IOPAD(0x36b8, PIN_INPUT | MUX_MODE10) /* mcasp1_axr1.i2c5_scl */
154 >; 154 >;
155 }; 155 };
156 156
157 i2c5_pins: pinmux_i2c5_pins { 157 i2c5_pins: pinmux_i2c5_pins {
158 pinctrl-single,pins = < 158 pinctrl-single,pins = <
159 0x2b4 (PIN_INPUT | MUX_MODE10) /* mcasp1_axr0.i2c5_sda */ 159 DRA7XX_CORE_IOPAD(0x36b4, PIN_INPUT | MUX_MODE10) /* mcasp1_axr0.i2c5_sda */
160 0x2b8 (PIN_INPUT | MUX_MODE10) /* mcasp1_axr1.i2c5_scl */ 160 DRA7XX_CORE_IOPAD(0x36b8, PIN_INPUT | MUX_MODE10) /* mcasp1_axr1.i2c5_scl */
161 >; 161 >;
162 }; 162 };
163 163
164 nand_default: nand_default { 164 nand_default: nand_default {
165 pinctrl-single,pins = < 165 pinctrl-single,pins = <
166 0x0 (PIN_INPUT | MUX_MODE0) /* gpmc_ad0 */ 166 DRA7XX_CORE_IOPAD(0x3400, PIN_INPUT | MUX_MODE0) /* gpmc_ad0 */
167 0x4 (PIN_INPUT | MUX_MODE0) /* gpmc_ad1 */ 167 DRA7XX_CORE_IOPAD(0x3404, PIN_INPUT | MUX_MODE0) /* gpmc_ad1 */
168 0x8 (PIN_INPUT | MUX_MODE0) /* gpmc_ad2 */ 168 DRA7XX_CORE_IOPAD(0x3408, PIN_INPUT | MUX_MODE0) /* gpmc_ad2 */
169 0xc (PIN_INPUT | MUX_MODE0) /* gpmc_ad3 */ 169 DRA7XX_CORE_IOPAD(0x340c, PIN_INPUT | MUX_MODE0) /* gpmc_ad3 */
170 0x10 (PIN_INPUT | MUX_MODE0) /* gpmc_ad4 */ 170 DRA7XX_CORE_IOPAD(0x3410, PIN_INPUT | MUX_MODE0) /* gpmc_ad4 */
171 0x14 (PIN_INPUT | MUX_MODE0) /* gpmc_ad5 */ 171 DRA7XX_CORE_IOPAD(0x3414, PIN_INPUT | MUX_MODE0) /* gpmc_ad5 */
172 0x18 (PIN_INPUT | MUX_MODE0) /* gpmc_ad6 */ 172 DRA7XX_CORE_IOPAD(0x3418, PIN_INPUT | MUX_MODE0) /* gpmc_ad6 */
173 0x1c (PIN_INPUT | MUX_MODE0) /* gpmc_ad7 */ 173 DRA7XX_CORE_IOPAD(0x341c, PIN_INPUT | MUX_MODE0) /* gpmc_ad7 */
174 0x20 (PIN_INPUT | MUX_MODE0) /* gpmc_ad8 */ 174 DRA7XX_CORE_IOPAD(0x3420, PIN_INPUT | MUX_MODE0) /* gpmc_ad8 */
175 0x24 (PIN_INPUT | MUX_MODE0) /* gpmc_ad9 */ 175 DRA7XX_CORE_IOPAD(0x3424, PIN_INPUT | MUX_MODE0) /* gpmc_ad9 */
176 0x28 (PIN_INPUT | MUX_MODE0) /* gpmc_ad10 */ 176 DRA7XX_CORE_IOPAD(0x3428, PIN_INPUT | MUX_MODE0) /* gpmc_ad10 */
177 0x2c (PIN_INPUT | MUX_MODE0) /* gpmc_ad11 */ 177 DRA7XX_CORE_IOPAD(0x342c, PIN_INPUT | MUX_MODE0) /* gpmc_ad11 */
178 0x30 (PIN_INPUT | MUX_MODE0) /* gpmc_ad12 */ 178 DRA7XX_CORE_IOPAD(0x3430, PIN_INPUT | MUX_MODE0) /* gpmc_ad12 */
179 0x34 (PIN_INPUT | MUX_MODE0) /* gpmc_ad13 */ 179 DRA7XX_CORE_IOPAD(0x3434, PIN_INPUT | MUX_MODE0) /* gpmc_ad13 */
180 0x38 (PIN_INPUT | MUX_MODE0) /* gpmc_ad14 */ 180 DRA7XX_CORE_IOPAD(0x3438, PIN_INPUT | MUX_MODE0) /* gpmc_ad14 */
181 0x3c (PIN_INPUT | MUX_MODE0) /* gpmc_ad15 */ 181 DRA7XX_CORE_IOPAD(0x343c, PIN_INPUT | MUX_MODE0) /* gpmc_ad15 */
182 0xb4 (PIN_OUTPUT | MUX_MODE0) /* gpmc_cs0 */ 182 DRA7XX_CORE_IOPAD(0x34b4, PIN_OUTPUT | MUX_MODE0) /* gpmc_cs0 */
183 0xc4 (PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale */ 183 DRA7XX_CORE_IOPAD(0x34c4, PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale */
184 0xcc (PIN_OUTPUT | MUX_MODE0) /* gpmc_wen */ 184 DRA7XX_CORE_IOPAD(0x34cc, PIN_OUTPUT | MUX_MODE0) /* gpmc_wen */
185 0xc8 (PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren */ 185 DRA7XX_CORE_IOPAD(0x34c8, PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren */
186 0xd0 (PIN_OUTPUT | MUX_MODE0) /* gpmc_ben0 */ 186 DRA7XX_CORE_IOPAD(0x34d0, PIN_OUTPUT | MUX_MODE0) /* gpmc_ben0 */
187 0xd8 (PIN_INPUT | MUX_MODE0) /* gpmc_wait0 */ 187 DRA7XX_CORE_IOPAD(0x34d8, PIN_INPUT | MUX_MODE0) /* gpmc_wait0 */
188 >; 188 >;
189 }; 189 };
190 190
191 usb1_pins: pinmux_usb1_pins { 191 usb1_pins: pinmux_usb1_pins {
192 pinctrl-single,pins = < 192 pinctrl-single,pins = <
193 0x280 (PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */ 193 DRA7XX_CORE_IOPAD(0x3680, PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */
194 >; 194 >;
195 }; 195 };
196 196
197 usb2_pins: pinmux_usb2_pins { 197 usb2_pins: pinmux_usb2_pins {
198 pinctrl-single,pins = < 198 pinctrl-single,pins = <
199 0x284 (PIN_INPUT_SLEW | MUX_MODE0) /* usb2_drvvbus */ 199 DRA7XX_CORE_IOPAD(0x3684, PIN_INPUT_SLEW | MUX_MODE0) /* usb2_drvvbus */
200 >; 200 >;
201 }; 201 };
202 202
203 tps65917_pins_default: tps65917_pins_default { 203 tps65917_pins_default: tps65917_pins_default {
204 pinctrl-single,pins = < 204 pinctrl-single,pins = <
205 0x424 (PIN_INPUT_PULLUP | MUX_MODE1) /* wakeup3.sys_nirq1 */ 205 DRA7XX_CORE_IOPAD(0x3824, PIN_INPUT_PULLUP | MUX_MODE1) /* wakeup3.sys_nirq1 */
206 >; 206 >;
207 }; 207 };
208 208
209 mmc1_pins_default: mmc1_pins_default { 209 mmc1_pins_default: mmc1_pins_default {
210 pinctrl-single,pins = < 210 pinctrl-single,pins = <
211 0x36c (PIN_INPUT | MUX_MODE14) /* mmc1sdcd.gpio219 */ 211 DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14) /* mmc1sdcd.gpio219 */
212 0x354 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */ 212 DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
213 0x358 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */ 213 DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
214 0x35c (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */ 214 DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
215 0x360 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */ 215 DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
216 0x364 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */ 216 DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
217 0x368 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */ 217 DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
218 >; 218 >;
219 }; 219 };
220 220
221 mmc2_pins_default: mmc2_pins_default { 221 mmc2_pins_default: mmc2_pins_default {
222 pinctrl-single,pins = < 222 pinctrl-single,pins = <
223 0x9c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */ 223 DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
224 0xb0 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */ 224 DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
225 0xa0 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */ 225 DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
226 0xa4 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */ 226 DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
227 0xa8 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */ 227 DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
228 0xac (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */ 228 DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
229 0x8c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */ 229 DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
230 0x90 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */ 230 DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
231 0x94 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */ 231 DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
232 0x98 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */ 232 DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
233 >; 233 >;
234 }; 234 };
235 235
236 dcan1_pins_default: dcan1_pins_default { 236 dcan1_pins_default: dcan1_pins_default {
237 pinctrl-single,pins = < 237 pinctrl-single,pins = <
238 0x3d0 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* dcan1_tx */ 238 DRA7XX_CORE_IOPAD(0x37d0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* dcan1_tx */
239 0x418 (PULL_UP | MUX_MODE1) /* wakeup0.dcan1_rx */ 239 DRA7XX_CORE_IOPAD(0x3818, PULL_UP | MUX_MODE1) /* wakeup0.dcan1_rx */
240 >; 240 >;
241 }; 241 };
242 242
243 dcan1_pins_sleep: dcan1_pins_sleep { 243 dcan1_pins_sleep: dcan1_pins_sleep {
244 pinctrl-single,pins = < 244 pinctrl-single,pins = <
245 0x3d0 (MUX_MODE15 | PULL_UP) /* dcan1_tx.off */ 245 DRA7XX_CORE_IOPAD(0x37d0, MUX_MODE15 | PULL_UP) /* dcan1_tx.off */
246 0x418 (MUX_MODE15 | PULL_UP) /* wakeup0.off */ 246 DRA7XX_CORE_IOPAD(0x3818, MUX_MODE15 | PULL_UP) /* wakeup0.off */
247 >; 247 >;
248 }; 248 };
249 249
250 qspi1_pins: pinmux_qspi1_pins { 250 qspi1_pins: pinmux_qspi1_pins {
251 pinctrl-single,pins = < 251 pinctrl-single,pins = <
252 0x74 (PIN_OUTPUT | MUX_MODE1) /* gpmc_a13.qspi1_rtclk */ 252 DRA7XX_CORE_IOPAD(0x3474, PIN_OUTPUT | MUX_MODE1) /* gpmc_a13.qspi1_rtclk */
253 0x78 (PIN_INPUT | MUX_MODE1) /* gpmc_a14.qspi1_d3 */ 253 DRA7XX_CORE_IOPAD(0x3478, PIN_INPUT | MUX_MODE1) /* gpmc_a14.qspi1_d3 */
254 0x7c (PIN_INPUT | MUX_MODE1) /* gpmc_a15.qspi1_d2 */ 254 DRA7XX_CORE_IOPAD(0x347c, PIN_INPUT | MUX_MODE1) /* gpmc_a15.qspi1_d2 */
255 0x80 (PIN_INPUT | MUX_MODE1) /* gpmc_a16.qspi1_d1 */ 255 DRA7XX_CORE_IOPAD(0x3480, PIN_INPUT | MUX_MODE1) /* gpmc_a16.qspi1_d1 */
256 0x84 (PIN_INPUT | MUX_MODE1) /* gpmc_a17.qspi1_d0 */ 256 DRA7XX_CORE_IOPAD(0x3484, PIN_INPUT | MUX_MODE1) /* gpmc_a17.qspi1_d0 */
257 0x88 (PIN_OUTPUT | MUX_MODE1) /* qpmc_a18.qspi1_sclk */ 257 DRA7XX_CORE_IOPAD(0x3488, PIN_OUTPUT | MUX_MODE1) /* qpmc_a18.qspi1_sclk */
258 0xb8 (PIN_OUTPUT | MUX_MODE1) /* gpmc_cs2.qspi1_cs0 */ 258 DRA7XX_CORE_IOPAD(0x34b8, PIN_OUTPUT | MUX_MODE1) /* gpmc_cs2.qspi1_cs0 */
259 >; 259 >;
260 }; 260 };
261 261
262 hdmi_pins: pinmux_hdmi_pins { 262 hdmi_pins: pinmux_hdmi_pins {
263 pinctrl-single,pins = < 263 pinctrl-single,pins = <
264 0x408 (PIN_INPUT | MUX_MODE1) /* i2c2_sda.hdmi1_ddc_scl */ 264 DRA7XX_CORE_IOPAD(0x3808, PIN_INPUT | MUX_MODE1) /* i2c2_sda.hdmi1_ddc_scl */
265 0x40c (PIN_INPUT | MUX_MODE1) /* i2c2_scl.hdmi1_ddc_sda */ 265 DRA7XX_CORE_IOPAD(0x380c, PIN_INPUT | MUX_MODE1) /* i2c2_scl.hdmi1_ddc_sda */
266 >; 266 >;
267 }; 267 };
268 268
269 tpd12s015_pins: pinmux_tpd12s015_pins { 269 tpd12s015_pins: pinmux_tpd12s015_pins {
270 pinctrl-single,pins = < 270 pinctrl-single,pins = <
271 0x3b8 (PIN_INPUT_PULLDOWN | MUX_MODE14) /* gpio7_12 HPD */ 271 DRA7XX_CORE_IOPAD(0x37b8, PIN_INPUT_PULLDOWN | MUX_MODE14) /* gpio7_12 HPD */
272 >; 272 >;
273 }; 273 };
274 274
275 atl_pins: pinmux_atl_pins { 275 atl_pins: pinmux_atl_pins {
276 pinctrl-single,pins = < 276 pinctrl-single,pins = <
277 0x298 (PIN_OUTPUT | MUX_MODE5) /* xref_clk1.atl_clk1 */ 277 DRA7XX_CORE_IOPAD(0x3698, PIN_OUTPUT | MUX_MODE5) /* xref_clk1.atl_clk1 */
278 0x29c (PIN_OUTPUT | MUX_MODE5) /* xref_clk2.atl_clk2 */ 278 DRA7XX_CORE_IOPAD(0x369c, PIN_OUTPUT | MUX_MODE5) /* xref_clk2.atl_clk2 */
279 >; 279 >;
280 }; 280 };
281 281
282 mcasp3_pins: pinmux_mcasp3_pins { 282 mcasp3_pins: pinmux_mcasp3_pins {
283 pinctrl-single,pins = < 283 pinctrl-single,pins = <
284 0x324 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_aclkx */ 284 DRA7XX_CORE_IOPAD(0x3724, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_aclkx */
285 0x328 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_fsx */ 285 DRA7XX_CORE_IOPAD(0x3728, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_fsx */
286 0x32c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr0 */ 286 DRA7XX_CORE_IOPAD(0x372c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr0 */
287 0x330 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr1 */ 287 DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr1 */
288 >; 288 >;
289 }; 289 };
290 290
291 mcasp3_sleep_pins: pinmux_mcasp3_sleep_pins { 291 mcasp3_sleep_pins: pinmux_mcasp3_sleep_pins {
292 pinctrl-single,pins = < 292 pinctrl-single,pins = <
293 0x324 (PIN_INPUT_PULLDOWN | MUX_MODE15) 293 DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT_PULLDOWN | MUX_MODE15)
294 0x328 (PIN_INPUT_PULLDOWN | MUX_MODE15) 294 DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT_PULLDOWN | MUX_MODE15)
295 0x32c (PIN_INPUT_PULLDOWN | MUX_MODE15) 295 DRA7XX_CORE_IOPAD(0x372c, PIN_INPUT_PULLDOWN | MUX_MODE15)
296 0x330 (PIN_INPUT_PULLDOWN | MUX_MODE15) 296 DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT_PULLDOWN | MUX_MODE15)
297 >; 297 >;
298 }; 298 };
299}; 299};
@@ -373,6 +373,7 @@
373 regulator-max-microvolt = <3300000>; 373 regulator-max-microvolt = <3300000>;
374 regulator-always-on; 374 regulator-always-on;
375 regulator-boot-on; 375 regulator-boot-on;
376 regulator-allow-bypass;
376 }; 377 };
377 378
378 ldo2_reg: ldo2 { 379 ldo2_reg: ldo2 {
@@ -380,6 +381,7 @@
380 regulator-name = "ldo2"; 381 regulator-name = "ldo2";
381 regulator-min-microvolt = <1800000>; 382 regulator-min-microvolt = <1800000>;
382 regulator-max-microvolt = <3300000>; 383 regulator-max-microvolt = <3300000>;
384 regulator-allow-bypass;
383 }; 385 };
384 386
385 ldo3_reg: ldo3 { 387 ldo3_reg: ldo3 {
@@ -478,6 +480,8 @@
478 480
479&uart1 { 481&uart1 {
480 status = "okay"; 482 status = "okay";
483 interrupts-extended = <&crossbar_mpu GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
484 <&dra7_pmx_core 0x3e0>;
481}; 485};
482 486
483&elm { 487&elm {
@@ -627,18 +631,18 @@
627 cpsw_default: cpsw_default { 631 cpsw_default: cpsw_default {
628 pinctrl-single,pins = < 632 pinctrl-single,pins = <
629 /* Slave 2 */ 633 /* Slave 2 */
630 0x198 (PIN_OUTPUT | MUX_MODE3) /* vin2a_d12.rgmii1_txc */ 634 DRA7XX_CORE_IOPAD(0x3598, PIN_OUTPUT | MUX_MODE3) /* vin2a_d12.rgmii1_txc */
631 0x19c (PIN_OUTPUT | MUX_MODE3) /* vin2a_d13.rgmii1_tctl */ 635 DRA7XX_CORE_IOPAD(0x359c, PIN_OUTPUT | MUX_MODE3) /* vin2a_d13.rgmii1_tctl */
632 0x1a0 (PIN_OUTPUT | MUX_MODE3) /* vin2a_d14.rgmii1_td3 */ 636 DRA7XX_CORE_IOPAD(0x35a0, PIN_OUTPUT | MUX_MODE3) /* vin2a_d14.rgmii1_td3 */
633 0x1a4 (PIN_OUTPUT | MUX_MODE3) /* vin2a_d15.rgmii1_td2 */ 637 DRA7XX_CORE_IOPAD(0x35a4, PIN_OUTPUT | MUX_MODE3) /* vin2a_d15.rgmii1_td2 */
634 0x1a8 (PIN_OUTPUT | MUX_MODE3) /* vin2a_d16.rgmii1_td1 */ 638 DRA7XX_CORE_IOPAD(0x35a8, PIN_OUTPUT | MUX_MODE3) /* vin2a_d16.rgmii1_td1 */
635 0x1ac (PIN_OUTPUT | MUX_MODE3) /* vin2a_d17.rgmii1_td0 */ 639 DRA7XX_CORE_IOPAD(0x35ac, PIN_OUTPUT | MUX_MODE3) /* vin2a_d17.rgmii1_td0 */
636 0x1b0 (PIN_INPUT | MUX_MODE3) /* vin2a_d18.rgmii1_rclk */ 640 DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE3) /* vin2a_d18.rgmii1_rclk */
637 0x1b4 (PIN_INPUT | MUX_MODE3) /* vin2a_d19.rgmii1_rctl */ 641 DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE3) /* vin2a_d19.rgmii1_rctl */
638 0x1b8 (PIN_INPUT | MUX_MODE3) /* vin2a_d20.rgmii1_rd3 */ 642 DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE3) /* vin2a_d20.rgmii1_rd3 */
639 0x1bc (PIN_INPUT | MUX_MODE3) /* vin2a_d21.rgmii1_rd2 */ 643 DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE3) /* vin2a_d21.rgmii1_rd2 */
640 0x1c0 (PIN_INPUT | MUX_MODE3) /* vin2a_d22.rgmii1_rd1 */ 644 DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE3) /* vin2a_d22.rgmii1_rd1 */
641 0x1c4 (PIN_INPUT | MUX_MODE3) /* vin2a_d23.rgmii1_rd0 */ 645 DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE3) /* vin2a_d23.rgmii1_rd0 */
642 >; 646 >;
643 647
644 }; 648 };
@@ -646,33 +650,33 @@
646 cpsw_sleep: cpsw_sleep { 650 cpsw_sleep: cpsw_sleep {
647 pinctrl-single,pins = < 651 pinctrl-single,pins = <
648 /* Slave 2 */ 652 /* Slave 2 */
649 0x198 (MUX_MODE15) 653 DRA7XX_CORE_IOPAD(0x3598, MUX_MODE15)
650 0x19c (MUX_MODE15) 654 DRA7XX_CORE_IOPAD(0x359c, MUX_MODE15)
651 0x1a0 (MUX_MODE15) 655 DRA7XX_CORE_IOPAD(0x35a0, MUX_MODE15)
652 0x1a4 (MUX_MODE15) 656 DRA7XX_CORE_IOPAD(0x35a4, MUX_MODE15)
653 0x1a8 (MUX_MODE15) 657 DRA7XX_CORE_IOPAD(0x35a8, MUX_MODE15)
654 0x1ac (MUX_MODE15) 658 DRA7XX_CORE_IOPAD(0x35ac, MUX_MODE15)
655 0x1b0 (MUX_MODE15) 659 DRA7XX_CORE_IOPAD(0x35b0, MUX_MODE15)
656 0x1b4 (MUX_MODE15) 660 DRA7XX_CORE_IOPAD(0x35b4, MUX_MODE15)
657 0x1b8 (MUX_MODE15) 661 DRA7XX_CORE_IOPAD(0x35b8, MUX_MODE15)
658 0x1bc (MUX_MODE15) 662 DRA7XX_CORE_IOPAD(0x35bc, MUX_MODE15)
659 0x1c0 (MUX_MODE15) 663 DRA7XX_CORE_IOPAD(0x35c0, MUX_MODE15)
660 0x1c4 (MUX_MODE15) 664 DRA7XX_CORE_IOPAD(0x35c4, MUX_MODE15)
661 >; 665 >;
662 }; 666 };
663 667
664 davinci_mdio_default: davinci_mdio_default { 668 davinci_mdio_default: davinci_mdio_default {
665 pinctrl-single,pins = < 669 pinctrl-single,pins = <
666 /* MDIO */ 670 /* MDIO */
667 0x23c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_d.mdio_d */ 671 DRA7XX_CORE_IOPAD(0x363c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_d.mdio_d */
668 0x240 (PIN_INPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ 672 DRA7XX_CORE_IOPAD(0x3640, PIN_INPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
669 >; 673 >;
670 }; 674 };
671 675
672 davinci_mdio_sleep: davinci_mdio_sleep { 676 davinci_mdio_sleep: davinci_mdio_sleep {
673 pinctrl-single,pins = < 677 pinctrl-single,pins = <
674 0x23c (MUX_MODE15) 678 DRA7XX_CORE_IOPAD(0x363c, MUX_MODE15)
675 0x240 (MUX_MODE15) 679 DRA7XX_CORE_IOPAD(0x3640, MUX_MODE15)
676 >; 680 >;
677 }; 681 };
678}; 682};
diff --git a/arch/arm/boot/dts/ea3250.dts b/arch/arm/boot/dts/ea3250.dts
index a4ba31b23c88..a4a281fe82af 100644
--- a/arch/arm/boot/dts/ea3250.dts
+++ b/arch/arm/boot/dts/ea3250.dts
@@ -12,7 +12,7 @@
12 */ 12 */
13 13
14/dts-v1/; 14/dts-v1/;
15/include/ "lpc32xx.dtsi" 15#include "lpc32xx.dtsi"
16 16
17/ { 17/ {
18 model = "Embedded Artists LPC3250 board based on NXP LPC3250"; 18 model = "Embedded Artists LPC3250 board based on NXP LPC3250";
@@ -22,7 +22,7 @@
22 22
23 memory { 23 memory {
24 device_type = "memory"; 24 device_type = "memory";
25 reg = <0 0x4000000>; 25 reg = <0x80000000 0x4000000>;
26 }; 26 };
27 27
28 ahb { 28 ahb {
@@ -31,19 +31,6 @@
31 use-iram; 31 use-iram;
32 }; 32 };
33 33
34 /* Here, choose exactly one from: ohci, usbd */
35 ohci@31020000 {
36 transceiver = <&isp1301>;
37 status = "okay";
38 };
39
40/*
41 usbd@31020000 {
42 transceiver = <&isp1301>;
43 status = "okay";
44 };
45*/
46
47 /* 128MB Flash via SLC NAND controller */ 34 /* 128MB Flash via SLC NAND controller */
48 slc: flash@20020000 { 35 slc: flash@20020000 {
49 status = "okay"; 36 status = "okay";
@@ -130,15 +117,6 @@
130 clock-frequency = <100000>; 117 clock-frequency = <100000>;
131 }; 118 };
132 119
133 i2cusb: i2c@31020300 {
134 clock-frequency = <100000>;
135
136 isp1301: usb-transceiver@2d {
137 compatible = "nxp,isp1301";
138 reg = <0x2d>;
139 };
140 };
141
142 sd@20098000 { 120 sd@20098000 {
143 wp-gpios = <&pca9532 5 0>; 121 wp-gpios = <&pca9532 5 0>;
144 cd-gpios = <&pca9532 4 0>; 122 cd-gpios = <&pca9532 4 0>;
@@ -279,3 +257,18 @@
279 }; 257 };
280 }; 258 };
281}; 259};
260
261/* Here, choose exactly one from: ohci, usbd */
262&ohci /* &usbd */ {
263 transceiver = <&isp1301>;
264 status = "okay";
265};
266
267&i2cusb {
268 clock-frequency = <100000>;
269
270 isp1301: usb-transceiver@2d {
271 compatible = "nxp,isp1301";
272 reg = <0x2d>;
273 };
274};
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index 07e10ee60bd8..045785c44c04 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -727,6 +727,15 @@
727 iommus = <&sysmmu_jpeg>; 727 iommus = <&sysmmu_jpeg>;
728 }; 728 };
729 729
730 rotator: rotator@12810000 {
731 compatible = "samsung,exynos4210-rotator";
732 reg = <0x12810000 0x64>;
733 interrupts = <0 83 0>;
734 clocks = <&clock CLK_ROTATOR>;
735 clock-names = "rotator";
736 iommus = <&sysmmu_rotator>;
737 };
738
730 hdmi: hdmi@12D00000 { 739 hdmi: hdmi@12D00000 {
731 compatible = "samsung,exynos4210-hdmi"; 740 compatible = "samsung,exynos4210-hdmi";
732 reg = <0x12D00000 0x70000>; 741 reg = <0x12D00000 0x70000>;
@@ -954,7 +963,6 @@
954 interrupts = <5 0>; 963 interrupts = <5 0>;
955 clock-names = "sysmmu", "master"; 964 clock-names = "sysmmu", "master";
956 clocks = <&clock CLK_SMMU_ROTATOR>, <&clock CLK_ROTATOR>; 965 clocks = <&clock CLK_SMMU_ROTATOR>, <&clock CLK_ROTATOR>;
957 power-domains = <&pd_lcd0>;
958 #iommu-cells = <0>; 966 #iommu-cells = <0>;
959 }; 967 };
960 968
@@ -968,4 +976,12 @@
968 power-domains = <&pd_lcd0>; 976 power-domains = <&pd_lcd0>;
969 #iommu-cells = <0>; 977 #iommu-cells = <0>;
970 }; 978 };
979
980 prng: rng@10830400 {
981 compatible = "samsung,exynos4-rng";
982 reg = <0x10830400 0x200>;
983 clocks = <&clock CLK_SSS>;
984 clock-names = "secss";
985 status = "disabled";
986 };
971}; 987};
diff --git a/arch/arm/boot/dts/exynos4210-origen.dts b/arch/arm/boot/dts/exynos4210-origen.dts
index b8f866991bdd..5821ad87e32c 100644
--- a/arch/arm/boot/dts/exynos4210-origen.dts
+++ b/arch/arm/boot/dts/exynos4210-origen.dts
@@ -138,10 +138,6 @@
138 status = "okay"; 138 status = "okay";
139}; 139};
140 140
141&g2d {
142 status = "okay";
143};
144
145&i2c_0 { 141&i2c_0 {
146 status = "okay"; 142 status = "okay";
147 samsung,i2c-sda-delay = <100>; 143 samsung,i2c-sda-delay = <100>;
diff --git a/arch/arm/boot/dts/exynos4210-smdkv310.dts b/arch/arm/boot/dts/exynos4210-smdkv310.dts
index bc1448ba95d3..104cbb33d2bb 100644
--- a/arch/arm/boot/dts/exynos4210-smdkv310.dts
+++ b/arch/arm/boot/dts/exynos4210-smdkv310.dts
@@ -44,10 +44,6 @@
44 }; 44 };
45}; 45};
46 46
47&g2d {
48 status = "okay";
49};
50
51&i2c_0 { 47&i2c_0 {
52 #address-cells = <1>; 48 #address-cells = <1>;
53 #size-cells = <0>; 49 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/exynos4210-universal_c210.dts b/arch/arm/boot/dts/exynos4210-universal_c210.dts
index 81b7ec7b3e31..4f5d37920c8d 100644
--- a/arch/arm/boot/dts/exynos4210-universal_c210.dts
+++ b/arch/arm/boot/dts/exynos4210-universal_c210.dts
@@ -560,16 +560,24 @@
560 560
561&serial_0 { 561&serial_0 {
562 status = "okay"; 562 status = "okay";
563 /delete-property/dmas;
564 /delete-property/dma-names;
563}; 565};
564 566
565&serial_1 { 567&serial_1 {
566 status = "okay"; 568 status = "okay";
569 /delete-property/dmas;
570 /delete-property/dma-names;
567}; 571};
568 572
569&serial_2 { 573&serial_2 {
570 status = "okay"; 574 status = "okay";
575 /delete-property/dmas;
576 /delete-property/dma-names;
571}; 577};
572 578
573&serial_3 { 579&serial_3 {
574 status = "okay"; 580 status = "okay";
581 /delete-property/dmas;
582 /delete-property/dma-names;
575}; 583};
diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
index 3e5ba665d200..c1cb8df6da07 100644
--- a/arch/arm/boot/dts/exynos4210.dtsi
+++ b/arch/arm/boot/dts/exynos4210.dtsi
@@ -185,8 +185,8 @@
185 interrupts = <0 89 0>; 185 interrupts = <0 89 0>;
186 clocks = <&clock CLK_SCLK_FIMG2D>, <&clock CLK_G2D>; 186 clocks = <&clock CLK_SCLK_FIMG2D>, <&clock CLK_G2D>;
187 clock-names = "sclk_fimg2d", "fimg2d"; 187 clock-names = "sclk_fimg2d", "fimg2d";
188 power-domains = <&pd_lcd0>;
188 iommus = <&sysmmu_g2d>; 189 iommus = <&sysmmu_g2d>;
189 status = "disabled";
190 }; 190 };
191 191
192 camera { 192 camera {
@@ -271,6 +271,10 @@
271 <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>; 271 <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>;
272}; 272};
273 273
274&mdma1 {
275 power-domains = <&pd_lcd0>;
276};
277
274&pmu_system_controller { 278&pmu_system_controller {
275 clock-names = "clkout0", "clkout1", "clkout2", "clkout3", 279 clock-names = "clkout0", "clkout1", "clkout2", "clkout3",
276 "clkout4", "clkout8", "clkout9"; 280 "clkout4", "clkout8", "clkout9";
@@ -279,3 +283,11 @@
279 <&clock CLK_OUT_CPU>, <&clock CLK_XXTI>, <&clock CLK_XUSBXTI>; 283 <&clock CLK_OUT_CPU>, <&clock CLK_XXTI>, <&clock CLK_XUSBXTI>;
280 #clock-cells = <1>; 284 #clock-cells = <1>;
281}; 285};
286
287&rotator {
288 power-domains = <&pd_lcd0>;
289};
290
291&sysmmu_rotator {
292 power-domains = <&pd_lcd0>;
293};
diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
index edf0fc8db6ff..395c3ca9601e 100644
--- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
+++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
@@ -177,10 +177,6 @@
177 assigned-clock-rates = <0>, <176000000>; 177 assigned-clock-rates = <0>, <176000000>;
178}; 178};
179 179
180&g2d {
181 status = "okay";
182};
183
184&hdmi { 180&hdmi {
185 hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>; 181 hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
186 pinctrl-names = "default"; 182 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/exynos4412-odroidu3.dts b/arch/arm/boot/dts/exynos4412-odroidu3.dts
index 646ff0bd001a..dd89f7b37c9f 100644
--- a/arch/arm/boot/dts/exynos4412-odroidu3.dts
+++ b/arch/arm/boot/dts/exynos4412-odroidu3.dts
@@ -13,7 +13,6 @@
13 13
14/dts-v1/; 14/dts-v1/;
15#include "exynos4412-odroid-common.dtsi" 15#include "exynos4412-odroid-common.dtsi"
16#include <dt-bindings/gpio/gpio.h>
17 16
18/ { 17/ {
19 model = "Hardkernel ODROID-U3 board based on Exynos4412"; 18 model = "Hardkernel ODROID-U3 board based on Exynos4412";
diff --git a/arch/arm/boot/dts/exynos4412-origen.dts b/arch/arm/boot/dts/exynos4412-origen.dts
index c8d86af2fb98..9e2e24c6177a 100644
--- a/arch/arm/boot/dts/exynos4412-origen.dts
+++ b/arch/arm/boot/dts/exynos4412-origen.dts
@@ -89,10 +89,6 @@
89 status = "okay"; 89 status = "okay";
90}; 90};
91 91
92&g2d {
93 status = "okay";
94};
95
96&i2c_0 { 92&i2c_0 {
97 #address-cells = <1>; 93 #address-cells = <1>;
98 #size-cells = <0>; 94 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/exynos4412-smdk4412.dts b/arch/arm/boot/dts/exynos4412-smdk4412.dts
index c2421df1fa43..a130ab39fa77 100644
--- a/arch/arm/boot/dts/exynos4412-smdk4412.dts
+++ b/arch/arm/boot/dts/exynos4412-smdk4412.dts
@@ -41,10 +41,6 @@
41 }; 41 };
42}; 42};
43 43
44&g2d {
45 status = "okay";
46};
47
48&keypad { 44&keypad {
49 samsung,keypad-num-rows = <3>; 45 samsung,keypad-num-rows = <3>;
50 samsung,keypad-num-columns = <8>; 46 samsung,keypad-num-columns = <8>;
diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts
index 40a474c4374b..a6f78c3da935 100644
--- a/arch/arm/boot/dts/exynos4412-trats2.dts
+++ b/arch/arm/boot/dts/exynos4412-trats2.dts
@@ -1234,6 +1234,10 @@
1234 status = "okay"; 1234 status = "okay";
1235}; 1235};
1236 1236
1237&prng {
1238 status = "okay";
1239};
1240
1237&rtc { 1241&rtc {
1238 status = "okay"; 1242 status = "okay";
1239 clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>; 1243 clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>;
diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
index b77dac61ffb5..84a23f962946 100644
--- a/arch/arm/boot/dts/exynos4x12.dtsi
+++ b/arch/arm/boot/dts/exynos4x12.dtsi
@@ -116,7 +116,6 @@
116 clocks = <&clock CLK_SCLK_FIMG2D>, <&clock CLK_G2D>; 116 clocks = <&clock CLK_SCLK_FIMG2D>, <&clock CLK_G2D>;
117 clock-names = "sclk_fimg2d", "fimg2d"; 117 clock-names = "sclk_fimg2d", "fimg2d";
118 iommus = <&sysmmu_g2d>; 118 iommus = <&sysmmu_g2d>;
119 status = "disabled";
120 }; 119 };
121 120
122 camera { 121 camera {
@@ -339,6 +338,10 @@
339 compatible = "samsung,exynos4212-jpeg"; 338 compatible = "samsung,exynos4212-jpeg";
340}; 339};
341 340
341&rotator {
342 compatible = "samsung,exynos4212-rotator";
343};
344
342&mixer { 345&mixer {
343 compatible = "samsung,exynos4212-mixer"; 346 compatible = "samsung,exynos4212-mixer";
344 clock-names = "mixer", "hdmi", "sclk_hdmi", "vp"; 347 clock-names = "mixer", "hdmi", "sclk_hdmi", "vp";
diff --git a/arch/arm/boot/dts/exynos5250-snow-common.dtsi b/arch/arm/boot/dts/exynos5250-snow-common.dtsi
index 0a7f408824d8..5cb33ba5e296 100644
--- a/arch/arm/boot/dts/exynos5250-snow-common.dtsi
+++ b/arch/arm/boot/dts/exynos5250-snow-common.dtsi
@@ -520,8 +520,7 @@
520&mmc_0 { 520&mmc_0 {
521 status = "okay"; 521 status = "okay";
522 num-slots = <1>; 522 num-slots = <1>;
523 broken-cd; 523 non-removable;
524 card-detect-delay = <200>;
525 samsung,dw-mshc-ciu-div = <3>; 524 samsung,dw-mshc-ciu-div = <3>;
526 samsung,dw-mshc-sdr-timing = <2 3>; 525 samsung,dw-mshc-sdr-timing = <2 3>;
527 samsung,dw-mshc-ddr-timing = <1 2>; 526 samsung,dw-mshc-ddr-timing = <1 2>;
@@ -552,10 +551,9 @@
552&mmc_3 { 551&mmc_3 {
553 status = "okay"; 552 status = "okay";
554 num-slots = <1>; 553 num-slots = <1>;
555 broken-cd; 554 non-removable;
556 cap-sdio-irq; 555 cap-sdio-irq;
557 keep-power-in-suspend; 556 keep-power-in-suspend;
558 card-detect-delay = <200>;
559 samsung,dw-mshc-ciu-div = <3>; 557 samsung,dw-mshc-ciu-div = <3>;
560 samsung,dw-mshc-sdr-timing = <2 3>; 558 samsung,dw-mshc-sdr-timing = <2 3>;
561 samsung,dw-mshc-ddr-timing = <1 2>; 559 samsung,dw-mshc-ddr-timing = <1 2>;
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi
index 88b9cf5f226f..33e2d5f7315b 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -269,6 +269,15 @@
269 iommu-names = "left", "right"; 269 iommu-names = "left", "right";
270 }; 270 };
271 271
272 rotator: rotator@11C00000 {
273 compatible = "samsung,exynos5250-rotator";
274 reg = <0x11C00000 0x64>;
275 interrupts = <0 84 0>;
276 clocks = <&clock CLK_ROTATOR>;
277 clock-names = "rotator";
278 iommus = <&sysmmu_rotator>;
279 };
280
272 tmu: tmu@10060000 { 281 tmu: tmu@10060000 {
273 compatible = "samsung,exynos5250-tmu"; 282 compatible = "samsung,exynos5250-tmu";
274 reg = <0x10060000 0x100>; 283 reg = <0x10060000 0x100>;
diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts b/arch/arm/boot/dts/exynos5420-peach-pit.dts
index 72ba6f032ed7..35cfb07dc4bb 100644
--- a/arch/arm/boot/dts/exynos5420-peach-pit.dts
+++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts
@@ -690,11 +690,9 @@
690&mmc_0 { 690&mmc_0 {
691 status = "okay"; 691 status = "okay";
692 num-slots = <1>; 692 num-slots = <1>;
693 broken-cd;
694 mmc-hs200-1_8v; 693 mmc-hs200-1_8v;
695 cap-mmc-highspeed; 694 cap-mmc-highspeed;
696 non-removable; 695 non-removable;
697 card-detect-delay = <200>;
698 clock-frequency = <400000000>; 696 clock-frequency = <400000000>;
699 samsung,dw-mshc-ciu-div = <3>; 697 samsung,dw-mshc-ciu-div = <3>;
700 samsung,dw-mshc-sdr-timing = <0 4>; 698 samsung,dw-mshc-sdr-timing = <0 4>;
@@ -709,10 +707,9 @@
709&mmc_1 { 707&mmc_1 {
710 status = "okay"; 708 status = "okay";
711 num-slots = <1>; 709 num-slots = <1>;
712 broken-cd; 710 non-removable;
713 cap-sdio-irq; 711 cap-sdio-irq;
714 keep-power-in-suspend; 712 keep-power-in-suspend;
715 card-detect-delay = <200>;
716 clock-frequency = <400000000>; 713 clock-frequency = <400000000>;
717 samsung,dw-mshc-ciu-div = <1>; 714 samsung,dw-mshc-ciu-div = <1>;
718 samsung,dw-mshc-sdr-timing = <0 1>; 715 samsung,dw-mshc-sdr-timing = <0 1>;
diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
index 1b3d6c769a3c..48a0a55314f5 100644
--- a/arch/arm/boot/dts/exynos5420.dtsi
+++ b/arch/arm/boot/dts/exynos5420.dtsi
@@ -717,6 +717,15 @@
717 iommus = <&sysmmu_tv>; 717 iommus = <&sysmmu_tv>;
718 }; 718 };
719 719
720 rotator: rotator@11C00000 {
721 compatible = "samsung,exynos5250-rotator";
722 reg = <0x11C00000 0x64>;
723 interrupts = <0 84 0>;
724 clocks = <&clock CLK_ROTATOR>;
725 clock-names = "rotator";
726 iommus = <&sysmmu_rotator>;
727 };
728
720 gsc_0: video-scaler@13e00000 { 729 gsc_0: video-scaler@13e00000 {
721 compatible = "samsung,exynos5-gsc"; 730 compatible = "samsung,exynos5-gsc";
722 reg = <0x13e00000 0x1000>; 731 reg = <0x13e00000 0x1000>;
@@ -1059,6 +1068,16 @@
1059 #iommu-cells = <0>; 1068 #iommu-cells = <0>;
1060 }; 1069 };
1061 1070
1071 sysmmu_rotator: sysmmu@0x11D40000 {
1072 compatible = "samsung,exynos-sysmmu";
1073 reg = <0x11D40000 0x1000>;
1074 interrupt-parent = <&combiner>;
1075 interrupts = <4 0>;
1076 clock-names = "sysmmu", "master";
1077 clocks = <&clock CLK_SMMU_ROTATOR>, <&clock CLK_ROTATOR>;
1078 #iommu-cells = <0>;
1079 };
1080
1062 sysmmu_jpeg0: sysmmu@0x11F10000 { 1081 sysmmu_jpeg0: sysmmu@0x11F10000 {
1063 compatible = "samsung,exynos-sysmmu"; 1082 compatible = "samsung,exynos-sysmmu";
1064 reg = <0x11F10000 0x1000>; 1083 reg = <0x11F10000 0x1000>;
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
index 1af5bdc2bdb1..9134217446b8 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
@@ -67,11 +67,6 @@
67 <19200000>; 67 <19200000>;
68}; 68};
69 69
70&fimd {
71 status = "okay";
72};
73
74
75&hdmi { 70&hdmi {
76 status = "okay"; 71 status = "okay";
77 hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>; 72 hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts b/arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts
index b1b36081f343..2ae1cf41dcb6 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts
@@ -67,5 +67,5 @@
67}; 67};
68 68
69&usbdrd_dwc3_1 { 69&usbdrd_dwc3_1 {
70 dr_mode = "otg"; 70 dr_mode = "peripheral";
71}; 71};
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
index 0c0bbdbfd85f..432406db85de 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
@@ -98,5 +98,5 @@
98}; 98};
99 99
100&usbdrd_dwc3_1 { 100&usbdrd_dwc3_1 {
101 dr_mode = "otg"; 101 dr_mode = "peripheral";
102}; 102};
diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts
index 1cc2e95ffc66..064176f201e7 100644
--- a/arch/arm/boot/dts/exynos5800-peach-pi.dts
+++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
@@ -665,12 +665,10 @@
665&mmc_0 { 665&mmc_0 {
666 status = "okay"; 666 status = "okay";
667 num-slots = <1>; 667 num-slots = <1>;
668 broken-cd;
669 mmc-hs200-1_8v; 668 mmc-hs200-1_8v;
670 mmc-hs400-1_8v; 669 mmc-hs400-1_8v;
671 cap-mmc-highspeed; 670 cap-mmc-highspeed;
672 non-removable; 671 non-removable;
673 card-detect-delay = <200>;
674 clock-frequency = <800000000>; 672 clock-frequency = <800000000>;
675 samsung,dw-mshc-ciu-div = <3>; 673 samsung,dw-mshc-ciu-div = <3>;
676 samsung,dw-mshc-sdr-timing = <0 4>; 674 samsung,dw-mshc-sdr-timing = <0 4>;
@@ -685,10 +683,9 @@
685&mmc_1 { 683&mmc_1 {
686 status = "okay"; 684 status = "okay";
687 num-slots = <1>; 685 num-slots = <1>;
688 broken-cd; 686 non-removable;
689 cap-sdio-irq; 687 cap-sdio-irq;
690 keep-power-in-suspend; 688 keep-power-in-suspend;
691 card-detect-delay = <200>;
692 clock-frequency = <400000000>; 689 clock-frequency = <400000000>;
693 samsung,dw-mshc-ciu-div = <1>; 690 samsung,dw-mshc-ciu-div = <1>;
694 samsung,dw-mshc-sdr-timing = <0 1>; 691 samsung,dw-mshc-sdr-timing = <0 1>;
diff --git a/arch/arm/boot/dts/imx25-pinfunc.h b/arch/arm/boot/dts/imx25-pinfunc.h
index 7c4b9f2f9aad..848ffa785b63 100644
--- a/arch/arm/boot/dts/imx25-pinfunc.h
+++ b/arch/arm/boot/dts/imx25-pinfunc.h
@@ -284,6 +284,7 @@
284#define MX25_PAD_CONTRAST__CC4 0x118 0x310 0x000 0x11 0x000 284#define MX25_PAD_CONTRAST__CC4 0x118 0x310 0x000 0x11 0x000
285#define MX25_PAD_CONTRAST__PWM4_PWMO 0x118 0x310 0x000 0x14 0x000 285#define MX25_PAD_CONTRAST__PWM4_PWMO 0x118 0x310 0x000 0x14 0x000
286#define MX25_PAD_CONTRAST__FEC_CRS 0x118 0x310 0x508 0x15 0x001 286#define MX25_PAD_CONTRAST__FEC_CRS 0x118 0x310 0x508 0x15 0x001
287#define MX25_PAD_CONTRAST__USBH2_PWR 0x118 0x310 0x000 0x16 0x000
287 288
288#define MX25_PAD_PWM__PWM 0x11c 0x314 0x000 0x10 0x000 289#define MX25_PAD_PWM__PWM 0x11c 0x314 0x000 0x10 0x000
289#define MX25_PAD_PWM__GPIO_1_26 0x11c 0x314 0x000 0x15 0x000 290#define MX25_PAD_PWM__GPIO_1_26 0x11c 0x314 0x000 0x15 0x000
@@ -439,6 +440,7 @@
439#define MX25_PAD_SD1_DATA3__GPIO_2_28 0x1a4 0x39c 0x000 0x15 0x000 440#define MX25_PAD_SD1_DATA3__GPIO_2_28 0x1a4 0x39c 0x000 0x15 0x000
440 441
441#define MX25_PAD_KPP_ROW0__KPP_ROW0 0x1a8 0x3a0 0x000 0x10 0x000 442#define MX25_PAD_KPP_ROW0__KPP_ROW0 0x1a8 0x3a0 0x000 0x10 0x000
443#define MX25_PAD_KPP_ROW0__UART1_DTR 0x1a8 0x3a0 0x000 0x14 0x000
442#define MX25_PAD_KPP_ROW0__GPIO_2_29 0x1a8 0x3a0 0x000 0x15 0x000 444#define MX25_PAD_KPP_ROW0__GPIO_2_29 0x1a8 0x3a0 0x000 0x15 0x000
443 445
444#define MX25_PAD_KPP_ROW1__KPP_ROW1 0x1ac 0x3a4 0x000 0x10 0x000 446#define MX25_PAD_KPP_ROW1__KPP_ROW1 0x1ac 0x3a4 0x000 0x10 0x000
@@ -446,6 +448,7 @@
446 448
447#define MX25_PAD_KPP_ROW2__KPP_ROW2 0x1b0 0x3a8 0x000 0x10 0x000 449#define MX25_PAD_KPP_ROW2__KPP_ROW2 0x1b0 0x3a8 0x000 0x10 0x000
448#define MX25_PAD_KPP_ROW2__CSI_D0 0x1b0 0x3a8 0x488 0x13 0x002 450#define MX25_PAD_KPP_ROW2__CSI_D0 0x1b0 0x3a8 0x488 0x13 0x002
451#define MX25_PAD_KPP_ROW2__UART1_DCD 0x1b0 0x3a8 0x000 0x14 0x000
449#define MX25_PAD_KPP_ROW2__GPIO_2_31 0x1b0 0x3a8 0x000 0x15 0x000 452#define MX25_PAD_KPP_ROW2__GPIO_2_31 0x1b0 0x3a8 0x000 0x15 0x000
450 453
451#define MX25_PAD_KPP_ROW3__KPP_ROW3 0x1b4 0x3ac 0x000 0x10 0x000 454#define MX25_PAD_KPP_ROW3__KPP_ROW3 0x1b4 0x3ac 0x000 0x10 0x000
diff --git a/arch/arm/boot/dts/imx25.dtsi b/arch/arm/boot/dts/imx25.dtsi
index 677f81d9dcd5..cde329e9b9e3 100644
--- a/arch/arm/boot/dts/imx25.dtsi
+++ b/arch/arm/boot/dts/imx25.dtsi
@@ -24,6 +24,10 @@
24 i2c2 = &i2c3; 24 i2c2 = &i2c3;
25 mmc0 = &esdhc1; 25 mmc0 = &esdhc1;
26 mmc1 = &esdhc2; 26 mmc1 = &esdhc2;
27 pwm0 = &pwm1;
28 pwm1 = &pwm2;
29 pwm2 = &pwm3;
30 pwm3 = &pwm4;
27 serial0 = &uart1; 31 serial0 = &uart1;
28 serial1 = &uart2; 32 serial1 = &uart2;
29 serial2 = &uart3; 33 serial2 = &uart3;
diff --git a/arch/arm/boot/dts/imx28-cfa10057.dts b/arch/arm/boot/dts/imx28-cfa10057.dts
index 5df0b24eaf59..7a80bd686c40 100644
--- a/arch/arm/boot/dts/imx28-cfa10057.dts
+++ b/arch/arm/boot/dts/imx28-cfa10057.dts
@@ -115,7 +115,7 @@
115 115
116 pwm: pwm@80064000 { 116 pwm: pwm@80064000 {
117 pinctrl-names = "default"; 117 pinctrl-names = "default";
118 pinctrl-0 = <&pwm3_pins_b>; 118 pinctrl-0 = <&pwm4_pins_a>;
119 status = "okay"; 119 status = "okay";
120 }; 120 };
121 121
@@ -170,7 +170,7 @@
170 170
171 backlight { 171 backlight {
172 compatible = "pwm-backlight"; 172 compatible = "pwm-backlight";
173 pwms = <&pwm 3 5000000>; 173 pwms = <&pwm 4 5000000>;
174 brightness-levels = <0 4 8 16 32 64 128 255>; 174 brightness-levels = <0 4 8 16 32 64 128 255>;
175 default-brightness-level = <7>; 175 default-brightness-level = <7>;
176 }; 176 };
diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi
index c5b57d4adade..fae7b9069fc4 100644
--- a/arch/arm/boot/dts/imx28.dtsi
+++ b/arch/arm/boot/dts/imx28.dtsi
@@ -405,6 +405,17 @@
405 fsl,pull-up = <MXS_PULL_DISABLE>; 405 fsl,pull-up = <MXS_PULL_DISABLE>;
406 }; 406 };
407 407
408 auart4_2pins_b: auart4@1 {
409 reg = <1>;
410 fsl,pinmux-ids = <
411 MX28_PAD_AUART0_CTS__AUART4_RX
412 MX28_PAD_AUART0_RTS__AUART4_TX
413 >;
414 fsl,drive-strength = <MXS_DRIVE_4mA>;
415 fsl,voltage = <MXS_VOLTAGE_HIGH>;
416 fsl,pull-up = <MXS_PULL_DISABLE>;
417 };
418
408 mac0_pins_a: mac0@0 { 419 mac0_pins_a: mac0@0 {
409 reg = <0>; 420 reg = <0>;
410 fsl,pinmux-ids = < 421 fsl,pinmux-ids = <
diff --git a/arch/arm/boot/dts/imx51-ts4800.dts b/arch/arm/boot/dts/imx51-ts4800.dts
new file mode 100644
index 000000000000..0ff76a1bc0f1
--- /dev/null
+++ b/arch/arm/boot/dts/imx51-ts4800.dts
@@ -0,0 +1,302 @@
1/*
2 * Copyright 2015 Savoir-faire Linux
3 *
4 * This device tree is based on imx51-babbage.dts
5 *
6 * Licensed under the X11 license or the GPL v2 (or later)
7 */
8
9/dts-v1/;
10#include "imx51.dtsi"
11
12/ {
13 model = "Technologic Systems TS-4800";
14 compatible = "technologic,imx51-ts4800", "fsl,imx51";
15
16 chosen {
17 stdout-path = &uart1;
18 };
19
20 memory {
21 reg = <0x90000000 0x10000000>;
22 };
23
24 clocks {
25 ckih1 {
26 clock-frequency = <22579200>;
27 };
28
29 ckih2 {
30 clock-frequency = <24576000>;
31 };
32 };
33
34 backlight_reg: regulator-backlight {
35 compatible = "regulator-fixed";
36 pinctrl-names = "default";
37 pinctrl-0 = <&pinctrl_enable_lcd>;
38 regulator-name = "enable_lcd_reg";
39 regulator-min-microvolt = <3300000>;
40 regulator-max-microvolt = <3300000>;
41 gpio = <&gpio4 9 GPIO_ACTIVE_HIGH>;
42 enable-active-high;
43 };
44
45 backlight: backlight {
46 compatible = "pwm-backlight";
47 pwms = <&pwm1 0 78770>;
48 brightness-levels = <0 150 200 255>;
49 default-brightness-level = <1>;
50 power-supply = <&backlight_reg>;
51 };
52
53 display0: display@di0 {
54 compatible = "fsl,imx-parallel-display";
55 interface-pix-fmt = "rgb24";
56 pinctrl-names = "default";
57 pinctrl-0 = <&pinctrl_lcd>;
58
59 display-timings {
60 800x480p60 {
61 native-mode;
62 clock-frequency = <30066000>;
63 hactive = <800>;
64 vactive = <480>;
65 hfront-porch = <50>;
66 hback-porch = <70>;
67 hsync-len = <50>;
68 vback-porch = <0>;
69 vfront-porch = <0>;
70 vsync-len = <50>;
71 };
72 };
73
74 port@0 {
75 display0_in: endpoint {
76 remote-endpoint = <&ipu_di0_disp0>;
77 };
78 };
79 };
80};
81
82&esdhc1 {
83 pinctrl-names = "default";
84 pinctrl-0 = <&pinctrl_esdhc1>;
85 cd-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
86 wp-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
87 status = "okay";
88};
89
90&fec {
91 pinctrl-names = "default";
92 pinctrl-0 = <&pinctrl_fec>;
93 phy-mode = "mii";
94 phy-reset-gpios = <&gpio2 14 GPIO_ACTIVE_LOW>;
95 phy-reset-duration = <1>;
96 status = "okay";
97};
98
99&i2c2 {
100 pinctrl-names = "default";
101 pinctrl-0 = <&pinctrl_i2c2>;
102 status = "okay";
103
104 rtc: m41t00@68 {
105 compatible = "stm,m41t00";
106 reg = <0x68>;
107 };
108};
109
110&ipu_di0_disp0 {
111 remote-endpoint = <&display0_in>;
112};
113
114&pwm1 {
115 pinctrl-names = "default";
116 pinctrl-0 = <&pinctrl_pwm_backlight>;
117 status = "okay";
118};
119
120&uart1 {
121 pinctrl-names = "default";
122 pinctrl-0 = <&pinctrl_uart1>;
123 status = "okay";
124};
125
126&uart2 {
127 pinctrl-names = "default";
128 pinctrl-0 = <&pinctrl_uart2>;
129 status = "okay";
130};
131
132&uart3 {
133 pinctrl-names = "default";
134 pinctrl-0 = <&pinctrl_uart3>;
135 status = "okay";
136};
137
138&weim {
139 pinctrl-names = "default";
140 pinctrl-0 = <&pinctrl_weim>;
141 status = "okay";
142
143 fpga@0 {
144 compatible = "simple-bus";
145 fsl,weim-cs-timing = <0x0061008F 0x00000002 0x1c022000
146 0x00000000 0x1c092480 0x00000000>;
147 reg = <0 0x0000000 0x1d000>;
148 #address-cells = <1>;
149 #size-cells = <1>;
150 ranges = <0 0 0 0x1d000>;
151
152 syscon: syscon@b0010000 {
153 compatible = "syscon", "simple-mfd";
154 reg = <0x10000 0x3d>;
155 reg-io-width = <2>;
156
157 wdt@e {
158 compatible = "technologic,ts4800-wdt";
159 syscon = <&syscon 0xe>;
160 };
161 };
162
163 touchscreen {
164 compatible = "technologic,ts4800-ts";
165 reg = <0x12000 0x1000>;
166 syscon = <&syscon 0x10 6>;
167 };
168 };
169};
170
171&iomuxc {
172 pinctrl_ecspi1: ecspi1grp {
173 fsl,pins = <
174 MX51_PAD_CSPI1_MISO__ECSPI1_MISO 0x185
175 MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI 0x185
176 MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK 0x185
177 MX51_PAD_CSPI1_SS0__GPIO4_24 0x85 /* CS0 */
178 >;
179 };
180
181 pinctrl_enable_lcd: enablelcdgrp {
182 fsl,pins = <
183 MX51_PAD_CSI2_D12__GPIO4_9 0x1c5
184 >;
185 };
186
187 pinctrl_esdhc1: esdhc1grp {
188 fsl,pins = <
189 MX51_PAD_SD1_CMD__SD1_CMD 0x400020d5
190 MX51_PAD_SD1_CLK__SD1_CLK 0x20d5
191 MX51_PAD_SD1_DATA0__SD1_DATA0 0x20d5
192 MX51_PAD_SD1_DATA1__SD1_DATA1 0x20d5
193 MX51_PAD_SD1_DATA2__SD1_DATA2 0x20d5
194 MX51_PAD_SD1_DATA3__SD1_DATA3 0x20d5
195 MX51_PAD_GPIO1_0__GPIO1_0 0x100
196 MX51_PAD_GPIO1_1__GPIO1_1 0x100
197 >;
198 };
199
200 pinctrl_fec: fecgrp {
201 fsl,pins = <
202 MX51_PAD_EIM_EB2__FEC_MDIO 0x000001f5
203 MX51_PAD_EIM_EB3__FEC_RDATA1 0x00000085
204 MX51_PAD_EIM_CS2__FEC_RDATA2 0x00000085
205 MX51_PAD_EIM_CS3__FEC_RDATA3 0x00000085
206 MX51_PAD_EIM_CS4__FEC_RX_ER 0x00000180
207 MX51_PAD_EIM_CS5__FEC_CRS 0x00000180
208 MX51_PAD_DISP2_DAT10__FEC_COL 0x00000180
209 MX51_PAD_DISP2_DAT11__FEC_RX_CLK 0x00000180
210 MX51_PAD_DISP2_DAT14__FEC_RDATA0 0x00002180
211 MX51_PAD_DISP2_DAT15__FEC_TDATA0 0x00002004
212 MX51_PAD_NANDF_CS2__FEC_TX_ER 0x00002004
213 MX51_PAD_DI2_PIN2__FEC_MDC 0x00002004
214 MX51_PAD_DISP2_DAT6__FEC_TDATA1 0x00002004
215 MX51_PAD_DISP2_DAT7__FEC_TDATA2 0x00002004
216 MX51_PAD_DISP2_DAT8__FEC_TDATA3 0x00002004
217 MX51_PAD_DISP2_DAT9__FEC_TX_EN 0x00002004
218 MX51_PAD_DISP2_DAT13__FEC_TX_CLK 0x00002180
219 MX51_PAD_DISP2_DAT12__FEC_RX_DV 0x000020a4
220 MX51_PAD_EIM_A20__GPIO2_14 0x00000085 /* Phy Reset */
221 >;
222 };
223
224 pinctrl_i2c2: i2c2grp {
225 fsl,pins = <
226 MX51_PAD_KEY_COL4__I2C2_SCL 0x400001ed
227 MX51_PAD_KEY_COL5__I2C2_SDA 0x400001ed
228 >;
229 };
230
231 pinctrl_lcd: lcdgrp {
232 fsl,pins = <
233 MX51_PAD_DISP1_DAT0__DISP1_DAT0 0x5
234 MX51_PAD_DISP1_DAT1__DISP1_DAT1 0x5
235 MX51_PAD_DISP1_DAT2__DISP1_DAT2 0x5
236 MX51_PAD_DISP1_DAT3__DISP1_DAT3 0x5
237 MX51_PAD_DISP1_DAT4__DISP1_DAT4 0x5
238 MX51_PAD_DISP1_DAT5__DISP1_DAT5 0x5
239 MX51_PAD_DISP1_DAT6__DISP1_DAT6 0x5
240 MX51_PAD_DISP1_DAT7__DISP1_DAT7 0x5
241 MX51_PAD_DISP1_DAT8__DISP1_DAT8 0x5
242 MX51_PAD_DISP1_DAT9__DISP1_DAT9 0x5
243 MX51_PAD_DISP1_DAT10__DISP1_DAT10 0x5
244 MX51_PAD_DISP1_DAT11__DISP1_DAT11 0x5
245 MX51_PAD_DISP1_DAT12__DISP1_DAT12 0x5
246 MX51_PAD_DISP1_DAT13__DISP1_DAT13 0x5
247 MX51_PAD_DISP1_DAT14__DISP1_DAT14 0x5
248 MX51_PAD_DISP1_DAT15__DISP1_DAT15 0x5
249 MX51_PAD_DISP1_DAT16__DISP1_DAT16 0x5
250 MX51_PAD_DISP1_DAT17__DISP1_DAT17 0x5
251 MX51_PAD_DISP1_DAT18__DISP1_DAT18 0x5
252 MX51_PAD_DISP1_DAT19__DISP1_DAT19 0x5
253 MX51_PAD_DISP1_DAT20__DISP1_DAT20 0x5
254 MX51_PAD_DISP1_DAT21__DISP1_DAT21 0x5
255 MX51_PAD_DISP1_DAT22__DISP1_DAT22 0x5
256 MX51_PAD_DISP1_DAT23__DISP1_DAT23 0x5
257 MX51_PAD_DI1_PIN2__DI1_PIN2 0x5
258 MX51_PAD_DI1_PIN3__DI1_PIN3 0x5
259 MX51_PAD_DI2_DISP_CLK__DI2_DISP_CLK 0x5
260 MX51_PAD_DI_GP4__DI2_PIN15 0x5
261 >;
262 };
263
264 pinctrl_pwm_backlight: backlightgrp {
265 fsl,pins = <
266 MX51_PAD_GPIO1_2__PWM1_PWMO 0x80000000
267 >;
268 };
269
270 pinctrl_uart1: uart1grp {
271 fsl,pins = <
272 MX51_PAD_UART1_RXD__UART1_RXD 0x1c5
273 MX51_PAD_UART1_TXD__UART1_TXD 0x1c5
274 >;
275 };
276
277 pinctrl_uart2: uart2grp {
278 fsl,pins = <
279 MX51_PAD_UART2_RXD__UART2_RXD 0x1c5
280 MX51_PAD_UART2_TXD__UART2_TXD 0x1c5
281 >;
282 };
283
284 pinctrl_uart3: uart3grp {
285 fsl,pins = <
286 MX51_PAD_EIM_D25__UART3_RXD 0x1c5
287 MX51_PAD_EIM_D26__UART3_TXD 0x1c5
288 >;
289 };
290
291 pinctrl_weim: weimgrp {
292 fsl,pins = <
293 MX51_PAD_EIM_DTACK__EIM_DTACK 0x85
294 MX51_PAD_EIM_CS0__EIM_CS0 0x0
295 MX51_PAD_EIM_CS1__EIM_CS1 0x0
296 MX51_PAD_EIM_EB0__EIM_EB0 0x85
297 MX51_PAD_EIM_EB1__EIM_EB1 0x85
298 MX51_PAD_EIM_OE__EIM_OE 0x85
299 MX51_PAD_EIM_LBA__EIM_LBA 0x85
300 >;
301 };
302};
diff --git a/arch/arm/boot/dts/imx6dl.dtsi b/arch/arm/boot/dts/imx6dl.dtsi
index 4b0ec0703825..c13a73aa55ca 100644
--- a/arch/arm/boot/dts/imx6dl.dtsi
+++ b/arch/arm/boot/dts/imx6dl.dtsi
@@ -104,10 +104,15 @@
104 compatible = "fsl,imx-display-subsystem"; 104 compatible = "fsl,imx-display-subsystem";
105 ports = <&ipu1_di0>, <&ipu1_di1>; 105 ports = <&ipu1_di0>, <&ipu1_di1>;
106 }; 106 };
107
108 gpu-subsystem {
109 compatible = "fsl,imx-gpu-subsystem";
110 cores = <&gpu_2d>, <&gpu_3d>;
111 };
107}; 112};
108 113
109&gpt { 114&gpt {
110 compatible = "fsl,imx6dl-gpt", "fsl,imx6q-gpt"; 115 compatible = "fsl,imx6dl-gpt";
111}; 116};
112 117
113&hdmi { 118&hdmi {
diff --git a/arch/arm/boot/dts/imx6q-novena.dts b/arch/arm/boot/dts/imx6q-novena.dts
new file mode 100644
index 000000000000..5acd0c63b33b
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-novena.dts
@@ -0,0 +1,785 @@
1/*
2 * Copyright 2015 Sutajio Ko-Usagi PTE LTD
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of
12 * the License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public
20 * License along with this file; if not, write to the Free
21 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
22 * MA 02110-1301 USA
23 *
24 * Or, alternatively,
25 *
26 * b) Permission is hereby granted, free of charge, to any person
27 * obtaining a copy of this software and associated documentation
28 * files (the "Software"), to deal in the Software without
29 * restriction, including without limitation the rights to use,
30 * copy, modify, merge, publish, distribute, sublicense, and/or
31 * sell copies of the Software, and to permit persons to whom the
32 * Software is furnished to do so, subject to the following
33 * conditions:
34 *
35 * The above copyright notice and this permission notice shall be
36 * included in all copies or substantial portions of the Software.
37 *
38 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
45 * OTHER DEALINGS IN THE SOFTWARE.
46 *
47 */
48
49/dts-v1/;
50#include "imx6q.dtsi"
51#include <dt-bindings/gpio/gpio.h>
52#include <dt-bindings/input/input.h>
53
54/ {
55 model = "Kosagi Novena Dual/Quad";
56 compatible = "kosagi,imx6q-novena", "fsl,imx6q";
57
58 chosen {
59 stdout-path = &uart2;
60 };
61
62 backlight: backlight {
63 compatible = "pwm-backlight";
64 pwms = <&pwm1 0 10000000>;
65 pinctrl-names = "default";
66 pinctrl-0 = <&pinctrl_backlight_novena>;
67 power-supply = <&reg_lvds_lcd>;
68 brightness-levels = <0 3 6 12 16 24 32 48 64 96 128 192 255>;
69 default-brightness-level = <12>;
70 };
71
72 gpio-keys {
73 compatible = "gpio-keys";
74 pinctrl-names = "default";
75 pinctrl-0 = <&pinctrl_gpio_keys_novena>;
76
77 user-button {
78 label = "User Button";
79 gpios = <&gpio4 14 GPIO_ACTIVE_LOW>;
80 linux,code = <KEY_POWER>;
81 };
82
83 lid {
84 label = "Lid";
85 gpios = <&gpio4 12 GPIO_ACTIVE_LOW>;
86 linux,input-type = <5>; /* EV_SW */
87 linux,code = <0>; /* SW_LID */
88 };
89 };
90
91 leds {
92 compatible = "gpio-leds";
93 pinctrl-names = "default";
94 pinctrl-0 = <&pinctrl_leds_novena>;
95
96 heartbeat {
97 label = "novena:white:panel";
98 gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
99 linux,default-trigger = "default-on";
100 };
101 };
102
103 panel: panel {
104 compatible = "innolux,n133hse-ea1", "simple-panel";
105 backlight = <&backlight>;
106 };
107
108 reg_2p5v: regulator-2p5v {
109 compatible = "regulator-fixed";
110 regulator-name = "2P5V";
111 regulator-min-microvolt = <2500000>;
112 regulator-max-microvolt = <2500000>;
113 regulator-always-on;
114 };
115
116 reg_3p3v: regulator-3p3v {
117 compatible = "regulator-fixed";
118 regulator-name = "3P3V";
119 regulator-min-microvolt = <3300000>;
120 regulator-max-microvolt = <3300000>;
121 regulator-always-on;
122 };
123
124 reg_audio_codec: regulator-audio-codec {
125 compatible = "regulator-fixed";
126 regulator-name = "es8328-power";
127 regulator-boot-on;
128 regulator-min-microvolt = <5000000>;
129 regulator-max-microvolt = <5000000>;
130 startup-delay-us = <400000>;
131 gpio = <&gpio5 17 GPIO_ACTIVE_HIGH>;
132 enable-active-high;
133 };
134
135 reg_display: regulator-display {
136 compatible = "regulator-fixed";
137 regulator-name = "lcd-display-power";
138 regulator-min-microvolt = <3300000>;
139 regulator-max-microvolt = <3300000>;
140 startup-delay-us = <200000>;
141 gpio = <&gpio5 28 GPIO_ACTIVE_HIGH>;
142 enable-active-high;
143 };
144
145 reg_lvds_lcd: regulator-lvds-lcd {
146 compatible = "regulator-fixed";
147 regulator-name = "lcd-lvds-power";
148 regulator-min-microvolt = <3300000>;
149 regulator-max-microvolt = <3300000>;
150 gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>;
151 enable-active-high;
152 };
153
154 reg_pcie: regulator-pcie {
155 compatible = "regulator-fixed";
156 regulator-name = "pcie-bus-power";
157 regulator-min-microvolt = <1500000>;
158 regulator-max-microvolt = <1500000>;
159 gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
160 enable-active-high;
161 regulator-always-on;
162 };
163
164 reg_sata: regulator-sata {
165 compatible = "regulator-fixed";
166 regulator-name = "sata-power";
167 regulator-boot-on;
168 regulator-min-microvolt = <3300000>;
169 regulator-max-microvolt = <3300000>;
170 startup-delay-us = <10000>;
171 gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
172 enable-active-high;
173 };
174
175 reg_usb_otg_vbus: regulator-usb-otg-vbus {
176 compatible = "regulator-fixed";
177 regulator-name = "usb_otg_vbus";
178 regulator-min-microvolt = <5000000>;
179 regulator-max-microvolt = <5000000>;
180 enable-active-high;
181 };
182
183 sound {
184 compatible = "fsl,imx-audio-es8328";
185 model = "imx-audio-es8328";
186 ssi-controller = <&ssi1>;
187 audio-codec = <&codec>;
188 audio-amp-supply = <&reg_audio_codec>;
189 jack-gpio = <&gpio5 15 GPIO_ACTIVE_HIGH>;
190 audio-routing =
191 "Speaker", "LOUT2",
192 "Speaker", "ROUT2",
193 "Speaker", "audio-amp",
194 "Headphone", "ROUT1",
195 "Headphone", "LOUT1",
196 "LINPUT1", "Mic Jack",
197 "RINPUT1", "Mic Jack",
198 "Mic Jack", "Mic Bias";
199 mux-int-port = <0x1>;
200 mux-ext-port = <0x3>;
201 };
202};
203
204&audmux {
205 pinctrl-names = "default";
206 pinctrl-0 = <&pinctrl_audmux_novena>;
207 status = "okay";
208};
209
210&ecspi3 {
211 pinctrl-names = "default";
212 pinctrl-0 = <&pinctrl_ecspi3_novena>;
213 fsl,spi-num-chipselects = <3>;
214 status = "okay";
215};
216
217&fec {
218 pinctrl-names = "default";
219 pinctrl-0 = <&pinctrl_enet_novena>;
220 phy-mode = "rgmii";
221 phy-reset-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
222 rxc-skew-ps = <3000>;
223 rxdv-skew-ps = <0>;
224 txc-skew-ps = <3000>;
225 txen-skew-ps = <0>;
226 rxd0-skew-ps = <0>;
227 rxd1-skew-ps = <0>;
228 rxd2-skew-ps = <0>;
229 rxd3-skew-ps = <0>;
230 txd0-skew-ps = <3000>;
231 txd1-skew-ps = <3000>;
232 txd2-skew-ps = <3000>;
233 txd3-skew-ps = <3000>;
234 status = "okay";
235};
236
237&hdmi {
238 pinctrl-names = "default";
239 pinctrl-0 = <&pinctrl_hdmi_novena>;
240 ddc-i2c-bus = <&i2c2>;
241 status = "okay";
242};
243
244&i2c1 {
245 pinctrl-names = "default";
246 pinctrl-0 = <&pinctrl_i2c1_novena>;
247 status = "okay";
248
249 accel: mma8452@1c {
250 compatible = "fsl,mma8452";
251 reg = <0x1c>;
252 };
253
254 rtc: pcf8523@68 {
255 compatible = "nxp,pcf8523";
256 reg = <0x68>;
257 };
258
259 sbs_battery: bq20z75@0b {
260 compatible = "sbs,sbs-battery";
261 reg = <0x0b>;
262 sbs,i2c-retry-count = <50>;
263 };
264
265 touch: stmpe811@44 {
266 compatible = "st,stmpe811";
267 reg = <0x44>;
268 #address-cells = <1>;
269 #size-cells = <0>;
270 irq-gpio = <&gpio5 13 GPIO_ACTIVE_HIGH>;
271 id = <0>;
272 blocks = <0x5>;
273 irq-trigger = <0x1>;
274 pinctrl-names = "default";
275 pinctrl-0 = <&pinctrl_stmpe_novena>;
276 vio-supply = <&reg_3p3v>;
277 vcc-supply = <&reg_3p3v>;
278
279 stmpe_touchscreen {
280 compatible = "st,stmpe-ts";
281 st,sample-time = <4>;
282 st,mod-12b = <1>;
283 st,ref-sel = <0>;
284 st,adc-freq = <1>;
285 st,ave-ctrl = <1>;
286 st,touch-det-delay = <2>;
287 st,settling = <2>;
288 st,fraction-z = <7>;
289 st,i-drive = <1>;
290 };
291 };
292};
293
294&i2c2 {
295 pinctrl-names = "default";
296 pinctrl-0 = <&pinctrl_i2c2_novena>;
297 status = "okay";
298
299 pmic: pfuze100@08 {
300 compatible = "fsl,pfuze100";
301 reg = <0x08>;
302
303 regulators {
304 reg_sw1a: sw1a {
305 regulator-min-microvolt = <300000>;
306 regulator-max-microvolt = <1875000>;
307 regulator-boot-on;
308 regulator-always-on;
309 regulator-ramp-delay = <6250>;
310 };
311
312 reg_sw1c: sw1c {
313 regulator-min-microvolt = <300000>;
314 regulator-max-microvolt = <1875000>;
315 regulator-boot-on;
316 regulator-always-on;
317 };
318
319 reg_sw2: sw2 {
320 regulator-min-microvolt = <800000>;
321 regulator-max-microvolt = <3300000>;
322 regulator-boot-on;
323 regulator-always-on;
324 };
325
326 reg_sw3a: sw3a {
327 regulator-min-microvolt = <400000>;
328 regulator-max-microvolt = <1975000>;
329 regulator-boot-on;
330 regulator-always-on;
331 };
332
333 reg_sw3b: sw3b {
334 regulator-min-microvolt = <400000>;
335 regulator-max-microvolt = <1975000>;
336 regulator-boot-on;
337 regulator-always-on;
338 };
339
340 reg_sw4: sw4 {
341 regulator-min-microvolt = <800000>;
342 regulator-max-microvolt = <3300000>;
343 };
344
345 reg_swbst: swbst {
346 regulator-min-microvolt = <5000000>;
347 regulator-max-microvolt = <5150000>;
348 regulator-boot-on;
349 };
350
351 reg_snvs: vsnvs {
352 regulator-min-microvolt = <1000000>;
353 regulator-max-microvolt = <3000000>;
354 regulator-boot-on;
355 regulator-always-on;
356 };
357
358 reg_vref: vrefddr {
359 regulator-boot-on;
360 regulator-always-on;
361 };
362
363 reg_vgen1: vgen1 {
364 regulator-min-microvolt = <800000>;
365 regulator-max-microvolt = <1550000>;
366 };
367
368 reg_vgen2: vgen2 {
369 regulator-min-microvolt = <800000>;
370 regulator-max-microvolt = <1550000>;
371 };
372
373 reg_vgen3: vgen3 {
374 regulator-min-microvolt = <1800000>;
375 regulator-max-microvolt = <3300000>;
376 };
377
378 reg_vgen4: vgen4 {
379 regulator-min-microvolt = <1800000>;
380 regulator-max-microvolt = <3300000>;
381 regulator-always-on;
382 };
383
384 reg_vgen5: vgen5 {
385 regulator-min-microvolt = <1800000>;
386 regulator-max-microvolt = <3300000>;
387 regulator-always-on;
388 };
389
390 reg_vgen6: vgen6 {
391 regulator-min-microvolt = <1800000>;
392 regulator-max-microvolt = <3300000>;
393 regulator-always-on;
394 };
395 };
396 };
397};
398
399&i2c3 {
400 pinctrl-names = "default";
401 pinctrl-0 = <&pinctrl_i2c3_novena>;
402 status = "okay";
403
404 codec: es8328@11 {
405 compatible = "everest,es8328";
406 reg = <0x11>;
407 DVDD-supply = <&reg_audio_codec>;
408 AVDD-supply = <&reg_audio_codec>;
409 PVDD-supply = <&reg_audio_codec>;
410 HPVDD-supply = <&reg_audio_codec>;
411 pinctrl-names = "default";
412 pinctrl-0 = <&pinctrl_sound_novena>;
413 clocks = <&clks IMX6QDL_CLK_CKO1>;
414 assigned-clocks = <&clks IMX6QDL_CLK_CKO>,
415 <&clks IMX6QDL_CLK_CKO1_SEL>,
416 <&clks IMX6QDL_CLK_PLL4_AUDIO>,
417 <&clks IMX6QDL_CLK_CKO1>;
418 assigned-clock-parents = <&clks IMX6QDL_CLK_CKO1>,
419 <&clks IMX6QDL_CLK_PLL4_AUDIO_DIV>,
420 <&clks IMX6QDL_CLK_OSC>,
421 <&clks IMX6QDL_CLK_CKO1_PODF>;
422 assigned-clock-rates = <0 0 722534400 22579200>;
423 };
424};
425
426&kpp {
427 pinctrl-names = "default";
428 pinctrl-0 = <&pinctrl_kpp_novena>;
429 linux,keymap = <
430 MATRIX_KEY(1, 1, KEY_CONFIG)
431 >;
432 status = "okay";
433};
434
435&ldb {
436 fsl,dual-channel;
437 status = "okay";
438
439 lvds-channel@0 {
440 fsl,data-mapping = "jeida";
441 fsl,data-width = <24>;
442 fsl,panel = <&panel>;
443 status = "okay";
444 };
445};
446
447&pcie {
448 pinctrl-names = "default";
449 pinctrl-0 = <&pinctrl_pcie_novena>;
450 reset-gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>;
451 status = "okay";
452};
453
454&sata {
455 target-supply = <&reg_sata>;
456 fsl,transmit-level-mV = <1025>;
457 fsl,transmit-boost-mdB = <0>;
458 fsl,transmit-atten-16ths = <8>;
459 status = "okay";
460};
461
462&ssi1 {
463 status = "okay";
464};
465
466&uart2 {
467 pinctrl-names = "default";
468 pinctrl-0 = <&pinctrl_uart2_novena>;
469 status = "okay";
470};
471
472&uart3 {
473 pinctrl-names = "default";
474 pinctrl-0 = <&pinctrl_uart3_novena>;
475 status = "okay";
476};
477
478&uart4 {
479 pinctrl-names = "default";
480 pinctrl-0 = <&pinctrl_uart4_novena>;
481 status = "okay";
482};
483
484&usbotg {
485 vbus-supply = <&reg_usb_otg_vbus>;
486 dr_mode = "otg";
487 pinctrl-names = "default";
488 pinctrl-0 = <&pinctrl_usbotg_novena>;
489 disable-over-current;
490 status = "okay";
491};
492
493&usbh1 {
494 vbus-supply = <&reg_swbst>;
495 status = "okay";
496};
497
498&usdhc2 {
499 pinctrl-names = "default";
500 pinctrl-0 = <&pinctrl_usdhc2_novena>;
501 cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
502 wp-gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
503 bus-width = <4>;
504 status = "okay";
505};
506
507&usdhc3 {
508 pinctrl-names = "default";
509 pinctrl-0 = <&pinctrl_usdhc3_novena>;
510 bus-width = <4>;
511 non-removable;
512 status = "okay";
513};
514
515&iomuxc {
516 pinctrl_audmux_novena: audmuxgrp-novena {
517 fsl,pins = <
518 MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x130b0
519 MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x130b0
520 MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x110b0
521 MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x130b0
522 >;
523 };
524
525 pinctrl_backlight_novena: backlightgrp-novena {
526 fsl,pins = <
527 MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x1b0b0
528 MX6QDL_PAD_CSI0_DAT10__GPIO5_IO28 0x1b0b1
529 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b1
530 >;
531 };
532
533 pinctrl_ecspi3_novena: ecspi3grp-novena {
534 fsl,pins = <
535 MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x100b1
536 MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x100b1
537 MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1
538 >;
539 };
540
541 pinctrl_enet_novena: enetgrp-novena {
542 fsl,pins = <
543 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
544 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
545 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b020
546 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b028
547 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b028
548 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b028
549 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b028
550 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b028
551 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
552 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
553 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0
554 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0
555 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0
556 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0
557 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
558 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
559 /* Ethernet reset */
560 MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x1b0b1
561 >;
562 };
563
564 pinctrl_fpga_gpio: fpgagpiogrp-novena {
565 fsl,pins = <
566 /* FPGA power */
567 MX6QDL_PAD_SD1_DAT1__GPIO1_IO17 0x1b0b1
568 /* Reset */
569 MX6QDL_PAD_DISP0_DAT13__GPIO5_IO07 0x1b0b1
570 /* FPGA GPIOs */
571 MX6QDL_PAD_EIM_DA0__GPIO3_IO00 0x1b0b1
572 MX6QDL_PAD_EIM_DA1__GPIO3_IO01 0x1b0b1
573 MX6QDL_PAD_EIM_DA2__GPIO3_IO02 0x1b0b1
574 MX6QDL_PAD_EIM_DA3__GPIO3_IO03 0x1b0b1
575 MX6QDL_PAD_EIM_DA4__GPIO3_IO04 0x1b0b1
576 MX6QDL_PAD_EIM_DA5__GPIO3_IO05 0x1b0b1
577 MX6QDL_PAD_EIM_DA6__GPIO3_IO06 0x1b0b1
578 MX6QDL_PAD_EIM_DA7__GPIO3_IO07 0x1b0b1
579 MX6QDL_PAD_EIM_DA8__GPIO3_IO08 0x1b0b1
580 MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x1b0b1
581 MX6QDL_PAD_EIM_DA10__GPIO3_IO10 0x1b0b1
582 MX6QDL_PAD_EIM_DA11__GPIO3_IO11 0x1b0b1
583 MX6QDL_PAD_EIM_DA12__GPIO3_IO12 0x1b0b1
584 MX6QDL_PAD_EIM_DA13__GPIO3_IO13 0x1b0b1
585 MX6QDL_PAD_EIM_DA14__GPIO3_IO14 0x1b0b1
586 MX6QDL_PAD_EIM_DA15__GPIO3_IO15 0x1b0b1
587 MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x1b0b1
588 MX6QDL_PAD_EIM_A17__GPIO2_IO21 0x1b0b1
589 MX6QDL_PAD_EIM_A18__GPIO2_IO20 0x1b0b1
590 MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x1b0b1
591 MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x1b0b1
592 MX6QDL_PAD_EIM_LBA__GPIO2_IO27 0x1b0b1
593 MX6QDL_PAD_EIM_OE__GPIO2_IO25 0x1b0b1
594 MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x1b0b1
595 MX6QDL_PAD_EIM_WAIT__GPIO5_IO00 0x1b0b1
596 MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x1b0b1
597 >;
598 };
599
600 pinctrl_fpga_eim: fpgaeimgrp-novena {
601 fsl,pins = <
602 /* FPGA power */
603 MX6QDL_PAD_SD1_DAT1__GPIO1_IO17 0x1b0b1
604 /* Reset */
605 MX6QDL_PAD_DISP0_DAT13__GPIO5_IO07 0x1b0b1
606 /* FPGA GPIOs */
607 MX6QDL_PAD_EIM_DA0__EIM_AD00 0xb0f1
608 MX6QDL_PAD_EIM_DA1__EIM_AD01 0xb0f1
609 MX6QDL_PAD_EIM_DA2__EIM_AD02 0xb0f1
610 MX6QDL_PAD_EIM_DA3__EIM_AD03 0xb0f1
611 MX6QDL_PAD_EIM_DA4__EIM_AD04 0xb0f1
612 MX6QDL_PAD_EIM_DA5__EIM_AD05 0xb0f1
613 MX6QDL_PAD_EIM_DA6__EIM_AD06 0xb0f1
614 MX6QDL_PAD_EIM_DA7__EIM_AD07 0xb0f1
615 MX6QDL_PAD_EIM_DA8__EIM_AD08 0xb0f1
616 MX6QDL_PAD_EIM_DA9__EIM_AD09 0xb0f1
617 MX6QDL_PAD_EIM_DA10__EIM_AD10 0xb0f1
618 MX6QDL_PAD_EIM_DA11__EIM_AD11 0xb0f1
619 MX6QDL_PAD_EIM_DA12__EIM_AD12 0xb0f1
620 MX6QDL_PAD_EIM_DA13__EIM_AD13 0xb0f1
621 MX6QDL_PAD_EIM_DA14__EIM_AD14 0xb0f1
622 MX6QDL_PAD_EIM_DA15__EIM_AD15 0xb0f1
623 MX6QDL_PAD_EIM_A16__EIM_ADDR16 0xb0f1
624 MX6QDL_PAD_EIM_A17__EIM_ADDR17 0xb0f1
625 MX6QDL_PAD_EIM_A18__EIM_ADDR18 0xb0f1
626 MX6QDL_PAD_EIM_CS0__EIM_CS0_B 0xb0f1
627 MX6QDL_PAD_EIM_CS1__EIM_CS1_B 0xb0f1
628 MX6QDL_PAD_EIM_LBA__EIM_LBA_B 0xb0f1
629 MX6QDL_PAD_EIM_OE__EIM_OE_B 0xb0f1
630 MX6QDL_PAD_EIM_RW__EIM_RW 0xb0f1
631 MX6QDL_PAD_EIM_WAIT__EIM_WAIT_B 0xb0f1
632 MX6QDL_PAD_EIM_BCLK__EIM_BCLK 0xb0f1
633 >;
634 };
635
636 pinctrl_gpio_keys_novena: gpiokeysgrp-novena {
637 fsl,pins = <
638 /* User button */
639 MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x1b0b0
640 /* PCIe Wakeup */
641 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1f0e0
642 /* Lid switch */
643 MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x1b0b0
644 >;
645 };
646
647 pinctrl_hdmi_novena: hdmigrp-novena {
648 fsl,pins = <
649 MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0
650 MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x1b0b1
651 >;
652 };
653
654 pinctrl_i2c1_novena: i2c1grp-novena {
655 fsl,pins = <
656 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
657 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
658 >;
659 };
660
661 pinctrl_i2c2_novena: i2c2grp-novena {
662 fsl,pins = <
663 MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1
664 MX6QDL_PAD_EIM_D16__I2C2_SDA 0x4001b8b1
665 >;
666 };
667
668 pinctrl_i2c3_novena: i2c3grp-novena {
669 fsl,pins = <
670 MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1
671 MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
672 >;
673 };
674
675 pinctrl_kpp_novena: kppgrp-novena {
676 fsl,pins = <
677 /* Front panel button */
678 MX6QDL_PAD_KEY_ROW1__KEY_ROW1 0x1b0b1
679 /* Fake column driver, not connected */
680 MX6QDL_PAD_KEY_COL1__KEY_COL1 0x1b0b1
681 >;
682 };
683
684 pinctrl_leds_novena: ledsgrp-novena {
685 fsl,pins = <
686 MX6QDL_PAD_SD1_DAT3__GPIO1_IO21 0x1b0b1
687 >;
688 };
689
690 pinctrl_pcie_novena: pciegrp-novena {
691 fsl,pins = <
692 /* Reset */
693 MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x1b0b1
694 /* Power On */
695 MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b1
696 /* Wifi kill */
697 MX6QDL_PAD_EIM_A22__GPIO2_IO16 0x1b0b1
698 >;
699 };
700
701 pinctrl_sata_novena: satagrp-novena {
702 fsl,pins = <
703 MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x1b0b1
704 >;
705 };
706
707 pinctrl_senoko_novena: senokogrp-novena {
708 fsl,pins = <
709 /* Senoko IRQ line */
710 MX6QDL_PAD_SD1_CLK__GPIO1_IO20 0x13048
711 /* Senoko reset line */
712 MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 0x1b0b1
713 >;
714 };
715
716 pinctrl_sound_novena: soundgrp-novena {
717 fsl,pins = <
718 /* Audio power regulator */
719 MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x1b0b1
720 /* Headphone plug */
721 MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x1b0b1
722 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x000b0
723 >;
724 };
725
726 pinctrl_stmpe_novena: stmpegrp-novena {
727 fsl,pins = <
728 /* Touchscreen interrupt */
729 MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x1b0b1
730 >;
731 };
732
733 pinctrl_uart2_novena: uart2grp-novena {
734 fsl,pins = <
735 MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1
736 MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1
737 >;
738 };
739
740 pinctrl_uart3_novena: uart3grp-novena {
741 fsl,pins = <
742 MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
743 MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
744 >;
745 };
746
747 pinctrl_uart4_novena: uart4grp-novena {
748 fsl,pins = <
749 MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x1b0b1
750 MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x1b0b1
751 >;
752 };
753
754 pinctrl_usbotg_novena: usbotggrp-novena {
755 fsl,pins = <
756 MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059
757 >;
758 };
759
760 pinctrl_usdhc2_novena: usdhc2grp-novena {
761 fsl,pins = <
762 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170f9
763 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100f9
764 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170f9
765 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170f9
766 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170f9
767 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170f9
768 /* Write protect */
769 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b1
770 /* Card detect */
771 MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b1
772 >;
773 };
774
775 pinctrl_usdhc3_novena: usdhc3grp-novena {
776 fsl,pins = <
777 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9
778 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9
779 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
780 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
781 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
782 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
783 >;
784 };
785};
diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi
index 399103b8e2c9..0d93c0e8f9ba 100644
--- a/arch/arm/boot/dts/imx6q.dtsi
+++ b/arch/arm/boot/dts/imx6q.dtsi
@@ -14,6 +14,7 @@
14 14
15/ { 15/ {
16 aliases { 16 aliases {
17 ipu1 = &ipu2;
17 spi4 = &ecspi5; 18 spi4 = &ecspi5;
18 }; 19 };
19 20
@@ -103,42 +104,6 @@
103 104
104 iomuxc: iomuxc@020e0000 { 105 iomuxc: iomuxc@020e0000 {
105 compatible = "fsl,imx6q-iomuxc"; 106 compatible = "fsl,imx6q-iomuxc";
106
107 ipu2 {
108 pinctrl_ipu2_1: ipu2grp-1 {
109 fsl,pins = <
110 MX6QDL_PAD_DI0_DISP_CLK__IPU2_DI0_DISP_CLK 0x10
111 MX6QDL_PAD_DI0_PIN15__IPU2_DI0_PIN15 0x10
112 MX6QDL_PAD_DI0_PIN2__IPU2_DI0_PIN02 0x10
113 MX6QDL_PAD_DI0_PIN3__IPU2_DI0_PIN03 0x10
114 MX6QDL_PAD_DI0_PIN4__IPU2_DI0_PIN04 0x80000000
115 MX6QDL_PAD_DISP0_DAT0__IPU2_DISP0_DATA00 0x10
116 MX6QDL_PAD_DISP0_DAT1__IPU2_DISP0_DATA01 0x10
117 MX6QDL_PAD_DISP0_DAT2__IPU2_DISP0_DATA02 0x10
118 MX6QDL_PAD_DISP0_DAT3__IPU2_DISP0_DATA03 0x10
119 MX6QDL_PAD_DISP0_DAT4__IPU2_DISP0_DATA04 0x10
120 MX6QDL_PAD_DISP0_DAT5__IPU2_DISP0_DATA05 0x10
121 MX6QDL_PAD_DISP0_DAT6__IPU2_DISP0_DATA06 0x10
122 MX6QDL_PAD_DISP0_DAT7__IPU2_DISP0_DATA07 0x10
123 MX6QDL_PAD_DISP0_DAT8__IPU2_DISP0_DATA08 0x10
124 MX6QDL_PAD_DISP0_DAT9__IPU2_DISP0_DATA09 0x10
125 MX6QDL_PAD_DISP0_DAT10__IPU2_DISP0_DATA10 0x10
126 MX6QDL_PAD_DISP0_DAT11__IPU2_DISP0_DATA11 0x10
127 MX6QDL_PAD_DISP0_DAT12__IPU2_DISP0_DATA12 0x10
128 MX6QDL_PAD_DISP0_DAT13__IPU2_DISP0_DATA13 0x10
129 MX6QDL_PAD_DISP0_DAT14__IPU2_DISP0_DATA14 0x10
130 MX6QDL_PAD_DISP0_DAT15__IPU2_DISP0_DATA15 0x10
131 MX6QDL_PAD_DISP0_DAT16__IPU2_DISP0_DATA16 0x10
132 MX6QDL_PAD_DISP0_DAT17__IPU2_DISP0_DATA17 0x10
133 MX6QDL_PAD_DISP0_DAT18__IPU2_DISP0_DATA18 0x10
134 MX6QDL_PAD_DISP0_DAT19__IPU2_DISP0_DATA19 0x10
135 MX6QDL_PAD_DISP0_DAT20__IPU2_DISP0_DATA20 0x10
136 MX6QDL_PAD_DISP0_DAT21__IPU2_DISP0_DATA21 0x10
137 MX6QDL_PAD_DISP0_DAT22__IPU2_DISP0_DATA22 0x10
138 MX6QDL_PAD_DISP0_DAT23__IPU2_DISP0_DATA23 0x10
139 >;
140 };
141 };
142 }; 107 };
143 }; 108 };
144 109
@@ -153,6 +118,16 @@
153 status = "disabled"; 118 status = "disabled";
154 }; 119 };
155 120
121 gpu_vg: gpu@02204000 {
122 compatible = "vivante,gc";
123 reg = <0x02204000 0x4000>;
124 interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
125 clocks = <&clks IMX6QDL_CLK_OPENVG_AXI>,
126 <&clks IMX6QDL_CLK_GPU2D_CORE>;
127 clock-names = "bus", "core";
128 power-domains = <&gpc 1>;
129 };
130
156 ipu2: ipu@02800000 { 131 ipu2: ipu@02800000 {
157 #address-cells = <1>; 132 #address-cells = <1>;
158 #size-cells = <0>; 133 #size-cells = <0>;
@@ -225,6 +200,11 @@
225 compatible = "fsl,imx-display-subsystem"; 200 compatible = "fsl,imx-display-subsystem";
226 ports = <&ipu1_di0>, <&ipu1_di1>, <&ipu2_di0>, <&ipu2_di1>; 201 ports = <&ipu1_di0>, <&ipu1_di1>, <&ipu2_di0>, <&ipu2_di1>;
227 }; 202 };
203
204 gpu-subsystem {
205 compatible = "fsl,imx-gpu-subsystem";
206 cores = <&gpu_2d>, <&gpu_3d>, <&gpu_vg>;
207 };
228}; 208};
229 209
230&hdmi { 210&hdmi {
diff --git a/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
index dc0cebfe22d7..5cd16f2178b8 100644
--- a/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
@@ -174,6 +174,24 @@
174 status = "okay"; 174 status = "okay";
175}; 175};
176 176
177&pwm2 {
178 pinctrl-names = "default";
179 pinctrl-0 = <&pinctrl_pwm2>; /* MX6_DIO1 */
180 status = "disabled";
181};
182
183&pwm3 {
184 pinctrl-names = "default";
185 pinctrl-0 = <&pinctrl_pwm3>; /* MX6_DIO2 */
186 status = "disabled";
187};
188
189&pwm4 {
190 pinctrl-names = "default";
191 pinctrl-0 = <&pinctrl_pwm4>; /* MX6_DIO3 */
192 status = "disabled";
193};
194
177&uart1 { 195&uart1 {
178 pinctrl-names = "default"; 196 pinctrl-names = "default";
179 pinctrl-0 = <&pinctrl_uart1>; 197 pinctrl-0 = <&pinctrl_uart1>;
@@ -294,6 +312,24 @@
294 >; 312 >;
295 }; 313 };
296 314
315 pinctrl_pwm2: pwm2grp {
316 fsl,pins = <
317 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1
318 >;
319 };
320
321 pinctrl_pwm3: pwm3grp {
322 fsl,pins = <
323 MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1
324 >;
325 };
326
327 pinctrl_pwm4: pwm4grp {
328 fsl,pins = <
329 MX6QDL_PAD_SD4_DAT2__PWM4_OUT 0x1b0b1
330 >;
331 };
332
297 pinctrl_uart1: uart1grp { 333 pinctrl_uart1: uart1grp {
298 fsl,pins = < 334 fsl,pins = <
299 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1 335 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
diff --git a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
index 18cd4114a23e..9fa8a10c7cc8 100644
--- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
@@ -151,6 +151,21 @@
151 status = "okay"; 151 status = "okay";
152}; 152};
153 153
154&clks {
155 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
156 <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
157 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
158 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
159};
160
161&ecspi3 {
162 fsl,spi-num-chipselects = <1>;
163 cs-gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
164 pinctrl-names = "default";
165 pinctrl-0 = <&pinctrl_ecspi3>;
166 status = "okay";
167};
168
154&fec { 169&fec {
155 pinctrl-names = "default"; 170 pinctrl-names = "default";
156 pinctrl-0 = <&pinctrl_enet>; 171 pinctrl-0 = <&pinctrl_enet>;
@@ -275,6 +290,18 @@
275 status = "okay"; 290 status = "okay";
276}; 291};
277 292
293&pwm2 {
294 pinctrl-names = "default";
295 pinctrl-0 = <&pinctrl_pwm2>; /* MX6_DIO1 */
296 status = "disabled";
297};
298
299&pwm3 {
300 pinctrl-names = "default";
301 pinctrl-0 = <&pinctrl_pwm3>; /* MX6_DIO2 */
302 status = "disabled";
303};
304
278&pwm4 { 305&pwm4 {
279 pinctrl-names = "default"; 306 pinctrl-names = "default";
280 pinctrl-0 = <&pinctrl_pwm4>; 307 pinctrl-0 = <&pinctrl_pwm4>;
@@ -338,6 +365,15 @@
338 >; 365 >;
339 }; 366 };
340 367
368 pinctrl_ecspi3: escpi3grp {
369 fsl,pins = <
370 MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1
371 MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x100b1
372 MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x100b1
373 MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24 0x100b1
374 >;
375 };
376
341 pinctrl_enet: enetgrp { 377 pinctrl_enet: enetgrp {
342 fsl,pins = < 378 fsl,pins = <
343 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 379 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
@@ -429,6 +465,18 @@
429 >; 465 >;
430 }; 466 };
431 467
468 pinctrl_pwm2: pwm2grp {
469 fsl,pins = <
470 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1
471 >;
472 };
473
474 pinctrl_pwm3: pwm3grp {
475 fsl,pins = <
476 MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1
477 >;
478 };
479
432 pinctrl_pwm4: pwm4grp { 480 pinctrl_pwm4: pwm4grp {
433 fsl,pins = < 481 fsl,pins = <
434 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1 482 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
diff --git a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
index eea90f37bbb8..e8375e173873 100644
--- a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
@@ -152,6 +152,13 @@
152 status = "okay"; 152 status = "okay";
153}; 153};
154 154
155&clks {
156 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
157 <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
158 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
159 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
160};
161
155&fec { 162&fec {
156 pinctrl-names = "default"; 163 pinctrl-names = "default";
157 pinctrl-0 = <&pinctrl_enet>; 164 pinctrl-0 = <&pinctrl_enet>;
@@ -247,7 +254,7 @@
247&ldb { 254&ldb {
248 status = "okay"; 255 status = "okay";
249 256
250 lvds-channel@1 { 257 lvds-channel@0 {
251 fsl,data-mapping = "spwg"; 258 fsl,data-mapping = "spwg";
252 fsl,data-width = <18>; 259 fsl,data-width = <18>;
253 status = "okay"; 260 status = "okay";
@@ -280,6 +287,18 @@
280 }; 287 };
281}; 288};
282 289
290&pwm2 {
291 pinctrl-names = "default";
292 pinctrl-0 = <&pinctrl_pwm2>; /* MX6_DIO1 */
293 status = "disabled";
294};
295
296&pwm3 {
297 pinctrl-names = "default";
298 pinctrl-0 = <&pinctrl_pwm3>; /* MX6_DIO2 */
299 status = "disabled";
300};
301
283&pwm4 { 302&pwm4 {
284 pinctrl-names = "default"; 303 pinctrl-names = "default";
285 pinctrl-0 = <&pinctrl_pwm4>; 304 pinctrl-0 = <&pinctrl_pwm4>;
@@ -435,6 +454,18 @@
435 >; 454 >;
436 }; 455 };
437 456
457 pinctrl_pwm2: pwm2grp {
458 fsl,pins = <
459 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1
460 >;
461 };
462
463 pinctrl_pwm3: pwm3grp {
464 fsl,pins = <
465 MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1
466 >;
467 };
468
438 pinctrl_pwm4: pwm4grp { 469 pinctrl_pwm4: pwm4grp {
439 fsl,pins = < 470 fsl,pins = <
440 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1 471 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
diff --git a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
index 6c11a2ae35ef..66983dc5cbda 100644
--- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
@@ -142,6 +142,13 @@
142 status = "okay"; 142 status = "okay";
143}; 143};
144 144
145&clks {
146 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
147 <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
148 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
149 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
150};
151
145&fec { 152&fec {
146 pinctrl-names = "default"; 153 pinctrl-names = "default";
147 pinctrl-0 = <&pinctrl_enet>; 154 pinctrl-0 = <&pinctrl_enet>;
@@ -260,6 +267,8 @@
260 swbst_reg: swbst { 267 swbst_reg: swbst {
261 regulator-min-microvolt = <5000000>; 268 regulator-min-microvolt = <5000000>;
262 regulator-max-microvolt = <5150000>; 269 regulator-max-microvolt = <5150000>;
270 regulator-boot-on;
271 regulator-always-on;
263 }; 272 };
264 273
265 snvs_reg: vsnvs { 274 snvs_reg: vsnvs {
@@ -336,7 +345,7 @@
336&ldb { 345&ldb {
337 status = "okay"; 346 status = "okay";
338 347
339 lvds-channel@1 { 348 lvds-channel@0 {
340 fsl,data-mapping = "spwg"; 349 fsl,data-mapping = "spwg";
341 fsl,data-width = <18>; 350 fsl,data-width = <18>;
342 status = "okay"; 351 status = "okay";
@@ -369,6 +378,24 @@
369 }; 378 };
370}; 379};
371 380
381&pwm1 {
382 pinctrl-names = "default";
383 pinctrl-0 = <&pinctrl_pwm1>; /* MX6_DIO0 */
384 status = "disabled";
385};
386
387&pwm2 {
388 pinctrl-names = "default";
389 pinctrl-0 = <&pinctrl_pwm2>; /* MX6_DIO1 */
390 status = "disabled";
391};
392
393&pwm3 {
394 pinctrl-names = "default";
395 pinctrl-0 = <&pinctrl_pwm3>; /* MX6_DIO2 */
396 status = "disabled";
397};
398
372&pwm4 { 399&pwm4 {
373 pinctrl-names = "default"; 400 pinctrl-names = "default";
374 pinctrl-0 = <&pinctrl_pwm4>; 401 pinctrl-0 = <&pinctrl_pwm4>;
@@ -528,6 +555,24 @@
528 >; 555 >;
529 }; 556 };
530 557
558 pinctrl_pwm1: pwm1grp {
559 fsl,pins = <
560 MX6QDL_PAD_GPIO_9__PWM1_OUT 0x1b0b1
561 >;
562 };
563
564 pinctrl_pwm2: pwm2grp {
565 fsl,pins = <
566 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1
567 >;
568 };
569
570 pinctrl_pwm3: pwm3grp {
571 fsl,pins = <
572 MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1
573 >;
574 };
575
531 pinctrl_pwm4: pwm4grp { 576 pinctrl_pwm4: pwm4grp {
532 fsl,pins = < 577 fsl,pins = <
533 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1 578 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
diff --git a/arch/arm/boot/dts/imx6qdl-gw551x.dtsi b/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
index 741f3d529e3e..118bea524dab 100644
--- a/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
@@ -198,6 +198,18 @@
198 status = "okay"; 198 status = "okay";
199}; 199};
200 200
201&pwm2 {
202 pinctrl-names = "default";
203 pinctrl-0 = <&pinctrl_pwm2>; /* MX6_DIO1 */
204 status = "disabled";
205};
206
207&pwm3 {
208 pinctrl-names = "default";
209 pinctrl-0 = <&pinctrl_pwm3>; /* MX6_DIO2 */
210 status = "disabled";
211};
212
201&ssi1 { 213&ssi1 {
202 status = "okay"; 214 status = "okay";
203}; 215};
@@ -290,6 +302,18 @@
290 >; 302 >;
291 }; 303 };
292 304
305 pinctrl_pwm2: pwm2grp {
306 fsl,pins = <
307 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1
308 >;
309 };
310
311 pinctrl_pwm3: pwm3grp {
312 fsl,pins = <
313 MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x1b0b1
314 >;
315 };
316
293 pinctrl_uart2: uart2grp { 317 pinctrl_uart2: uart2grp {
294 fsl,pins = < 318 fsl,pins = <
295 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1 319 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
diff --git a/arch/arm/boot/dts/imx6qdl-gw552x.dtsi b/arch/arm/boot/dts/imx6qdl-gw552x.dtsi
index d1e5048b00b5..cca39f194017 100644
--- a/arch/arm/boot/dts/imx6qdl-gw552x.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw552x.dtsi
@@ -164,6 +164,18 @@
164 status = "okay"; 164 status = "okay";
165}; 165};
166 166
167&pwm2 {
168 pinctrl-names = "default";
169 pinctrl-0 = <&pinctrl_pwm2>; /* MX6_DIO1 */
170 status = "disabled";
171};
172
173&pwm3 {
174 pinctrl-names = "default";
175 pinctrl-0 = <&pinctrl_pwm3>; /* MX6_DIO2 */
176 status = "disabled";
177};
178
167&uart2 { 179&uart2 {
168 pinctrl-names = "default"; 180 pinctrl-names = "default";
169 pinctrl-0 = <&pinctrl_uart2>; 181 pinctrl-0 = <&pinctrl_uart2>;
@@ -242,6 +254,18 @@
242 >; 254 >;
243 }; 255 };
244 256
257 pinctrl_pwm2: pwm2grp {
258 fsl,pins = <
259 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1
260 >;
261 };
262
263 pinctrl_pwm3: pwm3grp {
264 fsl,pins = <
265 MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1
266 >;
267 };
268
245 pinctrl_uart2: uart2grp { 269 pinctrl_uart2: uart2grp {
246 fsl,pins = < 270 fsl,pins = <
247 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1 271 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
index 2b6cc8bf3c5c..4f6ae921656f 100644
--- a/arch/arm/boot/dts/imx6qdl.dtsi
+++ b/arch/arm/boot/dts/imx6qdl.dtsi
@@ -30,6 +30,7 @@
30 i2c0 = &i2c1; 30 i2c0 = &i2c1;
31 i2c1 = &i2c2; 31 i2c1 = &i2c2;
32 i2c2 = &i2c3; 32 i2c2 = &i2c3;
33 ipu0 = &ipu1;
33 mmc0 = &usdhc1; 34 mmc0 = &usdhc1;
34 mmc1 = &usdhc2; 35 mmc1 = &usdhc2;
35 mmc2 = &usdhc3; 36 mmc2 = &usdhc3;
@@ -47,15 +48,6 @@
47 usbphy1 = &usbphy2; 48 usbphy1 = &usbphy2;
48 }; 49 };
49 50
50 intc: interrupt-controller@00a01000 {
51 compatible = "arm,cortex-a9-gic";
52 #interrupt-cells = <3>;
53 interrupt-controller;
54 reg = <0x00a01000 0x1000>,
55 <0x00a00100 0x100>;
56 interrupt-parent = <&intc>;
57 };
58
59 clocks { 51 clocks {
60 #address-cells = <1>; 52 #address-cells = <1>;
61 #size-cells = <0>; 53 #size-cells = <0>;
@@ -147,6 +139,27 @@
147 }; 139 };
148 }; 140 };
149 141
142 gpu_3d: gpu@00130000 {
143 compatible = "vivante,gc";
144 reg = <0x00130000 0x4000>;
145 interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
146 clocks = <&clks IMX6QDL_CLK_GPU3D_AXI>,
147 <&clks IMX6QDL_CLK_GPU3D_CORE>,
148 <&clks IMX6QDL_CLK_GPU3D_SHADER>;
149 clock-names = "bus", "core", "shader";
150 power-domains = <&gpc 1>;
151 };
152
153 gpu_2d: gpu@00134000 {
154 compatible = "vivante,gc";
155 reg = <0x00134000 0x4000>;
156 interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
157 clocks = <&clks IMX6QDL_CLK_GPU2D_AXI>,
158 <&clks IMX6QDL_CLK_GPU2D_CORE>;
159 clock-names = "bus", "core";
160 power-domains = <&gpc 1>;
161 };
162
150 timer@00a00600 { 163 timer@00a00600 {
151 compatible = "arm,cortex-a9-twd-timer"; 164 compatible = "arm,cortex-a9-twd-timer";
152 reg = <0x00a00600 0x20>; 165 reg = <0x00a00600 0x20>;
@@ -155,6 +168,15 @@
155 clocks = <&clks IMX6QDL_CLK_TWD>; 168 clocks = <&clks IMX6QDL_CLK_TWD>;
156 }; 169 };
157 170
171 intc: interrupt-controller@00a01000 {
172 compatible = "arm,cortex-a9-gic";
173 #interrupt-cells = <3>;
174 interrupt-controller;
175 reg = <0x00a01000 0x1000>,
176 <0x00a00100 0x100>;
177 interrupt-parent = <&intc>;
178 };
179
158 L2: l2-cache@00a02000 { 180 L2: l2-cache@00a02000 {
159 compatible = "arm,pl310-cache"; 181 compatible = "arm,pl310-cache";
160 reg = <0x00a02000 0x1000>; 182 reg = <0x00a02000 0x1000>;
@@ -173,8 +195,7 @@
173 #address-cells = <3>; 195 #address-cells = <3>;
174 #size-cells = <2>; 196 #size-cells = <2>;
175 device_type = "pci"; 197 device_type = "pci";
176 ranges = <0x00000800 0 0x01f00000 0x01f00000 0 0x00080000 /* configuration space */ 198 ranges = <0x81000000 0 0 0x01f80000 0 0x00010000 /* downstream I/O */
177 0x81000000 0 0 0x01f80000 0 0x00010000 /* downstream I/O */
178 0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */ 199 0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */
179 num-lanes = <1>; 200 num-lanes = <1>;
180 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 201 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
@@ -227,7 +248,7 @@
227 "rxtx1", "rxtx2", 248 "rxtx1", "rxtx2",
228 "rxtx3", "rxtx4", 249 "rxtx3", "rxtx4",
229 "rxtx5", "rxtx6", 250 "rxtx5", "rxtx6",
230 "rxtx7", "dma"; 251 "rxtx7", "spba";
231 status = "disabled"; 252 status = "disabled";
232 }; 253 };
233 254
@@ -309,7 +330,7 @@
309 <&clks IMX6QDL_CLK_ESAI_EXTAL>, 330 <&clks IMX6QDL_CLK_ESAI_EXTAL>,
310 <&clks IMX6QDL_CLK_ESAI_IPG>, 331 <&clks IMX6QDL_CLK_ESAI_IPG>,
311 <&clks IMX6QDL_CLK_SPBA>; 332 <&clks IMX6QDL_CLK_SPBA>;
312 clock-names = "core", "mem", "extal", "fsys", "dma"; 333 clock-names = "core", "mem", "extal", "fsys", "spba";
313 dmas = <&sdma 23 21 0>, <&sdma 24 21 0>; 334 dmas = <&sdma 23 21 0>, <&sdma 24 21 0>;
314 dma-names = "rx", "tx"; 335 dma-names = "rx", "tx";
315 status = "disabled"; 336 status = "disabled";
@@ -378,7 +399,7 @@
378 "asrck_1", "asrck_2", "asrck_3", "asrck_4", 399 "asrck_1", "asrck_2", "asrck_3", "asrck_4",
379 "asrck_5", "asrck_6", "asrck_7", "asrck_8", 400 "asrck_5", "asrck_6", "asrck_7", "asrck_8",
380 "asrck_9", "asrck_a", "asrck_b", "asrck_c", 401 "asrck_9", "asrck_a", "asrck_b", "asrck_c",
381 "asrck_d", "asrck_e", "asrck_f", "dma"; 402 "asrck_d", "asrck_e", "asrck_f", "spba";
382 dmas = <&sdma 17 23 1>, <&sdma 18 23 1>, <&sdma 19 23 1>, 403 dmas = <&sdma 17 23 1>, <&sdma 18 23 1>, <&sdma 19 23 1>,
383 <&sdma 20 23 1>, <&sdma 21 23 1>, <&sdma 22 23 1>; 404 <&sdma 20 23 1>, <&sdma 21 23 1>, <&sdma 22 23 1>;
384 dma-names = "rxa", "rxb", "rxc", 405 dma-names = "rxa", "rxb", "rxc",
@@ -906,6 +927,9 @@
906 clocks = <&clks IMX6QDL_CLK_USBOH3>; 927 clocks = <&clks IMX6QDL_CLK_USBOH3>;
907 fsl,usbphy = <&usbphy1>; 928 fsl,usbphy = <&usbphy1>;
908 fsl,usbmisc = <&usbmisc 0>; 929 fsl,usbmisc = <&usbmisc 0>;
930 ahb-burst-config = <0x0>;
931 tx-burst-size-dword = <0x10>;
932 rx-burst-size-dword = <0x10>;
909 status = "disabled"; 933 status = "disabled";
910 }; 934 };
911 935
@@ -917,6 +941,9 @@
917 fsl,usbphy = <&usbphy2>; 941 fsl,usbphy = <&usbphy2>;
918 fsl,usbmisc = <&usbmisc 1>; 942 fsl,usbmisc = <&usbmisc 1>;
919 dr_mode = "host"; 943 dr_mode = "host";
944 ahb-burst-config = <0x0>;
945 tx-burst-size-dword = <0x10>;
946 rx-burst-size-dword = <0x10>;
920 status = "disabled"; 947 status = "disabled";
921 }; 948 };
922 949
@@ -927,6 +954,9 @@
927 clocks = <&clks IMX6QDL_CLK_USBOH3>; 954 clocks = <&clks IMX6QDL_CLK_USBOH3>;
928 fsl,usbmisc = <&usbmisc 2>; 955 fsl,usbmisc = <&usbmisc 2>;
929 dr_mode = "host"; 956 dr_mode = "host";
957 ahb-burst-config = <0x0>;
958 tx-burst-size-dword = <0x10>;
959 rx-burst-size-dword = <0x10>;
930 status = "disabled"; 960 status = "disabled";
931 }; 961 };
932 962
@@ -937,6 +967,9 @@
937 clocks = <&clks IMX6QDL_CLK_USBOH3>; 967 clocks = <&clks IMX6QDL_CLK_USBOH3>;
938 fsl,usbmisc = <&usbmisc 3>; 968 fsl,usbmisc = <&usbmisc 3>;
939 dr_mode = "host"; 969 dr_mode = "host";
970 ahb-burst-config = <0x0>;
971 tx-burst-size-dword = <0x10>;
972 rx-burst-size-dword = <0x10>;
940 status = "disabled"; 973 status = "disabled";
941 }; 974 };
942 975
diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi
index d8ba99f1d87b..d12b250342a6 100644
--- a/arch/arm/boot/dts/imx6sl.dtsi
+++ b/arch/arm/boot/dts/imx6sl.dtsi
@@ -151,7 +151,7 @@
151 "rxtx1", "rxtx2", 151 "rxtx1", "rxtx2",
152 "rxtx3", "rxtx4", 152 "rxtx3", "rxtx4",
153 "rxtx5", "rxtx6", 153 "rxtx5", "rxtx6",
154 "rxtx7", "dma"; 154 "rxtx7", "spba";
155 status = "disabled"; 155 status = "disabled";
156 }; 156 };
157 157
@@ -708,6 +708,9 @@
708 clocks = <&clks IMX6SL_CLK_USBOH3>; 708 clocks = <&clks IMX6SL_CLK_USBOH3>;
709 fsl,usbphy = <&usbphy1>; 709 fsl,usbphy = <&usbphy1>;
710 fsl,usbmisc = <&usbmisc 0>; 710 fsl,usbmisc = <&usbmisc 0>;
711 ahb-burst-config = <0x0>;
712 tx-burst-size-dword = <0x10>;
713 rx-burst-size-dword = <0x10>;
711 status = "disabled"; 714 status = "disabled";
712 }; 715 };
713 716
@@ -718,6 +721,9 @@
718 clocks = <&clks IMX6SL_CLK_USBOH3>; 721 clocks = <&clks IMX6SL_CLK_USBOH3>;
719 fsl,usbphy = <&usbphy2>; 722 fsl,usbphy = <&usbphy2>;
720 fsl,usbmisc = <&usbmisc 1>; 723 fsl,usbmisc = <&usbmisc 1>;
724 ahb-burst-config = <0x0>;
725 tx-burst-size-dword = <0x10>;
726 rx-burst-size-dword = <0x10>;
721 status = "disabled"; 727 status = "disabled";
722 }; 728 };
723 729
@@ -728,6 +734,9 @@
728 clocks = <&clks IMX6SL_CLK_USBOH3>; 734 clocks = <&clks IMX6SL_CLK_USBOH3>;
729 fsl,usbmisc = <&usbmisc 2>; 735 fsl,usbmisc = <&usbmisc 2>;
730 dr_mode = "host"; 736 dr_mode = "host";
737 ahb-burst-config = <0x0>;
738 tx-burst-size-dword = <0x10>;
739 rx-burst-size-dword = <0x10>;
731 status = "disabled"; 740 status = "disabled";
732 }; 741 };
733 742
diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi
index 167f77b3bd43..a5f76025a0ce 100644
--- a/arch/arm/boot/dts/imx6sx.dtsi
+++ b/arch/arm/boot/dts/imx6sx.dtsi
@@ -222,7 +222,7 @@
222 "rxtx1", "rxtx2", 222 "rxtx1", "rxtx2",
223 "rxtx3", "rxtx4", 223 "rxtx3", "rxtx4",
224 "rxtx5", "rxtx6", 224 "rxtx5", "rxtx6",
225 "rxtx7", "dma"; 225 "rxtx7", "spba";
226 status = "disabled"; 226 status = "disabled";
227 }; 227 };
228 228
@@ -295,7 +295,7 @@
295 <&clks IMX6SX_CLK_ESAI_IPG>, 295 <&clks IMX6SX_CLK_ESAI_IPG>,
296 <&clks IMX6SX_CLK_SPBA>; 296 <&clks IMX6SX_CLK_SPBA>;
297 clock-names = "core", "mem", "extal", 297 clock-names = "core", "mem", "extal",
298 "fsys", "dma"; 298 "fsys", "spba";
299 status = "disabled"; 299 status = "disabled";
300 }; 300 };
301 301
@@ -348,7 +348,7 @@
348 <&clks IMX6SX_CLK_ASRC_IPG>, 348 <&clks IMX6SX_CLK_ASRC_IPG>,
349 <&clks IMX6SX_CLK_SPDIF>, 349 <&clks IMX6SX_CLK_SPDIF>,
350 <&clks IMX6SX_CLK_SPBA>; 350 <&clks IMX6SX_CLK_SPBA>;
351 clock-names = "mem", "ipg", "asrck", "dma"; 351 clock-names = "mem", "ipg", "asrck", "spba";
352 dmas = <&sdma 17 20 1>, <&sdma 18 20 1>, 352 dmas = <&sdma 17 20 1>, <&sdma 18 20 1>,
353 <&sdma 19 20 1>, <&sdma 20 20 1>, 353 <&sdma 19 20 1>, <&sdma 20 20 1>,
354 <&sdma 21 20 1>, <&sdma 22 20 1>; 354 <&sdma 21 20 1>, <&sdma 22 20 1>;
@@ -783,6 +783,9 @@
783 fsl,usbphy = <&usbphy1>; 783 fsl,usbphy = <&usbphy1>;
784 fsl,usbmisc = <&usbmisc 0>; 784 fsl,usbmisc = <&usbmisc 0>;
785 fsl,anatop = <&anatop>; 785 fsl,anatop = <&anatop>;
786 ahb-burst-config = <0x0>;
787 tx-burst-size-dword = <0x10>;
788 rx-burst-size-dword = <0x10>;
786 status = "disabled"; 789 status = "disabled";
787 }; 790 };
788 791
@@ -793,6 +796,9 @@
793 clocks = <&clks IMX6SX_CLK_USBOH3>; 796 clocks = <&clks IMX6SX_CLK_USBOH3>;
794 fsl,usbphy = <&usbphy2>; 797 fsl,usbphy = <&usbphy2>;
795 fsl,usbmisc = <&usbmisc 1>; 798 fsl,usbmisc = <&usbmisc 1>;
799 ahb-burst-config = <0x0>;
800 tx-burst-size-dword = <0x10>;
801 rx-burst-size-dword = <0x10>;
796 status = "disabled"; 802 status = "disabled";
797 }; 803 };
798 804
@@ -805,6 +811,9 @@
805 phy_type = "hsic"; 811 phy_type = "hsic";
806 fsl,anatop = <&anatop>; 812 fsl,anatop = <&anatop>;
807 dr_mode = "host"; 813 dr_mode = "host";
814 ahb-burst-config = <0x0>;
815 tx-burst-size-dword = <0x10>;
816 rx-burst-size-dword = <0x10>;
808 status = "disabled"; 817 status = "disabled";
809 }; 818 };
810 819
@@ -1152,6 +1161,8 @@
1152 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 1161 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
1153 clocks = <&clks IMX6SX_CLK_IPG>; 1162 clocks = <&clks IMX6SX_CLK_IPG>;
1154 clock-names = "adc"; 1163 clock-names = "adc";
1164 fsl,adck-max-frequency = <30000000>, <40000000>,
1165 <20000000>;
1155 status = "disabled"; 1166 status = "disabled";
1156 }; 1167 };
1157 1168
@@ -1161,6 +1172,8 @@
1161 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 1172 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
1162 clocks = <&clks IMX6SX_CLK_IPG>; 1173 clocks = <&clks IMX6SX_CLK_IPG>;
1163 clock-names = "adc"; 1174 clock-names = "adc";
1175 fsl,adck-max-frequency = <30000000>, <40000000>,
1176 <20000000>;
1164 status = "disabled"; 1177 status = "disabled";
1165 }; 1178 };
1166 1179
diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi
index d00e994bdbd2..99b646506fc9 100644
--- a/arch/arm/boot/dts/imx6ul.dtsi
+++ b/arch/arm/boot/dts/imx6ul.dtsi
@@ -548,6 +548,9 @@
548 fsl,usbphy = <&usbphy1>; 548 fsl,usbphy = <&usbphy1>;
549 fsl,usbmisc = <&usbmisc 0>; 549 fsl,usbmisc = <&usbmisc 0>;
550 fsl,anatop = <&anatop>; 550 fsl,anatop = <&anatop>;
551 ahb-burst-config = <0x0>;
552 tx-burst-size-dword = <0x10>;
553 rx-burst-size-dword = <0x10>;
551 status = "disabled"; 554 status = "disabled";
552 }; 555 };
553 556
@@ -558,6 +561,9 @@
558 clocks = <&clks IMX6UL_CLK_USBOH3>; 561 clocks = <&clks IMX6UL_CLK_USBOH3>;
559 fsl,usbphy = <&usbphy2>; 562 fsl,usbphy = <&usbphy2>;
560 fsl,usbmisc = <&usbmisc 1>; 563 fsl,usbmisc = <&usbmisc 1>;
564 ahb-burst-config = <0x0>;
565 tx-burst-size-dword = <0x10>;
566 rx-burst-size-dword = <0x10>;
561 status = "disabled"; 567 status = "disabled";
562 }; 568 };
563 569
@@ -619,6 +625,18 @@
619 status = "disabled"; 625 status = "disabled";
620 }; 626 };
621 627
628 adc1: adc@02198000 {
629 compatible = "fsl,imx6ul-adc", "fsl,vf610-adc";
630 reg = <0x02198000 0x4000>;
631 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
632 clocks = <&clks IMX6UL_CLK_ADC1>;
633 num-channels = <2>;
634 clock-names = "adc";
635 fsl,adck-max-frequency = <30000000>, <40000000>,
636 <20000000>;
637 status = "disabled";
638 };
639
622 i2c1: i2c@021a0000 { 640 i2c1: i2c@021a0000 {
623 #address-cells = <1>; 641 #address-cells = <1>;
624 #size-cells = <0>; 642 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
new file mode 100644
index 000000000000..48634519d13a
--- /dev/null
+++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
@@ -0,0 +1,286 @@
1/*
2 * Support for CompuLab CL-SOM-iMX7 System-on-Module
3 *
4 * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/
5 * Author: Ilya Ledvich <ilya@compulab.co.il>
6 *
7 * This file is dual-licensed: you can use it either under the terms
8 * of the GPL or the X11 license, at your option. Note that this dual
9 * licensing only applies to this file, and not this project as a
10 * whole.
11 */
12
13/dts-v1/;
14
15#include <dt-bindings/input/input.h>
16#include "imx7d.dtsi"
17
18/ {
19 model = "CompuLab CL-SOM-iMX7";
20 compatible = "compulab,cl-som-imx7", "fsl,imx7d";
21
22 memory {
23 reg = <0x80000000 0x10000000>; /* 256 MB - minimal configuration */
24 };
25
26 reg_usb_otg1_vbus: regulator-vbus {
27 compatible = "regulator-fixed";
28 regulator-name = "usb_otg1_vbus";
29 regulator-min-microvolt = <5000000>;
30 regulator-max-microvolt = <5000000>;
31 gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
32 enable-active-high;
33 };
34};
35
36&cpu0 {
37 arm-supply = <&sw1a_reg>;
38};
39
40&fec1 {
41 pinctrl-names = "default";
42 pinctrl-0 = <&pinctrl_enet1>;
43 assigned-clocks = <&clks IMX7D_ENET1_TIME_ROOT_SRC>,
44 <&clks IMX7D_ENET1_TIME_ROOT_CLK>;
45 assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
46 assigned-clock-rates = <0>, <100000000>;
47 phy-mode = "rgmii";
48 phy-handle = <&ethphy0>;
49 fsl,magic-packet;
50 status = "okay";
51
52 mdio {
53 #address-cells = <1>;
54 #size-cells = <0>;
55
56 ethphy0: ethernet-phy@0 {
57 reg = <0>;
58 };
59
60 ethphy1: ethernet-phy@1 {
61 reg = <1>;
62 };
63 };
64};
65
66&fec2 {
67 pinctrl-names = "default";
68 pinctrl-0 = <&pinctrl_enet2>;
69 assigned-clocks = <&clks IMX7D_ENET2_TIME_ROOT_SRC>,
70 <&clks IMX7D_ENET2_TIME_ROOT_CLK>;
71 assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
72 assigned-clock-rates = <0>, <100000000>;
73 phy-mode = "rgmii";
74 phy-handle = <&ethphy1>;
75 fsl,magic-packet;
76 status = "okay";
77};
78
79&i2c2 {
80 pinctrl-names = "default";
81 pinctrl-0 = <&pinctrl_i2c2>;
82 status = "okay";
83
84 pmic: pmic@8 {
85 compatible = "fsl,pfuze3000";
86 reg = <0x08>;
87
88 regulators {
89 sw1a_reg: sw1a {
90 regulator-min-microvolt = <700000>;
91 regulator-max-microvolt = <1475000>;
92 regulator-boot-on;
93 regulator-always-on;
94 regulator-ramp-delay = <6250>;
95 };
96
97 /* use sw1c_reg to align with pfuze100/pfuze200 */
98 sw1c_reg: sw1b {
99 regulator-min-microvolt = <700000>;
100 regulator-max-microvolt = <1475000>;
101 regulator-boot-on;
102 regulator-always-on;
103 regulator-ramp-delay = <6250>;
104 };
105
106 sw2_reg: sw2 {
107 regulator-min-microvolt = <1500000>;
108 regulator-max-microvolt = <1850000>;
109 regulator-boot-on;
110 regulator-always-on;
111 };
112
113 sw3a_reg: sw3 {
114 regulator-min-microvolt = <900000>;
115 regulator-max-microvolt = <1650000>;
116 regulator-boot-on;
117 regulator-always-on;
118 };
119
120 swbst_reg: swbst {
121 regulator-min-microvolt = <5000000>;
122 regulator-max-microvolt = <5150000>;
123 };
124
125 snvs_reg: vsnvs {
126 regulator-min-microvolt = <1000000>;
127 regulator-max-microvolt = <3000000>;
128 regulator-boot-on;
129 regulator-always-on;
130 };
131
132 vref_reg: vrefddr {
133 regulator-boot-on;
134 regulator-always-on;
135 };
136
137 vgen1_reg: vldo1 {
138 regulator-min-microvolt = <1800000>;
139 regulator-max-microvolt = <3300000>;
140 regulator-always-on;
141 };
142
143 vgen2_reg: vldo2 {
144 regulator-min-microvolt = <800000>;
145 regulator-max-microvolt = <1550000>;
146 };
147
148 vgen3_reg: vccsd {
149 regulator-min-microvolt = <2850000>;
150 regulator-max-microvolt = <3300000>;
151 regulator-always-on;
152 };
153
154 vgen4_reg: v33 {
155 regulator-min-microvolt = <2850000>;
156 regulator-max-microvolt = <3300000>;
157 regulator-always-on;
158 };
159
160 vgen5_reg: vldo3 {
161 regulator-min-microvolt = <1800000>;
162 regulator-max-microvolt = <3300000>;
163 regulator-always-on;
164 };
165
166 vgen6_reg: vldo4 {
167 regulator-min-microvolt = <1800000>;
168 regulator-max-microvolt = <3300000>;
169 regulator-always-on;
170 };
171 };
172 };
173
174 pca9555: pca9555@20 {
175 compatible = "nxp,pca9555";
176 gpio-controller;
177 #gpio-cells = <2>;
178 reg = <0x20>;
179 };
180
181 eeprom@50 {
182 compatible = "atmel,24c08";
183 reg = <0x50>;
184 pagesize = <16>;
185 };
186};
187
188&uart1 {
189 pinctrl-names = "default";
190 pinctrl-0 = <&pinctrl_uart1>;
191 assigned-clocks = <&clks IMX7D_UART1_ROOT_SRC>;
192 assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
193 status = "okay";
194};
195
196&usbotg1 {
197 pinctrl-names = "default";
198 pinctrl-0 = <&pinctrl_usbotg1>;
199 vbus-supply = <&reg_usb_otg1_vbus>;
200 status = "okay";
201};
202
203&usdhc3 {
204 pinctrl-names = "default";
205 pinctrl-0 = <&pinctrl_usdhc3>;
206 assigned-clocks = <&clks IMX7D_USDHC3_ROOT_CLK>;
207 assigned-clock-rates = <400000000>;
208 bus-width = <8>;
209 fsl,tuning-step = <2>;
210 non-removable;
211 status = "okay";
212};
213
214&iomuxc {
215 pinctrl_enet1: enet1grp {
216 fsl,pins = <
217 MX7D_PAD_SD2_CD_B__ENET1_MDIO 0x3
218 MX7D_PAD_SD2_WP__ENET1_MDC 0x3
219 MX7D_PAD_ENET1_RGMII_TXC__ENET1_RGMII_TXC 0x1
220 MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0 0x1
221 MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1 0x1
222 MX7D_PAD_ENET1_RGMII_TD2__ENET1_RGMII_TD2 0x1
223 MX7D_PAD_ENET1_RGMII_TD3__ENET1_RGMII_TD3 0x1
224 MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x1
225 MX7D_PAD_ENET1_RGMII_RXC__ENET1_RGMII_RXC 0x1
226 MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0 0x1
227 MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1 0x1
228 MX7D_PAD_ENET1_RGMII_RD2__ENET1_RGMII_RD2 0x1
229 MX7D_PAD_ENET1_RGMII_RD3__ENET1_RGMII_RD3 0x1
230 MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x1
231 >;
232 };
233
234 pinctrl_enet2: enet2grp {
235 fsl,pins = <
236 MX7D_PAD_EPDC_GDSP__ENET2_RGMII_TXC 0x1
237 MX7D_PAD_EPDC_SDCE2__ENET2_RGMII_TD0 0x1
238 MX7D_PAD_EPDC_SDCE3__ENET2_RGMII_TD1 0x1
239 MX7D_PAD_EPDC_GDCLK__ENET2_RGMII_TD2 0x1
240 MX7D_PAD_EPDC_GDOE__ENET2_RGMII_TD3 0x1
241 MX7D_PAD_EPDC_GDRL__ENET2_RGMII_TX_CTL 0x1
242 MX7D_PAD_EPDC_SDCE1__ENET2_RGMII_RXC 0x1
243 MX7D_PAD_EPDC_SDCLK__ENET2_RGMII_RD0 0x1
244 MX7D_PAD_EPDC_SDLE__ENET2_RGMII_RD1 0x1
245 MX7D_PAD_EPDC_SDOE__ENET2_RGMII_RD2 0x1
246 MX7D_PAD_EPDC_SDSHR__ENET2_RGMII_RD3 0x1
247 MX7D_PAD_EPDC_SDCE0__ENET2_RGMII_RX_CTL 0x1
248 >;
249 };
250
251 pinctrl_i2c2: i2c2grp {
252 fsl,pins = <
253 MX7D_PAD_I2C2_SDA__I2C2_SDA 0x4000007f
254 MX7D_PAD_I2C2_SCL__I2C2_SCL 0x4000007f
255 >;
256 };
257
258 pinctrl_uart1: uart1grp {
259 fsl,pins = <
260 MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX 0x79
261 MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX 0x79
262 >;
263 };
264
265 pinctrl_usbotg1: usbotg1grp {
266 fsl,pins = <
267 MX7D_PAD_GPIO1_IO05__GPIO1_IO5 0x14 /* OTG PWREN */
268 >;
269 };
270
271 pinctrl_usdhc3: usdhc3grp {
272 fsl,pins = <
273 MX7D_PAD_SD3_CMD__SD3_CMD 0x59
274 MX7D_PAD_SD3_CLK__SD3_CLK 0x19
275 MX7D_PAD_SD3_DATA0__SD3_DATA0 0x59
276 MX7D_PAD_SD3_DATA1__SD3_DATA1 0x59
277 MX7D_PAD_SD3_DATA2__SD3_DATA2 0x59
278 MX7D_PAD_SD3_DATA3__SD3_DATA3 0x59
279 MX7D_PAD_SD3_DATA4__SD3_DATA4 0x59
280 MX7D_PAD_SD3_DATA5__SD3_DATA5 0x59
281 MX7D_PAD_SD3_DATA6__SD3_DATA6 0x59
282 MX7D_PAD_SD3_DATA7__SD3_DATA7 0x59
283 MX7D_PAD_SD3_STROBE__SD3_STROBE 0x19
284 >;
285 };
286};
diff --git a/arch/arm/boot/dts/imx7d-sbc-imx7.dts b/arch/arm/boot/dts/imx7d-sbc-imx7.dts
new file mode 100644
index 000000000000..d63c597c0783
--- /dev/null
+++ b/arch/arm/boot/dts/imx7d-sbc-imx7.dts
@@ -0,0 +1,42 @@
1/*
2 * Support for CompuLab SBC-iMX7 Single Board Computer
3 *
4 * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/
5 * Author: Ilya Ledvich <ilya@compulab.co.il>
6 *
7 * This file is dual-licensed: you can use it either under the terms
8 * of the GPL or the X11 license, at your option. Note that this dual
9 * licensing only applies to this file, and not this project as a
10 * whole.
11 */
12
13#include "imx7d-cl-som-imx7.dts"
14
15/ {
16 model = "CompuLab SBC-iMX7";
17 compatible = "compulab,sbc-imx7", "compulab,cl-som-imx7", "fsl,imx7d";
18};
19
20&usdhc1 {
21 pinctrl-names = "default";
22 pinctrl-0 = <&pinctrl_usdhc1>;
23 cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
24 wp-gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
25 enable-sdio-wakeup;
26 status = "okay";
27};
28
29&iomuxc {
30 pinctrl_usdhc1: usdhc1grp {
31 fsl,pins = <
32 MX7D_PAD_SD1_CMD__SD1_CMD 0x59
33 MX7D_PAD_SD1_CLK__SD1_CLK 0x19
34 MX7D_PAD_SD1_DATA0__SD1_DATA0 0x59
35 MX7D_PAD_SD1_DATA1__SD1_DATA1 0x59
36 MX7D_PAD_SD1_DATA2__SD1_DATA2 0x59
37 MX7D_PAD_SD1_DATA3__SD1_DATA3 0x59
38 MX7D_PAD_SD1_CD_B__GPIO5_IO0 0x59 /* CD */
39 MX7D_PAD_SD1_WP__GPIO5_IO1 0x59 /* WP */
40 >;
41 };
42};
diff --git a/arch/arm/boot/dts/imx7d-sdb.dts b/arch/arm/boot/dts/imx7d-sdb.dts
index 432aaf5d5ef7..b2c453662905 100644
--- a/arch/arm/boot/dts/imx7d-sdb.dts
+++ b/arch/arm/boot/dts/imx7d-sdb.dts
@@ -97,6 +97,16 @@
97 }; 97 };
98}; 98};
99 99
100&adc1 {
101 vref-supply = <&reg_vref_1v8>;
102 status = "okay";
103};
104
105&adc2 {
106 vref-supply = <&reg_vref_1v8>;
107 status = "okay";
108};
109
100&cpu0 { 110&cpu0 {
101 arm-supply = <&sw1a_reg>; 111 arm-supply = <&sw1a_reg>;
102}; 112};
diff --git a/arch/arm/boot/dts/imx7d.dtsi b/arch/arm/boot/dts/imx7d.dtsi
index ebc053a06405..25ad30978740 100644
--- a/arch/arm/boot/dts/imx7d.dtsi
+++ b/arch/arm/boot/dts/imx7d.dtsi
@@ -85,9 +85,7 @@
85 792000 975000 85 792000 975000
86 >; 86 >;
87 clock-latency = <61036>; /* two CLK32 periods */ 87 clock-latency = <61036>; /* two CLK32 periods */
88 clocks = <&clks IMX7D_ARM_A7_ROOT_CLK>, <&clks IMX7D_ARM_A7_ROOT_SRC>, 88 clocks = <&clks IMX7D_CLK_ARM>;
89 <&clks IMX7D_PLL_ARM_MAIN_CLK>, <&clks IMX7D_PLL_SYS_MAIN_CLK>;
90 clock-names = "arm", "arm_root_src", "pll_arm", "pll_sys_main";
91 }; 89 };
92 90
93 cpu1: cpu@1 { 91 cpu1: cpu@1 {
@@ -583,6 +581,24 @@
583 reg = <0x30400000 0x400000>; 581 reg = <0x30400000 0x400000>;
584 ranges; 582 ranges;
585 583
584 adc1: adc@30610000 {
585 compatible = "fsl,imx7d-adc";
586 reg = <0x30610000 0x10000>;
587 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
588 clocks = <&clks IMX7D_ADC_ROOT_CLK>;
589 clock-names = "adc";
590 status = "disabled";
591 };
592
593 adc2: adc@30620000 {
594 compatible = "fsl,imx7d-adc";
595 reg = <0x30620000 0x10000>;
596 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
597 clocks = <&clks IMX7D_ADC_ROOT_CLK>;
598 clock-names = "adc";
599 status = "disabled";
600 };
601
586 pwm1: pwm@30660000 { 602 pwm1: pwm@30660000 {
587 compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm"; 603 compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
588 reg = <0x30660000 0x10000>; 604 reg = <0x30660000 0x10000>;
diff --git a/arch/arm/boot/dts/kirkwood-nsa325.dts b/arch/arm/boot/dts/kirkwood-nsa325.dts
new file mode 100644
index 000000000000..bc4ec9332387
--- /dev/null
+++ b/arch/arm/boot/dts/kirkwood-nsa325.dts
@@ -0,0 +1,238 @@
1/* Device tree file for the Zyxel NSA 325 NAS box.
2 *
3 * Copyright (c) 2015, Hans Ulli Kroll <ulli.kroll@googlemail.com>
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version
8 * 2 of the License, or (at your option) any later version.
9 *
10 * Based upon the board setup file created by Peter Schildmann
11 */
12
13/dts-v1/;
14
15#include "kirkwood-nsa3x0-common.dtsi"
16
17/ {
18 model = "ZyXEL NSA325";
19 compatible = "zyxel,nsa325", "marvell,kirkwood-88f6282", "marvell,kirkwood";
20
21 memory {
22 device_type = "memory";
23 reg = <0x00000000 0x20000000>;
24 };
25
26 chosen {
27 bootargs = "console=ttyS0,115200";
28 stdout-path = &uart0;
29 };
30
31 mbus {
32 pcie-controller {
33 status = "okay";
34
35 pcie@1,0 {
36 status = "okay";
37 };
38 };
39 };
40
41 ocp@f1000000 {
42 pinctrl: pin-controller@10000 {
43 pinctrl-names = "default";
44
45 pmx_led_hdd2_green: pmx-led-hdd2-green {
46 marvell,pins = "mpp12";
47 marvell,function = "gpio";
48 };
49
50 pmx_led_hdd2_red: pmx-led-hdd2-red {
51 marvell,pins = "mpp13";
52 marvell,function = "gpio";
53 };
54
55 pmx_mcu_data: pmx-mcu-data {
56 marvell,pins = "mpp14";
57 marvell,function = "gpio";
58 };
59
60 pmx_led_usb_green: pmx-led-usb-green {
61 marvell,pins = "mpp15";
62 marvell,function = "gpio";
63 };
64
65 pmx_mcu_clk: pmx-mcu-clk {
66 marvell,pins = "mpp16";
67 marvell,function = "gpio";
68 };
69
70 pmx_mcu_act: pmx-mcu-act {
71 marvell,pins = "mpp17";
72 marvell,function = "gpio";
73 };
74
75 pmx_led_sys_green: pmx-led-sys-green {
76 marvell,pins = "mpp28";
77 marvell,function = "gpio";
78 };
79
80 pmx_led_sys_orange: pmx-led-sys-orange {
81 marvell,pins = "mpp29";
82 marvell,function = "gpio";
83 };
84
85 pmx_led_hdd1_green: pmx-led-hdd1-green {
86 marvell,pins = "mpp41";
87 marvell,function = "gpio";
88 };
89
90 pmx_led_hdd1_red: pmx-led-hdd1-red {
91 marvell,pins = "mpp42";
92 marvell,function = "gpio";
93 };
94
95 pmx_htp: pmx-htp {
96 marvell,pins = "mpp43";
97 marvell,function = "gpio";
98 };
99
100 /*
101 * Buzzer needs to be switched at around 1kHz so is
102 * not compatible with the gpio-beeper driver.
103 */
104 pmx_buzzer: pmx-buzzer {
105 marvell,pins = "mpp44";
106 marvell,function = "gpio";
107 };
108
109 pmx_vid_b1: pmx-vid-b1 {
110 marvell,pins = "mpp45";
111 marvell,function = "gpio";
112 };
113
114 pmx_power_resume_data: pmx-power-resume-data {
115 marvell,pins = "mpp47";
116 marvell,function = "gpio";
117 };
118
119 pmx_power_resume_clk: pmx-power-resume-clk {
120 marvell,pins = "mpp49";
121 marvell,function = "gpio";
122 };
123
124 pmx_pwr_sata1: pmx-pwr-sata1 {
125 marvell,pins = "mpp47";
126 marvell,function = "gpio";
127 };
128 };
129
130 /* This board uses the pcf8563 RTC instead of the SoC RTC */
131 rtc@10300 {
132 status = "disabled";
133 };
134
135 i2c@11000 {
136 status = "okay";
137
138 pcf8563: pcf8563@51 {
139 compatible = "nxp,pcf8563";
140 reg = <0x51>;
141 };
142 };
143 };
144
145 regulators {
146 compatible = "simple-bus";
147 #address-cells = <1>;
148 #size-cells = <0>;
149 pinctrl-0 = <&pmx_pwr_sata1>;
150 pinctrl-names = "default";
151
152 usb0_power: regulator@1 {
153 enable-active-high;
154 };
155
156 sata1_power: regulator@2 {
157 compatible = "regulator-fixed";
158 reg = <2>;
159 regulator-name = "SATA1 Power";
160 regulator-min-microvolt = <5000000>;
161 regulator-max-microvolt = <5000000>;
162 regulator-always-on;
163 regulator-boot-on;
164 enable-active-high;
165 gpio = <&gpio1 15 GPIO_ACTIVE_HIGH>;
166 };
167 };
168
169 gpio-leds {
170 compatible = "gpio-leds";
171 pinctrl-0 = <&pmx_led_hdd2_green &pmx_led_hdd2_red
172 &pmx_led_usb_green
173 &pmx_led_sys_green &pmx_led_sys_orange
174 &pmx_led_copy_green &pmx_led_copy_red
175 &pmx_led_hdd1_green &pmx_led_hdd1_red>;
176 pinctrl-names = "default";
177
178 green-sys {
179 label = "nsa325:green:sys";
180 gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
181 };
182 orange-sys {
183 label = "nsa325:orange:sys";
184 gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
185 };
186 green-hdd1 {
187 label = "nsa325:green:hdd1";
188 gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
189 };
190 red-hdd1 {
191 label = "nsa325:red:hdd1";
192 gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
193 };
194 green-hdd2 {
195 label = "nsa325:green:hdd2";
196 gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
197 };
198 red-hdd2 {
199 label = "nsa325:red:hdd2";
200 gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
201 };
202 green-usb {
203 label = "nsa325:green:usb";
204 gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
205 };
206 green-copy {
207 label = "nsa325:green:copy";
208 gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
209 };
210 red-copy {
211 label = "nsa325:red:copy";
212 gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
213 };
214
215 /* The following pins are currently not assigned to a driver,
216 some of them should be configured as inputs.
217 pinctrl-0 = <&pmx_mcu_data &pmx_mcu_clk &pmx_mcu_act
218 &pmx_htp &pmx_vid_b1
219 &pmx_power_resume_data &pmx_power_resume_clk>; */
220 };
221
222
223};
224
225&mdio {
226 status = "okay";
227 ethphy0: ethernet-phy@1 {
228 reg = <1>;
229 };
230};
231
232&eth0 {
233 status = "okay";
234 ethernet0-port@0 {
235 phy-handle = <&ethphy0>;
236 };
237};
238
diff --git a/arch/arm/boot/dts/kirkwood-pogoplug-series-4.dts b/arch/arm/boot/dts/kirkwood-pogoplug-series-4.dts
new file mode 100644
index 000000000000..1db6f2c506cc
--- /dev/null
+++ b/arch/arm/boot/dts/kirkwood-pogoplug-series-4.dts
@@ -0,0 +1,178 @@
1/*
2 * kirkwood-pogoplug-series-4.dts - Device tree file for PogoPlug Series 4
3 * inspired by the board files made by Kevin Mihelich for ArchLinux,
4 * and their DTS file.
5 *
6 * Copyright (C) 2015 Linus Walleij <linus.walleij@linaro.org>
7 */
8
9/dts-v1/;
10
11#include "kirkwood.dtsi"
12#include "kirkwood-6192.dtsi"
13#include <dt-bindings/input/linux-event-codes.h>
14
15/ {
16 model = "Cloud Engines PogoPlug Series 4";
17 compatible = "cloudengines,pogoplugv4", "marvell,kirkwood-88f6192",
18 "marvell,kirkwood";
19
20 memory {
21 device_type = "memory";
22 reg = <0x00000000 0x08000000>;
23 };
24
25 chosen {
26 stdout-path = "uart0:115200n8";
27 };
28
29 gpio_keys {
30 compatible = "gpio-keys";
31 #address-cells = <1>;
32 #size-cells = <0>;
33 pinctrl-0 = <&pmx_button_eject>;
34 pinctrl-names = "default";
35
36 button@1 {
37 debounce_interval = <50>;
38 wakeup-source;
39 linux,code = <KEY_EJECTCD>;
40 label = "Eject Button";
41 gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
42 };
43 };
44
45 gpio-leds {
46 compatible = "gpio-leds";
47 pinctrl-0 = <&pmx_led_green &pmx_led_red>;
48 pinctrl-names = "default";
49
50 health {
51 label = "pogoplugv4:green:health";
52 gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
53 default-state = "on";
54 };
55 fault {
56 label = "pogoplugv4:red:fault";
57 gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
58 };
59 };
60};
61
62&pinctrl {
63 pmx_sata0: pmx-sata0 {
64 marvell,pins = "mpp21";
65 marvell,function = "sata0";
66 };
67
68 pmx_sata1: pmx-sata1 {
69 marvell,pins = "mpp20";
70 marvell,function = "sata1";
71 };
72
73 pmx_sdio_cd: pmx-sdio-cd {
74 marvell,pins = "mpp27";
75 marvell,function = "gpio";
76 };
77
78 pmx_sdio_wp: pmx-sdio-wp {
79 marvell,pins = "mpp28";
80 marvell,function = "gpio";
81 };
82
83 pmx_button_eject: pmx-button-eject {
84 marvell,pins = "mpp29";
85 marvell,function = "gpio";
86 };
87
88 pmx_led_green: pmx-led-green {
89 marvell,pins = "mpp22";
90 marvell,function = "gpio";
91 };
92
93 pmx_led_red: pmx-led-red {
94 marvell,pins = "mpp24";
95 marvell,function = "gpio";
96 };
97};
98
99&uart0 {
100 status = "okay";
101};
102
103/*
104 * This PCIE controller has a USB 3.0 XHCI controller at 1,0
105 */
106&pciec {
107 status = "okay";
108};
109
110&pcie0 {
111 status = "okay";
112};
113
114&sata {
115 status = "okay";
116 pinctrl-0 = <&pmx_sata0 &pmx_sata1>;
117 pinctrl-names = "default";
118 nr-ports = <1>;
119};
120
121&sdio {
122 status = "okay";
123 pinctrl-0 = <&pmx_sdio &pmx_sdio_cd &pmx_sdio_wp>;
124 pinctrl-names = "default";
125 cd-gpios = <&gpio0 27 GPIO_ACTIVE_LOW>;
126 wp-gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
127};
128
129&nand {
130 /* 128 MiB of NAND flash */
131 chip-delay = <40>;
132 status = "okay";
133 partitions {
134 #address-cells = <1>;
135 #size-cells = <1>;
136
137 partition@0 {
138 label = "u-boot";
139 reg = <0x00000000 0x200000>;
140 read-only;
141 };
142
143 partition@200000 {
144 label = "uImage";
145 reg = <0x00200000 0x300000>;
146 };
147
148 partition@500000 {
149 label = "uImage2";
150 reg = <0x00500000 0x300000>;
151 };
152
153 partition@800000 {
154 label = "failsafe";
155 reg = <0x00800000 0x800000>;
156 };
157
158 partition@1000000 {
159 label = "root";
160 reg = <0x01000000 0x7000000>;
161 };
162 };
163};
164
165&mdio {
166 status = "okay";
167
168 ethphy0: ethernet-phy@0 {
169 reg = <0>;
170 };
171};
172
173&eth0 {
174 status = "okay";
175 ethernet0-port@0 {
176 phy-handle = <&ethphy0>;
177 };
178};
diff --git a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts
index 5b0430041ec6..fb13f18c08cc 100644
--- a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts
+++ b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts
@@ -23,31 +23,37 @@
23 label = "sysboot2"; 23 label = "sysboot2";
24 gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; /* gpio2 */ 24 gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; /* gpio2 */
25 linux,code = <BTN_0>; 25 linux,code = <BTN_0>;
26 gpio-key,wakeup; 26 wakeup-source;
27 }; 27 };
28 28
29 sysboot5 { 29 sysboot5 {
30 label = "sysboot5"; 30 label = "sysboot5";
31 gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; /* gpio7 */ 31 gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; /* gpio7 */
32 linux,code = <BTN_1>; 32 linux,code = <BTN_1>;
33 gpio-key,wakeup; 33 wakeup-source;
34 }; 34 };
35 35
36 gpio1 { 36 gpio1 {
37 label = "gpio1"; 37 label = "gpio1";
38 gpios = <&gpio6 21 GPIO_ACTIVE_LOW>; /* gpio181 */ 38 gpios = <&gpio6 21 GPIO_ACTIVE_LOW>; /* gpio181 */
39 linux,code = <BTN_2>; 39 linux,code = <BTN_2>;
40 gpio-key,wakeup; 40 wakeup-source;
41 }; 41 };
42 42
43 gpio2 { 43 gpio2 {
44 label = "gpio2"; 44 label = "gpio2";
45 gpios = <&gpio6 18 GPIO_ACTIVE_LOW>; /* gpio178 */ 45 gpios = <&gpio6 18 GPIO_ACTIVE_LOW>; /* gpio178 */
46 linux,code = <BTN_3>; 46 linux,code = <BTN_3>;
47 gpio-key,wakeup; 47 wakeup-source;
48 }; 48 };
49 }; 49 };
50 50
51 sound {
52 compatible = "ti,omap-twl4030";
53 ti,model = "omap3logic";
54 ti,mcbsp = <&mcbsp2>;
55 };
56
51 leds { 57 leds {
52 compatible = "gpio-leds"; 58 compatible = "gpio-leds";
53 pinctrl-names = "default"; 59 pinctrl-names = "default";
@@ -67,6 +73,20 @@
67 }; 73 };
68}; 74};
69 75
76&vaux1 {
77 regulator-min-microvolt = <3000000>;
78 regulator-max-microvolt = <3000000>;
79};
80
81&vaux4 {
82 regulator-min-microvolt = <1800000>;
83 regulator-max-microvolt = <1800000>;
84};
85
86&mcbsp2 {
87 status = "okay";
88};
89
70&charger { 90&charger {
71 ti,bb-uvolt = <3200000>; 91 ti,bb-uvolt = <3200000>;
72 ti,bb-uamp = <150>; 92 ti,bb-uamp = <150>;
@@ -84,6 +104,70 @@
84 }; 104 };
85}; 105};
86 106
107&vpll2 {
108 regulator-always-on;
109};
110
111&dss {
112 status = "ok";
113 vdds_dsi-supply = <&vpll2>;
114 pinctrl-names = "default";
115 pinctrl-0 = <&dss_dpi_pins1>;
116 port {
117 dpi_out: endpoint {
118 remote-endpoint = <&lcd_in>;
119 data-lines = <16>;
120 };
121 };
122};
123
124/ {
125 aliases {
126 display0 = &lcd0;
127 };
128
129 lcd0: display@0 {
130 compatible = "panel-dpi";
131 label = "15";
132 status = "okay";
133 /* default-on; */
134 pinctrl-names = "default";
135 enable-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>; /* gpio155, lcd INI */
136
137 port {
138 lcd_in: endpoint {
139 remote-endpoint = <&dpi_out>;
140 };
141 };
142
143 panel-timing {
144 clock-frequency = <9000000>;
145 hactive = <480>;
146 vactive = <272>;
147 hfront-porch = <3>;
148 hback-porch = <2>;
149 hsync-len = <42>;
150 vback-porch = <3>;
151 vfront-porch = <4>;
152 vsync-len = <11>;
153 hsync-active = <0>;
154 vsync-active = <0>;
155 de-active = <1>;
156 pixelclk-active = <1>;
157 };
158 };
159
160 bl: backlight {
161 compatible = "gpio-backlight";
162 pinctrl-names = "default";
163 pinctrl-0 = <&backlight_pins>;
164
165 gpios = <&gpio2 24 GPIO_ACTIVE_HIGH>, /* gpio_56 */
166 <&gpio5 26 GPIO_ACTIVE_HIGH>; /* gpio_154 */
167 default-on;
168 };
169};
170
87&mmc1 { 171&mmc1 {
88 interrupts-extended = <&intc 83 &omap3_pmx_core 0x11a>; 172 interrupts-extended = <&intc 83 &omap3_pmx_core 0x11a>;
89 pinctrl-names = "default"; 173 pinctrl-names = "default";
@@ -119,6 +203,48 @@
119 OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */ 203 OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */
120 >; 204 >;
121 }; 205 };
206
207 tsc2004_pins: pinmux_tsc2004_pins {
208 pinctrl-single,pins = <
209 OMAP3_CORE1_IOPAD(0x2186, PIN_INPUT | MUX_MODE4) /* mcbsp4_dr.gpio_153 */
210 >;
211 };
212
213 backlight_pins: pinmux_backlight_pins {
214 pinctrl-single,pins = <
215 OMAP3_CORE1_IOPAD(0x20B8, PIN_OUTPUT | MUX_MODE4) /* gpmc_ncs5.gpio_56 */
216 OMAP3_CORE1_IOPAD(0x2188, PIN_OUTPUT | MUX_MODE4) /* mcbsp4_dx.gpio_154 */
217 >;
218 };
219
220 dss_dpi_pins1: pinmux_dss_dpi_pins1 {
221 pinctrl-single,pins = <
222 OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */
223 OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0) /* dss_hsync.dss_hsync */
224 OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0) /* dss_vsync.dss_vsync */
225 OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0) /* dss_acbias.dss_acbias */
226
227 OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0) /* dss_data6.dss_data6 */
228 OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0) /* dss_data7.dss_data7 */
229 OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0) /* dss_data8.dss_data8 */
230 OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0) /* dss_data9.dss_data9 */
231 OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0) /* dss_data10.dss_data10 */
232 OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0) /* dss_data11.dss_data11 */
233 OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0) /* dss_data12.dss_data12 */
234 OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0) /* dss_data13.dss_data13 */
235 OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0) /* dss_data14.dss_data14 */
236 OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0) /* dss_data15.dss_data15 */
237 OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0) /* dss_data16.dss_data16 */
238 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0) /* dss_data17.dss_data17 */
239
240 OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE3) /* dss_data18.dss_data0 */
241 OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE3) /* dss_data19.dss_data1 */
242 OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE3) /* dss_data20.dss_data2 */
243 OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE3) /* dss_data21.dss_data3 */
244 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE3) /* dss_data22.dss_data4 */
245 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE3) /* dss_data23.dss_data5 */
246 >;
247 };
122}; 248};
123 249
124&omap3_pmx_wkup { 250&omap3_pmx_wkup {
@@ -142,6 +268,27 @@
142 }; 268 };
143}; 269};
144 270
271&i2c3 {
272 touchscreen: tsc2004@48 {
273 compatible = "ti,tsc2004";
274 reg = <0x48>;
275 vio-supply = <&vaux1>;
276 pinctrl-names = "default";
277 pinctrl-0 = <&tsc2004_pins>;
278 interrupts-extended = <&gpio5 25 IRQ_TYPE_EDGE_RISING>; /* gpio 153 */
279
280 touchscreen-fuzz-x = <4>;
281 touchscreen-fuzz-y = <7>;
282 touchscreen-fuzz-pressure = <2>;
283 touchscreen-size-x = <4096>;
284 touchscreen-size-y = <4096>;
285 touchscreen-max-pressure = <2048>;
286
287 ti,x-plate-ohms = <280>;
288 ti,esd-recovery-timeout-ms = <8000>;
289 };
290};
291
145&uart1 { 292&uart1 {
146 interrupts-extended = <&intc 72 &omap3_pmx_core OMAP3_UART1_RX>; 293 interrupts-extended = <&intc 72 &omap3_pmx_core OMAP3_UART1_RX>;
147}; 294};
diff --git a/arch/arm/boot/dts/logicpd-torpedo-som.dtsi b/arch/arm/boot/dts/logicpd-torpedo-som.dtsi
index 36387b11451d..7fed0bd4f3de 100644
--- a/arch/arm/boot/dts/logicpd-torpedo-som.dtsi
+++ b/arch/arm/boot/dts/logicpd-torpedo-som.dtsi
@@ -96,9 +96,30 @@
96 reg = <0x48>; 96 reg = <0x48>;
97 interrupts = <7>; /* SYS_NIRQ cascaded to intc */ 97 interrupts = <7>; /* SYS_NIRQ cascaded to intc */
98 interrupt-parent = <&intc>; 98 interrupt-parent = <&intc>;
99 twl_audio: audio {
100 compatible = "ti,twl4030-audio";
101 codec {
102 };
103 };
99 }; 104 };
100}; 105};
101 106
107&i2c2 {
108 clock-frequency = <400000>;
109};
110
111&i2c3 {
112 clock-frequency = <400000>;
113};
114
115&i2c2 {
116 clock-frequency = <400000>;
117};
118
119&i2c3 {
120 clock-frequency = <400000>;
121};
122
102/* 123/*
103 * Only found on the wireless SOM. For the SOM without wireless, the pins for 124 * Only found on the wireless SOM. For the SOM without wireless, the pins for
104 * MMC3 can be routed with jumpers to the second MMC slot on the devkit and 125 * MMC3 can be routed with jumpers to the second MMC slot on the devkit and
@@ -136,6 +157,29 @@
136 OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4) /* mcbsp1_fsr.gpio_157 */ 157 OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4) /* mcbsp1_fsr.gpio_157 */
137 >; 158 >;
138 }; 159 };
160 mcbsp2_pins: pinmux_mcbsp2_pins {
161 pinctrl-single,pins = <
162 OMAP3_CORE1_IOPAD(0x213c, PIN_INPUT | MUX_MODE0) /* mcbsp2_fsx */
163 OMAP3_CORE1_IOPAD(0x213e, PIN_INPUT | MUX_MODE0) /* mcbsp2_clkx */
164 OMAP3_CORE1_IOPAD(0x2140, PIN_INPUT | MUX_MODE0) /* mcbsp2_dr */
165 OMAP3_CORE1_IOPAD(0x2142, PIN_OUTPUT | MUX_MODE0) /* mcbsp2_dx */
166 >;
167 };
168 uart2_pins: pinmux_uart2_pins {
169 pinctrl-single,pins = <
170 OMAP3_CORE1_IOPAD(0x2174, PIN_INPUT | MUX_MODE0) /* uart2_cts.uart2_cts */
171 OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT | MUX_MODE0) /* uart2_rts .uart2_rts*/
172 OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0) /* uart2_tx.uart2_tx */
173 OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx.uart2_rx */
174 OMAP3_CORE1_IOPAD(0x2198, PIN_OUTPUT | MUX_MODE4) /* GPIO_162,BT_EN */
175 >;
176 };
177};
178
179&uart2 {
180 interrupts-extended = <&intc 73 &omap3_pmx_core OMAP3_UART2_RX>;
181 pinctrl-names = "default";
182 pinctrl-0 = <&uart2_pins>;
139}; 183};
140 184
141&omap3_pmx_core2 { 185&omap3_pmx_core2 {
diff --git a/arch/arm/boot/dts/lpc18xx.dtsi b/arch/arm/boot/dts/lpc18xx.dtsi
index 52591d83e8cd..053a1f54f4bb 100644
--- a/arch/arm/boot/dts/lpc18xx.dtsi
+++ b/arch/arm/boot/dts/lpc18xx.dtsi
@@ -166,6 +166,17 @@
166 status = "disabled"; 166 status = "disabled";
167 }; 167 };
168 168
169 eeprom: eeprom@4000e000 {
170 compatible = "nxp,lpc1857-eeprom";
171 reg = <0x4000e000 0x1000>, <0x20040000 0x4000>;
172 reg-names = "reg", "mem";
173 clocks = <&ccu1 CLK_CPU_EEPROM>;
174 clock-names = "eeprom";
175 resets = <&rgu 27>;
176 interrupts = <4>;
177 status = "disabled";
178 };
179
169 mac: ethernet@40010000 { 180 mac: ethernet@40010000 {
170 compatible = "nxp,lpc1850-dwmac", "snps,dwmac-3.611", "snps,dwmac"; 181 compatible = "nxp,lpc1850-dwmac", "snps,dwmac-3.611", "snps,dwmac";
171 reg = <0x40010000 0x2000>; 182 reg = <0x40010000 0x2000>;
diff --git a/arch/arm/boot/dts/lpc32xx.dtsi b/arch/arm/boot/dts/lpc32xx.dtsi
index 3abebb75fc57..c85cf979725e 100644
--- a/arch/arm/boot/dts/lpc32xx.dtsi
+++ b/arch/arm/boot/dts/lpc32xx.dtsi
@@ -11,19 +11,20 @@
11 * http://www.gnu.org/copyleft/gpl.html 11 * http://www.gnu.org/copyleft/gpl.html
12 */ 12 */
13 13
14/include/ "skeleton.dtsi" 14#include "skeleton.dtsi"
15 15
16/ { 16/ {
17 compatible = "nxp,lpc3220"; 17 compatible = "nxp,lpc3220";
18 interrupt-parent = <&mic>; 18 interrupt-parent = <&mic>;
19 19
20 cpus { 20 cpus {
21 #address-cells = <0>; 21 #address-cells = <1>;
22 #size-cells = <0>; 22 #size-cells = <0>;
23 23
24 cpu { 24 cpu@0 {
25 compatible = "arm,arm926ej-s"; 25 compatible = "arm,arm926ej-s";
26 device_type = "cpu"; 26 device_type = "cpu";
27 reg = <0x0>;
27 }; 28 };
28 }; 29 };
29 30
@@ -31,7 +32,8 @@
31 #address-cells = <1>; 32 #address-cells = <1>;
32 #size-cells = <1>; 33 #size-cells = <1>;
33 compatible = "simple-bus"; 34 compatible = "simple-bus";
34 ranges = <0x20000000 0x20000000 0x30000000>; 35 ranges = <0x20000000 0x20000000 0x30000000>,
36 <0xe0000000 0xe0000000 0x04000000>;
35 37
36 /* 38 /*
37 * Enable either SLC or MLC 39 * Enable either SLC or MLC
@@ -49,30 +51,46 @@
49 status = "disabled"; 51 status = "disabled";
50 }; 52 };
51 53
52 dma@31000000 { 54 dma: dma@31000000 {
53 compatible = "arm,pl080", "arm,primecell"; 55 compatible = "arm,pl080", "arm,primecell";
54 reg = <0x31000000 0x1000>; 56 reg = <0x31000000 0x1000>;
55 interrupts = <0x1c 0>; 57 interrupts = <0x1c 0>;
56 }; 58 };
57 59
58 /* 60 usb {
59 * Enable either ohci or usbd (gadget)! 61 #address-cells = <1>;
60 */ 62 #size-cells = <1>;
61 ohci@31020000 { 63 compatible = "simple-bus";
62 compatible = "nxp,ohci-nxp", "usb-ohci"; 64 ranges = <0x0 0x31020000 0x00001000>;
63 reg = <0x31020000 0x300>;
64 interrupts = <0x3b 0>;
65 status = "disabled";
66 };
67 65
68 usbd@31020000 { 66 /*
69 compatible = "nxp,lpc3220-udc"; 67 * Enable either ohci or usbd (gadget)!
70 reg = <0x31020000 0x300>; 68 */
71 interrupts = <0x3d 0>, <0x3e 0>, <0x3c 0>, <0x3a 0>; 69 ohci: ohci@0 {
72 status = "disabled"; 70 compatible = "nxp,ohci-nxp", "usb-ohci";
71 reg = <0x0 0x300>;
72 interrupts = <0x3b 0>;
73 status = "disabled";
74 };
75
76 usbd: usbd@0 {
77 compatible = "nxp,lpc3220-udc";
78 reg = <0x0 0x300>;
79 interrupts = <0x3d 0>, <0x3e 0>, <0x3c 0>, <0x3a 0>;
80 status = "disabled";
81 };
82
83 i2cusb: i2c@300 {
84 compatible = "nxp,pnx-i2c";
85 reg = <0x300 0x100>;
86 interrupts = <0x3f 0>;
87 #address-cells = <1>;
88 #size-cells = <0>;
89 pnx,timeout = <0x64>;
90 };
73 }; 91 };
74 92
75 clcd@31040000 { 93 clcd: clcd@31040000 {
76 compatible = "arm,pl110", "arm,primecell"; 94 compatible = "arm,pl110", "arm,primecell";
77 reg = <0x31040000 0x1000>; 95 reg = <0x31040000 0x1000>;
78 interrupts = <0x0e 0>; 96 interrupts = <0x0e 0>;
@@ -85,6 +103,19 @@
85 interrupts = <0x1d 0>; 103 interrupts = <0x1d 0>;
86 }; 104 };
87 105
106 emc: memory-controller@31080000 {
107 compatible = "arm,pl175", "arm,primecell";
108 reg = <0x31080000 0x1000>;
109 #address-cells = <1>;
110 #size-cells = <1>;
111
112 ranges = <0 0xe0000000 0x01000000>,
113 <1 0xe1000000 0x01000000>,
114 <2 0xe2000000 0x01000000>,
115 <3 0xe3000000 0x01000000>;
116 status = "disabled";
117 };
118
88 apb { 119 apb {
89 #address-cells = <1>; 120 #address-cells = <1>;
90 #size-cells = <1>; 121 #size-cells = <1>;
@@ -118,7 +149,7 @@
118 reg = <0x20094000 0x1000>; 149 reg = <0x20094000 0x1000>;
119 }; 150 };
120 151
121 sd@20098000 { 152 sd: sd@20098000 {
122 compatible = "arm,pl18x", "arm,primecell"; 153 compatible = "arm,pl18x", "arm,primecell";
123 reg = <0x20098000 0x1000>; 154 reg = <0x20098000 0x1000>;
124 interrupts = <0x0f 0>, <0x0d 0>; 155 interrupts = <0x0f 0>, <0x0d 0>;
@@ -192,15 +223,6 @@
192 status = "disabled"; 223 status = "disabled";
193 #pwm-cells = <2>; 224 #pwm-cells = <2>;
194 }; 225 };
195
196 i2cusb: i2c@31020300 {
197 compatible = "nxp,pnx-i2c";
198 reg = <0x31020300 0x100>;
199 interrupts = <0x3f 0>;
200 #address-cells = <1>;
201 #size-cells = <0>;
202 pnx,timeout = <0x64>;
203 };
204 }; 226 };
205 227
206 fab { 228 fab {
@@ -243,7 +265,7 @@
243 status = "disabled"; 265 status = "disabled";
244 }; 266 };
245 267
246 rtc@40024000 { 268 rtc: rtc@40024000 {
247 compatible = "nxp,lpc3220-rtc"; 269 compatible = "nxp,lpc3220-rtc";
248 reg = <0x40024000 0x1000>; 270 reg = <0x40024000 0x1000>;
249 interrupts = <0x34 0>; 271 interrupts = <0x34 0>;
@@ -256,11 +278,31 @@
256 #gpio-cells = <3>; /* bank, pin, flags */ 278 #gpio-cells = <3>; /* bank, pin, flags */
257 }; 279 };
258 280
259 watchdog@4003C000 { 281 timer4: timer@4002C000 {
282 compatible = "nxp,lpc3220-timer";
283 reg = <0x4002C000 0x1000>;
284 interrupts = <0x3 0>;
285 status = "disabled";
286 };
287
288 timer5: timer@40030000 {
289 compatible = "nxp,lpc3220-timer";
290 reg = <0x40030000 0x1000>;
291 interrupts = <0x4 0>;
292 status = "disabled";
293 };
294
295 watchdog: watchdog@4003C000 {
260 compatible = "nxp,pnx4008-wdt"; 296 compatible = "nxp,pnx4008-wdt";
261 reg = <0x4003C000 0x1000>; 297 reg = <0x4003C000 0x1000>;
262 }; 298 };
263 299
300 timer0: timer@40044000 {
301 compatible = "nxp,lpc3220-timer";
302 reg = <0x40044000 0x1000>;
303 interrupts = <0x10 0>;
304 };
305
264 /* 306 /*
265 * TSC vs. ADC: Since those two share the same 307 * TSC vs. ADC: Since those two share the same
266 * hardware, you need to choose from one of the 308 * hardware, you need to choose from one of the
@@ -268,30 +310,56 @@
268 * them 310 * them
269 */ 311 */
270 312
271 adc@40048000 { 313 adc: adc@40048000 {
272 compatible = "nxp,lpc3220-adc"; 314 compatible = "nxp,lpc3220-adc";
273 reg = <0x40048000 0x1000>; 315 reg = <0x40048000 0x1000>;
274 interrupts = <0x27 0>; 316 interrupts = <0x27 0>;
275 status = "disabled"; 317 status = "disabled";
276 }; 318 };
277 319
278 tsc@40048000 { 320 tsc: tsc@40048000 {
279 compatible = "nxp,lpc3220-tsc"; 321 compatible = "nxp,lpc3220-tsc";
280 reg = <0x40048000 0x1000>; 322 reg = <0x40048000 0x1000>;
281 interrupts = <0x27 0>; 323 interrupts = <0x27 0>;
282 status = "disabled"; 324 status = "disabled";
283 }; 325 };
284 326
285 key@40050000 { 327 timer1: timer@4004C000 {
328 compatible = "nxp,lpc3220-timer";
329 reg = <0x4004C000 0x1000>;
330 interrupts = <0x11 0>;
331 };
332
333 key: key@40050000 {
286 compatible = "nxp,lpc3220-key"; 334 compatible = "nxp,lpc3220-key";
287 reg = <0x40050000 0x1000>; 335 reg = <0x40050000 0x1000>;
288 interrupts = <54 0>; 336 interrupts = <54 0>;
289 status = "disabled"; 337 status = "disabled";
290 }; 338 };
291 339
292 pwm: pwm@4005C000 { 340 timer2: timer@40058000 {
341 compatible = "nxp,lpc3220-timer";
342 reg = <0x40058000 0x1000>;
343 interrupts = <0x12 0>;
344 status = "disabled";
345 };
346
347 pwm1: pwm@4005C000 {
293 compatible = "nxp,lpc3220-pwm"; 348 compatible = "nxp,lpc3220-pwm";
294 reg = <0x4005C000 0x8>; 349 reg = <0x4005C000 0x4>;
350 status = "disabled";
351 };
352
353 pwm2: pwm@4005C004 {
354 compatible = "nxp,lpc3220-pwm";
355 reg = <0x4005C004 0x4>;
356 status = "disabled";
357 };
358
359 timer3: timer@40060000 {
360 compatible = "nxp,lpc3220-timer";
361 reg = <0x40060000 0x1000>;
362 interrupts = <0x13 0>;
295 status = "disabled"; 363 status = "disabled";
296 }; 364 };
297 }; 365 };
diff --git a/arch/arm/boot/dts/lpc4337-ciaa.dts b/arch/arm/boot/dts/lpc4337-ciaa.dts
index 5f500c1ad89c..5cfadb06c8df 100644
--- a/arch/arm/boot/dts/lpc4337-ciaa.dts
+++ b/arch/arm/boot/dts/lpc4337-ciaa.dts
@@ -99,6 +99,14 @@
99 }; 99 };
100 }; 100 };
101 101
102 i2c0_pins: i2c0-pins {
103 i2c0_pins_cfg {
104 pins = "i2c0_scl", "i2c0_sda";
105 function = "i2c0";
106 input-enable;
107 };
108 };
109
102 ssp_pins: ssp-pins { 110 ssp_pins: ssp-pins {
103 ssp1_cs { 111 ssp1_cs {
104 pins = "p6_7"; 112 pins = "p6_7";
@@ -159,6 +167,28 @@
159 clock-frequency = <50000000>; 167 clock-frequency = <50000000>;
160}; 168};
161 169
170&i2c0 {
171 status = "okay";
172 pinctrl-names = "default";
173 pinctrl-0 = <&i2c0_pins>;
174 clock-frequency = <400000>;
175
176 eeprom@50 {
177 compatible = "microchip,24c512";
178 reg = <0x50>;
179 };
180
181 eeprom@51 {
182 compatible = "microchip,24c02";
183 reg = <0x51>;
184 };
185
186 eeprom@54 {
187 compatible = "microchip,24c512";
188 reg = <0x54>;
189 };
190};
191
162&mac { 192&mac {
163 status = "okay"; 193 status = "okay";
164 phy-mode = "rmii"; 194 phy-mode = "rmii";
@@ -166,6 +196,10 @@
166 pinctrl-0 = <&enet_rmii_pins>; 196 pinctrl-0 = <&enet_rmii_pins>;
167}; 197};
168 198
199&sct_pwm {
200 status = "okay";
201};
202
169&ssp1 { 203&ssp1 {
170 status = "okay"; 204 status = "okay";
171 pinctrl-names = "default"; 205 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/lpc4357-ea4357-devkit.dts b/arch/arm/boot/dts/lpc4357-ea4357-devkit.dts
index 391121d24daa..079d3cf8c00b 100644
--- a/arch/arm/boot/dts/lpc4357-ea4357-devkit.dts
+++ b/arch/arm/boot/dts/lpc4357-ea4357-devkit.dts
@@ -467,6 +467,11 @@
467 pinctrl-0 = <&i2c0_pins>; 467 pinctrl-0 = <&i2c0_pins>;
468 clock-frequency = <400000>; 468 clock-frequency = <400000>;
469 469
470 mma7455@1d {
471 compatible = "fsl,mma7455";
472 reg = <0x1d>;
473 };
474
470 lm75@48 { 475 lm75@48 {
471 compatible = "nxp,lm75"; 476 compatible = "nxp,lm75";
472 reg = <0x48>; 477 reg = <0x48>;
diff --git a/arch/arm/boot/dts/lpc4357.dtsi b/arch/arm/boot/dts/lpc4357.dtsi
index fb9ecc754e8d..72f12db8d53a 100644
--- a/arch/arm/boot/dts/lpc4357.dtsi
+++ b/arch/arm/boot/dts/lpc4357.dtsi
@@ -37,3 +37,7 @@
37 }; 37 };
38 }; 38 };
39}; 39};
40
41&eeprom {
42 status = "okay";
43};
diff --git a/arch/arm/boot/dts/ls1021a-qds.dts b/arch/arm/boot/dts/ls1021a-qds.dts
index 0521e6864cb7..940875316d0f 100644
--- a/arch/arm/boot/dts/ls1021a-qds.dts
+++ b/arch/arm/boot/dts/ls1021a-qds.dts
@@ -320,6 +320,10 @@
320 status = "okay"; 320 status = "okay";
321}; 321};
322 322
323&sata {
324 status = "okay";
325};
326
323&uart0 { 327&uart0 {
324 status = "okay"; 328 status = "okay";
325}; 329};
diff --git a/arch/arm/boot/dts/ls1021a-twr.dts b/arch/arm/boot/dts/ls1021a-twr.dts
index fbb89d13401e..75ecaed32ae5 100644
--- a/arch/arm/boot/dts/ls1021a-twr.dts
+++ b/arch/arm/boot/dts/ls1021a-twr.dts
@@ -105,6 +105,15 @@
105 bitclock-master; 105 bitclock-master;
106 }; 106 };
107 }; 107 };
108
109 panel: panel {
110 compatible = "nec,nl4827hc19-05b";
111 };
112};
113
114&dcu {
115 fsl,panel = <&panel>;
116 status = "okay";
108}; 117};
109 118
110&dspi1 { 119&dspi1 {
@@ -212,6 +221,10 @@
212 status = "okay"; 221 status = "okay";
213}; 222};
214 223
224&sata {
225 status = "okay";
226};
227
215&uart0 { 228&uart0 {
216 status = "okay"; 229 status = "okay";
217}; 230};
diff --git a/arch/arm/boot/dts/ls1021a.dtsi b/arch/arm/boot/dts/ls1021a.dtsi
index 9430a9928199..2c84ca236473 100644
--- a/arch/arm/boot/dts/ls1021a.dtsi
+++ b/arch/arm/boot/dts/ls1021a.dtsi
@@ -143,6 +143,17 @@
143 status = "disabled"; 143 status = "disabled";
144 }; 144 };
145 145
146 sata: sata@3200000 {
147 compatible = "fsl,ls1021a-ahci";
148 reg = <0x0 0x3200000 0x0 0x10000>,
149 <0x0 0x20220520 0x0 0x4>;
150 reg-names = "ahci", "sata-ecc";
151 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
152 clocks = <&platform_clk 1>;
153 dma-coherent;
154 status = "disabled";
155 };
156
146 scfg: scfg@1570000 { 157 scfg: scfg@1570000 {
147 compatible = "fsl,ls1021a-scfg", "syscon"; 158 compatible = "fsl,ls1021a-scfg", "syscon";
148 reg = <0x0 0x1570000 0x0 0x10000>; 159 reg = <0x0 0x1570000 0x0 0x10000>;
@@ -428,6 +439,16 @@
428 <&platform_clk 1>; 439 <&platform_clk 1>;
429 }; 440 };
430 441
442 dcu: dcu@2ce0000 {
443 compatible = "fsl,ls1021a-dcu";
444 reg = <0x0 0x2ce0000 0x0 0x10000>;
445 interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
446 clocks = <&platform_clk 0>;
447 clock-names = "dcu";
448 big-endian;
449 status = "disabled";
450 };
451
431 mdio0: mdio@2d24000 { 452 mdio0: mdio@2d24000 {
432 compatible = "gianfar"; 453 compatible = "gianfar";
433 device_type = "mdio"; 454 device_type = "mdio";
diff --git a/arch/arm/boot/dts/meson8b-odroidc1.dts b/arch/arm/boot/dts/meson8b-odroidc1.dts
index a8e2911b2cbe..e50f1a1fdbc7 100644
--- a/arch/arm/boot/dts/meson8b-odroidc1.dts
+++ b/arch/arm/boot/dts/meson8b-odroidc1.dts
@@ -46,6 +46,7 @@
46 46
47/dts-v1/; 47/dts-v1/;
48#include "meson8b.dtsi" 48#include "meson8b.dtsi"
49#include <dt-bindings/gpio/gpio.h>
49 50
50/ { 51/ {
51 model = "Hardkernel ODROID-C1"; 52 model = "Hardkernel ODROID-C1";
@@ -58,6 +59,16 @@
58 memory { 59 memory {
59 reg = <0x40000000 0x40000000>; 60 reg = <0x40000000 0x40000000>;
60 }; 61 };
62
63 leds {
64 compatible = "gpio-leds";
65 blue {
66 label = "c1:blue:alive";
67 gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_LOW>;
68 linux,default-trigger = "heartbeat";
69 default-state = "off";
70 };
71 };
61}; 72};
62 73
63&uart_AO { 74&uart_AO {
diff --git a/arch/arm/boot/dts/meson8b.dtsi b/arch/arm/boot/dts/meson8b.dtsi
index ee352bf687ff..8bad5571af46 100644
--- a/arch/arm/boot/dts/meson8b.dtsi
+++ b/arch/arm/boot/dts/meson8b.dtsi
@@ -105,6 +105,12 @@
105 #interrupt-cells = <3>; 105 #interrupt-cells = <3>;
106 }; 106 };
107 107
108 wdt: watchdog@c1109900 {
109 compatible = "amlogic,meson8b-wdt";
110 reg = <0xc1109900 0x8>;
111 interrupts = <0 0 1>;
112 };
113
108 timer@c1109940 { 114 timer@c1109940 {
109 compatible = "amlogic,meson6-timer"; 115 compatible = "amlogic,meson6-timer";
110 reg = <0xc1109940 0x18>; 116 reg = <0xc1109940 0x18>;
diff --git a/arch/arm/boot/dts/mt2701-evb.dts b/arch/arm/boot/dts/mt2701-evb.dts
new file mode 100644
index 000000000000..082ca8807c62
--- /dev/null
+++ b/arch/arm/boot/dts/mt2701-evb.dts
@@ -0,0 +1,29 @@
1/*
2 * Copyright (c) 2015 MediaTek Inc.
3 * Author: Erin Lo <erin.lo@mediatek.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 */
14
15/dts-v1/;
16#include "mt2701.dtsi"
17
18/ {
19 model = "MediaTek MT2701 evaluation board";
20 compatible = "mediatek,mt2701-evb", "mediatek,mt2701";
21
22 memory {
23 reg = <0 0x80000000 0 0x40000000>;
24 };
25};
26
27&uart0 {
28 status = "okay";
29};
diff --git a/arch/arm/boot/dts/mt2701.dtsi b/arch/arm/boot/dts/mt2701.dtsi
new file mode 100644
index 000000000000..3766904b60f3
--- /dev/null
+++ b/arch/arm/boot/dts/mt2701.dtsi
@@ -0,0 +1,146 @@
1/*
2 * Copyright (c) 2015 MediaTek Inc.
3 * Author: Erin.Lo <erin.lo@mediatek.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 */
14
15#include <dt-bindings/interrupt-controller/irq.h>
16#include <dt-bindings/interrupt-controller/arm-gic.h>
17#include "skeleton64.dtsi"
18
19/ {
20 compatible = "mediatek,mt2701";
21 interrupt-parent = <&sysirq>;
22
23 cpus {
24 #address-cells = <1>;
25 #size-cells = <0>;
26
27 cpu@0 {
28 device_type = "cpu";
29 compatible = "arm,cortex-a7";
30 reg = <0x0>;
31 };
32 cpu@1 {
33 device_type = "cpu";
34 compatible = "arm,cortex-a7";
35 reg = <0x1>;
36 };
37 cpu@2 {
38 device_type = "cpu";
39 compatible = "arm,cortex-a7";
40 reg = <0x2>;
41 };
42 cpu@3 {
43 device_type = "cpu";
44 compatible = "arm,cortex-a7";
45 reg = <0x3>;
46 };
47 };
48
49 system_clk: dummy13m {
50 compatible = "fixed-clock";
51 clock-frequency = <13000000>;
52 #clock-cells = <0>;
53 };
54
55 rtc_clk: dummy32k {
56 compatible = "fixed-clock";
57 clock-frequency = <32000>;
58 #clock-cells = <0>;
59 };
60
61 uart_clk: dummy26m {
62 compatible = "fixed-clock";
63 clock-frequency = <26000000>;
64 #clock-cells = <0>;
65 };
66
67 timer {
68 compatible = "arm,armv7-timer";
69 interrupt-parent = <&gic>;
70 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
71 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
72 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
73 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
74 };
75
76 watchdog: watchdog@10007000 {
77 compatible = "mediatek,mt2701-wdt",
78 "mediatek,mt6589-wdt";
79 reg = <0 0x10007000 0 0x100>;
80 };
81
82 timer: timer@10008000 {
83 compatible = "mediatek,mt2701-timer",
84 "mediatek,mt6577-timer";
85 reg = <0 0x10008000 0 0x80>;
86 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_LOW>;
87 clocks = <&system_clk>, <&rtc_clk>;
88 clock-names = "system-clk", "rtc-clk";
89 };
90
91 sysirq: interrupt-controller@10200100 {
92 compatible = "mediatek,mt2701-sysirq",
93 "mediatek,mt6577-sysirq";
94 interrupt-controller;
95 #interrupt-cells = <3>;
96 interrupt-parent = <&gic>;
97 reg = <0 0x10200100 0 0x1c>;
98 };
99
100 gic: interrupt-controller@10211000 {
101 compatible = "arm,cortex-a7-gic";
102 interrupt-controller;
103 #interrupt-cells = <3>;
104 interrupt-parent = <&gic>;
105 reg = <0 0x10211000 0 0x1000>,
106 <0 0x10212000 0 0x1000>,
107 <0 0x10214000 0 0x2000>,
108 <0 0x10216000 0 0x2000>;
109 };
110
111 uart0: serial@11002000 {
112 compatible = "mediatek,mt2701-uart",
113 "mediatek,mt6577-uart";
114 reg = <0 0x11002000 0 0x400>;
115 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>;
116 clocks = <&uart_clk>;
117 status = "disabled";
118 };
119
120 uart1: serial@11003000 {
121 compatible = "mediatek,mt2701-uart",
122 "mediatek,mt6577-uart";
123 reg = <0 0x11003000 0 0x400>;
124 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
125 clocks = <&uart_clk>;
126 status = "disabled";
127 };
128
129 uart2: serial@11004000 {
130 compatible = "mediatek,mt2701-uart",
131 "mediatek,mt6577-uart";
132 reg = <0 0x11004000 0 0x400>;
133 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>;
134 clocks = <&uart_clk>;
135 status = "disabled";
136 };
137
138 uart3: serial@11005000 {
139 compatible = "mediatek,mt2701-uart",
140 "mediatek,mt6577-uart";
141 reg = <0 0x11005000 0 0x400>;
142 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>;
143 clocks = <&uart_clk>;
144 status = "disabled";
145 };
146};
diff --git a/arch/arm/boot/dts/mt8135.dtsi b/arch/arm/boot/dts/mt8135.dtsi
index cb99b02d2ccc..1d7f92bdcb9c 100644
--- a/arch/arm/boot/dts/mt8135.dtsi
+++ b/arch/arm/boot/dts/mt8135.dtsi
@@ -15,7 +15,7 @@
15#include <dt-bindings/clock/mt8135-clk.h> 15#include <dt-bindings/clock/mt8135-clk.h>
16#include <dt-bindings/interrupt-controller/irq.h> 16#include <dt-bindings/interrupt-controller/irq.h>
17#include <dt-bindings/interrupt-controller/arm-gic.h> 17#include <dt-bindings/interrupt-controller/arm-gic.h>
18#include <dt-bindings/reset-controller/mt8135-resets.h> 18#include <dt-bindings/reset/mt8135-resets.h>
19#include "skeleton64.dtsi" 19#include "skeleton64.dtsi"
20#include "mt8135-pinfunc.h" 20#include "mt8135-pinfunc.h"
21 21
diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts
index 73f1e3a8f62c..01e1e2d5c735 100644
--- a/arch/arm/boot/dts/omap3-beagle-xm.dts
+++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
@@ -69,7 +69,7 @@
69 label = "user"; 69 label = "user";
70 gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; 70 gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
71 linux,code = <0x114>; 71 linux,code = <0x114>;
72 gpio-key,wakeup; 72 wakeup-source;
73 }; 73 };
74 74
75 }; 75 };
@@ -176,18 +176,18 @@
176&omap3_pmx_wkup { 176&omap3_pmx_wkup {
177 gpio1_pins: pinmux_gpio1_pins { 177 gpio1_pins: pinmux_gpio1_pins {
178 pinctrl-single,pins = < 178 pinctrl-single,pins = <
179 0x0e (PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE4) /* sys_boot2.gpio_4 */ 179 OMAP3_WKUP_IOPAD(0x2a0e, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE4) /* sys_boot2.gpio_4 */
180 >; 180 >;
181 }; 181 };
182 182
183 dss_dpi_pins2: pinmux_dss_dpi_pins1 { 183 dss_dpi_pins2: pinmux_dss_dpi_pins1 {
184 pinctrl-single,pins = < 184 pinctrl-single,pins = <
185 0x0a (PIN_OUTPUT | MUX_MODE3) /* sys_boot0.dss_data18 */ 185 OMAP3_WKUP_IOPAD(0x2a0a, PIN_OUTPUT | MUX_MODE3) /* sys_boot0.dss_data18 */
186 0x0c (PIN_OUTPUT | MUX_MODE3) /* sys_boot1.dss_data19 */ 186 OMAP3_WKUP_IOPAD(0x2a0c, PIN_OUTPUT | MUX_MODE3) /* sys_boot1.dss_data19 */
187 0x10 (PIN_OUTPUT | MUX_MODE3) /* sys_boot3.dss_data20 */ 187 OMAP3_WKUP_IOPAD(0x2a10, PIN_OUTPUT | MUX_MODE3) /* sys_boot3.dss_data20 */
188 0x12 (PIN_OUTPUT | MUX_MODE3) /* sys_boot4.dss_data21 */ 188 OMAP3_WKUP_IOPAD(0x2a12, PIN_OUTPUT | MUX_MODE3) /* sys_boot4.dss_data21 */
189 0x14 (PIN_OUTPUT | MUX_MODE3) /* sys_boot5.dss_data22 */ 189 OMAP3_WKUP_IOPAD(0x2a14, PIN_OUTPUT | MUX_MODE3) /* sys_boot5.dss_data22 */
190 0x16 (PIN_OUTPUT | MUX_MODE3) /* sys_boot6.dss_data23 */ 190 OMAP3_WKUP_IOPAD(0x2a16, PIN_OUTPUT | MUX_MODE3) /* sys_boot6.dss_data23 */
191 >; 191 >;
192 }; 192 };
193}; 193};
@@ -200,8 +200,8 @@
200 200
201 uart3_pins: pinmux_uart3_pins { 201 uart3_pins: pinmux_uart3_pins {
202 pinctrl-single,pins = < 202 pinctrl-single,pins = <
203 0x16e (PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */ 203 OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
204 0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx OUTPUT | MODE0 */ 204 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx OUTPUT | MODE0 */
205 >; 205 >;
206 }; 206 };
207 207
diff --git a/arch/arm/boot/dts/omap3-beagle.dts b/arch/arm/boot/dts/omap3-beagle.dts
index 274c2c482aaa..8ba465d57635 100644
--- a/arch/arm/boot/dts/omap3-beagle.dts
+++ b/arch/arm/boot/dts/omap3-beagle.dts
@@ -80,7 +80,7 @@
80 label = "user"; 80 label = "user";
81 gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; 81 gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
82 linux,code = <0x114>; 82 linux,code = <0x114>;
83 gpio-key,wakeup; 83 wakeup-source;
84 }; 84 };
85 85
86 }; 86 };
@@ -171,7 +171,7 @@
171&omap3_pmx_wkup { 171&omap3_pmx_wkup {
172 gpio1_pins: pinmux_gpio1_pins { 172 gpio1_pins: pinmux_gpio1_pins {
173 pinctrl-single,pins = < 173 pinctrl-single,pins = <
174 0x14 (PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE4) /* sys_boot5.gpio_7 */ 174 OMAP3_WKUP_IOPAD(0x2a14, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE4) /* sys_boot5.gpio_7 */
175 >; 175 >;
176 }; 176 };
177}; 177};
@@ -195,47 +195,47 @@
195 195
196 uart3_pins: pinmux_uart3_pins { 196 uart3_pins: pinmux_uart3_pins {
197 pinctrl-single,pins = < 197 pinctrl-single,pins = <
198 0x16e (PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */ 198 OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
199 0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */ 199 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
200 >; 200 >;
201 }; 201 };
202 202
203 tfp410_pins: pinmux_tfp410_pins { 203 tfp410_pins: pinmux_tfp410_pins {
204 pinctrl-single,pins = < 204 pinctrl-single,pins = <
205 0x196 (PIN_OUTPUT | MUX_MODE4) /* hdq_sio.gpio_170 */ 205 OMAP3_CORE1_IOPAD(0x21c6, PIN_OUTPUT | MUX_MODE4) /* hdq_sio.gpio_170 */
206 >; 206 >;
207 }; 207 };
208 208
209 dss_dpi_pins: pinmux_dss_dpi_pins { 209 dss_dpi_pins: pinmux_dss_dpi_pins {
210 pinctrl-single,pins = < 210 pinctrl-single,pins = <
211 0x0a4 (PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */ 211 OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */
212 0x0a6 (PIN_OUTPUT | MUX_MODE0) /* dss_hsync.dss_hsync */ 212 OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0) /* dss_hsync.dss_hsync */
213 0x0a8 (PIN_OUTPUT | MUX_MODE0) /* dss_vsync.dss_vsync */ 213 OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0) /* dss_vsync.dss_vsync */
214 0x0aa (PIN_OUTPUT | MUX_MODE0) /* dss_acbias.dss_acbias */ 214 OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0) /* dss_acbias.dss_acbias */
215 0x0ac (PIN_OUTPUT | MUX_MODE0) /* dss_data0.dss_data0 */ 215 OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0) /* dss_data0.dss_data0 */
216 0x0ae (PIN_OUTPUT | MUX_MODE0) /* dss_data1.dss_data1 */ 216 OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0) /* dss_data1.dss_data1 */
217 0x0b0 (PIN_OUTPUT | MUX_MODE0) /* dss_data2.dss_data2 */ 217 OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0) /* dss_data2.dss_data2 */
218 0x0b2 (PIN_OUTPUT | MUX_MODE0) /* dss_data3.dss_data3 */ 218 OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0) /* dss_data3.dss_data3 */
219 0x0b4 (PIN_OUTPUT | MUX_MODE0) /* dss_data4.dss_data4 */ 219 OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0) /* dss_data4.dss_data4 */
220 0x0b6 (PIN_OUTPUT | MUX_MODE0) /* dss_data5.dss_data5 */ 220 OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0) /* dss_data5.dss_data5 */
221 0x0b8 (PIN_OUTPUT | MUX_MODE0) /* dss_data6.dss_data6 */ 221 OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0) /* dss_data6.dss_data6 */
222 0x0ba (PIN_OUTPUT | MUX_MODE0) /* dss_data7.dss_data7 */ 222 OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0) /* dss_data7.dss_data7 */
223 0x0bc (PIN_OUTPUT | MUX_MODE0) /* dss_data8.dss_data8 */ 223 OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0) /* dss_data8.dss_data8 */
224 0x0be (PIN_OUTPUT | MUX_MODE0) /* dss_data9.dss_data9 */ 224 OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0) /* dss_data9.dss_data9 */
225 0x0c0 (PIN_OUTPUT | MUX_MODE0) /* dss_data10.dss_data10 */ 225 OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0) /* dss_data10.dss_data10 */
226 0x0c2 (PIN_OUTPUT | MUX_MODE0) /* dss_data11.dss_data11 */ 226 OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0) /* dss_data11.dss_data11 */
227 0x0c4 (PIN_OUTPUT | MUX_MODE0) /* dss_data12.dss_data12 */ 227 OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0) /* dss_data12.dss_data12 */
228 0x0c6 (PIN_OUTPUT | MUX_MODE0) /* dss_data13.dss_data13 */ 228 OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0) /* dss_data13.dss_data13 */
229 0x0c8 (PIN_OUTPUT | MUX_MODE0) /* dss_data14.dss_data14 */ 229 OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0) /* dss_data14.dss_data14 */
230 0x0ca (PIN_OUTPUT | MUX_MODE0) /* dss_data15.dss_data15 */ 230 OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0) /* dss_data15.dss_data15 */
231 0x0cc (PIN_OUTPUT | MUX_MODE0) /* dss_data16.dss_data16 */ 231 OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0) /* dss_data16.dss_data16 */
232 0x0ce (PIN_OUTPUT | MUX_MODE0) /* dss_data17.dss_data17 */ 232 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0) /* dss_data17.dss_data17 */
233 0x0d0 (PIN_OUTPUT | MUX_MODE0) /* dss_data18.dss_data18 */ 233 OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0) /* dss_data18.dss_data18 */
234 0x0d2 (PIN_OUTPUT | MUX_MODE0) /* dss_data19.dss_data19 */ 234 OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0) /* dss_data19.dss_data19 */
235 0x0d4 (PIN_OUTPUT | MUX_MODE0) /* dss_data20.dss_data20 */ 235 OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0) /* dss_data20.dss_data20 */
236 0x0d6 (PIN_OUTPUT | MUX_MODE0) /* dss_data21.dss_data21 */ 236 OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0) /* dss_data21.dss_data21 */
237 0x0d8 (PIN_OUTPUT | MUX_MODE0) /* dss_data22.dss_data22 */ 237 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0) /* dss_data22.dss_data22 */
238 0x0da (PIN_OUTPUT | MUX_MODE0) /* dss_data23.dss_data23 */ 238 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0) /* dss_data23.dss_data23 */
239 >; 239 >;
240 }; 240 };
241}; 241};
diff --git a/arch/arm/boot/dts/omap3-cm-t3x.dtsi b/arch/arm/boot/dts/omap3-cm-t3x.dtsi
index 8c813e77b17f..e5f7f5c92c1a 100644
--- a/arch/arm/boot/dts/omap3-cm-t3x.dtsi
+++ b/arch/arm/boot/dts/omap3-cm-t3x.dtsi
@@ -238,7 +238,7 @@
238 ti,debounce-tol = /bits/ 16 <10>; 238 ti,debounce-tol = /bits/ 16 <10>;
239 ti,debounce-rep = /bits/ 16 <1>; 239 ti,debounce-rep = /bits/ 16 <1>;
240 240
241 linux,wakeup; 241 wakeup-source;
242 }; 242 };
243}; 243};
244 244
diff --git a/arch/arm/boot/dts/omap3-devkit8000-common.dtsi b/arch/arm/boot/dts/omap3-devkit8000-common.dtsi
index 9ca2865a83d6..86850bb311eb 100644
--- a/arch/arm/boot/dts/omap3-devkit8000-common.dtsi
+++ b/arch/arm/boot/dts/omap3-devkit8000-common.dtsi
@@ -64,7 +64,7 @@
64 label = "user"; 64 label = "user";
65 gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>; 65 gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
66 linux,code = <BTN_EXTRA>; 66 linux,code = <BTN_EXTRA>;
67 gpio-key,wakeup; 67 wakeup-source;
68 }; 68 };
69 }; 69 };
70 70
diff --git a/arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi b/arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi
index 4813e96157b3..738910db5c0c 100644
--- a/arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi
+++ b/arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi
@@ -68,6 +68,6 @@
68 ti,keep-vref-on = <1>; 68 ti,keep-vref-on = <1>;
69 ti,settle-delay-usec = /bits/ 16 <150>; 69 ti,settle-delay-usec = /bits/ 16 <150>;
70 70
71 linux,wakeup; 71 wakeup-source;
72 }; 72 };
73}; 73};
diff --git a/arch/arm/boot/dts/omap3-evm-37xx.dts b/arch/arm/boot/dts/omap3-evm-37xx.dts
index bb339d1648e0..ac188657a95d 100644
--- a/arch/arm/boot/dts/omap3-evm-37xx.dts
+++ b/arch/arm/boot/dts/omap3-evm-37xx.dts
@@ -66,48 +66,48 @@
66 66
67 mmc1_pins: pinmux_mmc1_pins { 67 mmc1_pins: pinmux_mmc1_pins {
68 pinctrl-single,pins = < 68 pinctrl-single,pins = <
69 0x114 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */ 69 OMAP3_CORE1_IOPAD(0x2144, PIN_OUTPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */
70 0x116 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */ 70 OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */
71 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */ 71 OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */
72 0x11a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */ 72 OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */
73 0x11c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */ 73 OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */
74 0x11e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */ 74 OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */
75 0x120 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat4.sdmmc1_dat4 */ 75 OMAP3_CORE1_IOPAD(0x2150, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat4.sdmmc1_dat4 */
76 0x122 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat5.sdmmc1_dat5 */ 76 OMAP3_CORE1_IOPAD(0x2152, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat5.sdmmc1_dat5 */
77 0x124 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat6.sdmmc1_dat6 */ 77 OMAP3_CORE1_IOPAD(0x2154, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat6.sdmmc1_dat6 */
78 0x126 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat7.sdmmc1_dat7 */ 78 OMAP3_CORE1_IOPAD(0x2156, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat7.sdmmc1_dat7 */
79 >; 79 >;
80 }; 80 };
81 81
82 /* NOTE: Clocked externally, needs INPUT also for sdmmc2_clk.sdmmc2_clk */ 82 /* NOTE: Clocked externally, needs INPUT also for sdmmc2_clk.sdmmc2_clk */
83 mmc2_pins: pinmux_mmc2_pins { 83 mmc2_pins: pinmux_mmc2_pins {
84 pinctrl-single,pins = < 84 pinctrl-single,pins = <
85 0x128 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk.sdmmc2_clk */ 85 OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk.sdmmc2_clk */
86 0x12a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd.sdmmc2_cmd */ 86 OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd.sdmmc2_cmd */
87 0x12c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0.sdmmc2_dat0 */ 87 OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0.sdmmc2_dat0 */
88 0x12e (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1.sdmmc2_dat1 */ 88 OMAP3_CORE1_IOPAD(0x215e, WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1.sdmmc2_dat1 */
89 0x130 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2.sdmmc2_dat2 */ 89 OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2.sdmmc2_dat2 */
90 0x132 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3.sdmmc2_dat3 */ 90 OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3.sdmmc2_dat3 */
91 >; 91 >;
92 }; 92 };
93 93
94 uart3_pins: pinmux_uart3_pins { 94 uart3_pins: pinmux_uart3_pins {
95 pinctrl-single,pins = < 95 pinctrl-single,pins = <
96 0x16e (WAKEUP_EN | PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */ 96 OMAP3_CORE1_IOPAD(0x219e, WAKEUP_EN | PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
97 0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */ 97 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
98 >; 98 >;
99 }; 99 };
100 100
101 wl12xx_gpio: pinmux_wl12xx_gpio { 101 wl12xx_gpio: pinmux_wl12xx_gpio {
102 pinctrl-single,pins = < 102 pinctrl-single,pins = <
103 0x150 (PIN_OUTPUT | MUX_MODE4) /* uart1_cts.gpio_150 */ 103 OMAP3_CORE1_IOPAD(0x2180, PIN_OUTPUT | MUX_MODE4) /* uart1_cts.gpio_150 */
104 0x14e (PIN_INPUT | MUX_MODE4) /* uart1_rts.gpio_149 */ 104 OMAP3_CORE1_IOPAD(0x217e, PIN_INPUT | MUX_MODE4) /* uart1_rts.gpio_149 */
105 >; 105 >;
106 }; 106 };
107 107
108 smsc911x_pins: pinmux_smsc911x_pins { 108 smsc911x_pins: pinmux_smsc911x_pins {
109 pinctrl-single,pins = < 109 pinctrl-single,pins = <
110 0x1a2 (PIN_INPUT | MUX_MODE4) /* mcspi1_cs2.gpio_176 */ 110 OMAP3_CORE1_IOPAD(0x21d2, PIN_INPUT | MUX_MODE4) /* mcspi1_cs2.gpio_176 */
111 >; 111 >;
112 }; 112 };
113}; 113};
@@ -115,12 +115,12 @@
115&omap3_pmx_wkup { 115&omap3_pmx_wkup {
116 dss_dpi_pins2: pinmux_dss_dpi_pins1 { 116 dss_dpi_pins2: pinmux_dss_dpi_pins1 {
117 pinctrl-single,pins = < 117 pinctrl-single,pins = <
118 0x0a (PIN_OUTPUT | MUX_MODE3) /* sys_boot0.dss_data18 */ 118 OMAP3_WKUP_IOPAD(0x2a0a, PIN_OUTPUT | MUX_MODE3) /* sys_boot0.dss_data18 */
119 0x0c (PIN_OUTPUT | MUX_MODE3) /* sys_boot1.dss_data19 */ 119 OMAP3_WKUP_IOPAD(0x2a0c, PIN_OUTPUT | MUX_MODE3) /* sys_boot1.dss_data19 */
120 0x10 (PIN_OUTPUT | MUX_MODE3) /* sys_boot3.dss_data20 */ 120 OMAP3_WKUP_IOPAD(0x2a10, PIN_OUTPUT | MUX_MODE3) /* sys_boot3.dss_data20 */
121 0x12 (PIN_OUTPUT | MUX_MODE3) /* sys_boot4.dss_data21 */ 121 OMAP3_WKUP_IOPAD(0x2a12, PIN_OUTPUT | MUX_MODE3) /* sys_boot4.dss_data21 */
122 0x14 (PIN_OUTPUT | MUX_MODE3) /* sys_boot5.dss_data22 */ 122 OMAP3_WKUP_IOPAD(0x2a14, PIN_OUTPUT | MUX_MODE3) /* sys_boot5.dss_data22 */
123 0x16 (PIN_OUTPUT | MUX_MODE3) /* sys_boot6.dss_data23 */ 123 OMAP3_WKUP_IOPAD(0x2a16, PIN_OUTPUT | MUX_MODE3) /* sys_boot6.dss_data23 */
124 >; 124 >;
125 }; 125 };
126}; 126};
diff --git a/arch/arm/boot/dts/omap3-gta04.dtsi b/arch/arm/boot/dts/omap3-gta04.dtsi
index e14d15e5abc8..5e2d6433d939 100644
--- a/arch/arm/boot/dts/omap3-gta04.dtsi
+++ b/arch/arm/boot/dts/omap3-gta04.dtsi
@@ -37,7 +37,7 @@
37 label = "aux"; 37 label = "aux";
38 linux,code = <169>; 38 linux,code = <169>;
39 gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; 39 gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
40 gpio-key,wakeup; 40 wakeup-source;
41 }; 41 };
42 }; 42 };
43 43
diff --git a/arch/arm/boot/dts/omap3-igep0020.dts b/arch/arm/boot/dts/omap3-igep0020.dts
index 3835e1569c29..33d6b4ead092 100644
--- a/arch/arm/boot/dts/omap3-igep0020.dts
+++ b/arch/arm/boot/dts/omap3-igep0020.dts
@@ -15,25 +15,17 @@
15 model = "IGEPv2 Rev. C (TI OMAP AM/DM37x)"; 15 model = "IGEPv2 Rev. C (TI OMAP AM/DM37x)";
16 compatible = "isee,omap3-igep0020", "ti,omap36xx", "ti,omap3"; 16 compatible = "isee,omap3-igep0020", "ti,omap36xx", "ti,omap3";
17 17
18 /* Regulator to trigger the WIFI_PDN signal of the Wifi module */ 18 vmmcsdio_fixed: fixedregulator-mmcsdio {
19 lbee1usjyc_pdn: lbee1usjyc_pdn {
20 compatible = "regulator-fixed"; 19 compatible = "regulator-fixed";
21 regulator-name = "regulator-lbee1usjyc-pdn"; 20 regulator-name = "vmmcsdio_fixed";
22 regulator-min-microvolt = <3300000>; 21 regulator-min-microvolt = <3300000>;
23 regulator-max-microvolt = <3300000>; 22 regulator-max-microvolt = <3300000>;
24 gpio = <&gpio5 10 GPIO_ACTIVE_HIGH>; /* gpio_138 - WIFI_PDN */
25 startup-delay-us = <10000>;
26 enable-active-high;
27 }; 23 };
28 24
29 /* Regulator to trigger the RESET_N_W signal of the Wifi module */ 25 mmc2_pwrseq: mmc2_pwrseq {
30 lbee1usjyc_reset_n_w: lbee1usjyc_reset_n_w { 26 compatible = "mmc-pwrseq-simple";
31 compatible = "regulator-fixed"; 27 reset-gpios = <&gpio5 11 GPIO_ACTIVE_LOW>, /* gpio_139 - RESET_N_W */
32 regulator-name = "regulator-lbee1usjyc-reset-n-w"; 28 <&gpio5 10 GPIO_ACTIVE_LOW>; /* gpio_138 - WIFI_PDN */
33 regulator-min-microvolt = <3300000>;
34 regulator-max-microvolt = <3300000>;
35 gpio = <&gpio5 11 GPIO_ACTIVE_HIGH>; /* gpio_139 - RESET_N_W */
36 enable-active-high;
37 }; 29 };
38}; 30};
39 31
@@ -51,8 +43,8 @@
51&mmc2 { 43&mmc2 {
52 pinctrl-names = "default"; 44 pinctrl-names = "default";
53 pinctrl-0 = <&mmc2_pins &lbee1usjyc_pins>; 45 pinctrl-0 = <&mmc2_pins &lbee1usjyc_pins>;
54 vmmc-supply = <&lbee1usjyc_pdn>; 46 vmmc-supply = <&vmmcsdio_fixed>;
55 vmmc_aux-supply = <&lbee1usjyc_reset_n_w>; 47 mmc-pwrseq = <&mmc2_pwrseq>;
56 bus-width = <4>; 48 bus-width = <4>;
57 non-removable; 49 non-removable;
58}; 50};
diff --git a/arch/arm/boot/dts/omap3-igep0030.dts b/arch/arm/boot/dts/omap3-igep0030.dts
index 468608dab30a..55b0cc4f5ee5 100644
--- a/arch/arm/boot/dts/omap3-igep0030.dts
+++ b/arch/arm/boot/dts/omap3-igep0030.dts
@@ -15,25 +15,17 @@
15 model = "IGEP COM MODULE Rev. E (TI OMAP AM/DM37x)"; 15 model = "IGEP COM MODULE Rev. E (TI OMAP AM/DM37x)";
16 compatible = "isee,omap3-igep0030", "ti,omap36xx", "ti,omap3"; 16 compatible = "isee,omap3-igep0030", "ti,omap36xx", "ti,omap3";
17 17
18 /* Regulator to trigger the WIFI_PDN signal of the Wifi module */ 18 vmmcsdio_fixed: fixedregulator-mmcsdio {
19 lbee1usjyc_pdn: lbee1usjyc_pdn {
20 compatible = "regulator-fixed"; 19 compatible = "regulator-fixed";
21 regulator-name = "regulator-lbee1usjyc-pdn"; 20 regulator-name = "vmmcsdio_fixed";
22 regulator-min-microvolt = <3300000>; 21 regulator-min-microvolt = <3300000>;
23 regulator-max-microvolt = <3300000>; 22 regulator-max-microvolt = <3300000>;
24 gpio = <&gpio5 10 GPIO_ACTIVE_HIGH>; /* gpio_138 - WIFI_PDN */
25 startup-delay-us = <10000>;
26 enable-active-high;
27 }; 23 };
28 24
29 /* Regulator to trigger the RESET_N_W signal of the Wifi module */ 25 mmc2_pwrseq: mmc2_pwrseq {
30 lbee1usjyc_reset_n_w: lbee1usjyc_reset_n_w { 26 compatible = "mmc-pwrseq-simple";
31 compatible = "regulator-fixed"; 27 reset-gpios = <&gpio5 11 GPIO_ACTIVE_LOW>, /* gpio_139 - RESET_N_W */
32 regulator-name = "regulator-lbee1usjyc-reset-n-w"; 28 <&gpio5 10 GPIO_ACTIVE_LOW>; /* gpio_138 - WIFI_PDN */
33 regulator-min-microvolt = <3300000>;
34 regulator-max-microvolt = <3300000>;
35 gpio = <&gpio5 11 GPIO_ACTIVE_HIGH>; /* gpio_139 - RESET_N_W */
36 enable-active-high;
37 }; 29 };
38}; 30};
39 31
@@ -62,8 +54,8 @@
62&mmc2 { 54&mmc2 {
63 pinctrl-names = "default"; 55 pinctrl-names = "default";
64 pinctrl-0 = <&mmc2_pins &lbee1usjyc_pins>; 56 pinctrl-0 = <&mmc2_pins &lbee1usjyc_pins>;
65 vmmc-supply = <&lbee1usjyc_pdn>; 57 vmmc-supply = <&vmmcsdio_fixed>;
66 vmmc_aux-supply = <&lbee1usjyc_reset_n_w>; 58 mmc-pwrseq = <&mmc2_pwrseq>;
67 bus-width = <4>; 59 bus-width = <4>;
68 non-removable; 60 non-removable;
69}; 61};
diff --git a/arch/arm/boot/dts/omap3-ldp.dts b/arch/arm/boot/dts/omap3-ldp.dts
index d2fab8c0d4f8..540163025dd3 100644
--- a/arch/arm/boot/dts/omap3-ldp.dts
+++ b/arch/arm/boot/dts/omap3-ldp.dts
@@ -35,63 +35,63 @@
35 label = "enter"; 35 label = "enter";
36 gpios = <&gpio4 5 GPIO_ACTIVE_LOW>; /* gpio101 */ 36 gpios = <&gpio4 5 GPIO_ACTIVE_LOW>; /* gpio101 */
37 linux,code = <KEY_ENTER>; 37 linux,code = <KEY_ENTER>;
38 gpio-key,wakeup; 38 wakeup-source;
39 }; 39 };
40 40
41 key_f1 { 41 key_f1 {
42 label = "f1"; 42 label = "f1";
43 gpios = <&gpio4 6 GPIO_ACTIVE_LOW>; /* gpio102 */ 43 gpios = <&gpio4 6 GPIO_ACTIVE_LOW>; /* gpio102 */
44 linux,code = <KEY_F1>; 44 linux,code = <KEY_F1>;
45 gpio-key,wakeup; 45 wakeup-source;
46 }; 46 };
47 47
48 key_f2 { 48 key_f2 {
49 label = "f2"; 49 label = "f2";
50 gpios = <&gpio4 7 GPIO_ACTIVE_LOW>; /* gpio103 */ 50 gpios = <&gpio4 7 GPIO_ACTIVE_LOW>; /* gpio103 */
51 linux,code = <KEY_F2>; 51 linux,code = <KEY_F2>;
52 gpio-key,wakeup; 52 wakeup-source;
53 }; 53 };
54 54
55 key_f3 { 55 key_f3 {
56 label = "f3"; 56 label = "f3";
57 gpios = <&gpio4 8 GPIO_ACTIVE_LOW>; /* gpio104 */ 57 gpios = <&gpio4 8 GPIO_ACTIVE_LOW>; /* gpio104 */
58 linux,code = <KEY_F3>; 58 linux,code = <KEY_F3>;
59 gpio-key,wakeup; 59 wakeup-source;
60 }; 60 };
61 61
62 key_f4 { 62 key_f4 {
63 label = "f4"; 63 label = "f4";
64 gpios = <&gpio4 9 GPIO_ACTIVE_LOW>; /* gpio105 */ 64 gpios = <&gpio4 9 GPIO_ACTIVE_LOW>; /* gpio105 */
65 linux,code = <KEY_F4>; 65 linux,code = <KEY_F4>;
66 gpio-key,wakeup; 66 wakeup-source;
67 }; 67 };
68 68
69 key_left { 69 key_left {
70 label = "left"; 70 label = "left";
71 gpios = <&gpio4 10 GPIO_ACTIVE_LOW>; /* gpio106 */ 71 gpios = <&gpio4 10 GPIO_ACTIVE_LOW>; /* gpio106 */
72 linux,code = <KEY_LEFT>; 72 linux,code = <KEY_LEFT>;
73 gpio-key,wakeup; 73 wakeup-source;
74 }; 74 };
75 75
76 key_right { 76 key_right {
77 label = "right"; 77 label = "right";
78 gpios = <&gpio4 11 GPIO_ACTIVE_LOW>; /* gpio107 */ 78 gpios = <&gpio4 11 GPIO_ACTIVE_LOW>; /* gpio107 */
79 linux,code = <KEY_RIGHT>; 79 linux,code = <KEY_RIGHT>;
80 gpio-key,wakeup; 80 wakeup-source;
81 }; 81 };
82 82
83 key_up { 83 key_up {
84 label = "up"; 84 label = "up";
85 gpios = <&gpio4 12 GPIO_ACTIVE_LOW>; /* gpio108 */ 85 gpios = <&gpio4 12 GPIO_ACTIVE_LOW>; /* gpio108 */
86 linux,code = <KEY_UP>; 86 linux,code = <KEY_UP>;
87 gpio-key,wakeup; 87 wakeup-source;
88 }; 88 };
89 89
90 key_down { 90 key_down {
91 label = "down"; 91 label = "down";
92 gpios = <&gpio4 13 GPIO_ACTIVE_LOW>; /* gpio109 */ 92 gpios = <&gpio4 13 GPIO_ACTIVE_LOW>; /* gpio109 */
93 linux,code = <KEY_DOWN>; 93 linux,code = <KEY_DOWN>;
94 gpio-key,wakeup; 94 wakeup-source;
95 }; 95 };
96 }; 96 };
97}; 97};
@@ -224,32 +224,32 @@
224&omap3_pmx_core { 224&omap3_pmx_core {
225 gpio_key_pins: pinmux_gpio_key_pins { 225 gpio_key_pins: pinmux_gpio_key_pins {
226 pinctrl-single,pins = < 226 pinctrl-single,pins = <
227 0xea (PIN_INPUT | MUX_MODE4) /* cam_d2.gpio_101 */ 227 OMAP3_CORE1_IOPAD(0x211a, PIN_INPUT | MUX_MODE4) /* cam_d2.gpio_101 */
228 0xec (PIN_INPUT | MUX_MODE4) /* cam_d3.gpio_102 */ 228 OMAP3_CORE1_IOPAD(0x211c, PIN_INPUT | MUX_MODE4) /* cam_d3.gpio_102 */
229 0xee (PIN_INPUT | MUX_MODE4) /* cam_d4.gpio_103 */ 229 OMAP3_CORE1_IOPAD(0x211e, PIN_INPUT | MUX_MODE4) /* cam_d4.gpio_103 */
230 0xf0 (PIN_INPUT | MUX_MODE4) /* cam_d5.gpio_104 */ 230 OMAP3_CORE1_IOPAD(0x2120, PIN_INPUT | MUX_MODE4) /* cam_d5.gpio_104 */
231 0xf2 (PIN_INPUT | MUX_MODE4) /* cam_d6.gpio_105 */ 231 OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE4) /* cam_d6.gpio_105 */
232 0xf4 (PIN_INPUT | MUX_MODE4) /* cam_d7.gpio_106 */ 232 OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE4) /* cam_d7.gpio_106 */
233 0xf6 (PIN_INPUT | MUX_MODE4) /* cam_d8.gpio_107 */ 233 OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT | MUX_MODE4) /* cam_d8.gpio_107 */
234 0xf8 (PIN_INPUT | MUX_MODE4) /* cam_d9.gpio_108 */ 234 OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT | MUX_MODE4) /* cam_d9.gpio_108 */
235 0xfa (PIN_INPUT | MUX_MODE4) /* cam_d10.gpio_109 */ 235 OMAP3_CORE1_IOPAD(0x212a, PIN_INPUT | MUX_MODE4) /* cam_d10.gpio_109 */
236 >; 236 >;
237 }; 237 };
238 238
239 musb_pins: pinmux_musb_pins { 239 musb_pins: pinmux_musb_pins {
240 pinctrl-single,pins = < 240 pinctrl-single,pins = <
241 0x172 (PIN_INPUT | MUX_MODE0) /* hsusb0_clk.hsusb0_clk */ 241 OMAP3_CORE1_IOPAD(0x21a2, PIN_INPUT | MUX_MODE0) /* hsusb0_clk.hsusb0_clk */
242 0x17a (PIN_INPUT | MUX_MODE0) /* hsusb0_data0.hsusb0_data0 */ 242 OMAP3_CORE1_IOPAD(0x21aa, PIN_INPUT | MUX_MODE0) /* hsusb0_data0.hsusb0_data0 */
243 0x17c (PIN_INPUT | MUX_MODE0) /* hsusb0_data1.hsusb0_data1 */ 243 OMAP3_CORE1_IOPAD(0x21ac, PIN_INPUT | MUX_MODE0) /* hsusb0_data1.hsusb0_data1 */
244 0x17e (PIN_INPUT | MUX_MODE0) /* hsusb0_data2.hsusb0_data2 */ 244 OMAP3_CORE1_IOPAD(0x21ae, PIN_INPUT | MUX_MODE0) /* hsusb0_data2.hsusb0_data2 */
245 0x180 (PIN_INPUT | MUX_MODE0) /* hsusb0_data3.hsusb0_data3 */ 245 OMAP3_CORE1_IOPAD(0x21b0, PIN_INPUT | MUX_MODE0) /* hsusb0_data3.hsusb0_data3 */
246 0x182 (PIN_INPUT | MUX_MODE0) /* hsusb0_data4.hsusb0_data4 */ 246 OMAP3_CORE1_IOPAD(0x21b2, PIN_INPUT | MUX_MODE0) /* hsusb0_data4.hsusb0_data4 */
247 0x184 (PIN_INPUT | MUX_MODE0) /* hsusb0_data5.hsusb0_data5 */ 247 OMAP3_CORE1_IOPAD(0x21b4, PIN_INPUT | MUX_MODE0) /* hsusb0_data5.hsusb0_data5 */
248 0x186 (PIN_INPUT | MUX_MODE0) /* hsusb0_data6.hsusb0_data6 */ 248 OMAP3_CORE1_IOPAD(0x21b6, PIN_INPUT | MUX_MODE0) /* hsusb0_data6.hsusb0_data6 */
249 0x188 (PIN_INPUT | MUX_MODE0) /* hsusb0_data7.hsusb0_data7 */ 249 OMAP3_CORE1_IOPAD(0x21b8, PIN_INPUT | MUX_MODE0) /* hsusb0_data7.hsusb0_data7 */
250 0x176 (PIN_INPUT | MUX_MODE0) /* hsusb0_dir.hsusb0_dir */ 250 OMAP3_CORE1_IOPAD(0x21a6, PIN_INPUT | MUX_MODE0) /* hsusb0_dir.hsusb0_dir */
251 0x178 (PIN_INPUT | MUX_MODE0) /* hsusb0_nxt.hsusb0_nxt */ 251 OMAP3_CORE1_IOPAD(0x21a8, PIN_INPUT | MUX_MODE0) /* hsusb0_nxt.hsusb0_nxt */
252 0x174 (PIN_OUTPUT | MUX_MODE0) /* hsusb0_stp.hsusb0_stp */ 252 OMAP3_CORE1_IOPAD(0x21a4, PIN_OUTPUT | MUX_MODE0) /* hsusb0_stp.hsusb0_stp */
253 >; 253 >;
254 }; 254 };
255 255
diff --git a/arch/arm/boot/dts/omap3-lilly-a83x.dtsi b/arch/arm/boot/dts/omap3-lilly-a83x.dtsi
index 57d7c93cc72b..93f8dfe20f13 100644
--- a/arch/arm/boot/dts/omap3-lilly-a83x.dtsi
+++ b/arch/arm/boot/dts/omap3-lilly-a83x.dtsi
@@ -327,7 +327,7 @@
327 ti,pressure-max = /bits/ 16 <255>; 327 ti,pressure-max = /bits/ 16 <255>;
328 ti,swap-xy; 328 ti,swap-xy;
329 329
330 linux,wakeup; 330 wakeup-source;
331 }; 331 };
332}; 332};
333 333
diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
index 5f5e0f3d5b64..74d8f7eb5563 100644
--- a/arch/arm/boot/dts/omap3-n900.dts
+++ b/arch/arm/boot/dts/omap3-n900.dts
@@ -67,28 +67,28 @@
67 gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* 110 */ 67 gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* 110 */
68 linux,input-type = <5>; /* EV_SW */ 68 linux,input-type = <5>; /* EV_SW */
69 linux,code = <0x09>; /* SW_CAMERA_LENS_COVER */ 69 linux,code = <0x09>; /* SW_CAMERA_LENS_COVER */
70 gpio-key,wakeup; 70 wakeup-source;
71 }; 71 };
72 72
73 camera_focus { 73 camera_focus {
74 label = "Camera Focus"; 74 label = "Camera Focus";
75 gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; /* 68 */ 75 gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; /* 68 */
76 linux,code = <0x210>; /* KEY_CAMERA_FOCUS */ 76 linux,code = <0x210>; /* KEY_CAMERA_FOCUS */
77 gpio-key,wakeup; 77 wakeup-source;
78 }; 78 };
79 79
80 camera_capture { 80 camera_capture {
81 label = "Camera Capture"; 81 label = "Camera Capture";
82 gpios = <&gpio3 5 GPIO_ACTIVE_LOW>; /* 69 */ 82 gpios = <&gpio3 5 GPIO_ACTIVE_LOW>; /* 69 */
83 linux,code = <0xd4>; /* KEY_CAMERA */ 83 linux,code = <0xd4>; /* KEY_CAMERA */
84 gpio-key,wakeup; 84 wakeup-source;
85 }; 85 };
86 86
87 lock_button { 87 lock_button {
88 label = "Lock Button"; 88 label = "Lock Button";
89 gpios = <&gpio4 17 GPIO_ACTIVE_LOW>; /* 113 */ 89 gpios = <&gpio4 17 GPIO_ACTIVE_LOW>; /* 113 */
90 linux,code = <0x98>; /* KEY_SCREENLOCK */ 90 linux,code = <0x98>; /* KEY_SCREENLOCK */
91 gpio-key,wakeup; 91 wakeup-source;
92 }; 92 };
93 93
94 keypad_slide { 94 keypad_slide {
@@ -96,7 +96,7 @@
96 gpios = <&gpio3 7 GPIO_ACTIVE_LOW>; /* 71 */ 96 gpios = <&gpio3 7 GPIO_ACTIVE_LOW>; /* 71 */
97 linux,input-type = <5>; /* EV_SW */ 97 linux,input-type = <5>; /* EV_SW */
98 linux,code = <0x0a>; /* SW_KEYPAD_SLIDE */ 98 linux,code = <0x0a>; /* SW_KEYPAD_SLIDE */
99 gpio-key,wakeup; 99 wakeup-source;
100 }; 100 };
101 101
102 proximity_sensor { 102 proximity_sensor {
@@ -149,15 +149,15 @@
149 149
150 uart2_pins: pinmux_uart2_pins { 150 uart2_pins: pinmux_uart2_pins {
151 pinctrl-single,pins = < 151 pinctrl-single,pins = <
152 0x14a (PIN_INPUT | MUX_MODE0) /* uart2_rx */ 152 OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx */
153 0x148 (PIN_OUTPUT | MUX_MODE0) /* uart2_tx */ 153 OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0) /* uart2_tx */
154 >; 154 >;
155 }; 155 };
156 156
157 uart3_pins: pinmux_uart3_pins { 157 uart3_pins: pinmux_uart3_pins {
158 pinctrl-single,pins = < 158 pinctrl-single,pins = <
159 0x16e (PIN_INPUT | MUX_MODE0) /* uart3_rx */ 159 OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0) /* uart3_rx */
160 0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx */ 160 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx */
161 >; 161 >;
162 }; 162 };
163 163
@@ -198,22 +198,22 @@
198 198
199 i2c1_pins: pinmux_i2c1_pins { 199 i2c1_pins: pinmux_i2c1_pins {
200 pinctrl-single,pins = < 200 pinctrl-single,pins = <
201 0x18a (PIN_INPUT | MUX_MODE0) /* i2c1_scl */ 201 OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT | MUX_MODE0) /* i2c1_scl */
202 0x18c (PIN_INPUT | MUX_MODE0) /* i2c1_sda */ 202 OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT | MUX_MODE0) /* i2c1_sda */
203 >; 203 >;
204 }; 204 };
205 205
206 i2c2_pins: pinmux_i2c2_pins { 206 i2c2_pins: pinmux_i2c2_pins {
207 pinctrl-single,pins = < 207 pinctrl-single,pins = <
208 0x18e (PIN_INPUT | MUX_MODE0) /* i2c2_scl */ 208 OMAP3_CORE1_IOPAD(0x21be, PIN_INPUT | MUX_MODE0) /* i2c2_scl */
209 0x190 (PIN_INPUT | MUX_MODE0) /* i2c2_sda */ 209 OMAP3_CORE1_IOPAD(0x21c0, PIN_INPUT | MUX_MODE0) /* i2c2_sda */
210 >; 210 >;
211 }; 211 };
212 212
213 i2c3_pins: pinmux_i2c3_pins { 213 i2c3_pins: pinmux_i2c3_pins {
214 pinctrl-single,pins = < 214 pinctrl-single,pins = <
215 0x192 (PIN_INPUT | MUX_MODE0) /* i2c3_scl */ 215 OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT | MUX_MODE0) /* i2c3_scl */
216 0x194 (PIN_INPUT | MUX_MODE0) /* i2c3_sda */ 216 OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT | MUX_MODE0) /* i2c3_sda */
217 >; 217 >;
218 }; 218 };
219 219
@@ -225,85 +225,85 @@
225 225
226 mcspi4_pins: pinmux_mcspi4_pins { 226 mcspi4_pins: pinmux_mcspi4_pins {
227 pinctrl-single,pins = < 227 pinctrl-single,pins = <
228 0x15c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_clk */ 228 OMAP3_CORE1_IOPAD(0x218c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_clk */
229 0x162 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_somi */ 229 OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_somi */
230 0x160 (PIN_OUTPUT | MUX_MODE1) /* mcspi4_simo */ 230 OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE1) /* mcspi4_simo */
231 0x166 (PIN_OUTPUT | MUX_MODE1) /* mcspi4_cs0 */ 231 OMAP3_CORE1_IOPAD(0x2196, PIN_OUTPUT | MUX_MODE1) /* mcspi4_cs0 */
232 >; 232 >;
233 }; 233 };
234 234
235 mmc1_pins: pinmux_mmc1_pins { 235 mmc1_pins: pinmux_mmc1_pins {
236 pinctrl-single,pins = < 236 pinctrl-single,pins = <
237 0x114 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk */ 237 OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk */
238 0x116 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd */ 238 OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd */
239 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0 */ 239 OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0 */
240 0x11a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1 */ 240 OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1 */
241 0x11c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2 */ 241 OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2 */
242 0x11e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3 */ 242 OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3 */
243 >; 243 >;
244 }; 244 };
245 245
246 mmc2_pins: pinmux_mmc2_pins { 246 mmc2_pins: pinmux_mmc2_pins {
247 pinctrl-single,pins = < 247 pinctrl-single,pins = <
248 0x128 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk */ 248 OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk */
249 0x12a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd */ 249 OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd */
250 0x12c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0 */ 250 OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0 */
251 0x12e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1 */ 251 OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1 */
252 0x130 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2 */ 252 OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2 */
253 0x132 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3 */ 253 OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3 */
254 0x134 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat4 */ 254 OMAP3_CORE1_IOPAD(0x2164, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat4 */
255 0x136 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat5 */ 255 OMAP3_CORE1_IOPAD(0x2166, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat5 */
256 0x138 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat6 */ 256 OMAP3_CORE1_IOPAD(0x2168, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat6 */
257 0x13a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat7 */ 257 OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat7 */
258 >; 258 >;
259 }; 259 };
260 260
261 acx565akm_pins: pinmux_acx565akm_pins { 261 acx565akm_pins: pinmux_acx565akm_pins {
262 pinctrl-single,pins = < 262 pinctrl-single,pins = <
263 0x0d4 (PIN_OUTPUT | MUX_MODE4) /* RX51_LCD_RESET_GPIO */ 263 OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE4) /* RX51_LCD_RESET_GPIO */
264 >; 264 >;
265 }; 265 };
266 266
267 dss_sdi_pins: pinmux_dss_sdi_pins { 267 dss_sdi_pins: pinmux_dss_sdi_pins {
268 pinctrl-single,pins = < 268 pinctrl-single,pins = <
269 0x0c0 (PIN_OUTPUT | MUX_MODE1) /* dss_data10.sdi_dat1n */ 269 OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE1) /* dss_data10.sdi_dat1n */
270 0x0c2 (PIN_OUTPUT | MUX_MODE1) /* dss_data11.sdi_dat1p */ 270 OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE1) /* dss_data11.sdi_dat1p */
271 0x0c4 (PIN_OUTPUT | MUX_MODE1) /* dss_data12.sdi_dat2n */ 271 OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE1) /* dss_data12.sdi_dat2n */
272 0x0c6 (PIN_OUTPUT | MUX_MODE1) /* dss_data13.sdi_dat2p */ 272 OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE1) /* dss_data13.sdi_dat2p */
273 273
274 0x0d8 (PIN_OUTPUT | MUX_MODE1) /* dss_data22.sdi_clkp */ 274 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE1) /* dss_data22.sdi_clkp */
275 0x0da (PIN_OUTPUT | MUX_MODE1) /* dss_data23.sdi_clkn */ 275 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE1) /* dss_data23.sdi_clkn */
276 >; 276 >;
277 }; 277 };
278 278
279 wl1251_pins: pinmux_wl1251 { 279 wl1251_pins: pinmux_wl1251 {
280 pinctrl-single,pins = < 280 pinctrl-single,pins = <
281 0x0ce (PIN_OUTPUT | MUX_MODE4) /* gpio 87 => wl1251 enable */ 281 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE4) /* gpio 87 => wl1251 enable */
282 0x05a (PIN_INPUT | MUX_MODE4) /* gpio 42 => wl1251 irq */ 282 OMAP3_CORE1_IOPAD(0x208a, PIN_INPUT | MUX_MODE4) /* gpio 42 => wl1251 irq */
283 >; 283 >;
284 }; 284 };
285 285
286 ssi_pins: pinmux_ssi { 286 ssi_pins: pinmux_ssi {
287 pinctrl-single,pins = < 287 pinctrl-single,pins = <
288 0x150 (PIN_INPUT_PULLUP | MUX_MODE1) /* ssi1_rdy_tx */ 288 OMAP3_CORE1_IOPAD(0x2180, PIN_INPUT_PULLUP | MUX_MODE1) /* ssi1_rdy_tx */
289 0x14e (PIN_OUTPUT | MUX_MODE1) /* ssi1_flag_tx */ 289 OMAP3_CORE1_IOPAD(0x217e, PIN_OUTPUT | MUX_MODE1) /* ssi1_flag_tx */
290 0x152 (PIN_INPUT | WAKEUP_EN | MUX_MODE4) /* ssi1_wake_tx (cawake) */ 290 OMAP3_CORE1_IOPAD(0x2182, PIN_INPUT | WAKEUP_EN | MUX_MODE4) /* ssi1_wake_tx (cawake) */
291 0x14c (PIN_OUTPUT | MUX_MODE1) /* ssi1_dat_tx */ 291 OMAP3_CORE1_IOPAD(0x217c, PIN_OUTPUT | MUX_MODE1) /* ssi1_dat_tx */
292 0x154 (PIN_INPUT | MUX_MODE1) /* ssi1_dat_rx */ 292 OMAP3_CORE1_IOPAD(0x2184, PIN_INPUT | MUX_MODE1) /* ssi1_dat_rx */
293 0x156 (PIN_INPUT | MUX_MODE1) /* ssi1_flag_rx */ 293 OMAP3_CORE1_IOPAD(0x2186, PIN_INPUT | MUX_MODE1) /* ssi1_flag_rx */
294 0x158 (PIN_OUTPUT | MUX_MODE1) /* ssi1_rdy_rx */ 294 OMAP3_CORE1_IOPAD(0x2188, PIN_OUTPUT | MUX_MODE1) /* ssi1_rdy_rx */
295 0x15a (PIN_OUTPUT | MUX_MODE1) /* ssi1_wake */ 295 OMAP3_CORE1_IOPAD(0x218a, PIN_OUTPUT | MUX_MODE1) /* ssi1_wake */
296 >; 296 >;
297 }; 297 };
298 298
299 modem_pins: pinmux_modem { 299 modem_pins: pinmux_modem {
300 pinctrl-single,pins = < 300 pinctrl-single,pins = <
301 0x0ac (PIN_OUTPUT | MUX_MODE4) /* gpio 70 => cmt_apeslpx */ 301 OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE4) /* gpio 70 => cmt_apeslpx */
302 0x0b0 (PIN_INPUT | WAKEUP_EN | MUX_MODE4) /* gpio 72 => ape_rst_rq */ 302 OMAP3_CORE1_IOPAD(0x20e0, PIN_INPUT | WAKEUP_EN | MUX_MODE4) /* gpio 72 => ape_rst_rq */
303 0x0b2 (PIN_OUTPUT | MUX_MODE4) /* gpio 73 => cmt_rst_rq */ 303 OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE4) /* gpio 73 => cmt_rst_rq */
304 0x0b4 (PIN_OUTPUT | MUX_MODE4) /* gpio 74 => cmt_en */ 304 OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE4) /* gpio 74 => cmt_en */
305 0x0b6 (PIN_OUTPUT | MUX_MODE4) /* gpio 75 => cmt_rst */ 305 OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE4) /* gpio 75 => cmt_rst */
306 0x15e (PIN_OUTPUT | MUX_MODE4) /* gpio 157 => cmt_bsi */ 306 OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4) /* gpio 157 => cmt_bsi */
307 >; 307 >;
308 }; 308 };
309}; 309};
diff --git a/arch/arm/boot/dts/omap3-n950-n9.dtsi b/arch/arm/boot/dts/omap3-n950-n9.dtsi
index e9ee1df0e467..a2c2b8d8dd2c 100644
--- a/arch/arm/boot/dts/omap3-n950-n9.dtsi
+++ b/arch/arm/boot/dts/omap3-n950-n9.dtsi
@@ -36,12 +36,12 @@
36&omap3_pmx_core { 36&omap3_pmx_core {
37 mmc2_pins: pinmux_mmc2_pins { 37 mmc2_pins: pinmux_mmc2_pins {
38 pinctrl-single,pins = < 38 pinctrl-single,pins = <
39 0x128 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk */ 39 OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk */
40 0x12a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd */ 40 OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd */
41 0x12c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0 */ 41 OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0 */
42 0x12e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1 */ 42 OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1 */
43 0x130 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2 */ 43 OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2 */
44 0x132 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3 */ 44 OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3 */
45 >; 45 >;
46 }; 46 };
47}; 47};
diff --git a/arch/arm/boot/dts/omap3-overo-alto35-common.dtsi b/arch/arm/boot/dts/omap3-overo-alto35-common.dtsi
index 7aae8fb82c1f..3b3a75997f81 100644
--- a/arch/arm/boot/dts/omap3-overo-alto35-common.dtsi
+++ b/arch/arm/boot/dts/omap3-overo-alto35-common.dtsi
@@ -48,7 +48,7 @@
48 label = "button0"; 48 label = "button0";
49 linux,code = <BTN_0>; 49 linux,code = <BTN_0>;
50 gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; /* gpio_10 */ 50 gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; /* gpio_10 */
51 gpio-key,wakeup; 51 wakeup-source;
52 }; 52 };
53 }; 53 };
54}; 54};
diff --git a/arch/arm/boot/dts/omap3-overo-chestnut43-common.dtsi b/arch/arm/boot/dts/omap3-overo-chestnut43-common.dtsi
index 17b82f82638a..7df27926ead2 100644
--- a/arch/arm/boot/dts/omap3-overo-chestnut43-common.dtsi
+++ b/arch/arm/boot/dts/omap3-overo-chestnut43-common.dtsi
@@ -41,13 +41,13 @@
41 label = "button0"; 41 label = "button0";
42 linux,code = <BTN_0>; 42 linux,code = <BTN_0>;
43 gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; /* gpio_23 */ 43 gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; /* gpio_23 */
44 gpio-key,wakeup; 44 wakeup-source;
45 }; 45 };
46 button1@14 { 46 button1@14 {
47 label = "button1"; 47 label = "button1";
48 linux,code = <BTN_1>; 48 linux,code = <BTN_1>;
49 gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; /* gpio_14 */ 49 gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; /* gpio_14 */
50 gpio-key,wakeup; 50 wakeup-source;
51 }; 51 };
52 }; 52 };
53}; 53};
diff --git a/arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi b/arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi
index b09cedf66117..6314da2580f5 100644
--- a/arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi
+++ b/arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi
@@ -161,6 +161,6 @@
161 ti,x-plate-ohms = /bits/ 16 <180>; 161 ti,x-plate-ohms = /bits/ 16 <180>;
162 ti,pressure-max = /bits/ 16 <255>; 162 ti,pressure-max = /bits/ 16 <255>;
163 163
164 linux,wakeup; 164 wakeup-source;
165 }; 165 };
166}; 166};
diff --git a/arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi b/arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi
index 5f979590571b..7e3fe85a8ad9 100644
--- a/arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi
+++ b/arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi
@@ -172,7 +172,7 @@
172 ti,x-plate-ohms = /bits/ 16 <180>; 172 ti,x-plate-ohms = /bits/ 16 <180>;
173 ti,pressure-max = /bits/ 16 <255>; 173 ti,pressure-max = /bits/ 16 <255>;
174 174
175 linux,wakeup; 175 wakeup-source;
176 }; 176 };
177}; 177};
178 178
diff --git a/arch/arm/boot/dts/omap3-overo-gallop43-common.dtsi b/arch/arm/boot/dts/omap3-overo-gallop43-common.dtsi
index 49d2254a99b0..250cc7fe5d5e 100644
--- a/arch/arm/boot/dts/omap3-overo-gallop43-common.dtsi
+++ b/arch/arm/boot/dts/omap3-overo-gallop43-common.dtsi
@@ -41,13 +41,13 @@
41 label = "button0"; 41 label = "button0";
42 linux,code = <BTN_0>; 42 linux,code = <BTN_0>;
43 gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; /* gpio_23 */ 43 gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; /* gpio_23 */
44 gpio-key,wakeup; 44 wakeup-source;
45 }; 45 };
46 button1@14 { 46 button1@14 {
47 label = "button1"; 47 label = "button1";
48 linux,code = <BTN_1>; 48 linux,code = <BTN_1>;
49 gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; /* gpio_14 */ 49 gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; /* gpio_14 */
50 gpio-key,wakeup; 50 wakeup-source;
51 }; 51 };
52 }; 52 };
53}; 53};
diff --git a/arch/arm/boot/dts/omap3-overo-palo35-common.dtsi b/arch/arm/boot/dts/omap3-overo-palo35-common.dtsi
index 680d7262399c..8df7ec35d17d 100644
--- a/arch/arm/boot/dts/omap3-overo-palo35-common.dtsi
+++ b/arch/arm/boot/dts/omap3-overo-palo35-common.dtsi
@@ -41,13 +41,13 @@
41 label = "button0"; 41 label = "button0";
42 linux,code = <BTN_0>; 42 linux,code = <BTN_0>;
43 gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; /* gpio_23 */ 43 gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; /* gpio_23 */
44 gpio-key,wakeup; 44 wakeup-source;
45 }; 45 };
46 button1@14 { 46 button1@14 {
47 label = "button1"; 47 label = "button1";
48 linux,code = <BTN_1>; 48 linux,code = <BTN_1>;
49 gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; /* gpio_14 */ 49 gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; /* gpio_14 */
50 gpio-key,wakeup; 50 wakeup-source;
51 }; 51 };
52 }; 52 };
53}; 53};
diff --git a/arch/arm/boot/dts/omap3-overo-palo43-common.dtsi b/arch/arm/boot/dts/omap3-overo-palo43-common.dtsi
index 087aedf5b902..0ea2c451c809 100644
--- a/arch/arm/boot/dts/omap3-overo-palo43-common.dtsi
+++ b/arch/arm/boot/dts/omap3-overo-palo43-common.dtsi
@@ -41,13 +41,13 @@
41 label = "button0"; 41 label = "button0";
42 linux,code = <BTN_0>; 42 linux,code = <BTN_0>;
43 gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; /* gpio_23 */ 43 gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; /* gpio_23 */
44 gpio-key,wakeup; 44 wakeup-source;
45 }; 45 };
46 button1@14 { 46 button1@14 {
47 label = "button1"; 47 label = "button1";
48 linux,code = <BTN_1>; 48 linux,code = <BTN_1>;
49 gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; /* gpio_14 */ 49 gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; /* gpio_14 */
50 gpio-key,wakeup; 50 wakeup-source;
51 }; 51 };
52 }; 52 };
53}; 53};
diff --git a/arch/arm/boot/dts/omap3-pandora-common.dtsi b/arch/arm/boot/dts/omap3-pandora-common.dtsi
index cfe140c657e7..13e9d1f987af 100644
--- a/arch/arm/boot/dts/omap3-pandora-common.dtsi
+++ b/arch/arm/boot/dts/omap3-pandora-common.dtsi
@@ -84,112 +84,112 @@
84 label = "up"; 84 label = "up";
85 linux,code = <KEY_UP>; 85 linux,code = <KEY_UP>;
86 gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* GPIO_110 */ 86 gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* GPIO_110 */
87 gpio-key,wakeup; 87 wakeup-source;
88 }; 88 };
89 89
90 down-button { 90 down-button {
91 label = "down"; 91 label = "down";
92 linux,code = <KEY_DOWN>; 92 linux,code = <KEY_DOWN>;
93 gpios = <&gpio4 7 GPIO_ACTIVE_LOW>; /* GPIO_103 */ 93 gpios = <&gpio4 7 GPIO_ACTIVE_LOW>; /* GPIO_103 */
94 gpio-key,wakeup; 94 wakeup-source;
95 }; 95 };
96 96
97 left-button { 97 left-button {
98 label = "left"; 98 label = "left";
99 linux,code = <KEY_LEFT>; 99 linux,code = <KEY_LEFT>;
100 gpios = <&gpio4 0 GPIO_ACTIVE_LOW>; /* GPIO_96 */ 100 gpios = <&gpio4 0 GPIO_ACTIVE_LOW>; /* GPIO_96 */
101 gpio-key,wakeup; 101 wakeup-source;
102 }; 102 };
103 103
104 right-button { 104 right-button {
105 label = "right"; 105 label = "right";
106 linux,code = <KEY_RIGHT>; 106 linux,code = <KEY_RIGHT>;
107 gpios = <&gpio4 2 GPIO_ACTIVE_LOW>; /* GPIO_98 */ 107 gpios = <&gpio4 2 GPIO_ACTIVE_LOW>; /* GPIO_98 */
108 gpio-key,wakeup; 108 wakeup-source;
109 }; 109 };
110 110
111 pageup-button { 111 pageup-button {
112 label = "game 1"; 112 label = "game 1";
113 linux,code = <KEY_PAGEUP>; 113 linux,code = <KEY_PAGEUP>;
114 gpios = <&gpio4 13 GPIO_ACTIVE_LOW>; /* GPIO_109 */ 114 gpios = <&gpio4 13 GPIO_ACTIVE_LOW>; /* GPIO_109 */
115 gpio-key,wakeup; 115 wakeup-source;
116 }; 116 };
117 117
118 pagedown-button { 118 pagedown-button {
119 label = "game 3"; 119 label = "game 3";
120 linux,code = <KEY_PAGEDOWN>; 120 linux,code = <KEY_PAGEDOWN>;
121 gpios = <&gpio4 10 GPIO_ACTIVE_LOW>; /* GPIO_106 */ 121 gpios = <&gpio4 10 GPIO_ACTIVE_LOW>; /* GPIO_106 */
122 gpio-key,wakeup; 122 wakeup-source;
123 }; 123 };
124 124
125 home-button { 125 home-button {
126 label = "game 4"; 126 label = "game 4";
127 linux,code = <KEY_HOME>; 127 linux,code = <KEY_HOME>;
128 gpios = <&gpio4 5 GPIO_ACTIVE_LOW>; /* GPIO_101 */ 128 gpios = <&gpio4 5 GPIO_ACTIVE_LOW>; /* GPIO_101 */
129 gpio-key,wakeup; 129 wakeup-source;
130 }; 130 };
131 131
132 end-button { 132 end-button {
133 label = "game 2"; 133 label = "game 2";
134 linux,code = <KEY_END>; 134 linux,code = <KEY_END>;
135 gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; /* GPIO_111 */ 135 gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; /* GPIO_111 */
136 gpio-key,wakeup; 136 wakeup-source;
137 }; 137 };
138 138
139 right-shift { 139 right-shift {
140 label = "l"; 140 label = "l";
141 linux,code = <KEY_RIGHTSHIFT>; 141 linux,code = <KEY_RIGHTSHIFT>;
142 gpios = <&gpio4 6 GPIO_ACTIVE_LOW>; /* GPIO_102 */ 142 gpios = <&gpio4 6 GPIO_ACTIVE_LOW>; /* GPIO_102 */
143 gpio-key,wakeup; 143 wakeup-source;
144 }; 144 };
145 145
146 kp-plus { 146 kp-plus {
147 label = "l2"; 147 label = "l2";
148 linux,code = <KEY_KPPLUS>; 148 linux,code = <KEY_KPPLUS>;
149 gpios = <&gpio4 1 GPIO_ACTIVE_LOW>; /* GPIO_97 */ 149 gpios = <&gpio4 1 GPIO_ACTIVE_LOW>; /* GPIO_97 */
150 gpio-key,wakeup; 150 wakeup-source;
151 }; 151 };
152 152
153 right-ctrl { 153 right-ctrl {
154 label = "r"; 154 label = "r";
155 linux,code = <KEY_RIGHTCTRL>; 155 linux,code = <KEY_RIGHTCTRL>;
156 gpios = <&gpio4 9 GPIO_ACTIVE_LOW>; /* GPIO_105 */ 156 gpios = <&gpio4 9 GPIO_ACTIVE_LOW>; /* GPIO_105 */
157 gpio-key,wakeup; 157 wakeup-source;
158 }; 158 };
159 159
160 kp-minus { 160 kp-minus {
161 label = "r2"; 161 label = "r2";
162 linux,code = <KEY_KPMINUS>; 162 linux,code = <KEY_KPMINUS>;
163 gpios = <&gpio4 11 GPIO_ACTIVE_LOW>; /* GPIO_107 */ 163 gpios = <&gpio4 11 GPIO_ACTIVE_LOW>; /* GPIO_107 */
164 gpio-key,wakeup; 164 wakeup-source;
165 }; 165 };
166 166
167 left-ctrl { 167 left-ctrl {
168 label = "ctrl"; 168 label = "ctrl";
169 linux,code = <KEY_LEFTCTRL>; 169 linux,code = <KEY_LEFTCTRL>;
170 gpios = <&gpio4 8 GPIO_ACTIVE_LOW>; /* GPIO_104 */ 170 gpios = <&gpio4 8 GPIO_ACTIVE_LOW>; /* GPIO_104 */
171 gpio-key,wakeup; 171 wakeup-source;
172 }; 172 };
173 173
174 menu { 174 menu {
175 label = "menu"; 175 label = "menu";
176 linux,code = <KEY_MENU>; 176 linux,code = <KEY_MENU>;
177 gpios = <&gpio4 3 GPIO_ACTIVE_LOW>; /* GPIO_99 */ 177 gpios = <&gpio4 3 GPIO_ACTIVE_LOW>; /* GPIO_99 */
178 gpio-key,wakeup; 178 wakeup-source;
179 }; 179 };
180 180
181 hold { 181 hold {
182 label = "hold"; 182 label = "hold";
183 linux,code = <KEY_COFFEE>; 183 linux,code = <KEY_COFFEE>;
184 gpios = <&gpio6 16 GPIO_ACTIVE_LOW>; /* GPIO_176 */ 184 gpios = <&gpio6 16 GPIO_ACTIVE_LOW>; /* GPIO_176 */
185 gpio-key,wakeup; 185 wakeup-source;
186 }; 186 };
187 187
188 left-alt { 188 left-alt {
189 label = "alt"; 189 label = "alt";
190 linux,code = <KEY_LEFTALT>; 190 linux,code = <KEY_LEFTALT>;
191 gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>; /* GPIO_100 */ 191 gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>; /* GPIO_100 */
192 gpio-key,wakeup; 192 wakeup-source;
193 }; 193 };
194 194
195 lid { 195 lid {
@@ -617,7 +617,7 @@
617 ti,x-plate-ohms = /bits/ 16 <40>; 617 ti,x-plate-ohms = /bits/ 16 <40>;
618 ti,pressure-max = /bits/ 16 <255>; 618 ti,pressure-max = /bits/ 16 <255>;
619 619
620 linux,wakeup; 620 wakeup-source;
621 }; 621 };
622 622
623 lcd: lcd@1 { 623 lcd: lcd@1 {
diff --git a/arch/arm/boot/dts/omap3-panel-sharp-ls037v7dw01.dtsi b/arch/arm/boot/dts/omap3-panel-sharp-ls037v7dw01.dtsi
index f4b1a61853e3..157345bb8e79 100644
--- a/arch/arm/boot/dts/omap3-panel-sharp-ls037v7dw01.dtsi
+++ b/arch/arm/boot/dts/omap3-panel-sharp-ls037v7dw01.dtsi
@@ -66,6 +66,6 @@
66 ti,x-plate-ohms = /bits/ 16 <40>; 66 ti,x-plate-ohms = /bits/ 16 <40>;
67 ti,pressure-max = /bits/ 16 <255>; 67 ti,pressure-max = /bits/ 16 <255>;
68 ti,swap-xy; 68 ti,swap-xy;
69 linux,wakeup; 69 wakeup-source;
70 }; 70 };
71}; 71};
diff --git a/arch/arm/boot/dts/omap3-zoom3.dts b/arch/arm/boot/dts/omap3-zoom3.dts
index 7bc5fdd6981e..f19170bdcc1f 100644
--- a/arch/arm/boot/dts/omap3-zoom3.dts
+++ b/arch/arm/boot/dts/omap3-zoom3.dts
@@ -54,27 +54,27 @@
54 /* REVISIT: twl gpio0 is mmc0_cd */ 54 /* REVISIT: twl gpio0 is mmc0_cd */
55 mmc1_pins: pinmux_mmc1_pins { 55 mmc1_pins: pinmux_mmc1_pins {
56 pinctrl-single,pins = < 56 pinctrl-single,pins = <
57 0x114 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */ 57 OMAP3_CORE1_IOPAD(0x2144, PIN_OUTPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */
58 0x116 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */ 58 OMAP3_CORE1_IOPAD(0x2146, PIN_OUTPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */
59 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */ 59 OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */
60 0x11a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */ 60 OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */
61 0x11c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */ 61 OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */
62 0x11e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */ 62 OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */
63 >; 63 >;
64 }; 64 };
65 65
66 mmc2_pins: pinmux_mmc2_pins { 66 mmc2_pins: pinmux_mmc2_pins {
67 pinctrl-single,pins = < 67 pinctrl-single,pins = <
68 0x128 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk.sdmmc2_clk */ 68 OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk.sdmmc2_clk */
69 0x12a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd.sdmmc2_cmd */ 69 OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd.sdmmc2_cmd */
70 0x12c (PIN_INPUT | MUX_MODE0) /* sdmmc2_dat0.sdmmc2_dat0 */ 70 OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT | MUX_MODE0) /* sdmmc2_dat0.sdmmc2_dat0 */
71 0x12e (PIN_INPUT | MUX_MODE0) /* sdmmc2_dat1.sdmmc2_dat1 */ 71 OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT | MUX_MODE0) /* sdmmc2_dat1.sdmmc2_dat1 */
72 0x130 (PIN_INPUT | MUX_MODE0) /* sdmmc2_dat2.sdmmc2_dat2 */ 72 OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT | MUX_MODE0) /* sdmmc2_dat2.sdmmc2_dat2 */
73 0x132 (PIN_INPUT | MUX_MODE0) /* sdmmc2_dat3.sdmmc2_dat3 */ 73 OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT | MUX_MODE0) /* sdmmc2_dat3.sdmmc2_dat3 */
74 0x134 (PIN_INPUT | MUX_MODE0) /* sdmmc2_dat4.sdmmc2_dat4 */ 74 OMAP3_CORE1_IOPAD(0x2164, PIN_INPUT | MUX_MODE0) /* sdmmc2_dat4.sdmmc2_dat4 */
75 0x136 (PIN_INPUT | MUX_MODE0) /* sdmmc2_dat5.sdmmc2_dat5 */ 75 OMAP3_CORE1_IOPAD(0x2166, PIN_INPUT | MUX_MODE0) /* sdmmc2_dat5.sdmmc2_dat5 */
76 0x138 (PIN_INPUT | MUX_MODE0) /* sdmmc2_dat6.sdmmc2_dat6 */ 76 OMAP3_CORE1_IOPAD(0x2168, PIN_INPUT | MUX_MODE0) /* sdmmc2_dat6.sdmmc2_dat6 */
77 0x13a (PIN_INPUT | MUX_MODE0) /* sdmmc2_dat7.sdmmc2_dat7 */ 77 OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT | MUX_MODE0) /* sdmmc2_dat7.sdmmc2_dat7 */
78 >; 78 >;
79 }; 79 };
80 80
@@ -87,35 +87,35 @@
87 87
88 uart1_pins: pinmux_uart1_pins { 88 uart1_pins: pinmux_uart1_pins {
89 pinctrl-single,pins = < 89 pinctrl-single,pins = <
90 0x150 (PIN_INPUT | MUX_MODE0) /* uart1_cts.uart1_cts */ 90 OMAP3_CORE1_IOPAD(0x2180, PIN_INPUT | MUX_MODE0) /* uart1_cts.uart1_cts */
91 0x14e (PIN_OUTPUT | MUX_MODE0) /* uart1_rts.uart1_rts */ 91 OMAP3_CORE1_IOPAD(0x217e, PIN_OUTPUT | MUX_MODE0) /* uart1_rts.uart1_rts */
92 0x152 (WAKEUP_EN | PIN_INPUT | MUX_MODE0) /* uart1_rx.uart1_rx */ 92 OMAP3_CORE1_IOPAD(0x2182, WAKEUP_EN | PIN_INPUT | MUX_MODE0) /* uart1_rx.uart1_rx */
93 0x14c (PIN_OUTPUT | MUX_MODE0) /* uart1_tx.uart1_tx */ 93 OMAP3_CORE1_IOPAD(0x217c, PIN_OUTPUT | MUX_MODE0) /* uart1_tx.uart1_tx */
94 >; 94 >;
95 }; 95 };
96 96
97 uart2_pins: pinmux_uart2_pins { 97 uart2_pins: pinmux_uart2_pins {
98 pinctrl-single,pins = < 98 pinctrl-single,pins = <
99 0x144 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_cts.uart2_cts */ 99 OMAP3_CORE1_IOPAD(0x2174, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_cts.uart2_cts */
100 0x146 (PIN_OUTPUT | MUX_MODE0) /* uart2_rts.uart2_rts */ 100 OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT | MUX_MODE0) /* uart2_rts.uart2_rts */
101 0x14a (WAKEUP_EN | PIN_INPUT | MUX_MODE0) /* uart2_rx.uart2_rx */ 101 OMAP3_CORE1_IOPAD(0x217a, WAKEUP_EN | PIN_INPUT | MUX_MODE0) /* uart2_rx.uart2_rx */
102 0x148 (PIN_OUTPUT | MUX_MODE0) /* uart2_tx.uart2_tx */ 102 OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0) /* uart2_tx.uart2_tx */
103 >; 103 >;
104 }; 104 };
105 105
106 uart3_pins: pinmux_uart3_pins { 106 uart3_pins: pinmux_uart3_pins {
107 pinctrl-single,pins = < 107 pinctrl-single,pins = <
108 0x16a (PIN_INPUT_PULLDOWN | MUX_MODE0) /* uart3_cts_rctx.uart3_cts_rctx */ 108 OMAP3_CORE1_IOPAD(0x219a, PIN_INPUT_PULLDOWN | MUX_MODE0) /* uart3_cts_rctx.uart3_cts_rctx */
109 0x16c (PIN_OUTPUT | MUX_MODE0) /* uart3_rts_sd.uart3_rts_sd */ 109 OMAP3_CORE1_IOPAD(0x219c, PIN_OUTPUT | MUX_MODE0) /* uart3_rts_sd.uart3_rts_sd */
110 0x16e (WAKEUP_EN | PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */ 110 OMAP3_CORE1_IOPAD(0x219e, WAKEUP_EN | PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
111 0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */ 111 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
112 >; 112 >;
113 }; 113 };
114 114
115 /* wl12xx GPIO output for WLAN_EN */ 115 /* wl12xx GPIO output for WLAN_EN */
116 wl12xx_gpio: pinmux_wl12xx_gpio { 116 wl12xx_gpio: pinmux_wl12xx_gpio {
117 pinctrl-single,pins = < 117 pinctrl-single,pins = <
118 0xea (PIN_OUTPUT| MUX_MODE4) /* cam_d2.gpio_101 */ 118 OMAP3_CORE1_IOPAD(0x211a, PIN_OUTPUT| MUX_MODE4) /* cam_d2.gpio_101 */
119 >; 119 >;
120 }; 120 };
121}; 121};
@@ -135,7 +135,7 @@
135&omap3_pmx_wkup { 135&omap3_pmx_wkup {
136 wlan_host_wkup: pinmux_wlan_host_wkup_pins { 136 wlan_host_wkup: pinmux_wlan_host_wkup_pins {
137 pinctrl-single,pins = < 137 pinctrl-single,pins = <
138 0x1a (PIN_INPUT_PULLUP | MUX_MODE4) /* sys_clkout1.gpio_10 WLAN_HOST_WKUP */ 138 OMAP3_WKUP_IOPAD(0x2a1a, PIN_INPUT_PULLUP | MUX_MODE4) /* sys_clkout1.gpio_10 WLAN_HOST_WKUP */
139 >; 139 >;
140 }; 140 };
141}; 141};
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index 8a2b25332b8c..d1ffabb7c74f 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -717,6 +717,8 @@
717 ti,hwmods = "gpmc"; 717 ti,hwmods = "gpmc";
718 reg = <0x6e000000 0x02d0>; 718 reg = <0x6e000000 0x02d0>;
719 interrupts = <20>; 719 interrupts = <20>;
720 dmas = <&sdma 4>;
721 dma-names = "rxtx";
720 gpmc,num-cs = <8>; 722 gpmc,num-cs = <8>;
721 gpmc,num-waitpins = <4>; 723 gpmc,num-waitpins = <4>;
722 #address-cells = <2>; 724 #address-cells = <2>;
diff --git a/arch/arm/boot/dts/omap4-duovero-parlor.dts b/arch/arm/boot/dts/omap4-duovero-parlor.dts
index b75f7b2b7c4a..06c54822ddc2 100644
--- a/arch/arm/boot/dts/omap4-duovero-parlor.dts
+++ b/arch/arm/boot/dts/omap4-duovero-parlor.dts
@@ -36,7 +36,7 @@
36 label = "button0"; 36 label = "button0";
37 linux,code = <BTN_0>; 37 linux,code = <BTN_0>;
38 gpios = <&gpio4 25 GPIO_ACTIVE_LOW>; /* gpio_121 */ 38 gpios = <&gpio4 25 GPIO_ACTIVE_LOW>; /* gpio_121 */
39 gpio-key,wakeup; 39 wakeup-source;
40 }; 40 };
41 }; 41 };
42 42
diff --git a/arch/arm/boot/dts/omap4-panda-a4.dts b/arch/arm/boot/dts/omap4-panda-a4.dts
index 133f1b74e8ae..78d363177762 100644
--- a/arch/arm/boot/dts/omap4-panda-a4.dts
+++ b/arch/arm/boot/dts/omap4-panda-a4.dts
@@ -13,8 +13,8 @@
13/* Pandaboard Rev A4+ have external pullups on SCL & SDA */ 13/* Pandaboard Rev A4+ have external pullups on SCL & SDA */
14&dss_hdmi_pins { 14&dss_hdmi_pins {
15 pinctrl-single,pins = < 15 pinctrl-single,pins = <
16 0x5a (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */ 16 OMAP4_IOPAD(0x09a, PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */
17 0x5c (PIN_INPUT | MUX_MODE0) /* hdmi_scl.hdmi_scl */ 17 OMAP4_IOPAD(0x09c, PIN_INPUT | MUX_MODE0) /* hdmi_scl.hdmi_scl */
18 0x5e (PIN_INPUT | MUX_MODE0) /* hdmi_sda.hdmi_sda */ 18 OMAP4_IOPAD(0x09e, PIN_INPUT | MUX_MODE0) /* hdmi_sda.hdmi_sda */
19 >; 19 >;
20}; 20};
diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
index 18d096696fc0..df2e356ec089 100644
--- a/arch/arm/boot/dts/omap4-panda-common.dtsi
+++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
@@ -199,129 +199,129 @@
199 199
200 twl6040_pins: pinmux_twl6040_pins { 200 twl6040_pins: pinmux_twl6040_pins {
201 pinctrl-single,pins = < 201 pinctrl-single,pins = <
202 0xe0 (PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */ 202 OMAP4_IOPAD(0x120, PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */
203 0x160 (PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */ 203 OMAP4_IOPAD(0x1a0, PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */
204 >; 204 >;
205 }; 205 };
206 206
207 mcpdm_pins: pinmux_mcpdm_pins { 207 mcpdm_pins: pinmux_mcpdm_pins {
208 pinctrl-single,pins = < 208 pinctrl-single,pins = <
209 0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_ul_data.abe_pdm_ul_data */ 209 OMAP4_IOPAD(0x106, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_ul_data.abe_pdm_ul_data */
210 0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_dl_data.abe_pdm_dl_data */ 210 OMAP4_IOPAD(0x108, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_dl_data.abe_pdm_dl_data */
211 0xca (PIN_INPUT_PULLUP | MUX_MODE0) /* abe_pdm_frame.abe_pdm_frame */ 211 OMAP4_IOPAD(0x10a, PIN_INPUT_PULLUP | MUX_MODE0) /* abe_pdm_frame.abe_pdm_frame */
212 0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_lb_clk.abe_pdm_lb_clk */ 212 OMAP4_IOPAD(0x10c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_lb_clk.abe_pdm_lb_clk */
213 0xce (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_clks.abe_clks */ 213 OMAP4_IOPAD(0x10e, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_clks.abe_clks */
214 >; 214 >;
215 }; 215 };
216 216
217 mcbsp1_pins: pinmux_mcbsp1_pins { 217 mcbsp1_pins: pinmux_mcbsp1_pins {
218 pinctrl-single,pins = < 218 pinctrl-single,pins = <
219 0xbe (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */ 219 OMAP4_IOPAD(0x0fe, PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
220 0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dr.abe_mcbsp1_dr */ 220 OMAP4_IOPAD(0x100, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dr.abe_mcbsp1_dr */
221 0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dx.abe_mcbsp1_dx */ 221 OMAP4_IOPAD(0x102, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dx.abe_mcbsp1_dx */
222 0xc4 (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */ 222 OMAP4_IOPAD(0x104, PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
223 >; 223 >;
224 }; 224 };
225 225
226 dss_dpi_pins: pinmux_dss_dpi_pins { 226 dss_dpi_pins: pinmux_dss_dpi_pins {
227 pinctrl-single,pins = < 227 pinctrl-single,pins = <
228 0x122 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data23 */ 228 OMAP4_IOPAD(0x162, PIN_OUTPUT | MUX_MODE5) /* dispc2_data23 */
229 0x124 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data22 */ 229 OMAP4_IOPAD(0x164, PIN_OUTPUT | MUX_MODE5) /* dispc2_data22 */
230 0x126 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data21 */ 230 OMAP4_IOPAD(0x166, PIN_OUTPUT | MUX_MODE5) /* dispc2_data21 */
231 0x128 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data20 */ 231 OMAP4_IOPAD(0x168, PIN_OUTPUT | MUX_MODE5) /* dispc2_data20 */
232 0x12a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data19 */ 232 OMAP4_IOPAD(0x16a, PIN_OUTPUT | MUX_MODE5) /* dispc2_data19 */
233 0x12c (PIN_OUTPUT | MUX_MODE5) /* dispc2_data18 */ 233 OMAP4_IOPAD(0x16c, PIN_OUTPUT | MUX_MODE5) /* dispc2_data18 */
234 0x12e (PIN_OUTPUT | MUX_MODE5) /* dispc2_data15 */ 234 OMAP4_IOPAD(0x16e, PIN_OUTPUT | MUX_MODE5) /* dispc2_data15 */
235 0x130 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data14 */ 235 OMAP4_IOPAD(0x170, PIN_OUTPUT | MUX_MODE5) /* dispc2_data14 */
236 0x132 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data13 */ 236 OMAP4_IOPAD(0x172, PIN_OUTPUT | MUX_MODE5) /* dispc2_data13 */
237 0x134 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data12 */ 237 OMAP4_IOPAD(0x174, PIN_OUTPUT | MUX_MODE5) /* dispc2_data12 */
238 0x136 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data11 */ 238 OMAP4_IOPAD(0x176, PIN_OUTPUT | MUX_MODE5) /* dispc2_data11 */
239 239
240 0x174 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data10 */ 240 OMAP4_IOPAD(0x1b4, PIN_OUTPUT | MUX_MODE5) /* dispc2_data10 */
241 0x176 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data9 */ 241 OMAP4_IOPAD(0x1b6, PIN_OUTPUT | MUX_MODE5) /* dispc2_data9 */
242 0x178 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data16 */ 242 OMAP4_IOPAD(0x1b8, PIN_OUTPUT | MUX_MODE5) /* dispc2_data16 */
243 0x17a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data17 */ 243 OMAP4_IOPAD(0x1ba, PIN_OUTPUT | MUX_MODE5) /* dispc2_data17 */
244 0x17c (PIN_OUTPUT | MUX_MODE5) /* dispc2_hsync */ 244 OMAP4_IOPAD(0x1bc, PIN_OUTPUT | MUX_MODE5) /* dispc2_hsync */
245 0x17e (PIN_OUTPUT | MUX_MODE5) /* dispc2_pclk */ 245 OMAP4_IOPAD(0x1be, PIN_OUTPUT | MUX_MODE5) /* dispc2_pclk */
246 0x180 (PIN_OUTPUT | MUX_MODE5) /* dispc2_vsync */ 246 OMAP4_IOPAD(0x1c0, PIN_OUTPUT | MUX_MODE5) /* dispc2_vsync */
247 0x182 (PIN_OUTPUT | MUX_MODE5) /* dispc2_de */ 247 OMAP4_IOPAD(0x1c2, PIN_OUTPUT | MUX_MODE5) /* dispc2_de */
248 0x184 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data8 */ 248 OMAP4_IOPAD(0x1c4, PIN_OUTPUT | MUX_MODE5) /* dispc2_data8 */
249 0x186 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data7 */ 249 OMAP4_IOPAD(0x1c6, PIN_OUTPUT | MUX_MODE5) /* dispc2_data7 */
250 0x188 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data6 */ 250 OMAP4_IOPAD(0x1c8, PIN_OUTPUT | MUX_MODE5) /* dispc2_data6 */
251 0x18a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data5 */ 251 OMAP4_IOPAD(0x1ca, PIN_OUTPUT | MUX_MODE5) /* dispc2_data5 */
252 0x18c (PIN_OUTPUT | MUX_MODE5) /* dispc2_data4 */ 252 OMAP4_IOPAD(0x1cc, PIN_OUTPUT | MUX_MODE5) /* dispc2_data4 */
253 0x18e (PIN_OUTPUT | MUX_MODE5) /* dispc2_data3 */ 253 OMAP4_IOPAD(0x1ce, PIN_OUTPUT | MUX_MODE5) /* dispc2_data3 */
254 254
255 0x190 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data2 */ 255 OMAP4_IOPAD(0x1d0, PIN_OUTPUT | MUX_MODE5) /* dispc2_data2 */
256 0x192 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data1 */ 256 OMAP4_IOPAD(0x1d2, PIN_OUTPUT | MUX_MODE5) /* dispc2_data1 */
257 0x194 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data0 */ 257 OMAP4_IOPAD(0x1d4, PIN_OUTPUT | MUX_MODE5) /* dispc2_data0 */
258 >; 258 >;
259 }; 259 };
260 260
261 tfp410_pins: pinmux_tfp410_pins { 261 tfp410_pins: pinmux_tfp410_pins {
262 pinctrl-single,pins = < 262 pinctrl-single,pins = <
263 0x144 (PIN_OUTPUT | MUX_MODE3) /* gpio_0 */ 263 OMAP4_IOPAD(0x184, PIN_OUTPUT | MUX_MODE3) /* gpio_0 */
264 >; 264 >;
265 }; 265 };
266 266
267 dss_hdmi_pins: pinmux_dss_hdmi_pins { 267 dss_hdmi_pins: pinmux_dss_hdmi_pins {
268 pinctrl-single,pins = < 268 pinctrl-single,pins = <
269 0x5a (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */ 269 OMAP4_IOPAD(0x09a, PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */
270 0x5c (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_scl.hdmi_scl */ 270 OMAP4_IOPAD(0x09c, PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_scl.hdmi_scl */
271 0x5e (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_sda.hdmi_sda */ 271 OMAP4_IOPAD(0x09e, PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_sda.hdmi_sda */
272 >; 272 >;
273 }; 273 };
274 274
275 tpd12s015_pins: pinmux_tpd12s015_pins { 275 tpd12s015_pins: pinmux_tpd12s015_pins {
276 pinctrl-single,pins = < 276 pinctrl-single,pins = <
277 0x22 (PIN_OUTPUT | MUX_MODE3) /* gpmc_a17.gpio_41 */ 277 OMAP4_IOPAD(0x062, PIN_OUTPUT | MUX_MODE3) /* gpmc_a17.gpio_41 */
278 0x48 (PIN_OUTPUT | MUX_MODE3) /* gpmc_nbe1.gpio_60 */ 278 OMAP4_IOPAD(0x088, PIN_OUTPUT | MUX_MODE3) /* gpmc_nbe1.gpio_60 */
279 0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* hdmi_hpd.gpio_63 */ 279 OMAP4_IOPAD(0x098, PIN_INPUT_PULLDOWN | MUX_MODE3) /* hdmi_hpd.gpio_63 */
280 >; 280 >;
281 }; 281 };
282 282
283 hsusbb1_pins: pinmux_hsusbb1_pins { 283 hsusbb1_pins: pinmux_hsusbb1_pins {
284 pinctrl-single,pins = < 284 pinctrl-single,pins = <
285 0x82 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */ 285 OMAP4_IOPAD(0x0c2, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */
286 0x84 (PIN_OUTPUT | MUX_MODE4) /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */ 286 OMAP4_IOPAD(0x0c4, PIN_OUTPUT | MUX_MODE4) /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */
287 0x86 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */ 287 OMAP4_IOPAD(0x0c6, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */
288 0x88 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */ 288 OMAP4_IOPAD(0x0c8, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */
289 0x8a (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */ 289 OMAP4_IOPAD(0x0ca, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */
290 0x8c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */ 290 OMAP4_IOPAD(0x0cc, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */
291 0x8e (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */ 291 OMAP4_IOPAD(0x0ce, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */
292 0x90 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */ 292 OMAP4_IOPAD(0x0d0, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */
293 0x92 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */ 293 OMAP4_IOPAD(0x0d2, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */
294 0x94 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */ 294 OMAP4_IOPAD(0x0d4, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */
295 0x96 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */ 295 OMAP4_IOPAD(0x0d6, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */
296 0x98 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */ 296 OMAP4_IOPAD(0x0d8, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */
297 >; 297 >;
298 }; 298 };
299 299
300 i2c1_pins: pinmux_i2c1_pins { 300 i2c1_pins: pinmux_i2c1_pins {
301 pinctrl-single,pins = < 301 pinctrl-single,pins = <
302 0xe2 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */ 302 OMAP4_IOPAD(0x122, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */
303 0xe4 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */ 303 OMAP4_IOPAD(0x124, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */
304 >; 304 >;
305 }; 305 };
306 306
307 i2c2_pins: pinmux_i2c2_pins { 307 i2c2_pins: pinmux_i2c2_pins {
308 pinctrl-single,pins = < 308 pinctrl-single,pins = <
309 0xe6 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */ 309 OMAP4_IOPAD(0x126, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */
310 0xe8 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */ 310 OMAP4_IOPAD(0x128, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */
311 >; 311 >;
312 }; 312 };
313 313
314 i2c3_pins: pinmux_i2c3_pins { 314 i2c3_pins: pinmux_i2c3_pins {
315 pinctrl-single,pins = < 315 pinctrl-single,pins = <
316 0xea (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */ 316 OMAP4_IOPAD(0x12a, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */
317 0xec (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */ 317 OMAP4_IOPAD(0x12c, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */
318 >; 318 >;
319 }; 319 };
320 320
321 i2c4_pins: pinmux_i2c4_pins { 321 i2c4_pins: pinmux_i2c4_pins {
322 pinctrl-single,pins = < 322 pinctrl-single,pins = <
323 0xee (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_scl */ 323 OMAP4_IOPAD(0x12e, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_scl */
324 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */ 324 OMAP4_IOPAD(0x130, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */
325 >; 325 >;
326 }; 326 };
327 327
@@ -331,24 +331,24 @@
331 */ 331 */
332 wl12xx_gpio: pinmux_wl12xx_gpio { 332 wl12xx_gpio: pinmux_wl12xx_gpio {
333 pinctrl-single,pins = < 333 pinctrl-single,pins = <
334 0x26 (PIN_OUTPUT | MUX_MODE3) /* gpmc_a19.gpio_43 */ 334 OMAP4_IOPAD(0x066, PIN_OUTPUT | MUX_MODE3) /* gpmc_a19.gpio_43 */
335 0x2c (PIN_OUTPUT | MUX_MODE3) /* gpmc_a22.gpio_46 */ 335 OMAP4_IOPAD(0x06c, PIN_OUTPUT | MUX_MODE3) /* gpmc_a22.gpio_46 */
336 0x30 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a24.gpio_48 */ 336 OMAP4_IOPAD(0x070, PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a24.gpio_48 */
337 0x32 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a25.gpio_49 */ 337 OMAP4_IOPAD(0x072, PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a25.gpio_49 */
338 >; 338 >;
339 }; 339 };
340 340
341 /* wl12xx GPIO inputs and SDIO pins */ 341 /* wl12xx GPIO inputs and SDIO pins */
342 wl12xx_pins: pinmux_wl12xx_pins { 342 wl12xx_pins: pinmux_wl12xx_pins {
343 pinctrl-single,pins = < 343 pinctrl-single,pins = <
344 0x38 (PIN_INPUT | MUX_MODE3) /* gpmc_ncs2.gpio_52 */ 344 OMAP4_IOPAD(0x078, PIN_INPUT | MUX_MODE3) /* gpmc_ncs2.gpio_52 */
345 0x3a (PIN_INPUT | MUX_MODE3) /* gpmc_ncs3.gpio_53 */ 345 OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3) /* gpmc_ncs3.gpio_53 */
346 0x108 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */ 346 OMAP4_IOPAD(0x148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */
347 0x10a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_cmd.sdmmc5_cmd */ 347 OMAP4_IOPAD(0x14a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_cmd.sdmmc5_cmd */
348 0x10c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat0.sdmmc5_dat0 */ 348 OMAP4_IOPAD(0x14c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat0.sdmmc5_dat0 */
349 0x10e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat1.sdmmc5_dat1 */ 349 OMAP4_IOPAD(0x14e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat1.sdmmc5_dat1 */
350 0x110 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat2.sdmmc5_dat2 */ 350 OMAP4_IOPAD(0x150, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat2.sdmmc5_dat2 */
351 0x112 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat3.sdmmc5_dat3 */ 351 OMAP4_IOPAD(0x152, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat3.sdmmc5_dat3 */
352 >; 352 >;
353 }; 353 };
354}; 354};
@@ -356,8 +356,8 @@
356&omap4_pmx_wkup { 356&omap4_pmx_wkup {
357 led_wkgpio_pins: pinmux_leds_wkpins { 357 led_wkgpio_pins: pinmux_leds_wkpins {
358 pinctrl-single,pins = < 358 pinctrl-single,pins = <
359 0x1a (PIN_OUTPUT | MUX_MODE3) /* gpio_wk7 */ 359 OMAP4_IOPAD(0x05a, PIN_OUTPUT | MUX_MODE3) /* gpio_wk7 */
360 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */ 360 OMAP4_IOPAD(0x05c, PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */
361 >; 361 >;
362 }; 362 };
363}; 363};
diff --git a/arch/arm/boot/dts/omap4-panda-es.dts b/arch/arm/boot/dts/omap4-panda-es.dts
index 2f1dabcc6adf..119f8e657edc 100644
--- a/arch/arm/boot/dts/omap4-panda-es.dts
+++ b/arch/arm/boot/dts/omap4-panda-es.dts
@@ -34,23 +34,23 @@
34/* PandaboardES has external pullups on SCL & SDA */ 34/* PandaboardES has external pullups on SCL & SDA */
35&dss_hdmi_pins { 35&dss_hdmi_pins {
36 pinctrl-single,pins = < 36 pinctrl-single,pins = <
37 0x5a (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */ 37 OMAP4_IOPAD(0x09a, PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */
38 0x5c (PIN_INPUT | MUX_MODE0) /* hdmi_scl.hdmi_scl */ 38 OMAP4_IOPAD(0x09c, PIN_INPUT | MUX_MODE0) /* hdmi_scl.hdmi_scl */
39 0x5e (PIN_INPUT | MUX_MODE0) /* hdmi_sda.hdmi_sda */ 39 OMAP4_IOPAD(0x09e, PIN_INPUT | MUX_MODE0) /* hdmi_sda.hdmi_sda */
40 >; 40 >;
41}; 41};
42 42
43&omap4_pmx_core { 43&omap4_pmx_core {
44 led_gpio_pins: gpio_led_pmx { 44 led_gpio_pins: gpio_led_pmx {
45 pinctrl-single,pins = < 45 pinctrl-single,pins = <
46 0xb6 (PIN_OUTPUT | MUX_MODE3) /* gpio_110 */ 46 OMAP4_IOPAD(0x0f6, PIN_OUTPUT | MUX_MODE3) /* gpio_110 */
47 >; 47 >;
48 }; 48 };
49}; 49};
50 50
51&led_wkgpio_pins { 51&led_wkgpio_pins {
52 pinctrl-single,pins = < 52 pinctrl-single,pins = <
53 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */ 53 OMAP4_IOPAD(0x05c, PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */
54 >; 54 >;
55}; 55};
56 56
diff --git a/arch/arm/boot/dts/omap4-sdp-es23plus.dts b/arch/arm/boot/dts/omap4-sdp-es23plus.dts
index aad5dda0f469..b4d19a7ae393 100644
--- a/arch/arm/boot/dts/omap4-sdp-es23plus.dts
+++ b/arch/arm/boot/dts/omap4-sdp-es23plus.dts
@@ -10,8 +10,8 @@
10/* SDP boards with 4430 ES2.3+ or 4460 have external pullups on SCL & SDA */ 10/* SDP boards with 4430 ES2.3+ or 4460 have external pullups on SCL & SDA */
11&dss_hdmi_pins { 11&dss_hdmi_pins {
12 pinctrl-single,pins = < 12 pinctrl-single,pins = <
13 0x5a (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */ 13 OMAP4_IOPAD(0x09a, PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */
14 0x5c (PIN_INPUT | MUX_MODE0) /* hdmi_scl.hdmi_scl */ 14 OMAP4_IOPAD(0x09c, PIN_INPUT | MUX_MODE0) /* hdmi_scl.hdmi_scl */
15 0x5e (PIN_INPUT | MUX_MODE0) /* hdmi_sda.hdmi_sda */ 15 OMAP4_IOPAD(0x09e, PIN_INPUT | MUX_MODE0) /* hdmi_sda.hdmi_sda */
16 >; 16 >;
17}; 17};
diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts
index f0bdc41f8eff..aae513265dc2 100644
--- a/arch/arm/boot/dts/omap4-sdp.dts
+++ b/arch/arm/boot/dts/omap4-sdp.dts
@@ -212,143 +212,143 @@
212 212
213 uart2_pins: pinmux_uart2_pins { 213 uart2_pins: pinmux_uart2_pins {
214 pinctrl-single,pins = < 214 pinctrl-single,pins = <
215 0xd8 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_cts.uart2_cts */ 215 OMAP4_IOPAD(0x118, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_cts.uart2_cts */
216 0xda (PIN_OUTPUT | MUX_MODE0) /* uart2_rts.uart2_rts */ 216 OMAP4_IOPAD(0x11a, PIN_OUTPUT | MUX_MODE0) /* uart2_rts.uart2_rts */
217 0xdc (PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_rx.uart2_rx */ 217 OMAP4_IOPAD(0x11c, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_rx.uart2_rx */
218 0xde (PIN_OUTPUT | MUX_MODE0) /* uart2_tx.uart2_tx */ 218 OMAP4_IOPAD(0x11e, PIN_OUTPUT | MUX_MODE0) /* uart2_tx.uart2_tx */
219 >; 219 >;
220 }; 220 };
221 221
222 uart3_pins: pinmux_uart3_pins { 222 uart3_pins: pinmux_uart3_pins {
223 pinctrl-single,pins = < 223 pinctrl-single,pins = <
224 0x100 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart3_cts_rctx.uart3_cts_rctx */ 224 OMAP4_IOPAD(0x140, PIN_INPUT_PULLUP | MUX_MODE0) /* uart3_cts_rctx.uart3_cts_rctx */
225 0x102 (PIN_OUTPUT | MUX_MODE0) /* uart3_rts_sd.uart3_rts_sd */ 225 OMAP4_IOPAD(0x142, PIN_OUTPUT | MUX_MODE0) /* uart3_rts_sd.uart3_rts_sd */
226 0x104 (PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */ 226 OMAP4_IOPAD(0x144, PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
227 0x106 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */ 227 OMAP4_IOPAD(0x146, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
228 >; 228 >;
229 }; 229 };
230 230
231 uart4_pins: pinmux_uart4_pins { 231 uart4_pins: pinmux_uart4_pins {
232 pinctrl-single,pins = < 232 pinctrl-single,pins = <
233 0x11c (PIN_INPUT | MUX_MODE0) /* uart4_rx.uart4_rx */ 233 OMAP4_IOPAD(0x15c, PIN_INPUT | MUX_MODE0) /* uart4_rx.uart4_rx */
234 0x11e (PIN_OUTPUT | MUX_MODE0) /* uart4_tx.uart4_tx */ 234 OMAP4_IOPAD(0x15e, PIN_OUTPUT | MUX_MODE0) /* uart4_tx.uart4_tx */
235 >; 235 >;
236 }; 236 };
237 237
238 twl6040_pins: pinmux_twl6040_pins { 238 twl6040_pins: pinmux_twl6040_pins {
239 pinctrl-single,pins = < 239 pinctrl-single,pins = <
240 0xe0 (PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */ 240 OMAP4_IOPAD(0x120, PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */
241 0x160 (PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */ 241 OMAP4_IOPAD(0x1a0, PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */
242 >; 242 >;
243 }; 243 };
244 244
245 mcpdm_pins: pinmux_mcpdm_pins { 245 mcpdm_pins: pinmux_mcpdm_pins {
246 pinctrl-single,pins = < 246 pinctrl-single,pins = <
247 0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_ul_data.abe_pdm_ul_data */ 247 OMAP4_IOPAD(0x106, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_ul_data.abe_pdm_ul_data */
248 0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_dl_data.abe_pdm_dl_data */ 248 OMAP4_IOPAD(0x108, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_dl_data.abe_pdm_dl_data */
249 0xca (PIN_INPUT_PULLUP | MUX_MODE0) /* abe_pdm_frame.abe_pdm_frame */ 249 OMAP4_IOPAD(0x10a, PIN_INPUT_PULLUP | MUX_MODE0) /* abe_pdm_frame.abe_pdm_frame */
250 0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_lb_clk.abe_pdm_lb_clk */ 250 OMAP4_IOPAD(0x10c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_lb_clk.abe_pdm_lb_clk */
251 0xce (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_clks.abe_clks */ 251 OMAP4_IOPAD(0x10e, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_clks.abe_clks */
252 >; 252 >;
253 }; 253 };
254 254
255 dmic_pins: pinmux_dmic_pins { 255 dmic_pins: pinmux_dmic_pins {
256 pinctrl-single,pins = < 256 pinctrl-single,pins = <
257 0xd0 (PIN_OUTPUT | MUX_MODE0) /* abe_dmic_clk1.abe_dmic_clk1 */ 257 OMAP4_IOPAD(0x110, PIN_OUTPUT | MUX_MODE0) /* abe_dmic_clk1.abe_dmic_clk1 */
258 0xd2 (PIN_INPUT | MUX_MODE0) /* abe_dmic_din1.abe_dmic_din1 */ 258 OMAP4_IOPAD(0x112, PIN_INPUT | MUX_MODE0) /* abe_dmic_din1.abe_dmic_din1 */
259 0xd4 (PIN_INPUT | MUX_MODE0) /* abe_dmic_din2.abe_dmic_din2 */ 259 OMAP4_IOPAD(0x114, PIN_INPUT | MUX_MODE0) /* abe_dmic_din2.abe_dmic_din2 */
260 0xd6 (PIN_INPUT | MUX_MODE0) /* abe_dmic_din3.abe_dmic_din3 */ 260 OMAP4_IOPAD(0x116, PIN_INPUT | MUX_MODE0) /* abe_dmic_din3.abe_dmic_din3 */
261 >; 261 >;
262 }; 262 };
263 263
264 mcbsp1_pins: pinmux_mcbsp1_pins { 264 mcbsp1_pins: pinmux_mcbsp1_pins {
265 pinctrl-single,pins = < 265 pinctrl-single,pins = <
266 0xbe (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */ 266 OMAP4_IOPAD(0x0fe, PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
267 0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dr.abe_mcbsp1_dr */ 267 OMAP4_IOPAD(0x100, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dr.abe_mcbsp1_dr */
268 0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dx.abe_mcbsp1_dx */ 268 OMAP4_IOPAD(0x102, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dx.abe_mcbsp1_dx */
269 0xc4 (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */ 269 OMAP4_IOPAD(0x104, PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
270 >; 270 >;
271 }; 271 };
272 272
273 mcbsp2_pins: pinmux_mcbsp2_pins { 273 mcbsp2_pins: pinmux_mcbsp2_pins {
274 pinctrl-single,pins = < 274 pinctrl-single,pins = <
275 0xb6 (PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_clkx.abe_mcbsp2_clkx */ 275 OMAP4_IOPAD(0x0f6, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_clkx.abe_mcbsp2_clkx */
276 0xb8 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp2_dr.abe_mcbsp2_dr */ 276 OMAP4_IOPAD(0x0f8, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp2_dr.abe_mcbsp2_dr */
277 0xba (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp2_dx.abe_mcbsp2_dx */ 277 OMAP4_IOPAD(0x0fa, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp2_dx.abe_mcbsp2_dx */
278 0xbc (PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_fsx.abe_mcbsp2_fsx */ 278 OMAP4_IOPAD(0x0fc, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_fsx.abe_mcbsp2_fsx */
279 >; 279 >;
280 }; 280 };
281 281
282 mcspi1_pins: pinmux_mcspi1_pins { 282 mcspi1_pins: pinmux_mcspi1_pins {
283 pinctrl-single,pins = < 283 pinctrl-single,pins = <
284 0xf2 (PIN_INPUT | MUX_MODE0) /* mcspi1_clk.mcspi1_clk */ 284 OMAP4_IOPAD(0x132, PIN_INPUT | MUX_MODE0) /* mcspi1_clk.mcspi1_clk */
285 0xf4 (PIN_INPUT | MUX_MODE0) /* mcspi1_somi.mcspi1_somi */ 285 OMAP4_IOPAD(0x134, PIN_INPUT | MUX_MODE0) /* mcspi1_somi.mcspi1_somi */
286 0xf6 (PIN_INPUT | MUX_MODE0) /* mcspi1_simo.mcspi1_simo */ 286 OMAP4_IOPAD(0x136, PIN_INPUT | MUX_MODE0) /* mcspi1_simo.mcspi1_simo */
287 0xf8 (PIN_INPUT | MUX_MODE0) /* mcspi1_cs0.mcspi1_cs0 */ 287 OMAP4_IOPAD(0x138, PIN_INPUT | MUX_MODE0) /* mcspi1_cs0.mcspi1_cs0 */
288 >; 288 >;
289 }; 289 };
290 290
291 dss_hdmi_pins: pinmux_dss_hdmi_pins { 291 dss_hdmi_pins: pinmux_dss_hdmi_pins {
292 pinctrl-single,pins = < 292 pinctrl-single,pins = <
293 0x5a (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */ 293 OMAP4_IOPAD(0x09a, PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */
294 0x5c (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_scl.hdmi_scl */ 294 OMAP4_IOPAD(0x09c, PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_scl.hdmi_scl */
295 0x5e (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_sda.hdmi_sda */ 295 OMAP4_IOPAD(0x09e, PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_sda.hdmi_sda */
296 >; 296 >;
297 }; 297 };
298 298
299 tpd12s015_pins: pinmux_tpd12s015_pins { 299 tpd12s015_pins: pinmux_tpd12s015_pins {
300 pinctrl-single,pins = < 300 pinctrl-single,pins = <
301 0x22 (PIN_OUTPUT | MUX_MODE3) /* gpmc_a17.gpio_41 */ 301 OMAP4_IOPAD(0x062, PIN_OUTPUT | MUX_MODE3) /* gpmc_a17.gpio_41 */
302 0x48 (PIN_OUTPUT | MUX_MODE3) /* gpmc_nbe1.gpio_60 */ 302 OMAP4_IOPAD(0x088, PIN_OUTPUT | MUX_MODE3) /* gpmc_nbe1.gpio_60 */
303 0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* hdmi_hpd.gpio_63 */ 303 OMAP4_IOPAD(0x098, PIN_INPUT_PULLDOWN | MUX_MODE3) /* hdmi_hpd.gpio_63 */
304 >; 304 >;
305 }; 305 };
306 306
307 i2c1_pins: pinmux_i2c1_pins { 307 i2c1_pins: pinmux_i2c1_pins {
308 pinctrl-single,pins = < 308 pinctrl-single,pins = <
309 0xe2 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */ 309 OMAP4_IOPAD(0x122, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */
310 0xe4 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */ 310 OMAP4_IOPAD(0x124, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */
311 >; 311 >;
312 }; 312 };
313 313
314 i2c2_pins: pinmux_i2c2_pins { 314 i2c2_pins: pinmux_i2c2_pins {
315 pinctrl-single,pins = < 315 pinctrl-single,pins = <
316 0xe6 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */ 316 OMAP4_IOPAD(0x126, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */
317 0xe8 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */ 317 OMAP4_IOPAD(0x128, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */
318 >; 318 >;
319 }; 319 };
320 320
321 i2c3_pins: pinmux_i2c3_pins { 321 i2c3_pins: pinmux_i2c3_pins {
322 pinctrl-single,pins = < 322 pinctrl-single,pins = <
323 0xea (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */ 323 OMAP4_IOPAD(0x12a, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */
324 0xec (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */ 324 OMAP4_IOPAD(0x12c, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */
325 >; 325 >;
326 }; 326 };
327 327
328 i2c4_pins: pinmux_i2c4_pins { 328 i2c4_pins: pinmux_i2c4_pins {
329 pinctrl-single,pins = < 329 pinctrl-single,pins = <
330 0xee (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_scl */ 330 OMAP4_IOPAD(0x12e, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_scl */
331 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */ 331 OMAP4_IOPAD(0x130, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */
332 >; 332 >;
333 }; 333 };
334 334
335 /* wl12xx GPIO output for WLAN_EN */ 335 /* wl12xx GPIO output for WLAN_EN */
336 wl12xx_gpio: pinmux_wl12xx_gpio { 336 wl12xx_gpio: pinmux_wl12xx_gpio {
337 pinctrl-single,pins = < 337 pinctrl-single,pins = <
338 0x3c (PIN_OUTPUT | MUX_MODE3) /* gpmc_nwp.gpio_54 */ 338 OMAP4_IOPAD(0x07c, PIN_OUTPUT | MUX_MODE3) /* gpmc_nwp.gpio_54 */
339 >; 339 >;
340 }; 340 };
341 341
342 /* wl12xx GPIO inputs and SDIO pins */ 342 /* wl12xx GPIO inputs and SDIO pins */
343 wl12xx_pins: pinmux_wl12xx_pins { 343 wl12xx_pins: pinmux_wl12xx_pins {
344 pinctrl-single,pins = < 344 pinctrl-single,pins = <
345 0x3a (PIN_INPUT | MUX_MODE3) /* gpmc_ncs3.gpio_53 */ 345 OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3) /* gpmc_ncs3.gpio_53 */
346 0x108 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */ 346 OMAP4_IOPAD(0x148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */
347 0x10a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_cmd.sdmmc5_cmd */ 347 OMAP4_IOPAD(0x14a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_cmd.sdmmc5_cmd */
348 0x10c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat0.sdmmc5_dat0 */ 348 OMAP4_IOPAD(0x14c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat0.sdmmc5_dat0 */
349 0x10e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat1.sdmmc5_dat1 */ 349 OMAP4_IOPAD(0x14e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat1.sdmmc5_dat1 */
350 0x110 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat2.sdmmc5_dat2 */ 350 OMAP4_IOPAD(0x150, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat2.sdmmc5_dat2 */
351 0x112 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat3.sdmmc5_dat3 */ 351 OMAP4_IOPAD(0x152, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat3.sdmmc5_dat3 */
352 >; 352 >;
353 }; 353 };
354}; 354};
diff --git a/arch/arm/boot/dts/omap4-var-om44customboard.dtsi b/arch/arm/boot/dts/omap4-var-om44customboard.dtsi
index f2d2fdb75628..6e278d7716a5 100644
--- a/arch/arm/boot/dts/omap4-var-om44customboard.dtsi
+++ b/arch/arm/boot/dts/omap4-var-om44customboard.dtsi
@@ -41,7 +41,7 @@
41 label = "user"; 41 label = "user";
42 gpios = <&gpio6 24 GPIO_ACTIVE_HIGH>; /* gpio 184 */ 42 gpios = <&gpio6 24 GPIO_ACTIVE_HIGH>; /* gpio 184 */
43 linux,code = <BTN_EXTRA>; 43 linux,code = <BTN_EXTRA>;
44 gpio-key,wakeup; 44 wakeup-source;
45 }; 45 };
46 }; 46 };
47 47
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index 5a206c100ce2..2bd9c83300b2 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -348,12 +348,22 @@
348 #interrupt-cells = <2>; 348 #interrupt-cells = <2>;
349 }; 349 };
350 350
351 elm: elm@48078000 {
352 compatible = "ti,am3352-elm";
353 reg = <0x48078000 0x2000>;
354 interrupts = <4>;
355 ti,hwmods = "elm";
356 status = "disabled";
357 };
358
351 gpmc: gpmc@50000000 { 359 gpmc: gpmc@50000000 {
352 compatible = "ti,omap4430-gpmc"; 360 compatible = "ti,omap4430-gpmc";
353 reg = <0x50000000 0x1000>; 361 reg = <0x50000000 0x1000>;
354 #address-cells = <2>; 362 #address-cells = <2>;
355 #size-cells = <1>; 363 #size-cells = <1>;
356 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 364 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
365 dmas = <&sdma 4>;
366 dma-names = "rxtx";
357 gpmc,num-cs = <8>; 367 gpmc,num-cs = <8>;
358 gpmc,num-waitpins = <4>; 368 gpmc,num-waitpins = <4>;
359 ti,hwmods = "gpmc"; 369 ti,hwmods = "gpmc";
diff --git a/arch/arm/boot/dts/omap5-board-common.dtsi b/arch/arm/boot/dts/omap5-board-common.dtsi
index 5cf76a1c5c75..888412c63f97 100644
--- a/arch/arm/boot/dts/omap5-board-common.dtsi
+++ b/arch/arm/boot/dts/omap5-board-common.dtsi
@@ -139,60 +139,60 @@
139 139
140 twl6040_pins: pinmux_twl6040_pins { 140 twl6040_pins: pinmux_twl6040_pins {
141 pinctrl-single,pins = < 141 pinctrl-single,pins = <
142 0x17e (PIN_OUTPUT | MUX_MODE6) /* mcspi1_somi.gpio5_141 */ 142 OMAP5_IOPAD(0x1be, PIN_OUTPUT | MUX_MODE6) /* mcspi1_somi.gpio5_141 */
143 >; 143 >;
144 }; 144 };
145 145
146 mcpdm_pins: pinmux_mcpdm_pins { 146 mcpdm_pins: pinmux_mcpdm_pins {
147 pinctrl-single,pins = < 147 pinctrl-single,pins = <
148 0x142 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_clks.abe_clks */ 148 OMAP5_IOPAD(0x182, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_clks.abe_clks */
149 0x15c (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abemcpdm_ul_data.abemcpdm_ul_data */ 149 OMAP5_IOPAD(0x19c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abemcpdm_ul_data.abemcpdm_ul_data */
150 0x15e (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abemcpdm_dl_data.abemcpdm_dl_data */ 150 OMAP5_IOPAD(0x19e, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abemcpdm_dl_data.abemcpdm_dl_data */
151 0x160 (PIN_INPUT_PULLUP | MUX_MODE0) /* abemcpdm_frame.abemcpdm_frame */ 151 OMAP5_IOPAD(0x1a0, PIN_INPUT_PULLUP | MUX_MODE0) /* abemcpdm_frame.abemcpdm_frame */
152 0x162 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abemcpdm_lb_clk.abemcpdm_lb_clk */ 152 OMAP5_IOPAD(0x1a2, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abemcpdm_lb_clk.abemcpdm_lb_clk */
153 >; 153 >;
154 }; 154 };
155 155
156 mcbsp1_pins: pinmux_mcbsp1_pins { 156 mcbsp1_pins: pinmux_mcbsp1_pins {
157 pinctrl-single,pins = < 157 pinctrl-single,pins = <
158 0x14c (PIN_INPUT | MUX_MODE1) /* abedmic_clk2.abemcbsp1_fsx */ 158 OMAP5_IOPAD(0x18c, PIN_INPUT | MUX_MODE1) /* abedmic_clk2.abemcbsp1_fsx */
159 0x14e (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* abedmic_clk3.abemcbsp1_dx */ 159 OMAP5_IOPAD(0x18e, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* abedmic_clk3.abemcbsp1_dx */
160 0x150 (PIN_INPUT | MUX_MODE1) /* abeslimbus1_clock.abemcbsp1_clkx */ 160 OMAP5_IOPAD(0x190, PIN_INPUT | MUX_MODE1) /* abeslimbus1_clock.abemcbsp1_clkx */
161 0x152 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* abeslimbus1_data.abemcbsp1_dr */ 161 OMAP5_IOPAD(0x192, PIN_INPUT_PULLDOWN | MUX_MODE1) /* abeslimbus1_data.abemcbsp1_dr */
162 >; 162 >;
163 }; 163 };
164 164
165 mcbsp2_pins: pinmux_mcbsp2_pins { 165 mcbsp2_pins: pinmux_mcbsp2_pins {
166 pinctrl-single,pins = < 166 pinctrl-single,pins = <
167 0x154 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abemcbsp2_dr.abemcbsp2_dr */ 167 OMAP5_IOPAD(0x194, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abemcbsp2_dr.abemcbsp2_dr */
168 0x156 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abemcbsp2_dx.abemcbsp2_dx */ 168 OMAP5_IOPAD(0x196, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abemcbsp2_dx.abemcbsp2_dx */
169 0x158 (PIN_INPUT | MUX_MODE0) /* abemcbsp2_fsx.abemcbsp2_fsx */ 169 OMAP5_IOPAD(0x198, PIN_INPUT | MUX_MODE0) /* abemcbsp2_fsx.abemcbsp2_fsx */
170 0x15a (PIN_INPUT | MUX_MODE0) /* abemcbsp2_clkx.abemcbsp2_clkx */ 170 OMAP5_IOPAD(0x19a, PIN_INPUT | MUX_MODE0) /* abemcbsp2_clkx.abemcbsp2_clkx */
171 >; 171 >;
172 }; 172 };
173 173
174 i2c1_pins: pinmux_i2c1_pins { 174 i2c1_pins: pinmux_i2c1_pins {
175 pinctrl-single,pins = < 175 pinctrl-single,pins = <
176 0x1b2 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */ 176 OMAP5_IOPAD(0x1f2, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */
177 0x1b4 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */ 177 OMAP5_IOPAD(0x1f4, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */
178 >; 178 >;
179 }; 179 };
180 180
181 mcspi2_pins: pinmux_mcspi2_pins { 181 mcspi2_pins: pinmux_mcspi2_pins {
182 pinctrl-single,pins = < 182 pinctrl-single,pins = <
183 0xbc (PIN_INPUT | MUX_MODE0) /* mcspi2_clk */ 183 OMAP5_IOPAD(0x0fc, PIN_INPUT | MUX_MODE0) /* mcspi2_clk */
184 0xbe (PIN_INPUT | MUX_MODE0) /* mcspi2_simo */ 184 OMAP5_IOPAD(0x0fe, PIN_INPUT | MUX_MODE0) /* mcspi2_simo */
185 0xc0 (PIN_INPUT_PULLUP | MUX_MODE0) /* mcspi2_somi */ 185 OMAP5_IOPAD(0x100, PIN_INPUT_PULLUP | MUX_MODE0) /* mcspi2_somi */
186 0xc2 (PIN_OUTPUT | MUX_MODE0) /* mcspi2_cs0 */ 186 OMAP5_IOPAD(0x102, PIN_OUTPUT | MUX_MODE0) /* mcspi2_cs0 */
187 >; 187 >;
188 }; 188 };
189 189
190 mcspi3_pins: pinmux_mcspi3_pins { 190 mcspi3_pins: pinmux_mcspi3_pins {
191 pinctrl-single,pins = < 191 pinctrl-single,pins = <
192 0x78 (PIN_INPUT | MUX_MODE1) /* mcspi3_somi */ 192 OMAP5_IOPAD(0x0b8, PIN_INPUT | MUX_MODE1) /* mcspi3_somi */
193 0x7a (PIN_INPUT | MUX_MODE1) /* mcspi3_cs0 */ 193 OMAP5_IOPAD(0x0ba, PIN_INPUT | MUX_MODE1) /* mcspi3_cs0 */
194 0x7c (PIN_INPUT | MUX_MODE1) /* mcspi3_simo */ 194 OMAP5_IOPAD(0x0bc, PIN_INPUT | MUX_MODE1) /* mcspi3_simo */
195 0x7e (PIN_INPUT | MUX_MODE1) /* mcspi3_clk */ 195 OMAP5_IOPAD(0x0be, PIN_INPUT | MUX_MODE1) /* mcspi3_clk */
196 >; 196 >;
197 }; 197 };
198 198
@@ -215,59 +215,59 @@
215 215
216 usbhost_pins: pinmux_usbhost_pins { 216 usbhost_pins: pinmux_usbhost_pins {
217 pinctrl-single,pins = < 217 pinctrl-single,pins = <
218 0x84 (PIN_INPUT | MUX_MODE0) /* usbb2_hsic_strobe */ 218 OMAP5_IOPAD(0x0c4, PIN_INPUT | MUX_MODE0) /* usbb2_hsic_strobe */
219 0x86 (PIN_INPUT | MUX_MODE0) /* usbb2_hsic_data */ 219 OMAP5_IOPAD(0x0c6, PIN_INPUT | MUX_MODE0) /* usbb2_hsic_data */
220 220
221 0x19e (PIN_INPUT | MUX_MODE0) /* usbb3_hsic_strobe */ 221 OMAP5_IOPAD(0x1de, PIN_INPUT | MUX_MODE0) /* usbb3_hsic_strobe */
222 0x1a0 (PIN_INPUT | MUX_MODE0) /* usbb3_hsic_data */ 222 OMAP5_IOPAD(0x1e0, PIN_INPUT | MUX_MODE0) /* usbb3_hsic_data */
223 223
224 0x70 (PIN_OUTPUT | MUX_MODE6) /* gpio3_80 HUB_NRESET */ 224 OMAP5_IOPAD(0x0b0, PIN_OUTPUT | MUX_MODE6) /* gpio3_80 HUB_NRESET */
225 0x6e (PIN_OUTPUT | MUX_MODE6) /* gpio3_79 ETH_NRESET */ 225 OMAP5_IOPAD(0x0ae, PIN_OUTPUT | MUX_MODE6) /* gpio3_79 ETH_NRESET */
226 >; 226 >;
227 }; 227 };
228 228
229 led_gpio_pins: pinmux_led_gpio_pins { 229 led_gpio_pins: pinmux_led_gpio_pins {
230 pinctrl-single,pins = < 230 pinctrl-single,pins = <
231 0x196 (PIN_OUTPUT | MUX_MODE6) /* uart3_cts_rctx.gpio5_153 */ 231 OMAP5_IOPAD(0x1d6, PIN_OUTPUT | MUX_MODE6) /* uart3_cts_rctx.gpio5_153 */
232 >; 232 >;
233 }; 233 };
234 234
235 uart1_pins: pinmux_uart1_pins { 235 uart1_pins: pinmux_uart1_pins {
236 pinctrl-single,pins = < 236 pinctrl-single,pins = <
237 0x60 (PIN_OUTPUT | MUX_MODE0) /* uart1_tx.uart1_cts */ 237 OMAP5_IOPAD(0x0a0, PIN_OUTPUT | MUX_MODE0) /* uart1_tx.uart1_cts */
238 0x62 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_tx.uart1_cts */ 238 OMAP5_IOPAD(0x0a2, PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_tx.uart1_cts */
239 0x64 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rx.uart1_rts */ 239 OMAP5_IOPAD(0x0a4, PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rx.uart1_rts */
240 0x66 (PIN_OUTPUT | MUX_MODE0) /* uart1_rx.uart1_rts */ 240 OMAP5_IOPAD(0x0a6, PIN_OUTPUT | MUX_MODE0) /* uart1_rx.uart1_rts */
241 >; 241 >;
242 }; 242 };
243 243
244 uart3_pins: pinmux_uart3_pins { 244 uart3_pins: pinmux_uart3_pins {
245 pinctrl-single,pins = < 245 pinctrl-single,pins = <
246 0x19a (PIN_OUTPUT | MUX_MODE0) /* uart3_rts_irsd.uart3_tx_irtx */ 246 OMAP5_IOPAD(0x1da, PIN_OUTPUT | MUX_MODE0) /* uart3_rts_irsd.uart3_tx_irtx */
247 0x19c (PIN_INPUT_PULLUP | MUX_MODE0) /* uart3_rx_irrx.uart3_usbb3_hsic */ 247 OMAP5_IOPAD(0x1dc, PIN_INPUT_PULLUP | MUX_MODE0) /* uart3_rx_irrx.uart3_usbb3_hsic */
248 >; 248 >;
249 }; 249 };
250 250
251 uart5_pins: pinmux_uart5_pins { 251 uart5_pins: pinmux_uart5_pins {
252 pinctrl-single,pins = < 252 pinctrl-single,pins = <
253 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart5_rx.uart5_rx */ 253 OMAP5_IOPAD(0x1b0, PIN_INPUT_PULLUP | MUX_MODE0) /* uart5_rx.uart5_rx */
254 0x172 (PIN_OUTPUT | MUX_MODE0) /* uart5_tx.uart5_tx */ 254 OMAP5_IOPAD(0x1b2, PIN_OUTPUT | MUX_MODE0) /* uart5_tx.uart5_tx */
255 0x174 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart5_cts.uart5_rts */ 255 OMAP5_IOPAD(0x1b4, PIN_INPUT_PULLUP | MUX_MODE0) /* uart5_cts.uart5_rts */
256 0x176 (PIN_OUTPUT | MUX_MODE0) /* uart5_cts.uart5_rts */ 256 OMAP5_IOPAD(0x1b6, PIN_OUTPUT | MUX_MODE0) /* uart5_cts.uart5_rts */
257 >; 257 >;
258 }; 258 };
259 259
260 dss_hdmi_pins: pinmux_dss_hdmi_pins { 260 dss_hdmi_pins: pinmux_dss_hdmi_pins {
261 pinctrl-single,pins = < 261 pinctrl-single,pins = <
262 0x0fc (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */ 262 OMAP5_IOPAD(0x13c, PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */
263 0x100 (PIN_INPUT | MUX_MODE0) /* hdmi_ddc_scl.hdmi_ddc_scl */ 263 OMAP5_IOPAD(0x140, PIN_INPUT | MUX_MODE0) /* hdmi_ddc_scl.hdmi_ddc_scl */
264 0x102 (PIN_INPUT | MUX_MODE0) /* hdmi_ddc_sda.hdmi_ddc_sda */ 264 OMAP5_IOPAD(0x142, PIN_INPUT | MUX_MODE0) /* hdmi_ddc_sda.hdmi_ddc_sda */
265 >; 265 >;
266 }; 266 };
267 267
268 tpd12s015_pins: pinmux_tpd12s015_pins { 268 tpd12s015_pins: pinmux_tpd12s015_pins {
269 pinctrl-single,pins = < 269 pinctrl-single,pins = <
270 0x0fe (PIN_INPUT_PULLDOWN | MUX_MODE6) /* hdmi_hpd.gpio7_193 */ 270 OMAP5_IOPAD(0x13e, PIN_INPUT_PULLDOWN | MUX_MODE6) /* hdmi_hpd.gpio7_193 */
271 >; 271 >;
272 }; 272 };
273}; 273};
@@ -280,13 +280,13 @@
280 280
281 usbhost_wkup_pins: pinmux_usbhost_wkup_pins { 281 usbhost_wkup_pins: pinmux_usbhost_wkup_pins {
282 pinctrl-single,pins = < 282 pinctrl-single,pins = <
283 0x1A (PIN_OUTPUT | MUX_MODE0) /* fref_clk1_out, USB hub clk */ 283 OMAP5_IOPAD(0x05a, PIN_OUTPUT | MUX_MODE0) /* fref_clk1_out, USB hub clk */
284 >; 284 >;
285 }; 285 };
286 286
287 wlcore_irq_pin: pinmux_wlcore_irq_pin { 287 wlcore_irq_pin: pinmux_wlcore_irq_pin {
288 pinctrl-single,pins = < 288 pinctrl-single,pins = <
289 OMAP5_IOPAD(0x040, WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE6) /* llia_wakereqin.gpio1_wk14 */ 289 OMAP5_IOPAD(0x40, WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE6) /* llia_wakereqin.gpio1_wk14 */
290 >; 290 >;
291 }; 291 };
292}; 292};
diff --git a/arch/arm/boot/dts/omap5-cm-t54.dts b/arch/arm/boot/dts/omap5-cm-t54.dts
index 3774b37be6c8..ecc591dc0778 100644
--- a/arch/arm/boot/dts/omap5-cm-t54.dts
+++ b/arch/arm/boot/dts/omap5-cm-t54.dts
@@ -175,7 +175,7 @@
175 175
176 ads7846_pins: pinmux_ads7846_pins { 176 ads7846_pins: pinmux_ads7846_pins {
177 pinctrl-single,pins = < 177 pinctrl-single,pins = <
178 0x02 (PIN_INPUT_PULLDOWN | MUX_MODE6) /* llib_wakereqin.gpio1_wk15 */ 178 OMAP5_IOPAD(0x0042, PIN_INPUT_PULLDOWN | MUX_MODE6) /* llib_wakereqin.gpio1_wk15 */
179 >; 179 >;
180 }; 180 };
181}; 181};
@@ -359,7 +359,7 @@
359 ti,debounce-tol = /bits/ 16 <10>; 359 ti,debounce-tol = /bits/ 16 <10>;
360 ti,debounce-rep = /bits/ 16 <1>; 360 ti,debounce-rep = /bits/ 16 <1>;
361 361
362 linux,wakeup; 362 wakeup-source;
363 }; 363 };
364}; 364};
365 365
diff --git a/arch/arm/boot/dts/omap5-uevm.dts b/arch/arm/boot/dts/omap5-uevm.dts
index 05b1c1ebded8..60b3fbb3bf07 100644
--- a/arch/arm/boot/dts/omap5-uevm.dts
+++ b/arch/arm/boot/dts/omap5-uevm.dts
@@ -40,8 +40,8 @@
40&omap5_pmx_core { 40&omap5_pmx_core {
41 i2c5_pins: pinmux_i2c5_pins { 41 i2c5_pins: pinmux_i2c5_pins {
42 pinctrl-single,pins = < 42 pinctrl-single,pins = <
43 0x186 (PIN_INPUT | MUX_MODE0) /* i2c5_scl */ 43 OMAP5_IOPAD(0x1c6, PIN_INPUT | MUX_MODE0) /* i2c5_scl */
44 0x188 (PIN_INPUT | MUX_MODE0) /* i2c5_sda */ 44 OMAP5_IOPAD(0x1c8, PIN_INPUT | MUX_MODE0) /* i2c5_sda */
45 >; 45 >;
46 }; 46 };
47}; 47};
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
index 4c04389dab32..ca3c17fde5a0 100644
--- a/arch/arm/boot/dts/omap5.dtsi
+++ b/arch/arm/boot/dts/omap5.dtsi
@@ -391,6 +391,8 @@
391 #address-cells = <2>; 391 #address-cells = <2>;
392 #size-cells = <1>; 392 #size-cells = <1>;
393 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 393 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
394 dmas = <&sdma 4>;
395 dma-names = "rxtx";
394 gpmc,num-cs = <8>; 396 gpmc,num-cs = <8>;
395 gpmc,num-waitpins = <4>; 397 gpmc,num-waitpins = <4>;
396 ti,hwmods = "gpmc"; 398 ti,hwmods = "gpmc";
diff --git a/arch/arm/boot/dts/phy3250.dts b/arch/arm/boot/dts/phy3250.dts
index 90fdbd77f274..7d253bb6265a 100644
--- a/arch/arm/boot/dts/phy3250.dts
+++ b/arch/arm/boot/dts/phy3250.dts
@@ -12,7 +12,7 @@
12 */ 12 */
13 13
14/dts-v1/; 14/dts-v1/;
15/include/ "lpc32xx.dtsi" 15#include "lpc32xx.dtsi"
16 16
17/ { 17/ {
18 model = "PHYTEC phyCORE-LPC3250 board based on NXP LPC3250"; 18 model = "PHYTEC phyCORE-LPC3250 board based on NXP LPC3250";
@@ -22,7 +22,7 @@
22 22
23 memory { 23 memory {
24 device_type = "memory"; 24 device_type = "memory";
25 reg = <0 0x4000000>; 25 reg = <0x80000000 0x4000000>;
26 }; 26 };
27 27
28 ahb { 28 ahb {
@@ -31,19 +31,6 @@
31 use-iram; 31 use-iram;
32 }; 32 };
33 33
34 /* Here, choose exactly one from: ohci, usbd */
35 ohci@31020000 {
36 transceiver = <&isp1301>;
37 status = "okay";
38 };
39
40/*
41 usbd@31020000 {
42 transceiver = <&isp1301>;
43 status = "okay";
44 };
45*/
46
47 clcd@31040000 { 34 clcd@31040000 {
48 status = "okay"; 35 status = "okay";
49 }; 36 };
@@ -123,15 +110,6 @@
123 clock-frequency = <100000>; 110 clock-frequency = <100000>;
124 }; 111 };
125 112
126 i2cusb: i2c@31020300 {
127 clock-frequency = <100000>;
128
129 isp1301: usb-transceiver@2c {
130 compatible = "nxp,isp1301";
131 reg = <0x2c>;
132 };
133 };
134
135 ssp0: ssp@20084000 { 113 ssp0: ssp@20084000 {
136 #address-cells = <1>; 114 #address-cells = <1>;
137 #size-cells = <0>; 115 #size-cells = <0>;
@@ -200,3 +178,18 @@
200 }; 178 };
201 }; 179 };
202}; 180};
181
182/* Here, choose exactly one from: ohci, usbd */
183&ohci /* &usbd */ {
184 transceiver = <&isp1301>;
185 status = "okay";
186};
187
188&i2cusb {
189 clock-frequency = <100000>;
190
191 isp1301: usb-transceiver@2c {
192 compatible = "nxp,isp1301";
193 reg = <0x2c>;
194 };
195};
diff --git a/arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts b/arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts
index 03784f1366e5..21095dad7741 100644
--- a/arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts
+++ b/arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts
@@ -54,7 +54,7 @@
54 54
55 55
56 /* Buck SMPS */ 56 /* Buck SMPS */
57 pm8921_s1: s1 { 57 s1 {
58 regulator-always-on; 58 regulator-always-on;
59 regulator-min-microvolt = <1225000>; 59 regulator-min-microvolt = <1225000>;
60 regulator-max-microvolt = <1225000>; 60 regulator-max-microvolt = <1225000>;
@@ -62,43 +62,43 @@
62 bias-pull-down; 62 bias-pull-down;
63 }; 63 };
64 64
65 pm8921_s3: s3 { 65 s3 {
66 regulator-min-microvolt = <1000000>; 66 regulator-min-microvolt = <1000000>;
67 regulator-max-microvolt = <1400000>; 67 regulator-max-microvolt = <1400000>;
68 qcom,switch-mode-frequency = <4800000>; 68 qcom,switch-mode-frequency = <4800000>;
69 }; 69 };
70 70
71 pm8921_s4: s4 { 71 s4 {
72 regulator-min-microvolt = <1800000>; 72 regulator-min-microvolt = <1800000>;
73 regulator-max-microvolt = <1800000>; 73 regulator-max-microvolt = <1800000>;
74 qcom,switch-mode-frequency = <3200000>; 74 qcom,switch-mode-frequency = <3200000>;
75 }; 75 };
76 76
77 pm8921_s7: s7 { 77 s7 {
78 regulator-min-microvolt = <1300000>; 78 regulator-min-microvolt = <1300000>;
79 regulator-max-microvolt = <1300000>; 79 regulator-max-microvolt = <1300000>;
80 qcom,switch-mode-frequency = <3200000>; 80 qcom,switch-mode-frequency = <3200000>;
81 }; 81 };
82 82
83 pm8921_l3: l3 { 83 l3 {
84 regulator-min-microvolt = <3050000>; 84 regulator-min-microvolt = <3050000>;
85 regulator-max-microvolt = <3300000>; 85 regulator-max-microvolt = <3300000>;
86 bias-pull-down; 86 bias-pull-down;
87 }; 87 };
88 88
89 pm8921_l4: l4 { 89 l4 {
90 regulator-min-microvolt = <1000000>; 90 regulator-min-microvolt = <1000000>;
91 regulator-max-microvolt = <1800000>; 91 regulator-max-microvolt = <1800000>;
92 bias-pull-down; 92 bias-pull-down;
93 }; 93 };
94 94
95 pm8921_l5: l5 { 95 l5 {
96 regulator-min-microvolt = <2750000>; 96 regulator-min-microvolt = <2750000>;
97 regulator-max-microvolt = <3000000>; 97 regulator-max-microvolt = <3000000>;
98 bias-pull-down; 98 bias-pull-down;
99 }; 99 };
100 100
101 pm8921_l23: l23 { 101 l23 {
102 regulator-min-microvolt = <1700000>; 102 regulator-min-microvolt = <1700000>;
103 regulator-max-microvolt = <1900000>; 103 regulator-max-microvolt = <1900000>;
104 bias-pull-down; 104 bias-pull-down;
diff --git a/arch/arm/boot/dts/qcom-apq8064-ifc6410.dts b/arch/arm/boot/dts/qcom-apq8064-ifc6410.dts
index 11ac608b6d50..aa9303b84d67 100644
--- a/arch/arm/boot/dts/qcom-apq8064-ifc6410.dts
+++ b/arch/arm/boot/dts/qcom-apq8064-ifc6410.dts
@@ -64,7 +64,7 @@
64 64
65 65
66 /* Buck SMPS */ 66 /* Buck SMPS */
67 pm8921_s1: s1 { 67 s1 {
68 regulator-always-on; 68 regulator-always-on;
69 regulator-min-microvolt = <1225000>; 69 regulator-min-microvolt = <1225000>;
70 regulator-max-microvolt = <1225000>; 70 regulator-max-microvolt = <1225000>;
@@ -72,55 +72,55 @@
72 bias-pull-down; 72 bias-pull-down;
73 }; 73 };
74 74
75 pm8921_s3: s3 { 75 s3 {
76 regulator-min-microvolt = <1000000>; 76 regulator-min-microvolt = <1000000>;
77 regulator-max-microvolt = <1400000>; 77 regulator-max-microvolt = <1400000>;
78 qcom,switch-mode-frequency = <4800000>; 78 qcom,switch-mode-frequency = <4800000>;
79 }; 79 };
80 80
81 pm8921_s4: s4 { 81 s4 {
82 regulator-min-microvolt = <1800000>; 82 regulator-min-microvolt = <1800000>;
83 regulator-max-microvolt = <1800000>; 83 regulator-max-microvolt = <1800000>;
84 qcom,switch-mode-frequency = <3200000>; 84 qcom,switch-mode-frequency = <3200000>;
85 }; 85 };
86 86
87 pm8921_s7: s7 { 87 s7 {
88 regulator-min-microvolt = <1300000>; 88 regulator-min-microvolt = <1300000>;
89 regulator-max-microvolt = <1300000>; 89 regulator-max-microvolt = <1300000>;
90 qcom,switch-mode-frequency = <3200000>; 90 qcom,switch-mode-frequency = <3200000>;
91 }; 91 };
92 92
93 pm8921_l3: l3 { 93 l3 {
94 regulator-min-microvolt = <3050000>; 94 regulator-min-microvolt = <3050000>;
95 regulator-max-microvolt = <3300000>; 95 regulator-max-microvolt = <3300000>;
96 bias-pull-down; 96 bias-pull-down;
97 }; 97 };
98 98
99 pm8921_l4: l4 { 99 l4 {
100 regulator-min-microvolt = <1000000>; 100 regulator-min-microvolt = <1000000>;
101 regulator-max-microvolt = <1800000>; 101 regulator-max-microvolt = <1800000>;
102 bias-pull-down; 102 bias-pull-down;
103 }; 103 };
104 104
105 pm8921_l5: l5 { 105 l5 {
106 regulator-min-microvolt = <2750000>; 106 regulator-min-microvolt = <2750000>;
107 regulator-max-microvolt = <3000000>; 107 regulator-max-microvolt = <3000000>;
108 bias-pull-down; 108 bias-pull-down;
109 }; 109 };
110 110
111 pm8921_l6: l6 { 111 l6 {
112 regulator-min-microvolt = <2950000>; 112 regulator-min-microvolt = <2950000>;
113 regulator-max-microvolt = <2950000>; 113 regulator-max-microvolt = <2950000>;
114 bias-pull-down; 114 bias-pull-down;
115 }; 115 };
116 116
117 pm8921_l23: l23 { 117 l23 {
118 regulator-min-microvolt = <1700000>; 118 regulator-min-microvolt = <1700000>;
119 regulator-max-microvolt = <1900000>; 119 regulator-max-microvolt = <1900000>;
120 bias-pull-down; 120 bias-pull-down;
121 }; 121 };
122 122
123 pm8921_lvs1: lvs1 { 123 lvs1 {
124 bias-pull-down; 124 bias-pull-down;
125 }; 125 };
126 }; 126 };
@@ -164,7 +164,7 @@
164 164
165 gsbi@16500000 { 165 gsbi@16500000 {
166 status = "ok"; 166 status = "ok";
167 qcom,mode = <GSBI_PROT_I2C_UART>; 167 qcom,mode = <GSBI_PROT_UART_W_FC>;
168 168
169 serial@16540000 { 169 serial@16540000 {
170 status = "ok"; 170 status = "ok";
diff --git a/arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts b/arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts
new file mode 100644
index 000000000000..06b3c76c3e41
--- /dev/null
+++ b/arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts
@@ -0,0 +1,436 @@
1#include "qcom-apq8064-v2.0.dtsi"
2#include <dt-bindings/gpio/gpio.h>
3#include <dt-bindings/input/input.h>
4#include <dt-bindings/mfd/qcom-rpm.h>
5#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
6
7/ {
8 model = "Sony Xperia Z";
9 compatible = "sony,xperia-yuga", "qcom,apq8064";
10
11 aliases {
12 serial0 = &gsbi5_serial;
13 };
14
15 chosen {
16 stdout-path = "serial0:115200n8";
17 };
18
19 gpio-keys {
20 compatible = "gpio-keys";
21 input-name = "gpio-keys";
22
23 pinctrl-names = "default";
24 pinctrl-0 = <&gpio_keys_pin_a>;
25
26 camera-focus {
27 label = "camera_focus";
28 gpios = <&pm8921_gpio 3 GPIO_ACTIVE_LOW>;
29 linux,input-type = <1>;
30 linux,code = <KEY_CAMERA_FOCUS>;
31 };
32
33 camera-snapshot {
34 label = "camera_snapshot";
35 gpios = <&pm8921_gpio 4 GPIO_ACTIVE_LOW>;
36 linux,input-type = <1>;
37 linux,code = <KEY_CAMERA>;
38 };
39
40 volume-down {
41 label = "volume_down";
42 gpios = <&pm8921_gpio 29 GPIO_ACTIVE_LOW>;
43 linux,input-type = <1>;
44 linux,code = <KEY_VOLUMEDOWN>;
45 };
46
47 volume-up {
48 label = "volume_up";
49 gpios = <&pm8921_gpio 35 GPIO_ACTIVE_LOW>;
50 linux,input-type = <1>;
51 linux,code = <KEY_VOLUMEUP>;
52 };
53 };
54
55 soc {
56 pinctrl@800000 {
57 gsbi5_uart_pin_a: gsbi5-uart-pin-active {
58 rx {
59 pins = "gpio52";
60 function = "gsbi5";
61 drive-strength = <2>;
62 bias-pull-up;
63 };
64
65 tx {
66 pins = "gpio51";
67 function = "gsbi5";
68 drive-strength = <4>;
69 bias-disable;
70 };
71 };
72
73 sdcc1_pin_a: sdcc1-pin-active {
74 clk {
75 pins = "sdc1_clk";
76 drive-strengh = <16>;
77 bias-disable;
78 };
79
80 cmd {
81 pins = "sdc1_cmd";
82 drive-strengh = <10>;
83 bias-pull-up;
84 };
85
86 data {
87 pins = "sdc1_data";
88 drive-strengh = <10>;
89 bias-pull-up;
90 };
91 };
92
93 sdcc3_pin_a: sdcc3-pin-active {
94 clk {
95 pins = "sdc3_clk";
96 drive-strengh = <8>;
97 bias-disable;
98 };
99
100 cmd {
101 pins = "sdc3_cmd";
102 drive-strengh = <8>;
103 bias-pull-up;
104 };
105
106 data {
107 pins = "sdc3_data";
108 drive-strengh = <8>;
109 bias-pull-up;
110 };
111 };
112
113 sdcc3_cd_pin_a: sdcc3-cd-pin-active {
114 pins = "gpio26";
115 function = "gpio";
116
117 drive-strength = <2>;
118 bias-disable;
119 };
120 };
121
122
123 rpm@108000 {
124 regulators {
125 vin_l1_l2_l12_l18-supply = <&pm8921_s4>;
126 vin_lvs_1_3_6-supply = <&pm8921_s4>;
127 vin_lvs_4_5_7-supply = <&pm8921_s4>;
128 vin_ncp-supply = <&pm8921_l6>;
129 vin_lvs2-supply = <&pm8921_s4>;
130 vin_l24-supply = <&pm8921_s1>;
131 vin_l25-supply = <&pm8921_s1>;
132 vin_l27-supply = <&pm8921_s7>;
133 vin_l28-supply = <&pm8921_s7>;
134
135 /* Buck SMPS */
136 s1 {
137 regulator-always-on;
138 regulator-min-microvolt = <1225000>;
139 regulator-max-microvolt = <1225000>;
140 qcom,switch-mode-frequency = <3200000>;
141 bias-pull-down;
142 };
143
144 s2 {
145 regulator-min-microvolt = <1300000>;
146 regulator-max-microvolt = <1300000>;
147 qcom,switch-mode-frequency = <1600000>;
148 bias-pull-down;
149 };
150
151 s3 {
152 regulator-min-microvolt = <500000>;
153 regulator-max-microvolt = <1150000>;
154 qcom,switch-mode-frequency = <4800000>;
155 bias-pull-down;
156 };
157
158 s4 {
159 regulator-always-on;
160 regulator-min-microvolt = <1800000>;
161 regulator-max-microvolt = <1800000>;
162 qcom,switch-mode-frequency = <1600000>;
163 bias-pull-down;
164 qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
165 };
166
167 s7 {
168 regulator-min-microvolt = <1300000>;
169 regulator-max-microvolt = <1300000>;
170 qcom,switch-mode-frequency = <3200000>;
171 };
172
173 s8 {
174 regulator-min-microvolt = <2200000>;
175 regulator-max-microvolt = <2200000>;
176 qcom,switch-mode-frequency = <1600000>;
177 };
178
179 /* PMOS LDO */
180 l1 {
181 regulator-always-on;
182 regulator-min-microvolt = <1100000>;
183 regulator-max-microvolt = <1100000>;
184 bias-pull-down;
185 };
186
187 l2 {
188 regulator-min-microvolt = <1200000>;
189 regulator-max-microvolt = <1200000>;
190 bias-pull-down;
191 };
192
193 l3 {
194 regulator-min-microvolt = <3075000>;
195 regulator-max-microvolt = <3075000>;
196 bias-pull-down;
197 };
198
199 l4 {
200 regulator-always-on;
201 regulator-min-microvolt = <1800000>;
202 regulator-max-microvolt = <1800000>;
203 bias-pull-down;
204 };
205
206 l5 {
207 regulator-min-microvolt = <2950000>;
208 regulator-max-microvolt = <2950000>;
209 bias-pull-down;
210 };
211
212 l6 {
213 regulator-min-microvolt = <2950000>;
214 regulator-max-microvolt = <2950000>;
215 bias-pull-down;
216 };
217
218 l7 {
219 regulator-min-microvolt = <1850000>;
220 regulator-max-microvolt = <2950000>;
221 bias-pull-down;
222 };
223
224 l8 {
225 regulator-min-microvolt = <2800000>;
226 regulator-max-microvolt = <2800000>;
227 bias-pull-down;
228 };
229
230 l9 {
231 regulator-min-microvolt = <3000000>;
232 regulator-max-microvolt = <3000000>;
233 bias-pull-down;
234 };
235
236 l10 {
237 regulator-min-microvolt = <2900000>;
238 regulator-max-microvolt = <2900000>;
239 bias-pull-down;
240 };
241
242 l11 {
243 regulator-min-microvolt = <3000000>;
244 regulator-max-microvolt = <3000000>;
245 bias-pull-down;
246 };
247
248 l12 {
249 regulator-min-microvolt = <1200000>;
250 regulator-max-microvolt = <1200000>;
251 bias-pull-down;
252 };
253
254 l14 {
255 regulator-min-microvolt = <1800000>;
256 regulator-max-microvolt = <1800000>;
257 bias-pull-down;
258 };
259
260 l15 {
261 regulator-min-microvolt = <1800000>;
262 regulator-max-microvolt = <2950000>;
263 bias-pull-down;
264 };
265
266 l16 {
267 regulator-min-microvolt = <2800000>;
268 regulator-max-microvolt = <2800000>;
269 bias-pull-down;
270 };
271
272 l17 {
273 regulator-min-microvolt = <2000000>;
274 regulator-max-microvolt = <2000000>;
275 bias-pull-down;
276 };
277
278 l18 {
279 regulator-min-microvolt = <1200000>;
280 regulator-max-microvolt = <1200000>;
281 bias-pull-down;
282 };
283
284 l21 {
285 regulator-min-microvolt = <1050000>;
286 regulator-max-microvolt = <1050000>;
287 bias-pull-down;
288 };
289
290 l22 {
291 regulator-min-microvolt = <2600000>;
292 regulator-max-microvolt = <2600000>;
293 bias-pull-down;
294 };
295
296 l23 {
297 regulator-min-microvolt = <1800000>;
298 regulator-max-microvolt = <1800000>;
299 bias-pull-down;
300 };
301
302 l24 {
303 regulator-min-microvolt = <750000>;
304 regulator-max-microvolt = <1150000>;
305 bias-pull-down;
306 };
307
308 l25 {
309 regulator-always-on;
310 regulator-min-microvolt = <1250000>;
311 regulator-max-microvolt = <1250000>;
312 bias-pull-down;
313 };
314
315 l27 {
316 regulator-min-microvolt = <1100000>;
317 regulator-max-microvolt = <1100000>;
318 };
319
320 l28 {
321 regulator-min-microvolt = <1050000>;
322 regulator-max-microvolt = <1050000>;
323 bias-pull-down;
324 };
325
326 l29 {
327 regulator-min-microvolt = <2000000>;
328 regulator-max-microvolt = <2000000>;
329 bias-pull-down;
330 };
331
332 /* Low Voltage Switch */
333 lvs1 {
334 bias-pull-down;
335 };
336
337 lvs2 {
338 bias-pull-down;
339 };
340
341 lvs3 {
342 bias-pull-down;
343 };
344
345 lvs4 {
346 bias-pull-down;
347 };
348
349 lvs5 {
350 bias-pull-down;
351 };
352
353 lvs6 {
354 bias-pull-down;
355 };
356
357 lvs7 {
358 bias-pull-down;
359 };
360
361 usb-switch {};
362
363 hdmi-switch {};
364
365 ncp {
366 regulator-min-microvolt = <1800000>;
367 regulator-max-microvolt = <1800000>;
368 qcom,switch-mode-frequency = <1600000>;
369 };
370 };
371 };
372
373 qcom,ssbi@500000 {
374 pmic@0 {
375 gpio@150 {
376 gpio_keys_pin_a: gpio-keys-pin-active {
377 pins = "gpio3", "gpio4", "gpio29", "gpio35";
378 function = "normal";
379
380 bias-pull-up;
381 drive-push-pull;
382 input-enable;
383 power-source = <2>;
384 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
385 qcom,pull-up-strength = <0>;
386 };
387 };
388 };
389 };
390
391 phy@12500000 {
392 status = "okay";
393 vddcx-supply = <&pm8921_s3>;
394 v3p3-supply = <&pm8921_l3>;
395 v1p8-supply = <&pm8921_l4>;
396 };
397
398 gadget@12500000 {
399 status = "okay";
400 };
401
402 gsbi@1a200000 {
403 status = "ok";
404 qcom,mode = <GSBI_PROT_I2C_UART>;
405
406 serial@1a240000 {
407 status = "ok";
408
409 pinctrl-names = "default";
410 pinctrl-0 = <&gsbi5_uart_pin_a>;
411 };
412 };
413
414 amba {
415 sdcc1: sdcc@12400000 {
416 status = "okay";
417
418 vmmc-supply = <&pm8921_l5>;
419 vqmmc-supply = <&pm8921_s4>;
420
421 pinctrl-names = "default";
422 pinctrl-0 = <&sdcc1_pin_a>;
423 };
424
425 sdcc3: sdcc@12180000 {
426 status = "okay";
427
428 vmmc-supply = <&pm8921_l6>;
429 cd-gpios = <&tlmm_pinmux 26 GPIO_ACTIVE_LOW>;
430
431 pinctrl-names = "default";
432 pinctrl-0 = <&sdcc3_pin_a>, <&sdcc3_cd_pin_a>;
433 };
434 };
435 };
436};
diff --git a/arch/arm/boot/dts/qcom-apq8064.dtsi b/arch/arm/boot/dts/qcom-apq8064.dtsi
index a4c1762b53ea..edfc6ee56ea1 100644
--- a/arch/arm/boot/dts/qcom-apq8064.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8064.dtsi
@@ -11,6 +11,17 @@
11 compatible = "qcom,apq8064"; 11 compatible = "qcom,apq8064";
12 interrupt-parent = <&intc>; 12 interrupt-parent = <&intc>;
13 13
14 reserved-memory {
15 #address-cells = <1>;
16 #size-cells = <1>;
17 ranges;
18
19 smem_region: smem@80000000 {
20 reg = <0x80000000 0x200000>;
21 no-map;
22 };
23 };
24
14 cpus { 25 cpus {
15 #address-cells = <1>; 26 #address-cells = <1>;
16 #size-cells = <0>; 27 #size-cells = <0>;
@@ -80,6 +91,39 @@
80 interrupts = <1 10 0x304>; 91 interrupts = <1 10 0x304>;
81 }; 92 };
82 93
94 clocks {
95 cxo_board {
96 compatible = "fixed-clock";
97 #clock-cells = <0>;
98 clock-frequency = <19200000>;
99 };
100
101 pxo_board {
102 compatible = "fixed-clock";
103 #clock-cells = <0>;
104 clock-frequency = <27000000>;
105 };
106
107 sleep_clk {
108 compatible = "fixed-clock";
109 #clock-cells = <0>;
110 clock-frequency = <32768>;
111 };
112 };
113
114 sfpb_mutex: hwmutex {
115 compatible = "qcom,sfpb-mutex";
116 syscon = <&sfpb_wrapper_mutex 0x604 0x4>;
117 #hwlock-cells = <1>;
118 };
119
120 smem {
121 compatible = "qcom,smem";
122 memory-region = <&smem_region>;
123
124 hwlocks = <&sfpb_mutex 3>;
125 };
126
83 soc: soc { 127 soc: soc {
84 #address-cells = <1>; 128 #address-cells = <1>;
85 #size-cells = <1>; 129 #size-cells = <1>;
@@ -156,6 +200,11 @@
156 }; 200 };
157 }; 201 };
158 202
203 sfpb_wrapper_mutex: syscon@1200000 {
204 compatible = "syscon";
205 reg = <0x01200000 0x8000>;
206 };
207
159 intc: interrupt-controller@2000000 { 208 intc: interrupt-controller@2000000 {
160 compatible = "qcom,msm-qgic2"; 209 compatible = "qcom,msm-qgic2";
161 interrupt-controller; 210 interrupt-controller;
@@ -291,6 +340,28 @@
291 }; 340 };
292 }; 341 };
293 342
343 gsbi5: gsbi@1a200000 {
344 status = "disabled";
345 compatible = "qcom,gsbi-v1.0.0";
346 cell-index = <5>;
347 reg = <0x1a200000 0x03>;
348 clocks = <&gcc GSBI5_H_CLK>;
349 clock-names = "iface";
350 #address-cells = <1>;
351 #size-cells = <1>;
352 ranges;
353
354 gsbi5_serial: serial@1a240000 {
355 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
356 reg = <0x1a240000 0x100>,
357 <0x1a200000 0x03>;
358 interrupts = <0 154 0x0>;
359 clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>;
360 clock-names = "core", "iface";
361 status = "disabled";
362 };
363 };
364
294 gsbi6: gsbi@16500000 { 365 gsbi6: gsbi@16500000 {
295 status = "disabled"; 366 status = "disabled";
296 compatible = "qcom,gsbi-v1.0.0"; 367 compatible = "qcom,gsbi-v1.0.0";
@@ -336,6 +407,13 @@
336 }; 407 };
337 }; 408 };
338 409
410 rng@1a500000 {
411 compatible = "qcom,prng";
412 reg = <0x1a500000 0x200>;
413 clocks = <&gcc PRNG_CLK>;
414 clock-names = "core";
415 };
416
339 qcom,ssbi@500000 { 417 qcom,ssbi@500000 {
340 compatible = "qcom,ssbi"; 418 compatible = "qcom,ssbi";
341 reg = <0x00500000 0x1000>; 419 reg = <0x00500000 0x1000>;
@@ -352,7 +430,8 @@
352 430
353 pm8921_gpio: gpio@150 { 431 pm8921_gpio: gpio@150 {
354 432
355 compatible = "qcom,pm8921-gpio"; 433 compatible = "qcom,pm8921-gpio",
434 "qcom,ssbi-gpio";
356 reg = <0x150>; 435 reg = <0x150>;
357 interrupts = <192 1>, <193 1>, <194 1>, 436 interrupts = <192 1>, <193 1>, <194 1>,
358 <195 1>, <196 1>, <197 1>, 437 <195 1>, <196 1>, <197 1>,
@@ -376,7 +455,8 @@
376 }; 455 };
377 456
378 pm8921_mpps: mpps@50 { 457 pm8921_mpps: mpps@50 {
379 compatible = "qcom,pm8921-mpp"; 458 compatible = "qcom,pm8921-mpp",
459 "qcom,ssbi-mpp";
380 reg = <0x50>; 460 reg = <0x50>;
381 gpio-controller; 461 gpio-controller;
382 #gpio-cells = <2>; 462 #gpio-cells = <2>;
@@ -444,9 +524,55 @@
444 regulators { 524 regulators {
445 compatible = "qcom,rpm-pm8921-regulators"; 525 compatible = "qcom,rpm-pm8921-regulators";
446 526
527 pm8921_s1: s1 {};
528 pm8921_s2: s2 {};
529 pm8921_s3: s3 {};
530 pm8921_s4: s4 {};
531 pm8921_s7: s7 {};
532 pm8921_s8: s8 {};
533
534 pm8921_l1: l1 {};
535 pm8921_l2: l2 {};
536 pm8921_l3: l3 {};
537 pm8921_l4: l4 {};
538 pm8921_l5: l5 {};
539 pm8921_l6: l6 {};
540 pm8921_l7: l7 {};
541 pm8921_l8: l8 {};
542 pm8921_l9: l9 {};
543 pm8921_l10: l10 {};
544 pm8921_l11: l11 {};
545 pm8921_l12: l12 {};
546 pm8921_l14: l14 {};
547 pm8921_l15: l15 {};
548 pm8921_l16: l16 {};
549 pm8921_l17: l17 {};
550 pm8921_l18: l18 {};
551 pm8921_l21: l21 {};
552 pm8921_l22: l22 {};
553 pm8921_l23: l23 {};
554 pm8921_l24: l24 {};
555 pm8921_l25: l25 {};
556 pm8921_l26: l26 {};
557 pm8921_l27: l27 {};
558 pm8921_l28: l28 {};
559 pm8921_l29: l29 {};
560
561 pm8921_lvs1: lvs1 {};
562 pm8921_lvs2: lvs2 {};
563 pm8921_lvs3: lvs3 {};
564 pm8921_lvs4: lvs4 {};
565 pm8921_lvs5: lvs5 {};
566 pm8921_lvs6: lvs6 {};
567 pm8921_lvs7: lvs7 {};
568
569 pm8921_usb_switch: usb-switch {};
570
447 pm8921_hdmi_switch: hdmi-switch { 571 pm8921_hdmi_switch: hdmi-switch {
448 bias-pull-down; 572 bias-pull-down;
449 }; 573 };
574
575 pm8921_ncp: ncp {};
450 }; 576 };
451 }; 577 };
452 578
diff --git a/arch/arm/boot/dts/qcom-apq8074-dragonboard.dts b/arch/arm/boot/dts/qcom-apq8074-dragonboard.dts
index 835bdc71c5ba..c0e205315042 100644
--- a/arch/arm/boot/dts/qcom-apq8074-dragonboard.dts
+++ b/arch/arm/boot/dts/qcom-apq8074-dragonboard.dts
@@ -8,6 +8,8 @@
8 8
9 aliases { 9 aliases {
10 serial0 = &blsp1_uart2; 10 serial0 = &blsp1_uart2;
11 usid0 = &pm8941_0;
12 usid4 = &pm8841_0;
11 }; 13 };
12 14
13 chosen { 15 chosen {
diff --git a/arch/arm/boot/dts/qcom-apq8084-ifc6540.dts b/arch/arm/boot/dts/qcom-apq8084-ifc6540.dts
index c9c2b769554f..2052b84a77c6 100644
--- a/arch/arm/boot/dts/qcom-apq8084-ifc6540.dts
+++ b/arch/arm/boot/dts/qcom-apq8084-ifc6540.dts
@@ -3,10 +3,11 @@
3 3
4/ { 4/ {
5 model = "Qualcomm APQ8084/IFC6540"; 5 model = "Qualcomm APQ8084/IFC6540";
6 compatible = "qcom,apq8084-ifc6540", "qcom,apq8084"; 6 compatible = "qcom,apq8084-sbc", "qcom,apq8084";
7 7
8 aliases { 8 aliases {
9 serial0 = &blsp2_uart2; 9 serial0 = &blsp2_uart2;
10 usid0 = &pma8084_0;
10 }; 11 };
11 12
12 chosen { 13 chosen {
diff --git a/arch/arm/boot/dts/qcom-apq8084-mtp.dts b/arch/arm/boot/dts/qcom-apq8084-mtp.dts
index 3016c7048d44..d174d15bcf70 100644
--- a/arch/arm/boot/dts/qcom-apq8084-mtp.dts
+++ b/arch/arm/boot/dts/qcom-apq8084-mtp.dts
@@ -7,6 +7,7 @@
7 7
8 aliases { 8 aliases {
9 serial0 = &blsp2_uart2; 9 serial0 = &blsp2_uart2;
10 usid0 = &pma8084_0;
10 }; 11 };
11 12
12 chosen { 13 chosen {
diff --git a/arch/arm/boot/dts/qcom-apq8084.dtsi b/arch/arm/boot/dts/qcom-apq8084.dtsi
index fcffecae3e67..08214cbae16d 100644
--- a/arch/arm/boot/dts/qcom-apq8084.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8084.dtsi
@@ -10,6 +10,17 @@
10 compatible = "qcom,apq8084"; 10 compatible = "qcom,apq8084";
11 interrupt-parent = <&intc>; 11 interrupt-parent = <&intc>;
12 12
13 reserved-memory {
14 #address-cells = <1>;
15 #size-cells = <1>;
16 ranges;
17
18 smem_mem: smem_region@fa00000 {
19 reg = <0xfa00000 0x200000>;
20 no-map;
21 };
22 };
23
13 cpus { 24 cpus {
14 #address-cells = <1>; 25 #address-cells = <1>;
15 #size-cells = <0>; 26 #size-cells = <0>;
@@ -89,6 +100,15 @@
89 clock-frequency = <19200000>; 100 clock-frequency = <19200000>;
90 }; 101 };
91 102
103 smem {
104 compatible = "qcom,smem";
105
106 qcom,rpm-msg-ram = <&rpm_msg_ram>;
107 memory-region = <&smem_mem>;
108
109 hwlocks = <&tcsr_mutex 3>;
110 };
111
92 soc: soc { 112 soc: soc {
93 #address-cells = <1>; 113 #address-cells = <1>;
94 #size-cells = <1>; 114 #size-cells = <1>;
@@ -103,6 +123,11 @@
103 <0xf9002000 0x1000>; 123 <0xf9002000 0x1000>;
104 }; 124 };
105 125
126 apcs: syscon@f9011000 {
127 compatible = "syscon";
128 reg = <0xf9011000 0x1000>;
129 };
130
106 timer@f9020000 { 131 timer@f9020000 {
107 #address-cells = <1>; 132 #address-cells = <1>;
108 #size-cells = <1>; 133 #size-cells = <1>;
@@ -225,6 +250,22 @@
225 reg = <0xfc400000 0x4000>; 250 reg = <0xfc400000 0x4000>;
226 }; 251 };
227 252
253 tcsr_mutex_regs: syscon@fd484000 {
254 compatible = "syscon";
255 reg = <0xfd484000 0x2000>;
256 };
257
258 tcsr_mutex: hwlock {
259 compatible = "qcom,tcsr-mutex";
260 syscon = <&tcsr_mutex_regs 0 0x80>;
261 #hwlock-cells = <1>;
262 };
263
264 rpm_msg_ram: memory@fc428000 {
265 compatible = "qcom,rpm-msg-ram";
266 reg = <0xfc428000 0x4000>;
267 };
268
228 tlmm: pinctrl@fd510000 { 269 tlmm: pinctrl@fd510000 {
229 compatible = "qcom,apq8084-pinctrl"; 270 compatible = "qcom,apq8084-pinctrl";
230 reg = <0xfd510000 0x4000>; 271 reg = <0xfd510000 0x4000>;
@@ -282,4 +323,71 @@
282 #interrupt-cells = <4>; 323 #interrupt-cells = <4>;
283 }; 324 };
284 }; 325 };
326
327 smd {
328 compatible = "qcom,smd";
329
330 rpm {
331 interrupts = <0 168 1>;
332 qcom,ipc = <&apcs 8 0>;
333 qcom,smd-edge = <15>;
334
335 rpm_requests {
336 compatible = "qcom,rpm-apq8084";
337 qcom,smd-channels = "rpm_requests";
338
339 pma8084-regulators {
340 compatible = "qcom,rpm-pma8084-regulators";
341
342 pma8084_s1: s1 {};
343 pma8084_s2: s2 {};
344 pma8084_s3: s3 {};
345 pma8084_s4: s4 {};
346 pma8084_s5: s5 {};
347 pma8084_s6: s6 {};
348 pma8084_s7: s7 {};
349 pma8084_s8: s8 {};
350 pma8084_s9: s9 {};
351 pma8084_s10: s10 {};
352 pma8084_s11: s11 {};
353 pma8084_s12: s12 {};
354
355 pma8084_l1: l1 {};
356 pma8084_l2: l2 {};
357 pma8084_l3: l3 {};
358 pma8084_l4: l4 {};
359 pma8084_l5: l5 {};
360 pma8084_l6: l6 {};
361 pma8084_l7: l7 {};
362 pma8084_l8: l8 {};
363 pma8084_l9: l9 {};
364 pma8084_l10: l10 {};
365 pma8084_l11: l11 {};
366 pma8084_l12: l12 {};
367 pma8084_l13: l13 {};
368 pma8084_l14: l14 {};
369 pma8084_l15: l15 {};
370 pma8084_l16: l16 {};
371 pma8084_l17: l17 {};
372 pma8084_l18: l18 {};
373 pma8084_l19: l19 {};
374 pma8084_l20: l20 {};
375 pma8084_l21: l21 {};
376 pma8084_l22: l22 {};
377 pma8084_l23: l23 {};
378 pma8084_l24: l24 {};
379 pma8084_l25: l25 {};
380 pma8084_l26: l26 {};
381 pma8084_l27: l27 {};
382
383 pma8084_lvs1: lvs1 {};
384 pma8084_lvs2: lvs2 {};
385 pma8084_lvs3: lvs3 {};
386 pma8084_lvs4: lvs4 {};
387
388 pma8084_5vs1: 5vs1 {};
389 };
390 };
391 };
392 };
285}; 393};
diff --git a/arch/arm/boot/dts/qcom-msm8960.dtsi b/arch/arm/boot/dts/qcom-msm8960.dtsi
index 134cd91d68ec..51a40d84145c 100644
--- a/arch/arm/boot/dts/qcom-msm8960.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8960.dtsi
@@ -49,6 +49,29 @@
49 qcom,no-pc-write; 49 qcom,no-pc-write;
50 }; 50 };
51 51
52 clocks {
53 cxo_board {
54 compatible = "fixed-clock";
55 #clock-cells = <0>;
56 clock-frequency = <19200000>;
57 clock-output-names = "cxo_board";
58 };
59
60 pxo_board {
61 compatible = "fixed-clock";
62 #clock-cells = <0>;
63 clock-frequency = <27000000>;
64 clock-output-names = "pxo_board";
65 };
66
67 sleep_clk {
68 compatible = "fixed-clock";
69 #clock-cells = <0>;
70 clock-frequency = <32768>;
71 clock-output-names = "sleep_clk";
72 };
73 };
74
52 soc: soc { 75 soc: soc {
53 #address-cells = <1>; 76 #address-cells = <1>;
54 #size-cells = <1>; 77 #size-cells = <1>;
diff --git a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
index 016f9ad9392a..a0398b69f4f2 100644
--- a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
@@ -1,6 +1,9 @@
1#include "qcom-msm8974.dtsi" 1#include "qcom-msm8974.dtsi"
2#include "qcom-pm8841.dtsi" 2#include "qcom-pm8841.dtsi"
3#include "qcom-pm8941.dtsi" 3#include "qcom-pm8941.dtsi"
4#include <dt-bindings/gpio/gpio.h>
5#include <dt-bindings/input/input.h>
6#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
4 7
5/ { 8/ {
6 model = "Sony Xperia Z1"; 9 model = "Sony Xperia Z1";
@@ -14,24 +17,403 @@
14 stdout-path = "serial0:115200n8"; 17 stdout-path = "serial0:115200n8";
15 }; 18 };
16 19
20 gpio-keys {
21 compatible = "gpio-keys";
22 input-name = "gpio-keys";
23
24 pinctrl-names = "default";
25 pinctrl-0 = <&gpio_keys_pin_a>;
26
27 volume-down {
28 label = "volume_down";
29 gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
30 linux,input-type = <1>;
31 linux,code = <KEY_VOLUMEDOWN>;
32 };
33
34 camera-snapshot {
35 label = "camera_snapshot";
36 gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
37 linux,input-type = <1>;
38 linux,code = <KEY_CAMERA>;
39 };
40
41 camera-focus {
42 label = "camera_focus";
43 gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>;
44 linux,input-type = <1>;
45 linux,code = <KEY_CAMERA_FOCUS>;
46 };
47
48 volume-up {
49 label = "volume_up";
50 gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
51 linux,input-type = <1>;
52 linux,code = <KEY_VOLUMEUP>;
53 };
54 };
55
17 memory@0 { 56 memory@0 {
18 reg = <0 0x40000000>, <0x40000000 0x40000000>; 57 reg = <0 0x40000000>, <0x40000000 0x40000000>;
19 device_type = "memory"; 58 device_type = "memory";
20 }; 59 };
60
61 smd {
62 rpm {
63 rpm_requests {
64 pm8841-regulators {
65 s1 {
66 regulator-min-microvolt = <675000>;
67 regulator-max-microvolt = <1050000>;
68 };
69
70 s2 {
71 regulator-min-microvolt = <500000>;
72 regulator-max-microvolt = <1050000>;
73 };
74
75 s3 {
76 regulator-min-microvolt = <500000>;
77 regulator-max-microvolt = <1050000>;
78 };
79
80 s4 {
81 regulator-min-microvolt = <500000>;
82 regulator-max-microvolt = <1050000>;
83 };
84 };
85
86 pm8941-regulators {
87 vdd_l1_l3-supply = <&pm8941_s1>;
88 vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
89 vdd_l4_l11-supply = <&pm8941_s1>;
90 vdd_l5_l7-supply = <&pm8941_s2>;
91 vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
92 vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
93 vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
94 vdd_l21-supply = <&vreg_boost>;
95 vin_5vs-supply = <&pm8941_5v>;
96
97 s1 {
98 regulator-min-microvolt = <1300000>;
99 regulator-max-microvolt = <1300000>;
100 regulator-always-on;
101 regulator-boot-on;
102 };
103
104 s2 {
105 regulator-min-microvolt = <2150000>;
106 regulator-max-microvolt = <2150000>;
107 regulator-boot-on;
108 };
109
110 s3 {
111 regulator-min-microvolt = <1800000>;
112 regulator-max-microvolt = <1800000>;
113 regulator-always-on;
114 regulator-boot-on;
115 };
116
117 s4 {
118 regulator-min-microvolt = <5000000>;
119 regulator-max-microvolt = <5000000>;
120 };
121
122 l1 {
123 regulator-min-microvolt = <1225000>;
124 regulator-max-microvolt = <1225000>;
125
126 regulator-always-on;
127 regulator-boot-on;
128 };
129
130 l2 {
131 regulator-min-microvolt = <1200000>;
132 regulator-max-microvolt = <1200000>;
133 };
134
135 l3 {
136 regulator-min-microvolt = <1200000>;
137 regulator-max-microvolt = <1200000>;
138 };
139
140 l4 {
141 regulator-min-microvolt = <1225000>;
142 regulator-max-microvolt = <1225000>;
143 };
144
145 l5 {
146 regulator-min-microvolt = <1800000>;
147 regulator-max-microvolt = <1800000>;
148 };
149
150 l6 {
151 regulator-min-microvolt = <1800000>;
152 regulator-max-microvolt = <1800000>;
153
154 regulator-boot-on;
155 };
156
157 l7 {
158 regulator-min-microvolt = <1800000>;
159 regulator-max-microvolt = <1800000>;
160
161 regulator-boot-on;
162 };
163
164 l8 {
165 regulator-min-microvolt = <1800000>;
166 regulator-max-microvolt = <1800000>;
167 };
168
169 l9 {
170 regulator-min-microvolt = <1800000>;
171 regulator-max-microvolt = <2950000>;
172 };
173
174 l11 {
175 regulator-min-microvolt = <1300000>;
176 regulator-max-microvolt = <1350000>;
177 };
178
179 l12 {
180 regulator-min-microvolt = <1800000>;
181 regulator-max-microvolt = <1800000>;
182
183 regulator-always-on;
184 regulator-boot-on;
185 };
186
187 l13 {
188 regulator-min-microvolt = <1800000>;
189 regulator-max-microvolt = <2950000>;
190
191 regulator-boot-on;
192 };
193
194 l14 {
195 regulator-min-microvolt = <1800000>;
196 regulator-max-microvolt = <1800000>;
197 };
198
199 l15 {
200 regulator-min-microvolt = <2050000>;
201 regulator-max-microvolt = <2050000>;
202 };
203
204 l16 {
205 regulator-min-microvolt = <2700000>;
206 regulator-max-microvolt = <2700000>;
207 };
208
209 l17 {
210 regulator-min-microvolt = <2700000>;
211 regulator-max-microvolt = <2700000>;
212 };
213
214 l18 {
215 regulator-min-microvolt = <2850000>;
216 regulator-max-microvolt = <2850000>;
217 };
218
219 l19 {
220 regulator-min-microvolt = <3300000>;
221 regulator-max-microvolt = <3300000>;
222 };
223
224 l20 {
225 regulator-min-microvolt = <2950000>;
226 regulator-max-microvolt = <2950000>;
227
228 regulator-allow-set-load;
229 regulator-boot-on;
230 regulator-system-load = <200000>;
231 };
232
233 l21 {
234 regulator-min-microvolt = <2950000>;
235 regulator-max-microvolt = <2950000>;
236
237 regulator-boot-on;
238 };
239
240 l22 {
241 regulator-min-microvolt = <3000000>;
242 regulator-max-microvolt = <3000000>;
243 };
244
245 l23 {
246 regulator-min-microvolt = <2800000>;
247 regulator-max-microvolt = <2800000>;
248 };
249
250 l24 {
251 regulator-min-microvolt = <3075000>;
252 regulator-max-microvolt = <3075000>;
253
254 regulator-boot-on;
255 };
256 };
257 };
258 };
259 };
260
261 vreg_boost: vreg-boost {
262 compatible = "regulator-fixed";
263
264 regulator-name = "vreg-boost";
265 regulator-min-microvolt = <3150000>;
266 regulator-max-microvolt = <3150000>;
267
268 regulator-always-on;
269 regulator-boot-on;
270
271 gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
272 enable-active-high;
273
274 pinctrl-names = "default";
275 pinctrl-0 = <&boost_bypass_n_pin>;
276 };
21}; 277};
22 278
23&soc { 279&soc {
280 sdhci@f9824900 {
281 status = "ok";
282
283 vmmc-supply = <&pm8941_l20>;
284 vqmmc-supply = <&pm8941_s3>;
285
286 bus-width = <8>;
287 non-removable;
288
289 pinctrl-names = "default";
290 pinctrl-0 = <&sdhc1_pin_a>;
291 };
292
293 sdhci@f98a4900 {
294 status = "ok";
295
296 bus-width = <4>;
297
298 vmmc-supply = <&pm8941_l21>;
299 vqmmc-supply = <&pm8941_l13>;
300
301 cd-gpios = <&msmgpio 62 GPIO_ACTIVE_LOW>;
302
303 pinctrl-names = "default";
304 pinctrl-0 = <&sdhc2_pin_a>, <&sdhc2_cd_pin_a>;
305 };
306
24 serial@f991e000 { 307 serial@f991e000 {
25 status = "ok"; 308 status = "ok";
309
310 pinctrl-names = "default";
311 pinctrl-0 = <&blsp1_uart2_pin_a>;
312 };
313
314 pinctrl@fd510000 {
315 blsp1_uart2_pin_a: blsp1-uart2-pin-active {
316 rx {
317 pins = "gpio5";
318 function = "blsp_uart2";
319
320 drive-strength = <2>;
321 bias-pull-up;
322 };
323
324 tx {
325 pins = "gpio4";
326 function = "blsp_uart2";
327
328 drive-strength = <4>;
329 bias-disable;
330 };
331 };
332
333 sdhc1_pin_a: sdhc1-pin-active {
334 clk {
335 pins = "sdc1_clk";
336 drive-strength = <16>;
337 bias-disable;
338 };
339
340 cmd-data {
341 pins = "sdc1_cmd", "sdc1_data";
342 drive-strength = <10>;
343 bias-pull-up;
344 };
345 };
346
347 sdhc2_cd_pin_a: sdhc2-cd-pin-active {
348 pins = "gpio62";
349 function = "gpio";
350
351 drive-strength = <2>;
352 bias-disable;
353 };
354
355 sdhc2_pin_a: sdhc2-pin-active {
356 clk {
357 pins = "sdc2_clk";
358 drive-strength = <10>;
359 bias-disable;
360 };
361
362 cmd-data {
363 pins = "sdc2_cmd", "sdc2_data";
364 drive-strength = <6>;
365 bias-pull-up;
366 };
367 };
368
26 }; 369 };
27}; 370};
28 371
29&spmi_bus { 372&spmi_bus {
30 pm8941@0 { 373 pm8941@0 {
374 charger@1000 {
375 qcom,fast-charge-safe-current = <1500000>;
376 qcom,fast-charge-current-limit = <1500000>;
377 qcom,dc-current-limit = <1800000>;
378 qcom,fast-charge-safe-voltage = <4400000>;
379 qcom,fast-charge-high-threshold-voltage = <4350000>;
380 qcom,fast-charge-low-threshold-voltage = <3400000>;
381 qcom,auto-recharge-threshold-voltage = <4200000>;
382 qcom,minimum-input-voltage = <4300000>;
383 };
384
385 gpios@c000 {
386 boost_bypass_n_pin: boost-bypass {
387 pins = "gpio21";
388 function = "normal";
389 };
390
391 gpio_keys_pin_a: gpio-keys-active {
392 pins = "gpio2", "gpio3", "gpio4", "gpio5";
393 function = "normal";
394
395 bias-pull-up;
396 power-source = <PM8941_GPIO_S3>;
397 };
398 };
399
31 coincell@2800 { 400 coincell@2800 {
32 status = "ok"; 401 status = "ok";
33 qcom,rset-ohms = <2100>; 402 qcom,rset-ohms = <2100>;
34 qcom,vset-millivolts = <3000>; 403 qcom,vset-millivolts = <3000>;
35 }; 404 };
36 }; 405 };
406
407 pm8941@1 {
408 wled@d800 {
409 status = "ok";
410
411 qcom,cs-out;
412 qcom,current-limit = <20>;
413 qcom,current-boost-limit = <805>;
414 qcom,switching-freq = <1600>;
415 qcom,ovp = <29>;
416 qcom,num-strings = <2>;
417 };
418 };
37}; 419};
diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
index 753bdfddd46e..dfdafdcb8aae 100644
--- a/arch/arm/boot/dts/qcom-msm8974.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
@@ -319,6 +319,17 @@
319 interrupts = <0 208 0>; 319 interrupts = <0 208 0>;
320 }; 320 };
321 321
322 blsp_i2c8: i2c@f9964000 {
323 status = "disabled";
324 compatible = "qcom,i2c-qup-v2.1.1";
325 reg = <0xf9964000 0x1000>;
326 interrupts = <0 102 IRQ_TYPE_NONE>;
327 clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
328 clock-names = "core", "iface";
329 #address-cells = <1>;
330 #size-cells = <0>;
331 };
332
322 blsp_i2c11: i2c@f9967000 { 333 blsp_i2c11: i2c@f9967000 {
323 status = "disabled"; 334 status = "disabled";
324 compatible = "qcom,i2c-qup-v2.1.1"; 335 compatible = "qcom,i2c-qup-v2.1.1";
diff --git a/arch/arm/boot/dts/qcom-pm8841.dtsi b/arch/arm/boot/dts/qcom-pm8841.dtsi
index 8f1a0b162017..9f357f68713c 100644
--- a/arch/arm/boot/dts/qcom-pm8841.dtsi
+++ b/arch/arm/boot/dts/qcom-pm8841.dtsi
@@ -3,14 +3,14 @@
3 3
4&spmi_bus { 4&spmi_bus {
5 5
6 usid4: pm8841@4 { 6 pm8841_0: pm8841@4 {
7 compatible = "qcom,spmi-pmic"; 7 compatible = "qcom,pm8841", "qcom,spmi-pmic";
8 reg = <0x4 SPMI_USID>; 8 reg = <0x4 SPMI_USID>;
9 #address-cells = <1>; 9 #address-cells = <1>;
10 #size-cells = <0>; 10 #size-cells = <0>;
11 11
12 pm8841_mpps: mpps@a000 { 12 pm8841_mpps: mpps@a000 {
13 compatible = "qcom,pm8841-mpp"; 13 compatible = "qcom,pm8841-mpp", "qcom,spmi-mpp";
14 reg = <0xa000 0x400>; 14 reg = <0xa000 0x400>;
15 gpio-controller; 15 gpio-controller;
16 #gpio-cells = <2>; 16 #gpio-cells = <2>;
@@ -27,8 +27,8 @@
27 }; 27 };
28 }; 28 };
29 29
30 usid5: pm8841@5 { 30 pm8841_1: pm8841@5 {
31 compatible = "qcom,spmi-pmic"; 31 compatible = "qcom,pm8841", "qcom,spmi-pmic";
32 reg = <0x5 SPMI_USID>; 32 reg = <0x5 SPMI_USID>;
33 #address-cells = <1>; 33 #address-cells = <1>;
34 #size-cells = <0>; 34 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/qcom-pm8941.dtsi b/arch/arm/boot/dts/qcom-pm8941.dtsi
index b0d443999fcc..ca53a5947437 100644
--- a/arch/arm/boot/dts/qcom-pm8941.dtsi
+++ b/arch/arm/boot/dts/qcom-pm8941.dtsi
@@ -4,8 +4,8 @@
4 4
5&spmi_bus { 5&spmi_bus {
6 6
7 usid0: pm8941@0 { 7 pm8941_0: pm8941@0 {
8 compatible ="qcom,spmi-pmic"; 8 compatible = "qcom,pm8941", "qcom,spmi-pmic";
9 reg = <0x0 SPMI_USID>; 9 reg = <0x0 SPMI_USID>;
10 #address-cells = <1>; 10 #address-cells = <1>;
11 #size-cells = <0>; 11 #size-cells = <0>;
@@ -48,7 +48,7 @@
48 }; 48 };
49 49
50 pm8941_gpios: gpios@c000 { 50 pm8941_gpios: gpios@c000 {
51 compatible = "qcom,pm8941-gpio"; 51 compatible = "qcom,pm8941-gpio", "qcom,spmi-gpio";
52 reg = <0xc000 0x2400>; 52 reg = <0xc000 0x2400>;
53 gpio-controller; 53 gpio-controller;
54 #gpio-cells = <2>; 54 #gpio-cells = <2>;
@@ -91,7 +91,7 @@
91 }; 91 };
92 92
93 pm8941_mpps: mpps@a000 { 93 pm8941_mpps: mpps@a000 {
94 compatible = "qcom,pm8941-mpp"; 94 compatible = "qcom,pm8941-mpp", "qcom,spmi-mpp";
95 reg = <0xa000 0x800>; 95 reg = <0xa000 0x800>;
96 gpio-controller; 96 gpio-controller;
97 #gpio-cells = <2>; 97 #gpio-cells = <2>;
@@ -153,23 +153,18 @@
153 }; 153 };
154 }; 154 };
155 155
156 usid1: pm8941@1 { 156 pm8941_1: pm8941@1 {
157 compatible = "qcom,spmi-pmic"; 157 compatible = "qcom,pm8941", "qcom,spmi-pmic";
158 reg = <0x1 SPMI_USID>; 158 reg = <0x1 SPMI_USID>;
159 #address-cells = <1>; 159 #address-cells = <1>;
160 #size-cells = <0>; 160 #size-cells = <0>;
161 161
162 wled@d800 { 162 pm8941_wled: wled@d800 {
163 compatible = "qcom,pm8941-wled"; 163 compatible = "qcom,pm8941-wled";
164 reg = <0xd800 0x100>; 164 reg = <0xd800 0x100>;
165 label = "backlight"; 165 label = "backlight";
166 166
167 qcom,cs-out; 167 status = "disabled";
168 qcom,current-limit = <20>;
169 qcom,current-boost-limit = <805>;
170 qcom,switching-freq = <1600>;
171 qcom,ovp = <29>;
172 qcom,num-strings = <2>;
173 }; 168 };
174 }; 169 };
175}; 170};
diff --git a/arch/arm/boot/dts/qcom-pma8084.dtsi b/arch/arm/boot/dts/qcom-pma8084.dtsi
index 5e240ccc08b7..4e9bd3f88473 100644
--- a/arch/arm/boot/dts/qcom-pma8084.dtsi
+++ b/arch/arm/boot/dts/qcom-pma8084.dtsi
@@ -4,8 +4,8 @@
4 4
5&spmi_bus { 5&spmi_bus {
6 6
7 usid0: pma8084@0 { 7 pma8084_0: pma8084@0 {
8 compatible = "qcom,spmi-pmic"; 8 compatible = "qcom,pma8084", "qcom,spmi-pmic";
9 reg = <0x0 SPMI_USID>; 9 reg = <0x0 SPMI_USID>;
10 #address-cells = <1>; 10 #address-cells = <1>;
11 #size-cells = <0>; 11 #size-cells = <0>;
@@ -19,7 +19,7 @@
19 }; 19 };
20 20
21 pma8084_gpios: gpios@c000 { 21 pma8084_gpios: gpios@c000 {
22 compatible = "qcom,pma8084-gpio"; 22 compatible = "qcom,pma8084-gpio", "qcom,spmi-gpio";
23 reg = <0xc000 0x1600>; 23 reg = <0xc000 0x1600>;
24 gpio-controller; 24 gpio-controller;
25 #gpio-cells = <2>; 25 #gpio-cells = <2>;
@@ -48,7 +48,7 @@
48 }; 48 };
49 49
50 pma8084_mpps: mpps@a000 { 50 pma8084_mpps: mpps@a000 {
51 compatible = "qcom,pma8084-mpp"; 51 compatible = "qcom,pma8084-mpp", "qcom,spmi-mpp";
52 reg = <0xa000 0x800>; 52 reg = <0xa000 0x800>;
53 gpio-controller; 53 gpio-controller;
54 #gpio-cells = <2>; 54 #gpio-cells = <2>;
@@ -101,8 +101,8 @@
101 }; 101 };
102 }; 102 };
103 103
104 usid1: pma8084@1 { 104 pma8084_1: pma8084@1 {
105 compatible = "qcom,spmi-pmic"; 105 compatible = "qcom,pma8084", "qcom,spmi-pmic";
106 reg = <0x1 SPMI_USID>; 106 reg = <0x1 SPMI_USID>;
107 #address-cells = <1>; 107 #address-cells = <1>;
108 #size-cells = <0>; 108 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/r8a73a4-ape6evm.dts b/arch/arm/boot/dts/r8a73a4-ape6evm.dts
index a4c425923c05..590257095700 100644
--- a/arch/arm/boot/dts/r8a73a4-ape6evm.dts
+++ b/arch/arm/boot/dts/r8a73a4-ape6evm.dts
@@ -23,7 +23,7 @@
23 23
24 chosen { 24 chosen {
25 bootargs = "ignore_loglevel root=/dev/nfs ip=dhcp rw"; 25 bootargs = "ignore_loglevel root=/dev/nfs ip=dhcp rw";
26 stdout-path = &scifa0; 26 stdout-path = "serial0:115200n8";
27 }; 27 };
28 28
29 memory@40000000 { 29 memory@40000000 {
@@ -110,7 +110,7 @@
110 gpios = <&pfc 324 GPIO_ACTIVE_LOW>; 110 gpios = <&pfc 324 GPIO_ACTIVE_LOW>;
111 linux,code = <KEY_0>; 111 linux,code = <KEY_0>;
112 label = "S16"; 112 label = "S16";
113 gpio-key,wakeup; 113 wakeup-source;
114 }; 114 };
115 115
116 menu-key { 116 menu-key {
diff --git a/arch/arm/boot/dts/r8a7740-armadillo800eva.dts b/arch/arm/boot/dts/r8a7740-armadillo800eva.dts
index 105d9c95de4a..78a21f2828df 100644
--- a/arch/arm/boot/dts/r8a7740-armadillo800eva.dts
+++ b/arch/arm/boot/dts/r8a7740-armadillo800eva.dts
@@ -85,7 +85,7 @@
85 gpios = <&pfc 99 GPIO_ACTIVE_LOW>; 85 gpios = <&pfc 99 GPIO_ACTIVE_LOW>;
86 linux,code = <KEY_POWER>; 86 linux,code = <KEY_POWER>;
87 label = "SW3"; 87 label = "SW3";
88 gpio-key,wakeup; 88 wakeup-source;
89 }; 89 };
90 90
91 back-key { 91 back-key {
diff --git a/arch/arm/boot/dts/r8a7740.dtsi b/arch/arm/boot/dts/r8a7740.dtsi
index 20d20f67620b..6ef954766eef 100644
--- a/arch/arm/boot/dts/r8a7740.dtsi
+++ b/arch/arm/boot/dts/r8a7740.dtsi
@@ -26,6 +26,7 @@
26 reg = <0x0>; 26 reg = <0x0>;
27 clock-frequency = <800000000>; 27 clock-frequency = <800000000>;
28 power-domains = <&pd_a3sm>; 28 power-domains = <&pd_a3sm>;
29 next-level-cache = <&L2>;
29 }; 30 };
30 }; 31 };
31 32
@@ -37,6 +38,18 @@
37 <0xc2000000 0x1000>; 38 <0xc2000000 0x1000>;
38 }; 39 };
39 40
41 L2: cache-controller {
42 compatible = "arm,pl310-cache";
43 reg = <0xf0100000 0x1000>;
44 interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>;
45 power-domains = <&pd_a3sm>;
46 arm,data-latency = <3 3 3>;
47 arm,tag-latency = <2 2 2>;
48 arm,shared-override;
49 cache-unified;
50 cache-level = <2>;
51 };
52
40 dbsc3: memory-controller@fe400000 { 53 dbsc3: memory-controller@fe400000 {
41 compatible = "renesas,dbsc3-r8a7740"; 54 compatible = "renesas,dbsc3-r8a7740";
42 reg = <0xfe400000 0x400>; 55 reg = <0xfe400000 0x400>;
diff --git a/arch/arm/boot/dts/r8a7778-bockw.dts b/arch/arm/boot/dts/r8a7778-bockw.dts
index 90543b12d7e2..a52b359e2ae2 100644
--- a/arch/arm/boot/dts/r8a7778-bockw.dts
+++ b/arch/arm/boot/dts/r8a7778-bockw.dts
@@ -28,8 +28,8 @@
28 }; 28 };
29 29
30 chosen { 30 chosen {
31 bootargs = "console=ttySC0,115200 ignore_loglevel ip=dhcp root=/dev/nfs rw"; 31 bootargs = "ignore_loglevel ip=dhcp root=/dev/nfs rw";
32 stdout-path = &scif0; 32 stdout-path = "serial0:115200n8";
33 }; 33 };
34 34
35 memory { 35 memory {
@@ -137,10 +137,14 @@
137 }; 137 };
138 138
139 sdhi0_pins: sd0 { 139 sdhi0_pins: sd0 {
140 renesas,groups = "sdhi0_data4", "sdhi0_ctrl", 140 renesas,groups = "sdhi0_data4", "sdhi0_ctrl";
141 "sdhi0_cd";
142 renesas,function = "sdhi0"; 141 renesas,function = "sdhi0";
143 }; 142 };
143 sdhi0_pup_pins: sd0_pup {
144 renesas,groups = "sdhi0_cd", "sdhi0_wp";
145 renesas,function = "sdhi0";
146 bias-pull-up;
147 };
144 148
145 hspi0_pins: hspi0 { 149 hspi0_pins: hspi0 {
146 renesas,groups = "hspi0_a"; 150 renesas,groups = "hspi0_a";
@@ -168,8 +172,13 @@
168 }; 172 };
169}; 173};
170 174
175&rcar_sound {
176 /* Single DAI */
177 #sound-dai-cells = <0>;
178};
179
171&sdhi0 { 180&sdhi0 {
172 pinctrl-0 = <&sdhi0_pins>; 181 pinctrl-0 = <&sdhi0_pins>, <&sdhi0_pup_pins>;
173 pinctrl-names = "default"; 182 pinctrl-names = "default";
174 183
175 vmmc-supply = <&fixedregulator3v3>; 184 vmmc-supply = <&fixedregulator3v3>;
@@ -184,16 +193,20 @@
184 status = "okay"; 193 status = "okay";
185 194
186 flash: flash@0 { 195 flash: flash@0 {
187 #address-cells = <1>;
188 #size-cells = <1>;
189 compatible = "spansion,s25fl008k", "jedec,spi-nor"; 196 compatible = "spansion,s25fl008k", "jedec,spi-nor";
190 reg = <0>; 197 reg = <0>;
191 spi-max-frequency = <104000000>; 198 spi-max-frequency = <104000000>;
192 m25p,fast-read; 199 m25p,fast-read;
193 200
194 partition@0 { 201 partitions {
195 label = "data(spi)"; 202 compatible = "fixed-partitions";
196 reg = <0x00000000 0x00100000>; 203 #address-cells = <1>;
204 #size-cells = <1>;
205
206 partition@0 {
207 label = "data(spi)";
208 reg = <0x00000000 0x00100000>;
209 };
197 }; 210 };
198 }; 211 };
199}; 212};
diff --git a/arch/arm/boot/dts/r8a7778.dtsi b/arch/arm/boot/dts/r8a7778.dtsi
index 757c6ff319df..791aafd310a5 100644
--- a/arch/arm/boot/dts/r8a7778.dtsi
+++ b/arch/arm/boot/dts/r8a7778.dtsi
@@ -236,7 +236,12 @@
236 }; 236 };
237 237
238 rcar_sound: sound@ffd90000 { 238 rcar_sound: sound@ffd90000 {
239 #sound-dai-cells = <1>; 239 /*
240 * #sound-dai-cells is required
241 *
242 * Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
243 * Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;
244 */
240 compatible = "renesas,rcar_sound-r8a7778", "renesas,rcar_sound-gen1"; 245 compatible = "renesas,rcar_sound-r8a7778", "renesas,rcar_sound-gen1";
241 reg = <0xffd90000 0x1000>, /* SRU */ 246 reg = <0xffd90000 0x1000>, /* SRU */
242 <0xffd91000 0x240>, /* SSI */ 247 <0xffd91000 0x240>, /* SSI */
diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts
index c553abd711ee..052dcee4790d 100644
--- a/arch/arm/boot/dts/r8a7790-lager.dts
+++ b/arch/arm/boot/dts/r8a7790-lager.dts
@@ -47,13 +47,13 @@
47 compatible = "renesas,lager", "renesas,r8a7790"; 47 compatible = "renesas,lager", "renesas,r8a7790";
48 48
49 aliases { 49 aliases {
50 serial0 = &scifa0; 50 serial0 = &scif0;
51 serial1 = &scifa1; 51 serial1 = &scifa1;
52 }; 52 };
53 53
54 chosen { 54 chosen {
55 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 55 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
56 stdout-path = &scifa0; 56 stdout-path = "serial0:115200n8";
57 }; 57 };
58 58
59 memory@40000000 { 59 memory@40000000 {
@@ -77,28 +77,28 @@
77 button@1 { 77 button@1 {
78 linux,code = <KEY_1>; 78 linux,code = <KEY_1>;
79 label = "SW2-1"; 79 label = "SW2-1";
80 gpio-key,wakeup; 80 wakeup-source;
81 debounce-interval = <20>; 81 debounce-interval = <20>;
82 gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; 82 gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
83 }; 83 };
84 button@2 { 84 button@2 {
85 linux,code = <KEY_2>; 85 linux,code = <KEY_2>;
86 label = "SW2-2"; 86 label = "SW2-2";
87 gpio-key,wakeup; 87 wakeup-source;
88 debounce-interval = <20>; 88 debounce-interval = <20>;
89 gpios = <&gpio1 24 GPIO_ACTIVE_LOW>; 89 gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
90 }; 90 };
91 button@3 { 91 button@3 {
92 linux,code = <KEY_3>; 92 linux,code = <KEY_3>;
93 label = "SW2-3"; 93 label = "SW2-3";
94 gpio-key,wakeup; 94 wakeup-source;
95 debounce-interval = <20>; 95 debounce-interval = <20>;
96 gpios = <&gpio1 26 GPIO_ACTIVE_LOW>; 96 gpios = <&gpio1 26 GPIO_ACTIVE_LOW>;
97 }; 97 };
98 button@4 { 98 button@4 {
99 linux,code = <KEY_4>; 99 linux,code = <KEY_4>;
100 label = "SW2-4"; 100 label = "SW2-4";
101 gpio-key,wakeup; 101 wakeup-source;
102 debounce-interval = <20>; 102 debounce-interval = <20>;
103 gpios = <&gpio1 28 GPIO_ACTIVE_LOW>; 103 gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
104 }; 104 };
@@ -296,9 +296,9 @@
296 renesas,function = "du"; 296 renesas,function = "du";
297 }; 297 };
298 298
299 scifa0_pins: serial0 { 299 scif0_pins: serial0 {
300 renesas,groups = "scifa0_data"; 300 renesas,groups = "scif0_data";
301 renesas,function = "scifa0"; 301 renesas,function = "scif0";
302 }; 302 };
303 303
304 ether_pins: ether { 304 ether_pins: ether {
@@ -439,8 +439,6 @@
439 status = "okay"; 439 status = "okay";
440 440
441 flash: flash@0 { 441 flash: flash@0 {
442 #address-cells = <1>;
443 #size-cells = <1>;
444 compatible = "spansion,s25fl512s", "jedec,spi-nor"; 442 compatible = "spansion,s25fl512s", "jedec,spi-nor";
445 reg = <0>; 443 reg = <0>;
446 spi-max-frequency = <30000000>; 444 spi-max-frequency = <30000000>;
@@ -450,25 +448,31 @@
450 spi-cpol; 448 spi-cpol;
451 m25p,fast-read; 449 m25p,fast-read;
452 450
453 partition@0 { 451 partitions {
454 label = "loader"; 452 compatible = "fixed-partitions";
455 reg = <0x00000000 0x00040000>; 453 #address-cells = <1>;
456 read-only; 454 #size-cells = <1>;
457 }; 455
458 partition@40000 { 456 partition@0 {
459 label = "user"; 457 label = "loader";
460 reg = <0x00040000 0x00400000>; 458 reg = <0x00000000 0x00040000>;
461 read-only; 459 read-only;
462 }; 460 };
463 partition@440000 { 461 partition@40000 {
464 label = "flash"; 462 label = "user";
465 reg = <0x00440000 0x03bc0000>; 463 reg = <0x00040000 0x00400000>;
464 read-only;
465 };
466 partition@440000 {
467 label = "flash";
468 reg = <0x00440000 0x03bc0000>;
469 };
466 }; 470 };
467 }; 471 };
468}; 472};
469 473
470&scifa0 { 474&scif0 {
471 pinctrl-0 = <&scifa0_pins>; 475 pinctrl-0 = <&scif0_pins>;
472 pinctrl-names = "default"; 476 pinctrl-names = "default";
473 477
474 status = "okay"; 478 status = "okay";
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi
index e07ae5d45e19..7dfd393bfc7e 100644
--- a/arch/arm/boot/dts/r8a7790.dtsi
+++ b/arch/arm/boot/dts/r8a7790.dtsi
@@ -143,7 +143,7 @@
143 interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>; 143 interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
144 #gpio-cells = <2>; 144 #gpio-cells = <2>;
145 gpio-controller; 145 gpio-controller;
146 gpio-ranges = <&pfc 0 32 32>; 146 gpio-ranges = <&pfc 0 32 30>;
147 #interrupt-cells = <2>; 147 #interrupt-cells = <2>;
148 interrupt-controller; 148 interrupt-controller;
149 clocks = <&mstp9_clks R8A7790_CLK_GPIO1>; 149 clocks = <&mstp9_clks R8A7790_CLK_GPIO1>;
@@ -156,7 +156,7 @@
156 interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>; 156 interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
157 #gpio-cells = <2>; 157 #gpio-cells = <2>;
158 gpio-controller; 158 gpio-controller;
159 gpio-ranges = <&pfc 0 64 32>; 159 gpio-ranges = <&pfc 0 64 30>;
160 #interrupt-cells = <2>; 160 #interrupt-cells = <2>;
161 interrupt-controller; 161 interrupt-controller;
162 clocks = <&mstp9_clks R8A7790_CLK_GPIO2>; 162 clocks = <&mstp9_clks R8A7790_CLK_GPIO2>;
@@ -266,7 +266,7 @@
266 }; 266 };
267 267
268 dmac0: dma-controller@e6700000 { 268 dmac0: dma-controller@e6700000 {
269 compatible = "renesas,rcar-dmac"; 269 compatible = "renesas,dmac-r8a7790", "renesas,rcar-dmac";
270 reg = <0 0xe6700000 0 0x20000>; 270 reg = <0 0xe6700000 0 0x20000>;
271 interrupts = <0 197 IRQ_TYPE_LEVEL_HIGH 271 interrupts = <0 197 IRQ_TYPE_LEVEL_HIGH
272 0 200 IRQ_TYPE_LEVEL_HIGH 272 0 200 IRQ_TYPE_LEVEL_HIGH
@@ -297,7 +297,7 @@
297 }; 297 };
298 298
299 dmac1: dma-controller@e6720000 { 299 dmac1: dma-controller@e6720000 {
300 compatible = "renesas,rcar-dmac"; 300 compatible = "renesas,dmac-r8a7790", "renesas,rcar-dmac";
301 reg = <0 0xe6720000 0 0x20000>; 301 reg = <0 0xe6720000 0 0x20000>;
302 interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH 302 interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH
303 0 216 IRQ_TYPE_LEVEL_HIGH 303 0 216 IRQ_TYPE_LEVEL_HIGH
@@ -328,7 +328,7 @@
328 }; 328 };
329 329
330 audma0: dma-controller@ec700000 { 330 audma0: dma-controller@ec700000 {
331 compatible = "renesas,rcar-dmac"; 331 compatible = "renesas,dmac-r8a7790", "renesas,rcar-dmac";
332 reg = <0 0xec700000 0 0x10000>; 332 reg = <0 0xec700000 0 0x10000>;
333 interrupts = <0 346 IRQ_TYPE_LEVEL_HIGH 333 interrupts = <0 346 IRQ_TYPE_LEVEL_HIGH
334 0 320 IRQ_TYPE_LEVEL_HIGH 334 0 320 IRQ_TYPE_LEVEL_HIGH
@@ -357,7 +357,7 @@
357 }; 357 };
358 358
359 audma1: dma-controller@ec720000 { 359 audma1: dma-controller@ec720000 {
360 compatible = "renesas,rcar-dmac"; 360 compatible = "renesas,dmac-r8a7790", "renesas,rcar-dmac";
361 reg = <0 0xec720000 0 0x10000>; 361 reg = <0 0xec720000 0 0x10000>;
362 interrupts = <0 347 IRQ_TYPE_LEVEL_HIGH 362 interrupts = <0 347 IRQ_TYPE_LEVEL_HIGH
363 0 333 IRQ_TYPE_LEVEL_HIGH 363 0 333 IRQ_TYPE_LEVEL_HIGH
@@ -386,7 +386,7 @@
386 }; 386 };
387 387
388 usb_dmac0: dma-controller@e65a0000 { 388 usb_dmac0: dma-controller@e65a0000 {
389 compatible = "renesas,usb-dmac"; 389 compatible = "renesas,r8a7790-usb-dmac", "renesas,usb-dmac";
390 reg = <0 0xe65a0000 0 0x100>; 390 reg = <0 0xe65a0000 0 0x100>;
391 interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH 391 interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH
392 0 109 IRQ_TYPE_LEVEL_HIGH>; 392 0 109 IRQ_TYPE_LEVEL_HIGH>;
@@ -398,7 +398,7 @@
398 }; 398 };
399 399
400 usb_dmac1: dma-controller@e65b0000 { 400 usb_dmac1: dma-controller@e65b0000 {
401 compatible = "renesas,usb-dmac"; 401 compatible = "renesas,r8a7790-usb-dmac", "renesas,usb-dmac";
402 reg = <0 0xe65b0000 0 0x100>; 402 reg = <0 0xe65b0000 0 0x100>;
403 interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH 403 interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH
404 0 110 IRQ_TYPE_LEVEL_HIGH>; 404 0 110 IRQ_TYPE_LEVEL_HIGH>;
@@ -417,6 +417,7 @@
417 interrupts = <0 287 IRQ_TYPE_LEVEL_HIGH>; 417 interrupts = <0 287 IRQ_TYPE_LEVEL_HIGH>;
418 clocks = <&mstp9_clks R8A7790_CLK_I2C0>; 418 clocks = <&mstp9_clks R8A7790_CLK_I2C0>;
419 power-domains = <&cpg_clocks>; 419 power-domains = <&cpg_clocks>;
420 i2c-scl-internal-delay-ns = <110>;
420 status = "disabled"; 421 status = "disabled";
421 }; 422 };
422 423
@@ -428,6 +429,7 @@
428 interrupts = <0 288 IRQ_TYPE_LEVEL_HIGH>; 429 interrupts = <0 288 IRQ_TYPE_LEVEL_HIGH>;
429 clocks = <&mstp9_clks R8A7790_CLK_I2C1>; 430 clocks = <&mstp9_clks R8A7790_CLK_I2C1>;
430 power-domains = <&cpg_clocks>; 431 power-domains = <&cpg_clocks>;
432 i2c-scl-internal-delay-ns = <6>;
431 status = "disabled"; 433 status = "disabled";
432 }; 434 };
433 435
@@ -439,6 +441,7 @@
439 interrupts = <0 286 IRQ_TYPE_LEVEL_HIGH>; 441 interrupts = <0 286 IRQ_TYPE_LEVEL_HIGH>;
440 clocks = <&mstp9_clks R8A7790_CLK_I2C2>; 442 clocks = <&mstp9_clks R8A7790_CLK_I2C2>;
441 power-domains = <&cpg_clocks>; 443 power-domains = <&cpg_clocks>;
444 i2c-scl-internal-delay-ns = <6>;
442 status = "disabled"; 445 status = "disabled";
443 }; 446 };
444 447
@@ -450,6 +453,7 @@
450 interrupts = <0 290 IRQ_TYPE_LEVEL_HIGH>; 453 interrupts = <0 290 IRQ_TYPE_LEVEL_HIGH>;
451 clocks = <&mstp9_clks R8A7790_CLK_I2C3>; 454 clocks = <&mstp9_clks R8A7790_CLK_I2C3>;
452 power-domains = <&cpg_clocks>; 455 power-domains = <&cpg_clocks>;
456 i2c-scl-internal-delay-ns = <110>;
453 status = "disabled"; 457 status = "disabled";
454 }; 458 };
455 459
@@ -1766,7 +1770,7 @@
1766 }; 1770 };
1767 1771
1768 ipmmu_sy0: mmu@e6280000 { 1772 ipmmu_sy0: mmu@e6280000 {
1769 compatible = "renesas,ipmmu-vmsa"; 1773 compatible = "renesas,ipmmu-r8a7790", "renesas,ipmmu-vmsa";
1770 reg = <0 0xe6280000 0 0x1000>; 1774 reg = <0 0xe6280000 0 0x1000>;
1771 interrupts = <0 223 IRQ_TYPE_LEVEL_HIGH>, 1775 interrupts = <0 223 IRQ_TYPE_LEVEL_HIGH>,
1772 <0 224 IRQ_TYPE_LEVEL_HIGH>; 1776 <0 224 IRQ_TYPE_LEVEL_HIGH>;
@@ -1775,7 +1779,7 @@
1775 }; 1779 };
1776 1780
1777 ipmmu_sy1: mmu@e6290000 { 1781 ipmmu_sy1: mmu@e6290000 {
1778 compatible = "renesas,ipmmu-vmsa"; 1782 compatible = "renesas,ipmmu-r8a7790", "renesas,ipmmu-vmsa";
1779 reg = <0 0xe6290000 0 0x1000>; 1783 reg = <0 0xe6290000 0 0x1000>;
1780 interrupts = <0 225 IRQ_TYPE_LEVEL_HIGH>; 1784 interrupts = <0 225 IRQ_TYPE_LEVEL_HIGH>;
1781 #iommu-cells = <1>; 1785 #iommu-cells = <1>;
@@ -1783,7 +1787,7 @@
1783 }; 1787 };
1784 1788
1785 ipmmu_ds: mmu@e6740000 { 1789 ipmmu_ds: mmu@e6740000 {
1786 compatible = "renesas,ipmmu-vmsa"; 1790 compatible = "renesas,ipmmu-r8a7790", "renesas,ipmmu-vmsa";
1787 reg = <0 0xe6740000 0 0x1000>; 1791 reg = <0 0xe6740000 0 0x1000>;
1788 interrupts = <0 198 IRQ_TYPE_LEVEL_HIGH>, 1792 interrupts = <0 198 IRQ_TYPE_LEVEL_HIGH>,
1789 <0 199 IRQ_TYPE_LEVEL_HIGH>; 1793 <0 199 IRQ_TYPE_LEVEL_HIGH>;
@@ -1792,7 +1796,7 @@
1792 }; 1796 };
1793 1797
1794 ipmmu_mp: mmu@ec680000 { 1798 ipmmu_mp: mmu@ec680000 {
1795 compatible = "renesas,ipmmu-vmsa"; 1799 compatible = "renesas,ipmmu-r8a7790", "renesas,ipmmu-vmsa";
1796 reg = <0 0xec680000 0 0x1000>; 1800 reg = <0 0xec680000 0 0x1000>;
1797 interrupts = <0 226 IRQ_TYPE_LEVEL_HIGH>; 1801 interrupts = <0 226 IRQ_TYPE_LEVEL_HIGH>;
1798 #iommu-cells = <1>; 1802 #iommu-cells = <1>;
@@ -1800,7 +1804,7 @@
1800 }; 1804 };
1801 1805
1802 ipmmu_mx: mmu@fe951000 { 1806 ipmmu_mx: mmu@fe951000 {
1803 compatible = "renesas,ipmmu-vmsa"; 1807 compatible = "renesas,ipmmu-r8a7790", "renesas,ipmmu-vmsa";
1804 reg = <0 0xfe951000 0 0x1000>; 1808 reg = <0 0xfe951000 0 0x1000>;
1805 interrupts = <0 222 IRQ_TYPE_LEVEL_HIGH>, 1809 interrupts = <0 222 IRQ_TYPE_LEVEL_HIGH>,
1806 <0 221 IRQ_TYPE_LEVEL_HIGH>; 1810 <0 221 IRQ_TYPE_LEVEL_HIGH>;
@@ -1809,7 +1813,7 @@
1809 }; 1813 };
1810 1814
1811 ipmmu_rt: mmu@ffc80000 { 1815 ipmmu_rt: mmu@ffc80000 {
1812 compatible = "renesas,ipmmu-vmsa"; 1816 compatible = "renesas,ipmmu-r8a7790", "renesas,ipmmu-vmsa";
1813 reg = <0 0xffc80000 0 0x1000>; 1817 reg = <0 0xffc80000 0 0x1000>;
1814 interrupts = <0 307 IRQ_TYPE_LEVEL_HIGH>; 1818 interrupts = <0 307 IRQ_TYPE_LEVEL_HIGH>;
1815 #iommu-cells = <1>; 1819 #iommu-cells = <1>;
diff --git a/arch/arm/boot/dts/r8a7791-henninger.dts b/arch/arm/boot/dts/r8a7791-henninger.dts
deleted file mode 100644
index 655d1804e5e9..000000000000
--- a/arch/arm/boot/dts/r8a7791-henninger.dts
+++ /dev/null
@@ -1,320 +0,0 @@
1/*
2 * Device Tree Source for the Henninger board
3 *
4 * Copyright (C) 2014 Renesas Solutions Corp.
5 * Copyright (C) 2014 Cogent Embedded, Inc.
6 *
7 * This file is licensed under the terms of the GNU General Public License
8 * version 2. This program is licensed "as is" without any warranty of any
9 * kind, whether express or implied.
10 */
11
12/dts-v1/;
13#include "r8a7791.dtsi"
14#include <dt-bindings/gpio/gpio.h>
15
16/ {
17 model = "Henninger";
18 compatible = "renesas,henninger", "renesas,r8a7791";
19
20 aliases {
21 serial0 = &scif0;
22 };
23
24 chosen {
25 bootargs = "console=ttySC0,38400 ignore_loglevel rw root=/dev/nfs ip=dhcp";
26 stdout-path = &scif0;
27 };
28
29 memory@40000000 {
30 device_type = "memory";
31 reg = <0 0x40000000 0 0x40000000>;
32 };
33
34 memory@200000000 {
35 device_type = "memory";
36 reg = <2 0x00000000 0 0x40000000>;
37 };
38
39 vcc_sdhi0: regulator@0 {
40 compatible = "regulator-fixed";
41
42 regulator-name = "SDHI0 Vcc";
43 regulator-min-microvolt = <3300000>;
44 regulator-max-microvolt = <3300000>;
45 regulator-always-on;
46 };
47
48 vccq_sdhi0: regulator@1 {
49 compatible = "regulator-gpio";
50
51 regulator-name = "SDHI0 VccQ";
52 regulator-min-microvolt = <1800000>;
53 regulator-max-microvolt = <3300000>;
54
55 gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
56 gpios-states = <1>;
57 states = <3300000 1
58 1800000 0>;
59 };
60
61 vcc_sdhi2: regulator@2 {
62 compatible = "regulator-fixed";
63
64 regulator-name = "SDHI2 Vcc";
65 regulator-min-microvolt = <3300000>;
66 regulator-max-microvolt = <3300000>;
67 regulator-always-on;
68 };
69
70 vccq_sdhi2: regulator@3 {
71 compatible = "regulator-gpio";
72
73 regulator-name = "SDHI2 VccQ";
74 regulator-min-microvolt = <1800000>;
75 regulator-max-microvolt = <3300000>;
76
77 gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
78 gpios-states = <1>;
79 states = <3300000 1
80 1800000 0>;
81 };
82};
83
84&extal_clk {
85 clock-frequency = <20000000>;
86};
87
88&pfc {
89 scif0_pins: serial0 {
90 renesas,groups = "scif0_data_d";
91 renesas,function = "scif0";
92 };
93
94 ether_pins: ether {
95 renesas,groups = "eth_link", "eth_mdio", "eth_rmii";
96 renesas,function = "eth";
97 };
98
99 phy1_pins: phy1 {
100 renesas,groups = "intc_irq0";
101 renesas,function = "intc";
102 };
103
104 sdhi0_pins: sd0 {
105 renesas,groups = "sdhi0_data4", "sdhi0_ctrl";
106 renesas,function = "sdhi0";
107 };
108
109 sdhi2_pins: sd2 {
110 renesas,groups = "sdhi2_data4", "sdhi2_ctrl";
111 renesas,function = "sdhi2";
112 };
113
114 i2c2_pins: i2c2 {
115 renesas,groups = "i2c2";
116 renesas,function = "i2c2";
117 };
118
119 qspi_pins: spi0 {
120 renesas,groups = "qspi_ctrl", "qspi_data4";
121 renesas,function = "qspi";
122 };
123
124 msiof0_pins: spi1 {
125 renesas,groups = "msiof0_clk", "msiof0_sync", "msiof0_rx",
126 "msiof0_tx";
127 renesas,function = "msiof0";
128 };
129
130 usb0_pins: usb0 {
131 renesas,groups = "usb0";
132 renesas,function = "usb0";
133 };
134
135 usb1_pins: usb1 {
136 renesas,groups = "usb1";
137 renesas,function = "usb1";
138 };
139
140 vin0_pins: vin0 {
141 renesas,groups = "vin0_data8", "vin0_clk";
142 renesas,function = "vin0";
143 };
144
145 can0_pins: can0 {
146 renesas,groups = "can0_data";
147 renesas,function = "can0";
148 };
149};
150
151&scif0 {
152 pinctrl-0 = <&scif0_pins>;
153 pinctrl-names = "default";
154
155 status = "okay";
156};
157
158&ether {
159 pinctrl-0 = <&ether_pins &phy1_pins>;
160 pinctrl-names = "default";
161
162 phy-handle = <&phy1>;
163 renesas,ether-link-active-low;
164 status = "okay";
165
166 phy1: ethernet-phy@1 {
167 reg = <1>;
168 interrupt-parent = <&irqc0>;
169 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
170 micrel,led-mode = <1>;
171 };
172};
173
174&sata0 {
175 status = "okay";
176};
177
178&sdhi0 {
179 pinctrl-0 = <&sdhi0_pins>;
180 pinctrl-names = "default";
181
182 vmmc-supply = <&vcc_sdhi0>;
183 vqmmc-supply = <&vccq_sdhi0>;
184 cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
185 wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
186 status = "okay";
187};
188
189&sdhi2 {
190 pinctrl-0 = <&sdhi2_pins>;
191 pinctrl-names = "default";
192
193 vmmc-supply = <&vcc_sdhi2>;
194 vqmmc-supply = <&vccq_sdhi2>;
195 cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>;
196 status = "okay";
197};
198
199&i2c2 {
200 pinctrl-0 = <&i2c2_pins>;
201 pinctrl-names = "default";
202
203 status = "okay";
204 clock-frequency = <400000>;
205
206 composite-in@20 {
207 compatible = "adi,adv7180";
208 reg = <0x20>;
209 remote = <&vin0>;
210
211 port {
212 adv7180: endpoint {
213 bus-width = <8>;
214 remote-endpoint = <&vin0ep>;
215 };
216 };
217 };
218};
219
220&qspi {
221 pinctrl-0 = <&qspi_pins>;
222 pinctrl-names = "default";
223
224 status = "okay";
225
226 flash@0 {
227 #address-cells = <1>;
228 #size-cells = <1>;
229 compatible = "spansion,s25fl512s", "jedec,spi-nor";
230 reg = <0>;
231 spi-max-frequency = <30000000>;
232 spi-tx-bus-width = <4>;
233 spi-rx-bus-width = <4>;
234 m25p,fast-read;
235
236 partition@0 {
237 label = "loader_prg";
238 reg = <0x00000000 0x00040000>;
239 read-only;
240 };
241 partition@40000 {
242 label = "user_prg";
243 reg = <0x00040000 0x00400000>;
244 read-only;
245 };
246 partition@440000 {
247 label = "flash_fs";
248 reg = <0x00440000 0x03bc0000>;
249 };
250 };
251};
252
253&msiof0 {
254 pinctrl-0 = <&msiof0_pins>;
255 pinctrl-names = "default";
256
257 status = "okay";
258
259 pmic@0 {
260 compatible = "renesas,r2a11302ft";
261 reg = <0>;
262 spi-max-frequency = <6000000>;
263 spi-cpol;
264 spi-cpha;
265 };
266};
267
268&pci0 {
269 status = "okay";
270 pinctrl-0 = <&usb0_pins>;
271 pinctrl-names = "default";
272};
273
274&pci1 {
275 status = "okay";
276 pinctrl-0 = <&usb1_pins>;
277 pinctrl-names = "default";
278};
279
280&hsusb {
281 status = "okay";
282 pinctrl-0 = <&usb0_pins>;
283 pinctrl-names = "default";
284 renesas,enable-gpio = <&gpio5 31 GPIO_ACTIVE_HIGH>;
285};
286
287&usbphy {
288 status = "okay";
289};
290
291&pcie_bus_clk {
292 status = "okay";
293};
294
295&pciec {
296 status = "okay";
297};
298
299/* composite video input */
300&vin0 {
301 status = "okay";
302 pinctrl-0 = <&vin0_pins>;
303 pinctrl-names = "default";
304
305 port {
306 #address-cells = <1>;
307 #size-cells = <0>;
308
309 vin0ep: endpoint {
310 remote-endpoint = <&adv7180>;
311 bus-width = <8>;
312 };
313 };
314};
315
316&can0 {
317 pinctrl-0 = <&can0_pins>;
318 pinctrl-names = "default";
319 status = "okay";
320};
diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts b/arch/arm/boot/dts/r8a7791-koelsch.dts
index fc44ea361a4b..45256f3cc835 100644
--- a/arch/arm/boot/dts/r8a7791-koelsch.dts
+++ b/arch/arm/boot/dts/r8a7791-koelsch.dts
@@ -54,7 +54,7 @@
54 54
55 chosen { 55 chosen {
56 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 56 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
57 stdout-path = &scif0; 57 stdout-path = "serial0:115200n8";
58 }; 58 };
59 59
60 memory@40000000 { 60 memory@40000000 {
@@ -79,77 +79,77 @@
79 gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; 79 gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
80 linux,code = <KEY_1>; 80 linux,code = <KEY_1>;
81 label = "SW2-1"; 81 label = "SW2-1";
82 gpio-key,wakeup; 82 wakeup-source;
83 debounce-interval = <20>; 83 debounce-interval = <20>;
84 }; 84 };
85 key-2 { 85 key-2 {
86 gpios = <&gpio5 1 GPIO_ACTIVE_LOW>; 86 gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
87 linux,code = <KEY_2>; 87 linux,code = <KEY_2>;
88 label = "SW2-2"; 88 label = "SW2-2";
89 gpio-key,wakeup; 89 wakeup-source;
90 debounce-interval = <20>; 90 debounce-interval = <20>;
91 }; 91 };
92 key-3 { 92 key-3 {
93 gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; 93 gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
94 linux,code = <KEY_3>; 94 linux,code = <KEY_3>;
95 label = "SW2-3"; 95 label = "SW2-3";
96 gpio-key,wakeup; 96 wakeup-source;
97 debounce-interval = <20>; 97 debounce-interval = <20>;
98 }; 98 };
99 key-4 { 99 key-4 {
100 gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; 100 gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
101 linux,code = <KEY_4>; 101 linux,code = <KEY_4>;
102 label = "SW2-4"; 102 label = "SW2-4";
103 gpio-key,wakeup; 103 wakeup-source;
104 debounce-interval = <20>; 104 debounce-interval = <20>;
105 }; 105 };
106 key-a { 106 key-a {
107 gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; 107 gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
108 linux,code = <KEY_A>; 108 linux,code = <KEY_A>;
109 label = "SW30"; 109 label = "SW30";
110 gpio-key,wakeup; 110 wakeup-source;
111 debounce-interval = <20>; 111 debounce-interval = <20>;
112 }; 112 };
113 key-b { 113 key-b {
114 gpios = <&gpio7 1 GPIO_ACTIVE_LOW>; 114 gpios = <&gpio7 1 GPIO_ACTIVE_LOW>;
115 linux,code = <KEY_B>; 115 linux,code = <KEY_B>;
116 label = "SW31"; 116 label = "SW31";
117 gpio-key,wakeup; 117 wakeup-source;
118 debounce-interval = <20>; 118 debounce-interval = <20>;
119 }; 119 };
120 key-c { 120 key-c {
121 gpios = <&gpio7 2 GPIO_ACTIVE_LOW>; 121 gpios = <&gpio7 2 GPIO_ACTIVE_LOW>;
122 linux,code = <KEY_C>; 122 linux,code = <KEY_C>;
123 label = "SW32"; 123 label = "SW32";
124 gpio-key,wakeup; 124 wakeup-source;
125 debounce-interval = <20>; 125 debounce-interval = <20>;
126 }; 126 };
127 key-d { 127 key-d {
128 gpios = <&gpio7 3 GPIO_ACTIVE_LOW>; 128 gpios = <&gpio7 3 GPIO_ACTIVE_LOW>;
129 linux,code = <KEY_D>; 129 linux,code = <KEY_D>;
130 label = "SW33"; 130 label = "SW33";
131 gpio-key,wakeup; 131 wakeup-source;
132 debounce-interval = <20>; 132 debounce-interval = <20>;
133 }; 133 };
134 key-e { 134 key-e {
135 gpios = <&gpio7 4 GPIO_ACTIVE_LOW>; 135 gpios = <&gpio7 4 GPIO_ACTIVE_LOW>;
136 linux,code = <KEY_E>; 136 linux,code = <KEY_E>;
137 label = "SW34"; 137 label = "SW34";
138 gpio-key,wakeup; 138 wakeup-source;
139 debounce-interval = <20>; 139 debounce-interval = <20>;
140 }; 140 };
141 key-f { 141 key-f {
142 gpios = <&gpio7 5 GPIO_ACTIVE_LOW>; 142 gpios = <&gpio7 5 GPIO_ACTIVE_LOW>;
143 linux,code = <KEY_F>; 143 linux,code = <KEY_F>;
144 label = "SW35"; 144 label = "SW35";
145 gpio-key,wakeup; 145 wakeup-source;
146 debounce-interval = <20>; 146 debounce-interval = <20>;
147 }; 147 };
148 key-g { 148 key-g {
149 gpios = <&gpio7 6 GPIO_ACTIVE_LOW>; 149 gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
150 linux,code = <KEY_G>; 150 linux,code = <KEY_G>;
151 label = "SW36"; 151 label = "SW36";
152 gpio-key,wakeup; 152 wakeup-source;
153 debounce-interval = <20>; 153 debounce-interval = <20>;
154 }; 154 };
155 }; 155 };
@@ -326,7 +326,7 @@
326 }; 326 };
327 327
328 du_pins: du { 328 du_pins: du {
329 renesas,groups = "du_rgb666", "du_sync", "du_disp", "du_clk_out_0"; 329 renesas,groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0";
330 renesas,function = "du"; 330 renesas,function = "du";
331 }; 331 };
332 332
@@ -479,8 +479,6 @@
479 status = "okay"; 479 status = "okay";
480 480
481 flash: flash@0 { 481 flash: flash@0 {
482 #address-cells = <1>;
483 #size-cells = <1>;
484 compatible = "spansion,s25fl512s", "jedec,spi-nor"; 482 compatible = "spansion,s25fl512s", "jedec,spi-nor";
485 reg = <0>; 483 reg = <0>;
486 spi-max-frequency = <30000000>; 484 spi-max-frequency = <30000000>;
@@ -490,19 +488,25 @@
490 spi-cpol; 488 spi-cpol;
491 m25p,fast-read; 489 m25p,fast-read;
492 490
493 partition@0 { 491 partitions {
494 label = "loader"; 492 compatible = "fixed-partitions";
495 reg = <0x00000000 0x00080000>; 493 #address-cells = <1>;
496 read-only; 494 #size-cells = <1>;
497 }; 495
498 partition@80000 { 496 partition@0 {
499 label = "user"; 497 label = "loader";
500 reg = <0x00080000 0x00580000>; 498 reg = <0x00000000 0x00080000>;
501 read-only; 499 read-only;
502 }; 500 };
503 partition@600000 { 501 partition@80000 {
504 label = "flash"; 502 label = "user";
505 reg = <0x00600000 0x03a00000>; 503 reg = <0x00080000 0x00580000>;
504 read-only;
505 };
506 partition@600000 {
507 label = "flash";
508 reg = <0x00600000 0x03a00000>;
509 };
506 }; 510 };
507 }; 511 };
508}; 512};
diff --git a/arch/arm/boot/dts/r8a7791-porter.dts b/arch/arm/boot/dts/r8a7791-porter.dts
index fe0f12fc02a1..6713b1ea732b 100644
--- a/arch/arm/boot/dts/r8a7791-porter.dts
+++ b/arch/arm/boot/dts/r8a7791-porter.dts
@@ -22,7 +22,7 @@
22 22
23 chosen { 23 chosen {
24 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 24 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
25 stdout-path = &scif0; 25 stdout-path = "serial0:115200n8";
26 }; 26 };
27 27
28 memory@40000000 { 28 memory@40000000 {
@@ -134,6 +134,11 @@
134 renesas,groups = "vin0_data8", "vin0_clk"; 134 renesas,groups = "vin0_data8", "vin0_clk";
135 renesas,function = "vin0"; 135 renesas,function = "vin0";
136 }; 136 };
137
138 can0_pins: can0 {
139 renesas,groups = "can0_data";
140 renesas,function = "can0";
141 };
137}; 142};
138 143
139&scif0 { 144&scif0 {
@@ -187,8 +192,6 @@
187 status = "okay"; 192 status = "okay";
188 193
189 flash@0 { 194 flash@0 {
190 #address-cells = <1>;
191 #size-cells = <1>;
192 compatible = "spansion,s25fl512s", "jedec,spi-nor"; 195 compatible = "spansion,s25fl512s", "jedec,spi-nor";
193 reg = <0>; 196 reg = <0>;
194 spi-max-frequency = <30000000>; 197 spi-max-frequency = <30000000>;
@@ -196,19 +199,25 @@
196 spi-rx-bus-width = <4>; 199 spi-rx-bus-width = <4>;
197 m25p,fast-read; 200 m25p,fast-read;
198 201
199 partition@0 { 202 partitions {
200 label = "loader_prg"; 203 compatible = "fixed-partitions";
201 reg = <0x00000000 0x00040000>; 204 #address-cells = <1>;
202 read-only; 205 #size-cells = <1>;
203 }; 206
204 partition@40000 { 207 partition@0 {
205 label = "user_prg"; 208 label = "loader_prg";
206 reg = <0x00040000 0x00400000>; 209 reg = <0x00000000 0x00040000>;
207 read-only; 210 read-only;
208 }; 211 };
209 partition@440000 { 212 partition@40000 {
210 label = "flash_fs"; 213 label = "user_prg";
211 reg = <0x00440000 0x03bc0000>; 214 reg = <0x00040000 0x00400000>;
215 read-only;
216 };
217 partition@440000 {
218 label = "flash_fs";
219 reg = <0x00440000 0x03bc0000>;
220 };
212 }; 221 };
213 }; 222 };
214}; 223};
@@ -269,6 +278,14 @@
269 status = "okay"; 278 status = "okay";
270}; 279};
271 280
281&hsusb {
282 pinctrl-0 = <&usb0_pins>;
283 pinctrl-names = "default";
284
285 status = "okay";
286 renesas,enable-gpio = <&gpio5 31 GPIO_ACTIVE_HIGH>;
287};
288
272&usbphy { 289&usbphy {
273 status = "okay"; 290 status = "okay";
274}; 291};
@@ -280,3 +297,10 @@
280&pciec { 297&pciec {
281 status = "okay"; 298 status = "okay";
282}; 299};
300
301&can0 {
302 pinctrl-0 = <&can0_pins>;
303 pinctrl-names = "default";
304
305 status = "okay";
306};
diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
index 328f48bd15e7..2a369ddcb6fd 100644
--- a/arch/arm/boot/dts/r8a7791.dtsi
+++ b/arch/arm/boot/dts/r8a7791.dtsi
@@ -100,7 +100,7 @@
100 interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>; 100 interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
101 #gpio-cells = <2>; 101 #gpio-cells = <2>;
102 gpio-controller; 102 gpio-controller;
103 gpio-ranges = <&pfc 0 32 32>; 103 gpio-ranges = <&pfc 0 32 26>;
104 #interrupt-cells = <2>; 104 #interrupt-cells = <2>;
105 interrupt-controller; 105 interrupt-controller;
106 clocks = <&mstp9_clks R8A7791_CLK_GPIO1>; 106 clocks = <&mstp9_clks R8A7791_CLK_GPIO1>;
@@ -255,7 +255,7 @@
255 }; 255 };
256 256
257 dmac0: dma-controller@e6700000 { 257 dmac0: dma-controller@e6700000 {
258 compatible = "renesas,rcar-dmac"; 258 compatible = "renesas,dmac-r8a7791", "renesas,rcar-dmac";
259 reg = <0 0xe6700000 0 0x20000>; 259 reg = <0 0xe6700000 0 0x20000>;
260 interrupts = <0 197 IRQ_TYPE_LEVEL_HIGH 260 interrupts = <0 197 IRQ_TYPE_LEVEL_HIGH
261 0 200 IRQ_TYPE_LEVEL_HIGH 261 0 200 IRQ_TYPE_LEVEL_HIGH
@@ -286,7 +286,7 @@
286 }; 286 };
287 287
288 dmac1: dma-controller@e6720000 { 288 dmac1: dma-controller@e6720000 {
289 compatible = "renesas,rcar-dmac"; 289 compatible = "renesas,dmac-r8a7791", "renesas,rcar-dmac";
290 reg = <0 0xe6720000 0 0x20000>; 290 reg = <0 0xe6720000 0 0x20000>;
291 interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH 291 interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH
292 0 216 IRQ_TYPE_LEVEL_HIGH 292 0 216 IRQ_TYPE_LEVEL_HIGH
@@ -317,7 +317,7 @@
317 }; 317 };
318 318
319 audma0: dma-controller@ec700000 { 319 audma0: dma-controller@ec700000 {
320 compatible = "renesas,rcar-dmac"; 320 compatible = "renesas,dmac-r8a7791", "renesas,rcar-dmac";
321 reg = <0 0xec700000 0 0x10000>; 321 reg = <0 0xec700000 0 0x10000>;
322 interrupts = <0 346 IRQ_TYPE_LEVEL_HIGH 322 interrupts = <0 346 IRQ_TYPE_LEVEL_HIGH
323 0 320 IRQ_TYPE_LEVEL_HIGH 323 0 320 IRQ_TYPE_LEVEL_HIGH
@@ -346,7 +346,7 @@
346 }; 346 };
347 347
348 audma1: dma-controller@ec720000 { 348 audma1: dma-controller@ec720000 {
349 compatible = "renesas,rcar-dmac"; 349 compatible = "renesas,dmac-r8a7791", "renesas,rcar-dmac";
350 reg = <0 0xec720000 0 0x10000>; 350 reg = <0 0xec720000 0 0x10000>;
351 interrupts = <0 347 IRQ_TYPE_LEVEL_HIGH 351 interrupts = <0 347 IRQ_TYPE_LEVEL_HIGH
352 0 333 IRQ_TYPE_LEVEL_HIGH 352 0 333 IRQ_TYPE_LEVEL_HIGH
@@ -375,7 +375,7 @@
375 }; 375 };
376 376
377 usb_dmac0: dma-controller@e65a0000 { 377 usb_dmac0: dma-controller@e65a0000 {
378 compatible = "renesas,usb-dmac"; 378 compatible = "renesas,r8a7791-usb-dmac", "renesas,usb-dmac";
379 reg = <0 0xe65a0000 0 0x100>; 379 reg = <0 0xe65a0000 0 0x100>;
380 interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH 380 interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH
381 0 109 IRQ_TYPE_LEVEL_HIGH>; 381 0 109 IRQ_TYPE_LEVEL_HIGH>;
@@ -387,7 +387,7 @@
387 }; 387 };
388 388
389 usb_dmac1: dma-controller@e65b0000 { 389 usb_dmac1: dma-controller@e65b0000 {
390 compatible = "renesas,usb-dmac"; 390 compatible = "renesas,r8a7791-usb-dmac", "renesas,usb-dmac";
391 reg = <0 0xe65b0000 0 0x100>; 391 reg = <0 0xe65b0000 0 0x100>;
392 interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH 392 interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH
393 0 110 IRQ_TYPE_LEVEL_HIGH>; 393 0 110 IRQ_TYPE_LEVEL_HIGH>;
@@ -407,6 +407,7 @@
407 interrupts = <0 287 IRQ_TYPE_LEVEL_HIGH>; 407 interrupts = <0 287 IRQ_TYPE_LEVEL_HIGH>;
408 clocks = <&mstp9_clks R8A7791_CLK_I2C0>; 408 clocks = <&mstp9_clks R8A7791_CLK_I2C0>;
409 power-domains = <&cpg_clocks>; 409 power-domains = <&cpg_clocks>;
410 i2c-scl-internal-delay-ns = <6>;
410 status = "disabled"; 411 status = "disabled";
411 }; 412 };
412 413
@@ -418,6 +419,7 @@
418 interrupts = <0 288 IRQ_TYPE_LEVEL_HIGH>; 419 interrupts = <0 288 IRQ_TYPE_LEVEL_HIGH>;
419 clocks = <&mstp9_clks R8A7791_CLK_I2C1>; 420 clocks = <&mstp9_clks R8A7791_CLK_I2C1>;
420 power-domains = <&cpg_clocks>; 421 power-domains = <&cpg_clocks>;
422 i2c-scl-internal-delay-ns = <6>;
421 status = "disabled"; 423 status = "disabled";
422 }; 424 };
423 425
@@ -429,6 +431,7 @@
429 interrupts = <0 286 IRQ_TYPE_LEVEL_HIGH>; 431 interrupts = <0 286 IRQ_TYPE_LEVEL_HIGH>;
430 clocks = <&mstp9_clks R8A7791_CLK_I2C2>; 432 clocks = <&mstp9_clks R8A7791_CLK_I2C2>;
431 power-domains = <&cpg_clocks>; 433 power-domains = <&cpg_clocks>;
434 i2c-scl-internal-delay-ns = <6>;
432 status = "disabled"; 435 status = "disabled";
433 }; 436 };
434 437
@@ -440,6 +443,7 @@
440 interrupts = <0 290 IRQ_TYPE_LEVEL_HIGH>; 443 interrupts = <0 290 IRQ_TYPE_LEVEL_HIGH>;
441 clocks = <&mstp9_clks R8A7791_CLK_I2C3>; 444 clocks = <&mstp9_clks R8A7791_CLK_I2C3>;
442 power-domains = <&cpg_clocks>; 445 power-domains = <&cpg_clocks>;
446 i2c-scl-internal-delay-ns = <6>;
443 status = "disabled"; 447 status = "disabled";
444 }; 448 };
445 449
@@ -451,6 +455,7 @@
451 interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>; 455 interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>;
452 clocks = <&mstp9_clks R8A7791_CLK_I2C4>; 456 clocks = <&mstp9_clks R8A7791_CLK_I2C4>;
453 power-domains = <&cpg_clocks>; 457 power-domains = <&cpg_clocks>;
458 i2c-scl-internal-delay-ns = <6>;
454 status = "disabled"; 459 status = "disabled";
455 }; 460 };
456 461
@@ -463,6 +468,7 @@
463 interrupts = <0 20 IRQ_TYPE_LEVEL_HIGH>; 468 interrupts = <0 20 IRQ_TYPE_LEVEL_HIGH>;
464 clocks = <&mstp9_clks R8A7791_CLK_I2C5>; 469 clocks = <&mstp9_clks R8A7791_CLK_I2C5>;
465 power-domains = <&cpg_clocks>; 470 power-domains = <&cpg_clocks>;
471 i2c-scl-internal-delay-ns = <110>;
466 status = "disabled"; 472 status = "disabled";
467 }; 473 };
468 474
@@ -509,7 +515,6 @@
509 pfc: pfc@e6060000 { 515 pfc: pfc@e6060000 {
510 compatible = "renesas,pfc-r8a7791"; 516 compatible = "renesas,pfc-r8a7791";
511 reg = <0 0xe6060000 0 0x250>; 517 reg = <0 0xe6060000 0 0x250>;
512 #gpio-range-cells = <3>;
513 }; 518 };
514 519
515 mmcif0: mmc@ee200000 { 520 mmcif0: mmc@ee200000 {
@@ -786,6 +791,18 @@
786 status = "disabled"; 791 status = "disabled";
787 }; 792 };
788 793
794 avb: ethernet@e6800000 {
795 compatible = "renesas,etheravb-r8a7791",
796 "renesas,etheravb-rcar-gen2";
797 reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>;
798 interrupts = <0 163 IRQ_TYPE_LEVEL_HIGH>;
799 clocks = <&mstp8_clks R8A7791_CLK_ETHERAVB>;
800 power-domains = <&cpg_clocks>;
801 #address-cells = <1>;
802 #size-cells = <0>;
803 status = "disabled";
804 };
805
789 sata0: sata@ee300000 { 806 sata0: sata@ee300000 {
790 compatible = "renesas,sata-r8a7791"; 807 compatible = "renesas,sata-r8a7791";
791 reg = <0 0xee300000 0 0x2000>; 808 reg = <0 0xee300000 0 0x2000>;
@@ -1163,14 +1180,6 @@
1163 clock-mult = <1>; 1180 clock-mult = <1>;
1164 clock-output-names = "m2"; 1181 clock-output-names = "m2";
1165 }; 1182 };
1166 imp_clk: imp_clk {
1167 compatible = "fixed-factor-clock";
1168 clocks = <&cpg_clocks R8A7791_CLK_PLL1>;
1169 #clock-cells = <0>;
1170 clock-div = <4>;
1171 clock-mult = <1>;
1172 clock-output-names = "imp";
1173 };
1174 rclk_clk: rclk_clk { 1183 rclk_clk: rclk_clk {
1175 compatible = "fixed-factor-clock"; 1184 compatible = "fixed-factor-clock";
1176 clocks = <&cpg_clocks R8A7791_CLK_PLL1>; 1185 clocks = <&cpg_clocks R8A7791_CLK_PLL1>;
@@ -1338,16 +1347,18 @@
1338 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; 1347 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
1339 reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>; 1348 reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>;
1340 clocks = <&zx_clk>, <&hp_clk>, <&zg_clk>, <&zg_clk>, 1349 clocks = <&zx_clk>, <&hp_clk>, <&zg_clk>, <&zg_clk>,
1341 <&zg_clk>, <&p_clk>, <&zs_clk>, <&zs_clk>; 1350 <&zg_clk>, <&hp_clk>, <&p_clk>, <&zs_clk>,
1351 <&zs_clk>;
1342 #clock-cells = <1>; 1352 #clock-cells = <1>;
1343 clock-indices = < 1353 clock-indices = <
1344 R8A7791_CLK_IPMMU_SGX R8A7791_CLK_MLB 1354 R8A7791_CLK_IPMMU_SGX R8A7791_CLK_MLB
1345 R8A7791_CLK_VIN2 R8A7791_CLK_VIN1 R8A7791_CLK_VIN0 1355 R8A7791_CLK_VIN2 R8A7791_CLK_VIN1 R8A7791_CLK_VIN0
1346 R8A7791_CLK_ETHER R8A7791_CLK_SATA1 R8A7791_CLK_SATA0 1356 R8A7791_CLK_ETHERAVB R8A7791_CLK_ETHER
1357 R8A7791_CLK_SATA1 R8A7791_CLK_SATA0
1347 >; 1358 >;
1348 clock-output-names = 1359 clock-output-names =
1349 "ipmmu_sgx", "mlb", "vin2", "vin1", "vin0", "ether", 1360 "ipmmu_sgx", "mlb", "vin2", "vin1", "vin0",
1350 "sata1", "sata0"; 1361 "etheravb", "ether", "sata1", "sata0";
1351 }; 1362 };
1352 mstp9_clks: mstp9_clks@e6150994 { 1363 mstp9_clks: mstp9_clks@e6150994 {
1353 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; 1364 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
@@ -1579,7 +1590,7 @@
1579 }; 1590 };
1580 1591
1581 ipmmu_sy0: mmu@e6280000 { 1592 ipmmu_sy0: mmu@e6280000 {
1582 compatible = "renesas,ipmmu-vmsa"; 1593 compatible = "renesas,ipmmu-r8a7791", "renesas,ipmmu-vmsa";
1583 reg = <0 0xe6280000 0 0x1000>; 1594 reg = <0 0xe6280000 0 0x1000>;
1584 interrupts = <0 223 IRQ_TYPE_LEVEL_HIGH>, 1595 interrupts = <0 223 IRQ_TYPE_LEVEL_HIGH>,
1585 <0 224 IRQ_TYPE_LEVEL_HIGH>; 1596 <0 224 IRQ_TYPE_LEVEL_HIGH>;
@@ -1588,7 +1599,7 @@
1588 }; 1599 };
1589 1600
1590 ipmmu_sy1: mmu@e6290000 { 1601 ipmmu_sy1: mmu@e6290000 {
1591 compatible = "renesas,ipmmu-vmsa"; 1602 compatible = "renesas,ipmmu-r8a7791", "renesas,ipmmu-vmsa";
1592 reg = <0 0xe6290000 0 0x1000>; 1603 reg = <0 0xe6290000 0 0x1000>;
1593 interrupts = <0 225 IRQ_TYPE_LEVEL_HIGH>; 1604 interrupts = <0 225 IRQ_TYPE_LEVEL_HIGH>;
1594 #iommu-cells = <1>; 1605 #iommu-cells = <1>;
@@ -1596,7 +1607,7 @@
1596 }; 1607 };
1597 1608
1598 ipmmu_ds: mmu@e6740000 { 1609 ipmmu_ds: mmu@e6740000 {
1599 compatible = "renesas,ipmmu-vmsa"; 1610 compatible = "renesas,ipmmu-r8a7791", "renesas,ipmmu-vmsa";
1600 reg = <0 0xe6740000 0 0x1000>; 1611 reg = <0 0xe6740000 0 0x1000>;
1601 interrupts = <0 198 IRQ_TYPE_LEVEL_HIGH>, 1612 interrupts = <0 198 IRQ_TYPE_LEVEL_HIGH>,
1602 <0 199 IRQ_TYPE_LEVEL_HIGH>; 1613 <0 199 IRQ_TYPE_LEVEL_HIGH>;
@@ -1605,7 +1616,7 @@
1605 }; 1616 };
1606 1617
1607 ipmmu_mp: mmu@ec680000 { 1618 ipmmu_mp: mmu@ec680000 {
1608 compatible = "renesas,ipmmu-vmsa"; 1619 compatible = "renesas,ipmmu-r8a7791", "renesas,ipmmu-vmsa";
1609 reg = <0 0xec680000 0 0x1000>; 1620 reg = <0 0xec680000 0 0x1000>;
1610 interrupts = <0 226 IRQ_TYPE_LEVEL_HIGH>; 1621 interrupts = <0 226 IRQ_TYPE_LEVEL_HIGH>;
1611 #iommu-cells = <1>; 1622 #iommu-cells = <1>;
@@ -1613,7 +1624,7 @@
1613 }; 1624 };
1614 1625
1615 ipmmu_mx: mmu@fe951000 { 1626 ipmmu_mx: mmu@fe951000 {
1616 compatible = "renesas,ipmmu-vmsa"; 1627 compatible = "renesas,ipmmu-r8a7791", "renesas,ipmmu-vmsa";
1617 reg = <0 0xfe951000 0 0x1000>; 1628 reg = <0 0xfe951000 0 0x1000>;
1618 interrupts = <0 222 IRQ_TYPE_LEVEL_HIGH>, 1629 interrupts = <0 222 IRQ_TYPE_LEVEL_HIGH>,
1619 <0 221 IRQ_TYPE_LEVEL_HIGH>; 1630 <0 221 IRQ_TYPE_LEVEL_HIGH>;
@@ -1622,7 +1633,7 @@
1622 }; 1633 };
1623 1634
1624 ipmmu_rt: mmu@ffc80000 { 1635 ipmmu_rt: mmu@ffc80000 {
1625 compatible = "renesas,ipmmu-vmsa"; 1636 compatible = "renesas,ipmmu-r8a7791", "renesas,ipmmu-vmsa";
1626 reg = <0 0xffc80000 0 0x1000>; 1637 reg = <0 0xffc80000 0 0x1000>;
1627 interrupts = <0 307 IRQ_TYPE_LEVEL_HIGH>; 1638 interrupts = <0 307 IRQ_TYPE_LEVEL_HIGH>;
1628 #iommu-cells = <1>; 1639 #iommu-cells = <1>;
@@ -1630,7 +1641,7 @@
1630 }; 1641 };
1631 1642
1632 ipmmu_gp: mmu@e62a0000 { 1643 ipmmu_gp: mmu@e62a0000 {
1633 compatible = "renesas,ipmmu-vmsa"; 1644 compatible = "renesas,ipmmu-r8a7791", "renesas,ipmmu-vmsa";
1634 reg = <0 0xe62a0000 0 0x1000>; 1645 reg = <0 0xe62a0000 0 0x1000>;
1635 interrupts = <0 260 IRQ_TYPE_LEVEL_HIGH>, 1646 interrupts = <0 260 IRQ_TYPE_LEVEL_HIGH>,
1636 <0 261 IRQ_TYPE_LEVEL_HIGH>; 1647 <0 261 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/r8a7793-gose.dts b/arch/arm/boot/dts/r8a7793-gose.dts
index 96443ec5f6ab..baa59fe84298 100644
--- a/arch/arm/boot/dts/r8a7793-gose.dts
+++ b/arch/arm/boot/dts/r8a7793-gose.dts
@@ -24,7 +24,7 @@
24 24
25 chosen { 25 chosen {
26 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 26 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
27 stdout-path = &scif0; 27 stdout-path = "serial0:115200n8";
28 }; 28 };
29 29
30 memory@40000000 { 30 memory@40000000 {
@@ -37,7 +37,37 @@
37 clock-frequency = <20000000>; 37 clock-frequency = <20000000>;
38}; 38};
39 39
40&pfc {
41 scif0_pins: serial0 {
42 renesas,groups = "scif0_data_d";
43 renesas,function = "scif0";
44 };
45
46 scif1_pins: serial1 {
47 renesas,groups = "scif1_data_d";
48 renesas,function = "scif1";
49 };
50
51 ether_pins: ether {
52 renesas,groups = "eth_link", "eth_mdio", "eth_rmii";
53 renesas,function = "eth";
54 };
55
56 phy1_pins: phy1 {
57 renesas,groups = "intc_irq0";
58 renesas,function = "intc";
59 };
60
61 qspi_pins: spi0 {
62 renesas,groups = "qspi_ctrl", "qspi_data4";
63 renesas,function = "qspi";
64 };
65};
66
40&ether { 67&ether {
68 pinctrl-0 = <&ether_pins &phy1_pins>;
69 pinctrl-names = "default";
70
41 phy-handle = <&phy1>; 71 phy-handle = <&phy1>;
42 renesas,ether-link-active-low; 72 renesas,ether-link-active-low;
43 status = "okay"; 73 status = "okay";
@@ -55,9 +85,54 @@
55}; 85};
56 86
57&scif0 { 87&scif0 {
88 pinctrl-0 = <&scif0_pins>;
89 pinctrl-names = "default";
90
58 status = "okay"; 91 status = "okay";
59}; 92};
60 93
61&scif1 { 94&scif1 {
95 pinctrl-0 = <&scif1_pins>;
96 pinctrl-names = "default";
97
62 status = "okay"; 98 status = "okay";
63}; 99};
100
101&qspi {
102 pinctrl-0 = <&qspi_pins>;
103 pinctrl-names = "default";
104
105 status = "okay";
106
107 flash@0 {
108 compatible = "spansion,s25fl512s", "jedec,spi-nor";
109 reg = <0>;
110 spi-max-frequency = <30000000>;
111 spi-tx-bus-width = <4>;
112 spi-rx-bus-width = <4>;
113 spi-cpol;
114 spi-cpha;
115 m25p,fast-read;
116
117 partitions {
118 compatible = "fixed-partitions";
119 #address-cells = <1>;
120 #size-cells = <1>;
121
122 partition@0 {
123 label = "loader";
124 reg = <0x00000000 0x00040000>;
125 read-only;
126 };
127 partition@40000 {
128 label = "user";
129 reg = <0x00040000 0x00400000>;
130 read-only;
131 };
132 partition@440000 {
133 label = "flash";
134 reg = <0x00440000 0x03bc0000>;
135 };
136 };
137 };
138};
diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi
index c4654047e684..aef9e69d6c26 100644
--- a/arch/arm/boot/dts/r8a7793.dtsi
+++ b/arch/arm/boot/dts/r8a7793.dtsi
@@ -18,6 +18,10 @@
18 #address-cells = <2>; 18 #address-cells = <2>;
19 #size-cells = <2>; 19 #size-cells = <2>;
20 20
21 aliases {
22 spi0 = &qspi;
23 };
24
21 cpus { 25 cpus {
22 #address-cells = <1>; 26 #address-cells = <1>;
23 #size-cells = <0>; 27 #size-cells = <0>;
@@ -53,6 +57,118 @@
53 interrupts = <1 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 57 interrupts = <1 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
54 }; 58 };
55 59
60 gpio0: gpio@e6050000 {
61 compatible = "renesas,gpio-r8a7793", "renesas,gpio-rcar";
62 reg = <0 0xe6050000 0 0x50>;
63 interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>;
64 #gpio-cells = <2>;
65 gpio-controller;
66 gpio-ranges = <&pfc 0 0 32>;
67 #interrupt-cells = <2>;
68 interrupt-controller;
69 clocks = <&mstp9_clks R8A7793_CLK_GPIO0>;
70 power-domains = <&cpg_clocks>;
71 };
72
73 gpio1: gpio@e6051000 {
74 compatible = "renesas,gpio-r8a7793", "renesas,gpio-rcar";
75 reg = <0 0xe6051000 0 0x50>;
76 interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
77 #gpio-cells = <2>;
78 gpio-controller;
79 gpio-ranges = <&pfc 0 32 26>;
80 #interrupt-cells = <2>;
81 interrupt-controller;
82 clocks = <&mstp9_clks R8A7793_CLK_GPIO1>;
83 power-domains = <&cpg_clocks>;
84 };
85
86 gpio2: gpio@e6052000 {
87 compatible = "renesas,gpio-r8a7793", "renesas,gpio-rcar";
88 reg = <0 0xe6052000 0 0x50>;
89 interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
90 #gpio-cells = <2>;
91 gpio-controller;
92 gpio-ranges = <&pfc 0 64 32>;
93 #interrupt-cells = <2>;
94 interrupt-controller;
95 clocks = <&mstp9_clks R8A7793_CLK_GPIO2>;
96 power-domains = <&cpg_clocks>;
97 };
98
99 gpio3: gpio@e6053000 {
100 compatible = "renesas,gpio-r8a7793", "renesas,gpio-rcar";
101 reg = <0 0xe6053000 0 0x50>;
102 interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
103 #gpio-cells = <2>;
104 gpio-controller;
105 gpio-ranges = <&pfc 0 96 32>;
106 #interrupt-cells = <2>;
107 interrupt-controller;
108 clocks = <&mstp9_clks R8A7793_CLK_GPIO3>;
109 power-domains = <&cpg_clocks>;
110 };
111
112 gpio4: gpio@e6054000 {
113 compatible = "renesas,gpio-r8a7793", "renesas,gpio-rcar";
114 reg = <0 0xe6054000 0 0x50>;
115 interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>;
116 #gpio-cells = <2>;
117 gpio-controller;
118 gpio-ranges = <&pfc 0 128 32>;
119 #interrupt-cells = <2>;
120 interrupt-controller;
121 clocks = <&mstp9_clks R8A7793_CLK_GPIO4>;
122 power-domains = <&cpg_clocks>;
123 };
124
125 gpio5: gpio@e6055000 {
126 compatible = "renesas,gpio-r8a7793", "renesas,gpio-rcar";
127 reg = <0 0xe6055000 0 0x50>;
128 interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
129 #gpio-cells = <2>;
130 gpio-controller;
131 gpio-ranges = <&pfc 0 160 32>;
132 #interrupt-cells = <2>;
133 interrupt-controller;
134 clocks = <&mstp9_clks R8A7793_CLK_GPIO5>;
135 power-domains = <&cpg_clocks>;
136 };
137
138 gpio6: gpio@e6055400 {
139 compatible = "renesas,gpio-r8a7793", "renesas,gpio-rcar";
140 reg = <0 0xe6055400 0 0x50>;
141 interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
142 #gpio-cells = <2>;
143 gpio-controller;
144 gpio-ranges = <&pfc 0 192 32>;
145 #interrupt-cells = <2>;
146 interrupt-controller;
147 clocks = <&mstp9_clks R8A7793_CLK_GPIO6>;
148 power-domains = <&cpg_clocks>;
149 };
150
151 gpio7: gpio@e6055800 {
152 compatible = "renesas,gpio-r8a7793", "renesas,gpio-rcar";
153 reg = <0 0xe6055800 0 0x50>;
154 interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
155 #gpio-cells = <2>;
156 gpio-controller;
157 gpio-ranges = <&pfc 0 224 26>;
158 #interrupt-cells = <2>;
159 interrupt-controller;
160 clocks = <&mstp9_clks R8A7793_CLK_GPIO7>;
161 power-domains = <&cpg_clocks>;
162 };
163
164 thermal@e61f0000 {
165 compatible = "renesas,thermal-r8a7793", "renesas,rcar-thermal";
166 reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>;
167 interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>;
168 clocks = <&mstp5_clks R8A7793_CLK_THERMAL>;
169 power-domains = <&cpg_clocks>;
170 };
171
56 timer { 172 timer {
57 compatible = "arm,armv7-timer"; 173 compatible = "arm,armv7-timer";
58 interrupts = <1 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 174 interrupts = <1 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
@@ -114,12 +230,189 @@
114 power-domains = <&cpg_clocks>; 230 power-domains = <&cpg_clocks>;
115 }; 231 };
116 232
233 pfc: pfc@e6060000 {
234 compatible = "renesas,pfc-r8a7793";
235 reg = <0 0xe6060000 0 0x250>;
236 };
237
238 dmac0: dma-controller@e6700000 {
239 compatible = "renesas,dmac-r8a7793", "renesas,rcar-dmac";
240 reg = <0 0xe6700000 0 0x20000>;
241 interrupts = <0 197 IRQ_TYPE_LEVEL_HIGH
242 0 200 IRQ_TYPE_LEVEL_HIGH
243 0 201 IRQ_TYPE_LEVEL_HIGH
244 0 202 IRQ_TYPE_LEVEL_HIGH
245 0 203 IRQ_TYPE_LEVEL_HIGH
246 0 204 IRQ_TYPE_LEVEL_HIGH
247 0 205 IRQ_TYPE_LEVEL_HIGH
248 0 206 IRQ_TYPE_LEVEL_HIGH
249 0 207 IRQ_TYPE_LEVEL_HIGH
250 0 208 IRQ_TYPE_LEVEL_HIGH
251 0 209 IRQ_TYPE_LEVEL_HIGH
252 0 210 IRQ_TYPE_LEVEL_HIGH
253 0 211 IRQ_TYPE_LEVEL_HIGH
254 0 212 IRQ_TYPE_LEVEL_HIGH
255 0 213 IRQ_TYPE_LEVEL_HIGH
256 0 214 IRQ_TYPE_LEVEL_HIGH>;
257 interrupt-names = "error",
258 "ch0", "ch1", "ch2", "ch3",
259 "ch4", "ch5", "ch6", "ch7",
260 "ch8", "ch9", "ch10", "ch11",
261 "ch12", "ch13", "ch14";
262 clocks = <&mstp2_clks R8A7793_CLK_SYS_DMAC0>;
263 clock-names = "fck";
264 power-domains = <&cpg_clocks>;
265 #dma-cells = <1>;
266 dma-channels = <15>;
267 };
268
269 dmac1: dma-controller@e6720000 {
270 compatible = "renesas,dmac-r8a7793", "renesas,rcar-dmac";
271 reg = <0 0xe6720000 0 0x20000>;
272 interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH
273 0 216 IRQ_TYPE_LEVEL_HIGH
274 0 217 IRQ_TYPE_LEVEL_HIGH
275 0 218 IRQ_TYPE_LEVEL_HIGH
276 0 219 IRQ_TYPE_LEVEL_HIGH
277 0 308 IRQ_TYPE_LEVEL_HIGH
278 0 309 IRQ_TYPE_LEVEL_HIGH
279 0 310 IRQ_TYPE_LEVEL_HIGH
280 0 311 IRQ_TYPE_LEVEL_HIGH
281 0 312 IRQ_TYPE_LEVEL_HIGH
282 0 313 IRQ_TYPE_LEVEL_HIGH
283 0 314 IRQ_TYPE_LEVEL_HIGH
284 0 315 IRQ_TYPE_LEVEL_HIGH
285 0 316 IRQ_TYPE_LEVEL_HIGH
286 0 317 IRQ_TYPE_LEVEL_HIGH
287 0 318 IRQ_TYPE_LEVEL_HIGH>;
288 interrupt-names = "error",
289 "ch0", "ch1", "ch2", "ch3",
290 "ch4", "ch5", "ch6", "ch7",
291 "ch8", "ch9", "ch10", "ch11",
292 "ch12", "ch13", "ch14";
293 clocks = <&mstp2_clks R8A7793_CLK_SYS_DMAC1>;
294 clock-names = "fck";
295 power-domains = <&cpg_clocks>;
296 #dma-cells = <1>;
297 dma-channels = <15>;
298 };
299
300 scifa0: serial@e6c40000 {
301 compatible = "renesas,scifa-r8a7793", "renesas,scifa";
302 reg = <0 0xe6c40000 0 64>;
303 interrupts = <0 144 IRQ_TYPE_LEVEL_HIGH>;
304 clocks = <&mstp2_clks R8A7793_CLK_SCIFA0>;
305 clock-names = "sci_ick";
306 dmas = <&dmac0 0x21>, <&dmac0 0x22>;
307 dma-names = "tx", "rx";
308 power-domains = <&cpg_clocks>;
309 status = "disabled";
310 };
311
312 scifa1: serial@e6c50000 {
313 compatible = "renesas,scifa-r8a7793", "renesas,scifa";
314 reg = <0 0xe6c50000 0 64>;
315 interrupts = <0 145 IRQ_TYPE_LEVEL_HIGH>;
316 clocks = <&mstp2_clks R8A7793_CLK_SCIFA1>;
317 clock-names = "sci_ick";
318 dmas = <&dmac0 0x25>, <&dmac0 0x26>;
319 dma-names = "tx", "rx";
320 power-domains = <&cpg_clocks>;
321 status = "disabled";
322 };
323
324 scifa2: serial@e6c60000 {
325 compatible = "renesas,scifa-r8a7793", "renesas,scifa";
326 reg = <0 0xe6c60000 0 64>;
327 interrupts = <0 151 IRQ_TYPE_LEVEL_HIGH>;
328 clocks = <&mstp2_clks R8A7793_CLK_SCIFA2>;
329 clock-names = "sci_ick";
330 dmas = <&dmac0 0x27>, <&dmac0 0x28>;
331 dma-names = "tx", "rx";
332 power-domains = <&cpg_clocks>;
333 status = "disabled";
334 };
335
336 scifa3: serial@e6c70000 {
337 compatible = "renesas,scifa-r8a7793", "renesas,scifa";
338 reg = <0 0xe6c70000 0 64>;
339 interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>;
340 clocks = <&mstp11_clks R8A7793_CLK_SCIFA3>;
341 clock-names = "sci_ick";
342 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>;
343 dma-names = "tx", "rx";
344 power-domains = <&cpg_clocks>;
345 status = "disabled";
346 };
347
348 scifa4: serial@e6c78000 {
349 compatible = "renesas,scifa-r8a7793", "renesas,scifa";
350 reg = <0 0xe6c78000 0 64>;
351 interrupts = <0 30 IRQ_TYPE_LEVEL_HIGH>;
352 clocks = <&mstp11_clks R8A7793_CLK_SCIFA4>;
353 clock-names = "sci_ick";
354 dmas = <&dmac0 0x1f>, <&dmac0 0x20>;
355 dma-names = "tx", "rx";
356 power-domains = <&cpg_clocks>;
357 status = "disabled";
358 };
359
360 scifa5: serial@e6c80000 {
361 compatible = "renesas,scifa-r8a7793", "renesas,scifa";
362 reg = <0 0xe6c80000 0 64>;
363 interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
364 clocks = <&mstp11_clks R8A7793_CLK_SCIFA5>;
365 clock-names = "sci_ick";
366 dmas = <&dmac0 0x23>, <&dmac0 0x24>;
367 dma-names = "tx", "rx";
368 power-domains = <&cpg_clocks>;
369 status = "disabled";
370 };
371
372 scifb0: serial@e6c20000 {
373 compatible = "renesas,scifb-r8a7793", "renesas,scifb";
374 reg = <0 0xe6c20000 0 64>;
375 interrupts = <0 148 IRQ_TYPE_LEVEL_HIGH>;
376 clocks = <&mstp2_clks R8A7793_CLK_SCIFB0>;
377 clock-names = "sci_ick";
378 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>;
379 dma-names = "tx", "rx";
380 power-domains = <&cpg_clocks>;
381 status = "disabled";
382 };
383
384 scifb1: serial@e6c30000 {
385 compatible = "renesas,scifb-r8a7793", "renesas,scifb";
386 reg = <0 0xe6c30000 0 64>;
387 interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH>;
388 clocks = <&mstp2_clks R8A7793_CLK_SCIFB1>;
389 clock-names = "sci_ick";
390 dmas = <&dmac0 0x19>, <&dmac0 0x1a>;
391 dma-names = "tx", "rx";
392 power-domains = <&cpg_clocks>;
393 status = "disabled";
394 };
395
396 scifb2: serial@e6ce0000 {
397 compatible = "renesas,scifb-r8a7793", "renesas,scifb";
398 reg = <0 0xe6ce0000 0 64>;
399 interrupts = <0 150 IRQ_TYPE_LEVEL_HIGH>;
400 clocks = <&mstp2_clks R8A7793_CLK_SCIFB2>;
401 clock-names = "sci_ick";
402 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>;
403 dma-names = "tx", "rx";
404 power-domains = <&cpg_clocks>;
405 status = "disabled";
406 };
407
117 scif0: serial@e6e60000 { 408 scif0: serial@e6e60000 {
118 compatible = "renesas,scif-r8a7793", "renesas,scif"; 409 compatible = "renesas,scif-r8a7793", "renesas,scif";
119 reg = <0 0xe6e60000 0 64>; 410 reg = <0 0xe6e60000 0 64>;
120 interrupts = <0 152 IRQ_TYPE_LEVEL_HIGH>; 411 interrupts = <0 152 IRQ_TYPE_LEVEL_HIGH>;
121 clocks = <&mstp7_clks R8A7793_CLK_SCIF0>; 412 clocks = <&mstp7_clks R8A7793_CLK_SCIF0>;
122 clock-names = "sci_ick"; 413 clock-names = "sci_ick";
414 dmas = <&dmac0 0x29>, <&dmac0 0x2a>;
415 dma-names = "tx", "rx";
123 power-domains = <&cpg_clocks>; 416 power-domains = <&cpg_clocks>;
124 status = "disabled"; 417 status = "disabled";
125 }; 418 };
@@ -130,6 +423,92 @@
130 interrupts = <0 153 IRQ_TYPE_LEVEL_HIGH>; 423 interrupts = <0 153 IRQ_TYPE_LEVEL_HIGH>;
131 clocks = <&mstp7_clks R8A7793_CLK_SCIF1>; 424 clocks = <&mstp7_clks R8A7793_CLK_SCIF1>;
132 clock-names = "sci_ick"; 425 clock-names = "sci_ick";
426 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>;
427 dma-names = "tx", "rx";
428 power-domains = <&cpg_clocks>;
429 status = "disabled";
430 };
431
432 scif2: serial@e6e58000 {
433 compatible = "renesas,scif-r8a7793", "renesas,scif";
434 reg = <0 0xe6e58000 0 64>;
435 interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
436 clocks = <&mstp7_clks R8A7793_CLK_SCIF2>;
437 clock-names = "sci_ick";
438 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>;
439 dma-names = "tx", "rx";
440 power-domains = <&cpg_clocks>;
441 status = "disabled";
442 };
443
444 scif3: serial@e6ea8000 {
445 compatible = "renesas,scif-r8a7793", "renesas,scif";
446 reg = <0 0xe6ea8000 0 64>;
447 interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
448 clocks = <&mstp7_clks R8A7793_CLK_SCIF3>;
449 clock-names = "sci_ick";
450 dmas = <&dmac0 0x2f>, <&dmac0 0x30>;
451 dma-names = "tx", "rx";
452 power-domains = <&cpg_clocks>;
453 status = "disabled";
454 };
455
456 scif4: serial@e6ee0000 {
457 compatible = "renesas,scif-r8a7793", "renesas,scif";
458 reg = <0 0xe6ee0000 0 64>;
459 interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
460 clocks = <&mstp7_clks R8A7793_CLK_SCIF4>;
461 clock-names = "sci_ick";
462 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>;
463 dma-names = "tx", "rx";
464 power-domains = <&cpg_clocks>;
465 status = "disabled";
466 };
467
468 scif5: serial@e6ee8000 {
469 compatible = "renesas,scif-r8a7793", "renesas,scif";
470 reg = <0 0xe6ee8000 0 64>;
471 interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
472 clocks = <&mstp7_clks R8A7793_CLK_SCIF5>;
473 clock-names = "sci_ick";
474 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>;
475 dma-names = "tx", "rx";
476 power-domains = <&cpg_clocks>;
477 status = "disabled";
478 };
479
480 hscif0: serial@e62c0000 {
481 compatible = "renesas,hscif-r8a7793", "renesas,hscif";
482 reg = <0 0xe62c0000 0 96>;
483 interrupts = <0 154 IRQ_TYPE_LEVEL_HIGH>;
484 clocks = <&mstp7_clks R8A7793_CLK_HSCIF0>;
485 clock-names = "sci_ick";
486 dmas = <&dmac0 0x39>, <&dmac0 0x3a>;
487 dma-names = "tx", "rx";
488 power-domains = <&cpg_clocks>;
489 status = "disabled";
490 };
491
492 hscif1: serial@e62c8000 {
493 compatible = "renesas,hscif-r8a7793", "renesas,hscif";
494 reg = <0 0xe62c8000 0 96>;
495 interrupts = <0 155 IRQ_TYPE_LEVEL_HIGH>;
496 clocks = <&mstp7_clks R8A7793_CLK_HSCIF1>;
497 clock-names = "sci_ick";
498 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>;
499 dma-names = "tx", "rx";
500 power-domains = <&cpg_clocks>;
501 status = "disabled";
502 };
503
504 hscif2: serial@e62d0000 {
505 compatible = "renesas,hscif-r8a7793", "renesas,hscif";
506 reg = <0 0xe62d0000 0 96>;
507 interrupts = <0 21 IRQ_TYPE_LEVEL_HIGH>;
508 clocks = <&mstp7_clks R8A7793_CLK_HSCIF2>;
509 clock-names = "sci_ick";
510 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>;
511 dma-names = "tx", "rx";
133 power-domains = <&cpg_clocks>; 512 power-domains = <&cpg_clocks>;
134 status = "disabled"; 513 status = "disabled";
135 }; 514 };
@@ -146,6 +525,50 @@
146 status = "disabled"; 525 status = "disabled";
147 }; 526 };
148 527
528 qspi: spi@e6b10000 {
529 compatible = "renesas,qspi-r8a7793", "renesas,qspi";
530 reg = <0 0xe6b10000 0 0x2c>;
531 interrupts = <0 184 IRQ_TYPE_LEVEL_HIGH>;
532 clocks = <&mstp9_clks R8A7793_CLK_QSPI_MOD>;
533 dmas = <&dmac0 0x17>, <&dmac0 0x18>;
534 dma-names = "tx", "rx";
535 power-domains = <&cpg_clocks>;
536 num-cs = <1>;
537 #address-cells = <1>;
538 #size-cells = <0>;
539 status = "disabled";
540 };
541
542 du: display@feb00000 {
543 compatible = "renesas,du-r8a7793";
544 reg = <0 0xfeb00000 0 0x40000>,
545 <0 0xfeb90000 0 0x1c>;
546 reg-names = "du", "lvds.0";
547 interrupts = <0 256 IRQ_TYPE_LEVEL_HIGH>,
548 <0 268 IRQ_TYPE_LEVEL_HIGH>;
549 clocks = <&mstp7_clks R8A7793_CLK_DU0>,
550 <&mstp7_clks R8A7793_CLK_DU1>,
551 <&mstp7_clks R8A7793_CLK_LVDS0>;
552 clock-names = "du.0", "du.1", "lvds.0";
553 status = "disabled";
554
555 ports {
556 #address-cells = <1>;
557 #size-cells = <0>;
558
559 port@0 {
560 reg = <0>;
561 du_out_rgb: endpoint {
562 };
563 };
564 port@1 {
565 reg = <1>;
566 du_out_lvds0: endpoint {
567 };
568 };
569 };
570 };
571
149 clocks { 572 clocks {
150 #address-cells = <2>; 573 #address-cells = <2>;
151 #size-cells = <2>; 574 #size-cells = <2>;
@@ -299,6 +722,21 @@
299 "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1", 722 "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1",
300 "vsp1-du0", "vsps"; 723 "vsp1-du0", "vsps";
301 }; 724 };
725 mstp2_clks: mstp2_clks@e6150138 {
726 compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks";
727 reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>;
728 clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>,
729 <&mp_clk>, <&mp_clk>, <&zs_clk>, <&zs_clk>;
730 #clock-cells = <1>;
731 clock-indices = <
732 R8A7793_CLK_SCIFA2 R8A7793_CLK_SCIFA1 R8A7793_CLK_SCIFA0
733 R8A7793_CLK_SCIFB0 R8A7793_CLK_SCIFB1 R8A7793_CLK_SCIFB2
734 R8A7793_CLK_SYS_DMAC1 R8A7793_CLK_SYS_DMAC0
735 >;
736 clock-output-names =
737 "scifa2", "scifa1", "scifa0", "scifb0",
738 "scifb1", "scifb2", "sys-dmac1", "sys-dmac0";
739 };
302 mstp3_clks: mstp3_clks@e615013c { 740 mstp3_clks: mstp3_clks@e615013c {
303 compatible = "renesas,r8a7793-mstp-clocks", 741 compatible = "renesas,r8a7793-mstp-clocks",
304 "renesas,cpg-mstp-clocks"; 742 "renesas,cpg-mstp-clocks";
@@ -329,6 +767,14 @@
329 clock-indices = <R8A7793_CLK_IRQC>; 767 clock-indices = <R8A7793_CLK_IRQC>;
330 clock-output-names = "irqc"; 768 clock-output-names = "irqc";
331 }; 769 };
770 mstp5_clks: mstp5_clks@e6150144 {
771 compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks";
772 reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>;
773 clocks = <&extal_clk>;
774 #clock-cells = <1>;
775 clock-indices = <R8A7793_CLK_THERMAL>;
776 clock-output-names = "thermal";
777 };
332 mstp7_clks: mstp7_clks@e615014c { 778 mstp7_clks: mstp7_clks@e615014c {
333 compatible = "renesas,r8a7793-mstp-clocks", 779 compatible = "renesas,r8a7793-mstp-clocks",
334 "renesas,cpg-mstp-clocks"; 780 "renesas,cpg-mstp-clocks";
@@ -369,6 +815,94 @@
369 "ipmmu_sgx", "vin2", "vin1", "vin0", "ether", 815 "ipmmu_sgx", "vin2", "vin1", "vin0", "ether",
370 "sata1", "sata0"; 816 "sata1", "sata0";
371 }; 817 };
818 mstp9_clks: mstp9_clks@e6150994 {
819 compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks";
820 reg = <0 0xe6150994 0 4>, <0 0xe61509a4 0 4>;
821 clocks = <&cp_clk>, <&cp_clk>, <&cp_clk>, <&cp_clk>,
822 <&cp_clk>, <&cp_clk>, <&cp_clk>, <&cp_clk>,
823 <&cpg_clocks R8A7793_CLK_QSPI>;
824 #clock-cells = <1>;
825 clock-indices = <
826 R8A7793_CLK_GPIO7 R8A7793_CLK_GPIO6
827 R8A7793_CLK_GPIO5 R8A7793_CLK_GPIO4
828 R8A7793_CLK_GPIO3 R8A7793_CLK_GPIO2
829 R8A7793_CLK_GPIO1 R8A7793_CLK_GPIO0
830 R8A7793_CLK_QSPI_MOD
831 >;
832 clock-output-names =
833 "gpio7", "gpio6", "gpio5", "gpio4",
834 "gpio3", "gpio2", "gpio1", "gpio0",
835 "qspi_mod";
836 };
837 mstp11_clks: mstp11_clks@e615099c {
838 compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks";
839 reg = <0 0xe615099c 0 4>, <0 0xe61509ac 0 4>;
840 clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>;
841 #clock-cells = <1>;
842 clock-indices = <
843 R8A7793_CLK_SCIFA3 R8A7793_CLK_SCIFA4 R8A7793_CLK_SCIFA5
844 >;
845 clock-output-names = "scifa3", "scifa4", "scifa5";
846 };
847 };
848
849 ipmmu_sy0: mmu@e6280000 {
850 compatible = "renesas,ipmmu-r8a7793", "renesas,ipmmu-vmsa";
851 reg = <0 0xe6280000 0 0x1000>;
852 interrupts = <0 223 IRQ_TYPE_LEVEL_HIGH>,
853 <0 224 IRQ_TYPE_LEVEL_HIGH>;
854 #iommu-cells = <1>;
855 status = "disabled";
856 };
857
858 ipmmu_sy1: mmu@e6290000 {
859 compatible = "renesas,ipmmu-r8a7793", "renesas,ipmmu-vmsa";
860 reg = <0 0xe6290000 0 0x1000>;
861 interrupts = <0 225 IRQ_TYPE_LEVEL_HIGH>;
862 #iommu-cells = <1>;
863 status = "disabled";
864 };
865
866 ipmmu_ds: mmu@e6740000 {
867 compatible = "renesas,ipmmu-r8a7793", "renesas,ipmmu-vmsa";
868 reg = <0 0xe6740000 0 0x1000>;
869 interrupts = <0 198 IRQ_TYPE_LEVEL_HIGH>,
870 <0 199 IRQ_TYPE_LEVEL_HIGH>;
871 #iommu-cells = <1>;
872 status = "disabled";
873 };
874
875 ipmmu_mp: mmu@ec680000 {
876 compatible = "renesas,ipmmu-r8a7793", "renesas,ipmmu-vmsa";
877 reg = <0 0xec680000 0 0x1000>;
878 interrupts = <0 226 IRQ_TYPE_LEVEL_HIGH>;
879 #iommu-cells = <1>;
880 status = "disabled";
881 };
882
883 ipmmu_mx: mmu@fe951000 {
884 compatible = "renesas,ipmmu-r8a7793", "renesas,ipmmu-vmsa";
885 reg = <0 0xfe951000 0 0x1000>;
886 interrupts = <0 222 IRQ_TYPE_LEVEL_HIGH>,
887 <0 221 IRQ_TYPE_LEVEL_HIGH>;
888 #iommu-cells = <1>;
889 status = "disabled";
890 };
891
892 ipmmu_rt: mmu@ffc80000 {
893 compatible = "renesas,ipmmu-r8a7793", "renesas,ipmmu-vmsa";
894 reg = <0 0xffc80000 0 0x1000>;
895 interrupts = <0 307 IRQ_TYPE_LEVEL_HIGH>;
896 #iommu-cells = <1>;
897 status = "disabled";
372 }; 898 };
373 899
900 ipmmu_gp: mmu@e62a0000 {
901 compatible = "renesas,ipmmu-r8a7793", "renesas,ipmmu-vmsa";
902 reg = <0 0xe62a0000 0 0x1000>;
903 interrupts = <0 260 IRQ_TYPE_LEVEL_HIGH>,
904 <0 261 IRQ_TYPE_LEVEL_HIGH>;
905 #iommu-cells = <1>;
906 status = "disabled";
907 };
374}; 908};
diff --git a/arch/arm/boot/dts/r8a7794-alt.dts b/arch/arm/boot/dts/r8a7794-alt.dts
index 928cfa641475..2394e4883786 100644
--- a/arch/arm/boot/dts/r8a7794-alt.dts
+++ b/arch/arm/boot/dts/r8a7794-alt.dts
@@ -21,7 +21,7 @@
21 21
22 chosen { 22 chosen {
23 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 23 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
24 stdout-path = &scif2; 24 stdout-path = "serial0:115200n8";
25 }; 25 };
26 26
27 memory@40000000 { 27 memory@40000000 {
@@ -33,17 +33,115 @@
33 #address-cells = <1>; 33 #address-cells = <1>;
34 #size-cells = <1>; 34 #size-cells = <1>;
35 }; 35 };
36
37 vga-encoder {
38 compatible = "adi,adv7123";
39
40 ports {
41 #address-cells = <1>;
42 #size-cells = <0>;
43
44 port@0 {
45 reg = <0>;
46 adv7123_in: endpoint {
47 remote-endpoint = <&du_out_rgb1>;
48 };
49 };
50 port@1 {
51 reg = <1>;
52 adv7123_out: endpoint {
53 remote-endpoint = <&vga_in>;
54 };
55 };
56 };
57 };
58
59 vga {
60 compatible = "vga-connector";
61
62 port {
63 vga_in: endpoint {
64 remote-endpoint = <&adv7123_out>;
65 };
66 };
67 };
68
69 x2_clk: x2-clock {
70 compatible = "fixed-clock";
71 #clock-cells = <0>;
72 clock-frequency = <74250000>;
73 };
74
75 x13_clk: x13-clock {
76 compatible = "fixed-clock";
77 #clock-cells = <0>;
78 clock-frequency = <148500000>;
79 };
80};
81
82&du {
83 pinctrl-0 = <&du_pins>;
84 pinctrl-names = "default";
85 status = "okay";
86
87 clocks = <&mstp7_clks R8A7794_CLK_DU0>,
88 <&mstp7_clks R8A7794_CLK_DU0>,
89 <&x13_clk>, <&x2_clk>;
90 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
91
92 ports {
93 port@1 {
94 endpoint {
95 remote-endpoint = <&adv7123_in>;
96 };
97 };
98 };
36}; 99};
37 100
38&extal_clk { 101&extal_clk {
39 clock-frequency = <20000000>; 102 clock-frequency = <20000000>;
40}; 103};
41 104
105&pfc {
106 du_pins: du {
107 renesas,groups = "du1_rgb666", "du1_sync", "du1_disp", "du1_dotclkout0";
108 renesas,function = "du";
109 };
110
111 scif2_pins: serial2 {
112 renesas,groups = "scif2_data";
113 renesas,function = "scif2";
114 };
115
116 ether_pins: ether {
117 renesas,groups = "eth_link", "eth_mdio", "eth_rmii";
118 renesas,function = "eth";
119 };
120
121 phy1_pins: phy1 {
122 renesas,groups = "intc_irq8";
123 renesas,function = "intc";
124 };
125
126 i2c1_pins: i2c1 {
127 renesas,groups = "i2c1";
128 renesas,function = "i2c1";
129 };
130
131 vin0_pins: vin0 {
132 renesas,groups = "vin0_data8", "vin0_clk";
133 renesas,function = "vin0";
134 };
135};
136
42&cmt0 { 137&cmt0 {
43 status = "okay"; 138 status = "okay";
44}; 139};
45 140
46&ether { 141&ether {
142 pinctrl-0 = <&ether_pins &phy1_pins>;
143 pinctrl-names = "default";
144
47 phy-handle = <&phy1>; 145 phy-handle = <&phy1>;
48 renesas,ether-link-active-low; 146 renesas,ether-link-active-low;
49 status = "okay"; 147 status = "okay";
@@ -56,6 +154,46 @@
56 }; 154 };
57}; 155};
58 156
157&i2c1 {
158 pinctrl-0 = <&i2c1_pins>;
159 pinctrl-names = "default";
160
161 status = "okay";
162 clock-frequency = <400000>;
163
164 composite-in@20 {
165 compatible = "adi,adv7180";
166 reg = <0x20>;
167 remote = <&vin0>;
168
169 port {
170 adv7180: endpoint {
171 bus-width = <8>;
172 remote-endpoint = <&vin0ep>;
173 };
174 };
175 };
176};
177
178&vin0 {
179 status = "okay";
180 pinctrl-0 = <&vin0_pins>;
181 pinctrl-names = "default";
182
183 port {
184 #address-cells = <1>;
185 #size-cells = <0>;
186
187 vin0ep: endpoint {
188 remote-endpoint = <&adv7180>;
189 bus-width = <8>;
190 };
191 };
192};
193
59&scif2 { 194&scif2 {
195 pinctrl-0 = <&scif2_pins>;
196 pinctrl-names = "default";
197
60 status = "okay"; 198 status = "okay";
61}; 199};
diff --git a/arch/arm/boot/dts/r8a7794-silk.dts b/arch/arm/boot/dts/r8a7794-silk.dts
index 48ff3e2958ae..5153e3af25d9 100644
--- a/arch/arm/boot/dts/r8a7794-silk.dts
+++ b/arch/arm/boot/dts/r8a7794-silk.dts
@@ -12,6 +12,7 @@
12 12
13/dts-v1/; 13/dts-v1/;
14#include "r8a7794.dtsi" 14#include "r8a7794.dtsi"
15#include <dt-bindings/gpio/gpio.h>
15 16
16/ { 17/ {
17 model = "SILK"; 18 model = "SILK";
@@ -23,7 +24,7 @@
23 24
24 chosen { 25 chosen {
25 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 26 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
26 stdout-path = &scif2; 27 stdout-path = "serial0:115200n8";
27 }; 28 };
28 29
29 memory@40000000 { 30 memory@40000000 {
@@ -39,6 +40,30 @@
39 regulator-boot-on; 40 regulator-boot-on;
40 regulator-always-on; 41 regulator-always-on;
41 }; 42 };
43
44 vcc_sdhi1: regulator@3 {
45 compatible = "regulator-fixed";
46
47 regulator-name = "SDHI1 Vcc";
48 regulator-min-microvolt = <3300000>;
49 regulator-max-microvolt = <3300000>;
50
51 gpio = <&gpio4 26 GPIO_ACTIVE_HIGH>;
52 enable-active-high;
53 };
54
55 vccq_sdhi1: regulator@4 {
56 compatible = "regulator-gpio";
57
58 regulator-name = "SDHI1 VccQ";
59 regulator-min-microvolt = <1800000>;
60 regulator-max-microvolt = <3300000>;
61
62 gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
63 gpios-states = <1>;
64 states = <3300000 1
65 1800000 0>;
66 };
42}; 67};
43 68
44&extal_clk { 69&extal_clk {
@@ -71,6 +96,11 @@
71 renesas,function = "mmc"; 96 renesas,function = "mmc";
72 }; 97 };
73 98
99 sdhi1_pins: sd1 {
100 renesas,groups = "sdhi1_data4", "sdhi1_ctrl";
101 renesas,function = "sdhi1";
102 };
103
74 qspi_pins: spi0 { 104 qspi_pins: spi0 {
75 renesas,groups = "qspi_ctrl", "qspi_data4"; 105 renesas,groups = "qspi_ctrl", "qspi_data4";
76 renesas,function = "qspi"; 106 renesas,function = "qspi";
@@ -147,6 +177,16 @@
147 status = "okay"; 177 status = "okay";
148}; 178};
149 179
180&sdhi1 {
181 pinctrl-0 = <&sdhi1_pins>;
182 pinctrl-names = "default";
183
184 vmmc-supply = <&vcc_sdhi1>;
185 vqmmc-supply = <&vccq_sdhi1>;
186 cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
187 status = "okay";
188};
189
150&qspi { 190&qspi {
151 pinctrl-0 = <&qspi_pins>; 191 pinctrl-0 = <&qspi_pins>;
152 pinctrl-names = "default"; 192 pinctrl-names = "default";
@@ -154,8 +194,6 @@
154 status = "okay"; 194 status = "okay";
155 195
156 flash@0 { 196 flash@0 {
157 #address-cells = <1>;
158 #size-cells = <1>;
159 compatible = "spansion,s25fl512s", "jedec,spi-nor"; 197 compatible = "spansion,s25fl512s", "jedec,spi-nor";
160 reg = <0>; 198 reg = <0>;
161 spi-max-frequency = <30000000>; 199 spi-max-frequency = <30000000>;
@@ -165,19 +203,25 @@
165 spi-cpha; 203 spi-cpha;
166 m25p,fast-read; 204 m25p,fast-read;
167 205
168 partition@0 { 206 partitions {
169 label = "loader"; 207 compatible = "fixed-partitions";
170 reg = <0x00000000 0x00040000>; 208 #address-cells = <1>;
171 read-only; 209 #size-cells = <1>;
172 }; 210
173 partition@40000 { 211 partition@0 {
174 label = "user"; 212 label = "loader";
175 reg = <0x00040000 0x00400000>; 213 reg = <0x00000000 0x00040000>;
176 read-only; 214 read-only;
177 }; 215 };
178 partition@440000 { 216 partition@40000 {
179 label = "flash"; 217 label = "user";
180 reg = <0x00440000 0x03bc0000>; 218 reg = <0x00040000 0x00400000>;
219 read-only;
220 };
221 partition@440000 {
222 label = "flash";
223 reg = <0x00440000 0x03bc0000>;
224 };
181 }; 225 };
182 }; 226 };
183}; 227};
diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi
index a9977d6ee81a..6c78f1fae90f 100644
--- a/arch/arm/boot/dts/r8a7794.dtsi
+++ b/arch/arm/boot/dts/r8a7794.dtsi
@@ -217,11 +217,10 @@
217 pfc: pin-controller@e6060000 { 217 pfc: pin-controller@e6060000 {
218 compatible = "renesas,pfc-r8a7794"; 218 compatible = "renesas,pfc-r8a7794";
219 reg = <0 0xe6060000 0 0x11c>; 219 reg = <0 0xe6060000 0 0x11c>;
220 #gpio-range-cells = <3>;
221 }; 220 };
222 221
223 dmac0: dma-controller@e6700000 { 222 dmac0: dma-controller@e6700000 {
224 compatible = "renesas,rcar-dmac"; 223 compatible = "renesas,dmac-r8a7794", "renesas,rcar-dmac";
225 reg = <0 0xe6700000 0 0x20000>; 224 reg = <0 0xe6700000 0 0x20000>;
226 interrupts = <0 197 IRQ_TYPE_LEVEL_HIGH 225 interrupts = <0 197 IRQ_TYPE_LEVEL_HIGH
227 0 200 IRQ_TYPE_LEVEL_HIGH 226 0 200 IRQ_TYPE_LEVEL_HIGH
@@ -252,7 +251,7 @@
252 }; 251 };
253 252
254 dmac1: dma-controller@e6720000 { 253 dmac1: dma-controller@e6720000 {
255 compatible = "renesas,rcar-dmac"; 254 compatible = "renesas,dmac-r8a7794", "renesas,rcar-dmac";
256 reg = <0 0xe6720000 0 0x20000>; 255 reg = <0 0xe6720000 0 0x20000>;
257 interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH 256 interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH
258 0 216 IRQ_TYPE_LEVEL_HIGH 257 0 216 IRQ_TYPE_LEVEL_HIGH
@@ -519,6 +518,7 @@
519 power-domains = <&cpg_clocks>; 518 power-domains = <&cpg_clocks>;
520 #address-cells = <1>; 519 #address-cells = <1>;
521 #size-cells = <0>; 520 #size-cells = <0>;
521 i2c-scl-internal-delay-ns = <6>;
522 status = "disabled"; 522 status = "disabled";
523 }; 523 };
524 524
@@ -530,6 +530,7 @@
530 power-domains = <&cpg_clocks>; 530 power-domains = <&cpg_clocks>;
531 #address-cells = <1>; 531 #address-cells = <1>;
532 #size-cells = <0>; 532 #size-cells = <0>;
533 i2c-scl-internal-delay-ns = <6>;
533 status = "disabled"; 534 status = "disabled";
534 }; 535 };
535 536
@@ -541,6 +542,7 @@
541 power-domains = <&cpg_clocks>; 542 power-domains = <&cpg_clocks>;
542 #address-cells = <1>; 543 #address-cells = <1>;
543 #size-cells = <0>; 544 #size-cells = <0>;
545 i2c-scl-internal-delay-ns = <6>;
544 status = "disabled"; 546 status = "disabled";
545 }; 547 };
546 548
@@ -552,6 +554,7 @@
552 power-domains = <&cpg_clocks>; 554 power-domains = <&cpg_clocks>;
553 #address-cells = <1>; 555 #address-cells = <1>;
554 #size-cells = <0>; 556 #size-cells = <0>;
557 i2c-scl-internal-delay-ns = <6>;
555 status = "disabled"; 558 status = "disabled";
556 }; 559 };
557 560
@@ -563,6 +566,7 @@
563 power-domains = <&cpg_clocks>; 566 power-domains = <&cpg_clocks>;
564 #address-cells = <1>; 567 #address-cells = <1>;
565 #size-cells = <0>; 568 #size-cells = <0>;
569 i2c-scl-internal-delay-ns = <6>;
566 status = "disabled"; 570 status = "disabled";
567 }; 571 };
568 572
@@ -574,6 +578,7 @@
574 power-domains = <&cpg_clocks>; 578 power-domains = <&cpg_clocks>;
575 #address-cells = <1>; 579 #address-cells = <1>;
576 #size-cells = <0>; 580 #size-cells = <0>;
581 i2c-scl-internal-delay-ns = <6>;
577 status = "disabled"; 582 status = "disabled";
578 }; 583 };
579 584
@@ -750,6 +755,34 @@
750 }; 755 };
751 }; 756 };
752 757
758 du: display@feb00000 {
759 compatible = "renesas,du-r8a7794";
760 reg = <0 0xfeb00000 0 0x40000>;
761 reg-names = "du";
762 interrupts = <0 256 IRQ_TYPE_LEVEL_HIGH>,
763 <0 268 IRQ_TYPE_LEVEL_HIGH>;
764 clocks = <&mstp7_clks R8A7794_CLK_DU0>,
765 <&mstp7_clks R8A7794_CLK_DU0>;
766 clock-names = "du.0", "du.1";
767 status = "disabled";
768
769 ports {
770 #address-cells = <1>;
771 #size-cells = <0>;
772
773 port@0 {
774 reg = <0>;
775 du_out_rgb0: endpoint {
776 };
777 };
778 port@1 {
779 reg = <1>;
780 du_out_rgb1: endpoint {
781 };
782 };
783 };
784 };
785
753 clocks { 786 clocks {
754 #address-cells = <2>; 787 #address-cells = <2>;
755 #size-cells = <2>; 788 #size-cells = <2>;
@@ -879,14 +912,6 @@
879 clock-mult = <1>; 912 clock-mult = <1>;
880 clock-output-names = "m2"; 913 clock-output-names = "m2";
881 }; 914 };
882 imp_clk: imp_clk {
883 compatible = "fixed-factor-clock";
884 clocks = <&cpg_clocks R8A7794_CLK_PLL1>;
885 #clock-cells = <0>;
886 clock-div = <4>;
887 clock-mult = <1>;
888 clock-output-names = "imp";
889 };
890 rclk_clk: rclk_clk { 915 rclk_clk: rclk_clk {
891 compatible = "fixed-factor-clock"; 916 compatible = "fixed-factor-clock";
892 clocks = <&cpg_clocks R8A7794_CLK_PLL1>; 917 clocks = <&cpg_clocks R8A7794_CLK_PLL1>;
@@ -1025,19 +1050,20 @@
1025 reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>; 1050 reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>;
1026 clocks = <&mp_clk>, <&mp_clk>, 1051 clocks = <&mp_clk>, <&mp_clk>,
1027 <&zs_clk>, <&p_clk>, <&p_clk>, <&zs_clk>, 1052 <&zs_clk>, <&p_clk>, <&p_clk>, <&zs_clk>,
1028 <&zs_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>; 1053 <&zs_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>,
1054 <&zx_clk>;
1029 #clock-cells = <1>; 1055 #clock-cells = <1>;
1030 clock-indices = < 1056 clock-indices = <
1031 R8A7794_CLK_EHCI R8A7794_CLK_HSUSB 1057 R8A7794_CLK_EHCI R8A7794_CLK_HSUSB
1032 R8A7794_CLK_HSCIF2 R8A7794_CLK_SCIF5 1058 R8A7794_CLK_HSCIF2 R8A7794_CLK_SCIF5
1033 R8A7794_CLK_SCIF4 R8A7794_CLK_HSCIF1 R8A7794_CLK_HSCIF0 1059 R8A7794_CLK_SCIF4 R8A7794_CLK_HSCIF1 R8A7794_CLK_HSCIF0
1034 R8A7794_CLK_SCIF3 R8A7794_CLK_SCIF2 R8A7794_CLK_SCIF1 1060 R8A7794_CLK_SCIF3 R8A7794_CLK_SCIF2 R8A7794_CLK_SCIF1
1035 R8A7794_CLK_SCIF0 1061 R8A7794_CLK_SCIF0 R8A7794_CLK_DU0
1036 >; 1062 >;
1037 clock-output-names = 1063 clock-output-names =
1038 "ehci", "hsusb", 1064 "ehci", "hsusb",
1039 "hscif2", "scif5", "scif4", "hscif1", "hscif0", 1065 "hscif2", "scif5", "scif4", "hscif1", "hscif0",
1040 "scif3", "scif2", "scif1", "scif0"; 1066 "scif3", "scif2", "scif1", "scif0", "du0";
1041 }; 1067 };
1042 mstp8_clks: mstp8_clks@e6150990 { 1068 mstp8_clks: mstp8_clks@e6150990 {
1043 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks"; 1069 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
@@ -1083,7 +1109,7 @@
1083 }; 1109 };
1084 1110
1085 ipmmu_sy0: mmu@e6280000 { 1111 ipmmu_sy0: mmu@e6280000 {
1086 compatible = "renesas,ipmmu-vmsa"; 1112 compatible = "renesas,ipmmu-r8a7794", "renesas,ipmmu-vmsa";
1087 reg = <0 0xe6280000 0 0x1000>; 1113 reg = <0 0xe6280000 0 0x1000>;
1088 interrupts = <0 223 IRQ_TYPE_LEVEL_HIGH>, 1114 interrupts = <0 223 IRQ_TYPE_LEVEL_HIGH>,
1089 <0 224 IRQ_TYPE_LEVEL_HIGH>; 1115 <0 224 IRQ_TYPE_LEVEL_HIGH>;
@@ -1092,7 +1118,7 @@
1092 }; 1118 };
1093 1119
1094 ipmmu_sy1: mmu@e6290000 { 1120 ipmmu_sy1: mmu@e6290000 {
1095 compatible = "renesas,ipmmu-vmsa"; 1121 compatible = "renesas,ipmmu-r8a7794", "renesas,ipmmu-vmsa";
1096 reg = <0 0xe6290000 0 0x1000>; 1122 reg = <0 0xe6290000 0 0x1000>;
1097 interrupts = <0 225 IRQ_TYPE_LEVEL_HIGH>; 1123 interrupts = <0 225 IRQ_TYPE_LEVEL_HIGH>;
1098 #iommu-cells = <1>; 1124 #iommu-cells = <1>;
@@ -1100,15 +1126,16 @@
1100 }; 1126 };
1101 1127
1102 ipmmu_ds: mmu@e6740000 { 1128 ipmmu_ds: mmu@e6740000 {
1103 compatible = "renesas,ipmmu-vmsa"; 1129 compatible = "renesas,ipmmu-r8a7794", "renesas,ipmmu-vmsa";
1104 reg = <0 0xe6740000 0 0x1000>; 1130 reg = <0 0xe6740000 0 0x1000>;
1105 interrupts = <0 198 IRQ_TYPE_LEVEL_HIGH>, 1131 interrupts = <0 198 IRQ_TYPE_LEVEL_HIGH>,
1106 <0 199 IRQ_TYPE_LEVEL_HIGH>; 1132 <0 199 IRQ_TYPE_LEVEL_HIGH>;
1107 #iommu-cells = <1>; 1133 #iommu-cells = <1>;
1134 status = "disabled";
1108 }; 1135 };
1109 1136
1110 ipmmu_mp: mmu@ec680000 { 1137 ipmmu_mp: mmu@ec680000 {
1111 compatible = "renesas,ipmmu-vmsa"; 1138 compatible = "renesas,ipmmu-r8a7794", "renesas,ipmmu-vmsa";
1112 reg = <0 0xec680000 0 0x1000>; 1139 reg = <0 0xec680000 0 0x1000>;
1113 interrupts = <0 226 IRQ_TYPE_LEVEL_HIGH>; 1140 interrupts = <0 226 IRQ_TYPE_LEVEL_HIGH>;
1114 #iommu-cells = <1>; 1141 #iommu-cells = <1>;
@@ -1116,15 +1143,16 @@
1116 }; 1143 };
1117 1144
1118 ipmmu_mx: mmu@fe951000 { 1145 ipmmu_mx: mmu@fe951000 {
1119 compatible = "renesas,ipmmu-vmsa"; 1146 compatible = "renesas,ipmmu-r8a7794", "renesas,ipmmu-vmsa";
1120 reg = <0 0xfe951000 0 0x1000>; 1147 reg = <0 0xfe951000 0 0x1000>;
1121 interrupts = <0 222 IRQ_TYPE_LEVEL_HIGH>, 1148 interrupts = <0 222 IRQ_TYPE_LEVEL_HIGH>,
1122 <0 221 IRQ_TYPE_LEVEL_HIGH>; 1149 <0 221 IRQ_TYPE_LEVEL_HIGH>;
1123 #iommu-cells = <1>; 1150 #iommu-cells = <1>;
1151 status = "disabled";
1124 }; 1152 };
1125 1153
1126 ipmmu_gp: mmu@e62a0000 { 1154 ipmmu_gp: mmu@e62a0000 {
1127 compatible = "renesas,ipmmu-vmsa"; 1155 compatible = "renesas,ipmmu-r8a7794", "renesas,ipmmu-vmsa";
1128 reg = <0 0xe62a0000 0 0x1000>; 1156 reg = <0 0xe62a0000 0 0x1000>;
1129 interrupts = <0 260 IRQ_TYPE_LEVEL_HIGH>, 1157 interrupts = <0 260 IRQ_TYPE_LEVEL_HIGH>,
1130 <0 261 IRQ_TYPE_LEVEL_HIGH>; 1158 <0 261 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/rk3036-evb.dts b/arch/arm/boot/dts/rk3036-evb.dts
new file mode 100644
index 000000000000..28a033666017
--- /dev/null
+++ b/arch/arm/boot/dts/rk3036-evb.dts
@@ -0,0 +1,64 @@
1/*
2 * This file is dual-licensed: you can use it either under the terms
3 * of the GPL or the X11 license, at your option. Note that this dual
4 * licensing only applies to this file, and not this project as a
5 * whole.
6 *
7 * a) This file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation; either version 2 of the
10 * License, or (at your option) any later version.
11 *
12 * This file is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * Or, alternatively,
18 *
19 * b) Permission is hereby granted, free of charge, to any person
20 * obtaining a copy of this software and associated documentation
21 * files (the "Software"), to deal in the Software without
22 * restriction, including without limitation the rights to use,
23 * copy, modify, merge, publish, distribute, sublicense, and/or
24 * sell copies of the Software, and to permit persons to whom the
25 * Software is furnished to do so, subject to the following
26 * conditions:
27 *
28 * The above copyright notice and this permission notice shall be
29 * included in all copies or substantial portions of the Software.
30 *
31 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
32 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
33 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
34 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
35 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
36 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
38 * OTHER DEALINGS IN THE SOFTWARE.
39 */
40
41/dts-v1/;
42
43#include "rk3036.dtsi"
44
45/ {
46 model = "Rockchip RK3036 Evaluation board";
47 compatible = "rockchip,rk3036-evb", "rockchip,rk3036";
48};
49
50&i2c1 {
51 status = "okay";
52
53 hym8563: hym8563@51 {
54 compatible = "haoyu,hym8563";
55 reg = <0x51>;
56 #clock-cells = <0>;
57 clock-frequency = <32768>;
58 clock-output-names = "xin32k";
59 };
60};
61
62&uart2 {
63 status = "okay";
64};
diff --git a/arch/arm/boot/dts/rk3036-kylin.dts b/arch/arm/boot/dts/rk3036-kylin.dts
new file mode 100644
index 000000000000..992f9cadbc04
--- /dev/null
+++ b/arch/arm/boot/dts/rk3036-kylin.dts
@@ -0,0 +1,300 @@
1/*
2 * This file is dual-licensed: you can use it either under the terms
3 * of the GPL or the X11 license, at your option. Note that this dual
4 * licensing only applies to this file, and not this project as a
5 * whole.
6 *
7 * a) This file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation; either version 2 of the
10 * License, or (at your option) any later version.
11 *
12 * This file is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * Or, alternatively,
18 *
19 * b) Permission is hereby granted, free of charge, to any person
20 * obtaining a copy of this software and associated documentation
21 * files (the "Software"), to deal in the Software without
22 * restriction, including without limitation the rights to use,
23 * copy, modify, merge, publish, distribute, sublicense, and/or
24 * sell copies of the Software, and to permit persons to whom the
25 * Software is furnished to do so, subject to the following
26 * conditions:
27 *
28 * The above copyright notice and this permission notice shall be
29 * included in all copies or substantial portions of the Software.
30 *
31 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
32 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
33 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
34 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
35 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
36 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
38 * OTHER DEALINGS IN THE SOFTWARE.
39 */
40
41/dts-v1/;
42
43#include "rk3036.dtsi"
44
45/ {
46 model = "Rockchip RK3036 KylinBoard";
47 compatible = "rockchip,rk3036-kylin", "rockchip,rk3036";
48
49 vcc_sys: vsys-regulator {
50 compatible = "regulator-fixed";
51 regulator-name = "vcc_sys";
52 regulator-min-microvolt = <5000000>;
53 regulator-max-microvolt = <5000000>;
54 regulator-always-on;
55 regulator-boot-on;
56 };
57};
58
59&acodec {
60 status = "okay";
61};
62
63&emmc {
64 status = "okay";
65};
66
67&i2c1 {
68 clock-frequency = <400000>;
69
70 status = "okay";
71
72 rk808: pmic@1b {
73 compatible = "rockchip,rk808";
74 reg = <0x1b>;
75 interrupt-parent = <&gpio2>;
76 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
77 pinctrl-names = "default";
78 pinctrl-0 = <&pmic_int &global_pwroff>;
79 rockchip,system-power-controller;
80 wakeup-source;
81 #clock-cells = <1>;
82 clock-output-names = "xin32k", "rk808-clkout2";
83
84 vcc1-supply = <&vcc_sys>;
85 vcc2-supply = <&vcc_sys>;
86 vcc3-supply = <&vcc_sys>;
87 vcc4-supply = <&vcc_sys>;
88 vcc6-supply = <&vcc_sys>;
89 vcc7-supply = <&vcc_sys>;
90 vcc8-supply = <&vcc_18>;
91 vcc9-supply = <&vcc_io>;
92 vcc10-supply = <&vcc_io>;
93 vcc11-supply = <&vcc_sys>;
94 vcc12-supply = <&vcc_io>;
95 vddio-supply = <&vccio_pmu>;
96
97 regulators {
98 vdd_cpu: DCDC_REG1 {
99 regulator-always-on;
100 regulator-boot-on;
101 regulator-min-microvolt = <750000>;
102 regulator-max-microvolt = <1350000>;
103 regulator-name = "vdd_arm";
104 regulator-state-mem {
105 regulator-off-in-suspend;
106 };
107 };
108
109 vdd_gpu: DCDC_REG2 {
110 regulator-always-on;
111 regulator-boot-on;
112 regulator-min-microvolt = <850000>;
113 regulator-max-microvolt = <1250000>;
114 regulator-name = "vdd_gpu";
115 regulator-state-mem {
116 regulator-on-in-suspend;
117 regulator-suspend-microvolt = <1000000>;
118 };
119 };
120
121 vcc_ddr: DCDC_REG3 {
122 regulator-always-on;
123 regulator-boot-on;
124 regulator-name = "vcc_ddr";
125 regulator-state-mem {
126 regulator-on-in-suspend;
127 };
128 };
129
130 vcc_io: DCDC_REG4 {
131 regulator-always-on;
132 regulator-boot-on;
133 regulator-min-microvolt = <3300000>;
134 regulator-max-microvolt = <3300000>;
135 regulator-name = "vcc_io";
136 regulator-state-mem {
137 regulator-on-in-suspend;
138 regulator-suspend-microvolt = <3300000>;
139 };
140 };
141
142 vccio_pmu: LDO_REG1 {
143 regulator-always-on;
144 regulator-boot-on;
145 regulator-min-microvolt = <3300000>;
146 regulator-max-microvolt = <3300000>;
147 regulator-name = "vccio_pmu";
148 regulator-state-mem {
149 regulator-on-in-suspend;
150 regulator-suspend-microvolt = <3300000>;
151 };
152 };
153
154 vcc_tp: LDO_REG2 {
155 regulator-always-on;
156 regulator-boot-on;
157 regulator-min-microvolt = <3300000>;
158 regulator-max-microvolt = <3300000>;
159 regulator-name = "vcc_tp";
160 regulator-state-mem {
161 regulator-off-in-suspend;
162 };
163 };
164
165 vdd_10: LDO_REG3 {
166 regulator-always-on;
167 regulator-boot-on;
168 regulator-min-microvolt = <1000000>;
169 regulator-max-microvolt = <1000000>;
170 regulator-name = "vdd_10";
171 regulator-state-mem {
172 regulator-on-in-suspend;
173 regulator-suspend-microvolt = <1000000>;
174 };
175 };
176
177 vcc18_lcd: LDO_REG4 {
178 regulator-always-on;
179 regulator-boot-on;
180 regulator-min-microvolt = <1800000>;
181 regulator-max-microvolt = <1800000>;
182 regulator-name = "vcc18_lcd";
183 regulator-state-mem {
184 regulator-on-in-suspend;
185 regulator-suspend-microvolt = <1800000>;
186 };
187 };
188
189 vccio_sd: LDO_REG5 {
190 regulator-always-on;
191 regulator-boot-on;
192 regulator-min-microvolt = <1800000>;
193 regulator-max-microvolt = <3300000>;
194 regulator-name = "vccio_sd";
195 regulator-state-mem {
196 regulator-on-in-suspend;
197 regulator-suspend-microvolt = <3300000>;
198 };
199 };
200
201 vout5: LDO_REG6 {
202 regulator-always-on;
203 regulator-boot-on;
204 regulator-min-microvolt = <1800000>;
205 regulator-max-microvolt = <2500000>;
206 regulator-name = "vout5";
207 regulator-state-mem {
208 regulator-on-in-suspend;
209 regulator-suspend-microvolt = <1800000>;
210 };
211 };
212
213 vcc_18: LDO_REG7 {
214 regulator-always-on;
215 regulator-boot-on;
216 regulator-min-microvolt = <1800000>;
217 regulator-max-microvolt = <1800000>;
218 regulator-name = "vcc_18";
219 regulator-state-mem {
220 regulator-on-in-suspend;
221 regulator-suspend-microvolt = <1800000>;
222 };
223 };
224
225 vcca_codec: LDO_REG8 {
226 regulator-always-on;
227 regulator-boot-on;
228 regulator-min-microvolt = <1800000>;
229 regulator-max-microvolt = <1800000>;
230 regulator-name = "vcca_codec";
231 regulator-state-mem {
232 regulator-on-in-suspend;
233 regulator-suspend-microvolt = <1800000>;
234 };
235 };
236
237 vcc_wl: SWITCH_REG1 {
238 regulator-always-on;
239 regulator-boot-on;
240 regulator-name = "vcc_wl";
241 regulator-state-mem {
242 regulator-on-in-suspend;
243 };
244 };
245
246 vcc_lcd: SWITCH_REG2 {
247 regulator-always-on;
248 regulator-boot-on;
249 regulator-name = "vcc_lcd";
250 regulator-state-mem {
251 regulator-on-in-suspend;
252 };
253 };
254 };
255 };
256};
257
258&i2c2 {
259 status = "okay";
260};
261
262&sdio {
263 status = "okay";
264
265 broken-cd;
266 bus-width = <4>;
267 cap-sdio-irq;
268 default-sample-phase = <90>;
269 keep-power-in-suspend;
270 non-removable;
271 num-slots = <1>;
272 pinctrl-names = "default";
273 pinctrl-0 = <&sdio_clk &sdio_cmd &sdio_bus4>;
274};
275
276&uart2 {
277 status = "okay";
278};
279
280&usb_host {
281 status = "okay";
282};
283
284&usb_otg {
285 status = "okay";
286};
287
288&pinctrl {
289 pmic {
290 pmic_int: pmic-int {
291 rockchip,pins = <2 2 RK_FUNC_GPIO &pcfg_pull_default>;
292 };
293 };
294
295 sleep {
296 global_pwroff: global-pwroff {
297 rockchip,pins = <2 7 RK_FUNC_1 &pcfg_pull_none>;
298 };
299 };
300};
diff --git a/arch/arm/boot/dts/rk3036.dtsi b/arch/arm/boot/dts/rk3036.dtsi
new file mode 100644
index 000000000000..b9567c1e0687
--- /dev/null
+++ b/arch/arm/boot/dts/rk3036.dtsi
@@ -0,0 +1,622 @@
1/*
2 * This file is dual-licensed: you can use it either under the terms
3 * of the GPL or the X11 license, at your option. Note that this dual
4 * licensing only applies to this file, and not this project as a
5 * whole.
6 *
7 * a) This file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation; either version 2 of the
10 * License, or (at your option) any later version.
11 *
12 * This file is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * Or, alternatively,
18 *
19 * b) Permission is hereby granted, free of charge, to any person
20 * obtaining a copy of this software and associated documentation
21 * files (the "Software"), to deal in the Software without
22 * restriction, including without limitation the rights to use,
23 * copy, modify, merge, publish, distribute, sublicense, and/or
24 * sell copies of the Software, and to permit persons to whom the
25 * Software is furnished to do so, subject to the following
26 * conditions:
27 *
28 * The above copyright notice and this permission notice shall be
29 * included in all copies or substantial portions of the Software.
30 *
31 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
32 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
33 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
34 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
35 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
36 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
38 * OTHER DEALINGS IN THE SOFTWARE.
39 */
40
41#include <dt-bindings/gpio/gpio.h>
42#include <dt-bindings/interrupt-controller/irq.h>
43#include <dt-bindings/interrupt-controller/arm-gic.h>
44#include <dt-bindings/pinctrl/rockchip.h>
45#include <dt-bindings/clock/rk3036-cru.h>
46#include "skeleton.dtsi"
47
48/ {
49 compatible = "rockchip,rk3036";
50
51 interrupt-parent = <&gic>;
52
53 aliases {
54 i2c0 = &i2c0;
55 i2c1 = &i2c1;
56 i2c2 = &i2c2;
57 mshc0 = &emmc;
58 mshc1 = &sdmmc;
59 mshc2 = &sdio;
60 serial0 = &uart0;
61 serial1 = &uart1;
62 serial2 = &uart2;
63 };
64
65 memory {
66 device_type = "memory";
67 reg = <0x60000000 0x40000000>;
68 };
69
70 cpus {
71 #address-cells = <1>;
72 #size-cells = <0>;
73 enable-method = "rockchip,rk3036-smp";
74
75 cpu0: cpu@f00 {
76 device_type = "cpu";
77 compatible = "arm,cortex-a7";
78 reg = <0xf00>;
79 resets = <&cru SRST_CORE0>;
80 operating-points = <
81 /* KHz uV */
82 816000 1000000
83 >;
84 clock-latency = <40000>;
85 clocks = <&cru ARMCLK>;
86 };
87
88 cpu1: cpu@f01 {
89 device_type = "cpu";
90 compatible = "arm,cortex-a7";
91 reg = <0xf01>;
92 resets = <&cru SRST_CORE1>;
93 };
94 };
95
96 amba {
97 compatible = "arm,amba-bus";
98 #address-cells = <1>;
99 #size-cells = <1>;
100 ranges;
101
102 pdma: pdma@20078000 {
103 compatible = "arm,pl330", "arm,primecell";
104 reg = <0x20078000 0x4000>;
105 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
106 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
107 #dma-cells = <1>;
108 clocks = <&cru ACLK_DMAC2>;
109 clock-names = "apb_pclk";
110 };
111 };
112
113 arm-pmu {
114 compatible = "arm,cortex-a7-pmu";
115 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
116 <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
117 interrupt-affinity = <&cpu0>, <&cpu1>;
118 };
119
120 timer {
121 compatible = "arm,armv7-timer";
122 arm,cpu-registers-not-fw-configured;
123 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>,
124 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>,
125 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>,
126 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
127 clock-frequency = <24000000>;
128 };
129
130 xin24m: oscillator {
131 compatible = "fixed-clock";
132 clock-frequency = <24000000>;
133 clock-output-names = "xin24m";
134 #clock-cells = <0>;
135 };
136
137 bus_intmem@10080000 {
138 compatible = "mmio-sram";
139 reg = <0x10080000 0x2000>;
140 #address-cells = <1>;
141 #size-cells = <1>;
142 ranges = <0 0x10080000 0x2000>;
143
144 smp-sram@0 {
145 compatible = "rockchip,rk3066-smp-sram";
146 reg = <0x00 0x10>;
147 };
148 };
149
150 gic: interrupt-controller@10139000 {
151 compatible = "arm,gic-400";
152 interrupt-controller;
153 #interrupt-cells = <3>;
154 #address-cells = <0>;
155
156 reg = <0x10139000 0x1000>,
157 <0x1013a000 0x1000>,
158 <0x1013c000 0x2000>,
159 <0x1013e000 0x2000>;
160 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
161 };
162
163 usb_otg: usb@10180000 {
164 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
165 "snps,dwc2";
166 reg = <0x10180000 0x40000>;
167 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
168 clocks = <&cru HCLK_OTG0>;
169 clock-names = "otg";
170 dr_mode = "otg";
171 g-np-tx-fifo-size = <16>;
172 g-rx-fifo-size = <275>;
173 g-tx-fifo-size = <256 128 128 64 64 32>;
174 g-use-dma;
175 status = "disabled";
176 };
177
178 usb_host: usb@101c0000 {
179 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
180 "snps,dwc2";
181 reg = <0x101c0000 0x40000>;
182 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
183 clocks = <&cru HCLK_OTG1>;
184 clock-names = "otg";
185 dr_mode = "host";
186 status = "disabled";
187 };
188
189 sdmmc: dwmmc@10214000 {
190 compatible = "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc";
191 reg = <0x10214000 0x4000>;
192 clock-frequency = <37500000>;
193 clock-freq-min-max = <400000 37500000>;
194 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>;
195 clock-names = "biu", "ciu";
196 fifo-depth = <0x100>;
197 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
198 status = "disabled";
199 };
200
201 sdio: dwmmc@10218000 {
202 compatible = "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc";
203 reg = <0x10218000 0x4000>;
204 clock-freq-min-max = <400000 37500000>;
205 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
206 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
207 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
208 fifo-depth = <0x100>;
209 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
210 status = "disabled";
211 };
212
213 emmc: dwmmc@1021c000 {
214 compatible = "rockchip,rk3288-dw-mshc";
215 reg = <0x1021c000 0x4000>;
216 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
217 broken-cd;
218 bus-width = <8>;
219 cap-mmc-highspeed;
220 clock-frequency = <37500000>;
221 clock-freq-min-max = <400000 37500000>;
222 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
223 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
224 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
225 default-sample-phase = <158>;
226 disable-wp;
227 dmas = <&pdma 12>;
228 dma-names = "rx-tx";
229 fifo-depth = <0x100>;
230 mmc-ddr-1_8v;
231 non-removable;
232 num-slots = <1>;
233 pinctrl-names = "default";
234 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
235 status = "disabled";
236 };
237
238 i2s: i2s@10220000 {
239 compatible = "rockchip,rk3036-i2s", "rockchip,rk3066-i2s";
240 reg = <0x10220000 0x4000>;
241 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
242 #address-cells = <1>;
243 #size-cells = <0>;
244 clock-names = "i2s_hclk", "i2s_clk";
245 clocks = <&cru HCLK_I2S>, <&cru SCLK_I2S>;
246 dmas = <&pdma 0>, <&pdma 1>;
247 dma-names = "tx", "rx";
248 pinctrl-names = "default";
249 pinctrl-0 = <&i2s_bus>;
250 status = "disabled";
251 };
252
253 cru: clock-controller@20000000 {
254 compatible = "rockchip,rk3036-cru";
255 reg = <0x20000000 0x1000>;
256 rockchip,grf = <&grf>;
257 #clock-cells = <1>;
258 #reset-cells = <1>;
259 assigned-clocks = <&cru PLL_GPLL>;
260 assigned-clock-rates = <594000000>;
261 };
262
263 grf: syscon@20008000 {
264 compatible = "rockchip,rk3036-grf", "syscon";
265 reg = <0x20008000 0x1000>;
266 };
267
268 acodec: acodec-ana@20030000 {
269 compatible = "rk3036-codec";
270 reg = <0x20030000 0x4000>;
271 rockchip,grf = <&grf>;
272 clock-names = "acodec_pclk";
273 clocks = <&cru PCLK_ACODEC>;
274 status = "disabled";
275 };
276
277 timer: timer@20044000 {
278 compatible = "rockchip,rk3036-timer", "rockchip,rk3288-timer";
279 reg = <0x20044000 0x20>;
280 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
281 clocks = <&xin24m>, <&cru PCLK_TIMER>;
282 clock-names = "timer", "pclk";
283 };
284
285 pwm0: pwm@20050000 {
286 compatible = "rockchip,rk3036-pwm", "rockchip,rk2928-pwm";
287 reg = <0x20050000 0x10>;
288 #pwm-cells = <3>;
289 clocks = <&cru PCLK_PWM>;
290 clock-names = "pwm";
291 pinctrl-names = "default";
292 pinctrl-0 = <&pwm0_pin>;
293 status = "disabled";
294 };
295
296 pwm1: pwm@20050010 {
297 compatible = "rockchip,rk3036-pwm", "rockchip,rk2928-pwm";
298 reg = <0x20050010 0x10>;
299 #pwm-cells = <3>;
300 clocks = <&cru PCLK_PWM>;
301 clock-names = "pwm";
302 pinctrl-names = "default";
303 pinctrl-0 = <&pwm1_pin>;
304 status = "disabled";
305 };
306
307 pwm2: pwm@20050020 {
308 compatible = "rockchip,rk3036-pwm", "rockchip,rk2928-pwm";
309 reg = <0x20050020 0x10>;
310 #pwm-cells = <3>;
311 clocks = <&cru PCLK_PWM>;
312 clock-names = "pwm";
313 pinctrl-names = "default";
314 pinctrl-0 = <&pwm2_pin>;
315 status = "disabled";
316 };
317
318 pwm3: pwm@20050030 {
319 compatible = "rockchip,rk3036-pwm", "rockchip,rk2928-pwm";
320 reg = <0x20050030 0x10>;
321 #pwm-cells = <2>;
322 clocks = <&cru PCLK_PWM>;
323 clock-names = "pwm";
324 pinctrl-names = "default";
325 pinctrl-0 = <&pwm3_pin>;
326 status = "disabled";
327 };
328
329 i2c1: i2c@20056000 {
330 compatible = "rockchip,rk3288-i2c";
331 reg = <0x20056000 0x1000>;
332 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
333 #address-cells = <1>;
334 #size-cells = <0>;
335 clock-names = "i2c";
336 clocks = <&cru PCLK_I2C1>;
337 pinctrl-names = "default";
338 pinctrl-0 = <&i2c1_xfer>;
339 status = "disabled";
340 };
341
342 i2c2: i2c@2005a000 {
343 compatible = "rockchip,rk3288-i2c";
344 reg = <0x2005a000 0x1000>;
345 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
346 #address-cells = <1>;
347 #size-cells = <0>;
348 clock-names = "i2c";
349 clocks = <&cru PCLK_I2C2>;
350 pinctrl-names = "default";
351 pinctrl-0 = <&i2c2_xfer>;
352 status = "disabled";
353 };
354
355 uart0: serial@20060000 {
356 compatible = "rockchip,rk3036-uart", "snps,dw-apb-uart";
357 reg = <0x20060000 0x100>;
358 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
359 reg-shift = <2>;
360 reg-io-width = <4>;
361 clock-frequency = <24000000>;
362 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
363 clock-names = "baudclk", "apb_pclk";
364 pinctrl-names = "default";
365 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
366 status = "disabled";
367 };
368
369 uart1: serial@20064000 {
370 compatible = "rockchip,rk3036-uart", "snps,dw-apb-uart";
371 reg = <0x20064000 0x100>;
372 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
373 reg-shift = <2>;
374 reg-io-width = <4>;
375 clock-frequency = <24000000>;
376 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
377 clock-names = "baudclk", "apb_pclk";
378 pinctrl-names = "default";
379 pinctrl-0 = <&uart1_xfer>;
380 status = "disabled";
381 };
382
383 uart2: serial@20068000 {
384 compatible = "rockchip,rk3036-uart", "snps,dw-apb-uart";
385 reg = <0x20068000 0x100>;
386 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
387 reg-shift = <2>;
388 reg-io-width = <4>;
389 clock-frequency = <24000000>;
390 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
391 clock-names = "baudclk", "apb_pclk";
392 pinctrl-names = "default";
393 pinctrl-0 = <&uart2_xfer>;
394 status = "disabled";
395 };
396
397 i2c0: i2c@20072000 {
398 compatible = "rockchip,rk3288-i2c";
399 reg = <0x20072000 0x1000>;
400 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
401 #address-cells = <1>;
402 #size-cells = <0>;
403 clock-names = "i2c";
404 clocks = <&cru PCLK_I2C0>;
405 pinctrl-names = "default";
406 pinctrl-0 = <&i2c0_xfer>;
407 status = "disabled";
408 };
409
410 pinctrl: pinctrl {
411 compatible = "rockchip,rk3036-pinctrl";
412 rockchip,grf = <&grf>;
413 #address-cells = <1>;
414 #size-cells = <1>;
415 ranges;
416
417 gpio0: gpio0@2007c000 {
418 compatible = "rockchip,gpio-bank";
419 reg = <0x2007c000 0x100>;
420 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
421 clocks = <&cru PCLK_GPIO0>;
422
423 gpio-controller;
424 #gpio-cells = <2>;
425
426 interrupt-controller;
427 #interrupt-cells = <2>;
428 };
429
430 gpio1: gpio1@20080000 {
431 compatible = "rockchip,gpio-bank";
432 reg = <0x20080000 0x100>;
433 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
434 clocks = <&cru PCLK_GPIO1>;
435
436 gpio-controller;
437 #gpio-cells = <2>;
438
439 interrupt-controller;
440 #interrupt-cells = <2>;
441 };
442
443 gpio2: gpio2@20084000 {
444 compatible = "rockchip,gpio-bank";
445 reg = <0x20084000 0x100>;
446 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
447 clocks = <&cru PCLK_GPIO2>;
448
449 gpio-controller;
450 #gpio-cells = <2>;
451
452 interrupt-controller;
453 #interrupt-cells = <2>;
454 };
455
456 pcfg_pull_default: pcfg_pull_default {
457 bias-pull-pin-default;
458 };
459
460 pcfg_pull_none: pcfg-pull-none {
461 bias-disable;
462 };
463
464 pwm0 {
465 pwm0_pin: pwm0-pin {
466 rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>;
467 };
468 };
469
470 pwm1 {
471 pwm1_pin: pwm1-pin {
472 rockchip,pins = <0 1 RK_FUNC_2 &pcfg_pull_none>;
473 };
474 };
475
476 pwm2 {
477 pwm2_pin: pwm2-pin {
478 rockchip,pins = <0 1 2 &pcfg_pull_none>;
479 };
480 };
481
482 pwm3 {
483 pwm3_pin: pwm3-pin {
484 rockchip,pins = <0 27 1 &pcfg_pull_none>;
485 };
486 };
487
488 sdmmc {
489 sdmmc_clk: sdmmc-clk {
490 rockchip,pins = <1 16 RK_FUNC_1 &pcfg_pull_none>;
491 };
492
493 sdmmc_cmd: sdmmc-cmd {
494 rockchip,pins = <1 15 RK_FUNC_1 &pcfg_pull_default>;
495 };
496
497 sdmmc_cd: sdmcc-cd {
498 rockchip,pins = <1 17 RK_FUNC_1 &pcfg_pull_default>;
499 };
500
501 sdmmc_bus1: sdmmc-bus1 {
502 rockchip,pins = <1 18 RK_FUNC_1 &pcfg_pull_default>;
503 };
504
505 sdmmc_bus4: sdmmc-bus4 {
506 rockchip,pins = <1 18 RK_FUNC_1 &pcfg_pull_default>,
507 <1 19 RK_FUNC_1 &pcfg_pull_default>,
508 <1 20 RK_FUNC_1 &pcfg_pull_default>,
509 <1 21 RK_FUNC_1 &pcfg_pull_default>;
510 };
511 };
512
513 sdio {
514 sdio_bus1: sdio-bus1 {
515 rockchip,pins = <0 11 RK_FUNC_1 &pcfg_pull_default>;
516 };
517
518 sdio_bus4: sdio-bus4 {
519 rockchip,pins = <0 11 RK_FUNC_1 &pcfg_pull_default>,
520 <0 12 RK_FUNC_1 &pcfg_pull_default>,
521 <0 13 RK_FUNC_1 &pcfg_pull_default>,
522 <0 14 RK_FUNC_1 &pcfg_pull_default>;
523 };
524
525 sdio_cmd: sdio-cmd {
526 rockchip,pins = <0 8 RK_FUNC_1 &pcfg_pull_default>;
527 };
528
529 sdio_clk: sdio-clk {
530 rockchip,pins = <0 9 RK_FUNC_1 &pcfg_pull_none>;
531 };
532 };
533
534 emmc {
535 /*
536 * We run eMMC at max speed; bump up drive strength.
537 * We also have external pulls, so disable the internal ones.
538 */
539 emmc_clk: emmc-clk {
540 rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none>;
541 };
542
543 emmc_cmd: emmc-cmd {
544 rockchip,pins = <2 1 RK_FUNC_2 &pcfg_pull_default>;
545 };
546
547 emmc_bus8: emmc-bus8 {
548 rockchip,pins = <1 24 RK_FUNC_2 &pcfg_pull_default>,
549 <1 25 RK_FUNC_2 &pcfg_pull_default>,
550 <1 26 RK_FUNC_2 &pcfg_pull_default>,
551 <1 27 RK_FUNC_2 &pcfg_pull_default>,
552 <1 28 RK_FUNC_2 &pcfg_pull_default>,
553 <1 29 RK_FUNC_2 &pcfg_pull_default>,
554 <1 30 RK_FUNC_2 &pcfg_pull_default>,
555 <1 31 RK_FUNC_2 &pcfg_pull_default>;
556 };
557 };
558
559 i2c0 {
560 i2c0_xfer: i2c0-xfer {
561 rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>,
562 <0 1 RK_FUNC_1 &pcfg_pull_none>;
563 };
564 };
565
566 i2c1 {
567 i2c1_xfer: i2c1-xfer {
568 rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_none>,
569 <0 3 RK_FUNC_1 &pcfg_pull_none>;
570 };
571 };
572
573 i2c2 {
574 i2c2_xfer: i2c2-xfer {
575 rockchip,pins = <2 20 RK_FUNC_1 &pcfg_pull_none>,
576 <2 21 RK_FUNC_1 &pcfg_pull_none>;
577 };
578 };
579
580 i2s {
581 i2s_bus: i2s-bus {
582 rockchip,pins = <1 0 RK_FUNC_1 &pcfg_pull_none>,
583 <1 1 RK_FUNC_1 &pcfg_pull_none>,
584 <1 2 RK_FUNC_1 &pcfg_pull_none>,
585 <1 3 RK_FUNC_1 &pcfg_pull_none>,
586 <1 4 RK_FUNC_1 &pcfg_pull_none>,
587 <1 5 RK_FUNC_1 &pcfg_pull_none>;
588 };
589 };
590
591 uart0 {
592 uart0_xfer: uart0-xfer {
593 rockchip,pins = <0 16 RK_FUNC_1 &pcfg_pull_default>,
594 <0 17 RK_FUNC_1 &pcfg_pull_none>;
595 };
596
597 uart0_cts: uart0-cts {
598 rockchip,pins = <0 18 RK_FUNC_1 &pcfg_pull_default>;
599 };
600
601 uart0_rts: uart0-rts {
602 rockchip,pins = <0 19 RK_FUNC_1 &pcfg_pull_none>;
603 };
604 };
605
606 uart1 {
607 uart1_xfer: uart1-xfer {
608 rockchip,pins = <2 22 RK_FUNC_1 &pcfg_pull_default>,
609 <2 23 RK_FUNC_1 &pcfg_pull_none>;
610 };
611 /* no rts / cts for uart1 */
612 };
613
614 uart2 {
615 uart2_xfer: uart2-xfer {
616 rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_default>,
617 <1 19 RK_FUNC_2 &pcfg_pull_none>;
618 };
619 /* no rts / cts for uart2 */
620 };
621 };
622};
diff --git a/arch/arm/boot/dts/rk3066a.dtsi b/arch/arm/boot/dts/rk3066a.dtsi
index 946f18705e96..58bac5053858 100644
--- a/arch/arm/boot/dts/rk3066a.dtsi
+++ b/arch/arm/boot/dts/rk3066a.dtsi
@@ -103,6 +103,8 @@
103 dma-names = "tx", "rx"; 103 dma-names = "tx", "rx";
104 clock-names = "i2s_hclk", "i2s_clk"; 104 clock-names = "i2s_hclk", "i2s_clk";
105 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>; 105 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
106 rockchip,playback-channels = <8>;
107 rockchip,capture-channels = <2>;
106 status = "disabled"; 108 status = "disabled";
107 }; 109 };
108 110
@@ -118,6 +120,8 @@
118 dma-names = "tx", "rx"; 120 dma-names = "tx", "rx";
119 clock-names = "i2s_hclk", "i2s_clk"; 121 clock-names = "i2s_hclk", "i2s_clk";
120 clocks = <&cru HCLK_I2S1>, <&cru SCLK_I2S1>; 122 clocks = <&cru HCLK_I2S1>, <&cru SCLK_I2S1>;
123 rockchip,playback-channels = <2>;
124 rockchip,capture-channels = <2>;
121 status = "disabled"; 125 status = "disabled";
122 }; 126 };
123 127
@@ -133,6 +137,8 @@
133 dma-names = "tx", "rx"; 137 dma-names = "tx", "rx";
134 clock-names = "i2s_hclk", "i2s_clk"; 138 clock-names = "i2s_hclk", "i2s_clk";
135 clocks = <&cru HCLK_I2S2>, <&cru SCLK_I2S2>; 139 clocks = <&cru HCLK_I2S2>, <&cru SCLK_I2S2>;
140 rockchip,playback-channels = <2>;
141 rockchip,capture-channels = <2>;
136 status = "disabled"; 142 status = "disabled";
137 }; 143 };
138 144
@@ -153,6 +159,19 @@
153 clock-names = "timer", "pclk"; 159 clock-names = "timer", "pclk";
154 }; 160 };
155 161
162 efuse: efuse@20010000 {
163 compatible = "rockchip,rockchip-efuse";
164 reg = <0x20010000 0x4000>;
165 #address-cells = <1>;
166 #size-cells = <1>;
167 clocks = <&cru PCLK_EFUSE>;
168 clock-names = "pclk_efuse";
169
170 cpu_leakage: cpu_leakage {
171 reg = <0x17 0x1>;
172 };
173 };
174
156 timer@20038000 { 175 timer@20038000 {
157 compatible = "snps,dw-apb-timer-osc"; 176 compatible = "snps,dw-apb-timer-osc";
158 reg = <0x20038000 0x100>; 177 reg = <0x20038000 0x100>;
diff --git a/arch/arm/boot/dts/rk3188.dtsi b/arch/arm/boot/dts/rk3188.dtsi
index 6399942f1840..348d46b7ada5 100644
--- a/arch/arm/boot/dts/rk3188.dtsi
+++ b/arch/arm/boot/dts/rk3188.dtsi
@@ -118,6 +118,8 @@
118 dma-names = "tx", "rx"; 118 dma-names = "tx", "rx";
119 clock-names = "i2s_hclk", "i2s_clk"; 119 clock-names = "i2s_hclk", "i2s_clk";
120 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>; 120 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
121 rockchip,playback-channels = <2>;
122 rockchip,capture-channels = <2>;
121 status = "disabled"; 123 status = "disabled";
122 }; 124 };
123 125
@@ -144,6 +146,19 @@
144 #reset-cells = <1>; 146 #reset-cells = <1>;
145 }; 147 };
146 148
149 efuse: efuse@20010000 {
150 compatible = "rockchip,rockchip-efuse";
151 reg = <0x20010000 0x4000>;
152 #address-cells = <1>;
153 #size-cells = <1>;
154 clocks = <&cru PCLK_EFUSE>;
155 clock-names = "pclk_efuse";
156
157 cpu_leakage: cpu_leakage {
158 reg = <0x17 0x1>;
159 };
160 };
161
147 usbphy: phy { 162 usbphy: phy {
148 compatible = "rockchip,rk3188-usb-phy", "rockchip,rk3288-usb-phy"; 163 compatible = "rockchip,rk3188-usb-phy", "rockchip,rk3288-usb-phy";
149 rockchip,grf = <&grf>; 164 rockchip,grf = <&grf>;
diff --git a/arch/arm/boot/dts/rk3228-evb.dts b/arch/arm/boot/dts/rk3228-evb.dts
new file mode 100644
index 000000000000..e3898b810150
--- /dev/null
+++ b/arch/arm/boot/dts/rk3228-evb.dts
@@ -0,0 +1,66 @@
1/*
2 * This file is dual-licensed: you can use it either under the terms
3 * of the GPL or the X11 license, at your option. Note that this dual
4 * licensing only applies to this file, and not this project as a
5 * whole.
6 *
7 * a) This file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation; either version 2 of the
10 * License, or (at your option) any later version.
11 *
12 * This file is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * Or, alternatively,
18 *
19 * b) Permission is hereby granted, free of charge, to any person
20 * obtaining a copy of this software and associated documentation
21 * files (the "Software"), to deal in the Software without
22 * restriction, including without limitation the rights to use,
23 * copy, modify, merge, publish, distribute, sublicense, and/or
24 * sell copies of the Software, and to permit persons to whom the
25 * Software is furnished to do so, subject to the following
26 * conditions:
27 *
28 * The above copyright notice and this permission notice shall be
29 * included in all copies or substantial portions of the Software.
30 *
31 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
32 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
33 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
34 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
35 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
36 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
38 * OTHER DEALINGS IN THE SOFTWARE.
39 */
40
41/dts-v1/;
42
43#include "rk3228.dtsi"
44
45/ {
46 model = "Rockchip RK3228 Evaluation board";
47 compatible = "rockchip,rk3228-evb", "rockchip,rk3228";
48
49 memory {
50 device_type = "memory";
51 reg = <0x60000000 0x40000000>;
52 };
53};
54
55&emmc {
56 broken-cd;
57 cap-mmc-highspeed;
58 mmc-ddr-1_8v;
59 disable-wp;
60 non-removable;
61 status = "okay";
62};
63
64&uart2 {
65 status = "okay";
66};
diff --git a/arch/arm/boot/dts/rk3228.dtsi b/arch/arm/boot/dts/rk3228.dtsi
new file mode 100644
index 000000000000..119ff12ab440
--- /dev/null
+++ b/arch/arm/boot/dts/rk3228.dtsi
@@ -0,0 +1,442 @@
1/*
2 * This file is dual-licensed: you can use it either under the terms
3 * of the GPL or the X11 license, at your option. Note that this dual
4 * licensing only applies to this file, and not this project as a
5 * whole.
6 *
7 * a) This file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation; either version 2 of the
10 * License, or (at your option) any later version.
11 *
12 * This file is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * Or, alternatively,
18 *
19 * b) Permission is hereby granted, free of charge, to any person
20 * obtaining a copy of this software and associated documentation
21 * files (the "Software"), to deal in the Software without
22 * restriction, including without limitation the rights to use,
23 * copy, modify, merge, publish, distribute, sublicense, and/or
24 * sell copies of the Software, and to permit persons to whom the
25 * Software is furnished to do so, subject to the following
26 * conditions:
27 *
28 * The above copyright notice and this permission notice shall be
29 * included in all copies or substantial portions of the Software.
30 *
31 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
32 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
33 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
34 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
35 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
36 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
38 * OTHER DEALINGS IN THE SOFTWARE.
39 */
40
41#include <dt-bindings/gpio/gpio.h>
42#include <dt-bindings/interrupt-controller/irq.h>
43#include <dt-bindings/interrupt-controller/arm-gic.h>
44#include <dt-bindings/pinctrl/rockchip.h>
45#include <dt-bindings/clock/rk3228-cru.h>
46#include "skeleton.dtsi"
47
48/ {
49 compatible = "rockchip,rk3228";
50
51 interrupt-parent = <&gic>;
52
53 aliases {
54 serial0 = &uart0;
55 serial1 = &uart1;
56 serial2 = &uart2;
57 };
58
59 cpus {
60 #address-cells = <1>;
61 #size-cells = <0>;
62
63 cpu0: cpu@f00 {
64 device_type = "cpu";
65 compatible = "arm,cortex-a7";
66 reg = <0xf00>;
67 resets = <&cru SRST_CORE0>;
68 operating-points = <
69 /* KHz uV */
70 816000 1000000
71 >;
72 clock-latency = <40000>;
73 clocks = <&cru ARMCLK>;
74 };
75
76 cpu1: cpu@f01 {
77 device_type = "cpu";
78 compatible = "arm,cortex-a7";
79 reg = <0xf01>;
80 resets = <&cru SRST_CORE1>;
81 };
82
83 cpu2: cpu@f02 {
84 device_type = "cpu";
85 compatible = "arm,cortex-a7";
86 reg = <0xf02>;
87 resets = <&cru SRST_CORE2>;
88 };
89
90 cpu3: cpu@f03 {
91 device_type = "cpu";
92 compatible = "arm,cortex-a7";
93 reg = <0xf03>;
94 resets = <&cru SRST_CORE3>;
95 };
96 };
97
98 amba {
99 compatible = "arm,amba-bus";
100 #address-cells = <1>;
101 #size-cells = <1>;
102 ranges;
103
104 pdma: pdma@110f0000 {
105 compatible = "arm,pl330", "arm,primecell";
106 reg = <0x110f0000 0x4000>;
107 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
108 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
109 #dma-cells = <1>;
110 clocks = <&cru ACLK_DMAC>;
111 clock-names = "apb_pclk";
112 };
113 };
114
115 arm-pmu {
116 compatible = "arm,cortex-a7-pmu";
117 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
118 <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
119 <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
120 <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
121 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
122 };
123
124 timer {
125 compatible = "arm,armv7-timer";
126 arm,cpu-registers-not-fw-configured;
127 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
128 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
129 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
130 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
131 clock-frequency = <24000000>;
132 };
133
134 xin24m: oscillator {
135 compatible = "fixed-clock";
136 clock-frequency = <24000000>;
137 clock-output-names = "xin24m";
138 #clock-cells = <0>;
139 };
140
141 grf: syscon@11000000 {
142 compatible = "syscon";
143 reg = <0x11000000 0x1000>;
144 };
145
146 uart0: serial@11010000 {
147 compatible = "snps,dw-apb-uart";
148 reg = <0x11010000 0x100>;
149 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
150 clock-frequency = <24000000>;
151 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
152 clock-names = "baudclk", "apb_pclk";
153 pinctrl-names = "default";
154 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
155 reg-shift = <2>;
156 reg-io-width = <4>;
157 status = "disabled";
158 };
159
160 uart1: serial@11020000 {
161 compatible = "snps,dw-apb-uart";
162 reg = <0x11020000 0x100>;
163 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
164 clock-frequency = <24000000>;
165 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
166 clock-names = "baudclk", "apb_pclk";
167 pinctrl-names = "default";
168 pinctrl-0 = <&uart1_xfer>;
169 reg-shift = <2>;
170 reg-io-width = <4>;
171 status = "disabled";
172 };
173
174 uart2: serial@11030000 {
175 compatible = "snps,dw-apb-uart";
176 reg = <0x11030000 0x100>;
177 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
178 clock-frequency = <24000000>;
179 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
180 clock-names = "baudclk", "apb_pclk";
181 pinctrl-names = "default";
182 pinctrl-0 = <&uart2_xfer>;
183 reg-shift = <2>;
184 reg-io-width = <4>;
185 status = "disabled";
186 };
187
188 pwm0: pwm@110b0000 {
189 compatible = "rockchip,rk3288-pwm";
190 reg = <0x110b0000 0x10>;
191 #pwm-cells = <3>;
192 clocks = <&cru PCLK_PWM>;
193 clock-names = "pwm";
194 pinctrl-names = "default";
195 pinctrl-0 = <&pwm0_pin>;
196 status = "disabled";
197 };
198
199 pwm1: pwm@110b0010 {
200 compatible = "rockchip,rk3288-pwm";
201 reg = <0x110b0010 0x10>;
202 #pwm-cells = <3>;
203 clocks = <&cru PCLK_PWM>;
204 clock-names = "pwm";
205 pinctrl-names = "default";
206 pinctrl-0 = <&pwm1_pin>;
207 status = "disabled";
208 };
209
210 pwm2: pwm@110b0020 {
211 compatible = "rockchip,rk3288-pwm";
212 reg = <0x110b0020 0x10>;
213 #pwm-cells = <3>;
214 clocks = <&cru PCLK_PWM>;
215 clock-names = "pwm";
216 pinctrl-names = "default";
217 pinctrl-0 = <&pwm2_pin>;
218 status = "disabled";
219 };
220
221 pwm3: pwm@110b0030 {
222 compatible = "rockchip,rk3288-pwm";
223 reg = <0x110b0030 0x10>;
224 #pwm-cells = <2>;
225 clocks = <&cru PCLK_PWM>;
226 clock-names = "pwm";
227 pinctrl-names = "default";
228 pinctrl-0 = <&pwm3_pin>;
229 status = "disabled";
230 };
231
232 timer: timer@110c0000 {
233 compatible = "rockchip,rk3288-timer";
234 reg = <0x110c0000 0x20>;
235 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
236 clocks = <&xin24m>, <&cru PCLK_TIMER>;
237 clock-names = "timer", "pclk";
238 };
239
240 cru: clock-controller@110e0000 {
241 compatible = "rockchip,rk3228-cru";
242 reg = <0x110e0000 0x1000>;
243 rockchip,grf = <&grf>;
244 #clock-cells = <1>;
245 #reset-cells = <1>;
246 assigned-clocks = <&cru PLL_GPLL>;
247 assigned-clock-rates = <594000000>;
248 };
249
250 emmc: dwmmc@30020000 {
251 compatible = "rockchip,rk3288-dw-mshc";
252 reg = <0x30020000 0x4000>;
253 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
254 clock-frequency = <37500000>;
255 clock-freq-min-max = <400000 37500000>;
256 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
257 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
258 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
259 bus-width = <8>;
260 default-sample-phase = <158>;
261 num-slots = <1>;
262 fifo-depth = <0x100>;
263 pinctrl-names = "default";
264 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
265 status = "disabled";
266 };
267
268 gic: interrupt-controller@32010000 {
269 compatible = "arm,gic-400";
270 interrupt-controller;
271 #interrupt-cells = <3>;
272 #address-cells = <0>;
273
274 reg = <0x32011000 0x1000>,
275 <0x32012000 0x1000>,
276 <0x32014000 0x2000>,
277 <0x32016000 0x2000>;
278 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
279 };
280
281 pinctrl: pinctrl {
282 compatible = "rockchip,rk3228-pinctrl";
283 rockchip,grf = <&grf>;
284 #address-cells = <1>;
285 #size-cells = <1>;
286 ranges;
287
288 gpio0: gpio0@11110000 {
289 compatible = "rockchip,gpio-bank";
290 reg = <0x11110000 0x100>;
291 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
292 clocks = <&cru PCLK_GPIO0>;
293
294 gpio-controller;
295 #gpio-cells = <2>;
296
297 interrupt-controller;
298 #interrupt-cells = <2>;
299 };
300
301 gpio1: gpio1@11120000 {
302 compatible = "rockchip,gpio-bank";
303 reg = <0x11120000 0x100>;
304 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
305 clocks = <&cru PCLK_GPIO1>;
306
307 gpio-controller;
308 #gpio-cells = <2>;
309
310 interrupt-controller;
311 #interrupt-cells = <2>;
312 };
313
314 gpio2: gpio2@11130000 {
315 compatible = "rockchip,gpio-bank";
316 reg = <0x11130000 0x100>;
317 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
318 clocks = <&cru PCLK_GPIO2>;
319
320 gpio-controller;
321 #gpio-cells = <2>;
322
323 interrupt-controller;
324 #interrupt-cells = <2>;
325 };
326
327 gpio3: gpio3@11140000 {
328 compatible = "rockchip,gpio-bank";
329 reg = <0x11140000 0x100>;
330 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
331 clocks = <&cru PCLK_GPIO3>;
332
333 gpio-controller;
334 #gpio-cells = <2>;
335
336 interrupt-controller;
337 #interrupt-cells = <2>;
338 };
339
340 pcfg_pull_up: pcfg-pull-up {
341 bias-pull-up;
342 };
343
344 pcfg_pull_down: pcfg-pull-down {
345 bias-pull-down;
346 };
347
348 pcfg_pull_none: pcfg-pull-none {
349 bias-disable;
350 };
351
352 emmc {
353 emmc_clk: emmc-clk {
354 rockchip,pins = <2 7 RK_FUNC_2 &pcfg_pull_none>;
355 };
356
357 emmc_cmd: emmc-cmd {
358 rockchip,pins = <1 22 RK_FUNC_2 &pcfg_pull_none>;
359 };
360
361 emmc_bus8: emmc-bus8 {
362 rockchip,pins = <1 24 RK_FUNC_2 &pcfg_pull_none>,
363 <1 25 RK_FUNC_2 &pcfg_pull_none>,
364 <1 26 RK_FUNC_2 &pcfg_pull_none>,
365 <1 27 RK_FUNC_2 &pcfg_pull_none>,
366 <1 28 RK_FUNC_2 &pcfg_pull_none>,
367 <1 29 RK_FUNC_2 &pcfg_pull_none>,
368 <1 30 RK_FUNC_2 &pcfg_pull_none>,
369 <1 31 RK_FUNC_2 &pcfg_pull_none>;
370 };
371 };
372
373 pwm0 {
374 pwm0_pin: pwm0-pin {
375 rockchip,pins = <3 21 RK_FUNC_1 &pcfg_pull_none>;
376 };
377 };
378
379 pwm1 {
380 pwm1_pin: pwm1-pin {
381 rockchip,pins = <0 30 RK_FUNC_2 &pcfg_pull_none>;
382 };
383 };
384
385 pwm2 {
386 pwm2_pin: pwm2-pin {
387 rockchip,pins = <1 12 RK_FUNC_2 &pcfg_pull_none>;
388 };
389 };
390
391 pwm3 {
392 pwm3_pin: pwm3-pin {
393 rockchip,pins = <1 11 RK_FUNC_2 &pcfg_pull_none>;
394 };
395 };
396
397 uart0 {
398 uart0_xfer: uart0-xfer {
399 rockchip,pins = <2 26 RK_FUNC_1 &pcfg_pull_none>,
400 <2 27 RK_FUNC_1 &pcfg_pull_none>;
401 };
402
403 uart0_cts: uart0-cts {
404 rockchip,pins = <2 29 RK_FUNC_1 &pcfg_pull_none>;
405 };
406
407 uart0_rts: uart0-rts {
408 rockchip,pins = <0 17 RK_FUNC_1 &pcfg_pull_none>;
409 };
410 };
411
412 uart1 {
413 uart1_xfer: uart1-xfer {
414 rockchip,pins = <1 9 RK_FUNC_1 &pcfg_pull_none>,
415 <1 10 RK_FUNC_1 &pcfg_pull_none>;
416 };
417
418 uart1_cts: uart1-cts {
419 rockchip,pins = <1 8 RK_FUNC_1 &pcfg_pull_none>;
420 };
421
422 uart1_rts: uart1-rts {
423 rockchip,pins = <1 11 RK_FUNC_1 &pcfg_pull_none>;
424 };
425 };
426
427 uart2 {
428 uart2_xfer: uart2-xfer {
429 rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_none>,
430 <1 19 RK_FUNC_2 &pcfg_pull_none>;
431 };
432
433 uart2_cts: uart2-cts {
434 rockchip,pins = <0 25 RK_FUNC_1 &pcfg_pull_none>;
435 };
436
437 uart2_rts: uart2-rts {
438 rockchip,pins = <0 24 RK_FUNC_1 &pcfg_pull_none>;
439 };
440 };
441 };
442};
diff --git a/arch/arm/boot/dts/rk3288-evb-act8846.dts b/arch/arm/boot/dts/rk3288-evb-act8846.dts
index 43949a6771f0..452ca2441e84 100644
--- a/arch/arm/boot/dts/rk3288-evb-act8846.dts
+++ b/arch/arm/boot/dts/rk3288-evb-act8846.dts
@@ -43,10 +43,26 @@
43 43
44/ { 44/ {
45 compatible = "rockchip,rk3288-evb-act8846", "rockchip,rk3288"; 45 compatible = "rockchip,rk3288-evb-act8846", "rockchip,rk3288";
46};
47 46
48&cpu0 { 47 vcc_lcd: vcc-lcd {
49 cpu0-supply = <&vdd_cpu>; 48 compatible = "regulator-fixed";
49 enable-active-high;
50 gpio = <&gpio7 3 GPIO_ACTIVE_HIGH>;
51 pinctrl-names = "default";
52 pinctrl-0 = <&lcd_en>;
53 regulator-name = "vcc_lcd";
54 vin-supply = <&vcc_io>;
55 };
56
57 vcc_wl: vcc-wl {
58 compatible = "regulator-fixed";
59 enable-active-high;
60 gpio = <&gpio7 9 GPIO_ACTIVE_HIGH>;
61 pinctrl-names = "default";
62 pinctrl-0 = <&wifi_pwr>;
63 regulator-name = "vcc_wl";
64 vin-supply = <&vcc_18>;
65 };
50}; 66};
51 67
52&i2c0 { 68&i2c0 {
@@ -119,8 +135,8 @@
119 135
120 vdd_log: REG3 { 136 vdd_log: REG3 {
121 regulator-name = "VDD_LOG"; 137 regulator-name = "VDD_LOG";
122 regulator-min-microvolt = <1000000>; 138 regulator-min-microvolt = <700000>;
123 regulator-max-microvolt = <1000000>; 139 regulator-max-microvolt = <1500000>;
124 regulator-always-on; 140 regulator-always-on;
125 }; 141 };
126 142
@@ -133,7 +149,7 @@
133 149
134 vccio_sd: REG5 { 150 vccio_sd: REG5 {
135 regulator-name = "VCCIO_SD"; 151 regulator-name = "VCCIO_SD";
136 regulator-min-microvolt = <3300000>; 152 regulator-min-microvolt = <1800000>;
137 regulator-max-microvolt = <3300000>; 153 regulator-max-microvolt = <3300000>;
138 regulator-always-on; 154 regulator-always-on;
139 }; 155 };
@@ -152,7 +168,7 @@
152 regulator-always-on; 168 regulator-always-on;
153 }; 169 };
154 170
155 vcca_tp: REG8 { 171 vcc_tp: REG8 {
156 regulator-name = "VCCA_TP"; 172 regulator-name = "VCCA_TP";
157 regulator-min-microvolt = <3300000>; 173 regulator-min-microvolt = <3300000>;
158 regulator-max-microvolt = <3300000>; 174 regulator-max-microvolt = <3300000>;
@@ -189,3 +205,17 @@
189 }; 205 };
190 }; 206 };
191}; 207};
208
209&pinctrl {
210 lcd {
211 lcd_en: lcd-en {
212 rockchip,pins = <7 3 RK_FUNC_GPIO &pcfg_pull_none>;
213 };
214 };
215
216 wifi {
217 wifi_pwr: wifi-pwr {
218 rockchip,pins = <7 9 RK_FUNC_GPIO &pcfg_pull_none>;
219 };
220 };
221};
diff --git a/arch/arm/boot/dts/rk3288-evb-rk808.dts b/arch/arm/boot/dts/rk3288-evb-rk808.dts
index 18eb6cb495f4..736b08b0bfdd 100644
--- a/arch/arm/boot/dts/rk3288-evb-rk808.dts
+++ b/arch/arm/boot/dts/rk3288-evb-rk808.dts
@@ -43,17 +43,6 @@
43 43
44/ { 44/ {
45 compatible = "rockchip,rk3288-evb-rk808", "rockchip,rk3288"; 45 compatible = "rockchip,rk3288-evb-rk808", "rockchip,rk3288";
46
47 ext_gmac: external-gmac-clock {
48 compatible = "fixed-clock";
49 clock-frequency = <125000000>;
50 clock-output-names = "ext_gmac";
51 #clock-cells = <0>;
52 };
53};
54
55&cpu0 {
56 cpu0-supply = <&vdd_cpu>;
57}; 46};
58 47
59&i2c0 { 48&i2c0 {
@@ -244,19 +233,3 @@
244 }; 233 };
245 }; 234 };
246}; 235};
247
248&gmac {
249 phy-supply = <&vcc_phy>;
250 phy-mode = "rgmii";
251 clock_in_out = "input";
252 snps,reset-gpio = <&gpio4 7 0>;
253 snps,reset-active-low;
254 snps,reset-delays-us = <0 10000 1000000>;
255 assigned-clocks = <&cru SCLK_MAC>;
256 assigned-clock-parents = <&ext_gmac>;
257 pinctrl-names = "default";
258 pinctrl-0 = <&rgmii_pins>;
259 tx_delay = <0x30>;
260 rx_delay = <0x10>;
261 status = "ok";
262};
diff --git a/arch/arm/boot/dts/rk3288-evb.dtsi b/arch/arm/boot/dts/rk3288-evb.dtsi
index f6d2e7894b05..4faabdb65868 100644
--- a/arch/arm/boot/dts/rk3288-evb.dtsi
+++ b/arch/arm/boot/dts/rk3288-evb.dtsi
@@ -89,6 +89,13 @@
89 pwms = <&pwm0 0 1000000 PWM_POLARITY_INVERTED>; 89 pwms = <&pwm0 0 1000000 PWM_POLARITY_INVERTED>;
90 }; 90 };
91 91
92 ext_gmac: external-gmac-clock {
93 compatible = "fixed-clock";
94 clock-frequency = <125000000>;
95 clock-output-names = "ext_gmac";
96 #clock-cells = <0>;
97 };
98
92 gpio-keys { 99 gpio-keys {
93 compatible = "gpio-keys"; 100 compatible = "gpio-keys";
94 #address-cells = <1>; 101 #address-cells = <1>;
@@ -160,6 +167,10 @@
160 }; 167 };
161}; 168};
162 169
170&cpu0 {
171 cpu0-supply = <&vdd_cpu>;
172};
173
163&emmc { 174&emmc {
164 broken-cd; 175 broken-cd;
165 bus-width = <8>; 176 bus-width = <8>;
@@ -172,11 +183,6 @@
172 status = "okay"; 183 status = "okay";
173}; 184};
174 185
175&hdmi {
176 ddc-i2c-bus = <&i2c5>;
177 status = "okay";
178};
179
180&sdmmc { 186&sdmmc {
181 bus-width = <4>; 187 bus-width = <4>;
182 cap-mmc-highspeed; 188 cap-mmc-highspeed;
@@ -191,6 +197,27 @@
191 vqmmc-supply = <&vccio_sd>; 197 vqmmc-supply = <&vccio_sd>;
192}; 198};
193 199
200&gmac {
201 phy-supply = <&vcc_phy>;
202 phy-mode = "rgmii";
203 clock_in_out = "input";
204 snps,reset-gpio = <&gpio4 7 0>;
205 snps,reset-active-low;
206 snps,reset-delays-us = <0 10000 1000000>;
207 assigned-clocks = <&cru SCLK_MAC>;
208 assigned-clock-parents = <&ext_gmac>;
209 pinctrl-names = "default";
210 pinctrl-0 = <&rgmii_pins>;
211 tx_delay = <0x30>;
212 rx_delay = <0x10>;
213 status = "ok";
214};
215
216&hdmi {
217 ddc-i2c-bus = <&i2c5>;
218 status = "okay";
219};
220
194&i2c0 { 221&i2c0 {
195 status = "okay"; 222 status = "okay";
196}; 223};
diff --git a/arch/arm/boot/dts/rk3288-r89.dts b/arch/arm/boot/dts/rk3288-r89.dts
index 14b9fc73c8a4..17f13c73fe5e 100644
--- a/arch/arm/boot/dts/rk3288-r89.dts
+++ b/arch/arm/boot/dts/rk3288-r89.dts
@@ -78,6 +78,13 @@
78 }; 78 };
79 }; 79 };
80 80
81 ir: ir-receiver {
82 compatible = "gpio-ir-receiver";
83 gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
84 pinctrl-names = "default";
85 pinctrl-0 = <&ir_int>;
86 };
87
81 vcc_host: vcc-host-regulator { 88 vcc_host: vcc-host-regulator {
82 compatible = "regulator-fixed"; 89 compatible = "regulator-fixed";
83 enable-active-high; 90 enable-active-high;
@@ -310,6 +317,12 @@
310 }; 317 };
311 }; 318 };
312 319
320 ir {
321 ir_int: ir-int {
322 rockchip,pins = <7 0 RK_FUNC_GPIO &pcfg_pull_up>;
323 };
324 };
325
313 pmic { 326 pmic {
314 pmic_int: pmic-int { 327 pmic_int: pmic-int {
315 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>; 328 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
diff --git a/arch/arm/boot/dts/rk3288-rock2-som.dtsi b/arch/arm/boot/dts/rk3288-rock2-som.dtsi
index 1813b7c36556..1ece66f3e162 100644
--- a/arch/arm/boot/dts/rk3288-rock2-som.dtsi
+++ b/arch/arm/boot/dts/rk3288-rock2-som.dtsi
@@ -109,6 +109,7 @@
109 act8846: act8846@5a { 109 act8846: act8846@5a {
110 compatible = "active-semi,act8846"; 110 compatible = "active-semi,act8846";
111 reg = <0x5a>; 111 reg = <0x5a>;
112 system-power-controller;
112 inl1-supply = <&vcc_io>; 113 inl1-supply = <&vcc_io>;
113 inl2-supply = <&vcc_sys>; 114 inl2-supply = <&vcc_sys>;
114 inl3-supply = <&vcc_20>; 115 inl3-supply = <&vcc_20>;
diff --git a/arch/arm/boot/dts/rk3288-rock2-square.dts b/arch/arm/boot/dts/rk3288-rock2-square.dts
index 8af35c867a80..c5453a0b07fc 100644
--- a/arch/arm/boot/dts/rk3288-rock2-square.dts
+++ b/arch/arm/boot/dts/rk3288-rock2-square.dts
@@ -49,6 +49,13 @@
49 stdout-path = "serial2:115200n8"; 49 stdout-path = "serial2:115200n8";
50 }; 50 };
51 51
52 ir: ir-receiver {
53 compatible = "gpio-ir-receiver";
54 gpios = <&gpio8 1 GPIO_ACTIVE_LOW>;
55 pinctrl-names = "default";
56 pinctrl-0 = <&ir_int>;
57 };
58
52 sound { 59 sound {
53 compatible = "simple-audio-card"; 60 compatible = "simple-audio-card";
54 simple-audio-card,name = "SPDIF"; 61 simple-audio-card,name = "SPDIF";
@@ -131,6 +138,12 @@
131}; 138};
132 139
133&pinctrl { 140&pinctrl {
141 ir {
142 ir_int: ir-int {
143 rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_up>;
144 };
145 };
146
134 pmic { 147 pmic {
135 pmic_int: pmic-int { 148 pmic_int: pmic-int {
136 rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_up>; 149 rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_up>;
diff --git a/arch/arm/boot/dts/rk3288-thermal.dtsi b/arch/arm/boot/dts/rk3288-thermal.dtsi
index 340406652186..651b962e3d53 100644
--- a/arch/arm/boot/dts/rk3288-thermal.dtsi
+++ b/arch/arm/boot/dts/rk3288-thermal.dtsi
@@ -52,7 +52,7 @@ reserve_thermal: reserve_thermal {
52}; 52};
53 53
54cpu_thermal: cpu_thermal { 54cpu_thermal: cpu_thermal {
55 polling-delay-passive = <1000>; /* milliseconds */ 55 polling-delay-passive = <100>; /* milliseconds */
56 polling-delay = <5000>; /* milliseconds */ 56 polling-delay = <5000>; /* milliseconds */
57 57
58 thermal-sensors = <&tsadc 1>; 58 thermal-sensors = <&tsadc 1>;
@@ -63,6 +63,11 @@ cpu_thermal: cpu_thermal {
63 hysteresis = <2000>; /* millicelsius */ 63 hysteresis = <2000>; /* millicelsius */
64 type = "passive"; 64 type = "passive";
65 }; 65 };
66 cpu_alert1: cpu_alert1 {
67 temperature = <75000>; /* millicelsius */
68 hysteresis = <2000>; /* millicelsius */
69 type = "passive";
70 };
66 cpu_crit: cpu_crit { 71 cpu_crit: cpu_crit {
67 temperature = <90000>; /* millicelsius */ 72 temperature = <90000>; /* millicelsius */
68 hysteresis = <2000>; /* millicelsius */ 73 hysteresis = <2000>; /* millicelsius */
@@ -74,13 +79,18 @@ cpu_thermal: cpu_thermal {
74 map0 { 79 map0 {
75 trip = <&cpu_alert0>; 80 trip = <&cpu_alert0>;
76 cooling-device = 81 cooling-device =
82 <&cpu0 THERMAL_NO_LIMIT 6>;
83 };
84 map1 {
85 trip = <&cpu_alert1>;
86 cooling-device =
77 <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 87 <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
78 }; 88 };
79 }; 89 };
80}; 90};
81 91
82gpu_thermal: gpu_thermal { 92gpu_thermal: gpu_thermal {
83 polling-delay-passive = <1000>; /* milliseconds */ 93 polling-delay-passive = <100>; /* milliseconds */
84 polling-delay = <5000>; /* milliseconds */ 94 polling-delay = <5000>; /* milliseconds */
85 95
86 thermal-sensors = <&tsadc 2>; 96 thermal-sensors = <&tsadc 2>;
diff --git a/arch/arm/boot/dts/rk3288-veyron-brain.dts b/arch/arm/boot/dts/rk3288-veyron-brain.dts
new file mode 100644
index 000000000000..cf5311d2617c
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-veyron-brain.dts
@@ -0,0 +1,139 @@
1/*
2 * Google Veyron Brain Rev 0 board device tree source
3 *
4 * Copyright 2014 Google, Inc
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/dts-v1/;
46#include "rk3288-veyron.dtsi"
47
48/ {
49 model = "Google Brain";
50 compatible = "google,veyron-brain-rev0", "google,veyron-brain",
51 "google,veyron", "rockchip,rk3288";
52
53 vcc33_sys: vcc33-sys {
54 vin-supply = <&vcc_5v>;
55 };
56
57 vcc33_io: vcc33_io {
58 compatible = "regulator-fixed";
59 regulator-name = "vcc33_io";
60 regulator-always-on;
61 regulator-boot-on;
62 vin-supply = <&vcc33_sys>;
63 /* This is gated by vcc_18 too */
64 };
65
66 /* This turns on vbus for host2 and otg (dwc2) */
67 vcc5_host2: vcc5-host2-regulator {
68 compatible = "regulator-fixed";
69 enable-active-high;
70 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
71 pinctrl-names = "default";
72 pinctrl-0 = <&usb2_pwr_en>;
73 regulator-name = "vcc5_host2";
74 regulator-always-on;
75 regulator-boot-on;
76 };
77};
78
79&pinctrl {
80 hdmi {
81 vcc50_hdmi_en: vcc50-hdmi-en {
82 rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_pull_none>;
83 };
84 };
85
86 pmic {
87 dvs_1: dvs-1 {
88 rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_down>;
89 };
90
91 dvs_2: dvs-2 {
92 rockchip,pins = <7 15 RK_FUNC_GPIO &pcfg_pull_down>;
93 };
94 };
95
96 usb-host {
97 usb2_pwr_en: usb2-pwr-en {
98 rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
99 };
100 };
101};
102
103&rk808 {
104 pinctrl-names = "default";
105 pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>;
106 dvs-gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>,
107 <&gpio7 15 GPIO_ACTIVE_HIGH>;
108
109 /delete-property/ vcc6-supply;
110
111 regulators {
112 /* vcc33_io is sourced directly from vcc33_sys */
113 /delete-node/ LDO_REG1;
114
115 /* This is not a pwren anymore, but the real power supply */
116 vdd10_lcd: LDO_REG7 {
117 regulator-always-on;
118 regulator-boot-on;
119 regulator-min-microvolt = <1000000>;
120 regulator-max-microvolt = <1000000>;
121 regulator-name = "vdd10_lcd";
122 regulator-suspend-mem-disabled;
123 };
124
125 vcc18_hdmi: SWITCH_REG2 {
126 regulator-always-on;
127 regulator-boot-on;
128 regulator-name = "vcc18_hdmi";
129 regulator-suspend-mem-disabled;
130 };
131 };
132};
133
134&vcc50_hdmi {
135 enable-active-high;
136 gpio = <&gpio7 2 GPIO_ACTIVE_HIGH>;
137 pinctrl-names = "default";
138 pinctrl-0 = <&vcc50_hdmi_en>;
139};
diff --git a/arch/arm/boot/dts/rk3288-veyron-mickey.dts b/arch/arm/boot/dts/rk3288-veyron-mickey.dts
new file mode 100644
index 000000000000..f36f6f459225
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-veyron-mickey.dts
@@ -0,0 +1,250 @@
1/*
2 * Google Veyron Mickey Rev 0 board device tree source
3 *
4 * Copyright 2015 Google, Inc
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/dts-v1/;
46#include "rk3288-veyron.dtsi"
47
48/ {
49 model = "Google Mickey";
50 compatible = "google,veyron-mickey-rev8", "google,veyron-mickey-rev7",
51 "google,veyron-mickey-rev6", "google,veyron-mickey-rev5",
52 "google,veyron-mickey-rev4", "google,veyron-mickey-rev3",
53 "google,veyron-mickey-rev2", "google,veyron-mickey-rev1",
54 "google,veyron-mickey-rev0", "google,veyron-mickey",
55 "google,veyron", "rockchip,rk3288";
56
57 vcc_5v: vcc-5v {
58 vin-supply = <&vcc33_sys>;
59 };
60
61 vcc33_io: vcc33_io {
62 compatible = "regulator-fixed";
63 regulator-name = "vcc33_io";
64 regulator-always-on;
65 regulator-boot-on;
66 vin-supply = <&vcc33_sys>;
67 };
68};
69
70&cpu_thermal {
71 /delete-node/ trips;
72 /delete-node/ cooling-maps;
73
74 trips {
75 cpu_alert_almost_warm: cpu_alert_almost_warm {
76 temperature = <63000>; /* millicelsius */
77 hysteresis = <2000>; /* millicelsius */
78 type = "passive";
79 };
80 cpu_alert_warm: cpu_alert_warm {
81 temperature = <65000>; /* millicelsius */
82 hysteresis = <2000>; /* millicelsius */
83 type = "passive";
84 };
85 cpu_alert_almost_hot: cpu_alert_almost_hot {
86 temperature = <80000>; /* millicelsius */
87 hysteresis = <2000>; /* millicelsius */
88 type = "passive";
89 };
90 cpu_alert_hot: cpu_alert_hot {
91 temperature = <82000>; /* millicelsius */
92 hysteresis = <2000>; /* millicelsius */
93 type = "passive";
94 };
95 cpu_alert_hotter: cpu_alert_hotter {
96 temperature = <84000>; /* millicelsius */
97 hysteresis = <2000>; /* millicelsius */
98 type = "passive";
99 };
100 cpu_alert_very_hot: cpu_alert_very_hot {
101 temperature = <85000>; /* millicelsius */
102 hysteresis = <2000>; /* millicelsius */
103 type = "passive";
104 };
105 cpu_crit: cpu_crit {
106 temperature = <90000>; /* millicelsius */
107 hysteresis = <2000>; /* millicelsius */
108 type = "critical";
109 };
110 };
111
112 cooling-maps {
113 /*
114 * After 1st level, throttle the CPU down to as low as 1.4 GHz
115 * and don't let the GPU go faster than 400 MHz. Note that we
116 * won't throttle the GPU lower than 400 MHz due to CPU
117 * heat--we'll let the GPU do the rest itself.
118 */
119 cpu_warm_limit_cpu {
120 trip = <&cpu_alert_warm>;
121 cooling-device =
122 <&cpu0 THERMAL_NO_LIMIT 4>;
123 };
124
125 /*
126 * Add some discrete steps to help throttling system deal
127 * with the fact that there are two passive cooling devices:
128 * the CPU and the GPU.
129 *
130 * - 1.2 GHz - 1.0 GHz (almost hot)
131 * - 800 MHz (hot)
132 * - 800 MHz - 696 MHz (hotter)
133 * - 696 MHz - min (very hot)
134 *
135 * Note:
136 * - 800 MHz appears to be a "sweet spot" for me. I can run
137 * some pretty serious workload here and be happy.
138 * - After 696 MHz we stop lowering voltage, so throttling
139 * past there is less effective.
140 */
141 cpu_almost_hot_limit_cpu {
142 trip = <&cpu_alert_almost_hot>;
143 cooling-device =
144 <&cpu0 5 6>;
145 };
146 cpu_hot_limit_cpu {
147 trip = <&cpu_alert_hot>;
148 cooling-device =
149 <&cpu0 7 7>;
150 };
151 cpu_hotter_limit_cpu {
152 trip = <&cpu_alert_hotter>;
153 cooling-device =
154 <&cpu0 7 8>;
155 };
156 cpu_very_hot_limit_cpu {
157 trip = <&cpu_alert_very_hot>;
158 cooling-device =
159 <&cpu0 8 THERMAL_NO_LIMIT>;
160 };
161 };
162};
163
164&emmc {
165 /delete-property/mmc-hs200-1_8v;
166};
167
168&i2c2 {
169 status = "disabled";
170};
171
172&i2c4 {
173 status = "disabled";
174};
175
176&i2s {
177 status = "okay";
178 clock-names = "i2s_hclk", "i2s_clk", "i2s_clk_out";
179 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>, <&cru SCLK_I2S0_OUT>;
180};
181
182&rk808 {
183 pinctrl-names = "default";
184 pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>;
185 dvs-gpios = <&gpio7 12 GPIO_ACTIVE_HIGH>,
186 <&gpio7 15 GPIO_ACTIVE_HIGH>;
187
188 /delete-property/ vcc6-supply;
189 /delete-property/ vcc12-supply;
190
191 vcc11-supply = <&vcc33_sys>;
192
193 regulators {
194 /* vcc33_io is sourced directly from vcc33_sys */
195 /delete-node/ LDO_REG1;
196 /delete-node/ LDO_REG7;
197
198 /* This is not a pwren anymore, but the real power supply */
199 vdd10_lcd: LDO_REG7 {
200 regulator-always-on;
201 regulator-boot-on;
202 regulator-min-microvolt = <1000000>;
203 regulator-max-microvolt = <1000000>;
204 regulator-name = "vdd10_lcd";
205 regulator-suspend-mem-disabled;
206 };
207
208 vcc18_lcd: LDO_REG8 {
209 regulator-always-on;
210 regulator-boot-on;
211 regulator-min-microvolt = <1800000>;
212 regulator-max-microvolt = <1800000>;
213 regulator-name = "vcc18_lcd";
214 regulator-suspend-mem-disabled;
215 };
216 };
217};
218
219&pinctrl {
220 hdmi {
221 power_hdmi_on: power-hdmi-on {
222 rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
223 };
224 };
225
226 pmic {
227 dvs_1: dvs-1 {
228 rockchip,pins = <7 12 RK_FUNC_GPIO &pcfg_pull_down>;
229 };
230
231 dvs_2: dvs-2 {
232 rockchip,pins = <7 15 RK_FUNC_GPIO &pcfg_pull_down>;
233 };
234 };
235};
236
237&usb_host0_ehci {
238 status = "disabled";
239};
240
241&usb_host1 {
242 status = "disabled";
243};
244
245&vcc50_hdmi {
246 enable-active-high;
247 gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
248 pinctrl-names = "default";
249 pinctrl-0 = <&power_hdmi_on>;
250};
diff --git a/arch/arm/boot/dts/rk3288-veyron-minnie.dts b/arch/arm/boot/dts/rk3288-veyron-minnie.dts
index 85f0373df498..699beb0a9481 100644
--- a/arch/arm/boot/dts/rk3288-veyron-minnie.dts
+++ b/arch/arm/boot/dts/rk3288-veyron-minnie.dts
@@ -121,6 +121,18 @@
121 clock-frequency = <400000>; 121 clock-frequency = <400000>;
122 i2c-scl-falling-time-ns = <50>; 122 i2c-scl-falling-time-ns = <50>;
123 i2c-scl-rising-time-ns = <300>; 123 i2c-scl-rising-time-ns = <300>;
124
125 touchscreen@10 {
126 compatible = "elan,ekth3500";
127 reg = <0x10>;
128 interrupt-parent = <&gpio2>;
129 interrupts = <14 IRQ_TYPE_EDGE_FALLING>;
130 pinctrl-names = "default";
131 pinctrl-0 = <&touch_int &touch_rst>;
132 reset-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
133 vcc33-supply = <&vcc33_touch>;
134 vccio-supply = <&vcc33_touch>;
135 };
124}; 136};
125 137
126&rk808 { 138&rk808 {
diff --git a/arch/arm/boot/dts/rk3288-veyron-speedy.dts b/arch/arm/boot/dts/rk3288-veyron-speedy.dts
index a7ea7d06cf7f..b34a7b5b3f62 100644
--- a/arch/arm/boot/dts/rk3288-veyron-speedy.dts
+++ b/arch/arm/boot/dts/rk3288-veyron-speedy.dts
@@ -88,6 +88,14 @@
88 }; 88 };
89}; 89};
90 90
91&cpu_alert0 {
92 temperature = <65000>;
93};
94
95&cpu_alert1 {
96 temperature = <70000>;
97};
98
91&rk808 { 99&rk808 {
92 pinctrl-names = "default"; 100 pinctrl-names = "default";
93 pinctrl-0 = <&pmic_int_l>; 101 pinctrl-0 = <&pmic_int_l>;
diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi b/arch/arm/boot/dts/rk3288-veyron.dtsi
index 5e61f07724d4..9fce91ffff6f 100644
--- a/arch/arm/boot/dts/rk3288-veyron.dtsi
+++ b/arch/arm/boot/dts/rk3288-veyron.dtsi
@@ -340,6 +340,11 @@
340 i2c-scl-rising-time-ns = <1000>; 340 i2c-scl-rising-time-ns = <1000>;
341}; 341};
342 342
343&power {
344 assigned-clocks = <&cru SCLK_EDP_24M>;
345 assigned-clock-parents = <&xin24m>;
346};
347
343&pwm1 { 348&pwm1 {
344 status = "okay"; 349 status = "okay";
345}; 350};
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index 04ea209f1737..8ac49f3efc17 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -53,6 +53,7 @@
53 interrupt-parent = <&gic>; 53 interrupt-parent = <&gic>;
54 54
55 aliases { 55 aliases {
56 ethernet0 = &gmac;
56 i2c0 = &i2c0; 57 i2c0 = &i2c0;
57 i2c1 = &i2c1; 58 i2c1 = &i2c1;
58 i2c2 = &i2c2; 59 i2c2 = &i2c2;
@@ -777,9 +778,23 @@
777 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>; 778 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
778 pinctrl-names = "default"; 779 pinctrl-names = "default";
779 pinctrl-0 = <&i2s0_bus>; 780 pinctrl-0 = <&i2s0_bus>;
781 rockchip,playback-channels = <8>;
782 rockchip,capture-channels = <2>;
780 status = "disabled"; 783 status = "disabled";
781 }; 784 };
782 785
786 crypto: cypto-controller@ff8a0000 {
787 compatible = "rockchip,rk3288-crypto";
788 reg = <0xff8a0000 0x4000>;
789 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
790 clocks = <&cru ACLK_CRYPTO>, <&cru HCLK_CRYPTO>,
791 <&cru SCLK_CRYPTO>, <&cru ACLK_DMAC1>;
792 clock-names = "aclk", "hclk", "sclk", "apb_pclk";
793 resets = <&cru SRST_CRYPTO>;
794 reset-names = "crypto-rst";
795 status = "okay";
796 };
797
783 vopb: vop@ff930000 { 798 vopb: vop@ff930000 {
784 compatible = "rockchip,rk3288-vop"; 799 compatible = "rockchip,rk3288-vop";
785 reg = <0xff930000 0x19c>; 800 reg = <0xff930000 0x19c>;
@@ -886,6 +901,19 @@
886 interrupts = <GIC_PPI 9 0xf04>; 901 interrupts = <GIC_PPI 9 0xf04>;
887 }; 902 };
888 903
904 efuse: efuse@ffb40000 {
905 compatible = "rockchip,rockchip-efuse";
906 reg = <0xffb40000 0x20>;
907 #address-cells = <1>;
908 #size-cells = <1>;
909 clocks = <&cru PCLK_EFUSE256>;
910 clock-names = "pclk_efuse";
911
912 cpu_leakage: cpu_leakage@17 {
913 reg = <0x17 0x1>;
914 };
915 };
916
889 usbphy: phy { 917 usbphy: phy {
890 compatible = "rockchip,rk3288-usb-phy"; 918 compatible = "rockchip,rk3288-usb-phy";
891 rockchip,grf = <&grf>; 919 rockchip,grf = <&grf>;
@@ -1144,7 +1172,7 @@
1144 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>; 1172 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>;
1145 }; 1173 };
1146 1174
1147 sdmmc_cd: sdmcc-cd { 1175 sdmmc_cd: sdmmc-cd {
1148 rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>; 1176 rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>;
1149 }; 1177 };
1150 1178
diff --git a/arch/arm/boot/dts/rk3xxx.dtsi b/arch/arm/boot/dts/rk3xxx.dtsi
index 4497d288a7cb..99eeea70223b 100644
--- a/arch/arm/boot/dts/rk3xxx.dtsi
+++ b/arch/arm/boot/dts/rk3xxx.dtsi
@@ -49,6 +49,7 @@
49 interrupt-parent = <&gic>; 49 interrupt-parent = <&gic>;
50 50
51 aliases { 51 aliases {
52 ethernet0 = &emac;
52 i2c0 = &i2c0; 53 i2c0 = &i2c0;
53 i2c1 = &i2c1; 54 i2c1 = &i2c1;
54 i2c2 = &i2c2; 55 i2c2 = &i2c2;
diff --git a/arch/arm/boot/dts/sama5d2.dtsi b/arch/arm/boot/dts/sama5d2.dtsi
index 4dfca8fc49b3..3f750f6170f2 100644
--- a/arch/arm/boot/dts/sama5d2.dtsi
+++ b/arch/arm/boot/dts/sama5d2.dtsi
@@ -637,6 +637,12 @@
637 atmel,clk-output-range = <0 83000000>; 637 atmel,clk-output-range = <0 83000000>;
638 }; 638 };
639 639
640 pdmic_clk: pdmic_clk {
641 #clock-cells = <0>;
642 reg = <48>;
643 atmel,clk-output-range = <0 83000000>;
644 };
645
640 i2s0_clk: i2s0_clk { 646 i2s0_clk: i2s0_clk {
641 #clock-cells = <0>; 647 #clock-cells = <0>;
642 reg = <54>; 648 reg = <54>;
@@ -763,6 +769,11 @@
763 atmel,clk-output-range = <0 83000000>; 769 atmel,clk-output-range = <0 83000000>;
764 }; 770 };
765 771
772 pdmic_gclk: pdmic_gclk {
773 #clock-cells = <0>;
774 reg = <48>;
775 };
776
766 i2s0_gclk: i2s0_gclk { 777 i2s0_gclk: i2s0_gclk {
767 #clock-cells = <0>; 778 #clock-cells = <0>;
768 reg = <54>; 779 reg = <54>;
@@ -852,6 +863,19 @@
852 clock-names = "t0_clk", "slow_clk"; 863 clock-names = "t0_clk", "slow_clk";
853 }; 864 };
854 865
866 pdmic: pdmic@f8018000 {
867 compatible = "atmel,sama5d2-pdmic";
868 reg = <0xf8018000 0x124>;
869 interrupts = <48 IRQ_TYPE_LEVEL_HIGH 7>;
870 dmas = <&dma0
871 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
872 | AT91_XDMAC_DT_PERID(50))>;
873 dma-names = "rx";
874 clocks = <&pdmic_clk>, <&pdmic_gclk>;
875 clock-names = "pclk", "gclk";
876 status = "disabled";
877 };
878
855 uart0: serial@f801c000 { 879 uart0: serial@f801c000 {
856 compatible = "atmel,at91sam9260-usart"; 880 compatible = "atmel,at91sam9260-usart";
857 reg = <0xf801c000 0x100>; 881 reg = <0xf801c000 0x100>;
@@ -929,6 +953,13 @@
929 clocks = <&h32ck>; 953 clocks = <&h32ck>;
930 }; 954 };
931 955
956 watchdog@f8048040 {
957 compatible = "atmel,sama5d4-wdt";
958 reg = <0xf8048040 0x10>;
959 interrupts = <4 IRQ_TYPE_LEVEL_HIGH 7>;
960 status = "disabled";
961 };
962
932 sckc@f8048050 { 963 sckc@f8048050 {
933 compatible = "atmel,at91sam9x5-sckc"; 964 compatible = "atmel,at91sam9x5-sckc";
934 reg = <0xf8048050 0x4>; 965 reg = <0xf8048050 0x4>;
diff --git a/arch/arm/boot/dts/sama5d4.dtsi b/arch/arm/boot/dts/sama5d4.dtsi
index 2193637b9cd2..b8032bca4621 100644
--- a/arch/arm/boot/dts/sama5d4.dtsi
+++ b/arch/arm/boot/dts/sama5d4.dtsi
@@ -451,7 +451,7 @@
451 interrupt-parent = <&pmc>; 451 interrupt-parent = <&pmc>;
452 interrupts = <AT91_PMC_MCKRDY>; 452 interrupts = <AT91_PMC_MCKRDY>;
453 clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>; 453 clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>;
454 atmel,clk-output-range = <125000000 177000000>; 454 atmel,clk-output-range = <125000000 200000000>;
455 atmel,clk-divisors = <1 2 4 3>; 455 atmel,clk-divisors = <1 2 4 3>;
456 }; 456 };
457 457
@@ -916,7 +916,7 @@
916 }; 916 };
917 917
918 i2c0: i2c@f8014000 { 918 i2c0: i2c@f8014000 {
919 compatible = "atmel,at91sam9x5-i2c"; 919 compatible = "atmel,sama5d4-i2c";
920 reg = <0xf8014000 0x4000>; 920 reg = <0xf8014000 0x4000>;
921 interrupts = <32 IRQ_TYPE_LEVEL_HIGH 6>; 921 interrupts = <32 IRQ_TYPE_LEVEL_HIGH 6>;
922 dmas = <&dma1 922 dmas = <&dma1
@@ -935,7 +935,7 @@
935 }; 935 };
936 936
937 i2c1: i2c@f8018000 { 937 i2c1: i2c@f8018000 {
938 compatible = "atmel,at91sam9x5-i2c"; 938 compatible = "atmel,sama5d4-i2c";
939 reg = <0xf8018000 0x4000>; 939 reg = <0xf8018000 0x4000>;
940 interrupts = <33 IRQ_TYPE_LEVEL_HIGH 6>; 940 interrupts = <33 IRQ_TYPE_LEVEL_HIGH 6>;
941 dmas = <&dma1 941 dmas = <&dma1
@@ -975,7 +975,7 @@
975 }; 975 };
976 976
977 i2c2: i2c@f8024000 { 977 i2c2: i2c@f8024000 {
978 compatible = "atmel,at91sam9x5-i2c"; 978 compatible = "atmel,sama5d4-i2c";
979 reg = <0xf8024000 0x4000>; 979 reg = <0xf8024000 0x4000>;
980 interrupts = <34 IRQ_TYPE_LEVEL_HIGH 6>; 980 interrupts = <34 IRQ_TYPE_LEVEL_HIGH 6>;
981 dmas = <&dma1 981 dmas = <&dma1
@@ -1669,15 +1669,23 @@
1669 pinctrl_mmc0_clk_cmd_dat0: mmc0_clk_cmd_dat0 { 1669 pinctrl_mmc0_clk_cmd_dat0: mmc0_clk_cmd_dat0 {
1670 atmel,pins = 1670 atmel,pins =
1671 <AT91_PIOC 4 AT91_PERIPH_B AT91_PINCTRL_NONE /* MCI0_CK, conflict with PCK1(ISI_MCK) */ 1671 <AT91_PIOC 4 AT91_PERIPH_B AT91_PINCTRL_NONE /* MCI0_CK, conflict with PCK1(ISI_MCK) */
1672 AT91_PIOC 5 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* MCI0_CDB, conflict with NAND_D0 */ 1672 AT91_PIOC 5 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* MCI0_CDA, conflict with NAND_D0 */
1673 AT91_PIOC 6 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* MCI0_DB0, conflict with NAND_D1 */ 1673 AT91_PIOC 6 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* MCI0_DA0, conflict with NAND_D1 */
1674 >; 1674 >;
1675 }; 1675 };
1676 pinctrl_mmc0_dat1_3: mmc0_dat1_3 { 1676 pinctrl_mmc0_dat1_3: mmc0_dat1_3 {
1677 atmel,pins = 1677 atmel,pins =
1678 <AT91_PIOC 7 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* MCI0_DB1, conflict with NAND_D2 */ 1678 <AT91_PIOC 7 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* MCI0_DA1, conflict with NAND_D2 */
1679 AT91_PIOC 8 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* MCI0_DB2, conflict with NAND_D3 */ 1679 AT91_PIOC 8 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* MCI0_DA2, conflict with NAND_D3 */
1680 AT91_PIOC 9 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* MCI0_DB3, conflict with NAND_D4 */ 1680 AT91_PIOC 9 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* MCI0_DA3, conflict with NAND_D4 */
1681 >;
1682 };
1683 pinctrl_mmc0_dat4_7: mmc0_dat4_7 {
1684 atmel,pins =
1685 <AT91_PIOC 10 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* MCI0_DA4, conflict with NAND_D5 */
1686 AT91_PIOC 11 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* MCI0_DA5, conflict with NAND_D6 */
1687 AT91_PIOC 12 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* MCI0_DA6, conflict with NAND_D7 */
1688 AT91_PIOC 13 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* MCI0_DA7, conflict with NAND_OE */
1681 >; 1689 >;
1682 }; 1690 };
1683 }; 1691 };
diff --git a/arch/arm/boot/dts/sh73a0-kzm9g.dts b/arch/arm/boot/dts/sh73a0-kzm9g.dts
index 7fc5602810ad..aa8bae3b8fcf 100644
--- a/arch/arm/boot/dts/sh73a0-kzm9g.dts
+++ b/arch/arm/boot/dts/sh73a0-kzm9g.dts
@@ -147,7 +147,7 @@
147 gpios = <&pcf8575 14 GPIO_ACTIVE_LOW>; 147 gpios = <&pcf8575 14 GPIO_ACTIVE_LOW>;
148 linux,code = <KEY_HOME>; 148 linux,code = <KEY_HOME>;
149 label = "SW1"; 149 label = "SW1";
150 gpio-key,wakeup; 150 wakeup-source;
151 }; 151 };
152 }; 152 };
153 153
diff --git a/arch/arm/boot/dts/sh73a0.dtsi b/arch/arm/boot/dts/sh73a0.dtsi
index ff7c8f298f30..3a6056f9f0d2 100644
--- a/arch/arm/boot/dts/sh73a0.dtsi
+++ b/arch/arm/boot/dts/sh73a0.dtsi
@@ -28,6 +28,7 @@
28 reg = <0>; 28 reg = <0>;
29 clock-frequency = <1196000000>; 29 clock-frequency = <1196000000>;
30 power-domains = <&pd_a2sl>; 30 power-domains = <&pd_a2sl>;
31 next-level-cache = <&L2>;
31 }; 32 };
32 cpu@1 { 33 cpu@1 {
33 device_type = "cpu"; 34 device_type = "cpu";
@@ -35,6 +36,7 @@
35 reg = <1>; 36 reg = <1>;
36 clock-frequency = <1196000000>; 37 clock-frequency = <1196000000>;
37 power-domains = <&pd_a2sl>; 38 power-domains = <&pd_a2sl>;
39 next-level-cache = <&L2>;
38 }; 40 };
39 }; 41 };
40 42
@@ -53,6 +55,18 @@
53 <0xf0000100 0x100>; 55 <0xf0000100 0x100>;
54 }; 56 };
55 57
58 L2: cache-controller {
59 compatible = "arm,pl310-cache";
60 reg = <0xf0100000 0x1000>;
61 interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
62 power-domains = <&pd_a3sm>;
63 arm,data-latency = <3 3 3>;
64 arm,tag-latency = <2 2 2>;
65 arm,shared-override;
66 cache-unified;
67 cache-level = <2>;
68 };
69
56 sbsc2: memory-controller@fb400000 { 70 sbsc2: memory-controller@fb400000 {
57 compatible = "renesas,sbsc-sh73a0"; 71 compatible = "renesas,sbsc-sh73a0";
58 reg = <0xfb400000 0x400>; 72 reg = <0xfb400000 0x400>;
@@ -259,6 +273,50 @@
259 status = "disabled"; 273 status = "disabled";
260 }; 274 };
261 275
276 msiof0: spi@e6e20000 {
277 compatible = "renesas,msiof-sh73a0", "renesas,sh-mobile-msiof";
278 reg = <0xe6e20000 0x0064>;
279 interrupts = <0 142 IRQ_TYPE_LEVEL_HIGH>;
280 clocks = <&mstp0_clks SH73A0_CLK_MSIOF0>;
281 power-domains = <&pd_a3sp>;
282 #address-cells = <1>;
283 #size-cells = <0>;
284 status = "disabled";
285 };
286
287 msiof1: spi@e6e10000 {
288 compatible = "renesas,msiof-sh73a0", "renesas,sh-mobile-msiof";
289 reg = <0xe6e10000 0x0064>;
290 interrupts = <0 77 IRQ_TYPE_LEVEL_HIGH>;
291 clocks = <&mstp2_clks SH73A0_CLK_MSIOF1>;
292 power-domains = <&pd_a3sp>;
293 #address-cells = <1>;
294 #size-cells = <0>;
295 status = "disabled";
296 };
297
298 msiof2: spi@e6e00000 {
299 compatible = "renesas,msiof-sh73a0", "renesas,sh-mobile-msiof";
300 reg = <0xe6e00000 0x0064>;
301 interrupts = <0 76 IRQ_TYPE_LEVEL_HIGH>;
302 clocks = <&mstp2_clks SH73A0_CLK_MSIOF2>;
303 power-domains = <&pd_a3sp>;
304 #address-cells = <1>;
305 #size-cells = <0>;
306 status = "disabled";
307 };
308
309 msiof3: spi@e6c90000 {
310 compatible = "renesas,msiof-sh73a0", "renesas,sh-mobile-msiof";
311 reg = <0xe6c90000 0x0064>;
312 interrupts = <0 59 IRQ_TYPE_LEVEL_HIGH>;
313 clocks = <&mstp2_clks SH73A0_CLK_MSIOF3>;
314 power-domains = <&pd_a3sp>;
315 #address-cells = <1>;
316 #size-cells = <0>;
317 status = "disabled";
318 };
319
262 sdhi0: sd@ee100000 { 320 sdhi0: sd@ee100000 {
263 compatible = "renesas,sdhi-sh73a0"; 321 compatible = "renesas,sdhi-sh73a0";
264 reg = <0xee100000 0x100>; 322 reg = <0xee100000 0x100>;
@@ -798,13 +856,13 @@
798 mstp0_clks: mstp0_clks@e6150130 { 856 mstp0_clks: mstp0_clks@e6150130 {
799 compatible = "renesas,sh73a0-mstp-clocks", "renesas,cpg-mstp-clocks"; 857 compatible = "renesas,sh73a0-mstp-clocks", "renesas,cpg-mstp-clocks";
800 reg = <0xe6150130 4>, <0xe6150030 4>; 858 reg = <0xe6150130 4>, <0xe6150030 4>;
801 clocks = <&cpg_clocks SH73A0_CLK_HP>; 859 clocks = <&cpg_clocks SH73A0_CLK_HP>, <&sub_clk>;
802 #clock-cells = <1>; 860 #clock-cells = <1>;
803 clock-indices = < 861 clock-indices = <
804 SH73A0_CLK_IIC2 862 SH73A0_CLK_IIC2 SH73A0_CLK_MSIOF0
805 >; 863 >;
806 clock-output-names = 864 clock-output-names =
807 "iic2"; 865 "iic2", "msiof0";
808 }; 866 };
809 mstp1_clks: mstp1_clks@e6150134 { 867 mstp1_clks: mstp1_clks@e6150134 {
810 compatible = "renesas,sh73a0-mstp-clocks", "renesas,cpg-mstp-clocks"; 868 compatible = "renesas,sh73a0-mstp-clocks", "renesas,cpg-mstp-clocks";
@@ -834,20 +892,24 @@
834 reg = <0xe6150138 4>, <0xe6150040 4>; 892 reg = <0xe6150138 4>, <0xe6150040 4>;
835 clocks = <&sub_clk>, <&cpg_clocks SH73A0_CLK_HP>, 893 clocks = <&sub_clk>, <&cpg_clocks SH73A0_CLK_HP>,
836 <&cpg_clocks SH73A0_CLK_HP>, <&sub_clk>, 894 <&cpg_clocks SH73A0_CLK_HP>, <&sub_clk>,
837 <&sub_clk>, <&sub_clk>, <&sub_clk>, <&sub_clk>, 895 <&sub_clk>, <&sub_clk>, <&sub_clk>,
838 <&sub_clk>, <&sub_clk>; 896 <&sub_clk>, <&sub_clk>, <&sub_clk>,
897 <&sub_clk>, <&sub_clk>, <&sub_clk>;
839 #clock-cells = <1>; 898 #clock-cells = <1>;
840 clock-indices = < 899 clock-indices = <
841 SH73A0_CLK_SCIFA7 SH73A0_CLK_SY_DMAC 900 SH73A0_CLK_SCIFA7 SH73A0_CLK_SY_DMAC
842 SH73A0_CLK_MP_DMAC SH73A0_CLK_SCIFA5 901 SH73A0_CLK_MP_DMAC SH73A0_CLK_MSIOF3
843 SH73A0_CLK_SCIFB SH73A0_CLK_SCIFA0 902 SH73A0_CLK_MSIOF1 SH73A0_CLK_SCIFA5
844 SH73A0_CLK_SCIFA1 SH73A0_CLK_SCIFA2 903 SH73A0_CLK_SCIFB SH73A0_CLK_MSIOF2
845 SH73A0_CLK_SCIFA3 SH73A0_CLK_SCIFA4 904 SH73A0_CLK_SCIFA0 SH73A0_CLK_SCIFA1
905 SH73A0_CLK_SCIFA2 SH73A0_CLK_SCIFA3
906 SH73A0_CLK_SCIFA4
846 >; 907 >;
847 clock-output-names = 908 clock-output-names =
848 "scifa7", "sy_dmac", "mp_dmac", "scifa5", 909 "scifa7", "sy_dmac", "mp_dmac", "msiof3",
849 "scifb", "scifa0", "scifa1", "scifa2", 910 "msiof1", "scifa5", "scifb", "msiof2",
850 "scifa3", "scifa4"; 911 "scifa0", "scifa1", "scifa2", "scifa3",
912 "scifa4";
851 }; 913 };
852 mstp3_clks: mstp3_clks@e615013c { 914 mstp3_clks: mstp3_clks@e615013c {
853 compatible = "renesas,sh73a0-mstp-clocks", "renesas,cpg-mstp-clocks"; 915 compatible = "renesas,sh73a0-mstp-clocks", "renesas,cpg-mstp-clocks";
diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfpga.dtsi
index 39c470e291f9..3ed4abdaaa9c 100644
--- a/arch/arm/boot/dts/socfpga.dtsi
+++ b/arch/arm/boot/dts/socfpga.dtsi
@@ -677,6 +677,7 @@
677 #size-cells = <0>; 677 #size-cells = <0>;
678 clocks = <&l4_mp_clk>, <&sdmmc_clk_divided>; 678 clocks = <&l4_mp_clk>, <&sdmmc_clk_divided>;
679 clock-names = "biu", "ciu"; 679 clock-names = "biu", "ciu";
680 status = "disabled";
680 }; 681 };
681 682
682 ocram: sram@ffff0000 { 683 ocram: sram@ffff0000 {
diff --git a/arch/arm/boot/dts/socfpga_arria5_socdk.dts b/arch/arm/boot/dts/socfpga_arria5_socdk.dts
index a75a666032b2..3c8867862b0d 100644
--- a/arch/arm/boot/dts/socfpga_arria5_socdk.dts
+++ b/arch/arm/boot/dts/socfpga_arria5_socdk.dts
@@ -79,6 +79,7 @@
79&mmc0 { 79&mmc0 {
80 vmmc-supply = <&regulator_3_3v>; 80 vmmc-supply = <&regulator_3_3v>;
81 vqmmc-supply = <&regulator_3_3v>; 81 vqmmc-supply = <&regulator_3_3v>;
82 status = "okay";
82}; 83};
83 84
84&usb1 { 85&usb1 {
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts b/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts
index 555e9caf21e1..afea3645ada4 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts
@@ -100,6 +100,7 @@
100&mmc0 { 100&mmc0 {
101 vmmc-supply = <&regulator_3_3v>; 101 vmmc-supply = <&regulator_3_3v>;
102 vqmmc-supply = <&regulator_3_3v>; 102 vqmmc-supply = <&regulator_3_3v>;
103 status = "okay";
103}; 104};
104 105
105&uart0 { 106&uart0 {
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi b/arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi
new file mode 100644
index 000000000000..f86f9c060d7a
--- /dev/null
+++ b/arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi
@@ -0,0 +1,34 @@
1/*
2 * Copyright (C) 2015 Marek Vasut <marex@denx.de>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "socfpga_cyclone5.dtsi"
19
20/ {
21 model = "DENX MCV";
22 compatible = "altr,socfpga-cyclone5", "altr,socfpga";
23
24 memory {
25 name = "memory";
26 device_type = "memory";
27 reg = <0x0 0x40000000>; /* 1 GiB */
28 };
29};
30
31&mmc0 { /* On-SoM eMMC */
32 bus-width = <8>;
33 status = "okay";
34};
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_mcvevk.dts b/arch/arm/boot/dts/socfpga_cyclone5_mcvevk.dts
new file mode 100644
index 000000000000..7186a29b8b86
--- /dev/null
+++ b/arch/arm/boot/dts/socfpga_cyclone5_mcvevk.dts
@@ -0,0 +1,94 @@
1/*
2 * Copyright (C) 2015 Marek Vasut <marex@denx.de>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "socfpga_cyclone5_mcv.dtsi"
19
20/ {
21 model = "DENX MCV EVK";
22 compatible = "altr,socfpga-cyclone5", "altr,socfpga";
23
24 aliases {
25 ethernet0 = &gmac0;
26 stmpe-i2c0 = &stmpe1;
27 };
28
29 chosen {
30 stdout-path = "serial0:115200n8";
31 };
32};
33
34&can0 {
35 status = "okay";
36};
37
38&can1 {
39 status = "okay";
40};
41
42&gmac0 {
43 phy-mode = "rgmii";
44 status = "okay";
45};
46
47&gpio0 { /* GPIO 0 ... 28 */
48 status = "okay";
49};
50
51&gpio1 { /* GPIO 29 ... 57 */
52 status = "okay";
53};
54
55&gpio2 { /* GPIO 58..66 (HLGPI 0..13 at offset 13) */
56 status = "okay";
57};
58
59&i2c0 {
60 status = "okay";
61 speed-mode = <0>;
62
63 stmpe1: stmpe811@41 {
64 compatible = "st,stmpe811";
65 #address-cells = <1>;
66 #size-cells = <0>;
67 reg = <0x41>;
68 id = <0>;
69 blocks = <0x5>;
70 irq-gpio = <&portb 28 0x4>; /* GPIO 57, trig. level HI */
71
72 stmpe_touchscreen {
73 compatible = "st,stmpe-ts";
74 reg = <0>;
75 ts,sample-time = <4>;
76 ts,mod-12b = <1>;
77 ts,ref-sel = <0>;
78 ts,adc-freq = <1>;
79 ts,ave-ctrl = <1>;
80 ts,touch-det-delay = <3>;
81 ts,settling = <4>;
82 ts,fraction-z = <7>;
83 ts,i-drive = <1>;
84 };
85 };
86};
87
88&uart0 {
89 status = "okay";
90};
91
92&usb1 {
93 status = "okay";
94};
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
index d4d0a28fb331..15e43f43f244 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
@@ -84,6 +84,7 @@
84 cd-gpios = <&portb 18 0>; 84 cd-gpios = <&portb 18 0>;
85 vmmc-supply = <&regulator_3_3v>; 85 vmmc-supply = <&regulator_3_3v>;
86 vqmmc-supply = <&regulator_3_3v>; 86 vqmmc-supply = <&regulator_3_3v>;
87 status = "okay";
87}; 88};
88 89
89&usb1 { 90&usb1 {
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts b/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
index 48bf651bd762..b61f22f9ac9f 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
@@ -80,6 +80,7 @@
80&mmc0 { 80&mmc0 {
81 vmmc-supply = <&regulator_3_3v>; 81 vmmc-supply = <&regulator_3_3v>;
82 vqmmc-supply = <&regulator_3_3v>; 82 vqmmc-supply = <&regulator_3_3v>;
83 status = "okay";
83}; 84};
84 85
85&usb1 { 86&usb1 {
diff --git a/arch/arm/boot/dts/ste-dbx5x0.dtsi b/arch/arm/boot/dts/ste-dbx5x0.dtsi
index 50f5e9d09203..341f5b7ed242 100644
--- a/arch/arm/boot/dts/ste-dbx5x0.dtsi
+++ b/arch/arm/boot/dts/ste-dbx5x0.dtsi
@@ -512,63 +512,51 @@
512 512
513 // DB8500_REGULATOR_VAPE 513 // DB8500_REGULATOR_VAPE
514 db8500_vape_reg: db8500_vape { 514 db8500_vape_reg: db8500_vape {
515 regulator-compatible = "db8500_vape";
516 regulator-always-on; 515 regulator-always-on;
517 }; 516 };
518 517
519 // DB8500_REGULATOR_VARM 518 // DB8500_REGULATOR_VARM
520 db8500_varm_reg: db8500_varm { 519 db8500_varm_reg: db8500_varm {
521 regulator-compatible = "db8500_varm";
522 }; 520 };
523 521
524 // DB8500_REGULATOR_VMODEM 522 // DB8500_REGULATOR_VMODEM
525 db8500_vmodem_reg: db8500_vmodem { 523 db8500_vmodem_reg: db8500_vmodem {
526 regulator-compatible = "db8500_vmodem";
527 }; 524 };
528 525
529 // DB8500_REGULATOR_VPLL 526 // DB8500_REGULATOR_VPLL
530 db8500_vpll_reg: db8500_vpll { 527 db8500_vpll_reg: db8500_vpll {
531 regulator-compatible = "db8500_vpll";
532 }; 528 };
533 529
534 // DB8500_REGULATOR_VSMPS1 530 // DB8500_REGULATOR_VSMPS1
535 db8500_vsmps1_reg: db8500_vsmps1 { 531 db8500_vsmps1_reg: db8500_vsmps1 {
536 regulator-compatible = "db8500_vsmps1";
537 }; 532 };
538 533
539 // DB8500_REGULATOR_VSMPS2 534 // DB8500_REGULATOR_VSMPS2
540 db8500_vsmps2_reg: db8500_vsmps2 { 535 db8500_vsmps2_reg: db8500_vsmps2 {
541 regulator-compatible = "db8500_vsmps2";
542 }; 536 };
543 537
544 // DB8500_REGULATOR_VSMPS3 538 // DB8500_REGULATOR_VSMPS3
545 db8500_vsmps3_reg: db8500_vsmps3 { 539 db8500_vsmps3_reg: db8500_vsmps3 {
546 regulator-compatible = "db8500_vsmps3";
547 }; 540 };
548 541
549 // DB8500_REGULATOR_VRF1 542 // DB8500_REGULATOR_VRF1
550 db8500_vrf1_reg: db8500_vrf1 { 543 db8500_vrf1_reg: db8500_vrf1 {
551 regulator-compatible = "db8500_vrf1";
552 }; 544 };
553 545
554 // DB8500_REGULATOR_SWITCH_SVAMMDSP 546 // DB8500_REGULATOR_SWITCH_SVAMMDSP
555 db8500_sva_mmdsp_reg: db8500_sva_mmdsp { 547 db8500_sva_mmdsp_reg: db8500_sva_mmdsp {
556 regulator-compatible = "db8500_sva_mmdsp";
557 }; 548 };
558 549
559 // DB8500_REGULATOR_SWITCH_SVAMMDSPRET 550 // DB8500_REGULATOR_SWITCH_SVAMMDSPRET
560 db8500_sva_mmdsp_ret_reg: db8500_sva_mmdsp_ret { 551 db8500_sva_mmdsp_ret_reg: db8500_sva_mmdsp_ret {
561 regulator-compatible = "db8500_sva_mmdsp_ret";
562 }; 552 };
563 553
564 // DB8500_REGULATOR_SWITCH_SVAPIPE 554 // DB8500_REGULATOR_SWITCH_SVAPIPE
565 db8500_sva_pipe_reg: db8500_sva_pipe { 555 db8500_sva_pipe_reg: db8500_sva_pipe {
566 regulator-compatible = "db8500_sva_pipe";
567 }; 556 };
568 557
569 // DB8500_REGULATOR_SWITCH_SIAMMDSP 558 // DB8500_REGULATOR_SWITCH_SIAMMDSP
570 db8500_sia_mmdsp_reg: db8500_sia_mmdsp { 559 db8500_sia_mmdsp_reg: db8500_sia_mmdsp {
571 regulator-compatible = "db8500_sia_mmdsp";
572 }; 560 };
573 561
574 // DB8500_REGULATOR_SWITCH_SIAMMDSPRET 562 // DB8500_REGULATOR_SWITCH_SIAMMDSPRET
@@ -577,39 +565,32 @@
577 565
578 // DB8500_REGULATOR_SWITCH_SIAPIPE 566 // DB8500_REGULATOR_SWITCH_SIAPIPE
579 db8500_sia_pipe_reg: db8500_sia_pipe { 567 db8500_sia_pipe_reg: db8500_sia_pipe {
580 regulator-compatible = "db8500_sia_pipe";
581 }; 568 };
582 569
583 // DB8500_REGULATOR_SWITCH_SGA 570 // DB8500_REGULATOR_SWITCH_SGA
584 db8500_sga_reg: db8500_sga { 571 db8500_sga_reg: db8500_sga {
585 regulator-compatible = "db8500_sga";
586 vin-supply = <&db8500_vape_reg>; 572 vin-supply = <&db8500_vape_reg>;
587 }; 573 };
588 574
589 // DB8500_REGULATOR_SWITCH_B2R2_MCDE 575 // DB8500_REGULATOR_SWITCH_B2R2_MCDE
590 db8500_b2r2_mcde_reg: db8500_b2r2_mcde { 576 db8500_b2r2_mcde_reg: db8500_b2r2_mcde {
591 regulator-compatible = "db8500_b2r2_mcde";
592 vin-supply = <&db8500_vape_reg>; 577 vin-supply = <&db8500_vape_reg>;
593 }; 578 };
594 579
595 // DB8500_REGULATOR_SWITCH_ESRAM12 580 // DB8500_REGULATOR_SWITCH_ESRAM12
596 db8500_esram12_reg: db8500_esram12 { 581 db8500_esram12_reg: db8500_esram12 {
597 regulator-compatible = "db8500_esram12";
598 }; 582 };
599 583
600 // DB8500_REGULATOR_SWITCH_ESRAM12RET 584 // DB8500_REGULATOR_SWITCH_ESRAM12RET
601 db8500_esram12_ret_reg: db8500_esram12_ret { 585 db8500_esram12_ret_reg: db8500_esram12_ret {
602 regulator-compatible = "db8500_esram12_ret";
603 }; 586 };
604 587
605 // DB8500_REGULATOR_SWITCH_ESRAM34 588 // DB8500_REGULATOR_SWITCH_ESRAM34
606 db8500_esram34_reg: db8500_esram34 { 589 db8500_esram34_reg: db8500_esram34 {
607 regulator-compatible = "db8500_esram34";
608 }; 590 };
609 591
610 // DB8500_REGULATOR_SWITCH_ESRAM34RET 592 // DB8500_REGULATOR_SWITCH_ESRAM34RET
611 db8500_esram34_ret_reg: db8500_esram34_ret { 593 db8500_esram34_ret_reg: db8500_esram34_ret {
612 regulator-compatible = "db8500_esram34_ret";
613 }; 594 };
614 }; 595 };
615 596
@@ -721,7 +702,6 @@
721 compatible = "stericsson,ab8500-ext-regulator"; 702 compatible = "stericsson,ab8500-ext-regulator";
722 703
723 ab8500_ext1_reg: ab8500_ext1 { 704 ab8500_ext1_reg: ab8500_ext1 {
724 regulator-compatible = "ab8500_ext1";
725 regulator-min-microvolt = <1800000>; 705 regulator-min-microvolt = <1800000>;
726 regulator-max-microvolt = <1800000>; 706 regulator-max-microvolt = <1800000>;
727 regulator-boot-on; 707 regulator-boot-on;
@@ -729,7 +709,6 @@
729 }; 709 };
730 710
731 ab8500_ext2_reg: ab8500_ext2 { 711 ab8500_ext2_reg: ab8500_ext2 {
732 regulator-compatible = "ab8500_ext2";
733 regulator-min-microvolt = <1360000>; 712 regulator-min-microvolt = <1360000>;
734 regulator-max-microvolt = <1360000>; 713 regulator-max-microvolt = <1360000>;
735 regulator-boot-on; 714 regulator-boot-on;
@@ -737,7 +716,6 @@
737 }; 716 };
738 717
739 ab8500_ext3_reg: ab8500_ext3 { 718 ab8500_ext3_reg: ab8500_ext3 {
740 regulator-compatible = "ab8500_ext3";
741 regulator-min-microvolt = <3400000>; 719 regulator-min-microvolt = <3400000>;
742 regulator-max-microvolt = <3400000>; 720 regulator-max-microvolt = <3400000>;
743 regulator-boot-on; 721 regulator-boot-on;
@@ -750,7 +728,6 @@
750 728
751 // supplies to the display/camera 729 // supplies to the display/camera
752 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 { 730 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
753 regulator-compatible = "ab8500_ldo_aux1";
754 regulator-min-microvolt = <2500000>; 731 regulator-min-microvolt = <2500000>;
755 regulator-max-microvolt = <2900000>; 732 regulator-max-microvolt = <2900000>;
756 regulator-boot-on; 733 regulator-boot-on;
@@ -760,56 +737,46 @@
760 737
761 // supplies to the on-board eMMC 738 // supplies to the on-board eMMC
762 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 { 739 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
763 regulator-compatible = "ab8500_ldo_aux2";
764 regulator-min-microvolt = <1100000>; 740 regulator-min-microvolt = <1100000>;
765 regulator-max-microvolt = <3300000>; 741 regulator-max-microvolt = <3300000>;
766 }; 742 };
767 743
768 // supply for VAUX3; SDcard slots 744 // supply for VAUX3; SDcard slots
769 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 { 745 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
770 regulator-compatible = "ab8500_ldo_aux3";
771 regulator-min-microvolt = <1100000>; 746 regulator-min-microvolt = <1100000>;
772 regulator-max-microvolt = <3300000>; 747 regulator-max-microvolt = <3300000>;
773 }; 748 };
774 749
775 // supply for v-intcore12; VINTCORE12 LDO 750 // supply for v-intcore12; VINTCORE12 LDO
776 ab8500_ldo_intcore_reg: ab8500_ldo_intcore { 751 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
777 regulator-compatible = "ab8500_ldo_intcore";
778 }; 752 };
779 753
780 // supply for tvout; gpadc; TVOUT LDO 754 // supply for tvout; gpadc; TVOUT LDO
781 ab8500_ldo_tvout_reg: ab8500_ldo_tvout { 755 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
782 regulator-compatible = "ab8500_ldo_tvout";
783 }; 756 };
784 757
785 // supply for ab8500-usb; USB LDO 758 // supply for ab8500-usb; USB LDO
786 ab8500_ldo_usb_reg: ab8500_ldo_usb { 759 ab8500_ldo_usb_reg: ab8500_ldo_usb {
787 regulator-compatible = "ab8500_ldo_usb";
788 }; 760 };
789 761
790 // supply for ab8500-vaudio; VAUDIO LDO 762 // supply for ab8500-vaudio; VAUDIO LDO
791 ab8500_ldo_audio_reg: ab8500_ldo_audio { 763 ab8500_ldo_audio_reg: ab8500_ldo_audio {
792 regulator-compatible = "ab8500_ldo_audio";
793 }; 764 };
794 765
795 // supply for v-anamic1 VAMIC1 LDO 766 // supply for v-anamic1 VAMIC1 LDO
796 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 { 767 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
797 regulator-compatible = "ab8500_ldo_anamic1";
798 }; 768 };
799 769
800 // supply for v-amic2; VAMIC2 LDO; reuse constants for AMIC1 770 // supply for v-amic2; VAMIC2 LDO; reuse constants for AMIC1
801 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 { 771 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
802 regulator-compatible = "ab8500_ldo_anamic2";
803 }; 772 };
804 773
805 // supply for v-dmic; VDMIC LDO 774 // supply for v-dmic; VDMIC LDO
806 ab8500_ldo_dmic_reg: ab8500_ldo_dmic { 775 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
807 regulator-compatible = "ab8500_ldo_dmic";
808 }; 776 };
809 777
810 // supply for U8500 CSI/DSI; VANA LDO 778 // supply for U8500 CSI/DSI; VANA LDO
811 ab8500_ldo_ana_reg: ab8500_ldo_ana { 779 ab8500_ldo_ana_reg: ab8500_ldo_ana {
812 regulator-compatible = "ab8500_ldo_ana";
813 }; 780 };
814 }; 781 };
815 }; 782 };
diff --git a/arch/arm/boot/dts/ste-href-stuib.dtsi b/arch/arm/boot/dts/ste-href-stuib.dtsi
index 78b75256c638..c3987ad06d79 100644
--- a/arch/arm/boot/dts/ste-href-stuib.dtsi
+++ b/arch/arm/boot/dts/ste-href-stuib.dtsi
@@ -114,6 +114,8 @@
114 rohm,touch-max-x = <384>; 114 rohm,touch-max-x = <384>;
115 rohm,touch-max-y = <704>; 115 rohm,touch-max-y = <704>;
116 rohm,flip-y; 116 rohm,flip-y;
117 pinctrl-names = "default";
118 pinctrl-0 = <&touch_rohm_mode>;
117 }; 119 };
118 120
119 bu21013_tp@5d { 121 bu21013_tp@5d {
@@ -124,6 +126,8 @@
124 rohm,touch-max-x = <384>; 126 rohm,touch-max-x = <384>;
125 rohm,touch-max-y = <704>; 127 rohm,touch-max-y = <704>;
126 rohm,flip-y; 128 rohm,flip-y;
129 pinctrl-names = "default";
130 pinctrl-0 = <&touch_rohm_mode>;
127 }; 131 };
128 }; 132 };
129 133
@@ -166,6 +170,25 @@
166 }; 170 };
167 }; 171 };
168 }; 172 };
173 touch {
174 touch_rohm_mode: touch_rohm {
175 /*
176 * ROHM touch screen uses GPIO 143 for
177 * RST1, GPIO 146 for RST2 and
178 * GPIO 67 for interrupts. Pull-up
179 * the IRQ line and drive both
180 * reset signals low.
181 */
182 stuib_cfg1 {
183 pins = "GPIO143_D12", "GPIO146_D13";
184 ste,config = <&gpio_out_lo>;
185 };
186 stuib_cfg2 {
187 pins = "GPIO67_G2";
188 ste,config = <&gpio_in_pu>;
189 };
190 };
191 };
169 }; 192 };
170 }; 193 };
171}; 194};
diff --git a/arch/arm/boot/dts/ste-href-tvk1281618.dtsi b/arch/arm/boot/dts/ste-href-tvk1281618.dtsi
index 0e1c96943d47..b7b4211c5353 100644
--- a/arch/arm/boot/dts/ste-href-tvk1281618.dtsi
+++ b/arch/arm/boot/dts/ste-href-tvk1281618.dtsi
@@ -66,7 +66,7 @@
66 keypad,num-columns = <8>; 66 keypad,num-columns = <8>;
67 keypad,num-rows = <8>; 67 keypad,num-rows = <8>;
68 linux,no-autorepeat; 68 linux,no-autorepeat;
69 linux,wakeup; 69 wakeup-source;
70 linux,keymap = <0x0301006b 70 linux,keymap = <0x0301006b
71 0x04010066 71 0x04010066
72 0x06040072 72 0x06040072
@@ -104,13 +104,40 @@
104 <19 IRQ_TYPE_EDGE_RISING>; 104 <19 IRQ_TYPE_EDGE_RISING>;
105 }; 105 };
106 lsm303dlh@1e { 106 lsm303dlh@1e {
107 /* Magnetometer */ 107 /*
108 * This magnetometer is packaged with
109 * the accelerometer, and has a DRDY line,
110 * however it is not connected on this
111 * board so it can not generate interrupts.
112 */
108 compatible = "st,lsm303dlh-magn"; 113 compatible = "st,lsm303dlh-magn";
109 reg = <0x1e>; 114 reg = <0x1e>;
110 vdd-supply = <&ab8500_ldo_aux1_reg>; 115 vdd-supply = <&ab8500_ldo_aux1_reg>;
111 vddio-supply = <&db8500_vsmps2_reg>; 116 vddio-supply = <&db8500_vsmps2_reg>;
117 };
118 lis331dl@1c {
119 /* Accelerometer */
120 compatible = "st,lis331dl-accel";
121 st,drdy-int-pin = <1>;
122 reg = <0x1c>;
123 vdd-supply = <&ab8500_ldo_aux1_reg>;
124 vddio-supply = <&db8500_vsmps2_reg>;
125 pinctrl-names = "default";
126 pinctrl-0 = <&accel_tvk_mode>;
127 interrupt-parent = <&gpio2>;
128 interrupts = <18 IRQ_TYPE_EDGE_RISING>,
129 <19 IRQ_TYPE_EDGE_RISING>;
130 };
131 ak8974@0f {
132 /* Magnetometer */
133 compatible = "asahi-kasei,ak8974";
134 reg = <0x0f>;
135 vdd-supply = <&ab8500_ldo_aux1_reg>;
136 vddio-supply = <&db8500_vsmps2_reg>;
112 pinctrl-names = "default"; 137 pinctrl-names = "default";
113 pinctrl-0 = <&magneto_tvk_mode>; 138 pinctrl-0 = <&gyro_magn_tvk_mode>;
139 interrupt-parent = <&gpio1>;
140 interrupts = <0 IRQ_TYPE_EDGE_RISING>;
114 }; 141 };
115 l3g4200d@68 { 142 l3g4200d@68 {
116 /* Gyroscope */ 143 /* Gyroscope */
@@ -119,6 +146,10 @@
119 reg = <0x68>; 146 reg = <0x68>;
120 vdd-supply = <&ab8500_ldo_aux1_reg>; 147 vdd-supply = <&ab8500_ldo_aux1_reg>;
121 vddio-supply = <&db8500_vsmps2_reg>; 148 vddio-supply = <&db8500_vsmps2_reg>;
149 pinctrl-names = "default";
150 pinctrl-0 = <&gyro_magn_tvk_mode>;
151 interrupt-parent = <&gpio1>;
152 interrupts = <0 IRQ_TYPE_EDGE_RISING>;
122 }; 153 };
123 lsp001wm@5c { 154 lsp001wm@5c {
124 /* Barometer/pressure sensor */ 155 /* Barometer/pressure sensor */
@@ -159,17 +190,22 @@
159 /* Accelerometer interrupt lines 1 & 2 */ 190 /* Accelerometer interrupt lines 1 & 2 */
160 tvk_cfg { 191 tvk_cfg {
161 pins = "GPIO82_C1", "GPIO83_D3"; 192 pins = "GPIO82_C1", "GPIO83_D3";
162 ste,config = <&gpio_in_pu>; 193 ste,config = <&gpio_in_pd>;
163 }; 194 };
164 }; 195 };
165 }; 196 };
166 magnetometer { 197 gyroscope {
167 magneto_tvk_mode: magneto_tvk { 198 /*
168 /* Magnetometer uses GPIO 31 and 32, pull these up/down respectively */ 199 * These lines are shared between Gyroscope l3g400dh
200 * and AK8974 magnetometer.
201 */
202 gyro_magn_tvk_mode: gyro_magn_tvk {
203 /* GPIO 31 used for INT pull down the line */
169 tvk_cfg1 { 204 tvk_cfg1 {
170 pins = "GPIO31_V3"; 205 pins = "GPIO31_V3";
171 ste,config = <&gpio_in_pu>; 206 ste,config = <&gpio_in_pd>;
172 }; 207 };
208 /* GPIO 32 used for DRDY, pull this down */
173 tvk_cfg2 { 209 tvk_cfg2 {
174 pins = "GPIO32_V2"; 210 pins = "GPIO32_V2";
175 ste,config = <&gpio_in_pd>; 211 ste,config = <&gpio_in_pd>;
diff --git a/arch/arm/boot/dts/ste-hrefv60plus.dtsi b/arch/arm/boot/dts/ste-hrefv60plus.dtsi
index 9c2387b34d0c..149a72e7e37a 100644
--- a/arch/arm/boot/dts/ste-hrefv60plus.dtsi
+++ b/arch/arm/boot/dts/ste-hrefv60plus.dtsi
@@ -43,7 +43,6 @@
43 <&vaudio_hf_hrefv60_mode>, 43 <&vaudio_hf_hrefv60_mode>,
44 <&gbf_hrefv60_mode>, 44 <&gbf_hrefv60_mode>,
45 <&hdtv_hrefv60_mode>, 45 <&hdtv_hrefv60_mode>,
46 <&touch_hrefv60_mode>,
47 <&gpios_hrefv60_mode>; 46 <&gpios_hrefv60_mode>;
48 47
49 sdi0 { 48 sdi0 {
@@ -190,23 +189,6 @@
190 }; 189 };
191 }; 190 };
192 }; 191 };
193 touch {
194 touch_hrefv60_mode: touch_hrefv60 {
195 /*
196 * Touch screen uses GPIO 143 for RST1, GPIO 146 for RST2 and
197 * GPIO 67 for interrupts. Pull-up the IRQ line and drive both
198 * reset signals low.
199 */
200 hrefv60_cfg1 {
201 pins = "GPIO143_D12", "GPIO146_D13";
202 ste,config = <&gpio_out_lo>;
203 };
204 hrefv60_cfg2 {
205 pins = "GPIO67_G2";
206 ste,config = <&gpio_in_pu>;
207 };
208 };
209 };
210 mcde { 192 mcde {
211 lcd_hrefv60_mode: lcd_hrefv60 { 193 lcd_hrefv60_mode: lcd_hrefv60 {
212 /* 194 /*
diff --git a/arch/arm/boot/dts/ste-nomadik-s8815.dts b/arch/arm/boot/dts/ste-nomadik-s8815.dts
index 35282c0105c6..789329030658 100644
--- a/arch/arm/boot/dts/ste-nomadik-s8815.dts
+++ b/arch/arm/boot/dts/ste-nomadik-s8815.dts
@@ -163,7 +163,7 @@
163 label = "user_button"; 163 label = "user_button";
164 gpios = <&gpio0 3 0x1>; 164 gpios = <&gpio0 3 0x1>;
165 linux,code = <1>; /* KEY_ESC */ 165 linux,code = <1>; /* KEY_ESC */
166 gpio-key,wakeup; 166 wakeup-source;
167 pinctrl-names = "default"; 167 pinctrl-names = "default";
168 pinctrl-0 = <&user_button_default_mode>; 168 pinctrl-0 = <&user_button_default_mode>;
169 }; 169 };
diff --git a/arch/arm/boot/dts/ste-snowball.dts b/arch/arm/boot/dts/ste-snowball.dts
index e80e42163883..08f82077b64d 100644
--- a/arch/arm/boot/dts/ste-snowball.dts
+++ b/arch/arm/boot/dts/ste-snowball.dts
@@ -281,7 +281,8 @@
281 vddio-supply = <&db8500_vsmps2_reg>; 281 vddio-supply = <&db8500_vsmps2_reg>;
282 pinctrl-names = "default"; 282 pinctrl-names = "default";
283 pinctrl-0 = <&magneto_snowball_mode>; 283 pinctrl-0 = <&magneto_snowball_mode>;
284 gpios = <&gpio5 5 0x4>; /* DRDY line */ 284 interrupt-parent = <&gpio5>;
285 interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */
285 }; 286 };
286 l3g4200d@68 { 287 l3g4200d@68 {
287 /* Gyroscope */ 288 /* Gyroscope */
@@ -292,9 +293,9 @@
292 vddio-supply = <&db8500_vsmps2_reg>; 293 vddio-supply = <&db8500_vsmps2_reg>;
293 pinctrl-names = "default"; 294 pinctrl-names = "default";
294 pinctrl-0 = <&gyro_snowball_mode>; 295 pinctrl-0 = <&gyro_snowball_mode>;
295 gpios = <&gpio5 6 0x4>; /* DRDY line */
296 interrupt-parent = <&gpio5>; 296 interrupt-parent = <&gpio5>;
297 interrupts = <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */ 297 interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
298 <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
298 }; 299 };
299 lsp001wm@5c { 300 lsp001wm@5c {
300 /* Barometer/pressure sensor */ 301 /* Barometer/pressure sensor */
diff --git a/arch/arm/boot/dts/ste-u300.dts b/arch/arm/boot/dts/ste-u300.dts
index 82a661677e97..9c73ac2842ad 100644
--- a/arch/arm/boot/dts/ste-u300.dts
+++ b/arch/arm/boot/dts/ste-u300.dts
@@ -315,21 +315,17 @@
315 ab3100-regulators { 315 ab3100-regulators {
316 compatible = "stericsson,ab3100-regulators"; 316 compatible = "stericsson,ab3100-regulators";
317 ab3100_ldo_a_reg: ab3100_ldo_a { 317 ab3100_ldo_a_reg: ab3100_ldo_a {
318 regulator-compatible = "ab3100_ldo_a";
319 startup-delay-us = <200>; 318 startup-delay-us = <200>;
320 regulator-always-on; 319 regulator-always-on;
321 regulator-boot-on; 320 regulator-boot-on;
322 }; 321 };
323 ab3100_ldo_c_reg: ab3100_ldo_c { 322 ab3100_ldo_c_reg: ab3100_ldo_c {
324 regulator-compatible = "ab3100_ldo_c";
325 startup-delay-us = <200>; 323 startup-delay-us = <200>;
326 }; 324 };
327 ab3100_ldo_d_reg: ab3100_ldo_d { 325 ab3100_ldo_d_reg: ab3100_ldo_d {
328 regulator-compatible = "ab3100_ldo_d";
329 startup-delay-us = <200>; 326 startup-delay-us = <200>;
330 }; 327 };
331 ab3100_ldo_e_reg: ab3100_ldo_e { 328 ab3100_ldo_e_reg: ab3100_ldo_e {
332 regulator-compatible = "ab3100_ldo_e";
333 regulator-min-microvolt = <1800000>; 329 regulator-min-microvolt = <1800000>;
334 regulator-max-microvolt = <1800000>; 330 regulator-max-microvolt = <1800000>;
335 startup-delay-us = <200>; 331 startup-delay-us = <200>;
@@ -337,7 +333,6 @@
337 regulator-boot-on; 333 regulator-boot-on;
338 }; 334 };
339 ab3100_ldo_f_reg: ab3100_ldo_f { 335 ab3100_ldo_f_reg: ab3100_ldo_f {
340 regulator-compatible = "ab3100_ldo_f";
341 regulator-min-microvolt = <2500000>; 336 regulator-min-microvolt = <2500000>;
342 regulator-max-microvolt = <2500000>; 337 regulator-max-microvolt = <2500000>;
343 startup-delay-us = <600>; 338 startup-delay-us = <600>;
@@ -345,28 +340,23 @@
345 regulator-boot-on; 340 regulator-boot-on;
346 }; 341 };
347 ab3100_ldo_g_reg: ab3100_ldo_g { 342 ab3100_ldo_g_reg: ab3100_ldo_g {
348 regulator-compatible = "ab3100_ldo_g";
349 regulator-min-microvolt = <1500000>; 343 regulator-min-microvolt = <1500000>;
350 regulator-max-microvolt = <2850000>; 344 regulator-max-microvolt = <2850000>;
351 startup-delay-us = <400>; 345 startup-delay-us = <400>;
352 }; 346 };
353 ab3100_ldo_h_reg: ab3100_ldo_h { 347 ab3100_ldo_h_reg: ab3100_ldo_h {
354 regulator-compatible = "ab3100_ldo_h";
355 regulator-min-microvolt = <1200000>; 348 regulator-min-microvolt = <1200000>;
356 regulator-max-microvolt = <2750000>; 349 regulator-max-microvolt = <2750000>;
357 startup-delay-us = <200>; 350 startup-delay-us = <200>;
358 }; 351 };
359 ab3100_ldo_k_reg: ab3100_ldo_k { 352 ab3100_ldo_k_reg: ab3100_ldo_k {
360 regulator-compatible = "ab3100_ldo_k";
361 regulator-min-microvolt = <1800000>; 353 regulator-min-microvolt = <1800000>;
362 regulator-max-microvolt = <2750000>; 354 regulator-max-microvolt = <2750000>;
363 startup-delay-us = <200>; 355 startup-delay-us = <200>;
364 }; 356 };
365 ab3100_ext_reg: ab3100_ext { 357 ab3100_ext_reg: ab3100_ext {
366 regulator-compatible = "ab3100_ext";
367 }; 358 };
368 ab3100_buck_reg: ab3100_buck { 359 ab3100_buck_reg: ab3100_buck {
369 regulator-compatible = "ab3100_buck";
370 regulator-min-microvolt = <1200000>; 360 regulator-min-microvolt = <1200000>;
371 regulator-max-microvolt = <1800000>; 361 regulator-max-microvolt = <1800000>;
372 startup-delay-us = <1000>; 362 startup-delay-us = <1000>;
diff --git a/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts b/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
index 3f0aeb8288cd..ac64781a0a9c 100644
--- a/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
+++ b/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
@@ -65,12 +65,22 @@
65/* 65/*
66 * TODO: 66 * TODO:
67 * 2x cameras via CSI 67 * 2x cameras via CSI
68 * audio
69 * AXP battery management 68 * AXP battery management
70 * NAND 69 * NAND
71 * OTG 70 * OTG
72 * Touchscreen - gt801_2plus1 @ i2c adapter 2 @ 0x48 71 * Touchscreen - gt801_2plus1 @ i2c adapter 2 @ 0x48
73 */ 72 */
73&codec {
74 /* PH15 controls power to external amplifier (ft2012q) */
75 pinctrl-names = "default";
76 pinctrl-0 = <&codec_pa_pin>;
77 allwinner,pa-gpios = <&pio 7 15 GPIO_ACTIVE_HIGH>;
78 status = "okay";
79};
80
81&cpu0 {
82 cpu-supply = <&reg_dcdc2>;
83};
74 84
75&ehci0 { 85&ehci0 {
76 status = "okay"; 86 status = "okay";
@@ -86,15 +96,13 @@
86 status = "okay"; 96 status = "okay";
87 97
88 axp209: pmic@34 { 98 axp209: pmic@34 {
89 compatible = "x-powers,axp209";
90 reg = <0x34>; 99 reg = <0x34>;
91 interrupts = <0>; 100 interrupts = <0>;
92
93 interrupt-controller;
94 #interrupt-cells = <1>;
95 }; 101 };
96}; 102};
97 103
104#include "axp209.dtsi"
105
98&i2c1 { 106&i2c1 {
99 pinctrl-names = "default"; 107 pinctrl-names = "default";
100 pinctrl-0 = <&i2c1_pins_a>; 108 pinctrl-0 = <&i2c1_pins_a>;
@@ -110,7 +118,7 @@
110}; 118};
111 119
112&lradc { 120&lradc {
113 vref-supply = <&reg_vcc3v0>; 121 vref-supply = <&reg_ldo2>;
114 122
115 status = "okay"; 123 status = "okay";
116 124
@@ -146,6 +154,40 @@
146 status = "okay"; 154 status = "okay";
147}; 155};
148 156
157&pio {
158 codec_pa_pin: codec_pa_pin@0 {
159 allwinner,pins = "PH15";
160 allwinner,function = "gpio_out";
161 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
162 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
163 };
164};
165
166&reg_dcdc2 {
167 regulator-always-on;
168 regulator-min-microvolt = <1000000>;
169 regulator-max-microvolt = <1400000>;
170 regulator-name = "vdd-cpu";
171};
172
173&reg_dcdc3 {
174 regulator-always-on;
175 regulator-min-microvolt = <1250000>;
176 regulator-max-microvolt = <1250000>;
177 regulator-name = "vdd-int-dll";
178};
179
180&reg_ldo1 {
181 regulator-name = "vdd-rtc";
182};
183
184&reg_ldo2 {
185 regulator-always-on;
186 regulator-min-microvolt = <3000000>;
187 regulator-max-microvolt = <3000000>;
188 regulator-name = "avcc";
189};
190
149&reg_usb1_vbus { 191&reg_usb1_vbus {
150 status = "okay"; 192 status = "okay";
151}; 193};
diff --git a/arch/arm/boot/dts/sun4i-a10-inet1.dts b/arch/arm/boot/dts/sun4i-a10-inet1.dts
index 487ce63519dc..e09053bf5e1f 100644
--- a/arch/arm/boot/dts/sun4i-a10-inet1.dts
+++ b/arch/arm/boot/dts/sun4i-a10-inet1.dts
@@ -47,6 +47,7 @@
47#include <dt-bindings/input/input.h> 47#include <dt-bindings/input/input.h>
48#include <dt-bindings/interrupt-controller/irq.h> 48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h> 49#include <dt-bindings/pinctrl/sun4i-a10.h>
50#include <dt-bindings/pwm/pwm.h>
50 51
51/ { 52/ {
52 model = "iNet-1"; 53 model = "iNet-1";
@@ -56,11 +57,25 @@
56 serial0 = &uart0; 57 serial0 = &uart0;
57 }; 58 };
58 59
60 backlight: backlight {
61 compatible = "pwm-backlight";
62 pinctrl-names = "default";
63 pinctrl-0 = <&bl_en_pin_inet>;
64 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
65 brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
66 default-brightness-level = <8>;
67 enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
68 };
69
59 chosen { 70 chosen {
60 stdout-path = "serial0:115200n8"; 71 stdout-path = "serial0:115200n8";
61 }; 72 };
62}; 73};
63 74
75&codec {
76 status = "okay";
77};
78
64&cpu0 { 79&cpu0 {
65 cpu-supply = <&reg_dcdc2>; 80 cpu-supply = <&reg_dcdc2>;
66}; 81};
@@ -104,6 +119,19 @@
104 pinctrl-names = "default"; 119 pinctrl-names = "default";
105 pinctrl-0 = <&i2c2_pins_a>; 120 pinctrl-0 = <&i2c2_pins_a>;
106 status = "okay"; 121 status = "okay";
122
123 ft5x: touchscreen@38 {
124 compatible = "edt,edt-ft5406";
125 reg = <0x38>;
126 interrupt-parent = <&pio>;
127 interrupts = <7 21 IRQ_TYPE_EDGE_FALLING>;
128 pinctrl-names = "default";
129 pinctrl-0 = <&touchscreen_wake_pin>;
130 wake-gpios = <&pio 1 13 GPIO_ACTIVE_HIGH>; /* PB13 */
131 touchscreen-size-x = <600>;
132 touchscreen-size-y = <1024>;
133 touchscreen-swapped-x-y;
134 };
107}; 135};
108 136
109&lradc { 137&lradc {
@@ -151,6 +179,20 @@
151}; 179};
152 180
153&pio { 181&pio {
182 bl_en_pin_inet: bl_en_pin@0 {
183 allwinner,pins = "PH7";
184 allwinner,function = "gpio_out";
185 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
186 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
187 };
188
189 touchscreen_wake_pin: touchscreen_wake_pin@0 {
190 allwinner,pins = "PB13";
191 allwinner,function = "gpio_out";
192 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
193 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
194 };
195
154 usb0_id_detect_pin: usb0_id_detect_pin@0 { 196 usb0_id_detect_pin: usb0_id_detect_pin@0 {
155 allwinner,pins = "PH4"; 197 allwinner,pins = "PH4";
156 allwinner,function = "gpio_in"; 198 allwinner,function = "gpio_in";
@@ -166,6 +208,12 @@
166 }; 208 };
167}; 209};
168 210
211&pwm {
212 pinctrl-names = "default";
213 pinctrl-0 = <&pwm0_pins_a>;
214 status = "okay";
215};
216
169&reg_dcdc2 { 217&reg_dcdc2 {
170 regulator-always-on; 218 regulator-always-on;
171 regulator-min-microvolt = <1000000>; 219 regulator-min-microvolt = <1000000>;
diff --git a/arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts b/arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts
index 2fffc0434075..ca49b0d0ce1e 100644
--- a/arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts
+++ b/arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts
@@ -59,6 +59,159 @@
59 chosen { 59 chosen {
60 stdout-path = "serial0:115200n8"; 60 stdout-path = "serial0:115200n8";
61 }; 61 };
62
63 gpio_keys {
64 compatible = "gpio-keys-polled";
65 pinctrl-names = "default";
66 pinctrl-0 = <&key_pins_inet9f>;
67 #address-cells = <1>;
68 #size-cells = <0>;
69 poll-interval = <20>;
70
71 button@0 {
72 label = "Left Joystick Left";
73 linux,code = <ABS_X>;
74 linux,input-type = <EV_ABS>;
75 linux,input-value = <0xffffffff>; /* -1 */
76 gpios = <&pio 0 6 GPIO_ACTIVE_LOW>; /* PA6 */
77 };
78
79 button@1 {
80 label = "Left Joystick Right";
81 linux,code = <ABS_X>;
82 linux,input-type = <EV_ABS>;
83 linux,input-value = <1>;
84 gpios = <&pio 0 5 GPIO_ACTIVE_LOW>; /* PA5 */
85 };
86
87 button@2 {
88 label = "Left Joystick Up";
89 linux,code = <ABS_Y>;
90 linux,input-type = <EV_ABS>;
91 linux,input-value = <0xffffffff>; /* -1 */
92 gpios = <&pio 0 8 GPIO_ACTIVE_LOW>; /* PA8 */
93 };
94
95 button@3 {
96 label = "Left Joystick Down";
97 linux,code = <ABS_Y>;
98 linux,input-type = <EV_ABS>;
99 linux,input-value = <1>;
100 gpios = <&pio 0 9 GPIO_ACTIVE_LOW>; /* PA9 */
101 };
102
103 button@4 {
104 label = "Right Joystick Left";
105 linux,code = <ABS_Z>;
106 linux,input-type = <EV_ABS>;
107 linux,input-value = <0xffffffff>; /* -1 */
108 gpios = <&pio 0 1 GPIO_ACTIVE_LOW>; /* PA1 */
109 };
110
111 button@5 {
112 label = "Right Joystick Right";
113 linux,code = <ABS_Z>;
114 linux,input-type = <EV_ABS>;
115 linux,input-value = <1>;
116 gpios = <&pio 0 0 GPIO_ACTIVE_LOW>; /* PA0 */
117 };
118
119 button@6 {
120 label = "Right Joystick Up";
121 linux,code = <ABS_RZ>;
122 linux,input-type = <EV_ABS>;
123 linux,input-value = <0xffffffff>; /* -1 */
124 gpios = <&pio 0 3 GPIO_ACTIVE_LOW>; /* PA3 */
125 };
126
127 button@7 {
128 label = "Right Joystick Down";
129 linux,code = <ABS_RZ>;
130 linux,input-type = <EV_ABS>;
131 linux,input-value = <1>;
132 gpios = <&pio 0 4 GPIO_ACTIVE_LOW>; /* PA4 */
133 };
134
135 button@8 {
136 label = "DPad Left";
137 linux,code = <ABS_HAT0X>;
138 linux,input-type = <EV_ABS>;
139 linux,input-value = <0xffffffff>; /* -1 */
140 gpios = <&pio 7 23 GPIO_ACTIVE_LOW>; /* PH23 */
141 };
142
143 button@9 {
144 label = "DPad Right";
145 linux,code = <ABS_HAT0X>;
146 linux,input-type = <EV_ABS>;
147 linux,input-value = <1>;
148 gpios = <&pio 7 24 GPIO_ACTIVE_LOW>; /* PH24 */
149 };
150
151 button@10 {
152 label = "DPad Up";
153 linux,code = <ABS_HAT0Y>;
154 linux,input-type = <EV_ABS>;
155 linux,input-value = <0xffffffff>; /* -1 */
156 gpios = <&pio 7 25 GPIO_ACTIVE_LOW>; /* PH25 */
157 };
158
159 button@11 {
160 label = "DPad Down";
161 linux,code = <ABS_HAT0Y>;
162 linux,input-type = <EV_ABS>;
163 linux,input-value = <1>;
164 gpios = <&pio 7 26 GPIO_ACTIVE_LOW>; /* PH26 */
165 };
166
167 button@12 {
168 label = "Button X";
169 linux,code = <BTN_X>;
170 gpios = <&pio 0 16 GPIO_ACTIVE_LOW>; /* PA16 */
171 };
172
173 button@13 {
174 label = "Button Y";
175 linux,code = <BTN_Y>;
176 gpios = <&pio 0 14 GPIO_ACTIVE_LOW>; /* PA14 */
177 };
178
179 button@14 {
180 label = "Button A";
181 linux,code = <BTN_A>;
182 gpios = <&pio 0 17 GPIO_ACTIVE_LOW>; /* PA17 */
183 };
184
185 button@15 {
186 label = "Button B";
187 linux,code = <BTN_B>;
188 gpios = <&pio 0 15 GPIO_ACTIVE_LOW>; /* PA15 */
189 };
190
191 button@16 {
192 label = "Select Button";
193 linux,code = <BTN_SELECT>;
194 gpios = <&pio 0 11 GPIO_ACTIVE_LOW>; /* PA11 */
195 };
196
197 button@17 {
198 label = "Start Button";
199 linux,code = <BTN_START>;
200 gpios = <&pio 0 12 GPIO_ACTIVE_LOW>; /* PA12 */
201 };
202
203 button@18 {
204 label = "Top Left Button";
205 linux,code = <BTN_TL>;
206 gpios = <&pio 7 22 GPIO_ACTIVE_LOW>; /* PH22 */
207 };
208
209 button@19 {
210 label = "Top Right Button";
211 linux,code = <BTN_TR>;
212 gpios = <&pio 0 13 GPIO_ACTIVE_LOW>; /* PA13 */
213 };
214 };
62}; 215};
63 216
64&cpu0 { 217&cpu0 {
@@ -157,6 +310,17 @@
157}; 310};
158 311
159&pio { 312&pio {
313 key_pins_inet9f: key_pins@0 {
314 allwinner,pins = "PA0", "PA1", "PA3", "PA4",
315 "PA5", "PA6", "PA8", "PA9",
316 "PA11", "PA12", "PA13",
317 "PA14", "PA15", "PA16", "PA17",
318 "PH22", "PH23", "PH24", "PH25", "PH26";
319 allwinner,function = "gpio_in";
320 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
321 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
322 };
323
160 usb0_id_detect_pin: usb0_id_detect_pin@0 { 324 usb0_id_detect_pin: usb0_id_detect_pin@0 {
161 allwinner,pins = "PH4"; 325 allwinner,pins = "PH4";
162 allwinner,function = "gpio_in"; 326 allwinner,function = "gpio_in";
diff --git a/arch/arm/boot/dts/sun4i-a10-mk802.dts b/arch/arm/boot/dts/sun4i-a10-mk802.dts
index 3c7eebe17088..ddf0683cbc6a 100644
--- a/arch/arm/boot/dts/sun4i-a10-mk802.dts
+++ b/arch/arm/boot/dts/sun4i-a10-mk802.dts
@@ -58,6 +58,10 @@
58 }; 58 };
59}; 59};
60 60
61&codec {
62 status = "okay";
63};
64
61&ehci0 { 65&ehci0 {
62 status = "okay"; 66 status = "okay";
63}; 67};
diff --git a/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts b/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts
index 82e69c3820a2..918f97294b33 100644
--- a/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts
+++ b/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts
@@ -47,6 +47,7 @@
47#include <dt-bindings/input/input.h> 47#include <dt-bindings/input/input.h>
48#include <dt-bindings/interrupt-controller/irq.h> 48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h> 49#include <dt-bindings/pinctrl/sun4i-a10.h>
50#include <dt-bindings/pwm/pwm.h>
50 51
51/ { 52/ {
52 model = "Point of View Protab2-IPS9"; 53 model = "Point of View Protab2-IPS9";
@@ -56,11 +57,28 @@
56 serial0 = &uart0; 57 serial0 = &uart0;
57 }; 58 };
58 59
60 backlight: backlight {
61 compatible = "pwm-backlight";
62 pinctrl-names = "default";
63 pinctrl-0 = <&bl_en_pin_protab>;
64 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
65 brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
66 default-brightness-level = <8>;
67 enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
68 };
69
59 chosen { 70 chosen {
60 stdout-path = "serial0:115200n8"; 71 stdout-path = "serial0:115200n8";
61 }; 72 };
62}; 73};
63 74
75&codec {
76 pinctrl-names = "default";
77 pinctrl-0 = <&codec_pa_pin>;
78 allwinner,pa-gpios = <&pio 7 15 GPIO_ACTIVE_HIGH>; /* PH15 */
79 status = "okay";
80};
81
64&cpu0 { 82&cpu0 {
65 cpu-supply = <&reg_dcdc2>; 83 cpu-supply = <&reg_dcdc2>;
66}; 84};
@@ -93,6 +111,22 @@
93 pinctrl-names = "default"; 111 pinctrl-names = "default";
94 pinctrl-0 = <&i2c2_pins_a>; 112 pinctrl-0 = <&i2c2_pins_a>;
95 status = "okay"; 113 status = "okay";
114
115 pixcir_ts@5c {
116 pinctrl-names = "default";
117 pinctrl-0 = <&touchscreen_pins>;
118 compatible = "pixcir,pixcir_tangoc";
119 reg = <0x5c>;
120 interrupt-parent = <&pio>;
121 interrupts = <7 21 IRQ_TYPE_EDGE_FALLING>; /* EINT21 (PH21) */
122 attb-gpio = <&pio 7 21 GPIO_ACTIVE_HIGH>; /* PH21 */
123 enable-gpios = <&pio 0 5 GPIO_ACTIVE_LOW>;
124 wake-gpios = <&pio 1 13 GPIO_ACTIVE_LOW>;
125 touchscreen-size-x = <1024>;
126 touchscreen-size-y = <768>;
127 touchscreen-inverted-x;
128 touchscreen-inverted-y;
129 };
96}; 130};
97 131
98&lradc { 132&lradc {
@@ -129,6 +163,27 @@
129}; 163};
130 164
131&pio { 165&pio {
166 bl_en_pin_protab: bl_en_pin@0 {
167 allwinner,pins = "PH7";
168 allwinner,function = "gpio_out";
169 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
170 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
171 };
172
173 codec_pa_pin: codec_pa_pin@0 {
174 allwinner,pins = "PH15";
175 allwinner,function = "gpio_out";
176 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
177 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
178 };
179
180 touchscreen_pins: touchscreen_pins@0 {
181 allwinner,pins = "PA5", "PB13";
182 allwinner,function = "gpio_out";
183 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
184 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
185 };
186
132 usb0_id_detect_pin: usb0_id_detect_pin@0 { 187 usb0_id_detect_pin: usb0_id_detect_pin@0 {
133 allwinner,pins = "PH4"; 188 allwinner,pins = "PH4";
134 allwinner,function = "gpio_in"; 189 allwinner,function = "gpio_in";
@@ -144,6 +199,12 @@
144 }; 199 };
145}; 200};
146 201
202&pwm {
203 pinctrl-names = "default";
204 pinctrl-0 = <&pwm0_pins_a>;
205 status = "okay";
206};
207
147&reg_dcdc2 { 208&reg_dcdc2 {
148 regulator-always-on; 209 regulator-always-on;
149 regulator-min-microvolt = <1000000>; 210 regulator-min-microvolt = <1000000>;
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
index aa90f319309b..2c8f5e6ad905 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -66,7 +66,7 @@
66 "simple-framebuffer"; 66 "simple-framebuffer";
67 allwinner,pipeline = "de_be0-lcd0-hdmi"; 67 allwinner,pipeline = "de_be0-lcd0-hdmi";
68 clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>, 68 clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
69 <&ahb_gates 44>; 69 <&ahb_gates 44>, <&dram_gates 26>;
70 status = "disabled"; 70 status = "disabled";
71 }; 71 };
72 72
@@ -75,7 +75,8 @@
75 "simple-framebuffer"; 75 "simple-framebuffer";
76 allwinner,pipeline = "de_fe0-de_be0-lcd0-hdmi"; 76 allwinner,pipeline = "de_fe0-de_be0-lcd0-hdmi";
77 clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>, 77 clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
78 <&ahb_gates 44>, <&ahb_gates 46>; 78 <&ahb_gates 44>, <&ahb_gates 46>,
79 <&dram_gates 25>, <&dram_gates 26>;
79 status = "disabled"; 80 status = "disabled";
80 }; 81 };
81 82
@@ -84,7 +85,8 @@
84 "simple-framebuffer"; 85 "simple-framebuffer";
85 allwinner,pipeline = "de_fe0-de_be0-lcd0"; 86 allwinner,pipeline = "de_fe0-de_be0-lcd0";
86 clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>, 87 clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>,
87 <&ahb_gates 46>; 88 <&ahb_gates 46>, <&dram_gates 25>,
89 <&dram_gates 26>;
88 status = "disabled"; 90 status = "disabled";
89 }; 91 };
90 92
@@ -93,7 +95,8 @@
93 "simple-framebuffer"; 95 "simple-framebuffer";
94 allwinner,pipeline = "de_fe0-de_be0-lcd0-tve0"; 96 allwinner,pipeline = "de_fe0-de_be0-lcd0-tve0";
95 clocks = <&pll5 1>, <&ahb_gates 34>, <&ahb_gates 36>, 97 clocks = <&pll5 1>, <&ahb_gates 34>, <&ahb_gates 36>,
96 <&ahb_gates 44>, <&ahb_gates 46>; 98 <&ahb_gates 44>, <&ahb_gates 46>,
99 <&dram_gates 25>, <&dram_gates 26>;
97 status = "disabled"; 100 status = "disabled";
98 }; 101 };
99 }; 102 };
@@ -492,6 +495,40 @@
492 clock-output-names = "spi3"; 495 clock-output-names = "spi3";
493 }; 496 };
494 497
498 dram_gates: clk@01c20100 {
499 #clock-cells = <1>;
500 compatible = "allwinner,sun4i-a10-dram-gates-clk";
501 reg = <0x01c20100 0x4>;
502 clocks = <&pll5 0>;
503 clock-indices = <0>,
504 <1>, <2>,
505 <3>,
506 <4>,
507 <5>, <6>,
508 <15>,
509 <24>, <25>,
510 <26>, <27>,
511 <28>, <29>;
512 clock-output-names = "dram_ve",
513 "dram_csi0", "dram_csi1",
514 "dram_ts",
515 "dram_tvd",
516 "dram_tve0", "dram_tve1",
517 "dram_output",
518 "dram_de_fe1", "dram_de_fe0",
519 "dram_de_be0", "dram_de_be1",
520 "dram_de_mp", "dram_ace";
521 };
522
523 ve_clk: clk@01c2013c {
524 #clock-cells = <0>;
525 #reset-cells = <0>;
526 compatible = "allwinner,sun4i-a10-ve-clk";
527 reg = <0x01c2013c 0x4>;
528 clocks = <&pll4>;
529 clock-output-names = "ve";
530 };
531
495 codec_clk: clk@01c20140 { 532 codec_clk: clk@01c20140 {
496 #clock-cells = <0>; 533 #clock-cells = <0>;
497 compatible = "allwinner,sun4i-a10-codec-clk"; 534 compatible = "allwinner,sun4i-a10-codec-clk";
diff --git a/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts b/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts
index 2b3511ea2e5d..a790ec8adb75 100644
--- a/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts
@@ -86,6 +86,20 @@
86 status = "okay"; 86 status = "okay";
87}; 87};
88 88
89&i2c0 {
90 pinctrl-names = "default";
91 pinctrl-0 = <&i2c0_pins_a>;
92 status = "okay";
93
94 axp152: pmic@30 {
95 compatible = "x-powers,axp152";
96 reg = <0x30>;
97 interrupts = <0>;
98 interrupt-controller;
99 #interrupt-cells = <1>;
100 };
101};
102
89&mmc0 { 103&mmc0 {
90 pinctrl-names = "default"; 104 pinctrl-names = "default";
91 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_t004>; 105 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_t004>;
diff --git a/arch/arm/boot/dts/sun5i-a13-empire-electronix-d709.dts b/arch/arm/boot/dts/sun5i-a13-empire-electronix-d709.dts
new file mode 100644
index 000000000000..7fbb0b0558a9
--- /dev/null
+++ b/arch/arm/boot/dts/sun5i-a13-empire-electronix-d709.dts
@@ -0,0 +1,241 @@
1/*
2 * Copyright 2015 Hans de Goede <hdegoede@redhat.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44#include "sun5i-a13.dtsi"
45#include "sunxi-common-regulators.dtsi"
46#include <dt-bindings/gpio/gpio.h>
47#include <dt-bindings/input/input.h>
48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50#include <dt-bindings/pwm/pwm.h>
51
52/ {
53 model = "Empire Electronix D709 tablet";
54 compatible = "empire-electronix,d709", "allwinner,sun5i-a13";
55
56 aliases {
57 serial0 = &uart1;
58 };
59
60 backlight: backlight {
61 compatible = "pwm-backlight";
62 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
63 brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
64 default-brightness-level = <8>;
65 /* TODO: backlight uses axp gpio1 as enable pin */
66 };
67
68 chosen {
69 stdout-path = "serial0:115200n8";
70 };
71};
72
73&cpu0 {
74 cpu-supply = <&reg_dcdc2>;
75};
76
77&ehci0 {
78 status = "okay";
79};
80
81&i2c0 {
82 pinctrl-names = "default";
83 pinctrl-0 = <&i2c0_pins_a>;
84 status = "okay";
85
86 axp209: pmic@34 {
87 reg = <0x34>;
88 interrupts = <0>;
89 };
90};
91
92#include "axp209.dtsi"
93
94&i2c1 {
95 pinctrl-names = "default";
96 pinctrl-0 = <&i2c1_pins_a>;
97 status = "okay";
98
99 pcf8563: rtc@51 {
100 compatible = "nxp,pcf8563";
101 reg = <0x51>;
102 };
103};
104
105&lradc {
106 vref-supply = <&reg_ldo2>;
107 status = "okay";
108
109 button@200 {
110 label = "Volume Up";
111 linux,code = <KEY_VOLUMEUP>;
112 channel = <0>;
113 voltage = <200000>;
114 };
115
116 button@400 {
117 label = "Volume Down";
118 linux,code = <KEY_VOLUMEDOWN>;
119 channel = <0>;
120 voltage = <400000>;
121 };
122};
123
124&mmc0 {
125 pinctrl-names = "default";
126 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_inet98fv2>;
127 vmmc-supply = <&reg_vcc3v3>;
128 bus-width = <4>;
129 cd-gpios = <&pio 6 0 GPIO_ACTIVE_HIGH>; /* PG0 */
130 cd-inverted;
131 status = "okay";
132};
133
134&mmc2 {
135 pinctrl-names = "default";
136 pinctrl-0 = <&mmc2_pins_a>;
137 vmmc-supply = <&reg_vcc3v3>;
138 bus-width = <8>;
139 non-removable;
140 status = "okay";
141
142 mmccard: mmccard@0 {
143 reg = <0>;
144 compatible = "mmc-card";
145 broken-hpi;
146 };
147};
148
149&otg_sram {
150 status = "okay";
151};
152
153&pio {
154 mmc0_cd_pin_inet98fv2: mmc0_cd_pin@0 {
155 allwinner,pins = "PG0";
156 allwinner,function = "gpio_in";
157 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
158 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
159 };
160
161 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
162 allwinner,pins = "PG1";
163 allwinner,function = "gpio_in";
164 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
165 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
166 };
167
168 usb0_id_detect_pin: usb0_id_detect_pin@0 {
169 allwinner,pins = "PG2";
170 allwinner,function = "gpio_in";
171 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
172 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
173 };
174};
175
176&pwm {
177 pinctrl-names = "default";
178 pinctrl-0 = <&pwm0_pins>;
179 status = "okay";
180};
181
182&reg_dcdc2 {
183 regulator-always-on;
184 regulator-min-microvolt = <1000000>;
185 regulator-max-microvolt = <1400000>;
186 regulator-name = "vdd-cpu";
187};
188
189&reg_dcdc3 {
190 regulator-always-on;
191 regulator-min-microvolt = <1250000>;
192 regulator-max-microvolt = <1250000>;
193 regulator-name = "vdd-int-pll";
194};
195
196&reg_ldo1 {
197 regulator-name = "vdd-rtc";
198};
199
200&reg_ldo2 {
201 regulator-always-on;
202 regulator-min-microvolt = <3000000>;
203 regulator-max-microvolt = <3000000>;
204 regulator-name = "avcc";
205};
206
207&reg_ldo3 {
208 regulator-min-microvolt = <3300000>;
209 regulator-max-microvolt = <3300000>;
210 regulator-name = "vcc-wifi";
211};
212
213&reg_usb0_vbus {
214 gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
215 status = "okay";
216};
217
218&uart1 {
219 pinctrl-names = "default";
220 pinctrl-0 = <&uart1_pins_b>;
221 status = "okay";
222};
223
224&usb_otg {
225 dr_mode = "otg";
226 status = "okay";
227};
228
229&usb0_vbus_pin_a {
230 allwinner,pins = "PG12";
231};
232
233&usbphy {
234 pinctrl-names = "default";
235 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
236 usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
237 usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
238 usb0_vbus-supply = <&reg_usb0_vbus>;
239 usb1_vbus-supply = <&reg_ldo3>;
240 status = "okay";
241};
diff --git a/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts b/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
index eb793d5a2bd6..fa9ddfdcfe96 100644
--- a/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
+++ b/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
@@ -47,11 +47,21 @@
47#include <dt-bindings/input/input.h> 47#include <dt-bindings/input/input.h>
48#include <dt-bindings/interrupt-controller/irq.h> 48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h> 49#include <dt-bindings/pinctrl/sun4i-a10.h>
50#include <dt-bindings/pwm/pwm.h>
50 51
51/ { 52/ {
52 model = "Utoo P66"; 53 model = "Utoo P66";
53 compatible = "utoo,p66", "allwinner,sun5i-a13"; 54 compatible = "utoo,p66", "allwinner,sun5i-a13";
54 55
56 backlight: backlight {
57 compatible = "pwm-backlight";
58 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
59 /* Note levels of 10 / 20% result in backlight off */
60 brightness-levels = <0 30 40 50 60 70 80 90 100>;
61 default-brightness-level = <6>;
62 /* TODO: backlight uses axp gpio1 as enable pin */
63 };
64
55 i2c_lcd: i2c@0 { 65 i2c_lcd: i2c@0 {
56 /* The lcd panel i2c interface is hooked up via gpios */ 66 /* The lcd panel i2c interface is hooked up via gpios */
57 compatible = "i2c-gpio"; 67 compatible = "i2c-gpio";
@@ -63,6 +73,13 @@
63 }; 73 };
64}; 74};
65 75
76&codec {
77 pinctrl-names = "default";
78 pinctrl-0 = <&codec_pa_pin>;
79 allwinner,pa-gpios = <&pio 6 3 GPIO_ACTIVE_HIGH>; /* PG3 */
80 status = "okay";
81};
82
66&cpu0 { 83&cpu0 {
67 cpu-supply = <&reg_dcdc2>; 84 cpu-supply = <&reg_dcdc2>;
68}; 85};
@@ -158,6 +175,13 @@
158}; 175};
159 176
160&pio { 177&pio {
178 codec_pa_pin: codec_pa_pin@0 {
179 allwinner,pins = "PG3";
180 allwinner,function = "gpio_out";
181 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
182 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
183 };
184
161 mmc0_cd_pin_p66: mmc0_cd_pin@0 { 185 mmc0_cd_pin_p66: mmc0_cd_pin@0 {
162 allwinner,pins = "PG0"; 186 allwinner,pins = "PG0";
163 allwinner,function = "gpio_in"; 187 allwinner,function = "gpio_in";
@@ -201,6 +225,12 @@
201 }; 225 };
202}; 226};
203 227
228&pwm {
229 pinctrl-names = "default";
230 pinctrl-0 = <&pwm0_pins>;
231 status = "okay";
232};
233
204&reg_dcdc2 { 234&reg_dcdc2 {
205 regulator-always-on; 235 regulator-always-on;
206 regulator-min-microvolt = <1000000>; 236 regulator-min-microvolt = <1000000>;
diff --git a/arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts b/arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts
index b199020733d3..360adfb1e9ca 100644
--- a/arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts
@@ -113,18 +113,83 @@
113 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 113 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
114}; 114};
115 115
116&reg_usb1_vbus { 116&p2wi {
117 gpio = <&pio 7 27 GPIO_ACTIVE_HIGH>;
118 status = "okay"; 117 status = "okay";
118
119 axp22x: pmic@68 {
120 compatible = "x-powers,axp221";
121 reg = <0x68>;
122 interrupt-parent = <&nmi_intc>;
123 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
124 };
119}; 125};
120 126
121&usb1_vbus_pin_a { 127#include "axp22x.dtsi"
122 allwinner,pins = "PH27"; 128
129&reg_aldo3 {
130 regulator-always-on;
131 regulator-min-microvolt = <2700000>;
132 regulator-max-microvolt = <3300000>;
133 regulator-name = "avcc";
123}; 134};
124 135
125&usbphy { 136&reg_dc1sw {
126 usb1_vbus-supply = <&reg_usb1_vbus>; 137 regulator-name = "vcc-lcd-usb2";
127 status = "okay"; 138 regulator-min-microvolt = <3000000>;
139 regulator-max-microvolt = <3000000>;
140};
141
142&reg_dc5ldo {
143 regulator-min-microvolt = <700000>;
144 regulator-max-microvolt = <1320000>;
145 regulator-name = "vdd-cpus";
146};
147
148&reg_dcdc1 {
149 regulator-always-on;
150 regulator-min-microvolt = <3000000>;
151 regulator-max-microvolt = <3000000>;
152 regulator-name = "vcc-3v0";
153};
154
155&reg_dcdc2 {
156 regulator-min-microvolt = <700000>;
157 regulator-max-microvolt = <1320000>;
158 regulator-name = "vdd-gpu";
159};
160
161&reg_dcdc3 {
162 regulator-always-on;
163 regulator-min-microvolt = <700000>;
164 regulator-max-microvolt = <1320000>;
165 regulator-name = "vdd-cpu";
166};
167
168&reg_dcdc4 {
169 regulator-always-on;
170 regulator-min-microvolt = <700000>;
171 regulator-max-microvolt = <1320000>;
172 regulator-name = "vdd-sys-dll";
173};
174
175&reg_dcdc5 {
176 regulator-always-on;
177 regulator-min-microvolt = <1500000>;
178 regulator-max-microvolt = <1500000>;
179 regulator-name = "vcc-dram";
180};
181
182&reg_dldo1 {
183 regulator-min-microvolt = <3300000>;
184 regulator-max-microvolt = <3300000>;
185 regulator-name = "vcc-wifi";
186};
187
188/* Voltage source for I2C pullup resistors for I2C Bus 0 */
189&reg_dldo3 {
190 regulator-min-microvolt = <2800000>;
191 regulator-max-microvolt = <2800000>;
192 regulator-name = "vddio-csi";
128}; 193};
129 194
130&uart0 { 195&uart0 {
@@ -132,3 +197,9 @@
132 pinctrl-0 = <&uart0_pins_a>; 197 pinctrl-0 = <&uart0_pins_a>;
133 status = "okay"; 198 status = "okay";
134}; 199};
200
201&usbphy {
202 usb1_vbus-supply = <&reg_dldo1>;
203 usb2_vbus-supply = <&reg_dc1sw>;
204 status = "okay";
205};
diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi.dts b/arch/arm/boot/dts/sun7i-a20-bananapi.dts
index fd7594ff90d5..67c8a7644b99 100644
--- a/arch/arm/boot/dts/sun7i-a20-bananapi.dts
+++ b/arch/arm/boot/dts/sun7i-a20-bananapi.dts
@@ -92,6 +92,10 @@
92 status = "okay"; 92 status = "okay";
93}; 93};
94 94
95&codec {
96 status = "okay";
97};
98
95&cpu0 { 99&cpu0 {
96 cpu-supply = <&reg_dcdc2>; 100 cpu-supply = <&reg_dcdc2>;
97 operating-points = < 101 operating-points = <
diff --git a/arch/arm/boot/dts/sun7i-a20-icnova-swac.dts b/arch/arm/boot/dts/sun7i-a20-icnova-swac.dts
new file mode 100644
index 000000000000..f5b5325a70e2
--- /dev/null
+++ b/arch/arm/boot/dts/sun7i-a20-icnova-swac.dts
@@ -0,0 +1,169 @@
1/*
2 * Copyright 2015 Stefan Roese <sr@denx.de>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44#include "sun7i-a20.dtsi"
45#include "sunxi-common-regulators.dtsi"
46
47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50
51/ {
52 model = "ICnova-A20 SWAC";
53 compatible = "swac,icnova-a20-swac", "incircuit,icnova-a20", "allwinner,sun7i-a20";
54
55 aliases {
56 serial0 = &uart0;
57 };
58
59 chosen {
60 stdout-path = "serial0:115200n8";
61 };
62};
63
64&cpu0 {
65 cpu-supply = <&reg_dcdc2>;
66};
67
68&ehci0 {
69 status = "okay";
70};
71
72&ehci1 {
73 status = "okay";
74};
75
76&gmac {
77 pinctrl-names = "default";
78 pinctrl-0 = <&gmac_pins_mii_a>;
79 phy = <&phy1>;
80 phy-mode = "mii";
81 status = "okay";
82
83 phy1: ethernet-phy@1 {
84 reg = <1>;
85 };
86};
87
88&i2c0 {
89 pinctrl-names = "default";
90 pinctrl-0 = <&i2c0_pins_a>;
91 status = "okay";
92
93 axp209: pmic@34 {
94 reg = <0x34>;
95 interrupt-parent = <&nmi_intc>;
96 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
97 };
98};
99
100&i2c1 {
101 pinctrl-names = "default";
102 pinctrl-0 = <&i2c1_pins_a>;
103 status = "okay";
104};
105
106&mmc0 {
107 pinctrl-names = "default";
108 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_reference_design>;
109 vmmc-supply = <&reg_vcc3v3>;
110 bus-width = <4>;
111 cd-gpios = <&pio 8 5 GPIO_ACTIVE_HIGH>; /* PI5 */
112 cd-inverted;
113 status = "okay";
114};
115
116&ohci0 {
117 status = "okay";
118};
119
120&ohci1 {
121 status = "okay";
122};
123
124#include "axp209.dtsi"
125
126&reg_dcdc2 {
127 regulator-always-on;
128 regulator-min-microvolt = <1000000>;
129 regulator-max-microvolt = <1400000>;
130 regulator-name = "vdd-cpu";
131};
132
133&reg_dcdc3 {
134 regulator-always-on;
135 regulator-min-microvolt = <1000000>;
136 regulator-max-microvolt = <1400000>;
137 regulator-name = "vdd-int-dll";
138};
139
140&reg_ldo1 {
141 regulator-name = "vdd-rtc";
142};
143
144&reg_ldo2 {
145 regulator-always-on;
146 regulator-min-microvolt = <3000000>;
147 regulator-max-microvolt = <3000000>;
148 regulator-name = "avcc";
149};
150
151&reg_usb1_vbus {
152 status = "okay";
153};
154
155&reg_usb2_vbus {
156 status = "okay";
157};
158
159&uart0 {
160 pinctrl-names = "default";
161 pinctrl-0 = <&uart0_pins_a>;
162 status = "okay";
163};
164
165&usbphy {
166 usb1_vbus-supply = <&reg_usb1_vbus>;
167 usb2_vbus-supply = <&reg_usb2_vbus>;
168 status = "okay";
169};
diff --git a/arch/arm/boot/dts/sun7i-a20-mk808c.dts b/arch/arm/boot/dts/sun7i-a20-mk808c.dts
index 4f432f8ade77..c9e648d17a1e 100644
--- a/arch/arm/boot/dts/sun7i-a20-mk808c.dts
+++ b/arch/arm/boot/dts/sun7i-a20-mk808c.dts
@@ -68,6 +68,10 @@
68 }; 68 };
69}; 69};
70 70
71&codec {
72 status = "okay";
73};
74
71&ehci0 { 75&ehci0 {
72 status = "okay"; 76 status = "okay";
73}; 77};
diff --git a/arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts b/arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts
index b7fe102475e7..c3c626b2cfa2 100644
--- a/arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts
@@ -1,5 +1,6 @@
1/* 1/*
2 * Copyright 2015 - Marcus Cooper <codekipper@gmail.com> 2 * Copyright 2015 - Marcus Cooper <codekipper@gmail.com>
3 * Copyright 2015 - Karsten Merker <merker@debian.org>
3 * 4 *
4 * This file is dual-licensed: you can use it either under the terms 5 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual 6 * of the GPL or the X11 license, at your option. Note that this dual
@@ -45,6 +46,7 @@
45#include "sunxi-common-regulators.dtsi" 46#include "sunxi-common-regulators.dtsi"
46 47
47#include <dt-bindings/gpio/gpio.h> 48#include <dt-bindings/gpio/gpio.h>
49#include <dt-bindings/input/input.h>
48#include <dt-bindings/interrupt-controller/irq.h> 50#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h> 51#include <dt-bindings/pinctrl/sun4i-a10.h>
50 52
@@ -86,6 +88,10 @@
86 status = "okay"; 88 status = "okay";
87}; 89};
88 90
91&codec {
92 status = "okay";
93};
94
89&gmac { 95&gmac {
90 pinctrl-names = "default"; 96 pinctrl-names = "default";
91 pinctrl-0 = <&gmac_pins_rgmii_a>; 97 pinctrl-0 = <&gmac_pins_rgmii_a>;
@@ -110,6 +116,60 @@
110 }; 116 };
111}; 117};
112 118
119&lradc {
120 vref-supply = <&reg_vcc3v0>;
121 status = "okay";
122
123 button@190 {
124 label = "Volume Up";
125 linux,code = <KEY_VOLUMEUP>;
126 channel = <0>;
127 voltage = <190000>;
128 };
129
130 button@390 {
131 label = "Volume Down";
132 linux,code = <KEY_VOLUMEDOWN>;
133 channel = <0>;
134 voltage = <390000>;
135 };
136
137 button@600 {
138 label = "Menu";
139 linux,code = <KEY_MENU>;
140 channel = <0>;
141 voltage = <600000>;
142 };
143
144 button@800 {
145 label = "Search";
146 linux,code = <KEY_SEARCH>;
147 channel = <0>;
148 voltage = <800000>;
149 };
150
151 button@980 {
152 label = "Home";
153 linux,code = <KEY_HOMEPAGE>;
154 channel = <0>;
155 voltage = <980000>;
156 };
157
158 button@1180 {
159 label = "Esc";
160 linux,code = <KEY_ESC>;
161 channel = <0>;
162 voltage = <1180000>;
163 };
164
165 button@1400 {
166 label = "Enter";
167 linux,code = <KEY_ENTER>;
168 channel = <0>;
169 voltage = <1400000>;
170 };
171};
172
113&mmc0 { 173&mmc0 {
114 pinctrl-names = "default"; 174 pinctrl-names = "default";
115 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_reference_design>; 175 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_reference_design>;
@@ -120,6 +180,16 @@
120 status = "okay"; 180 status = "okay";
121}; 181};
122 182
183&mmc3 {
184 pinctrl-names = "default";
185 pinctrl-0 = <&mmc3_pins_a>, <&mmc3_cd_pin_olimex_som_evb>;
186 vmmc-supply = <&reg_vcc3v3>;
187 bus-width = <4>;
188 cd-gpios = <&pio 7 0 GPIO_ACTIVE_HIGH>; /* PH0 */
189 cd-inverted;
190 status = "okay";
191};
192
123&ohci0 { 193&ohci0 {
124 status = "okay"; 194 status = "okay";
125}; 195};
@@ -142,6 +212,13 @@
142 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 212 allwinner,drive = <SUN4I_PINCTRL_20_MA>;
143 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 213 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
144 }; 214 };
215
216 mmc3_cd_pin_olimex_som_evb: mmc3_cd_pin@0 {
217 allwinner,pins = "PH0";
218 allwinner,function = "gpio_in";
219 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
220 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
221 };
145}; 222};
146 223
147&reg_ahci_5v { 224&reg_ahci_5v {
diff --git a/arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts b/arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts
index 4f65664e5dfe..2be04c438b1e 100644
--- a/arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts
+++ b/arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts
@@ -95,6 +95,10 @@
95 status = "okay"; 95 status = "okay";
96}; 96};
97 97
98&codec {
99 status = "okay";
100};
101
98&ehci0 { 102&ehci0 {
99 status = "okay"; 103 status = "okay";
100}; 104};
diff --git a/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
index 1757a6ad74e9..ddac7328b852 100644
--- a/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
+++ b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
@@ -82,6 +82,10 @@
82 status = "okay"; 82 status = "okay";
83}; 83};
84 84
85&codec {
86 status = "okay";
87};
88
85&cpu0 { 89&cpu0 {
86 cpu-supply = <&reg_dcdc2>; 90 cpu-supply = <&reg_dcdc2>;
87}; 91};
diff --git a/arch/arm/boot/dts/sun7i-a20-pcduino3.dts b/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
index 861a4a66fb19..1a8b39be1d61 100644
--- a/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
+++ b/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
@@ -111,6 +111,10 @@
111 allwinner,pins = "PH2"; 111 allwinner,pins = "PH2";
112}; 112};
113 113
114&codec {
115 status = "okay";
116};
117
114&cpu0 { 118&cpu0 {
115 cpu-supply = <&reg_dcdc2>; 119 cpu-supply = <&reg_dcdc2>;
116}; 120};
diff --git a/arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts b/arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts
index 78239ad988e7..2f6b21adddd9 100644
--- a/arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts
+++ b/arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts
@@ -48,6 +48,7 @@
48#include <dt-bindings/gpio/gpio.h> 48#include <dt-bindings/gpio/gpio.h>
49#include <dt-bindings/input/input.h> 49#include <dt-bindings/input/input.h>
50#include <dt-bindings/interrupt-controller/irq.h> 50#include <dt-bindings/interrupt-controller/irq.h>
51#include <dt-bindings/pwm/pwm.h>
51 52
52/ { 53/ {
53 model = "Wexler TAB7200"; 54 model = "Wexler TAB7200";
@@ -57,11 +58,28 @@
57 serial0 = &uart0; 58 serial0 = &uart0;
58 }; 59 };
59 60
61 backlight {
62 compatible = "pwm-backlight";
63 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
64 brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
65 default-brightness-level = <8>;
66 pinctrl-names = "default";
67 pinctrl-0 = <&bl_enable_pin>;
68 enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
69 };
70
60 chosen { 71 chosen {
61 stdout-path = "serial0:115200n8"; 72 stdout-path = "serial0:115200n8";
62 }; 73 };
63}; 74};
64 75
76&codec {
77 pinctrl-names = "default";
78 pinctrl-0 = <&codec_pa_pin>;
79 allwinner,pa-gpios = <&pio 7 15 GPIO_ACTIVE_HIGH>; /* PH15 */
80 status = "okay";
81};
82
65&cpu0 { 83&cpu0 {
66 cpu-supply = <&reg_dcdc2>; 84 cpu-supply = <&reg_dcdc2>;
67}; 85};
@@ -98,6 +116,18 @@
98 pinctrl-names = "default"; 116 pinctrl-names = "default";
99 pinctrl-0 = <&i2c2_pins_a>; 117 pinctrl-0 = <&i2c2_pins_a>;
100 status = "okay"; 118 status = "okay";
119
120 gt911: touchscreen@5d {
121 compatible = "goodix,gt911";
122 reg = <0x5d>;
123 interrupt-parent = <&pio>;
124 interrupts = <7 21 IRQ_TYPE_EDGE_FALLING>; /* EINT21 (PH21) */
125 pinctrl-names = "default";
126 pinctrl-0 = <&ts_reset_pin>;
127 irq-gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>; /* INT (PH21) */
128 reset-gpios = <&pio 1 13 GPIO_ACTIVE_HIGH>; /* RST (PB13) */
129 touchscreen-swapped-x-y;
130 };
101}; 131};
102 132
103&lradc { 133&lradc {
@@ -142,6 +172,27 @@
142}; 172};
143 173
144&pio { 174&pio {
175 bl_enable_pin: bl_enable_pin@0 {
176 allwinner,pins = "PH7";
177 allwinner,function = "gpio_out";
178 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
179 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
180 };
181
182 codec_pa_pin: codec_pa_pin@0 {
183 allwinner,pins = "PH15";
184 allwinner,function = "gpio_out";
185 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
186 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
187 };
188
189 ts_reset_pin: ts_reset_pin@0 {
190 allwinner,pins = "PB13";
191 allwinner,function = "gpio_out";
192 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
193 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
194 };
195
145 usb0_id_detect_pin: usb0_id_detect_pin@0 { 196 usb0_id_detect_pin: usb0_id_detect_pin@0 {
146 allwinner,pins = "PH4"; 197 allwinner,pins = "PH4";
147 allwinner,function = "gpio_in"; 198 allwinner,function = "gpio_in";
@@ -150,6 +201,12 @@
150 }; 201 };
151}; 202};
152 203
204&pwm {
205 pinctrl-names = "default";
206 pinctrl-0 = <&pwm0_pins_a>;
207 status = "okay";
208};
209
153&reg_dcdc2 { 210&reg_dcdc2 {
154 regulator-always-on; 211 regulator-always-on;
155 regulator-min-microvolt = <1000000>; 212 regulator-min-microvolt = <1000000>;
diff --git a/arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts b/arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts
index 85b500d8cc4c..dc31d476ef81 100644
--- a/arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts
+++ b/arch/arm/boot/dts/sun7i-a20-wits-pro-a20-dkt.dts
@@ -80,6 +80,18 @@
80 status = "okay"; 80 status = "okay";
81}; 81};
82 82
83&gmac {
84 pinctrl-names = "default";
85 pinctrl-0 = <&gmac_pins_rgmii_a>;
86 phy = <&phy1>;
87 phy-mode = "rgmii";
88 status = "okay";
89
90 phy1: ethernet-phy@1 {
91 reg = <1>;
92 };
93};
94
83&i2c0 { 95&i2c0 {
84 pinctrl-names = "default"; 96 pinctrl-names = "default";
85 pinctrl-0 = <&i2c0_pins_a>; 97 pinctrl-0 = <&i2c0_pins_a>;
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
index e02eb720c4fc..0940a788f824 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -68,7 +68,7 @@
68 "simple-framebuffer"; 68 "simple-framebuffer";
69 allwinner,pipeline = "de_be0-lcd0-hdmi"; 69 allwinner,pipeline = "de_be0-lcd0-hdmi";
70 clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>, 70 clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
71 <&ahb_gates 44>; 71 <&ahb_gates 44>, <&dram_gates 26>;
72 status = "disabled"; 72 status = "disabled";
73 }; 73 };
74 74
@@ -76,7 +76,8 @@
76 compatible = "allwinner,simple-framebuffer", 76 compatible = "allwinner,simple-framebuffer",
77 "simple-framebuffer"; 77 "simple-framebuffer";
78 allwinner,pipeline = "de_be0-lcd0"; 78 allwinner,pipeline = "de_be0-lcd0";
79 clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>; 79 clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>,
80 <&dram_gates 26>;
80 status = "disabled"; 81 status = "disabled";
81 }; 82 };
82 83
@@ -85,7 +86,7 @@
85 "simple-framebuffer"; 86 "simple-framebuffer";
86 allwinner,pipeline = "de_be0-lcd0-tve0"; 87 allwinner,pipeline = "de_be0-lcd0-tve0";
87 clocks = <&pll5 1>, <&ahb_gates 34>, <&ahb_gates 36>, 88 clocks = <&pll5 1>, <&ahb_gates 34>, <&ahb_gates 36>,
88 <&ahb_gates 44>; 89 <&ahb_gates 44>, <&dram_gates 26>;
89 status = "disabled"; 90 status = "disabled";
90 }; 91 };
91 }; 92 };
@@ -501,6 +502,40 @@
501 clock-output-names = "spi3"; 502 clock-output-names = "spi3";
502 }; 503 };
503 504
505 dram_gates: clk@01c20100 {
506 #clock-cells = <1>;
507 compatible = "allwinner,sun4i-a10-dram-gates-clk";
508 reg = <0x01c20100 0x4>;
509 clocks = <&pll5 0>;
510 clock-indices = <0>,
511 <1>, <2>,
512 <3>,
513 <4>,
514 <5>, <6>,
515 <15>,
516 <24>, <25>,
517 <26>, <27>,
518 <28>, <29>;
519 clock-output-names = "dram_ve",
520 "dram_csi0", "dram_csi1",
521 "dram_ts",
522 "dram_tvd",
523 "dram_tve0", "dram_tve1",
524 "dram_output",
525 "dram_de_fe1", "dram_de_fe0",
526 "dram_de_be0", "dram_de_be1",
527 "dram_de_mp", "dram_ace";
528 };
529
530 ve_clk: clk@01c2013c {
531 #clock-cells = <0>;
532 #reset-cells = <0>;
533 compatible = "allwinner,sun4i-a10-ve-clk";
534 reg = <0x01c2013c 0x4>;
535 clocks = <&pll4>;
536 clock-output-names = "ve";
537 };
538
504 codec_clk: clk@01c20140 { 539 codec_clk: clk@01c20140 {
505 #clock-cells = <0>; 540 #clock-cells = <0>;
506 compatible = "allwinner,sun4i-a10-codec-clk"; 541 compatible = "allwinner,sun4i-a10-codec-clk";
diff --git a/arch/arm/boot/dts/sun8i-a23-a33.dtsi b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
index 0c0964d4fa1f..6f88fb0ddbc7 100644
--- a/arch/arm/boot/dts/sun8i-a23-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
@@ -56,7 +56,7 @@
56 #size-cells = <1>; 56 #size-cells = <1>;
57 ranges; 57 ranges;
58 58
59 framebuffer@0 { 59 simplefb_lcd: framebuffer@0 {
60 compatible = "allwinner,simple-framebuffer", 60 compatible = "allwinner,simple-framebuffer",
61 "simple-framebuffer"; 61 "simple-framebuffer";
62 allwinner,pipeline = "de_be0-lcd0"; 62 allwinner,pipeline = "de_be0-lcd0";
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
new file mode 100644
index 000000000000..e67df590535f
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
@@ -0,0 +1,77 @@
1/*
2 * Copyright (C) 2015 Jens Kuske <jenskuske@gmail.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44#include "sun8i-h3.dtsi"
45#include "sunxi-common-regulators.dtsi"
46
47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/pinctrl/sun4i-a10.h>
49
50/ {
51 model = "Xunlong Orange Pi Plus";
52 compatible = "xunlong,orangepi-plus", "allwinner,sun8i-h3";
53
54 aliases {
55 serial0 = &uart0;
56 };
57
58 chosen {
59 stdout-path = "serial0:115200n8";
60 };
61};
62
63&mmc0 {
64 pinctrl-names = "default";
65 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
66 vmmc-supply = <&reg_vcc3v3>;
67 bus-width = <4>;
68 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
69 cd-inverted;
70 status = "okay";
71};
72
73&uart0 {
74 pinctrl-names = "default";
75 pinctrl-0 = <&uart0_pins_a>;
76 status = "okay";
77};
diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
new file mode 100644
index 000000000000..1524130e43c9
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
@@ -0,0 +1,497 @@
1/*
2 * Copyright (C) 2015 Jens Kuske <jenskuske@gmail.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43#include "skeleton.dtsi"
44
45#include <dt-bindings/interrupt-controller/arm-gic.h>
46#include <dt-bindings/pinctrl/sun4i-a10.h>
47
48/ {
49 interrupt-parent = <&gic>;
50
51 cpus {
52 #address-cells = <1>;
53 #size-cells = <0>;
54
55 cpu@0 {
56 compatible = "arm,cortex-a7";
57 device_type = "cpu";
58 reg = <0>;
59 };
60
61 cpu@1 {
62 compatible = "arm,cortex-a7";
63 device_type = "cpu";
64 reg = <1>;
65 };
66
67 cpu@2 {
68 compatible = "arm,cortex-a7";
69 device_type = "cpu";
70 reg = <2>;
71 };
72
73 cpu@3 {
74 compatible = "arm,cortex-a7";
75 device_type = "cpu";
76 reg = <3>;
77 };
78 };
79
80 timer {
81 compatible = "arm,armv7-timer";
82 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
83 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
84 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
85 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
86 };
87
88 clocks {
89 #address-cells = <1>;
90 #size-cells = <1>;
91 ranges;
92
93 osc24M: osc24M_clk {
94 #clock-cells = <0>;
95 compatible = "fixed-clock";
96 clock-frequency = <24000000>;
97 clock-output-names = "osc24M";
98 };
99
100 osc32k: osc32k_clk {
101 #clock-cells = <0>;
102 compatible = "fixed-clock";
103 clock-frequency = <32768>;
104 clock-output-names = "osc32k";
105 };
106
107 pll1: clk@01c20000 {
108 #clock-cells = <0>;
109 compatible = "allwinner,sun8i-a23-pll1-clk";
110 reg = <0x01c20000 0x4>;
111 clocks = <&osc24M>;
112 clock-output-names = "pll1";
113 };
114
115 /* dummy clock until actually implemented */
116 pll5: pll5_clk {
117 #clock-cells = <0>;
118 compatible = "fixed-clock";
119 clock-frequency = <0>;
120 clock-output-names = "pll5";
121 };
122
123 pll6: clk@01c20028 {
124 #clock-cells = <1>;
125 compatible = "allwinner,sun6i-a31-pll6-clk";
126 reg = <0x01c20028 0x4>;
127 clocks = <&osc24M>;
128 clock-output-names = "pll6", "pll6x2";
129 };
130
131 pll6d2: pll6d2_clk {
132 #clock-cells = <0>;
133 compatible = "fixed-factor-clock";
134 clock-div = <2>;
135 clock-mult = <1>;
136 clocks = <&pll6 0>;
137 clock-output-names = "pll6d2";
138 };
139
140 /* dummy clock until pll6 can be reused */
141 pll8: pll8_clk {
142 #clock-cells = <0>;
143 compatible = "fixed-clock";
144 clock-frequency = <1>;
145 clock-output-names = "pll8";
146 };
147
148 cpu: cpu_clk@01c20050 {
149 #clock-cells = <0>;
150 compatible = "allwinner,sun4i-a10-cpu-clk";
151 reg = <0x01c20050 0x4>;
152 clocks = <&osc32k>, <&osc24M>, <&pll1>, <&pll1>;
153 clock-output-names = "cpu";
154 };
155
156 axi: axi_clk@01c20050 {
157 #clock-cells = <0>;
158 compatible = "allwinner,sun4i-a10-axi-clk";
159 reg = <0x01c20050 0x4>;
160 clocks = <&cpu>;
161 clock-output-names = "axi";
162 };
163
164 ahb1: ahb1_clk@01c20054 {
165 #clock-cells = <0>;
166 compatible = "allwinner,sun6i-a31-ahb1-clk";
167 reg = <0x01c20054 0x4>;
168 clocks = <&osc32k>, <&osc24M>, <&axi>, <&pll6 0>;
169 clock-output-names = "ahb1";
170 };
171
172 ahb2: ahb2_clk@01c2005c {
173 #clock-cells = <0>;
174 compatible = "allwinner,sun8i-h3-ahb2-clk";
175 reg = <0x01c2005c 0x4>;
176 clocks = <&ahb1>, <&pll6d2>;
177 clock-output-names = "ahb2";
178 };
179
180 apb1: apb1_clk@01c20054 {
181 #clock-cells = <0>;
182 compatible = "allwinner,sun4i-a10-apb0-clk";
183 reg = <0x01c20054 0x4>;
184 clocks = <&ahb1>;
185 clock-output-names = "apb1";
186 };
187
188 apb2: apb2_clk@01c20058 {
189 #clock-cells = <0>;
190 compatible = "allwinner,sun4i-a10-apb1-clk";
191 reg = <0x01c20058 0x4>;
192 clocks = <&osc32k>, <&osc24M>, <&pll6 0>, <&pll6 0>;
193 clock-output-names = "apb2";
194 };
195
196 bus_gates: clk@01c20060 {
197 #clock-cells = <1>;
198 compatible = "allwinner,sun8i-h3-bus-gates-clk";
199 reg = <0x01c20060 0x14>;
200 clocks = <&ahb1>, <&ahb2>, <&apb1>, <&apb2>;
201 clock-names = "ahb1", "ahb2", "apb1", "apb2";
202 clock-indices = <5>, <6>, <8>,
203 <9>, <10>, <13>,
204 <14>, <17>, <18>,
205 <19>, <20>,
206 <21>, <23>,
207 <24>, <25>,
208 <26>, <27>,
209 <28>, <29>,
210 <30>, <31>, <32>,
211 <35>, <36>, <37>,
212 <40>, <41>, <43>,
213 <44>, <52>, <53>,
214 <54>, <64>,
215 <65>, <69>, <72>,
216 <76>, <77>, <78>,
217 <96>, <97>, <98>,
218 <112>, <113>,
219 <114>, <115>,
220 <116>, <128>, <135>;
221 clock-output-names = "bus_ce", "bus_dma", "bus_mmc0",
222 "bus_mmc1", "bus_mmc2", "bus_nand",
223 "bus_sdram", "bus_gmac", "bus_ts",
224 "bus_hstimer", "bus_spi0",
225 "bus_spi1", "bus_otg",
226 "bus_otg_ehci0", "bus_ehci1",
227 "bus_ehci2", "bus_ehci3",
228 "bus_otg_ohci0", "bus_ohci1",
229 "bus_ohci2", "bus_ohci3", "bus_ve",
230 "bus_lcd0", "bus_lcd1", "bus_deint",
231 "bus_csi", "bus_tve", "bus_hdmi",
232 "bus_de", "bus_gpu", "bus_msgbox",
233 "bus_spinlock", "bus_codec",
234 "bus_spdif", "bus_pio", "bus_ths",
235 "bus_i2s0", "bus_i2s1", "bus_i2s2",
236 "bus_i2c0", "bus_i2c1", "bus_i2c2",
237 "bus_uart0", "bus_uart1",
238 "bus_uart2", "bus_uart3",
239 "bus_scr", "bus_ephy", "bus_dbg";
240 };
241
242 mmc0_clk: clk@01c20088 {
243 #clock-cells = <1>;
244 compatible = "allwinner,sun4i-a10-mmc-clk";
245 reg = <0x01c20088 0x4>;
246 clocks = <&osc24M>, <&pll6 0>, <&pll8>;
247 clock-output-names = "mmc0",
248 "mmc0_output",
249 "mmc0_sample";
250 };
251
252 mmc1_clk: clk@01c2008c {
253 #clock-cells = <1>;
254 compatible = "allwinner,sun4i-a10-mmc-clk";
255 reg = <0x01c2008c 0x4>;
256 clocks = <&osc24M>, <&pll6 0>, <&pll8>;
257 clock-output-names = "mmc1",
258 "mmc1_output",
259 "mmc1_sample";
260 };
261
262 mmc2_clk: clk@01c20090 {
263 #clock-cells = <1>;
264 compatible = "allwinner,sun4i-a10-mmc-clk";
265 reg = <0x01c20090 0x4>;
266 clocks = <&osc24M>, <&pll6 0>, <&pll8>;
267 clock-output-names = "mmc2",
268 "mmc2_output",
269 "mmc2_sample";
270 };
271
272 mbus_clk: clk@01c2015c {
273 #clock-cells = <0>;
274 compatible = "allwinner,sun8i-a23-mbus-clk";
275 reg = <0x01c2015c 0x4>;
276 clocks = <&osc24M>, <&pll6 1>, <&pll5>;
277 clock-output-names = "mbus";
278 };
279 };
280
281 soc {
282 compatible = "simple-bus";
283 #address-cells = <1>;
284 #size-cells = <1>;
285 ranges;
286
287 dma: dma-controller@01c02000 {
288 compatible = "allwinner,sun8i-h3-dma";
289 reg = <0x01c02000 0x1000>;
290 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
291 clocks = <&bus_gates 6>;
292 resets = <&ahb_rst 6>;
293 #dma-cells = <1>;
294 };
295
296 mmc0: mmc@01c0f000 {
297 compatible = "allwinner,sun5i-a13-mmc";
298 reg = <0x01c0f000 0x1000>;
299 clocks = <&bus_gates 8>,
300 <&mmc0_clk 0>,
301 <&mmc0_clk 1>,
302 <&mmc0_clk 2>;
303 clock-names = "ahb",
304 "mmc",
305 "output",
306 "sample";
307 resets = <&ahb_rst 8>;
308 reset-names = "ahb";
309 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
310 status = "disabled";
311 #address-cells = <1>;
312 #size-cells = <0>;
313 };
314
315 mmc1: mmc@01c10000 {
316 compatible = "allwinner,sun5i-a13-mmc";
317 reg = <0x01c10000 0x1000>;
318 clocks = <&bus_gates 9>,
319 <&mmc1_clk 0>,
320 <&mmc1_clk 1>,
321 <&mmc1_clk 2>;
322 clock-names = "ahb",
323 "mmc",
324 "output",
325 "sample";
326 resets = <&ahb_rst 9>;
327 reset-names = "ahb";
328 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
329 status = "disabled";
330 #address-cells = <1>;
331 #size-cells = <0>;
332 };
333
334 mmc2: mmc@01c11000 {
335 compatible = "allwinner,sun5i-a13-mmc";
336 reg = <0x01c11000 0x1000>;
337 clocks = <&bus_gates 10>,
338 <&mmc2_clk 0>,
339 <&mmc2_clk 1>,
340 <&mmc2_clk 2>;
341 clock-names = "ahb",
342 "mmc",
343 "output",
344 "sample";
345 resets = <&ahb_rst 10>;
346 reset-names = "ahb";
347 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
348 status = "disabled";
349 #address-cells = <1>;
350 #size-cells = <0>;
351 };
352
353 pio: pinctrl@01c20800 {
354 compatible = "allwinner,sun8i-h3-pinctrl";
355 reg = <0x01c20800 0x400>;
356 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
357 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
358 clocks = <&bus_gates 69>;
359 gpio-controller;
360 #gpio-cells = <3>;
361 interrupt-controller;
362 #interrupt-cells = <2>;
363
364 uart0_pins_a: uart0@0 {
365 allwinner,pins = "PA4", "PA5";
366 allwinner,function = "uart0";
367 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
368 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
369 };
370
371 mmc0_pins_a: mmc0@0 {
372 allwinner,pins = "PF0", "PF1", "PF2", "PF3",
373 "PF4", "PF5";
374 allwinner,function = "mmc0";
375 allwinner,drive = <SUN4I_PINCTRL_30_MA>;
376 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
377 };
378
379 mmc0_cd_pin: mmc0_cd_pin@0 {
380 allwinner,pins = "PF6";
381 allwinner,function = "gpio_in";
382 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
383 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
384 };
385
386 mmc1_pins_a: mmc1@0 {
387 allwinner,pins = "PG0", "PG1", "PG2", "PG3",
388 "PG4", "PG5";
389 allwinner,function = "mmc1";
390 allwinner,drive = <SUN4I_PINCTRL_30_MA>;
391 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
392 };
393 };
394
395 ahb_rst: reset@01c202c0 {
396 #reset-cells = <1>;
397 compatible = "allwinner,sun6i-a31-ahb1-reset";
398 reg = <0x01c202c0 0xc>;
399 };
400
401 apb1_rst: reset@01c202d0 {
402 #reset-cells = <1>;
403 compatible = "allwinner,sun6i-a31-clock-reset";
404 reg = <0x01c202d0 0x4>;
405 };
406
407 apb2_rst: reset@01c202d8 {
408 #reset-cells = <1>;
409 compatible = "allwinner,sun6i-a31-clock-reset";
410 reg = <0x01c202d8 0x4>;
411 };
412
413 timer@01c20c00 {
414 compatible = "allwinner,sun4i-a10-timer";
415 reg = <0x01c20c00 0xa0>;
416 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
417 <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
418 clocks = <&osc24M>;
419 };
420
421 wdt0: watchdog@01c20ca0 {
422 compatible = "allwinner,sun6i-a31-wdt";
423 reg = <0x01c20ca0 0x20>;
424 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
425 };
426
427 uart0: serial@01c28000 {
428 compatible = "snps,dw-apb-uart";
429 reg = <0x01c28000 0x400>;
430 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
431 reg-shift = <2>;
432 reg-io-width = <4>;
433 clocks = <&bus_gates 112>;
434 resets = <&apb2_rst 16>;
435 dmas = <&dma 6>, <&dma 6>;
436 dma-names = "rx", "tx";
437 status = "disabled";
438 };
439
440 uart1: serial@01c28400 {
441 compatible = "snps,dw-apb-uart";
442 reg = <0x01c28400 0x400>;
443 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
444 reg-shift = <2>;
445 reg-io-width = <4>;
446 clocks = <&bus_gates 113>;
447 resets = <&apb2_rst 17>;
448 dmas = <&dma 7>, <&dma 7>;
449 dma-names = "rx", "tx";
450 status = "disabled";
451 };
452
453 uart2: serial@01c28800 {
454 compatible = "snps,dw-apb-uart";
455 reg = <0x01c28800 0x400>;
456 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
457 reg-shift = <2>;
458 reg-io-width = <4>;
459 clocks = <&bus_gates 114>;
460 resets = <&apb2_rst 18>;
461 dmas = <&dma 8>, <&dma 8>;
462 dma-names = "rx", "tx";
463 status = "disabled";
464 };
465
466 uart3: serial@01c28c00 {
467 compatible = "snps,dw-apb-uart";
468 reg = <0x01c28c00 0x400>;
469 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
470 reg-shift = <2>;
471 reg-io-width = <4>;
472 clocks = <&bus_gates 115>;
473 resets = <&apb2_rst 19>;
474 dmas = <&dma 9>, <&dma 9>;
475 dma-names = "rx", "tx";
476 status = "disabled";
477 };
478
479 gic: interrupt-controller@01c81000 {
480 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
481 reg = <0x01c81000 0x1000>,
482 <0x01c82000 0x1000>,
483 <0x01c84000 0x2000>,
484 <0x01c86000 0x2000>;
485 interrupt-controller;
486 #interrupt-cells = <3>;
487 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
488 };
489
490 rtc: rtc@01f00000 {
491 compatible = "allwinner,sun6i-a31-rtc";
492 reg = <0x01f00000 0x54>;
493 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
494 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
495 };
496 };
497};
diff --git a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
index 6484dcf69873..382bd9fc5647 100644
--- a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
+++ b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
@@ -62,9 +62,31 @@
62 stdout-path = "serial0:115200n8"; 62 stdout-path = "serial0:115200n8";
63 }; 63 };
64 64
65 leds {
66 compatible = "gpio-leds";
67 pinctrl-names = "default";
68 pinctrl-0 = <&led_pins_cubieboard4>;
69
70 green {
71 label = "cubieboard4:green:usr";
72 gpios = <&pio 7 17 GPIO_ACTIVE_HIGH>; /* PH17 */
73 };
74
75 red {
76 label = "cubieboard4:red:usr";
77 gpios = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
78 };
79 };
65}; 80};
66 81
67&pio { 82&pio {
83 led_pins_cubieboard4: led-pins@0 {
84 allwinner,pins = "PH6", "PH17";
85 allwinner,function = "gpio_out";
86 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
87 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
88 };
89
68 mmc0_cd_pin_cubieboard4: mmc0_cd_pin@0 { 90 mmc0_cd_pin_cubieboard4: mmc0_cd_pin@0 {
69 allwinner,pins = "PH18"; 91 allwinner,pins = "PH18";
70 allwinner,function = "gpio_in"; 92 allwinner,function = "gpio_in";
@@ -92,6 +114,14 @@
92 status = "okay"; 114 status = "okay";
93}; 115};
94 116
117&r_ir {
118 status = "okay";
119};
120
121&r_rsb {
122 status = "okay";
123};
124
95&uart0 { 125&uart0 {
96 pinctrl-names = "default"; 126 pinctrl-names = "default";
97 pinctrl-0 = <&uart0_pins_a>; 127 pinctrl-0 = <&uart0_pins_a>;
diff --git a/arch/arm/boot/dts/sun9i-a80-optimus.dts b/arch/arm/boot/dts/sun9i-a80-optimus.dts
index 6ce4b5e8b615..c0060e4f7379 100644
--- a/arch/arm/boot/dts/sun9i-a80-optimus.dts
+++ b/arch/arm/boot/dts/sun9i-a80-optimus.dts
@@ -65,7 +65,7 @@
65 leds { 65 leds {
66 compatible = "gpio-leds"; 66 compatible = "gpio-leds";
67 pinctrl-names = "default"; 67 pinctrl-names = "default";
68 pinctrl-0 = <&led_pins_optimus>; 68 pinctrl-0 = <&led_pins_optimus>, <&led_r_pins_optimus>;
69 69
70 /* The LED names match those found on the board */ 70 /* The LED names match those found on the board */
71 71
@@ -74,7 +74,10 @@
74 gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; 74 gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>;
75 }; 75 };
76 76
77 /* led3 is on PM15, in R_PIO */ 77 led3 {
78 label = "optimus:led3:usr";
79 gpios = <&r_pio 1 15 GPIO_ACTIVE_HIGH>; /* PM15 */
80 };
78 81
79 led4 { 82 led4 {
80 label = "optimus:led4:usr"; 83 label = "optimus:led4:usr";
@@ -180,6 +183,23 @@
180 status = "okay"; 183 status = "okay";
181}; 184};
182 185
186&r_ir {
187 status = "okay";
188};
189
190&r_pio {
191 led_r_pins_optimus: led-pins@1 {
192 allwinner,pins = "PM15";
193 allwinner,function = "gpio_out";
194 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
195 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
196 };
197};
198
199&r_rsb {
200 status = "okay";
201};
202
183&uart0 { 203&uart0 {
184 pinctrl-names = "default"; 204 pinctrl-names = "default";
185 pinctrl-0 = <&uart0_pins_a>; 205 pinctrl-0 = <&uart0_pins_a>;
diff --git a/arch/arm/boot/dts/sun9i-a80.dtsi b/arch/arm/boot/dts/sun9i-a80.dtsi
index 1118bf5cc4fb..e838f206f2a0 100644
--- a/arch/arm/boot/dts/sun9i-a80.dtsi
+++ b/arch/arm/boot/dts/sun9i-a80.dtsi
@@ -128,6 +128,17 @@
128 */ 128 */
129 ranges = <0 0 0 0x20000000>; 129 ranges = <0 0 0 0x20000000>;
130 130
131 /*
132 * This clock is actually configurable from the PRCM address
133 * space. The external 24M oscillator can be turned off, and
134 * the clock switched to an internal 16M RC oscillator. Under
135 * normal operation there's no reason to do this, and the
136 * default is to use the external good one, so just model this
137 * as a fixed clock. Also it is not entirely clear if the
138 * osc24M mux in the PRCM affects the entire clock tree, which
139 * would also throw all the PLL clock rates off, or just the
140 * downstream clocks in the PRCM.
141 */
131 osc24M: osc24M_clk { 142 osc24M: osc24M_clk {
132 #clock-cells = <0>; 143 #clock-cells = <0>;
133 compatible = "fixed-clock"; 144 compatible = "fixed-clock";
@@ -135,6 +146,13 @@
135 clock-output-names = "osc24M"; 146 clock-output-names = "osc24M";
136 }; 147 };
137 148
149 /*
150 * The 32k clock is from an external source, normally the
151 * AC100 codec/RTC chip. This clock is by default enabled
152 * and clocked at 32768 Hz, from the oscillator connected
153 * to the AC100. It is configurable, but no such driver or
154 * bindings exist yet.
155 */
138 osc32k: osc32k_clk { 156 osc32k: osc32k_clk {
139 #clock-cells = <0>; 157 #clock-cells = <0>;
140 compatible = "fixed-clock"; 158 compatible = "fixed-clock";
@@ -164,6 +182,14 @@
164 "usb_phy2", "usb_hsic_12M"; 182 "usb_phy2", "usb_hsic_12M";
165 }; 183 };
166 184
185 pll3: clk@06000008 {
186 /* placeholder until implemented */
187 #clock-cells = <0>;
188 compatible = "fixed-clock";
189 clock-rate = <0>;
190 clock-output-names = "pll3";
191 };
192
167 pll4: clk@0600000c { 193 pll4: clk@0600000c {
168 #clock-cells = <0>; 194 #clock-cells = <0>;
169 compatible = "allwinner,sun9i-a80-pll4-clk"; 195 compatible = "allwinner,sun9i-a80-pll4-clk";
@@ -350,6 +376,68 @@
350 "apb1_uart2", "apb1_uart3", 376 "apb1_uart2", "apb1_uart3",
351 "apb1_uart4", "apb1_uart5"; 377 "apb1_uart4", "apb1_uart5";
352 }; 378 };
379
380 cpus_clk: clk@08001410 {
381 compatible = "allwinner,sun9i-a80-cpus-clk";
382 reg = <0x08001410 0x4>;
383 #clock-cells = <0>;
384 clocks = <&osc32k>, <&osc24M>, <&pll4>, <&pll3>;
385 clock-output-names = "cpus";
386 };
387
388 ahbs: ahbs_clk {
389 compatible = "fixed-factor-clock";
390 #clock-cells = <0>;
391 clock-div = <1>;
392 clock-mult = <1>;
393 clocks = <&cpus_clk>;
394 clock-output-names = "ahbs";
395 };
396
397 apbs: clk@0800141c {
398 compatible = "allwinner,sun8i-a23-apb0-clk";
399 reg = <0x0800141c 0x4>;
400 #clock-cells = <0>;
401 clocks = <&ahbs>;
402 clock-output-names = "apbs";
403 };
404
405 apbs_gates: clk@08001428 {
406 compatible = "allwinner,sun9i-a80-apbs-gates-clk";
407 reg = <0x08001428 0x4>;
408 #clock-cells = <1>;
409 clocks = <&apbs>;
410 clock-indices = <0>, <1>,
411 <2>, <3>,
412 <4>, <5>,
413 <6>, <7>,
414 <12>, <13>,
415 <16>, <17>,
416 <18>, <20>;
417 clock-output-names = "apbs_pio", "apbs_ir",
418 "apbs_timer", "apbs_rsb",
419 "apbs_uart", "apbs_1wire",
420 "apbs_i2c0", "apbs_i2c1",
421 "apbs_ps2_0", "apbs_ps2_1",
422 "apbs_dma", "apbs_i2s0",
423 "apbs_i2s1", "apbs_twd";
424 };
425
426 r_1wire_clk: clk@08001450 {
427 reg = <0x08001450 0x4>;
428 #clock-cells = <0>;
429 compatible = "allwinner,sun4i-a10-mod0-clk";
430 clocks = <&osc32k>, <&osc24M>;
431 clock-output-names = "r_1wire";
432 };
433
434 r_ir_clk: clk@08001454 {
435 reg = <0x08001454 0x4>;
436 #clock-cells = <0>;
437 compatible = "allwinner,sun4i-a10-mod0-clk";
438 clocks = <&osc32k>, <&osc24M>;
439 clock-output-names = "r_ir";
440 };
353 }; 441 };
354 442
355 soc { 443 soc {
@@ -764,14 +852,83 @@
764 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 852 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
765 }; 853 };
766 854
855 apbs_rst: reset@080014b0 {
856 reg = <0x080014b0 0x4>;
857 compatible = "allwinner,sun6i-a31-clock-reset";
858 #reset-cells = <1>;
859 };
860
861 nmi_intc: interrupt-controller@080015a0 {
862 compatible = "allwinner,sun9i-a80-nmi";
863 interrupt-controller;
864 #interrupt-cells = <2>;
865 reg = <0x080015a0 0xc>;
866 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
867 };
868
869 r_ir: ir@08002000 {
870 compatible = "allwinner,sun5i-a13-ir";
871 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
872 pinctrl-names = "default";
873 pinctrl-0 = <&r_ir_pins>;
874 clocks = <&apbs_gates 1>, <&r_ir_clk>;
875 clock-names = "apb", "ir";
876 resets = <&apbs_rst 1>;
877 reg = <0x08002000 0x40>;
878 status = "disabled";
879 };
880
767 r_uart: serial@08002800 { 881 r_uart: serial@08002800 {
768 compatible = "snps,dw-apb-uart"; 882 compatible = "snps,dw-apb-uart";
769 reg = <0x08002800 0x400>; 883 reg = <0x08002800 0x400>;
770 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 884 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
771 reg-shift = <2>; 885 reg-shift = <2>;
772 reg-io-width = <4>; 886 reg-io-width = <4>;
773 clocks = <&osc24M>; 887 clocks = <&apbs_gates 4>;
888 resets = <&apbs_rst 4>;
889 status = "disabled";
890 };
891
892 r_pio: pinctrl@08002c00 {
893 compatible = "allwinner,sun9i-a80-r-pinctrl";
894 reg = <0x08002c00 0x400>;
895 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
896 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
897 clocks = <&apbs_gates 0>;
898 resets = <&apbs_rst 0>;
899 gpio-controller;
900 interrupt-controller;
901 #address-cells = <1>;
902 #size-cells = <0>;
903 #gpio-cells = <3>;
904
905 r_ir_pins: r_ir {
906 allwinner,pins = "PL6";
907 allwinner,function = "s_cir_rx";
908 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
909 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
910 };
911
912 r_rsb_pins: r_rsb {
913 allwinner,pins = "PN0", "PN1";
914 allwinner,function = "s_rsb";
915 allwinner,drive = <SUN4I_PINCTRL_20_MA>;
916 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
917 };
918 };
919
920 r_rsb: i2c@08003400 {
921 compatible = "allwinner,sun8i-a23-rsb";
922 reg = <0x08003400 0x400>;
923 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
924 clocks = <&apbs_gates 3>;
925 clock-frequency = <3000000>;
926 resets = <&apbs_rst 3>;
927 pinctrl-names = "default";
928 pinctrl-0 = <&r_rsb_pins>;
774 status = "disabled"; 929 status = "disabled";
930 #address-cells = <1>;
931 #size-cells = <0>;
775 }; 932 };
776 }; 933 };
777}; 934};
diff --git a/arch/arm/boot/dts/tango4-common.dtsi b/arch/arm/boot/dts/tango4-common.dtsi
new file mode 100644
index 000000000000..ef665d21d317
--- /dev/null
+++ b/arch/arm/boot/dts/tango4-common.dtsi
@@ -0,0 +1,130 @@
1/*
2 * Based on Mans Rullgard's Tango3 DT
3 * https://github.com/mansr/linux-tangox
4 */
5
6#define CPU_CLK 0
7#define SYS_CLK 1
8
9#include <dt-bindings/interrupt-controller/arm-gic.h>
10
11/ {
12 interrupt-parent = <&gic>;
13 #address-cells = <1>;
14 #size-cells = <1>;
15
16 periph_clk: periph_clk {
17 compatible = "fixed-factor-clock";
18 clocks = <&clkgen CPU_CLK>;
19 clock-mult = <1>;
20 clock-div = <2>;
21 #clock-cells = <0>;
22 };
23
24 mpcore {
25 compatible = "simple-bus";
26 ranges = <0x00000000 0x20000000 0x2000>;
27 #address-cells = <1>;
28 #size-cells = <1>;
29
30 scu@0 {
31 compatible = "arm,cortex-a9-scu";
32 reg = <0x0 0x100>;
33 };
34
35 twd@600 {
36 compatible = "arm,cortex-a9-twd-timer";
37 reg = <0x600 0x10>;
38 interrupts = <GIC_PPI 13 IRQ_TYPE_EDGE_RISING>;
39 clocks = <&periph_clk>;
40 always-on;
41 };
42
43 gic: interrupt-controller@1000 {
44 compatible = "arm,cortex-a9-gic";
45 #interrupt-cells = <3>;
46 interrupt-controller;
47 reg = <0x1000 0x1000>, <0x100 0x100>;
48 };
49 };
50
51 l2cc: l2-cache-controller@20100000 {
52 compatible = "arm,pl310-cache";
53 reg = <0x20100000 0x1000>;
54 cache-level = <2>;
55 cache-unified;
56 };
57
58 soc {
59 compatible = "simple-bus";
60 interrupt-parent = <&irq0>;
61 #address-cells = <1>;
62 #size-cells = <1>;
63 ranges;
64
65 xtal: xtal {
66 compatible = "fixed-clock";
67 clock-frequency = <27000000>;
68 #clock-cells = <0>;
69 };
70
71 clkgen: clkgen@10000 {
72 compatible = "sigma,tango4-clkgen";
73 reg = <0x10000 0x40>;
74 clocks = <&xtal>;
75 #clock-cells = <1>;
76 };
77
78 tick-counter@10048 {
79 compatible = "sigma,tick-counter";
80 reg = <0x10048 0x4>;
81 clocks = <&xtal>;
82 };
83
84 uart: serial@10700 {
85 compatible = "ralink,rt2880-uart";
86 reg = <0x10700 0x30>;
87 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
88 clock-frequency = <7372800>;
89 reg-shift = <2>;
90 };
91
92 eth0: ethernet@26000 {
93 compatible = "sigma,smp8734-ethernet";
94 reg = <0x26000 0x800>;
95 interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
96 clocks = <&clkgen SYS_CLK>;
97 };
98
99 intc: interrupt-controller@6e000 {
100 compatible = "sigma,smp8642-intc";
101 reg = <0x6e000 0x400>;
102 ranges = <0 0x6e000 0x400>;
103 interrupt-parent = <&gic>;
104 interrupt-controller;
105 #address-cells = <1>;
106 #size-cells = <1>;
107
108 irq0: irq0@000 {
109 reg = <0x000 0x100>;
110 interrupt-controller;
111 #interrupt-cells = <2>;
112 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
113 };
114
115 irq1: irq1@100 {
116 reg = <0x100 0x100>;
117 interrupt-controller;
118 #interrupt-cells = <2>;
119 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
120 };
121
122 irq2: irq2@300 {
123 reg = <0x300 0x100>;
124 interrupt-controller;
125 #interrupt-cells = <2>;
126 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
127 };
128 };
129 };
130};
diff --git a/arch/arm/boot/dts/tango4-smp8758.dtsi b/arch/arm/boot/dts/tango4-smp8758.dtsi
new file mode 100644
index 000000000000..7ed88ee629fb
--- /dev/null
+++ b/arch/arm/boot/dts/tango4-smp8758.dtsi
@@ -0,0 +1,31 @@
1#include <dt-bindings/interrupt-controller/arm-gic.h>
2
3/ {
4 cpus {
5 #address-cells = <1>;
6 #size-cells = <0>;
7 enable-method = "sigma,tango4-smp";
8
9 cpu0: cpu@0 {
10 compatible = "arm,cortex-a9";
11 next-level-cache = <&l2cc>;
12 device_type = "cpu";
13 reg = <0>;
14 };
15
16 cpu1: cpu@1 {
17 compatible = "arm,cortex-a9";
18 next-level-cache = <&l2cc>;
19 device_type = "cpu";
20 reg = <1>;
21 };
22 };
23
24 pmu {
25 compatible = "arm,cortex-a9-pmu";
26 interrupt-affinity = <&cpu0>, <&cpu1>;
27 interrupts =
28 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
29 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
30 };
31};
diff --git a/arch/arm/boot/dts/tango4-vantage-1172.dts b/arch/arm/boot/dts/tango4-vantage-1172.dts
new file mode 100644
index 000000000000..3e5b9c81a51c
--- /dev/null
+++ b/arch/arm/boot/dts/tango4-vantage-1172.dts
@@ -0,0 +1,37 @@
1/dts-v1/;
2
3#include "tango4-smp8758.dtsi"
4#include "tango4-common.dtsi"
5
6/ {
7 model = "Sigma Designs SMP8758 Vantage-1172 Rev E1";
8 compatible = "sigma,vantage-1172", "sigma,smp8758", "sigma,tango4";
9
10 aliases {
11 serial = &uart;
12 };
13
14 memory@80000000 {
15 device_type = "memory";
16 reg = <0x80000000 0x80000000>; /* 2 GB */
17 };
18
19 chosen {
20 stdout-path = "serial:115200n8";
21 };
22};
23
24&eth0 {
25 phy-connection-type = "rgmii";
26 phy-handle = <&eth0_phy>;
27 #address-cells = <1>;
28 #size-cells = <0>;
29
30 /* Atheros AR8035 */
31 eth0_phy: ethernet-phy@4 {
32 compatible = "ethernet-phy-id004d.d072",
33 "ethernet-phy-ieee802.3-c22";
34 interrupts = <37 IRQ_TYPE_EDGE_RISING>;
35 reg = <4>;
36 };
37};
diff --git a/arch/arm/boot/dts/tps65217.dtsi b/arch/arm/boot/dts/tps65217.dtsi
deleted file mode 100644
index a63272422d76..000000000000
--- a/arch/arm/boot/dts/tps65217.dtsi
+++ /dev/null
@@ -1,56 +0,0 @@
1/*
2 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9/*
10 * Integrated Power Management Chip
11 * http://www.ti.com/lit/ds/symlink/tps65217.pdf
12 */
13
14&tps {
15 compatible = "ti,tps65217";
16
17 regulators {
18 #address-cells = <1>;
19 #size-cells = <0>;
20
21 dcdc1_reg: regulator@0 {
22 reg = <0>;
23 regulator-compatible = "dcdc1";
24 };
25
26 dcdc2_reg: regulator@1 {
27 reg = <1>;
28 regulator-compatible = "dcdc2";
29 };
30
31 dcdc3_reg: regulator@2 {
32 reg = <2>;
33 regulator-compatible = "dcdc3";
34 };
35
36 ldo1_reg: regulator@3 {
37 reg = <3>;
38 regulator-compatible = "ldo1";
39 };
40
41 ldo2_reg: regulator@4 {
42 reg = <4>;
43 regulator-compatible = "ldo2";
44 };
45
46 ldo3_reg: regulator@5 {
47 reg = <5>;
48 regulator-compatible = "ldo3";
49 };
50
51 ldo4_reg: regulator@6 {
52 reg = <6>;
53 regulator-compatible = "ldo4";
54 };
55 };
56};
diff --git a/arch/arm/boot/dts/twl4030_omap3.dtsi b/arch/arm/boot/dts/twl4030_omap3.dtsi
index 3537ae5b2146..5288e6dffef7 100644
--- a/arch/arm/boot/dts/twl4030_omap3.dtsi
+++ b/arch/arm/boot/dts/twl4030_omap3.dtsi
@@ -19,7 +19,7 @@
19 */ 19 */
20 twl4030_pins: pinmux_twl4030_pins { 20 twl4030_pins: pinmux_twl4030_pins {
21 pinctrl-single,pins = < 21 pinctrl-single,pins = <
22 0x1b0 (PIN_INPUT_PULLUP | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* sys_nirq.sys_nirq */ 22 OMAP3_CORE1_IOPAD(0x21e0, PIN_INPUT_PULLUP | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* sys_nirq.sys_nirq */
23 >; 23 >;
24 }; 24 };
25}; 25};
diff --git a/arch/arm/boot/dts/twl6030_omap4.dtsi b/arch/arm/boot/dts/twl6030_omap4.dtsi
index a4fa5703c42b..e373f59cea9c 100644
--- a/arch/arm/boot/dts/twl6030_omap4.dtsi
+++ b/arch/arm/boot/dts/twl6030_omap4.dtsi
@@ -24,7 +24,7 @@
24&omap4_pmx_wkup { 24&omap4_pmx_wkup {
25 twl6030_wkup_pins: pinmux_twl6030_wkup_pins { 25 twl6030_wkup_pins: pinmux_twl6030_wkup_pins {
26 pinctrl-single,pins = < 26 pinctrl-single,pins = <
27 0x14 (PIN_OUTPUT | MUX_MODE2) /* fref_clk0_out.sys_drm_msecure */ 27 OMAP4_IOPAD(0x054, PIN_OUTPUT | MUX_MODE2) /* fref_clk0_out.sys_drm_msecure */
28 >; 28 >;
29 }; 29 };
30}; 30};
@@ -32,7 +32,7 @@
32&omap4_pmx_core { 32&omap4_pmx_core {
33 twl6030_pins: pinmux_twl6030_pins { 33 twl6030_pins: pinmux_twl6030_pins {
34 pinctrl-single,pins = < 34 pinctrl-single,pins = <
35 0x15e (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0) /* sys_nirq1.sys_nirq1 */ 35 OMAP4_IOPAD(0x19e, WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0) /* sys_nirq1.sys_nirq1 */
36 >; 36 >;
37 }; 37 };
38}; 38};
diff --git a/arch/arm/boot/dts/uniphier-common32.dtsi b/arch/arm/boot/dts/uniphier-common32.dtsi
new file mode 100644
index 000000000000..ea9301aaa461
--- /dev/null
+++ b/arch/arm/boot/dts/uniphier-common32.dtsi
@@ -0,0 +1,135 @@
1/*
2 * Device Tree Source commonly used by UniPhier ARM SoCs
3 *
4 * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/include/ "skeleton.dtsi"
46
47/ {
48 soc: soc {
49 compatible = "simple-bus";
50 #address-cells = <1>;
51 #size-cells = <1>;
52 ranges;
53 interrupt-parent = <&intc>;
54
55 extbus: extbus {
56 compatible = "simple-bus";
57 #address-cells = <2>;
58 #size-cells = <1>;
59 };
60
61 serial0: serial@54006800 {
62 compatible = "socionext,uniphier-uart";
63 status = "disabled";
64 reg = <0x54006800 0x40>;
65 interrupts = <0 33 4>;
66 pinctrl-names = "default";
67 pinctrl-0 = <&pinctrl_uart0>;
68 clocks = <&uart_clk>;
69 };
70
71 serial1: serial@54006900 {
72 compatible = "socionext,uniphier-uart";
73 status = "disabled";
74 reg = <0x54006900 0x40>;
75 interrupts = <0 35 4>;
76 pinctrl-names = "default";
77 pinctrl-0 = <&pinctrl_uart1>;
78 clocks = <&uart_clk>;
79 };
80
81 serial2: serial@54006a00 {
82 compatible = "socionext,uniphier-uart";
83 status = "disabled";
84 reg = <0x54006a00 0x40>;
85 interrupts = <0 37 4>;
86 pinctrl-names = "default";
87 pinctrl-0 = <&pinctrl_uart2>;
88 clocks = <&uart_clk>;
89 };
90
91 serial3: serial@54006b00 {
92 compatible = "socionext,uniphier-uart";
93 status = "disabled";
94 reg = <0x54006b00 0x40>;
95 interrupts = <0 177 4>;
96 pinctrl-names = "default";
97 pinctrl-0 = <&pinctrl_uart3>;
98 clocks = <&uart_clk>;
99 };
100
101 system-bus-controller@58c00000 {
102 compatible = "socionext,uniphier-system-bus-controller";
103 reg = <0x58c00000 0x400>, <0x59800000 0x2000>;
104 };
105
106 timer@60000200 {
107 compatible = "arm,cortex-a9-global-timer";
108 reg = <0x60000200 0x20>;
109 interrupts = <1 11 0x104>;
110 clocks = <&arm_timer_clk>;
111 };
112
113 timer@60000600 {
114 compatible = "arm,cortex-a9-twd-timer";
115 reg = <0x60000600 0x20>;
116 interrupts = <1 13 0x104>;
117 clocks = <&arm_timer_clk>;
118 };
119
120 intc: interrupt-controller@60001000 {
121 compatible = "arm,cortex-a9-gic";
122 reg = <0x60001000 0x1000>,
123 <0x60000100 0x100>;
124 #interrupt-cells = <3>;
125 interrupt-controller;
126 };
127
128 pinctrl: pinctrl@5f801000 {
129 /* specify compatible in each SoC DTSI */
130 reg = <0x5f801000 0xe00>;
131 };
132 };
133};
134
135/include/ "uniphier-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/uniphier-ph1-ld4.dtsi b/arch/arm/boot/dts/uniphier-ph1-ld4.dtsi
index af493819548d..34f0d8dcd814 100644
--- a/arch/arm/boot/dts/uniphier-ph1-ld4.dtsi
+++ b/arch/arm/boot/dts/uniphier-ph1-ld4.dtsi
@@ -42,7 +42,7 @@
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
43 */ 43 */
44 44
45/include/ "skeleton.dtsi" 45/include/ "uniphier-common32.dtsi"
46 46
47/ { 47/ {
48 compatible = "socionext,ph1-ld4"; 48 compatible = "socionext,ph1-ld4";
@@ -78,188 +78,105 @@
78 clock-frequency = <100000000>; 78 clock-frequency = <100000000>;
79 }; 79 };
80 }; 80 };
81};
81 82
82 soc { 83&soc {
83 compatible = "simple-bus"; 84 l2: l2-cache@500c0000 {
84 #address-cells = <1>; 85 compatible = "socionext,uniphier-system-cache";
85 #size-cells = <1>; 86 reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>;
86 ranges; 87 interrupts = <0 174 4>, <0 175 4>;
87 interrupt-parent = <&intc>; 88 cache-unified;
88 89 cache-size = <(512 * 1024)>;
89 extbus: extbus { 90 cache-sets = <256>;
90 compatible = "simple-bus"; 91 cache-line-size = <128>;
91 #address-cells = <2>; 92 cache-level = <2>;
92 #size-cells = <1>; 93 };
93 };
94
95 l2: l2-cache@500c0000 {
96 compatible = "socionext,uniphier-system-cache";
97 reg = <0x500c0000 0x2000>, <0x503c0100 0x4>,
98 <0x506c0000 0x400>;
99 interrupts = <0 174 4>, <0 175 4>;
100 cache-unified;
101 cache-size = <(512 * 1024)>;
102 cache-sets = <256>;
103 cache-line-size = <128>;
104 cache-level = <2>;
105 };
106
107 serial0: serial@54006800 {
108 compatible = "socionext,uniphier-uart";
109 status = "disabled";
110 reg = <0x54006800 0x40>;
111 pinctrl-names = "default";
112 pinctrl-0 = <&pinctrl_uart0>;
113 interrupts = <0 33 4>;
114 clocks = <&uart_clk>;
115 fifo-size = <64>;
116 };
117
118 serial1: serial@54006900 {
119 compatible = "socionext,uniphier-uart";
120 status = "disabled";
121 reg = <0x54006900 0x40>;
122 pinctrl-names = "default";
123 pinctrl-0 = <&pinctrl_uart1>;
124 interrupts = <0 35 4>;
125 clocks = <&uart_clk>;
126 fifo-size = <64>;
127 };
128
129 serial2: serial@54006a00 {
130 compatible = "socionext,uniphier-uart";
131 status = "disabled";
132 reg = <0x54006a00 0x40>;
133 pinctrl-names = "default";
134 pinctrl-0 = <&pinctrl_uart2>;
135 interrupts = <0 37 4>;
136 clocks = <&uart_clk>;
137 fifo-size = <64>;
138 };
139
140 serial3: serial@54006b00 {
141 compatible = "socionext,uniphier-uart";
142 status = "disabled";
143 reg = <0x54006b00 0x40>;
144 pinctrl-names = "default";
145 pinctrl-0 = <&pinctrl_uart3>;
146 interrupts = <0 29 4>;
147 clocks = <&uart_clk>;
148 fifo-size = <64>;
149 };
150
151 i2c0: i2c@58400000 {
152 compatible = "socionext,uniphier-i2c";
153 status = "disabled";
154 reg = <0x58400000 0x40>;
155 #address-cells = <1>;
156 #size-cells = <0>;
157 pinctrl-names = "default";
158 pinctrl-0 = <&pinctrl_i2c0>;
159 interrupts = <0 41 1>;
160 clocks = <&iobus_clk>;
161 clock-frequency = <100000>;
162 };
163
164 i2c1: i2c@58480000 {
165 compatible = "socionext,uniphier-i2c";
166 status = "disabled";
167 reg = <0x58480000 0x40>;
168 #address-cells = <1>;
169 #size-cells = <0>;
170 pinctrl-names = "default";
171 pinctrl-0 = <&pinctrl_i2c1>;
172 interrupts = <0 42 1>;
173 clocks = <&iobus_clk>;
174 clock-frequency = <100000>;
175 };
176
177 /* chip-internal connection for DMD */
178 i2c2: i2c@58500000 {
179 compatible = "socionext,uniphier-i2c";
180 reg = <0x58500000 0x40>;
181 #address-cells = <1>;
182 #size-cells = <0>;
183 pinctrl-names = "default";
184 pinctrl-0 = <&pinctrl_i2c2>;
185 interrupts = <0 43 1>;
186 clocks = <&iobus_clk>;
187 clock-frequency = <400000>;
188 };
189 94
190 i2c3: i2c@58580000 { 95 i2c0: i2c@58400000 {
191 compatible = "socionext,uniphier-i2c"; 96 compatible = "socionext,uniphier-i2c";
192 status = "disabled"; 97 status = "disabled";
193 reg = <0x58580000 0x40>; 98 reg = <0x58400000 0x40>;
194 #address-cells = <1>; 99 #address-cells = <1>;
195 #size-cells = <0>; 100 #size-cells = <0>;
196 pinctrl-names = "default"; 101 interrupts = <0 41 1>;
197 pinctrl-0 = <&pinctrl_i2c3>; 102 pinctrl-names = "default";
198 interrupts = <0 44 1>; 103 pinctrl-0 = <&pinctrl_i2c0>;
199 clocks = <&iobus_clk>; 104 clocks = <&iobus_clk>;
200 clock-frequency = <100000>; 105 clock-frequency = <100000>;
201 }; 106 };
202 107
203 system-bus-controller@58c00000 { 108 i2c1: i2c@58480000 {
204 compatible = "socionext,uniphier-system-bus-controller"; 109 compatible = "socionext,uniphier-i2c";
205 reg = <0x58c00000 0x400>, <0x59800000 0x2000>; 110 status = "disabled";
206 }; 111 reg = <0x58480000 0x40>;
112 #address-cells = <1>;
113 #size-cells = <0>;
114 interrupts = <0 42 1>;
115 pinctrl-names = "default";
116 pinctrl-0 = <&pinctrl_i2c1>;
117 clocks = <&iobus_clk>;
118 clock-frequency = <100000>;
119 };
207 120
208 usb0: usb@5a800100 { 121 /* chip-internal connection for DMD */
209 compatible = "socionext,uniphier-ehci", "generic-ehci"; 122 i2c2: i2c@58500000 {
210 status = "disabled"; 123 compatible = "socionext,uniphier-i2c";
211 reg = <0x5a800100 0x100>; 124 reg = <0x58500000 0x40>;
212 pinctrl-names = "default"; 125 #address-cells = <1>;
213 pinctrl-0 = <&pinctrl_usb0>; 126 #size-cells = <0>;
214 interrupts = <0 80 4>; 127 interrupts = <0 43 1>;
215 }; 128 pinctrl-names = "default";
129 pinctrl-0 = <&pinctrl_i2c2>;
130 clocks = <&iobus_clk>;
131 clock-frequency = <400000>;
132 };
216 133
217 usb1: usb@5a810100 { 134 i2c3: i2c@58580000 {
218 compatible = "socionext,uniphier-ehci", "generic-ehci"; 135 compatible = "socionext,uniphier-i2c";
219 status = "disabled"; 136 status = "disabled";
220 reg = <0x5a810100 0x100>; 137 reg = <0x58580000 0x40>;
221 pinctrl-names = "default"; 138 #address-cells = <1>;
222 pinctrl-0 = <&pinctrl_usb1>; 139 #size-cells = <0>;
223 interrupts = <0 81 4>; 140 interrupts = <0 44 1>;
224 }; 141 pinctrl-names = "default";
142 pinctrl-0 = <&pinctrl_i2c3>;
143 clocks = <&iobus_clk>;
144 clock-frequency = <100000>;
145 };
225 146
226 usb2: usb@5a820100 { 147 usb0: usb@5a800100 {
227 compatible = "socionext,uniphier-ehci", "generic-ehci"; 148 compatible = "socionext,uniphier-ehci", "generic-ehci";
228 status = "disabled"; 149 status = "disabled";
229 reg = <0x5a820100 0x100>; 150 reg = <0x5a800100 0x100>;
230 pinctrl-names = "default"; 151 interrupts = <0 80 4>;
231 pinctrl-0 = <&pinctrl_usb2>; 152 pinctrl-names = "default";
232 interrupts = <0 82 4>; 153 pinctrl-0 = <&pinctrl_usb0>;
233 }; 154 };
234 155
235 pinctrl: pinctrl@5f801000 { 156 usb1: usb@5a810100 {
236 compatible = "socionext,ph1-ld4-pinctrl", 157 compatible = "socionext,uniphier-ehci", "generic-ehci";
237 "syscon"; 158 status = "disabled";
238 reg = <0x5f801000 0xe00>; 159 reg = <0x5a810100 0x100>;
239 }; 160 interrupts = <0 81 4>;
161 pinctrl-names = "default";
162 pinctrl-0 = <&pinctrl_usb1>;
163 };
240 164
241 timer@60000200 { 165 usb2: usb@5a820100 {
242 compatible = "arm,cortex-a9-global-timer"; 166 compatible = "socionext,uniphier-ehci", "generic-ehci";
243 reg = <0x60000200 0x20>; 167 status = "disabled";
244 interrupts = <1 11 0x104>; 168 reg = <0x5a820100 0x100>;
245 clocks = <&arm_timer_clk>; 169 interrupts = <0 82 4>;
246 }; 170 pinctrl-names = "default";
171 pinctrl-0 = <&pinctrl_usb2>;
172 };
247 173
248 timer@60000600 { 174};
249 compatible = "arm,cortex-a9-twd-timer";
250 reg = <0x60000600 0x20>;
251 interrupts = <1 13 0x104>;
252 clocks = <&arm_timer_clk>;
253 };
254 175
255 intc: interrupt-controller@60001000 { 176&serial3 {
256 compatible = "arm,cortex-a9-gic"; 177 interrupts = <0 29 4>;
257 #interrupt-cells = <3>;
258 interrupt-controller;
259 reg = <0x60001000 0x1000>,
260 <0x60000100 0x100>;
261 };
262 };
263}; 178};
264 179
265/include/ "uniphier-pinctrl.dtsi" 180&pinctrl {
181 compatible = "socionext,ph1-ld4-pinctrl", "syscon";
182};
diff --git a/arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi b/arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi
index c6499ee65bc6..532115234025 100644
--- a/arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi
+++ b/arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi
@@ -53,7 +53,7 @@
53 compatible = "socionext,ph1-ld6b"; 53 compatible = "socionext,ph1-ld6b";
54}; 54};
55 55
56/* UART3 unavilable: the pads are not wired to the package balls */ 56/* UART3 unavailable: the pads are not wired to the package balls */
57&serial3 { 57&serial3 {
58 status = "disabled"; 58 status = "disabled";
59}; 59};
diff --git a/arch/arm/boot/dts/uniphier-ph1-pro4.dtsi b/arch/arm/boot/dts/uniphier-ph1-pro4.dtsi
index 254642fe0e71..d78142fb35c4 100644
--- a/arch/arm/boot/dts/uniphier-ph1-pro4.dtsi
+++ b/arch/arm/boot/dts/uniphier-ph1-pro4.dtsi
@@ -42,7 +42,7 @@
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
43 */ 43 */
44 44
45/include/ "skeleton.dtsi" 45/include/ "uniphier-common32.dtsi"
46 46
47/ { 47/ {
48 compatible = "socionext,ph1-pro4"; 48 compatible = "socionext,ph1-pro4";
@@ -86,203 +86,115 @@
86 clock-frequency = <50000000>; 86 clock-frequency = <50000000>;
87 }; 87 };
88 }; 88 };
89};
89 90
90 soc { 91&soc {
91 compatible = "simple-bus"; 92 l2: l2-cache@500c0000 {
92 #address-cells = <1>; 93 compatible = "socionext,uniphier-system-cache";
93 #size-cells = <1>; 94 reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>;
94 ranges; 95 interrupts = <0 174 4>, <0 175 4>;
95 interrupt-parent = <&intc>; 96 cache-unified;
96 97 cache-size = <(768 * 1024)>;
97 extbus: extbus { 98 cache-sets = <256>;
98 compatible = "simple-bus"; 99 cache-line-size = <128>;
99 #address-cells = <2>; 100 cache-level = <2>;
100 #size-cells = <1>; 101 };
101 };
102
103 l2: l2-cache@500c0000 {
104 compatible = "socionext,uniphier-system-cache";
105 reg = <0x500c0000 0x2000>, <0x503c0100 0x4>,
106 <0x506c0000 0x400>;
107 interrupts = <0 174 4>, <0 175 4>;
108 cache-unified;
109 cache-size = <(768 * 1024)>;
110 cache-sets = <256>;
111 cache-line-size = <128>;
112 cache-level = <2>;
113 };
114
115 serial0: serial@54006800 {
116 compatible = "socionext,uniphier-uart";
117 status = "disabled";
118 reg = <0x54006800 0x40>;
119 pinctrl-names = "default";
120 pinctrl-0 = <&pinctrl_uart0>;
121 interrupts = <0 33 4>;
122 clocks = <&uart_clk>;
123 fifo-size = <64>;
124 };
125
126 serial1: serial@54006900 {
127 compatible = "socionext,uniphier-uart";
128 status = "disabled";
129 reg = <0x54006900 0x40>;
130 pinctrl-names = "default";
131 pinctrl-0 = <&pinctrl_uart1>;
132 interrupts = <0 35 4>;
133 clocks = <&uart_clk>;
134 fifo-size = <64>;
135 };
136
137 serial2: serial@54006a00 {
138 compatible = "socionext,uniphier-uart";
139 status = "disabled";
140 reg = <0x54006a00 0x40>;
141 pinctrl-names = "default";
142 pinctrl-0 = <&pinctrl_uart2>;
143 interrupts = <0 37 4>;
144 clocks = <&uart_clk>;
145 fifo-size = <64>;
146 };
147
148 serial3: serial@54006b00 {
149 compatible = "socionext,uniphier-uart";
150 status = "disabled";
151 reg = <0x54006b00 0x40>;
152 pinctrl-names = "default";
153 pinctrl-0 = <&pinctrl_uart3>;
154 interrupts = <0 29 4>;
155 clocks = <&uart_clk>;
156 fifo-size = <64>;
157 };
158
159 i2c0: i2c@58780000 {
160 compatible = "socionext,uniphier-fi2c";
161 status = "disabled";
162 reg = <0x58780000 0x80>;
163 #address-cells = <1>;
164 #size-cells = <0>;
165 pinctrl-names = "default";
166 pinctrl-0 = <&pinctrl_i2c0>;
167 interrupts = <0 41 4>;
168 clocks = <&i2c_clk>;
169 clock-frequency = <100000>;
170 };
171
172 i2c1: i2c@58781000 {
173 compatible = "socionext,uniphier-fi2c";
174 status = "disabled";
175 reg = <0x58781000 0x80>;
176 #address-cells = <1>;
177 #size-cells = <0>;
178 pinctrl-names = "default";
179 pinctrl-0 = <&pinctrl_i2c1>;
180 interrupts = <0 42 4>;
181 clocks = <&i2c_clk>;
182 clock-frequency = <100000>;
183 };
184
185 i2c2: i2c@58782000 {
186 compatible = "socionext,uniphier-fi2c";
187 status = "disabled";
188 reg = <0x58782000 0x80>;
189 #address-cells = <1>;
190 #size-cells = <0>;
191 pinctrl-names = "default";
192 pinctrl-0 = <&pinctrl_i2c2>;
193 interrupts = <0 43 4>;
194 clocks = <&i2c_clk>;
195 clock-frequency = <100000>;
196 };
197
198 i2c3: i2c@58783000 {
199 compatible = "socionext,uniphier-fi2c";
200 status = "disabled";
201 reg = <0x58783000 0x80>;
202 #address-cells = <1>;
203 #size-cells = <0>;
204 pinctrl-names = "default";
205 pinctrl-0 = <&pinctrl_i2c3>;
206 interrupts = <0 44 4>;
207 clocks = <&i2c_clk>;
208 clock-frequency = <100000>;
209 };
210
211 /* i2c4 does not exist */
212 102
213 /* chip-internal connection for DMD */ 103 i2c0: i2c@58780000 {
214 i2c5: i2c@58785000 { 104 compatible = "socionext,uniphier-fi2c";
215 compatible = "socionext,uniphier-fi2c"; 105 status = "disabled";
216 reg = <0x58785000 0x80>; 106 reg = <0x58780000 0x80>;
217 #address-cells = <1>; 107 #address-cells = <1>;
218 #size-cells = <0>; 108 #size-cells = <0>;
219 interrupts = <0 25 4>; 109 interrupts = <0 41 4>;
220 clocks = <&i2c_clk>; 110 pinctrl-names = "default";
221 clock-frequency = <400000>; 111 pinctrl-0 = <&pinctrl_i2c0>;
222 }; 112 clocks = <&i2c_clk>;
113 clock-frequency = <100000>;
114 };
223 115
224 /* chip-internal connection for HDMI */ 116 i2c1: i2c@58781000 {
225 i2c6: i2c@58786000 { 117 compatible = "socionext,uniphier-fi2c";
226 compatible = "socionext,uniphier-fi2c"; 118 status = "disabled";
227 reg = <0x58786000 0x80>; 119 reg = <0x58781000 0x80>;
228 #address-cells = <1>; 120 #address-cells = <1>;
229 #size-cells = <0>; 121 #size-cells = <0>;
230 interrupts = <0 26 4>; 122 interrupts = <0 42 4>;
231 clocks = <&i2c_clk>; 123 pinctrl-names = "default";
232 clock-frequency = <400000>; 124 pinctrl-0 = <&pinctrl_i2c1>;
233 }; 125 clocks = <&i2c_clk>;
126 clock-frequency = <100000>;
127 };
234 128
235 system-bus-controller@58c00000 { 129 i2c2: i2c@58782000 {
236 compatible = "socionext,uniphier-system-bus-controller"; 130 compatible = "socionext,uniphier-fi2c";
237 reg = <0x58c00000 0x400>, <0x59800000 0x2000>; 131 status = "disabled";
238 }; 132 reg = <0x58782000 0x80>;
133 #address-cells = <1>;
134 #size-cells = <0>;
135 interrupts = <0 43 4>;
136 pinctrl-names = "default";
137 pinctrl-0 = <&pinctrl_i2c2>;
138 clocks = <&i2c_clk>;
139 clock-frequency = <100000>;
140 };
239 141
240 usb2: usb@5a800100 { 142 i2c3: i2c@58783000 {
241 compatible = "socionext,uniphier-ehci", "generic-ehci"; 143 compatible = "socionext,uniphier-fi2c";
242 status = "disabled"; 144 status = "disabled";
243 reg = <0x5a800100 0x100>; 145 reg = <0x58783000 0x80>;
244 pinctrl-names = "default"; 146 #address-cells = <1>;
245 pinctrl-0 = <&pinctrl_usb2>; 147 #size-cells = <0>;
246 interrupts = <0 80 4>; 148 interrupts = <0 44 4>;
247 }; 149 pinctrl-names = "default";
150 pinctrl-0 = <&pinctrl_i2c3>;
151 clocks = <&i2c_clk>;
152 clock-frequency = <100000>;
153 };
248 154
249 usb3: usb@5a810100 { 155 /* i2c4 does not exist */
250 compatible = "socionext,uniphier-ehci", "generic-ehci";
251 status = "disabled";
252 reg = <0x5a810100 0x100>;
253 pinctrl-names = "default";
254 pinctrl-0 = <&pinctrl_usb3>;
255 interrupts = <0 81 4>;
256 };
257 156
258 pinctrl: pinctrl@5f801000 { 157 /* chip-internal connection for DMD */
259 compatible = "socionext,ph1-pro4-pinctrl", 158 i2c5: i2c@58785000 {
260 "syscon"; 159 compatible = "socionext,uniphier-fi2c";
261 reg = <0x5f801000 0xe00>; 160 reg = <0x58785000 0x80>;
262 }; 161 #address-cells = <1>;
162 #size-cells = <0>;
163 interrupts = <0 25 4>;
164 clocks = <&i2c_clk>;
165 clock-frequency = <400000>;
166 };
263 167
264 timer@60000200 { 168 /* chip-internal connection for HDMI */
265 compatible = "arm,cortex-a9-global-timer"; 169 i2c6: i2c@58786000 {
266 reg = <0x60000200 0x20>; 170 compatible = "socionext,uniphier-fi2c";
267 interrupts = <1 11 0x304>; 171 reg = <0x58786000 0x80>;
268 clocks = <&arm_timer_clk>; 172 #address-cells = <1>;
269 }; 173 #size-cells = <0>;
174 interrupts = <0 26 4>;
175 clocks = <&i2c_clk>;
176 clock-frequency = <400000>;
177 };
270 178
271 timer@60000600 { 179 usb2: usb@5a800100 {
272 compatible = "arm,cortex-a9-twd-timer"; 180 compatible = "socionext,uniphier-ehci", "generic-ehci";
273 reg = <0x60000600 0x20>; 181 status = "disabled";
274 interrupts = <1 13 0x304>; 182 reg = <0x5a800100 0x100>;
275 clocks = <&arm_timer_clk>; 183 interrupts = <0 80 4>;
276 }; 184 pinctrl-names = "default";
185 pinctrl-0 = <&pinctrl_usb2>;
186 };
277 187
278 intc: interrupt-controller@60001000 { 188 usb3: usb@5a810100 {
279 compatible = "arm,cortex-a9-gic"; 189 compatible = "socionext,uniphier-ehci", "generic-ehci";
280 #interrupt-cells = <3>; 190 status = "disabled";
281 interrupt-controller; 191 reg = <0x5a810100 0x100>;
282 reg = <0x60001000 0x1000>, 192 interrupts = <0 81 4>;
283 <0x60000100 0x100>; 193 pinctrl-names = "default";
284 }; 194 pinctrl-0 = <&pinctrl_usb3>;
285 }; 195 };
286}; 196};
287 197
288/include/ "uniphier-pinctrl.dtsi" 198&pinctrl {
199 compatible = "socionext,ph1-pro4-pinctrl", "syscon";
200};
diff --git a/arch/arm/boot/dts/uniphier-ph1-pro5.dtsi b/arch/arm/boot/dts/uniphier-ph1-pro5.dtsi
index 11eb76239feb..2f389ea75e01 100644
--- a/arch/arm/boot/dts/uniphier-ph1-pro5.dtsi
+++ b/arch/arm/boot/dts/uniphier-ph1-pro5.dtsi
@@ -42,7 +42,7 @@
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
43 */ 43 */
44 44
45/include/ "skeleton.dtsi" 45/include/ "uniphier-common32.dtsi"
46 46
47/ { 47/ {
48 compatible = "socionext,ph1-pro5"; 48 compatible = "socionext,ph1-pro5";
@@ -86,193 +86,109 @@
86 clock-frequency = <50000000>; 86 clock-frequency = <50000000>;
87 }; 87 };
88 }; 88 };
89};
89 90
90 soc { 91&soc {
91 compatible = "simple-bus"; 92 l2: l2-cache@500c0000 {
92 #address-cells = <1>; 93 compatible = "socionext,uniphier-system-cache";
93 #size-cells = <1>; 94 reg = <0x500c0000 0x2000>, <0x503c0100 0x8>, <0x506c0000 0x400>;
94 ranges; 95 interrupts = <0 190 4>, <0 191 4>;
95 interrupt-parent = <&intc>; 96 cache-unified;
96 97 cache-size = <(2 * 1024 * 1024)>;
97 extbus: extbus { 98 cache-sets = <512>;
98 compatible = "simple-bus"; 99 cache-line-size = <128>;
99 #address-cells = <2>; 100 cache-level = <2>;
100 #size-cells = <1>; 101 next-level-cache = <&l3>;
101 }; 102 };
102
103 l2: l2-cache@500c0000 {
104 compatible = "socionext,uniphier-system-cache";
105 reg = <0x500c0000 0x2000>, <0x503c0100 0x8>,
106 <0x506c0000 0x400>;
107 interrupts = <0 190 4>, <0 191 4>;
108 cache-unified;
109 cache-size = <(2 * 1024 * 1024)>;
110 cache-sets = <512>;
111 cache-line-size = <128>;
112 cache-level = <2>;
113 next-level-cache = <&l3>;
114 };
115
116 l3: l3-cache@500c8000 {
117 compatible = "socionext,uniphier-system-cache";
118 reg = <0x500c8000 0x2000>, <0x503c8100 0x8>,
119 <0x506c8000 0x400>;
120 interrupts = <0 174 4>, <0 175 4>;
121 cache-unified;
122 cache-size = <(2 * 1024 * 1024)>;
123 cache-sets = <512>;
124 cache-line-size = <256>;
125 cache-level = <3>;
126 };
127
128 serial0: serial@54006800 {
129 compatible = "socionext,uniphier-uart";
130 status = "disabled";
131 reg = <0x54006800 0x40>;
132 pinctrl-names = "default";
133 pinctrl-0 = <&pinctrl_uart0>;
134 interrupts = <0 33 4>;
135 clocks = <&uart_clk>;
136 };
137
138 serial1: serial@54006900 {
139 compatible = "socionext,uniphier-uart";
140 status = "disabled";
141 reg = <0x54006900 0x40>;
142 pinctrl-names = "default";
143 pinctrl-0 = <&pinctrl_uart1>;
144 interrupts = <0 35 4>;
145 clocks = <&uart_clk>;
146 };
147
148 serial2: serial@54006a00 {
149 compatible = "socionext,uniphier-uart";
150 status = "disabled";
151 reg = <0x54006a00 0x40>;
152 pinctrl-names = "default";
153 pinctrl-0 = <&pinctrl_uart2>;
154 interrupts = <0 37 4>;
155 clocks = <&uart_clk>;
156 };
157
158 serial3: serial@54006b00 {
159 compatible = "socionext,uniphier-uart";
160 status = "disabled";
161 reg = <0x54006b00 0x40>;
162 pinctrl-names = "default";
163 pinctrl-0 = <&pinctrl_uart3>;
164 interrupts = <0 177 4>;
165 clocks = <&uart_clk>;
166 };
167
168 i2c0: i2c@58780000 {
169 compatible = "socionext,uniphier-fi2c";
170 status = "disabled";
171 reg = <0x58780000 0x80>;
172 #address-cells = <1>;
173 #size-cells = <0>;
174 pinctrl-names = "default";
175 pinctrl-0 = <&pinctrl_i2c0>;
176 interrupts = <0 41 4>;
177 clocks = <&i2c_clk>;
178 clock-frequency = <100000>;
179 };
180
181 i2c1: i2c@58781000 {
182 compatible = "socionext,uniphier-fi2c";
183 status = "disabled";
184 reg = <0x58781000 0x80>;
185 #address-cells = <1>;
186 #size-cells = <0>;
187 pinctrl-names = "default";
188 pinctrl-0 = <&pinctrl_i2c1>;
189 interrupts = <0 42 4>;
190 clocks = <&i2c_clk>;
191 clock-frequency = <100000>;
192 };
193
194 i2c2: i2c@58782000 {
195 compatible = "socionext,uniphier-fi2c";
196 status = "disabled";
197 reg = <0x58782000 0x80>;
198 #address-cells = <1>;
199 #size-cells = <0>;
200 pinctrl-names = "default";
201 pinctrl-0 = <&pinctrl_i2c2>;
202 interrupts = <0 43 4>;
203 clocks = <&i2c_clk>;
204 clock-frequency = <100000>;
205 };
206
207 i2c3: i2c@58783000 {
208 compatible = "socionext,uniphier-fi2c";
209 status = "disabled";
210 reg = <0x58783000 0x80>;
211 #address-cells = <1>;
212 #size-cells = <0>;
213 pinctrl-names = "default";
214 pinctrl-0 = <&pinctrl_i2c3>;
215 interrupts = <0 44 4>;
216 clocks = <&i2c_clk>;
217 clock-frequency = <100000>;
218 };
219 103
220 /* i2c4 does not exist */ 104 l3: l3-cache@500c8000 {
105 compatible = "socionext,uniphier-system-cache";
106 reg = <0x500c8000 0x2000>, <0x503c8100 0x8>, <0x506c8000 0x400>;
107 interrupts = <0 174 4>, <0 175 4>;
108 cache-unified;
109 cache-size = <(2 * 1024 * 1024)>;
110 cache-sets = <512>;
111 cache-line-size = <256>;
112 cache-level = <3>;
113 };
221 114
222 /* chip-internal connection for DMD */ 115 i2c0: i2c@58780000 {
223 i2c5: i2c@58785000 { 116 compatible = "socionext,uniphier-fi2c";
224 compatible = "socionext,uniphier-fi2c"; 117 status = "disabled";
225 reg = <0x58785000 0x80>; 118 reg = <0x58780000 0x80>;
226 #address-cells = <1>; 119 #address-cells = <1>;
227 #size-cells = <0>; 120 #size-cells = <0>;
228 interrupts = <0 25 4>; 121 interrupts = <0 41 4>;
229 clocks = <&i2c_clk>; 122 pinctrl-names = "default";
230 clock-frequency = <400000>; 123 pinctrl-0 = <&pinctrl_i2c0>;
231 }; 124 clocks = <&i2c_clk>;
125 clock-frequency = <100000>;
126 };
232 127
233 /* chip-internal connection for HDMI */ 128 i2c1: i2c@58781000 {
234 i2c6: i2c@58786000 { 129 compatible = "socionext,uniphier-fi2c";
235 compatible = "socionext,uniphier-fi2c"; 130 status = "disabled";
236 reg = <0x58786000 0x80>; 131 reg = <0x58781000 0x80>;
237 #address-cells = <1>; 132 #address-cells = <1>;
238 #size-cells = <0>; 133 #size-cells = <0>;
239 interrupts = <0 26 4>; 134 interrupts = <0 42 4>;
240 clocks = <&i2c_clk>; 135 pinctrl-names = "default";
241 clock-frequency = <400000>; 136 pinctrl-0 = <&pinctrl_i2c1>;
242 }; 137 clocks = <&i2c_clk>;
138 clock-frequency = <100000>;
139 };
243 140
244 system-bus-controller@58c00000 { 141 i2c2: i2c@58782000 {
245 compatible = "socionext,uniphier-system-bus-controller"; 142 compatible = "socionext,uniphier-fi2c";
246 reg = <0x58c00000 0x400>, <0x59800000 0x2000>; 143 status = "disabled";
247 }; 144 reg = <0x58782000 0x80>;
145 #address-cells = <1>;
146 #size-cells = <0>;
147 interrupts = <0 43 4>;
148 pinctrl-names = "default";
149 pinctrl-0 = <&pinctrl_i2c2>;
150 clocks = <&i2c_clk>;
151 clock-frequency = <100000>;
152 };
248 153
249 pinctrl: pinctrl@5f801000 { 154 i2c3: i2c@58783000 {
250 compatible = "socionext,ph1-pro5-pinctrl", "syscon"; 155 compatible = "socionext,uniphier-fi2c";
251 reg = <0x5f801000 0xe00>; 156 status = "disabled";
252 }; 157 reg = <0x58783000 0x80>;
158 #address-cells = <1>;
159 #size-cells = <0>;
160 interrupts = <0 44 4>;
161 pinctrl-names = "default";
162 pinctrl-0 = <&pinctrl_i2c3>;
163 clocks = <&i2c_clk>;
164 clock-frequency = <100000>;
165 };
253 166
254 timer@60000200 { 167 /* i2c4 does not exist */
255 compatible = "arm,cortex-a9-global-timer";
256 reg = <0x60000200 0x20>;
257 interrupts = <1 11 0x304>;
258 clocks = <&arm_timer_clk>;
259 };
260 168
261 timer@60000600 { 169 /* chip-internal connection for DMD */
262 compatible = "arm,cortex-a9-twd-timer"; 170 i2c5: i2c@58785000 {
263 reg = <0x60000600 0x20>; 171 compatible = "socionext,uniphier-fi2c";
264 interrupts = <1 13 0x304>; 172 reg = <0x58785000 0x80>;
265 clocks = <&arm_timer_clk>; 173 #address-cells = <1>;
266 }; 174 #size-cells = <0>;
175 interrupts = <0 25 4>;
176 clocks = <&i2c_clk>;
177 clock-frequency = <400000>;
178 };
267 179
268 intc: interrupt-controller@60001000 { 180 /* chip-internal connection for HDMI */
269 compatible = "arm,cortex-a9-gic"; 181 i2c6: i2c@58786000 {
270 #interrupt-cells = <3>; 182 compatible = "socionext,uniphier-fi2c";
271 interrupt-controller; 183 reg = <0x58786000 0x80>;
272 reg = <0x60001000 0x1000>, 184 #address-cells = <1>;
273 <0x60000100 0x100>; 185 #size-cells = <0>;
274 }; 186 interrupts = <0 26 4>;
187 clocks = <&i2c_clk>;
188 clock-frequency = <400000>;
275 }; 189 };
276}; 190};
277 191
278/include/ "uniphier-pinctrl.dtsi" 192&pinctrl {
193 compatible = "socionext,ph1-pro5-pinctrl", "syscon";
194};
diff --git a/arch/arm/boot/dts/uniphier-ph1-sld8.dtsi b/arch/arm/boot/dts/uniphier-ph1-sld8.dtsi
index e88559b66be7..7d06a1c487d8 100644
--- a/arch/arm/boot/dts/uniphier-ph1-sld8.dtsi
+++ b/arch/arm/boot/dts/uniphier-ph1-sld8.dtsi
@@ -42,7 +42,7 @@
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
43 */ 43 */
44 44
45/include/ "skeleton.dtsi" 45/include/ "uniphier-common32.dtsi"
46 46
47/ { 47/ {
48 compatible = "socionext,ph1-sld8"; 48 compatible = "socionext,ph1-sld8";
@@ -78,188 +78,104 @@
78 clock-frequency = <100000000>; 78 clock-frequency = <100000000>;
79 }; 79 };
80 }; 80 };
81};
81 82
82 soc { 83&soc {
83 compatible = "simple-bus"; 84 l2: l2-cache@500c0000 {
84 #address-cells = <1>; 85 compatible = "socionext,uniphier-system-cache";
85 #size-cells = <1>; 86 reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>;
86 ranges; 87 interrupts = <0 174 4>, <0 175 4>;
87 interrupt-parent = <&intc>; 88 cache-unified;
88 89 cache-size = <(256 * 1024)>;
89 extbus: extbus { 90 cache-sets = <256>;
90 compatible = "simple-bus"; 91 cache-line-size = <128>;
91 #address-cells = <2>; 92 cache-level = <2>;
92 #size-cells = <1>; 93 };
93 };
94
95 l2: l2-cache@500c0000 {
96 compatible = "socionext,uniphier-system-cache";
97 reg = <0x500c0000 0x2000>, <0x503c0100 0x4>,
98 <0x506c0000 0x400>;
99 interrupts = <0 174 4>, <0 175 4>;
100 cache-unified;
101 cache-size = <(256 * 1024)>;
102 cache-sets = <256>;
103 cache-line-size = <128>;
104 cache-level = <2>;
105 };
106
107 serial0: serial@54006800 {
108 compatible = "socionext,uniphier-uart";
109 status = "disabled";
110 reg = <0x54006800 0x40>;
111 pinctrl-names = "default";
112 pinctrl-0 = <&pinctrl_uart0>;
113 interrupts = <0 33 4>;
114 clocks = <&uart_clk>;
115 fifo-size = <64>;
116 };
117
118 serial1: serial@54006900 {
119 compatible = "socionext,uniphier-uart";
120 status = "disabled";
121 reg = <0x54006900 0x40>;
122 pinctrl-names = "default";
123 pinctrl-0 = <&pinctrl_uart1>;
124 interrupts = <0 35 4>;
125 clocks = <&uart_clk>;
126 fifo-size = <64>;
127 };
128
129 serial2: serial@54006a00 {
130 compatible = "socionext,uniphier-uart";
131 status = "disabled";
132 reg = <0x54006a00 0x40>;
133 pinctrl-names = "default";
134 pinctrl-0 = <&pinctrl_uart2>;
135 interrupts = <0 37 4>;
136 clocks = <&uart_clk>;
137 fifo-size = <64>;
138 };
139
140 serial3: serial@54006b00 {
141 compatible = "socionext,uniphier-uart";
142 status = "disabled";
143 reg = <0x54006b00 0x40>;
144 pinctrl-names = "default";
145 pinctrl-0 = <&pinctrl_uart3>;
146 interrupts = <0 29 4>;
147 clocks = <&uart_clk>;
148 fifo-size = <64>;
149 };
150
151 i2c0: i2c@58400000 {
152 compatible = "socionext,uniphier-i2c";
153 status = "disabled";
154 reg = <0x58400000 0x40>;
155 #address-cells = <1>;
156 #size-cells = <0>;
157 pinctrl-names = "default";
158 pinctrl-0 = <&pinctrl_i2c0>;
159 interrupts = <0 41 1>;
160 clocks = <&iobus_clk>;
161 clock-frequency = <100000>;
162 };
163
164 i2c1: i2c@58480000 {
165 compatible = "socionext,uniphier-i2c";
166 status = "disabled";
167 reg = <0x58480000 0x40>;
168 #address-cells = <1>;
169 #size-cells = <0>;
170 pinctrl-names = "default";
171 pinctrl-0 = <&pinctrl_i2c1>;
172 interrupts = <0 42 1>;
173 clocks = <&iobus_clk>;
174 clock-frequency = <100000>;
175 };
176
177 /* chip-internal connection for DMD */
178 i2c2: i2c@58500000 {
179 compatible = "socionext,uniphier-i2c";
180 reg = <0x58500000 0x40>;
181 #address-cells = <1>;
182 #size-cells = <0>;
183 pinctrl-names = "default";
184 pinctrl-0 = <&pinctrl_i2c2>;
185 interrupts = <0 43 1>;
186 clocks = <&iobus_clk>;
187 clock-frequency = <400000>;
188 };
189
190 i2c3: i2c@58580000 {
191 compatible = "socionext,uniphier-i2c";
192 status = "disabled";
193 reg = <0x58580000 0x40>;
194 #address-cells = <1>;
195 #size-cells = <0>;
196 pinctrl-names = "default";
197 pinctrl-0 = <&pinctrl_i2c3>;
198 interrupts = <0 44 1>;
199 clocks = <&iobus_clk>;
200 clock-frequency = <100000>;
201 };
202
203 system-bus-controller@58c00000 {
204 compatible = "socionext,uniphier-system-bus-controller";
205 reg = <0x58c00000 0x400>, <0x59800000 0x2000>;
206 };
207 94
208 usb0: usb@5a800100 { 95 i2c0: i2c@58400000 {
209 compatible = "socionext,uniphier-ehci", "generic-ehci"; 96 compatible = "socionext,uniphier-i2c";
210 status = "disabled"; 97 status = "disabled";
211 reg = <0x5a800100 0x100>; 98 reg = <0x58400000 0x40>;
212 pinctrl-names = "default"; 99 #address-cells = <1>;
213 pinctrl-0 = <&pinctrl_usb0>; 100 #size-cells = <0>;
214 interrupts = <0 80 4>; 101 interrupts = <0 41 1>;
215 }; 102 pinctrl-names = "default";
103 pinctrl-0 = <&pinctrl_i2c0>;
104 clocks = <&iobus_clk>;
105 clock-frequency = <100000>;
106 };
216 107
217 usb1: usb@5a810100 { 108 i2c1: i2c@58480000 {
218 compatible = "socionext,uniphier-ehci", "generic-ehci"; 109 compatible = "socionext,uniphier-i2c";
219 status = "disabled"; 110 status = "disabled";
220 reg = <0x5a810100 0x100>; 111 reg = <0x58480000 0x40>;
221 pinctrl-names = "default"; 112 #address-cells = <1>;
222 pinctrl-0 = <&pinctrl_usb1>; 113 #size-cells = <0>;
223 interrupts = <0 81 4>; 114 interrupts = <0 42 1>;
224 }; 115 pinctrl-names = "default";
116 pinctrl-0 = <&pinctrl_i2c1>;
117 clocks = <&iobus_clk>;
118 clock-frequency = <100000>;
119 };
225 120
226 usb2: usb@5a820100 { 121 /* chip-internal connection for DMD */
227 compatible = "socionext,uniphier-ehci", "generic-ehci"; 122 i2c2: i2c@58500000 {
228 status = "disabled"; 123 compatible = "socionext,uniphier-i2c";
229 reg = <0x5a820100 0x100>; 124 reg = <0x58500000 0x40>;
230 pinctrl-names = "default"; 125 #address-cells = <1>;
231 pinctrl-0 = <&pinctrl_usb2>; 126 #size-cells = <0>;
232 interrupts = <0 82 4>; 127 interrupts = <0 43 1>;
233 }; 128 pinctrl-names = "default";
129 pinctrl-0 = <&pinctrl_i2c2>;
130 clocks = <&iobus_clk>;
131 clock-frequency = <400000>;
132 };
234 133
235 pinctrl: pinctrl@5f801000 { 134 i2c3: i2c@58580000 {
236 compatible = "socionext,ph1-sld8-pinctrl", 135 compatible = "socionext,uniphier-i2c";
237 "syscon"; 136 status = "disabled";
238 reg = <0x5f801000 0xe00>; 137 reg = <0x58580000 0x40>;
239 }; 138 #address-cells = <1>;
139 #size-cells = <0>;
140 interrupts = <0 44 1>;
141 pinctrl-names = "default";
142 pinctrl-0 = <&pinctrl_i2c3>;
143 clocks = <&iobus_clk>;
144 clock-frequency = <100000>;
145 };
240 146
241 timer@60000200 { 147 usb0: usb@5a800100 {
242 compatible = "arm,cortex-a9-global-timer"; 148 compatible = "socionext,uniphier-ehci", "generic-ehci";
243 reg = <0x60000200 0x20>; 149 status = "disabled";
244 interrupts = <1 11 0x104>; 150 reg = <0x5a800100 0x100>;
245 clocks = <&arm_timer_clk>; 151 interrupts = <0 80 4>;
246 }; 152 pinctrl-names = "default";
153 pinctrl-0 = <&pinctrl_usb0>;
154 };
247 155
248 timer@60000600 { 156 usb1: usb@5a810100 {
249 compatible = "arm,cortex-a9-twd-timer"; 157 compatible = "socionext,uniphier-ehci", "generic-ehci";
250 reg = <0x60000600 0x20>; 158 status = "disabled";
251 interrupts = <1 13 0x104>; 159 reg = <0x5a810100 0x100>;
252 clocks = <&arm_timer_clk>; 160 interrupts = <0 81 4>;
253 }; 161 pinctrl-names = "default";
162 pinctrl-0 = <&pinctrl_usb1>;
163 };
254 164
255 intc: interrupt-controller@60001000 { 165 usb2: usb@5a820100 {
256 compatible = "arm,cortex-a9-gic"; 166 compatible = "socionext,uniphier-ehci", "generic-ehci";
257 #interrupt-cells = <3>; 167 status = "disabled";
258 interrupt-controller; 168 reg = <0x5a820100 0x100>;
259 reg = <0x60001000 0x1000>, 169 interrupts = <0 82 4>;
260 <0x60000100 0x100>; 170 pinctrl-names = "default";
261 }; 171 pinctrl-0 = <&pinctrl_usb2>;
262 }; 172 };
263}; 173};
264 174
265/include/ "uniphier-pinctrl.dtsi" 175&serial3 {
176 interrupts = <0 29 4>;
177};
178
179&pinctrl {
180 compatible = "socionext,ph1-sld8-pinctrl", "syscon";
181};
diff --git a/arch/arm/boot/dts/uniphier-proxstream2.dtsi b/arch/arm/boot/dts/uniphier-proxstream2.dtsi
index 259f1a909e24..6bd353f2d77e 100644
--- a/arch/arm/boot/dts/uniphier-proxstream2.dtsi
+++ b/arch/arm/boot/dts/uniphier-proxstream2.dtsi
@@ -42,7 +42,7 @@
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
43 */ 43 */
44 44
45/include/ "skeleton.dtsi" 45/include/ "uniphier-common32.dtsi"
46 46
47/ { 47/ {
48 compatible = "socionext,proxstream2"; 48 compatible = "socionext,proxstream2";
@@ -100,189 +100,106 @@
100 clock-frequency = <50000000>; 100 clock-frequency = <50000000>;
101 }; 101 };
102 }; 102 };
103};
103 104
104 soc { 105&soc {
105 compatible = "simple-bus"; 106 l2: l2-cache@500c0000 {
106 #address-cells = <1>; 107 compatible = "socionext,uniphier-system-cache";
107 #size-cells = <1>; 108 reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>;
108 ranges; 109 interrupts = <0 174 4>, <0 175 4>, <0 190 4>, <0 191 4>;
109 interrupt-parent = <&intc>; 110 cache-unified;
110 111 cache-size = <(1280 * 1024)>;
111 extbus: extbus { 112 cache-sets = <512>;
112 compatible = "simple-bus"; 113 cache-line-size = <128>;
113 #address-cells = <2>; 114 cache-level = <2>;
114 #size-cells = <1>; 115 };
115 };
116
117 l2: l2-cache@500c0000 {
118 compatible = "socionext,uniphier-system-cache";
119 reg = <0x500c0000 0x2000>, <0x503c0100 0x4>,
120 <0x506c0000 0x400>;
121 interrupts = <0 174 4>, <0 175 4>, <0 190 4>, <0 191 4>;
122 cache-unified;
123 cache-size = <(1280 * 1024)>;
124 cache-sets = <512>;
125 cache-line-size = <128>;
126 cache-level = <2>;
127 };
128
129 serial0: serial@54006800 {
130 compatible = "socionext,uniphier-uart";
131 status = "disabled";
132 reg = <0x54006800 0x40>;
133 pinctrl-names = "default";
134 pinctrl-0 = <&pinctrl_uart0>;
135 interrupts = <0 33 4>;
136 clocks = <&uart_clk>;
137 };
138
139 serial1: serial@54006900 {
140 compatible = "socionext,uniphier-uart";
141 status = "disabled";
142 reg = <0x54006900 0x40>;
143 pinctrl-names = "default";
144 pinctrl-0 = <&pinctrl_uart1>;
145 interrupts = <0 35 4>;
146 clocks = <&uart_clk>;
147 };
148
149 serial2: serial@54006a00 {
150 compatible = "socionext,uniphier-uart";
151 status = "disabled";
152 reg = <0x54006a00 0x40>;
153 pinctrl-names = "default";
154 pinctrl-0 = <&pinctrl_uart2>;
155 interrupts = <0 37 4>;
156 clocks = <&uart_clk>;
157 };
158
159 serial3: serial@54006b00 {
160 compatible = "socionext,uniphier-uart";
161 status = "disabled";
162 reg = <0x54006b00 0x40>;
163 pinctrl-names = "default";
164 pinctrl-0 = <&pinctrl_uart3>;
165 interrupts = <0 177 4>;
166 clocks = <&uart_clk>;
167 };
168
169 i2c0: i2c@58780000 {
170 compatible = "socionext,uniphier-fi2c";
171 status = "disabled";
172 reg = <0x58780000 0x80>;
173 #address-cells = <1>;
174 #size-cells = <0>;
175 pinctrl-names = "default";
176 pinctrl-0 = <&pinctrl_i2c0>;
177 interrupts = <0 41 4>;
178 clocks = <&i2c_clk>;
179 clock-frequency = <100000>;
180 };
181
182 i2c1: i2c@58781000 {
183 compatible = "socionext,uniphier-fi2c";
184 status = "disabled";
185 reg = <0x58781000 0x80>;
186 #address-cells = <1>;
187 #size-cells = <0>;
188 pinctrl-names = "default";
189 pinctrl-0 = <&pinctrl_i2c1>;
190 interrupts = <0 42 4>;
191 clocks = <&i2c_clk>;
192 clock-frequency = <100000>;
193 };
194
195 i2c2: i2c@58782000 {
196 compatible = "socionext,uniphier-fi2c";
197 status = "disabled";
198 reg = <0x58782000 0x80>;
199 #address-cells = <1>;
200 #size-cells = <0>;
201 pinctrl-names = "default";
202 pinctrl-0 = <&pinctrl_i2c2>;
203 interrupts = <0 43 4>;
204 clocks = <&i2c_clk>;
205 clock-frequency = <100000>;
206 };
207
208 i2c3: i2c@58783000 {
209 compatible = "socionext,uniphier-fi2c";
210 status = "disabled";
211 reg = <0x58783000 0x80>;
212 #address-cells = <1>;
213 #size-cells = <0>;
214 pinctrl-names = "default";
215 pinctrl-0 = <&pinctrl_i2c3>;
216 interrupts = <0 44 4>;
217 clocks = <&i2c_clk>;
218 clock-frequency = <100000>;
219 };
220
221 /* chip-internal connection for DMD */
222 i2c4: i2c@58784000 {
223 compatible = "socionext,uniphier-fi2c";
224 reg = <0x58784000 0x80>;
225 #address-cells = <1>;
226 #size-cells = <0>;
227 interrupts = <0 45 4>;
228 clocks = <&i2c_clk>;
229 clock-frequency = <400000>;
230 };
231 116
232 /* chip-internal connection for STM */ 117 i2c0: i2c@58780000 {
233 i2c5: i2c@58785000 { 118 compatible = "socionext,uniphier-fi2c";
234 compatible = "socionext,uniphier-fi2c"; 119 status = "disabled";
235 reg = <0x58785000 0x80>; 120 reg = <0x58780000 0x80>;
236 #address-cells = <1>; 121 #address-cells = <1>;
237 #size-cells = <0>; 122 #size-cells = <0>;
238 interrupts = <0 25 4>; 123 interrupts = <0 41 4>;
239 clocks = <&i2c_clk>; 124 pinctrl-names = "default";
240 clock-frequency = <400000>; 125 pinctrl-0 = <&pinctrl_i2c0>;
241 }; 126 clocks = <&i2c_clk>;
127 clock-frequency = <100000>;
128 };
242 129
243 /* chip-internal connection for HDMI */ 130 i2c1: i2c@58781000 {
244 i2c6: i2c@58786000 { 131 compatible = "socionext,uniphier-fi2c";
245 compatible = "socionext,uniphier-fi2c"; 132 status = "disabled";
246 reg = <0x58786000 0x80>; 133 reg = <0x58781000 0x80>;
247 #address-cells = <1>; 134 #address-cells = <1>;
248 #size-cells = <0>; 135 #size-cells = <0>;
249 interrupts = <0 26 4>; 136 interrupts = <0 42 4>;
250 clocks = <&i2c_clk>; 137 pinctrl-names = "default";
251 clock-frequency = <400000>; 138 pinctrl-0 = <&pinctrl_i2c1>;
252 }; 139 clocks = <&i2c_clk>;
140 clock-frequency = <100000>;
141 };
253 142
254 system-bus-controller@58c00000 { 143 i2c2: i2c@58782000 {
255 compatible = "socionext,uniphier-system-bus-controller"; 144 compatible = "socionext,uniphier-fi2c";
256 reg = <0x58c00000 0x400>, <0x59800000 0x2000>; 145 status = "disabled";
257 }; 146 reg = <0x58782000 0x80>;
147 #address-cells = <1>;
148 #size-cells = <0>;
149 pinctrl-names = "default";
150 pinctrl-0 = <&pinctrl_i2c2>;
151 interrupts = <0 43 4>;
152 clocks = <&i2c_clk>;
153 clock-frequency = <100000>;
154 };
258 155
259 pinctrl: pinctrl@5f801000 { 156 i2c3: i2c@58783000 {
260 compatible = "socionext,proxstream2-pinctrl", "syscon"; 157 compatible = "socionext,uniphier-fi2c";
261 reg = <0x5f801000 0xe00>; 158 status = "disabled";
262 }; 159 reg = <0x58783000 0x80>;
160 #address-cells = <1>;
161 #size-cells = <0>;
162 interrupts = <0 44 4>;
163 pinctrl-names = "default";
164 pinctrl-0 = <&pinctrl_i2c3>;
165 clocks = <&i2c_clk>;
166 clock-frequency = <100000>;
167 };
263 168
264 timer@60000200 { 169 /* chip-internal connection for DMD */
265 compatible = "arm,cortex-a9-global-timer"; 170 i2c4: i2c@58784000 {
266 reg = <0x60000200 0x20>; 171 compatible = "socionext,uniphier-fi2c";
267 interrupts = <1 11 0xf04>; 172 reg = <0x58784000 0x80>;
268 clocks = <&arm_timer_clk>; 173 #address-cells = <1>;
269 }; 174 #size-cells = <0>;
175 interrupts = <0 45 4>;
176 clocks = <&i2c_clk>;
177 clock-frequency = <400000>;
178 };
270 179
271 timer@60000600 { 180 /* chip-internal connection for STM */
272 compatible = "arm,cortex-a9-twd-timer"; 181 i2c5: i2c@58785000 {
273 reg = <0x60000600 0x20>; 182 compatible = "socionext,uniphier-fi2c";
274 interrupts = <1 13 0xf04>; 183 reg = <0x58785000 0x80>;
275 clocks = <&arm_timer_clk>; 184 #address-cells = <1>;
276 }; 185 #size-cells = <0>;
186 interrupts = <0 25 4>;
187 clocks = <&i2c_clk>;
188 clock-frequency = <400000>;
189 };
277 190
278 intc: interrupt-controller@60001000 { 191 /* chip-internal connection for HDMI */
279 compatible = "arm,cortex-a9-gic"; 192 i2c6: i2c@58786000 {
280 #interrupt-cells = <3>; 193 compatible = "socionext,uniphier-fi2c";
281 interrupt-controller; 194 reg = <0x58786000 0x80>;
282 reg = <0x60001000 0x1000>, 195 #address-cells = <1>;
283 <0x60000100 0x100>; 196 #size-cells = <0>;
284 }; 197 interrupts = <0 26 4>;
198 clocks = <&i2c_clk>;
199 clock-frequency = <400000>;
285 }; 200 };
286}; 201};
287 202
288/include/ "uniphier-pinctrl.dtsi" 203&pinctrl {
204 compatible = "socionext,proxstream2-pinctrl", "syscon";
205};
diff --git a/arch/arm/boot/dts/versatile-ab.dts b/arch/arm/boot/dts/versatile-ab.dts
index 3279bf1a17a1..6fd7efbead34 100644
--- a/arch/arm/boot/dts/versatile-ab.dts
+++ b/arch/arm/boot/dts/versatile-ab.dts
@@ -30,9 +30,69 @@
30 }; 30 };
31 31
32 core-module@10000000 { 32 core-module@10000000 {
33 compatible = "arm,core-module-versatile", "syscon"; 33 compatible = "arm,core-module-versatile", "syscon", "simple-mfd";
34 reg = <0x10000000 0x200>; 34 reg = <0x10000000 0x200>;
35 35
36 led@08.0 {
37 compatible = "register-bit-led";
38 offset = <0x08>;
39 mask = <0x01>;
40 label = "versatile:0";
41 linux,default-trigger = "heartbeat";
42 default-state = "on";
43 };
44 led@08.1 {
45 compatible = "register-bit-led";
46 offset = <0x08>;
47 mask = <0x02>;
48 label = "versatile:1";
49 linux,default-trigger = "mmc0";
50 default-state = "off";
51 };
52 led@08.2 {
53 compatible = "register-bit-led";
54 offset = <0x08>;
55 mask = <0x04>;
56 label = "versatile:2";
57 linux,default-trigger = "cpu0";
58 default-state = "off";
59 };
60 led@08.3 {
61 compatible = "register-bit-led";
62 offset = <0x08>;
63 mask = <0x08>;
64 label = "versatile:3";
65 default-state = "off";
66 };
67 led@08.4 {
68 compatible = "register-bit-led";
69 offset = <0x08>;
70 mask = <0x10>;
71 label = "versatile:4";
72 default-state = "off";
73 };
74 led@08.5 {
75 compatible = "register-bit-led";
76 offset = <0x08>;
77 mask = <0x20>;
78 label = "versatile:5";
79 default-state = "off";
80 };
81 led@08.6 {
82 compatible = "register-bit-led";
83 offset = <0x08>;
84 mask = <0x40>;
85 label = "versatile:6";
86 default-state = "off";
87 };
88 led@08.7 {
89 compatible = "register-bit-led";
90 offset = <0x08>;
91 mask = <0x80>;
92 label = "versatile:7";
93 default-state = "off";
94 };
95
36 /* OSC1 on AB, OSC4 on PB */ 96 /* OSC1 on AB, OSC4 on PB */
37 osc1: cm_aux_osc@24M { 97 osc1: cm_aux_osc@24M {
38 #clock-cells = <0>; 98 #clock-cells = <0>;
diff --git a/arch/arm/boot/dts/vf-colibri.dtsi b/arch/arm/boot/dts/vf-colibri.dtsi
index e5949b934945..6e556be42ccd 100644
--- a/arch/arm/boot/dts/vf-colibri.dtsi
+++ b/arch/arm/boot/dts/vf-colibri.dtsi
@@ -23,6 +23,18 @@
23 status = "okay"; 23 status = "okay";
24}; 24};
25 25
26&can0 {
27 pinctrl-names = "default";
28 pinctrl-0 = <&pinctrl_flexcan0>;
29 status = "disabled";
30};
31
32&can1 {
33 pinctrl-names = "default";
34 pinctrl-0 = <&pinctrl_flexcan1>;
35 status = "disabled";
36};
37
26&dspi1 { 38&dspi1 {
27 bus-num = <1>; 39 bus-num = <1>;
28 pinctrl-names = "default"; 40 pinctrl-names = "default";
@@ -125,6 +137,20 @@
125 137
126&iomuxc { 138&iomuxc {
127 vf610-colibri { 139 vf610-colibri {
140 pinctrl_flexcan0: can0grp {
141 fsl,pins = <
142 VF610_PAD_PTB14__CAN0_RX 0x31F1
143 VF610_PAD_PTB15__CAN0_TX 0x31F2
144 >;
145 };
146
147 pinctrl_flexcan1: can1grp {
148 fsl,pins = <
149 VF610_PAD_PTB16__CAN1_RX 0x31F1
150 VF610_PAD_PTB17__CAN1_TX 0x31F2
151 >;
152 };
153
128 pinctrl_gpio_ext: gpio_ext { 154 pinctrl_gpio_ext: gpio_ext {
129 fsl,pins = < 155 fsl,pins = <
130 VF610_PAD_PTD10__GPIO_89 0x22ed /* EXT_IO_0 */ 156 VF610_PAD_PTD10__GPIO_89 0x22ed /* EXT_IO_0 */
diff --git a/arch/arm/boot/dts/vf610m4-cosmic.dts b/arch/arm/boot/dts/vf610m4-cosmic.dts
new file mode 100644
index 000000000000..8944a2d2054c
--- /dev/null
+++ b/arch/arm/boot/dts/vf610m4-cosmic.dts
@@ -0,0 +1,90 @@
1/*
2 * Device tree for Cosmic+ VF6xx Cortex-M4 support
3 *
4 * Copyright (C) 2015
5 *
6 * Based on vf610m4 Colibri
7 *
8 * This file is dual-licensed: you can use it either under the terms
9 * of the GPL or the X11 license, at your option. Note that this dual
10 * licensing only applies to this file, and not this project as a
11 * whole.
12 *
13 * a) This file is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License as
15 * published by the Free Software Foundation; either version 2 of the
16 * License, or (at your option) any later version.
17 *
18 * This file is distributed in the hope that it will be useful
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
22 *
23 * Or, alternatively
24 *
25 * b) Permission is hereby granted, free of charge, to any person
26 * obtaining a copy of this software and associated documentation
27 * files (the "Software"), to deal in the Software without
28 * restriction, including without limitation the rights to use
29 * copy, modify, merge, publish, distribute, sublicense, and/or
30 * sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following
32 * conditions:
33 *
34 * The above copyright notice and this permission notice shall be
35 * included in all copies or substantial portions of the Software.
36 *
37 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
38 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
39 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
41 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44 * OTHER DEALINGS IN THE SOFTWARE.
45 */
46
47/dts-v1/;
48#include "vf610m4.dtsi"
49
50/ {
51 model = "VF610 Cortex-M4";
52 compatible = "fsl,vf610m4";
53};
54
55&gpio0 {
56 status = "disabled";
57};
58
59&gpio1 {
60 status = "disabled";
61};
62
63&gpio2 {
64 status = "disabled";
65};
66
67&gpio3 {
68 status = "disabled";
69};
70
71&gpio4 {
72 status = "disabled";
73};
74
75&uart3 {
76 pinctrl-names = "default";
77 pinctrl-0 = <&pinctrl_uart3>;
78 status = "okay";
79};
80
81&iomuxc {
82 vf610-cosmic {
83 pinctrl_uart3: uart3grp {
84 fsl,pins = <
85 VF610_PAD_PTA20__UART3_TX 0x21a2
86 VF610_PAD_PTA21__UART3_RX 0x21a1
87 >;
88 };
89 };
90};
diff --git a/arch/arm/boot/dts/vfxxx.dtsi b/arch/arm/boot/dts/vfxxx.dtsi
index 3cd1b27f2697..a9ceb5bac40e 100644
--- a/arch/arm/boot/dts/vfxxx.dtsi
+++ b/arch/arm/boot/dts/vfxxx.dtsi
@@ -455,6 +455,30 @@
455 status = "disabled"; 455 status = "disabled";
456 }; 456 };
457 457
458 dspi2: dspi2@400ac000 {
459 #address-cells = <1>;
460 #size-cells = <0>;
461 compatible = "fsl,vf610-dspi";
462 reg = <0x400ac000 0x1000>;
463 interrupts = <69 IRQ_TYPE_LEVEL_HIGH>;
464 clocks = <&clks VF610_CLK_DSPI2>;
465 clock-names = "dspi";
466 spi-num-chipselects = <2>;
467 status = "disabled";
468 };
469
470 dspi3: dspi3@400ad000 {
471 #address-cells = <1>;
472 #size-cells = <0>;
473 compatible = "fsl,vf610-dspi";
474 reg = <0x400ad000 0x1000>;
475 interrupts = <70 IRQ_TYPE_LEVEL_HIGH>;
476 clocks = <&clks VF610_CLK_DSPI3>;
477 clock-names = "dspi";
478 spi-num-chipselects = <2>;
479 status = "disabled";
480 };
481
458 adc1: adc@400bb000 { 482 adc1: adc@400bb000 {
459 compatible = "fsl,vf610-adc"; 483 compatible = "fsl,vf610-adc";
460 reg = <0x400bb000 0x1000>; 484 reg = <0x400bb000 0x1000>;
diff --git a/arch/arm/boot/dts/wm8505.dtsi b/arch/arm/boot/dts/wm8505.dtsi
index a1a854b8a454..e9ef539e13d3 100644
--- a/arch/arm/boot/dts/wm8505.dtsi
+++ b/arch/arm/boot/dts/wm8505.dtsi
@@ -281,8 +281,8 @@
281 281
282 sdhc@d800a000 { 282 sdhc@d800a000 {
283 compatible = "wm,wm8505-sdhc"; 283 compatible = "wm,wm8505-sdhc";
284 reg = <0xd800a000 0x1000>; 284 reg = <0xd800a000 0x400>;
285 interrupts = <20 21>; 285 interrupts = <20>, <21>;
286 clocks = <&clksdhc>; 286 clocks = <&clksdhc>;
287 bus-width = <4>; 287 bus-width = <4>;
288 }; 288 };
diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
index 1a5220e05109..f283ff08381c 100644
--- a/arch/arm/boot/dts/zynq-7000.dtsi
+++ b/arch/arm/boot/dts/zynq-7000.dtsi
@@ -19,7 +19,7 @@
19 #address-cells = <1>; 19 #address-cells = <1>;
20 #size-cells = <0>; 20 #size-cells = <0>;
21 21
22 cpu@0 { 22 cpu0: cpu@0 {
23 compatible = "arm,cortex-a9"; 23 compatible = "arm,cortex-a9";
24 device_type = "cpu"; 24 device_type = "cpu";
25 reg = <0>; 25 reg = <0>;
@@ -33,7 +33,7 @@
33 >; 33 >;
34 }; 34 };
35 35
36 cpu@1 { 36 cpu1: cpu@1 {
37 compatible = "arm,cortex-a9"; 37 compatible = "arm,cortex-a9";
38 device_type = "cpu"; 38 device_type = "cpu";
39 reg = <1>; 39 reg = <1>;
@@ -101,6 +101,8 @@
101 #gpio-cells = <2>; 101 #gpio-cells = <2>;
102 clocks = <&clkc 42>; 102 clocks = <&clkc 42>;
103 gpio-controller; 103 gpio-controller;
104 interrupt-controller;
105 #interrupt-cells = <2>;
104 interrupt-parent = <&intc>; 106 interrupt-parent = <&intc>;
105 interrupts = <0 20 4>; 107 interrupts = <0 20 4>;
106 reg = <0xe000a000 0x1000>; 108 reg = <0xe000a000 0x1000>;
@@ -238,7 +240,7 @@
238 slcr: slcr@f8000000 { 240 slcr: slcr@f8000000 {
239 #address-cells = <1>; 241 #address-cells = <1>;
240 #size-cells = <1>; 242 #size-cells = <1>;
241 compatible = "xlnx,zynq-slcr", "syscon", "simple-bus"; 243 compatible = "xlnx,zynq-slcr", "syscon", "simple-mfd";
242 reg = <0xF8000000 0x1000>; 244 reg = <0xF8000000 0x1000>;
243 ranges; 245 ranges;
244 clkc: clkc@100 { 246 clkc: clkc@100 {
diff --git a/arch/arm/boot/dts/zynq-zc702.dts b/arch/arm/boot/dts/zynq-zc702.dts
index 5df8f81f4217..cb64209bca08 100644
--- a/arch/arm/boot/dts/zynq-zc702.dts
+++ b/arch/arm/boot/dts/zynq-zc702.dts
@@ -43,14 +43,14 @@
43 label = "sw14"; 43 label = "sw14";
44 gpios = <&gpio0 12 0>; 44 gpios = <&gpio0 12 0>;
45 linux,code = <108>; /* down */ 45 linux,code = <108>; /* down */
46 gpio-key,wakeup; 46 wakeup-source;
47 autorepeat; 47 autorepeat;
48 }; 48 };
49 sw13 { 49 sw13 {
50 label = "sw13"; 50 label = "sw13";
51 gpios = <&gpio0 14 0>; 51 gpios = <&gpio0 14 0>;
52 linux,code = <103>; /* up */ 52 linux,code = <103>; /* up */
53 gpio-key,wakeup; 53 wakeup-source;
54 autorepeat; 54 autorepeat;
55 }; 55 };
56 }; 56 };
diff --git a/arch/arm/mach-mediatek/mediatek.c b/arch/arm/mach-mediatek/mediatek.c
index d019a080a559..2f9f09ac51bd 100644
--- a/arch/arm/mach-mediatek/mediatek.c
+++ b/arch/arm/mach-mediatek/mediatek.c
@@ -44,6 +44,7 @@ static void __init mediatek_timer_init(void)
44}; 44};
45 45
46static const char * const mediatek_board_dt_compat[] = { 46static const char * const mediatek_board_dt_compat[] = {
47 "mediatek,mt2701",
47 "mediatek,mt6589", 48 "mediatek,mt6589",
48 "mediatek,mt6592", 49 "mediatek,mt6592",
49 "mediatek,mt8127", 50 "mediatek,mt8127",
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index e097055398de..e781e4fae13a 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -150,6 +150,21 @@ static struct platform_device wl18xx_device = {
150 } 150 }
151}; 151};
152 152
153static struct ti_st_plat_data wilink7_pdata = {
154 .nshutdown_gpio = 162,
155 .dev_name = "/dev/ttyO1",
156 .flow_cntrl = 1,
157 .baud_rate = 300000,
158};
159
160static struct platform_device wl128x_device = {
161 .name = "kim",
162 .id = -1,
163 .dev = {
164 .platform_data = &wilink7_pdata,
165 }
166};
167
153static struct platform_device btwilink_device = { 168static struct platform_device btwilink_device = {
154 .name = "btwilink", 169 .name = "btwilink",
155 .id = -1, 170 .id = -1,
@@ -276,6 +291,13 @@ static void __init omap3_tao3530_legacy_init(void)
276 hsmmc2_internal_input_clk(); 291 hsmmc2_internal_input_clk();
277} 292}
278 293
294static void __init omap3_logicpd_torpedo_init(void)
295{
296 omap3_gpio126_127_129();
297 platform_device_register(&wl128x_device);
298 platform_device_register(&btwilink_device);
299}
300
279/* omap3pandora legacy devices */ 301/* omap3pandora legacy devices */
280#define PANDORA_WIFI_IRQ_GPIO 21 302#define PANDORA_WIFI_IRQ_GPIO 21
281#define PANDORA_WIFI_NRESET_GPIO 23 303#define PANDORA_WIFI_NRESET_GPIO 23
@@ -503,7 +525,7 @@ static struct pdata_init pdata_quirks[] __initdata = {
503 { "nokia,omap3-n950", hsmmc2_internal_input_clk, }, 525 { "nokia,omap3-n950", hsmmc2_internal_input_clk, },
504 { "isee,omap3-igep0020-rev-f", omap3_igep0020_rev_f_legacy_init, }, 526 { "isee,omap3-igep0020-rev-f", omap3_igep0020_rev_f_legacy_init, },
505 { "isee,omap3-igep0030-rev-g", omap3_igep0030_rev_g_legacy_init, }, 527 { "isee,omap3-igep0030-rev-g", omap3_igep0030_rev_g_legacy_init, },
506 { "logicpd,dm3730-torpedo-devkit", omap3_gpio126_127_129, }, 528 { "logicpd,dm3730-torpedo-devkit", omap3_logicpd_torpedo_init, },
507 { "ti,omap3-evm-37xx", omap3_evm_legacy_init, }, 529 { "ti,omap3-evm-37xx", omap3_evm_legacy_init, },
508 { "ti,am3517-evm", am3517_evm_legacy_init, }, 530 { "ti,am3517-evm", am3517_evm_legacy_init, },
509 { "technexion,omap3-tao3530", omap3_tao3530_legacy_init, }, 531 { "technexion,omap3-tao3530", omap3_tao3530_legacy_init, },
diff --git a/arch/arm64/boot/dts/mediatek/mt8173.dtsi b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
index c1fd2757f8e4..424a4939c1b4 100644
--- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
@@ -16,7 +16,7 @@
16#include <dt-bindings/interrupt-controller/arm-gic.h> 16#include <dt-bindings/interrupt-controller/arm-gic.h>
17#include <dt-bindings/phy/phy.h> 17#include <dt-bindings/phy/phy.h>
18#include <dt-bindings/power/mt8173-power.h> 18#include <dt-bindings/power/mt8173-power.h>
19#include <dt-bindings/reset-controller/mt8173-resets.h> 19#include <dt-bindings/reset/mt8173-resets.h>
20#include "mt8173-pinfunc.h" 20#include "mt8173-pinfunc.h"
21 21
22/ { 22/ {
diff --git a/drivers/clk/samsung/clk-exynos4.c b/drivers/clk/samsung/clk-exynos4.c
index 7f370d3e0983..ac03e4fe2871 100644
--- a/drivers/clk/samsung/clk-exynos4.c
+++ b/drivers/clk/samsung/clk-exynos4.c
@@ -1024,6 +1024,7 @@ static struct samsung_gate_clock exynos4_gate_clks[] __initdata = {
1024 0, 0), 1024 0, 0),
1025 GATE(CLK_AC97, "ac97", "aclk100", GATE_IP_PERIL, 27, 1025 GATE(CLK_AC97, "ac97", "aclk100", GATE_IP_PERIL, 27,
1026 0, 0), 1026 0, 0),
1027 GATE(CLK_SSS, "sss", "aclk133", GATE_IP_DMC, 4, 0, 0),
1027 GATE(CLK_PPMUDMC0, "ppmudmc0", "aclk133", GATE_IP_DMC, 8, 0, 0), 1028 GATE(CLK_PPMUDMC0, "ppmudmc0", "aclk133", GATE_IP_DMC, 8, 0, 0),
1028 GATE(CLK_PPMUDMC1, "ppmudmc1", "aclk133", GATE_IP_DMC, 9, 0, 0), 1029 GATE(CLK_PPMUDMC1, "ppmudmc1", "aclk133", GATE_IP_DMC, 9, 0, 0),
1029 GATE(CLK_PPMUCPU, "ppmucpu", "aclk133", GATE_IP_DMC, 10, 0, 0), 1030 GATE(CLK_PPMUCPU, "ppmucpu", "aclk133", GATE_IP_DMC, 10, 0, 0),
diff --git a/include/dt-bindings/clock/exynos4.h b/include/dt-bindings/clock/exynos4.h
index c4b1676ea674..c40111f36d5e 100644
--- a/include/dt-bindings/clock/exynos4.h
+++ b/include/dt-bindings/clock/exynos4.h
@@ -93,6 +93,7 @@
93#define CLK_SCLK_FIMG2D 177 93#define CLK_SCLK_FIMG2D 177
94 94
95/* gate clocks */ 95/* gate clocks */
96#define CLK_SSS 255
96#define CLK_FIMC0 256 97#define CLK_FIMC0 256
97#define CLK_FIMC1 257 98#define CLK_FIMC1 257
98#define CLK_FIMC2 258 99#define CLK_FIMC2 258
diff --git a/include/dt-bindings/clock/r8a7791-clock.h b/include/dt-bindings/clock/r8a7791-clock.h
index dd09b73c4aaf..ffa11379b3f0 100644
--- a/include/dt-bindings/clock/r8a7791-clock.h
+++ b/include/dt-bindings/clock/r8a7791-clock.h
@@ -102,6 +102,7 @@
102#define R8A7791_CLK_VIN2 9 102#define R8A7791_CLK_VIN2 9
103#define R8A7791_CLK_VIN1 10 103#define R8A7791_CLK_VIN1 10
104#define R8A7791_CLK_VIN0 11 104#define R8A7791_CLK_VIN0 11
105#define R8A7791_CLK_ETHERAVB 12
105#define R8A7791_CLK_ETHER 13 106#define R8A7791_CLK_ETHER 13
106#define R8A7791_CLK_SATA1 14 107#define R8A7791_CLK_SATA1 14
107#define R8A7791_CLK_SATA0 15 108#define R8A7791_CLK_SATA0 15
diff --git a/include/dt-bindings/clock/r8a7794-clock.h b/include/dt-bindings/clock/r8a7794-clock.h
index 09da38a58776..a7a7e0370968 100644
--- a/include/dt-bindings/clock/r8a7794-clock.h
+++ b/include/dt-bindings/clock/r8a7794-clock.h
@@ -79,6 +79,7 @@
79#define R8A7794_CLK_SCIF2 19 79#define R8A7794_CLK_SCIF2 19
80#define R8A7794_CLK_SCIF1 20 80#define R8A7794_CLK_SCIF1 20
81#define R8A7794_CLK_SCIF0 21 81#define R8A7794_CLK_SCIF0 21
82#define R8A7794_CLK_DU0 24
82 83
83/* MSTP8 */ 84/* MSTP8 */
84#define R8A7794_CLK_VIN1 10 85#define R8A7794_CLK_VIN1 10
diff --git a/include/dt-bindings/clock/sh73a0-clock.h b/include/dt-bindings/clock/sh73a0-clock.h
index 53369568c24c..2eca353a29d7 100644
--- a/include/dt-bindings/clock/sh73a0-clock.h
+++ b/include/dt-bindings/clock/sh73a0-clock.h
@@ -28,7 +28,8 @@
28#define SH73A0_CLK_HP 14 28#define SH73A0_CLK_HP 14
29 29
30/* MSTP0 */ 30/* MSTP0 */
31#define SH73A0_CLK_IIC2 1 31#define SH73A0_CLK_IIC2 1
32#define SH73A0_CLK_MSIOF0 0
32 33
33/* MSTP1 */ 34/* MSTP1 */
34#define SH73A0_CLK_CEU1 29 35#define SH73A0_CLK_CEU1 29
@@ -45,8 +46,11 @@
45#define SH73A0_CLK_SCIFA7 19 46#define SH73A0_CLK_SCIFA7 19
46#define SH73A0_CLK_SY_DMAC 18 47#define SH73A0_CLK_SY_DMAC 18
47#define SH73A0_CLK_MP_DMAC 17 48#define SH73A0_CLK_MP_DMAC 17
49#define SH73A0_CLK_MSIOF3 15
50#define SH73A0_CLK_MSIOF1 8
48#define SH73A0_CLK_SCIFA5 7 51#define SH73A0_CLK_SCIFA5 7
49#define SH73A0_CLK_SCIFB 6 52#define SH73A0_CLK_SCIFB 6
53#define SH73A0_CLK_MSIOF2 5
50#define SH73A0_CLK_SCIFA0 4 54#define SH73A0_CLK_SCIFA0 4
51#define SH73A0_CLK_SCIFA1 3 55#define SH73A0_CLK_SCIFA1 3
52#define SH73A0_CLK_SCIFA2 2 56#define SH73A0_CLK_SCIFA2 2
diff --git a/include/dt-bindings/pinctrl/am43xx.h b/include/dt-bindings/pinctrl/am43xx.h
index 774dc1e843c5..344bd1eb3386 100644
--- a/include/dt-bindings/pinctrl/am43xx.h
+++ b/include/dt-bindings/pinctrl/am43xx.h
@@ -31,5 +31,11 @@
31#define PIN_INPUT_PULLUP (INPUT_EN | PULL_UP) 31#define PIN_INPUT_PULLUP (INPUT_EN | PULL_UP)
32#define PIN_INPUT_PULLDOWN (INPUT_EN) 32#define PIN_INPUT_PULLDOWN (INPUT_EN)
33 33
34/*
35 * Macro to allow using the absolute physical address instead of the
36 * padconf registers instead of the offset from padconf base.
37 */
38#define AM4372_IOPAD(pa, val) (((pa) & 0xffff) - 0x0800) (val)
39
34#endif 40#endif
35 41
diff --git a/include/dt-bindings/pinctrl/dm814x.h b/include/dt-bindings/pinctrl/dm814x.h
new file mode 100644
index 000000000000..0f484273da0d
--- /dev/null
+++ b/include/dt-bindings/pinctrl/dm814x.h
@@ -0,0 +1,48 @@
1/*
2 * This header provides constants specific to DM814X pinctrl bindings.
3 */
4
5#ifndef _DT_BINDINGS_PINCTRL_DM814X_H
6#define _DT_BINDINGS_PINCTRL_DM814X_H
7
8#include <dt-bindings/pinctrl/omap.h>
9
10#undef INPUT_EN
11#undef PULL_UP
12#undef PULL_ENA
13
14/*
15 * Note that dm814x silicon revision 2.1 and older require input enabled
16 * (bit 18 set) for all 3.3V I/Os to avoid cumulative hardware damage. For
17 * more info, see errata advisory 2.1.87. We leave bit 18 out of
18 * function-mask in dm814x.h and rely on the bootloader for it.
19 */
20#define INPUT_EN (1 << 18)
21#define PULL_UP (1 << 17)
22#define PULL_DISABLE (1 << 16)
23
24/* update macro depending on INPUT_EN and PULL_ENA */
25#undef PIN_OUTPUT
26#undef PIN_OUTPUT_PULLUP
27#undef PIN_OUTPUT_PULLDOWN
28#undef PIN_INPUT
29#undef PIN_INPUT_PULLUP
30#undef PIN_INPUT_PULLDOWN
31
32#define PIN_OUTPUT (PULL_DISABLE)
33#define PIN_OUTPUT_PULLUP (PULL_UP)
34#define PIN_OUTPUT_PULLDOWN 0
35#define PIN_INPUT (INPUT_EN | PULL_DISABLE)
36#define PIN_INPUT_PULLUP (INPUT_EN | PULL_UP)
37#define PIN_INPUT_PULLDOWN (INPUT_EN)
38
39/* undef non-existing modes */
40#undef PIN_OFF_NONE
41#undef PIN_OFF_OUTPUT_HIGH
42#undef PIN_OFF_OUTPUT_LOW
43#undef PIN_OFF_INPUT_PULLUP
44#undef PIN_OFF_INPUT_PULLDOWN
45#undef PIN_OFF_WAKEUPENABLE
46
47#endif
48
diff --git a/include/dt-bindings/pinctrl/dra.h b/include/dt-bindings/pinctrl/dra.h
index 4379e29f0460..5c75e80915fc 100644
--- a/include/dt-bindings/pinctrl/dra.h
+++ b/include/dt-bindings/pinctrl/dra.h
@@ -67,5 +67,11 @@
67#define PIN_INPUT_PULLUP (PULL_ENA | INPUT_EN | PULL_UP) 67#define PIN_INPUT_PULLUP (PULL_ENA | INPUT_EN | PULL_UP)
68#define PIN_INPUT_PULLDOWN (PULL_ENA | INPUT_EN) 68#define PIN_INPUT_PULLDOWN (PULL_ENA | INPUT_EN)
69 69
70/*
71 * Macro to allow using the absolute physical address instead of the
72 * padconf registers instead of the offset from padconf base.
73 */
74#define DRA7XX_CORE_IOPAD(pa, val) (((pa) & 0xffff) - 0x3400) (val)
75
70#endif 76#endif
71 77
diff --git a/include/dt-bindings/pinctrl/omap.h b/include/dt-bindings/pinctrl/omap.h
index 13949259705a..effadd05695b 100644
--- a/include/dt-bindings/pinctrl/omap.h
+++ b/include/dt-bindings/pinctrl/omap.h
@@ -61,10 +61,9 @@
61#define OMAP3430_CORE2_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x25d8) (val) 61#define OMAP3430_CORE2_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x25d8) (val)
62#define OMAP3630_CORE2_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x25a0) (val) 62#define OMAP3630_CORE2_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x25a0) (val)
63#define OMAP3_WKUP_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x2a00) (val) 63#define OMAP3_WKUP_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x2a00) (val)
64#define DM814X_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val)
64#define DM816X_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val) 65#define DM816X_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val)
65#define AM33XX_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val) 66#define AM33XX_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val)
66#define AM4372_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val)
67#define DRA7XX_CORE_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x3400) (val)
68 67
69/* 68/*
70 * Macros to allow using the offset from the padconf physical address 69 * Macros to allow using the offset from the padconf physical address
diff --git a/include/dt-bindings/reset-controller/mt8135-resets.h b/include/dt-bindings/reset/mt8135-resets.h
index 1fb629508db2..1fb629508db2 100644
--- a/include/dt-bindings/reset-controller/mt8135-resets.h
+++ b/include/dt-bindings/reset/mt8135-resets.h
diff --git a/include/dt-bindings/reset-controller/mt8173-resets.h b/include/dt-bindings/reset/mt8173-resets.h
index 9464b37cf68c..9464b37cf68c 100644
--- a/include/dt-bindings/reset-controller/mt8173-resets.h
+++ b/include/dt-bindings/reset/mt8173-resets.h