aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-12-15 18:50:24 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2016-12-15 18:50:24 -0500
commit786a72d79140028537382fa63bea63d5640c27d6 (patch)
tree97f90bf3a7f8330d78a1d82373fc624f1b1405c6
parent3bd776bbda9e8f2453e7361d340933dccd067fc3 (diff)
parent8237c0b9570c09d513296ef0fde26ce0784e5179 (diff)
Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM DT updates from Arnd Bergmann: "Lots of changes as usual, so I'm trying to be brief here. Most of the new hardware support has the respective driver changes merged through other trees or has had it available for a while, so this is where things come together. We get a DT descriptions for a couple of new SoCs, all of them variants of other chips we already support, and usually coming with a new evaluation board: - Oxford semiconductor (now Broadcom) OX820 SoC for NAS devices - Qualcomm MDM9615 LTE baseband - NXP imx6ull, the latest and smallest i.MX6 application processor variant - Renesas RZ/G (r8a7743 and r8a7745) application processors - Rockchip PX3, a variant of the rk3188 chip used in Android tablets - Rockchip rk1108 single-core application processor - ST stm32f746 Cortex-M7 based microcontroller - TI DRA71x automotive processors These are commercially available consumer platforms we now support: - Motorola Droid 4 (xt894) mobile phone - Rikomagic MK808 Android TV stick based on Rockchips rx3066 - Cloud Engines PogoPlug v3 based on OX820 - Various Broadcom based wireless devices: - Netgear R8500 router - Tenda AC9 router - TP-LINK Archer C9 V1 - Luxul XAP-1510 Access point - Turris Omnia open hardware router based on Armada 385 And a couple of new boards targeted at developers, makers or industrial integration: - Macnica Sodia development platform for Altera socfpga (Cyclone V) - MicroZed board based on Xilinx Zynq FPGA platforms - TOPEET itop/elite based on exynos4412 - WP8548 MangOH Open Hardware platform for IOT, based on Qualcomm MDM9615 - NextThing CHIP Pro gadget - NanoPi M1 development board - AM571x-IDK industrial board based on TI AM5718 - i.MX6SX UDOO Neo - Boundary Devices Nitrogen6_SOM2 (i.MX6) - Engicam i.CoreM6 - Grinn i.MX6UL liteSOM/liteBoard - Toradex Colibri iMX6 module Other changes: - added peripherals on renesas, davinci, stm32f429, uniphier, sti, mediatek, integrator, at91, imx, vybrid, ls1021a, omap, qualcomm, mvebu, allwinner, broadcom, exynos, zynq - Continued fixes for W=1 dtc warnings - The old STiH415/416 SoC support gets removed, these never made it into products and have served their purpose in the kernel as a template for teh newer chips from ST - The exynos4415 dtsi file is removed as nothing uses it. - Intel PXA25x can now be booted using devicetree" * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (422 commits) arm: dts: zynq: Add MicroZed board support ARM: dts: da850: enable high speed for mmc ARM: dts: da850: Add node for pullup/pulldown pinconf ARM: dts: da850: enable memctrl and mstpri nodes per board ARM: dts: da850-lcdk: Add ethernet0 alias to DT ARM: dts: artpec: add pcie support ARM: dts: add support for Turris Omnia devicetree: Add vendor prefix for CZ.NIC ARM: dts: berlin2q-marvell-dmp: fix typo in chosen node ARM: dts: berlin2q-marvell-dmp: fix regulators' name ARM: dts: Add xo to sdhc clock node on qcom platforms ARM: dts: r8a7794: Add device node for PRR ARM: dts: r8a7793: Add device node for PRR ARM: dts: r8a7792: Add device node for PRR ARM: dts: r8a7791: Add device node for PRR ARM: dts: r8a7790: Add device node for PRR ARM: dts: r8a7779: Add device node for PRR ARM: dts: r8a73a4: Add device node for PRR ARM: dts: sk-rzg1e: add Ether support ARM: dts: sk-rzg1e: initial device tree ...
-rw-r--r--Documentation/devicetree/bindings/arm/cpus.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/omap/omap.txt3
-rw-r--r--Documentation/devicetree/bindings/arm/oxnas.txt5
-rw-r--r--Documentation/devicetree/bindings/arm/qcom.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/rockchip.txt4
-rw-r--r--Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt3
-rw-r--r--Documentation/devicetree/bindings/arm/swir.txt12
-rw-r--r--Documentation/devicetree/bindings/ata/ahci-st.txt15
-rw-r--r--Documentation/devicetree/bindings/gpio/mrvl-gpio.txt6
-rw-r--r--Documentation/devicetree/bindings/mailbox/brcm,bcm2835-mbox.txt2
-rw-r--r--Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt1
-rw-r--r--Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt3
-rw-r--r--Documentation/devicetree/bindings/reset/st,sti-powerdown.txt12
-rw-r--r--Documentation/devicetree/bindings/reset/st,sti-softreset.txt8
-rw-r--r--Documentation/devicetree/bindings/serial/nvidia,tegra20-hsuart.txt2
-rw-r--r--Documentation/devicetree/bindings/soc/mediatek/scpsys.txt13
-rw-r--r--Documentation/devicetree/bindings/thermal/brcm,bcm2835-thermal.txt17
-rw-r--r--Documentation/devicetree/bindings/thermal/st-thermal.txt28
-rw-r--r--Documentation/devicetree/bindings/usb/atmel-usb.txt10
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt2
-rw-r--r--MAINTAINERS5
-rw-r--r--arch/arm/boot/dts/Makefile50
-rw-r--r--arch/arm/boot/dts/am335x-baltos-ir2110.dts10
-rw-r--r--arch/arm/boot/dts/am335x-baltos-ir3220.dts2
-rw-r--r--arch/arm/boot/dts/am335x-baltos-ir5221.dts4
-rw-r--r--arch/arm/boot/dts/am335x-baltos.dtsi9
-rw-r--r--arch/arm/boot/dts/am335x-bone-common.dtsi22
-rw-r--r--arch/arm/boot/dts/am335x-boneblack.dts11
-rw-r--r--arch/arm/boot/dts/am335x-evm.dts5
-rw-r--r--arch/arm/boot/dts/am335x-evmsk.dts5
-rw-r--r--arch/arm/boot/dts/am335x-icev2.dts47
-rw-r--r--arch/arm/boot/dts/am33xx.dtsi6
-rw-r--r--arch/arm/boot/dts/am3517.dtsi1
-rw-r--r--arch/arm/boot/dts/am4372.dtsi3
-rw-r--r--arch/arm/boot/dts/am437x-idk-evm.dts101
-rw-r--r--arch/arm/boot/dts/am571x-idk.dts81
-rw-r--r--arch/arm/boot/dts/am572x-idk.dts4
-rw-r--r--arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi1
-rw-r--r--arch/arm/boot/dts/am57xx-idk-common.dtsi75
-rw-r--r--arch/arm/boot/dts/armada-370-db.dts63
-rw-r--r--arch/arm/boot/dts/armada-370-dlink-dns327l.dts30
-rw-r--r--arch/arm/boot/dts/armada-370-mirabox.dts57
-rw-r--r--arch/arm/boot/dts/armada-370-netgear-rn102.dts55
-rw-r--r--arch/arm/boot/dts/armada-370-netgear-rn104.dts63
-rw-r--r--arch/arm/boot/dts/armada-370-rd.dts57
-rw-r--r--arch/arm/boot/dts/armada-370-seagate-nas-4bay.dts27
-rw-r--r--arch/arm/boot/dts/armada-370-seagate-nas-xbay.dtsi45
-rw-r--r--arch/arm/boot/dts/armada-370-seagate-personal-cloud.dtsi44
-rw-r--r--arch/arm/boot/dts/armada-370-synology-ds213j.dts18
-rw-r--r--arch/arm/boot/dts/armada-370-xp.dtsi39
-rw-r--r--arch/arm/boot/dts/armada-370.dtsi136
-rw-r--r--arch/arm/boot/dts/armada-375-db.dts271
-rw-r--r--arch/arm/boot/dts/armada-375.dtsi72
-rw-r--r--arch/arm/boot/dts/armada-385-turris-omnia.dts340
-rw-r--r--arch/arm/boot/dts/armada-38x.dtsi2
-rw-r--r--arch/arm/boot/dts/armada-39x.dtsi2
-rw-r--r--arch/arm/boot/dts/armada-xp-axpwifiap.dts68
-rw-r--r--arch/arm/boot/dts/armada-xp-db.dts104
-rw-r--r--arch/arm/boot/dts/armada-xp-gp.dts80
-rw-r--r--arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts53
-rw-r--r--arch/arm/boot/dts/armada-xp-linksys-mamba.dts52
-rw-r--r--arch/arm/boot/dts/armada-xp-matrix.dts20
-rw-r--r--arch/arm/boot/dts/armada-xp-mv78230.dtsi12
-rw-r--r--arch/arm/boot/dts/armada-xp-mv78260.dtsi20
-rw-r--r--arch/arm/boot/dts/armada-xp-mv78460.dtsi22
-rw-r--r--arch/arm/boot/dts/armada-xp-netgear-rn2120.dts74
-rw-r--r--arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts58
-rw-r--r--arch/arm/boot/dts/armada-xp-synology-ds414.dts75
-rw-r--r--arch/arm/boot/dts/armada-xp.dtsi94
-rw-r--r--arch/arm/boot/dts/artpec6-devboard.dts4
-rw-r--r--arch/arm/boot/dts/artpec6.dtsi29
-rw-r--r--arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi4
-rw-r--r--arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts4
-rw-r--r--arch/arm/boot/dts/at91rm9200.dtsi4
-rw-r--r--arch/arm/boot/dts/at91sam9260.dtsi4
-rw-r--r--arch/arm/boot/dts/at91sam9260ek.dts4
-rw-r--r--arch/arm/boot/dts/at91sam9261.dtsi4
-rw-r--r--arch/arm/boot/dts/at91sam9263.dtsi4
-rw-r--r--arch/arm/boot/dts/at91sam9g45.dtsi4
-rw-r--r--arch/arm/boot/dts/at91sam9n12.dtsi4
-rw-r--r--arch/arm/boot/dts/at91sam9rl.dtsi4
-rw-r--r--arch/arm/boot/dts/at91sam9x5.dtsi4
-rw-r--r--arch/arm/boot/dts/bcm-cygnus.dtsi21
-rw-r--r--arch/arm/boot/dts/bcm-nsp.dtsi41
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi-a-plus.dts67
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi-a.dts69
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi-b-plus.dts68
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts68
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi-b.dts69
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi-zero.dts67
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi.dtsi15
-rw-r--r--arch/arm/boot/dts/bcm2835.dtsi6
-rw-r--r--arch/arm/boot/dts/bcm2836-rpi-2-b.dts2
-rw-r--r--arch/arm/boot/dts/bcm2836.dtsi6
-rw-r--r--arch/arm/boot/dts/bcm283x.dtsi212
-rw-r--r--arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts64
-rw-r--r--arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts2
-rw-r--r--arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts2
-rw-r--r--arch/arm/boot/dts/bcm4709-netgear-r7000.dts2
-rw-r--r--arch/arm/boot/dts/bcm4709-netgear-r8000.dts6
-rw-r--r--arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts114
-rw-r--r--arch/arm/boot/dts/bcm4709.dtsi11
-rw-r--r--arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts3
-rw-r--r--arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts111
-rw-r--r--arch/arm/boot/dts/bcm47094-netgear-r8500.dts103
-rw-r--r--arch/arm/boot/dts/bcm47094.dtsi17
-rw-r--r--arch/arm/boot/dts/bcm47189-tenda-ac9.dts74
-rw-r--r--arch/arm/boot/dts/bcm5301x-nand-cs0-bch4.dtsi13
-rw-r--r--arch/arm/boot/dts/bcm5301x.dtsi7
-rw-r--r--arch/arm/boot/dts/bcm53573.dtsi159
-rw-r--r--arch/arm/boot/dts/bcm958625k.dts34
-rw-r--r--arch/arm/boot/dts/berlin2q-marvell-dmp.dts12
-rw-r--r--arch/arm/boot/dts/cloudengines-pogoplug-series-3.dts94
-rw-r--r--arch/arm/boot/dts/da850-lcdk.dts19
-rw-r--r--arch/arm/boot/dts/da850.dtsi70
-rw-r--r--arch/arm/boot/dts/dm814x.dtsi1
-rw-r--r--arch/arm/boot/dts/dm816x.dtsi2
-rw-r--r--arch/arm/boot/dts/dra7.dtsi1
-rw-r--r--arch/arm/boot/dts/dra71-evm.dts230
-rw-r--r--arch/arm/boot/dts/dra72-evm-common.dtsi348
-rw-r--r--arch/arm/boot/dts/dra72-evm-revc.dts21
-rw-r--r--arch/arm/boot/dts/dra72-evm-tps65917.dtsi134
-rw-r--r--arch/arm/boot/dts/dra72-evm.dts14
-rw-r--r--arch/arm/boot/dts/emev2.dtsi3
-rw-r--r--arch/arm/boot/dts/exynos3250-artik5-eval.dts2
-rw-r--r--arch/arm/boot/dts/exynos3250-artik5.dtsi2
-rw-r--r--arch/arm/boot/dts/exynos3250-monk.dts2
-rw-r--r--arch/arm/boot/dts/exynos3250-pinctrl.dtsi20
-rw-r--r--arch/arm/boot/dts/exynos3250-rinato.dts2
-rw-r--r--arch/arm/boot/dts/exynos3250.dtsi97
-rw-r--r--arch/arm/boot/dts/exynos4.dtsi100
-rw-r--r--arch/arm/boot/dts/exynos4210-pinctrl.dtsi20
-rw-r--r--arch/arm/boot/dts/exynos4210.dtsi36
-rw-r--r--arch/arm/boot/dts/exynos4412-itop-elite.dts240
-rw-r--r--arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi501
-rw-r--r--arch/arm/boot/dts/exynos4412-odroidx.dts5
-rw-r--r--arch/arm/boot/dts/exynos4415-pinctrl.dtsi575
-rw-r--r--arch/arm/boot/dts/exynos4415.dtsi650
-rw-r--r--arch/arm/boot/dts/exynos4x12-pinctrl.dtsi20
-rw-r--r--arch/arm/boot/dts/exynos4x12.dtsi50
-rw-r--r--arch/arm/boot/dts/exynos5.dtsi64
-rw-r--r--arch/arm/boot/dts/exynos5250-snow-common.dtsi4
-rw-r--r--arch/arm/boot/dts/exynos5250.dtsi80
-rw-r--r--arch/arm/boot/dts/exynos5260.dtsi43
-rw-r--r--arch/arm/boot/dts/exynos5410-odroidxu.dts69
-rw-r--r--arch/arm/boot/dts/exynos5410-pinctrl.dtsi9
-rw-r--r--arch/arm/boot/dts/exynos5410.dtsi85
-rw-r--r--arch/arm/boot/dts/exynos5420-peach-pit.dts3
-rw-r--r--arch/arm/boot/dts/exynos5420.dtsi78
-rw-r--r--arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi12
-rw-r--r--arch/arm/boot/dts/exynos5440.dtsi72
-rw-r--r--arch/arm/boot/dts/exynos54xx.dtsi34
-rw-r--r--arch/arm/boot/dts/exynos5800-peach-pi.dts3
-rw-r--r--arch/arm/boot/dts/hi3620.dtsi6
-rw-r--r--arch/arm/boot/dts/hip01.dtsi2
-rw-r--r--arch/arm/boot/dts/hisi-x5hd2.dtsi4
-rw-r--r--arch/arm/boot/dts/imx1.dtsi4
-rw-r--r--arch/arm/boot/dts/imx23.dtsi6
-rw-r--r--arch/arm/boot/dts/imx25.dtsi4
-rw-r--r--arch/arm/boot/dts/imx27.dtsi4
-rw-r--r--arch/arm/boot/dts/imx28-m28.dtsi4
-rw-r--r--arch/arm/boot/dts/imx28-m28evk.dts4
-rw-r--r--arch/arm/boot/dts/imx28.dtsi4
-rw-r--r--arch/arm/boot/dts/imx31.dtsi5
-rw-r--r--arch/arm/boot/dts/imx35.dtsi4
-rw-r--r--arch/arm/boot/dts/imx50.dtsi48
-rw-r--r--arch/arm/boot/dts/imx51.dtsi48
-rw-r--r--arch/arm/boot/dts/imx53-m53.dtsi4
-rw-r--r--arch/arm/boot/dts/imx53-m53evk.dts4
-rw-r--r--arch/arm/boot/dts/imx53.dtsi72
-rw-r--r--arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts253
-rw-r--r--arch/arm/boot/dts/imx6dl-icore.dts59
-rw-r--r--arch/arm/boot/dts/imx6dl-riotboard.dts2
-rw-r--r--arch/arm/boot/dts/imx6dl-tx6dl-comtft.dts2
-rw-r--r--arch/arm/boot/dts/imx6dl-tx6u-801x.dts2
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-ixora.dts22
-rw-r--r--arch/arm/boot/dts/imx6q-b650v3.dts6
-rw-r--r--arch/arm/boot/dts/imx6q-evi.dts3
-rw-r--r--arch/arm/boot/dts/imx6q-icore.dts59
-rw-r--r--arch/arm/boot/dts/imx6q-nitrogen6_som2.dts53
-rw-r--r--arch/arm/boot/dts/imx6q-novena.dts4
-rw-r--r--arch/arm/boot/dts/imx6q-phytec-pbab01.dts2
-rw-r--r--arch/arm/boot/dts/imx6q-tx6q-1010-comtft.dts2
-rw-r--r--arch/arm/boot/dts/imx6q-tx6q-1010.dts2
-rw-r--r--arch/arm/boot/dts/imx6q-tx6q-1020-comtft.dts2
-rw-r--r--arch/arm/boot/dts/imx6q-tx6q-1020.dts2
-rw-r--r--arch/arm/boot/dts/imx6q-utilite-pro.dts53
-rw-r--r--arch/arm/boot/dts/imx6qdl-apalis.dtsi9
-rw-r--r--arch/arm/boot/dts/imx6qdl-apf6dev.dtsi14
-rw-r--r--arch/arm/boot/dts/imx6qdl-colibri.dtsi890
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw52xx.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw53xx.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw54xx.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw552x.dtsi2
-rw-r--r--arch/arm/boot/dts/imx6qdl-icore.dtsi265
-rw-r--r--arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi32
-rw-r--r--arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi18
-rw-r--r--arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi770
-rw-r--r--arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi12
-rw-r--r--arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi6
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabreauto.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabrelite.dtsi10
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabresd.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl-tx6.dtsi32
-rw-r--r--arch/arm/boot/dts/imx6qdl-wandboard-revb1.dtsi2
-rw-r--r--arch/arm/boot/dts/imx6qdl-wandboard.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl.dtsi14
-rw-r--r--arch/arm/boot/dts/imx6qp.dtsi7
-rw-r--r--arch/arm/boot/dts/imx6sl.dtsi7
-rw-r--r--arch/arm/boot/dts/imx6sx-sdb.dtsi16
-rw-r--r--arch/arm/boot/dts/imx6sx-udoo-neo-basic.dts69
-rw-r--r--arch/arm/boot/dts/imx6sx-udoo-neo-extended.dts54
-rw-r--r--arch/arm/boot/dts/imx6sx-udoo-neo-full.dts69
-rw-r--r--arch/arm/boot/dts/imx6sx-udoo-neo.dtsi293
-rw-r--r--arch/arm/boot/dts/imx6sx.dtsi17
-rw-r--r--arch/arm/boot/dts/imx6ul-14x14-evk.dts10
-rw-r--r--arch/arm/boot/dts/imx6ul-liteboard.dts147
-rw-r--r--arch/arm/boot/dts/imx6ul-litesom.dtsi82
-rw-r--r--arch/arm/boot/dts/imx6ul.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6ull-14x14-evk.dts52
-rw-r--r--arch/arm/boot/dts/imx6ull-pinfunc.h56
-rw-r--r--arch/arm/boot/dts/imx6ull.dtsi43
-rw-r--r--arch/arm/boot/dts/imx7s.dtsi4
-rw-r--r--arch/arm/boot/dts/integratorap.dts35
-rw-r--r--arch/arm/boot/dts/integratorcp.dts26
-rw-r--r--arch/arm/boot/dts/keystone-k2g.dtsi1
-rw-r--r--arch/arm/boot/dts/keystone-k2l.dtsi1
-rw-r--r--arch/arm/boot/dts/kirkwood-topkick.dts2
-rw-r--r--arch/arm/boot/dts/lpc32xx.dtsi4
-rw-r--r--arch/arm/boot/dts/ls1021a.dtsi84
-rw-r--r--arch/arm/boot/dts/mps2-an385.dts2
-rw-r--r--arch/arm/boot/dts/mps2-an399.dts2
-rw-r--r--arch/arm/boot/dts/mps2.dtsi4
-rw-r--r--arch/arm/boot/dts/mt2701.dtsi50
-rw-r--r--arch/arm/boot/dts/omap2420.dtsi2
-rw-r--r--arch/arm/boot/dts/omap2430.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3.dtsi2
-rw-r--r--arch/arm/boot/dts/omap34xx.dtsi1
-rw-r--r--arch/arm/boot/dts/omap36xx.dtsi1
-rw-r--r--arch/arm/boot/dts/omap4-droid4-xt894.dts188
-rw-r--r--arch/arm/boot/dts/omap4.dtsi2
-rw-r--r--arch/arm/boot/dts/omap5-uevm.dts92
-rw-r--r--arch/arm/boot/dts/omap5.dtsi2
-rw-r--r--arch/arm/boot/dts/orion5x-lschl.dts171
-rw-r--r--arch/arm/boot/dts/ox820.dtsi296
-rw-r--r--arch/arm/boot/dts/pxa25x.dtsi117
-rw-r--r--arch/arm/boot/dts/pxa27x.dtsi40
-rw-r--r--arch/arm/boot/dts/pxa2xx.dtsi4
-rw-r--r--arch/arm/boot/dts/pxa3xx.dtsi1
-rw-r--r--arch/arm/boot/dts/qcom-apq8060-dragonboard.dts119
-rw-r--r--arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts77
-rw-r--r--arch/arm/boot/dts/qcom-apq8064-ifc6410.dts74
-rw-r--r--arch/arm/boot/dts/qcom-apq8064.dtsi321
-rw-r--r--arch/arm/boot/dts/qcom-apq8084.dtsi16
-rw-r--r--arch/arm/boot/dts/qcom-mdm9615-wp8548-mangoh-green.dts281
-rw-r--r--arch/arm/boot/dts/qcom-mdm9615-wp8548.dtsi170
-rw-r--r--arch/arm/boot/dts/qcom-mdm9615.dtsi557
-rw-r--r--arch/arm/boot/dts/qcom-msm8660.dtsi17
-rw-r--r--arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts29
-rw-r--r--arch/arm/boot/dts/qcom-msm8974.dtsi16
-rw-r--r--arch/arm/boot/dts/r7s72100-rskrza1.dts5
-rw-r--r--arch/arm/boot/dts/r7s72100.dtsi55
-rw-r--r--arch/arm/boot/dts/r8a73a4.dtsi5
-rw-r--r--arch/arm/boot/dts/r8a7740.dtsi4
-rw-r--r--arch/arm/boot/dts/r8a7743-sk-rzg1m.dts57
-rw-r--r--arch/arm/boot/dts/r8a7743.dtsi476
-rw-r--r--arch/arm/boot/dts/r8a7745-sk-rzg1e.dts52
-rw-r--r--arch/arm/boot/dts/r8a7745.dtsi476
-rw-r--r--arch/arm/boot/dts/r8a7778.dtsi4
-rw-r--r--arch/arm/boot/dts/r8a7779-marzen.dts2
-rw-r--r--arch/arm/boot/dts/r8a7779.dtsi11
-rw-r--r--arch/arm/boot/dts/r8a7790-lager.dts118
-rw-r--r--arch/arm/boot/dts/r8a7790.dtsi11
-rw-r--r--arch/arm/boot/dts/r8a7791-koelsch.dts137
-rw-r--r--arch/arm/boot/dts/r8a7791.dtsi14
-rw-r--r--arch/arm/boot/dts/r8a7792-wheat.dts126
-rw-r--r--arch/arm/boot/dts/r8a7792.dtsi56
-rw-r--r--arch/arm/boot/dts/r8a7793-gose.dts12
-rw-r--r--arch/arm/boot/dts/r8a7793.dtsi38
-rw-r--r--arch/arm/boot/dts/r8a7794-alt.dts62
-rw-r--r--arch/arm/boot/dts/r8a7794.dtsi81
-rw-r--r--arch/arm/boot/dts/rk1108-evb.dts69
-rw-r--r--arch/arm/boot/dts/rk1108.dtsi452
-rw-r--r--arch/arm/boot/dts/rk3036-evb.dts2
-rw-r--r--arch/arm/boot/dts/rk3036-kylin.dts2
-rw-r--r--arch/arm/boot/dts/rk3036.dtsi10
-rw-r--r--arch/arm/boot/dts/rk3066a-bqcurie2.dts2
-rw-r--r--arch/arm/boot/dts/rk3066a-marsboard.dts2
-rw-r--r--arch/arm/boot/dts/rk3066a-mk808.dts195
-rw-r--r--arch/arm/boot/dts/rk3066a-rayeager.dts2
-rw-r--r--arch/arm/boot/dts/rk3066a.dtsi31
-rw-r--r--arch/arm/boot/dts/rk3188-px3-evb.dts328
-rw-r--r--arch/arm/boot/dts/rk3188-radxarock.dts2
-rw-r--r--arch/arm/boot/dts/rk3188.dtsi2
-rw-r--r--arch/arm/boot/dts/rk3228-evb.dts2
-rw-r--r--arch/arm/boot/dts/rk3229-evb.dts2
-rw-r--r--arch/arm/boot/dts/rk322x.dtsi6
-rw-r--r--arch/arm/boot/dts/rk3288-evb.dtsi2
-rw-r--r--arch/arm/boot/dts/rk3288-fennec.dts2
-rw-r--r--arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi2
-rw-r--r--arch/arm/boot/dts/rk3288-firefly.dtsi2
-rw-r--r--arch/arm/boot/dts/rk3288-miqi.dts2
-rw-r--r--arch/arm/boot/dts/rk3288-popmetal.dts34
-rw-r--r--arch/arm/boot/dts/rk3288-r89.dts2
-rw-r--r--arch/arm/boot/dts/rk3288-rock2-som.dtsi2
-rw-r--r--arch/arm/boot/dts/rk3288-veyron.dtsi2
-rw-r--r--arch/arm/boot/dts/rk3288.dtsi14
-rw-r--r--arch/arm/boot/dts/rk3xxx.dtsi4
-rw-r--r--arch/arm/boot/dts/sama5d2.dtsi47
-rw-r--r--arch/arm/boot/dts/sama5d3.dtsi4
-rw-r--r--arch/arm/boot/dts/sama5d4.dtsi31
-rw-r--r--arch/arm/boot/dts/sh73a0.dtsi4
-rw-r--r--arch/arm/boot/dts/socfpga.dtsi33
-rw-r--r--arch/arm/boot/dts/socfpga_arria10.dtsi32
-rw-r--r--arch/arm/boot/dts/socfpga_arria10_socdk.dtsi49
-rw-r--r--arch/arm/boot/dts/socfpga_arria10_socdk_qspi.dts49
-rw-r--r--arch/arm/boot/dts/socfpga_arria5_socdk.dts33
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts2
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi2
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_mcvevk.dts4
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_socdk.dts35
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_sockit.dts23
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_socrates.dts19
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_sodia.dts123
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts2
-rw-r--r--arch/arm/boot/dts/stih407-clock.dtsi10
-rw-r--r--arch/arm/boot/dts/stih407-family.dtsi32
-rw-r--r--arch/arm/boot/dts/stih407-pinctrl.dtsi2
-rw-r--r--arch/arm/boot/dts/stih407.dtsi2
-rw-r--r--arch/arm/boot/dts/stih410-b2260.dts22
-rw-r--r--arch/arm/boot/dts/stih410-clock.dtsi3
-rw-r--r--arch/arm/boot/dts/stih410.dtsi2
-rw-r--r--arch/arm/boot/dts/stih415-b2000.dts15
-rw-r--r--arch/arm/boot/dts/stih415-b2020.dts15
-rw-r--r--arch/arm/boot/dts/stih415-clock.dtsi533
-rw-r--r--arch/arm/boot/dts/stih415-pinctrl.dtsi545
-rw-r--r--arch/arm/boot/dts/stih415.dtsi234
-rw-r--r--arch/arm/boot/dts/stih416-b2000.dts15
-rw-r--r--arch/arm/boot/dts/stih416-b2020.dts37
-rw-r--r--arch/arm/boot/dts/stih416-b2020e.dts65
-rw-r--r--arch/arm/boot/dts/stih416-clock.dtsi756
-rw-r--r--arch/arm/boot/dts/stih416-pinctrl.dtsi692
-rw-r--r--arch/arm/boot/dts/stih416.dtsi517
-rw-r--r--arch/arm/boot/dts/stih41x-b2000.dtsi96
-rw-r--r--arch/arm/boot/dts/stih41x-b2020.dtsi82
-rw-r--r--arch/arm/boot/dts/stih41x-b2020x.dtsi32
-rw-r--r--arch/arm/boot/dts/stih41x.dtsi47
-rw-r--r--arch/arm/boot/dts/stihxxx-b2120.dtsi21
-rw-r--r--arch/arm/boot/dts/stm32429i-eval.dts29
-rw-r--r--arch/arm/boot/dts/stm32746g-eval.dts96
-rw-r--r--arch/arm/boot/dts/stm32f429-disco.dts13
-rw-r--r--arch/arm/boot/dts/stm32f429.dtsi40
-rw-r--r--arch/arm/boot/dts/stm32f469-disco.dts8
-rw-r--r--arch/arm/boot/dts/stm32f746.dtsi304
-rw-r--r--arch/arm/boot/dts/sun4i-a10.dtsi3
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts4
-rw-r--r--arch/arm/boot/dts/sun5i-a10s.dtsi4
-rw-r--r--arch/arm/boot/dts/sun5i-a13-olinuxino.dts54
-rw-r--r--arch/arm/boot/dts/sun5i-a13-utoo-p66.dts38
-rw-r--r--arch/arm/boot/dts/sun5i-gr8-chip-pro.dts266
-rw-r--r--arch/arm/boot/dts/sun5i-gr8-evb.dts33
-rw-r--r--arch/arm/boot/dts/sun5i-gr8.dtsi47
-rw-r--r--arch/arm/boot/dts/sun5i-r8-chip.dts69
-rw-r--r--arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi25
-rw-r--r--arch/arm/boot/dts/sun5i.dtsi27
-rw-r--r--arch/arm/boot/dts/sun6i-a31-hummingbird.dts80
-rw-r--r--arch/arm/boot/dts/sun6i-a31.dtsi266
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-sina31s.dts8
-rw-r--r--arch/arm/boot/dts/sun6i-a31s.dtsi8
-rw-r--r--arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts62
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts4
-rw-r--r--arch/arm/boot/dts/sun7i-a20.dtsi3
-rw-r--r--arch/arm/boot/dts/sun8i-a23-a33.dtsi6
-rw-r--r--arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts7
-rw-r--r--arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts5
-rw-r--r--arch/arm/boot/dts/sun8i-h3-nanopi-m1.dts64
-rw-r--r--arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts79
-rw-r--r--arch/arm/boot/dts/sun8i-h3-nanopi.dtsi144
-rw-r--r--arch/arm/boot/dts/sun8i-h3.dtsi52
-rw-r--r--arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi7
-rw-r--r--arch/arm/boot/dts/sun9i-a80-cubieboard4.dts32
-rw-r--r--arch/arm/boot/dts/sun9i-a80-optimus.dts30
-rw-r--r--arch/arm/boot/dts/sun9i-a80.dtsi14
-rw-r--r--arch/arm/boot/dts/tegra124-apalis.dtsi2
-rw-r--r--arch/arm/boot/dts/tegra124-nyan.dtsi8
-rw-r--r--arch/arm/boot/dts/tegra20.dtsi13
-rw-r--r--arch/arm/boot/dts/tegra30-apalis.dtsi49
-rw-r--r--arch/arm/boot/dts/tegra30-colibri.dtsi49
-rw-r--r--arch/arm/boot/dts/tegra30.dtsi13
-rw-r--r--arch/arm/boot/dts/tps65217.dtsi12
-rw-r--r--arch/arm/boot/dts/uniphier-common32.dtsi199
-rw-r--r--arch/arm/boot/dts/uniphier-ld4.dtsi358
-rw-r--r--arch/arm/boot/dts/uniphier-pro4.dtsi378
-rw-r--r--arch/arm/boot/dts/uniphier-pro5.dtsi432
-rw-r--r--arch/arm/boot/dts/uniphier-pxs2.dtsi399
-rw-r--r--arch/arm/boot/dts/uniphier-sld3.dtsi21
-rw-r--r--arch/arm/boot/dts/uniphier-sld8.dtsi359
-rw-r--r--arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts5
-rw-r--r--arch/arm/boot/dts/vf-colibri.dtsi4
-rw-r--r--arch/arm/boot/dts/vf610-zii-dev-rev-b.dts14
-rw-r--r--arch/arm/boot/dts/vfxxx.dtsi18
-rw-r--r--arch/arm/boot/dts/zynq-7000.dtsi10
-rw-r--r--arch/arm/boot/dts/zynq-microzed.dts96
-rw-r--r--arch/arm/boot/dts/zynq-parallella.dts2
-rw-r--r--arch/arm/boot/dts/zynq-zc702.dts2
-rw-r--r--arch/arm/boot/dts/zynq-zc706.dts2
-rw-r--r--arch/arm/boot/dts/zynq-zed.dts2
-rw-r--r--arch/arm/boot/dts/zynq-zybo.dts2
-rw-r--r--arch/arm64/boot/dts/hisilicon/hi6220.dtsi3
-rw-r--r--arch/arm64/boot/dts/mediatek/mt8173.dtsi3
-rw-r--r--drivers/pinctrl/bcm/pinctrl-bcm2835.c6
-rw-r--r--include/dt-bindings/clock/r7s72100-clock.h7
-rw-r--r--include/dt-bindings/clock/r8a7794-clock.h3
-rw-r--r--include/dt-bindings/clock/stih415-clks.h16
-rw-r--r--include/dt-bindings/mfd/tps65217.h26
-rw-r--r--include/dt-bindings/pinctrl/bcm2835.h5
-rw-r--r--include/dt-bindings/pinctrl/rockchip.h33
-rw-r--r--include/dt-bindings/power/mt2701-power.h27
-rw-r--r--include/dt-bindings/power/r8a7743-sysc.h25
-rw-r--r--include/dt-bindings/power/r8a7745-sysc.h25
420 files changed, 18327 insertions, 8052 deletions
diff --git a/Documentation/devicetree/bindings/arm/cpus.txt b/Documentation/devicetree/bindings/arm/cpus.txt
index c1dcf4cade2e..a1bcfeed5f24 100644
--- a/Documentation/devicetree/bindings/arm/cpus.txt
+++ b/Documentation/devicetree/bindings/arm/cpus.txt
@@ -178,6 +178,7 @@ nodes to be present and contain the properties described below.
178 "marvell,pj4b" 178 "marvell,pj4b"
179 "marvell,sheeva-v5" 179 "marvell,sheeva-v5"
180 "nvidia,tegra132-denver" 180 "nvidia,tegra132-denver"
181 "nvidia,tegra186-denver"
181 "qcom,krait" 182 "qcom,krait"
182 "qcom,kryo" 183 "qcom,kryo"
183 "qcom,scorpion" 184 "qcom,scorpion"
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
index 454b1bec7542..05f95c3ed7d4 100644
--- a/Documentation/devicetree/bindings/arm/omap/omap.txt
+++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
@@ -178,6 +178,9 @@ Boards:
178- AM5728 IDK 178- AM5728 IDK
179 compatible = "ti,am5728-idk", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7" 179 compatible = "ti,am5728-idk", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"
180 180
181- AM5718 IDK
182 compatible = "ti,am5718-idk", "ti,am5718", "ti,dra7"
183
181- DRA742 EVM: Software Development Board for DRA742 184- DRA742 EVM: Software Development Board for DRA742
182 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7" 185 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"
183 186
diff --git a/Documentation/devicetree/bindings/arm/oxnas.txt b/Documentation/devicetree/bindings/arm/oxnas.txt
index b9e49711ba05..ac64e60f99f1 100644
--- a/Documentation/devicetree/bindings/arm/oxnas.txt
+++ b/Documentation/devicetree/bindings/arm/oxnas.txt
@@ -5,5 +5,10 @@ Boards with the OX810SE SoC shall have the following properties:
5 Required root node property: 5 Required root node property:
6 compatible: "oxsemi,ox810se" 6 compatible: "oxsemi,ox810se"
7 7
8Boards with the OX820 SoC shall have the following properties:
9 Required root node property:
10 compatible: "oxsemi,ox820"
11
8Board compatible values: 12Board compatible values:
9 - "wd,mbwe" (OX810SE) 13 - "wd,mbwe" (OX810SE)
14 - "cloudengines,pogoplugv3" (OX820)
diff --git a/Documentation/devicetree/bindings/arm/qcom.txt b/Documentation/devicetree/bindings/arm/qcom.txt
index 3e24518c6678..43abf4e0a0a5 100644
--- a/Documentation/devicetree/bindings/arm/qcom.txt
+++ b/Documentation/devicetree/bindings/arm/qcom.txt
@@ -22,6 +22,7 @@ The 'SoC' element must be one of the following strings:
22 msm8916 22 msm8916
23 msm8974 23 msm8974
24 msm8996 24 msm8996
25 mdm9615
25 26
26The 'board' element must be one of the following strings: 27The 'board' element must be one of the following strings:
27 28
diff --git a/Documentation/devicetree/bindings/arm/rockchip.txt b/Documentation/devicetree/bindings/arm/rockchip.txt
index 55f388f954de..e921f3efac64 100644
--- a/Documentation/devicetree/bindings/arm/rockchip.txt
+++ b/Documentation/devicetree/bindings/arm/rockchip.txt
@@ -25,6 +25,10 @@ Rockchip platforms device tree bindings
25 Required root node properties: 25 Required root node properties:
26 - compatible = "radxa,rock2-square", "rockchip,rk3288"; 26 - compatible = "radxa,rock2-square", "rockchip,rk3288";
27 27
28- Rikomagic MK808 v1 board:
29 Required root node properties:
30 - compatible = "rikomagic,mk808", "rockchip,rk3066a";
31
28- Firefly Firefly-RK3288 board: 32- Firefly Firefly-RK3288 board:
29 Required root node properties: 33 Required root node properties:
30 - compatible = "firefly,firefly-rk3288", "rockchip,rk3288"; 34 - compatible = "firefly,firefly-rk3288", "rockchip,rk3288";
diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt
index 0ea7f14ef294..5160fa5f7b5c 100644
--- a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt
+++ b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt
@@ -22,6 +22,9 @@ Required root node properties:
22 * FriendlyARM 22 * FriendlyARM
23 - "friendlyarm,tiny4412" - for Exynos4412-based FriendlyARM 23 - "friendlyarm,tiny4412" - for Exynos4412-based FriendlyARM
24 TINY4412 board. 24 TINY4412 board.
25 * TOPEET
26 - "topeet,itop4412-elite" - for Exynos4412-based TOPEET
27 Elite base board.
25 28
26 * Google 29 * Google
27 - "google,pi" - for Exynos5800-based Google Peach Pi 30 - "google,pi" - for Exynos5800-based Google Peach Pi
diff --git a/Documentation/devicetree/bindings/arm/swir.txt b/Documentation/devicetree/bindings/arm/swir.txt
new file mode 100644
index 000000000000..042be73a95d3
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/swir.txt
@@ -0,0 +1,12 @@
1Sierra Wireless Modules device tree bindings
2--------------------------------------------
3
4Supported Modules :
5 - WP8548 : Includes MDM9615 and PM8018 in a module
6
7Sierra Wireless modules shall have the following properties :
8 Required root node property
9 - compatible: "swir,wp8548" for the WP8548 CF3 Module
10
11Board compatible values:
12 - "swir,mangoh-green-wp8548" for the mangOH green board with the WP8548 module
diff --git a/Documentation/devicetree/bindings/ata/ahci-st.txt b/Documentation/devicetree/bindings/ata/ahci-st.txt
index e1d01df8e3c1..909c9935360d 100644
--- a/Documentation/devicetree/bindings/ata/ahci-st.txt
+++ b/Documentation/devicetree/bindings/ata/ahci-st.txt
@@ -18,21 +18,6 @@ Optional properties:
18 18
19Example: 19Example:
20 20
21 /* Example for stih416 */
22 sata0: sata@fe380000 {
23 compatible = "st,ahci";
24 reg = <0xfe380000 0x1000>;
25 interrupts = <GIC_SPI 157 IRQ_TYPE_NONE>;
26 interrupt-names = "hostc";
27 phys = <&phy_port0 PHY_TYPE_SATA>;
28 phy-names = "ahci_phy";
29 resets = <&powerdown STIH416_SATA0_POWERDOWN>,
30 <&softreset STIH416_SATA0_SOFTRESET>;
31 reset-names = "pwr-dwn", "sw-rst";
32 clocks = <&clk_s_a0_ls CLK_ICN_REG>;
33 clock-names = "ahci_clk";
34 };
35
36 /* Example for stih407 family silicon */ 21 /* Example for stih407 family silicon */
37 sata0: sata@9b20000 { 22 sata0: sata@9b20000 {
38 compatible = "st,ahci"; 23 compatible = "st,ahci";
diff --git a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt
index c3d016532d8e..30fd2201b3d4 100644
--- a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt
+++ b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt
@@ -17,7 +17,9 @@ Required properties:
17- #interrupt-cells: Specifies the number of cells needed to encode an 17- #interrupt-cells: Specifies the number of cells needed to encode an
18 interrupt source. 18 interrupt source.
19- gpio-controller : Marks the device node as a gpio controller. 19- gpio-controller : Marks the device node as a gpio controller.
20- #gpio-cells : Should be one. It is the pin number. 20- #gpio-cells : Should be two. The first cell is the pin number and
21 the second cell is used to specify flags. See gpio.txt for possible
22 values.
21 23
22Example for a MMP platform: 24Example for a MMP platform:
23 25
@@ -27,7 +29,7 @@ Example for a MMP platform:
27 interrupts = <49>; 29 interrupts = <49>;
28 interrupt-names = "gpio_mux"; 30 interrupt-names = "gpio_mux";
29 gpio-controller; 31 gpio-controller;
30 #gpio-cells = <1>; 32 #gpio-cells = <2>;
31 interrupt-controller; 33 interrupt-controller;
32 #interrupt-cells = <1>; 34 #interrupt-cells = <1>;
33 }; 35 };
diff --git a/Documentation/devicetree/bindings/mailbox/brcm,bcm2835-mbox.txt b/Documentation/devicetree/bindings/mailbox/brcm,bcm2835-mbox.txt
index e893615ef635..b48d7d30012c 100644
--- a/Documentation/devicetree/bindings/mailbox/brcm,bcm2835-mbox.txt
+++ b/Documentation/devicetree/bindings/mailbox/brcm,bcm2835-mbox.txt
@@ -12,7 +12,7 @@ Required properties:
12 12
13Example: 13Example:
14 14
15mailbox: mailbox@7e00b800 { 15mailbox: mailbox@7e00b880 {
16 compatible = "brcm,bcm2835-mbox"; 16 compatible = "brcm,bcm2835-mbox";
17 reg = <0x7e00b880 0x40>; 17 reg = <0x7e00b880 0x40>;
18 interrupts = <0 1>; 18 interrupts = <0 1>;
diff --git a/Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt
index 07184e8f894e..ea9c1c9607f6 100644
--- a/Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt
+++ b/Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt
@@ -13,6 +13,7 @@ Required Properties:
13 - "rockchip,rk2928-dw-mshc": for Rockchip RK2928 and following, 13 - "rockchip,rk2928-dw-mshc": for Rockchip RK2928 and following,
14 before RK3288 14 before RK3288
15 - "rockchip,rk3288-dw-mshc": for Rockchip RK3288 15 - "rockchip,rk3288-dw-mshc": for Rockchip RK3288
16 - "rockchip,rk1108-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK1108
16 - "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3036 17 - "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3036
17 - "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3368 18 - "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3368
18 - "rockchip,rk3399-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3399 19 - "rockchip,rk3399-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3399
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
index 66dcaa9efd74..e705acd3612c 100644
--- a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
@@ -7,6 +7,9 @@ Required properties:
7 7
8- reg : offset and length of the register set for the mux registers 8- reg : offset and length of the register set for the mux registers
9 9
10- #pinctrl-cells : number of cells in addition to the index, set to 1
11 for pinctrl-single,pins and 2 for pinctrl-single,bits
12
10- pinctrl-single,register-width : pinmux register access width in bits 13- pinctrl-single,register-width : pinmux register access width in bits
11 14
12- pinctrl-single,function-mask : mask of allowed pinmux function bits 15- pinctrl-single,function-mask : mask of allowed pinmux function bits
diff --git a/Documentation/devicetree/bindings/reset/st,sti-powerdown.txt b/Documentation/devicetree/bindings/reset/st,sti-powerdown.txt
index 1cfd21d1dfa1..92527138bc93 100644
--- a/Documentation/devicetree/bindings/reset/st,sti-powerdown.txt
+++ b/Documentation/devicetree/bindings/reset/st,sti-powerdown.txt
@@ -16,15 +16,14 @@ Please refer to reset.txt in this directory for common reset
16controller binding usage. 16controller binding usage.
17 17
18Required properties: 18Required properties:
19- compatible: Should be "st,<chip>-powerdown" 19- compatible: Should be "st,stih407-powerdown"
20 ex: "st,stih415-powerdown", "st,stih416-powerdown"
21- #reset-cells: 1, see below 20- #reset-cells: 1, see below
22 21
23example: 22example:
24 23
25 powerdown: powerdown-controller { 24 powerdown: powerdown-controller {
25 compatible = "st,stih407-powerdown";
26 #reset-cells = <1>; 26 #reset-cells = <1>;
27 compatible = "st,stih415-powerdown";
28 }; 27 };
29 28
30 29
@@ -37,11 +36,10 @@ index specifying which channel to use, as described in reset.txt
37 36
38example: 37example:
39 38
40 usb1: usb@fe200000 { 39 st_dwc3: dwc3@8f94000 {
41 resets = <&powerdown STIH41X_USB1_POWERDOWN>; 40 resets = <&powerdown STIH407_USB3_POWERDOWN>,
42 }; 41 };
43 42
44Macro definitions for the supported reset channels can be found in: 43Macro definitions for the supported reset channels can be found in:
45 44
46include/dt-bindings/reset/stih415-resets.h 45include/dt-bindings/reset/stih407-resets.h
47include/dt-bindings/reset/stih416-resets.h
diff --git a/Documentation/devicetree/bindings/reset/st,sti-softreset.txt b/Documentation/devicetree/bindings/reset/st,sti-softreset.txt
index 891a2fd85ed6..a21658f18fe6 100644
--- a/Documentation/devicetree/bindings/reset/st,sti-softreset.txt
+++ b/Documentation/devicetree/bindings/reset/st,sti-softreset.txt
@@ -15,15 +15,14 @@ Please refer to reset.txt in this directory for common reset
15controller binding usage. 15controller binding usage.
16 16
17Required properties: 17Required properties:
18- compatible: Should be "st,<chip>-softreset" example: 18- compatible: Should be st,stih407-softreset";
19 "st,stih415-softreset" or "st,stih416-softreset";
20- #reset-cells: 1, see below 19- #reset-cells: 1, see below
21 20
22example: 21example:
23 22
24 softreset: softreset-controller { 23 softreset: softreset-controller {
25 #reset-cells = <1>; 24 #reset-cells = <1>;
26 compatible = "st,stih415-softreset"; 25 compatible = "st,stih407-softreset";
27 }; 26 };
28 27
29 28
@@ -42,5 +41,4 @@ example:
42 41
43Macro definitions for the supported reset channels can be found in: 42Macro definitions for the supported reset channels can be found in:
44 43
45include/dt-bindings/reset/stih415-resets.h 44include/dt-bindings/reset/stih407-resets.h
46include/dt-bindings/reset/stih416-resets.h
diff --git a/Documentation/devicetree/bindings/serial/nvidia,tegra20-hsuart.txt b/Documentation/devicetree/bindings/serial/nvidia,tegra20-hsuart.txt
index 845850caf088..c93a2d1c1a65 100644
--- a/Documentation/devicetree/bindings/serial/nvidia,tegra20-hsuart.txt
+++ b/Documentation/devicetree/bindings/serial/nvidia,tegra20-hsuart.txt
@@ -10,7 +10,7 @@ Required properties:
10 See ../reset/reset.txt for details. 10 See ../reset/reset.txt for details.
11- reset-names : Must include the following entries: 11- reset-names : Must include the following entries:
12 - serial 12 - serial
13- dmas : Must contain an entry for each entry in clock-names. 13- dmas : Must contain an entry for each entry in dma-names.
14 See ../dma/dma.txt for details. 14 See ../dma/dma.txt for details.
15- dma-names : Must include the following entries: 15- dma-names : Must include the following entries:
16 - rx 16 - rx
diff --git a/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt b/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
index e8f15e34027f..16fe94d7783c 100644
--- a/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
+++ b/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
@@ -9,17 +9,20 @@ domain control.
9 9
10The driver implements the Generic PM domain bindings described in 10The driver implements the Generic PM domain bindings described in
11power/power_domain.txt. It provides the power domains defined in 11power/power_domain.txt. It provides the power domains defined in
12include/dt-bindings/power/mt8173-power.h. 12include/dt-bindings/power/mt8173-power.h and mt2701-power.h.
13 13
14Required properties: 14Required properties:
15- compatible: Must be "mediatek,mt8173-scpsys" 15- compatible: Should be one of:
16 - "mediatek,mt2701-scpsys"
17 - "mediatek,mt8173-scpsys"
16- #power-domain-cells: Must be 1 18- #power-domain-cells: Must be 1
17- reg: Address range of the SCPSYS unit 19- reg: Address range of the SCPSYS unit
18- infracfg: must contain a phandle to the infracfg controller 20- infracfg: must contain a phandle to the infracfg controller
19- clock, clock-names: clocks according to the common clock binding. 21- clock, clock-names: clocks according to the common clock binding.
20 The clocks needed "mm", "mfg", "venc" and "venc_lt". 22 These are clocks which hardware needs to be
21 These are the clocks which hardware needs to be enabled 23 enabled before enabling certain power domains.
22 before enabling certain power domains. 24 Required clocks for MT2701: "mm", "mfg", "ethif"
25 Required clocks for MT8173: "mm", "mfg", "venc", "venc_lt"
23 26
24Optional properties: 27Optional properties:
25- vdec-supply: Power supply for the vdec power domain 28- vdec-supply: Power supply for the vdec power domain
diff --git a/Documentation/devicetree/bindings/thermal/brcm,bcm2835-thermal.txt b/Documentation/devicetree/bindings/thermal/brcm,bcm2835-thermal.txt
new file mode 100644
index 000000000000..474531d2b2c5
--- /dev/null
+++ b/Documentation/devicetree/bindings/thermal/brcm,bcm2835-thermal.txt
@@ -0,0 +1,17 @@
1Binding for Thermal Sensor driver for BCM2835 SoCs.
2
3Required parameters:
4-------------------
5
6compatible: should be one of: "brcm,bcm2835-thermal",
7 "brcm,bcm2836-thermal" or "brcm,bcm2837-thermal"
8reg: Address range of the thermal registers.
9clocks: Phandle of the clock used by the thermal sensor.
10
11Example:
12
13thermal: thermal@7e212000 {
14 compatible = "brcm,bcm2835-thermal";
15 reg = <0x7e212000 0x8>;
16 clocks = <&clocks BCM2835_CLOCK_TSENS>;
17};
diff --git a/Documentation/devicetree/bindings/thermal/st-thermal.txt b/Documentation/devicetree/bindings/thermal/st-thermal.txt
index 3b9251b4a145..a2f939137e35 100644
--- a/Documentation/devicetree/bindings/thermal/st-thermal.txt
+++ b/Documentation/devicetree/bindings/thermal/st-thermal.txt
@@ -3,17 +3,8 @@ Binding for Thermal Sensor driver for STMicroelectronics STi series of SoCs.
3Required parameters: 3Required parameters:
4------------------- 4-------------------
5 5
6compatible : st,<SoC>-<module>-thermal; should be one of: 6compatible : Should be "st,stih407-thermal"
7 "st,stih415-sas-thermal", 7
8 "st,stih415-mpe-thermal",
9 "st,stih416-sas-thermal"
10 "st,stih416-mpe-thermal"
11 "st,stid127-thermal" or
12 "st,stih407-thermal"
13 according to the SoC type (stih415, stih416, stid127, stih407)
14 and module type (sas or mpe). On stid127 & stih407 there is only
15 one die/module, so there is no module type in the compatible
16 string.
17clock-names : Should be "thermal". 8clock-names : Should be "thermal".
18 See: Documentation/devicetree/bindings/resource-names.txt 9 See: Documentation/devicetree/bindings/resource-names.txt
19clocks : Phandle of the clock used by the thermal sensor. 10clocks : Phandle of the clock used by the thermal sensor.
@@ -25,18 +16,17 @@ Optional parameters:
25reg : For non-sysconf based sensors, this should be the physical base 16reg : For non-sysconf based sensors, this should be the physical base
26 address and length of the sensor's registers. 17 address and length of the sensor's registers.
27interrupts : Standard way to define interrupt number. 18interrupts : Standard way to define interrupt number.
28 Interrupt is mandatory to be defined when compatible is
29 "stih416-mpe-thermal".
30 NB: For thermal sensor's for which no interrupt has been 19 NB: For thermal sensor's for which no interrupt has been
31 defined, a polling delay of 1000ms will be used to read the 20 defined, a polling delay of 1000ms will be used to read the
32 temperature from device. 21 temperature from device.
33 22
34Example: 23Example:
35 24
36 temp1@fdfe8000 { 25 temp0@91a0000 {
37 compatible = "st,stih416-mpe-thermal"; 26 compatible = "st,stih407-thermal";
38 reg = <0xfdfe8000 0x10>; 27 reg = <0x91a0000 0x28>;
39 clock-names = "thermal"; 28 clock-names = "thermal";
40 clocks = <&clk_m_mpethsens>; 29 clocks = <&CLK_SYSIN>;
41 interrupts = <GIC_SPI 23 IRQ_TYPE_NONE>; 30 interrupts = <GIC_SPI 205 IRQ_TYPE_EDGE_RISING>;
31 st,passive_cooling_temp = <110>;
42 }; 32 };
diff --git a/Documentation/devicetree/bindings/usb/atmel-usb.txt b/Documentation/devicetree/bindings/usb/atmel-usb.txt
index f4262ed60582..ad8ea56a9ed3 100644
--- a/Documentation/devicetree/bindings/usb/atmel-usb.txt
+++ b/Documentation/devicetree/bindings/usb/atmel-usb.txt
@@ -6,9 +6,9 @@ Required properties:
6 - compatible: Should be "atmel,at91rm9200-ohci" for USB controllers 6 - compatible: Should be "atmel,at91rm9200-ohci" for USB controllers
7 used in host mode. 7 used in host mode.
8 - reg: Address and length of the register set for the device 8 - reg: Address and length of the register set for the device
9 - interrupts: Should contain ehci interrupt 9 - interrupts: Should contain ohci interrupt
10 - clocks: Should reference the peripheral, host and system clocks 10 - clocks: Should reference the peripheral, host and system clocks
11 - clock-names: Should contains two strings 11 - clock-names: Should contain three strings
12 "ohci_clk" for the peripheral clock 12 "ohci_clk" for the peripheral clock
13 "hclk" for the host clock 13 "hclk" for the host clock
14 "uhpck" for the system clock 14 "uhpck" for the system clock
@@ -35,7 +35,7 @@ Required properties:
35 - reg: Address and length of the register set for the device 35 - reg: Address and length of the register set for the device
36 - interrupts: Should contain ehci interrupt 36 - interrupts: Should contain ehci interrupt
37 - clocks: Should reference the peripheral and the UTMI clocks 37 - clocks: Should reference the peripheral and the UTMI clocks
38 - clock-names: Should contains two strings 38 - clock-names: Should contain two strings
39 "ehci_clk" for the peripheral clock 39 "ehci_clk" for the peripheral clock
40 "usb_clk" for the UTMI clock 40 "usb_clk" for the UTMI clock
41 41
@@ -58,7 +58,7 @@ Required properties:
58 - reg: Address and length of the register set for the device 58 - reg: Address and length of the register set for the device
59 - interrupts: Should contain macb interrupt 59 - interrupts: Should contain macb interrupt
60 - clocks: Should reference the peripheral and the AHB clocks 60 - clocks: Should reference the peripheral and the AHB clocks
61 - clock-names: Should contains two strings 61 - clock-names: Should contain two strings
62 "pclk" for the peripheral clock 62 "pclk" for the peripheral clock
63 "hclk" for the AHB clock 63 "hclk" for the AHB clock
64 64
@@ -85,7 +85,7 @@ Required properties:
85 - reg: Address and length of the register set for the device 85 - reg: Address and length of the register set for the device
86 - interrupts: Should contain usba interrupt 86 - interrupts: Should contain usba interrupt
87 - clocks: Should reference the peripheral and host clocks 87 - clocks: Should reference the peripheral and host clocks
88 - clock-names: Should contains two strings 88 - clock-names: Should contain two strings
89 "pclk" for the peripheral clock 89 "pclk" for the peripheral clock
90 "hclk" for the host clock 90 "hclk" for the host clock
91 - ep childnode: To specify the number of endpoints and their properties. 91 - ep childnode: To specify the number of endpoints and their properties.
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 6e25c912a5c2..448c831753f8 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -70,6 +70,7 @@ creative Creative Technology Ltd
70crystalfontz Crystalfontz America, Inc. 70crystalfontz Crystalfontz America, Inc.
71cubietech Cubietech, Ltd. 71cubietech Cubietech, Ltd.
72cypress Cypress Semiconductor Corporation 72cypress Cypress Semiconductor Corporation
73cznic CZ.NIC, z.s.p.o.
73dallas Maxim Integrated Products (formerly Dallas Semiconductor) 74dallas Maxim Integrated Products (formerly Dallas Semiconductor)
74davicom DAVICOM Semiconductor, Inc. 75davicom DAVICOM Semiconductor, Inc.
75delta Delta Electronics, Inc. 76delta Delta Electronics, Inc.
@@ -242,6 +243,7 @@ realtek Realtek Semiconductor Corp.
242renesas Renesas Electronics Corporation 243renesas Renesas Electronics Corporation
243richtek Richtek Technology Corporation 244richtek Richtek Technology Corporation
244ricoh Ricoh Co. Ltd. 245ricoh Ricoh Co. Ltd.
246rikomagic Rikomagic Tech Corp. Ltd
245rockchip Fuzhou Rockchip Electronics Co., Ltd 247rockchip Fuzhou Rockchip Electronics Co., Ltd
246samsung Samsung Semiconductor 248samsung Samsung Semiconductor
247samtec Samtec/Softing company 249samtec Samtec/Softing company
diff --git a/MAINTAINERS b/MAINTAINERS
index 0ed5010ce089..3d7cf9910775 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1503,8 +1503,9 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
1503L: linux-oxnas@lists.tuxfamily.org (moderated for non-subscribers) 1503L: linux-oxnas@lists.tuxfamily.org (moderated for non-subscribers)
1504S: Maintained 1504S: Maintained
1505F: arch/arm/mach-oxnas/ 1505F: arch/arm/mach-oxnas/
1506F: arch/arm/boot/dts/oxnas* 1506F: arch/arm/boot/dts/ox8*.dtsi
1507F: arch/arm/boot/dts/wd-mbwe.dts 1507F: arch/arm/boot/dts/wd-mbwe.dts
1508F: arch/arm/boot/dts/cloudengines-pogoplug-series-3.dts
1508N: oxnas 1509N: oxnas
1509 1510
1510ARM/Mediatek RTC DRIVER 1511ARM/Mediatek RTC DRIVER
@@ -1805,9 +1806,7 @@ F: drivers/media/rc/st_rc.c
1805F: drivers/media/platform/sti/c8sectpfe/ 1806F: drivers/media/platform/sti/c8sectpfe/
1806F: drivers/mmc/host/sdhci-st.c 1807F: drivers/mmc/host/sdhci-st.c
1807F: drivers/phy/phy-miphy28lp.c 1808F: drivers/phy/phy-miphy28lp.c
1808F: drivers/phy/phy-miphy365x.c
1809F: drivers/phy/phy-stih407-usb.c 1809F: drivers/phy/phy-stih407-usb.c
1810F: drivers/phy/phy-stih41x-usb.c
1811F: drivers/pinctrl/pinctrl-st.c 1810F: drivers/pinctrl/pinctrl-st.c
1812F: drivers/remoteproc/st_remoteproc.c 1811F: drivers/remoteproc/st_remoteproc.c
1813F: drivers/remoteproc/st_slim_rproc.c 1812F: drivers/remoteproc/st_slim_rproc.c
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index c558ba75cbcc..cccdbcb557b6 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -75,6 +75,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
75 bcm4708-asus-rt-ac56u.dtb \ 75 bcm4708-asus-rt-ac56u.dtb \
76 bcm4708-asus-rt-ac68u.dtb \ 76 bcm4708-asus-rt-ac68u.dtb \
77 bcm4708-buffalo-wzr-1750dhp.dtb \ 77 bcm4708-buffalo-wzr-1750dhp.dtb \
78 bcm4708-luxul-xap-1510.dtb \
78 bcm4708-luxul-xwc-1000.dtb \ 79 bcm4708-luxul-xwc-1000.dtb \
79 bcm4708-netgear-r6250.dtb \ 80 bcm4708-netgear-r6250.dtb \
80 bcm4708-netgear-r6300-v2.dtb \ 81 bcm4708-netgear-r6300-v2.dtb \
@@ -86,11 +87,16 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
86 bcm4709-buffalo-wxr-1900dhp.dtb \ 87 bcm4709-buffalo-wxr-1900dhp.dtb \
87 bcm4709-netgear-r7000.dtb \ 88 bcm4709-netgear-r7000.dtb \
88 bcm4709-netgear-r8000.dtb \ 89 bcm4709-netgear-r8000.dtb \
90 bcm4709-tplink-archer-c9-v1.dtb \
89 bcm47094-dlink-dir-885l.dtb \ 91 bcm47094-dlink-dir-885l.dtb \
92 bcm47094-luxul-xwr-3100.dtb \
93 bcm47094-netgear-r8500.dtb \
90 bcm94708.dtb \ 94 bcm94708.dtb \
91 bcm94709.dtb \ 95 bcm94709.dtb \
92 bcm953012er.dtb \ 96 bcm953012er.dtb \
93 bcm953012k.dtb 97 bcm953012k.dtb
98dtb-$(CONFIG_ARCH_BCM_53573) += \
99 bcm47189-tenda-ac9.dtb
94dtb-$(CONFIG_ARCH_BCM_63XX) += \ 100dtb-$(CONFIG_ARCH_BCM_63XX) += \
95 bcm963138dvt.dtb 101 bcm963138dvt.dtb
96dtb-$(CONFIG_ARCH_BCM_CYGNUS) += \ 102dtb-$(CONFIG_ARCH_BCM_CYGNUS) += \
@@ -136,6 +142,7 @@ dtb-$(CONFIG_ARCH_EXYNOS4) += \
136 exynos4210-smdkv310.dtb \ 142 exynos4210-smdkv310.dtb \
137 exynos4210-trats.dtb \ 143 exynos4210-trats.dtb \
138 exynos4210-universal_c210.dtb \ 144 exynos4210-universal_c210.dtb \
145 exynos4412-itop-elite.dtb \
139 exynos4412-odroidu3.dtb \ 146 exynos4412-odroidu3.dtb \
140 exynos4412-odroidx.dtb \ 147 exynos4412-odroidx.dtb \
141 exynos4412-odroidx2.dtb \ 148 exynos4412-odroidx2.dtb \
@@ -330,6 +337,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
330 imx6dl-aristainetos_7.dtb \ 337 imx6dl-aristainetos_7.dtb \
331 imx6dl-aristainetos2_4.dtb \ 338 imx6dl-aristainetos2_4.dtb \
332 imx6dl-aristainetos2_7.dtb \ 339 imx6dl-aristainetos2_7.dtb \
340 imx6dl-colibri-eval-v3.dtb \
333 imx6dl-cubox-i.dtb \ 341 imx6dl-cubox-i.dtb \
334 imx6dl-dfi-fs700-m60.dtb \ 342 imx6dl-dfi-fs700-m60.dtb \
335 imx6dl-gw51xx.dtb \ 343 imx6dl-gw51xx.dtb \
@@ -340,6 +348,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
340 imx6dl-gw552x.dtb \ 348 imx6dl-gw552x.dtb \
341 imx6dl-gw553x.dtb \ 349 imx6dl-gw553x.dtb \
342 imx6dl-hummingboard.dtb \ 350 imx6dl-hummingboard.dtb \
351 imx6dl-icore.dtb \
343 imx6dl-nit6xlite.dtb \ 352 imx6dl-nit6xlite.dtb \
344 imx6dl-nitrogen6x.dtb \ 353 imx6dl-nitrogen6x.dtb \
345 imx6dl-phytec-pbab01.dtb \ 354 imx6dl-phytec-pbab01.dtb \
@@ -381,10 +390,12 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
381 imx6q-gw553x.dtb \ 390 imx6q-gw553x.dtb \
382 imx6q-h100.dtb \ 391 imx6q-h100.dtb \
383 imx6q-hummingboard.dtb \ 392 imx6q-hummingboard.dtb \
393 imx6q-icore.dtb \
384 imx6q-icore-rqs.dtb \ 394 imx6q-icore-rqs.dtb \
385 imx6q-marsboard.dtb \ 395 imx6q-marsboard.dtb \
386 imx6q-nitrogen6x.dtb \ 396 imx6q-nitrogen6x.dtb \
387 imx6q-nitrogen6_max.dtb \ 397 imx6q-nitrogen6_max.dtb \
398 imx6q-nitrogen6_som2.dtb \
388 imx6q-novena.dtb \ 399 imx6q-novena.dtb \
389 imx6q-phytec-pbab01.dtb \ 400 imx6q-phytec-pbab01.dtb \
390 imx6q-rex-pro.dtb \ 401 imx6q-rex-pro.dtb \
@@ -416,14 +427,19 @@ dtb-$(CONFIG_SOC_IMX6SX) += \
416 imx6sx-sabreauto.dtb \ 427 imx6sx-sabreauto.dtb \
417 imx6sx-sdb-reva.dtb \ 428 imx6sx-sdb-reva.dtb \
418 imx6sx-sdb-sai.dtb \ 429 imx6sx-sdb-sai.dtb \
419 imx6sx-sdb.dtb 430 imx6sx-sdb.dtb \
431 imx6sx-udoo-neo-basic.dtb \
432 imx6sx-udoo-neo-extended.dtb \
433 imx6sx-udoo-neo-full.dtb
420dtb-$(CONFIG_SOC_IMX6UL) += \ 434dtb-$(CONFIG_SOC_IMX6UL) += \
421 imx6ul-14x14-evk.dtb \ 435 imx6ul-14x14-evk.dtb \
422 imx6ul-geam-kit.dtb \ 436 imx6ul-geam-kit.dtb \
437 imx6ul-liteboard.dtb \
423 imx6ul-pico-hobbit.dtb \ 438 imx6ul-pico-hobbit.dtb \
424 imx6ul-tx6ul-0010.dtb \ 439 imx6ul-tx6ul-0010.dtb \
425 imx6ul-tx6ul-0011.dtb \ 440 imx6ul-tx6ul-0011.dtb \
426 imx6ul-tx6ul-mainboard.dtb 441 imx6ul-tx6ul-mainboard.dtb \
442 imx6ull-14x14-evk.dtb
427dtb-$(CONFIG_SOC_IMX7D) += \ 443dtb-$(CONFIG_SOC_IMX7D) += \
428 imx7d-cl-som-imx7.dtb \ 444 imx7d-cl-som-imx7.dtb \
429 imx7d-colibri-eval-v3.dtb \ 445 imx7d-colibri-eval-v3.dtb \
@@ -561,6 +577,7 @@ dtb-$(CONFIG_SOC_AM33XX) += \
561 am335x-sl50.dtb \ 577 am335x-sl50.dtb \
562 am335x-wega-rdk.dtb 578 am335x-wega-rdk.dtb
563dtb-$(CONFIG_ARCH_OMAP4) += \ 579dtb-$(CONFIG_ARCH_OMAP4) += \
580 omap4-droid4-xt894.dtb \
564 omap4-duovero-parlor.dtb \ 581 omap4-duovero-parlor.dtb \
565 omap4-kc1.dtb \ 582 omap4-kc1.dtb \
566 omap4-panda.dtb \ 583 omap4-panda.dtb \
@@ -588,15 +605,18 @@ dtb-$(CONFIG_SOC_DRA7XX) += \
588 am57xx-cl-som-am57x.dtb \ 605 am57xx-cl-som-am57x.dtb \
589 am57xx-sbc-am57x.dtb \ 606 am57xx-sbc-am57x.dtb \
590 am572x-idk.dtb \ 607 am572x-idk.dtb \
608 am571x-idk.dtb \
591 dra7-evm.dtb \ 609 dra7-evm.dtb \
592 dra72-evm.dtb \ 610 dra72-evm.dtb \
593 dra72-evm-revc.dtb 611 dra72-evm-revc.dtb \
612 dra71-evm.dtb
594dtb-$(CONFIG_ARCH_ORION5X) += \ 613dtb-$(CONFIG_ARCH_ORION5X) += \
595 orion5x-kuroboxpro.dtb \ 614 orion5x-kuroboxpro.dtb \
596 orion5x-lacie-d2-network.dtb \ 615 orion5x-lacie-d2-network.dtb \
597 orion5x-lacie-ethernet-disk-mini-v2.dtb \ 616 orion5x-lacie-ethernet-disk-mini-v2.dtb \
598 orion5x-linkstation-lsgl.dtb \ 617 orion5x-linkstation-lsgl.dtb \
599 orion5x-linkstation-lswtgl.dtb \ 618 orion5x-linkstation-lswtgl.dtb \
619 orion5x-lschl.dtb \
600 orion5x-lswsgl.dtb \ 620 orion5x-lswsgl.dtb \
601 orion5x-maxtor-shared-storage-2.dtb \ 621 orion5x-maxtor-shared-storage-2.dtb \
602 orion5x-netgear-wnr854t.dtb \ 622 orion5x-netgear-wnr854t.dtb \
@@ -604,7 +624,8 @@ dtb-$(CONFIG_ARCH_ORION5X) += \
604dtb-$(CONFIG_ARCH_PRIMA2) += \ 624dtb-$(CONFIG_ARCH_PRIMA2) += \
605 prima2-evb.dtb 625 prima2-evb.dtb
606dtb-$(CONFIG_ARCH_OXNAS) += \ 626dtb-$(CONFIG_ARCH_OXNAS) += \
607 wd-mbwe.dtb 627 wd-mbwe.dtb \
628 cloudengines-pogoplug-series-3.dtb
608dtb-$(CONFIG_ARCH_QCOM) += \ 629dtb-$(CONFIG_ARCH_QCOM) += \
609 qcom-apq8060-dragonboard.dtb \ 630 qcom-apq8060-dragonboard.dtb \
610 qcom-apq8064-arrow-sd-600eval.dtb \ 631 qcom-apq8064-arrow-sd-600eval.dtb \
@@ -620,7 +641,8 @@ dtb-$(CONFIG_ARCH_QCOM) += \
620 qcom-msm8660-surf.dtb \ 641 qcom-msm8660-surf.dtb \
621 qcom-msm8960-cdp.dtb \ 642 qcom-msm8960-cdp.dtb \
622 qcom-msm8974-lge-nexus5-hammerhead.dtb \ 643 qcom-msm8974-lge-nexus5-hammerhead.dtb \
623 qcom-msm8974-sony-xperia-honami.dtb 644 qcom-msm8974-sony-xperia-honami.dtb \
645 qcom-mdm9615-wp8548-mangoh-green.dtb
624dtb-$(CONFIG_ARCH_REALVIEW) += \ 646dtb-$(CONFIG_ARCH_REALVIEW) += \
625 arm-realview-pb1176.dtb \ 647 arm-realview-pb1176.dtb \
626 arm-realview-pb11mp.dtb \ 648 arm-realview-pb11mp.dtb \
@@ -635,11 +657,14 @@ dtb-$(CONFIG_ARCH_REALVIEW) += \
635 arm-realview-pba8.dtb \ 657 arm-realview-pba8.dtb \
636 arm-realview-pbx-a9.dtb 658 arm-realview-pbx-a9.dtb
637dtb-$(CONFIG_ARCH_ROCKCHIP) += \ 659dtb-$(CONFIG_ARCH_ROCKCHIP) += \
660 rk1108-evb.dtb \
638 rk3036-evb.dtb \ 661 rk3036-evb.dtb \
639 rk3036-kylin.dtb \ 662 rk3036-kylin.dtb \
640 rk3066a-bqcurie2.dtb \ 663 rk3066a-bqcurie2.dtb \
641 rk3066a-marsboard.dtb \ 664 rk3066a-marsboard.dtb \
665 rk3066a-mk808.dtb \
642 rk3066a-rayeager.dtb \ 666 rk3066a-rayeager.dtb \
667 rk3188-px3-evb.dtb \
643 rk3188-radxarock.dtb \ 668 rk3188-radxarock.dtb \
644 rk3228-evb.dtb \ 669 rk3228-evb.dtb \
645 rk3229-evb.dtb \ 670 rk3229-evb.dtb \
@@ -677,6 +702,8 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \
677 r7s72100-rskrza1.dtb \ 702 r7s72100-rskrza1.dtb \
678 r8a73a4-ape6evm.dtb \ 703 r8a73a4-ape6evm.dtb \
679 r8a7740-armadillo800eva.dtb \ 704 r8a7740-armadillo800eva.dtb \
705 r8a7743-sk-rzg1m.dtb \
706 r8a7745-sk-rzg1e.dtb \
680 r8a7778-bockw.dtb \ 707 r8a7778-bockw.dtb \
681 r8a7779-marzen.dtb \ 708 r8a7779-marzen.dtb \
682 r8a7790-lager.dtb \ 709 r8a7790-lager.dtb \
@@ -690,12 +717,14 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \
690 sh73a0-kzm9g.dtb 717 sh73a0-kzm9g.dtb
691dtb-$(CONFIG_ARCH_SOCFPGA) += \ 718dtb-$(CONFIG_ARCH_SOCFPGA) += \
692 socfpga_arria5_socdk.dtb \ 719 socfpga_arria5_socdk.dtb \
720 socfpga_arria10_socdk_qspi.dtb \
693 socfpga_arria10_socdk_sdmmc.dtb \ 721 socfpga_arria10_socdk_sdmmc.dtb \
694 socfpga_cyclone5_mcvevk.dtb \ 722 socfpga_cyclone5_mcvevk.dtb \
695 socfpga_cyclone5_socdk.dtb \ 723 socfpga_cyclone5_socdk.dtb \
696 socfpga_cyclone5_de0_sockit.dtb \ 724 socfpga_cyclone5_de0_sockit.dtb \
697 socfpga_cyclone5_sockit.dtb \ 725 socfpga_cyclone5_sockit.dtb \
698 socfpga_cyclone5_socrates.dtb \ 726 socfpga_cyclone5_socrates.dtb \
727 socfpga_cyclone5_sodia.dtb \
699 socfpga_cyclone5_vining_fpga.dtb \ 728 socfpga_cyclone5_vining_fpga.dtb \
700 socfpga_vt.dtb 729 socfpga_vt.dtb
701dtb-$(CONFIG_ARCH_SPEAR13XX) += \ 730dtb-$(CONFIG_ARCH_SPEAR13XX) += \
@@ -712,16 +741,12 @@ dtb-$(CONFIG_ARCH_STI) += \
712 stih407-b2120.dtb \ 741 stih407-b2120.dtb \
713 stih410-b2120.dtb \ 742 stih410-b2120.dtb \
714 stih410-b2260.dtb \ 743 stih410-b2260.dtb \
715 stih415-b2000.dtb \
716 stih415-b2020.dtb \
717 stih416-b2000.dtb \
718 stih416-b2020.dtb \
719 stih416-b2020e.dtb \
720 stih418-b2199.dtb 744 stih418-b2199.dtb
721dtb-$(CONFIG_ARCH_STM32)+= \ 745dtb-$(CONFIG_ARCH_STM32)+= \
722 stm32f429-disco.dtb \ 746 stm32f429-disco.dtb \
723 stm32f469-disco.dtb \ 747 stm32f469-disco.dtb \
724 stm32429i-eval.dtb 748 stm32429i-eval.dtb \
749 stm32746g-eval.dtb
725dtb-$(CONFIG_MACH_SUN4I) += \ 750dtb-$(CONFIG_MACH_SUN4I) += \
726 sun4i-a10-a1000.dtb \ 751 sun4i-a10-a1000.dtb \
727 sun4i-a10-ba10-tvbox.dtb \ 752 sun4i-a10-ba10-tvbox.dtb \
@@ -760,6 +785,7 @@ dtb-$(CONFIG_MACH_SUN5I) += \
760 sun5i-a13-olinuxino-micro.dtb \ 785 sun5i-a13-olinuxino-micro.dtb \
761 sun5i-a13-q8-tablet.dtb \ 786 sun5i-a13-q8-tablet.dtb \
762 sun5i-a13-utoo-p66.dtb \ 787 sun5i-a13-utoo-p66.dtb \
788 sun5i-gr8-chip-pro.dtb \
763 sun5i-gr8-evb.dtb \ 789 sun5i-gr8-evb.dtb \
764 sun5i-r8-chip.dtb 790 sun5i-r8-chip.dtb
765dtb-$(CONFIG_MACH_SUN6I) += \ 791dtb-$(CONFIG_MACH_SUN6I) += \
@@ -897,6 +923,7 @@ dtb-$(CONFIG_ARCH_VT8500) += \
897 wm8750-apc8750.dtb \ 923 wm8750-apc8750.dtb \
898 wm8850-w70v2.dtb 924 wm8850-w70v2.dtb
899dtb-$(CONFIG_ARCH_ZYNQ) += \ 925dtb-$(CONFIG_ARCH_ZYNQ) += \
926 zynq-microzed.dtb \
900 zynq-parallella.dtb \ 927 zynq-parallella.dtb \
901 zynq-zc702.dtb \ 928 zynq-zc702.dtb \
902 zynq-zc706.dtb \ 929 zynq-zc706.dtb \
@@ -920,6 +947,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
920 armada-385-db-ap.dtb \ 947 armada-385-db-ap.dtb \
921 armada-385-linksys-caiman.dtb \ 948 armada-385-linksys-caiman.dtb \
922 armada-385-linksys-cobra.dtb \ 949 armada-385-linksys-cobra.dtb \
950 armada-385-turris-omnia.dtb \
923 armada-388-clearfog.dtb \ 951 armada-388-clearfog.dtb \
924 armada-388-db.dtb \ 952 armada-388-db.dtb \
925 armada-388-gp.dtb \ 953 armada-388-gp.dtb \
diff --git a/arch/arm/boot/dts/am335x-baltos-ir2110.dts b/arch/arm/boot/dts/am335x-baltos-ir2110.dts
index a9a97307d66c..501c7527121b 100644
--- a/arch/arm/boot/dts/am335x-baltos-ir2110.dts
+++ b/arch/arm/boot/dts/am335x-baltos-ir2110.dts
@@ -54,16 +54,22 @@
54 dr_mode = "host"; 54 dr_mode = "host";
55}; 55};
56 56
57&davinci_mdio {
58 phy0: ethernet-phy@0 {
59 reg = <1>;
60 };
61};
62
57&cpsw_emac0 { 63&cpsw_emac0 {
58 phy_id = <&davinci_mdio>, <1>;
59 phy-mode = "rmii"; 64 phy-mode = "rmii";
60 dual_emac_res_vlan = <1>; 65 dual_emac_res_vlan = <1>;
66 phy-handle = <&phy0>;
61}; 67};
62 68
63&cpsw_emac1 { 69&cpsw_emac1 {
64 phy_id = <&davinci_mdio>, <7>;
65 phy-mode = "rgmii-txid"; 70 phy-mode = "rgmii-txid";
66 dual_emac_res_vlan = <2>; 71 dual_emac_res_vlan = <2>;
72 phy-handle = <&phy1>;
67}; 73};
68 74
69&phy_sel { 75&phy_sel {
diff --git a/arch/arm/boot/dts/am335x-baltos-ir3220.dts b/arch/arm/boot/dts/am335x-baltos-ir3220.dts
index fe002a17c04b..19f53b8569e1 100644
--- a/arch/arm/boot/dts/am335x-baltos-ir3220.dts
+++ b/arch/arm/boot/dts/am335x-baltos-ir3220.dts
@@ -109,9 +109,9 @@
109}; 109};
110 110
111&cpsw_emac1 { 111&cpsw_emac1 {
112 phy_id = <&davinci_mdio>, <7>;
113 phy-mode = "rgmii-txid"; 112 phy-mode = "rgmii-txid";
114 dual_emac_res_vlan = <2>; 113 dual_emac_res_vlan = <2>;
114 phy-handle = <&phy1>;
115}; 115};
116 116
117&phy_sel { 117&phy_sel {
diff --git a/arch/arm/boot/dts/am335x-baltos-ir5221.dts b/arch/arm/boot/dts/am335x-baltos-ir5221.dts
index d0faa7b8c5da..2b9d7f4db23f 100644
--- a/arch/arm/boot/dts/am335x-baltos-ir5221.dts
+++ b/arch/arm/boot/dts/am335x-baltos-ir5221.dts
@@ -114,7 +114,7 @@
114 114
115&usb1 { 115&usb1 {
116 status = "okay"; 116 status = "okay";
117 dr_mode = "otg"; 117 dr_mode = "host";
118}; 118};
119 119
120&cpsw_emac0 { 120&cpsw_emac0 {
@@ -127,9 +127,9 @@
127}; 127};
128 128
129&cpsw_emac1 { 129&cpsw_emac1 {
130 phy_id = <&davinci_mdio>, <7>;
131 phy-mode = "rgmii-txid"; 130 phy-mode = "rgmii-txid";
132 dual_emac_res_vlan = <2>; 131 dual_emac_res_vlan = <2>;
132 phy-handle = <&phy1>;
133}; 133};
134 134
135&phy_sel { 135&phy_sel {
diff --git a/arch/arm/boot/dts/am335x-baltos.dtsi b/arch/arm/boot/dts/am335x-baltos.dtsi
index dd45d172a892..efb5eae290a8 100644
--- a/arch/arm/boot/dts/am335x-baltos.dtsi
+++ b/arch/arm/boot/dts/am335x-baltos.dtsi
@@ -364,11 +364,14 @@
364}; 364};
365 365
366&davinci_mdio { 366&davinci_mdio {
367 status = "okay";
367 pinctrl-names = "default", "sleep"; 368 pinctrl-names = "default", "sleep";
368 pinctrl-0 = <&davinci_mdio_default>; 369 pinctrl-0 = <&davinci_mdio_default>;
369 pinctrl-1 = <&davinci_mdio_sleep>; 370 pinctrl-1 = <&davinci_mdio_sleep>;
370 371
371 status = "okay"; 372 phy1: ethernet-phy@1 {
373 reg = <7>;
374 };
372}; 375};
373 376
374&mmc1 { 377&mmc1 {
@@ -406,3 +409,7 @@
406&gpio0 { 409&gpio0 {
407 ti,no-reset-on-init; 410 ti,no-reset-on-init;
408}; 411};
412
413&gpio3 {
414 ti,no-reset-on-init;
415};
diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
index 007b5e5a51a9..dc561d505bbe 100644
--- a/arch/arm/boot/dts/am335x-bone-common.dtsi
+++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
@@ -6,6 +6,8 @@
6 * published by the Free Software Foundation. 6 * published by the Free Software Foundation.
7 */ 7 */
8 8
9#include <dt-bindings/mfd/tps65217.h>
10
9/ { 11/ {
10 cpus { 12 cpus {
11 cpu@0 { 13 cpu@0 {
@@ -310,8 +312,23 @@
310 * by the hardware problems. (Tip: double-check by performing a current 312 * by the hardware problems. (Tip: double-check by performing a current
311 * measurement after shutdown: it should be less than 1 mA.) 313 * measurement after shutdown: it should be less than 1 mA.)
312 */ 314 */
315
316 interrupts = <7>; /* NMI */
317 interrupt-parent = <&intc>;
318
313 ti,pmic-shutdown-controller; 319 ti,pmic-shutdown-controller;
314 320
321 charger {
322 interrupts = <TPS65217_IRQ_AC>, <TPS65217_IRQ_USB>;
323 interrupts-names = "AC", "USB";
324 status = "okay";
325 };
326
327 pwrbutton {
328 interrupts = <TPS65217_IRQ_PB>;
329 status = "okay";
330 };
331
315 regulators { 332 regulators {
316 dcdc1_reg: regulator@0 { 333 dcdc1_reg: regulator@0 {
317 regulator-name = "vdds_dpr"; 334 regulator-name = "vdds_dpr";
@@ -393,3 +410,8 @@
393&sham { 410&sham {
394 status = "okay"; 411 status = "okay";
395}; 412};
413
414&rtc {
415 clocks = <&clk_32768_ck>, <&clkdiv32k_ick>;
416 clock-names = "ext-clk", "int-clk";
417};
diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts
index 6bbb1fee0868..db00d8ef7b19 100644
--- a/arch/arm/boot/dts/am335x-boneblack.dts
+++ b/arch/arm/boot/dts/am335x-boneblack.dts
@@ -79,6 +79,14 @@
79 79
80&lcdc { 80&lcdc {
81 status = "okay"; 81 status = "okay";
82
83 /* If you want to get 24 bit RGB and 16 BGR mode instead of
84 * current 16 bit RGB and 24 BGR modes, set the propety
85 * below to "crossed" and uncomment the video-ports -property
86 * in tda19988 node.
87 */
88 blue-and-red-wiring = "straight";
89
82 port { 90 port {
83 lcdc_0: endpoint@0 { 91 lcdc_0: endpoint@0 {
84 remote-endpoint = <&hdmi_0>; 92 remote-endpoint = <&hdmi_0>;
@@ -95,6 +103,9 @@
95 pinctrl-0 = <&nxp_hdmi_bonelt_pins>; 103 pinctrl-0 = <&nxp_hdmi_bonelt_pins>;
96 pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>; 104 pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>;
97 105
106 /* Convert 24bit BGR to RGB, e.g. cross red and blue wiring */
107 /* video-ports = <0x234501>; */
108
98 #sound-dai-cells = <0>; 109 #sound-dai-cells = <0>;
99 audio-ports = < TDA998x_I2S 0x03>; 110 audio-ports = < TDA998x_I2S 0x03>;
100 111
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index e82432c79f85..c2186ec2834b 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -783,3 +783,8 @@
783 pinctrl-names = "default"; 783 pinctrl-names = "default";
784 pinctrl-0 = <&dcan1_pins_default>; 784 pinctrl-0 = <&dcan1_pins_default>;
785}; 785};
786
787&rtc {
788 clocks = <&clk_32768_ck>, <&clkdiv32k_ick>;
789 clock-names = "ext-clk", "int-clk";
790};
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts
index 975c36e332a2..e2548d1ce753 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -715,3 +715,8 @@
715 715
716 blue-and-red-wiring = "crossed"; 716 blue-and-red-wiring = "crossed";
717}; 717};
718
719&rtc {
720 clocks = <&clk_32768_ck>, <&clkdiv32k_ick>;
721 clock-names = "ext-clk", "int-clk";
722};
diff --git a/arch/arm/boot/dts/am335x-icev2.dts b/arch/arm/boot/dts/am335x-icev2.dts
index 85e04c205542..1463df3b5b19 100644
--- a/arch/arm/boot/dts/am335x-icev2.dts
+++ b/arch/arm/boot/dts/am335x-icev2.dts
@@ -43,52 +43,52 @@
43 enable-active-high; 43 enable-active-high;
44 }; 44 };
45 45
46 leds0 { 46 leds-iio {
47 status = "disabled";
47 compatible = "gpio-leds"; 48 compatible = "gpio-leds";
48 49 led-out0 {
49 led0 {
50 label = "out0"; 50 label = "out0";
51 gpios = <&tpic2810 0 GPIO_ACTIVE_HIGH>; 51 gpios = <&tpic2810 0 GPIO_ACTIVE_HIGH>;
52 default-state = "off"; 52 default-state = "off";
53 }; 53 };
54 54
55 led1 { 55 led-out1 {
56 label = "out1"; 56 label = "out1";
57 gpios = <&tpic2810 1 GPIO_ACTIVE_HIGH>; 57 gpios = <&tpic2810 1 GPIO_ACTIVE_HIGH>;
58 default-state = "off"; 58 default-state = "off";
59 }; 59 };
60 60
61 led2 { 61 led-out2 {
62 label = "out2"; 62 label = "out2";
63 gpios = <&tpic2810 2 GPIO_ACTIVE_HIGH>; 63 gpios = <&tpic2810 2 GPIO_ACTIVE_HIGH>;
64 default-state = "off"; 64 default-state = "off";
65 }; 65 };
66 66
67 led3 { 67 led-out3 {
68 label = "out3"; 68 label = "out3";
69 gpios = <&tpic2810 3 GPIO_ACTIVE_HIGH>; 69 gpios = <&tpic2810 3 GPIO_ACTIVE_HIGH>;
70 default-state = "off"; 70 default-state = "off";
71 }; 71 };
72 72
73 led4 { 73 led-out4 {
74 label = "out4"; 74 label = "out4";
75 gpios = <&tpic2810 4 GPIO_ACTIVE_HIGH>; 75 gpios = <&tpic2810 4 GPIO_ACTIVE_HIGH>;
76 default-state = "off"; 76 default-state = "off";
77 }; 77 };
78 78
79 led5 { 79 led-out5 {
80 label = "out5"; 80 label = "out5";
81 gpios = <&tpic2810 5 GPIO_ACTIVE_HIGH>; 81 gpios = <&tpic2810 5 GPIO_ACTIVE_HIGH>;
82 default-state = "off"; 82 default-state = "off";
83 }; 83 };
84 84
85 led6 { 85 led-out6 {
86 label = "out6"; 86 label = "out6";
87 gpios = <&tpic2810 6 GPIO_ACTIVE_HIGH>; 87 gpios = <&tpic2810 6 GPIO_ACTIVE_HIGH>;
88 default-state = "off"; 88 default-state = "off";
89 }; 89 };
90 90
91 led7 { 91 led-out7 {
92 label = "out7"; 92 label = "out7";
93 gpios = <&tpic2810 7 GPIO_ACTIVE_HIGH>; 93 gpios = <&tpic2810 7 GPIO_ACTIVE_HIGH>;
94 default-state = "off"; 94 default-state = "off";
@@ -187,6 +187,8 @@
187 AM33XX_IOPAD(0x954, PIN_INPUT_PULLUP | MUX_MODE0) /* (B17) spi0_d0.spi0_d0 */ 187 AM33XX_IOPAD(0x954, PIN_INPUT_PULLUP | MUX_MODE0) /* (B17) spi0_d0.spi0_d0 */
188 AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE0) /* (B16) spi0_d1.spi0_d1 */ 188 AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE0) /* (B16) spi0_d1.spi0_d1 */
189 AM33XX_IOPAD(0x95c, PIN_INPUT_PULLUP | MUX_MODE0) /* (A16) spi0_cs0.spi0_cs0 */ 189 AM33XX_IOPAD(0x95c, PIN_INPUT_PULLUP | MUX_MODE0) /* (A16) spi0_cs0.spi0_cs0 */
190 AM33XX_IOPAD(0x960, PIN_INPUT_PULLUP | MUX_MODE0) /* (C15) spi0_cs1.spi0_cs1 */
191 AM33XX_IOPAD(0x9a0, PIN_INPUT_PULLUP | MUX_MODE7) /* (B12) mcasp0_aclkr.gpio3[18] */
190 >; 192 >;
191 }; 193 };
192 194
@@ -224,6 +226,31 @@
224 }; 226 };
225}; 227};
226 228
229&spi0 {
230 status = "okay";
231 pinctrl-names = "default";
232 pinctrl-0 = <&spi0_pins_default>;
233
234 sn65hvs882@1 {
235 compatible = "pisosr-gpio";
236 gpio-controller;
237 #gpio-cells = <2>;
238
239 load-gpios = <&gpio3 18 GPIO_ACTIVE_LOW>;
240
241 reg = <1>;
242 spi-max-frequency = <1000000>;
243 spi-cpol;
244 };
245};
246
247&tscadc {
248 status = "okay";
249 adc {
250 ti,adc-channels = <1 2 3 4 5 6 7>;
251 };
252};
253
227#include "tps65910.dtsi" 254#include "tps65910.dtsi"
228 255
229&tps { 256&tps {
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
index 194d884c9de1..64c8aa9057a3 100644
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -130,6 +130,7 @@
130 reg = <0x210000 0x2000>; 130 reg = <0x210000 0x2000>;
131 #address-cells = <1>; 131 #address-cells = <1>;
132 #size-cells = <1>; 132 #size-cells = <1>;
133 #pinctrl-cells = <1>;
133 ranges = <0 0x210000 0x2000>; 134 ranges = <0 0x210000 0x2000>;
134 135
135 am33xx_pinmux: pinmux@800 { 136 am33xx_pinmux: pinmux@800 {
@@ -137,6 +138,7 @@
137 reg = <0x800 0x238>; 138 reg = <0x800 0x238>;
138 #address-cells = <1>; 139 #address-cells = <1>;
139 #size-cells = <0>; 140 #size-cells = <0>;
141 #pinctrl-cells = <1>;
140 pinctrl-single,register-width = <32>; 142 pinctrl-single,register-width = <32>;
141 pinctrl-single,function-mask = <0x7f>; 143 pinctrl-single,function-mask = <0x7f>;
142 }; 144 };
@@ -505,6 +507,8 @@
505 interrupts = <75 507 interrupts = <75
506 76>; 508 76>;
507 ti,hwmods = "rtc"; 509 ti,hwmods = "rtc";
510 clocks = <&clkdiv32k_ick>;
511 clock-names = "int-clk";
508 }; 512 };
509 513
510 spi0: spi@48030000 { 514 spi0: spi@48030000 {
@@ -855,6 +859,8 @@
855 interrupts = <16>; 859 interrupts = <16>;
856 ti,hwmods = "adc_tsc"; 860 ti,hwmods = "adc_tsc";
857 status = "disabled"; 861 status = "disabled";
862 dmas = <&edma 53 0>, <&edma 57 0>;
863 dma-names = "fifo0", "fifo1";
858 864
859 tsc { 865 tsc {
860 compatible = "ti,am3359-tsc"; 866 compatible = "ti,am3359-tsc";
diff --git a/arch/arm/boot/dts/am3517.dtsi b/arch/arm/boot/dts/am3517.dtsi
index 0db19d39d24c..9fe545dbfa89 100644
--- a/arch/arm/boot/dts/am3517.dtsi
+++ b/arch/arm/boot/dts/am3517.dtsi
@@ -66,6 +66,7 @@
66 reg = <0x480025d8 0x24>; 66 reg = <0x480025d8 0x24>;
67 #address-cells = <1>; 67 #address-cells = <1>;
68 #size-cells = <0>; 68 #size-cells = <0>;
69 #pinctrl-cells = <1>;
69 #interrupt-cells = <1>; 70 #interrupt-cells = <1>;
70 interrupt-controller; 71 interrupt-controller;
71 pinctrl-single,register-width = <16>; 72 pinctrl-single,register-width = <16>;
diff --git a/arch/arm/boot/dts/am4372.dtsi b/arch/arm/boot/dts/am4372.dtsi
index a275fa956813..ac55f93fc91e 100644
--- a/arch/arm/boot/dts/am4372.dtsi
+++ b/arch/arm/boot/dts/am4372.dtsi
@@ -189,6 +189,7 @@
189 reg = <0x800 0x31c>; 189 reg = <0x800 0x31c>;
190 #address-cells = <1>; 190 #address-cells = <1>;
191 #size-cells = <0>; 191 #size-cells = <0>;
192 #pinctrl-cells = <1>;
192 #interrupt-cells = <1>; 193 #interrupt-cells = <1>;
193 interrupt-controller; 194 interrupt-controller;
194 pinctrl-single,register-width = <32>; 195 pinctrl-single,register-width = <32>;
@@ -871,6 +872,8 @@
871 clocks = <&adc_tsc_fck>; 872 clocks = <&adc_tsc_fck>;
872 clock-names = "fck"; 873 clock-names = "fck";
873 status = "disabled"; 874 status = "disabled";
875 dmas = <&edma 53 0>, <&edma 57 0>;
876 dma-names = "fifo0", "fifo1";
874 877
875 tsc { 878 tsc {
876 compatible = "ti,am3359-tsc"; 879 compatible = "ti,am3359-tsc";
diff --git a/arch/arm/boot/dts/am437x-idk-evm.dts b/arch/arm/boot/dts/am437x-idk-evm.dts
index 25ce611c6568..b76a7c0264a5 100644
--- a/arch/arm/boot/dts/am437x-idk-evm.dts
+++ b/arch/arm/boot/dts/am437x-idk-evm.dts
@@ -117,6 +117,58 @@
117 compatible = "fixed-clock"; 117 compatible = "fixed-clock";
118 clock-frequency = <32768>; 118 clock-frequency = <32768>;
119 }; 119 };
120
121 leds-iio {
122 status = "disabled";
123 compatible = "gpio-leds";
124 led-out0 {
125 label = "out0";
126 gpios = <&tpic2810 0 GPIO_ACTIVE_HIGH>;
127 default-state = "off";
128 };
129
130 led-out1 {
131 label = "out1";
132 gpios = <&tpic2810 1 GPIO_ACTIVE_HIGH>;
133 default-state = "off";
134 };
135
136 led-out2 {
137 label = "out2";
138 gpios = <&tpic2810 2 GPIO_ACTIVE_HIGH>;
139 default-state = "off";
140 };
141
142 led-out3 {
143 label = "out3";
144 gpios = <&tpic2810 3 GPIO_ACTIVE_HIGH>;
145 default-state = "off";
146 };
147
148 led-out4 {
149 label = "out4";
150 gpios = <&tpic2810 4 GPIO_ACTIVE_HIGH>;
151 default-state = "off";
152 };
153
154 led-out5 {
155 label = "out5";
156 gpios = <&tpic2810 5 GPIO_ACTIVE_HIGH>;
157 default-state = "off";
158 };
159
160 led-out6 {
161 label = "out6";
162 gpios = <&tpic2810 6 GPIO_ACTIVE_HIGH>;
163 default-state = "off";
164 };
165
166 led-out7 {
167 label = "out7";
168 gpios = <&tpic2810 7 GPIO_ACTIVE_HIGH>;
169 default-state = "off";
170 };
171 };
120}; 172};
121 173
122&am43xx_pinmux { 174&am43xx_pinmux {
@@ -178,6 +230,24 @@
178 >; 230 >;
179 }; 231 };
180 232
233 spi1_pins_default: spi1_pins_default {
234 pinctrl-single,pins = <
235 AM4372_IOPAD(0x908, PIN_INPUT | MUX_MODE2) /* mii1_col.spi1_sclk */
236 AM4372_IOPAD(0x910, PIN_INPUT | MUX_MODE2) /* mii1_rx_er.spi1_d1 */
237 AM4372_IOPAD(0x944, PIN_OUTPUT | MUX_MODE2) /* rmii1_ref_clk.spi1_cs0 */
238 AM4372_IOPAD(0x90c, PIN_OUTPUT | MUX_MODE7) /* mii1_crs.gpio3_1 */
239 >;
240 };
241
242 spi1_pins_sleep: spi1_pins_sleep {
243 pinctrl-single,pins = <
244 AM4372_IOPAD(0x908, PIN_INPUT_PULLDOWN | MUX_MODE7)
245 AM4372_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7)
246 AM4372_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7)
247 AM4372_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE7)
248 >;
249 };
250
181 ecap0_pins_default: backlight_pins_default { 251 ecap0_pins_default: backlight_pins_default {
182 pinctrl-single,pins = < 252 pinctrl-single,pins = <
183 AM4372_IOPAD(0x964, PIN_OUTPUT | MUX_MODE0) /* ecap0_in_pwm0_out.ecap0_in_pwm0_out */ 253 AM4372_IOPAD(0x964, PIN_OUTPUT | MUX_MODE0) /* ecap0_in_pwm0_out.ecap0_in_pwm0_out */
@@ -290,6 +360,33 @@
290 pinctrl-0 = <&i2c2_pins_default>; 360 pinctrl-0 = <&i2c2_pins_default>;
291 pinctrl-1 = <&i2c2_pins_sleep>; 361 pinctrl-1 = <&i2c2_pins_sleep>;
292 clock-frequency = <100000>; 362 clock-frequency = <100000>;
363
364 tpic2810: tpic2810@60 {
365 compatible = "ti,tpic2810";
366 reg = <0x60>;
367 gpio-controller;
368 #gpio-cells = <2>;
369 };
370};
371
372&spi1 {
373 status = "okay";
374 pinctrl-names = "default", "sleep";
375 pinctrl-0 = <&spi1_pins_default>;
376 pinctrl-1 = <&spi1_pins_sleep>;
377 ti,pindir-d0-out-d1-in;
378
379 sn65hvs882: sn65hvs882@0 {
380 compatible = "pisosr-gpio";
381 gpio-controller;
382 #gpio-cells = <2>;
383
384 load-gpios = <&gpio3 1 GPIO_ACTIVE_LOW>;
385
386 reg = <0>;
387 spi-max-frequency = <1000000>;
388 spi-cpol;
389 };
293}; 390};
294 391
295&epwmss0 { 392&epwmss0 {
@@ -310,6 +407,10 @@
310 status = "okay"; 407 status = "okay";
311}; 408};
312 409
410&gpio3 {
411 status = "okay";
412};
413
313&gpio4 { 414&gpio4 {
314 status = "okay"; 415 status = "okay";
315}; 416};
diff --git a/arch/arm/boot/dts/am571x-idk.dts b/arch/arm/boot/dts/am571x-idk.dts
new file mode 100644
index 000000000000..d6e43e5184c1
--- /dev/null
+++ b/arch/arm/boot/dts/am571x-idk.dts
@@ -0,0 +1,81 @@
1/*
2 * Copyright (C) 2015-2016 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/dts-v1/;
9
10#include "dra72x.dtsi"
11#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/interrupt-controller/irq.h>
13#include "am57xx-idk-common.dtsi"
14
15/ {
16 model = "TI AM5718 IDK";
17 compatible = "ti,am5718-idk", "ti,am5718", "ti,dra7";
18
19 memory@80000000 {
20 device_type = "memory";
21 reg = <0x0 0x80000000 0x0 0x40000000>;
22 };
23
24 leds {
25 compatible = "gpio-leds";
26 cpu0-led {
27 label = "status0:red:cpu0";
28 gpios = <&gpio2 25 GPIO_ACTIVE_HIGH>;
29 default-state = "off";
30 linux,default-trigger = "cpu0";
31 };
32
33 usr0-led {
34 label = "status0:green:usr";
35 gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
36 default-state = "off";
37 };
38
39 heartbeat-led {
40 label = "status0:blue:heartbeat";
41 gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>;
42 default-state = "off";
43 linux,default-trigger = "heartbeat";
44 };
45
46 usr1-led {
47 label = "status1:red:usr";
48 gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
49 default-state = "off";
50 };
51
52 usr2-led {
53 label = "status1:green:usr";
54 gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>;
55 default-state = "off";
56 };
57
58 mmc0-led {
59 label = "status1:blue:mmc0";
60 gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
61 default-state = "off";
62 linux,default-trigger = "mmc0";
63 };
64 };
65
66 extcon_usb2: extcon_usb2 {
67 compatible = "linux,extcon-usb-gpio";
68 id-gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>;
69 };
70};
71
72&mmc1 {
73 status = "okay";
74 vmmc-supply = <&ldo1_reg>;
75 bus-width = <4>;
76 cd-gpios = <&gpio6 27 0>; /* gpio 219 */
77};
78
79&omap_dwc3_2 {
80 extcon = <&extcon_usb2>;
81};
diff --git a/arch/arm/boot/dts/am572x-idk.dts b/arch/arm/boot/dts/am572x-idk.dts
index 87bbc66f0f21..27d9149cedba 100644
--- a/arch/arm/boot/dts/am572x-idk.dts
+++ b/arch/arm/boot/dts/am572x-idk.dts
@@ -83,3 +83,7 @@
83 bus-width = <4>; 83 bus-width = <4>;
84 cd-gpios = <&gpio6 27 0>; /* gpio 219 */ 84 cd-gpios = <&gpio6 27 0>; /* gpio 219 */
85}; 85};
86
87&sn65hvs882 {
88 load-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>;
89};
diff --git a/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi b/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
index 6df7829a2c15..78bee26361f1 100644
--- a/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
+++ b/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
@@ -204,6 +204,7 @@
204 interrupt-controller; 204 interrupt-controller;
205 205
206 ti,system-power-controller; 206 ti,system-power-controller;
207 ti,palmas-override-powerhold;
207 208
208 tps659038_pmic { 209 tps659038_pmic {
209 compatible = "ti,tps659038-pmic"; 210 compatible = "ti,tps659038-pmic";
diff --git a/arch/arm/boot/dts/am57xx-idk-common.dtsi b/arch/arm/boot/dts/am57xx-idk-common.dtsi
index 03cec62260e1..555ae21f2b9a 100644
--- a/arch/arm/boot/dts/am57xx-idk-common.dtsi
+++ b/arch/arm/boot/dts/am57xx-idk-common.dtsi
@@ -43,6 +43,58 @@
43 regulator-always-on; 43 regulator-always-on;
44 regulator-boot-on; 44 regulator-boot-on;
45 }; 45 };
46
47 leds-iio {
48 status = "disabled";
49 compatible = "gpio-leds";
50 led-out0 {
51 label = "out0";
52 gpios = <&tpic2810 0 GPIO_ACTIVE_HIGH>;
53 default-state = "off";
54 };
55
56 led-out1 {
57 label = "out1";
58 gpios = <&tpic2810 1 GPIO_ACTIVE_HIGH>;
59 default-state = "off";
60 };
61
62 led-out2 {
63 label = "out2";
64 gpios = <&tpic2810 2 GPIO_ACTIVE_HIGH>;
65 default-state = "off";
66 };
67
68 led-out3 {
69 label = "out3";
70 gpios = <&tpic2810 3 GPIO_ACTIVE_HIGH>;
71 default-state = "off";
72 };
73
74 led-out4 {
75 label = "out4";
76 gpios = <&tpic2810 4 GPIO_ACTIVE_HIGH>;
77 default-state = "off";
78 };
79
80 led-out5 {
81 label = "out5";
82 gpios = <&tpic2810 5 GPIO_ACTIVE_HIGH>;
83 default-state = "off";
84 };
85
86 led-out6 {
87 label = "out6";
88 gpios = <&tpic2810 6 GPIO_ACTIVE_HIGH>;
89 default-state = "off";
90 };
91
92 led-out7 {
93 label = "out7";
94 gpios = <&tpic2810 7 GPIO_ACTIVE_HIGH>;
95 default-state = "off";
96 };
97 };
46}; 98};
47 99
48&i2c1 { 100&i2c1 {
@@ -57,6 +109,7 @@
57 #interrupt-cells = <2>; 109 #interrupt-cells = <2>;
58 interrupt-controller; 110 interrupt-controller;
59 ti,system-power-controller; 111 ti,system-power-controller;
112 ti,palmas-override-powerhold;
60 113
61 tps659038_pmic { 114 tps659038_pmic {
62 compatible = "ti,tps659038-pmic"; 115 compatible = "ti,tps659038-pmic";
@@ -253,6 +306,28 @@
253 }; 306 };
254}; 307};
255 308
309&mcspi3 {
310 status = "okay";
311 ti,pindir-d0-out-d1-in;
312
313 sn65hvs882: sn65hvs882@0 {
314 compatible = "pisosr-gpio";
315 gpio-controller;
316 #gpio-cells = <2>;
317
318 reg = <0>;
319 spi-max-frequency = <1000000>;
320 spi-cpol;
321 };
322
323 tpic2810: tpic2810@60 {
324 compatible = "ti,tpic2810";
325 reg = <0x60>;
326 gpio-controller;
327 #gpio-cells = <2>;
328 };
329};
330
256&uart3 { 331&uart3 {
257 status = "okay"; 332 status = "okay";
258 interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH 333 interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH
diff --git a/arch/arm/boot/dts/armada-370-db.dts b/arch/arm/boot/dts/armada-370-db.dts
index 033fa63544f7..a9419f8e17e8 100644
--- a/arch/arm/boot/dts/armada-370-db.dts
+++ b/arch/arm/boot/dts/armada-370-db.dts
@@ -67,7 +67,7 @@
67 stdout-path = "serial0:115200n8"; 67 stdout-path = "serial0:115200n8";
68 }; 68 };
69 69
70 memory { 70 memory@0 {
71 device_type = "memory"; 71 device_type = "memory";
72 reg = <0x00000000 0x40000000>; /* 1 GB */ 72 reg = <0x00000000 0x40000000>; /* 1 GB */
73 }; 73 };
@@ -86,18 +86,6 @@
86 status = "okay"; 86 status = "okay";
87 }; 87 };
88 88
89 mdio {
90 pinctrl-0 = <&mdio_pins>;
91 pinctrl-names = "default";
92 phy0: ethernet-phy@0 {
93 reg = <0>;
94 };
95
96 phy1: ethernet-phy@1 {
97 reg = <1>;
98 };
99 };
100
101 ethernet@70000 { 89 ethernet@70000 {
102 pinctrl-0 = <&ge0_rgmii_pins>; 90 pinctrl-0 = <&ge0_rgmii_pins>;
103 pinctrl-names = "default"; 91 pinctrl-names = "default";
@@ -182,24 +170,6 @@
182 }; 170 };
183 }; 171 };
184 }; 172 };
185
186 pcie-controller {
187 status = "okay";
188 /*
189 * The two PCIe units are accessible through
190 * both standard PCIe slots and mini-PCIe
191 * slots on the board.
192 */
193 pcie@1,0 {
194 /* Port 0, Lane 0 */
195 status = "okay";
196 };
197
198 pcie@2,0 {
199 /* Port 1, Lane 0 */
200 status = "okay";
201 };
202 };
203 }; 173 };
204 174
205 sound { 175 sound {
@@ -261,6 +231,37 @@
261 }; 231 };
262}; 232};
263 233
234&pciec {
235 status = "okay";
236 /*
237 * The two PCIe units are accessible through
238 * both standard PCIe slots and mini-PCIe
239 * slots on the board.
240 */
241 pcie@1,0 {
242 /* Port 0, Lane 0 */
243 status = "okay";
244 };
245
246 pcie@2,0 {
247 /* Port 1, Lane 0 */
248 status = "okay";
249 };
250};
251
252&mdio {
253 pinctrl-0 = <&mdio_pins>;
254 pinctrl-names = "default";
255 phy0: ethernet-phy@0 {
256 reg = <0>;
257 };
258
259 phy1: ethernet-phy@1 {
260 reg = <1>;
261 };
262};
263
264
264&spi0 { 265&spi0 {
265 pinctrl-0 = <&spi0_pins2>; 266 pinctrl-0 = <&spi0_pins2>;
266 pinctrl-names = "default"; 267 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/armada-370-dlink-dns327l.dts b/arch/arm/boot/dts/armada-370-dlink-dns327l.dts
index e2a363b1dd8a..aeedc463daa6 100644
--- a/arch/arm/boot/dts/armada-370-dlink-dns327l.dts
+++ b/arch/arm/boot/dts/armada-370-dlink-dns327l.dts
@@ -62,7 +62,7 @@
62 stdout-path = &uart0; 62 stdout-path = &uart0;
63 }; 63 };
64 64
65 memory { 65 memory@0 {
66 device_type = "memory"; 66 device_type = "memory";
67 reg = <0x00000000 0x20000000>; /* 512 MiB */ 67 reg = <0x00000000 0x20000000>; /* 512 MiB */
68 }; 68 };
@@ -72,20 +72,6 @@
72 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000 72 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
73 MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>; 73 MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;
74 74
75 pcie-controller {
76 status = "okay";
77
78 pcie@1,0 {
79 /* Port 0, Lane 0 */
80 status = "okay";
81 };
82
83 pcie@2,0 {
84 /* Port 1, Lane 0 */
85 status = "okay";
86 };
87 };
88
89 internal-regs { 75 internal-regs {
90 sata@a0000 { 76 sata@a0000 {
91 nr-ports = <2>; 77 nr-ports = <2>;
@@ -262,6 +248,20 @@
262 }; 248 };
263}; 249};
264 250
251&pciec {
252 status = "okay";
253
254 pcie@1,0 {
255 /* Port 0, Lane 0 */
256 status = "okay";
257 };
258
259 pcie@2,0 {
260 /* Port 1, Lane 0 */
261 status = "okay";
262 };
263};
264
265&pinctrl { 265&pinctrl {
266 sata_l_white_pin: sata-l-white-pin { 266 sata_l_white_pin: sata-l-white-pin {
267 marvell,pins = "mpp57"; 267 marvell,pins = "mpp57";
diff --git a/arch/arm/boot/dts/armada-370-mirabox.dts b/arch/arm/boot/dts/armada-370-mirabox.dts
index d5e19cd4d256..a1425409e570 100644
--- a/arch/arm/boot/dts/armada-370-mirabox.dts
+++ b/arch/arm/boot/dts/armada-370-mirabox.dts
@@ -54,7 +54,7 @@
54 stdout-path = "serial0:115200n8"; 54 stdout-path = "serial0:115200n8";
55 }; 55 };
56 56
57 memory { 57 memory@0 {
58 device_type = "memory"; 58 device_type = "memory";
59 reg = <0x00000000 0x20000000>; /* 512 MB */ 59 reg = <0x00000000 0x20000000>; /* 512 MB */
60 }; 60 };
@@ -64,22 +64,6 @@
64 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000 64 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
65 MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>; 65 MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;
66 66
67 pcie-controller {
68 status = "okay";
69
70 /* Internal mini-PCIe connector */
71 pcie@1,0 {
72 /* Port 0, Lane 0 */
73 status = "okay";
74 };
75
76 /* Connected on the PCB to a USB 3.0 XHCI controller */
77 pcie@2,0 {
78 /* Port 1, Lane 0 */
79 status = "okay";
80 };
81 };
82
83 internal-regs { 67 internal-regs {
84 serial@12000 { 68 serial@12000 {
85 status = "okay"; 69 status = "okay";
@@ -113,17 +97,6 @@
113 }; 97 };
114 }; 98 };
115 99
116 mdio {
117 pinctrl-0 = <&mdio_pins>;
118 pinctrl-names = "default";
119 phy0: ethernet-phy@0 {
120 reg = <0>;
121 };
122
123 phy1: ethernet-phy@1 {
124 reg = <1>;
125 };
126 };
127 ethernet@70000 { 100 ethernet@70000 {
128 pinctrl-0 = <&ge0_rgmii_pins>; 101 pinctrl-0 = <&ge0_rgmii_pins>;
129 pinctrl-names = "default"; 102 pinctrl-names = "default";
@@ -197,6 +170,34 @@
197 }; 170 };
198}; 171};
199 172
173&pciec {
174 status = "okay";
175
176 /* Internal mini-PCIe connector */
177 pcie@1,0 {
178 /* Port 0, Lane 0 */
179 status = "okay";
180 };
181
182 /* Connected on the PCB to a USB 3.0 XHCI controller */
183 pcie@2,0 {
184 /* Port 1, Lane 0 */
185 status = "okay";
186 };
187};
188
189&mdio {
190 pinctrl-0 = <&mdio_pins>;
191 pinctrl-names = "default";
192 phy0: ethernet-phy@0 {
193 reg = <0>;
194 };
195
196 phy1: ethernet-phy@1 {
197 reg = <1>;
198 };
199};
200
200&pinctrl { 201&pinctrl {
201 pwr_led_pin: pwr-led-pin { 202 pwr_led_pin: pwr-led-pin {
202 marvell,pins = "mpp63"; 203 marvell,pins = "mpp63";
diff --git a/arch/arm/boot/dts/armada-370-netgear-rn102.dts b/arch/arm/boot/dts/armada-370-netgear-rn102.dts
index 39181b3fa90d..6bd9265f1062 100644
--- a/arch/arm/boot/dts/armada-370-netgear-rn102.dts
+++ b/arch/arm/boot/dts/armada-370-netgear-rn102.dts
@@ -56,7 +56,7 @@
56 stdout-path = "serial0:115200n8"; 56 stdout-path = "serial0:115200n8";
57 }; 57 };
58 58
59 memory { 59 memory@0 {
60 device_type = "memory"; 60 device_type = "memory";
61 reg = <0x00000000 0x20000000>; /* 512 MB */ 61 reg = <0x00000000 0x20000000>; /* 512 MB */
62 }; 62 };
@@ -66,22 +66,6 @@
66 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000 66 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
67 MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>; 67 MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;
68 68
69 pcie-controller {
70 status = "okay";
71
72 /* Connected to Marvell 88SE9170 SATA controller */
73 pcie@1,0 {
74 /* Port 0, Lane 0 */
75 status = "okay";
76 };
77
78 /* Connected to FL1009 USB 3.0 controller */
79 pcie@2,0 {
80 /* Port 1, Lane 0 */
81 status = "okay";
82 };
83 };
84
85 internal-regs { 69 internal-regs {
86 70
87 /* RTC is provided by Intersil ISL12057 I2C RTC chip */ 71 /* RTC is provided by Intersil ISL12057 I2C RTC chip */
@@ -99,14 +83,6 @@
99 status = "okay"; 83 status = "okay";
100 }; 84 };
101 85
102 mdio {
103 pinctrl-0 = <&mdio_pins>;
104 pinctrl-names = "default";
105 phy0: ethernet-phy@0 { /* Marvell 88E1318 */
106 reg = <0>;
107 };
108 };
109
110 ethernet@74000 { 86 ethernet@74000 {
111 pinctrl-0 = <&ge1_rgmii_pins>; 87 pinctrl-0 = <&ge1_rgmii_pins>;
112 pinctrl-names = "default"; 88 pinctrl-names = "default";
@@ -120,8 +96,11 @@
120 }; 96 };
121 97
122 i2c@11000 { 98 i2c@11000 {
123 compatible = "marvell,mv64xxx-i2c";
124 clock-frequency = <100000>; 99 clock-frequency = <100000>;
100
101 pinctrl-0 = <&i2c0_pins>;
102 pinctrl-names = "default";
103
125 status = "okay"; 104 status = "okay";
126 105
127 isl12057: isl12057@68 { 106 isl12057: isl12057@68 {
@@ -257,6 +236,30 @@
257 }; 236 };
258}; 237};
259 238
239&pciec {
240 status = "okay";
241
242 /* Connected to Marvell 88SE9170 SATA controller */
243 pcie@1,0 {
244 /* Port 0, Lane 0 */
245 status = "okay";
246 };
247
248 /* Connected to FL1009 USB 3.0 controller */
249 pcie@2,0 {
250 /* Port 1, Lane 0 */
251 status = "okay";
252 };
253};
254
255&mdio {
256 pinctrl-0 = <&mdio_pins>;
257 pinctrl-names = "default";
258 phy0: ethernet-phy@0 { /* Marvell 88E1318 */
259 reg = <0>;
260 };
261};
262
260&pinctrl { 263&pinctrl {
261 power_led_pin: power-led-pin { 264 power_led_pin: power-led-pin {
262 marvell,pins = "mpp57"; 265 marvell,pins = "mpp57";
diff --git a/arch/arm/boot/dts/armada-370-netgear-rn104.dts b/arch/arm/boot/dts/armada-370-netgear-rn104.dts
index 11565752b9f6..c84ab5bf1e18 100644
--- a/arch/arm/boot/dts/armada-370-netgear-rn104.dts
+++ b/arch/arm/boot/dts/armada-370-netgear-rn104.dts
@@ -56,7 +56,7 @@
56 stdout-path = "serial0:115200n8"; 56 stdout-path = "serial0:115200n8";
57 }; 57 };
58 58
59 memory { 59 memory@0 {
60 device_type = "memory"; 60 device_type = "memory";
61 reg = <0x00000000 0x20000000>; /* 512 MB */ 61 reg = <0x00000000 0x20000000>; /* 512 MB */
62 }; 62 };
@@ -66,22 +66,6 @@
66 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000 66 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
67 MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>; 67 MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;
68 68
69 pcie-controller {
70 status = "okay";
71
72 /* Connected to FL1009 USB 3.0 controller */
73 pcie@1,0 {
74 /* Port 0, Lane 0 */
75 status = "okay";
76 };
77
78 /* Connected to Marvell 88SE9215 SATA controller */
79 pcie@2,0 {
80 /* Port 1, Lane 0 */
81 status = "okay";
82 };
83 };
84
85 internal-regs { 69 internal-regs {
86 70
87 /* RTC is provided by Intersil ISL12057 I2C RTC chip */ 71 /* RTC is provided by Intersil ISL12057 I2C RTC chip */
@@ -93,18 +77,6 @@
93 status = "okay"; 77 status = "okay";
94 }; 78 };
95 79
96 mdio {
97 pinctrl-0 = <&mdio_pins>;
98 pinctrl-names = "default";
99 phy0: ethernet-phy@0 { /* Marvell 88E1318 */
100 reg = <0>;
101 };
102
103 phy1: ethernet-phy@1 { /* Marvell 88E1318 */
104 reg = <1>;
105 };
106 };
107
108 ethernet@70000 { 80 ethernet@70000 {
109 pinctrl-0 = <&ge0_rgmii_pins>; 81 pinctrl-0 = <&ge0_rgmii_pins>;
110 pinctrl-names = "default"; 82 pinctrl-names = "default";
@@ -126,8 +98,11 @@
126 }; 98 };
127 99
128 i2c@11000 { 100 i2c@11000 {
129 compatible = "marvell,mv64xxx-i2c";
130 clock-frequency = <100000>; 101 clock-frequency = <100000>;
102
103 pinctrl-0 = <&i2c0_pins>;
104 pinctrl-names = "default";
105
131 status = "okay"; 106 status = "okay";
132 107
133 isl12057: isl12057@68 { 108 isl12057: isl12057@68 {
@@ -279,6 +254,34 @@
279 }; 254 };
280}; 255};
281 256
257&pciec {
258 status = "okay";
259
260 /* Connected to FL1009 USB 3.0 controller */
261 pcie@1,0 {
262 /* Port 0, Lane 0 */
263 status = "okay";
264 };
265
266 /* Connected to Marvell 88SE9215 SATA controller */
267 pcie@2,0 {
268 /* Port 1, Lane 0 */
269 status = "okay";
270 };
271};
272
273&mdio {
274 pinctrl-0 = <&mdio_pins>;
275 pinctrl-names = "default";
276 phy0: ethernet-phy@0 { /* Marvell 88E1318 */
277 reg = <0>;
278 };
279
280 phy1: ethernet-phy@1 { /* Marvell 88E1318 */
281 reg = <1>;
282 };
283};
284
282&pinctrl { 285&pinctrl {
283 poweroff: poweroff { 286 poweroff: poweroff {
284 marvell,pins = "mpp60"; 287 marvell,pins = "mpp60";
diff --git a/arch/arm/boot/dts/armada-370-rd.dts b/arch/arm/boot/dts/armada-370-rd.dts
index fbef730e8d37..c3fd6e49212f 100644
--- a/arch/arm/boot/dts/armada-370-rd.dts
+++ b/arch/arm/boot/dts/armada-370-rd.dts
@@ -67,7 +67,7 @@
67 stdout-path = "serial0:115200n8"; 67 stdout-path = "serial0:115200n8";
68 }; 68 };
69 69
70 memory { 70 memory@0 {
71 device_type = "memory"; 71 device_type = "memory";
72 reg = <0x00000000 0x20000000>; /* 512 MB */ 72 reg = <0x00000000 0x20000000>; /* 512 MB */
73 }; 73 };
@@ -77,22 +77,6 @@
77 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000 77 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
78 MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>; 78 MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;
79 79
80 pcie-controller {
81 status = "okay";
82
83 /* Internal mini-PCIe connector */
84 pcie@1,0 {
85 /* Port 0, Lane 0 */
86 status = "okay";
87 };
88
89 /* Internal mini-PCIe connector */
90 pcie@2,0 {
91 /* Port 1, Lane 0 */
92 status = "okay";
93 };
94 };
95
96 internal-regs { 80 internal-regs {
97 serial@12000 { 81 serial@12000 {
98 status = "okay"; 82 status = "okay";
@@ -102,14 +86,6 @@
102 status = "okay"; 86 status = "okay";
103 }; 87 };
104 88
105 mdio {
106 pinctrl-0 = <&mdio_pins>;
107 pinctrl-names = "default";
108 phy0: ethernet-phy@0 {
109 reg = <0>;
110 };
111 };
112
113 ethernet@70000 { 89 ethernet@70000 {
114 status = "okay"; 90 status = "okay";
115 phy = <&phy0>; 91 phy = <&phy0>;
@@ -146,7 +122,7 @@
146 compatible = "gpio-keys"; 122 compatible = "gpio-keys";
147 #address-cells = <1>; 123 #address-cells = <1>;
148 #size-cells = <0>; 124 #size-cells = <0>;
149 button@1 { 125 button {
150 label = "Software Button"; 126 label = "Software Button";
151 linux,code = <KEY_POWER>; 127 linux,code = <KEY_POWER>;
152 gpios = <&gpio0 6 GPIO_ACTIVE_LOW>; 128 gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
@@ -196,7 +172,7 @@
196 }; 172 };
197 }; 173 };
198 174
199 dsa@0 { 175 dsa {
200 compatible = "marvell,dsa"; 176 compatible = "marvell,dsa";
201 #address-cells = <2>; 177 #address-cells = <2>;
202 #size-cells = <0>; 178 #size-cells = <0>;
@@ -235,7 +211,32 @@
235 }; 211 };
236 }; 212 };
237 }; 213 };
238 }; 214};
215
216&pciec {
217 status = "okay";
218
219 /* Internal mini-PCIe connector */
220 pcie@1,0 {
221 /* Port 0, Lane 0 */
222 status = "okay";
223 };
224
225 /* Internal mini-PCIe connector */
226 pcie@2,0 {
227 /* Port 1, Lane 0 */
228 status = "okay";
229 };
230};
231
232&mdio {
233 pinctrl-0 = <&mdio_pins>;
234 pinctrl-names = "default";
235 phy0: ethernet-phy@0 {
236 reg = <0>;
237 };
238};
239
239 240
240&pinctrl { 241&pinctrl {
241 fan_pins: fan-pins { 242 fan_pins: fan-pins {
diff --git a/arch/arm/boot/dts/armada-370-seagate-nas-4bay.dts b/arch/arm/boot/dts/armada-370-seagate-nas-4bay.dts
index ae2e1fe50ef6..eb6af53b4954 100644
--- a/arch/arm/boot/dts/armada-370-seagate-nas-4bay.dts
+++ b/arch/arm/boot/dts/armada-370-seagate-nas-4bay.dts
@@ -28,20 +28,7 @@
28 compatible = "seagate,dart-4", "marvell,armada370", "marvell,armada-370-xp"; 28 compatible = "seagate,dart-4", "marvell,armada370", "marvell,armada-370-xp";
29 29
30 soc { 30 soc {
31 pcie-controller {
32 /* SATA AHCI controller 88SE9170 */
33 pcie@1,0 {
34 status = "okay";
35 };
36 };
37
38 internal-regs { 31 internal-regs {
39 mdio {
40 phy1: ethernet-phy@1 {
41 reg = <1>;
42 };
43 };
44
45 ethernet@74000 { 32 ethernet@74000 {
46 status = "okay"; 33 status = "okay";
47 pinctrl-0 = <&ge1_rgmii_pins>; 34 pinctrl-0 = <&ge1_rgmii_pins>;
@@ -131,3 +118,17 @@
131 1300 0>; 118 1300 0>;
132 }; 119 };
133}; 120};
121
122&pciec {
123 /* SATA AHCI controller 88SE9170 */
124 pcie@1,0 {
125 status = "okay";
126 };
127};
128
129&mdio {
130 phy1: ethernet-phy@1 {
131 reg = <1>;
132 };
133};
134
diff --git a/arch/arm/boot/dts/armada-370-seagate-nas-xbay.dtsi b/arch/arm/boot/dts/armada-370-seagate-nas-xbay.dtsi
index 3036e25c5992..e9a5b952afc0 100644
--- a/arch/arm/boot/dts/armada-370-seagate-nas-xbay.dtsi
+++ b/arch/arm/boot/dts/armada-370-seagate-nas-xbay.dtsi
@@ -23,7 +23,7 @@
23 stdout-path = "serial0:115200n8"; 23 stdout-path = "serial0:115200n8";
24 }; 24 };
25 25
26 memory { 26 memory@0 {
27 device_type = "memory"; 27 device_type = "memory";
28 reg = <0x00000000 0x20000000>; /* 512 MB */ 28 reg = <0x00000000 0x20000000>; /* 512 MB */
29 }; 29 };
@@ -32,15 +32,6 @@
32 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 32 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
33 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>; 33 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>;
34 34
35 pcie-controller {
36 status = "okay";
37
38 /* USB 3.0 bridge ASM1042A */
39 pcie@2,0 {
40 status = "okay";
41 };
42 };
43
44 internal-regs { 35 internal-regs {
45 serial@12000 { 36 serial@12000 {
46 status = "okay"; 37 status = "okay";
@@ -51,15 +42,6 @@
51 status = "okay"; 42 status = "okay";
52 }; 43 };
53 44
54 mdio {
55 pinctrl-0 = <&mdio_pins>;
56 pinctrl-names = "default";
57
58 phy0: ethernet-phy@0 {
59 reg = <0>;
60 };
61 };
62
63 ethernet@70000 { 45 ethernet@70000 {
64 status = "okay"; 46 status = "okay";
65 pinctrl-0 = <&ge0_rgmii_pins>; 47 pinctrl-0 = <&ge0_rgmii_pins>;
@@ -159,19 +141,19 @@
159 #address-cells = <1>; 141 #address-cells = <1>;
160 #size-cells = <0>; 142 #size-cells = <0>;
161 143
162 button@1 { 144 power {
163 label = "Power button"; 145 label = "Power button";
164 linux,code = <KEY_POWER>; 146 linux,code = <KEY_POWER>;
165 gpios = <&gpio1 19 GPIO_ACTIVE_LOW>; 147 gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
166 debounce-interval = <100>; 148 debounce-interval = <100>;
167 }; 149 };
168 button@2 { 150 backup {
169 label = "Backup button"; 151 label = "Backup button";
170 linux,code = <KEY_OPTION>; 152 linux,code = <KEY_OPTION>;
171 gpios = <&gpio0 31 GPIO_ACTIVE_LOW>; 153 gpios = <&gpio0 31 GPIO_ACTIVE_LOW>;
172 debounce-interval = <100>; 154 debounce-interval = <100>;
173 }; 155 };
174 button@3 { 156 reset {
175 label = "Reset Button"; 157 label = "Reset Button";
176 linux,code = <KEY_RESTART>; 158 linux,code = <KEY_RESTART>;
177 gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; 159 gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
@@ -208,6 +190,25 @@
208 }; 190 };
209}; 191};
210 192
193&pciec {
194 status = "okay";
195
196 /* USB 3.0 bridge ASM1042A */
197 pcie@2,0 {
198 status = "okay";
199 };
200};
201
202
203&mdio {
204 pinctrl-0 = <&mdio_pins>;
205 pinctrl-names = "default";
206
207 phy0: ethernet-phy@0 {
208 reg = <0>;
209 };
210};
211
211&pinctrl { 212&pinctrl {
212 pinctrl-0 = <&hdd0_led_sata_pin>, <&hdd1_led_sata_pin>; 213 pinctrl-0 = <&hdd0_led_sata_pin>, <&hdd1_led_sata_pin>;
213 pinctrl-names = "default"; 214 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/armada-370-seagate-personal-cloud.dtsi b/arch/arm/boot/dts/armada-370-seagate-personal-cloud.dtsi
index 01cded310cbc..d079a89ee5a2 100644
--- a/arch/arm/boot/dts/armada-370-seagate-personal-cloud.dtsi
+++ b/arch/arm/boot/dts/armada-370-seagate-personal-cloud.dtsi
@@ -24,7 +24,7 @@
24 stdout-path = "serial0:115200n8"; 24 stdout-path = "serial0:115200n8";
25 }; 25 };
26 26
27 memory { 27 memory@0 {
28 device_type = "memory"; 28 device_type = "memory";
29 reg = <0x00000000 0x20000000>; /* 512 MB */ 29 reg = <0x00000000 0x20000000>; /* 512 MB */
30 }; 30 };
@@ -33,15 +33,6 @@
33 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 33 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
34 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>; 34 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>;
35 35
36 pcie-controller {
37 status = "okay";
38
39 /* USB 3.0 Bridge ASM1042A */
40 pcie@1,0 {
41 status = "okay";
42 };
43 };
44
45 internal-regs { 36 internal-regs {
46 coherency-fabric@20200 { 37 coherency-fabric@20200 {
47 broken-idle; 38 broken-idle;
@@ -51,15 +42,6 @@
51 status = "okay"; 42 status = "okay";
52 }; 43 };
53 44
54 mdio {
55 pinctrl-0 = <&mdio_pins>;
56 pinctrl-names = "default";
57
58 phy0: ethernet-phy@0 {
59 reg = <0>;
60 };
61 };
62
63 ethernet@74000 { 45 ethernet@74000 {
64 status = "okay"; 46 status = "okay";
65 pinctrl-0 = <&ge1_rgmii_pins>; 47 pinctrl-0 = <&ge1_rgmii_pins>;
@@ -107,19 +89,19 @@
107 #address-cells = <1>; 89 #address-cells = <1>;
108 #size-cells = <0>; 90 #size-cells = <0>;
109 91
110 button@1 { 92 power {
111 label = "Power button"; 93 label = "Power button";
112 linux,code = <KEY_POWER>; 94 linux,code = <KEY_POWER>;
113 gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>; 95 gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
114 debounce-interval = <100>; 96 debounce-interval = <100>;
115 }; 97 };
116 button@2 { 98 reset {
117 label = "Reset Button"; 99 label = "Reset Button";
118 linux,code = <KEY_RESTART>; 100 linux,code = <KEY_RESTART>;
119 gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; 101 gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
120 debounce-interval = <100>; 102 debounce-interval = <100>;
121 }; 103 };
122 button@3 { 104 button {
123 label = "USB VBUS error"; 105 label = "USB VBUS error";
124 linux,code = <KEY_UNKNOWN>; 106 linux,code = <KEY_UNKNOWN>;
125 gpios = <&gpio1 21 GPIO_ACTIVE_LOW>; 107 gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
@@ -143,6 +125,24 @@
143 }; 125 };
144}; 126};
145 127
128&pciec {
129 status = "okay";
130
131 /* USB 3.0 Bridge ASM1042A */
132 pcie@1,0 {
133 status = "okay";
134 };
135};
136
137&mdio {
138 pinctrl-0 = <&mdio_pins>;
139 pinctrl-names = "default";
140
141 phy0: ethernet-phy@0 {
142 reg = <0>;
143 };
144};
145
146&pinctrl { 146&pinctrl {
147 pinctrl-0 = <&sata_led_pin>; 147 pinctrl-0 = <&sata_led_pin>;
148 pinctrl-names = "default"; 148 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/armada-370-synology-ds213j.dts b/arch/arm/boot/dts/armada-370-synology-ds213j.dts
index a9cc42776874..99f9de229ea8 100644
--- a/arch/arm/boot/dts/armada-370-synology-ds213j.dts
+++ b/arch/arm/boot/dts/armada-370-synology-ds213j.dts
@@ -70,7 +70,7 @@
70 stdout-path = "serial0:115200n8"; 70 stdout-path = "serial0:115200n8";
71 }; 71 };
72 72
73 memory { 73 memory@0 {
74 device_type = "memory"; 74 device_type = "memory";
75 reg = <0x00000000 0x20000000>; /* 512 MB */ 75 reg = <0x00000000 0x20000000>; /* 512 MB */
76 }; 76 };
@@ -127,12 +127,6 @@
127 status = "okay"; 127 status = "okay";
128 }; 128 };
129 129
130 mdio {
131 phy1: ethernet-phy@1 { /* Marvell 88E1512 */
132 reg = <1>;
133 };
134 };
135
136 ethernet@70000 { 130 ethernet@70000 {
137 status = "okay"; 131 status = "okay";
138 phy = <&phy1>; 132 phy = <&phy1>;
@@ -192,7 +186,7 @@
192 pinctrl-0 = <&sata1_pwr_pin &sata2_pwr_pin>; 186 pinctrl-0 = <&sata1_pwr_pin &sata2_pwr_pin>;
193 pinctrl-names = "default"; 187 pinctrl-names = "default";
194 188
195 sata1_regulator: sata1-regulator { 189 sata1_regulator: sata1-regulator@1 {
196 compatible = "regulator-fixed"; 190 compatible = "regulator-fixed";
197 reg = <1>; 191 reg = <1>;
198 regulator-name = "SATA1 Power"; 192 regulator-name = "SATA1 Power";
@@ -205,7 +199,7 @@
205 gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>; 199 gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
206 }; 200 };
207 201
208 sata2_regulator: sata2-regulator { 202 sata2_regulator: sata2-regulator@2 {
209 compatible = "regulator-fixed"; 203 compatible = "regulator-fixed";
210 reg = <2>; 204 reg = <2>;
211 regulator-name = "SATA2 Power"; 205 regulator-name = "SATA2 Power";
@@ -220,6 +214,12 @@
220 }; 214 };
221}; 215};
222 216
217&mdio {
218 phy1: ethernet-phy@1 { /* Marvell 88E1512 */
219 reg = <1>;
220 };
221};
222
223&pinctrl { 223&pinctrl {
224 disk1_led_pin: disk1-led-pin { 224 disk1_led_pin: disk1-led-pin {
225 marvell,pins = "mpp31"; 225 marvell,pins = "mpp31";
diff --git a/arch/arm/boot/dts/armada-370-xp.dtsi b/arch/arm/boot/dts/armada-370-xp.dtsi
index 3ccedc9dffb2..b0520bdeea27 100644
--- a/arch/arm/boot/dts/armada-370-xp.dtsi
+++ b/arch/arm/boot/dts/armada-370-xp.dtsi
@@ -50,8 +50,6 @@
50 * 370 and Armada XP SoC. 50 * 370 and Armada XP SoC.
51 */ 51 */
52 52
53/include/ "skeleton64.dtsi"
54
55#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) 53#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
56 54
57/ { 55/ {
@@ -86,7 +84,7 @@
86 pcie-mem-aperture = <0xf8000000 0x7e00000>; 84 pcie-mem-aperture = <0xf8000000 0x7e00000>;
87 pcie-io-aperture = <0xffe00000 0x100000>; 85 pcie-io-aperture = <0xffe00000 0x100000>;
88 86
89 devbus-bootcs { 87 devbus_bootcs: devbus-bootcs {
90 compatible = "marvell,mvebu-devbus"; 88 compatible = "marvell,mvebu-devbus";
91 reg = <MBUS_ID(0xf0, 0x01) 0x10400 0x8>; 89 reg = <MBUS_ID(0xf0, 0x01) 0x10400 0x8>;
92 ranges = <0 MBUS_ID(0x01, 0x2f) 0 0xffffffff>; 90 ranges = <0 MBUS_ID(0x01, 0x2f) 0 0xffffffff>;
@@ -96,7 +94,7 @@
96 status = "disabled"; 94 status = "disabled";
97 }; 95 };
98 96
99 devbus-cs0 { 97 devbus_cs0: devbus-cs0 {
100 compatible = "marvell,mvebu-devbus"; 98 compatible = "marvell,mvebu-devbus";
101 reg = <MBUS_ID(0xf0, 0x01) 0x10408 0x8>; 99 reg = <MBUS_ID(0xf0, 0x01) 0x10408 0x8>;
102 ranges = <0 MBUS_ID(0x01, 0x3e) 0 0xffffffff>; 100 ranges = <0 MBUS_ID(0x01, 0x3e) 0 0xffffffff>;
@@ -106,7 +104,7 @@
106 status = "disabled"; 104 status = "disabled";
107 }; 105 };
108 106
109 devbus-cs1 { 107 devbus_cs1: devbus-cs1 {
110 compatible = "marvell,mvebu-devbus"; 108 compatible = "marvell,mvebu-devbus";
111 reg = <MBUS_ID(0xf0, 0x01) 0x10410 0x8>; 109 reg = <MBUS_ID(0xf0, 0x01) 0x10410 0x8>;
112 ranges = <0 MBUS_ID(0x01, 0x3d) 0 0xffffffff>; 110 ranges = <0 MBUS_ID(0x01, 0x3d) 0 0xffffffff>;
@@ -116,7 +114,7 @@
116 status = "disabled"; 114 status = "disabled";
117 }; 115 };
118 116
119 devbus-cs2 { 117 devbus_cs2: devbus-cs2 {
120 compatible = "marvell,mvebu-devbus"; 118 compatible = "marvell,mvebu-devbus";
121 reg = <MBUS_ID(0xf0, 0x01) 0x10418 0x8>; 119 reg = <MBUS_ID(0xf0, 0x01) 0x10418 0x8>;
122 ranges = <0 MBUS_ID(0x01, 0x3b) 0 0xffffffff>; 120 ranges = <0 MBUS_ID(0x01, 0x3b) 0 0xffffffff>;
@@ -126,7 +124,7 @@
126 status = "disabled"; 124 status = "disabled";
127 }; 125 };
128 126
129 devbus-cs3 { 127 devbus_cs3: devbus-cs3 {
130 compatible = "marvell,mvebu-devbus"; 128 compatible = "marvell,mvebu-devbus";
131 reg = <MBUS_ID(0xf0, 0x01) 0x10420 0x8>; 129 reg = <MBUS_ID(0xf0, 0x01) 0x10420 0x8>;
132 ranges = <0 MBUS_ID(0x01, 0x37) 0 0xffffffff>; 130 ranges = <0 MBUS_ID(0x01, 0x37) 0 0xffffffff>;
@@ -142,7 +140,7 @@
142 #size-cells = <1>; 140 #size-cells = <1>;
143 ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>; 141 ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
144 142
145 rtc@10300 { 143 rtc: rtc@10300 {
146 compatible = "marvell,orion-rtc"; 144 compatible = "marvell,orion-rtc";
147 reg = <0x10300 0x20>; 145 reg = <0x10300 0x20>;
148 interrupts = <50>; 146 interrupts = <50>;
@@ -214,33 +212,38 @@
214 msi-controller; 212 msi-controller;
215 }; 213 };
216 214
217 coherency-fabric@20200 { 215 coherencyfab: coherency-fabric@20200 {
218 compatible = "marvell,coherency-fabric"; 216 compatible = "marvell,coherency-fabric";
219 reg = <0x20200 0xb0>, <0x21010 0x1c>; 217 reg = <0x20200 0xb0>, <0x21010 0x1c>;
220 }; 218 };
221 219
222 timer@20300 { 220 timer: timer@20300 {
223 reg = <0x20300 0x30>, <0x21040 0x30>; 221 reg = <0x20300 0x30>, <0x21040 0x30>;
224 interrupts = <37>, <38>, <39>, <40>, <5>, <6>; 222 interrupts = <37>, <38>, <39>, <40>, <5>, <6>;
225 }; 223 };
226 224
227 watchdog@20300 { 225 watchdog: watchdog@20300 {
228 reg = <0x20300 0x34>, <0x20704 0x4>; 226 reg = <0x20300 0x34>, <0x20704 0x4>;
229 }; 227 };
230 228
231 pmsu@22000 { 229 cpurst: cpurst@20800 {
230 compatible = "marvell,armada-370-cpu-reset";
231 reg = <0x20800 0x8>;
232 };
233
234 pmsu: pmsu@22000 {
232 compatible = "marvell,armada-370-pmsu"; 235 compatible = "marvell,armada-370-pmsu";
233 reg = <0x22000 0x1000>; 236 reg = <0x22000 0x1000>;
234 }; 237 };
235 238
236 usb@50000 { 239 usb0: usb@50000 {
237 compatible = "marvell,orion-ehci"; 240 compatible = "marvell,orion-ehci";
238 reg = <0x50000 0x500>; 241 reg = <0x50000 0x500>;
239 interrupts = <45>; 242 interrupts = <45>;
240 status = "disabled"; 243 status = "disabled";
241 }; 244 };
242 245
243 usb@51000 { 246 usb1: usb@51000 {
244 compatible = "marvell,orion-ehci"; 247 compatible = "marvell,orion-ehci";
245 reg = <0x51000 0x500>; 248 reg = <0x51000 0x500>;
246 interrupts = <46>; 249 interrupts = <46>;
@@ -254,7 +257,7 @@
254 status = "disabled"; 257 status = "disabled";
255 }; 258 };
256 259
257 mdio: mdio { 260 mdio: mdio@72004 {
258 #address-cells = <1>; 261 #address-cells = <1>;
259 #size-cells = <0>; 262 #size-cells = <0>;
260 compatible = "marvell,orion-mdio"; 263 compatible = "marvell,orion-mdio";
@@ -269,7 +272,7 @@
269 status = "disabled"; 272 status = "disabled";
270 }; 273 };
271 274
272 sata@a0000 { 275 sata: sata@a0000 {
273 compatible = "marvell,armada-370-sata"; 276 compatible = "marvell,armada-370-sata";
274 reg = <0xa0000 0x5000>; 277 reg = <0xa0000 0x5000>;
275 interrupts = <55>; 278 interrupts = <55>;
@@ -278,7 +281,7 @@
278 status = "disabled"; 281 status = "disabled";
279 }; 282 };
280 283
281 nand@d0000 { 284 nand: nand@d0000 {
282 compatible = "marvell,armada370-nand"; 285 compatible = "marvell,armada370-nand";
283 reg = <0xd0000 0x54>; 286 reg = <0xd0000 0x54>;
284 #address-cells = <1>; 287 #address-cells = <1>;
@@ -288,7 +291,7 @@
288 status = "disabled"; 291 status = "disabled";
289 }; 292 };
290 293
291 mvsdio@d4000 { 294 sdio: mvsdio@d4000 {
292 compatible = "marvell,orion-sdio"; 295 compatible = "marvell,orion-sdio";
293 reg = <0xd4000 0x200>; 296 reg = <0xd4000 0x200>;
294 interrupts = <54>; 297 interrupts = <54>;
diff --git a/arch/arm/boot/dts/armada-370.dtsi b/arch/arm/boot/dts/armada-370.dtsi
index b4258105e91f..b704bcc597f7 100644
--- a/arch/arm/boot/dts/armada-370.dtsi
+++ b/arch/arm/boot/dts/armada-370.dtsi
@@ -50,9 +50,11 @@
50 */ 50 */
51 51
52#include "armada-370-xp.dtsi" 52#include "armada-370-xp.dtsi"
53/include/ "skeleton.dtsi"
54 53
55/ { 54/ {
55 #address-cells = <1>;
56 #size-cells = <1>;
57
56 model = "Marvell Armada 370 family SoC"; 58 model = "Marvell Armada 370 family SoC";
57 compatible = "marvell,armada370", "marvell,armada-370-xp"; 59 compatible = "marvell,armada370", "marvell,armada-370-xp";
58 60
@@ -70,7 +72,7 @@
70 reg = <MBUS_ID(0x01, 0xe0) 0 0x100000>; 72 reg = <MBUS_ID(0x01, 0xe0) 0 0x100000>;
71 }; 73 };
72 74
73 pcie-controller { 75 pciec: pcie-controller@82000000 {
74 compatible = "marvell,armada-370-pcie"; 76 compatible = "marvell,armada-370-pcie";
75 status = "disabled"; 77 status = "disabled";
76 device_type = "pci"; 78 device_type = "pci";
@@ -89,7 +91,7 @@
89 0x82000000 0x2 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */ 91 0x82000000 0x2 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */
90 0x81000000 0x2 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO */>; 92 0x81000000 0x2 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO */>;
91 93
92 pcie@1,0 { 94 pcie0: pcie@1,0 {
93 device_type = "pci"; 95 device_type = "pci";
94 assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; 96 assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
95 reg = <0x0800 0 0 0 0>; 97 reg = <0x0800 0 0 0 0>;
@@ -106,7 +108,7 @@
106 status = "disabled"; 108 status = "disabled";
107 }; 109 };
108 110
109 pcie@2,0 { 111 pcie2: pcie@2,0 {
110 device_type = "pci"; 112 device_type = "pci";
111 assigned-addresses = <0x82002800 0 0x80000 0 0x2000>; 113 assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
112 reg = <0x1000 0 0 0 0>; 114 reg = <0x1000 0 0 0 0>;
@@ -125,7 +127,7 @@
125 }; 127 };
126 128
127 internal-regs { 129 internal-regs {
128 L2: l2-cache { 130 L2: l2-cache@8000 {
129 compatible = "marvell,aurora-outer-cache"; 131 compatible = "marvell,aurora-outer-cache";
130 reg = <0x08000 0x1000>; 132 reg = <0x08000 0x1000>;
131 cache-id-part = <0x100>; 133 cache-id-part = <0x100>;
@@ -134,14 +136,6 @@
134 wt-override; 136 wt-override;
135 }; 137 };
136 138
137 i2c0: i2c@11000 {
138 reg = <0x11000 0x20>;
139 };
140
141 i2c1: i2c@11100 {
142 reg = <0x11100 0x20>;
143 };
144
145 gpio0: gpio@18100 { 139 gpio0: gpio@18100 {
146 compatible = "marvell,orion-gpio"; 140 compatible = "marvell,orion-gpio";
147 reg = <0x18100 0x40>; 141 reg = <0x18100 0x40>;
@@ -175,22 +169,8 @@
175 interrupts = <91>; 169 interrupts = <91>;
176 }; 170 };
177 171
178 /*
179 * Default UART pinctrl setting without RTS/CTS, can
180 * be overwritten on board level if a different
181 * configuration is used.
182 */
183 uart0: serial@12000 {
184 pinctrl-0 = <&uart0_pins>;
185 pinctrl-names = "default";
186 };
187
188 uart1: serial@12100 {
189 pinctrl-0 = <&uart1_pins>;
190 pinctrl-names = "default";
191 };
192 172
193 system-controller@18200 { 173 systemc: system-controller@18200 {
194 compatible = "marvell,armada-370-xp-system-controller"; 174 compatible = "marvell,armada-370-xp-system-controller";
195 reg = <0x18200 0x100>; 175 reg = <0x18200 0x100>;
196 }; 176 };
@@ -208,37 +188,18 @@
208 #clock-cells = <1>; 188 #clock-cells = <1>;
209 }; 189 };
210 190
211 thermal@18300 { 191 thermal: thermal@18300 {
212 compatible = "marvell,armada370-thermal"; 192 compatible = "marvell,armada370-thermal";
213 reg = <0x18300 0x4 193 reg = <0x18300 0x4
214 0x18304 0x4>; 194 0x18304 0x4>;
215 status = "okay"; 195 status = "okay";
216 }; 196 };
217 197
218 sscg@18330 { 198 sscg: sscg@18330 {
219 reg = <0x18330 0x4>; 199 reg = <0x18330 0x4>;
220 }; 200 };
221 201
222 interrupt-controller@20a00 { 202 cpuconf: cpu-config@21000 {
223 reg = <0x20a00 0x1d0>, <0x21870 0x58>;
224 };
225
226 timer@20300 {
227 compatible = "marvell,armada-370-timer";
228 clocks = <&coreclk 2>;
229 };
230
231 watchdog@20300 {
232 compatible = "marvell,armada-370-wdt";
233 clocks = <&coreclk 2>;
234 };
235
236 cpurst@20800 {
237 compatible = "marvell,armada-370-cpu-reset";
238 reg = <0x20800 0x8>;
239 };
240
241 cpu-config@21000 {
242 compatible = "marvell,armada-370-cpu-config"; 203 compatible = "marvell,armada-370-cpu-config";
243 reg = <0x21000 0x8>; 204 reg = <0x21000 0x8>;
244 }; 205 };
@@ -253,15 +214,7 @@
253 status = "disabled"; 214 status = "disabled";
254 }; 215 };
255 216
256 usb@50000 { 217 xor0: xor@60800 {
257 clocks = <&coreclk 0>;
258 };
259
260 usb@51000 {
261 clocks = <&coreclk 0>;
262 };
263
264 xor@60800 {
265 compatible = "marvell,orion-xor"; 218 compatible = "marvell,orion-xor";
266 reg = <0x60800 0x100 219 reg = <0x60800 0x100
267 0x60A00 0x100>; 220 0x60A00 0x100>;
@@ -280,7 +233,7 @@
280 }; 233 };
281 }; 234 };
282 235
283 xor@60900 { 236 xor1: xor@60900 {
284 compatible = "marvell,orion-xor"; 237 compatible = "marvell,orion-xor";
285 reg = <0x60900 0x100 238 reg = <0x60900 0x100
286 0x60b00 0x100>; 239 0x60b00 0x100>;
@@ -299,15 +252,7 @@
299 }; 252 };
300 }; 253 };
301 254
302 ethernet@70000 { 255 cesa: crypto@90000 {
303 compatible = "marvell,armada-370-neta";
304 };
305
306 ethernet@74000 {
307 compatible = "marvell,armada-370-neta";
308 };
309
310 crypto@90000 {
311 compatible = "marvell,armada-370-crypto"; 256 compatible = "marvell,armada-370-crypto";
312 reg = <0x90000 0x10000>; 257 reg = <0x90000 0x10000>;
313 reg-names = "regs"; 258 reg-names = "regs";
@@ -342,6 +287,59 @@
342 }; 287 };
343}; 288};
344 289
290/*
291 * Default UART pinctrl setting without RTS/CTS, can be overwritten on
292 * board level if a different configuration is used.
293 */
294
295&uart0 {
296 pinctrl-0 = <&uart0_pins>;
297 pinctrl-names = "default";
298};
299
300&uart1 {
301 pinctrl-0 = <&uart1_pins>;
302 pinctrl-names = "default";
303};
304
305&i2c0 {
306 reg = <0x11000 0x20>;
307};
308
309&i2c1 {
310 reg = <0x11100 0x20>;
311};
312
313&mpic {
314 reg = <0x20a00 0x1d0>, <0x21870 0x58>;
315};
316
317&timer {
318 compatible = "marvell,armada-370-timer";
319 clocks = <&coreclk 2>;
320};
321
322&watchdog {
323 compatible = "marvell,armada-370-wdt";
324 clocks = <&coreclk 2>;
325};
326
327&usb0 {
328 clocks = <&coreclk 0>;
329};
330
331&usb1 {
332 clocks = <&coreclk 0>;
333};
334
335&eth0 {
336 compatible = "marvell,armada-370-neta";
337};
338
339&eth1 {
340 compatible = "marvell,armada-370-neta";
341};
342
345&pinctrl { 343&pinctrl {
346 compatible = "marvell,mv88f6710-pinctrl"; 344 compatible = "marvell,mv88f6710-pinctrl";
347 345
diff --git a/arch/arm/boot/dts/armada-375-db.dts b/arch/arm/boot/dts/armada-375-db.dts
index cded5f0a262d..ef45cbeb3e7d 100644
--- a/arch/arm/boot/dts/armada-375-db.dts
+++ b/arch/arm/boot/dts/armada-375-db.dts
@@ -58,7 +58,7 @@
58 stdout-path = "serial0:115200n8"; 58 stdout-path = "serial0:115200n8";
59 }; 59 };
60 60
61 memory { 61 memory@0 {
62 device_type = "memory"; 62 device_type = "memory";
63 reg = <0x00000000 0x40000000>; /* 1 GB */ 63 reg = <0x00000000 0x40000000>; /* 1 GB */
64 }; 64 };
@@ -69,138 +69,141 @@
69 MBUS_ID(0x09, 0x09) 0 0xf1100000 0x10000 69 MBUS_ID(0x09, 0x09) 0 0xf1100000 0x10000
70 MBUS_ID(0x09, 0x05) 0 0xf1110000 0x10000>; 70 MBUS_ID(0x09, 0x05) 0 0xf1110000 0x10000>;
71 71
72 internal-regs {
73 spi@10600 {
74 pinctrl-0 = <&spi0_pins>;
75 pinctrl-names = "default";
76 /*
77 * SPI conflicts with NAND, so we disable it
78 * here, and select NAND as the enabled device
79 * by default.
80 */
81 status = "disabled";
82
83 spi-flash@0 {
84 #address-cells = <1>;
85 #size-cells = <1>;
86 compatible = "n25q128a13", "jedec,spi-nor";
87 reg = <0>; /* Chip select 0 */
88 spi-max-frequency = <108000000>;
89 };
90 };
91
92 i2c@11000 {
93 status = "okay";
94 clock-frequency = <100000>;
95 pinctrl-0 = <&i2c0_pins>;
96 pinctrl-names = "default";
97 };
98
99 i2c@11100 {
100 status = "okay";
101 clock-frequency = <100000>;
102 pinctrl-0 = <&i2c1_pins>;
103 pinctrl-names = "default";
104 };
105
106 serial@12000 {
107 status = "okay";
108 };
109
110 pinctrl {
111 sdio_st_pins: sdio-st-pins {
112 marvell,pins = "mpp44", "mpp45";
113 marvell,function = "gpio";
114 };
115 };
116
117 sata@a0000 {
118 status = "okay";
119 nr-ports = <2>;
120 };
121
122 nand: nand@d0000 {
123 pinctrl-0 = <&nand_pins>;
124 pinctrl-names = "default";
125 status = "okay";
126 num-cs = <1>;
127 marvell,nand-keep-config;
128 marvell,nand-enable-arbiter;
129 nand-on-flash-bbt;
130 nand-ecc-strength = <4>;
131 nand-ecc-step-size = <512>;
132
133 partition@0 {
134 label = "U-Boot";
135 reg = <0 0x800000>;
136 };
137 partition@800000 {
138 label = "Linux";
139 reg = <0x800000 0x800000>;
140 };
141 partition@1000000 {
142 label = "Filesystem";
143 reg = <0x1000000 0x3f000000>;
144 };
145 };
146
147 usb@54000 {
148 status = "okay";
149 };
150
151 usb3@58000 {
152 status = "okay";
153 };
154
155 mvsdio@d4000 {
156 pinctrl-0 = <&sdio_pins &sdio_st_pins>;
157 pinctrl-names = "default";
158 status = "okay";
159 cd-gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
160 wp-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
161 };
162
163 mdio {
164 phy0: ethernet-phy@0 {
165 reg = <0>;
166 };
167
168 phy3: ethernet-phy@3 {
169 reg = <3>;
170 };
171 };
172
173 ethernet@f0000 {
174 status = "okay";
175
176 eth0@c4000 {
177 status = "okay";
178 phy = <&phy0>;
179 phy-mode = "rgmii-id";
180 };
181
182 eth1@c5000 {
183 status = "okay";
184 phy = <&phy3>;
185 phy-mode = "gmii";
186 };
187 };
188 };
189
190 pcie-controller {
191 status = "okay";
192 /*
193 * The two PCIe units are accessible through
194 * standard PCIe slots on the board.
195 */
196 pcie@1,0 {
197 /* Port 0, Lane 0 */
198 status = "okay";
199 };
200 pcie@2,0 {
201 /* Port 1, Lane 0 */
202 status = "okay";
203 };
204 };
205 }; 72 };
206}; 73};
74&pciec {
75 status = "okay";
76};
77
78/*
79 * The two PCIe units are accessible through
80 * standard PCIe slots on the board.
81 */
82&pcie0 {
83 /* Port 0, Lane 0 */
84 status = "okay";
85};
86
87&pcie1 {
88 /* Port 1, Lane 0 */
89 status = "okay";
90};
91
92
93&spi0 {
94 pinctrl-0 = <&spi0_pins>;
95 pinctrl-names = "default";
96
97 /*
98 * SPI conflicts with NAND, so we disable it here, and
99 * select NAND as the enabled device by default.
100 */
101
102 status = "disabled";
103
104 spi-flash@0 {
105 #address-cells = <1>;
106 #size-cells = <1>;
107 compatible = "n25q128a13", "jedec,spi-nor";
108 reg = <0>; /* Chip select 0 */
109 spi-max-frequency = <108000000>;
110 };
111};
112
113&i2c0 {
114 status = "okay";
115 clock-frequency = <100000>;
116 pinctrl-0 = <&i2c0_pins>;
117 pinctrl-names = "default";
118};
119
120&i2c1 {
121 status = "okay";
122 clock-frequency = <100000>;
123 pinctrl-0 = <&i2c1_pins>;
124 pinctrl-names = "default";
125};
126
127&uart0 {
128 status = "okay";
129};
130
131&pinctrl {
132 sdio_st_pins: sdio-st-pins {
133 marvell,pins = "mpp44", "mpp45";
134 marvell,function = "gpio";
135 };
136};
137
138&sata {
139 status = "okay";
140 nr-ports = <2>;
141};
142
143&nand {
144 pinctrl-0 = <&nand_pins>;
145 pinctrl-names = "default";
146 status = "okay";
147 num-cs = <1>;
148 marvell,nand-keep-config;
149 marvell,nand-enable-arbiter;
150 nand-on-flash-bbt;
151 nand-ecc-strength = <4>;
152 nand-ecc-step-size = <512>;
153
154 partition@0 {
155 label = "U-Boot";
156 reg = <0 0x800000>;
157 };
158 partition@800000 {
159 label = "Linux";
160 reg = <0x800000 0x800000>;
161 };
162 partition@1000000 {
163 label = "Filesystem";
164 reg = <0x1000000 0x3f000000>;
165 };
166};
167
168&usb1 {
169 status = "okay";
170};
171
172&usb2 {
173 status = "okay";
174};
175
176&sdio {
177 pinctrl-0 = <&sdio_pins &sdio_st_pins>;
178 pinctrl-names = "default";
179 status = "okay";
180 cd-gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
181 wp-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
182};
183
184&mdio {
185 phy0: ethernet-phy@0 {
186 reg = <0>;
187 };
188
189 phy3: ethernet-phy@3 {
190 reg = <3>;
191 };
192};
193
194&ethernet {
195 status = "okay";
196};
197
198
199&eth0 {
200 status = "okay";
201 phy = <&phy0>;
202 phy-mode = "rgmii-id";
203};
204
205&eth1 {
206 status = "okay";
207 phy = <&phy3>;
208 phy-mode = "gmii";
209};
diff --git a/arch/arm/boot/dts/armada-375.dtsi b/arch/arm/boot/dts/armada-375.dtsi
index cc952cf8ec30..f515591e8733 100644
--- a/arch/arm/boot/dts/armada-375.dtsi
+++ b/arch/arm/boot/dts/armada-375.dtsi
@@ -45,7 +45,6 @@
45 * OTHER DEALINGS IN THE SOFTWARE. 45 * OTHER DEALINGS IN THE SOFTWARE.
46 */ 46 */
47 47
48#include "skeleton.dtsi"
49#include <dt-bindings/interrupt-controller/arm-gic.h> 48#include <dt-bindings/interrupt-controller/arm-gic.h>
50#include <dt-bindings/interrupt-controller/irq.h> 49#include <dt-bindings/interrupt-controller/irq.h>
51#include <dt-bindings/phy/phy.h> 50#include <dt-bindings/phy/phy.h>
@@ -53,6 +52,9 @@
53#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) 52#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
54 53
55/ { 54/ {
55 #address-cells = <1>;
56 #size-cells = <1>;
57
56 model = "Marvell Armada 375 family SoC"; 58 model = "Marvell Armada 375 family SoC";
57 compatible = "marvell,armada375"; 59 compatible = "marvell,armada375";
58 60
@@ -65,7 +67,7 @@
65 }; 67 };
66 68
67 clocks { 69 clocks {
68 /* 2 GHz fixed main PLL */ 70 /* 1 GHz fixed main PLL */
69 mainpll: mainpll { 71 mainpll: mainpll {
70 compatible = "fixed-clock"; 72 compatible = "fixed-clock";
71 #clock-cells = <0>; 73 #clock-cells = <0>;
@@ -84,12 +86,12 @@
84 #size-cells = <0>; 86 #size-cells = <0>;
85 enable-method = "marvell,armada-375-smp"; 87 enable-method = "marvell,armada-375-smp";
86 88
87 cpu@0 { 89 cpu0: cpu@0 {
88 device_type = "cpu"; 90 device_type = "cpu";
89 compatible = "arm,cortex-a9"; 91 compatible = "arm,cortex-a9";
90 reg = <0>; 92 reg = <0>;
91 }; 93 };
92 cpu@1 { 94 cpu1: cpu@1 {
93 device_type = "cpu"; 95 device_type = "cpu";
94 compatible = "arm,cortex-a9"; 96 compatible = "arm,cortex-a9";
95 reg = <1>; 97 reg = <1>;
@@ -115,7 +117,7 @@
115 reg = <MBUS_ID(0x01, 0x1d) 0 0x100000>; 117 reg = <MBUS_ID(0x01, 0x1d) 0 0x100000>;
116 }; 118 };
117 119
118 devbus-bootcs { 120 devbus_bootcs: devbus-bootcs {
119 compatible = "marvell,mvebu-devbus"; 121 compatible = "marvell,mvebu-devbus";
120 reg = <MBUS_ID(0xf0, 0x01) 0x10400 0x8>; 122 reg = <MBUS_ID(0xf0, 0x01) 0x10400 0x8>;
121 ranges = <0 MBUS_ID(0x01, 0x2f) 0 0xffffffff>; 123 ranges = <0 MBUS_ID(0x01, 0x2f) 0 0xffffffff>;
@@ -125,7 +127,7 @@
125 status = "disabled"; 127 status = "disabled";
126 }; 128 };
127 129
128 devbus-cs0 { 130 devbus_cs0: devbus-cs0 {
129 compatible = "marvell,mvebu-devbus"; 131 compatible = "marvell,mvebu-devbus";
130 reg = <MBUS_ID(0xf0, 0x01) 0x10408 0x8>; 132 reg = <MBUS_ID(0xf0, 0x01) 0x10408 0x8>;
131 ranges = <0 MBUS_ID(0x01, 0x3e) 0 0xffffffff>; 133 ranges = <0 MBUS_ID(0x01, 0x3e) 0 0xffffffff>;
@@ -135,7 +137,7 @@
135 status = "disabled"; 137 status = "disabled";
136 }; 138 };
137 139
138 devbus-cs1 { 140 devbus_cs1: devbus-cs1 {
139 compatible = "marvell,mvebu-devbus"; 141 compatible = "marvell,mvebu-devbus";
140 reg = <MBUS_ID(0xf0, 0x01) 0x10410 0x8>; 142 reg = <MBUS_ID(0xf0, 0x01) 0x10410 0x8>;
141 ranges = <0 MBUS_ID(0x01, 0x3d) 0 0xffffffff>; 143 ranges = <0 MBUS_ID(0x01, 0x3d) 0 0xffffffff>;
@@ -145,7 +147,7 @@
145 status = "disabled"; 147 status = "disabled";
146 }; 148 };
147 149
148 devbus-cs2 { 150 devbus_cs2: devbus-cs2 {
149 compatible = "marvell,mvebu-devbus"; 151 compatible = "marvell,mvebu-devbus";
150 reg = <MBUS_ID(0xf0, 0x01) 0x10418 0x8>; 152 reg = <MBUS_ID(0xf0, 0x01) 0x10418 0x8>;
151 ranges = <0 MBUS_ID(0x01, 0x3b) 0 0xffffffff>; 153 ranges = <0 MBUS_ID(0x01, 0x3b) 0 0xffffffff>;
@@ -155,7 +157,7 @@
155 status = "disabled"; 157 status = "disabled";
156 }; 158 };
157 159
158 devbus-cs3 { 160 devbus_cs3: devbus-cs3 {
159 compatible = "marvell,mvebu-devbus"; 161 compatible = "marvell,mvebu-devbus";
160 reg = <MBUS_ID(0xf0, 0x01) 0x10420 0x8>; 162 reg = <MBUS_ID(0xf0, 0x01) 0x10420 0x8>;
161 ranges = <0 MBUS_ID(0x01, 0x37) 0 0xffffffff>; 163 ranges = <0 MBUS_ID(0x01, 0x37) 0 0xffffffff>;
@@ -182,12 +184,12 @@
182 prefetch-data = <1>; 184 prefetch-data = <1>;
183 }; 185 };
184 186
185 scu@c000 { 187 scu: scu@c000 {
186 compatible = "arm,cortex-a9-scu"; 188 compatible = "arm,cortex-a9-scu";
187 reg = <0xc000 0x58>; 189 reg = <0xc000 0x58>;
188 }; 190 };
189 191
190 timer@c600 { 192 timer0: timer@c600 {
191 compatible = "arm,cortex-a9-twd-timer"; 193 compatible = "arm,cortex-a9-twd-timer";
192 reg = <0xc600 0x20>; 194 reg = <0xc600 0x20>;
193 interrupts = <GIC_PPI 13 (IRQ_TYPE_EDGE_RISING | GIC_CPU_MASK_SIMPLE(2))>; 195 interrupts = <GIC_PPI 13 (IRQ_TYPE_EDGE_RISING | GIC_CPU_MASK_SIMPLE(2))>;
@@ -203,7 +205,7 @@
203 <0xc100 0x100>; 205 <0xc100 0x100>;
204 }; 206 };
205 207
206 mdio { 208 mdio: mdio@c0054 {
207 #address-cells = <1>; 209 #address-cells = <1>;
208 #size-cells = <0>; 210 #size-cells = <0>;
209 compatible = "marvell,orion-mdio"; 211 compatible = "marvell,orion-mdio";
@@ -212,7 +214,7 @@
212 }; 214 };
213 215
214 /* Network controller */ 216 /* Network controller */
215 ethernet@f0000 { 217 ethernet: ethernet@f0000 {
216 compatible = "marvell,armada-375-pp2"; 218 compatible = "marvell,armada-375-pp2";
217 reg = <0xf0000 0xa000>, /* Packet Processor regs */ 219 reg = <0xf0000 0xa000>, /* Packet Processor regs */
218 <0xc0000 0x3060>, /* LMS regs */ 220 <0xc0000 0x3060>, /* LMS regs */
@@ -222,20 +224,20 @@
222 clock-names = "pp_clk", "gop_clk"; 224 clock-names = "pp_clk", "gop_clk";
223 status = "disabled"; 225 status = "disabled";
224 226
225 eth0: eth0@c4000 { 227 eth0: eth0 {
226 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 228 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
227 port-id = <0>; 229 port-id = <0>;
228 status = "disabled"; 230 status = "disabled";
229 }; 231 };
230 232
231 eth1: eth1@c5000 { 233 eth1: eth1 {
232 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 234 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
233 port-id = <1>; 235 port-id = <1>;
234 status = "disabled"; 236 status = "disabled";
235 }; 237 };
236 }; 238 };
237 239
238 rtc@10300 { 240 rtc: rtc@10300 {
239 compatible = "marvell,orion-rtc"; 241 compatible = "marvell,orion-rtc";
240 reg = <0x10300 0x20>; 242 reg = <0x10300 0x20>;
241 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 243 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
@@ -307,7 +309,7 @@
307 status = "disabled"; 309 status = "disabled";
308 }; 310 };
309 311
310 pinctrl { 312 pinctrl: pinctrl@18000 {
311 compatible = "marvell,mv88f6720-pinctrl"; 313 compatible = "marvell,mv88f6720-pinctrl";
312 reg = <0x18000 0x24>; 314 reg = <0x18000 0x24>;
313 315
@@ -382,7 +384,7 @@
382 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 384 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
383 }; 385 };
384 386
385 system-controller@18200 { 387 systemc: system-controller@18200 {
386 compatible = "marvell,armada-375-system-controller"; 388 compatible = "marvell,armada-375-system-controller";
387 reg = <0x18200 0x100>; 389 reg = <0x18200 0x100>;
388 }; 390 };
@@ -415,7 +417,7 @@
415 interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>; 417 interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
416 }; 418 };
417 419
418 timer@20300 { 420 timer1: timer@20300 {
419 compatible = "marvell,armada-375-timer", "marvell,armada-370-timer"; 421 compatible = "marvell,armada-375-timer", "marvell,armada-370-timer";
420 reg = <0x20300 0x30>, <0x21040 0x30>; 422 reg = <0x20300 0x30>, <0x21040 0x30>;
421 interrupts-extended = <&gic GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 423 interrupts-extended = <&gic GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
@@ -428,24 +430,24 @@
428 clock-names = "nbclk", "fixed"; 430 clock-names = "nbclk", "fixed";
429 }; 431 };
430 432
431 watchdog@20300 { 433 watchdog: watchdog@20300 {
432 compatible = "marvell,armada-375-wdt"; 434 compatible = "marvell,armada-375-wdt";
433 reg = <0x20300 0x34>, <0x20704 0x4>, <0x18254 0x4>; 435 reg = <0x20300 0x34>, <0x20704 0x4>, <0x18254 0x4>;
434 clocks = <&coreclk 0>, <&refclk>; 436 clocks = <&coreclk 0>, <&refclk>;
435 clock-names = "nbclk", "fixed"; 437 clock-names = "nbclk", "fixed";
436 }; 438 };
437 439
438 cpurst@20800 { 440 cpurst: cpurst@20800 {
439 compatible = "marvell,armada-370-cpu-reset"; 441 compatible = "marvell,armada-370-cpu-reset";
440 reg = <0x20800 0x10>; 442 reg = <0x20800 0x10>;
441 }; 443 };
442 444
443 coherency-fabric@21010 { 445 coherencyfab: coherency-fabric@21010 {
444 compatible = "marvell,armada-375-coherency-fabric"; 446 compatible = "marvell,armada-375-coherency-fabric";
445 reg = <0x21010 0x1c>; 447 reg = <0x21010 0x1c>;
446 }; 448 };
447 449
448 usb@50000 { 450 usb0: usb@50000 {
449 compatible = "marvell,orion-ehci"; 451 compatible = "marvell,orion-ehci";
450 reg = <0x50000 0x500>; 452 reg = <0x50000 0x500>;
451 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 453 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
@@ -455,7 +457,7 @@
455 status = "disabled"; 457 status = "disabled";
456 }; 458 };
457 459
458 usb@54000 { 460 usb1: usb@54000 {
459 compatible = "marvell,orion-ehci"; 461 compatible = "marvell,orion-ehci";
460 reg = <0x54000 0x500>; 462 reg = <0x54000 0x500>;
461 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 463 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
@@ -463,7 +465,7 @@
463 status = "disabled"; 465 status = "disabled";
464 }; 466 };
465 467
466 usb3@58000 { 468 usb2: usb3@58000 {
467 compatible = "marvell,armada-375-xhci"; 469 compatible = "marvell,armada-375-xhci";
468 reg = <0x58000 0x20000>,<0x5b880 0x80>; 470 reg = <0x58000 0x20000>,<0x5b880 0x80>;
469 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 471 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
@@ -473,7 +475,7 @@
473 status = "disabled"; 475 status = "disabled";
474 }; 476 };
475 477
476 xor@60800 { 478 xor0: xor@60800 {
477 compatible = "marvell,orion-xor"; 479 compatible = "marvell,orion-xor";
478 reg = <0x60800 0x100 480 reg = <0x60800 0x100
479 0x60A00 0x100>; 481 0x60A00 0x100>;
@@ -493,7 +495,7 @@
493 }; 495 };
494 }; 496 };
495 497
496 xor@60900 { 498 xor1: xor@60900 {
497 compatible = "marvell,orion-xor"; 499 compatible = "marvell,orion-xor";
498 reg = <0x60900 0x100 500 reg = <0x60900 0x100
499 0x60b00 0x100>; 501 0x60b00 0x100>;
@@ -513,7 +515,7 @@
513 }; 515 };
514 }; 516 };
515 517
516 crypto@90000 { 518 cesa: crypto@90000 {
517 compatible = "marvell,armada-375-crypto"; 519 compatible = "marvell,armada-375-crypto";
518 reg = <0x90000 0x10000>; 520 reg = <0x90000 0x10000>;
519 reg-names = "regs"; 521 reg-names = "regs";
@@ -528,7 +530,7 @@
528 marvell,crypto-sram-size = <0x800>; 530 marvell,crypto-sram-size = <0x800>;
529 }; 531 };
530 532
531 sata@a0000 { 533 sata: sata@a0000 {
532 compatible = "marvell,armada-370-sata"; 534 compatible = "marvell,armada-370-sata";
533 reg = <0xa0000 0x5000>; 535 reg = <0xa0000 0x5000>;
534 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 536 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
@@ -537,7 +539,7 @@
537 status = "disabled"; 539 status = "disabled";
538 }; 540 };
539 541
540 nand@d0000 { 542 nand: nand@d0000 {
541 compatible = "marvell,armada370-nand"; 543 compatible = "marvell,armada370-nand";
542 reg = <0xd0000 0x54>; 544 reg = <0xd0000 0x54>;
543 #address-cells = <1>; 545 #address-cells = <1>;
@@ -547,7 +549,7 @@
547 status = "disabled"; 549 status = "disabled";
548 }; 550 };
549 551
550 mvsdio@d4000 { 552 sdio: mvsdio@d4000 {
551 compatible = "marvell,orion-sdio"; 553 compatible = "marvell,orion-sdio";
552 reg = <0xd4000 0x200>; 554 reg = <0xd4000 0x200>;
553 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 555 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
@@ -559,7 +561,7 @@
559 status = "disabled"; 561 status = "disabled";
560 }; 562 };
561 563
562 thermal@e8078 { 564 thermal: thermal@e8078 {
563 compatible = "marvell,armada375-thermal"; 565 compatible = "marvell,armada375-thermal";
564 reg = <0xe8078 0x4>, <0xe807c 0x8>; 566 reg = <0xe8078 0x4>, <0xe807c 0x8>;
565 status = "okay"; 567 status = "okay";
@@ -580,7 +582,7 @@
580 }; 582 };
581 }; 583 };
582 584
583 pcie-controller { 585 pciec: pcie-controller@82000000 {
584 compatible = "marvell,armada-370-pcie"; 586 compatible = "marvell,armada-370-pcie";
585 status = "disabled"; 587 status = "disabled";
586 device_type = "pci"; 588 device_type = "pci";
@@ -599,7 +601,7 @@
599 0x82000000 0x2 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 1 MEM */ 601 0x82000000 0x2 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 1 MEM */
600 0x81000000 0x2 0 MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 1 IO */>; 602 0x81000000 0x2 0 MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 1 IO */>;
601 603
602 pcie@1,0 { 604 pcie0: pcie@1,0 {
603 device_type = "pci"; 605 device_type = "pci";
604 assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; 606 assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
605 reg = <0x0800 0 0 0 0>; 607 reg = <0x0800 0 0 0 0>;
@@ -616,7 +618,7 @@
616 status = "disabled"; 618 status = "disabled";
617 }; 619 };
618 620
619 pcie@2,0 { 621 pcie1: pcie@2,0 {
620 device_type = "pci"; 622 device_type = "pci";
621 assigned-addresses = <0x82000800 0 0x44000 0 0x2000>; 623 assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
622 reg = <0x1000 0 0 0 0>; 624 reg = <0x1000 0 0 0 0>;
diff --git a/arch/arm/boot/dts/armada-385-turris-omnia.dts b/arch/arm/boot/dts/armada-385-turris-omnia.dts
new file mode 100644
index 000000000000..ab49acb2d452
--- /dev/null
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts
@@ -0,0 +1,340 @@
1/*
2 * Device Tree file for the Turris Omnia
3 *
4 * Copyright (C) 2016 Uwe Kleine-König <uwe@kleine-koenig.org>
5 * Copyright (C) 2016 Tomas Hlavacek <tmshlvkc@gmail.com>
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 * a) This file is licensed under the terms of the GNU General Public
13 * License version 2. This program is licensed "as is" without
14 * any warranty of any kind, whether express or implied.
15 *
16 * Or, alternatively,
17 *
18 * b) Permission is hereby granted, free of charge, to any person
19 * obtaining a copy of this software and associated documentation
20 * files (the "Software"), to deal in the Software without
21 * restriction, including without limitation the rights to use,
22 * copy, modify, merge, publish, distribute, sublicense, and/or
23 * sell copies of the Software, and to permit persons to whom the
24 * Software is furnished to do so, subject to the following
25 * conditions:
26 *
27 * The above copyright notice and this permission notice shall be
28 * included in all copies or substantial portions of the Software.
29 *
30 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
31 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
32 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
33 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
34 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
35 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
36 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
37 * OTHER DEALINGS IN THE SOFTWARE.
38 */
39
40/*
41 * Schematic available at https://www.turris.cz/doc/_media/rtrom01-schema.pdf
42 */
43
44/dts-v1/;
45
46#include <dt-bindings/gpio/gpio.h>
47#include <dt-bindings/input/input.h>
48#include "armada-385.dtsi"
49
50/ {
51 model = "Turris Omnia";
52 compatible = "cznic,turris-omnia", "marvell,armada385", "marvell,armada380";
53
54 chosen {
55 stdout-path = &uart0;
56 };
57
58 memory {
59 device_type = "memory";
60 reg = <0x00000000 0x40000000>; /* 1024 MB */
61 };
62
63 soc {
64 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
65 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
66 MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
67 MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>;
68
69 internal-regs {
70
71 /* USB part of the PCIe2/USB 2.0 port */
72 usb@58000 {
73 status = "okay";
74 };
75
76 sata@a8000 {
77 status = "okay";
78 };
79
80 sdhci@d8000 {
81 pinctrl-names = "default";
82 pinctrl-0 = <&sdhci_pins>;
83 status = "okay";
84
85 bus-width = <8>;
86 no-1-8-v;
87 non-removable;
88 };
89
90 usb3@f0000 {
91 status = "okay";
92 };
93
94 usb3@f8000 {
95 status = "okay";
96 };
97 };
98
99 pcie-controller {
100 status = "okay";
101
102 pcie@1,0 {
103 /* Port 0, Lane 0 */
104 status = "okay";
105 };
106
107 pcie@2,0 {
108 /* Port 1, Lane 0 */
109 status = "okay";
110 };
111
112 pcie@3,0 {
113 /* Port 2, Lane 0 */
114 status = "okay";
115 };
116 };
117 };
118};
119
120/* Connected to 88E6176 switch, port 6 */
121&eth0 {
122 pinctrl-names = "default";
123 pinctrl-0 = <&ge0_rgmii_pins>;
124 status = "okay";
125 phy-mode = "rgmii-id";
126
127 fixed-link {
128 speed = <1000>;
129 full-duplex;
130 };
131};
132
133/* Connected to 88E6176 switch, port 5 */
134&eth1 {
135 pinctrl-names = "default";
136 pinctrl-0 = <&ge1_rgmii_pins>;
137 status = "okay";
138 phy-mode = "rgmii-id";
139
140 fixed-link {
141 speed = <1000>;
142 full-duplex;
143 };
144};
145
146/* WAN port */
147&eth2 {
148 status = "okay";
149 phy-mode = "sgmii";
150 phy = <&phy1>;
151};
152
153&i2c0 {
154 pinctrl-names = "default";
155 pinctrl-0 = <&i2c0_pins>;
156 status = "okay";
157
158 i2cmux@70 {
159 compatible = "nxp,pca9547";
160 #address-cells = <1>;
161 #size-cells = <0>;
162 reg = <0x70>;
163 status = "okay";
164
165 i2c@0 {
166 #address-cells = <1>;
167 #size-cells = <0>;
168 reg = <0>;
169
170 /* STM32F0 command interface at address 0x2a */
171 /* leds device (in STM32F0) at address 0x2b */
172
173 eeprom@54 {
174 compatible = "at,24c64";
175 reg = <0x54>;
176
177 /* The EEPROM contains data for bootloader.
178 * Contents:
179 * struct omnia_eeprom {
180 * u32 magic; (=0x0341a034 in LE)
181 * u32 ramsize; (in GiB)
182 * char regdomain[4];
183 * u32 crc32;
184 * };
185 */
186 };
187 };
188
189 i2c@1 {
190 #address-cells = <1>;
191 #size-cells = <0>;
192 reg = <1>;
193
194 /* routed to PCIe0/mSATA connector (CN7A) */
195 };
196
197 i2c@2 {
198 #address-cells = <1>;
199 #size-cells = <0>;
200 reg = <2>;
201
202 /* routed to PCIe1/USB2 connector (CN61A) */
203 };
204
205 i2c@3 {
206 #address-cells = <1>;
207 #size-cells = <0>;
208 reg = <3>;
209
210 /* routed to PCIe2 connector (CN62A) */
211 };
212
213 i2c@4 {
214 #address-cells = <1>;
215 #size-cells = <0>;
216 reg = <4>;
217
218 /* routed to SFP+ */
219 };
220
221 i2c@5 {
222 #address-cells = <1>;
223 #size-cells = <0>;
224 reg = <5>;
225
226 /* ATSHA204A at address 0x64 */
227 };
228
229 i2c@6 {
230 #address-cells = <1>;
231 #size-cells = <0>;
232 reg = <6>;
233
234 /* exposed on pin header */
235 };
236
237 i2c@7 {
238 #address-cells = <1>;
239 #size-cells = <0>;
240 reg = <7>;
241
242 pcawan: gpio@71 {
243 /*
244 * GPIO expander for SFP+ signals and
245 * and phy irq
246 */
247 compatible = "nxp,pca9538";
248 reg = <0x71>;
249
250 pinctrl-names = "default";
251 pinctrl-0 = <&pcawan_pins>;
252
253 interrupt-parent = <&gpio1>;
254 interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
255
256 gpio-controller;
257 #gpio-cells = <2>;
258 };
259 };
260 };
261};
262
263&mdio {
264 pinctrl-names = "default";
265 pinctrl-0 = <&mdio_pins>;
266 status = "okay";
267
268 phy1: phy@1 {
269 status = "okay";
270 compatible = "ethernet-phy-id0141.0DD1", "ethernet-phy-ieee802.3-c22";
271 reg = <1>;
272
273 /* irq is connected to &pcawan pin 7 */
274 };
275
276 /* Switch MV88E7176 at address 0x10 */
277};
278
279&pinctrl {
280 pcawan_pins: pcawan-pins {
281 marvell,pins = "mpp46";
282 marvell,function = "gpio";
283 };
284
285 spi0cs0_pins: spi0cs0-pins {
286 marvell,pins = "mpp25";
287 marvell,function = "spi0";
288 };
289
290 spi0cs1_pins: spi0cs1-pins {
291 marvell,pins = "mpp26";
292 marvell,function = "spi0";
293 };
294};
295
296&spi0 {
297 pinctrl-names = "default";
298 pinctrl-0 = <&spi0_pins &spi0cs0_pins>;
299 status = "okay";
300
301 spi-nor@0 {
302 compatible = "spansion,s25fl164k", "jedec,spi-nor";
303 #address-cells = <1>;
304 #size-cells = <1>;
305 reg = <0>;
306 spi-max-frequency = <40000000>;
307
308 partitions {
309 compatible = "fixed-partitions";
310 #address-cells = <1>;
311 #size-cells = <1>;
312
313 partition@0 {
314 reg = <0x0 0x00100000>;
315 label = "U-Boot";
316 };
317
318 partition@100000 {
319 reg = <0x00100000 0x00700000>;
320 label = "Rescue system";
321 };
322 };
323 };
324
325 /* MISO, MOSI, SCLK and CS1 are routed to pin header CN11 */
326};
327
328&uart0 {
329 /* Pin header CN10 */
330 pinctrl-names = "default";
331 pinctrl-0 = <&uart0_pins>;
332 status = "okay";
333};
334
335&uart1 {
336 /* Pin header CN11 */
337 pinctrl-names = "default";
338 pinctrl-0 = <&uart1_pins>;
339 status = "okay";
340};
diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
index 2d7668848c5a..7450e9fea45d 100644
--- a/arch/arm/boot/dts/armada-38x.dtsi
+++ b/arch/arm/boot/dts/armada-38x.dtsi
@@ -661,7 +661,7 @@
661 }; 661 };
662 662
663 clocks { 663 clocks {
664 /* 2 GHz fixed main PLL */ 664 /* 1 GHz fixed main PLL */
665 mainpll: mainpll { 665 mainpll: mainpll {
666 compatible = "fixed-clock"; 666 compatible = "fixed-clock";
667 #clock-cells = <0>; 667 #clock-cells = <0>;
diff --git a/arch/arm/boot/dts/armada-39x.dtsi b/arch/arm/boot/dts/armada-39x.dtsi
index 34cba87f9200..de171baffcf6 100644
--- a/arch/arm/boot/dts/armada-39x.dtsi
+++ b/arch/arm/boot/dts/armada-39x.dtsi
@@ -573,7 +573,7 @@
573 }; 573 };
574 574
575 clocks { 575 clocks {
576 /* 2 GHz fixed main PLL */ 576 /* 1 GHz fixed main PLL */
577 mainpll: mainpll { 577 mainpll: mainpll {
578 compatible = "fixed-clock"; 578 compatible = "fixed-clock";
579 #clock-cells = <0>; 579 #clock-cells = <0>;
diff --git a/arch/arm/boot/dts/armada-xp-axpwifiap.dts b/arch/arm/boot/dts/armada-xp-axpwifiap.dts
index ce152719bc28..1e1fc4fccbad 100644
--- a/arch/arm/boot/dts/armada-xp-axpwifiap.dts
+++ b/arch/arm/boot/dts/armada-xp-axpwifiap.dts
@@ -62,7 +62,7 @@
62 stdout-path = "serial0:115200n8"; 62 stdout-path = "serial0:115200n8";
63 }; 63 };
64 64
65 memory { 65 memory@0 {
66 device_type = "memory"; 66 device_type = "memory";
67 reg = <0x00000000 0x00000000 0x00000000 0x40000000>; /* 1GB */ 67 reg = <0x00000000 0x00000000 0x00000000 0x40000000>; /* 1GB */
68 }; 68 };
@@ -73,28 +73,6 @@
73 MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000 73 MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
74 MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>; 74 MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>;
75 75
76 pcie-controller {
77 status = "okay";
78
79 /* First mini-PCIe port */
80 pcie@1,0 {
81 /* Port 0, Lane 0 */
82 status = "okay";
83 };
84
85 /* Second mini-PCIe port */
86 pcie@2,0 {
87 /* Port 0, Lane 1 */
88 status = "okay";
89 };
90
91 /* Renesas uPD720202 USB 3.0 controller */
92 pcie@3,0 {
93 /* Port 0, Lane 3 */
94 status = "okay";
95 };
96 };
97
98 internal-regs { 76 internal-regs {
99 /* UART0 */ 77 /* UART0 */
100 serial@12000 { 78 serial@12000 {
@@ -111,16 +89,6 @@
111 status = "okay"; 89 status = "okay";
112 }; 90 };
113 91
114 mdio {
115 phy0: ethernet-phy@0 {
116 reg = <0>;
117 };
118
119 phy1: ethernet-phy@1 {
120 reg = <1>;
121 };
122 };
123
124 ethernet@70000 { 92 ethernet@70000 {
125 pinctrl-0 = <&ge0_rgmii_pins>; 93 pinctrl-0 = <&ge0_rgmii_pins>;
126 pinctrl-names = "default"; 94 pinctrl-names = "default";
@@ -145,7 +113,7 @@
145 pinctrl-0 = <&keys_pin>; 113 pinctrl-0 = <&keys_pin>;
146 pinctrl-names = "default"; 114 pinctrl-names = "default";
147 115
148 button@1 { 116 reset {
149 label = "Factory Reset Button"; 117 label = "Factory Reset Button";
150 linux,code = <KEY_SETUP>; 118 linux,code = <KEY_SETUP>;
151 gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; 119 gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
@@ -153,6 +121,38 @@
153 }; 121 };
154}; 122};
155 123
124&mdio {
125 phy0: ethernet-phy@0 {
126 reg = <0>;
127 };
128
129 phy1: ethernet-phy@1 {
130 reg = <1>;
131 };
132};
133
134&pciec {
135 status = "okay";
136
137 /* First mini-PCIe port */
138 pcie@1,0 {
139 /* Port 0, Lane 0 */
140 status = "okay";
141 };
142
143 /* Second mini-PCIe port */
144 pcie@2,0 {
145 /* Port 0, Lane 1 */
146 status = "okay";
147 };
148
149 /* Renesas uPD720202 USB 3.0 controller */
150 pcie@3,0 {
151 /* Port 0, Lane 3 */
152 status = "okay";
153 };
154};
155
156&pinctrl { 156&pinctrl {
157 pinctrl-0 = <&phy_int_pin>; 157 pinctrl-0 = <&phy_int_pin>;
158 pinctrl-names = "default"; 158 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/armada-xp-db.dts b/arch/arm/boot/dts/armada-xp-db.dts
index 075120bc3ec4..44a724d39dbe 100644
--- a/arch/arm/boot/dts/armada-xp-db.dts
+++ b/arch/arm/boot/dts/armada-xp-db.dts
@@ -67,7 +67,7 @@
67 stdout-path = "serial0:115200n8"; 67 stdout-path = "serial0:115200n8";
68 }; 68 };
69 69
70 memory { 70 memory@0 {
71 device_type = "memory"; 71 device_type = "memory";
72 reg = <0 0x00000000 0 0x80000000>; /* 2 GB */ 72 reg = <0 0x00000000 0 0x80000000>; /* 2 GB */
73 }; 73 };
@@ -108,39 +108,6 @@
108 }; 108 };
109 }; 109 };
110 110
111 pcie-controller {
112 status = "okay";
113
114 /*
115 * All 6 slots are physically present as
116 * standard PCIe slots on the board.
117 */
118 pcie@1,0 {
119 /* Port 0, Lane 0 */
120 status = "okay";
121 };
122 pcie@2,0 {
123 /* Port 0, Lane 1 */
124 status = "okay";
125 };
126 pcie@3,0 {
127 /* Port 0, Lane 2 */
128 status = "okay";
129 };
130 pcie@4,0 {
131 /* Port 0, Lane 3 */
132 status = "okay";
133 };
134 pcie@9,0 {
135 /* Port 2, Lane 0 */
136 status = "okay";
137 };
138 pcie@10,0 {
139 /* Port 3, Lane 0 */
140 status = "okay";
141 };
142 };
143
144 internal-regs { 111 internal-regs {
145 serial@12000 { 112 serial@12000 {
146 status = "okay"; 113 status = "okay";
@@ -160,24 +127,6 @@
160 status = "okay"; 127 status = "okay";
161 }; 128 };
162 129
163 mdio {
164 phy0: ethernet-phy@0 {
165 reg = <0>;
166 };
167
168 phy1: ethernet-phy@1 {
169 reg = <1>;
170 };
171
172 phy2: ethernet-phy@2 {
173 reg = <25>;
174 };
175
176 phy3: ethernet-phy@3 {
177 reg = <27>;
178 };
179 };
180
181 ethernet@70000 { 130 ethernet@70000 {
182 status = "okay"; 131 status = "okay";
183 phy = <&phy0>; 132 phy = <&phy0>;
@@ -266,6 +215,57 @@
266 }; 215 };
267}; 216};
268 217
218&pciec {
219 status = "okay";
220
221 /*
222 * All 6 slots are physically present as
223 * standard PCIe slots on the board.
224 */
225 pcie@1,0 {
226 /* Port 0, Lane 0 */
227 status = "okay";
228 };
229 pcie@2,0 {
230 /* Port 0, Lane 1 */
231 status = "okay";
232 };
233 pcie@3,0 {
234 /* Port 0, Lane 2 */
235 status = "okay";
236 };
237 pcie@4,0 {
238 /* Port 0, Lane 3 */
239 status = "okay";
240 };
241 pcie@9,0 {
242 /* Port 2, Lane 0 */
243 status = "okay";
244 };
245 pcie@10,0 {
246 /* Port 3, Lane 0 */
247 status = "okay";
248 };
249};
250
251&mdio {
252 phy0: ethernet-phy@0 {
253 reg = <0>;
254 };
255
256 phy1: ethernet-phy@1 {
257 reg = <1>;
258 };
259
260 phy2: ethernet-phy@2 {
261 reg = <25>;
262 };
263
264 phy3: ethernet-phy@3 {
265 reg = <27>;
266 };
267};
268
269&spi0 { 269&spi0 {
270 status = "okay"; 270 status = "okay";
271 271
diff --git a/arch/arm/boot/dts/armada-xp-gp.dts b/arch/arm/boot/dts/armada-xp-gp.dts
index 190e4eccb180..72cb8fa377e3 100644
--- a/arch/arm/boot/dts/armada-xp-gp.dts
+++ b/arch/arm/boot/dts/armada-xp-gp.dts
@@ -68,7 +68,7 @@
68 stdout-path = "serial0:115200n8"; 68 stdout-path = "serial0:115200n8";
69 }; 69 };
70 70
71 memory { 71 memory@0 {
72 device_type = "memory"; 72 device_type = "memory";
73 /* 73 /*
74 * 8 GB of plug-in RAM modules by default.The amount 74 * 8 GB of plug-in RAM modules by default.The amount
@@ -127,27 +127,6 @@
127 }; 127 };
128 }; 128 };
129 129
130 pcie-controller {
131 status = "okay";
132
133 /*
134 * The 3 slots are physically present as
135 * standard PCIe slots on the board.
136 */
137 pcie@1,0 {
138 /* Port 0, Lane 0 */
139 status = "okay";
140 };
141 pcie@9,0 {
142 /* Port 2, Lane 0 */
143 status = "okay";
144 };
145 pcie@10,0 {
146 /* Port 3, Lane 0 */
147 status = "okay";
148 };
149 };
150
151 internal-regs { 130 internal-regs {
152 serial@12000 { 131 serial@12000 {
153 status = "okay"; 132 status = "okay";
@@ -175,24 +154,6 @@
175 status = "okay"; 154 status = "okay";
176 }; 155 };
177 156
178 mdio {
179 phy0: ethernet-phy@0 {
180 reg = <16>;
181 };
182
183 phy1: ethernet-phy@1 {
184 reg = <17>;
185 };
186
187 phy2: ethernet-phy@2 {
188 reg = <18>;
189 };
190
191 phy3: ethernet-phy@3 {
192 reg = <19>;
193 };
194 };
195
196 ethernet@70000 { 157 ethernet@70000 {
197 status = "okay"; 158 status = "okay";
198 phy = <&phy0>; 159 phy = <&phy0>;
@@ -251,6 +212,45 @@
251 }; 212 };
252}; 213};
253 214
215&pciec {
216 status = "okay";
217
218 /*
219 * The 3 slots are physically present as
220 * standard PCIe slots on the board.
221 */
222 pcie@1,0 {
223 /* Port 0, Lane 0 */
224 status = "okay";
225 };
226 pcie@9,0 {
227 /* Port 2, Lane 0 */
228 status = "okay";
229 };
230 pcie@10,0 {
231 /* Port 3, Lane 0 */
232 status = "okay";
233 };
234};
235
236&mdio {
237 phy0: ethernet-phy@0 {
238 reg = <16>;
239 };
240
241 phy1: ethernet-phy@1 {
242 reg = <17>;
243 };
244
245 phy2: ethernet-phy@2 {
246 reg = <18>;
247 };
248
249 phy3: ethernet-phy@3 {
250 reg = <19>;
251 };
252};
253
254&spi0 { 254&spi0 {
255 status = "okay"; 255 status = "okay";
256 256
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 8af463f26ea1..d848ae9007db 100644
--- a/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts
+++ b/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts
@@ -57,7 +57,7 @@
57 stdout-path = "serial0:115200n8"; 57 stdout-path = "serial0:115200n8";
58 }; 58 };
59 59
60 memory { 60 memory@0 {
61 device_type = "memory"; 61 device_type = "memory";
62 reg = <0 0x00000000 0 0x20000000>; /* 512MB */ 62 reg = <0 0x00000000 0 0x20000000>; /* 512MB */
63 }; 63 };
@@ -68,37 +68,11 @@
68 MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000 68 MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
69 MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>; 69 MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>;
70 70
71 pcie-controller {
72 status = "okay";
73
74 /* Quad port sata: Marvell 88SX7042 */
75 pcie@1,0 {
76 /* Port 0, Lane 0 */
77 status = "okay";
78 };
79
80 /* USB 3.0 xHCI controller: NEC D720200F1 */
81 pcie@5,0 {
82 /* Port 1, Lane 0 */
83 status = "okay";
84 };
85 };
86
87 internal-regs { 71 internal-regs {
88 serial@12000 { 72 serial@12000 {
89 status = "okay"; 73 status = "okay";
90 }; 74 };
91 75
92 mdio {
93 phy0: ethernet-phy@0 { /* Marvell 88E1318 */
94 reg = <0>;
95 };
96
97 phy1: ethernet-phy@1 { /* Marvell 88E1318 */
98 reg = <1>;
99 };
100 };
101
102 ethernet@70000 { 76 ethernet@70000 {
103 pinctrl-0 = <&ge0_rgmii_pins>; 77 pinctrl-0 = <&ge0_rgmii_pins>;
104 pinctrl-names = "default"; 78 pinctrl-names = "default";
@@ -295,6 +269,31 @@
295 gpios = <&gpio0 24 GPIO_ACTIVE_HIGH>; 269 gpios = <&gpio0 24 GPIO_ACTIVE_HIGH>;
296 }; 270 };
297}; 271};
272&pciec {
273 status = "okay";
274
275 /* Quad port sata: Marvell 88SX7042 */
276 pcie@1,0 {
277 /* Port 0, Lane 0 */
278 status = "okay";
279 };
280
281 /* USB 3.0 xHCI controller: NEC D720200F1 */
282 pcie@5,0 {
283 /* Port 1, Lane 0 */
284 status = "okay";
285 };
286};
287
288&mdio {
289 phy0: ethernet-phy@0 { /* Marvell 88E1318 */
290 reg = <0>;
291 };
292
293 phy1: ethernet-phy@1 { /* Marvell 88E1318 */
294 reg = <1>;
295 };
296};
298 297
299&pinctrl { 298&pinctrl {
300 poweroff_pin: poweroff-pin { 299 poweroff_pin: poweroff-pin {
diff --git a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
index 076f27f22c3b..83ac884c0f8a 100644
--- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
@@ -62,7 +62,7 @@
62 stdout-path = &uart0; 62 stdout-path = &uart0;
63 }; 63 };
64 64
65 memory { 65 memory@0 {
66 device_type = "memory"; 66 device_type = "memory";
67 reg = <0x00000000 0x00000000 0x00000000 0x10000000>; /* 256MB */ 67 reg = <0x00000000 0x00000000 0x00000000 0x10000000>; /* 256MB */
68 }; 68 };
@@ -73,28 +73,6 @@
73 MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000 73 MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
74 MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>; 74 MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>;
75 75
76 pcie-controller {
77 status = "okay";
78
79 /* Etron EJ168 USB 3.0 controller */
80 pcie@1,0 {
81 /* Port 0, Lane 0 */
82 status = "okay";
83 };
84
85 /* First mini-PCIe port */
86 pcie@2,0 {
87 /* Port 0, Lane 1 */
88 status = "okay";
89 };
90
91 /* Second mini-PCIe port */
92 pcie@3,0 {
93 /* Port 0, Lane 3 */
94 status = "okay";
95 };
96 };
97
98 internal-regs { 76 internal-regs {
99 77
100 rtc@10300 { 78 rtc@10300 {
@@ -289,13 +267,13 @@
289 pinctrl-0 = <&keys_pin>; 267 pinctrl-0 = <&keys_pin>;
290 pinctrl-names = "default"; 268 pinctrl-names = "default";
291 269
292 button@1 { 270 wps {
293 label = "WPS"; 271 label = "WPS";
294 linux,code = <KEY_WPS_BUTTON>; 272 linux,code = <KEY_WPS_BUTTON>;
295 gpios = <&gpio1 0 GPIO_ACTIVE_LOW>; 273 gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
296 }; 274 };
297 275
298 button@2 { 276 reset {
299 label = "Factory Reset Button"; 277 label = "Factory Reset Button";
300 linux,code = <KEY_RESTART>; 278 linux,code = <KEY_RESTART>;
301 gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; 279 gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
@@ -323,7 +301,7 @@
323 4500 1>; 301 4500 1>;
324 }; 302 };
325 303
326 dsa@0 { 304 dsa {
327 compatible = "marvell,dsa"; 305 compatible = "marvell,dsa";
328 #address-cells = <2>; 306 #address-cells = <2>;
329 #size-cells = <0>; 307 #size-cells = <0>;
@@ -369,6 +347,28 @@
369 }; 347 };
370}; 348};
371 349
350&pciec {
351 status = "okay";
352
353 /* Etron EJ168 USB 3.0 controller */
354 pcie@1,0 {
355 /* Port 0, Lane 0 */
356 status = "okay";
357 };
358
359 /* First mini-PCIe port */
360 pcie@2,0 {
361 /* Port 0, Lane 1 */
362 status = "okay";
363 };
364
365 /* Second mini-PCIe port */
366 pcie@3,0 {
367 /* Port 0, Lane 3 */
368 status = "okay";
369 };
370};
371
372&pinctrl { 372&pinctrl {
373 373
374 keys_pin: keys-pin { 374 keys_pin: keys-pin {
diff --git a/arch/arm/boot/dts/armada-xp-matrix.dts b/arch/arm/boot/dts/armada-xp-matrix.dts
index 6522b04f4a8e..16277380e714 100644
--- a/arch/arm/boot/dts/armada-xp-matrix.dts
+++ b/arch/arm/boot/dts/armada-xp-matrix.dts
@@ -55,7 +55,7 @@
55 stdout-path = "serial0:115200n8"; 55 stdout-path = "serial0:115200n8";
56 }; 56 };
57 57
58 memory { 58 memory@0 {
59 device_type = "memory"; 59 device_type = "memory";
60 /* 60 /*
61 * This board has 4 GB of RAM, but the last 256 MB of 61 * This board has 4 GB of RAM, but the last 256 MB of
@@ -99,18 +99,18 @@
99 }; 99 };
100 }; 100 };
101 101
102 pcie-controller {
103 status = "okay";
104
105 pcie@1,0 {
106 /* Port 0, Lane 0 */
107 status = "okay";
108 };
109 };
110
111 usb@50000 { 102 usb@50000 {
112 status = "okay"; 103 status = "okay";
113 }; 104 };
114 }; 105 };
115 }; 106 };
116}; 107};
108
109&pciec {
110 status = "okay";
111
112 pcie@1,0 {
113 /* Port 0, Lane 0 */
114 status = "okay";
115 };
116};
diff --git a/arch/arm/boot/dts/armada-xp-mv78230.dtsi b/arch/arm/boot/dts/armada-xp-mv78230.dtsi
index 6e6d0f04bf2b..05c164b5786d 100644
--- a/arch/arm/boot/dts/armada-xp-mv78230.dtsi
+++ b/arch/arm/boot/dts/armada-xp-mv78230.dtsi
@@ -86,7 +86,7 @@
86 * configured as x4 or quad x1 lanes. One unit is 86 * configured as x4 or quad x1 lanes. One unit is
87 * x1 only. 87 * x1 only.
88 */ 88 */
89 pcie-controller { 89 pciec: pcie-controller@82000000 {
90 compatible = "marvell,armada-xp-pcie"; 90 compatible = "marvell,armada-xp-pcie";
91 status = "disabled"; 91 status = "disabled";
92 device_type = "pci"; 92 device_type = "pci";
@@ -114,7 +114,7 @@
114 0x82000000 0x5 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */ 114 0x82000000 0x5 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */
115 0x81000000 0x5 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO */>; 115 0x81000000 0x5 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO */>;
116 116
117 pcie@1,0 { 117 pcie1: pcie@1,0 {
118 device_type = "pci"; 118 device_type = "pci";
119 assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; 119 assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
120 reg = <0x0800 0 0 0 0>; 120 reg = <0x0800 0 0 0 0>;
@@ -131,7 +131,7 @@
131 status = "disabled"; 131 status = "disabled";
132 }; 132 };
133 133
134 pcie@2,0 { 134 pcie2: pcie@2,0 {
135 device_type = "pci"; 135 device_type = "pci";
136 assigned-addresses = <0x82000800 0 0x44000 0 0x2000>; 136 assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
137 reg = <0x1000 0 0 0 0>; 137 reg = <0x1000 0 0 0 0>;
@@ -148,7 +148,7 @@
148 status = "disabled"; 148 status = "disabled";
149 }; 149 };
150 150
151 pcie@3,0 { 151 pcie3: pcie@3,0 {
152 device_type = "pci"; 152 device_type = "pci";
153 assigned-addresses = <0x82000800 0 0x48000 0 0x2000>; 153 assigned-addresses = <0x82000800 0 0x48000 0 0x2000>;
154 reg = <0x1800 0 0 0 0>; 154 reg = <0x1800 0 0 0 0>;
@@ -165,7 +165,7 @@
165 status = "disabled"; 165 status = "disabled";
166 }; 166 };
167 167
168 pcie@4,0 { 168 pcie4: pcie@4,0 {
169 device_type = "pci"; 169 device_type = "pci";
170 assigned-addresses = <0x82000800 0 0x4c000 0 0x2000>; 170 assigned-addresses = <0x82000800 0 0x4c000 0 0x2000>;
171 reg = <0x2000 0 0 0 0>; 171 reg = <0x2000 0 0 0 0>;
@@ -182,7 +182,7 @@
182 status = "disabled"; 182 status = "disabled";
183 }; 183 };
184 184
185 pcie@5,0 { 185 pcie5: pcie@5,0 {
186 device_type = "pci"; 186 device_type = "pci";
187 assigned-addresses = <0x82000800 0 0x80000 0 0x2000>; 187 assigned-addresses = <0x82000800 0 0x80000 0 0x2000>;
188 reg = <0x2800 0 0 0 0>; 188 reg = <0x2800 0 0 0 0>;
diff --git a/arch/arm/boot/dts/armada-xp-mv78260.dtsi b/arch/arm/boot/dts/armada-xp-mv78260.dtsi
index c5fdc99f0dbe..07894b0d3e59 100644
--- a/arch/arm/boot/dts/armada-xp-mv78260.dtsi
+++ b/arch/arm/boot/dts/armada-xp-mv78260.dtsi
@@ -87,7 +87,7 @@
87 * configured as x4 or quad x1 lanes. One unit is 87 * configured as x4 or quad x1 lanes. One unit is
88 * x4 only. 88 * x4 only.
89 */ 89 */
90 pcie-controller { 90 pciec: pcie-controller@82000000 {
91 compatible = "marvell,armada-xp-pcie"; 91 compatible = "marvell,armada-xp-pcie";
92 status = "disabled"; 92 status = "disabled";
93 device_type = "pci"; 93 device_type = "pci";
@@ -129,7 +129,7 @@
129 0x82000000 0x9 0 MBUS_ID(0x04, 0xf8) 0 1 0 /* Port 2.0 MEM */ 129 0x82000000 0x9 0 MBUS_ID(0x04, 0xf8) 0 1 0 /* Port 2.0 MEM */
130 0x81000000 0x9 0 MBUS_ID(0x04, 0xf0) 0 1 0 /* Port 2.0 IO */>; 130 0x81000000 0x9 0 MBUS_ID(0x04, 0xf0) 0 1 0 /* Port 2.0 IO */>;
131 131
132 pcie@1,0 { 132 pcie1: pcie@1,0 {
133 device_type = "pci"; 133 device_type = "pci";
134 assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; 134 assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
135 reg = <0x0800 0 0 0 0>; 135 reg = <0x0800 0 0 0 0>;
@@ -146,7 +146,7 @@
146 status = "disabled"; 146 status = "disabled";
147 }; 147 };
148 148
149 pcie@2,0 { 149 pcie2: pcie@2,0 {
150 device_type = "pci"; 150 device_type = "pci";
151 assigned-addresses = <0x82000800 0 0x44000 0 0x2000>; 151 assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
152 reg = <0x1000 0 0 0 0>; 152 reg = <0x1000 0 0 0 0>;
@@ -163,7 +163,7 @@
163 status = "disabled"; 163 status = "disabled";
164 }; 164 };
165 165
166 pcie@3,0 { 166 pcie3: pcie@3,0 {
167 device_type = "pci"; 167 device_type = "pci";
168 assigned-addresses = <0x82000800 0 0x48000 0 0x2000>; 168 assigned-addresses = <0x82000800 0 0x48000 0 0x2000>;
169 reg = <0x1800 0 0 0 0>; 169 reg = <0x1800 0 0 0 0>;
@@ -180,7 +180,7 @@
180 status = "disabled"; 180 status = "disabled";
181 }; 181 };
182 182
183 pcie@4,0 { 183 pcie4: pcie@4,0 {
184 device_type = "pci"; 184 device_type = "pci";
185 assigned-addresses = <0x82000800 0 0x4c000 0 0x2000>; 185 assigned-addresses = <0x82000800 0 0x4c000 0 0x2000>;
186 reg = <0x2000 0 0 0 0>; 186 reg = <0x2000 0 0 0 0>;
@@ -197,7 +197,7 @@
197 status = "disabled"; 197 status = "disabled";
198 }; 198 };
199 199
200 pcie@5,0 { 200 pcie5: pcie@5,0 {
201 device_type = "pci"; 201 device_type = "pci";
202 assigned-addresses = <0x82000800 0 0x80000 0 0x2000>; 202 assigned-addresses = <0x82000800 0 0x80000 0 0x2000>;
203 reg = <0x2800 0 0 0 0>; 203 reg = <0x2800 0 0 0 0>;
@@ -214,7 +214,7 @@
214 status = "disabled"; 214 status = "disabled";
215 }; 215 };
216 216
217 pcie@6,0 { 217 pcie6: pcie@6,0 {
218 device_type = "pci"; 218 device_type = "pci";
219 assigned-addresses = <0x82000800 0 0x84000 0 0x2000>; 219 assigned-addresses = <0x82000800 0 0x84000 0 0x2000>;
220 reg = <0x3000 0 0 0 0>; 220 reg = <0x3000 0 0 0 0>;
@@ -231,7 +231,7 @@
231 status = "disabled"; 231 status = "disabled";
232 }; 232 };
233 233
234 pcie@7,0 { 234 pcie7: pcie@7,0 {
235 device_type = "pci"; 235 device_type = "pci";
236 assigned-addresses = <0x82000800 0 0x88000 0 0x2000>; 236 assigned-addresses = <0x82000800 0 0x88000 0 0x2000>;
237 reg = <0x3800 0 0 0 0>; 237 reg = <0x3800 0 0 0 0>;
@@ -248,7 +248,7 @@
248 status = "disabled"; 248 status = "disabled";
249 }; 249 };
250 250
251 pcie@8,0 { 251 pcie8: pcie@8,0 {
252 device_type = "pci"; 252 device_type = "pci";
253 assigned-addresses = <0x82000800 0 0x8c000 0 0x2000>; 253 assigned-addresses = <0x82000800 0 0x8c000 0 0x2000>;
254 reg = <0x4000 0 0 0 0>; 254 reg = <0x4000 0 0 0 0>;
@@ -265,7 +265,7 @@
265 status = "disabled"; 265 status = "disabled";
266 }; 266 };
267 267
268 pcie@9,0 { 268 pcie9: pcie@9,0 {
269 device_type = "pci"; 269 device_type = "pci";
270 assigned-addresses = <0x82000800 0 0x42000 0 0x2000>; 270 assigned-addresses = <0x82000800 0 0x42000 0 0x2000>;
271 reg = <0x4800 0 0 0 0>; 271 reg = <0x4800 0 0 0 0>;
diff --git a/arch/arm/boot/dts/armada-xp-mv78460.dtsi b/arch/arm/boot/dts/armada-xp-mv78460.dtsi
index 0e24f1a38540..775bee53ce86 100644
--- a/arch/arm/boot/dts/armada-xp-mv78460.dtsi
+++ b/arch/arm/boot/dts/armada-xp-mv78460.dtsi
@@ -104,7 +104,7 @@
104 * configured as x4 or quad x1 lanes. Two units are 104 * configured as x4 or quad x1 lanes. Two units are
105 * x4/x1. 105 * x4/x1.
106 */ 106 */
107 pcie-controller { 107 pciec: pcie-controller@82000000 {
108 compatible = "marvell,armada-xp-pcie"; 108 compatible = "marvell,armada-xp-pcie";
109 status = "disabled"; 109 status = "disabled";
110 device_type = "pci"; 110 device_type = "pci";
@@ -150,7 +150,7 @@
150 0x82000000 0xa 0 MBUS_ID(0x08, 0xf8) 0 1 0 /* Port 3.0 MEM */ 150 0x82000000 0xa 0 MBUS_ID(0x08, 0xf8) 0 1 0 /* Port 3.0 MEM */
151 0x81000000 0xa 0 MBUS_ID(0x08, 0xf0) 0 1 0 /* Port 3.0 IO */>; 151 0x81000000 0xa 0 MBUS_ID(0x08, 0xf0) 0 1 0 /* Port 3.0 IO */>;
152 152
153 pcie@1,0 { 153 pcie1: pcie@1,0 {
154 device_type = "pci"; 154 device_type = "pci";
155 assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; 155 assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
156 reg = <0x0800 0 0 0 0>; 156 reg = <0x0800 0 0 0 0>;
@@ -167,7 +167,7 @@
167 status = "disabled"; 167 status = "disabled";
168 }; 168 };
169 169
170 pcie@2,0 { 170 pcie2: pcie@2,0 {
171 device_type = "pci"; 171 device_type = "pci";
172 assigned-addresses = <0x82001000 0 0x44000 0 0x2000>; 172 assigned-addresses = <0x82001000 0 0x44000 0 0x2000>;
173 reg = <0x1000 0 0 0 0>; 173 reg = <0x1000 0 0 0 0>;
@@ -184,7 +184,7 @@
184 status = "disabled"; 184 status = "disabled";
185 }; 185 };
186 186
187 pcie@3,0 { 187 pcie3: pcie@3,0 {
188 device_type = "pci"; 188 device_type = "pci";
189 assigned-addresses = <0x82001800 0 0x48000 0 0x2000>; 189 assigned-addresses = <0x82001800 0 0x48000 0 0x2000>;
190 reg = <0x1800 0 0 0 0>; 190 reg = <0x1800 0 0 0 0>;
@@ -201,7 +201,7 @@
201 status = "disabled"; 201 status = "disabled";
202 }; 202 };
203 203
204 pcie@4,0 { 204 pcie4: pcie@4,0 {
205 device_type = "pci"; 205 device_type = "pci";
206 assigned-addresses = <0x82002000 0 0x4c000 0 0x2000>; 206 assigned-addresses = <0x82002000 0 0x4c000 0 0x2000>;
207 reg = <0x2000 0 0 0 0>; 207 reg = <0x2000 0 0 0 0>;
@@ -218,7 +218,7 @@
218 status = "disabled"; 218 status = "disabled";
219 }; 219 };
220 220
221 pcie@5,0 { 221 pcie5: pcie@5,0 {
222 device_type = "pci"; 222 device_type = "pci";
223 assigned-addresses = <0x82002800 0 0x80000 0 0x2000>; 223 assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
224 reg = <0x2800 0 0 0 0>; 224 reg = <0x2800 0 0 0 0>;
@@ -235,7 +235,7 @@
235 status = "disabled"; 235 status = "disabled";
236 }; 236 };
237 237
238 pcie@6,0 { 238 pcie6: pcie@6,0 {
239 device_type = "pci"; 239 device_type = "pci";
240 assigned-addresses = <0x82003000 0 0x84000 0 0x2000>; 240 assigned-addresses = <0x82003000 0 0x84000 0 0x2000>;
241 reg = <0x3000 0 0 0 0>; 241 reg = <0x3000 0 0 0 0>;
@@ -252,7 +252,7 @@
252 status = "disabled"; 252 status = "disabled";
253 }; 253 };
254 254
255 pcie@7,0 { 255 pcie7: pcie@7,0 {
256 device_type = "pci"; 256 device_type = "pci";
257 assigned-addresses = <0x82003800 0 0x88000 0 0x2000>; 257 assigned-addresses = <0x82003800 0 0x88000 0 0x2000>;
258 reg = <0x3800 0 0 0 0>; 258 reg = <0x3800 0 0 0 0>;
@@ -269,7 +269,7 @@
269 status = "disabled"; 269 status = "disabled";
270 }; 270 };
271 271
272 pcie@8,0 { 272 pcie8: pcie@8,0 {
273 device_type = "pci"; 273 device_type = "pci";
274 assigned-addresses = <0x82004000 0 0x8c000 0 0x2000>; 274 assigned-addresses = <0x82004000 0 0x8c000 0 0x2000>;
275 reg = <0x4000 0 0 0 0>; 275 reg = <0x4000 0 0 0 0>;
@@ -286,7 +286,7 @@
286 status = "disabled"; 286 status = "disabled";
287 }; 287 };
288 288
289 pcie@9,0 { 289 pcie9: pcie@9,0 {
290 device_type = "pci"; 290 device_type = "pci";
291 assigned-addresses = <0x82004800 0 0x42000 0 0x2000>; 291 assigned-addresses = <0x82004800 0 0x42000 0 0x2000>;
292 reg = <0x4800 0 0 0 0>; 292 reg = <0x4800 0 0 0 0>;
@@ -303,7 +303,7 @@
303 status = "disabled"; 303 status = "disabled";
304 }; 304 };
305 305
306 pcie@10,0 { 306 pcie10: pcie@10,0 {
307 device_type = "pci"; 307 device_type = "pci";
308 assigned-addresses = <0x82005000 0 0x82000 0 0x2000>; 308 assigned-addresses = <0x82005000 0 0x82000 0 0x2000>;
309 reg = <0x5000 0 0 0 0>; 309 reg = <0x5000 0 0 0 0>;
diff --git a/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts b/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts
index d19f44c70925..a2f0e789465d 100644
--- a/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts
+++ b/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts
@@ -56,7 +56,7 @@
56 stdout-path = "serial0:115200n8"; 56 stdout-path = "serial0:115200n8";
57 }; 57 };
58 58
59 memory { 59 memory@0 {
60 device_type = "memory"; 60 device_type = "memory";
61 reg = <0 0x00000000 0 0x80000000>; /* 2GB */ 61 reg = <0 0x00000000 0 0x80000000>; /* 2GB */
62 }; 62 };
@@ -67,28 +67,6 @@
67 MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000 67 MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
68 MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>; 68 MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>;
69 69
70 pcie-controller {
71 status = "okay";
72
73 /* Connected to first Marvell 88SE9170 SATA controller */
74 pcie@1,0 {
75 /* Port 0, Lane 0 */
76 status = "okay";
77 };
78
79 /* Connected to second Marvell 88SE9170 SATA controller */
80 pcie@2,0 {
81 /* Port 0, Lane 1 */
82 status = "okay";
83 };
84
85 /* Connected to Fresco Logic FL1009 USB 3.0 controller */
86 pcie@5,0 {
87 /* Port 1, Lane 0 */
88 status = "okay";
89 };
90 };
91
92 internal-regs { 70 internal-regs {
93 71
94 /* RTC is provided by Intersil ISL12057 I2C RTC chip */ 72 /* RTC is provided by Intersil ISL12057 I2C RTC chip */
@@ -97,7 +75,6 @@
97 }; 75 };
98 76
99 i2c@11000 { 77 i2c@11000 {
100 compatible = "marvell,mv64xxx-i2c";
101 clock-frequency = <400000>; 78 clock-frequency = <400000>;
102 status = "okay"; 79 status = "okay";
103 80
@@ -154,23 +131,19 @@
154 status = "okay"; 131 status = "okay";
155 }; 132 };
156 133
157 mdio {
158 phy0: ethernet-phy@0 { /* Marvell 88E1318 */
159 reg = <0>;
160 };
161
162 phy1: ethernet-phy@1 { /* Marvell 88E1318 */
163 reg = <1>;
164 };
165 };
166
167 ethernet@70000 { 134 ethernet@70000 {
135 pinctrl-0 = <&ge0_rgmii_pins>;
136 pinctrl-names = "default";
137
168 status = "okay"; 138 status = "okay";
169 phy = <&phy0>; 139 phy = <&phy0>;
170 phy-mode = "rgmii-id"; 140 phy-mode = "rgmii-id";
171 }; 141 };
172 142
173 ethernet@74000 { 143 ethernet@74000 {
144 pinctrl-0 = <&ge1_rgmii_pins>;
145 pinctrl-names = "default";
146
174 status = "okay"; 147 status = "okay";
175 phy = <&phy1>; 148 phy = <&phy1>;
176 phy-mode = "rgmii-id"; 149 phy-mode = "rgmii-id";
@@ -295,6 +268,39 @@
295 }; 268 };
296}; 269};
297 270
271&pciec {
272 status = "okay";
273
274 /* Connected to first Marvell 88SE9170 SATA controller */
275 pcie@1,0 {
276 /* Port 0, Lane 0 */
277 status = "okay";
278 };
279
280 /* Connected to second Marvell 88SE9170 SATA controller */
281 pcie@2,0 {
282 /* Port 0, Lane 1 */
283 status = "okay";
284 };
285
286 /* Connected to Fresco Logic FL1009 USB 3.0 controller */
287 pcie@5,0 {
288 /* Port 1, Lane 0 */
289 status = "okay";
290 };
291};
292
293&mdio {
294 phy0: ethernet-phy@0 { /* Marvell 88E1318 */
295 reg = <0>;
296 };
297
298 phy1: ethernet-phy@1 { /* Marvell 88E1318 */
299 reg = <1>;
300 };
301};
302
303
298&pinctrl { 304&pinctrl {
299 poweroff: poweroff { 305 poweroff: poweroff {
300 marvell,pins = "mpp42"; 306 marvell,pins = "mpp42";
diff --git a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
index ed3b889d16ce..b577c9fb03a4 100644
--- a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
+++ b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
@@ -57,7 +57,7 @@
57 stdout-path = "serial0:115200n8"; 57 stdout-path = "serial0:115200n8";
58 }; 58 };
59 59
60 memory { 60 memory@0 {
61 device_type = "memory"; 61 device_type = "memory";
62 reg = <0 0x00000000 0 0x40000000>; /* 1 GB soldered on */ 62 reg = <0 0x00000000 0 0x40000000>; /* 1 GB soldered on */
63 }; 63 };
@@ -98,15 +98,6 @@
98 }; 98 };
99 }; 99 };
100 100
101 pcie-controller {
102 status = "okay";
103 /* Internal mini-PCIe connector */
104 pcie@1,0 {
105 /* Port 0, Lane 0 */
106 status = "okay";
107 };
108 };
109
110 internal-regs { 101 internal-regs {
111 rtc@10300 { 102 rtc@10300 {
112 /* No crystal connected to the internal RTC */ 103 /* No crystal connected to the internal RTC */
@@ -148,31 +139,13 @@
148 #address-cells = <1>; 139 #address-cells = <1>;
149 #size-cells = <0>; 140 #size-cells = <0>;
150 141
151 button@1 { 142 init {
152 label = "Init Button"; 143 label = "Init Button";
153 linux,code = <KEY_POWER>; 144 linux,code = <KEY_POWER>;
154 gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>; 145 gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
155 }; 146 };
156 }; 147 };
157 148
158 mdio {
159 phy0: ethernet-phy@0 {
160 reg = <0>;
161 };
162
163 phy1: ethernet-phy@1 {
164 reg = <1>;
165 };
166
167 phy2: ethernet-phy@2 {
168 reg = <2>;
169 };
170
171 phy3: ethernet-phy@3 {
172 reg = <3>;
173 };
174 };
175
176 ethernet@70000 { 149 ethernet@70000 {
177 status = "okay"; 150 status = "okay";
178 phy = <&phy0>; 151 phy = <&phy0>;
@@ -240,6 +213,33 @@
240 }; 213 };
241}; 214};
242 215
216&pciec {
217 status = "okay";
218 /* Internal mini-PCIe connector */
219 pcie@1,0 {
220 /* Port 0, Lane 0 */
221 status = "okay";
222 };
223};
224
225&mdio {
226 phy0: ethernet-phy@0 {
227 reg = <0>;
228 };
229
230 phy1: ethernet-phy@1 {
231 reg = <1>;
232 };
233
234 phy2: ethernet-phy@2 {
235 reg = <2>;
236 };
237
238 phy3: ethernet-phy@3 {
239 reg = <3>;
240 };
241};
242
243&pinctrl { 243&pinctrl {
244 led_pins: led-pins-0 { 244 led_pins: led-pins-0 {
245 marvell,pins = "mpp49", "mpp51", "mpp53"; 245 marvell,pins = "mpp49", "mpp51", "mpp53";
diff --git a/arch/arm/boot/dts/armada-xp-synology-ds414.dts b/arch/arm/boot/dts/armada-xp-synology-ds414.dts
index ae286736b90a..e803da03146a 100644
--- a/arch/arm/boot/dts/armada-xp-synology-ds414.dts
+++ b/arch/arm/boot/dts/armada-xp-synology-ds414.dts
@@ -70,7 +70,7 @@
70 stdout-path = "serial0:115200n8"; 70 stdout-path = "serial0:115200n8";
71 }; 71 };
72 72
73 memory { 73 memory@0 {
74 device_type = "memory"; 74 device_type = "memory";
75 reg = <0 0x00000000 0 0x40000000>; /* 1GB */ 75 reg = <0 0x00000000 0 0x40000000>; /* 1GB */
76 }; 76 };
@@ -81,28 +81,6 @@
81 MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000 81 MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
82 MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>; 82 MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>;
83 83
84 pcie-controller {
85 status = "okay";
86
87 /*
88 * Connected to Marvell 88SX7042 SATA-II controller
89 * handling the four disks.
90 */
91 pcie@1,0 {
92 /* Port 0, Lane 0 */
93 status = "okay";
94 };
95
96 /*
97 * Connected to EtronTech EJ168A XHCI controller
98 * providing the two rear USB 3.0 ports.
99 */
100 pcie@5,0 {
101 /* Port 1, Lane 0 */
102 status = "okay";
103 };
104 };
105
106 internal-regs { 84 internal-regs {
107 85
108 /* RTC is provided by Seiko S-35390A below */ 86 /* RTC is provided by Seiko S-35390A below */
@@ -150,16 +128,6 @@
150 status = "okay"; 128 status = "okay";
151 }; 129 };
152 130
153 mdio {
154 phy0: ethernet-phy@0 { /* Marvell 88E1512 */
155 reg = <0>;
156 };
157
158 phy1: ethernet-phy@1 { /* Marvell 88E1512 */
159 reg = <1>;
160 };
161 };
162
163 ethernet@70000 { 131 ethernet@70000 {
164 status = "okay"; 132 status = "okay";
165 pinctrl-0 = <&ge0_rgmii_pins>; 133 pinctrl-0 = <&ge0_rgmii_pins>;
@@ -186,7 +154,7 @@
186 &sata3_pwr_pin &sata4_pwr_pin>; 154 &sata3_pwr_pin &sata4_pwr_pin>;
187 pinctrl-names = "default"; 155 pinctrl-names = "default";
188 156
189 sata1_regulator: sata1-regulator { 157 sata1_regulator: sata1-regulator@1 {
190 compatible = "regulator-fixed"; 158 compatible = "regulator-fixed";
191 reg = <1>; 159 reg = <1>;
192 regulator-name = "SATA1 Power"; 160 regulator-name = "SATA1 Power";
@@ -199,7 +167,7 @@
199 gpio = <&gpio1 10 GPIO_ACTIVE_HIGH>; 167 gpio = <&gpio1 10 GPIO_ACTIVE_HIGH>;
200 }; 168 };
201 169
202 sata2_regulator: sata2-regulator { 170 sata2_regulator: sata2-regulator@2 {
203 compatible = "regulator-fixed"; 171 compatible = "regulator-fixed";
204 reg = <2>; 172 reg = <2>;
205 regulator-name = "SATA2 Power"; 173 regulator-name = "SATA2 Power";
@@ -212,7 +180,7 @@
212 gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>; 180 gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
213 }; 181 };
214 182
215 sata3_regulator: sata3-regulator { 183 sata3_regulator: sata3-regulator@3 {
216 compatible = "regulator-fixed"; 184 compatible = "regulator-fixed";
217 reg = <3>; 185 reg = <3>;
218 regulator-name = "SATA3 Power"; 186 regulator-name = "SATA3 Power";
@@ -225,7 +193,7 @@
225 gpio = <&gpio1 13 GPIO_ACTIVE_HIGH>; 193 gpio = <&gpio1 13 GPIO_ACTIVE_HIGH>;
226 }; 194 };
227 195
228 sata4_regulator: sata4-regulator { 196 sata4_regulator: sata4-regulator@4 {
229 compatible = "regulator-fixed"; 197 compatible = "regulator-fixed";
230 reg = <4>; 198 reg = <4>;
231 regulator-name = "SATA4 Power"; 199 regulator-name = "SATA4 Power";
@@ -240,6 +208,39 @@
240 }; 208 };
241}; 209};
242 210
211&pciec {
212 status = "okay";
213
214 /*
215 * Connected to Marvell 88SX7042 SATA-II controller
216 * handling the four disks.
217 */
218 pcie@1,0 {
219 /* Port 0, Lane 0 */
220 status = "okay";
221 };
222
223 /*
224 * Connected to EtronTech EJ168A XHCI controller
225 * providing the two rear USB 3.0 ports.
226 */
227 pcie@5,0 {
228 /* Port 1, Lane 0 */
229 status = "okay";
230 };
231};
232
233
234&mdio {
235 phy0: ethernet-phy@0 { /* Marvell 88E1512 */
236 reg = <0>;
237 };
238
239 phy1: ethernet-phy@1 { /* Marvell 88E1512 */
240 reg = <1>;
241 };
242};
243
243&pinctrl { 244&pinctrl {
244 sata1_pwr_pin: sata1-pwr-pin { 245 sata1_pwr_pin: sata1-pwr-pin {
245 marvell,pins = "mpp42"; 246 marvell,pins = "mpp42";
diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi
index 4a5f99e65b51..5274e4ff5d62 100644
--- a/arch/arm/boot/dts/armada-xp.dtsi
+++ b/arch/arm/boot/dts/armada-xp.dtsi
@@ -53,6 +53,9 @@
53#include "armada-370-xp.dtsi" 53#include "armada-370-xp.dtsi"
54 54
55/ { 55/ {
56 #address-cells = <2>;
57 #size-cells = <2>;
58
56 model = "Marvell Armada XP family SoC"; 59 model = "Marvell Armada XP family SoC";
57 compatible = "marvell,armadaxp", "marvell,armada-370-xp"; 60 compatible = "marvell,armadaxp", "marvell,armada-370-xp";
58 61
@@ -75,7 +78,7 @@
75 reg = <0x1400 0x500>; 78 reg = <0x1400 0x500>;
76 }; 79 };
77 80
78 L2: l2-cache { 81 L2: l2-cache@8000 {
79 compatible = "marvell,aurora-system-cache"; 82 compatible = "marvell,aurora-system-cache";
80 reg = <0x08000 0x1000>; 83 reg = <0x08000 0x1000>;
81 cache-id-part = <0x100>; 84 cache-id-part = <0x100>;
@@ -84,16 +87,6 @@
84 wt-override; 87 wt-override;
85 }; 88 };
86 89
87 i2c0: i2c@11000 {
88 compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
89 reg = <0x11000 0x100>;
90 };
91
92 i2c1: i2c@11100 {
93 compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
94 reg = <0x11100 0x100>;
95 };
96
97 uart2: serial@12200 { 90 uart2: serial@12200 {
98 compatible = "snps,dw-apb-uart"; 91 compatible = "snps,dw-apb-uart";
99 pinctrl-0 = <&uart2_pins>; 92 pinctrl-0 = <&uart2_pins>;
@@ -118,7 +111,7 @@
118 status = "disabled"; 111 status = "disabled";
119 }; 112 };
120 113
121 system-controller@18200 { 114 systemc: system-controller@18200 {
122 compatible = "marvell,armada-370-xp-system-controller"; 115 compatible = "marvell,armada-370-xp-system-controller";
123 reg = <0x18200 0x500>; 116 reg = <0x18200 0x500>;
124 }; 117 };
@@ -136,7 +129,7 @@
136 #clock-cells = <1>; 129 #clock-cells = <1>;
137 }; 130 };
138 131
139 thermal@182b0 { 132 thermal: thermal@182b0 {
140 compatible = "marvell,armadaxp-thermal"; 133 compatible = "marvell,armadaxp-thermal";
141 reg = <0x182b0 0x4 134 reg = <0x182b0 0x4
142 0x184d0 0x4>; 135 0x184d0 0x4>;
@@ -150,27 +143,6 @@
150 clocks = <&coreclk 1>; 143 clocks = <&coreclk 1>;
151 }; 144 };
152 145
153 interrupt-controller@20a00 {
154 reg = <0x20a00 0x2d0>, <0x21070 0x58>;
155 };
156
157 timer@20300 {
158 compatible = "marvell,armada-xp-timer";
159 clocks = <&coreclk 2>, <&refclk>;
160 clock-names = "nbclk", "fixed";
161 };
162
163 watchdog@20300 {
164 compatible = "marvell,armada-xp-wdt";
165 clocks = <&coreclk 2>, <&refclk>;
166 clock-names = "nbclk", "fixed";
167 };
168
169 cpurst@20800 {
170 compatible = "marvell,armada-370-cpu-reset";
171 reg = <0x20800 0x20>;
172 };
173
174 cpu-config@21000 { 146 cpu-config@21000 {
175 compatible = "marvell,armada-xp-cpu-config"; 147 compatible = "marvell,armada-xp-cpu-config";
176 reg = <0x21000 0x8>; 148 reg = <0x21000 0x8>;
@@ -184,15 +156,7 @@
184 status = "disabled"; 156 status = "disabled";
185 }; 157 };
186 158
187 usb@50000 { 159 usb2: usb@52000 {
188 clocks = <&gateclk 18>;
189 };
190
191 usb@51000 {
192 clocks = <&gateclk 19>;
193 };
194
195 usb@52000 {
196 compatible = "marvell,orion-ehci"; 160 compatible = "marvell,orion-ehci";
197 reg = <0x52000 0x500>; 161 reg = <0x52000 0x500>;
198 interrupts = <47>; 162 interrupts = <47>;
@@ -200,7 +164,7 @@
200 status = "disabled"; 164 status = "disabled";
201 }; 165 };
202 166
203 xor@60900 { 167 xor1: xor@60900 {
204 compatible = "marvell,orion-xor"; 168 compatible = "marvell,orion-xor";
205 reg = <0x60900 0x100 169 reg = <0x60900 0x100
206 0x60b00 0x100>; 170 0x60b00 0x100>;
@@ -228,7 +192,7 @@
228 compatible = "marvell,armada-xp-neta"; 192 compatible = "marvell,armada-xp-neta";
229 }; 193 };
230 194
231 crypto@90000 { 195 cesa: crypto@90000 {
232 compatible = "marvell,armada-xp-crypto"; 196 compatible = "marvell,armada-xp-crypto";
233 reg = <0x90000 0x10000>; 197 reg = <0x90000 0x10000>;
234 reg-names = "regs"; 198 reg-names = "regs";
@@ -248,7 +212,7 @@
248 status = "disabled"; 212 status = "disabled";
249 }; 213 };
250 214
251 xor@f0900 { 215 xor0: xor@f0900 {
252 compatible = "marvell,orion-xor"; 216 compatible = "marvell,orion-xor";
253 reg = <0xF0900 0x100 217 reg = <0xF0900 0x100
254 0xF0B00 0x100>; 218 0xF0B00 0x100>;
@@ -309,6 +273,44 @@
309 }; 273 };
310}; 274};
311 275
276&i2c0 {
277 compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
278 reg = <0x11000 0x100>;
279};
280
281&i2c1 {
282 compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
283 reg = <0x11100 0x100>;
284};
285
286&mpic {
287 reg = <0x20a00 0x2d0>, <0x21070 0x58>;
288};
289
290&timer {
291 compatible = "marvell,armada-xp-timer";
292 clocks = <&coreclk 2>, <&refclk>;
293 clock-names = "nbclk", "fixed";
294};
295
296&watchdog {
297 compatible = "marvell,armada-xp-wdt";
298 clocks = <&coreclk 2>, <&refclk>;
299 clock-names = "nbclk", "fixed";
300};
301
302&cpurst {
303 reg = <0x20800 0x20>;
304};
305
306&usb0 {
307 clocks = <&gateclk 18>;
308};
309
310&usb1 {
311 clocks = <&gateclk 19>;
312};
313
312&pinctrl { 314&pinctrl {
313 ge0_gmii_pins: ge0-gmii-pins { 315 ge0_gmii_pins: ge0-gmii-pins {
314 marvell,pins = 316 marvell,pins =
diff --git a/arch/arm/boot/dts/artpec6-devboard.dts b/arch/arm/boot/dts/artpec6-devboard.dts
index f823ed382ac7..9dfe845694cf 100644
--- a/arch/arm/boot/dts/artpec6-devboard.dts
+++ b/arch/arm/boot/dts/artpec6-devboard.dts
@@ -46,6 +46,10 @@
46 status = "okay"; 46 status = "okay";
47}; 47};
48 48
49&pcie {
50 status = "okay";
51};
52
49&ethernet { 53&ethernet {
50 status = "okay"; 54 status = "okay";
51 55
diff --git a/arch/arm/boot/dts/artpec6.dtsi b/arch/arm/boot/dts/artpec6.dtsi
index 3489019cc0dc..767cbe8d8557 100644
--- a/arch/arm/boot/dts/artpec6.dtsi
+++ b/arch/arm/boot/dts/artpec6.dtsi
@@ -67,7 +67,7 @@
67 }; 67 };
68 }; 68 };
69 69
70 syscon { 70 syscon: syscon@f8000000 {
71 compatible = "axis,artpec6-syscon", "syscon"; 71 compatible = "axis,artpec6-syscon", "syscon";
72 reg = <0xf8000000 0x48>; 72 reg = <0xf8000000 0x48>;
73 }; 73 };
@@ -154,6 +154,33 @@
154 interrupt-parent = <&intc>; 154 interrupt-parent = <&intc>;
155 }; 155 };
156 156
157 pcie: pcie@f8050000 {
158 compatible = "axis,artpec6-pcie", "snps,dw-pcie";
159 reg = <0xf8050000 0x2000
160 0xf8040000 0x1000
161 0xc0000000 0x2000>;
162 reg-names = "dbi", "phy", "config";
163 #address-cells = <3>;
164 #size-cells = <2>;
165 device_type = "pci";
166 /* downstream I/O */
167 ranges = <0x81000000 0 0 0xc0002000 0 0x00010000
168 /* non-prefetchable memory */
169 0x82000000 0 0xc0012000 0xc0012000 0 0x1ffee000>;
170 num-lanes = <2>;
171 bus-range = <0x00 0xff>;
172 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
173 interrupt-names = "msi";
174 #interrupt-cells = <1>;
175 interrupt-map-mask = <0 0 0 0x7>;
176 interrupt-map = <0 0 0 1 &intc GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
177 <0 0 0 2 &intc GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
178 <0 0 0 3 &intc GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
179 <0 0 0 4 &intc GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
180 axis,syscon-pcie = <&syscon>;
181 status = "disabled";
182 };
183
157 amba@0 { 184 amba@0 {
158 compatible = "simple-bus"; 185 compatible = "simple-bus";
159 #address-cells = <0x1>; 186 #address-cells = <0x1>;
diff --git a/arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi b/arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi
index a92c6e0ca854..b5a5a91bc2ef 100644
--- a/arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi
+++ b/arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi
@@ -12,8 +12,8 @@
12#include "sama5d4.dtsi" 12#include "sama5d4.dtsi"
13 13
14/ { 14/ {
15 model = "DENX MA5D4"; 15 model = "Aries/DENX MA5D4";
16 compatible = "denx,ma5d4", "atmel,sama5d4", "atmel,sama5"; 16 compatible = "aries,ma5d4", "denx,ma5d4", "atmel,sama5d4", "atmel,sama5";
17 17
18 memory { 18 memory {
19 reg = <0x20000000 0x10000000>; 19 reg = <0x20000000 0x10000000>;
diff --git a/arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts b/arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts
index eac4ea2744cc..84be29f38dae 100644
--- a/arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts
+++ b/arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts
@@ -13,8 +13,8 @@
13#include "at91-sama5d4_ma5d4.dtsi" 13#include "at91-sama5d4_ma5d4.dtsi"
14 14
15/ { 15/ {
16 model = "DENX MA5D4EVK"; 16 model = "Aries/DENX MA5D4EVK";
17 compatible = "denx,ma5d4evk", "atmel,sama5d4", "atmel,sama5"; 17 compatible = "aries,ma5d4evk", "denx,ma5d4evk", "atmel,sama5d4", "atmel,sama5";
18 18
19 chosen { 19 chosen {
20 stdout-path = "serial3:115200n8"; 20 stdout-path = "serial3:115200n8";
diff --git a/arch/arm/boot/dts/at91rm9200.dtsi b/arch/arm/boot/dts/at91rm9200.dtsi
index 4e913c2ccb79..f057e0b15a6f 100644
--- a/arch/arm/boot/dts/at91rm9200.dtsi
+++ b/arch/arm/boot/dts/at91rm9200.dtsi
@@ -481,8 +481,8 @@
481 dbgu { 481 dbgu {
482 pinctrl_dbgu: dbgu-0 { 482 pinctrl_dbgu: dbgu-0 {
483 atmel,pins = 483 atmel,pins =
484 <AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_NONE /* PA30 periph A */ 484 <AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
485 AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PA31 periph with pullup */ 485 AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_NONE>;
486 }; 486 };
487 }; 487 };
488 488
diff --git a/arch/arm/boot/dts/at91sam9260.dtsi b/arch/arm/boot/dts/at91sam9260.dtsi
index a3e363d79122..9e035b21e1b6 100644
--- a/arch/arm/boot/dts/at91sam9260.dtsi
+++ b/arch/arm/boot/dts/at91sam9260.dtsi
@@ -412,8 +412,8 @@
412 dbgu { 412 dbgu {
413 pinctrl_dbgu: dbgu-0 { 413 pinctrl_dbgu: dbgu-0 {
414 atmel,pins = 414 atmel,pins =
415 <AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB14 periph A */ 415 <AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
416 AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PB15 periph with pullup */ 416 AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
417 }; 417 };
418 }; 418 };
419 419
diff --git a/arch/arm/boot/dts/at91sam9260ek.dts b/arch/arm/boot/dts/at91sam9260ek.dts
index 2c87f58448e7..b2578feceb08 100644
--- a/arch/arm/boot/dts/at91sam9260ek.dts
+++ b/arch/arm/boot/dts/at91sam9260ek.dts
@@ -174,14 +174,14 @@
174 label = "Button 3"; 174 label = "Button 3";
175 gpios = <&pioA 30 GPIO_ACTIVE_LOW>; 175 gpios = <&pioA 30 GPIO_ACTIVE_LOW>;
176 linux,code = <0x103>; 176 linux,code = <0x103>;
177 gpio-key,wakeup; 177 wakeup-source;
178 }; 178 };
179 179
180 btn4 { 180 btn4 {
181 label = "Button 4"; 181 label = "Button 4";
182 gpios = <&pioA 31 GPIO_ACTIVE_LOW>; 182 gpios = <&pioA 31 GPIO_ACTIVE_LOW>;
183 linux,code = <0x104>; 183 linux,code = <0x104>;
184 gpio-key,wakeup; 184 wakeup-source;
185 }; 185 };
186 }; 186 };
187 187
diff --git a/arch/arm/boot/dts/at91sam9261.dtsi b/arch/arm/boot/dts/at91sam9261.dtsi
index 32752d7883f1..3fe77c38bd0d 100644
--- a/arch/arm/boot/dts/at91sam9261.dtsi
+++ b/arch/arm/boot/dts/at91sam9261.dtsi
@@ -302,8 +302,8 @@
302 dbgu { 302 dbgu {
303 pinctrl_dbgu: dbgu-0 { 303 pinctrl_dbgu: dbgu-0 {
304 atmel,pins = 304 atmel,pins =
305 <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_NONE>, 305 <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
306 <AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; 306 <AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
307 }; 307 };
308 }; 308 };
309 309
diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi
index aeb1a36373f4..a1888f6d892b 100644
--- a/arch/arm/boot/dts/at91sam9263.dtsi
+++ b/arch/arm/boot/dts/at91sam9263.dtsi
@@ -412,8 +412,8 @@
412 dbgu { 412 dbgu {
413 pinctrl_dbgu: dbgu-0 { 413 pinctrl_dbgu: dbgu-0 {
414 atmel,pins = 414 atmel,pins =
415 <AT91_PIOC 30 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC30 periph A */ 415 <AT91_PIOC 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
416 AT91_PIOC 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PC31 periph with pullup */ 416 AT91_PIOC 31 AT91_PERIPH_A AT91_PINCTRL_NONE>;
417 }; 417 };
418 }; 418 };
419 419
diff --git a/arch/arm/boot/dts/at91sam9g45.dtsi b/arch/arm/boot/dts/at91sam9g45.dtsi
index b3501ae2a3bd..e567d5fd3f9d 100644
--- a/arch/arm/boot/dts/at91sam9g45.dtsi
+++ b/arch/arm/boot/dts/at91sam9g45.dtsi
@@ -478,8 +478,8 @@
478 dbgu { 478 dbgu {
479 pinctrl_dbgu: dbgu-0 { 479 pinctrl_dbgu: dbgu-0 {
480 atmel,pins = 480 atmel,pins =
481 <AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB12 periph A */ 481 <AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
482 AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB13 periph A */ 482 AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_NONE>;
483 }; 483 };
484 }; 484 };
485 485
diff --git a/arch/arm/boot/dts/at91sam9n12.dtsi b/arch/arm/boot/dts/at91sam9n12.dtsi
index 3b3eb3edcb47..f43d7695352d 100644
--- a/arch/arm/boot/dts/at91sam9n12.dtsi
+++ b/arch/arm/boot/dts/at91sam9n12.dtsi
@@ -500,8 +500,8 @@
500 dbgu { 500 dbgu {
501 pinctrl_dbgu: dbgu-0 { 501 pinctrl_dbgu: dbgu-0 {
502 atmel,pins = 502 atmel,pins =
503 <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* PA9 periph A */ 503 <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
504 AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PA10 periph with pullup */ 504 AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
505 }; 505 };
506 }; 506 };
507 507
diff --git a/arch/arm/boot/dts/at91sam9rl.dtsi b/arch/arm/boot/dts/at91sam9rl.dtsi
index 70adf940d98c..f4c129a98f17 100644
--- a/arch/arm/boot/dts/at91sam9rl.dtsi
+++ b/arch/arm/boot/dts/at91sam9rl.dtsi
@@ -438,8 +438,8 @@
438 dbgu { 438 dbgu {
439 pinctrl_dbgu: dbgu-0 { 439 pinctrl_dbgu: dbgu-0 {
440 atmel,pins = 440 atmel,pins =
441 <AT91_PIOA 21 AT91_PERIPH_A AT91_PINCTRL_NONE>, 441 <AT91_PIOA 21 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
442 <AT91_PIOA 22 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; 442 <AT91_PIOA 22 AT91_PERIPH_A AT91_PINCTRL_NONE>;
443 }; 443 };
444 }; 444 };
445 445
diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi
index ed4e4bd8a8f1..f66bae925705 100644
--- a/arch/arm/boot/dts/at91sam9x5.dtsi
+++ b/arch/arm/boot/dts/at91sam9x5.dtsi
@@ -460,8 +460,8 @@
460 dbgu { 460 dbgu {
461 pinctrl_dbgu: dbgu-0 { 461 pinctrl_dbgu: dbgu-0 {
462 atmel,pins = 462 atmel,pins =
463 <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* PA9 periph A */ 463 <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
464 AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PA10 periph A with pullup */ 464 AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
465 }; 465 };
466 }; 466 };
467 467
diff --git a/arch/arm/boot/dts/bcm-cygnus.dtsi b/arch/arm/boot/dts/bcm-cygnus.dtsi
index fabc9f36c408..8833a4c3cd96 100644
--- a/arch/arm/boot/dts/bcm-cygnus.dtsi
+++ b/arch/arm/boot/dts/bcm-cygnus.dtsi
@@ -91,6 +91,13 @@
91 #address-cells = <1>; 91 #address-cells = <1>;
92 #size-cells = <1>; 92 #size-cells = <1>;
93 93
94 otp: otp@0301c800 {
95 compatible = "brcm,ocotp";
96 reg = <0x0301c800 0x2c>;
97 brcm,ocotp-size = <2048>;
98 status = "disabled";
99 };
100
94 pcie_phy: phy@0301d0a0 { 101 pcie_phy: phy@0301d0a0 {
95 compatible = "brcm,cygnus-pcie-phy"; 102 compatible = "brcm,cygnus-pcie-phy";
96 reg = <0x0301d0a0 0x14>; 103 reg = <0x0301d0a0 0x14>;
@@ -108,12 +115,21 @@
108 }; 115 };
109 }; 116 };
110 117
111 pinctrl: pinctrl@0x0301d0c8 { 118 pinctrl: pinctrl@0301d0c8 {
112 compatible = "brcm,cygnus-pinmux"; 119 compatible = "brcm,cygnus-pinmux";
113 reg = <0x0301d0c8 0x30>, 120 reg = <0x0301d0c8 0x30>,
114 <0x0301d24c 0x2c>; 121 <0x0301d24c 0x2c>;
115 }; 122 };
116 123
124 mailbox: mailbox@03024024 {
125 compatible = "brcm,iproc-mailbox";
126 reg = <0x03024024 0x40>;
127 interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
128 #interrupt-cells = <1>;
129 interrupt-controller;
130 #mbox-cells = <1>;
131 };
132
117 gpio_crmu: gpio@03024800 { 133 gpio_crmu: gpio@03024800 {
118 compatible = "brcm,cygnus-crmu-gpio"; 134 compatible = "brcm,cygnus-crmu-gpio";
119 reg = <0x03024800 0x50>, 135 reg = <0x03024800 0x50>,
@@ -121,6 +137,9 @@
121 ngpios = <6>; 137 ngpios = <6>;
122 #gpio-cells = <2>; 138 #gpio-cells = <2>;
123 gpio-controller; 139 gpio-controller;
140 interrupt-controller;
141 interrupt-parent = <&mailbox>;
142 interrupts = <0>;
124 }; 143 };
125 144
126 i2c0: i2c@18008000 { 145 i2c0: i2c@18008000 {
diff --git a/arch/arm/boot/dts/bcm-nsp.dtsi b/arch/arm/boot/dts/bcm-nsp.dtsi
index 7c9e0fae9bb9..b6142bda661e 100644
--- a/arch/arm/boot/dts/bcm-nsp.dtsi
+++ b/arch/arm/boot/dts/bcm-nsp.dtsi
@@ -160,7 +160,7 @@
160 160
161 axi { 161 axi {
162 compatible = "simple-bus"; 162 compatible = "simple-bus";
163 ranges = <0x00000000 0x18000000 0x0011ba08>; 163 ranges = <0x00000000 0x18000000 0x0011c40a>;
164 #address-cells = <1>; 164 #address-cells = <1>;
165 #size-cells = <1>; 165 #size-cells = <1>;
166 166
@@ -241,6 +241,16 @@
241 brcm,nand-has-wp; 241 brcm,nand-has-wp;
242 }; 242 };
243 243
244 gpiob: gpio@30000 {
245 compatible = "brcm,iproc-nsp-gpio", "brcm,iproc-gpio";
246 reg = <0x30000 0x50>;
247 #gpio-cells = <2>;
248 gpio-controller;
249 ngpios = <4>;
250 interrupt-controller;
251 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
252 };
253
244 pwm: pwm@31000 { 254 pwm: pwm@31000 {
245 compatible = "brcm,iproc-pwm"; 255 compatible = "brcm,iproc-pwm";
246 reg = <0x31000 0x28>; 256 reg = <0x31000 0x28>;
@@ -254,6 +264,35 @@
254 reg = <0x33000 0x14>; 264 reg = <0x33000 0x14>;
255 }; 265 };
256 266
267 qspi: qspi@27200 {
268 compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi";
269 reg = <0x027200 0x184>,
270 <0x027000 0x124>,
271 <0x11c408 0x004>,
272 <0x0273a0 0x01c>;
273 reg-names = "mspi", "bspi", "intr_regs",
274 "intr_status_reg";
275 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
276 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
277 <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
278 <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
279 <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
280 <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
281 <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
282 interrupt-names = "spi_lr_fullness_reached",
283 "spi_lr_session_aborted",
284 "spi_lr_impatient",
285 "spi_lr_session_done",
286 "spi_lr_overhead",
287 "mspi_done",
288 "mspi_halted";
289 clocks = <&iprocmed>;
290 clock-names = "iprocmed";
291 num-cs = <2>;
292 #address-cells = <1>;
293 #size-cells = <0>;
294 };
295
257 ccbtimer0: timer@34000 { 296 ccbtimer0: timer@34000 {
258 compatible = "arm,sp804"; 297 compatible = "arm,sp804";
259 reg = <0x34000 0x1000>; 298 reg = <0x34000 0x1000>;
diff --git a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
index f7f9db355d98..d0704540db6b 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
@@ -22,7 +22,72 @@
22}; 22};
23 23
24&gpio { 24&gpio {
25 pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>; 25 /*
26 * This is based on the unreleased schematic for the Model A+.
27 *
28 * Legend:
29 * "NC" = not connected (no rail from the SoC)
30 * "FOO" = GPIO line named "FOO" on the schematic
31 * "FOO_N" = GPIO line named "FOO" on schematic, active low
32 */
33 gpio-line-names = "SDA0",
34 "SCL0",
35 "SDA1",
36 "SCL1",
37 "GPIO_GCLK",
38 "GPIO5",
39 "GPIO6",
40 "SPI_CE1_N",
41 "SPI_CE0_N",
42 "SPI_MISO",
43 "SPI_MOSI",
44 "SPI_SCLK",
45 "GPIO12",
46 "GPIO13",
47 /* Serial port */
48 "TXD0",
49 "RXD0",
50 "GPIO16",
51 "GPIO17",
52 "GPIO18",
53 "GPIO19",
54 "GPIO20",
55 "GPIO21",
56 "GPIO22",
57 "GPIO23",
58 "GPIO24",
59 "GPIO25",
60 "GPIO26",
61 "GPIO27",
62 "SDA0",
63 "SCL0",
64 "NC", /* GPIO30 */
65 "NC", /* GPIO31 */
66 "CAM_GPIO1", /* GPIO32 */
67 "NC", /* GPIO33 */
68 "NC", /* GPIO34 */
69 "PWR_LOW_N", /* GPIO35 */
70 "NC", /* GPIO36 */
71 "NC", /* GPIO37 */
72 "USB_LIMIT", /* GPIO38 */
73 "NC", /* GPIO39 */
74 "PWM0_OUT", /* GPIO40 */
75 "CAM_GPIO0", /* GPIO41 */
76 "NC", /* GPIO42 */
77 "NC", /* GPIO43 */
78 "NC", /* GPIO44 */
79 "PWM1_OUT", /* GPIO45 */
80 "HDMI_HPD_N",
81 "STATUS_LED",
82 /* Used by SD Card */
83 "SD_CLK_R",
84 "SD_CMD_R",
85 "SD_DATA0_R",
86 "SD_DATA1_R",
87 "SD_DATA2_R",
88 "SD_DATA3_R";
89
90 pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
26 91
27 /* I2S interface */ 92 /* I2S interface */
28 i2s_alt0: i2s_alt0 { 93 i2s_alt0: i2s_alt0 {
diff --git a/arch/arm/boot/dts/bcm2835-rpi-a.dts b/arch/arm/boot/dts/bcm2835-rpi-a.dts
index 8be102f5d826..46d078e29017 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-a.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-a.dts
@@ -15,7 +15,74 @@
15}; 15};
16 16
17&gpio { 17&gpio {
18 pinctrl-0 = <&gpioout &alt0 &i2s_alt2 &alt3>; 18 /*
19 * Taken from Raspberry-Pi-Rev-1.0-Model-AB-Schematics.pdf
20 * RPI00021 sheet 02
21 *
22 * Legend:
23 * "NC" = not connected (no rail from the SoC)
24 * "FOO" = GPIO line named "FOO" on the schematic
25 * "FOO_N" = GPIO line named "FOO" on schematic, active low
26 */
27 gpio-line-names = "SDA0",
28 "SCL0",
29 "SDA1",
30 "SCL1",
31 "GPIO_GCLK",
32 "CAM_GPIO1",
33 "LAN_RUN",
34 "SPI_CE1_N",
35 "SPI_CE0_N",
36 "SPI_MISO",
37 "SPI_MOSI",
38 "SPI_SCLK",
39 "NC", /* GPIO12 */
40 "NC", /* GPIO13 */
41 /* Serial port */
42 "TXD0",
43 "RXD0",
44 "STATUS_LED_N",
45 "GPIO17",
46 "GPIO18",
47 "NC", /* GPIO19 */
48 "NC", /* GPIO20 */
49 "GPIO21",
50 "GPIO22",
51 "GPIO23",
52 "GPIO24",
53 "GPIO25",
54 "NC", /* GPIO26 */
55 "CAM_GPIO0",
56 /* Binary number representing build/revision */
57 "CONFIG0",
58 "CONFIG1",
59 "CONFIG2",
60 "CONFIG3",
61 "NC", /* GPIO32 */
62 "NC", /* GPIO33 */
63 "NC", /* GPIO34 */
64 "NC", /* GPIO35 */
65 "NC", /* GPIO36 */
66 "NC", /* GPIO37 */
67 "NC", /* GPIO38 */
68 "NC", /* GPIO39 */
69 "PWM0_OUT",
70 "NC", /* GPIO41 */
71 "NC", /* GPIO42 */
72 "NC", /* GPIO43 */
73 "NC", /* GPIO44 */
74 "PWM1_OUT",
75 "HDMI_HPD_P",
76 "SD_CARD_DET",
77 /* Used by SD Card */
78 "SD_CLK_R",
79 "SD_CMD_R",
80 "SD_DATA0_R",
81 "SD_DATA1_R",
82 "SD_DATA2_R",
83 "SD_DATA3_R";
84
85 pinctrl-0 = <&gpioout &alt0 &i2s_alt2>;
19 86
20 /* I2S interface */ 87 /* I2S interface */
21 i2s_alt2: i2s_alt2 { 88 i2s_alt2: i2s_alt2 {
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
index 35cde65c975e..432088ebb0a1 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
@@ -23,7 +23,73 @@
23}; 23};
24 24
25&gpio { 25&gpio {
26 pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>; 26 /*
27 * Taken from Raspberry-Pi-B-Plus-V1.2-Schematics.pdf
28 * RPI-BPLUS sheet 1
29 *
30 * Legend:
31 * "NC" = not connected (no rail from the SoC)
32 * "FOO" = GPIO line named "FOO" on the schematic
33 * "FOO_N" = GPIO line named "FOO" on schematic, active low
34 */
35 gpio-line-names = "SDA0",
36 "SCL0",
37 "SDA1",
38 "SCL1",
39 "GPIO_GCLK",
40 "GPIO5",
41 "GPIO6",
42 "SPI_CE1_N",
43 "SPI_CE0_N",
44 "SPI_MISO",
45 "SPI_MOSI",
46 "SPI_SCLK",
47 "GPIO12",
48 "GPIO13",
49 /* Serial port */
50 "TXD0",
51 "RXD0",
52 "GPIO16",
53 "GPIO17",
54 "GPIO18",
55 "GPIO19",
56 "GPIO20",
57 "GPIO21",
58 "GPIO22",
59 "GPIO23",
60 "GPIO24",
61 "GPIO25",
62 "GPIO26",
63 "GPIO27",
64 "SDA0",
65 "SCL0",
66 "NC", /* GPIO30 */
67 "LAN_RUN", /* GPIO31 */
68 "CAM_GPIO1", /* GPIO32 */
69 "NC", /* GPIO33 */
70 "NC", /* GPIO34 */
71 "PWR_LOW_N", /* GPIO35 */
72 "NC", /* GPIO36 */
73 "NC", /* GPIO37 */
74 "USB_LIMIT", /* GPIO38 */
75 "NC", /* GPIO39 */
76 "PWM0_OUT", /* GPIO40 */
77 "CAM_GPIO0", /* GPIO41 */
78 "NC", /* GPIO42 */
79 "NC", /* GPIO43 */
80 "ETHCLK", /* GPIO44 */
81 "PWM1_OUT", /* GPIO45 */
82 "HDMI_HPD_N",
83 "STATUS_LED",
84 /* Used by SD Card */
85 "SD_CLK_R",
86 "SD_CMD_R",
87 "SD_DATA0_R",
88 "SD_DATA1_R",
89 "SD_DATA2_R",
90 "SD_DATA3_R";
91
92 pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
27 93
28 /* I2S interface */ 94 /* I2S interface */
29 i2s_alt0: i2s_alt0 { 95 i2s_alt0: i2s_alt0 {
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
index 84df85ea6296..4133bc2cd9be 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
@@ -16,7 +16,73 @@
16}; 16};
17 17
18&gpio { 18&gpio {
19 pinctrl-0 = <&gpioout &alt0 &i2s_alt2 &alt3>; 19 /*
20 * Taken from Raspberry-Pi-Rev-2.0-Model-AB-Schematics.pdf
21 * RPI00022 sheet 02
22 *
23 * Legend:
24 * "NC" = not connected (no rail from the SoC)
25 * "FOO" = GPIO line named "FOO" on the schematic
26 * "FOO_N" = GPIO line named "FOO" on schematic, active low
27 */
28 gpio-line-names = "SDA0",
29 "SCL0",
30 "SDA1",
31 "SCL1",
32 "GPIO_GCLK",
33 "CAM_CLK",
34 "LAN_RUN",
35 "SPI_CE1_N",
36 "SPI_CE0_N",
37 "SPI_MISO",
38 "SPI_MOSI",
39 "SPI_SCLK",
40 "NC", /* GPIO12 */
41 "NC", /* GPIO13 */
42 /* Serial port */
43 "TXD0",
44 "RXD0",
45 "STATUS_LED_N",
46 "GPIO17",
47 "GPIO18",
48 "NC", /* GPIO19 */
49 "NC", /* GPIO20 */
50 "CAM_GPIO",
51 "GPIO22",
52 "GPIO23",
53 "GPIO24",
54 "GPIO25",
55 "NC", /* GPIO26 */
56 "GPIO27",
57 "GPIO28",
58 "GPIO29",
59 "GPIO30",
60 "GPIO31",
61 "NC", /* GPIO32 */
62 "NC", /* GPIO33 */
63 "NC", /* GPIO34 */
64 "NC", /* GPIO35 */
65 "NC", /* GPIO36 */
66 "NC", /* GPIO37 */
67 "NC", /* GPIO38 */
68 "NC", /* GPIO39 */
69 "PWM0_OUT",
70 "NC", /* GPIO41 */
71 "NC", /* GPIO42 */
72 "NC", /* GPIO43 */
73 "NC", /* GPIO44 */
74 "PWM1_OUT",
75 "HDMI_HPD_P",
76 "SD_CARD_DET",
77 /* Used by SD Card */
78 "SD_CLK_R",
79 "SD_CMD_R",
80 "SD_DATA0_R",
81 "SD_DATA1_R",
82 "SD_DATA2_R",
83 "SD_DATA3_R";
84
85 pinctrl-0 = <&gpioout &alt0 &i2s_alt2>;
20 86
21 /* I2S interface */ 87 /* I2S interface */
22 i2s_alt2: i2s_alt2 { 88 i2s_alt2: i2s_alt2 {
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b.dts b/arch/arm/boot/dts/bcm2835-rpi-b.dts
index 8e626a80fe24..4d56fe3006b0 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts
@@ -16,7 +16,74 @@
16}; 16};
17 17
18&gpio { 18&gpio {
19 pinctrl-0 = <&gpioout &alt0 &alt3>; 19 /*
20 * Taken from Raspberry-Pi-Rev-1.0-Model-AB-Schematics.pdf
21 * RPI00021 sheet 02
22 *
23 * Legend:
24 * "NC" = not connected (no rail from the SoC)
25 * "FOO" = GPIO line named "FOO" on the schematic
26 * "FOO_N" = GPIO line named "FOO" on schematic, active low
27 */
28 gpio-line-names = "SDA0",
29 "SCL0",
30 "SDA1",
31 "SCL1",
32 "GPIO_GCLK",
33 "CAM_GPIO1",
34 "LAN_RUN",
35 "SPI_CE1_N",
36 "SPI_CE0_N",
37 "SPI_MISO",
38 "SPI_MOSI",
39 "SPI_SCLK",
40 "NC", /* GPIO12 */
41 "NC", /* GPIO13 */
42 /* Serial port */
43 "TXD0",
44 "RXD0",
45 "STATUS_LED_N",
46 "GPIO17",
47 "GPIO18",
48 "NC", /* GPIO19 */
49 "NC", /* GPIO20 */
50 "GPIO21",
51 "GPIO22",
52 "GPIO23",
53 "GPIO24",
54 "GPIO25",
55 "NC", /* GPIO26 */
56 "CAM_GPIO0",
57 /* Binary number representing build/revision */
58 "CONFIG0",
59 "CONFIG1",
60 "CONFIG2",
61 "CONFIG3",
62 "NC", /* GPIO32 */
63 "NC", /* GPIO33 */
64 "NC", /* GPIO34 */
65 "NC", /* GPIO35 */
66 "NC", /* GPIO36 */
67 "NC", /* GPIO37 */
68 "NC", /* GPIO38 */
69 "NC", /* GPIO39 */
70 "PWM0_OUT",
71 "NC", /* GPIO41 */
72 "NC", /* GPIO42 */
73 "NC", /* GPIO43 */
74 "NC", /* GPIO44 */
75 "PWM1_OUT",
76 "HDMI_HPD_P",
77 "SD_CARD_DET",
78 /* Used by SD Card */
79 "SD_CLK_R",
80 "SD_CMD_R",
81 "SD_DATA0_R",
82 "SD_DATA1_R",
83 "SD_DATA2_R",
84 "SD_DATA3_R";
85
86 pinctrl-0 = <&gpioout &alt0>;
20}; 87};
21 88
22&hdmi { 89&hdmi {
diff --git a/arch/arm/boot/dts/bcm2835-rpi-zero.dts b/arch/arm/boot/dts/bcm2835-rpi-zero.dts
index 60e359fafc5b..cc8b832c4c78 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-zero.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-zero.dts
@@ -26,7 +26,72 @@
26}; 26};
27 27
28&gpio { 28&gpio {
29 pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>; 29 /*
30 * This is based on the official GPU firmware DT blob.
31 *
32 * Legend:
33 * "NC" = not connected (no rail from the SoC)
34 * "FOO" = GPIO line named "FOO" on the schematic
35 * "FOO_N" = GPIO line named "FOO" on schematic, active low
36 */
37 gpio-line-names = "SDA0",
38 "SCL0",
39 "SDA1",
40 "SCL1",
41 "GPIO_GCLK",
42 "GPIO5",
43 "GPIO6",
44 "SPI_CE1_N",
45 "SPI_CE0_N",
46 "SPI_MISO",
47 "SPI_MOSI",
48 "SPI_SCLK",
49 "GPIO12",
50 "GPIO13",
51 /* Serial port */
52 "TXD0",
53 "RXD0",
54 "GPIO16",
55 "GPIO17",
56 "GPIO18",
57 "GPIO19",
58 "GPIO20",
59 "GPIO21",
60 "GPIO22",
61 "GPIO23",
62 "GPIO24",
63 "GPIO25",
64 "GPIO26",
65 "GPIO27",
66 "SDA0",
67 "SCL0",
68 "NC", /* GPIO30 */
69 "NC", /* GPIO31 */
70 "CAM_GPIO1", /* GPIO32 */
71 "NC", /* GPIO33 */
72 "NC", /* GPIO34 */
73 "NC", /* GPIO35 */
74 "NC", /* GPIO36 */
75 "NC", /* GPIO37 */
76 "NC", /* GPIO38 */
77 "NC", /* GPIO39 */
78 "NC", /* GPIO40 */
79 "CAM_GPIO0", /* GPIO41 */
80 "NC", /* GPIO42 */
81 "NC", /* GPIO43 */
82 "NC", /* GPIO44 */
83 "NC", /* GPIO45 */
84 "HDMI_HPD_N",
85 "STATUS_LED_N",
86 /* Used by SD Card */
87 "SD_CLK_R",
88 "SD_CMD_R",
89 "SD_DATA0_R",
90 "SD_DATA1_R",
91 "SD_DATA2_R",
92 "SD_DATA3_R";
93
94 pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
30 95
31 /* I2S interface */ 96 /* I2S interface */
32 i2s_alt0: i2s_alt0 { 97 i2s_alt0: i2s_alt0 {
diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
index e9b47b2bbc33..6ddf7dfe3f72 100644
--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
@@ -39,22 +39,21 @@
39 }; 39 };
40 40
41 alt0: alt0 { 41 alt0: alt0 {
42 brcm,pins = <0 1 2 3 4 5 7 8 9 10 11 14 15 40 45>; 42 brcm,pins = <4 5 7 8 9 10 11 14 15>;
43 brcm,function = <BCM2835_FSEL_ALT0>; 43 brcm,function = <BCM2835_FSEL_ALT0>;
44 }; 44 };
45
46 alt3: alt3 {
47 brcm,pins = <48 49 50 51 52 53>;
48 brcm,function = <BCM2835_FSEL_ALT3>;
49 };
50}; 45};
51 46
52&i2c0 { 47&i2c0 {
48 pinctrl-names = "default";
49 pinctrl-0 = <&i2c0_gpio0>;
53 status = "okay"; 50 status = "okay";
54 clock-frequency = <100000>; 51 clock-frequency = <100000>;
55}; 52};
56 53
57&i2c1 { 54&i2c1 {
55 pinctrl-names = "default";
56 pinctrl-0 = <&i2c1_gpio2>;
58 status = "okay"; 57 status = "okay";
59 clock-frequency = <100000>; 58 clock-frequency = <100000>;
60}; 59};
@@ -64,11 +63,15 @@
64}; 63};
65 64
66&sdhci { 65&sdhci {
66 pinctrl-names = "default";
67 pinctrl-0 = <&emmc_gpio48>;
67 status = "okay"; 68 status = "okay";
68 bus-width = <4>; 69 bus-width = <4>;
69}; 70};
70 71
71&pwm { 72&pwm {
73 pinctrl-names = "default";
74 pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
72 status = "okay"; 75 status = "okay";
73}; 76};
74 77
diff --git a/arch/arm/boot/dts/bcm2835.dtsi b/arch/arm/boot/dts/bcm2835.dtsi
index a78759e73710..0890d97e674d 100644
--- a/arch/arm/boot/dts/bcm2835.dtsi
+++ b/arch/arm/boot/dts/bcm2835.dtsi
@@ -23,3 +23,9 @@
23 }; 23 };
24 }; 24 };
25}; 25};
26
27/* enable thermal sensor with the correct compatible property set */
28&thermal {
29 compatible = "brcm,bcm2835-thermal";
30 status = "okay";
31};
diff --git a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
index 39dccf62ac96..bf19e8cfb9e6 100644
--- a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
+++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
@@ -27,7 +27,7 @@
27}; 27};
28 28
29&gpio { 29&gpio {
30 pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>; 30 pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
31 31
32 /* I2S interface */ 32 /* I2S interface */
33 i2s_alt0: i2s_alt0 { 33 i2s_alt0: i2s_alt0 {
diff --git a/arch/arm/boot/dts/bcm2836.dtsi b/arch/arm/boot/dts/bcm2836.dtsi
index 9d0651d8f373..519a44f5d25a 100644
--- a/arch/arm/boot/dts/bcm2836.dtsi
+++ b/arch/arm/boot/dts/bcm2836.dtsi
@@ -76,3 +76,9 @@
76 interrupt-parent = <&local_intc>; 76 interrupt-parent = <&local_intc>;
77 interrupts = <8>; 77 interrupts = <8>;
78}; 78};
79
80/* enable thermal sensor with the correct compatible property set */
81&thermal {
82 compatible = "brcm,bcm2836-thermal";
83 status = "okay";
84};
diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
index 46d46d894a44..9a44da190897 100644
--- a/arch/arm/boot/dts/bcm283x.dtsi
+++ b/arch/arm/boot/dts/bcm283x.dtsi
@@ -104,7 +104,7 @@
104 reg = <0x7e104000 0x10>; 104 reg = <0x7e104000 0x10>;
105 }; 105 };
106 106
107 mailbox: mailbox@7e00b800 { 107 mailbox: mailbox@7e00b880 {
108 compatible = "brcm,bcm2835-mbox"; 108 compatible = "brcm,bcm2835-mbox";
109 reg = <0x7e00b880 0x40>; 109 reg = <0x7e00b880 0x40>;
110 interrupts = <0 1>; 110 interrupts = <0 1>;
@@ -132,6 +132,209 @@
132 132
133 interrupt-controller; 133 interrupt-controller;
134 #interrupt-cells = <2>; 134 #interrupt-cells = <2>;
135
136 /* Defines pin muxing groups according to
137 * BCM2835-ARM-Peripherals.pdf page 102.
138 *
139 * While each pin can have its mux selected
140 * for various functions individually, some
141 * groups only make sense to switch to a
142 * particular function together.
143 */
144 dpi_gpio0: dpi_gpio0 {
145 brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11
146 12 13 14 15 16 17 18 19
147 20 21 22 23 24 25 26 27>;
148 brcm,function = <BCM2835_FSEL_ALT2>;
149 };
150 emmc_gpio22: emmc_gpio22 {
151 brcm,pins = <22 23 24 25 26 27>;
152 brcm,function = <BCM2835_FSEL_ALT3>;
153 };
154 emmc_gpio34: emmc_gpio34 {
155 brcm,pins = <34 35 36 37 38 39>;
156 brcm,function = <BCM2835_FSEL_ALT3>;
157 brcm,pull = <BCM2835_PUD_OFF
158 BCM2835_PUD_UP
159 BCM2835_PUD_UP
160 BCM2835_PUD_UP
161 BCM2835_PUD_UP
162 BCM2835_PUD_UP>;
163 };
164 emmc_gpio48: emmc_gpio48 {
165 brcm,pins = <48 49 50 51 52 53>;
166 brcm,function = <BCM2835_FSEL_ALT3>;
167 };
168
169 gpclk0_gpio4: gpclk0_gpio4 {
170 brcm,pins = <4>;
171 brcm,function = <BCM2835_FSEL_ALT0>;
172 };
173 gpclk1_gpio5: gpclk1_gpio5 {
174 brcm,pins = <5>;
175 brcm,function = <BCM2835_FSEL_ALT0>;
176 };
177 gpclk1_gpio42: gpclk1_gpio42 {
178 brcm,pins = <42>;
179 brcm,function = <BCM2835_FSEL_ALT0>;
180 };
181 gpclk1_gpio44: gpclk1_gpio44 {
182 brcm,pins = <44>;
183 brcm,function = <BCM2835_FSEL_ALT0>;
184 };
185 gpclk2_gpio6: gpclk2_gpio6 {
186 brcm,pins = <6>;
187 brcm,function = <BCM2835_FSEL_ALT0>;
188 };
189 gpclk2_gpio43: gpclk2_gpio43 {
190 brcm,pins = <43>;
191 brcm,function = <BCM2835_FSEL_ALT0>;
192 };
193
194 i2c0_gpio0: i2c0_gpio0 {
195 brcm,pins = <0 1>;
196 brcm,function = <BCM2835_FSEL_ALT0>;
197 };
198 i2c0_gpio32: i2c0_gpio32 {
199 brcm,pins = <32 34>;
200 brcm,function = <BCM2835_FSEL_ALT0>;
201 };
202 i2c0_gpio44: i2c0_gpio44 {
203 brcm,pins = <44 45>;
204 brcm,function = <BCM2835_FSEL_ALT1>;
205 };
206 i2c1_gpio2: i2c1_gpio2 {
207 brcm,pins = <2 3>;
208 brcm,function = <BCM2835_FSEL_ALT0>;
209 };
210 i2c1_gpio44: i2c1_gpio44 {
211 brcm,pins = <44 45>;
212 brcm,function = <BCM2835_FSEL_ALT2>;
213 };
214 i2c_slave_gpio18: i2c_slave_gpio18 {
215 brcm,pins = <18 19 20 21>;
216 brcm,function = <BCM2835_FSEL_ALT3>;
217 };
218
219 jtag_gpio4: jtag_gpio4 {
220 brcm,pins = <4 5 6 12 13>;
221 brcm,function = <BCM2835_FSEL_ALT4>;
222 };
223 jtag_gpio22: jtag_gpio22 {
224 brcm,pins = <22 23 24 25 26 27>;
225 brcm,function = <BCM2835_FSEL_ALT4>;
226 };
227
228 pcm_gpio18: pcm_gpio18 {
229 brcm,pins = <18 19 20 21>;
230 brcm,function = <BCM2835_FSEL_ALT0>;
231 };
232 pcm_gpio28: pcm_gpio28 {
233 brcm,pins = <28 29 30 31>;
234 brcm,function = <BCM2835_FSEL_ALT2>;
235 };
236
237 pwm0_gpio12: pwm0_gpio12 {
238 brcm,pins = <12>;
239 brcm,function = <BCM2835_FSEL_ALT0>;
240 };
241 pwm0_gpio18: pwm0_gpio18 {
242 brcm,pins = <18>;
243 brcm,function = <BCM2835_FSEL_ALT5>;
244 };
245 pwm0_gpio40: pwm0_gpio40 {
246 brcm,pins = <40>;
247 brcm,function = <BCM2835_FSEL_ALT0>;
248 };
249 pwm1_gpio13: pwm1_gpio13 {
250 brcm,pins = <13>;
251 brcm,function = <BCM2835_FSEL_ALT0>;
252 };
253 pwm1_gpio19: pwm1_gpio19 {
254 brcm,pins = <19>;
255 brcm,function = <BCM2835_FSEL_ALT5>;
256 };
257 pwm1_gpio41: pwm1_gpio41 {
258 brcm,pins = <41>;
259 brcm,function = <BCM2835_FSEL_ALT0>;
260 };
261 pwm1_gpio45: pwm1_gpio45 {
262 brcm,pins = <45>;
263 brcm,function = <BCM2835_FSEL_ALT0>;
264 };
265
266 sdhost_gpio48: sdhost_gpio48 {
267 brcm,pins = <48 49 50 51 52 53>;
268 brcm,function = <BCM2835_FSEL_ALT0>;
269 };
270
271 spi0_gpio7: spi0_gpio7 {
272 brcm,pins = <7 8 9 10 11>;
273 brcm,function = <BCM2835_FSEL_ALT0>;
274 };
275 spi0_gpio35: spi0_gpio35 {
276 brcm,pins = <35 36 37 38 39>;
277 brcm,function = <BCM2835_FSEL_ALT0>;
278 };
279 spi1_gpio16: spi1_gpio16 {
280 brcm,pins = <16 17 18 19 20 21>;
281 brcm,function = <BCM2835_FSEL_ALT4>;
282 };
283 spi2_gpio40: spi2_gpio40 {
284 brcm,pins = <40 41 42 43 44 45>;
285 brcm,function = <BCM2835_FSEL_ALT4>;
286 };
287
288 uart0_gpio14: uart0_gpio14 {
289 brcm,pins = <14 15>;
290 brcm,function = <BCM2835_FSEL_ALT0>;
291 };
292 /* Separate from the uart0_gpio14 group
293 * because it conflicts with spi1_gpio16, and
294 * people often run uart0 on the two pins
295 * without flow contrl.
296 */
297 uart0_ctsrts_gpio16: uart0_ctsrts_gpio16 {
298 brcm,pins = <16 17>;
299 brcm,function = <BCM2835_FSEL_ALT3>;
300 };
301 uart0_gpio30: uart0_gpio30 {
302 brcm,pins = <30 31>;
303 brcm,function = <BCM2835_FSEL_ALT3>;
304 };
305 uart0_ctsrts_gpio32: uart0_ctsrts_gpio32 {
306 brcm,pins = <32 33>;
307 brcm,function = <BCM2835_FSEL_ALT3>;
308 };
309
310 uart1_gpio14: uart1_gpio14 {
311 brcm,pins = <14 15>;
312 brcm,function = <BCM2835_FSEL_ALT5>;
313 };
314 uart1_ctsrts_gpio16: uart1_ctsrts_gpio16 {
315 brcm,pins = <16 17>;
316 brcm,function = <BCM2835_FSEL_ALT5>;
317 };
318 uart1_gpio32: uart1_gpio32 {
319 brcm,pins = <32 33>;
320 brcm,function = <BCM2835_FSEL_ALT5>;
321 };
322 uart1_ctsrts_gpio30: uart1_ctsrts_gpio30 {
323 brcm,pins = <30 31>;
324 brcm,function = <BCM2835_FSEL_ALT5>;
325 };
326 uart1_gpio36: uart1_gpio36 {
327 brcm,pins = <36 37 38 39>;
328 brcm,function = <BCM2835_FSEL_ALT2>;
329 };
330 uart1_gpio40: uart1_gpio40 {
331 brcm,pins = <40 41>;
332 brcm,function = <BCM2835_FSEL_ALT5>;
333 };
334 uart1_ctsrts_gpio42: uart1_ctsrts_gpio42 {
335 brcm,pins = <42 43>;
336 brcm,function = <BCM2835_FSEL_ALT5>;
337 };
135 }; 338 };
136 339
137 uart0: serial@7e201000 { 340 uart0: serial@7e201000 {
@@ -187,6 +390,13 @@
187 interrupts = <2 14>; /* pwa1 */ 390 interrupts = <2 14>; /* pwa1 */
188 }; 391 };
189 392
393 thermal: thermal@7e212000 {
394 compatible = "brcm,bcm2835-thermal";
395 reg = <0x7e212000 0x8>;
396 clocks = <&clocks BCM2835_CLOCK_TSENS>;
397 status = "disabled";
398 };
399
190 aux: aux@0x7e215000 { 400 aux: aux@0x7e215000 {
191 compatible = "brcm,bcm2835-aux"; 401 compatible = "brcm,bcm2835-aux";
192 #clock-cells = <1>; 402 #clock-cells = <1>;
diff --git a/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts b/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
new file mode 100644
index 000000000000..35e6ed6a3ef7
--- /dev/null
+++ b/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
@@ -0,0 +1,64 @@
1/*
2 * Copyright 2016 Luxul Inc.
3 *
4 * Licensed under the ISC license.
5 */
6
7/dts-v1/;
8
9#include "bcm4708.dtsi"
10
11/ {
12 compatible = "luxul,xap-1510v1", "brcm,bcm4708";
13 model = "Luxul XAP-1510 V1";
14
15 chosen {
16 bootargs = "console=ttyS0,115200 earlycon";
17 };
18
19 memory {
20 reg = <0x00000000 0x08000000>;
21 };
22
23 leds {
24 compatible = "gpio-leds";
25
26 5ghz {
27 label = "bcm53xx:blue:5ghz";
28 gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
29 linux,default-trigger = "none";
30 };
31
32 2ghz {
33 label = "bcm53xx:blue:2ghz";
34 gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
35 linux,default-trigger = "none";
36 };
37
38 status {
39 label = "bcm53xx:green:status";
40 gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
41 linux,default-trigger = "timer";
42 };
43 };
44
45 gpio-keys {
46 compatible = "gpio-keys";
47 #address-cells = <1>;
48 #size-cells = <0>;
49
50 restart {
51 label = "Reset";
52 linux,code = <KEY_RESTART>;
53 gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
54 };
55 };
56};
57
58&uart0 {
59 status = "okay";
60};
61
62&spi_nor {
63 status = "okay";
64};
diff --git a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
index 8ade7def2e8a..eac0f52e5ebd 100644
--- a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
+++ b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
@@ -9,7 +9,7 @@
9 9
10/dts-v1/; 10/dts-v1/;
11 11
12#include "bcm4708.dtsi" 12#include "bcm4709.dtsi"
13#include "bcm5301x-nand-cs0-bch8.dtsi" 13#include "bcm5301x-nand-cs0-bch8.dtsi"
14 14
15/ { 15/ {
diff --git a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
index 0653e7ef248c..aab39c9864da 100644
--- a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
+++ b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
@@ -9,7 +9,7 @@
9 9
10/dts-v1/; 10/dts-v1/;
11 11
12#include "bcm4708.dtsi" 12#include "bcm4709.dtsi"
13#include "bcm5301x-nand-cs0-bch8.dtsi" 13#include "bcm5301x-nand-cs0-bch8.dtsi"
14 14
15/ { 15/ {
diff --git a/arch/arm/boot/dts/bcm4709-netgear-r7000.dts b/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
index a22ed144040b..fd38d2aa3521 100644
--- a/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
+++ b/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
@@ -9,7 +9,7 @@
9 9
10/dts-v1/; 10/dts-v1/;
11 11
12#include "bcm4708.dtsi" 12#include "bcm4709.dtsi"
13#include "bcm5301x-nand-cs0-bch8.dtsi" 13#include "bcm5301x-nand-cs0-bch8.dtsi"
14 14
15/ { 15/ {
diff --git a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
index ca181516c28a..92f8a7219e98 100644
--- a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
+++ b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
@@ -9,7 +9,7 @@
9 9
10/dts-v1/; 10/dts-v1/;
11 11
12#include "bcm4708.dtsi" 12#include "bcm4709.dtsi"
13#include "bcm5301x-nand-cs0-bch8.dtsi" 13#include "bcm5301x-nand-cs0-bch8.dtsi"
14 14
15/ { 15/ {
@@ -107,6 +107,10 @@
107 }; 107 };
108}; 108};
109 109
110&uart0 {
111 status = "okay";
112};
113
110&usb2 { 114&usb2 {
111 vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>; 115 vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
112}; 116};
diff --git a/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts b/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
new file mode 100644
index 000000000000..9a92c24ac2d8
--- /dev/null
+++ b/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
@@ -0,0 +1,114 @@
1/*
2 * Copyright (C) 2016 Rafał Miłecki <rafal@milecki.pl>
3 *
4 * Licensed under the ISC license.
5 */
6
7/dts-v1/;
8
9#include "bcm4709.dtsi"
10
11/ {
12 compatible = "tplink,archer-c9-v1", "brcm,bcm4709", "brcm,bcm4708";
13 model = "TP-LINK Archer C9 V1";
14
15 chosen {
16 bootargs = "console=ttyS0,115200 earlycon";
17 };
18
19 memory {
20 reg = <0x00000000 0x08000000>;
21 };
22
23 leds {
24 compatible = "gpio-leds";
25
26 lan {
27 label = "bcm53xx:blue:lan";
28 gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
29 linux,default-trigger = "default-off";
30 };
31
32 wps {
33 label = "bcm53xx:blue:wps";
34 gpios = <&chipcommon 2 GPIO_ACTIVE_HIGH>;
35 linux,default-trigger = "default-off";
36 };
37
38 2ghz {
39 label = "bcm53xx:blue:2ghz";
40 gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
41 linux,default-trigger = "default-off";
42 };
43
44 5ghz {
45 label = "bcm53xx:blue:5ghz";
46 gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
47 linux,default-trigger = "default-off";
48 };
49
50 usb3 {
51 label = "bcm53xx:blue:usb3";
52 gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
53 linux,default-trigger = "default-off";
54 };
55
56 usb2 {
57 label = "bcm53xx:blue:usb2";
58 gpios = <&chipcommon 7 GPIO_ACTIVE_HIGH>;
59 linux,default-trigger = "default-off";
60 };
61
62 wan-blue {
63 label = "bcm53xx:blue:wan";
64 gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
65 linux,default-trigger = "default-off";
66 };
67
68 wan-amber {
69 label = "bcm53xx:amber:wan";
70 gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
71 linux,default-trigger = "default-off";
72 };
73
74 power {
75 label = "bcm53xx:blue:power";
76 gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
77 linux,default-trigger = "default-on";
78 };
79 };
80
81 gpio-keys {
82 compatible = "gpio-keys";
83 #address-cells = <1>;
84 #size-cells = <0>;
85
86 wps {
87 label = "WPS";
88 linux,code = <KEY_WPS_BUTTON>;
89 gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
90 };
91
92 restart {
93 label = "Reset";
94 linux,code = <KEY_RESTART>;
95 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
96 };
97 };
98};
99
100&uart0 {
101 status = "okay";
102};
103
104&usb2 {
105 vcc-gpio = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
106};
107
108&usb3 {
109 vcc-gpio = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
110};
111
112&spi_nor {
113 status = "okay";
114};
diff --git a/arch/arm/boot/dts/bcm4709.dtsi b/arch/arm/boot/dts/bcm4709.dtsi
new file mode 100644
index 000000000000..f03976597a6d
--- /dev/null
+++ b/arch/arm/boot/dts/bcm4709.dtsi
@@ -0,0 +1,11 @@
1/*
2 * Copyright (C) 2016 Rafał Miłecki <rafal@milecki.pl>
3 *
4 * Licensed under the ISC license.
5 */
6
7#include "bcm4708.dtsi"
8
9&uart0 {
10 clock-frequency = <125000000>;
11};
diff --git a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
index c8c0b3616935..661348dbb7ce 100644
--- a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
+++ b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
@@ -9,7 +9,7 @@
9 9
10/dts-v1/; 10/dts-v1/;
11 11
12#include "bcm4708.dtsi" 12#include "bcm47094.dtsi"
13#include "bcm5301x-nand-cs0-bch1.dtsi" 13#include "bcm5301x-nand-cs0-bch1.dtsi"
14 14
15/ { 15/ {
@@ -107,7 +107,6 @@
107 107
108&uart0 { 108&uart0 {
109 status = "okay"; 109 status = "okay";
110 clock-frequency = <125000000>;
111}; 110};
112 111
113&usb3 { 112&usb3 {
diff --git a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
new file mode 100644
index 000000000000..169b35fe5651
--- /dev/null
+++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
@@ -0,0 +1,111 @@
1/*
2 * Copyright 2016 Luxul Inc.
3 *
4 * Licensed under the ISC license.
5 */
6
7/dts-v1/;
8
9#include "bcm47094.dtsi"
10#include "bcm5301x-nand-cs0-bch4.dtsi"
11
12/ {
13 compatible = "luxul,xwr-3100v1", "brcm,bcm47094", "brcm,bcm4708";
14 model = "Luxul XWR-3100 V1";
15
16 chosen {
17 bootargs = "console=ttyS0,115200 earlycon";
18 };
19
20 memory {
21 reg = <0x00000000 0x08000000>;
22 };
23
24 leds {
25 compatible = "gpio-leds";
26
27 power {
28 label = "bcm53xx:green:power";
29 gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
30 linux,default-trigger = "default-on";
31 };
32
33 lan3 {
34 label = "bcm53xx:green:lan1";
35 gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
36 linux,default-trigger = "default-off";
37 };
38
39 lan4 {
40 label = "bcm53xx:green:lan0";
41 gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
42 linux,default-trigger = "default-off";
43 };
44
45 wan {
46 label = "bcm53xx:green:wan";
47 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
48 linux,default-trigger = "default-off";
49 };
50
51 lan1 {
52 label = "bcm53xx:green:lan3";
53 gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
54 linux,default-trigger = "default-off";
55 };
56
57 lan2 {
58 label = "bcm53xx:green:lan2";
59 gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
60 linux,default-trigger = "default-off";
61 };
62
63 usb3 {
64 label = "bcm53xx:green:usb3";
65 gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
66 linux,default-trigger = "default-off";
67 };
68
69 status {
70 label = "bcm53xx:green:status";
71 gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
72 linux,default-trigger = "timer";
73 };
74
75 2ghz {
76 label = "bcm53xx:green:2ghz";
77 gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
78 linux,default-trigger = "default-off";
79 };
80
81 5ghz {
82 label = "bcm53xx:green:5ghz";
83 gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
84 linux,default-trigger = "default-off";
85 };
86 };
87
88 gpio-keys {
89 compatible = "gpio-keys";
90 #address-cells = <1>;
91 #size-cells = <0>;
92
93 restart {
94 label = "Reset";
95 linux,code = <KEY_RESTART>;
96 gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
97 };
98 };
99};
100
101&uart0 {
102 status = "okay";
103};
104
105&usb3 {
106 vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
107};
108
109&spi_nor {
110 status = "okay";
111};
diff --git a/arch/arm/boot/dts/bcm47094-netgear-r8500.dts b/arch/arm/boot/dts/bcm47094-netgear-r8500.dts
new file mode 100644
index 000000000000..521b4155de60
--- /dev/null
+++ b/arch/arm/boot/dts/bcm47094-netgear-r8500.dts
@@ -0,0 +1,103 @@
1/*
2 * Copyright (C) 2016 Rafał Miłecki <rafal@milecki.pl>
3 *
4 * Licensed under the ISC license.
5 */
6
7/dts-v1/;
8
9#include "bcm47094.dtsi"
10#include "bcm5301x-nand-cs0-bch8.dtsi"
11
12/ {
13 compatible = "netgear,r8500", "brcm,bcm47094", "brcm,bcm4708";
14 model = "Netgear R8500";
15
16 chosen {
17 bootargs = "console=ttyS0,115200";
18 };
19
20 memory {
21 reg = <0x00000000 0x08000000>;
22 };
23
24 leds {
25 compatible = "gpio-leds";
26
27 power0 {
28 label = "bcm53xx:white:power";
29 gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
30 linux,default-trigger = "default-on";
31 };
32
33 power1 {
34 label = "bcm53xx:amber:power";
35 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
36 linux,default-trigger = "default-off";
37 };
38
39 5ghz-1 {
40 label = "bcm53xx:white:5ghz-1";
41 gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
42 linux,default-trigger = "default-off";
43 };
44
45 5ghz-2 {
46 label = "bcm53xx:white:5ghz-2";
47 gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>;
48 linux,default-trigger = "default-off";
49 };
50
51 2ghz {
52 label = "bcm53xx:white:2ghz";
53 gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
54 linux,default-trigger = "default-off";
55 };
56
57 usb2 {
58 label = "bcm53xx:white:usb2";
59 gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
60 linux,default-trigger = "default-off";
61 };
62
63 usb3 {
64 label = "bcm53xx:white:usb3";
65 gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
66 linux,default-trigger = "default-off";
67 };
68 };
69
70 gpio-keys {
71 compatible = "gpio-keys";
72 #address-cells = <1>;
73 #size-cells = <0>;
74
75 brightness {
76 label = "Backlight";
77 linux,code = <KEY_BRIGHTNESS_ZERO>;
78 gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
79 };
80
81 restart {
82 label = "Reset";
83 linux,code = <KEY_RESTART>;
84 gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
85 };
86
87 wps {
88 label = "WPS";
89 linux,code = <KEY_WPS_BUTTON>;
90 gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
91 };
92
93 rfkill {
94 label = "WiFi";
95 linux,code = <KEY_RFKILL>;
96 gpios = <&chipcommon 20 GPIO_ACTIVE_LOW>;
97 };
98 };
99};
100
101&uart0 {
102 status = "okay";
103};
diff --git a/arch/arm/boot/dts/bcm47094.dtsi b/arch/arm/boot/dts/bcm47094.dtsi
new file mode 100644
index 000000000000..4f09aa0114e6
--- /dev/null
+++ b/arch/arm/boot/dts/bcm47094.dtsi
@@ -0,0 +1,17 @@
1/*
2 * Copyright (C) 2016 Rafał Miłecki <rafal@milecki.pl>
3 *
4 * Licensed under the ISC license.
5 */
6
7#include "bcm4708.dtsi"
8
9/ {
10 usb3_phy: usb3-phy {
11 compatible = "brcm,ns-bx-usb3-phy";
12 };
13};
14
15&uart0 {
16 clock-frequency = <125000000>;
17};
diff --git a/arch/arm/boot/dts/bcm47189-tenda-ac9.dts b/arch/arm/boot/dts/bcm47189-tenda-ac9.dts
new file mode 100644
index 000000000000..4403ae8790c2
--- /dev/null
+++ b/arch/arm/boot/dts/bcm47189-tenda-ac9.dts
@@ -0,0 +1,74 @@
1/*
2 * Copyright (C) 2016 Rafał Miłecki <rafal@milecki.pl>
3 *
4 * Licensed under the ISC license.
5 */
6
7/dts-v1/;
8
9#include "bcm53573.dtsi"
10
11/ {
12 compatible = "tenda,ac9", "brcm,bcm47189", "brcm,bcm53573";
13 model = "Tenda AC9";
14
15 chosen {
16 bootargs = "console=ttyS0,115200 earlycon";
17 };
18
19 memory {
20 reg = <0x00000000 0x08000000>;
21 };
22
23 leds {
24 compatible = "gpio-leds";
25
26 usb {
27 label = "bcm53xx:blue:usb";
28 gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
29 linux,default-trigger = "default-off";
30 };
31
32 wps {
33 label = "bcm53xx:blue:wps";
34 gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
35 linux,default-trigger = "default-off";
36 };
37
38 5ghz {
39 label = "bcm53xx:blue:5ghz";
40 gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
41 linux,default-trigger = "default-off";
42 };
43
44 system {
45 label = "bcm53xx:blue:system";
46 gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
47 linux,default-trigger = "timer";
48 };
49 };
50
51 gpio-keys {
52 compatible = "gpio-keys";
53 #address-cells = <1>;
54 #size-cells = <0>;
55
56 rfkill {
57 label = "WiFi";
58 linux,code = <KEY_RFKILL>;
59 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
60 };
61
62 restart {
63 label = "Reset";
64 linux,code = <KEY_RESTART>;
65 gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
66 };
67
68 wps {
69 label = "WPS";
70 linux,code = <KEY_WPS_BUTTON>;
71 gpios = <&chipcommon 9 GPIO_ACTIVE_LOW>;
72 };
73 };
74};
diff --git a/arch/arm/boot/dts/bcm5301x-nand-cs0-bch4.dtsi b/arch/arm/boot/dts/bcm5301x-nand-cs0-bch4.dtsi
new file mode 100644
index 000000000000..b4e875df9528
--- /dev/null
+++ b/arch/arm/boot/dts/bcm5301x-nand-cs0-bch4.dtsi
@@ -0,0 +1,13 @@
1/*
2 * Copyright 2016 Luxul Inc.
3 *
4 * Licensed under the ISC license.
5 */
6
7#include "bcm5301x-nand-cs0.dtsi"
8
9&nandcs {
10 nand-ecc-algo = "bch";
11 nand-ecc-strength = <4>;
12 nand-ecc-step-size = <512>;
13};
diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index ae4b3880616d..f09a2bb08979 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -149,6 +149,13 @@
149 clock-names = "phy-ref-clk"; 149 clock-names = "phy-ref-clk";
150 }; 150 };
151 151
152 usb3_phy: usb3-phy {
153 compatible = "brcm,ns-ax-usb3-phy";
154 reg = <0x18105000 0x1000>, <0x18003000 0x1000>;
155 reg-names = "dmp", "ccb-mii";
156 #phy-cells = <0>;
157 };
158
152 axi@18000000 { 159 axi@18000000 {
153 compatible = "brcm,bus-axi"; 160 compatible = "brcm,bus-axi";
154 reg = <0x18000000 0x1000>; 161 reg = <0x18000000 0x1000>;
diff --git a/arch/arm/boot/dts/bcm53573.dtsi b/arch/arm/boot/dts/bcm53573.dtsi
new file mode 100644
index 000000000000..e2c496a96c32
--- /dev/null
+++ b/arch/arm/boot/dts/bcm53573.dtsi
@@ -0,0 +1,159 @@
1/*
2 * Copyright (C) 2016 Rafał Miłecki <rafal@milecki.pl>
3 *
4 * Licensed under the ISC license.
5 */
6
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/input/input.h>
9#include <dt-bindings/interrupt-controller/irq.h>
10#include <dt-bindings/interrupt-controller/arm-gic.h>
11#include "skeleton.dtsi"
12
13/ {
14 interrupt-parent = <&gic>;
15
16 chosen {
17 stdout-path = &uart0;
18 };
19
20 cpus {
21 #address-cells = <1>;
22 #size-cells = <0>;
23
24 cpu@0 {
25 device_type = "cpu";
26 compatible = "arm,cortex-a7";
27 reg = <0x0>;
28 };
29 };
30
31 mpcore {
32 compatible = "simple-bus";
33 ranges = <0x00000000 0x18310000 0x00008000>;
34 #address-cells = <1>;
35 #size-cells = <1>;
36
37 gic: interrupt-controller@1000 {
38 compatible = "arm,cortex-a7-gic";
39 #interrupt-cells = <3>;
40 #address-cells = <0>;
41 interrupt-controller;
42 reg = <0x1000 0x1000>,
43 <0x2000 0x0100>;
44 };
45 };
46
47 clocks {
48 #address-cells = <1>;
49 #size-cells = <1>;
50 ranges;
51
52 alp: oscillator {
53 #clock-cells = <0>;
54 compatible = "fixed-clock";
55 clock-frequency = <40000000>;
56 };
57 };
58
59 axi@18000000 {
60 compatible = "brcm,bus-axi";
61 reg = <0x18000000 0x1000>;
62 ranges = <0x00000000 0x18000000 0x00100000>;
63 #address-cells = <1>;
64 #size-cells = <1>;
65
66 #interrupt-cells = <1>;
67 interrupt-map-mask = <0x000fffff 0xffff>;
68 interrupt-map =
69 /* ChipCommon */
70 <0x00000000 0 &gic GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
71
72 /* IEEE 802.11 0 */
73 <0x00001000 0 &gic GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
74
75 /* PCIe Controller 0 */
76 <0x00002000 0 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
77 <0x00002000 1 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
78 <0x00002000 2 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
79 <0x00002000 3 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
80 <0x00002000 4 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
81 <0x00002000 5 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
82
83 /* USB 2.0 Controller */
84 <0x00004000 0 &gic GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
85
86 /* Ethernet Controller 0 */
87 <0x00005000 0 &gic GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
88
89 /* IEEE 802.11 1 */
90 <0x0000a000 0 &gic GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
91
92 /* Ethernet Controller 1 */
93 <0x0000b000 0 &gic GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
94
95 chipcommon: chipcommon@0 {
96 compatible = "simple-bus";
97 reg = <0x00000000 0x1000>;
98 ranges;
99
100 #address-cells = <1>;
101 #size-cells = <1>;
102
103 gpio-controller;
104 #gpio-cells = <2>;
105
106 uart0: serial@0300 {
107 compatible = "ns16550a";
108 reg = <0x0300 0x100>;
109 interrupt-parent = <&gic>;
110 interrupts = <GIC_PPI 16 IRQ_TYPE_LEVEL_HIGH>;
111 clocks = <&alp>;
112 status = "okay";
113 };
114 };
115
116 usb2: usb2@4000 {
117 reg = <0x4000 0x1000>;
118 ranges;
119 #address-cells = <1>;
120 #size-cells = <1>;
121
122 ehci: ehci@4000 {
123 compatible = "generic-ehci";
124 reg = <0x4000 0x1000>;
125 interrupt-parent = <&gic>;
126 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
127 };
128
129 ohci: ohci@d000 {
130 #usb-cells = <0>;
131
132 compatible = "generic-ohci";
133 reg = <0xd000 0x1000>;
134 interrupt-parent = <&gic>;
135 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
136 };
137 };
138
139 gmac0: ethernet@5000 {
140 reg = <0x5000 0x1000>;
141 };
142
143 gmac1: ethernet@b000 {
144 reg = <0xb000 0x1000>;
145 };
146
147 pmu@12000 {
148 compatible = "simple-mfd", "syscon";
149 reg = <0x00012000 0x00001000>;
150
151 ilp: ilp {
152 compatible = "brcm,bcm53573-ilp";
153 clocks = <&alp>;
154 #clock-cells = <0>;
155 clock-output-names = "ilp";
156 };
157 };
158 };
159};
diff --git a/arch/arm/boot/dts/bcm958625k.dts b/arch/arm/boot/dts/bcm958625k.dts
index 05c5f98c8782..59d96fb91583 100644
--- a/arch/arm/boot/dts/bcm958625k.dts
+++ b/arch/arm/boot/dts/bcm958625k.dts
@@ -139,3 +139,37 @@
139 groups = "nand_grp"; 139 groups = "nand_grp";
140 }; 140 };
141}; 141};
142
143&qspi {
144 bspi-sel = <0>;
145 flash: m25p80@0 {
146 #address-cells = <1>;
147 #size-cells = <1>;
148 compatible = "m25p80";
149 reg = <0x0>;
150 spi-max-frequency = <12500000>;
151 m25p,fast-read;
152 spi-cpol;
153 spi-cpha;
154
155 partition@0 {
156 label = "boot";
157 reg = <0x00000000 0x000a0000>;
158 };
159
160 partition@a0000 {
161 label = "env";
162 reg = <0x000a0000 0x00060000>;
163 };
164
165 partition@100000 {
166 label = "system";
167 reg = <0x00100000 0x00600000>;
168 };
169
170 partition@700000 {
171 label = "rootfs";
172 reg = <0x00700000 0x01900000>;
173 };
174 };
175};
diff --git a/arch/arm/boot/dts/berlin2q-marvell-dmp.dts b/arch/arm/boot/dts/berlin2q-marvell-dmp.dts
index f485308840ab..57aa5f8a7c77 100644
--- a/arch/arm/boot/dts/berlin2q-marvell-dmp.dts
+++ b/arch/arm/boot/dts/berlin2q-marvell-dmp.dts
@@ -48,7 +48,7 @@
48 reg = <0x00000000 0x80000000>; 48 reg = <0x00000000 0x80000000>;
49 }; 49 };
50 50
51 choosen { 51 chosen {
52 bootargs = "earlyprintk"; 52 bootargs = "earlyprintk";
53 stdout-path = "serial0:115200n8"; 53 stdout-path = "serial0:115200n8";
54 }; 54 };
@@ -58,7 +58,7 @@
58 #address-cells = <1>; 58 #address-cells = <1>;
59 #size-cells = <0>; 59 #size-cells = <0>;
60 60
61 reg_usb0_vbus: regulator@0 { 61 reg_usb0_vbus: regulator_usb0 {
62 compatible = "regulator-fixed"; 62 compatible = "regulator-fixed";
63 regulator-name = "usb0_vbus"; 63 regulator-name = "usb0_vbus";
64 regulator-min-microvolt = <5000000>; 64 regulator-min-microvolt = <5000000>;
@@ -67,7 +67,7 @@
67 enable-active-high; 67 enable-active-high;
68 }; 68 };
69 69
70 reg_usb1_vbus: regulator@1 { 70 reg_usb1_vbus: regulator_usb1 {
71 compatible = "regulator-fixed"; 71 compatible = "regulator-fixed";
72 regulator-name = "usb1_vbus"; 72 regulator-name = "usb1_vbus";
73 regulator-min-microvolt = <5000000>; 73 regulator-min-microvolt = <5000000>;
@@ -76,7 +76,7 @@
76 enable-active-high; 76 enable-active-high;
77 }; 77 };
78 78
79 reg_usb2_vbus: regulator@2 { 79 reg_usb2_vbus: regulator_usb2 {
80 compatible = "regulator-fixed"; 80 compatible = "regulator-fixed";
81 regulator-name = "usb2_vbus"; 81 regulator-name = "usb2_vbus";
82 regulator-min-microvolt = <5000000>; 82 regulator-min-microvolt = <5000000>;
@@ -85,7 +85,7 @@
85 enable-active-high; 85 enable-active-high;
86 }; 86 };
87 87
88 reg_sdio1_vmmc: regulator@3 { 88 reg_sdio1_vmmc: regulator_sdio1_vmmc {
89 compatible = "regulator-fixed"; 89 compatible = "regulator-fixed";
90 regulator-min-microvolt = <3300000>; 90 regulator-min-microvolt = <3300000>;
91 regulator-max-microvolt = <3300000>; 91 regulator-max-microvolt = <3300000>;
@@ -95,7 +95,7 @@
95 gpio = <&portb 21 GPIO_ACTIVE_HIGH>; 95 gpio = <&portb 21 GPIO_ACTIVE_HIGH>;
96 }; 96 };
97 97
98 reg_sdio1_vqmmc: regulator@4 { 98 reg_sdio1_vqmmc: regulator_sido1_vqmmc {
99 compatible = "regulator-gpio"; 99 compatible = "regulator-gpio";
100 regulator-min-microvolt = <1800000>; 100 regulator-min-microvolt = <1800000>;
101 regulator-max-microvolt = <3300000>; 101 regulator-max-microvolt = <3300000>;
diff --git a/arch/arm/boot/dts/cloudengines-pogoplug-series-3.dts b/arch/arm/boot/dts/cloudengines-pogoplug-series-3.dts
new file mode 100644
index 000000000000..bfde32e37123
--- /dev/null
+++ b/arch/arm/boot/dts/cloudengines-pogoplug-series-3.dts
@@ -0,0 +1,94 @@
1/*
2 * cloudengines-pogoplug-series-3.dtsi - Device tree file for Cloud Engines PogoPlug Series 3
3 *
4 * Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com>
5 *
6 * Licensed under GPLv2 or later
7 */
8
9/dts-v1/;
10#include "ox820.dtsi"
11
12/ {
13 model = "Cloud Engines PogoPlug Series 3";
14
15 compatible = "cloudengines,pogoplugv3", "oxsemi,ox820";
16
17 chosen {
18 bootargs = "earlyprintk";
19 stdout-path = "serial0:115200n8";
20 };
21
22 memory {
23 /* 128Mbytes DDR */
24 reg = <0x60000000 0x8000000>;
25 };
26
27 aliases {
28 serial0 = &uart0;
29 gpio0 = &gpio0;
30 gpio1 = &gpio1;
31 };
32
33 leds {
34 compatible = "gpio-leds";
35
36 blue {
37 label = "pogoplug:blue";
38 gpios = <&gpio0 2 0>;
39 default-state = "keep";
40 };
41
42 orange {
43 label = "pogoplug:orange";
44 gpios = <&gpio1 16 1>;
45 default-state = "keep";
46 };
47
48 green {
49 label = "pogoplug:green";
50 gpios = <&gpio1 17 1>;
51 default-state = "keep";
52 };
53 };
54};
55
56&uart0 {
57 status = "okay";
58
59 pinctrl-names = "default";
60 pinctrl-0 = <&pinctrl_uart0>;
61};
62
63&nandc {
64 status = "okay";
65
66 pinctrl-names = "default";
67 pinctrl-0 = <&pinctrl_nand>;
68
69 nand@0 {
70 reg = <0>;
71 #address-cells = <1>;
72 #size-cells = <1>;
73 nand-ecc-mode = "soft";
74 nand-ecc-algo = "hamming";
75
76 partition@0 {
77 label = "boot";
78 reg = <0x00000000 0x00e00000>;
79 read-only;
80 };
81
82 partition@e00000 {
83 label = "ubi";
84 reg = <0x00e00000 0x07200000>;
85 };
86 };
87};
88
89&etha {
90 status = "okay";
91
92 pinctrl-names = "default";
93 pinctrl-0 = <&pinctrl_etha_mdio>;
94};
diff --git a/arch/arm/boot/dts/da850-lcdk.dts b/arch/arm/boot/dts/da850-lcdk.dts
index 7b8ab21fed6c..afcb4821deb1 100644
--- a/arch/arm/boot/dts/da850-lcdk.dts
+++ b/arch/arm/boot/dts/da850-lcdk.dts
@@ -13,6 +13,7 @@
13 13
14 aliases { 14 aliases {
15 serial2 = &serial2; 15 serial2 = &serial2;
16 ethernet0 = &eth0;
16 }; 17 };
17 18
18 chosen { 19 chosen {
@@ -122,7 +123,7 @@
122 bus-width = <4>; 123 bus-width = <4>;
123 pinctrl-names = "default"; 124 pinctrl-names = "default";
124 pinctrl-0 = <&mmc0_pins>; 125 pinctrl-0 = <&mmc0_pins>;
125 cd-gpios = <&gpio 64 GPIO_ACTIVE_HIGH>; 126 cd-gpios = <&gpio 64 GPIO_ACTIVE_LOW>;
126 status = "okay"; 127 status = "okay";
127}; 128};
128 129
@@ -158,6 +159,14 @@
158 rx-num-evt = <32>; 159 rx-num-evt = <32>;
159}; 160};
160 161
162&usb_phy {
163 status = "okay";
164};
165
166&usb0 {
167 status = "okay";
168};
169
161&aemif { 170&aemif {
162 pinctrl-names = "default"; 171 pinctrl-names = "default";
163 pinctrl-0 = <&nand_pins>; 172 pinctrl-0 = <&nand_pins>;
@@ -219,3 +228,11 @@
219 }; 228 };
220 }; 229 };
221}; 230};
231
232&prictrl {
233 status = "okay";
234};
235
236&memctrl {
237 status = "okay";
238};
diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi
index f79e1b91c680..104155d12c2f 100644
--- a/arch/arm/boot/dts/da850.dtsi
+++ b/arch/arm/boot/dts/da850.dtsi
@@ -36,6 +36,7 @@
36 reg = <0x14120 0x50>; 36 reg = <0x14120 0x50>;
37 #address-cells = <1>; 37 #address-cells = <1>;
38 #size-cells = <0>; 38 #size-cells = <0>;
39 #pinctrl-cells = <2>;
39 pinctrl-single,bit-per-mux; 40 pinctrl-single,bit-per-mux;
40 pinctrl-single,register-width = <32>; 41 pinctrl-single,register-width = <32>;
41 pinctrl-single,function-mask = <0xf>; 42 pinctrl-single,function-mask = <0xf>;
@@ -186,8 +187,44 @@
186 0xc 0x88888888 0xffffffff 187 0xc 0x88888888 0xffffffff
187 >; 188 >;
188 }; 189 };
190 lcd_pins: pinmux_lcd_pins {
191 pinctrl-single,bits = <
192 /*
193 * LCD_D[2], LCD_D[3], LCD_D[4], LCD_D[5],
194 * LCD_D[6], LCD_D[7]
195 */
196 0x40 0x22222200 0xffffff00
197 /*
198 * LCD_D[10], LCD_D[11], LCD_D[12], LCD_D[13],
199 * LCD_D[14], LCD_D[15], LCD_D[0], LCD_D[1]
200 */
201 0x44 0x22222222 0xffffffff
202 /* LCD_D[8], LCD_D[9] */
203 0x48 0x00000022 0x000000ff
204
205 /* LCD_PCLK */
206 0x48 0x02000000 0x0f000000
207 /* LCD_AC_ENB_CS, LCD_VSYNC, LCD_HSYNC */
208 0x4c 0x02000022 0x0f0000ff
209 >;
210 };
189 211
190 }; 212 };
213 prictrl: priority-controller@14110 {
214 compatible = "ti,da850-mstpri";
215 reg = <0x14110 0x0c>;
216 status = "disabled";
217 };
218 cfgchip: chip-controller@1417c {
219 compatible = "ti,da830-cfgchip", "syscon", "simple-mfd";
220 reg = <0x1417c 0x14>;
221
222 usb_phy: usb-phy {
223 compatible = "ti,da830-usb-phy";
224 #phy-cells = <1>;
225 status = "disabled";
226 };
227 };
191 edma0: edma@0 { 228 edma0: edma@0 {
192 compatible = "ti,edma3-tpcc"; 229 compatible = "ti,edma3-tpcc";
193 /* eDMA3 CC0: 0x01c0 0000 - 0x01c0 7fff */ 230 /* eDMA3 CC0: 0x01c0 0000 - 0x01c0 7fff */
@@ -280,6 +317,8 @@
280 mmc0: mmc@40000 { 317 mmc0: mmc@40000 {
281 compatible = "ti,da830-mmc"; 318 compatible = "ti,da830-mmc";
282 reg = <0x40000 0x1000>; 319 reg = <0x40000 0x1000>;
320 cap-sd-highspeed;
321 cap-mmc-highspeed;
283 interrupts = <16>; 322 interrupts = <16>;
284 dmas = <&edma0 16 0>, <&edma0 17 0>; 323 dmas = <&edma0 16 0>, <&edma0 17 0>;
285 dma-names = "rx", "tx"; 324 dma-names = "rx", "tx";
@@ -288,6 +327,8 @@
288 mmc1: mmc@21b000 { 327 mmc1: mmc@21b000 {
289 compatible = "ti,da830-mmc"; 328 compatible = "ti,da830-mmc";
290 reg = <0x21b000 0x1000>; 329 reg = <0x21b000 0x1000>;
330 cap-sd-highspeed;
331 cap-mmc-highspeed;
291 interrupts = <72>; 332 interrupts = <72>;
292 dmas = <&edma1 28 0>, <&edma1 29 0>; 333 dmas = <&edma1 28 0>, <&edma1 29 0>;
293 dma-names = "rx", "tx"; 334 dma-names = "rx", "tx";
@@ -336,6 +377,8 @@
336 num-cs = <6>; 377 num-cs = <6>;
337 ti,davinci-spi-intr-line = <1>; 378 ti,davinci-spi-intr-line = <1>;
338 interrupts = <20>; 379 interrupts = <20>;
380 dmas = <&edma0 14 0>, <&edma0 15 0>;
381 dma-names = "rx", "tx";
339 status = "disabled"; 382 status = "disabled";
340 }; 383 };
341 spi1: spi@30e000 { 384 spi1: spi@30e000 {
@@ -350,6 +393,16 @@
350 dma-names = "rx", "tx"; 393 dma-names = "rx", "tx";
351 status = "disabled"; 394 status = "disabled";
352 }; 395 };
396 usb0: usb@200000 {
397 compatible = "ti,da830-musb";
398 reg = <0x200000 0x10000>;
399 interrupts = <58>;
400 interrupt-names = "mc";
401 dr_mode = "otg";
402 phys = <&usb_phy 0>;
403 phy-names = "usb-phy";
404 status = "disabled";
405 };
353 mdio: mdio@224000 { 406 mdio: mdio@224000 {
354 compatible = "ti,davinci_mdio"; 407 compatible = "ti,davinci_mdio";
355 #address-cells = <1>; 408 #address-cells = <1>;
@@ -386,6 +439,11 @@
386 ti,davinci-gpio-unbanked = <0>; 439 ti,davinci-gpio-unbanked = <0>;
387 status = "disabled"; 440 status = "disabled";
388 }; 441 };
442 pinconf: pin-controller@22c00c {
443 compatible = "ti,da850-pupd";
444 reg = <0x22c00c 0x8>;
445 status = "disabled";
446 };
389 447
390 mcasp0: mcasp@100000 { 448 mcasp0: mcasp@100000 {
391 compatible = "ti,da830-mcasp-audio"; 449 compatible = "ti,da830-mcasp-audio";
@@ -399,6 +457,13 @@
399 <&edma0 0 1>; 457 <&edma0 0 1>;
400 dma-names = "tx", "rx"; 458 dma-names = "tx", "rx";
401 }; 459 };
460
461 display: display@213000 {
462 compatible = "ti,da850-tilcdc";
463 reg = <0x213000 0x1000>;
464 interrupts = <52>;
465 status = "disabled";
466 };
402 }; 467 };
403 aemif: aemif@68000000 { 468 aemif: aemif@68000000 {
404 compatible = "ti,da850-aemif"; 469 compatible = "ti,da850-aemif";
@@ -410,4 +475,9 @@
410 1 0 0x68000000 0x00008000>; 475 1 0 0x68000000 0x00008000>;
411 status = "disabled"; 476 status = "disabled";
412 }; 477 };
478 memctrl: memory-controller@b0000000 {
479 compatible = "ti,da850-ddr-controller";
480 reg = <0xb0000000 0xe8>;
481 status = "disabled";
482 };
413}; 483};
diff --git a/arch/arm/boot/dts/dm814x.dtsi b/arch/arm/boot/dts/dm814x.dtsi
index ff90a6ce6bdc..1facc5f12cef 100644
--- a/arch/arm/boot/dts/dm814x.dtsi
+++ b/arch/arm/boot/dts/dm814x.dtsi
@@ -373,6 +373,7 @@
373 reg = <0x800 0x438>; 373 reg = <0x800 0x438>;
374 #address-cells = <1>; 374 #address-cells = <1>;
375 #size-cells = <0>; 375 #size-cells = <0>;
376 #pinctrl-cells = <1>;
376 pinctrl-single,register-width = <32>; 377 pinctrl-single,register-width = <32>;
377 pinctrl-single,function-mask = <0x307ff>; 378 pinctrl-single,function-mask = <0x307ff>;
378 }; 379 };
diff --git a/arch/arm/boot/dts/dm816x.dtsi b/arch/arm/boot/dts/dm816x.dtsi
index f1e0f771ff29..61dd2f6b02bc 100644
--- a/arch/arm/boot/dts/dm816x.dtsi
+++ b/arch/arm/boot/dts/dm816x.dtsi
@@ -83,6 +83,7 @@
83 reg = <0x48140000 0x21000>; 83 reg = <0x48140000 0x21000>;
84 #address-cells = <1>; 84 #address-cells = <1>;
85 #size-cells = <1>; 85 #size-cells = <1>;
86 #pinctrl-cells = <1>;
86 ranges = <0 0x48140000 0x21000>; 87 ranges = <0 0x48140000 0x21000>;
87 88
88 dm816x_pinmux: pinmux@800 { 89 dm816x_pinmux: pinmux@800 {
@@ -90,6 +91,7 @@
90 reg = <0x800 0x50a>; 91 reg = <0x800 0x50a>;
91 #address-cells = <1>; 92 #address-cells = <1>;
92 #size-cells = <0>; 93 #size-cells = <0>;
94 #pinctrl-cells = <1>;
93 pinctrl-single,register-width = <16>; 95 pinctrl-single,register-width = <16>;
94 pinctrl-single,function-mask = <0xf>; 96 pinctrl-single,function-mask = <0xf>;
95 }; 97 };
diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi
index d4fcd68f6349..addb7530cfbe 100644
--- a/arch/arm/boot/dts/dra7.dtsi
+++ b/arch/arm/boot/dts/dra7.dtsi
@@ -171,6 +171,7 @@
171 reg = <0x1400 0x0468>; 171 reg = <0x1400 0x0468>;
172 #address-cells = <1>; 172 #address-cells = <1>;
173 #size-cells = <0>; 173 #size-cells = <0>;
174 #pinctrl-cells = <1>;
174 #interrupt-cells = <1>; 175 #interrupt-cells = <1>;
175 interrupt-controller; 176 interrupt-controller;
176 pinctrl-single,register-width = <32>; 177 pinctrl-single,register-width = <32>;
diff --git a/arch/arm/boot/dts/dra71-evm.dts b/arch/arm/boot/dts/dra71-evm.dts
new file mode 100644
index 000000000000..2b9a5a8d69ad
--- /dev/null
+++ b/arch/arm/boot/dts/dra71-evm.dts
@@ -0,0 +1,230 @@
1/*
2 * Copyright (C) 2016 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#include "dra72-evm-common.dtsi"
10#include <dt-bindings/net/ti-dp83867.h>
11
12/ {
13 compatible = "ti,dra718-evm", "ti,dra718", "ti,dra722", "ti,dra72", "ti,dra7";
14 model = "TI DRA718 EVM";
15
16 memory {
17 device_type = "memory";
18 reg = <0x0 0x80000000 0x0 0x80000000>; /* 2GB */
19 };
20
21 vpo_sd_1v8_3v3: gpio-regulator-TPS74801 {
22 compatible = "regulator-gpio";
23
24 regulator-name = "vddshv8";
25 regulator-min-microvolt = <1800000>;
26 regulator-max-microvolt = <3000000>;
27 regulator-boot-on;
28 vin-supply = <&evm_5v0>;
29
30 gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>;
31 states = <1800000 0x0
32 3000000 0x1>;
33 };
34
35 poweroff: gpio-poweroff {
36 compatible = "gpio-poweroff";
37 gpios = <&gpio7 30 GPIO_ACTIVE_HIGH>;
38 input;
39 };
40};
41
42&i2c1 {
43 status = "okay";
44 clock-frequency = <400000>;
45
46 lp8733: lp8733@60 {
47 compatible = "ti,lp8733";
48 reg = <0x60>;
49
50 buck0-in-supply =<&vsys_3v3>;
51 buck1-in-supply =<&vsys_3v3>;
52 ldo0-in-supply =<&evm_5v0>;
53 ldo1-in-supply =<&evm_5v0>;
54
55 lp8733_regulators: regulators {
56 lp8733_buck0_reg: buck0 {
57 /* FB_B0 -> LP8733-BUCK1 - VPO_S1_AVS - VDD_CORE_AVS (core, mpu, gpu) */
58 regulator-name = "lp8733-buck0";
59 regulator-min-microvolt = <850000>;
60 regulator-max-microvolt = <1250000>;
61 regulator-always-on;
62 regulator-boot-on;
63 };
64
65 lp8733_buck1_reg: buck1 {
66 /* FB_B1 -> LP8733-BUCK2 - VPO_S2_AVS - VDD_DSP_AVS (DSP/eve/iva) */
67 regulator-name = "lp8733-buck1";
68 regulator-min-microvolt = <850000>;
69 regulator-max-microvolt = <1250000>;
70 regulator-boot-on;
71 regulator-always-on;
72 };
73
74 lp8733_ldo0_reg: ldo0 {
75 /* LDO0 -> LP8733-LDO1 - VPO_L1_3V3 - VDDSHV8 (optional) */
76 regulator-name = "lp8733-ldo0";
77 regulator-min-microvolt = <3300000>;
78 regulator-max-microvolt = <3300000>;
79 };
80
81 lp8733_ldo1_reg: ldo1 {
82 /* LDO1 -> LP8733-LDO2 - VPO_L2_3V3 - VDDA_USB3V3 */
83 regulator-name = "lp8733-ldo1";
84 regulator-min-microvolt = <3300000>;
85 regulator-max-microvolt = <3300000>;
86 regulator-always-on;
87 regulator-boot-on;
88 };
89 };
90 };
91
92 lp8732: lp8732@61 {
93 compatible = "ti,lp8732";
94 reg = <0x61>;
95
96 buck0-in-supply =<&vsys_3v3>;
97 buck1-in-supply =<&vsys_3v3>;
98 ldo0-in-supply =<&vsys_3v3>;
99 ldo1-in-supply =<&vsys_3v3>;
100
101 lp8732_regulators: regulators {
102 lp8732_buck0_reg: buck0 {
103 /* FB_B0 -> LP8732-BUCK1 - VPO_S3_1V8 - VDDS_1V8 */
104 regulator-name = "lp8732-buck0";
105 regulator-min-microvolt = <1800000>;
106 regulator-max-microvolt = <1800000>;
107 regulator-always-on;
108 regulator-boot-on;
109 };
110
111 lp8732_buck1_reg: buck1 {
112 /* FB_B1 -> LP8732-BUCK2 - VPO_S4_DDR - VDD_DDR_1V35 */
113 regulator-name = "lp8732-buck1";
114 regulator-min-microvolt = <1350000>;
115 regulator-max-microvolt = <1350000>;
116 regulator-boot-on;
117 regulator-always-on;
118 };
119
120 lp8732_ldo0_reg: ldo0 {
121 /* LDO0 -> LP8732-LDO1 - VPO_L3_1V8 - VDA_1V8_PLL */
122 regulator-name = "lp8732-ldo0";
123 regulator-min-microvolt = <1800000>;
124 regulator-max-microvolt = <1800000>;
125 regulator-boot-on;
126 regulator-always-on;
127 };
128
129 lp8732_ldo1_reg: ldo1 {
130 /* LDO1 -> LP8732-LDO2 - VPO_L4_1V8 - VDA_1V8_PHY */
131 regulator-name = "lp8732-ldo1";
132 regulator-min-microvolt = <1800000>;
133 regulator-max-microvolt = <1800000>;
134 regulator-always-on;
135 regulator-boot-on;
136 };
137 };
138 };
139};
140
141&pcf_gpio_21 {
142 interrupt-parent = <&gpio7>;
143 interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
144};
145
146&pcf_hdmi {
147 p0 {
148 /*
149 * PM_OEn to High: Disable routing I2C3 to PM_I2C
150 * With this PM_SEL(p3) should not matter
151 */
152 gpio-hog;
153 gpios = <0 GPIO_ACTIVE_LOW>;
154 output-high;
155 line-name = "pm_oe_n";
156 };
157};
158
159&mmc1 {
160 vmmc_aux-supply = <&vpo_sd_1v8_3v3>;
161};
162
163&mac {
164 mode-gpios = <&pcf_gpio_21 4 GPIO_ACTIVE_LOW>,
165 <&pcf_hdmi 9 GPIO_ACTIVE_LOW>, /* P11 */
166 <&pcf_hdmi 10 GPIO_ACTIVE_LOW>; /* P12 */
167 dual_emac;
168};
169
170&cpsw_emac0 {
171 phy_id = <&davinci_mdio>, <2>;
172 phy-mode = "rgmii-id";
173 dual_emac_res_vlan = <1>;
174};
175
176&cpsw_emac1 {
177 phy_id = <&davinci_mdio>, <3>;
178 phy-mode = "rgmii-id";
179 dual_emac_res_vlan = <2>;
180};
181
182&davinci_mdio {
183 dp83867_0: ethernet-phy@2 {
184 reg = <2>;
185 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
186 ti,tx-internal-delay = <DP83867_RGMIIDCTL_250_PS>;
187 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_8_B_NIB>;
188 ti,impedance-control = <0x1f>;
189 };
190
191 dp83867_1: ethernet-phy@3 {
192 reg = <3>;
193 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
194 ti,tx-internal-delay = <DP83867_RGMIIDCTL_250_PS>;
195 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_8_B_NIB>;
196 ti,impedance-control = <0x1f>;
197 };
198};
199
200/* No Sata on this device */
201&sata_phy {
202 status = "disabled";
203};
204
205&sata {
206 status = "disabled";
207};
208
209/* No RTC on this device */
210&rtc {
211 status = "disabled";
212};
213
214&usb2_phy1 {
215 phy-supply = <&lp8733_ldo1_reg>;
216};
217
218&usb2_phy2 {
219 phy-supply = <&lp8733_ldo1_reg>;
220};
221
222&dss {
223 /* Supplied by VDA_1V8_PLL */
224 vdda_video-supply = <&lp8732_ldo0_reg>;
225};
226
227&hdmi {
228 /* Supplied by VDA_1V8_PHY */
229 vdda_video-supply = <&lp8732_ldo1_reg>;
230};
diff --git a/arch/arm/boot/dts/dra72-evm-common.dtsi b/arch/arm/boot/dts/dra72-evm-common.dtsi
index c94d8d64710d..e50fbeea96e0 100644
--- a/arch/arm/boot/dts/dra72-evm-common.dtsi
+++ b/arch/arm/boot/dts/dra72-evm-common.dtsi
@@ -18,11 +18,49 @@
18 display0 = &hdmi0; 18 display0 = &hdmi0;
19 }; 19 };
20 20
21 evm_12v0: fixedregulator-evm12v0 {
22 /* main supply */
23 compatible = "regulator-fixed";
24 regulator-name = "evm_12v0";
25 regulator-min-microvolt = <12000000>;
26 regulator-max-microvolt = <12000000>;
27 regulator-always-on;
28 regulator-boot-on;
29 };
30
31 evm_5v0: fixedregulator-evm5v0 {
32 /* Output 1 of TPS43351QDAPRQ1 on dra72-evm */
33 /* Output 1 of LM5140QRWGTQ1 on dra71-evm */
34 compatible = "regulator-fixed";
35 regulator-name = "evm_5v0";
36 regulator-min-microvolt = <5000000>;
37 regulator-max-microvolt = <5000000>;
38 vin-supply = <&evm_12v0>;
39 regulator-always-on;
40 regulator-boot-on;
41 };
42
43 vsys_3v3: fixedregulator-vsys3v3 {
44 /* Output 2 of TPS43351QDAPRQ1 on dra72-evm */
45 /* Output 2 of LM5140QRWGTQ1 on dra71-evm */
46 compatible = "regulator-fixed";
47 regulator-name = "vsys_3v3";
48 regulator-min-microvolt = <3300000>;
49 regulator-max-microvolt = <3300000>;
50 vin-supply = <&evm_12v0>;
51 regulator-always-on;
52 regulator-boot-on;
53 };
54
21 evm_3v3_sw: fixedregulator-evm_3v3 { 55 evm_3v3_sw: fixedregulator-evm_3v3 {
56 /* TPS22965DSG */
22 compatible = "regulator-fixed"; 57 compatible = "regulator-fixed";
23 regulator-name = "evm_3v3"; 58 regulator-name = "evm_3v3";
24 regulator-min-microvolt = <3300000>; 59 regulator-min-microvolt = <3300000>;
25 regulator-max-microvolt = <3300000>; 60 regulator-max-microvolt = <3300000>;
61 vin-supply = <&vsys_3v3>;
62 regulator-always-on;
63 regulator-boot-on;
26 }; 64 };
27 65
28 aic_dvdd: fixedregulator-aic_dvdd { 66 aic_dvdd: fixedregulator-aic_dvdd {
@@ -39,6 +77,7 @@
39 regulator-name = "evm_3v3_sd"; 77 regulator-name = "evm_3v3_sd";
40 regulator-min-microvolt = <3300000>; 78 regulator-min-microvolt = <3300000>;
41 regulator-max-microvolt = <3300000>; 79 regulator-max-microvolt = <3300000>;
80 vin-supply = <&evm_3v3_sw>;
42 enable-active-high; 81 enable-active-high;
43 gpio = <&pcf_gpio_21 5 GPIO_ACTIVE_HIGH>; 82 gpio = <&pcf_gpio_21 5 GPIO_ACTIVE_HIGH>;
44 }; 83 };
@@ -69,9 +108,6 @@
69 tpd12s015: encoder { 108 tpd12s015: encoder {
70 compatible = "ti,tpd12s015"; 109 compatible = "ti,tpd12s015";
71 110
72 pinctrl-names = "default";
73 pinctrl-0 = <&tpd12s015_pins>;
74
75 gpios = <&pcf_hdmi 4 GPIO_ACTIVE_HIGH>, /* P4, CT CP HPD */ 111 gpios = <&pcf_hdmi 4 GPIO_ACTIVE_HIGH>, /* P4, CT CP HPD */
76 <&pcf_hdmi 5 GPIO_ACTIVE_HIGH>, /* P5, LS OE */ 112 <&pcf_hdmi 5 GPIO_ACTIVE_HIGH>, /* P5, LS OE */
77 <&gpio7 12 GPIO_ACTIVE_HIGH>; /* gpio7_12/sp1_cs2, HPD */ 113 <&gpio7 12 GPIO_ACTIVE_HIGH>; /* gpio7_12/sp1_cs2, HPD */
@@ -134,72 +170,6 @@
134}; 170};
135 171
136&dra7_pmx_core { 172&dra7_pmx_core {
137 i2c1_pins: pinmux_i2c1_pins {
138 pinctrl-single,pins = <
139 DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT | MUX_MODE0) /* i2c1_sda.i2c1_sda */
140 DRA7XX_CORE_IOPAD(0x3804, PIN_INPUT | MUX_MODE0) /* i2c1_scl.i2c1_scl */
141 >;
142 };
143
144 i2c5_pins: pinmux_i2c5_pins {
145 pinctrl-single,pins = <
146 DRA7XX_CORE_IOPAD(0x36b4, PIN_INPUT | MUX_MODE10) /* mcasp1_axr0.i2c5_sda */
147 DRA7XX_CORE_IOPAD(0x36b8, PIN_INPUT | MUX_MODE10) /* mcasp1_axr1.i2c5_scl */
148 >;
149 };
150
151 i2c5_pins: pinmux_i2c5_pins {
152 pinctrl-single,pins = <
153 DRA7XX_CORE_IOPAD(0x36b4, PIN_INPUT | MUX_MODE10) /* mcasp1_axr0.i2c5_sda */
154 DRA7XX_CORE_IOPAD(0x36b8, PIN_INPUT | MUX_MODE10) /* mcasp1_axr1.i2c5_scl */
155 >;
156 };
157
158 nand_default: nand_default {
159 pinctrl-single,pins = <
160 DRA7XX_CORE_IOPAD(0x3400, PIN_INPUT | MUX_MODE0) /* gpmc_ad0 */
161 DRA7XX_CORE_IOPAD(0x3404, PIN_INPUT | MUX_MODE0) /* gpmc_ad1 */
162 DRA7XX_CORE_IOPAD(0x3408, PIN_INPUT | MUX_MODE0) /* gpmc_ad2 */
163 DRA7XX_CORE_IOPAD(0x340c, PIN_INPUT | MUX_MODE0) /* gpmc_ad3 */
164 DRA7XX_CORE_IOPAD(0x3410, PIN_INPUT | MUX_MODE0) /* gpmc_ad4 */
165 DRA7XX_CORE_IOPAD(0x3414, PIN_INPUT | MUX_MODE0) /* gpmc_ad5 */
166 DRA7XX_CORE_IOPAD(0x3418, PIN_INPUT | MUX_MODE0) /* gpmc_ad6 */
167 DRA7XX_CORE_IOPAD(0x341c, PIN_INPUT | MUX_MODE0) /* gpmc_ad7 */
168 DRA7XX_CORE_IOPAD(0x3420, PIN_INPUT | MUX_MODE0) /* gpmc_ad8 */
169 DRA7XX_CORE_IOPAD(0x3424, PIN_INPUT | MUX_MODE0) /* gpmc_ad9 */
170 DRA7XX_CORE_IOPAD(0x3428, PIN_INPUT | MUX_MODE0) /* gpmc_ad10 */
171 DRA7XX_CORE_IOPAD(0x342c, PIN_INPUT | MUX_MODE0) /* gpmc_ad11 */
172 DRA7XX_CORE_IOPAD(0x3430, PIN_INPUT | MUX_MODE0) /* gpmc_ad12 */
173 DRA7XX_CORE_IOPAD(0x3434, PIN_INPUT | MUX_MODE0) /* gpmc_ad13 */
174 DRA7XX_CORE_IOPAD(0x3438, PIN_INPUT | MUX_MODE0) /* gpmc_ad14 */
175 DRA7XX_CORE_IOPAD(0x343c, PIN_INPUT | MUX_MODE0) /* gpmc_ad15 */
176 DRA7XX_CORE_IOPAD(0x34b4, PIN_OUTPUT | MUX_MODE0) /* gpmc_cs0 */
177 DRA7XX_CORE_IOPAD(0x34c4, PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale */
178 DRA7XX_CORE_IOPAD(0x34cc, PIN_OUTPUT | MUX_MODE0) /* gpmc_wen */
179 DRA7XX_CORE_IOPAD(0x34c8, PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren */
180 DRA7XX_CORE_IOPAD(0x34d0, PIN_OUTPUT | MUX_MODE0) /* gpmc_ben0 */
181 DRA7XX_CORE_IOPAD(0x34d8, PIN_INPUT | MUX_MODE0) /* gpmc_wait0 */
182 >;
183 };
184
185 usb1_pins: pinmux_usb1_pins {
186 pinctrl-single,pins = <
187 DRA7XX_CORE_IOPAD(0x3680, PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */
188 >;
189 };
190
191 usb2_pins: pinmux_usb2_pins {
192 pinctrl-single,pins = <
193 DRA7XX_CORE_IOPAD(0x3684, PIN_INPUT_SLEW | MUX_MODE0) /* usb2_drvvbus */
194 >;
195 };
196
197 tps65917_pins_default: tps65917_pins_default {
198 pinctrl-single,pins = <
199 DRA7XX_CORE_IOPAD(0x3824, PIN_INPUT_PULLUP | MUX_MODE1) /* wakeup3.sys_nirq1 */
200 >;
201 };
202
203 mmc1_pins_default: mmc1_pins_default { 173 mmc1_pins_default: mmc1_pins_default {
204 pinctrl-single,pins = < 174 pinctrl-single,pins = <
205 DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14) /* mmc1sdcd.gpio219 */ 175 DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14) /* mmc1sdcd.gpio219 */
@@ -240,161 +210,12 @@
240 DRA7XX_CORE_IOPAD(0x3818, MUX_MODE15 | PULL_UP) /* wakeup0.off */ 210 DRA7XX_CORE_IOPAD(0x3818, MUX_MODE15 | PULL_UP) /* wakeup0.off */
241 >; 211 >;
242 }; 212 };
243
244 hdmi_pins: pinmux_hdmi_pins {
245 pinctrl-single,pins = <
246 DRA7XX_CORE_IOPAD(0x3808, PIN_INPUT | MUX_MODE1) /* i2c2_sda.hdmi1_ddc_scl */
247 DRA7XX_CORE_IOPAD(0x380c, PIN_INPUT | MUX_MODE1) /* i2c2_scl.hdmi1_ddc_sda */
248 >;
249 };
250
251 tpd12s015_pins: pinmux_tpd12s015_pins {
252 pinctrl-single,pins = <
253 DRA7XX_CORE_IOPAD(0x37b8, PIN_INPUT_PULLDOWN | MUX_MODE14) /* gpio7_12 HPD */
254 >;
255 };
256
257 atl_pins: pinmux_atl_pins {
258 pinctrl-single,pins = <
259 DRA7XX_CORE_IOPAD(0x3698, PIN_OUTPUT | MUX_MODE5) /* xref_clk1.atl_clk1 */
260 DRA7XX_CORE_IOPAD(0x369c, PIN_OUTPUT | MUX_MODE5) /* xref_clk2.atl_clk2 */
261 >;
262 };
263
264 mcasp3_pins: pinmux_mcasp3_pins {
265 pinctrl-single,pins = <
266 DRA7XX_CORE_IOPAD(0x3724, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_aclkx */
267 DRA7XX_CORE_IOPAD(0x3728, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_fsx */
268 DRA7XX_CORE_IOPAD(0x372c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr0 */
269 DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr1 */
270 >;
271 };
272
273 mcasp3_sleep_pins: pinmux_mcasp3_sleep_pins {
274 pinctrl-single,pins = <
275 DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT_PULLDOWN | MUX_MODE15)
276 DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT_PULLDOWN | MUX_MODE15)
277 DRA7XX_CORE_IOPAD(0x372c, PIN_INPUT_PULLDOWN | MUX_MODE15)
278 DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT_PULLDOWN | MUX_MODE15)
279 >;
280 };
281}; 213};
282 214
283&i2c1 { 215&i2c1 {
284 status = "okay"; 216 status = "okay";
285 pinctrl-names = "default";
286 pinctrl-0 = <&i2c1_pins>;
287 clock-frequency = <400000>; 217 clock-frequency = <400000>;
288 218
289 tps65917: tps65917@58 {
290 compatible = "ti,tps65917";
291 reg = <0x58>;
292
293 pinctrl-names = "default";
294 pinctrl-0 = <&tps65917_pins_default>;
295
296 interrupts = <GIC_SPI 2 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */
297 interrupt-controller;
298 #interrupt-cells = <2>;
299
300 ti,system-power-controller;
301
302 tps65917_pmic {
303 compatible = "ti,tps65917-pmic";
304
305 tps65917_regulators: regulators {
306 smps1_reg: smps1 {
307 /* VDD_MPU */
308 regulator-name = "smps1";
309 regulator-min-microvolt = <850000>;
310 regulator-max-microvolt = <1250000>;
311 regulator-always-on;
312 regulator-boot-on;
313 };
314
315 smps2_reg: smps2 {
316 /* VDD_CORE */
317 regulator-name = "smps2";
318 regulator-min-microvolt = <850000>;
319 regulator-max-microvolt = <1150000>;
320 regulator-boot-on;
321 regulator-always-on;
322 };
323
324 smps3_reg: smps3 {
325 /* VDD_GPU IVA DSPEVE */
326 regulator-name = "smps3";
327 regulator-min-microvolt = <850000>;
328 regulator-max-microvolt = <1250000>;
329 regulator-boot-on;
330 regulator-always-on;
331 };
332
333 smps4_reg: smps4 {
334 /* VDDS1V8 */
335 regulator-name = "smps4";
336 regulator-min-microvolt = <1800000>;
337 regulator-max-microvolt = <1800000>;
338 regulator-always-on;
339 regulator-boot-on;
340 };
341
342 smps5_reg: smps5 {
343 /* VDD_DDR */
344 regulator-name = "smps5";
345 regulator-min-microvolt = <1350000>;
346 regulator-max-microvolt = <1350000>;
347 regulator-boot-on;
348 regulator-always-on;
349 };
350
351 ldo1_reg: ldo1 {
352 /* LDO1_OUT --> SDIO */
353 regulator-name = "ldo1";
354 regulator-min-microvolt = <1800000>;
355 regulator-max-microvolt = <3300000>;
356 regulator-always-on;
357 regulator-boot-on;
358 regulator-allow-bypass;
359 };
360
361 ldo3_reg: ldo3 {
362 /* VDDA_1V8_PHY */
363 regulator-name = "ldo3";
364 regulator-min-microvolt = <1800000>;
365 regulator-max-microvolt = <1800000>;
366 regulator-boot-on;
367 regulator-always-on;
368 };
369
370 ldo5_reg: ldo5 {
371 /* VDDA_1V8_PLL */
372 regulator-name = "ldo5";
373 regulator-min-microvolt = <1800000>;
374 regulator-max-microvolt = <1800000>;
375 regulator-always-on;
376 regulator-boot-on;
377 };
378
379 ldo4_reg: ldo4 {
380 /* VDDA_3V_USB: VDDA_USBHS33 */
381 regulator-name = "ldo4";
382 regulator-min-microvolt = <3300000>;
383 regulator-max-microvolt = <3300000>;
384 regulator-boot-on;
385 };
386 };
387 };
388
389 tps65917_power_button {
390 compatible = "ti,palmas-pwrbutton";
391 interrupt-parent = <&tps65917>;
392 interrupts = <1 IRQ_TYPE_NONE>;
393 wakeup-source;
394 ti,palmas-long-press-seconds = <6>;
395 };
396 };
397
398 pcf_gpio_21: gpio@21 { 219 pcf_gpio_21: gpio@21 {
399 compatible = "ti,pcf8575", "nxp,pcf8575"; 220 compatible = "ti,pcf8575", "nxp,pcf8575";
400 reg = <0x21>; 221 reg = <0x21>;
@@ -423,8 +244,6 @@
423 244
424&i2c5 { 245&i2c5 {
425 status = "okay"; 246 status = "okay";
426 pinctrl-names = "default";
427 pinctrl-0 = <&i2c5_pins>;
428 clock-frequency = <400000>; 247 clock-frequency = <400000>;
429 248
430 pcf_hdmi: pcf8575@26 { 249 pcf_hdmi: pcf8575@26 {
@@ -462,8 +281,6 @@
462 281
463&gpmc { 282&gpmc {
464 status = "okay"; 283 status = "okay";
465 pinctrl-names = "default";
466 pinctrl-0 = <&nand_default>;
467 ranges = <0 0 0x08000000 0x01000000>; /* minimum GPMC partition = 16MB */ 284 ranges = <0 0 0x08000000 0x01000000>; /* minimum GPMC partition = 16MB */
468 nand@0,0 { 285 nand@0,0 {
469 /* To use NAND, DIP switch SW5 must be set like so: 286 /* To use NAND, DIP switch SW5 must be set like so:
@@ -548,14 +365,6 @@
548 }; 365 };
549}; 366};
550 367
551&usb2_phy1 {
552 phy-supply = <&ldo4_reg>;
553};
554
555&usb2_phy2 {
556 phy-supply = <&ldo4_reg>;
557};
558
559&omap_dwc3_1 { 368&omap_dwc3_1 {
560 extcon = <&extcon_usb1>; 369 extcon = <&extcon_usb1>;
561}; 370};
@@ -566,14 +375,10 @@
566 375
567&usb1 { 376&usb1 {
568 dr_mode = "peripheral"; 377 dr_mode = "peripheral";
569 pinctrl-names = "default";
570 pinctrl-0 = <&usb1_pins>;
571}; 378};
572 379
573&usb2 { 380&usb2 {
574 dr_mode = "host"; 381 dr_mode = "host";
575 pinctrl-names = "default";
576 pinctrl-0 = <&usb2_pins>;
577}; 382};
578 383
579&mmc1 { 384&mmc1 {
@@ -581,7 +386,6 @@
581 pinctrl-names = "default"; 386 pinctrl-names = "default";
582 pinctrl-0 = <&mmc1_pins_default>; 387 pinctrl-0 = <&mmc1_pins_default>;
583 vmmc-supply = <&evm_3v3_sd>; 388 vmmc-supply = <&evm_3v3_sd>;
584 vmmc_aux-supply = <&ldo1_reg>;
585 bus-width = <4>; 389 bus-width = <4>;
586 /* 390 /*
587 * SDCD signal is not being used here - using the fact that GPIO mode 391 * SDCD signal is not being used here - using the fact that GPIO mode
@@ -603,71 +407,8 @@
603 max-frequency = <192000000>; 407 max-frequency = <192000000>;
604}; 408};
605 409
606&dra7_pmx_core {
607 cpsw_default: cpsw_default {
608 pinctrl-single,pins = <
609 /* Slave 2 */
610 DRA7XX_CORE_IOPAD(0x3598, PIN_OUTPUT | MUX_MODE3) /* vin2a_d12.rgmii1_txc */
611 DRA7XX_CORE_IOPAD(0x359c, PIN_OUTPUT | MUX_MODE3) /* vin2a_d13.rgmii1_tctl */
612 DRA7XX_CORE_IOPAD(0x35a0, PIN_OUTPUT | MUX_MODE3) /* vin2a_d14.rgmii1_td3 */
613 DRA7XX_CORE_IOPAD(0x35a4, PIN_OUTPUT | MUX_MODE3) /* vin2a_d15.rgmii1_td2 */
614 DRA7XX_CORE_IOPAD(0x35a8, PIN_OUTPUT | MUX_MODE3) /* vin2a_d16.rgmii1_td1 */
615 DRA7XX_CORE_IOPAD(0x35ac, PIN_OUTPUT | MUX_MODE3) /* vin2a_d17.rgmii1_td0 */
616 DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE3) /* vin2a_d18.rgmii1_rclk */
617 DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE3) /* vin2a_d19.rgmii1_rctl */
618 DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE3) /* vin2a_d20.rgmii1_rd3 */
619 DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE3) /* vin2a_d21.rgmii1_rd2 */
620 DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE3) /* vin2a_d22.rgmii1_rd1 */
621 DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE3) /* vin2a_d23.rgmii1_rd0 */
622 >;
623
624 };
625
626 cpsw_sleep: cpsw_sleep {
627 pinctrl-single,pins = <
628 /* Slave 2 */
629 DRA7XX_CORE_IOPAD(0x3598, MUX_MODE15)
630 DRA7XX_CORE_IOPAD(0x359c, MUX_MODE15)
631 DRA7XX_CORE_IOPAD(0x35a0, MUX_MODE15)
632 DRA7XX_CORE_IOPAD(0x35a4, MUX_MODE15)
633 DRA7XX_CORE_IOPAD(0x35a8, MUX_MODE15)
634 DRA7XX_CORE_IOPAD(0x35ac, MUX_MODE15)
635 DRA7XX_CORE_IOPAD(0x35b0, MUX_MODE15)
636 DRA7XX_CORE_IOPAD(0x35b4, MUX_MODE15)
637 DRA7XX_CORE_IOPAD(0x35b8, MUX_MODE15)
638 DRA7XX_CORE_IOPAD(0x35bc, MUX_MODE15)
639 DRA7XX_CORE_IOPAD(0x35c0, MUX_MODE15)
640 DRA7XX_CORE_IOPAD(0x35c4, MUX_MODE15)
641 >;
642 };
643
644 davinci_mdio_default: davinci_mdio_default {
645 pinctrl-single,pins = <
646 /* MDIO */
647 DRA7XX_CORE_IOPAD(0x363c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_d.mdio_d */
648 DRA7XX_CORE_IOPAD(0x3640, PIN_INPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
649 >;
650 };
651
652 davinci_mdio_sleep: davinci_mdio_sleep {
653 pinctrl-single,pins = <
654 DRA7XX_CORE_IOPAD(0x363c, MUX_MODE15)
655 DRA7XX_CORE_IOPAD(0x3640, MUX_MODE15)
656 >;
657 };
658};
659
660&mac { 410&mac {
661 status = "okay"; 411 status = "okay";
662 pinctrl-names = "default", "sleep";
663 pinctrl-0 = <&cpsw_default>;
664 pinctrl-1 = <&cpsw_sleep>;
665};
666
667&davinci_mdio {
668 pinctrl-names = "default", "sleep";
669 pinctrl-0 = <&davinci_mdio_default>;
670 pinctrl-1 = <&davinci_mdio_sleep>;
671}; 412};
672 413
673&dcan1 { 414&dcan1 {
@@ -741,16 +482,11 @@
741 482
742&dss { 483&dss {
743 status = "ok"; 484 status = "ok";
744
745 vdda_video-supply = <&ldo5_reg>;
746}; 485};
747 486
748&hdmi { 487&hdmi {
749 status = "ok"; 488 status = "ok";
750 489
751 pinctrl-names = "default";
752 pinctrl-0 = <&hdmi_pins>;
753
754 port { 490 port {
755 hdmi_out: endpoint { 491 hdmi_out: endpoint {
756 remote-endpoint = <&tpd12s015_in>; 492 remote-endpoint = <&tpd12s015_in>;
@@ -759,9 +495,6 @@
759}; 495};
760 496
761&atl { 497&atl {
762 pinctrl-names = "default";
763 pinctrl-0 = <&atl_pins>;
764
765 assigned-clocks = <&abe_dpll_sys_clk_mux>, 498 assigned-clocks = <&abe_dpll_sys_clk_mux>,
766 <&atl_gfclk_mux>, 499 <&atl_gfclk_mux>,
767 <&dpll_abe_ck>, 500 <&dpll_abe_ck>,
@@ -780,9 +513,6 @@
780 513
781&mcasp3 { 514&mcasp3 {
782 #sound-dai-cells = <0>; 515 #sound-dai-cells = <0>;
783 pinctrl-names = "default", "sleep";
784 pinctrl-0 = <&mcasp3_pins>;
785 pinctrl-1 = <&mcasp3_sleep_pins>;
786 516
787 assigned-clocks = <&mcasp3_ahclkx_mux>; 517 assigned-clocks = <&mcasp3_ahclkx_mux>;
788 assigned-clock-parents = <&atl_clkin2_ck>; 518 assigned-clock-parents = <&atl_clkin2_ck>;
diff --git a/arch/arm/boot/dts/dra72-evm-revc.dts b/arch/arm/boot/dts/dra72-evm-revc.dts
index 3b23b32e1b30..c3d939c9666c 100644
--- a/arch/arm/boot/dts/dra72-evm-revc.dts
+++ b/arch/arm/boot/dts/dra72-evm-revc.dts
@@ -17,17 +17,22 @@
17 }; 17 };
18}; 18};
19 19
20&tps65917_regulators { 20&i2c1 {
21 ldo2_reg: ldo2 { 21 tps65917: tps65917@58 {
22 /* LDO2_OUT --> VDDA_1V8_PHY2 */ 22 reg = <0x58>;
23 regulator-name = "ldo2"; 23
24 regulator-min-microvolt = <1800000>; 24 interrupts = <GIC_SPI 2 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */
25 regulator-max-microvolt = <1800000>;
26 regulator-always-on;
27 regulator-boot-on;
28 }; 25 };
29}; 26};
30 27
28#include "dra72-evm-tps65917.dtsi"
29
30&ldo2_reg {
31 /* LDO2_OUT --> VDDA_1V8_PHY2 */
32 regulator-always-on;
33 regulator-boot-on;
34};
35
31&hdmi { 36&hdmi {
32 vdda-supply = <&ldo2_reg>; 37 vdda-supply = <&ldo2_reg>;
33}; 38};
diff --git a/arch/arm/boot/dts/dra72-evm-tps65917.dtsi b/arch/arm/boot/dts/dra72-evm-tps65917.dtsi
new file mode 100644
index 000000000000..ee6dac44edf1
--- /dev/null
+++ b/arch/arm/boot/dts/dra72-evm-tps65917.dtsi
@@ -0,0 +1,134 @@
1/*
2 * Copyright (C) 2016 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/tps65917-q1.pdf
12 */
13
14&tps65917 {
15 compatible = "ti,tps65917";
16
17 interrupt-controller;
18 #interrupt-cells = <2>;
19
20 ti,system-power-controller;
21
22 tps65917_pmic {
23 compatible = "ti,tps65917-pmic";
24
25 smps1-in-supply = <&vsys_3v3>;
26 smps2-in-supply = <&vsys_3v3>;
27 smps3-in-supply = <&vsys_3v3>;
28 smps4-in-supply = <&vsys_3v3>;
29 smps5-in-supply = <&vsys_3v3>;
30 ldo1-in-supply = <&vsys_3v3>;
31 ldo2-in-supply = <&vsys_3v3>;
32 ldo3-in-supply = <&vsys_3v3>;
33 ldo4-in-supply = <&evm_5v0>;
34 ldo5-in-supply = <&vsys_3v3>;
35
36 tps65917_regulators: regulators {
37 smps1_reg: smps1 {
38 /* VDD_MPU */
39 regulator-name = "smps1";
40 regulator-min-microvolt = <850000>;
41 regulator-max-microvolt = <1250000>;
42 regulator-always-on;
43 regulator-boot-on;
44 };
45
46 smps2_reg: smps2 {
47 /* VDD_CORE */
48 regulator-name = "smps2";
49 regulator-min-microvolt = <850000>;
50 regulator-max-microvolt = <1150000>;
51 regulator-boot-on;
52 regulator-always-on;
53 };
54
55 smps3_reg: smps3 {
56 /* VDD_GPU IVA DSPEVE */
57 regulator-name = "smps3";
58 regulator-min-microvolt = <850000>;
59 regulator-max-microvolt = <1250000>;
60 regulator-boot-on;
61 regulator-always-on;
62 };
63
64 smps4_reg: smps4 {
65 /* VDDS1V8 */
66 regulator-name = "smps4";
67 regulator-min-microvolt = <1800000>;
68 regulator-max-microvolt = <1800000>;
69 regulator-always-on;
70 regulator-boot-on;
71 };
72
73 smps5_reg: smps5 {
74 /* VDD_DDR */
75 regulator-name = "smps5";
76 regulator-min-microvolt = <1350000>;
77 regulator-max-microvolt = <1350000>;
78 regulator-boot-on;
79 regulator-always-on;
80 };
81
82 ldo1_reg: ldo1 {
83 /* LDO1_OUT --> SDIO */
84 regulator-name = "ldo1";
85 regulator-min-microvolt = <1800000>;
86 regulator-max-microvolt = <3300000>;
87 regulator-always-on;
88 regulator-boot-on;
89 regulator-allow-bypass;
90 };
91
92 ldo2_reg: ldo2 {
93 regulator-name = "ldo2";
94 regulator-min-microvolt = <1800000>;
95 regulator-max-microvolt = <1800000>;
96 regulator-allow-bypass;
97 };
98
99 ldo3_reg: ldo3 {
100 /* VDDA_1V8_PHY */
101 regulator-name = "ldo3";
102 regulator-min-microvolt = <1800000>;
103 regulator-max-microvolt = <1800000>;
104 regulator-boot-on;
105 regulator-always-on;
106 };
107
108 ldo5_reg: ldo5 {
109 /* VDDA_1V8_PLL */
110 regulator-name = "ldo5";
111 regulator-min-microvolt = <1800000>;
112 regulator-max-microvolt = <1800000>;
113 regulator-always-on;
114 regulator-boot-on;
115 };
116
117 ldo4_reg: ldo4 {
118 /* VDDA_3V_USB: VDDA_USBHS33 */
119 regulator-name = "ldo4";
120 regulator-min-microvolt = <3300000>;
121 regulator-max-microvolt = <3300000>;
122 regulator-boot-on;
123 };
124 };
125 };
126
127 tps65917_power_button {
128 compatible = "ti,palmas-pwrbutton";
129 interrupt-parent = <&tps65917>;
130 interrupts = <1 IRQ_TYPE_NONE>;
131 wakeup-source;
132 ti,palmas-long-press-seconds = <6>;
133 };
134};
diff --git a/arch/arm/boot/dts/dra72-evm.dts b/arch/arm/boot/dts/dra72-evm.dts
index e3a9b6985693..cd9c4ff12654 100644
--- a/arch/arm/boot/dts/dra72-evm.dts
+++ b/arch/arm/boot/dts/dra72-evm.dts
@@ -15,16 +15,16 @@
15 }; 15 };
16}; 16};
17 17
18&tps65917_regulators { 18&i2c1 {
19 ldo2_reg: ldo2 { 19 tps65917: tps65917@58 {
20 /* LDO2_OUT --> TP1017 (UNUSED) */ 20 reg = <0x58>;
21 regulator-name = "ldo2"; 21
22 regulator-min-microvolt = <1800000>; 22 interrupts = <GIC_SPI 2 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */
23 regulator-max-microvolt = <3300000>;
24 regulator-allow-bypass;
25 }; 23 };
26}; 24};
27 25
26#include "dra72-evm-tps65917.dtsi"
27
28&hdmi { 28&hdmi {
29 vdda-supply = <&ldo3_reg>; 29 vdda-supply = <&ldo3_reg>;
30}; 30};
diff --git a/arch/arm/boot/dts/emev2.dtsi b/arch/arm/boot/dts/emev2.dtsi
index cd119400f440..0124faf175c8 100644
--- a/arch/arm/boot/dts/emev2.dtsi
+++ b/arch/arm/boot/dts/emev2.dtsi
@@ -8,13 +8,14 @@
8 * kind, whether express or implied. 8 * kind, whether express or implied.
9 */ 9 */
10 10
11#include "skeleton.dtsi"
12#include <dt-bindings/interrupt-controller/arm-gic.h> 11#include <dt-bindings/interrupt-controller/arm-gic.h>
13#include <dt-bindings/interrupt-controller/irq.h> 12#include <dt-bindings/interrupt-controller/irq.h>
14 13
15/ { 14/ {
16 compatible = "renesas,emev2"; 15 compatible = "renesas,emev2";
17 interrupt-parent = <&gic>; 16 interrupt-parent = <&gic>;
17 #address-cells = <1>;
18 #size-cells = <1>;
18 19
19 aliases { 20 aliases {
20 gpio0 = &gpio0; 21 gpio0 = &gpio0;
diff --git a/arch/arm/boot/dts/exynos3250-artik5-eval.dts b/arch/arm/boot/dts/exynos3250-artik5-eval.dts
index be4d6aa379f3..4bd2ee87124e 100644
--- a/arch/arm/boot/dts/exynos3250-artik5-eval.dts
+++ b/arch/arm/boot/dts/exynos3250-artik5-eval.dts
@@ -28,7 +28,7 @@
28 vqmmc-supply = <&ldo3_reg>; 28 vqmmc-supply = <&ldo3_reg>;
29 card-detect-delay = <200>; 29 card-detect-delay = <200>;
30 clock-frequency = <100000000>; 30 clock-frequency = <100000000>;
31 clock-freq-min-max = <400000 100000000>; 31 max-frequency = <100000000>;
32 samsung,dw-mshc-ciu-div = <1>; 32 samsung,dw-mshc-ciu-div = <1>;
33 samsung,dw-mshc-sdr-timing = <0 1>; 33 samsung,dw-mshc-sdr-timing = <0 1>;
34 samsung,dw-mshc-ddr-timing = <1 2>; 34 samsung,dw-mshc-ddr-timing = <1 2>;
diff --git a/arch/arm/boot/dts/exynos3250-artik5.dtsi b/arch/arm/boot/dts/exynos3250-artik5.dtsi
index a70819b1b739..59c89d7662a8 100644
--- a/arch/arm/boot/dts/exynos3250-artik5.dtsi
+++ b/arch/arm/boot/dts/exynos3250-artik5.dtsi
@@ -310,7 +310,7 @@
310 card-detect-delay = <200>; 310 card-detect-delay = <200>;
311 vmmc-supply = <&ldo12_reg>; 311 vmmc-supply = <&ldo12_reg>;
312 clock-frequency = <100000000>; 312 clock-frequency = <100000000>;
313 clock-freq-min-max = <400000 100000000>; 313 max-frequency = <100000000>;
314 samsung,dw-mshc-ciu-div = <1>; 314 samsung,dw-mshc-ciu-div = <1>;
315 samsung,dw-mshc-sdr-timing = <0 1>; 315 samsung,dw-mshc-sdr-timing = <0 1>;
316 samsung,dw-mshc-ddr-timing = <1 2>; 316 samsung,dw-mshc-ddr-timing = <1 2>;
diff --git a/arch/arm/boot/dts/exynos3250-monk.dts b/arch/arm/boot/dts/exynos3250-monk.dts
index 66f04f6ba6bb..cccfe4b791d1 100644
--- a/arch/arm/boot/dts/exynos3250-monk.dts
+++ b/arch/arm/boot/dts/exynos3250-monk.dts
@@ -435,7 +435,7 @@
435 card-detect-delay = <200>; 435 card-detect-delay = <200>;
436 vmmc-supply = <&vemmc_reg>; 436 vmmc-supply = <&vemmc_reg>;
437 clock-frequency = <100000000>; 437 clock-frequency = <100000000>;
438 clock-freq-min-max = <400000 100000000>; 438 max-frequency = <100000000>;
439 samsung,dw-mshc-ciu-div = <1>; 439 samsung,dw-mshc-ciu-div = <1>;
440 samsung,dw-mshc-sdr-timing = <0 1>; 440 samsung,dw-mshc-sdr-timing = <0 1>;
441 samsung,dw-mshc-ddr-timing = <1 2>; 441 samsung,dw-mshc-ddr-timing = <1 2>;
diff --git a/arch/arm/boot/dts/exynos3250-pinctrl.dtsi b/arch/arm/boot/dts/exynos3250-pinctrl.dtsi
index ec331169c3d9..a149f148e659 100644
--- a/arch/arm/boot/dts/exynos3250-pinctrl.dtsi
+++ b/arch/arm/boot/dts/exynos3250-pinctrl.dtsi
@@ -362,8 +362,14 @@
362 362
363 interrupt-controller; 363 interrupt-controller;
364 interrupt-parent = <&gic>; 364 interrupt-parent = <&gic>;
365 interrupts = <0 32 0>, <0 33 0>, <0 34 0>, <0 35 0>, 365 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
366 <0 36 0>, <0 37 0>, <0 38 0>, <0 39 0>; 366 <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
367 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
368 <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
369 <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
370 <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
371 <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
372 <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
367 #interrupt-cells = <2>; 373 #interrupt-cells = <2>;
368 }; 374 };
369 375
@@ -373,8 +379,14 @@
373 379
374 interrupt-controller; 380 interrupt-controller;
375 interrupt-parent = <&gic>; 381 interrupt-parent = <&gic>;
376 interrupts = <0 40 0>, <0 41 0>, <0 42 0>, <0 43 0>, 382 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
377 <0 44 0>, <0 45 0>, <0 46 0>, <0 47 0>; 383 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
384 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
385 <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
386 <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
387 <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
388 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
389 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
378 #interrupt-cells = <2>; 390 #interrupt-cells = <2>;
379 }; 391 };
380 392
diff --git a/arch/arm/boot/dts/exynos3250-rinato.dts b/arch/arm/boot/dts/exynos3250-rinato.dts
index 3967ee5f7752..548413e23c47 100644
--- a/arch/arm/boot/dts/exynos3250-rinato.dts
+++ b/arch/arm/boot/dts/exynos3250-rinato.dts
@@ -649,7 +649,7 @@
649 card-detect-delay = <200>; 649 card-detect-delay = <200>;
650 vmmc-supply = <&ldo12_reg>; 650 vmmc-supply = <&ldo12_reg>;
651 clock-frequency = <100000000>; 651 clock-frequency = <100000000>;
652 clock-freq-min-max = <400000 100000000>; 652 max-frequency = <100000000>;
653 samsung,dw-mshc-ciu-div = <1>; 653 samsung,dw-mshc-ciu-div = <1>;
654 samsung,dw-mshc-sdr-timing = <0 1>; 654 samsung,dw-mshc-sdr-timing = <0 1>;
655 samsung,dw-mshc-ddr-timing = <1 2>; 655 samsung,dw-mshc-ddr-timing = <1 2>;
diff --git a/arch/arm/boot/dts/exynos3250.dtsi b/arch/arm/boot/dts/exynos3250.dtsi
index e9d2556c0dfd..ba17ee1eb749 100644
--- a/arch/arm/boot/dts/exynos3250.dtsi
+++ b/arch/arm/boot/dts/exynos3250.dtsi
@@ -20,6 +20,8 @@
20#include "exynos4-cpu-thermal.dtsi" 20#include "exynos4-cpu-thermal.dtsi"
21#include "exynos-syscon-restart.dtsi" 21#include "exynos-syscon-restart.dtsi"
22#include <dt-bindings/clock/exynos3250.h> 22#include <dt-bindings/clock/exynos3250.h>
23#include <dt-bindings/interrupt-controller/arm-gic.h>
24#include <dt-bindings/interrupt-controller/irq.h>
23 25
24/ { 26/ {
25 compatible = "samsung,exynos3250"; 27 compatible = "samsung,exynos3250";
@@ -211,7 +213,8 @@
211 rtc: rtc@10070000 { 213 rtc: rtc@10070000 {
212 compatible = "samsung,s3c6410-rtc"; 214 compatible = "samsung,s3c6410-rtc";
213 reg = <0x10070000 0x100>; 215 reg = <0x10070000 0x100>;
214 interrupts = <0 73 0>, <0 74 0>; 216 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
217 <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
215 interrupt-parent = <&pmu_system_controller>; 218 interrupt-parent = <&pmu_system_controller>;
216 status = "disabled"; 219 status = "disabled";
217 }; 220 };
@@ -219,7 +222,7 @@
219 tmu: tmu@100C0000 { 222 tmu: tmu@100C0000 {
220 compatible = "samsung,exynos3250-tmu"; 223 compatible = "samsung,exynos3250-tmu";
221 reg = <0x100C0000 0x100>; 224 reg = <0x100C0000 0x100>;
222 interrupts = <0 216 0>; 225 interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
223 clocks = <&cmu CLK_TMU_APBIF>; 226 clocks = <&cmu CLK_TMU_APBIF>;
224 clock-names = "tmu_apbif"; 227 clock-names = "tmu_apbif";
225 #include "exynos4412-tmu-sensor-conf.dtsi" 228 #include "exynos4412-tmu-sensor-conf.dtsi"
@@ -234,14 +237,21 @@
234 <0x10482000 0x1000>, 237 <0x10482000 0x1000>,
235 <0x10484000 0x2000>, 238 <0x10484000 0x2000>,
236 <0x10486000 0x2000>; 239 <0x10486000 0x2000>;
237 interrupts = <1 9 0xf04>; 240 interrupts = <GIC_PPI 9
241 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
238 }; 242 };
239 243
240 mct@10050000 { 244 mct@10050000 {
241 compatible = "samsung,exynos4210-mct"; 245 compatible = "samsung,exynos4210-mct";
242 reg = <0x10050000 0x800>; 246 reg = <0x10050000 0x800>;
243 interrupts = <0 218 0>, <0 219 0>, <0 220 0>, <0 221 0>, 247 interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>,
244 <0 223 0>, <0 226 0>, <0 227 0>, <0 228 0>; 248 <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>,
249 <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>,
250 <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>,
251 <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>,
252 <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>,
253 <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>,
254 <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>;
245 clocks = <&cmu CLK_FIN_PLL>, <&cmu CLK_MCT>; 255 clocks = <&cmu CLK_FIN_PLL>, <&cmu CLK_MCT>;
246 clock-names = "fin_pll", "mct"; 256 clock-names = "fin_pll", "mct";
247 }; 257 };
@@ -249,24 +259,24 @@
249 pinctrl_1: pinctrl@11000000 { 259 pinctrl_1: pinctrl@11000000 {
250 compatible = "samsung,exynos3250-pinctrl"; 260 compatible = "samsung,exynos3250-pinctrl";
251 reg = <0x11000000 0x1000>; 261 reg = <0x11000000 0x1000>;
252 interrupts = <0 225 0>; 262 interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
253 263
254 wakeup-interrupt-controller { 264 wakeup-interrupt-controller {
255 compatible = "samsung,exynos4210-wakeup-eint"; 265 compatible = "samsung,exynos4210-wakeup-eint";
256 interrupts = <0 48 0>; 266 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
257 }; 267 };
258 }; 268 };
259 269
260 pinctrl_0: pinctrl@11400000 { 270 pinctrl_0: pinctrl@11400000 {
261 compatible = "samsung,exynos3250-pinctrl"; 271 compatible = "samsung,exynos3250-pinctrl";
262 reg = <0x11400000 0x1000>; 272 reg = <0x11400000 0x1000>;
263 interrupts = <0 240 0>; 273 interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>;
264 }; 274 };
265 275
266 jpeg: codec@11830000 { 276 jpeg: codec@11830000 {
267 compatible = "samsung,exynos3250-jpeg"; 277 compatible = "samsung,exynos3250-jpeg";
268 reg = <0x11830000 0x1000>; 278 reg = <0x11830000 0x1000>;
269 interrupts = <0 171 0>; 279 interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
270 clocks = <&cmu CLK_JPEG>, <&cmu CLK_SCLK_JPEG>; 280 clocks = <&cmu CLK_JPEG>, <&cmu CLK_SCLK_JPEG>;
271 clock-names = "jpeg", "sclk"; 281 clock-names = "jpeg", "sclk";
272 power-domains = <&pd_cam>; 282 power-domains = <&pd_cam>;
@@ -280,7 +290,8 @@
280 sysmmu_jpeg: sysmmu@11A60000 { 290 sysmmu_jpeg: sysmmu@11A60000 {
281 compatible = "samsung,exynos-sysmmu"; 291 compatible = "samsung,exynos-sysmmu";
282 reg = <0x11a60000 0x1000>; 292 reg = <0x11a60000 0x1000>;
283 interrupts = <0 156 0>, <0 161 0>; 293 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>,
294 <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
284 clock-names = "sysmmu", "master"; 295 clock-names = "sysmmu", "master";
285 clocks = <&cmu CLK_SMMUJPEG>, <&cmu CLK_JPEG>; 296 clocks = <&cmu CLK_SMMUJPEG>, <&cmu CLK_JPEG>;
286 power-domains = <&pd_cam>; 297 power-domains = <&pd_cam>;
@@ -291,7 +302,9 @@
291 compatible = "samsung,exynos3250-fimd"; 302 compatible = "samsung,exynos3250-fimd";
292 reg = <0x11c00000 0x30000>; 303 reg = <0x11c00000 0x30000>;
293 interrupt-names = "fifo", "vsync", "lcd_sys"; 304 interrupt-names = "fifo", "vsync", "lcd_sys";
294 interrupts = <0 84 0>, <0 85 0>, <0 86 0>; 305 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
306 <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
307 <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
295 clocks = <&cmu CLK_SCLK_FIMD0>, <&cmu CLK_FIMD0>; 308 clocks = <&cmu CLK_SCLK_FIMD0>, <&cmu CLK_FIMD0>;
296 clock-names = "sclk_fimd", "fimd"; 309 clock-names = "sclk_fimd", "fimd";
297 power-domains = <&pd_lcd0>; 310 power-domains = <&pd_lcd0>;
@@ -303,7 +316,7 @@
303 dsi_0: dsi@11C80000 { 316 dsi_0: dsi@11C80000 {
304 compatible = "samsung,exynos3250-mipi-dsi"; 317 compatible = "samsung,exynos3250-mipi-dsi";
305 reg = <0x11C80000 0x10000>; 318 reg = <0x11C80000 0x10000>;
306 interrupts = <0 83 0>; 319 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
307 samsung,phy-type = <0>; 320 samsung,phy-type = <0>;
308 power-domains = <&pd_lcd0>; 321 power-domains = <&pd_lcd0>;
309 phys = <&mipi_phy 1>; 322 phys = <&mipi_phy 1>;
@@ -318,7 +331,8 @@
318 sysmmu_fimd0: sysmmu@11E20000 { 331 sysmmu_fimd0: sysmmu@11E20000 {
319 compatible = "samsung,exynos-sysmmu"; 332 compatible = "samsung,exynos-sysmmu";
320 reg = <0x11e20000 0x1000>; 333 reg = <0x11e20000 0x1000>;
321 interrupts = <0 80 0>, <0 81 0>; 334 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>,
335 <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
322 clock-names = "sysmmu", "master"; 336 clock-names = "sysmmu", "master";
323 clocks = <&cmu CLK_SMMUFIMD0>, <&cmu CLK_FIMD0>; 337 clocks = <&cmu CLK_SMMUFIMD0>, <&cmu CLK_FIMD0>;
324 power-domains = <&pd_lcd0>; 338 power-domains = <&pd_lcd0>;
@@ -328,7 +342,7 @@
328 hsotg: hsotg@12480000 { 342 hsotg: hsotg@12480000 {
329 compatible = "snps,dwc2"; 343 compatible = "snps,dwc2";
330 reg = <0x12480000 0x20000>; 344 reg = <0x12480000 0x20000>;
331 interrupts = <0 141 0>; 345 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
332 clocks = <&cmu CLK_USBOTG>; 346 clocks = <&cmu CLK_USBOTG>;
333 clock-names = "otg"; 347 clock-names = "otg";
334 phys = <&exynos_usbphy 0>; 348 phys = <&exynos_usbphy 0>;
@@ -339,7 +353,7 @@
339 mshc_0: mshc@12510000 { 353 mshc_0: mshc@12510000 {
340 compatible = "samsung,exynos5420-dw-mshc"; 354 compatible = "samsung,exynos5420-dw-mshc";
341 reg = <0x12510000 0x1000>; 355 reg = <0x12510000 0x1000>;
342 interrupts = <0 142 0>; 356 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
343 clocks = <&cmu CLK_SDMMC0>, <&cmu CLK_SCLK_MMC0>; 357 clocks = <&cmu CLK_SDMMC0>, <&cmu CLK_SCLK_MMC0>;
344 clock-names = "biu", "ciu"; 358 clock-names = "biu", "ciu";
345 fifo-depth = <0x80>; 359 fifo-depth = <0x80>;
@@ -351,7 +365,7 @@
351 mshc_1: mshc@12520000 { 365 mshc_1: mshc@12520000 {
352 compatible = "samsung,exynos5420-dw-mshc"; 366 compatible = "samsung,exynos5420-dw-mshc";
353 reg = <0x12520000 0x1000>; 367 reg = <0x12520000 0x1000>;
354 interrupts = <0 143 0>; 368 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
355 clocks = <&cmu CLK_SDMMC1>, <&cmu CLK_SCLK_MMC1>; 369 clocks = <&cmu CLK_SDMMC1>, <&cmu CLK_SCLK_MMC1>;
356 clock-names = "biu", "ciu"; 370 clock-names = "biu", "ciu";
357 fifo-depth = <0x80>; 371 fifo-depth = <0x80>;
@@ -363,7 +377,7 @@
363 mshc_2: mshc@12530000 { 377 mshc_2: mshc@12530000 {
364 compatible = "samsung,exynos5250-dw-mshc"; 378 compatible = "samsung,exynos5250-dw-mshc";
365 reg = <0x12530000 0x1000>; 379 reg = <0x12530000 0x1000>;
366 interrupts = <0 144 0>; 380 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
367 clocks = <&cmu CLK_SDMMC2>, <&cmu CLK_SCLK_MMC2>; 381 clocks = <&cmu CLK_SDMMC2>, <&cmu CLK_SCLK_MMC2>;
368 clock-names = "biu", "ciu"; 382 clock-names = "biu", "ciu";
369 fifo-depth = <0x80>; 383 fifo-depth = <0x80>;
@@ -391,7 +405,7 @@
391 pdma0: pdma@12680000 { 405 pdma0: pdma@12680000 {
392 compatible = "arm,pl330", "arm,primecell"; 406 compatible = "arm,pl330", "arm,primecell";
393 reg = <0x12680000 0x1000>; 407 reg = <0x12680000 0x1000>;
394 interrupts = <0 138 0>; 408 interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
395 clocks = <&cmu CLK_PDMA0>; 409 clocks = <&cmu CLK_PDMA0>;
396 clock-names = "apb_pclk"; 410 clock-names = "apb_pclk";
397 #dma-cells = <1>; 411 #dma-cells = <1>;
@@ -402,7 +416,7 @@
402 pdma1: pdma@12690000 { 416 pdma1: pdma@12690000 {
403 compatible = "arm,pl330", "arm,primecell"; 417 compatible = "arm,pl330", "arm,primecell";
404 reg = <0x12690000 0x1000>; 418 reg = <0x12690000 0x1000>;
405 interrupts = <0 139 0>; 419 interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
406 clocks = <&cmu CLK_PDMA1>; 420 clocks = <&cmu CLK_PDMA1>;
407 clock-names = "apb_pclk"; 421 clock-names = "apb_pclk";
408 #dma-cells = <1>; 422 #dma-cells = <1>;
@@ -415,7 +429,7 @@
415 compatible = "samsung,exynos3250-adc", 429 compatible = "samsung,exynos3250-adc",
416 "samsung,exynos-adc-v2"; 430 "samsung,exynos-adc-v2";
417 reg = <0x126C0000 0x100>; 431 reg = <0x126C0000 0x100>;
418 interrupts = <0 137 0>; 432 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
419 clock-names = "adc", "sclk"; 433 clock-names = "adc", "sclk";
420 clocks = <&cmu CLK_TSADC>, <&cmu CLK_SCLK_TSADC>; 434 clocks = <&cmu CLK_TSADC>, <&cmu CLK_SCLK_TSADC>;
421 #io-channel-cells = <1>; 435 #io-channel-cells = <1>;
@@ -427,7 +441,7 @@
427 mfc: codec@13400000 { 441 mfc: codec@13400000 {
428 compatible = "samsung,mfc-v7"; 442 compatible = "samsung,mfc-v7";
429 reg = <0x13400000 0x10000>; 443 reg = <0x13400000 0x10000>;
430 interrupts = <0 102 0>; 444 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
431 clock-names = "mfc", "sclk_mfc"; 445 clock-names = "mfc", "sclk_mfc";
432 clocks = <&cmu CLK_MFC>, <&cmu CLK_SCLK_MFC>; 446 clocks = <&cmu CLK_MFC>, <&cmu CLK_SCLK_MFC>;
433 power-domains = <&pd_mfc>; 447 power-domains = <&pd_mfc>;
@@ -437,7 +451,8 @@
437 sysmmu_mfc: sysmmu@13620000 { 451 sysmmu_mfc: sysmmu@13620000 {
438 compatible = "samsung,exynos-sysmmu"; 452 compatible = "samsung,exynos-sysmmu";
439 reg = <0x13620000 0x1000>; 453 reg = <0x13620000 0x1000>;
440 interrupts = <0 96 0>, <0 98 0>; 454 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
455 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
441 clock-names = "sysmmu", "master"; 456 clock-names = "sysmmu", "master";
442 clocks = <&cmu CLK_SMMUMFC_L>, <&cmu CLK_MFC>; 457 clocks = <&cmu CLK_SMMUMFC_L>, <&cmu CLK_MFC>;
443 power-domains = <&pd_mfc>; 458 power-domains = <&pd_mfc>;
@@ -447,7 +462,7 @@
447 serial_0: serial@13800000 { 462 serial_0: serial@13800000 {
448 compatible = "samsung,exynos4210-uart"; 463 compatible = "samsung,exynos4210-uart";
449 reg = <0x13800000 0x100>; 464 reg = <0x13800000 0x100>;
450 interrupts = <0 109 0>; 465 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
451 clocks = <&cmu CLK_UART0>, <&cmu CLK_SCLK_UART0>; 466 clocks = <&cmu CLK_UART0>, <&cmu CLK_SCLK_UART0>;
452 clock-names = "uart", "clk_uart_baud0"; 467 clock-names = "uart", "clk_uart_baud0";
453 pinctrl-names = "default"; 468 pinctrl-names = "default";
@@ -458,7 +473,7 @@
458 serial_1: serial@13810000 { 473 serial_1: serial@13810000 {
459 compatible = "samsung,exynos4210-uart"; 474 compatible = "samsung,exynos4210-uart";
460 reg = <0x13810000 0x100>; 475 reg = <0x13810000 0x100>;
461 interrupts = <0 110 0>; 476 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
462 clocks = <&cmu CLK_UART1>, <&cmu CLK_SCLK_UART1>; 477 clocks = <&cmu CLK_UART1>, <&cmu CLK_SCLK_UART1>;
463 clock-names = "uart", "clk_uart_baud0"; 478 clock-names = "uart", "clk_uart_baud0";
464 pinctrl-names = "default"; 479 pinctrl-names = "default";
@@ -469,7 +484,7 @@
469 serial_2: serial@13820000 { 484 serial_2: serial@13820000 {
470 compatible = "samsung,exynos4210-uart"; 485 compatible = "samsung,exynos4210-uart";
471 reg = <0x13820000 0x100>; 486 reg = <0x13820000 0x100>;
472 interrupts = <0 111 0>; 487 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
473 clocks = <&cmu CLK_UART2>, <&cmu CLK_SCLK_UART2>; 488 clocks = <&cmu CLK_UART2>, <&cmu CLK_SCLK_UART2>;
474 clock-names = "uart", "clk_uart_baud0"; 489 clock-names = "uart", "clk_uart_baud0";
475 pinctrl-names = "default"; 490 pinctrl-names = "default";
@@ -482,7 +497,7 @@
482 #size-cells = <0>; 497 #size-cells = <0>;
483 compatible = "samsung,s3c2440-i2c"; 498 compatible = "samsung,s3c2440-i2c";
484 reg = <0x13860000 0x100>; 499 reg = <0x13860000 0x100>;
485 interrupts = <0 113 0>; 500 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
486 clocks = <&cmu CLK_I2C0>; 501 clocks = <&cmu CLK_I2C0>;
487 clock-names = "i2c"; 502 clock-names = "i2c";
488 pinctrl-names = "default"; 503 pinctrl-names = "default";
@@ -495,7 +510,7 @@
495 #size-cells = <0>; 510 #size-cells = <0>;
496 compatible = "samsung,s3c2440-i2c"; 511 compatible = "samsung,s3c2440-i2c";
497 reg = <0x13870000 0x100>; 512 reg = <0x13870000 0x100>;
498 interrupts = <0 114 0>; 513 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
499 clocks = <&cmu CLK_I2C1>; 514 clocks = <&cmu CLK_I2C1>;
500 clock-names = "i2c"; 515 clock-names = "i2c";
501 pinctrl-names = "default"; 516 pinctrl-names = "default";
@@ -508,7 +523,7 @@
508 #size-cells = <0>; 523 #size-cells = <0>;
509 compatible = "samsung,s3c2440-i2c"; 524 compatible = "samsung,s3c2440-i2c";
510 reg = <0x13880000 0x100>; 525 reg = <0x13880000 0x100>;
511 interrupts = <0 115 0>; 526 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
512 clocks = <&cmu CLK_I2C2>; 527 clocks = <&cmu CLK_I2C2>;
513 clock-names = "i2c"; 528 clock-names = "i2c";
514 pinctrl-names = "default"; 529 pinctrl-names = "default";
@@ -521,7 +536,7 @@
521 #size-cells = <0>; 536 #size-cells = <0>;
522 compatible = "samsung,s3c2440-i2c"; 537 compatible = "samsung,s3c2440-i2c";
523 reg = <0x13890000 0x100>; 538 reg = <0x13890000 0x100>;
524 interrupts = <0 116 0>; 539 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
525 clocks = <&cmu CLK_I2C3>; 540 clocks = <&cmu CLK_I2C3>;
526 clock-names = "i2c"; 541 clock-names = "i2c";
527 pinctrl-names = "default"; 542 pinctrl-names = "default";
@@ -534,7 +549,7 @@
534 #size-cells = <0>; 549 #size-cells = <0>;
535 compatible = "samsung,s3c2440-i2c"; 550 compatible = "samsung,s3c2440-i2c";
536 reg = <0x138A0000 0x100>; 551 reg = <0x138A0000 0x100>;
537 interrupts = <0 117 0>; 552 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
538 clocks = <&cmu CLK_I2C4>; 553 clocks = <&cmu CLK_I2C4>;
539 clock-names = "i2c"; 554 clock-names = "i2c";
540 pinctrl-names = "default"; 555 pinctrl-names = "default";
@@ -547,7 +562,7 @@
547 #size-cells = <0>; 562 #size-cells = <0>;
548 compatible = "samsung,s3c2440-i2c"; 563 compatible = "samsung,s3c2440-i2c";
549 reg = <0x138B0000 0x100>; 564 reg = <0x138B0000 0x100>;
550 interrupts = <0 118 0>; 565 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
551 clocks = <&cmu CLK_I2C5>; 566 clocks = <&cmu CLK_I2C5>;
552 clock-names = "i2c"; 567 clock-names = "i2c";
553 pinctrl-names = "default"; 568 pinctrl-names = "default";
@@ -560,7 +575,7 @@
560 #size-cells = <0>; 575 #size-cells = <0>;
561 compatible = "samsung,s3c2440-i2c"; 576 compatible = "samsung,s3c2440-i2c";
562 reg = <0x138C0000 0x100>; 577 reg = <0x138C0000 0x100>;
563 interrupts = <0 119 0>; 578 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
564 clocks = <&cmu CLK_I2C6>; 579 clocks = <&cmu CLK_I2C6>;
565 clock-names = "i2c"; 580 clock-names = "i2c";
566 pinctrl-names = "default"; 581 pinctrl-names = "default";
@@ -573,7 +588,7 @@
573 #size-cells = <0>; 588 #size-cells = <0>;
574 compatible = "samsung,s3c2440-i2c"; 589 compatible = "samsung,s3c2440-i2c";
575 reg = <0x138D0000 0x100>; 590 reg = <0x138D0000 0x100>;
576 interrupts = <0 120 0>; 591 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
577 clocks = <&cmu CLK_I2C7>; 592 clocks = <&cmu CLK_I2C7>;
578 clock-names = "i2c"; 593 clock-names = "i2c";
579 pinctrl-names = "default"; 594 pinctrl-names = "default";
@@ -584,7 +599,7 @@
584 spi_0: spi@13920000 { 599 spi_0: spi@13920000 {
585 compatible = "samsung,exynos4210-spi"; 600 compatible = "samsung,exynos4210-spi";
586 reg = <0x13920000 0x100>; 601 reg = <0x13920000 0x100>;
587 interrupts = <0 121 0>; 602 interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
588 dmas = <&pdma0 7>, <&pdma0 6>; 603 dmas = <&pdma0 7>, <&pdma0 6>;
589 dma-names = "tx", "rx"; 604 dma-names = "tx", "rx";
590 #address-cells = <1>; 605 #address-cells = <1>;
@@ -600,7 +615,7 @@
600 spi_1: spi@13930000 { 615 spi_1: spi@13930000 {
601 compatible = "samsung,exynos4210-spi"; 616 compatible = "samsung,exynos4210-spi";
602 reg = <0x13930000 0x100>; 617 reg = <0x13930000 0x100>;
603 interrupts = <0 122 0>; 618 interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
604 dmas = <&pdma1 7>, <&pdma1 6>; 619 dmas = <&pdma1 7>, <&pdma1 6>;
605 dma-names = "tx", "rx"; 620 dma-names = "tx", "rx";
606 #address-cells = <1>; 621 #address-cells = <1>;
@@ -616,7 +631,7 @@
616 i2s2: i2s@13970000 { 631 i2s2: i2s@13970000 {
617 compatible = "samsung,s3c6410-i2s"; 632 compatible = "samsung,s3c6410-i2s";
618 reg = <0x13970000 0x100>; 633 reg = <0x13970000 0x100>;
619 interrupts = <0 126 0>; 634 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
620 clocks = <&cmu CLK_I2S>, <&cmu CLK_SCLK_I2S>; 635 clocks = <&cmu CLK_I2S>, <&cmu CLK_SCLK_I2S>;
621 clock-names = "iis", "i2s_opclk0"; 636 clock-names = "iis", "i2s_opclk0";
622 dmas = <&pdma0 14>, <&pdma0 13>; 637 dmas = <&pdma0 14>, <&pdma0 13>;
@@ -629,15 +644,19 @@
629 pwm: pwm@139D0000 { 644 pwm: pwm@139D0000 {
630 compatible = "samsung,exynos4210-pwm"; 645 compatible = "samsung,exynos4210-pwm";
631 reg = <0x139D0000 0x1000>; 646 reg = <0x139D0000 0x1000>;
632 interrupts = <0 104 0>, <0 105 0>, <0 106 0>, 647 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
633 <0 107 0>, <0 108 0>; 648 <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
649 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
650 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
651 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
634 #pwm-cells = <3>; 652 #pwm-cells = <3>;
635 status = "disabled"; 653 status = "disabled";
636 }; 654 };
637 655
638 pmu { 656 pmu {
639 compatible = "arm,cortex-a7-pmu"; 657 compatible = "arm,cortex-a7-pmu";
640 interrupts = <0 18 0>, <0 19 0>; 658 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
659 <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
641 }; 660 };
642 661
643 ppmu_dmc0: ppmu_dmc0@106a0000 { 662 ppmu_dmc0: ppmu_dmc0@106a0000 {
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index 5f034eb5a5e2..c64737baa45e 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -21,6 +21,8 @@
21 21
22#include <dt-bindings/clock/exynos4.h> 22#include <dt-bindings/clock/exynos4.h>
23#include <dt-bindings/clock/exynos-audss-clk.h> 23#include <dt-bindings/clock/exynos-audss-clk.h>
24#include <dt-bindings/interrupt-controller/arm-gic.h>
25#include <dt-bindings/interrupt-controller/irq.h>
24#include "exynos-syscon-restart.dtsi" 26#include "exynos-syscon-restart.dtsi"
25 27
26/ { 28/ {
@@ -78,6 +80,11 @@
78 reg = <0x10000000 0x100>; 80 reg = <0x10000000 0x100>;
79 }; 81 };
80 82
83 scu: snoop-control-unit@10500000 {
84 compatible = "arm,cortex-a9-scu";
85 reg = <0x10500000 0x2000>;
86 };
87
81 memory-controller@12570000 { 88 memory-controller@12570000 {
82 compatible = "samsung,exynos4210-srom"; 89 compatible = "samsung,exynos4210-srom";
83 reg = <0x12570000 0x14>; 90 reg = <0x12570000 0x14>;
@@ -168,7 +175,7 @@
168 dsi_0: dsi@11C80000 { 175 dsi_0: dsi@11C80000 {
169 compatible = "samsung,exynos4210-mipi-dsi"; 176 compatible = "samsung,exynos4210-mipi-dsi";
170 reg = <0x11C80000 0x10000>; 177 reg = <0x11C80000 0x10000>;
171 interrupts = <0 79 0>; 178 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
172 power-domains = <&pd_lcd0>; 179 power-domains = <&pd_lcd0>;
173 phys = <&mipi_phy 1>; 180 phys = <&mipi_phy 1>;
174 phy-names = "dsim"; 181 phy-names = "dsim";
@@ -191,7 +198,7 @@
191 fimc_0: fimc@11800000 { 198 fimc_0: fimc@11800000 {
192 compatible = "samsung,exynos4210-fimc"; 199 compatible = "samsung,exynos4210-fimc";
193 reg = <0x11800000 0x1000>; 200 reg = <0x11800000 0x1000>;
194 interrupts = <0 84 0>; 201 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
195 clocks = <&clock CLK_FIMC0>, <&clock CLK_SCLK_FIMC0>; 202 clocks = <&clock CLK_FIMC0>, <&clock CLK_SCLK_FIMC0>;
196 clock-names = "fimc", "sclk_fimc"; 203 clock-names = "fimc", "sclk_fimc";
197 power-domains = <&pd_cam>; 204 power-domains = <&pd_cam>;
@@ -203,7 +210,7 @@
203 fimc_1: fimc@11810000 { 210 fimc_1: fimc@11810000 {
204 compatible = "samsung,exynos4210-fimc"; 211 compatible = "samsung,exynos4210-fimc";
205 reg = <0x11810000 0x1000>; 212 reg = <0x11810000 0x1000>;
206 interrupts = <0 85 0>; 213 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
207 clocks = <&clock CLK_FIMC1>, <&clock CLK_SCLK_FIMC1>; 214 clocks = <&clock CLK_FIMC1>, <&clock CLK_SCLK_FIMC1>;
208 clock-names = "fimc", "sclk_fimc"; 215 clock-names = "fimc", "sclk_fimc";
209 power-domains = <&pd_cam>; 216 power-domains = <&pd_cam>;
@@ -215,7 +222,7 @@
215 fimc_2: fimc@11820000 { 222 fimc_2: fimc@11820000 {
216 compatible = "samsung,exynos4210-fimc"; 223 compatible = "samsung,exynos4210-fimc";
217 reg = <0x11820000 0x1000>; 224 reg = <0x11820000 0x1000>;
218 interrupts = <0 86 0>; 225 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
219 clocks = <&clock CLK_FIMC2>, <&clock CLK_SCLK_FIMC2>; 226 clocks = <&clock CLK_FIMC2>, <&clock CLK_SCLK_FIMC2>;
220 clock-names = "fimc", "sclk_fimc"; 227 clock-names = "fimc", "sclk_fimc";
221 power-domains = <&pd_cam>; 228 power-domains = <&pd_cam>;
@@ -227,7 +234,7 @@
227 fimc_3: fimc@11830000 { 234 fimc_3: fimc@11830000 {
228 compatible = "samsung,exynos4210-fimc"; 235 compatible = "samsung,exynos4210-fimc";
229 reg = <0x11830000 0x1000>; 236 reg = <0x11830000 0x1000>;
230 interrupts = <0 87 0>; 237 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
231 clocks = <&clock CLK_FIMC3>, <&clock CLK_SCLK_FIMC3>; 238 clocks = <&clock CLK_FIMC3>, <&clock CLK_SCLK_FIMC3>;
232 clock-names = "fimc", "sclk_fimc"; 239 clock-names = "fimc", "sclk_fimc";
233 power-domains = <&pd_cam>; 240 power-domains = <&pd_cam>;
@@ -239,7 +246,7 @@
239 csis_0: csis@11880000 { 246 csis_0: csis@11880000 {
240 compatible = "samsung,exynos4210-csis"; 247 compatible = "samsung,exynos4210-csis";
241 reg = <0x11880000 0x4000>; 248 reg = <0x11880000 0x4000>;
242 interrupts = <0 78 0>; 249 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
243 clocks = <&clock CLK_CSIS0>, <&clock CLK_SCLK_CSIS0>; 250 clocks = <&clock CLK_CSIS0>, <&clock CLK_SCLK_CSIS0>;
244 clock-names = "csis", "sclk_csis"; 251 clock-names = "csis", "sclk_csis";
245 bus-width = <4>; 252 bus-width = <4>;
@@ -254,7 +261,7 @@
254 csis_1: csis@11890000 { 261 csis_1: csis@11890000 {
255 compatible = "samsung,exynos4210-csis"; 262 compatible = "samsung,exynos4210-csis";
256 reg = <0x11890000 0x4000>; 263 reg = <0x11890000 0x4000>;
257 interrupts = <0 80 0>; 264 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
258 clocks = <&clock CLK_CSIS1>, <&clock CLK_SCLK_CSIS1>; 265 clocks = <&clock CLK_CSIS1>, <&clock CLK_SCLK_CSIS1>;
259 clock-names = "csis", "sclk_csis"; 266 clock-names = "csis", "sclk_csis";
260 bus-width = <2>; 267 bus-width = <2>;
@@ -270,7 +277,7 @@
270 watchdog: watchdog@10060000 { 277 watchdog: watchdog@10060000 {
271 compatible = "samsung,s3c2410-wdt"; 278 compatible = "samsung,s3c2410-wdt";
272 reg = <0x10060000 0x100>; 279 reg = <0x10060000 0x100>;
273 interrupts = <0 43 0>; 280 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
274 clocks = <&clock CLK_WDT>; 281 clocks = <&clock CLK_WDT>;
275 clock-names = "watchdog"; 282 clock-names = "watchdog";
276 status = "disabled"; 283 status = "disabled";
@@ -280,7 +287,8 @@
280 compatible = "samsung,s3c6410-rtc"; 287 compatible = "samsung,s3c6410-rtc";
281 reg = <0x10070000 0x100>; 288 reg = <0x10070000 0x100>;
282 interrupt-parent = <&pmu_system_controller>; 289 interrupt-parent = <&pmu_system_controller>;
283 interrupts = <0 44 0>, <0 45 0>; 290 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
291 <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
284 clocks = <&clock CLK_RTC>; 292 clocks = <&clock CLK_RTC>;
285 clock-names = "rtc"; 293 clock-names = "rtc";
286 status = "disabled"; 294 status = "disabled";
@@ -289,7 +297,7 @@
289 keypad: keypad@100A0000 { 297 keypad: keypad@100A0000 {
290 compatible = "samsung,s5pv210-keypad"; 298 compatible = "samsung,s5pv210-keypad";
291 reg = <0x100A0000 0x100>; 299 reg = <0x100A0000 0x100>;
292 interrupts = <0 109 0>; 300 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
293 clocks = <&clock CLK_KEYIF>; 301 clocks = <&clock CLK_KEYIF>;
294 clock-names = "keypad"; 302 clock-names = "keypad";
295 status = "disabled"; 303 status = "disabled";
@@ -298,7 +306,7 @@
298 sdhci_0: sdhci@12510000 { 306 sdhci_0: sdhci@12510000 {
299 compatible = "samsung,exynos4210-sdhci"; 307 compatible = "samsung,exynos4210-sdhci";
300 reg = <0x12510000 0x100>; 308 reg = <0x12510000 0x100>;
301 interrupts = <0 73 0>; 309 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
302 clocks = <&clock CLK_SDMMC0>, <&clock CLK_SCLK_MMC0>; 310 clocks = <&clock CLK_SDMMC0>, <&clock CLK_SCLK_MMC0>;
303 clock-names = "hsmmc", "mmc_busclk.2"; 311 clock-names = "hsmmc", "mmc_busclk.2";
304 status = "disabled"; 312 status = "disabled";
@@ -307,7 +315,7 @@
307 sdhci_1: sdhci@12520000 { 315 sdhci_1: sdhci@12520000 {
308 compatible = "samsung,exynos4210-sdhci"; 316 compatible = "samsung,exynos4210-sdhci";
309 reg = <0x12520000 0x100>; 317 reg = <0x12520000 0x100>;
310 interrupts = <0 74 0>; 318 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
311 clocks = <&clock CLK_SDMMC1>, <&clock CLK_SCLK_MMC1>; 319 clocks = <&clock CLK_SDMMC1>, <&clock CLK_SCLK_MMC1>;
312 clock-names = "hsmmc", "mmc_busclk.2"; 320 clock-names = "hsmmc", "mmc_busclk.2";
313 status = "disabled"; 321 status = "disabled";
@@ -316,7 +324,7 @@
316 sdhci_2: sdhci@12530000 { 324 sdhci_2: sdhci@12530000 {
317 compatible = "samsung,exynos4210-sdhci"; 325 compatible = "samsung,exynos4210-sdhci";
318 reg = <0x12530000 0x100>; 326 reg = <0x12530000 0x100>;
319 interrupts = <0 75 0>; 327 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
320 clocks = <&clock CLK_SDMMC2>, <&clock CLK_SCLK_MMC2>; 328 clocks = <&clock CLK_SDMMC2>, <&clock CLK_SCLK_MMC2>;
321 clock-names = "hsmmc", "mmc_busclk.2"; 329 clock-names = "hsmmc", "mmc_busclk.2";
322 status = "disabled"; 330 status = "disabled";
@@ -325,7 +333,7 @@
325 sdhci_3: sdhci@12540000 { 333 sdhci_3: sdhci@12540000 {
326 compatible = "samsung,exynos4210-sdhci"; 334 compatible = "samsung,exynos4210-sdhci";
327 reg = <0x12540000 0x100>; 335 reg = <0x12540000 0x100>;
328 interrupts = <0 76 0>; 336 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
329 clocks = <&clock CLK_SDMMC3>, <&clock CLK_SCLK_MMC3>; 337 clocks = <&clock CLK_SDMMC3>, <&clock CLK_SCLK_MMC3>;
330 clock-names = "hsmmc", "mmc_busclk.2"; 338 clock-names = "hsmmc", "mmc_busclk.2";
331 status = "disabled"; 339 status = "disabled";
@@ -344,7 +352,7 @@
344 hsotg: hsotg@12480000 { 352 hsotg: hsotg@12480000 {
345 compatible = "samsung,s3c6400-hsotg"; 353 compatible = "samsung,s3c6400-hsotg";
346 reg = <0x12480000 0x20000>; 354 reg = <0x12480000 0x20000>;
347 interrupts = <0 71 0>; 355 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
348 clocks = <&clock CLK_USB_DEVICE>; 356 clocks = <&clock CLK_USB_DEVICE>;
349 clock-names = "otg"; 357 clock-names = "otg";
350 phys = <&exynos_usbphy 0>; 358 phys = <&exynos_usbphy 0>;
@@ -355,7 +363,7 @@
355 ehci: ehci@12580000 { 363 ehci: ehci@12580000 {
356 compatible = "samsung,exynos4210-ehci"; 364 compatible = "samsung,exynos4210-ehci";
357 reg = <0x12580000 0x100>; 365 reg = <0x12580000 0x100>;
358 interrupts = <0 70 0>; 366 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
359 clocks = <&clock CLK_USB_HOST>; 367 clocks = <&clock CLK_USB_HOST>;
360 clock-names = "usbhost"; 368 clock-names = "usbhost";
361 status = "disabled"; 369 status = "disabled";
@@ -381,7 +389,7 @@
381 ohci: ohci@12590000 { 389 ohci: ohci@12590000 {
382 compatible = "samsung,exynos4210-ohci"; 390 compatible = "samsung,exynos4210-ohci";
383 reg = <0x12590000 0x100>; 391 reg = <0x12590000 0x100>;
384 interrupts = <0 70 0>; 392 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
385 clocks = <&clock CLK_USB_HOST>; 393 clocks = <&clock CLK_USB_HOST>;
386 clock-names = "usbhost"; 394 clock-names = "usbhost";
387 status = "disabled"; 395 status = "disabled";
@@ -423,7 +431,7 @@
423 mfc: codec@13400000 { 431 mfc: codec@13400000 {
424 compatible = "samsung,mfc-v5"; 432 compatible = "samsung,mfc-v5";
425 reg = <0x13400000 0x10000>; 433 reg = <0x13400000 0x10000>;
426 interrupts = <0 94 0>; 434 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
427 power-domains = <&pd_mfc>; 435 power-domains = <&pd_mfc>;
428 clocks = <&clock CLK_MFC>, <&clock CLK_SCLK_MFC>; 436 clocks = <&clock CLK_MFC>, <&clock CLK_SCLK_MFC>;
429 clock-names = "mfc", "sclk_mfc"; 437 clock-names = "mfc", "sclk_mfc";
@@ -434,7 +442,7 @@
434 serial_0: serial@13800000 { 442 serial_0: serial@13800000 {
435 compatible = "samsung,exynos4210-uart"; 443 compatible = "samsung,exynos4210-uart";
436 reg = <0x13800000 0x100>; 444 reg = <0x13800000 0x100>;
437 interrupts = <0 52 0>; 445 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
438 clocks = <&clock CLK_UART0>, <&clock CLK_SCLK_UART0>; 446 clocks = <&clock CLK_UART0>, <&clock CLK_SCLK_UART0>;
439 clock-names = "uart", "clk_uart_baud0"; 447 clock-names = "uart", "clk_uart_baud0";
440 dmas = <&pdma0 15>, <&pdma0 16>; 448 dmas = <&pdma0 15>, <&pdma0 16>;
@@ -445,7 +453,7 @@
445 serial_1: serial@13810000 { 453 serial_1: serial@13810000 {
446 compatible = "samsung,exynos4210-uart"; 454 compatible = "samsung,exynos4210-uart";
447 reg = <0x13810000 0x100>; 455 reg = <0x13810000 0x100>;
448 interrupts = <0 53 0>; 456 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
449 clocks = <&clock CLK_UART1>, <&clock CLK_SCLK_UART1>; 457 clocks = <&clock CLK_UART1>, <&clock CLK_SCLK_UART1>;
450 clock-names = "uart", "clk_uart_baud0"; 458 clock-names = "uart", "clk_uart_baud0";
451 dmas = <&pdma1 15>, <&pdma1 16>; 459 dmas = <&pdma1 15>, <&pdma1 16>;
@@ -456,7 +464,7 @@
456 serial_2: serial@13820000 { 464 serial_2: serial@13820000 {
457 compatible = "samsung,exynos4210-uart"; 465 compatible = "samsung,exynos4210-uart";
458 reg = <0x13820000 0x100>; 466 reg = <0x13820000 0x100>;
459 interrupts = <0 54 0>; 467 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
460 clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>; 468 clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>;
461 clock-names = "uart", "clk_uart_baud0"; 469 clock-names = "uart", "clk_uart_baud0";
462 dmas = <&pdma0 17>, <&pdma0 18>; 470 dmas = <&pdma0 17>, <&pdma0 18>;
@@ -467,7 +475,7 @@
467 serial_3: serial@13830000 { 475 serial_3: serial@13830000 {
468 compatible = "samsung,exynos4210-uart"; 476 compatible = "samsung,exynos4210-uart";
469 reg = <0x13830000 0x100>; 477 reg = <0x13830000 0x100>;
470 interrupts = <0 55 0>; 478 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
471 clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>; 479 clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>;
472 clock-names = "uart", "clk_uart_baud0"; 480 clock-names = "uart", "clk_uart_baud0";
473 dmas = <&pdma1 17>, <&pdma1 18>; 481 dmas = <&pdma1 17>, <&pdma1 18>;
@@ -480,7 +488,7 @@
480 #size-cells = <0>; 488 #size-cells = <0>;
481 compatible = "samsung,s3c2440-i2c"; 489 compatible = "samsung,s3c2440-i2c";
482 reg = <0x13860000 0x100>; 490 reg = <0x13860000 0x100>;
483 interrupts = <0 58 0>; 491 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
484 clocks = <&clock CLK_I2C0>; 492 clocks = <&clock CLK_I2C0>;
485 clock-names = "i2c"; 493 clock-names = "i2c";
486 pinctrl-names = "default"; 494 pinctrl-names = "default";
@@ -493,7 +501,7 @@
493 #size-cells = <0>; 501 #size-cells = <0>;
494 compatible = "samsung,s3c2440-i2c"; 502 compatible = "samsung,s3c2440-i2c";
495 reg = <0x13870000 0x100>; 503 reg = <0x13870000 0x100>;
496 interrupts = <0 59 0>; 504 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
497 clocks = <&clock CLK_I2C1>; 505 clocks = <&clock CLK_I2C1>;
498 clock-names = "i2c"; 506 clock-names = "i2c";
499 pinctrl-names = "default"; 507 pinctrl-names = "default";
@@ -506,7 +514,7 @@
506 #size-cells = <0>; 514 #size-cells = <0>;
507 compatible = "samsung,s3c2440-i2c"; 515 compatible = "samsung,s3c2440-i2c";
508 reg = <0x13880000 0x100>; 516 reg = <0x13880000 0x100>;
509 interrupts = <0 60 0>; 517 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
510 clocks = <&clock CLK_I2C2>; 518 clocks = <&clock CLK_I2C2>;
511 clock-names = "i2c"; 519 clock-names = "i2c";
512 pinctrl-names = "default"; 520 pinctrl-names = "default";
@@ -519,7 +527,7 @@
519 #size-cells = <0>; 527 #size-cells = <0>;
520 compatible = "samsung,s3c2440-i2c"; 528 compatible = "samsung,s3c2440-i2c";
521 reg = <0x13890000 0x100>; 529 reg = <0x13890000 0x100>;
522 interrupts = <0 61 0>; 530 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
523 clocks = <&clock CLK_I2C3>; 531 clocks = <&clock CLK_I2C3>;
524 clock-names = "i2c"; 532 clock-names = "i2c";
525 pinctrl-names = "default"; 533 pinctrl-names = "default";
@@ -532,7 +540,7 @@
532 #size-cells = <0>; 540 #size-cells = <0>;
533 compatible = "samsung,s3c2440-i2c"; 541 compatible = "samsung,s3c2440-i2c";
534 reg = <0x138A0000 0x100>; 542 reg = <0x138A0000 0x100>;
535 interrupts = <0 62 0>; 543 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
536 clocks = <&clock CLK_I2C4>; 544 clocks = <&clock CLK_I2C4>;
537 clock-names = "i2c"; 545 clock-names = "i2c";
538 pinctrl-names = "default"; 546 pinctrl-names = "default";
@@ -545,7 +553,7 @@
545 #size-cells = <0>; 553 #size-cells = <0>;
546 compatible = "samsung,s3c2440-i2c"; 554 compatible = "samsung,s3c2440-i2c";
547 reg = <0x138B0000 0x100>; 555 reg = <0x138B0000 0x100>;
548 interrupts = <0 63 0>; 556 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
549 clocks = <&clock CLK_I2C5>; 557 clocks = <&clock CLK_I2C5>;
550 clock-names = "i2c"; 558 clock-names = "i2c";
551 pinctrl-names = "default"; 559 pinctrl-names = "default";
@@ -558,7 +566,7 @@
558 #size-cells = <0>; 566 #size-cells = <0>;
559 compatible = "samsung,s3c2440-i2c"; 567 compatible = "samsung,s3c2440-i2c";
560 reg = <0x138C0000 0x100>; 568 reg = <0x138C0000 0x100>;
561 interrupts = <0 64 0>; 569 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
562 clocks = <&clock CLK_I2C6>; 570 clocks = <&clock CLK_I2C6>;
563 clock-names = "i2c"; 571 clock-names = "i2c";
564 pinctrl-names = "default"; 572 pinctrl-names = "default";
@@ -571,7 +579,7 @@
571 #size-cells = <0>; 579 #size-cells = <0>;
572 compatible = "samsung,s3c2440-i2c"; 580 compatible = "samsung,s3c2440-i2c";
573 reg = <0x138D0000 0x100>; 581 reg = <0x138D0000 0x100>;
574 interrupts = <0 65 0>; 582 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
575 clocks = <&clock CLK_I2C7>; 583 clocks = <&clock CLK_I2C7>;
576 clock-names = "i2c"; 584 clock-names = "i2c";
577 pinctrl-names = "default"; 585 pinctrl-names = "default";
@@ -584,7 +592,7 @@
584 #size-cells = <0>; 592 #size-cells = <0>;
585 compatible = "samsung,s3c2440-hdmiphy-i2c"; 593 compatible = "samsung,s3c2440-hdmiphy-i2c";
586 reg = <0x138E0000 0x100>; 594 reg = <0x138E0000 0x100>;
587 interrupts = <0 93 0>; 595 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
588 clocks = <&clock CLK_I2C_HDMI>; 596 clocks = <&clock CLK_I2C_HDMI>;
589 clock-names = "i2c"; 597 clock-names = "i2c";
590 status = "disabled"; 598 status = "disabled";
@@ -598,7 +606,7 @@
598 spi_0: spi@13920000 { 606 spi_0: spi@13920000 {
599 compatible = "samsung,exynos4210-spi"; 607 compatible = "samsung,exynos4210-spi";
600 reg = <0x13920000 0x100>; 608 reg = <0x13920000 0x100>;
601 interrupts = <0 66 0>; 609 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
602 dmas = <&pdma0 7>, <&pdma0 6>; 610 dmas = <&pdma0 7>, <&pdma0 6>;
603 dma-names = "tx", "rx"; 611 dma-names = "tx", "rx";
604 #address-cells = <1>; 612 #address-cells = <1>;
@@ -613,7 +621,7 @@
613 spi_1: spi@13930000 { 621 spi_1: spi@13930000 {
614 compatible = "samsung,exynos4210-spi"; 622 compatible = "samsung,exynos4210-spi";
615 reg = <0x13930000 0x100>; 623 reg = <0x13930000 0x100>;
616 interrupts = <0 67 0>; 624 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
617 dmas = <&pdma1 7>, <&pdma1 6>; 625 dmas = <&pdma1 7>, <&pdma1 6>;
618 dma-names = "tx", "rx"; 626 dma-names = "tx", "rx";
619 #address-cells = <1>; 627 #address-cells = <1>;
@@ -628,7 +636,7 @@
628 spi_2: spi@13940000 { 636 spi_2: spi@13940000 {
629 compatible = "samsung,exynos4210-spi"; 637 compatible = "samsung,exynos4210-spi";
630 reg = <0x13940000 0x100>; 638 reg = <0x13940000 0x100>;
631 interrupts = <0 68 0>; 639 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
632 dmas = <&pdma0 9>, <&pdma0 8>; 640 dmas = <&pdma0 9>, <&pdma0 8>;
633 dma-names = "tx", "rx"; 641 dma-names = "tx", "rx";
634 #address-cells = <1>; 642 #address-cells = <1>;
@@ -643,7 +651,11 @@
643 pwm: pwm@139D0000 { 651 pwm: pwm@139D0000 {
644 compatible = "samsung,exynos4210-pwm"; 652 compatible = "samsung,exynos4210-pwm";
645 reg = <0x139D0000 0x1000>; 653 reg = <0x139D0000 0x1000>;
646 interrupts = <0 37 0>, <0 38 0>, <0 39 0>, <0 40 0>, <0 41 0>; 654 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
655 <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
656 <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
657 <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
658 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
647 clocks = <&clock CLK_PWM>; 659 clocks = <&clock CLK_PWM>;
648 clock-names = "timers"; 660 clock-names = "timers";
649 #pwm-cells = <3>; 661 #pwm-cells = <3>;
@@ -660,7 +672,7 @@
660 pdma0: pdma@12680000 { 672 pdma0: pdma@12680000 {
661 compatible = "arm,pl330", "arm,primecell"; 673 compatible = "arm,pl330", "arm,primecell";
662 reg = <0x12680000 0x1000>; 674 reg = <0x12680000 0x1000>;
663 interrupts = <0 35 0>; 675 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
664 clocks = <&clock CLK_PDMA0>; 676 clocks = <&clock CLK_PDMA0>;
665 clock-names = "apb_pclk"; 677 clock-names = "apb_pclk";
666 #dma-cells = <1>; 678 #dma-cells = <1>;
@@ -671,7 +683,7 @@
671 pdma1: pdma@12690000 { 683 pdma1: pdma@12690000 {
672 compatible = "arm,pl330", "arm,primecell"; 684 compatible = "arm,pl330", "arm,primecell";
673 reg = <0x12690000 0x1000>; 685 reg = <0x12690000 0x1000>;
674 interrupts = <0 36 0>; 686 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
675 clocks = <&clock CLK_PDMA1>; 687 clocks = <&clock CLK_PDMA1>;
676 clock-names = "apb_pclk"; 688 clock-names = "apb_pclk";
677 #dma-cells = <1>; 689 #dma-cells = <1>;
@@ -682,7 +694,7 @@
682 mdma1: mdma@12850000 { 694 mdma1: mdma@12850000 {
683 compatible = "arm,pl330", "arm,primecell"; 695 compatible = "arm,pl330", "arm,primecell";
684 reg = <0x12850000 0x1000>; 696 reg = <0x12850000 0x1000>;
685 interrupts = <0 34 0>; 697 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
686 clocks = <&clock CLK_MDMA>; 698 clocks = <&clock CLK_MDMA>;
687 clock-names = "apb_pclk"; 699 clock-names = "apb_pclk";
688 #dma-cells = <1>; 700 #dma-cells = <1>;
@@ -712,7 +724,7 @@
712 jpeg_codec: jpeg-codec@11840000 { 724 jpeg_codec: jpeg-codec@11840000 {
713 compatible = "samsung,exynos4210-jpeg"; 725 compatible = "samsung,exynos4210-jpeg";
714 reg = <0x11840000 0x1000>; 726 reg = <0x11840000 0x1000>;
715 interrupts = <0 88 0>; 727 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
716 clocks = <&clock CLK_JPEG>; 728 clocks = <&clock CLK_JPEG>;
717 clock-names = "jpeg"; 729 clock-names = "jpeg";
718 power-domains = <&pd_cam>; 730 power-domains = <&pd_cam>;
@@ -722,7 +734,7 @@
722 rotator: rotator@12810000 { 734 rotator: rotator@12810000 {
723 compatible = "samsung,exynos4210-rotator"; 735 compatible = "samsung,exynos4210-rotator";
724 reg = <0x12810000 0x64>; 736 reg = <0x12810000 0x64>;
725 interrupts = <0 83 0>; 737 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
726 clocks = <&clock CLK_ROTATOR>; 738 clocks = <&clock CLK_ROTATOR>;
727 clock-names = "rotator"; 739 clock-names = "rotator";
728 iommus = <&sysmmu_rotator>; 740 iommus = <&sysmmu_rotator>;
@@ -731,7 +743,7 @@
731 hdmi: hdmi@12D00000 { 743 hdmi: hdmi@12D00000 {
732 compatible = "samsung,exynos4210-hdmi"; 744 compatible = "samsung,exynos4210-hdmi";
733 reg = <0x12D00000 0x70000>; 745 reg = <0x12D00000 0x70000>;
734 interrupts = <0 92 0>; 746 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
735 clock-names = "hdmi", "sclk_hdmi", "sclk_pixel", "sclk_hdmiphy", 747 clock-names = "hdmi", "sclk_hdmi", "sclk_pixel", "sclk_hdmiphy",
736 "mout_hdmi"; 748 "mout_hdmi";
737 clocks = <&clock CLK_HDMI>, <&clock CLK_SCLK_HDMI>, 749 clocks = <&clock CLK_HDMI>, <&clock CLK_SCLK_HDMI>,
@@ -746,7 +758,7 @@
746 hdmicec: cec@100B0000 { 758 hdmicec: cec@100B0000 {
747 compatible = "samsung,s5p-cec"; 759 compatible = "samsung,s5p-cec";
748 reg = <0x100B0000 0x200>; 760 reg = <0x100B0000 0x200>;
749 interrupts = <0 114 0>; 761 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
750 clocks = <&clock CLK_HDMI_CEC>; 762 clocks = <&clock CLK_HDMI_CEC>;
751 clock-names = "hdmicec"; 763 clock-names = "hdmicec";
752 samsung,syscon-phandle = <&pmu_system_controller>; 764 samsung,syscon-phandle = <&pmu_system_controller>;
@@ -757,7 +769,7 @@
757 769
758 mixer: mixer@12C10000 { 770 mixer: mixer@12C10000 {
759 compatible = "samsung,exynos4210-mixer"; 771 compatible = "samsung,exynos4210-mixer";
760 interrupts = <0 91 0>; 772 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
761 reg = <0x12C10000 0x2100>, <0x12c00000 0x300>; 773 reg = <0x12C10000 0x2100>, <0x12c00000 0x300>;
762 power-domains = <&pd_tv>; 774 power-domains = <&pd_tv>;
763 iommus = <&sysmmu_tv>; 775 iommus = <&sysmmu_tv>;
@@ -984,7 +996,7 @@
984 sss: sss@10830000 { 996 sss: sss@10830000 {
985 compatible = "samsung,exynos4210-secss"; 997 compatible = "samsung,exynos4210-secss";
986 reg = <0x10830000 0x300>; 998 reg = <0x10830000 0x300>;
987 interrupts = <0 112 0>; 999 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
988 clocks = <&clock CLK_SSS>; 1000 clocks = <&clock CLK_SSS>;
989 clock-names = "secss"; 1001 clock-names = "secss";
990 }; 1002 };
diff --git a/arch/arm/boot/dts/exynos4210-pinctrl.dtsi b/arch/arm/boot/dts/exynos4210-pinctrl.dtsi
index d9b6d25e4abe..f280954b260a 100644
--- a/arch/arm/boot/dts/exynos4210-pinctrl.dtsi
+++ b/arch/arm/boot/dts/exynos4210-pinctrl.dtsi
@@ -537,8 +537,14 @@
537 537
538 interrupt-controller; 538 interrupt-controller;
539 interrupt-parent = <&gic>; 539 interrupt-parent = <&gic>;
540 interrupts = <0 16 0>, <0 17 0>, <0 18 0>, <0 19 0>, 540 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
541 <0 20 0>, <0 21 0>, <0 22 0>, <0 23 0>; 541 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
542 <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
543 <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
544 <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
545 <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
546 <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
547 <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
542 #interrupt-cells = <2>; 548 #interrupt-cells = <2>;
543 }; 549 };
544 550
@@ -548,8 +554,14 @@
548 554
549 interrupt-controller; 555 interrupt-controller;
550 interrupt-parent = <&gic>; 556 interrupt-parent = <&gic>;
551 interrupts = <0 24 0>, <0 25 0>, <0 26 0>, <0 27 0>, 557 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
552 <0 28 0>, <0 29 0>, <0 30 0>, <0 31 0>; 558 <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
559 <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
560 <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
561 <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
562 <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
563 <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
564 <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
553 #interrupt-cells = <2>; 565 #interrupt-cells = <2>;
554 }; 566 };
555 567
diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
index 2d9b02967105..7f3a18c8f60f 100644
--- a/arch/arm/boot/dts/exynos4210.dtsi
+++ b/arch/arm/boot/dts/exynos4210.dtsi
@@ -109,12 +109,12 @@
109 #interrupt-cells = <1>; 109 #interrupt-cells = <1>;
110 #address-cells = <0>; 110 #address-cells = <0>;
111 #size-cells = <0>; 111 #size-cells = <0>;
112 interrupt-map = <0 &gic 0 57 0>, 112 interrupt-map = <0 &gic 0 57 IRQ_TYPE_LEVEL_HIGH>,
113 <1 &gic 0 69 0>, 113 <1 &gic 0 69 IRQ_TYPE_LEVEL_HIGH>,
114 <2 &combiner 12 6>, 114 <2 &combiner 12 6>,
115 <3 &combiner 12 7>, 115 <3 &combiner 12 7>,
116 <4 &gic 0 42 0>, 116 <4 &gic 0 42 IRQ_TYPE_LEVEL_HIGH>,
117 <5 &gic 0 48 0>; 117 <5 &gic 0 48 IRQ_TYPE_LEVEL_HIGH>;
118 }; 118 };
119 }; 119 };
120 120
@@ -127,18 +127,18 @@
127 pinctrl_0: pinctrl@11400000 { 127 pinctrl_0: pinctrl@11400000 {
128 compatible = "samsung,exynos4210-pinctrl"; 128 compatible = "samsung,exynos4210-pinctrl";
129 reg = <0x11400000 0x1000>; 129 reg = <0x11400000 0x1000>;
130 interrupts = <0 47 0>; 130 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
131 }; 131 };
132 132
133 pinctrl_1: pinctrl@11000000 { 133 pinctrl_1: pinctrl@11000000 {
134 compatible = "samsung,exynos4210-pinctrl"; 134 compatible = "samsung,exynos4210-pinctrl";
135 reg = <0x11000000 0x1000>; 135 reg = <0x11000000 0x1000>;
136 interrupts = <0 46 0>; 136 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
137 137
138 wakup_eint: wakeup-interrupt-controller { 138 wakup_eint: wakeup-interrupt-controller {
139 compatible = "samsung,exynos4210-wakeup-eint"; 139 compatible = "samsung,exynos4210-wakeup-eint";
140 interrupt-parent = <&gic>; 140 interrupt-parent = <&gic>;
141 interrupts = <0 32 0>; 141 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
142 }; 142 };
143 }; 143 };
144 144
@@ -182,7 +182,7 @@
182 g2d: g2d@12800000 { 182 g2d: g2d@12800000 {
183 compatible = "samsung,s5pv210-g2d"; 183 compatible = "samsung,s5pv210-g2d";
184 reg = <0x12800000 0x1000>; 184 reg = <0x12800000 0x1000>;
185 interrupts = <0 89 0>; 185 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
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 power-domains = <&pd_lcd0>;
@@ -424,10 +424,22 @@
424 424
425&combiner { 425&combiner {
426 samsung,combiner-nr = <16>; 426 samsung,combiner-nr = <16>;
427 interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>, 427 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
428 <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>, 428 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
429 <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>, 429 <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
430 <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>; 430 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
431 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
432 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
433 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
434 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
435 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
436 <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
437 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
438 <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
439 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
440 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
441 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
442 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
431}; 443};
432 444
433&mdma1 { 445&mdma1 {
diff --git a/arch/arm/boot/dts/exynos4412-itop-elite.dts b/arch/arm/boot/dts/exynos4412-itop-elite.dts
new file mode 100644
index 000000000000..76d87f397178
--- /dev/null
+++ b/arch/arm/boot/dts/exynos4412-itop-elite.dts
@@ -0,0 +1,240 @@
1/*
2 * TOPEET's Exynos4412 based itop board device tree source
3 *
4 * Copyright (c) 2016 SUMOMO Computer Association
5 * https://www.sumomo.mobi
6 * Randy Li <ayaka@soulik.info>
7 *
8 * Device tree source file for TOPEET iTop Exynos 4412 core board
9 * which is based on Samsung's Exynos4412 SoC.
10 *
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 2 as
13 * published by the Free Software Foundation.
14 */
15
16/dts-v1/;
17#include <dt-bindings/pwm/pwm.h>
18#include <dt-bindings/sound/samsung-i2s.h>
19#include "exynos4412-itop-scp-core.dtsi"
20
21/ {
22 model = "TOPEET iTop 4412 Elite board based on Exynos4412";
23 compatible = "topeet,itop4412-elite", "samsung,exynos4412", "samsung,exynos4";
24
25 chosen {
26 bootargs = "root=/dev/mmcblk0p2 rw rootfstype=ext4 rootdelay=1 rootwait";
27 stdout-path = "serial2:115200n8";
28 };
29
30 leds {
31 compatible = "gpio-leds";
32
33 led2 {
34 label = "red:system";
35 gpios = <&gpx1 0 GPIO_ACTIVE_HIGH>;
36 default-state = "off";
37 linux,default-trigger = "heartbeat";
38 };
39
40 led3 {
41 label = "red:user";
42 gpios = <&gpk1 1 GPIO_ACTIVE_HIGH>;
43 default-state = "off";
44 };
45 };
46
47 gpio-keys {
48 compatible = "gpio-keys";
49
50 home {
51 label = "GPIO Key Home";
52 linux,code = <KEY_HOME>;
53 gpios = <&gpx1 1 GPIO_ACTIVE_LOW>;
54 };
55
56 back {
57 label = "GPIO Key Back";
58 linux,code = <KEY_BACK>;
59 gpios = <&gpx1 2 GPIO_ACTIVE_LOW>;
60 };
61
62 sleep {
63 label = "GPIO Key Sleep";
64 linux,code = <KEY_POWER>;
65 gpios = <&gpx3 3 GPIO_ACTIVE_LOW>;
66 };
67
68 vol-up {
69 label = "GPIO Key Vol+";
70 linux,code = <KEY_UP>;
71 gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
72 };
73
74 vol-down {
75 label = "GPIO Key Vol-";
76 linux,code = <KEY_DOWN>;
77 gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
78 };
79 };
80
81 sound {
82 compatible = "simple-audio-card";
83 simple-audio-card,name = "wm-sound";
84
85 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
86 <&clock_audss EXYNOS_MOUT_I2S>,
87 <&clock_audss EXYNOS_DOUT_SRP>,
88 <&clock_audss EXYNOS_DOUT_AUD_BUS>;
89 assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
90 <&clock_audss EXYNOS_MOUT_AUDSS>;
91 assigned-clock-rates = <0>,
92 <0>,
93 <112896000>,
94 <11289600>;
95
96 simple-audio-card,format = "i2s";
97 simple-audio-card,bitclock-master = <&link0_codec>;
98 simple-audio-card,frame-master = <&link0_codec>;
99
100 simple-audio-card,widgets =
101 "Microphone", "Mic Jack",
102 "Line", "Line In",
103 "Line", "Line Out",
104 "Speaker", "Speaker",
105 "Headphone", "Headphone Jack";
106 simple-audio-card,routing =
107 "Headphone Jack", "HP_L",
108 "Headphone Jack", "HP_R",
109 "Speaker", "SPK_LP",
110 "Speaker", "SPK_LN",
111 "Speaker", "SPK_RP",
112 "Speaker", "SPK_RN",
113 "LINPUT1", "Mic Jack",
114 "LINPUT3", "Mic Jack",
115 "RINPUT1", "Mic Jack",
116 "RINPUT2", "Mic Jack";
117
118 simple-audio-card,cpu {
119 sound-dai = <&i2s0 0>;
120 };
121
122 link0_codec: simple-audio-card,codec {
123 sound-dai = <&codec>;
124 clocks = <&i2s0 CLK_I2S_CDCLK>;
125 system-clock-frequency = <11289600>;
126 };
127 };
128
129 beep {
130 compatible = "pwm-beeper";
131 pwms = <&pwm 0 4000000 PWM_POLARITY_INVERTED>;
132 };
133
134 camera: camera {
135 pinctrl-0 = <&cam_port_a_clk_active>;
136 pinctrl-names = "default";
137 status = "okay";
138 assigned-clocks = <&clock CLK_MOUT_CAM0>;
139 assigned-clock-parents = <&clock CLK_XUSBXTI>;
140 };
141};
142
143&adc {
144 vdd-supply = <&ldo3_reg>;
145 status = "okay";
146};
147
148&ehci {
149 status = "okay";
150 /* In order to reset USB ethernet */
151 samsung,vbus-gpio = <&gpc0 1 GPIO_ACTIVE_HIGH>;
152
153 port@0 {
154 status = "okay";
155 };
156
157 port@2 {
158 status = "okay";
159 };
160};
161
162&exynos_usbphy {
163 status = "okay";
164};
165
166&fimc_0 {
167 status = "okay";
168 assigned-clocks = <&clock CLK_MOUT_FIMC0>,
169 <&clock CLK_SCLK_FIMC0>;
170 assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
171 assigned-clock-rates = <0>, <176000000>;
172};
173
174&hsotg {
175 dr_mode = "peripheral";
176 status = "okay";
177};
178
179&i2c_4 {
180 samsung,i2c-sda-delay = <100>;
181 samsung,i2c-slave-addr = <0x10>;
182 samsung,i2c-max-bus-freq = <100000>;
183 pinctrl-0 = <&i2c4_bus>;
184 pinctrl-names = "default";
185 status = "okay";
186
187 codec: wm8960@1a {
188 compatible = "wlf,wm8960";
189 reg = <0x1a>;
190 clocks = <&pmu_system_controller 0>;
191 clock-names = "MCLK1";
192 wlf,shared-lrclk;
193 #sound-dai-cells = <0>;
194 };
195};
196
197&i2s0 {
198 pinctrl-0 = <&i2s0_bus>;
199 pinctrl-names = "default";
200 status = "okay";
201 clocks = <&clock_audss EXYNOS_I2S_BUS>,
202 <&clock_audss EXYNOS_DOUT_AUD_BUS>,
203 <&clock_audss EXYNOS_SCLK_I2S>;
204 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
205};
206
207&pinctrl_1 {
208 ether-reset {
209 samsung,pins = "gpc0-1";
210 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
211 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
212 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
213 };
214};
215
216&pwm {
217 status = "okay";
218 pinctrl-0 = <&pwm0_out>;
219 pinctrl-names = "default";
220 samsung,pwm-outputs = <0>;
221};
222
223&sdhci_2 {
224 bus-width = <4>;
225 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
226 pinctrl-names = "default";
227 cd-gpio = <&gpx0 7 GPIO_ACTIVE_LOW>;
228 cap-sd-highspeed;
229 vmmc-supply = <&ldo23_reg>;
230 vqmmc-supply = <&ldo17_reg>;
231 status = "okay";
232};
233
234&serial_1 {
235 status = "okay";
236};
237
238&serial_2 {
239 status = "okay";
240};
diff --git a/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
new file mode 100644
index 000000000000..a36cd36a26b8
--- /dev/null
+++ b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
@@ -0,0 +1,501 @@
1/*
2 * TOPEET's Exynos4412 based itop board device tree source
3 *
4 * Copyright (c) 2016 SUMOMO Computer Association
5 * https://www.sumomo.mobi
6 * Randy Li <ayaka@soulik.info>
7 *
8 * Device tree source file for TOPEET iTop Exynos 4412 SCP package core
9 * board which is based on Samsung's Exynos4412 SoC.
10 *
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 2 as
13 * published by the Free Software Foundation.
14 */
15
16#include <dt-bindings/clock/samsung,s2mps11.h>
17#include <dt-bindings/gpio/gpio.h>
18#include <dt-bindings/input/input.h>
19#include "exynos4412.dtsi"
20#include "exynos4412-ppmu-common.dtsi"
21#include "exynos-mfc-reserved-memory.dtsi"
22
23/ {
24 memory@40000000 {
25 device_type = "memory";
26 reg = <0x40000000 0x40000000>;
27 };
28
29 firmware@0203F000 {
30 compatible = "samsung,secure-firmware";
31 reg = <0x0203F000 0x1000>;
32 };
33
34 fixed-rate-clocks {
35 xxti {
36 compatible = "samsung,clock-xxti";
37 clock-frequency = <0>;
38 };
39
40 xusbxti {
41 compatible = "samsung,clock-xusbxti";
42 clock-frequency = <24000000>;
43 };
44 };
45
46 thermal-zones {
47 cpu_thermal: cpu-thermal {
48 cooling-maps {
49 map0 {
50 /* Corresponds to 800MHz at freq_table */
51 cooling-device = <&cpu0 7 7>;
52 };
53 map1 {
54 /* Corresponds to 200MHz at freq_table */
55 cooling-device = <&cpu0 13 13>;
56 };
57 };
58 };
59 };
60
61 usb-hub {
62 compatible = "smsc,usb3503a";
63 reset-gpios = <&gpm2 4 GPIO_ACTIVE_LOW>;
64 connect-gpios = <&gpm3 3 GPIO_ACTIVE_HIGH>;
65 intn-gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
66 pinctrl-names = "default";
67 pinctrl-0 = <&hsic_reset>;
68 };
69};
70
71&bus_dmc {
72 devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
73 vdd-supply = <&buck1_reg>;
74 status = "okay";
75};
76
77&bus_acp {
78 devfreq = <&bus_dmc>;
79 status = "okay";
80};
81
82&bus_c2c {
83 devfreq = <&bus_dmc>;
84 status = "okay";
85};
86
87&bus_leftbus {
88 devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>;
89 vdd-supply = <&buck3_reg>;
90 status = "okay";
91};
92
93&bus_rightbus {
94 devfreq = <&bus_leftbus>;
95 status = "okay";
96};
97
98&bus_fsys {
99 devfreq = <&bus_leftbus>;
100 status = "okay";
101};
102
103&bus_peri {
104 devfreq = <&bus_leftbus>;
105 status = "okay";
106};
107
108&bus_mfc {
109 devfreq = <&bus_leftbus>;
110 status = "okay";
111};
112
113&cpu0 {
114 cpu0-supply = <&buck2_reg>;
115};
116
117&hsotg {
118 vusb_d-supply = <&ldo15_reg>;
119 vusb_a-supply = <&ldo12_reg>;
120};
121
122&i2c_1 {
123 #address-cells = <1>;
124 #size-cells = <0>;
125 samsung,i2c-sda-delay = <100>;
126 samsung,i2c-max-bus-freq = <400000>;
127 pinctrl-0 = <&i2c1_bus>;
128 pinctrl-names = "default";
129 status = "okay";
130
131 s5m8767: s5m8767-pmic@66 {
132 compatible = "samsung,s5m8767-pmic";
133 reg = <0x66>;
134
135 s5m8767,pmic-buck-default-dvs-idx = <3>;
136
137 s5m8767,pmic-buck-dvs-gpios = <&gpb 5 GPIO_ACTIVE_HIGH>,
138 <&gpb 6 GPIO_ACTIVE_HIGH>,
139 <&gpb 7 GPIO_ACTIVE_HIGH>;
140
141 s5m8767,pmic-buck-ds-gpios = <&gpm3 5 GPIO_ACTIVE_HIGH>,
142 <&gpm3 6 GPIO_ACTIVE_HIGH>,
143 <&gpm3 7 GPIO_ACTIVE_HIGH>;
144
145 /* VDD_ARM */
146 s5m8767,pmic-buck2-dvs-voltage = <1356250>, <1300000>,
147 <1243750>, <1118750>,
148 <1068750>, <1012500>,
149 <956250>, <900000>;
150 /* VDD_INT */
151 s5m8767,pmic-buck3-dvs-voltage = <1000000>, <1000000>,
152 <925000>, <925000>,
153 <887500>, <887500>,
154 <850000>, <850000>;
155 /* VDD_G3D */
156 s5m8767,pmic-buck4-dvs-voltage = <1081250>, <1081250>,
157 <1025000>, <950000>,
158 <918750>, <900000>,
159 <875000>, <831250>;
160
161 regulators {
162 ldo1_reg: LDO1 {
163 regulator-name = "VDD_ALIVE";
164 regulator-min-microvolt = <1100000>;
165 regulator-max-microvolt = <1100000>;
166 regulator-always-on;
167 regulator-boot-on;
168 op_mode = <1>; /* Normal Mode */
169 };
170
171 /* SCP uses 1.5v, POP uses 1.2v */
172 ldo2_reg: LDO2 {
173 regulator-name = "VDDQ_M12";
174 regulator-min-microvolt = <1500000>;
175 regulator-max-microvolt = <1500000>;
176 regulator-always-on;
177 regulator-boot-on;
178 op_mode = <1>; /* Normal Mode */
179 };
180
181 ldo3_reg: LDO3 {
182 regulator-name = "VDDIOAP_18";
183 regulator-min-microvolt = <1800000>;
184 regulator-max-microvolt = <1800000>;
185 regulator-always-on;
186 op_mode = <1>; /* Normal Mode */
187 };
188
189 ldo4_reg: LDO4 {
190 regulator-name = "VDDQ_PRE";
191 regulator-min-microvolt = <1800000>;
192 regulator-max-microvolt = <1800000>;
193 regulator-always-on;
194 op_mode = <1>; /* Normal Mode */
195 };
196
197 ldo5_reg: LDO5 {
198 regulator-name = "VDD_LDO5";
199 op_mode = <0>; /* Always off Mode */
200 };
201
202 ldo6_reg: LDO6 {
203 regulator-name = "VDD10_MPLL";
204 regulator-min-microvolt = <1000000>;
205 regulator-max-microvolt = <1000000>;
206 regulator-always-on;
207 op_mode = <1>; /* Normal Mode */
208 };
209
210 ldo7_reg: LDO7 {
211 regulator-name = "VDD10_XPLL";
212 regulator-min-microvolt = <1000000>;
213 regulator-max-microvolt = <1000000>;
214 regulator-always-on;
215 op_mode = <1>; /* Normal Mode */
216 };
217
218 ldo8_reg: LDO8 {
219 regulator-name = "VDD10_MIPI";
220 regulator-min-microvolt = <1000000>;
221 regulator-max-microvolt = <1000000>;
222 op_mode = <1>; /* Normal Mode */
223 };
224
225 ldo9_reg: LDO9 {
226 regulator-name = "VDD33_LCD";
227 regulator-min-microvolt = <3300000>;
228 regulator-max-microvolt = <3300000>;
229 op_mode = <1>; /* Normal Mode */
230 };
231
232 ldo10_reg: LDO10 {
233 regulator-name = "VDD18_MIPI";
234 regulator-min-microvolt = <1800000>;
235 regulator-max-microvolt = <1800000>;
236 op_mode = <1>; /* Normal Mode */
237 };
238
239 ldo11_reg: LDO11 {
240 regulator-name = "VDD18_ABB1";
241 regulator-min-microvolt = <1800000>;
242 regulator-max-microvolt = <1800000>;
243 regulator-always-on;
244 op_mode = <1>; /* Normal Mode */
245 };
246
247 ldo12_reg: LDO12 {
248 regulator-name = "VDD33_UOTG";
249 regulator-min-microvolt = <3300000>;
250 regulator-max-microvolt = <3300000>;
251 regulator-always-on;
252 op_mode = <1>; /* Normal Mode */
253 };
254
255 ldo13_reg: LDO13 {
256 regulator-name = "VDDIOPERI_18";
257 regulator-min-microvolt = <1800000>;
258 regulator-max-microvolt = <1800000>;
259 regulator-always-on;
260 op_mode = <1>; /* Normal Mode */
261 };
262
263 ldo14_reg: LDO14 {
264 regulator-name = "VDD18_ABB02";
265 regulator-min-microvolt = <1800000>;
266 regulator-max-microvolt = <1800000>;
267 regulator-always-on;
268 op_mode = <1>; /* Normal Mode */
269 };
270
271 ldo15_reg: LDO15 {
272 regulator-name = "VDD10_USH";
273 regulator-min-microvolt = <1000000>;
274 regulator-max-microvolt = <1000000>;
275 regulator-always-on;
276 op_mode = <1>; /* Normal Mode */
277 };
278
279 ldo16_reg: LDO16 {
280 regulator-name = "VDD18_HSIC";
281 regulator-min-microvolt = <1800000>;
282 regulator-max-microvolt = <1800000>;
283 regulator-always-on;
284 op_mode = <1>; /* Normal Mode */
285 };
286
287 ldo17_reg: LDO17 {
288 regulator-name = "VDDIOAP_MMC012_28";
289 regulator-min-microvolt = <2800000>;
290 regulator-max-microvolt = <2800000>;
291 op_mode = <1>; /* Normal Mode */
292 };
293
294 /* Used by HSIC */
295 ldo18_reg: LDO18 {
296 regulator-name = "VDDIOPERI_28";
297 regulator-min-microvolt = <3300000>;
298 regulator-max-microvolt = <3300000>;
299 regulator-always-on;
300 op_mode = <1>; /* Normal Mode */
301 };
302
303 ldo19_reg: LDO19 {
304 regulator-name = "VDD_LDO19";
305 op_mode = <0>; /* Always off Mode */
306 };
307
308 ldo20_reg: LDO20 {
309 regulator-name = "VDD28_CAM";
310 regulator-min-microvolt = <1800000>;
311 regulator-max-microvolt = <2800000>;
312 op_mode = <1>; /* Normal Mode */
313 };
314
315 ldo21_reg: LDO21 {
316 regulator-name = "VDD28_AF";
317 regulator-min-microvolt = <1800000>;
318 regulator-max-microvolt = <2800000>;
319 op_mode = <1>; /* Normal Mode */
320 };
321
322 ldo22_reg: LDO22 {
323 regulator-name = "VDDA28_2M";
324 regulator-min-microvolt = <2800000>;
325 regulator-max-microvolt = <2800000>;
326 op_mode = <1>; /* Normal Mode */
327 };
328
329 ldo23_reg: LDO23 {
330 regulator-name = "VDD28_TF";
331 regulator-min-microvolt = <2800000>;
332 regulator-max-microvolt = <2800000>;
333 op_mode = <1>; /* Normal Mode */
334 };
335
336 ldo24_reg: LDO24 {
337 regulator-name = "VDD33_A31";
338 regulator-min-microvolt = <3300000>;
339 regulator-max-microvolt = <3300000>;
340 op_mode = <1>; /* Normal Mode */
341 };
342
343 ldo25_reg: LDO25 {
344 regulator-name = "VDD18_CAM";
345 regulator-min-microvolt = <1800000>;
346 regulator-max-microvolt = <1800000>;
347 op_mode = <1>; /* Normal Mode */
348 };
349
350 ldo26_reg: LDO26 {
351 regulator-name = "VDD18_A31";
352 regulator-min-microvolt = <1800000>;
353 regulator-max-microvolt = <1800000>;
354 op_mode = <1>; /* Normal Mode */
355 };
356
357 ldo27_reg: LDO27 {
358 regulator-name = "GPS_1V8";
359 regulator-min-microvolt = <1800000>;
360 regulator-max-microvolt = <1800000>;
361 op_mode = <1>; /* Normal Mode */
362 };
363
364 ldo28_reg: LDO28 {
365 regulator-name = "DVDD12";
366 regulator-min-microvolt = <1200000>;
367 regulator-max-microvolt = <1200000>;
368 op_mode = <1>; /* Normal Mode */
369 };
370
371 buck1_reg: BUCK1 {
372 regulator-name = "vdd_mif";
373 regulator-min-microvolt = <850000>;
374 regulator-max-microvolt = <1100000>;
375 regulator-always-on;
376 regulator-boot-on;
377 op_mode = <1>; /* Normal Mode */
378 };
379
380 buck2_reg: BUCK2 {
381 regulator-name = "vdd_arm";
382 regulator-min-microvolt = <850000>;
383 regulator-max-microvolt = <1456250>;
384 regulator-always-on;
385 regulator-boot-on;
386 op_mode = <1>; /* Normal Mode */
387 };
388
389 buck3_reg: BUCK3 {
390 regulator-name = "vdd_int";
391 regulator-min-microvolt = <875000>;
392 regulator-max-microvolt = <1200000>;
393 regulator-always-on;
394 regulator-boot-on;
395 op_mode = <1>; /* Normal Mode */
396 };
397
398 buck4_reg: BUCK4 {
399 regulator-name = "vdd_g3d";
400 regulator-min-microvolt = <750000>;
401 regulator-max-microvolt = <1500000>;
402 regulator-always-on;
403 regulator-boot-on;
404 op_mode = <1>; /* Normal Mode */
405 };
406
407 buck5_reg: BUCK5 {
408 regulator-name = "vdd_m12";
409 regulator-min-microvolt = <750000>;
410 regulator-max-microvolt = <1500000>;
411 regulator-always-on;
412 regulator-boot-on;
413 op_mode = <1>; /* Normal Mode */
414 };
415
416 buck6_reg: BUCK6 {
417 regulator-name = "vdd12_5m";
418 regulator-min-microvolt = <750000>;
419 regulator-max-microvolt = <1500000>;
420 regulator-always-on;
421 regulator-boot-on;
422 op_mode = <1>; /* Normal Mode */
423 };
424
425 buck7_reg: BUCK7 {
426 regulator-name = "pvdd_buck7";
427 regulator-min-microvolt = <750000>;
428 regulator-max-microvolt = <2000000>;
429 regulator-boot-on;
430 regulator-always-on;
431 op_mode = <1>; /* Normal Mode */
432 };
433
434 buck8_reg: BUCK8 {
435 regulator-name = "pvdd_buck8";
436 regulator-min-microvolt = <750000>;
437 regulator-max-microvolt = <1500000>;
438 regulator-boot-on;
439 regulator-always-on;
440 op_mode = <1>; /* Normal Mode */
441 };
442
443 buck9_reg: BUCK9 {
444 regulator-name = "vddf28_emmc";
445 regulator-min-microvolt = <750000>;
446 regulator-max-microvolt = <3000000>;
447 op_mode = <1>; /* Normal Mode */
448 };
449 };
450
451 s5m8767_osc: clocks {
452 #clock-cells = <1>;
453 clock-output-names = "s5m8767_ap",
454 "s5m8767_cp", "s5m8767_bt";
455 };
456
457 };
458};
459
460&mfc {
461 status = "okay";
462};
463
464&mshc_0 {
465 pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
466 pinctrl-names = "default";
467 status = "okay";
468 vmmc-supply = <&buck9_reg>;
469 num-slots = <1>;
470 broken-cd;
471 card-detect-delay = <200>;
472 samsung,dw-mshc-ciu-div = <3>;
473 samsung,dw-mshc-sdr-timing = <2 3>;
474 samsung,dw-mshc-ddr-timing = <1 2>;
475 bus-width = <8>;
476 cap-mmc-highspeed;
477};
478
479&pinctrl_1 {
480 hsic_reset: hsic-reset {
481 samsung,pins = "gpm2-4";
482 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
483 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
484 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
485 };
486};
487
488&rtc {
489 status = "okay";
490 clocks = <&clock CLK_RTC>, <&s5m8767_osc S2MPS11_CLK_AP>;
491 clock-names = "rtc", "rtc_src";
492};
493
494&tmu {
495 vtmu-supply = <&ldo16_reg>;
496 status = "okay";
497};
498
499&watchdog {
500 status = "okay";
501};
diff --git a/arch/arm/boot/dts/exynos4412-odroidx.dts b/arch/arm/boot/dts/exynos4412-odroidx.dts
index 61906b35ea7a..153a75fe6e24 100644
--- a/arch/arm/boot/dts/exynos4412-odroidx.dts
+++ b/arch/arm/boot/dts/exynos4412-odroidx.dts
@@ -64,6 +64,11 @@
64 }; 64 };
65}; 65};
66 66
67&adc {
68 vdd-supply = <&ldo10_reg>;
69 status = "okay";
70};
71
67/* VDDQ for MSHC (eMMC card) */ 72/* VDDQ for MSHC (eMMC card) */
68&buck8_reg { 73&buck8_reg {
69 regulator-name = "BUCK8_VDDQ_MMC4_2.8V"; 74 regulator-name = "BUCK8_VDDQ_MMC4_2.8V";
diff --git a/arch/arm/boot/dts/exynos4415-pinctrl.dtsi b/arch/arm/boot/dts/exynos4415-pinctrl.dtsi
deleted file mode 100644
index 76cfd872ead3..000000000000
--- a/arch/arm/boot/dts/exynos4415-pinctrl.dtsi
+++ /dev/null
@@ -1,575 +0,0 @@
1/*
2 * Samsung's Exynos4415 SoCs pin-mux and pin-config device tree source
3 *
4 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
5 *
6 * Samsung's Exynos4415 SoCs pin-mux and pin-config optiosn are listed as device
7 * tree nodes are listed in this file.
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation.
12*/
13
14#include <dt-bindings/pinctrl/samsung.h>
15
16&pinctrl_0 {
17 gpa0: gpa0 {
18 gpio-controller;
19 #gpio-cells = <2>;
20
21 interrupt-controller;
22 #interrupt-cells = <2>;
23 };
24
25 gpa1: gpa1 {
26 gpio-controller;
27 #gpio-cells = <2>;
28
29 interrupt-controller;
30 #interrupt-cells = <2>;
31 };
32
33 gpb: gpb {
34 gpio-controller;
35 #gpio-cells = <2>;
36
37 interrupt-controller;
38 #interrupt-cells = <2>;
39 };
40
41 gpc0: gpc0 {
42 gpio-controller;
43 #gpio-cells = <2>;
44
45 interrupt-controller;
46 #interrupt-cells = <2>;
47 };
48
49 gpc1: gpc1 {
50 gpio-controller;
51 #gpio-cells = <2>;
52
53 interrupt-controller;
54 #interrupt-cells = <2>;
55 };
56
57 gpd0: gpd0 {
58 gpio-controller;
59 #gpio-cells = <2>;
60
61 interrupt-controller;
62 #interrupt-cells = <2>;
63 };
64
65 gpd1: gpd1 {
66 gpio-controller;
67 #gpio-cells = <2>;
68
69 interrupt-controller;
70 #interrupt-cells = <2>;
71 };
72
73 gpf0: gpf0 {
74 gpio-controller;
75 #gpio-cells = <2>;
76
77 interrupt-controller;
78 #interrupt-cells = <2>;
79 };
80
81 gpf1: gpf1 {
82 gpio-controller;
83 #gpio-cells = <2>;
84
85 interrupt-controller;
86 #interrupt-cells = <2>;
87 };
88
89 gpf2: gpf2 {
90 gpio-controller;
91 #gpio-cells = <2>;
92
93 interrupt-controller;
94 #interrupt-cells = <2>;
95 };
96
97 uart0_data: uart0-data {
98 samsung,pins = "gpa0-0", "gpa0-1";
99 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
100 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
101 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
102 };
103
104 uart0_fctl: uart0-fctl {
105 samsung,pins = "gpa0-2", "gpa0-3";
106 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
107 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
108 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
109 };
110
111 uart1_data: uart1-data {
112 samsung,pins = "gpa0-4", "gpa0-5";
113 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
114 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
115 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
116 };
117
118 uart1_fctl: uart1-fctl {
119 samsung,pins = "gpa0-6", "gpa0-7";
120 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
121 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
122 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
123 };
124
125 uart2_data: uart2-data {
126 samsung,pins = "gpa1-0", "gpa1-1";
127 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
128 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
129 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
130 };
131
132 uart2_fctl: uart2-fctl {
133 samsung,pins = "gpa1-2", "gpa1-3";
134 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
135 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
136 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
137 };
138
139 uart3_data: uart3-data {
140 samsung,pins = "gpa1-4", "gpa1-5";
141 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
142 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
143 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
144 };
145
146 i2c2_bus: i2c2-bus {
147 samsung,pins = "gpa0-6", "gpa0-7";
148 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
149 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
150 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
151 };
152
153 i2c3_bus: i2c3-bus {
154 samsung,pins = "gpa1-2", "gpa1-3";
155 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
156 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
157 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
158 };
159
160 spi0_bus: spi0-bus {
161 samsung,pins = "gpb-0", "gpb-2", "gpb-3";
162 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
163 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
164 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
165 };
166
167 i2c4_bus: i2c4-bus {
168 samsung,pins = "gpb-0", "gpb-1";
169 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
170 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
171 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
172 };
173
174 spi1_bus: spi1-bus {
175 samsung,pins = "gpb-4", "gpb-6", "gpb-7";
176 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
177 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
178 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
179 };
180
181 i2c5_bus: i2c5-bus {
182 samsung,pins = "gpb-2", "gpb-3";
183 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
184 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
185 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
186 };
187
188 i2s1_bus: i2s1-bus {
189 samsung,pins = "gpc0-0", "gpc0-1", "gpc0-2", "gpc0-3",
190 "gpc0-4";
191 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
192 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
193 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
194 };
195
196 i2s2_bus: i2s2-bus {
197 samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3",
198 "gpc1-4";
199 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
200 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
201 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
202 };
203
204 pcm2_bus: pcm2-bus {
205 samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3",
206 "gpc1-4";
207 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
208 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
209 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
210 };
211
212 i2c6_bus: i2c6-bus {
213 samsung,pins = "gpc1-3", "gpc1-4";
214 samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
215 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
216 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
217 };
218
219 spi2_bus: spi2-bus {
220 samsung,pins = "gpc1-1", "gpc1-3", "gpc1-4";
221 samsung,pin-function = <EXYNOS_PIN_FUNC_5>;
222 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
223 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
224 };
225
226 pwm0_out: pwm0-out {
227 samsung,pins = "gpd0-0";
228 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
229 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
230 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
231 };
232
233 pwm1_out: pwm1-out {
234 samsung,pins = "gpd0-1";
235 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
236 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
237 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
238 };
239
240 pwm2_out: pwm2-out {
241 samsung,pins = "gpd0-2";
242 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
243 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
244 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
245 };
246
247 pwm3_out: pwm3-out {
248 samsung,pins = "gpd0-3";
249 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
250 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
251 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
252 };
253
254 i2c7_bus: i2c7-bus {
255 samsung,pins = "gpd0-2", "gpd0-3";
256 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
257 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
258 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
259 };
260
261 i2c0_bus: i2c0-bus {
262 samsung,pins = "gpd1-0", "gpd1-1";
263 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
264 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
265 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
266 };
267
268 i2c1_bus: i2c1-bus {
269 samsung,pins = "gpd1-2", "gpd1-3";
270 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
271 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
272 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
273 };
274};
275
276&pinctrl_1 {
277 gpk0: gpk0 {
278 gpio-controller;
279 #gpio-cells = <2>;
280
281 interrupt-controller;
282 #interrupt-cells = <2>;
283 };
284
285 gpk1: gpk1 {
286 gpio-controller;
287 #gpio-cells = <2>;
288
289 interrupt-controller;
290 #interrupt-cells = <2>;
291 };
292
293 gpk2: gpk2 {
294 gpio-controller;
295 #gpio-cells = <2>;
296
297 interrupt-controller;
298 #interrupt-cells = <2>;
299 };
300
301 gpk3: gpk3 {
302 gpio-controller;
303 #gpio-cells = <2>;
304
305 interrupt-controller;
306 #interrupt-cells = <2>;
307 };
308
309 gpl0: gpl0 {
310 gpio-controller;
311 #gpio-cells = <2>;
312
313 interrupt-controller;
314 #interrupt-cells = <2>;
315 };
316
317 gpm0: gpm0 {
318 gpio-controller;
319 #gpio-cells = <2>;
320
321 interrupt-controller;
322 #interrupt-cells = <2>;
323 };
324
325 gpm1: gpm1 {
326 gpio-controller;
327 #gpio-cells = <2>;
328
329 interrupt-controller;
330 #interrupt-cells = <2>;
331 };
332
333 gpm2: gpm2 {
334 gpio-controller;
335 #gpio-cells = <2>;
336
337 interrupt-controller;
338 #interrupt-cells = <2>;
339 };
340
341 gpm3: gpm3 {
342 gpio-controller;
343 #gpio-cells = <2>;
344
345 interrupt-controller;
346 #interrupt-cells = <2>;
347 };
348
349 gpm4: gpm4 {
350 gpio-controller;
351 #gpio-cells = <2>;
352
353 interrupt-controller;
354 #interrupt-cells = <2>;
355 };
356
357 gpx0: gpx0 {
358 gpio-controller;
359 #gpio-cells = <2>;
360
361 interrupt-controller;
362 interrupt-parent = <&gic>;
363 interrupts = <0 32 0>, <0 33 0>, <0 34 0>, <0 35 0>,
364 <0 36 0>, <0 37 0>, <0 38 0>, <0 39 0>;
365 #interrupt-cells = <2>;
366 };
367
368 gpx1: gpx1 {
369 gpio-controller;
370 #gpio-cells = <2>;
371
372 interrupt-controller;
373 interrupt-parent = <&gic>;
374 interrupts = <0 40 0>, <0 41 0>, <0 42 0>, <0 43 0>,
375 <0 44 0>, <0 45 0>, <0 46 0>, <0 47 0>;
376 #interrupt-cells = <2>;
377 };
378
379 gpx2: gpx2 {
380 gpio-controller;
381 #gpio-cells = <2>;
382
383 interrupt-controller;
384 #interrupt-cells = <2>;
385 };
386
387 gpx3: gpx3 {
388 gpio-controller;
389 #gpio-cells = <2>;
390
391 interrupt-controller;
392 #interrupt-cells = <2>;
393 };
394
395 sd0_clk: sd0-clk {
396 samsung,pins = "gpk0-0";
397 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
398 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
399 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
400 };
401
402 sd0_cmd: sd0-cmd {
403 samsung,pins = "gpk0-1";
404 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
405 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
406 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
407 };
408
409 sd0_cd: sd0-cd {
410 samsung,pins = "gpk0-2";
411 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
412 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
413 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
414 };
415
416 sd0_rdqs: sd0-rdqs {
417 samsung,pins = "gpk0-7";
418 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
419 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
420 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
421 };
422
423 sd0_bus1: sd0-bus-width1 {
424 samsung,pins = "gpk0-3";
425 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
426 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
427 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
428 };
429
430 sd0_bus4: sd0-bus-width4 {
431 samsung,pins = "gpk0-4", "gpk0-5", "gpk0-6";
432 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
433 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
434 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
435 };
436
437 sd0_bus8: sd0-bus-width8 {
438 samsung,pins = "gpl0-0", "gpl0-1", "gpl0-2", "gpl0-3";
439 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
440 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
441 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
442 };
443
444 sd1_clk: sd1-clk {
445 samsung,pins = "gpk1-0";
446 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
447 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
448 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
449 };
450
451 sd1_cmd: sd1-cmd {
452 samsung,pins = "gpk1-1";
453 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
454 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
455 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
456 };
457
458 sd1_cd: sd1-cd {
459 samsung,pins = "gpk1-2";
460 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
461 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
462 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
463 };
464
465 sd1_bus1: sd1-bus-width1 {
466 samsung,pins = "gpk1-3";
467 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
468 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
469 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
470 };
471
472 sd1_bus4: sd1-bus-width4 {
473 samsung,pins = "gpk1-4", "gpk1-5", "gpk1-6";
474 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
475 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
476 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
477 };
478
479 sd2_clk: sd2-clk {
480 samsung,pins = "gpk2-0";
481 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
482 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
483 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
484 };
485
486 sd2_cmd: sd2-cmd {
487 samsung,pins = "gpk2-1";
488 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
489 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
490 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
491 };
492
493 sd2_cd: sd2-cd {
494 samsung,pins = "gpk2-2";
495 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
496 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
497 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
498 };
499
500 sd2_bus1: sd2-bus-width1 {
501 samsung,pins = "gpk2-3";
502 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
503 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
504 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
505 };
506
507 sd2_bus4: sd2-bus-width4 {
508 samsung,pins = "gpk2-4", "gpk2-5", "gpk2-6";
509 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
510 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
511 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
512 };
513
514 cam_port_b_io: cam-port-b-io {
515 samsung,pins = "gpm0-0", "gpm0-1", "gpm0-2", "gpm0-3",
516 "gpm0-4", "gpm0-5", "gpm0-6", "gpm0-7",
517 "gpm1-0", "gpm1-1", "gpm2-0", "gpm2-1";
518 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
519 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
520 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
521 };
522
523 cam_port_b_clk_active: cam-port-b-clk-active {
524 samsung,pins = "gpm2-2";
525 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
526 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
527 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
528 };
529
530 cam_port_b_clk_idle: cam-port-b-clk-idle {
531 samsung,pins = "gpm2-2";
532 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
533 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
534 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
535 };
536
537 fimc_is_i2c0: fimc-is-i2c0 {
538 samsung,pins = "gpm4-0", "gpm4-1";
539 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
540 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
541 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
542 };
543
544 fimc_is_i2c1: fimc-is-i2c1 {
545 samsung,pins = "gpm4-2", "gpm4-3";
546 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
547 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
548 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
549 };
550
551 fimc_is_uart: fimc-is-uart {
552 samsung,pins = "gpm3-5", "gpm3-7";
553 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
554 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
555 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
556 };
557};
558
559&pinctrl_2 {
560 gpz: gpz {
561 gpio-controller;
562 #gpio-cells = <2>;
563
564 interrupt-controller;
565 #interrupt-cells = <2>;
566 };
567
568 i2s0_bus: i2s0-bus {
569 samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
570 "gpz-4", "gpz-5", "gpz-6";
571 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
572 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
573 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
574 };
575};
diff --git a/arch/arm/boot/dts/exynos4415.dtsi b/arch/arm/boot/dts/exynos4415.dtsi
deleted file mode 100644
index 3c40f8a956dd..000000000000
--- a/arch/arm/boot/dts/exynos4415.dtsi
+++ /dev/null
@@ -1,650 +0,0 @@
1/*
2 * Samsung's Exynos4415 SoC device tree source
3 *
4 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
5 *
6 * Samsung's Exynos4415 SoC device nodes are listed in this file. Exynos4415
7 * based board files can include this file and provide values for board
8 * specific bindings.
9 *
10 * Note: This file does not include device nodes for all the controllers in
11 * Exynos4415 SoC. As device tree coverage for Exynos4415 increases, additional
12 * nodes can be added to this file.
13 *
14 * This program is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License version 2 as
16 * published by the Free Software Foundation.
17 */
18
19#include <dt-bindings/clock/exynos4415.h>
20#include <dt-bindings/clock/exynos-audss-clk.h>
21
22/ {
23 compatible = "samsung,exynos4415";
24 interrupt-parent = <&gic>;
25 #address-cells = <1>;
26 #size-cells = <1>;
27
28 aliases {
29 pinctrl0 = &pinctrl_0;
30 pinctrl1 = &pinctrl_1;
31 pinctrl2 = &pinctrl_2;
32 mshc0 = &mshc_0;
33 mshc1 = &mshc_1;
34 mshc2 = &mshc_2;
35 spi0 = &spi_0;
36 spi1 = &spi_1;
37 spi2 = &spi_2;
38 i2c0 = &i2c_0;
39 i2c1 = &i2c_1;
40 i2c2 = &i2c_2;
41 i2c3 = &i2c_3;
42 i2c4 = &i2c_4;
43 i2c5 = &i2c_5;
44 i2c6 = &i2c_6;
45 i2c7 = &i2c_7;
46 };
47
48 cpus {
49 #address-cells = <1>;
50 #size-cells = <0>;
51
52 cpu0: cpu@a00 {
53 device_type = "cpu";
54 compatible = "arm,cortex-a9";
55 reg = <0xa00>;
56 clock-frequency = <1600000000>;
57 };
58
59 cpu1: cpu@a01 {
60 device_type = "cpu";
61 compatible = "arm,cortex-a9";
62 reg = <0xa01>;
63 clock-frequency = <1600000000>;
64 };
65
66 cpu2: cpu@a02 {
67 device_type = "cpu";
68 compatible = "arm,cortex-a9";
69 reg = <0xa02>;
70 clock-frequency = <1600000000>;
71 };
72
73 cpu3: cpu@a03 {
74 device_type = "cpu";
75 compatible = "arm,cortex-a9";
76 reg = <0xa03>;
77 clock-frequency = <1600000000>;
78 };
79 };
80
81 soc: soc {
82 compatible = "simple-bus";
83 #address-cells = <1>;
84 #size-cells = <1>;
85 ranges;
86
87 sysram@02020000 {
88 compatible = "mmio-sram";
89 reg = <0x02020000 0x50000>;
90 #address-cells = <1>;
91 #size-cells = <1>;
92 ranges = <0 0x02020000 0x50000>;
93
94 smp-sysram@0 {
95 compatible = "samsung,exynos4210-sysram";
96 reg = <0x0 0x1000>;
97 };
98
99 smp-sysram@4f000 {
100 compatible = "samsung,exynos4210-sysram-ns";
101 reg = <0x4f000 0x1000>;
102 };
103 };
104
105 pinctrl_2: pinctrl@03860000 {
106 compatible = "samsung,exynos4415-pinctrl";
107 reg = <0x03860000 0x1000>;
108 interrupts = <0 242 0>;
109 };
110
111 chipid@10000000 {
112 compatible = "samsung,exynos4210-chipid";
113 reg = <0x10000000 0x100>;
114 };
115
116 sysreg_system_controller: syscon@10010000 {
117 compatible = "samsung,exynos4-sysreg", "syscon";
118 reg = <0x10010000 0x400>;
119 };
120
121 pmu_system_controller: system-controller@10020000 {
122 compatible = "samsung,exynos4415-pmu", "syscon";
123 reg = <0x10020000 0x4000>;
124 };
125
126 mipi_phy: video-phy@10020710 {
127 compatible = "samsung,s5pv210-mipi-video-phy";
128 #phy-cells = <1>;
129 syscon = <&pmu_system_controller>;
130 };
131
132 pd_cam: cam-power-domain@10024000 {
133 compatible = "samsung,exynos4210-pd";
134 reg = <0x10024000 0x20>;
135 #power-domain-cells = <0>;
136 };
137
138 pd_tv: tv-power-domain@10024020 {
139 compatible = "samsung,exynos4210-pd";
140 reg = <0x10024020 0x20>;
141 #power-domain-cells = <0>;
142 };
143
144 pd_mfc: mfc-power-domain@10024040 {
145 compatible = "samsung,exynos4210-pd";
146 reg = <0x10024040 0x20>;
147 #power-domain-cells = <0>;
148 };
149
150 pd_g3d: g3d-power-domain@10024060 {
151 compatible = "samsung,exynos4210-pd";
152 reg = <0x10024060 0x20>;
153 #power-domain-cells = <0>;
154 };
155
156 pd_lcd0: lcd0-power-domain@10024080 {
157 compatible = "samsung,exynos4210-pd";
158 reg = <0x10024080 0x20>;
159 #power-domain-cells = <0>;
160 };
161
162 pd_isp0: isp0-power-domain@100240A0 {
163 compatible = "samsung,exynos4210-pd";
164 reg = <0x100240A0 0x20>;
165 #power-domain-cells = <0>;
166 };
167
168 pd_isp1: isp1-power-domain@100240E0 {
169 compatible = "samsung,exynos4210-pd";
170 reg = <0x100240E0 0x20>;
171 #power-domain-cells = <0>;
172 };
173
174 cmu: clock-controller@10030000 {
175 compatible = "samsung,exynos4415-cmu";
176 reg = <0x10030000 0x18000>;
177 #clock-cells = <1>;
178 };
179
180 rtc: rtc@10070000 {
181 compatible = "samsung,s3c6410-rtc";
182 reg = <0x10070000 0x100>;
183 interrupts = <0 73 0>, <0 74 0>;
184 status = "disabled";
185 };
186
187 mct@10050000 {
188 compatible = "samsung,exynos4210-mct";
189 reg = <0x10050000 0x800>;
190 interrupts = <0 218 0>, <0 219 0>, <0 220 0>, <0 221 0>,
191 <0 223 0>, <0 226 0>, <0 227 0>, <0 228 0>;
192 clocks = <&cmu CLK_FIN_PLL>, <&cmu CLK_MCT>;
193 clock-names = "fin_pll", "mct";
194 };
195
196 gic: interrupt-controller@10481000 {
197 compatible = "arm,cortex-a9-gic";
198 #interrupt-cells = <3>;
199 interrupt-controller;
200 reg = <0x10481000 0x1000>,
201 <0x10482000 0x1000>,
202 <0x10484000 0x2000>,
203 <0x10486000 0x2000>;
204 interrupts = <1 9 0xf04>;
205 };
206
207 l2c: l2-cache-controller@10502000 {
208 compatible = "arm,pl310-cache";
209 reg = <0x10502000 0x1000>;
210 cache-unified;
211 cache-level = <2>;
212 arm,tag-latency = <2 2 1>;
213 arm,data-latency = <3 2 1>;
214 arm,double-linefill = <1>;
215 arm,double-linefill-incr = <0>;
216 arm,double-linefill-wrap = <1>;
217 arm,prefetch-drop = <1>;
218 arm,prefetch-offset = <7>;
219 };
220
221 cmu_dmc: clock-controller@105C0000 {
222 compatible = "samsung,exynos4415-cmu-dmc";
223 reg = <0x105C0000 0x3000>;
224 #clock-cells = <1>;
225 };
226
227 pinctrl_1: pinctrl@11000000 {
228 compatible = "samsung,exynos4415-pinctrl";
229 reg = <0x11000000 0x1000>;
230 interrupts = <0 225 0>;
231
232 wakeup-interrupt-controller {
233 compatible = "samsung,exynos4210-wakeup-eint";
234 interrupt-parent = <&gic>;
235 interrupts = <0 48 0>;
236 };
237 };
238
239 pinctrl_0: pinctrl@11400000 {
240 compatible = "samsung,exynos4415-pinctrl";
241 reg = <0x11400000 0x1000>;
242 interrupts = <0 240 0>;
243 };
244
245 fimd: fimd@11C00000 {
246 compatible = "samsung,exynos4415-fimd";
247 reg = <0x11C00000 0x30000>;
248 interrupt-names = "fifo", "vsync", "lcd_sys";
249 interrupts = <0 84 0>, <0 85 0>, <0 86 0>;
250 clocks = <&cmu CLK_SCLK_FIMD0>, <&cmu CLK_FIMD0>;
251 clock-names = "sclk_fimd", "fimd";
252 samsung,power-domain = <&pd_lcd0>;
253 iommus = <&sysmmu_fimd0>;
254 samsung,sysreg = <&sysreg_system_controller>;
255 status = "disabled";
256 };
257
258 dsi_0: dsi@11C80000 {
259 compatible = "samsung,exynos4415-mipi-dsi";
260 reg = <0x11C80000 0x10000>;
261 interrupts = <0 83 0>;
262 samsung,phy-type = <0>;
263 samsung,power-domain = <&pd_lcd0>;
264 phys = <&mipi_phy 1>;
265 phy-names = "dsim";
266 clocks = <&cmu CLK_DSIM0>, <&cmu CLK_SCLK_MIPI0>;
267 clock-names = "bus_clk", "pll_clk";
268 #address-cells = <1>;
269 #size-cells = <0>;
270 status = "disabled";
271 };
272
273 sysmmu_fimd0: sysmmu@11E20000 {
274 compatible = "samsung,exynos-sysmmu";
275 reg = <0x11e20000 0x1000>;
276 interrupts = <0 80 0>, <0 81 0>;
277 clock-names = "sysmmu", "master";
278 clocks = <&cmu CLK_SMMUFIMD0>, <&cmu CLK_FIMD0>;
279 power-domains = <&pd_lcd0>;
280 #iommu-cells = <0>;
281 };
282
283 hsotg: hsotg@12480000 {
284 compatible = "samsung,s3c6400-hsotg";
285 reg = <0x12480000 0x20000>;
286 interrupts = <0 141 0>;
287 clocks = <&cmu CLK_USBDEVICE>;
288 clock-names = "otg";
289 phys = <&exynos_usbphy 0>;
290 phy-names = "usb2-phy";
291 status = "disabled";
292 };
293
294 mshc_0: mshc@12510000 {
295 compatible = "samsung,exynos5250-dw-mshc";
296 reg = <0x12510000 0x1000>;
297 interrupts = <0 142 0>;
298 clocks = <&cmu CLK_SDMMC0>, <&cmu CLK_SCLK_MMC0>;
299 clock-names = "biu", "ciu";
300 fifo-depth = <0x80>;
301 #address-cells = <1>;
302 #size-cells = <0>;
303 status = "disabled";
304 };
305
306 mshc_1: mshc@12520000 {
307 compatible = "samsung,exynos5250-dw-mshc";
308 reg = <0x12520000 0x1000>;
309 interrupts = <0 143 0>;
310 clocks = <&cmu CLK_SDMMC1>, <&cmu CLK_SCLK_MMC1>;
311 clock-names = "biu", "ciu";
312 fifo-depth = <0x80>;
313 #address-cells = <1>;
314 #size-cells = <0>;
315 status = "disabled";
316 };
317
318 mshc_2: mshc@12530000 {
319 compatible = "samsung,exynos5250-dw-mshc";
320 reg = <0x12530000 0x1000>;
321 interrupts = <0 144 0>;
322 clocks = <&cmu CLK_SDMMC2>, <&cmu CLK_SCLK_MMC2>;
323 clock-names = "biu", "ciu";
324 fifo-depth = <0x80>;
325 #address-cells = <1>;
326 #size-cells = <0>;
327 status = "disabled";
328 };
329
330 ehci: ehci@12580000 {
331 compatible = "samsung,exynos4210-ehci";
332 reg = <0x12580000 0x100>;
333 interrupts = <0 140 0>;
334 clocks = <&cmu CLK_USBHOST>;
335 clock-names = "usbhost";
336 status = "disabled";
337 #address-cells = <1>;
338 #size-cells = <0>;
339 port@0 {
340 reg = <0>;
341 phys = <&exynos_usbphy 1>;
342 status = "disabled";
343 };
344 port@1 {
345 reg = <1>;
346 phys = <&exynos_usbphy 2>;
347 status = "disabled";
348 };
349 port@2 {
350 reg = <2>;
351 phys = <&exynos_usbphy 3>;
352 status = "disabled";
353 };
354 };
355
356 ohci: ohci@12590000 {
357 compatible = "samsung,exynos4210-ohci";
358 reg = <0x12590000 0x100>;
359 interrupts = <0 140 0>;
360 clocks = <&cmu CLK_USBHOST>;
361 clock-names = "usbhost";
362 status = "disabled";
363 #address-cells = <1>;
364 #size-cells = <0>;
365 port@0 {
366 reg = <0>;
367 phys = <&exynos_usbphy 1>;
368 status = "disabled";
369 };
370 };
371
372 exynos_usbphy: exynos-usbphy@125B0000 {
373 compatible = "samsung,exynos4x12-usb2-phy";
374 reg = <0x125B0000 0x100>;
375 samsung,pmureg-phandle = <&pmu_system_controller>;
376 samsung,sysreg-phandle = <&sysreg_system_controller>;
377 clocks = <&cmu CLK_USBDEVICE>, <&xusbxti>;
378 clock-names = "phy", "ref";
379 #phy-cells = <1>;
380 status = "disabled";
381 };
382
383 amba {
384 compatible = "simple-bus";
385 #address-cells = <1>;
386 #size-cells = <1>;
387 interrupt-parent = <&gic>;
388 ranges;
389
390 pdma0: pdma@12680000 {
391 compatible = "arm,pl330", "arm,primecell";
392 reg = <0x12680000 0x1000>;
393 interrupts = <0 138 0>;
394 clocks = <&cmu CLK_PDMA0>;
395 clock-names = "apb_pclk";
396 #dma-cells = <1>;
397 #dma-channels = <8>;
398 #dma-requests = <32>;
399 };
400
401 pdma1: pdma@12690000 {
402 compatible = "arm,pl330", "arm,primecell";
403 reg = <0x12690000 0x1000>;
404 interrupts = <0 139 0>;
405 clocks = <&cmu CLK_PDMA1>;
406 clock-names = "apb_pclk";
407 #dma-cells = <1>;
408 #dma-channels = <8>;
409 #dma-requests = <32>;
410 };
411 };
412
413 adc: adc@126C0000 {
414 compatible = "samsung,exynos3250-adc",
415 "samsung,exynos-adc-v2";
416 reg = <0x126C0000 0x100>, <0x10020718 0x4>;
417 interrupts = <0 137 0>;
418 clock-names = "adc", "sclk";
419 clocks = <&cmu CLK_TSADC>, <&cmu CLK_SCLK_TSADC>;
420 #io-channel-cells = <1>;
421 io-channel-ranges;
422 status = "disabled";
423 };
424
425 serial_0: serial@13800000 {
426 compatible = "samsung,exynos4210-uart";
427 reg = <0x13800000 0x100>;
428 interrupts = <0 109 0>;
429 clocks = <&cmu CLK_UART0>, <&cmu CLK_SCLK_UART0>;
430 clock-names = "uart", "clk_uart_baud0";
431 status = "disabled";
432 };
433
434 serial_1: serial@13810000 {
435 compatible = "samsung,exynos4210-uart";
436 reg = <0x13810000 0x100>;
437 interrupts = <0 110 0>;
438 clocks = <&cmu CLK_UART1>, <&cmu CLK_SCLK_UART1>;
439 clock-names = "uart", "clk_uart_baud0";
440 status = "disabled";
441 };
442
443 serial_2: serial@13820000 {
444 compatible = "samsung,exynos4210-uart";
445 reg = <0x13820000 0x100>;
446 interrupts = <0 111 0>;
447 clocks = <&cmu CLK_UART2>, <&cmu CLK_SCLK_UART2>;
448 clock-names = "uart", "clk_uart_baud0";
449 status = "disabled";
450 };
451
452 serial_3: serial@13830000 {
453 compatible = "samsung,exynos4210-uart";
454 reg = <0x13830000 0x100>;
455 interrupts = <0 112 0>;
456 clocks = <&cmu CLK_UART3>, <&cmu CLK_SCLK_UART3>;
457 clock-names = "uart", "clk_uart_baud0";
458 status = "disabled";
459 };
460
461 i2c_0: i2c@13860000 {
462 #address-cells = <1>;
463 #size-cells = <0>;
464 compatible = "samsung,s3c2440-i2c";
465 reg = <0x13860000 0x100>;
466 interrupts = <0 113 0>;
467 clocks = <&cmu CLK_I2C0>;
468 clock-names = "i2c";
469 pinctrl-names = "default";
470 pinctrl-0 = <&i2c0_bus>;
471 status = "disabled";
472 };
473
474 i2c_1: i2c@13870000 {
475 #address-cells = <1>;
476 #size-cells = <0>;
477 compatible = "samsung,s3c2440-i2c";
478 reg = <0x13870000 0x100>;
479 interrupts = <0 114 0>;
480 clocks = <&cmu CLK_I2C1>;
481 clock-names = "i2c";
482 pinctrl-names = "default";
483 pinctrl-0 = <&i2c1_bus>;
484 status = "disabled";
485 };
486
487 i2c_2: i2c@13880000 {
488 #address-cells = <1>;
489 #size-cells = <0>;
490 compatible = "samsung,s3c2440-i2c";
491 reg = <0x13880000 0x100>;
492 interrupts = <0 115 0>;
493 clocks = <&cmu CLK_I2C2>;
494 clock-names = "i2c";
495 pinctrl-names = "default";
496 pinctrl-0 = <&i2c2_bus>;
497 status = "disabled";
498 };
499
500 i2c_3: i2c@13890000 {
501 #address-cells = <1>;
502 #size-cells = <0>;
503 compatible = "samsung,s3c2440-i2c";
504 reg = <0x13890000 0x100>;
505 interrupts = <0 116 0>;
506 clocks = <&cmu CLK_I2C3>;
507 clock-names = "i2c";
508 pinctrl-names = "default";
509 pinctrl-0 = <&i2c3_bus>;
510 status = "disabled";
511 };
512
513 i2c_4: i2c@138A0000 {
514 #address-cells = <1>;
515 #size-cells = <0>;
516 compatible = "samsung,s3c2440-i2c";
517 reg = <0x138A0000 0x100>;
518 interrupts = <0 117 0>;
519 clocks = <&cmu CLK_I2C4>;
520 clock-names = "i2c";
521 pinctrl-names = "default";
522 pinctrl-0 = <&i2c4_bus>;
523 status = "disabled";
524 };
525
526 i2c_5: i2c@138B0000 {
527 #address-cells = <1>;
528 #size-cells = <0>;
529 compatible = "samsung,s3c2440-i2c";
530 reg = <0x138B0000 0x100>;
531 interrupts = <0 118 0>;
532 clocks = <&cmu CLK_I2C5>;
533 clock-names = "i2c";
534 pinctrl-names = "default";
535 pinctrl-0 = <&i2c5_bus>;
536 status = "disabled";
537 };
538
539 i2c_6: i2c@138C0000 {
540 #address-cells = <1>;
541 #size-cells = <0>;
542 compatible = "samsung,s3c2440-i2c";
543 reg = <0x138C0000 0x100>;
544 interrupts = <0 119 0>;
545 clocks = <&cmu CLK_I2C6>;
546 clock-names = "i2c";
547 pinctrl-names = "default";
548 pinctrl-0 = <&i2c6_bus>;
549 status = "disabled";
550 };
551
552 i2c_7: i2c@138D0000 {
553 #address-cells = <1>;
554 #size-cells = <0>;
555 compatible = "samsung,s3c2440-i2c";
556 reg = <0x138D0000 0x100>;
557 interrupts = <0 120 0>;
558 clocks = <&cmu CLK_I2C7>;
559 clock-names = "i2c";
560 pinctrl-names = "default";
561 pinctrl-0 = <&i2c7_bus>;
562 status = "disabled";
563 };
564
565 spi_0: spi@13920000 {
566 compatible = "samsung,exynos4210-spi";
567 reg = <0x13920000 0x100>;
568 interrupts = <0 121 0>;
569 dmas = <&pdma0 7>, <&pdma0 6>;
570 dma-names = "tx", "rx";
571 #address-cells = <1>;
572 #size-cells = <0>;
573 clocks = <&cmu CLK_SPI0>, <&cmu CLK_SCLK_SPI0>;
574 clock-names = "spi", "spi_busclk0";
575 samsung,spi-src-clk = <0>;
576 pinctrl-names = "default";
577 pinctrl-0 = <&spi0_bus>;
578 status = "disabled";
579 };
580
581 spi_1: spi@13930000 {
582 compatible = "samsung,exynos4210-spi";
583 reg = <0x13930000 0x100>;
584 interrupts = <0 122 0>;
585 dmas = <&pdma1 7>, <&pdma1 6>;
586 dma-names = "tx", "rx";
587 #address-cells = <1>;
588 #size-cells = <0>;
589 clocks = <&cmu CLK_SPI1>, <&cmu CLK_SCLK_SPI1>;
590 clock-names = "spi", "spi_busclk0";
591 samsung,spi-src-clk = <0>;
592 pinctrl-names = "default";
593 pinctrl-0 = <&spi1_bus>;
594 status = "disabled";
595 };
596
597 spi_2: spi@13940000 {
598 compatible = "samsung,exynos4210-spi";
599 reg = <0x13940000 0x100>;
600 interrupts = <0 123 0>;
601 dmas = <&pdma0 9>, <&pdma0 8>;
602 dma-names = "tx", "rx";
603 #address-cells = <1>;
604 #size-cells = <0>;
605 clocks = <&cmu CLK_SPI2>, <&cmu CLK_SCLK_SPI2>;
606 clock-names = "spi", "spi_busclk0";
607 samsung,spi-src-clk = <0>;
608 pinctrl-names = "default";
609 pinctrl-0 = <&spi2_bus>;
610 status = "disabled";
611 };
612
613 clock_audss: clock-controller@03810000 {
614 compatible = "samsung,exynos4210-audss-clock";
615 reg = <0x03810000 0x0C>;
616 #clock-cells = <1>;
617 };
618
619 i2s0: i2s@3830000 {
620 compatible = "samsung,s5pv210-i2s";
621 reg = <0x03830000 0x100>;
622 interrupts = <0 124 0>;
623 clocks = <&clock_audss EXYNOS_I2S_BUS>,
624 <&clock_audss EXYNOS_SCLK_I2S>;
625 clock-names = "iis", "i2s_opclk0";
626 dmas = <&pdma1 10>, <&pdma1 9>, <&pdma1 8>;
627 dma-names = "tx", "rx", "tx-sec";
628 pinctrl-names = "default";
629 pinctrl-0 = <&i2s0_bus>;
630 samsung,idma-addr = <0x03000000>;
631 status = "disabled";
632 };
633
634 pwm: pwm@139D0000 {
635 compatible = "samsung,exynos4210-pwm";
636 reg = <0x139D0000 0x1000>;
637 interrupts = <0 104 0>, <0 105 0>, <0 106 0>,
638 <0 107 0>, <0 108 0>;
639 #pwm-cells = <3>;
640 status = "disabled";
641 };
642
643 pmu {
644 compatible = "arm,cortex-a9-pmu";
645 interrupts = <0 18 0>, <0 19 0>, <0 20 0>, <0 21 0>;
646 };
647 };
648};
649
650#include "exynos4415-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
index a56bf9b1a412..2f866f6e5838 100644
--- a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
+++ b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
@@ -572,8 +572,14 @@
572 572
573 interrupt-controller; 573 interrupt-controller;
574 interrupt-parent = <&gic>; 574 interrupt-parent = <&gic>;
575 interrupts = <0 16 0>, <0 17 0>, <0 18 0>, <0 19 0>, 575 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
576 <0 20 0>, <0 21 0>, <0 22 0>, <0 23 0>; 576 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
577 <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
578 <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
579 <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
580 <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
581 <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
582 <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
577 #interrupt-cells = <2>; 583 #interrupt-cells = <2>;
578 }; 584 };
579 585
@@ -583,8 +589,14 @@
583 589
584 interrupt-controller; 590 interrupt-controller;
585 interrupt-parent = <&gic>; 591 interrupt-parent = <&gic>;
586 interrupts = <0 24 0>, <0 25 0>, <0 26 0>, <0 27 0>, 592 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
587 <0 28 0>, <0 29 0>, <0 30 0>, <0 31 0>; 593 <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
594 <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
595 <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
596 <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
597 <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
598 <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
599 <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
588 #interrupt-cells = <2>; 600 #interrupt-cells = <2>;
589 }; 601 };
590 602
diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
index 3394bdcf10ae..85a7122658f1 100644
--- a/arch/arm/boot/dts/exynos4x12.dtsi
+++ b/arch/arm/boot/dts/exynos4x12.dtsi
@@ -88,11 +88,11 @@
88 #interrupt-cells = <1>; 88 #interrupt-cells = <1>;
89 #address-cells = <0>; 89 #address-cells = <0>;
90 #size-cells = <0>; 90 #size-cells = <0>;
91 interrupt-map = <0 &gic 0 57 0>, 91 interrupt-map = <0 &gic 0 57 IRQ_TYPE_LEVEL_HIGH>,
92 <1 &combiner 12 5>, 92 <1 &combiner 12 5>,
93 <2 &combiner 12 6>, 93 <2 &combiner 12 6>,
94 <3 &combiner 12 7>, 94 <3 &combiner 12 7>,
95 <4 &gic 1 12 0>; 95 <4 &gic 1 12 IRQ_TYPE_LEVEL_HIGH>;
96 }; 96 };
97 }; 97 };
98 98
@@ -112,7 +112,7 @@
112 g2d: g2d@10800000 { 112 g2d: g2d@10800000 {
113 compatible = "samsung,exynos4212-g2d"; 113 compatible = "samsung,exynos4212-g2d";
114 reg = <0x10800000 0x1000>; 114 reg = <0x10800000 0x1000>;
115 interrupts = <0 89 0>; 115 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
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>;
@@ -127,7 +127,7 @@
127 fimc_lite_0: fimc-lite@12390000 { 127 fimc_lite_0: fimc-lite@12390000 {
128 compatible = "samsung,exynos4212-fimc-lite"; 128 compatible = "samsung,exynos4212-fimc-lite";
129 reg = <0x12390000 0x1000>; 129 reg = <0x12390000 0x1000>;
130 interrupts = <0 105 0>; 130 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
131 power-domains = <&pd_isp>; 131 power-domains = <&pd_isp>;
132 clocks = <&clock CLK_FIMC_LITE0>; 132 clocks = <&clock CLK_FIMC_LITE0>;
133 clock-names = "flite"; 133 clock-names = "flite";
@@ -138,7 +138,7 @@
138 fimc_lite_1: fimc-lite@123A0000 { 138 fimc_lite_1: fimc-lite@123A0000 {
139 compatible = "samsung,exynos4212-fimc-lite"; 139 compatible = "samsung,exynos4212-fimc-lite";
140 reg = <0x123A0000 0x1000>; 140 reg = <0x123A0000 0x1000>;
141 interrupts = <0 106 0>; 141 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
142 power-domains = <&pd_isp>; 142 power-domains = <&pd_isp>;
143 clocks = <&clock CLK_FIMC_LITE1>; 143 clocks = <&clock CLK_FIMC_LITE1>;
144 clock-names = "flite"; 144 clock-names = "flite";
@@ -147,9 +147,10 @@
147 }; 147 };
148 148
149 fimc_is: fimc-is@12000000 { 149 fimc_is: fimc-is@12000000 {
150 compatible = "samsung,exynos4212-fimc-is", "simple-bus"; 150 compatible = "samsung,exynos4212-fimc-is";
151 reg = <0x12000000 0x260000>; 151 reg = <0x12000000 0x260000>;
152 interrupts = <0 90 0>, <0 95 0>; 152 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
153 <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
153 power-domains = <&pd_isp>; 154 power-domains = <&pd_isp>;
154 clocks = <&clock CLK_FIMC_LITE0>, 155 clocks = <&clock CLK_FIMC_LITE0>,
155 <&clock CLK_FIMC_LITE1>, <&clock CLK_PPMUISPX>, 156 <&clock CLK_FIMC_LITE1>, <&clock CLK_PPMUISPX>,
@@ -200,7 +201,7 @@
200 mshc_0: mmc@12550000 { 201 mshc_0: mmc@12550000 {
201 compatible = "samsung,exynos4412-dw-mshc"; 202 compatible = "samsung,exynos4412-dw-mshc";
202 reg = <0x12550000 0x1000>; 203 reg = <0x12550000 0x1000>;
203 interrupts = <0 77 0>; 204 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
204 #address-cells = <1>; 205 #address-cells = <1>;
205 #size-cells = <0>; 206 #size-cells = <0>;
206 fifo-depth = <0x80>; 207 fifo-depth = <0x80>;
@@ -461,11 +462,26 @@
461}; 462};
462 463
463&combiner { 464&combiner {
464 interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>, 465 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
465 <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>, 466 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
466 <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>, 467 <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
467 <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>, 468 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
468 <0 107 0>, <0 108 0>, <0 48 0>, <0 42 0>; 469 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
470 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
471 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
472 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
473 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
474 <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
475 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
476 <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
477 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
478 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
479 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
480 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
481 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
482 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
483 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
484 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
469}; 485};
470 486
471&exynos_usbphy { 487&exynos_usbphy {
@@ -529,18 +545,18 @@
529&pinctrl_0 { 545&pinctrl_0 {
530 compatible = "samsung,exynos4x12-pinctrl"; 546 compatible = "samsung,exynos4x12-pinctrl";
531 reg = <0x11400000 0x1000>; 547 reg = <0x11400000 0x1000>;
532 interrupts = <0 47 0>; 548 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
533}; 549};
534 550
535&pinctrl_1 { 551&pinctrl_1 {
536 compatible = "samsung,exynos4x12-pinctrl"; 552 compatible = "samsung,exynos4x12-pinctrl";
537 reg = <0x11000000 0x1000>; 553 reg = <0x11000000 0x1000>;
538 interrupts = <0 46 0>; 554 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
539 555
540 wakup_eint: wakeup-interrupt-controller { 556 wakup_eint: wakeup-interrupt-controller {
541 compatible = "samsung,exynos4210-wakeup-eint"; 557 compatible = "samsung,exynos4210-wakeup-eint";
542 interrupt-parent = <&gic>; 558 interrupt-parent = <&gic>;
543 interrupts = <0 32 0>; 559 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
544 }; 560 };
545}; 561};
546 562
@@ -554,7 +570,7 @@
554&pinctrl_3 { 570&pinctrl_3 {
555 compatible = "samsung,exynos4x12-pinctrl"; 571 compatible = "samsung,exynos4x12-pinctrl";
556 reg = <0x106E0000 0x1000>; 572 reg = <0x106E0000 0x1000>;
557 interrupts = <0 72 0>; 573 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
558}; 574};
559 575
560&pmu_system_controller { 576&pmu_system_controller {
diff --git a/arch/arm/boot/dts/exynos5.dtsi b/arch/arm/boot/dts/exynos5.dtsi
index 8f06609879f5..7fd870ee5093 100644
--- a/arch/arm/boot/dts/exynos5.dtsi
+++ b/arch/arm/boot/dts/exynos5.dtsi
@@ -13,6 +13,8 @@
13 * published by the Free Software Foundation. 13 * published by the Free Software Foundation.
14 */ 14 */
15 15
16#include <dt-bindings/interrupt-controller/arm-gic.h>
17#include <dt-bindings/interrupt-controller/irq.h>
16#include "exynos-syscon-restart.dtsi" 18#include "exynos-syscon-restart.dtsi"
17 19
18/ { 20/ {
@@ -53,14 +55,38 @@
53 interrupt-controller; 55 interrupt-controller;
54 samsung,combiner-nr = <32>; 56 samsung,combiner-nr = <32>;
55 reg = <0x10440000 0x1000>; 57 reg = <0x10440000 0x1000>;
56 interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>, 58 interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>,
57 <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>, 59 <0 1 IRQ_TYPE_LEVEL_HIGH>,
58 <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>, 60 <0 2 IRQ_TYPE_LEVEL_HIGH>,
59 <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>, 61 <0 3 IRQ_TYPE_LEVEL_HIGH>,
60 <0 16 0>, <0 17 0>, <0 18 0>, <0 19 0>, 62 <0 4 IRQ_TYPE_LEVEL_HIGH>,
61 <0 20 0>, <0 21 0>, <0 22 0>, <0 23 0>, 63 <0 5 IRQ_TYPE_LEVEL_HIGH>,
62 <0 24 0>, <0 25 0>, <0 26 0>, <0 27 0>, 64 <0 6 IRQ_TYPE_LEVEL_HIGH>,
63 <0 28 0>, <0 29 0>, <0 30 0>, <0 31 0>; 65 <0 7 IRQ_TYPE_LEVEL_HIGH>,
66 <0 8 IRQ_TYPE_LEVEL_HIGH>,
67 <0 9 IRQ_TYPE_LEVEL_HIGH>,
68 <0 10 IRQ_TYPE_LEVEL_HIGH>,
69 <0 11 IRQ_TYPE_LEVEL_HIGH>,
70 <0 12 IRQ_TYPE_LEVEL_HIGH>,
71 <0 13 IRQ_TYPE_LEVEL_HIGH>,
72 <0 14 IRQ_TYPE_LEVEL_HIGH>,
73 <0 15 IRQ_TYPE_LEVEL_HIGH>,
74 <0 16 IRQ_TYPE_LEVEL_HIGH>,
75 <0 17 IRQ_TYPE_LEVEL_HIGH>,
76 <0 18 IRQ_TYPE_LEVEL_HIGH>,
77 <0 19 IRQ_TYPE_LEVEL_HIGH>,
78 <0 20 IRQ_TYPE_LEVEL_HIGH>,
79 <0 21 IRQ_TYPE_LEVEL_HIGH>,
80 <0 22 IRQ_TYPE_LEVEL_HIGH>,
81 <0 23 IRQ_TYPE_LEVEL_HIGH>,
82 <0 24 IRQ_TYPE_LEVEL_HIGH>,
83 <0 25 IRQ_TYPE_LEVEL_HIGH>,
84 <0 26 IRQ_TYPE_LEVEL_HIGH>,
85 <0 27 IRQ_TYPE_LEVEL_HIGH>,
86 <0 28 IRQ_TYPE_LEVEL_HIGH>,
87 <0 29 IRQ_TYPE_LEVEL_HIGH>,
88 <0 30 IRQ_TYPE_LEVEL_HIGH>,
89 <0 31 IRQ_TYPE_LEVEL_HIGH>;
64 }; 90 };
65 91
66 gic: interrupt-controller@10481000 { 92 gic: interrupt-controller@10481000 {
@@ -71,7 +97,8 @@
71 <0x10482000 0x1000>, 97 <0x10482000 0x1000>,
72 <0x10484000 0x2000>, 98 <0x10484000 0x2000>,
73 <0x10486000 0x2000>; 99 <0x10486000 0x2000>;
74 interrupts = <1 9 0xf04>; 100 interrupts = <GIC_PPI 9
101 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
75 }; 102 };
76 103
77 sysreg_system_controller: syscon@10050000 { 104 sysreg_system_controller: syscon@10050000 {
@@ -82,31 +109,31 @@
82 serial_0: serial@12C00000 { 109 serial_0: serial@12C00000 {
83 compatible = "samsung,exynos4210-uart"; 110 compatible = "samsung,exynos4210-uart";
84 reg = <0x12C00000 0x100>; 111 reg = <0x12C00000 0x100>;
85 interrupts = <0 51 0>; 112 interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH>;
86 }; 113 };
87 114
88 serial_1: serial@12C10000 { 115 serial_1: serial@12C10000 {
89 compatible = "samsung,exynos4210-uart"; 116 compatible = "samsung,exynos4210-uart";
90 reg = <0x12C10000 0x100>; 117 reg = <0x12C10000 0x100>;
91 interrupts = <0 52 0>; 118 interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
92 }; 119 };
93 120
94 serial_2: serial@12C20000 { 121 serial_2: serial@12C20000 {
95 compatible = "samsung,exynos4210-uart"; 122 compatible = "samsung,exynos4210-uart";
96 reg = <0x12C20000 0x100>; 123 reg = <0x12C20000 0x100>;
97 interrupts = <0 53 0>; 124 interrupts = <0 53 IRQ_TYPE_LEVEL_HIGH>;
98 }; 125 };
99 126
100 serial_3: serial@12C30000 { 127 serial_3: serial@12C30000 {
101 compatible = "samsung,exynos4210-uart"; 128 compatible = "samsung,exynos4210-uart";
102 reg = <0x12C30000 0x100>; 129 reg = <0x12C30000 0x100>;
103 interrupts = <0 54 0>; 130 interrupts = <0 54 IRQ_TYPE_LEVEL_HIGH>;
104 }; 131 };
105 132
106 i2c_0: i2c@12C60000 { 133 i2c_0: i2c@12C60000 {
107 compatible = "samsung,s3c2440-i2c"; 134 compatible = "samsung,s3c2440-i2c";
108 reg = <0x12C60000 0x100>; 135 reg = <0x12C60000 0x100>;
109 interrupts = <0 56 0>; 136 interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
110 #address-cells = <1>; 137 #address-cells = <1>;
111 #size-cells = <0>; 138 #size-cells = <0>;
112 samsung,sysreg-phandle = <&sysreg_system_controller>; 139 samsung,sysreg-phandle = <&sysreg_system_controller>;
@@ -116,7 +143,7 @@
116 i2c_1: i2c@12C70000 { 143 i2c_1: i2c@12C70000 {
117 compatible = "samsung,s3c2440-i2c"; 144 compatible = "samsung,s3c2440-i2c";
118 reg = <0x12C70000 0x100>; 145 reg = <0x12C70000 0x100>;
119 interrupts = <0 57 0>; 146 interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
120 #address-cells = <1>; 147 #address-cells = <1>;
121 #size-cells = <0>; 148 #size-cells = <0>;
122 samsung,sysreg-phandle = <&sysreg_system_controller>; 149 samsung,sysreg-phandle = <&sysreg_system_controller>;
@@ -126,7 +153,7 @@
126 i2c_2: i2c@12C80000 { 153 i2c_2: i2c@12C80000 {
127 compatible = "samsung,s3c2440-i2c"; 154 compatible = "samsung,s3c2440-i2c";
128 reg = <0x12C80000 0x100>; 155 reg = <0x12C80000 0x100>;
129 interrupts = <0 58 0>; 156 interrupts = <0 58 IRQ_TYPE_LEVEL_HIGH>;
130 #address-cells = <1>; 157 #address-cells = <1>;
131 #size-cells = <0>; 158 #size-cells = <0>;
132 samsung,sysreg-phandle = <&sysreg_system_controller>; 159 samsung,sysreg-phandle = <&sysreg_system_controller>;
@@ -136,7 +163,7 @@
136 i2c_3: i2c@12C90000 { 163 i2c_3: i2c@12C90000 {
137 compatible = "samsung,s3c2440-i2c"; 164 compatible = "samsung,s3c2440-i2c";
138 reg = <0x12C90000 0x100>; 165 reg = <0x12C90000 0x100>;
139 interrupts = <0 59 0>; 166 interrupts = <0 59 IRQ_TYPE_LEVEL_HIGH>;
140 #address-cells = <1>; 167 #address-cells = <1>;
141 #size-cells = <0>; 168 #size-cells = <0>;
142 samsung,sysreg-phandle = <&sysreg_system_controller>; 169 samsung,sysreg-phandle = <&sysreg_system_controller>;
@@ -153,7 +180,8 @@
153 rtc: rtc@101E0000 { 180 rtc: rtc@101E0000 {
154 compatible = "samsung,s3c6410-rtc"; 181 compatible = "samsung,s3c6410-rtc";
155 reg = <0x101E0000 0x100>; 182 reg = <0x101E0000 0x100>;
156 interrupts = <0 43 0>, <0 44 0>; 183 interrupts = <0 43 IRQ_TYPE_LEVEL_HIGH>,
184 <0 44 IRQ_TYPE_LEVEL_HIGH>;
157 status = "disabled"; 185 status = "disabled";
158 }; 186 };
159 187
diff --git a/arch/arm/boot/dts/exynos5250-snow-common.dtsi b/arch/arm/boot/dts/exynos5250-snow-common.dtsi
index d5d51916bb74..8f3a80430748 100644
--- a/arch/arm/boot/dts/exynos5250-snow-common.dtsi
+++ b/arch/arm/boot/dts/exynos5250-snow-common.dtsi
@@ -523,6 +523,7 @@
523 status = "okay"; 523 status = "okay";
524}; 524};
525 525
526/* eMMC flash */
526&mmc_0 { 527&mmc_0 {
527 status = "okay"; 528 status = "okay";
528 num-slots = <1>; 529 num-slots = <1>;
@@ -536,6 +537,7 @@
536 cap-mmc-highspeed; 537 cap-mmc-highspeed;
537}; 538};
538 539
540/* uSD card */
539&mmc_2 { 541&mmc_2 {
540 status = "okay"; 542 status = "okay";
541 num-slots = <1>; 543 num-slots = <1>;
@@ -553,6 +555,8 @@
553/* 555/*
554 * On Snow we've got SIP WiFi and so can keep drive strengths low to 556 * On Snow we've got SIP WiFi and so can keep drive strengths low to
555 * reduce EMI. 557 * reduce EMI.
558 *
559 * WiFi SDIO module
556 */ 560 */
557&mmc_3 { 561&mmc_3 {
558 status = "okay"; 562 status = "okay";
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi
index f7357d99b47c..b6d7444d8585 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -181,8 +181,8 @@
181 <0x1 0 &combiner 23 4>, 181 <0x1 0 &combiner 23 4>,
182 <0x2 0 &combiner 25 2>, 182 <0x2 0 &combiner 25 2>,
183 <0x3 0 &combiner 25 3>, 183 <0x3 0 &combiner 25 3>,
184 <0x4 0 &gic 0 120 0>, 184 <0x4 0 &gic 0 120 IRQ_TYPE_LEVEL_HIGH>,
185 <0x5 0 &gic 0 121 0>; 185 <0x5 0 &gic 0 121 IRQ_TYPE_LEVEL_HIGH>;
186 }; 186 };
187 }; 187 };
188 188
@@ -195,31 +195,31 @@
195 pinctrl_0: pinctrl@11400000 { 195 pinctrl_0: pinctrl@11400000 {
196 compatible = "samsung,exynos5250-pinctrl"; 196 compatible = "samsung,exynos5250-pinctrl";
197 reg = <0x11400000 0x1000>; 197 reg = <0x11400000 0x1000>;
198 interrupts = <0 46 0>; 198 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
199 199
200 wakup_eint: wakeup-interrupt-controller { 200 wakup_eint: wakeup-interrupt-controller {
201 compatible = "samsung,exynos4210-wakeup-eint"; 201 compatible = "samsung,exynos4210-wakeup-eint";
202 interrupt-parent = <&gic>; 202 interrupt-parent = <&gic>;
203 interrupts = <0 32 0>; 203 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
204 }; 204 };
205 }; 205 };
206 206
207 pinctrl_1: pinctrl@13400000 { 207 pinctrl_1: pinctrl@13400000 {
208 compatible = "samsung,exynos5250-pinctrl"; 208 compatible = "samsung,exynos5250-pinctrl";
209 reg = <0x13400000 0x1000>; 209 reg = <0x13400000 0x1000>;
210 interrupts = <0 45 0>; 210 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
211 }; 211 };
212 212
213 pinctrl_2: pinctrl@10d10000 { 213 pinctrl_2: pinctrl@10d10000 {
214 compatible = "samsung,exynos5250-pinctrl"; 214 compatible = "samsung,exynos5250-pinctrl";
215 reg = <0x10d10000 0x1000>; 215 reg = <0x10d10000 0x1000>;
216 interrupts = <0 50 0>; 216 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
217 }; 217 };
218 218
219 pinctrl_3: pinctrl@03860000 { 219 pinctrl_3: pinctrl@03860000 {
220 compatible = "samsung,exynos5250-pinctrl"; 220 compatible = "samsung,exynos5250-pinctrl";
221 reg = <0x03860000 0x1000>; 221 reg = <0x03860000 0x1000>;
222 interrupts = <0 47 0>; 222 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
223 }; 223 };
224 224
225 pmu_system_controller: system-controller@10040000 { 225 pmu_system_controller: system-controller@10040000 {
@@ -236,7 +236,7 @@
236 watchdog@101D0000 { 236 watchdog@101D0000 {
237 compatible = "samsung,exynos5250-wdt"; 237 compatible = "samsung,exynos5250-wdt";
238 reg = <0x101D0000 0x100>; 238 reg = <0x101D0000 0x100>;
239 interrupts = <0 42 0>; 239 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
240 clocks = <&clock CLK_WDT>; 240 clocks = <&clock CLK_WDT>;
241 clock-names = "watchdog"; 241 clock-names = "watchdog";
242 samsung,syscon-phandle = <&pmu_system_controller>; 242 samsung,syscon-phandle = <&pmu_system_controller>;
@@ -245,7 +245,7 @@
245 g2d@10850000 { 245 g2d@10850000 {
246 compatible = "samsung,exynos5250-g2d"; 246 compatible = "samsung,exynos5250-g2d";
247 reg = <0x10850000 0x1000>; 247 reg = <0x10850000 0x1000>;
248 interrupts = <0 91 0>; 248 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
249 clocks = <&clock CLK_G2D>; 249 clocks = <&clock CLK_G2D>;
250 clock-names = "fimg2d"; 250 clock-names = "fimg2d";
251 iommus = <&sysmmu_g2d>; 251 iommus = <&sysmmu_g2d>;
@@ -254,7 +254,7 @@
254 mfc: codec@11000000 { 254 mfc: codec@11000000 {
255 compatible = "samsung,mfc-v6"; 255 compatible = "samsung,mfc-v6";
256 reg = <0x11000000 0x10000>; 256 reg = <0x11000000 0x10000>;
257 interrupts = <0 96 0>; 257 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
258 power-domains = <&pd_mfc>; 258 power-domains = <&pd_mfc>;
259 clocks = <&clock CLK_MFC>; 259 clocks = <&clock CLK_MFC>;
260 clock-names = "mfc"; 260 clock-names = "mfc";
@@ -265,7 +265,7 @@
265 rotator: rotator@11C00000 { 265 rotator: rotator@11C00000 {
266 compatible = "samsung,exynos5250-rotator"; 266 compatible = "samsung,exynos5250-rotator";
267 reg = <0x11C00000 0x64>; 267 reg = <0x11C00000 0x64>;
268 interrupts = <0 84 0>; 268 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
269 clocks = <&clock CLK_ROTATOR>; 269 clocks = <&clock CLK_ROTATOR>;
270 clock-names = "rotator"; 270 clock-names = "rotator";
271 iommus = <&sysmmu_rotator>; 271 iommus = <&sysmmu_rotator>;
@@ -274,7 +274,7 @@
274 tmu: tmu@10060000 { 274 tmu: tmu@10060000 {
275 compatible = "samsung,exynos5250-tmu"; 275 compatible = "samsung,exynos5250-tmu";
276 reg = <0x10060000 0x100>; 276 reg = <0x10060000 0x100>;
277 interrupts = <0 65 0>; 277 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
278 clocks = <&clock CLK_TMU>; 278 clocks = <&clock CLK_TMU>;
279 clock-names = "tmu_apbif"; 279 clock-names = "tmu_apbif";
280 #include "exynos4412-tmu-sensor-conf.dtsi" 280 #include "exynos4412-tmu-sensor-conf.dtsi"
@@ -284,7 +284,7 @@
284 compatible = "snps,dwc-ahci"; 284 compatible = "snps,dwc-ahci";
285 samsung,sata-freq = <66>; 285 samsung,sata-freq = <66>;
286 reg = <0x122F0000 0x1ff>; 286 reg = <0x122F0000 0x1ff>;
287 interrupts = <0 115 0>; 287 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
288 clocks = <&clock CLK_SATA>, <&clock CLK_SCLK_SATA>; 288 clocks = <&clock CLK_SATA>, <&clock CLK_SCLK_SATA>;
289 clock-names = "sata", "sclk_sata"; 289 clock-names = "sata", "sclk_sata";
290 phys = <&sata_phy>; 290 phys = <&sata_phy>;
@@ -306,7 +306,7 @@
306 i2c_4: i2c@12CA0000 { 306 i2c_4: i2c@12CA0000 {
307 compatible = "samsung,s3c2440-i2c"; 307 compatible = "samsung,s3c2440-i2c";
308 reg = <0x12CA0000 0x100>; 308 reg = <0x12CA0000 0x100>;
309 interrupts = <0 60 0>; 309 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
310 #address-cells = <1>; 310 #address-cells = <1>;
311 #size-cells = <0>; 311 #size-cells = <0>;
312 clocks = <&clock CLK_I2C4>; 312 clocks = <&clock CLK_I2C4>;
@@ -319,7 +319,7 @@
319 i2c_5: i2c@12CB0000 { 319 i2c_5: i2c@12CB0000 {
320 compatible = "samsung,s3c2440-i2c"; 320 compatible = "samsung,s3c2440-i2c";
321 reg = <0x12CB0000 0x100>; 321 reg = <0x12CB0000 0x100>;
322 interrupts = <0 61 0>; 322 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
323 #address-cells = <1>; 323 #address-cells = <1>;
324 #size-cells = <0>; 324 #size-cells = <0>;
325 clocks = <&clock CLK_I2C5>; 325 clocks = <&clock CLK_I2C5>;
@@ -332,7 +332,7 @@
332 i2c_6: i2c@12CC0000 { 332 i2c_6: i2c@12CC0000 {
333 compatible = "samsung,s3c2440-i2c"; 333 compatible = "samsung,s3c2440-i2c";
334 reg = <0x12CC0000 0x100>; 334 reg = <0x12CC0000 0x100>;
335 interrupts = <0 62 0>; 335 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
336 #address-cells = <1>; 336 #address-cells = <1>;
337 #size-cells = <0>; 337 #size-cells = <0>;
338 clocks = <&clock CLK_I2C6>; 338 clocks = <&clock CLK_I2C6>;
@@ -345,7 +345,7 @@
345 i2c_7: i2c@12CD0000 { 345 i2c_7: i2c@12CD0000 {
346 compatible = "samsung,s3c2440-i2c"; 346 compatible = "samsung,s3c2440-i2c";
347 reg = <0x12CD0000 0x100>; 347 reg = <0x12CD0000 0x100>;
348 interrupts = <0 63 0>; 348 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
349 #address-cells = <1>; 349 #address-cells = <1>;
350 #size-cells = <0>; 350 #size-cells = <0>;
351 clocks = <&clock CLK_I2C7>; 351 clocks = <&clock CLK_I2C7>;
@@ -358,7 +358,7 @@
358 i2c_8: i2c@12CE0000 { 358 i2c_8: i2c@12CE0000 {
359 compatible = "samsung,s3c2440-hdmiphy-i2c"; 359 compatible = "samsung,s3c2440-hdmiphy-i2c";
360 reg = <0x12CE0000 0x1000>; 360 reg = <0x12CE0000 0x1000>;
361 interrupts = <0 64 0>; 361 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
362 #address-cells = <1>; 362 #address-cells = <1>;
363 #size-cells = <0>; 363 #size-cells = <0>;
364 clocks = <&clock CLK_I2C_HDMI>; 364 clocks = <&clock CLK_I2C_HDMI>;
@@ -380,7 +380,7 @@
380 compatible = "samsung,exynos4210-spi"; 380 compatible = "samsung,exynos4210-spi";
381 status = "disabled"; 381 status = "disabled";
382 reg = <0x12d20000 0x100>; 382 reg = <0x12d20000 0x100>;
383 interrupts = <0 66 0>; 383 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
384 dmas = <&pdma0 5 384 dmas = <&pdma0 5
385 &pdma0 4>; 385 &pdma0 4>;
386 dma-names = "tx", "rx"; 386 dma-names = "tx", "rx";
@@ -396,7 +396,7 @@
396 compatible = "samsung,exynos4210-spi"; 396 compatible = "samsung,exynos4210-spi";
397 status = "disabled"; 397 status = "disabled";
398 reg = <0x12d30000 0x100>; 398 reg = <0x12d30000 0x100>;
399 interrupts = <0 67 0>; 399 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
400 dmas = <&pdma1 5 400 dmas = <&pdma1 5
401 &pdma1 4>; 401 &pdma1 4>;
402 dma-names = "tx", "rx"; 402 dma-names = "tx", "rx";
@@ -412,7 +412,7 @@
412 compatible = "samsung,exynos4210-spi"; 412 compatible = "samsung,exynos4210-spi";
413 status = "disabled"; 413 status = "disabled";
414 reg = <0x12d40000 0x100>; 414 reg = <0x12d40000 0x100>;
415 interrupts = <0 68 0>; 415 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
416 dmas = <&pdma0 7 416 dmas = <&pdma0 7
417 &pdma0 6>; 417 &pdma0 6>;
418 dma-names = "tx", "rx"; 418 dma-names = "tx", "rx";
@@ -426,7 +426,7 @@
426 426
427 mmc_0: mmc@12200000 { 427 mmc_0: mmc@12200000 {
428 compatible = "samsung,exynos5250-dw-mshc"; 428 compatible = "samsung,exynos5250-dw-mshc";
429 interrupts = <0 75 0>; 429 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
430 #address-cells = <1>; 430 #address-cells = <1>;
431 #size-cells = <0>; 431 #size-cells = <0>;
432 reg = <0x12200000 0x1000>; 432 reg = <0x12200000 0x1000>;
@@ -438,7 +438,7 @@
438 438
439 mmc_1: mmc@12210000 { 439 mmc_1: mmc@12210000 {
440 compatible = "samsung,exynos5250-dw-mshc"; 440 compatible = "samsung,exynos5250-dw-mshc";
441 interrupts = <0 76 0>; 441 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
442 #address-cells = <1>; 442 #address-cells = <1>;
443 #size-cells = <0>; 443 #size-cells = <0>;
444 reg = <0x12210000 0x1000>; 444 reg = <0x12210000 0x1000>;
@@ -450,7 +450,7 @@
450 450
451 mmc_2: mmc@12220000 { 451 mmc_2: mmc@12220000 {
452 compatible = "samsung,exynos5250-dw-mshc"; 452 compatible = "samsung,exynos5250-dw-mshc";
453 interrupts = <0 77 0>; 453 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
454 #address-cells = <1>; 454 #address-cells = <1>;
455 #size-cells = <0>; 455 #size-cells = <0>;
456 reg = <0x12220000 0x1000>; 456 reg = <0x12220000 0x1000>;
@@ -463,7 +463,7 @@
463 mmc_3: mmc@12230000 { 463 mmc_3: mmc@12230000 {
464 compatible = "samsung,exynos5250-dw-mshc"; 464 compatible = "samsung,exynos5250-dw-mshc";
465 reg = <0x12230000 0x1000>; 465 reg = <0x12230000 0x1000>;
466 interrupts = <0 78 0>; 466 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
467 #address-cells = <1>; 467 #address-cells = <1>;
468 #size-cells = <0>; 468 #size-cells = <0>;
469 clocks = <&clock CLK_SDMMC3>, <&clock CLK_SCLK_MMC3>; 469 clocks = <&clock CLK_SDMMC3>, <&clock CLK_SCLK_MMC3>;
@@ -526,7 +526,7 @@
526 usbdrd_dwc3: dwc3@12000000 { 526 usbdrd_dwc3: dwc3@12000000 {
527 compatible = "synopsys,dwc3"; 527 compatible = "synopsys,dwc3";
528 reg = <0x12000000 0x10000>; 528 reg = <0x12000000 0x10000>;
529 interrupts = <0 72 0>; 529 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
530 phys = <&usbdrd_phy 0>, <&usbdrd_phy 1>; 530 phys = <&usbdrd_phy 0>, <&usbdrd_phy 1>;
531 phy-names = "usb2-phy", "usb3-phy"; 531 phy-names = "usb2-phy", "usb3-phy";
532 }; 532 };
@@ -544,7 +544,7 @@
544 ehci: usb@12110000 { 544 ehci: usb@12110000 {
545 compatible = "samsung,exynos4210-ehci"; 545 compatible = "samsung,exynos4210-ehci";
546 reg = <0x12110000 0x100>; 546 reg = <0x12110000 0x100>;
547 interrupts = <0 71 0>; 547 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
548 548
549 clocks = <&clock CLK_USB2>; 549 clocks = <&clock CLK_USB2>;
550 clock-names = "usbhost"; 550 clock-names = "usbhost";
@@ -559,7 +559,7 @@
559 ohci: usb@12120000 { 559 ohci: usb@12120000 {
560 compatible = "samsung,exynos4210-ohci"; 560 compatible = "samsung,exynos4210-ohci";
561 reg = <0x12120000 0x100>; 561 reg = <0x12120000 0x100>;
562 interrupts = <0 71 0>; 562 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
563 563
564 clocks = <&clock CLK_USB2>; 564 clocks = <&clock CLK_USB2>;
565 clock-names = "usbhost"; 565 clock-names = "usbhost";
@@ -591,7 +591,7 @@
591 pdma0: pdma@121A0000 { 591 pdma0: pdma@121A0000 {
592 compatible = "arm,pl330", "arm,primecell"; 592 compatible = "arm,pl330", "arm,primecell";
593 reg = <0x121A0000 0x1000>; 593 reg = <0x121A0000 0x1000>;
594 interrupts = <0 34 0>; 594 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
595 clocks = <&clock CLK_PDMA0>; 595 clocks = <&clock CLK_PDMA0>;
596 clock-names = "apb_pclk"; 596 clock-names = "apb_pclk";
597 #dma-cells = <1>; 597 #dma-cells = <1>;
@@ -602,7 +602,7 @@
602 pdma1: pdma@121B0000 { 602 pdma1: pdma@121B0000 {
603 compatible = "arm,pl330", "arm,primecell"; 603 compatible = "arm,pl330", "arm,primecell";
604 reg = <0x121B0000 0x1000>; 604 reg = <0x121B0000 0x1000>;
605 interrupts = <0 35 0>; 605 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
606 clocks = <&clock CLK_PDMA1>; 606 clocks = <&clock CLK_PDMA1>;
607 clock-names = "apb_pclk"; 607 clock-names = "apb_pclk";
608 #dma-cells = <1>; 608 #dma-cells = <1>;
@@ -613,7 +613,7 @@
613 mdma0: mdma@10800000 { 613 mdma0: mdma@10800000 {
614 compatible = "arm,pl330", "arm,primecell"; 614 compatible = "arm,pl330", "arm,primecell";
615 reg = <0x10800000 0x1000>; 615 reg = <0x10800000 0x1000>;
616 interrupts = <0 33 0>; 616 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
617 clocks = <&clock CLK_MDMA0>; 617 clocks = <&clock CLK_MDMA0>;
618 clock-names = "apb_pclk"; 618 clock-names = "apb_pclk";
619 #dma-cells = <1>; 619 #dma-cells = <1>;
@@ -624,7 +624,7 @@
624 mdma1: mdma@11C10000 { 624 mdma1: mdma@11C10000 {
625 compatible = "arm,pl330", "arm,primecell"; 625 compatible = "arm,pl330", "arm,primecell";
626 reg = <0x11C10000 0x1000>; 626 reg = <0x11C10000 0x1000>;
627 interrupts = <0 124 0>; 627 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
628 clocks = <&clock CLK_MDMA1>; 628 clocks = <&clock CLK_MDMA1>;
629 clock-names = "apb_pclk"; 629 clock-names = "apb_pclk";
630 #dma-cells = <1>; 630 #dma-cells = <1>;
@@ -636,7 +636,7 @@
636 gsc_0: gsc@13e00000 { 636 gsc_0: gsc@13e00000 {
637 compatible = "samsung,exynos5-gsc"; 637 compatible = "samsung,exynos5-gsc";
638 reg = <0x13e00000 0x1000>; 638 reg = <0x13e00000 0x1000>;
639 interrupts = <0 85 0>; 639 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
640 power-domains = <&pd_gsc>; 640 power-domains = <&pd_gsc>;
641 clocks = <&clock CLK_GSCL0>; 641 clocks = <&clock CLK_GSCL0>;
642 clock-names = "gscl"; 642 clock-names = "gscl";
@@ -646,7 +646,7 @@
646 gsc_1: gsc@13e10000 { 646 gsc_1: gsc@13e10000 {
647 compatible = "samsung,exynos5-gsc"; 647 compatible = "samsung,exynos5-gsc";
648 reg = <0x13e10000 0x1000>; 648 reg = <0x13e10000 0x1000>;
649 interrupts = <0 86 0>; 649 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
650 power-domains = <&pd_gsc>; 650 power-domains = <&pd_gsc>;
651 clocks = <&clock CLK_GSCL1>; 651 clocks = <&clock CLK_GSCL1>;
652 clock-names = "gscl"; 652 clock-names = "gscl";
@@ -656,7 +656,7 @@
656 gsc_2: gsc@13e20000 { 656 gsc_2: gsc@13e20000 {
657 compatible = "samsung,exynos5-gsc"; 657 compatible = "samsung,exynos5-gsc";
658 reg = <0x13e20000 0x1000>; 658 reg = <0x13e20000 0x1000>;
659 interrupts = <0 87 0>; 659 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
660 power-domains = <&pd_gsc>; 660 power-domains = <&pd_gsc>;
661 clocks = <&clock CLK_GSCL2>; 661 clocks = <&clock CLK_GSCL2>;
662 clock-names = "gscl"; 662 clock-names = "gscl";
@@ -666,7 +666,7 @@
666 gsc_3: gsc@13e30000 { 666 gsc_3: gsc@13e30000 {
667 compatible = "samsung,exynos5-gsc"; 667 compatible = "samsung,exynos5-gsc";
668 reg = <0x13e30000 0x1000>; 668 reg = <0x13e30000 0x1000>;
669 interrupts = <0 88 0>; 669 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
670 power-domains = <&pd_gsc>; 670 power-domains = <&pd_gsc>;
671 clocks = <&clock CLK_GSCL3>; 671 clocks = <&clock CLK_GSCL3>;
672 clock-names = "gscl"; 672 clock-names = "gscl";
@@ -677,7 +677,7 @@
677 compatible = "samsung,exynos4212-hdmi"; 677 compatible = "samsung,exynos4212-hdmi";
678 reg = <0x14530000 0x70000>; 678 reg = <0x14530000 0x70000>;
679 power-domains = <&pd_disp1>; 679 power-domains = <&pd_disp1>;
680 interrupts = <0 95 0>; 680 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
681 clocks = <&clock CLK_HDMI>, <&clock CLK_SCLK_HDMI>, 681 clocks = <&clock CLK_HDMI>, <&clock CLK_SCLK_HDMI>,
682 <&clock CLK_SCLK_PIXEL>, <&clock CLK_SCLK_HDMIPHY>, 682 <&clock CLK_SCLK_PIXEL>, <&clock CLK_SCLK_HDMIPHY>,
683 <&clock CLK_MOUT_HDMI>; 683 <&clock CLK_MOUT_HDMI>;
@@ -690,7 +690,7 @@
690 compatible = "samsung,exynos5250-mixer"; 690 compatible = "samsung,exynos5250-mixer";
691 reg = <0x14450000 0x10000>; 691 reg = <0x14450000 0x10000>;
692 power-domains = <&pd_disp1>; 692 power-domains = <&pd_disp1>;
693 interrupts = <0 94 0>; 693 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
694 clocks = <&clock CLK_MIXER>, <&clock CLK_HDMI>, 694 clocks = <&clock CLK_MIXER>, <&clock CLK_HDMI>,
695 <&clock CLK_SCLK_HDMI>; 695 <&clock CLK_SCLK_HDMI>;
696 clock-names = "mixer", "hdmi", "sclk_hdmi"; 696 clock-names = "mixer", "hdmi", "sclk_hdmi";
@@ -706,7 +706,7 @@
706 adc: adc@12D10000 { 706 adc: adc@12D10000 {
707 compatible = "samsung,exynos-adc-v1"; 707 compatible = "samsung,exynos-adc-v1";
708 reg = <0x12D10000 0x100>; 708 reg = <0x12D10000 0x100>;
709 interrupts = <0 106 0>; 709 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
710 clocks = <&clock CLK_ADC>; 710 clocks = <&clock CLK_ADC>;
711 clock-names = "adc"; 711 clock-names = "adc";
712 #io-channel-cells = <1>; 712 #io-channel-cells = <1>;
@@ -718,7 +718,7 @@
718 sss@10830000 { 718 sss@10830000 {
719 compatible = "samsung,exynos4210-secss"; 719 compatible = "samsung,exynos4210-secss";
720 reg = <0x10830000 0x300>; 720 reg = <0x10830000 0x300>;
721 interrupts = <0 112 0>; 721 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
722 clocks = <&clock CLK_SSS>; 722 clocks = <&clock CLK_SSS>;
723 clock-names = "secss"; 723 clock-names = "secss";
724 }; 724 };
diff --git a/arch/arm/boot/dts/exynos5260.dtsi b/arch/arm/boot/dts/exynos5260.dtsi
index a86a4898d077..5818718618b1 100644
--- a/arch/arm/boot/dts/exynos5260.dtsi
+++ b/arch/arm/boot/dts/exynos5260.dtsi
@@ -10,6 +10,8 @@
10*/ 10*/
11 11
12#include <dt-bindings/clock/exynos5260-clk.h> 12#include <dt-bindings/clock/exynos5260-clk.h>
13#include <dt-bindings/interrupt-controller/arm-gic.h>
14#include <dt-bindings/interrupt-controller/irq.h>
13 15
14/ { 16/ {
15 compatible = "samsung,exynos5260", "samsung,exynos5"; 17 compatible = "samsung,exynos5260", "samsung,exynos5";
@@ -168,7 +170,8 @@
168 <0x10482000 0x1000>, 170 <0x10482000 0x1000>,
169 <0x10484000 0x2000>, 171 <0x10484000 0x2000>,
170 <0x10486000 0x2000>; 172 <0x10486000 0x2000>;
171 interrupts = <1 9 0xf04>; 173 interrupts = <GIC_PPI 9
174 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
172 }; 175 };
173 176
174 chipid: chipid@10000000 { 177 chipid: chipid@10000000 {
@@ -181,10 +184,18 @@
181 reg = <0x100B0000 0x1000>; 184 reg = <0x100B0000 0x1000>;
182 clocks = <&fin_pll>, <&clock_peri PERI_CLK_MCT>; 185 clocks = <&fin_pll>, <&clock_peri PERI_CLK_MCT>;
183 clock-names = "fin_pll", "mct"; 186 clock-names = "fin_pll", "mct";
184 interrupts = <0 104 0>, <0 105 0>, <0 106 0>, 187 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
185 <0 107 0>, <0 122 0>, <0 123 0>, 188 <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
186 <0 124 0>, <0 125 0>, <0 126 0>, 189 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
187 <0 127 0>, <0 128 0>, <0 129 0>; 190 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
191 <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
192 <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
193 <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
194 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
195 <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
196 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
197 <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
198 <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>;
188 }; 199 };
189 200
190 cci: cci@10F00000 { 201 cci: cci@10F00000 {
@@ -210,25 +221,25 @@
210 pinctrl_0: pinctrl@11600000 { 221 pinctrl_0: pinctrl@11600000 {
211 compatible = "samsung,exynos5260-pinctrl"; 222 compatible = "samsung,exynos5260-pinctrl";
212 reg = <0x11600000 0x1000>; 223 reg = <0x11600000 0x1000>;
213 interrupts = <0 79 0>; 224 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
214 225
215 wakeup-interrupt-controller { 226 wakeup-interrupt-controller {
216 compatible = "samsung,exynos4210-wakeup-eint"; 227 compatible = "samsung,exynos4210-wakeup-eint";
217 interrupt-parent = <&gic>; 228 interrupt-parent = <&gic>;
218 interrupts = <0 32 0>; 229 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
219 }; 230 };
220 }; 231 };
221 232
222 pinctrl_1: pinctrl@12290000 { 233 pinctrl_1: pinctrl@12290000 {
223 compatible = "samsung,exynos5260-pinctrl"; 234 compatible = "samsung,exynos5260-pinctrl";
224 reg = <0x12290000 0x1000>; 235 reg = <0x12290000 0x1000>;
225 interrupts = <0 157 0>; 236 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
226 }; 237 };
227 238
228 pinctrl_2: pinctrl@128B0000 { 239 pinctrl_2: pinctrl@128B0000 {
229 compatible = "samsung,exynos5260-pinctrl"; 240 compatible = "samsung,exynos5260-pinctrl";
230 reg = <0x128B0000 0x1000>; 241 reg = <0x128B0000 0x1000>;
231 interrupts = <0 243 0>; 242 interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>;
232 }; 243 };
233 244
234 pmu_system_controller: system-controller@10D50000 { 245 pmu_system_controller: system-controller@10D50000 {
@@ -239,7 +250,7 @@
239 uart0: serial@12C00000 { 250 uart0: serial@12C00000 {
240 compatible = "samsung,exynos4210-uart"; 251 compatible = "samsung,exynos4210-uart";
241 reg = <0x12C00000 0x100>; 252 reg = <0x12C00000 0x100>;
242 interrupts = <0 146 0>; 253 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
243 clocks = <&clock_peri PERI_CLK_UART0>, <&clock_peri PERI_SCLK_UART0>; 254 clocks = <&clock_peri PERI_CLK_UART0>, <&clock_peri PERI_SCLK_UART0>;
244 clock-names = "uart", "clk_uart_baud0"; 255 clock-names = "uart", "clk_uart_baud0";
245 status = "disabled"; 256 status = "disabled";
@@ -248,7 +259,7 @@
248 uart1: serial@12C10000 { 259 uart1: serial@12C10000 {
249 compatible = "samsung,exynos4210-uart"; 260 compatible = "samsung,exynos4210-uart";
250 reg = <0x12C10000 0x100>; 261 reg = <0x12C10000 0x100>;
251 interrupts = <0 147 0>; 262 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
252 clocks = <&clock_peri PERI_CLK_UART1>, <&clock_peri PERI_SCLK_UART1>; 263 clocks = <&clock_peri PERI_CLK_UART1>, <&clock_peri PERI_SCLK_UART1>;
253 clock-names = "uart", "clk_uart_baud0"; 264 clock-names = "uart", "clk_uart_baud0";
254 status = "disabled"; 265 status = "disabled";
@@ -257,7 +268,7 @@
257 uart2: serial@12C20000 { 268 uart2: serial@12C20000 {
258 compatible = "samsung,exynos4210-uart"; 269 compatible = "samsung,exynos4210-uart";
259 reg = <0x12C20000 0x100>; 270 reg = <0x12C20000 0x100>;
260 interrupts = <0 148 0>; 271 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
261 clocks = <&clock_peri PERI_CLK_UART2>, <&clock_peri PERI_SCLK_UART2>; 272 clocks = <&clock_peri PERI_CLK_UART2>, <&clock_peri PERI_SCLK_UART2>;
262 clock-names = "uart", "clk_uart_baud0"; 273 clock-names = "uart", "clk_uart_baud0";
263 status = "disabled"; 274 status = "disabled";
@@ -266,7 +277,7 @@
266 uart3: serial@12860000 { 277 uart3: serial@12860000 {
267 compatible = "samsung,exynos4210-uart"; 278 compatible = "samsung,exynos4210-uart";
268 reg = <0x12860000 0x100>; 279 reg = <0x12860000 0x100>;
269 interrupts = <0 145 0>; 280 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
270 clocks = <&clock_aud AUD_CLK_AUD_UART>, <&clock_aud AUD_SCLK_AUD_UART>; 281 clocks = <&clock_aud AUD_CLK_AUD_UART>, <&clock_aud AUD_SCLK_AUD_UART>;
271 clock-names = "uart", "clk_uart_baud0"; 282 clock-names = "uart", "clk_uart_baud0";
272 status = "disabled"; 283 status = "disabled";
@@ -275,7 +286,7 @@
275 mmc_0: mmc@12140000 { 286 mmc_0: mmc@12140000 {
276 compatible = "samsung,exynos5250-dw-mshc"; 287 compatible = "samsung,exynos5250-dw-mshc";
277 reg = <0x12140000 0x2000>; 288 reg = <0x12140000 0x2000>;
278 interrupts = <0 156 0>; 289 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
279 #address-cells = <1>; 290 #address-cells = <1>;
280 #size-cells = <0>; 291 #size-cells = <0>;
281 clocks = <&clock_fsys FSYS_CLK_MMC0>, <&clock_top TOP_SCLK_MMC0>; 292 clocks = <&clock_fsys FSYS_CLK_MMC0>, <&clock_top TOP_SCLK_MMC0>;
@@ -287,7 +298,7 @@
287 mmc_1: mmc@12150000 { 298 mmc_1: mmc@12150000 {
288 compatible = "samsung,exynos5250-dw-mshc"; 299 compatible = "samsung,exynos5250-dw-mshc";
289 reg = <0x12150000 0x2000>; 300 reg = <0x12150000 0x2000>;
290 interrupts = <0 158 0>; 301 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
291 #address-cells = <1>; 302 #address-cells = <1>;
292 #size-cells = <0>; 303 #size-cells = <0>;
293 clocks = <&clock_fsys FSYS_CLK_MMC1>, <&clock_top TOP_SCLK_MMC1>; 304 clocks = <&clock_fsys FSYS_CLK_MMC1>, <&clock_top TOP_SCLK_MMC1>;
@@ -299,7 +310,7 @@
299 mmc_2: mmc@12160000 { 310 mmc_2: mmc@12160000 {
300 compatible = "samsung,exynos5250-dw-mshc"; 311 compatible = "samsung,exynos5250-dw-mshc";
301 reg = <0x12160000 0x2000>; 312 reg = <0x12160000 0x2000>;
302 interrupts = <0 159 0>; 313 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
303 #address-cells = <1>; 314 #address-cells = <1>;
304 #size-cells = <0>; 315 #size-cells = <0>;
305 clocks = <&clock_fsys FSYS_CLK_MMC2>, <&clock_top TOP_SCLK_MMC2>; 316 clocks = <&clock_fsys FSYS_CLK_MMC2>, <&clock_top TOP_SCLK_MMC2>;
diff --git a/arch/arm/boot/dts/exynos5410-odroidxu.dts b/arch/arm/boot/dts/exynos5410-odroidxu.dts
index 3c271cb4b2be..c4de1353e5df 100644
--- a/arch/arm/boot/dts/exynos5410-odroidxu.dts
+++ b/arch/arm/boot/dts/exynos5410-odroidxu.dts
@@ -15,6 +15,7 @@
15#include <dt-bindings/clock/maxim,max77802.h> 15#include <dt-bindings/clock/maxim,max77802.h>
16#include <dt-bindings/gpio/gpio.h> 16#include <dt-bindings/gpio/gpio.h>
17#include <dt-bindings/interrupt-controller/irq.h> 17#include <dt-bindings/interrupt-controller/irq.h>
18#include <dt-bindings/sound/samsung-i2s.h>
18#include "exynos54xx-odroidxu-leds.dtsi" 19#include "exynos54xx-odroidxu-leds.dtsi"
19 20
20/ { 21/ {
@@ -57,6 +58,61 @@
57 compatible = "samsung,secure-firmware"; 58 compatible = "samsung,secure-firmware";
58 reg = <0x02073000 0x1000>; 59 reg = <0x02073000 0x1000>;
59 }; 60 };
61
62 sound: sound {
63 compatible = "simple-audio-card";
64
65 simple-audio-card,name = "Odroid-XU";
66 simple-audio-card,widgets =
67 "Headphone", "Headphone Jack",
68 "Speakers", "Speakers";
69 simple-audio-card,routing =
70 "Headphone Jack", "HPL",
71 "Headphone Jack", "HPR",
72 "Headphone Jack", "MICBIAS",
73 "IN1", "Headphone Jack",
74 "Speakers", "SPKL",
75 "Speakers", "SPKR";
76
77 simple-audio-card,format = "i2s";
78 simple-audio-card,bitclock-master = <&link0_codec>;
79 simple-audio-card,frame-master = <&link0_codec>;
80
81 simple-audio-card,cpu {
82 sound-dai = <&audi2s0 0>;
83 system-clock-frequency = <19200000>;
84 };
85
86 link0_codec: simple-audio-card,codec {
87 sound-dai = <&max98090>;
88 clocks = <&audi2s0 CLK_I2S_CDCLK>;
89 };
90 };
91};
92
93&audi2s0 {
94 status = "okay";
95};
96
97&clock {
98 clocks = <&fin_pll>;
99 assigned-clocks = <&clock CLK_FOUT_EPLL>;
100 assigned-clock-rates = <192000000>;
101};
102
103&clock_audss {
104 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
105 <&clock_audss EXYNOS_MOUT_I2S>,
106 <&clock_audss EXYNOS_DOUT_SRP>,
107 <&clock_audss EXYNOS_DOUT_AUD_BUS>;
108
109 assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
110 <&clock_audss EXYNOS_MOUT_AUDSS>;
111
112 assigned-clock-rates = <0>,
113 <0>,
114 <96000000>,
115 <19200000>;
60}; 116};
61 117
62&cpu0_thermal { 118&cpu0_thermal {
@@ -440,6 +496,19 @@
440 }; 496 };
441}; 497};
442 498
499&i2c_1 {
500 status = "okay";
501 max98090: max98090@10 {
502 compatible = "maxim,max98090";
503 reg = <0x10>;
504 interrupt-parent = <&gpj3>;
505 interrupts = <0 IRQ_TYPE_NONE>;
506 clocks = <&audi2s0 CLK_I2S_CDCLK>;
507 clock-names = "mclk";
508 #sound-dai-cells = <0>;
509 };
510};
511
443&mmc_0 { 512&mmc_0 {
444 status = "okay"; 513 status = "okay";
445 mmc-pwrseq = <&emmc_pwrseq>; 514 mmc-pwrseq = <&emmc_pwrseq>;
diff --git a/arch/arm/boot/dts/exynos5410-pinctrl.dtsi b/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
index a083d23fdee3..ff46a1c27182 100644
--- a/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
+++ b/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
@@ -615,4 +615,13 @@
615 interrupt-controller; 615 interrupt-controller;
616 #interrupt-cells = <2>; 616 #interrupt-cells = <2>;
617 }; 617 };
618
619 audi2s0_bus: audi2s0-bus {
620 samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
621 "gpz-4";
622 samsung,pin-function = <2>;
623 samsung,pin-pud = <0>;
624 samsung,pin-drv = <0>;
625 };
626
618}; 627};
diff --git a/arch/arm/boot/dts/exynos5410.dtsi b/arch/arm/boot/dts/exynos5410.dtsi
index 137f48464f8b..2b6adafe18e2 100644
--- a/arch/arm/boot/dts/exynos5410.dtsi
+++ b/arch/arm/boot/dts/exynos5410.dtsi
@@ -16,6 +16,7 @@
16#include "exynos54xx.dtsi" 16#include "exynos54xx.dtsi"
17#include "exynos-syscon-restart.dtsi" 17#include "exynos-syscon-restart.dtsi"
18#include <dt-bindings/clock/exynos5410.h> 18#include <dt-bindings/clock/exynos5410.h>
19#include <dt-bindings/clock/exynos-audss-clk.h>
19#include <dt-bindings/interrupt-controller/arm-gic.h> 20#include <dt-bindings/interrupt-controller/arm-gic.h>
20 21
21/ { 22/ {
@@ -82,10 +83,18 @@
82 #clock-cells = <1>; 83 #clock-cells = <1>;
83 }; 84 };
84 85
86 clock_audss: audss-clock-controller@3810000 {
87 compatible = "samsung,exynos5410-audss-clock";
88 reg = <0x03810000 0x0C>;
89 #clock-cells = <1>;
90 clocks = <&fin_pll>, <&clock CLK_FOUT_EPLL>;
91 clock-names = "pll_ref", "pll_in";
92 };
93
85 tmu_cpu0: tmu@10060000 { 94 tmu_cpu0: tmu@10060000 {
86 compatible = "samsung,exynos5420-tmu"; 95 compatible = "samsung,exynos5420-tmu";
87 reg = <0x10060000 0x100>; 96 reg = <0x10060000 0x100>;
88 interrupts = <GIC_SPI 65 0>; 97 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
89 clocks = <&clock CLK_TMU>; 98 clocks = <&clock CLK_TMU>;
90 clock-names = "tmu_apbif"; 99 clock-names = "tmu_apbif";
91 #include "exynos4412-tmu-sensor-conf.dtsi" 100 #include "exynos4412-tmu-sensor-conf.dtsi"
@@ -94,7 +103,7 @@
94 tmu_cpu1: tmu@10064000 { 103 tmu_cpu1: tmu@10064000 {
95 compatible = "samsung,exynos5420-tmu"; 104 compatible = "samsung,exynos5420-tmu";
96 reg = <0x10064000 0x100>; 105 reg = <0x10064000 0x100>;
97 interrupts = <GIC_SPI 183 0>; 106 interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
98 clocks = <&clock CLK_TMU>; 107 clocks = <&clock CLK_TMU>;
99 clock-names = "tmu_apbif"; 108 clock-names = "tmu_apbif";
100 #include "exynos4412-tmu-sensor-conf.dtsi" 109 #include "exynos4412-tmu-sensor-conf.dtsi"
@@ -103,7 +112,7 @@
103 tmu_cpu2: tmu@10068000 { 112 tmu_cpu2: tmu@10068000 {
104 compatible = "samsung,exynos5420-tmu"; 113 compatible = "samsung,exynos5420-tmu";
105 reg = <0x10068000 0x100>; 114 reg = <0x10068000 0x100>;
106 interrupts = <GIC_SPI 184 0>; 115 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
107 clocks = <&clock CLK_TMU>; 116 clocks = <&clock CLK_TMU>;
108 clock-names = "tmu_apbif"; 117 clock-names = "tmu_apbif";
109 #include "exynos4412-tmu-sensor-conf.dtsi" 118 #include "exynos4412-tmu-sensor-conf.dtsi"
@@ -112,7 +121,7 @@
112 tmu_cpu3: tmu@1006c000 { 121 tmu_cpu3: tmu@1006c000 {
113 compatible = "samsung,exynos5420-tmu"; 122 compatible = "samsung,exynos5420-tmu";
114 reg = <0x1006c000 0x100>; 123 reg = <0x1006c000 0x100>;
115 interrupts = <GIC_SPI 185 0>; 124 interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
116 clocks = <&clock CLK_TMU>; 125 clocks = <&clock CLK_TMU>;
117 clock-names = "tmu_apbif"; 126 clock-names = "tmu_apbif";
118 #include "exynos4412-tmu-sensor-conf.dtsi" 127 #include "exynos4412-tmu-sensor-conf.dtsi"
@@ -121,7 +130,7 @@
121 mmc_0: mmc@12200000 { 130 mmc_0: mmc@12200000 {
122 compatible = "samsung,exynos5250-dw-mshc"; 131 compatible = "samsung,exynos5250-dw-mshc";
123 reg = <0x12200000 0x1000>; 132 reg = <0x12200000 0x1000>;
124 interrupts = <0 75 0>; 133 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
125 #address-cells = <1>; 134 #address-cells = <1>;
126 #size-cells = <0>; 135 #size-cells = <0>;
127 clocks = <&clock CLK_MMC0>, <&clock CLK_SCLK_MMC0>; 136 clocks = <&clock CLK_MMC0>, <&clock CLK_SCLK_MMC0>;
@@ -133,7 +142,7 @@
133 mmc_1: mmc@12210000 { 142 mmc_1: mmc@12210000 {
134 compatible = "samsung,exynos5250-dw-mshc"; 143 compatible = "samsung,exynos5250-dw-mshc";
135 reg = <0x12210000 0x1000>; 144 reg = <0x12210000 0x1000>;
136 interrupts = <0 76 0>; 145 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
137 #address-cells = <1>; 146 #address-cells = <1>;
138 #size-cells = <0>; 147 #size-cells = <0>;
139 clocks = <&clock CLK_MMC1>, <&clock CLK_SCLK_MMC1>; 148 clocks = <&clock CLK_MMC1>, <&clock CLK_SCLK_MMC1>;
@@ -145,7 +154,7 @@
145 mmc_2: mmc@12220000 { 154 mmc_2: mmc@12220000 {
146 compatible = "samsung,exynos5250-dw-mshc"; 155 compatible = "samsung,exynos5250-dw-mshc";
147 reg = <0x12220000 0x1000>; 156 reg = <0x12220000 0x1000>;
148 interrupts = <0 77 0>; 157 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
149 #address-cells = <1>; 158 #address-cells = <1>;
150 #size-cells = <0>; 159 #size-cells = <0>;
151 clocks = <&clock CLK_MMC2>, <&clock CLK_SCLK_MMC2>; 160 clocks = <&clock CLK_MMC2>, <&clock CLK_SCLK_MMC2>;
@@ -157,31 +166,81 @@
157 pinctrl_0: pinctrl@13400000 { 166 pinctrl_0: pinctrl@13400000 {
158 compatible = "samsung,exynos5410-pinctrl"; 167 compatible = "samsung,exynos5410-pinctrl";
159 reg = <0x13400000 0x1000>; 168 reg = <0x13400000 0x1000>;
160 interrupts = <0 45 0>; 169 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
161 170
162 wakeup-interrupt-controller { 171 wakeup-interrupt-controller {
163 compatible = "samsung,exynos4210-wakeup-eint"; 172 compatible = "samsung,exynos4210-wakeup-eint";
164 interrupt-parent = <&gic>; 173 interrupt-parent = <&gic>;
165 interrupts = <0 32 0>; 174 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
166 }; 175 };
167 }; 176 };
168 177
169 pinctrl_1: pinctrl@14000000 { 178 pinctrl_1: pinctrl@14000000 {
170 compatible = "samsung,exynos5410-pinctrl"; 179 compatible = "samsung,exynos5410-pinctrl";
171 reg = <0x14000000 0x1000>; 180 reg = <0x14000000 0x1000>;
172 interrupts = <0 46 0>; 181 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
173 }; 182 };
174 183
175 pinctrl_2: pinctrl@10d10000 { 184 pinctrl_2: pinctrl@10d10000 {
176 compatible = "samsung,exynos5410-pinctrl"; 185 compatible = "samsung,exynos5410-pinctrl";
177 reg = <0x10d10000 0x1000>; 186 reg = <0x10d10000 0x1000>;
178 interrupts = <0 50 0>; 187 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
179 }; 188 };
180 189
181 pinctrl_3: pinctrl@03860000 { 190 pinctrl_3: pinctrl@03860000 {
182 compatible = "samsung,exynos5410-pinctrl"; 191 compatible = "samsung,exynos5410-pinctrl";
183 reg = <0x03860000 0x1000>; 192 reg = <0x03860000 0x1000>;
184 interrupts = <0 47 0>; 193 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
194 };
195
196 amba {
197 #address-cells = <1>;
198 #size-cells = <1>;
199 compatible = "simple-bus";
200 interrupt-parent = <&gic>;
201 ranges;
202
203 pdma0: pdma@12680000 {
204 compatible = "arm,pl330", "arm,primecell";
205 reg = <0x121A0000 0x1000>;
206 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
207 clocks = <&clock CLK_PDMA0>;
208 clock-names = "apb_pclk";
209 #dma-cells = <1>;
210 #dma-channels = <8>;
211 #dma-requests = <32>;
212 };
213
214 pdma1: pdma@12690000 {
215 compatible = "arm,pl330", "arm,primecell";
216 reg = <0x121B0000 0x1000>;
217 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
218 clocks = <&clock CLK_PDMA1>;
219 clock-names = "apb_pclk";
220 #dma-cells = <1>;
221 #dma-channels = <8>;
222 #dma-requests = <32>;
223 };
224 };
225
226 audi2s0: i2s@03830000 {
227 compatible = "samsung,exynos5420-i2s";
228 reg = <0x03830000 0x100>;
229 dmas = <&pdma0 10
230 &pdma0 9
231 &pdma0 8>;
232 dma-names = "tx", "rx", "tx-sec";
233 clocks = <&clock_audss EXYNOS_I2S_BUS>,
234 <&clock_audss EXYNOS_I2S_BUS>,
235 <&clock_audss EXYNOS_SCLK_I2S>;
236 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
237 #clock-cells = <1>;
238 clock-output-names = "i2s_cdclk0";
239 #sound-dai-cells = <1>;
240 samsung,idma-addr = <0x03000000>;
241 pinctrl-names = "default";
242 pinctrl-0 = <&audi2s0_bus>;
243 status = "disabled";
185 }; 244 };
186 }; 245 };
187 246
@@ -329,7 +388,7 @@
329}; 388};
330 389
331&usbdrd_dwc3_1 { 390&usbdrd_dwc3_1 {
332 interrupts = <GIC_SPI 200 0>; 391 interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
333}; 392};
334 393
335&usbdrd_phy1 { 394&usbdrd_phy1 {
diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts b/arch/arm/boot/dts/exynos5420-peach-pit.dts
index ec4a00f1ce01..1f964ec35c5e 100644
--- a/arch/arm/boot/dts/exynos5420-peach-pit.dts
+++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts
@@ -697,6 +697,7 @@
697 status = "okay"; 697 status = "okay";
698}; 698};
699 699
700/* eMMC flash */
700&mmc_0 { 701&mmc_0 {
701 status = "okay"; 702 status = "okay";
702 num-slots = <1>; 703 num-slots = <1>;
@@ -714,6 +715,7 @@
714 bus-width = <8>; 715 bus-width = <8>;
715}; 716};
716 717
718/* WiFi SDIO module */
717&mmc_1 { 719&mmc_1 {
718 status = "okay"; 720 status = "okay";
719 num-slots = <1>; 721 num-slots = <1>;
@@ -733,6 +735,7 @@
733 vqmmc-supply = <&buck10_reg>; 735 vqmmc-supply = <&buck10_reg>;
734}; 736};
735 737
738/* uSD card */
736&mmc_2 { 739&mmc_2 {
737 status = "okay"; 740 status = "okay";
738 num-slots = <1>; 741 num-slots = <1>;
diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
index 00c4cfa54839..906a1a42a7ea 100644
--- a/arch/arm/boot/dts/exynos5420.dtsi
+++ b/arch/arm/boot/dts/exynos5420.dtsi
@@ -193,7 +193,7 @@
193 mfc: codec@11000000 { 193 mfc: codec@11000000 {
194 compatible = "samsung,mfc-v7"; 194 compatible = "samsung,mfc-v7";
195 reg = <0x11000000 0x10000>; 195 reg = <0x11000000 0x10000>;
196 interrupts = <0 96 0>; 196 interrupts = <0 96 IRQ_TYPE_LEVEL_HIGH>;
197 clocks = <&clock CLK_MFC>; 197 clocks = <&clock CLK_MFC>;
198 clock-names = "mfc"; 198 clock-names = "mfc";
199 power-domains = <&mfc_pd>; 199 power-domains = <&mfc_pd>;
@@ -203,7 +203,7 @@
203 203
204 mmc_0: mmc@12200000 { 204 mmc_0: mmc@12200000 {
205 compatible = "samsung,exynos5420-dw-mshc-smu"; 205 compatible = "samsung,exynos5420-dw-mshc-smu";
206 interrupts = <0 75 0>; 206 interrupts = <0 75 IRQ_TYPE_LEVEL_HIGH>;
207 #address-cells = <1>; 207 #address-cells = <1>;
208 #size-cells = <0>; 208 #size-cells = <0>;
209 reg = <0x12200000 0x2000>; 209 reg = <0x12200000 0x2000>;
@@ -215,7 +215,7 @@
215 215
216 mmc_1: mmc@12210000 { 216 mmc_1: mmc@12210000 {
217 compatible = "samsung,exynos5420-dw-mshc-smu"; 217 compatible = "samsung,exynos5420-dw-mshc-smu";
218 interrupts = <0 76 0>; 218 interrupts = <0 76 IRQ_TYPE_LEVEL_HIGH>;
219 #address-cells = <1>; 219 #address-cells = <1>;
220 #size-cells = <0>; 220 #size-cells = <0>;
221 reg = <0x12210000 0x2000>; 221 reg = <0x12210000 0x2000>;
@@ -227,7 +227,7 @@
227 227
228 mmc_2: mmc@12220000 { 228 mmc_2: mmc@12220000 {
229 compatible = "samsung,exynos5420-dw-mshc"; 229 compatible = "samsung,exynos5420-dw-mshc";
230 interrupts = <0 77 0>; 230 interrupts = <0 77 IRQ_TYPE_LEVEL_HIGH>;
231 #address-cells = <1>; 231 #address-cells = <1>;
232 #size-cells = <0>; 232 #size-cells = <0>;
233 reg = <0x12220000 0x1000>; 233 reg = <0x12220000 0x1000>;
@@ -320,37 +320,37 @@
320 pinctrl_0: pinctrl@13400000 { 320 pinctrl_0: pinctrl@13400000 {
321 compatible = "samsung,exynos5420-pinctrl"; 321 compatible = "samsung,exynos5420-pinctrl";
322 reg = <0x13400000 0x1000>; 322 reg = <0x13400000 0x1000>;
323 interrupts = <0 45 0>; 323 interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>;
324 324
325 wakeup-interrupt-controller { 325 wakeup-interrupt-controller {
326 compatible = "samsung,exynos4210-wakeup-eint"; 326 compatible = "samsung,exynos4210-wakeup-eint";
327 interrupt-parent = <&gic>; 327 interrupt-parent = <&gic>;
328 interrupts = <0 32 0>; 328 interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>;
329 }; 329 };
330 }; 330 };
331 331
332 pinctrl_1: pinctrl@13410000 { 332 pinctrl_1: pinctrl@13410000 {
333 compatible = "samsung,exynos5420-pinctrl"; 333 compatible = "samsung,exynos5420-pinctrl";
334 reg = <0x13410000 0x1000>; 334 reg = <0x13410000 0x1000>;
335 interrupts = <0 78 0>; 335 interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>;
336 }; 336 };
337 337
338 pinctrl_2: pinctrl@14000000 { 338 pinctrl_2: pinctrl@14000000 {
339 compatible = "samsung,exynos5420-pinctrl"; 339 compatible = "samsung,exynos5420-pinctrl";
340 reg = <0x14000000 0x1000>; 340 reg = <0x14000000 0x1000>;
341 interrupts = <0 46 0>; 341 interrupts = <0 46 IRQ_TYPE_LEVEL_HIGH>;
342 }; 342 };
343 343
344 pinctrl_3: pinctrl@14010000 { 344 pinctrl_3: pinctrl@14010000 {
345 compatible = "samsung,exynos5420-pinctrl"; 345 compatible = "samsung,exynos5420-pinctrl";
346 reg = <0x14010000 0x1000>; 346 reg = <0x14010000 0x1000>;
347 interrupts = <0 50 0>; 347 interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>;
348 }; 348 };
349 349
350 pinctrl_4: pinctrl@03860000 { 350 pinctrl_4: pinctrl@03860000 {
351 compatible = "samsung,exynos5420-pinctrl"; 351 compatible = "samsung,exynos5420-pinctrl";
352 reg = <0x03860000 0x1000>; 352 reg = <0x03860000 0x1000>;
353 interrupts = <0 47 0>; 353 interrupts = <0 47 IRQ_TYPE_LEVEL_HIGH>;
354 }; 354 };
355 355
356 amba { 356 amba {
@@ -363,7 +363,7 @@
363 adma: adma@03880000 { 363 adma: adma@03880000 {
364 compatible = "arm,pl330", "arm,primecell"; 364 compatible = "arm,pl330", "arm,primecell";
365 reg = <0x03880000 0x1000>; 365 reg = <0x03880000 0x1000>;
366 interrupts = <0 110 0>; 366 interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>;
367 clocks = <&clock_audss EXYNOS_ADMA>; 367 clocks = <&clock_audss EXYNOS_ADMA>;
368 clock-names = "apb_pclk"; 368 clock-names = "apb_pclk";
369 #dma-cells = <1>; 369 #dma-cells = <1>;
@@ -374,7 +374,7 @@
374 pdma0: pdma@121A0000 { 374 pdma0: pdma@121A0000 {
375 compatible = "arm,pl330", "arm,primecell"; 375 compatible = "arm,pl330", "arm,primecell";
376 reg = <0x121A0000 0x1000>; 376 reg = <0x121A0000 0x1000>;
377 interrupts = <0 34 0>; 377 interrupts = <0 34 IRQ_TYPE_LEVEL_HIGH>;
378 clocks = <&clock CLK_PDMA0>; 378 clocks = <&clock CLK_PDMA0>;
379 clock-names = "apb_pclk"; 379 clock-names = "apb_pclk";
380 #dma-cells = <1>; 380 #dma-cells = <1>;
@@ -385,7 +385,7 @@
385 pdma1: pdma@121B0000 { 385 pdma1: pdma@121B0000 {
386 compatible = "arm,pl330", "arm,primecell"; 386 compatible = "arm,pl330", "arm,primecell";
387 reg = <0x121B0000 0x1000>; 387 reg = <0x121B0000 0x1000>;
388 interrupts = <0 35 0>; 388 interrupts = <0 35 IRQ_TYPE_LEVEL_HIGH>;
389 clocks = <&clock CLK_PDMA1>; 389 clocks = <&clock CLK_PDMA1>;
390 clock-names = "apb_pclk"; 390 clock-names = "apb_pclk";
391 #dma-cells = <1>; 391 #dma-cells = <1>;
@@ -396,7 +396,7 @@
396 mdma0: mdma@10800000 { 396 mdma0: mdma@10800000 {
397 compatible = "arm,pl330", "arm,primecell"; 397 compatible = "arm,pl330", "arm,primecell";
398 reg = <0x10800000 0x1000>; 398 reg = <0x10800000 0x1000>;
399 interrupts = <0 33 0>; 399 interrupts = <0 33 IRQ_TYPE_LEVEL_HIGH>;
400 clocks = <&clock CLK_MDMA0>; 400 clocks = <&clock CLK_MDMA0>;
401 clock-names = "apb_pclk"; 401 clock-names = "apb_pclk";
402 #dma-cells = <1>; 402 #dma-cells = <1>;
@@ -407,7 +407,7 @@
407 mdma1: mdma@11C10000 { 407 mdma1: mdma@11C10000 {
408 compatible = "arm,pl330", "arm,primecell"; 408 compatible = "arm,pl330", "arm,primecell";
409 reg = <0x11C10000 0x1000>; 409 reg = <0x11C10000 0x1000>;
410 interrupts = <0 124 0>; 410 interrupts = <0 124 IRQ_TYPE_LEVEL_HIGH>;
411 clocks = <&clock CLK_MDMA1>; 411 clocks = <&clock CLK_MDMA1>;
412 clock-names = "apb_pclk"; 412 clock-names = "apb_pclk";
413 #dma-cells = <1>; 413 #dma-cells = <1>;
@@ -479,7 +479,7 @@
479 spi_0: spi@12d20000 { 479 spi_0: spi@12d20000 {
480 compatible = "samsung,exynos4210-spi"; 480 compatible = "samsung,exynos4210-spi";
481 reg = <0x12d20000 0x100>; 481 reg = <0x12d20000 0x100>;
482 interrupts = <0 68 0>; 482 interrupts = <0 68 IRQ_TYPE_LEVEL_HIGH>;
483 dmas = <&pdma0 5 483 dmas = <&pdma0 5
484 &pdma0 4>; 484 &pdma0 4>;
485 dma-names = "tx", "rx"; 485 dma-names = "tx", "rx";
@@ -495,7 +495,7 @@
495 spi_1: spi@12d30000 { 495 spi_1: spi@12d30000 {
496 compatible = "samsung,exynos4210-spi"; 496 compatible = "samsung,exynos4210-spi";
497 reg = <0x12d30000 0x100>; 497 reg = <0x12d30000 0x100>;
498 interrupts = <0 69 0>; 498 interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>;
499 dmas = <&pdma1 5 499 dmas = <&pdma1 5
500 &pdma1 4>; 500 &pdma1 4>;
501 dma-names = "tx", "rx"; 501 dma-names = "tx", "rx";
@@ -511,7 +511,7 @@
511 spi_2: spi@12d40000 { 511 spi_2: spi@12d40000 {
512 compatible = "samsung,exynos4210-spi"; 512 compatible = "samsung,exynos4210-spi";
513 reg = <0x12d40000 0x100>; 513 reg = <0x12d40000 0x100>;
514 interrupts = <0 70 0>; 514 interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>;
515 dmas = <&pdma0 7 515 dmas = <&pdma0 7
516 &pdma0 6>; 516 &pdma0 6>;
517 dma-names = "tx", "rx"; 517 dma-names = "tx", "rx";
@@ -539,7 +539,7 @@
539 dsi@14500000 { 539 dsi@14500000 {
540 compatible = "samsung,exynos5410-mipi-dsi"; 540 compatible = "samsung,exynos5410-mipi-dsi";
541 reg = <0x14500000 0x10000>; 541 reg = <0x14500000 0x10000>;
542 interrupts = <0 82 0>; 542 interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
543 phys = <&mipi_phy 1>; 543 phys = <&mipi_phy 1>;
544 phy-names = "dsim"; 544 phy-names = "dsim";
545 clocks = <&clock CLK_DSIM1>, <&clock CLK_SCLK_MIPI1>; 545 clocks = <&clock CLK_DSIM1>, <&clock CLK_SCLK_MIPI1>;
@@ -552,7 +552,7 @@
552 adc: adc@12D10000 { 552 adc: adc@12D10000 {
553 compatible = "samsung,exynos-adc-v2"; 553 compatible = "samsung,exynos-adc-v2";
554 reg = <0x12D10000 0x100>; 554 reg = <0x12D10000 0x100>;
555 interrupts = <0 106 0>; 555 interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
556 clocks = <&clock CLK_TSADC>; 556 clocks = <&clock CLK_TSADC>;
557 clock-names = "adc"; 557 clock-names = "adc";
558 #io-channel-cells = <1>; 558 #io-channel-cells = <1>;
@@ -564,7 +564,7 @@
564 hsi2c_8: i2c@12E00000 { 564 hsi2c_8: i2c@12E00000 {
565 compatible = "samsung,exynos5250-hsi2c"; 565 compatible = "samsung,exynos5250-hsi2c";
566 reg = <0x12E00000 0x1000>; 566 reg = <0x12E00000 0x1000>;
567 interrupts = <0 87 0>; 567 interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>;
568 #address-cells = <1>; 568 #address-cells = <1>;
569 #size-cells = <0>; 569 #size-cells = <0>;
570 pinctrl-names = "default"; 570 pinctrl-names = "default";
@@ -577,7 +577,7 @@
577 hsi2c_9: i2c@12E10000 { 577 hsi2c_9: i2c@12E10000 {
578 compatible = "samsung,exynos5250-hsi2c"; 578 compatible = "samsung,exynos5250-hsi2c";
579 reg = <0x12E10000 0x1000>; 579 reg = <0x12E10000 0x1000>;
580 interrupts = <0 88 0>; 580 interrupts = <0 88 IRQ_TYPE_LEVEL_HIGH>;
581 #address-cells = <1>; 581 #address-cells = <1>;
582 #size-cells = <0>; 582 #size-cells = <0>;
583 pinctrl-names = "default"; 583 pinctrl-names = "default";
@@ -590,7 +590,7 @@
590 hsi2c_10: i2c@12E20000 { 590 hsi2c_10: i2c@12E20000 {
591 compatible = "samsung,exynos5250-hsi2c"; 591 compatible = "samsung,exynos5250-hsi2c";
592 reg = <0x12E20000 0x1000>; 592 reg = <0x12E20000 0x1000>;
593 interrupts = <0 203 0>; 593 interrupts = <0 203 IRQ_TYPE_LEVEL_HIGH>;
594 #address-cells = <1>; 594 #address-cells = <1>;
595 #size-cells = <0>; 595 #size-cells = <0>;
596 pinctrl-names = "default"; 596 pinctrl-names = "default";
@@ -603,7 +603,7 @@
603 hdmi: hdmi@14530000 { 603 hdmi: hdmi@14530000 {
604 compatible = "samsung,exynos5420-hdmi"; 604 compatible = "samsung,exynos5420-hdmi";
605 reg = <0x14530000 0x70000>; 605 reg = <0x14530000 0x70000>;
606 interrupts = <0 95 0>; 606 interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>;
607 clocks = <&clock CLK_HDMI>, <&clock CLK_SCLK_HDMI>, 607 clocks = <&clock CLK_HDMI>, <&clock CLK_SCLK_HDMI>,
608 <&clock CLK_DOUT_PIXEL>, <&clock CLK_SCLK_HDMIPHY>, 608 <&clock CLK_DOUT_PIXEL>, <&clock CLK_SCLK_HDMIPHY>,
609 <&clock CLK_MOUT_HDMI>; 609 <&clock CLK_MOUT_HDMI>;
@@ -622,7 +622,7 @@
622 mixer: mixer@14450000 { 622 mixer: mixer@14450000 {
623 compatible = "samsung,exynos5420-mixer"; 623 compatible = "samsung,exynos5420-mixer";
624 reg = <0x14450000 0x10000>; 624 reg = <0x14450000 0x10000>;
625 interrupts = <0 94 0>; 625 interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
626 clocks = <&clock CLK_MIXER>, <&clock CLK_HDMI>, 626 clocks = <&clock CLK_MIXER>, <&clock CLK_HDMI>,
627 <&clock CLK_SCLK_HDMI>; 627 <&clock CLK_SCLK_HDMI>;
628 clock-names = "mixer", "hdmi", "sclk_hdmi"; 628 clock-names = "mixer", "hdmi", "sclk_hdmi";
@@ -633,7 +633,7 @@
633 rotator: rotator@11C00000 { 633 rotator: rotator@11C00000 {
634 compatible = "samsung,exynos5250-rotator"; 634 compatible = "samsung,exynos5250-rotator";
635 reg = <0x11C00000 0x64>; 635 reg = <0x11C00000 0x64>;
636 interrupts = <0 84 0>; 636 interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>;
637 clocks = <&clock CLK_ROTATOR>; 637 clocks = <&clock CLK_ROTATOR>;
638 clock-names = "rotator"; 638 clock-names = "rotator";
639 iommus = <&sysmmu_rotator>; 639 iommus = <&sysmmu_rotator>;
@@ -642,7 +642,7 @@
642 gsc_0: video-scaler@13e00000 { 642 gsc_0: video-scaler@13e00000 {
643 compatible = "samsung,exynos5-gsc"; 643 compatible = "samsung,exynos5-gsc";
644 reg = <0x13e00000 0x1000>; 644 reg = <0x13e00000 0x1000>;
645 interrupts = <0 85 0>; 645 interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>;
646 clocks = <&clock CLK_GSCL0>; 646 clocks = <&clock CLK_GSCL0>;
647 clock-names = "gscl"; 647 clock-names = "gscl";
648 power-domains = <&gsc_pd>; 648 power-domains = <&gsc_pd>;
@@ -652,7 +652,7 @@
652 gsc_1: video-scaler@13e10000 { 652 gsc_1: video-scaler@13e10000 {
653 compatible = "samsung,exynos5-gsc"; 653 compatible = "samsung,exynos5-gsc";
654 reg = <0x13e10000 0x1000>; 654 reg = <0x13e10000 0x1000>;
655 interrupts = <0 86 0>; 655 interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
656 clocks = <&clock CLK_GSCL1>; 656 clocks = <&clock CLK_GSCL1>;
657 clock-names = "gscl"; 657 clock-names = "gscl";
658 power-domains = <&gsc_pd>; 658 power-domains = <&gsc_pd>;
@@ -662,7 +662,7 @@
662 jpeg_0: jpeg@11F50000 { 662 jpeg_0: jpeg@11F50000 {
663 compatible = "samsung,exynos5420-jpeg"; 663 compatible = "samsung,exynos5420-jpeg";
664 reg = <0x11F50000 0x1000>; 664 reg = <0x11F50000 0x1000>;
665 interrupts = <0 89 0>; 665 interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>;
666 clock-names = "jpeg"; 666 clock-names = "jpeg";
667 clocks = <&clock CLK_JPEG>; 667 clocks = <&clock CLK_JPEG>;
668 iommus = <&sysmmu_jpeg0>; 668 iommus = <&sysmmu_jpeg0>;
@@ -671,7 +671,7 @@
671 jpeg_1: jpeg@11F60000 { 671 jpeg_1: jpeg@11F60000 {
672 compatible = "samsung,exynos5420-jpeg"; 672 compatible = "samsung,exynos5420-jpeg";
673 reg = <0x11F60000 0x1000>; 673 reg = <0x11F60000 0x1000>;
674 interrupts = <0 168 0>; 674 interrupts = <0 168 IRQ_TYPE_LEVEL_HIGH>;
675 clock-names = "jpeg"; 675 clock-names = "jpeg";
676 clocks = <&clock CLK_JPEG2>; 676 clocks = <&clock CLK_JPEG2>;
677 iommus = <&sysmmu_jpeg1>; 677 iommus = <&sysmmu_jpeg1>;
@@ -691,7 +691,7 @@
691 tmu_cpu0: tmu@10060000 { 691 tmu_cpu0: tmu@10060000 {
692 compatible = "samsung,exynos5420-tmu"; 692 compatible = "samsung,exynos5420-tmu";
693 reg = <0x10060000 0x100>; 693 reg = <0x10060000 0x100>;
694 interrupts = <0 65 0>; 694 interrupts = <0 65 IRQ_TYPE_LEVEL_HIGH>;
695 clocks = <&clock CLK_TMU>; 695 clocks = <&clock CLK_TMU>;
696 clock-names = "tmu_apbif"; 696 clock-names = "tmu_apbif";
697 #include "exynos4412-tmu-sensor-conf.dtsi" 697 #include "exynos4412-tmu-sensor-conf.dtsi"
@@ -700,7 +700,7 @@
700 tmu_cpu1: tmu@10064000 { 700 tmu_cpu1: tmu@10064000 {
701 compatible = "samsung,exynos5420-tmu"; 701 compatible = "samsung,exynos5420-tmu";
702 reg = <0x10064000 0x100>; 702 reg = <0x10064000 0x100>;
703 interrupts = <0 183 0>; 703 interrupts = <0 183 IRQ_TYPE_LEVEL_HIGH>;
704 clocks = <&clock CLK_TMU>; 704 clocks = <&clock CLK_TMU>;
705 clock-names = "tmu_apbif"; 705 clock-names = "tmu_apbif";
706 #include "exynos4412-tmu-sensor-conf.dtsi" 706 #include "exynos4412-tmu-sensor-conf.dtsi"
@@ -709,7 +709,7 @@
709 tmu_cpu2: tmu@10068000 { 709 tmu_cpu2: tmu@10068000 {
710 compatible = "samsung,exynos5420-tmu-ext-triminfo"; 710 compatible = "samsung,exynos5420-tmu-ext-triminfo";
711 reg = <0x10068000 0x100>, <0x1006c000 0x4>; 711 reg = <0x10068000 0x100>, <0x1006c000 0x4>;
712 interrupts = <0 184 0>; 712 interrupts = <0 184 IRQ_TYPE_LEVEL_HIGH>;
713 clocks = <&clock CLK_TMU>, <&clock CLK_TMU>; 713 clocks = <&clock CLK_TMU>, <&clock CLK_TMU>;
714 clock-names = "tmu_apbif", "tmu_triminfo_apbif"; 714 clock-names = "tmu_apbif", "tmu_triminfo_apbif";
715 #include "exynos4412-tmu-sensor-conf.dtsi" 715 #include "exynos4412-tmu-sensor-conf.dtsi"
@@ -718,7 +718,7 @@
718 tmu_cpu3: tmu@1006c000 { 718 tmu_cpu3: tmu@1006c000 {
719 compatible = "samsung,exynos5420-tmu-ext-triminfo"; 719 compatible = "samsung,exynos5420-tmu-ext-triminfo";
720 reg = <0x1006c000 0x100>, <0x100a0000 0x4>; 720 reg = <0x1006c000 0x100>, <0x100a0000 0x4>;
721 interrupts = <0 185 0>; 721 interrupts = <0 185 IRQ_TYPE_LEVEL_HIGH>;
722 clocks = <&clock CLK_TMU>, <&clock CLK_TMU_GPU>; 722 clocks = <&clock CLK_TMU>, <&clock CLK_TMU_GPU>;
723 clock-names = "tmu_apbif", "tmu_triminfo_apbif"; 723 clock-names = "tmu_apbif", "tmu_triminfo_apbif";
724 #include "exynos4412-tmu-sensor-conf.dtsi" 724 #include "exynos4412-tmu-sensor-conf.dtsi"
@@ -727,7 +727,7 @@
727 tmu_gpu: tmu@100a0000 { 727 tmu_gpu: tmu@100a0000 {
728 compatible = "samsung,exynos5420-tmu-ext-triminfo"; 728 compatible = "samsung,exynos5420-tmu-ext-triminfo";
729 reg = <0x100a0000 0x100>, <0x10068000 0x4>; 729 reg = <0x100a0000 0x100>, <0x10068000 0x4>;
730 interrupts = <0 215 0>; 730 interrupts = <0 215 IRQ_TYPE_LEVEL_HIGH>;
731 clocks = <&clock CLK_TMU_GPU>, <&clock CLK_TMU>; 731 clocks = <&clock CLK_TMU_GPU>, <&clock CLK_TMU>;
732 clock-names = "tmu_apbif", "tmu_triminfo_apbif"; 732 clock-names = "tmu_apbif", "tmu_triminfo_apbif";
733 #include "exynos4412-tmu-sensor-conf.dtsi" 733 #include "exynos4412-tmu-sensor-conf.dtsi"
@@ -799,7 +799,7 @@
799 sysmmu_scaler1r: sysmmu@0x12890000 { 799 sysmmu_scaler1r: sysmmu@0x12890000 {
800 compatible = "samsung,exynos-sysmmu"; 800 compatible = "samsung,exynos-sysmmu";
801 reg = <0x12890000 0x1000>; 801 reg = <0x12890000 0x1000>;
802 interrupts = <0 186 0>; 802 interrupts = <0 186 IRQ_TYPE_LEVEL_HIGH>;
803 clock-names = "sysmmu", "master"; 803 clock-names = "sysmmu", "master";
804 clocks = <&clock CLK_SMMU_MSCL1>, <&clock CLK_MSCL1>; 804 clocks = <&clock CLK_SMMU_MSCL1>, <&clock CLK_MSCL1>;
805 #iommu-cells = <0>; 805 #iommu-cells = <0>;
@@ -808,7 +808,7 @@
808 sysmmu_scaler2r: sysmmu@0x128A0000 { 808 sysmmu_scaler2r: sysmmu@0x128A0000 {
809 compatible = "samsung,exynos-sysmmu"; 809 compatible = "samsung,exynos-sysmmu";
810 reg = <0x128A0000 0x1000>; 810 reg = <0x128A0000 0x1000>;
811 interrupts = <0 188 0>; 811 interrupts = <0 188 IRQ_TYPE_LEVEL_HIGH>;
812 clock-names = "sysmmu", "master"; 812 clock-names = "sysmmu", "master";
813 clocks = <&clock CLK_SMMU_MSCL2>, <&clock CLK_MSCL2>; 813 clocks = <&clock CLK_SMMU_MSCL2>, <&clock CLK_MSCL2>;
814 #iommu-cells = <0>; 814 #iommu-cells = <0>;
@@ -867,7 +867,7 @@
867 sysmmu_jpeg1: sysmmu@0x11F20000 { 867 sysmmu_jpeg1: sysmmu@0x11F20000 {
868 compatible = "samsung,exynos-sysmmu"; 868 compatible = "samsung,exynos-sysmmu";
869 reg = <0x11F20000 0x1000>; 869 reg = <0x11F20000 0x1000>;
870 interrupts = <0 169 0>; 870 interrupts = <0 169 IRQ_TYPE_LEVEL_HIGH>;
871 clock-names = "sysmmu", "master"; 871 clock-names = "sysmmu", "master";
872 clocks = <&clock CLK_SMMU_JPEG2>, <&clock CLK_JPEG2>; 872 clocks = <&clock CLK_SMMU_JPEG2>, <&clock CLK_JPEG2>;
873 #iommu-cells = <0>; 873 #iommu-cells = <0>;
@@ -1445,7 +1445,7 @@
1445}; 1445};
1446 1446
1447&usbdrd_dwc3_1 { 1447&usbdrd_dwc3_1 {
1448 interrupts = <GIC_SPI 73 0>; 1448 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
1449}; 1449};
1450 1450
1451&usbdrd_phy1 { 1451&usbdrd_phy1 {
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
index 246d298557f5..05b9afdd6757 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
@@ -147,6 +147,11 @@
147 }; 147 };
148}; 148};
149 149
150&adc {
151 vdd-supply = <&ldo4_reg>;
152 status = "okay";
153};
154
150&bus_wcore { 155&bus_wcore {
151 devfreq-events = <&nocp_mem0_0>, <&nocp_mem0_1>, 156 devfreq-events = <&nocp_mem0_0>, <&nocp_mem0_1>,
152 <&nocp_mem1_0>, <&nocp_mem1_1>; 157 <&nocp_mem1_0>, <&nocp_mem1_1>;
@@ -293,6 +298,12 @@
293 regulator-max-microvolt = <1800000>; 298 regulator-max-microvolt = <1800000>;
294 }; 299 };
295 300
301 ldo4_reg: LDO4 {
302 regulator-name = "vdd_adc";
303 regulator-min-microvolt = <1800000>;
304 regulator-max-microvolt = <1800000>;
305 };
306
296 ldo5_reg: LDO5 { 307 ldo5_reg: LDO5 {
297 regulator-name = "vdd_ldo5"; 308 regulator-name = "vdd_ldo5";
298 regulator-min-microvolt = <1800000>; 309 regulator-min-microvolt = <1800000>;
@@ -499,7 +510,6 @@
499&mmc_0 { 510&mmc_0 {
500 status = "okay"; 511 status = "okay";
501 mmc-pwrseq = <&emmc_pwrseq>; 512 mmc-pwrseq = <&emmc_pwrseq>;
502 cd-gpios = <&gpc0 2 GPIO_ACTIVE_LOW>;
503 card-detect-delay = <200>; 513 card-detect-delay = <200>;
504 samsung,dw-mshc-ciu-div = <3>; 514 samsung,dw-mshc-ciu-div = <3>;
505 samsung,dw-mshc-sdr-timing = <0 4>; 515 samsung,dw-mshc-sdr-timing = <0 4>;
diff --git a/arch/arm/boot/dts/exynos5440.dtsi b/arch/arm/boot/dts/exynos5440.dtsi
index e6bffd13cedd..2a2e570bbee6 100644
--- a/arch/arm/boot/dts/exynos5440.dtsi
+++ b/arch/arm/boot/dts/exynos5440.dtsi
@@ -10,6 +10,8 @@
10*/ 10*/
11 11
12#include <dt-bindings/clock/exynos5440.h> 12#include <dt-bindings/clock/exynos5440.h>
13#include <dt-bindings/interrupt-controller/arm-gic.h>
14#include <dt-bindings/interrupt-controller/irq.h>
13 15
14/ { 16/ {
15 compatible = "samsung,exynos5440", "samsung,exynos5"; 17 compatible = "samsung,exynos5440", "samsung,exynos5";
@@ -41,7 +43,8 @@
41 <0x2E2000 0x1000>, 43 <0x2E2000 0x1000>,
42 <0x2E4000 0x2000>, 44 <0x2E4000 0x2000>,
43 <0x2E6000 0x2000>; 45 <0x2E6000 0x2000>;
44 interrupts = <1 9 0xf04>; 46 interrupts = <GIC_PPI 9
47 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
45 }; 48 };
46 49
47 cpus { 50 cpus {
@@ -72,26 +75,26 @@
72 75
73 arm-pmu { 76 arm-pmu {
74 compatible = "arm,cortex-a15-pmu", "arm,cortex-a9-pmu"; 77 compatible = "arm,cortex-a15-pmu", "arm,cortex-a9-pmu";
75 interrupts = <0 52 4>, 78 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
76 <0 53 4>, 79 <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
77 <0 54 4>, 80 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
78 <0 55 4>; 81 <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
79 }; 82 };
80 83
81 timer { 84 timer {
82 compatible = "arm,cortex-a15-timer", 85 compatible = "arm,cortex-a15-timer",
83 "arm,armv7-timer"; 86 "arm,armv7-timer";
84 interrupts = <1 13 0xf08>, 87 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
85 <1 14 0xf08>, 88 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
86 <1 11 0xf08>, 89 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
87 <1 10 0xf08>; 90 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
88 clock-frequency = <50000000>; 91 clock-frequency = <50000000>;
89 }; 92 };
90 93
91 cpufreq@160000 { 94 cpufreq@160000 {
92 compatible = "samsung,exynos5440-cpufreq"; 95 compatible = "samsung,exynos5440-cpufreq";
93 reg = <0x160000 0x1000>; 96 reg = <0x160000 0x1000>;
94 interrupts = <0 57 0>; 97 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
95 operating-points = < 98 operating-points = <
96 /* KHz uV */ 99 /* KHz uV */
97 1500000 1100000 100 1500000 1100000
@@ -108,7 +111,7 @@
108 serial_0: serial@B0000 { 111 serial_0: serial@B0000 {
109 compatible = "samsung,exynos4210-uart"; 112 compatible = "samsung,exynos4210-uart";
110 reg = <0xB0000 0x1000>; 113 reg = <0xB0000 0x1000>;
111 interrupts = <0 2 0>; 114 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
112 clocks = <&clock CLK_B_125>, <&clock CLK_B_125>; 115 clocks = <&clock CLK_B_125>, <&clock CLK_B_125>;
113 clock-names = "uart", "clk_uart_baud0"; 116 clock-names = "uart", "clk_uart_baud0";
114 }; 117 };
@@ -116,7 +119,7 @@
116 serial_1: serial@C0000 { 119 serial_1: serial@C0000 {
117 compatible = "samsung,exynos4210-uart"; 120 compatible = "samsung,exynos4210-uart";
118 reg = <0xC0000 0x1000>; 121 reg = <0xC0000 0x1000>;
119 interrupts = <0 3 0>; 122 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
120 clocks = <&clock CLK_B_125>, <&clock CLK_B_125>; 123 clocks = <&clock CLK_B_125>, <&clock CLK_B_125>;
121 clock-names = "uart", "clk_uart_baud0"; 124 clock-names = "uart", "clk_uart_baud0";
122 }; 125 };
@@ -124,7 +127,7 @@
124 spi_0: spi@D0000 { 127 spi_0: spi@D0000 {
125 compatible = "samsung,exynos5440-spi"; 128 compatible = "samsung,exynos5440-spi";
126 reg = <0xD0000 0x100>; 129 reg = <0xD0000 0x100>;
127 interrupts = <0 4 0>; 130 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
128 #address-cells = <1>; 131 #address-cells = <1>;
129 #size-cells = <0>; 132 #size-cells = <0>;
130 samsung,spi-src-clk = <0>; 133 samsung,spi-src-clk = <0>;
@@ -136,8 +139,14 @@
136 pin_ctrl: pinctrl@E0000 { 139 pin_ctrl: pinctrl@E0000 {
137 compatible = "samsung,exynos5440-pinctrl"; 140 compatible = "samsung,exynos5440-pinctrl";
138 reg = <0xE0000 0x1000>; 141 reg = <0xE0000 0x1000>;
139 interrupts = <0 37 0>, <0 38 0>, <0 39 0>, <0 40 0>, 142 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
140 <0 41 0>, <0 42 0>, <0 43 0>, <0 44 0>; 143 <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
144 <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
145 <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
146 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
147 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
148 <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
149 <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
141 interrupt-controller; 150 interrupt-controller;
142 #interrupt-cells = <2>; 151 #interrupt-cells = <2>;
143 #gpio-cells = <2>; 152 #gpio-cells = <2>;
@@ -162,7 +171,7 @@
162 i2c@F0000 { 171 i2c@F0000 {
163 compatible = "samsung,exynos5440-i2c"; 172 compatible = "samsung,exynos5440-i2c";
164 reg = <0xF0000 0x1000>; 173 reg = <0xF0000 0x1000>;
165 interrupts = <0 5 0>; 174 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
166 #address-cells = <1>; 175 #address-cells = <1>;
167 #size-cells = <0>; 176 #size-cells = <0>;
168 clocks = <&clock CLK_B_125>; 177 clocks = <&clock CLK_B_125>;
@@ -172,7 +181,7 @@
172 i2c@100000 { 181 i2c@100000 {
173 compatible = "samsung,exynos5440-i2c"; 182 compatible = "samsung,exynos5440-i2c";
174 reg = <0x100000 0x1000>; 183 reg = <0x100000 0x1000>;
175 interrupts = <0 6 0>; 184 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
176 #address-cells = <1>; 185 #address-cells = <1>;
177 #size-cells = <0>; 186 #size-cells = <0>;
178 clocks = <&clock CLK_B_125>; 187 clocks = <&clock CLK_B_125>;
@@ -182,16 +191,16 @@
182 watchdog@110000 { 191 watchdog@110000 {
183 compatible = "samsung,s3c2410-wdt"; 192 compatible = "samsung,s3c2410-wdt";
184 reg = <0x110000 0x1000>; 193 reg = <0x110000 0x1000>;
185 interrupts = <0 1 0>; 194 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
186 clocks = <&clock CLK_B_125>; 195 clocks = <&clock CLK_B_125>;
187 clock-names = "watchdog"; 196 clock-names = "watchdog";
188 }; 197 };
189 198
190 gmac: ethernet@00230000 { 199 gmac: ethernet@00230000 {
191 compatible = "snps,dwmac-3.70a"; 200 compatible = "snps,dwmac-3.70a", "snps,dwmac";
192 reg = <0x00230000 0x8000>; 201 reg = <0x00230000 0x8000>;
193 interrupt-parent = <&gic>; 202 interrupt-parent = <&gic>;
194 interrupts = <0 31 4>; 203 interrupts = <GIC_SPI 31 4>;
195 interrupt-names = "macirq"; 204 interrupt-names = "macirq";
196 phy-mode = "sgmii"; 205 phy-mode = "sgmii";
197 clocks = <&clock CLK_GMAC0>; 206 clocks = <&clock CLK_GMAC0>;
@@ -209,7 +218,8 @@
209 rtc@130000 { 218 rtc@130000 {
210 compatible = "samsung,s3c6410-rtc"; 219 compatible = "samsung,s3c6410-rtc";
211 reg = <0x130000 0x1000>; 220 reg = <0x130000 0x1000>;
212 interrupts = <0 17 0>, <0 16 0>; 221 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
222 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
213 clocks = <&clock CLK_B_125>; 223 clocks = <&clock CLK_B_125>;
214 clock-names = "rtc"; 224 clock-names = "rtc";
215 }; 225 };
@@ -217,7 +227,7 @@
217 tmuctrl_0: tmuctrl@160118 { 227 tmuctrl_0: tmuctrl@160118 {
218 compatible = "samsung,exynos5440-tmu"; 228 compatible = "samsung,exynos5440-tmu";
219 reg = <0x160118 0x230>, <0x160368 0x10>; 229 reg = <0x160118 0x230>, <0x160368 0x10>;
220 interrupts = <0 58 0>; 230 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
221 clocks = <&clock CLK_B_125>; 231 clocks = <&clock CLK_B_125>;
222 clock-names = "tmu_apbif"; 232 clock-names = "tmu_apbif";
223 #include "exynos5440-tmu-sensor-conf.dtsi" 233 #include "exynos5440-tmu-sensor-conf.dtsi"
@@ -226,7 +236,7 @@
226 tmuctrl_1: tmuctrl@16011C { 236 tmuctrl_1: tmuctrl@16011C {
227 compatible = "samsung,exynos5440-tmu"; 237 compatible = "samsung,exynos5440-tmu";
228 reg = <0x16011C 0x230>, <0x160368 0x10>; 238 reg = <0x16011C 0x230>, <0x160368 0x10>;
229 interrupts = <0 58 0>; 239 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
230 clocks = <&clock CLK_B_125>; 240 clocks = <&clock CLK_B_125>;
231 clock-names = "tmu_apbif"; 241 clock-names = "tmu_apbif";
232 #include "exynos5440-tmu-sensor-conf.dtsi" 242 #include "exynos5440-tmu-sensor-conf.dtsi"
@@ -235,7 +245,7 @@
235 tmuctrl_2: tmuctrl@160120 { 245 tmuctrl_2: tmuctrl@160120 {
236 compatible = "samsung,exynos5440-tmu"; 246 compatible = "samsung,exynos5440-tmu";
237 reg = <0x160120 0x230>, <0x160368 0x10>; 247 reg = <0x160120 0x230>, <0x160368 0x10>;
238 interrupts = <0 58 0>; 248 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
239 clocks = <&clock CLK_B_125>; 249 clocks = <&clock CLK_B_125>;
240 clock-names = "tmu_apbif"; 250 clock-names = "tmu_apbif";
241 #include "exynos5440-tmu-sensor-conf.dtsi" 251 #include "exynos5440-tmu-sensor-conf.dtsi"
@@ -259,7 +269,7 @@
259 sata@210000 { 269 sata@210000 {
260 compatible = "snps,exynos5440-ahci"; 270 compatible = "snps,exynos5440-ahci";
261 reg = <0x210000 0x10000>; 271 reg = <0x210000 0x10000>;
262 interrupts = <0 30 0>; 272 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
263 clocks = <&clock CLK_SATA>; 273 clocks = <&clock CLK_SATA>;
264 clock-names = "sata"; 274 clock-names = "sata";
265 }; 275 };
@@ -267,7 +277,7 @@
267 ohci@220000 { 277 ohci@220000 {
268 compatible = "samsung,exynos5440-ohci"; 278 compatible = "samsung,exynos5440-ohci";
269 reg = <0x220000 0x1000>; 279 reg = <0x220000 0x1000>;
270 interrupts = <0 29 0>; 280 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
271 clocks = <&clock CLK_USB>; 281 clocks = <&clock CLK_USB>;
272 clock-names = "usbhost"; 282 clock-names = "usbhost";
273 }; 283 };
@@ -275,7 +285,7 @@
275 ehci@221000 { 285 ehci@221000 {
276 compatible = "samsung,exynos5440-ehci"; 286 compatible = "samsung,exynos5440-ehci";
277 reg = <0x221000 0x1000>; 287 reg = <0x221000 0x1000>;
278 interrupts = <0 29 0>; 288 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
279 clocks = <&clock CLK_USB>; 289 clocks = <&clock CLK_USB>;
280 clock-names = "usbhost"; 290 clock-names = "usbhost";
281 }; 291 };
@@ -285,7 +295,9 @@
285 reg = <0x290000 0x1000 295 reg = <0x290000 0x1000
286 0x270000 0x1000 296 0x270000 0x1000
287 0x271000 0x40>; 297 0x271000 0x40>;
288 interrupts = <0 20 0>, <0 21 0>, <0 22 0>; 298 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
299 <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
300 <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
289 clocks = <&clock CLK_PR0_250_O>, <&clock CLK_PB0_250_O>; 301 clocks = <&clock CLK_PR0_250_O>, <&clock CLK_PB0_250_O>;
290 clock-names = "pcie", "pcie_bus"; 302 clock-names = "pcie", "pcie_bus";
291 #address-cells = <3>; 303 #address-cells = <3>;
@@ -306,7 +318,9 @@
306 reg = <0x2a0000 0x1000 318 reg = <0x2a0000 0x1000
307 0x272000 0x1000 319 0x272000 0x1000
308 0x271040 0x40>; 320 0x271040 0x40>;
309 interrupts = <0 23 0>, <0 24 0>, <0 25 0>; 321 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
322 <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
323 <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
310 clocks = <&clock CLK_PR1_250_O>, <&clock CLK_PB0_250_O>; 324 clocks = <&clock CLK_PR1_250_O>, <&clock CLK_PB0_250_O>;
311 clock-names = "pcie", "pcie_bus"; 325 clock-names = "pcie", "pcie_bus";
312 #address-cells = <3>; 326 #address-cells = <3>;
diff --git a/arch/arm/boot/dts/exynos54xx.dtsi b/arch/arm/boot/dts/exynos54xx.dtsi
index 9d31cdce1959..0389e8a10d0b 100644
--- a/arch/arm/boot/dts/exynos54xx.dtsi
+++ b/arch/arm/boot/dts/exynos54xx.dtsi
@@ -62,34 +62,34 @@
62 <1 &combiner 23 4>, 62 <1 &combiner 23 4>,
63 <2 &combiner 25 2>, 63 <2 &combiner 25 2>,
64 <3 &combiner 25 3>, 64 <3 &combiner 25 3>,
65 <4 &gic 0 120 0>, 65 <4 &gic 0 120 IRQ_TYPE_LEVEL_HIGH>,
66 <5 &gic 0 121 0>, 66 <5 &gic 0 121 IRQ_TYPE_LEVEL_HIGH>,
67 <6 &gic 0 122 0>, 67 <6 &gic 0 122 IRQ_TYPE_LEVEL_HIGH>,
68 <7 &gic 0 123 0>, 68 <7 &gic 0 123 IRQ_TYPE_LEVEL_HIGH>,
69 <8 &gic 0 128 0>, 69 <8 &gic 0 128 IRQ_TYPE_LEVEL_HIGH>,
70 <9 &gic 0 129 0>, 70 <9 &gic 0 129 IRQ_TYPE_LEVEL_HIGH>,
71 <10 &gic 0 130 0>, 71 <10 &gic 0 130 IRQ_TYPE_LEVEL_HIGH>,
72 <11 &gic 0 131 0>; 72 <11 &gic 0 131 IRQ_TYPE_LEVEL_HIGH>;
73 }; 73 };
74 }; 74 };
75 75
76 watchdog: watchdog@101d0000 { 76 watchdog: watchdog@101d0000 {
77 compatible = "samsung,exynos5420-wdt"; 77 compatible = "samsung,exynos5420-wdt";
78 reg = <0x101d0000 0x100>; 78 reg = <0x101d0000 0x100>;
79 interrupts = <0 42 0>; 79 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
80 }; 80 };
81 81
82 sss: sss@10830000 { 82 sss: sss@10830000 {
83 compatible = "samsung,exynos4210-secss"; 83 compatible = "samsung,exynos4210-secss";
84 reg = <0x10830000 0x300>; 84 reg = <0x10830000 0x300>;
85 interrupts = <0 112 0>; 85 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
86 }; 86 };
87 87
88 /* i2c_0-3 are defined in exynos5.dtsi */ 88 /* i2c_0-3 are defined in exynos5.dtsi */
89 hsi2c_4: i2c@12ca0000 { 89 hsi2c_4: i2c@12ca0000 {
90 compatible = "samsung,exynos5250-hsi2c"; 90 compatible = "samsung,exynos5250-hsi2c";
91 reg = <0x12ca0000 0x1000>; 91 reg = <0x12ca0000 0x1000>;
92 interrupts = <0 60 0>; 92 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
93 #address-cells = <1>; 93 #address-cells = <1>;
94 #size-cells = <0>; 94 #size-cells = <0>;
95 status = "disabled"; 95 status = "disabled";
@@ -98,7 +98,7 @@
98 hsi2c_5: i2c@12cb0000 { 98 hsi2c_5: i2c@12cb0000 {
99 compatible = "samsung,exynos5250-hsi2c"; 99 compatible = "samsung,exynos5250-hsi2c";
100 reg = <0x12cb0000 0x1000>; 100 reg = <0x12cb0000 0x1000>;
101 interrupts = <0 61 0>; 101 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
102 #address-cells = <1>; 102 #address-cells = <1>;
103 #size-cells = <0>; 103 #size-cells = <0>;
104 status = "disabled"; 104 status = "disabled";
@@ -107,7 +107,7 @@
107 hsi2c_6: i2c@12cc0000 { 107 hsi2c_6: i2c@12cc0000 {
108 compatible = "samsung,exynos5250-hsi2c"; 108 compatible = "samsung,exynos5250-hsi2c";
109 reg = <0x12cc0000 0x1000>; 109 reg = <0x12cc0000 0x1000>;
110 interrupts = <0 62 0>; 110 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
111 #address-cells = <1>; 111 #address-cells = <1>;
112 #size-cells = <0>; 112 #size-cells = <0>;
113 status = "disabled"; 113 status = "disabled";
@@ -116,7 +116,7 @@
116 hsi2c_7: i2c@12cd0000 { 116 hsi2c_7: i2c@12cd0000 {
117 compatible = "samsung,exynos5250-hsi2c"; 117 compatible = "samsung,exynos5250-hsi2c";
118 reg = <0x12cd0000 0x1000>; 118 reg = <0x12cd0000 0x1000>;
119 interrupts = <0 63 0>; 119 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
120 #address-cells = <1>; 120 #address-cells = <1>;
121 #size-cells = <0>; 121 #size-cells = <0>;
122 status = "disabled"; 122 status = "disabled";
@@ -131,7 +131,7 @@
131 usbdrd_dwc3_0: dwc3@12000000 { 131 usbdrd_dwc3_0: dwc3@12000000 {
132 compatible = "snps,dwc3"; 132 compatible = "snps,dwc3";
133 reg = <0x12000000 0x10000>; 133 reg = <0x12000000 0x10000>;
134 interrupts = <0 72 0>; 134 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
135 phys = <&usbdrd_phy0 0>, <&usbdrd_phy0 1>; 135 phys = <&usbdrd_phy0 0>, <&usbdrd_phy0 1>;
136 phy-names = "usb2-phy", "usb3-phy"; 136 phy-names = "usb2-phy", "usb3-phy";
137 }; 137 };
@@ -166,7 +166,7 @@
166 usbhost2: usb@12110000 { 166 usbhost2: usb@12110000 {
167 compatible = "samsung,exynos4210-ehci"; 167 compatible = "samsung,exynos4210-ehci";
168 reg = <0x12110000 0x100>; 168 reg = <0x12110000 0x100>;
169 interrupts = <0 71 0>; 169 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
170 170
171 #address-cells = <1>; 171 #address-cells = <1>;
172 #size-cells = <0>; 172 #size-cells = <0>;
@@ -179,7 +179,7 @@
179 usbhost1: usb@12120000 { 179 usbhost1: usb@12120000 {
180 compatible = "samsung,exynos4210-ohci"; 180 compatible = "samsung,exynos4210-ohci";
181 reg = <0x12120000 0x100>; 181 reg = <0x12120000 0x100>;
182 interrupts = <0 71 0>; 182 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
183 183
184 #address-cells = <1>; 184 #address-cells = <1>;
185 #size-cells = <0>; 185 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts
index 01f466816fea..f9ff7f07ae0c 100644
--- a/arch/arm/boot/dts/exynos5800-peach-pi.dts
+++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
@@ -665,6 +665,7 @@
665 status = "okay"; 665 status = "okay";
666}; 666};
667 667
668/* eMMC flash */
668&mmc_0 { 669&mmc_0 {
669 status = "okay"; 670 status = "okay";
670 num-slots = <1>; 671 num-slots = <1>;
@@ -683,6 +684,7 @@
683 bus-width = <8>; 684 bus-width = <8>;
684}; 685};
685 686
687/* WiFi SDIO module */
686&mmc_1 { 688&mmc_1 {
687 status = "okay"; 689 status = "okay";
688 num-slots = <1>; 690 num-slots = <1>;
@@ -702,6 +704,7 @@
702 vqmmc-supply = <&buck10_reg>; 704 vqmmc-supply = <&buck10_reg>;
703}; 705};
704 706
707/* uSD card */
705&mmc_2 { 708&mmc_2 {
706 status = "okay"; 709 status = "okay";
707 num-slots = <1>; 710 num-slots = <1>;
diff --git a/arch/arm/boot/dts/hi3620.dtsi b/arch/arm/boot/dts/hi3620.dtsi
index c85d07e6db61..541d70094544 100644
--- a/arch/arm/boot/dts/hi3620.dtsi
+++ b/arch/arm/boot/dts/hi3620.dtsi
@@ -11,10 +11,12 @@
11 * publishhed by the Free Software Foundation. 11 * publishhed by the Free Software Foundation.
12 */ 12 */
13 13
14#include "skeleton.dtsi"
15#include <dt-bindings/clock/hi3620-clock.h> 14#include <dt-bindings/clock/hi3620-clock.h>
16 15
17/ { 16/ {
17 #address-cells = <1>;
18 #size-cells = <1>;
19
18 aliases { 20 aliases {
19 serial0 = &uart0; 21 serial0 = &uart0;
20 serial1 = &uart1; 22 serial1 = &uart1;
@@ -537,6 +539,7 @@
537 reg = <0x803000 0x188>; 539 reg = <0x803000 0x188>;
538 #address-cells = <1>; 540 #address-cells = <1>;
539 #size-cells = <1>; 541 #size-cells = <1>;
542 #pinctrl-cells = <1>;
540 #gpio-range-cells = <3>; 543 #gpio-range-cells = <3>;
541 ranges; 544 ranges;
542 545
@@ -558,6 +561,7 @@
558 reg = <0x803800 0x2dc>; 561 reg = <0x803800 0x2dc>;
559 #address-cells = <1>; 562 #address-cells = <1>;
560 #size-cells = <1>; 563 #size-cells = <1>;
564 #pinctrl-cells = <1>;
561 ranges; 565 ranges;
562 566
563 pinctrl-single,register-width = <32>; 567 pinctrl-single,register-width = <32>;
diff --git a/arch/arm/boot/dts/hip01.dtsi b/arch/arm/boot/dts/hip01.dtsi
index 4e9562f806a2..9d5fd5cfefa6 100644
--- a/arch/arm/boot/dts/hip01.dtsi
+++ b/arch/arm/boot/dts/hip01.dtsi
@@ -11,8 +11,6 @@
11 * published by the Free Software Foundation. 11 * published by the Free Software Foundation.
12 */ 12 */
13 13
14#include "skeleton.dtsi"
15
16/ { 14/ {
17 interrupt-parent = <&gic>; 15 interrupt-parent = <&gic>;
18 #address-cells = <1>; 16 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/hisi-x5hd2.dtsi b/arch/arm/boot/dts/hisi-x5hd2.dtsi
index 0da76c5ff6d7..c02e092fad8b 100644
--- a/arch/arm/boot/dts/hisi-x5hd2.dtsi
+++ b/arch/arm/boot/dts/hisi-x5hd2.dtsi
@@ -7,10 +7,12 @@
7 * publishhed by the Free Software Foundation. 7 * publishhed by the Free Software Foundation.
8 */ 8 */
9 9
10#include "skeleton.dtsi"
11#include <dt-bindings/clock/hix5hd2-clock.h> 10#include <dt-bindings/clock/hix5hd2-clock.h>
12 11
13/ { 12/ {
13 #address-cells = <1>;
14 #size-cells = <1>;
15
14 aliases { 16 aliases {
15 serial0 = &uart0; 17 serial0 = &uart0;
16 }; 18 };
diff --git a/arch/arm/boot/dts/imx1.dtsi b/arch/arm/boot/dts/imx1.dtsi
index 22f5d1db5b31..b792eee3899b 100644
--- a/arch/arm/boot/dts/imx1.dtsi
+++ b/arch/arm/boot/dts/imx1.dtsi
@@ -9,7 +9,6 @@
9 * http://www.gnu.org/copyleft/gpl.html 9 * http://www.gnu.org/copyleft/gpl.html
10 */ 10 */
11 11
12#include "skeleton.dtsi"
13#include "imx1-pinfunc.h" 12#include "imx1-pinfunc.h"
14 13
15#include <dt-bindings/clock/imx1-clock.h> 14#include <dt-bindings/clock/imx1-clock.h>
@@ -17,6 +16,9 @@
17#include <dt-bindings/interrupt-controller/irq.h> 16#include <dt-bindings/interrupt-controller/irq.h>
18 17
19/ { 18/ {
19 #address-cells = <1>;
20 #size-cells = <1>;
21
20 aliases { 22 aliases {
21 gpio0 = &gpio1; 23 gpio0 = &gpio1;
22 gpio1 = &gpio2; 24 gpio1 = &gpio2;
diff --git a/arch/arm/boot/dts/imx23.dtsi b/arch/arm/boot/dts/imx23.dtsi
index 440ee9a4a158..ac2a9da62b6c 100644
--- a/arch/arm/boot/dts/imx23.dtsi
+++ b/arch/arm/boot/dts/imx23.dtsi
@@ -9,10 +9,12 @@
9 * http://www.gnu.org/copyleft/gpl.html 9 * http://www.gnu.org/copyleft/gpl.html
10 */ 10 */
11 11
12#include "skeleton.dtsi"
13#include "imx23-pinfunc.h" 12#include "imx23-pinfunc.h"
14 13
15/ { 14/ {
15 #address-cells = <1>;
16 #size-cells = <1>;
17
16 interrupt-parent = <&icoll>; 18 interrupt-parent = <&icoll>;
17 19
18 aliases { 20 aliases {
@@ -464,7 +466,7 @@
464 reg = <0x80038000 0x2000>; 466 reg = <0x80038000 0x2000>;
465 status = "disabled"; 467 status = "disabled";
466 }; 468 };
467 }; 469 };
468 470
469 apbx@80040000 { 471 apbx@80040000 {
470 compatible = "simple-bus"; 472 compatible = "simple-bus";
diff --git a/arch/arm/boot/dts/imx25.dtsi b/arch/arm/boot/dts/imx25.dtsi
index af6af8741fe5..831d09a28155 100644
--- a/arch/arm/boot/dts/imx25.dtsi
+++ b/arch/arm/boot/dts/imx25.dtsi
@@ -9,10 +9,12 @@
9 * http://www.gnu.org/copyleft/gpl.html 9 * http://www.gnu.org/copyleft/gpl.html
10 */ 10 */
11 11
12#include "skeleton.dtsi"
13#include "imx25-pinfunc.h" 12#include "imx25-pinfunc.h"
14 13
15/ { 14/ {
15 #address-cells = <1>;
16 #size-cells = <1>;
17
16 aliases { 18 aliases {
17 ethernet0 = &fec; 19 ethernet0 = &fec;
18 gpio0 = &gpio1; 20 gpio0 = &gpio1;
diff --git a/arch/arm/boot/dts/imx27.dtsi b/arch/arm/boot/dts/imx27.dtsi
index f818ea483aeb..9d8b5969ee3b 100644
--- a/arch/arm/boot/dts/imx27.dtsi
+++ b/arch/arm/boot/dts/imx27.dtsi
@@ -9,7 +9,6 @@
9 * http://www.gnu.org/copyleft/gpl.html 9 * http://www.gnu.org/copyleft/gpl.html
10 */ 10 */
11 11
12#include "skeleton.dtsi"
13#include "imx27-pinfunc.h" 12#include "imx27-pinfunc.h"
14 13
15#include <dt-bindings/clock/imx27-clock.h> 14#include <dt-bindings/clock/imx27-clock.h>
@@ -18,6 +17,9 @@
18#include <dt-bindings/interrupt-controller/irq.h> 17#include <dt-bindings/interrupt-controller/irq.h>
19 18
20/ { 19/ {
20 #address-cells = <1>;
21 #size-cells = <1>;
22
21 aliases { 23 aliases {
22 ethernet0 = &fec; 24 ethernet0 = &fec;
23 gpio0 = &gpio1; 25 gpio0 = &gpio1;
diff --git a/arch/arm/boot/dts/imx28-m28.dtsi b/arch/arm/boot/dts/imx28-m28.dtsi
index 214bb1506b53..a69856e41ba4 100644
--- a/arch/arm/boot/dts/imx28-m28.dtsi
+++ b/arch/arm/boot/dts/imx28-m28.dtsi
@@ -12,8 +12,8 @@
12#include "imx28.dtsi" 12#include "imx28.dtsi"
13 13
14/ { 14/ {
15 model = "DENX M28"; 15 model = "Aries/DENX M28";
16 compatible = "denx,m28", "fsl,imx28"; 16 compatible = "aries,m28", "denx,m28", "fsl,imx28";
17 17
18 memory { 18 memory {
19 reg = <0x40000000 0x08000000>; 19 reg = <0x40000000 0x08000000>;
diff --git a/arch/arm/boot/dts/imx28-m28evk.dts b/arch/arm/boot/dts/imx28-m28evk.dts
index 8d04e57039bc..dbfb8aab505f 100644
--- a/arch/arm/boot/dts/imx28-m28evk.dts
+++ b/arch/arm/boot/dts/imx28-m28evk.dts
@@ -13,8 +13,8 @@
13#include "imx28-m28.dtsi" 13#include "imx28-m28.dtsi"
14 14
15/ { 15/ {
16 model = "DENX M28EVK"; 16 model = "Aries/DENX M28EVK";
17 compatible = "denx,m28evk", "fsl,imx28"; 17 compatible = "aries,m28evk", "denx,m28evk", "fsl,imx28";
18 18
19 apb@80000000 { 19 apb@80000000 {
20 apbh@80000000 { 20 apbh@80000000 {
diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi
index 0ad893bf5f43..3aabf65a6a52 100644
--- a/arch/arm/boot/dts/imx28.dtsi
+++ b/arch/arm/boot/dts/imx28.dtsi
@@ -10,10 +10,12 @@
10 */ 10 */
11 11
12#include <dt-bindings/gpio/gpio.h> 12#include <dt-bindings/gpio/gpio.h>
13#include "skeleton.dtsi"
14#include "imx28-pinfunc.h" 13#include "imx28-pinfunc.h"
15 14
16/ { 15/ {
16 #address-cells = <1>;
17 #size-cells = <1>;
18
17 interrupt-parent = <&icoll>; 19 interrupt-parent = <&icoll>;
18 20
19 aliases { 21 aliases {
diff --git a/arch/arm/boot/dts/imx31.dtsi b/arch/arm/boot/dts/imx31.dtsi
index 8d4c0e3533fa..685916e3d8a1 100644
--- a/arch/arm/boot/dts/imx31.dtsi
+++ b/arch/arm/boot/dts/imx31.dtsi
@@ -9,9 +9,10 @@
9 * http://www.gnu.org/copyleft/gpl.html 9 * http://www.gnu.org/copyleft/gpl.html
10 */ 10 */
11 11
12#include "skeleton.dtsi"
13
14/ { 12/ {
13 #address-cells = <1>;
14 #size-cells = <1>;
15
15 aliases { 16 aliases {
16 serial0 = &uart1; 17 serial0 = &uart1;
17 serial1 = &uart2; 18 serial1 = &uart2;
diff --git a/arch/arm/boot/dts/imx35.dtsi b/arch/arm/boot/dts/imx35.dtsi
index f812d586c5ce..9f40e6229189 100644
--- a/arch/arm/boot/dts/imx35.dtsi
+++ b/arch/arm/boot/dts/imx35.dtsi
@@ -8,10 +8,12 @@
8 * Free Software Foundation. 8 * Free Software Foundation.
9 */ 9 */
10 10
11#include "skeleton.dtsi"
12#include "imx35-pinfunc.h" 11#include "imx35-pinfunc.h"
13 12
14/ { 13/ {
14 #address-cells = <1>;
15 #size-cells = <1>;
16
15 aliases { 17 aliases {
16 ethernet0 = &fec; 18 ethernet0 = &fec;
17 gpio0 = &gpio1; 19 gpio0 = &gpio1;
diff --git a/arch/arm/boot/dts/imx50.dtsi b/arch/arm/boot/dts/imx50.dtsi
index 8fe8beeb68a4..fe0221e4cbf7 100644
--- a/arch/arm/boot/dts/imx50.dtsi
+++ b/arch/arm/boot/dts/imx50.dtsi
@@ -11,11 +11,13 @@
11 * http://www.gnu.org/copyleft/gpl.html 11 * http://www.gnu.org/copyleft/gpl.html
12 */ 12 */
13 13
14#include "skeleton.dtsi"
15#include "imx50-pinfunc.h" 14#include "imx50-pinfunc.h"
16#include <dt-bindings/clock/imx5-clock.h> 15#include <dt-bindings/clock/imx5-clock.h>
17 16
18/ { 17/ {
18 #address-cells = <1>;
19 #size-cells = <1>;
20
19 aliases { 21 aliases {
20 ethernet0 = &fec; 22 ethernet0 = &fec;
21 gpio0 = &gpio1; 23 gpio0 = &gpio1;
@@ -103,8 +105,8 @@
103 reg = <0x50004000 0x4000>; 105 reg = <0x50004000 0x4000>;
104 interrupts = <1>; 106 interrupts = <1>;
105 clocks = <&clks IMX5_CLK_ESDHC1_IPG_GATE>, 107 clocks = <&clks IMX5_CLK_ESDHC1_IPG_GATE>,
106 <&clks IMX5_CLK_DUMMY>, 108 <&clks IMX5_CLK_DUMMY>,
107 <&clks IMX5_CLK_ESDHC1_PER_GATE>; 109 <&clks IMX5_CLK_ESDHC1_PER_GATE>;
108 clock-names = "ipg", "ahb", "per"; 110 clock-names = "ipg", "ahb", "per";
109 bus-width = <4>; 111 bus-width = <4>;
110 status = "disabled"; 112 status = "disabled";
@@ -115,8 +117,8 @@
115 reg = <0x50008000 0x4000>; 117 reg = <0x50008000 0x4000>;
116 interrupts = <2>; 118 interrupts = <2>;
117 clocks = <&clks IMX5_CLK_ESDHC2_IPG_GATE>, 119 clocks = <&clks IMX5_CLK_ESDHC2_IPG_GATE>,
118 <&clks IMX5_CLK_DUMMY>, 120 <&clks IMX5_CLK_DUMMY>,
119 <&clks IMX5_CLK_ESDHC2_PER_GATE>; 121 <&clks IMX5_CLK_ESDHC2_PER_GATE>;
120 clock-names = "ipg", "ahb", "per"; 122 clock-names = "ipg", "ahb", "per";
121 bus-width = <4>; 123 bus-width = <4>;
122 status = "disabled"; 124 status = "disabled";
@@ -127,7 +129,7 @@
127 reg = <0x5000c000 0x4000>; 129 reg = <0x5000c000 0x4000>;
128 interrupts = <33>; 130 interrupts = <33>;
129 clocks = <&clks IMX5_CLK_UART3_IPG_GATE>, 131 clocks = <&clks IMX5_CLK_UART3_IPG_GATE>,
130 <&clks IMX5_CLK_UART3_PER_GATE>; 132 <&clks IMX5_CLK_UART3_PER_GATE>;
131 clock-names = "ipg", "per"; 133 clock-names = "ipg", "per";
132 status = "disabled"; 134 status = "disabled";
133 }; 135 };
@@ -139,7 +141,7 @@
139 reg = <0x50010000 0x4000>; 141 reg = <0x50010000 0x4000>;
140 interrupts = <36>; 142 interrupts = <36>;
141 clocks = <&clks IMX5_CLK_ECSPI1_IPG_GATE>, 143 clocks = <&clks IMX5_CLK_ECSPI1_IPG_GATE>,
142 <&clks IMX5_CLK_ECSPI1_PER_GATE>; 144 <&clks IMX5_CLK_ECSPI1_PER_GATE>;
143 clock-names = "ipg", "per"; 145 clock-names = "ipg", "per";
144 status = "disabled"; 146 status = "disabled";
145 }; 147 };
@@ -164,8 +166,8 @@
164 reg = <0x50020000 0x4000>; 166 reg = <0x50020000 0x4000>;
165 interrupts = <3>; 167 interrupts = <3>;
166 clocks = <&clks IMX5_CLK_ESDHC3_IPG_GATE>, 168 clocks = <&clks IMX5_CLK_ESDHC3_IPG_GATE>,
167 <&clks IMX5_CLK_DUMMY>, 169 <&clks IMX5_CLK_DUMMY>,
168 <&clks IMX5_CLK_ESDHC3_PER_GATE>; 170 <&clks IMX5_CLK_ESDHC3_PER_GATE>;
169 clock-names = "ipg", "ahb", "per"; 171 clock-names = "ipg", "ahb", "per";
170 bus-width = <4>; 172 bus-width = <4>;
171 status = "disabled"; 173 status = "disabled";
@@ -176,8 +178,8 @@
176 reg = <0x50024000 0x4000>; 178 reg = <0x50024000 0x4000>;
177 interrupts = <4>; 179 interrupts = <4>;
178 clocks = <&clks IMX5_CLK_ESDHC4_IPG_GATE>, 180 clocks = <&clks IMX5_CLK_ESDHC4_IPG_GATE>,
179 <&clks IMX5_CLK_DUMMY>, 181 <&clks IMX5_CLK_DUMMY>,
180 <&clks IMX5_CLK_ESDHC4_PER_GATE>; 182 <&clks IMX5_CLK_ESDHC4_PER_GATE>;
181 clock-names = "ipg", "ahb", "per"; 183 clock-names = "ipg", "ahb", "per";
182 bus-width = <4>; 184 bus-width = <4>;
183 status = "disabled"; 185 status = "disabled";
@@ -279,7 +281,7 @@
279 reg = <0x53fa0000 0x4000>; 281 reg = <0x53fa0000 0x4000>;
280 interrupts = <39>; 282 interrupts = <39>;
281 clocks = <&clks IMX5_CLK_GPT_IPG_GATE>, 283 clocks = <&clks IMX5_CLK_GPT_IPG_GATE>,
282 <&clks IMX5_CLK_GPT_HF_GATE>; 284 <&clks IMX5_CLK_GPT_HF_GATE>;
283 clock-names = "ipg", "per"; 285 clock-names = "ipg", "per";
284 }; 286 };
285 287
@@ -298,7 +300,7 @@
298 compatible = "fsl,imx50-pwm", "fsl,imx27-pwm"; 300 compatible = "fsl,imx50-pwm", "fsl,imx27-pwm";
299 reg = <0x53fb4000 0x4000>; 301 reg = <0x53fb4000 0x4000>;
300 clocks = <&clks IMX5_CLK_PWM1_IPG_GATE>, 302 clocks = <&clks IMX5_CLK_PWM1_IPG_GATE>,
301 <&clks IMX5_CLK_PWM1_HF_GATE>; 303 <&clks IMX5_CLK_PWM1_HF_GATE>;
302 clock-names = "ipg", "per"; 304 clock-names = "ipg", "per";
303 interrupts = <61>; 305 interrupts = <61>;
304 }; 306 };
@@ -308,7 +310,7 @@
308 compatible = "fsl,imx50-pwm", "fsl,imx27-pwm"; 310 compatible = "fsl,imx50-pwm", "fsl,imx27-pwm";
309 reg = <0x53fb8000 0x4000>; 311 reg = <0x53fb8000 0x4000>;
310 clocks = <&clks IMX5_CLK_PWM2_IPG_GATE>, 312 clocks = <&clks IMX5_CLK_PWM2_IPG_GATE>,
311 <&clks IMX5_CLK_PWM2_HF_GATE>; 313 <&clks IMX5_CLK_PWM2_HF_GATE>;
312 clock-names = "ipg", "per"; 314 clock-names = "ipg", "per";
313 interrupts = <94>; 315 interrupts = <94>;
314 }; 316 };
@@ -318,7 +320,7 @@
318 reg = <0x53fbc000 0x4000>; 320 reg = <0x53fbc000 0x4000>;
319 interrupts = <31>; 321 interrupts = <31>;
320 clocks = <&clks IMX5_CLK_UART1_IPG_GATE>, 322 clocks = <&clks IMX5_CLK_UART1_IPG_GATE>,
321 <&clks IMX5_CLK_UART1_PER_GATE>; 323 <&clks IMX5_CLK_UART1_PER_GATE>;
322 clock-names = "ipg", "per"; 324 clock-names = "ipg", "per";
323 status = "disabled"; 325 status = "disabled";
324 }; 326 };
@@ -328,7 +330,7 @@
328 reg = <0x53fc0000 0x4000>; 330 reg = <0x53fc0000 0x4000>;
329 interrupts = <32>; 331 interrupts = <32>;
330 clocks = <&clks IMX5_CLK_UART2_IPG_GATE>, 332 clocks = <&clks IMX5_CLK_UART2_IPG_GATE>,
331 <&clks IMX5_CLK_UART2_PER_GATE>; 333 <&clks IMX5_CLK_UART2_PER_GATE>;
332 clock-names = "ipg", "per"; 334 clock-names = "ipg", "per";
333 status = "disabled"; 335 status = "disabled";
334 }; 336 };
@@ -383,7 +385,7 @@
383 reg = <0x53ff0000 0x4000>; 385 reg = <0x53ff0000 0x4000>;
384 interrupts = <13>; 386 interrupts = <13>;
385 clocks = <&clks IMX5_CLK_UART4_IPG_GATE>, 387 clocks = <&clks IMX5_CLK_UART4_IPG_GATE>,
386 <&clks IMX5_CLK_UART4_PER_GATE>; 388 <&clks IMX5_CLK_UART4_PER_GATE>;
387 clock-names = "ipg", "per"; 389 clock-names = "ipg", "per";
388 status = "disabled"; 390 status = "disabled";
389 }; 391 };
@@ -401,7 +403,7 @@
401 reg = <0x63f90000 0x4000>; 403 reg = <0x63f90000 0x4000>;
402 interrupts = <86>; 404 interrupts = <86>;
403 clocks = <&clks IMX5_CLK_UART5_IPG_GATE>, 405 clocks = <&clks IMX5_CLK_UART5_IPG_GATE>,
404 <&clks IMX5_CLK_UART5_PER_GATE>; 406 <&clks IMX5_CLK_UART5_PER_GATE>;
405 clock-names = "ipg", "per"; 407 clock-names = "ipg", "per";
406 status = "disabled"; 408 status = "disabled";
407 }; 409 };
@@ -420,7 +422,7 @@
420 reg = <0x63fac000 0x4000>; 422 reg = <0x63fac000 0x4000>;
421 interrupts = <37>; 423 interrupts = <37>;
422 clocks = <&clks IMX5_CLK_ECSPI2_IPG_GATE>, 424 clocks = <&clks IMX5_CLK_ECSPI2_IPG_GATE>,
423 <&clks IMX5_CLK_ECSPI2_PER_GATE>; 425 <&clks IMX5_CLK_ECSPI2_PER_GATE>;
424 clock-names = "ipg", "per"; 426 clock-names = "ipg", "per";
425 status = "disabled"; 427 status = "disabled";
426 }; 428 };
@@ -430,7 +432,7 @@
430 reg = <0x63fb0000 0x4000>; 432 reg = <0x63fb0000 0x4000>;
431 interrupts = <6>; 433 interrupts = <6>;
432 clocks = <&clks IMX5_CLK_SDMA_GATE>, 434 clocks = <&clks IMX5_CLK_SDMA_GATE>,
433 <&clks IMX5_CLK_SDMA_GATE>; 435 <&clks IMX5_CLK_SDMA_GATE>;
434 clock-names = "ipg", "ahb"; 436 clock-names = "ipg", "ahb";
435 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx50.bin"; 437 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx50.bin";
436 }; 438 };
@@ -442,7 +444,7 @@
442 reg = <0x63fc0000 0x4000>; 444 reg = <0x63fc0000 0x4000>;
443 interrupts = <38>; 445 interrupts = <38>;
444 clocks = <&clks IMX5_CLK_CSPI_IPG_GATE>, 446 clocks = <&clks IMX5_CLK_CSPI_IPG_GATE>,
445 <&clks IMX5_CLK_CSPI_IPG_GATE>; 447 <&clks IMX5_CLK_CSPI_IPG_GATE>;
446 clock-names = "ipg", "per"; 448 clock-names = "ipg", "per";
447 status = "disabled"; 449 status = "disabled";
448 }; 450 };
@@ -492,8 +494,8 @@
492 reg = <0x63fec000 0x4000>; 494 reg = <0x63fec000 0x4000>;
493 interrupts = <87>; 495 interrupts = <87>;
494 clocks = <&clks IMX5_CLK_FEC_GATE>, 496 clocks = <&clks IMX5_CLK_FEC_GATE>,
495 <&clks IMX5_CLK_FEC_GATE>, 497 <&clks IMX5_CLK_FEC_GATE>,
496 <&clks IMX5_CLK_FEC_GATE>; 498 <&clks IMX5_CLK_FEC_GATE>;
497 clock-names = "ipg", "ahb", "ptp"; 499 clock-names = "ipg", "ahb", "ptp";
498 status = "disabled"; 500 status = "disabled";
499 }; 501 };
diff --git a/arch/arm/boot/dts/imx51.dtsi b/arch/arm/boot/dts/imx51.dtsi
index f46fe9bf0bcb..33526cade735 100644
--- a/arch/arm/boot/dts/imx51.dtsi
+++ b/arch/arm/boot/dts/imx51.dtsi
@@ -10,7 +10,6 @@
10 * http://www.gnu.org/copyleft/gpl.html 10 * http://www.gnu.org/copyleft/gpl.html
11 */ 11 */
12 12
13#include "skeleton.dtsi"
14#include "imx51-pinfunc.h" 13#include "imx51-pinfunc.h"
15#include <dt-bindings/clock/imx5-clock.h> 14#include <dt-bindings/clock/imx5-clock.h>
16#include <dt-bindings/gpio/gpio.h> 15#include <dt-bindings/gpio/gpio.h>
@@ -18,6 +17,9 @@
18#include <dt-bindings/interrupt-controller/irq.h> 17#include <dt-bindings/interrupt-controller/irq.h>
19 18
20/ { 19/ {
20 #address-cells = <1>;
21 #size-cells = <1>;
22
21 aliases { 23 aliases {
22 ethernet0 = &fec; 24 ethernet0 = &fec;
23 gpio0 = &gpio1; 25 gpio0 = &gpio1;
@@ -130,8 +132,8 @@
130 reg = <0x40000000 0x20000000>; 132 reg = <0x40000000 0x20000000>;
131 interrupts = <11 10>; 133 interrupts = <11 10>;
132 clocks = <&clks IMX5_CLK_IPU_GATE>, 134 clocks = <&clks IMX5_CLK_IPU_GATE>,
133 <&clks IMX5_CLK_IPU_DI0_GATE>, 135 <&clks IMX5_CLK_IPU_DI0_GATE>,
134 <&clks IMX5_CLK_IPU_DI1_GATE>; 136 <&clks IMX5_CLK_IPU_DI1_GATE>;
135 clock-names = "bus", "di0", "di1"; 137 clock-names = "bus", "di0", "di1";
136 resets = <&src 2>; 138 resets = <&src 2>;
137 139
@@ -169,8 +171,8 @@
169 reg = <0x70004000 0x4000>; 171 reg = <0x70004000 0x4000>;
170 interrupts = <1>; 172 interrupts = <1>;
171 clocks = <&clks IMX5_CLK_ESDHC1_IPG_GATE>, 173 clocks = <&clks IMX5_CLK_ESDHC1_IPG_GATE>,
172 <&clks IMX5_CLK_DUMMY>, 174 <&clks IMX5_CLK_DUMMY>,
173 <&clks IMX5_CLK_ESDHC1_PER_GATE>; 175 <&clks IMX5_CLK_ESDHC1_PER_GATE>;
174 clock-names = "ipg", "ahb", "per"; 176 clock-names = "ipg", "ahb", "per";
175 status = "disabled"; 177 status = "disabled";
176 }; 178 };
@@ -180,8 +182,8 @@
180 reg = <0x70008000 0x4000>; 182 reg = <0x70008000 0x4000>;
181 interrupts = <2>; 183 interrupts = <2>;
182 clocks = <&clks IMX5_CLK_ESDHC2_IPG_GATE>, 184 clocks = <&clks IMX5_CLK_ESDHC2_IPG_GATE>,
183 <&clks IMX5_CLK_DUMMY>, 185 <&clks IMX5_CLK_DUMMY>,
184 <&clks IMX5_CLK_ESDHC2_PER_GATE>; 186 <&clks IMX5_CLK_ESDHC2_PER_GATE>;
185 clock-names = "ipg", "ahb", "per"; 187 clock-names = "ipg", "ahb", "per";
186 bus-width = <4>; 188 bus-width = <4>;
187 status = "disabled"; 189 status = "disabled";
@@ -192,7 +194,7 @@
192 reg = <0x7000c000 0x4000>; 194 reg = <0x7000c000 0x4000>;
193 interrupts = <33>; 195 interrupts = <33>;
194 clocks = <&clks IMX5_CLK_UART3_IPG_GATE>, 196 clocks = <&clks IMX5_CLK_UART3_IPG_GATE>,
195 <&clks IMX5_CLK_UART3_PER_GATE>; 197 <&clks IMX5_CLK_UART3_PER_GATE>;
196 clock-names = "ipg", "per"; 198 clock-names = "ipg", "per";
197 status = "disabled"; 199 status = "disabled";
198 }; 200 };
@@ -204,7 +206,7 @@
204 reg = <0x70010000 0x4000>; 206 reg = <0x70010000 0x4000>;
205 interrupts = <36>; 207 interrupts = <36>;
206 clocks = <&clks IMX5_CLK_ECSPI1_IPG_GATE>, 208 clocks = <&clks IMX5_CLK_ECSPI1_IPG_GATE>,
207 <&clks IMX5_CLK_ECSPI1_PER_GATE>; 209 <&clks IMX5_CLK_ECSPI1_PER_GATE>;
208 clock-names = "ipg", "per"; 210 clock-names = "ipg", "per";
209 status = "disabled"; 211 status = "disabled";
210 }; 212 };
@@ -229,8 +231,8 @@
229 reg = <0x70020000 0x4000>; 231 reg = <0x70020000 0x4000>;
230 interrupts = <3>; 232 interrupts = <3>;
231 clocks = <&clks IMX5_CLK_ESDHC3_IPG_GATE>, 233 clocks = <&clks IMX5_CLK_ESDHC3_IPG_GATE>,
232 <&clks IMX5_CLK_DUMMY>, 234 <&clks IMX5_CLK_DUMMY>,
233 <&clks IMX5_CLK_ESDHC3_PER_GATE>; 235 <&clks IMX5_CLK_ESDHC3_PER_GATE>;
234 clock-names = "ipg", "ahb", "per"; 236 clock-names = "ipg", "ahb", "per";
235 bus-width = <4>; 237 bus-width = <4>;
236 status = "disabled"; 238 status = "disabled";
@@ -241,8 +243,8 @@
241 reg = <0x70024000 0x4000>; 243 reg = <0x70024000 0x4000>;
242 interrupts = <4>; 244 interrupts = <4>;
243 clocks = <&clks IMX5_CLK_ESDHC4_IPG_GATE>, 245 clocks = <&clks IMX5_CLK_ESDHC4_IPG_GATE>,
244 <&clks IMX5_CLK_DUMMY>, 246 <&clks IMX5_CLK_DUMMY>,
245 <&clks IMX5_CLK_ESDHC4_PER_GATE>; 247 <&clks IMX5_CLK_ESDHC4_PER_GATE>;
246 clock-names = "ipg", "ahb", "per"; 248 clock-names = "ipg", "ahb", "per";
247 bus-width = <4>; 249 bus-width = <4>;
248 status = "disabled"; 250 status = "disabled";
@@ -364,7 +366,7 @@
364 reg = <0x73fa0000 0x4000>; 366 reg = <0x73fa0000 0x4000>;
365 interrupts = <39>; 367 interrupts = <39>;
366 clocks = <&clks IMX5_CLK_GPT_IPG_GATE>, 368 clocks = <&clks IMX5_CLK_GPT_IPG_GATE>,
367 <&clks IMX5_CLK_GPT_HF_GATE>; 369 <&clks IMX5_CLK_GPT_HF_GATE>;
368 clock-names = "ipg", "per"; 370 clock-names = "ipg", "per";
369 }; 371 };
370 372
@@ -378,7 +380,7 @@
378 compatible = "fsl,imx51-pwm", "fsl,imx27-pwm"; 380 compatible = "fsl,imx51-pwm", "fsl,imx27-pwm";
379 reg = <0x73fb4000 0x4000>; 381 reg = <0x73fb4000 0x4000>;
380 clocks = <&clks IMX5_CLK_PWM1_IPG_GATE>, 382 clocks = <&clks IMX5_CLK_PWM1_IPG_GATE>,
381 <&clks IMX5_CLK_PWM1_HF_GATE>; 383 <&clks IMX5_CLK_PWM1_HF_GATE>;
382 clock-names = "ipg", "per"; 384 clock-names = "ipg", "per";
383 interrupts = <61>; 385 interrupts = <61>;
384 }; 386 };
@@ -388,7 +390,7 @@
388 compatible = "fsl,imx51-pwm", "fsl,imx27-pwm"; 390 compatible = "fsl,imx51-pwm", "fsl,imx27-pwm";
389 reg = <0x73fb8000 0x4000>; 391 reg = <0x73fb8000 0x4000>;
390 clocks = <&clks IMX5_CLK_PWM2_IPG_GATE>, 392 clocks = <&clks IMX5_CLK_PWM2_IPG_GATE>,
391 <&clks IMX5_CLK_PWM2_HF_GATE>; 393 <&clks IMX5_CLK_PWM2_HF_GATE>;
392 clock-names = "ipg", "per"; 394 clock-names = "ipg", "per";
393 interrupts = <94>; 395 interrupts = <94>;
394 }; 396 };
@@ -398,7 +400,7 @@
398 reg = <0x73fbc000 0x4000>; 400 reg = <0x73fbc000 0x4000>;
399 interrupts = <31>; 401 interrupts = <31>;
400 clocks = <&clks IMX5_CLK_UART1_IPG_GATE>, 402 clocks = <&clks IMX5_CLK_UART1_IPG_GATE>,
401 <&clks IMX5_CLK_UART1_PER_GATE>; 403 <&clks IMX5_CLK_UART1_PER_GATE>;
402 clock-names = "ipg", "per"; 404 clock-names = "ipg", "per";
403 status = "disabled"; 405 status = "disabled";
404 }; 406 };
@@ -408,7 +410,7 @@
408 reg = <0x73fc0000 0x4000>; 410 reg = <0x73fc0000 0x4000>;
409 interrupts = <32>; 411 interrupts = <32>;
410 clocks = <&clks IMX5_CLK_UART2_IPG_GATE>, 412 clocks = <&clks IMX5_CLK_UART2_IPG_GATE>,
411 <&clks IMX5_CLK_UART2_PER_GATE>; 413 <&clks IMX5_CLK_UART2_PER_GATE>;
412 clock-names = "ipg", "per"; 414 clock-names = "ipg", "per";
413 status = "disabled"; 415 status = "disabled";
414 }; 416 };
@@ -456,7 +458,7 @@
456 reg = <0x83fac000 0x4000>; 458 reg = <0x83fac000 0x4000>;
457 interrupts = <37>; 459 interrupts = <37>;
458 clocks = <&clks IMX5_CLK_ECSPI2_IPG_GATE>, 460 clocks = <&clks IMX5_CLK_ECSPI2_IPG_GATE>,
459 <&clks IMX5_CLK_ECSPI2_PER_GATE>; 461 <&clks IMX5_CLK_ECSPI2_PER_GATE>;
460 clock-names = "ipg", "per"; 462 clock-names = "ipg", "per";
461 status = "disabled"; 463 status = "disabled";
462 }; 464 };
@@ -466,7 +468,7 @@
466 reg = <0x83fb0000 0x4000>; 468 reg = <0x83fb0000 0x4000>;
467 interrupts = <6>; 469 interrupts = <6>;
468 clocks = <&clks IMX5_CLK_SDMA_GATE>, 470 clocks = <&clks IMX5_CLK_SDMA_GATE>,
469 <&clks IMX5_CLK_SDMA_GATE>; 471 <&clks IMX5_CLK_SDMA_GATE>;
470 clock-names = "ipg", "ahb"; 472 clock-names = "ipg", "ahb";
471 #dma-cells = <3>; 473 #dma-cells = <3>;
472 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx51.bin"; 474 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx51.bin";
@@ -479,7 +481,7 @@
479 reg = <0x83fc0000 0x4000>; 481 reg = <0x83fc0000 0x4000>;
480 interrupts = <38>; 482 interrupts = <38>;
481 clocks = <&clks IMX5_CLK_CSPI_IPG_GATE>, 483 clocks = <&clks IMX5_CLK_CSPI_IPG_GATE>,
482 <&clks IMX5_CLK_CSPI_IPG_GATE>; 484 <&clks IMX5_CLK_CSPI_IPG_GATE>;
483 clock-names = "ipg", "per"; 485 clock-names = "ipg", "per";
484 status = "disabled"; 486 status = "disabled";
485 }; 487 };
@@ -582,8 +584,8 @@
582 reg = <0x83fec000 0x4000>; 584 reg = <0x83fec000 0x4000>;
583 interrupts = <87>; 585 interrupts = <87>;
584 clocks = <&clks IMX5_CLK_FEC_GATE>, 586 clocks = <&clks IMX5_CLK_FEC_GATE>,
585 <&clks IMX5_CLK_FEC_GATE>, 587 <&clks IMX5_CLK_FEC_GATE>,
586 <&clks IMX5_CLK_FEC_GATE>; 588 <&clks IMX5_CLK_FEC_GATE>;
587 clock-names = "ipg", "ahb", "ptp"; 589 clock-names = "ipg", "ahb", "ptp";
588 status = "disabled"; 590 status = "disabled";
589 }; 591 };
diff --git a/arch/arm/boot/dts/imx53-m53.dtsi b/arch/arm/boot/dts/imx53-m53.dtsi
index d259f57bfd98..ec390aa562c3 100644
--- a/arch/arm/boot/dts/imx53-m53.dtsi
+++ b/arch/arm/boot/dts/imx53-m53.dtsi
@@ -12,8 +12,8 @@
12#include "imx53.dtsi" 12#include "imx53.dtsi"
13 13
14/ { 14/ {
15 model = "DENX M53"; 15 model = "Aries/DENX M53";
16 compatible = "denx,imx53-m53", "fsl,imx53"; 16 compatible = "aries,imx53-m53", "denx,imx53-m53", "fsl,imx53";
17 17
18 memory { 18 memory {
19 reg = <0x70000000 0x20000000>, 19 reg = <0x70000000 0x20000000>,
diff --git a/arch/arm/boot/dts/imx53-m53evk.dts b/arch/arm/boot/dts/imx53-m53evk.dts
index dcee1e0f968f..4347a321c782 100644
--- a/arch/arm/boot/dts/imx53-m53evk.dts
+++ b/arch/arm/boot/dts/imx53-m53evk.dts
@@ -13,8 +13,8 @@
13#include "imx53-m53.dtsi" 13#include "imx53-m53.dtsi"
14 14
15/ { 15/ {
16 model = "DENX M53EVK"; 16 model = "Aries/DENX M53EVK";
17 compatible = "denx,imx53-m53evk", "fsl,imx53"; 17 compatible = "aries,imx53-m53evk", "denx,imx53-m53evk", "fsl,imx53";
18 18
19 display1: display@di1 { 19 display1: display@di1 {
20 compatible = "fsl,imx-parallel-display"; 20 compatible = "fsl,imx-parallel-display";
diff --git a/arch/arm/boot/dts/imx53.dtsi b/arch/arm/boot/dts/imx53.dtsi
index 0777b41cdfe8..ca51dc03e327 100644
--- a/arch/arm/boot/dts/imx53.dtsi
+++ b/arch/arm/boot/dts/imx53.dtsi
@@ -10,7 +10,6 @@
10 * http://www.gnu.org/copyleft/gpl.html 10 * http://www.gnu.org/copyleft/gpl.html
11 */ 11 */
12 12
13#include "skeleton.dtsi"
14#include "imx53-pinfunc.h" 13#include "imx53-pinfunc.h"
15#include <dt-bindings/clock/imx5-clock.h> 14#include <dt-bindings/clock/imx5-clock.h>
16#include <dt-bindings/gpio/gpio.h> 15#include <dt-bindings/gpio/gpio.h>
@@ -18,6 +17,9 @@
18#include <dt-bindings/interrupt-controller/irq.h> 17#include <dt-bindings/interrupt-controller/irq.h>
19 18
20/ { 19/ {
20 #address-cells = <1>;
21 #size-cells = <1>;
22
21 aliases { 23 aliases {
22 ethernet0 = &fec; 24 ethernet0 = &fec;
23 gpio0 = &gpio1; 25 gpio0 = &gpio1;
@@ -131,8 +133,8 @@
131 reg = <0x18000000 0x08000000>; 133 reg = <0x18000000 0x08000000>;
132 interrupts = <11 10>; 134 interrupts = <11 10>;
133 clocks = <&clks IMX5_CLK_IPU_GATE>, 135 clocks = <&clks IMX5_CLK_IPU_GATE>,
134 <&clks IMX5_CLK_IPU_DI0_GATE>, 136 <&clks IMX5_CLK_IPU_DI0_GATE>,
135 <&clks IMX5_CLK_IPU_DI1_GATE>; 137 <&clks IMX5_CLK_IPU_DI1_GATE>;
136 clock-names = "bus", "di0", "di1"; 138 clock-names = "bus", "di0", "di1";
137 resets = <&src 2>; 139 resets = <&src 2>;
138 140
@@ -199,8 +201,8 @@
199 reg = <0x50004000 0x4000>; 201 reg = <0x50004000 0x4000>;
200 interrupts = <1>; 202 interrupts = <1>;
201 clocks = <&clks IMX5_CLK_ESDHC1_IPG_GATE>, 203 clocks = <&clks IMX5_CLK_ESDHC1_IPG_GATE>,
202 <&clks IMX5_CLK_DUMMY>, 204 <&clks IMX5_CLK_DUMMY>,
203 <&clks IMX5_CLK_ESDHC1_PER_GATE>; 205 <&clks IMX5_CLK_ESDHC1_PER_GATE>;
204 clock-names = "ipg", "ahb", "per"; 206 clock-names = "ipg", "ahb", "per";
205 bus-width = <4>; 207 bus-width = <4>;
206 status = "disabled"; 208 status = "disabled";
@@ -211,8 +213,8 @@
211 reg = <0x50008000 0x4000>; 213 reg = <0x50008000 0x4000>;
212 interrupts = <2>; 214 interrupts = <2>;
213 clocks = <&clks IMX5_CLK_ESDHC2_IPG_GATE>, 215 clocks = <&clks IMX5_CLK_ESDHC2_IPG_GATE>,
214 <&clks IMX5_CLK_DUMMY>, 216 <&clks IMX5_CLK_DUMMY>,
215 <&clks IMX5_CLK_ESDHC2_PER_GATE>; 217 <&clks IMX5_CLK_ESDHC2_PER_GATE>;
216 clock-names = "ipg", "ahb", "per"; 218 clock-names = "ipg", "ahb", "per";
217 bus-width = <4>; 219 bus-width = <4>;
218 status = "disabled"; 220 status = "disabled";
@@ -223,7 +225,7 @@
223 reg = <0x5000c000 0x4000>; 225 reg = <0x5000c000 0x4000>;
224 interrupts = <33>; 226 interrupts = <33>;
225 clocks = <&clks IMX5_CLK_UART3_IPG_GATE>, 227 clocks = <&clks IMX5_CLK_UART3_IPG_GATE>,
226 <&clks IMX5_CLK_UART3_PER_GATE>; 228 <&clks IMX5_CLK_UART3_PER_GATE>;
227 clock-names = "ipg", "per"; 229 clock-names = "ipg", "per";
228 dmas = <&sdma 42 4 0>, <&sdma 43 4 0>; 230 dmas = <&sdma 42 4 0>, <&sdma 43 4 0>;
229 dma-names = "rx", "tx"; 231 dma-names = "rx", "tx";
@@ -237,7 +239,7 @@
237 reg = <0x50010000 0x4000>; 239 reg = <0x50010000 0x4000>;
238 interrupts = <36>; 240 interrupts = <36>;
239 clocks = <&clks IMX5_CLK_ECSPI1_IPG_GATE>, 241 clocks = <&clks IMX5_CLK_ECSPI1_IPG_GATE>,
240 <&clks IMX5_CLK_ECSPI1_PER_GATE>; 242 <&clks IMX5_CLK_ECSPI1_PER_GATE>;
241 clock-names = "ipg", "per"; 243 clock-names = "ipg", "per";
242 status = "disabled"; 244 status = "disabled";
243 }; 245 };
@@ -264,8 +266,8 @@
264 reg = <0x50020000 0x4000>; 266 reg = <0x50020000 0x4000>;
265 interrupts = <3>; 267 interrupts = <3>;
266 clocks = <&clks IMX5_CLK_ESDHC3_IPG_GATE>, 268 clocks = <&clks IMX5_CLK_ESDHC3_IPG_GATE>,
267 <&clks IMX5_CLK_DUMMY>, 269 <&clks IMX5_CLK_DUMMY>,
268 <&clks IMX5_CLK_ESDHC3_PER_GATE>; 270 <&clks IMX5_CLK_ESDHC3_PER_GATE>;
269 clock-names = "ipg", "ahb", "per"; 271 clock-names = "ipg", "ahb", "per";
270 bus-width = <4>; 272 bus-width = <4>;
271 status = "disabled"; 273 status = "disabled";
@@ -276,8 +278,8 @@
276 reg = <0x50024000 0x4000>; 278 reg = <0x50024000 0x4000>;
277 interrupts = <4>; 279 interrupts = <4>;
278 clocks = <&clks IMX5_CLK_ESDHC4_IPG_GATE>, 280 clocks = <&clks IMX5_CLK_ESDHC4_IPG_GATE>,
279 <&clks IMX5_CLK_DUMMY>, 281 <&clks IMX5_CLK_DUMMY>,
280 <&clks IMX5_CLK_ESDHC4_PER_GATE>; 282 <&clks IMX5_CLK_ESDHC4_PER_GATE>;
281 clock-names = "ipg", "ahb", "per"; 283 clock-names = "ipg", "ahb", "per";
282 bus-width = <4>; 284 bus-width = <4>;
283 status = "disabled"; 285 status = "disabled";
@@ -419,7 +421,7 @@
419 reg = <0x53fa0000 0x4000>; 421 reg = <0x53fa0000 0x4000>;
420 interrupts = <39>; 422 interrupts = <39>;
421 clocks = <&clks IMX5_CLK_GPT_IPG_GATE>, 423 clocks = <&clks IMX5_CLK_GPT_IPG_GATE>,
422 <&clks IMX5_CLK_GPT_HF_GATE>; 424 <&clks IMX5_CLK_GPT_HF_GATE>;
423 clock-names = "ipg", "per"; 425 clock-names = "ipg", "per";
424 }; 426 };
425 427
@@ -440,11 +442,11 @@
440 reg = <0x53fa8008 0x4>; 442 reg = <0x53fa8008 0x4>;
441 gpr = <&gpr>; 443 gpr = <&gpr>;
442 clocks = <&clks IMX5_CLK_LDB_DI0_SEL>, 444 clocks = <&clks IMX5_CLK_LDB_DI0_SEL>,
443 <&clks IMX5_CLK_LDB_DI1_SEL>, 445 <&clks IMX5_CLK_LDB_DI1_SEL>,
444 <&clks IMX5_CLK_IPU_DI0_SEL>, 446 <&clks IMX5_CLK_IPU_DI0_SEL>,
445 <&clks IMX5_CLK_IPU_DI1_SEL>, 447 <&clks IMX5_CLK_IPU_DI1_SEL>,
446 <&clks IMX5_CLK_LDB_DI0_GATE>, 448 <&clks IMX5_CLK_LDB_DI0_GATE>,
447 <&clks IMX5_CLK_LDB_DI1_GATE>; 449 <&clks IMX5_CLK_LDB_DI1_GATE>;
448 clock-names = "di0_pll", "di1_pll", 450 clock-names = "di0_pll", "di1_pll",
449 "di0_sel", "di1_sel", 451 "di0_sel", "di1_sel",
450 "di0", "di1"; 452 "di0", "di1";
@@ -486,7 +488,7 @@
486 compatible = "fsl,imx53-pwm", "fsl,imx27-pwm"; 488 compatible = "fsl,imx53-pwm", "fsl,imx27-pwm";
487 reg = <0x53fb4000 0x4000>; 489 reg = <0x53fb4000 0x4000>;
488 clocks = <&clks IMX5_CLK_PWM1_IPG_GATE>, 490 clocks = <&clks IMX5_CLK_PWM1_IPG_GATE>,
489 <&clks IMX5_CLK_PWM1_HF_GATE>; 491 <&clks IMX5_CLK_PWM1_HF_GATE>;
490 clock-names = "ipg", "per"; 492 clock-names = "ipg", "per";
491 interrupts = <61>; 493 interrupts = <61>;
492 }; 494 };
@@ -496,7 +498,7 @@
496 compatible = "fsl,imx53-pwm", "fsl,imx27-pwm"; 498 compatible = "fsl,imx53-pwm", "fsl,imx27-pwm";
497 reg = <0x53fb8000 0x4000>; 499 reg = <0x53fb8000 0x4000>;
498 clocks = <&clks IMX5_CLK_PWM2_IPG_GATE>, 500 clocks = <&clks IMX5_CLK_PWM2_IPG_GATE>,
499 <&clks IMX5_CLK_PWM2_HF_GATE>; 501 <&clks IMX5_CLK_PWM2_HF_GATE>;
500 clock-names = "ipg", "per"; 502 clock-names = "ipg", "per";
501 interrupts = <94>; 503 interrupts = <94>;
502 }; 504 };
@@ -506,7 +508,7 @@
506 reg = <0x53fbc000 0x4000>; 508 reg = <0x53fbc000 0x4000>;
507 interrupts = <31>; 509 interrupts = <31>;
508 clocks = <&clks IMX5_CLK_UART1_IPG_GATE>, 510 clocks = <&clks IMX5_CLK_UART1_IPG_GATE>,
509 <&clks IMX5_CLK_UART1_PER_GATE>; 511 <&clks IMX5_CLK_UART1_PER_GATE>;
510 clock-names = "ipg", "per"; 512 clock-names = "ipg", "per";
511 dmas = <&sdma 18 4 0>, <&sdma 19 4 0>; 513 dmas = <&sdma 18 4 0>, <&sdma 19 4 0>;
512 dma-names = "rx", "tx"; 514 dma-names = "rx", "tx";
@@ -518,7 +520,7 @@
518 reg = <0x53fc0000 0x4000>; 520 reg = <0x53fc0000 0x4000>;
519 interrupts = <32>; 521 interrupts = <32>;
520 clocks = <&clks IMX5_CLK_UART2_IPG_GATE>, 522 clocks = <&clks IMX5_CLK_UART2_IPG_GATE>,
521 <&clks IMX5_CLK_UART2_PER_GATE>; 523 <&clks IMX5_CLK_UART2_PER_GATE>;
522 clock-names = "ipg", "per"; 524 clock-names = "ipg", "per";
523 dmas = <&sdma 12 4 0>, <&sdma 13 4 0>; 525 dmas = <&sdma 12 4 0>, <&sdma 13 4 0>;
524 dma-names = "rx", "tx"; 526 dma-names = "rx", "tx";
@@ -530,7 +532,7 @@
530 reg = <0x53fc8000 0x4000>; 532 reg = <0x53fc8000 0x4000>;
531 interrupts = <82>; 533 interrupts = <82>;
532 clocks = <&clks IMX5_CLK_CAN1_IPG_GATE>, 534 clocks = <&clks IMX5_CLK_CAN1_IPG_GATE>,
533 <&clks IMX5_CLK_CAN1_SERIAL_GATE>; 535 <&clks IMX5_CLK_CAN1_SERIAL_GATE>;
534 clock-names = "ipg", "per"; 536 clock-names = "ipg", "per";
535 status = "disabled"; 537 status = "disabled";
536 }; 538 };
@@ -540,7 +542,7 @@
540 reg = <0x53fcc000 0x4000>; 542 reg = <0x53fcc000 0x4000>;
541 interrupts = <83>; 543 interrupts = <83>;
542 clocks = <&clks IMX5_CLK_CAN2_IPG_GATE>, 544 clocks = <&clks IMX5_CLK_CAN2_IPG_GATE>,
543 <&clks IMX5_CLK_CAN2_SERIAL_GATE>; 545 <&clks IMX5_CLK_CAN2_SERIAL_GATE>;
544 clock-names = "ipg", "per"; 546 clock-names = "ipg", "per";
545 status = "disabled"; 547 status = "disabled";
546 }; 548 };
@@ -603,7 +605,7 @@
603 reg = <0x53ff0000 0x4000>; 605 reg = <0x53ff0000 0x4000>;
604 interrupts = <13>; 606 interrupts = <13>;
605 clocks = <&clks IMX5_CLK_UART4_IPG_GATE>, 607 clocks = <&clks IMX5_CLK_UART4_IPG_GATE>,
606 <&clks IMX5_CLK_UART4_PER_GATE>; 608 <&clks IMX5_CLK_UART4_PER_GATE>;
607 clock-names = "ipg", "per"; 609 clock-names = "ipg", "per";
608 dmas = <&sdma 2 4 0>, <&sdma 3 4 0>; 610 dmas = <&sdma 2 4 0>, <&sdma 3 4 0>;
609 dma-names = "rx", "tx"; 611 dma-names = "rx", "tx";
@@ -635,7 +637,7 @@
635 reg = <0x63f90000 0x4000>; 637 reg = <0x63f90000 0x4000>;
636 interrupts = <86>; 638 interrupts = <86>;
637 clocks = <&clks IMX5_CLK_UART5_IPG_GATE>, 639 clocks = <&clks IMX5_CLK_UART5_IPG_GATE>,
638 <&clks IMX5_CLK_UART5_PER_GATE>; 640 <&clks IMX5_CLK_UART5_PER_GATE>;
639 clock-names = "ipg", "per"; 641 clock-names = "ipg", "per";
640 dmas = <&sdma 16 4 0>, <&sdma 17 4 0>; 642 dmas = <&sdma 16 4 0>, <&sdma 17 4 0>;
641 dma-names = "rx", "tx"; 643 dma-names = "rx", "tx";
@@ -656,7 +658,7 @@
656 reg = <0x63fac000 0x4000>; 658 reg = <0x63fac000 0x4000>;
657 interrupts = <37>; 659 interrupts = <37>;
658 clocks = <&clks IMX5_CLK_ECSPI2_IPG_GATE>, 660 clocks = <&clks IMX5_CLK_ECSPI2_IPG_GATE>,
659 <&clks IMX5_CLK_ECSPI2_PER_GATE>; 661 <&clks IMX5_CLK_ECSPI2_PER_GATE>;
660 clock-names = "ipg", "per"; 662 clock-names = "ipg", "per";
661 status = "disabled"; 663 status = "disabled";
662 }; 664 };
@@ -666,7 +668,7 @@
666 reg = <0x63fb0000 0x4000>; 668 reg = <0x63fb0000 0x4000>;
667 interrupts = <6>; 669 interrupts = <6>;
668 clocks = <&clks IMX5_CLK_SDMA_GATE>, 670 clocks = <&clks IMX5_CLK_SDMA_GATE>,
669 <&clks IMX5_CLK_SDMA_GATE>; 671 <&clks IMX5_CLK_SDMA_GATE>;
670 clock-names = "ipg", "ahb"; 672 clock-names = "ipg", "ahb";
671 #dma-cells = <3>; 673 #dma-cells = <3>;
672 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx53.bin"; 674 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx53.bin";
@@ -679,7 +681,7 @@
679 reg = <0x63fc0000 0x4000>; 681 reg = <0x63fc0000 0x4000>;
680 interrupts = <38>; 682 interrupts = <38>;
681 clocks = <&clks IMX5_CLK_CSPI_IPG_GATE>, 683 clocks = <&clks IMX5_CLK_CSPI_IPG_GATE>,
682 <&clks IMX5_CLK_CSPI_IPG_GATE>; 684 <&clks IMX5_CLK_CSPI_IPG_GATE>;
683 clock-names = "ipg", "per"; 685 clock-names = "ipg", "per";
684 status = "disabled"; 686 status = "disabled";
685 }; 687 };
@@ -755,8 +757,8 @@
755 reg = <0x63fec000 0x4000>; 757 reg = <0x63fec000 0x4000>;
756 interrupts = <87>; 758 interrupts = <87>;
757 clocks = <&clks IMX5_CLK_FEC_GATE>, 759 clocks = <&clks IMX5_CLK_FEC_GATE>,
758 <&clks IMX5_CLK_FEC_GATE>, 760 <&clks IMX5_CLK_FEC_GATE>,
759 <&clks IMX5_CLK_FEC_GATE>; 761 <&clks IMX5_CLK_FEC_GATE>;
760 clock-names = "ipg", "ahb", "ptp"; 762 clock-names = "ipg", "ahb", "ptp";
761 status = "disabled"; 763 status = "disabled";
762 }; 764 };
@@ -766,7 +768,7 @@
766 reg = <0x63ff0000 0x1000>; 768 reg = <0x63ff0000 0x1000>;
767 interrupts = <92>; 769 interrupts = <92>;
768 clocks = <&clks IMX5_CLK_TVE_GATE>, 770 clocks = <&clks IMX5_CLK_TVE_GATE>,
769 <&clks IMX5_CLK_IPU_DI1_SEL>; 771 <&clks IMX5_CLK_IPU_DI1_SEL>;
770 clock-names = "tve", "di_sel"; 772 clock-names = "tve", "di_sel";
771 status = "disabled"; 773 status = "disabled";
772 774
@@ -782,7 +784,7 @@
782 reg = <0x63ff4000 0x1000>; 784 reg = <0x63ff4000 0x1000>;
783 interrupts = <9>; 785 interrupts = <9>;
784 clocks = <&clks IMX5_CLK_VPU_REFERENCE_GATE>, 786 clocks = <&clks IMX5_CLK_VPU_REFERENCE_GATE>,
785 <&clks IMX5_CLK_VPU_GATE>; 787 <&clks IMX5_CLK_VPU_GATE>;
786 clock-names = "per", "ahb"; 788 clock-names = "per", "ahb";
787 resets = <&src 1>; 789 resets = <&src 1>;
788 iram = <&ocram>; 790 iram = <&ocram>;
@@ -793,7 +795,7 @@
793 reg = <0x63ff8000 0x4000>; 795 reg = <0x63ff8000 0x4000>;
794 interrupts = <19 20>; 796 interrupts = <19 20>;
795 clocks = <&clks IMX5_CLK_SAHARA_IPG_GATE>, 797 clocks = <&clks IMX5_CLK_SAHARA_IPG_GATE>,
796 <&clks IMX5_CLK_SAHARA_IPG_GATE>; 798 <&clks IMX5_CLK_SAHARA_IPG_GATE>;
797 clock-names = "ipg", "ahb"; 799 clock-names = "ipg", "ahb";
798 }; 800 };
799 }; 801 };
diff --git a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
new file mode 100644
index 000000000000..e0c21727866d
--- /dev/null
+++ b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
@@ -0,0 +1,253 @@
1/*
2 * Copyright 2014-2016 Toradex AG
3 * Copyright 2012 Freescale Semiconductor, Inc.
4 * Copyright 2011 Linaro Ltd.
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
13 * version 2 as published by the Free Software Foundation.
14 *
15 * This file is distributed in the hope that it will be useful
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44/dts-v1/;
45
46#include <dt-bindings/input/input.h>
47#include <dt-bindings/interrupt-controller/irq.h>
48#include "imx6dl.dtsi"
49#include "imx6qdl-colibri.dtsi"
50
51/ {
52 model = "Toradex Colibri iMX6DL/S on Colibri Evaluation Board V3";
53 compatible = "toradex,colibri_imx6dl-eval-v3", "toradex,colibri_imx6dl",
54 "fsl,imx6dl";
55
56 aliases {
57 i2c0 = &i2c2;
58 i2c1 = &i2c3;
59 };
60
61 aliases {
62 rtc0 = &rtc_i2c;
63 rtc1 = &snvs_rtc;
64 };
65
66 clocks {
67 /* Fixed crystal dedicated to mcp251x */
68 clk16m: clk@1 {
69 compatible = "fixed-clock";
70 reg = <1>;
71 #clock-cells = <0>;
72 clock-frequency = <16000000>;
73 clock-output-names = "clk16m";
74 };
75 };
76
77 gpio-keys {
78 compatible = "gpio-keys";
79 pinctrl-names = "default";
80 pinctrl-0 = <&pinctrl_gpio_keys>;
81
82 wakeup {
83 label = "Wake-Up";
84 gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; /* SODIMM 45 */
85 linux,code = <KEY_WAKEUP>;
86 debounce-interval = <10>;
87 wakeup-source;
88 };
89 };
90
91 lcd_display: display@di0 {
92 compatible = "fsl,imx-parallel-display";
93 #address-cells = <1>;
94 #size-cells = <0>;
95 interface-pix-fmt = "bgr666";
96 pinctrl-names = "default";
97 pinctrl-0 = <&pinctrl_ipu1_lcdif>;
98 status = "okay";
99
100 port@0 {
101 reg = <0>;
102
103 lcd_display_in: endpoint {
104 remote-endpoint = <&ipu1_di0_disp0>;
105 };
106 };
107
108 port@1 {
109 reg = <1>;
110
111 lcd_display_out: endpoint {
112 remote-endpoint = <&lcd_panel_in>;
113 };
114 };
115 };
116
117 panel: panel {
118 /*
119 * edt,et057090dhu: EDT 5.7" LCD TFT
120 * edt,et070080dh6: EDT 7.0" LCD TFT
121 */
122 compatible = "edt,et057090dhu";
123 backlight = <&backlight>;
124
125 port {
126 lcd_panel_in: endpoint {
127 remote-endpoint = <&lcd_display_out>;
128 };
129 };
130 };
131};
132
133&backlight {
134 brightness-levels = <0 127 191 223 239 247 251 255>;
135 default-brightness-level = <1>;
136 status = "okay";
137};
138
139/* Colibri SSP */
140&ecspi4 {
141 status = "okay";
142
143 mcp251x0: mcp251x@1 {
144 compatible = "microchip,mcp2515";
145 reg = <0>;
146 clocks = <&clk16m>;
147 interrupt-parent = <&gpio3>;
148 interrupts = <27 0x2>;
149 spi-max-frequency = <10000000>;
150 status = "okay";
151 };
152};
153
154&hdmi {
155 status = "okay";
156};
157
158/*
159 * Colibri I2C: I2C3_SDA/SCL on SODIMM 194/196 (e.g. RTC on carrier board)
160 */
161&i2c3 {
162 status = "okay";
163
164 /* M41T0M6 real time clock on carrier board */
165 rtc_i2c: rtc@68 {
166 compatible = "st,m41t00";
167 reg = <0x68>;
168 };
169};
170
171&ipu1_di0_disp0 {
172 remote-endpoint = <&lcd_display_in>;
173};
174
175&pwm1 {
176 status = "okay";
177};
178
179&pwm2 {
180 status = "okay";
181};
182
183&pwm3 {
184 status = "okay";
185};
186
187&pwm4 {
188 status = "okay";
189};
190
191&reg_usb_host_vbus {
192 status = "okay";
193};
194
195&uart1 {
196 status = "okay";
197};
198
199&uart2 {
200 status = "okay";
201};
202
203&uart3 {
204 status = "okay";
205};
206
207&usbh1 {
208 vbus-supply = <&reg_usb_host_vbus>;
209 status = "okay";
210};
211
212&usbotg {
213 status = "okay";
214};
215
216/* Colibri MMC */
217&usdhc1 {
218 pinctrl-names = "default";
219 pinctrl-0 = <&pinctrl_mmc_cd>;
220 cd-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>; /* MMCD */
221 status = "okay";
222};
223
224&weim {
225 status = "okay";
226
227 /* weim memory map: 32MB on CS0, 32MB on CS1, 32MB on CS2 */
228 ranges = <0 0 0x08000000 0x02000000
229 1 0 0x0a000000 0x02000000
230 2 0 0x0c000000 0x02000000>;
231
232 /* SRAM on Colibri nEXT_CS0 */
233 sram@0,0 {
234 compatible = "cypress,cy7c1019dv33-10zsxi, mtd-ram";
235 reg = <0 0 0x00010000>;
236 #address-cells = <1>;
237 #size-cells = <1>;
238 bank-width = <2>;
239 fsl,weim-cs-timing = <0x00010081 0x00000000 0x04000000
240 0x00000000 0x04000040 0x00000000>;
241 };
242
243 /* SRAM on Colibri nEXT_CS1 */
244 sram@1,0 {
245 compatible = "cypress,cy7c1019dv33-10zsxi, mtd-ram";
246 reg = <1 0 0x00010000>;
247 #address-cells = <1>;
248 #size-cells = <1>;
249 bank-width = <2>;
250 fsl,weim-cs-timing = <0x00010081 0x00000000 0x04000000
251 0x00000000 0x04000040 0x00000000>;
252 };
253};
diff --git a/arch/arm/boot/dts/imx6dl-icore.dts b/arch/arm/boot/dts/imx6dl-icore.dts
new file mode 100644
index 000000000000..aec332c14af1
--- /dev/null
+++ b/arch/arm/boot/dts/imx6dl-icore.dts
@@ -0,0 +1,59 @@
1/*
2 * Copyright (C) 2016 Amarula Solutions B.V.
3 * Copyright (C) 2016 Engicam S.r.l.
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
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 , 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
45#include "imx6dl.dtsi"
46#include "imx6qdl-icore.dtsi"
47
48/ {
49 model = "Engicam i.CoreM6 DualLite/Solo Starter Kit";
50 compatible = "engicam,imx6-icore", "fsl,imx6dl";
51};
52
53&can1 {
54 status = "okay";
55};
56
57&can2 {
58 status = "okay";
59};
diff --git a/arch/arm/boot/dts/imx6dl-riotboard.dts b/arch/arm/boot/dts/imx6dl-riotboard.dts
index 75d73437adf7..2cb72824e800 100644
--- a/arch/arm/boot/dts/imx6dl-riotboard.dts
+++ b/arch/arm/boot/dts/imx6dl-riotboard.dts
@@ -390,7 +390,7 @@
390 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030 /* AR8035 pin strapping: MODE#3: pull up */ 390 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030 /* AR8035 pin strapping: MODE#3: pull up */
391 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x130b0 /* AR8035 pin strapping: MODE#0: pull down */ 391 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x130b0 /* AR8035 pin strapping: MODE#0: pull down */
392 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8 /* GPIO16 -> AR8035 25MHz */ 392 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8 /* GPIO16 -> AR8035 25MHz */
393 MX6QDL_PAD_EIM_D31__GPIO3_IO31 0x130b0 /* RGMII_nRST */ 393 MX6QDL_PAD_EIM_D31__GPIO3_IO31 0x130b0 /* RGMII_nRST */
394 MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x180b0 /* AR8035 interrupt */ 394 MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x180b0 /* AR8035 interrupt */
395 MX6QDL_PAD_GPIO_6__ENET_IRQ 0x000b1 395 MX6QDL_PAD_GPIO_6__ENET_IRQ 0x000b1
396 >; 396 >;
diff --git a/arch/arm/boot/dts/imx6dl-tx6dl-comtft.dts b/arch/arm/boot/dts/imx6dl-tx6dl-comtft.dts
index 063fe7510da5..aac42ac465b6 100644
--- a/arch/arm/boot/dts/imx6dl-tx6dl-comtft.dts
+++ b/arch/arm/boot/dts/imx6dl-tx6dl-comtft.dts
@@ -105,7 +105,7 @@
105 pixelclk-active = <1>; 105 pixelclk-active = <1>;
106 }; 106 };
107 }; 107 };
108 }; 108 };
109}; 109};
110 110
111&can1 { 111&can1 {
diff --git a/arch/arm/boot/dts/imx6dl-tx6u-801x.dts b/arch/arm/boot/dts/imx6dl-tx6u-801x.dts
index b7a72840b7f0..d1f1298ec55a 100644
--- a/arch/arm/boot/dts/imx6dl-tx6u-801x.dts
+++ b/arch/arm/boot/dts/imx6dl-tx6u-801x.dts
@@ -199,7 +199,7 @@
199 pixelclk-active = <0>; 199 pixelclk-active = <0>;
200 }; 200 };
201 }; 201 };
202 }; 202 };
203}; 203};
204 204
205&ipu1_di0_disp0 { 205&ipu1_di0_disp0 {
diff --git a/arch/arm/boot/dts/imx6q-apalis-ixora.dts b/arch/arm/boot/dts/imx6q-apalis-ixora.dts
index 207b85b91ada..0ea75f7b6039 100644
--- a/arch/arm/boot/dts/imx6q-apalis-ixora.dts
+++ b/arch/arm/boot/dts/imx6q-apalis-ixora.dts
@@ -147,28 +147,6 @@
147 gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>; 147 gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
148 }; 148 };
149 }; 149 };
150
151 pwmleds {
152 compatible = "pwm-leds";
153
154 ledpwm1 {
155 label = "PWM1";
156 pwms = <&pwm1 0 50000>;
157 max-brightness = <255>;
158 };
159
160 ledpwm2 {
161 label = "PWM2";
162 pwms = <&pwm2 0 50000>;
163 max-brightness = <255>;
164 };
165
166 ledpwm3 {
167 label = "PWM3";
168 pwms = <&pwm3 0 50000>;
169 max-brightness = <255>;
170 };
171 };
172}; 150};
173 151
174&backlight { 152&backlight {
diff --git a/arch/arm/boot/dts/imx6q-b650v3.dts b/arch/arm/boot/dts/imx6q-b650v3.dts
index d85388725426..1dcaee23ed9c 100644
--- a/arch/arm/boot/dts/imx6q-b650v3.dts
+++ b/arch/arm/boot/dts/imx6q-b650v3.dts
@@ -98,3 +98,9 @@
98 line-name = "PCA9539-P05"; 98 line-name = "PCA9539-P05";
99 }; 99 };
100}; 100};
101
102&usbphy1 {
103 fsl,tx-cal-45-dn-ohms = <55>;
104 fsl,tx-cal-45-dp-ohms = <55>;
105 fsl,tx-d-cal = <100>;
106};
diff --git a/arch/arm/boot/dts/imx6q-evi.dts b/arch/arm/boot/dts/imx6q-evi.dts
index 6de21ff47c3a..7c7c1a855ece 100644
--- a/arch/arm/boot/dts/imx6q-evi.dts
+++ b/arch/arm/boot/dts/imx6q-evi.dts
@@ -232,10 +232,7 @@
232}; 232};
233 233
234&weim { 234&weim {
235 #address-cells = <2>;
236 #size-cells = <1>;
237 ranges = <0 0 0x08000000 0x08000000>; 235 ranges = <0 0 0x08000000 0x08000000>;
238 fsl,weim-cs-gpr = <&gpr>;
239 pinctrl-names = "default"; 236 pinctrl-names = "default";
240 pinctrl-0 = <&pinctrl_weimfpga &pinctrl_weimcs>; 237 pinctrl-0 = <&pinctrl_weimfpga &pinctrl_weimcs>;
241 status = "okay"; 238 status = "okay";
diff --git a/arch/arm/boot/dts/imx6q-icore.dts b/arch/arm/boot/dts/imx6q-icore.dts
new file mode 100644
index 000000000000..025f54350c28
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-icore.dts
@@ -0,0 +1,59 @@
1/*
2 * Copyright (C) 2016 Amarula Solutions B.V.
3 * Copyright (C) 2016 Engicam S.r.l.
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
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 , 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
45#include "imx6q.dtsi"
46#include "imx6qdl-icore.dtsi"
47
48/ {
49 model = "Engicam i.CoreM6 Quad/Dual Starter Kit";
50 compatible = "engicam,imx6-icore", "fsl,imx6q";
51};
52
53&can1 {
54 status = "okay";
55};
56
57&can2 {
58 status = "okay";
59};
diff --git a/arch/arm/boot/dts/imx6q-nitrogen6_som2.dts b/arch/arm/boot/dts/imx6q-nitrogen6_som2.dts
new file mode 100644
index 000000000000..cf4feefe02c5
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-nitrogen6_som2.dts
@@ -0,0 +1,53 @@
1/*
2 * Copyright 2016 Boundary Devices, Inc.
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41/dts-v1/;
42
43#include "imx6q.dtsi"
44#include "imx6qdl-nitrogen6_som2.dtsi"
45
46/ {
47 model = "Boundary Devices i.MX6 Quad Nitrogen6_SOM2 Board";
48 compatible = "boundary,imx6q-nitrogen6_som2", "fsl,imx6q";
49};
50
51&sata {
52 status = "okay";
53};
diff --git a/arch/arm/boot/dts/imx6q-novena.dts b/arch/arm/boot/dts/imx6q-novena.dts
index 1723e89e3acc..758bca96786f 100644
--- a/arch/arm/boot/dts/imx6q-novena.dts
+++ b/arch/arm/boot/dts/imx6q-novena.dts
@@ -451,6 +451,10 @@
451 status = "okay"; 451 status = "okay";
452}; 452};
453 453
454&pwm1 {
455 status = "okay";
456};
457
454&sata { 458&sata {
455 target-supply = <&reg_sata>; 459 target-supply = <&reg_sata>;
456 fsl,transmit-level-mV = <1025>; 460 fsl,transmit-level-mV = <1025>;
diff --git a/arch/arm/boot/dts/imx6q-phytec-pbab01.dts b/arch/arm/boot/dts/imx6q-phytec-pbab01.dts
index c139ac0ebe15..1f4771304da8 100644
--- a/arch/arm/boot/dts/imx6q-phytec-pbab01.dts
+++ b/arch/arm/boot/dts/imx6q-phytec-pbab01.dts
@@ -23,5 +23,5 @@
23}; 23};
24 24
25&sata { 25&sata {
26 status = "okay"; 26 status = "okay";
27}; 27};
diff --git a/arch/arm/boot/dts/imx6q-tx6q-1010-comtft.dts b/arch/arm/boot/dts/imx6q-tx6q-1010-comtft.dts
index 65e95ae7509a..71746edc2ee9 100644
--- a/arch/arm/boot/dts/imx6q-tx6q-1010-comtft.dts
+++ b/arch/arm/boot/dts/imx6q-tx6q-1010-comtft.dts
@@ -105,7 +105,7 @@
105 pixelclk-active = <1>; 105 pixelclk-active = <1>;
106 }; 106 };
107 }; 107 };
108 }; 108 };
109}; 109};
110 110
111&can1 { 111&can1 {
diff --git a/arch/arm/boot/dts/imx6q-tx6q-1010.dts b/arch/arm/boot/dts/imx6q-tx6q-1010.dts
index 20cd0e7b3e21..f9cd21a41a79 100644
--- a/arch/arm/boot/dts/imx6q-tx6q-1010.dts
+++ b/arch/arm/boot/dts/imx6q-tx6q-1010.dts
@@ -199,7 +199,7 @@
199 pixelclk-active = <0>; 199 pixelclk-active = <0>;
200 }; 200 };
201 }; 201 };
202 }; 202 };
203}; 203};
204 204
205&ipu1_di0_disp0 { 205&ipu1_di0_disp0 {
diff --git a/arch/arm/boot/dts/imx6q-tx6q-1020-comtft.dts b/arch/arm/boot/dts/imx6q-tx6q-1020-comtft.dts
index 9ed243b704ff..959ff3fb7304 100644
--- a/arch/arm/boot/dts/imx6q-tx6q-1020-comtft.dts
+++ b/arch/arm/boot/dts/imx6q-tx6q-1020-comtft.dts
@@ -105,7 +105,7 @@
105 pixelclk-active = <1>; 105 pixelclk-active = <1>;
106 }; 106 };
107 }; 107 };
108 }; 108 };
109}; 109};
110 110
111&can1 { 111&can1 {
diff --git a/arch/arm/boot/dts/imx6q-tx6q-1020.dts b/arch/arm/boot/dts/imx6q-tx6q-1020.dts
index 347b531d3763..b49133d25d80 100644
--- a/arch/arm/boot/dts/imx6q-tx6q-1020.dts
+++ b/arch/arm/boot/dts/imx6q-tx6q-1020.dts
@@ -199,7 +199,7 @@
199 pixelclk-active = <0>; 199 pixelclk-active = <0>;
200 }; 200 };
201 }; 201 };
202 }; 202 };
203}; 203};
204 204
205&ds1339 { 205&ds1339 {
diff --git a/arch/arm/boot/dts/imx6q-utilite-pro.dts b/arch/arm/boot/dts/imx6q-utilite-pro.dts
index 61990630a748..22009947cebc 100644
--- a/arch/arm/boot/dts/imx6q-utilite-pro.dts
+++ b/arch/arm/boot/dts/imx6q-utilite-pro.dts
@@ -68,7 +68,41 @@
68 label = "Power Button"; 68 label = "Power Button";
69 gpios = <&gpio1 29 GPIO_ACTIVE_LOW>; 69 gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
70 linux,code = <KEY_POWER>; 70 linux,code = <KEY_POWER>;
71 gpio-key,wakeup; 71 wakeup-source;
72 };
73 };
74
75 i2cmux {
76 compatible = "i2c-mux-gpio";
77 pinctrl-names = "default";
78 pinctrl-0 = <&pinctrl_i2c1mux>;
79 #address-cells = <1>;
80 #size-cells = <0>;
81
82 mux-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
83 i2c-parent = <&i2c1>;
84
85 i2c@0 {
86 reg = <0>;
87 #address-cells = <1>;
88 #size-cells = <0>;
89
90 eeprom@50 {
91 compatible = "at24,24c02";
92 reg = <0x50>;
93 pagesize = <16>;
94 };
95
96 em3027: rtc@56 {
97 compatible = "emmicro,em3027";
98 reg = <0x56>;
99 };
100 };
101
102 i2c_dvi_ddc: i2c@1 {
103 reg = <1>;
104 #address-cells = <1>;
105 #size-cells = <0>;
72 }; 106 };
73 }; 107 };
74}; 108};
@@ -82,17 +116,6 @@
82 pinctrl-names = "default"; 116 pinctrl-names = "default";
83 pinctrl-0 = <&pinctrl_i2c1>; 117 pinctrl-0 = <&pinctrl_i2c1>;
84 status = "okay"; 118 status = "okay";
85
86 eeprom@50 {
87 compatible = "at24,24c02";
88 reg = <0x50>;
89 pagesize = <16>;
90 };
91
92 em3027: rtc@56 {
93 compatible = "emmicro,em3027";
94 reg = <0x56>;
95 };
96}; 119};
97 120
98&i2c2 { 121&i2c2 {
@@ -115,6 +138,12 @@
115 >; 138 >;
116 }; 139 };
117 140
141 pinctrl_i2c1mux: i2c1muxgrp {
142 fsl,pins = <
143 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b0
144 >;
145 };
146
118 pinctrl_i2c2: i2c2grp { 147 pinctrl_i2c2: i2c2grp {
119 fsl,pins = < 148 fsl,pins = <
120 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 149 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
diff --git a/arch/arm/boot/dts/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
index 99e323b57261..8c8a049eb3d0 100644
--- a/arch/arm/boot/dts/imx6qdl-apalis.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
@@ -49,7 +49,10 @@
49 49
50 backlight: backlight { 50 backlight: backlight {
51 compatible = "pwm-backlight"; 51 compatible = "pwm-backlight";
52 pinctrl-names = "default";
53 pinctrl-0 = <&pinctrl_gpio_bl_on>;
52 pwms = <&pwm4 0 5000000>; 54 pwms = <&pwm4 0 5000000>;
55 enable-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
53 status = "disabled"; 56 status = "disabled";
54 }; 57 };
55 58
@@ -620,6 +623,12 @@
620 >; 623 >;
621 }; 624 };
622 625
626 pinctrl_gpio_bl_on: gpioblon {
627 fsl,pins = <
628 MX6QDL_PAD_EIM_DA13__GPIO3_IO13 0x1b0b0
629 >;
630 };
631
623 pinctrl_gpio_keys: gpio1io04grp { 632 pinctrl_gpio_keys: gpio1io04grp {
624 fsl,pins = < 633 fsl,pins = <
625 /* Power button */ 634 /* Power button */
diff --git a/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi b/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi
index edbce222c782..5e7792d6bf58 100644
--- a/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi
@@ -347,13 +347,13 @@
347 fsl,pins = < 347 fsl,pins = <
348 MX6QDL_PAD_DI0_PIN4__GPIO4_IO20 0x100b1 348 MX6QDL_PAD_DI0_PIN4__GPIO4_IO20 0x100b1
349 MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12 0x100b1 349 MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12 0x100b1
350 MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x100b1 350 MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x100b1
351 MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14 0x100b1 351 MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14 0x100b1
352 MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x100b1 352 MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x100b1
353 MX6QDL_PAD_DISP0_DAT22__GPIO5_IO16 0x100b1 353 MX6QDL_PAD_DISP0_DAT22__GPIO5_IO16 0x100b1
354 MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x100b1 354 MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x100b1
355 MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x100b1 355 MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x100b1
356 MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 0x100b1 356 MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 0x100b1
357 >; 357 >;
358 }; 358 };
359 359
diff --git a/arch/arm/boot/dts/imx6qdl-colibri.dtsi b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
new file mode 100644
index 000000000000..e6faa653f91a
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
@@ -0,0 +1,890 @@
1/*
2 * Copyright 2014-2016 Toradex AG
3 * Copyright 2012 Freescale Semiconductor, Inc.
4 * Copyright 2011 Linaro Ltd.
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
13 * version 2 as published by the Free Software Foundation.
14 *
15 * This file is distributed in the hope that it will be useful
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44#include <dt-bindings/gpio/gpio.h>
45
46/ {
47 model = "Toradex Colibri iMX6DL/S Module";
48 compatible = "toradex,colibri_imx6dl", "fsl,imx6dl";
49
50 backlight: backlight {
51 compatible = "pwm-backlight";
52 pinctrl-names = "default";
53 pinctrl-0 = <&pinctrl_gpio_bl_on>;
54 pwms = <&pwm3 0 5000000>;
55 enable-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>; /* Colibri BL_ON */
56 status = "disabled";
57 };
58
59 reg_1p8v: regulator-1p8v {
60 compatible = "regulator-fixed";
61 regulator-name = "1P8V";
62 regulator-min-microvolt = <1800000>;
63 regulator-max-microvolt = <1800000>;
64 regulator-always-on;
65 };
66
67 reg_2p5v: regulator-2p5v {
68 compatible = "regulator-fixed";
69 regulator-name = "2P5V";
70 regulator-min-microvolt = <2500000>;
71 regulator-max-microvolt = <2500000>;
72 regulator-always-on;
73 };
74
75 reg_3p3v: regulator-3p3v {
76 compatible = "regulator-fixed";
77 regulator-name = "3P3V";
78 regulator-min-microvolt = <3300000>;
79 regulator-max-microvolt = <3300000>;
80 regulator-always-on;
81 };
82
83 reg_usb_host_vbus: regulator-usb-host-vbus {
84 compatible = "regulator-fixed";
85 pinctrl-names = "default";
86 pinctrl-0 = <&pinctrl_regulator_usbh_pwr>;
87 regulator-name = "usb_host_vbus";
88 regulator-min-microvolt = <5000000>;
89 regulator-max-microvolt = <5000000>;
90 gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>; /* USBH_PEN */
91 status = "disabled";
92 };
93
94 sound {
95 compatible = "fsl,imx-audio-sgtl5000";
96 model = "imx6dl-colibri-sgtl5000";
97 ssi-controller = <&ssi1>;
98 audio-codec = <&codec>;
99 audio-routing =
100 "Headphone Jack", "HP_OUT",
101 "LINE_IN", "Line In Jack",
102 "MIC_IN", "Mic Jack",
103 "Mic Jack", "Mic Bias";
104 mux-int-port = <1>;
105 mux-ext-port = <5>;
106 };
107
108 /* Optional S/PDIF in on SODIMM 88 and out on SODIMM 90, 137 or 168 */
109 sound_spdif: sound-spdif {
110 compatible = "fsl,imx-audio-spdif";
111 model = "imx-spdif";
112 spdif-controller = <&spdif>;
113 spdif-in;
114 spdif-out;
115 status = "disabled";
116 };
117};
118
119&audmux {
120 pinctrl-names = "default";
121 pinctrl-0 = <&pinctrl_audmux &pinctrl_mic_gnd>;
122 status = "okay";
123};
124
125/* Optional on SODIMM 55/63 */
126&can1 {
127 pinctrl-names = "default";
128 pinctrl-0 = <&pinctrl_flexcan1>;
129 status = "disabled";
130};
131
132/* Optional on SODIMM 178/188 */
133&can2 {
134 pinctrl-names = "default";
135 pinctrl-0 = <&pinctrl_flexcan2>;
136 status = "disabled";
137};
138
139/* Colibri SSP */
140&ecspi4 {
141 fsl,spi-num-chipselects = <1>;
142 cs-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
143 pinctrl-names = "default";
144 pinctrl-0 = <&pinctrl_ecspi4>;
145 status = "disabled";
146};
147
148&fec {
149 pinctrl-names = "default";
150 pinctrl-0 = <&pinctrl_enet>;
151 phy-mode = "rmii";
152 status = "okay";
153};
154
155&hdmi {
156 pinctrl-names = "default";
157 pinctrl-0 = <&pinctrl_hdmi_ddc>;
158 status = "disabled";
159};
160
161/*
162 * PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and
163 * touch screen controller
164 */
165&i2c2 {
166 clock-frequency = <100000>;
167 pinctrl-names = "default";
168 pinctrl-0 = <&pinctrl_i2c2>;
169 status = "okay";
170
171 pmic: pfuze100@08 {
172 compatible = "fsl,pfuze100";
173 reg = <0x08>;
174
175 regulators {
176 sw1a_reg: sw1ab {
177 regulator-min-microvolt = <300000>;
178 regulator-max-microvolt = <1875000>;
179 regulator-boot-on;
180 regulator-always-on;
181 regulator-ramp-delay = <6250>;
182 };
183
184 sw1c_reg: sw1c {
185 regulator-min-microvolt = <300000>;
186 regulator-max-microvolt = <1875000>;
187 regulator-boot-on;
188 regulator-always-on;
189 regulator-ramp-delay = <6250>;
190 };
191
192 sw3a_reg: sw3a {
193 regulator-min-microvolt = <400000>;
194 regulator-max-microvolt = <1975000>;
195 regulator-boot-on;
196 regulator-always-on;
197 };
198
199 swbst_reg: swbst {
200 regulator-min-microvolt = <5000000>;
201 regulator-max-microvolt = <5150000>;
202 regulator-boot-on;
203 regulator-always-on;
204 };
205
206 snvs_reg: vsnvs {
207 regulator-min-microvolt = <1000000>;
208 regulator-max-microvolt = <3000000>;
209 regulator-boot-on;
210 regulator-always-on;
211 };
212
213 vref_reg: vrefddr {
214 regulator-boot-on;
215 regulator-always-on;
216 };
217
218 /* vgen1: unused */
219
220 vgen2_reg: vgen2 {
221 regulator-min-microvolt = <800000>;
222 regulator-max-microvolt = <1550000>;
223 regulator-boot-on;
224 regulator-always-on;
225 };
226
227 /* vgen3: unused */
228
229 vgen4_reg: vgen4 {
230 regulator-min-microvolt = <1800000>;
231 regulator-max-microvolt = <3300000>;
232 regulator-boot-on;
233 regulator-always-on;
234 };
235
236 vgen5_reg: vgen5 {
237 regulator-min-microvolt = <1800000>;
238 regulator-max-microvolt = <3300000>;
239 regulator-boot-on;
240 regulator-always-on;
241 };
242
243 vgen6_reg: vgen6 {
244 regulator-min-microvolt = <1800000>;
245 regulator-max-microvolt = <3300000>;
246 regulator-boot-on;
247 regulator-always-on;
248 };
249 };
250 };
251
252 codec: sgtl5000@0a {
253 compatible = "fsl,sgtl5000";
254 reg = <0x0a>;
255 clocks = <&clks IMX6QDL_CLK_CKO>;
256 VDDA-supply = <&reg_2p5v>;
257 VDDIO-supply = <&reg_3p3v>;
258 };
259
260 /* STMPE811 touch screen controller */
261 stmpe811@41 {
262 compatible = "st,stmpe811";
263 pinctrl-names = "default";
264 pinctrl-0 = <&pinctrl_touch_int>;
265 #address-cells = <1>;
266 #size-cells = <0>;
267 reg = <0x41>;
268 interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
269 interrupt-parent = <&gpio6>;
270 interrupt-controller;
271 id = <0>;
272 blocks = <0x5>;
273 irq-trigger = <0x1>;
274
275 stmpe_touchscreen {
276 compatible = "st,stmpe-ts";
277 reg = <0>;
278 /* 3.25 MHz ADC clock speed */
279 st,adc-freq = <1>;
280 /* 8 sample average control */
281 st,ave-ctrl = <3>;
282 /* 7 length fractional part in z */
283 st,fraction-z = <7>;
284 /*
285 * 50 mA typical 80 mA max touchscreen drivers
286 * current limit value
287 */
288 st,i-drive = <1>;
289 /* 12-bit ADC */
290 st,mod-12b = <1>;
291 /* internal ADC reference */
292 st,ref-sel = <0>;
293 /* ADC converstion time: 80 clocks */
294 st,sample-time = <4>;
295 /* 1 ms panel driver settling time */
296 st,settling = <3>;
297 /* 5 ms touch detect interrupt delay */
298 st,touch-det-delay = <5>;
299 };
300 };
301};
302
303/*
304 * I2C3_SDA/SCL on SODIMM 194/196 (e.g. RTC on carrier board)
305 */
306&i2c3 {
307 clock-frequency = <100000>;
308 pinctrl-names = "default", "recovery";
309 pinctrl-0 = <&pinctrl_i2c3>;
310 pinctrl-1 = <&pinctrl_i2c3_recovery>;
311 scl-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
312 sda-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
313 status = "disabled";
314};
315
316/* Colibri PWM<B> */
317&pwm1 {
318 pinctrl-names = "default";
319 pinctrl-0 = <&pinctrl_pwm1>;
320 status = "disabled";
321};
322
323/* Colibri PWM<D> */
324&pwm2 {
325 pinctrl-names = "default";
326 pinctrl-0 = <&pinctrl_pwm2>;
327 status = "disabled";
328};
329
330/* Colibri PWM<A> */
331&pwm3 {
332 pinctrl-names = "default";
333 pinctrl-0 = <&pinctrl_pwm3>;
334 status = "disabled";
335};
336
337/* Colibri PWM<C> */
338&pwm4 {
339 pinctrl-names = "default";
340 pinctrl-0 = <&pinctrl_pwm4>;
341 status = "disabled";
342};
343
344/* Optional S/PDIF out on SODIMM 137 */
345&spdif {
346 pinctrl-names = "default";
347 pinctrl-0 = <&pinctrl_spdif>;
348 status = "disabled";
349};
350
351&ssi1 {
352 status = "okay";
353};
354
355/* Colibri UART_A */
356&uart1 {
357 pinctrl-names = "default";
358 pinctrl-0 = <&pinctrl_uart1_dte &pinctrl_uart1_ctrl>;
359 fsl,dte-mode;
360 uart-has-rtscts;
361 status = "disabled";
362};
363
364/* Colibri UART_B */
365&uart2 {
366 pinctrl-names = "default";
367 pinctrl-0 = <&pinctrl_uart2_dte>;
368 fsl,dte-mode;
369 uart-has-rtscts;
370 status = "disabled";
371};
372
373/* Colibri UART_C */
374&uart3 {
375 pinctrl-names = "default";
376 pinctrl-0 = <&pinctrl_uart3_dte>;
377 fsl,dte-mode;
378 status = "disabled";
379};
380
381&usbotg {
382 pinctrl-names = "default";
383 disable-over-current;
384 dr_mode = "peripheral";
385 status = "disabled";
386};
387
388/* Colibri MMC */
389&usdhc1 {
390 pinctrl-names = "default";
391 pinctrl-0 = <&pinctrl_usdhc1>;
392 vqmmc-supply = <&reg_3p3v>;
393 bus-width = <4>;
394 voltage-ranges = <3300 3300>;
395 status = "disabled";
396};
397
398/* eMMC */
399&usdhc3 {
400 pinctrl-names = "default";
401 pinctrl-0 = <&pinctrl_usdhc3>;
402 vqmmc-supply = <&reg_3p3v>;
403 bus-width = <8>;
404 voltage-ranges = <3300 3300>;
405 non-removable;
406 status = "okay";
407};
408
409&weim {
410 pinctrl-names = "default";
411 pinctrl-0 = <&pinctrl_weim_sram &pinctrl_weim_cs0
412 &pinctrl_weim_cs1 &pinctrl_weim_cs2
413 &pinctrl_weim_rdnwr &pinctrl_weim_npwe>;
414 #address-cells = <2>;
415 #size-cells = <1>;
416 status = "disabled";
417};
418
419&iomuxc {
420 pinctrl_audmux: audmuxgrp {
421 fsl,pins = <
422 MX6QDL_PAD_KEY_COL0__AUD5_TXC 0x130b0
423 MX6QDL_PAD_KEY_ROW0__AUD5_TXD 0x130b0
424 MX6QDL_PAD_KEY_COL1__AUD5_TXFS 0x130b0
425 MX6QDL_PAD_KEY_ROW1__AUD5_RXD 0x130b0
426 /* SGTL5000 sys_mclk */
427 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x000b0
428 >;
429 };
430
431 pinctrl_cam_mclk: cammclkgrp {
432 fsl,pins = <
433 /* Parallel Camera CAM sys_mclk */
434 MX6QDL_PAD_NANDF_CS2__CCM_CLKO2 0x00b0
435 >;
436 };
437
438 pinctrl_ecspi4: ecspi4grp {
439 fsl,pins = <
440 MX6QDL_PAD_EIM_D22__ECSPI4_MISO 0x100b1
441 MX6QDL_PAD_EIM_D28__ECSPI4_MOSI 0x100b1
442 MX6QDL_PAD_EIM_D21__ECSPI4_SCLK 0x100b1
443 /* SPI CS */
444 MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x000b1
445 >;
446 };
447
448 pinctrl_enet: enetgrp {
449 fsl,pins = <
450 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
451 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
452 MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1b0b0
453 MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1b0b0
454 MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1b0b0
455 MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1b0b0
456 MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x1b0b0
457 MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x1b0b0
458 MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1b0b0
459 MX6QDL_PAD_GPIO_16__ENET_REF_CLK ((1<<30) | 0x1b0b0)
460 >;
461 };
462
463 pinctrl_flexcan1: flexcan1grp {
464 fsl,pins = <
465 MX6QDL_PAD_GPIO_7__FLEXCAN1_TX 0x1b0b0
466 MX6QDL_PAD_GPIO_8__FLEXCAN1_RX 0x1b0b0
467 >;
468 };
469
470 pinctrl_flexcan2: flexcan2grp {
471 fsl,pins = <
472 MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x1b0b0
473 MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x1b0b0
474 >;
475 };
476
477 pinctrl_gpio_bl_on: gpioblon {
478 fsl,pins = <
479 MX6QDL_PAD_EIM_D26__GPIO3_IO26 0x1b0b0
480 >;
481 };
482
483 pinctrl_gpio_keys: gpiokeys {
484 fsl,pins = <
485 /* Power button */
486 MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x1b0b0
487 >;
488 };
489
490 pinctrl_hdmi_ddc: hdmiddcgrp {
491 fsl,pins = <
492 MX6QDL_PAD_KEY_COL3__HDMI_TX_DDC_SCL 0x4001b8b1
493 MX6QDL_PAD_KEY_ROW3__HDMI_TX_DDC_SDA 0x4001b8b1
494 >;
495 };
496
497 pinctrl_i2c2: i2c2grp {
498 fsl,pins = <
499 MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1
500 MX6QDL_PAD_EIM_D16__I2C2_SDA 0x4001b8b1
501 >;
502 };
503
504 pinctrl_i2c3: i2c3grp {
505 fsl,pins = <
506 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
507 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
508 >;
509 };
510
511 pinctrl_i2c3_recovery: i2c3recoverygrp {
512 fsl,pins = <
513 MX6QDL_PAD_GPIO_3__GPIO1_IO03 0x4001b8b1
514 MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x4001b8b1
515 >;
516 };
517
518 pinctrl_ipu1_csi0: ipu1csi0grp { /* Parallel Camera */
519 fsl,pins = <
520 MX6QDL_PAD_EIM_A17__IPU1_CSI1_DATA12 0xb0b1
521 MX6QDL_PAD_EIM_A18__IPU1_CSI1_DATA13 0xb0b1
522 MX6QDL_PAD_EIM_A19__IPU1_CSI1_DATA14 0xb0b1
523 MX6QDL_PAD_EIM_A20__IPU1_CSI1_DATA15 0xb0b1
524 MX6QDL_PAD_EIM_A21__IPU1_CSI1_DATA16 0xb0b1
525 MX6QDL_PAD_EIM_A22__IPU1_CSI1_DATA17 0xb0b1
526 MX6QDL_PAD_EIM_A23__IPU1_CSI1_DATA18 0xb0b1
527 MX6QDL_PAD_EIM_A24__IPU1_CSI1_DATA19 0xb0b1
528 MX6QDL_PAD_EIM_D17__IPU1_CSI1_PIXCLK 0xb0b1
529 MX6QDL_PAD_EIM_EB3__IPU1_CSI1_HSYNC 0xb0b1
530 MX6QDL_PAD_EIM_D29__IPU1_CSI1_VSYNC 0xb0b1
531 /* Disable PWM pins on camera interface */
532 MX6QDL_PAD_SD4_DAT1__GPIO2_IO09 0x40
533 MX6QDL_PAD_GPIO_1__GPIO1_IO01 0x40
534 >;
535 };
536
537 pinctrl_ipu1_lcdif: ipu1lcdifgrp {
538 fsl,pins = <
539 MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0xa1
540 MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0xa1
541 MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0xa1
542 MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0xa1
543 MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0xa1
544 MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0xa1
545 MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0xa1
546 MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0xa1
547 MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0xa1
548 MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0xa1
549 MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0xa1
550 MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0xa1
551 MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0xa1
552 MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0xa1
553 MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0xa1
554 MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0xa1
555 MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0xa1
556 MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0xa1
557 MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0xa1
558 MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0xa1
559 MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0xa1
560 MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0xa1
561 >;
562 };
563
564 pinctrl_mic_gnd: gpiomicgnd {
565 fsl,pins = <
566 /* Controls Mic GND, PU or '1' pull Mic GND to GND */
567 MX6QDL_PAD_RGMII_TD1__GPIO6_IO21 0x1b0b0
568 >;
569 };
570
571 pinctrl_mmc_cd: gpiommccd {
572 fsl,pins = <
573 MX6QDL_PAD_NANDF_D5__GPIO2_IO05 0x80000000
574 >;
575 };
576
577 pinctrl_pwm1: pwm1grp {
578 fsl,pins = <
579 MX6QDL_PAD_GPIO_9__PWM1_OUT 0x1b0b1
580 >;
581 };
582
583 pinctrl_pwm2: pwm2grp {
584 fsl,pins = <
585 MX6QDL_PAD_GPIO_1__PWM2_OUT 0x1b0b1
586 MX6QDL_PAD_EIM_A21__GPIO2_IO17 0x00040
587 >;
588 };
589
590 pinctrl_pwm3: pwm3grp {
591 fsl,pins = <
592 MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1
593 MX6QDL_PAD_EIM_A22__GPIO2_IO16 0x00040
594 >;
595 };
596
597 pinctrl_pwm4: pwm4grp {
598 fsl,pins = <
599 MX6QDL_PAD_SD4_DAT2__PWM4_OUT 0x1b0b1
600 >;
601 };
602
603 pinctrl_regulator_usbh_pwr: gpioregusbhpwrgrp {
604 fsl,pins = <
605 /* USBH_EN */
606 MX6QDL_PAD_EIM_D31__GPIO3_IO31 0x0f058
607 >;
608 };
609
610 pinctrl_spdif: spdifgrp {
611 fsl,pins = <
612 MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x1b0b0
613 >;
614 };
615
616 pinctrl_touch_int: gpiotouchintgrp {
617 fsl,pins = <
618 /* STMPE811 interrupt */
619 MX6QDL_PAD_RGMII_TD0__GPIO6_IO20 0x1b0b0
620 >;
621 };
622
623 pinctrl_uart1_dce: uart1dcegrp {
624 fsl,pins = <
625 MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1
626 MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1
627 >;
628 };
629
630 /* DTE mode */
631 pinctrl_uart1_dte: uart1dtegrp {
632 fsl,pins = <
633 MX6QDL_PAD_CSI0_DAT10__UART1_RX_DATA 0x1b0b1
634 MX6QDL_PAD_CSI0_DAT11__UART1_TX_DATA 0x1b0b1
635 MX6QDL_PAD_EIM_D19__UART1_RTS_B 0x1b0b1
636 MX6QDL_PAD_EIM_D20__UART1_CTS_B 0x1b0b1
637 >;
638 };
639
640 /* Additional DTR, DSR, DCD */
641 pinctrl_uart1_ctrl: uart1ctrlgrp {
642 fsl,pins = <
643 MX6QDL_PAD_EIM_D23__UART1_DCD_B 0x1b0b0
644 MX6QDL_PAD_EIM_D24__UART1_DTR_B 0x1b0b0
645 MX6QDL_PAD_EIM_D25__UART1_DSR_B 0x1b0b0
646 >;
647 };
648
649 pinctrl_uart2_dte: uart2dtegrp {
650 fsl,pins = <
651 MX6QDL_PAD_SD4_DAT4__UART2_TX_DATA 0x1b0b1
652 MX6QDL_PAD_SD4_DAT7__UART2_RX_DATA 0x1b0b1
653 MX6QDL_PAD_SD4_DAT6__UART2_RTS_B 0x1b0b1
654 MX6QDL_PAD_SD4_DAT5__UART2_CTS_B 0x1b0b1
655 >;
656 };
657
658 pinctrl_uart3_dte: uart3dtegrp {
659 fsl,pins = <
660 MX6QDL_PAD_SD4_CLK__UART3_TX_DATA 0x1b0b1
661 MX6QDL_PAD_SD4_CMD__UART3_RX_DATA 0x1b0b1
662 >;
663 };
664
665 pinctrl_usbc_det: usbcdetgrp {
666 fsl,pins = <
667 /* USBC_DET */
668 MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b0
669 /* USBC_DET_EN */
670 MX6QDL_PAD_RGMII_TX_CTL__GPIO6_IO26 0x0f058
671 /* USBC_DET_OVERWRITE */
672 MX6QDL_PAD_RGMII_RXC__GPIO6_IO30 0x0f058
673 >;
674 };
675
676 pinctrl_usdhc1: usdhc1grp {
677 fsl,pins = <
678 MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17071
679 MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10071
680 MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17071
681 MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17071
682 MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17071
683 MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17071
684 >;
685 };
686
687 pinctrl_usdhc3: usdhc3grp {
688 fsl,pins = <
689 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
690 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
691 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
692 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
693 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
694 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
695 MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17059
696 MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17059
697 MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17059
698 MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17059
699 /* eMMC reset */
700 MX6QDL_PAD_SD3_RST__SD3_RESET 0x17059
701 >;
702 };
703
704 pinctrl_usdhc3_100mhz: usdhc3100mhzgrp {
705 fsl,pins = <
706 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170b9
707 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100b9
708 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170b9
709 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170b9
710 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170b9
711 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170b9
712 MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x170b9
713 MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x170b9
714 MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x170b9
715 MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x170b9
716 /* eMMC reset */
717 MX6QDL_PAD_SD3_RST__SD3_RESET 0x170b9
718 >;
719 };
720
721 pinctrl_usdhc3_200mhz: usdhc3200mhzgrp {
722 fsl,pins = <
723 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9
724 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9
725 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
726 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
727 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
728 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
729 MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x170f9
730 MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x170f9
731 MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x170f9
732 MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x170f9
733 /* eMMC reset */
734 MX6QDL_PAD_SD3_RST__SD3_RESET 0x170f9
735 >;
736 };
737
738 pinctrl_weim_cs0: weimcs0grp {
739 fsl,pins = <
740 /* nEXT_CS0 */
741 MX6QDL_PAD_EIM_CS0__EIM_CS0_B 0xb0b1
742 >;
743 };
744
745 pinctrl_weim_cs1: weimcs1grp {
746 fsl,pins = <
747 /* nEXT_CS1 */
748 MX6QDL_PAD_EIM_CS1__EIM_CS1_B 0xb0b1
749 >;
750 };
751
752 pinctrl_weim_cs2: weimcs2grp {
753 fsl,pins = <
754 /* nEXT_CS2 */
755 MX6QDL_PAD_SD2_DAT1__EIM_CS2_B 0xb0b1
756 >;
757 };
758
759 pinctrl_weim_sram: weimsramgrp {
760 fsl,pins = <
761 MX6QDL_PAD_EIM_OE__EIM_OE_B 0xb0b1
762 MX6QDL_PAD_EIM_RW__EIM_RW 0xb0b1
763 /* Data */
764 MX6QDL_PAD_CSI0_DATA_EN__EIM_DATA00 0x1b0b0
765 MX6QDL_PAD_CSI0_VSYNC__EIM_DATA01 0x1b0b0
766 MX6QDL_PAD_CSI0_DAT4__EIM_DATA02 0x1b0b0
767 MX6QDL_PAD_CSI0_DAT5__EIM_DATA03 0x1b0b0
768 MX6QDL_PAD_CSI0_DAT6__EIM_DATA04 0x1b0b0
769 MX6QDL_PAD_CSI0_DAT7__EIM_DATA05 0x1b0b0
770 MX6QDL_PAD_CSI0_DAT8__EIM_DATA06 0x1b0b0
771 MX6QDL_PAD_CSI0_DAT9__EIM_DATA07 0x1b0b0
772 MX6QDL_PAD_CSI0_DAT12__EIM_DATA08 0x1b0b0
773 MX6QDL_PAD_CSI0_DAT13__EIM_DATA09 0x1b0b0
774 MX6QDL_PAD_CSI0_DAT14__EIM_DATA10 0x1b0b0
775 MX6QDL_PAD_CSI0_DAT15__EIM_DATA11 0x1b0b0
776 MX6QDL_PAD_CSI0_DAT16__EIM_DATA12 0x1b0b0
777 MX6QDL_PAD_CSI0_DAT17__EIM_DATA13 0x1b0b0
778 MX6QDL_PAD_CSI0_DAT18__EIM_DATA14 0x1b0b0
779 MX6QDL_PAD_CSI0_DAT19__EIM_DATA15 0x1b0b0
780 /* Address */
781 MX6QDL_PAD_EIM_DA15__EIM_AD15 0xb0b1
782 MX6QDL_PAD_EIM_DA14__EIM_AD14 0xb0b1
783 MX6QDL_PAD_EIM_DA13__EIM_AD13 0xb0b1
784 MX6QDL_PAD_EIM_DA12__EIM_AD12 0xb0b1
785 MX6QDL_PAD_EIM_DA11__EIM_AD11 0xb0b1
786 MX6QDL_PAD_EIM_DA10__EIM_AD10 0xb0b1
787 MX6QDL_PAD_EIM_DA9__EIM_AD09 0xb0b1
788 MX6QDL_PAD_EIM_DA8__EIM_AD08 0xb0b1
789 MX6QDL_PAD_EIM_DA7__EIM_AD07 0xb0b1
790 MX6QDL_PAD_EIM_DA6__EIM_AD06 0xb0b1
791 MX6QDL_PAD_EIM_DA5__EIM_AD05 0xb0b1
792 MX6QDL_PAD_EIM_DA4__EIM_AD04 0xb0b1
793 MX6QDL_PAD_EIM_DA3__EIM_AD03 0xb0b1
794 MX6QDL_PAD_EIM_DA2__EIM_AD02 0xb0b1
795 MX6QDL_PAD_EIM_DA1__EIM_AD01 0xb0b1
796 MX6QDL_PAD_EIM_DA0__EIM_AD00 0xb0b1
797 >;
798 };
799
800 pinctrl_weim_rdnwr: weimrdnwr {
801 fsl,pins = <
802 MX6QDL_PAD_SD2_CLK__GPIO1_IO10 0x0040
803 MX6QDL_PAD_RGMII_TD3__GPIO6_IO23 0x130b0
804 >;
805 };
806
807 pinctrl_weim_npwe: weimnpwe {
808 fsl,pins = <
809 MX6QDL_PAD_SD2_DAT3__GPIO1_IO12 0x0040
810 MX6QDL_PAD_RGMII_TD2__GPIO6_IO22 0x130b0
811 >;
812 };
813
814 /* ADDRESS[16:18] [25] used as GPIO */
815 pinctrl_weim_gpio_1: weimgpio-1 {
816 fsl,pins = <
817 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b0
818 MX6QDL_PAD_KEY_ROW2__GPIO4_IO11 0x1b0b0
819 MX6QDL_PAD_KEY_COL2__GPIO4_IO10 0x1b0b0
820 MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x1b0b0
821 MX6QDL_PAD_DISP0_DAT22__GPIO5_IO16 0x1b0b0
822 MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x1b0b0
823 MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14 0x1b0b0
824 MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x1b0b0
825 MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12 0x1b0b0
826 MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x1b0b0
827 >;
828 };
829
830 /* ADDRESS[19:24] used as GPIO */
831 pinctrl_weim_gpio_2: weimgpio-2 {
832 fsl,pins = <
833 MX6QDL_PAD_KEY_ROW2__GPIO4_IO11 0x1b0b0
834 MX6QDL_PAD_KEY_COL2__GPIO4_IO10 0x1b0b0
835 MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x1b0b0
836 MX6QDL_PAD_DISP0_DAT22__GPIO5_IO16 0x1b0b0
837 MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x1b0b0
838 MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14 0x1b0b0
839 MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x1b0b0
840 MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12 0x1b0b0
841 MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x1b0b0
842 >;
843 };
844
845 /* DATA[16:31] used as GPIO */
846 pinctrl_weim_gpio_3: weimgpio-3 {
847 fsl,pins = <
848 MX6QDL_PAD_EIM_LBA__GPIO2_IO27 0x1b0b0
849 MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x1b0b0
850 MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x1b0b0
851 MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x1b0b0
852 MX6QDL_PAD_NANDF_RB0__GPIO6_IO10 0x1b0b0
853 MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x1b0b0
854 MX6QDL_PAD_NANDF_WP_B__GPIO6_IO09 0x1b0b0
855 MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x1b0b0
856 MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x1b0b0
857 MX6QDL_PAD_GPIO_19__GPIO4_IO05 0x1b0b0
858 MX6QDL_PAD_CSI0_MCLK__GPIO5_IO19 0x1b0b0
859 MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x1b0b0
860 MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b0
861 MX6QDL_PAD_GPIO_5__GPIO1_IO05 0x1b0b0
862 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b0
863 >;
864 };
865
866 /* DQM[0:3] used as GPIO */
867 pinctrl_weim_gpio_4: weimgpio-4 {
868 fsl,pins = <
869 MX6QDL_PAD_EIM_EB0__GPIO2_IO28 0x1b0b0
870 MX6QDL_PAD_EIM_EB1__GPIO2_IO29 0x1b0b0
871 MX6QDL_PAD_SD2_DAT2__GPIO1_IO13 0x1b0b0
872 MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b0
873 >;
874 };
875
876 /* RDY used as GPIO */
877 pinctrl_weim_gpio_5: weimgpio-5 {
878 fsl,pins = <
879 MX6QDL_PAD_EIM_WAIT__GPIO5_IO00 0x1b0b0
880 >;
881 };
882
883 /* ADDRESS[16] DATA[30] used as GPIO */
884 pinctrl_weim_gpio_6: weimgpio-6 {
885 fsl,pins = <
886 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b0
887 MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x1b0b0
888 >;
889 };
890};
diff --git a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
index a7100f99123e..54aca3a07ce4 100644
--- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
@@ -153,9 +153,9 @@
153 153
154&clks { 154&clks {
155 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, 155 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
156 <&clks IMX6QDL_CLK_LDB_DI1_SEL>; 156 <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
157 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>, 157 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
158 <&clks IMX6QDL_CLK_PLL3_USB_OTG>; 158 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
159}; 159};
160 160
161&ecspi3 { 161&ecspi3 {
diff --git a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
index 8953eba0573d..88e5cb3b6be9 100644
--- a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
@@ -154,9 +154,9 @@
154 154
155&clks { 155&clks {
156 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, 156 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
157 <&clks IMX6QDL_CLK_LDB_DI1_SEL>; 157 <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
158 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>, 158 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
159 <&clks IMX6QDL_CLK_PLL3_USB_OTG>; 159 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
160}; 160};
161 161
162&fec { 162&fec {
diff --git a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
index 6ac41c7ed32e..1753ab720b0b 100644
--- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
@@ -144,9 +144,9 @@
144 144
145&clks { 145&clks {
146 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, 146 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
147 <&clks IMX6QDL_CLK_LDB_DI1_SEL>; 147 <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
148 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>, 148 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
149 <&clks IMX6QDL_CLK_PLL3_USB_OTG>; 149 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
150}; 150};
151 151
152&fec { 152&fec {
diff --git a/arch/arm/boot/dts/imx6qdl-gw552x.dtsi b/arch/arm/boot/dts/imx6qdl-gw552x.dtsi
index 805e23674a94..ee83161f674b 100644
--- a/arch/arm/boot/dts/imx6qdl-gw552x.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw552x.dtsi
@@ -291,7 +291,7 @@
291 MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1 291 MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1
292 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1 292 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1
293 >; 293 >;
294 }; 294 };
295 295
296 pinctrl_wdog: wdoggrp { 296 pinctrl_wdog: wdoggrp {
297 fsl,pins = < 297 fsl,pins = <
diff --git a/arch/arm/boot/dts/imx6qdl-icore.dtsi b/arch/arm/boot/dts/imx6qdl-icore.dtsi
new file mode 100644
index 000000000000..023839a02dd0
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qdl-icore.dtsi
@@ -0,0 +1,265 @@
1/*
2 * Copyright (C) 2016 Amarula Solutions B.V.
3 * Copyright (C) 2016 Engicam S.r.l.
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
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 , 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 <dt-bindings/gpio/gpio.h>
44#include <dt-bindings/input/input.h>
45
46/ {
47 memory {
48 reg = <0x10000000 0x80000000>;
49 };
50
51 reg_3p3v: regulator-3p3v {
52 compatible = "regulator-fixed";
53 regulator-name = "3P3V";
54 regulator-min-microvolt = <3300000>;
55 regulator-max-microvolt = <3300000>;
56 regulator-boot-on;
57 regulator-always-on;
58 };
59
60 reg_usb_h1_vbus: regulator-usb-h1-vbus {
61 compatible = "regulator-fixed";
62 regulator-name = "usb_h1_vbus";
63 regulator-min-microvolt = <5000000>;
64 regulator-max-microvolt = <5000000>;
65 regulator-boot-on;
66 regulator-always-on;
67 };
68
69 reg_usb_otg_vbus: regulator-usb-otg-vbus {
70 compatible = "regulator-fixed";
71 regulator-name = "usb_otg_vbus";
72 regulator-min-microvolt = <5000000>;
73 regulator-max-microvolt = <5000000>;
74 regulator-boot-on;
75 regulator-always-on;
76 };
77
78 rmii_clk: clock-rmii-clk {
79 compatible = "fixed-clock";
80 #clock-cells = <0>;
81 clock-frequency = <25000000>; /* 25MHz for example */
82 };
83};
84
85&can1 {
86 pinctrl-names = "default";
87 pinctrl-0 = <&pinctrl_flexcan1>;
88 xceiver-supply = <&reg_3p3v>;
89};
90
91&can2 {
92 pinctrl-names = "default";
93 pinctrl-0 = <&pinctrl_flexcan2>;
94 xceiver-supply = <&reg_3p3v>;
95};
96
97&clks {
98 assigned-clocks = <&clks IMX6QDL_CLK_LVDS2_SEL>;
99 assigned-clock-parents = <&clks IMX6QDL_CLK_OSC>;
100};
101
102&fec {
103 pinctrl-names = "default";
104 pinctrl-0 = <&pinctrl_enet>;
105 phy-reset-gpios = <&gpio7 12 GPIO_ACTIVE_LOW>;
106 clocks = <&clks IMX6QDL_CLK_ENET>, <&clks IMX6QDL_CLK_ENET>, <&rmii_clk>;
107 phy-mode = "rmii";
108 status = "okay";
109};
110
111&gpmi {
112 pinctrl-names = "default";
113 pinctrl-0 = <&pinctrl_gpmi_nand>;
114 nand-on-flash-bbt;
115 status = "okay";
116};
117
118&i2c1 {
119 clock-frequency = <100000>;
120 pinctrl-names = "default";
121 pinctrl-0 = <&pinctrl_i2c1>;
122 status = "okay";
123};
124
125&i2c2 {
126 clock-frequency = <100000>;
127 pinctrl-names = "default";
128 pinctrl-0 = <&pinctrl_i2c2>;
129 status = "okay";
130};
131
132&i2c3 {
133 clock-frequency = <100000>;
134 pinctrl-names = "default";
135 pinctrl-0 = <&pinctrl_i2c3>;
136 status = "okay";
137};
138
139&uart4 {
140 pinctrl-names = "default";
141 pinctrl-0 = <&pinctrl_uart4>;
142 status = "okay";
143};
144
145&usbh1 {
146 vbus-supply = <&reg_usb_h1_vbus>;
147 disable-over-current;
148 status = "okay";
149};
150
151&usbotg {
152 vbus-supply = <&reg_usb_otg_vbus>;
153 pinctrl-names = "default";
154 pinctrl-0 = <&pinctrl_usbotg>;
155 disable-over-current;
156 status = "okay";
157};
158
159&usdhc1 {
160 pinctrl-names = "default";
161 pinctrl-0 = <&pinctrl_usdhc1>;
162 cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
163 no-1-8-v;
164 status = "okay";
165};
166
167&iomuxc {
168 pinctrl_enet: enetgrp {
169 fsl,pins = <
170 MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1b0b0
171 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x1b0b1
172 MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1b0b0
173 MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1b0b0
174 MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1b0b0
175 MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x1b0b0
176 MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x1b0b0
177 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
178 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
179 MX6QDL_PAD_ENET_REF_CLK__GPIO1_IO23 0x1b0b0
180 MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b0
181 >;
182 };
183
184 pinctrl_flexcan1: flexcan1grp {
185 fsl,pins = <
186 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b020
187 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b020
188 >;
189 };
190
191 pinctrl_flexcan2: flexcan2grp {
192 fsl,pins = <
193 MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x1b020
194 MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x1b020
195 >;
196 };
197
198 pinctrl_gpmi_nand: gpmi-nand {
199 fsl,pins = <
200 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1
201 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1
202 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1
203 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000
204 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1
205 MX6QDL_PAD_NANDF_CS1__NAND_CE1_B 0xb0b1
206 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1
207 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1
208 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1
209 MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1
210 MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1
211 MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1
212 MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1
213 MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1
214 MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1
215 MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1
216 MX6QDL_PAD_SD4_DAT0__NAND_DQS 0x00b1
217 >;
218 };
219
220 pinctrl_i2c1: i2c1grp {
221 fsl,pins = <
222 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
223 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
224 >;
225 };
226
227 pinctrl_i2c2: i2c2grp {
228 fsl,pins = <
229 MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1
230 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
231 >;
232 };
233
234 pinctrl_i2c3: i2c3grp {
235 fsl,pins = <
236 MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1
237 MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
238 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0
239 >;
240 };
241
242 pinctrl_uart4: uart4grp {
243 fsl,pins = <
244 MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1
245 MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1
246 >;
247 };
248
249 pinctrl_usbotg: usbotggrp {
250 fsl,pins = <
251 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
252 >;
253 };
254
255 pinctrl_usdhc1: usdhc1grp {
256 fsl,pins = <
257 MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17070
258 MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10070
259 MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17070
260 MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17070
261 MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17070
262 MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17070
263 >;
264 };
265};
diff --git a/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi b/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
index 880bd782a5b7..63acd54f5278 100644
--- a/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
@@ -97,15 +97,6 @@
97 }; 97 };
98 }; 98 };
99 99
100 bt_rfkill {
101 compatible = "rfkill-gpio";
102 pinctrl-names = "default";
103 pinctrl-0 = <&pinctrl_bt_rfkill>;
104 gpios = <&gpio6 8 GPIO_ACTIVE_HIGH>;
105 name = "bt_rfkill";
106 type = <2>;
107 };
108
109 gpio-keys { 100 gpio-keys {
110 compatible = "gpio-keys"; 101 compatible = "gpio-keys";
111 pinctrl-names = "default"; 102 pinctrl-names = "default";
@@ -160,7 +151,7 @@
160 }; 151 };
161 }; 152 };
162 153
163 backlight_lcd { 154 backlight-lcd {
164 compatible = "pwm-backlight"; 155 compatible = "pwm-backlight";
165 pwms = <&pwm1 0 5000000>; 156 pwms = <&pwm1 0 5000000>;
166 brightness-levels = <0 4 8 16 32 64 128 255>; 157 brightness-levels = <0 4 8 16 32 64 128 255>;
@@ -169,7 +160,7 @@
169 status = "okay"; 160 status = "okay";
170 }; 161 };
171 162
172 backlight_lvds0: backlight_lvds0 { 163 backlight_lvds0: backlight-lvds0 {
173 compatible = "pwm-backlight"; 164 compatible = "pwm-backlight";
174 pwms = <&pwm4 0 5000000>; 165 pwms = <&pwm4 0 5000000>;
175 brightness-levels = <0 4 8 16 32 64 128 255>; 166 brightness-levels = <0 4 8 16 32 64 128 255>;
@@ -178,7 +169,7 @@
178 status = "okay"; 169 status = "okay";
179 }; 170 };
180 171
181 panel_lvds0 { 172 panel-lvds0 {
182 compatible = "hannstar,hsd100pxn1"; 173 compatible = "hannstar,hsd100pxn1";
183 backlight = <&backlight_lvds0>; 174 backlight = <&backlight_lvds0>;
184 175
@@ -328,19 +319,6 @@
328 >; 319 >;
329 }; 320 };
330 321
331 pinctrl_bt_rfkill: bt_rfkillgrp {
332 fsl,pins = <
333 /* BT wake */
334 MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x1b0b0
335 /* BT reset */
336 MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x0b0b0
337 /* BT reg en */
338 MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x1b0b0
339 /* BT host wake irq */
340 MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x100b0
341 >;
342 };
343
344 pinctrl_ecspi1: ecspi1grp { 322 pinctrl_ecspi1: ecspi1grp {
345 fsl,pins = < 323 fsl,pins = <
346 MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1 324 MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1
@@ -374,7 +352,7 @@
374 >; 352 >;
375 }; 353 };
376 354
377 pinctrl_gpio_keys: gpio_keysgrp { 355 pinctrl_gpio_keys: gpio-keysgrp {
378 fsl,pins = < 356 fsl,pins = <
379 /* Home Button: J14 pin 5 */ 357 /* Home Button: J14 pin 5 */
380 MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x1b0b0 358 MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x1b0b0
@@ -457,7 +435,7 @@
457 >; 435 >;
458 }; 436 };
459 437
460 pinctrl_wlan_vmmc: wlan_vmmcgrp { 438 pinctrl_wlan_vmmc: wlan-vmmcgrp {
461 fsl,pins = < 439 fsl,pins = <
462 MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x030b0 440 MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x030b0
463 >; 441 >;
diff --git a/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi b/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
index b0b3220a1fd9..34887a10c5f1 100644
--- a/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
@@ -229,7 +229,7 @@
229 }; 229 };
230 }; 230 };
231 231
232 backlight_lcd: backlight_lcd { 232 backlight_lcd: backlight-lcd {
233 compatible = "pwm-backlight"; 233 compatible = "pwm-backlight";
234 pwms = <&pwm1 0 5000000>; 234 pwms = <&pwm1 0 5000000>;
235 brightness-levels = <0 4 8 16 32 64 128 255>; 235 brightness-levels = <0 4 8 16 32 64 128 255>;
@@ -238,7 +238,7 @@
238 status = "okay"; 238 status = "okay";
239 }; 239 };
240 240
241 backlight_lvds0: backlight_lvds0 { 241 backlight_lvds0: backlight-lvds0 {
242 compatible = "pwm-backlight"; 242 compatible = "pwm-backlight";
243 pwms = <&pwm4 0 5000000>; 243 pwms = <&pwm4 0 5000000>;
244 brightness-levels = <0 4 8 16 32 64 128 255>; 244 brightness-levels = <0 4 8 16 32 64 128 255>;
@@ -247,7 +247,7 @@
247 status = "okay"; 247 status = "okay";
248 }; 248 };
249 249
250 backlight_lvds1: backlight_lvds1 { 250 backlight_lvds1: backlight-lvds1 {
251 compatible = "pwm-backlight"; 251 compatible = "pwm-backlight";
252 pwms = <&pwm2 0 5000000>; 252 pwms = <&pwm2 0 5000000>;
253 brightness-levels = <0 4 8 16 32 64 128 255>; 253 brightness-levels = <0 4 8 16 32 64 128 255>;
@@ -282,7 +282,7 @@
282 }; 282 };
283 }; 283 };
284 284
285 panel_lcd { 285 panel-lcd {
286 compatible = "okaya,rs800480t-7x0gp"; 286 compatible = "okaya,rs800480t-7x0gp";
287 backlight = <&backlight_lcd>; 287 backlight = <&backlight_lcd>;
288 288
@@ -293,7 +293,7 @@
293 }; 293 };
294 }; 294 };
295 295
296 panel_lvds0 { 296 panel-lvds0 {
297 compatible = "hannstar,hsd100pxn1"; 297 compatible = "hannstar,hsd100pxn1";
298 backlight = <&backlight_lvds0>; 298 backlight = <&backlight_lvds0>;
299 299
@@ -304,7 +304,7 @@
304 }; 304 };
305 }; 305 };
306 306
307 panel_lvds1 { 307 panel-lvds1 {
308 compatible = "hannstar,hsd100pxn1"; 308 compatible = "hannstar,hsd100pxn1";
309 backlight = <&backlight_lvds1>; 309 backlight = <&backlight_lvds1>;
310 310
@@ -447,7 +447,7 @@
447}; 447};
448 448
449&iomuxc { 449&iomuxc {
450 imx6q-nitrogen6_max { 450 imx6q-nitrogen6-max {
451 pinctrl_audmux: audmuxgrp { 451 pinctrl_audmux: audmuxgrp {
452 fsl,pins = < 452 fsl,pins = <
453 MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x130b0 453 MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x130b0
@@ -504,7 +504,7 @@
504 >; 504 >;
505 }; 505 };
506 506
507 pinctrl_gpio_keys: gpio_keysgrp { 507 pinctrl_gpio_keys: gpio-keysgrp {
508 fsl,pins = < 508 fsl,pins = <
509 /* Power Button */ 509 /* Power Button */
510 MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0 510 MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0
@@ -720,7 +720,7 @@
720 >; 720 >;
721 }; 721 };
722 722
723 pinctrl_wlan_vmmc: wlan_vmmcgrp { 723 pinctrl_wlan_vmmc: wlan-vmmcgrp {
724 fsl,pins = < 724 fsl,pins = <
725 MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x100b0 725 MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x100b0
726 MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x000b0 726 MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x000b0
diff --git a/arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi b/arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi
new file mode 100644
index 000000000000..d80f21abea62
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi
@@ -0,0 +1,770 @@
1/*
2 * Copyright 2016 Boundary Devices, Inc.
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41#include <dt-bindings/gpio/gpio.h>
42#include <dt-bindings/input/input.h>
43
44/ {
45 chosen {
46 stdout-path = &uart2;
47 };
48
49 memory {
50 reg = <0x10000000 0x40000000>;
51 };
52
53 backlight_lcd: backlight-lcd {
54 compatible = "pwm-backlight";
55 pwms = <&pwm1 0 5000000>;
56 brightness-levels = <0 4 8 16 32 64 128 255>;
57 default-brightness-level = <7>;
58 power-supply = <&reg_3p3v>;
59 status = "okay";
60 };
61
62 backlight_lvds0: backlight-lvds0 {
63 compatible = "pwm-backlight";
64 pwms = <&pwm4 0 5000000>;
65 brightness-levels = <0 4 8 16 32 64 128 255>;
66 default-brightness-level = <7>;
67 power-supply = <&reg_3p3v>;
68 status = "okay";
69 };
70
71 backlight_lvds1: backlight-lvds1 {
72 compatible = "gpio-backlight";
73 pinctrl-names = "default";
74 pinctrl-0 = <&pinctrl_backlight_lvds1>;
75 gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>;
76 default-on;
77 status = "okay";
78 };
79
80 gpio-keys {
81 compatible = "gpio-keys";
82 pinctrl-names = "default";
83 pinctrl-0 = <&pinctrl_gpio_keys>;
84
85 power {
86 label = "Power Button";
87 gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
88 linux,code = <KEY_POWER>;
89 wakeup-source;
90 };
91
92 menu {
93 label = "Menu";
94 gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
95 linux,code = <KEY_MENU>;
96 };
97
98 home {
99 label = "Home";
100 gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
101 linux,code = <KEY_HOME>;
102 };
103
104 back {
105 label = "Back";
106 gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
107 linux,code = <KEY_BACK>;
108 };
109
110 volume-up {
111 label = "Volume Up";
112 gpios = <&gpio7 13 GPIO_ACTIVE_LOW>;
113 linux,code = <KEY_VOLUMEUP>;
114 };
115
116 volume-down {
117 label = "Volume Down";
118 gpios = <&gpio7 1 GPIO_ACTIVE_LOW>;
119 linux,code = <KEY_VOLUMEDOWN>;
120 };
121 };
122
123 lcd_display: display@di0 {
124 compatible = "fsl,imx-parallel-display";
125 #address-cells = <1>;
126 #size-cells = <0>;
127 interface-pix-fmt = "bgr666";
128 pinctrl-names = "default";
129 pinctrl-0 = <&pinctrl_j15>;
130 status = "okay";
131
132 port@0 {
133 reg = <0>;
134
135 lcd_display_in: endpoint {
136 remote-endpoint = <&ipu1_di0_disp0>;
137 };
138 };
139
140 port@1 {
141 reg = <1>;
142
143 lcd_display_out: endpoint {
144 remote-endpoint = <&lcd_panel_in>;
145 };
146 };
147 };
148
149 panel-lcd {
150 compatible = "okaya,rs800480t-7x0gp";
151 backlight = <&backlight_lcd>;
152
153 port {
154 lcd_panel_in: endpoint {
155 remote-endpoint = <&lcd_display_out>;
156 };
157 };
158 };
159
160 panel-lvds0 {
161 compatible = "hannstar,hsd100pxn1";
162 backlight = <&backlight_lvds0>;
163
164 port {
165 panel_in_lvds0: endpoint {
166 remote-endpoint = <&lvds0_out>;
167 };
168 };
169 };
170
171 panel-lvds1 {
172 compatible = "hannstar,hsd100pxn1";
173 backlight = <&backlight_lvds1>;
174
175 port {
176 panel_in_lvds1: endpoint {
177 remote-endpoint = <&lvds1_out>;
178 };
179 };
180 };
181
182 reg_1p8v: regulator-1v8 {
183 compatible = "regulator-fixed";
184 regulator-name = "1P8V";
185 regulator-min-microvolt = <1800000>;
186 regulator-max-microvolt = <1800000>;
187 regulator-always-on;
188 };
189
190 reg_2p5v: regulator-2v5 {
191 compatible = "regulator-fixed";
192 regulator-name = "2P5V";
193 regulator-min-microvolt = <2500000>;
194 regulator-max-microvolt = <2500000>;
195 regulator-always-on;
196 };
197
198 reg_3p3v: regulator-3v3 {
199 compatible = "regulator-fixed";
200 regulator-name = "3P3V";
201 regulator-min-microvolt = <3300000>;
202 regulator-max-microvolt = <3300000>;
203 regulator-always-on;
204 };
205
206 reg_can_xcvr: regulator-can-xcvr {
207 compatible = "regulator-fixed";
208 regulator-name = "CAN XCVR";
209 regulator-min-microvolt = <3300000>;
210 regulator-max-microvolt = <3300000>;
211 pinctrl-names = "default";
212 pinctrl-0 = <&pinctrl_can_xcvr>;
213 gpio = <&gpio1 2 GPIO_ACTIVE_LOW>;
214 };
215
216 reg_usb_h1_vbus: regulator-usb-h1-vbus {
217 compatible = "regulator-fixed";
218 pinctrl-names = "default";
219 pinctrl-0 = <&pinctrl_usbh1>;
220 regulator-name = "usb_h1_vbus";
221 regulator-min-microvolt = <3300000>;
222 regulator-max-microvolt = <3300000>;
223 gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
224 enable-active-high;
225 regulator-always-on;
226 };
227
228 reg_usb_otg_vbus: regulator-usb-otg-vbus {
229 compatible = "regulator-fixed";
230 regulator-name = "usb_otg_vbus";
231 regulator-min-microvolt = <5000000>;
232 regulator-max-microvolt = <5000000>;
233 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
234 enable-active-high;
235 };
236
237 reg_wlan_vmmc: regulator-wlan-vmmc {
238 compatible = "regulator-fixed";
239 pinctrl-names = "default";
240 pinctrl-0 = <&pinctrl_wlan_vmmc>;
241 regulator-name = "reg_wlan_vmmc";
242 regulator-min-microvolt = <3300000>;
243 regulator-max-microvolt = <3300000>;
244 gpio = <&gpio6 15 GPIO_ACTIVE_HIGH>;
245 startup-delay-us = <70000>;
246 enable-active-high;
247 };
248
249 sound {
250 compatible = "fsl,imx6q-nitrogen6_som2-sgtl5000",
251 "fsl,imx-audio-sgtl5000";
252 model = "imx6q-nitrogen6_som2-sgtl5000";
253 pinctrl-names = "default";
254 pinctrl-0 = <&pinctrl_sgtl5000>;
255 ssi-controller = <&ssi1>;
256 audio-codec = <&codec>;
257 audio-routing =
258 "MIC_IN", "Mic Jack",
259 "Mic Jack", "Mic Bias",
260 "Headphone Jack", "HP_OUT";
261 mux-int-port = <1>;
262 mux-ext-port = <3>;
263 };
264};
265
266&audmux {
267 pinctrl-names = "default";
268 pinctrl-0 = <&pinctrl_audmux>;
269 status = "okay";
270};
271
272&can1 {
273 pinctrl-names = "default";
274 pinctrl-0 = <&pinctrl_can1>;
275 xceiver-supply = <&reg_can_xcvr>;
276 status = "okay";
277};
278
279&clks {
280 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
281 <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
282 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
283 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
284};
285
286&ecspi1 {
287 fsl,spi-num-chipselects = <1>;
288 cs-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
289 pinctrl-names = "default";
290 pinctrl-0 = <&pinctrl_ecspi1>;
291 status = "okay";
292
293 flash: m25p80@0 {
294 compatible = "microchip,sst25vf016b";
295 spi-max-frequency = <20000000>;
296 reg = <0>;
297 };
298};
299
300&fec {
301 pinctrl-names = "default";
302 pinctrl-0 = <&pinctrl_enet>;
303 phy-mode = "rgmii";
304 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
305 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
306 fsl,err006687-workaround-present;
307 status = "okay";
308};
309
310&hdmi {
311 ddc-i2c-bus = <&i2c2>;
312 status = "okay";
313};
314
315&i2c1 {
316 clock-frequency = <100000>;
317 pinctrl-names = "default";
318 pinctrl-0 = <&pinctrl_i2c1>;
319 status = "okay";
320
321 codec: sgtl5000@0a {
322 compatible = "fsl,sgtl5000";
323 reg = <0x0a>;
324 clocks = <&clks IMX6QDL_CLK_CKO>;
325 VDDA-supply = <&reg_2p5v>;
326 VDDIO-supply = <&reg_3p3v>;
327 };
328
329 rtc@68 {
330 compatible = "st,rv4162";
331 pinctrl-names = "default";
332 pinctrl-0 = <&pinctrl_rv4162>;
333 reg = <0x68>;
334 interrupts-extended = <&gpio6 7 IRQ_TYPE_LEVEL_LOW>;
335 };
336};
337
338&i2c2 {
339 clock-frequency = <100000>;
340 pinctrl-names = "default";
341 pinctrl-0 = <&pinctrl_i2c2>;
342 status = "okay";
343};
344
345&i2c3 {
346 clock-frequency = <100000>;
347 pinctrl-names = "default";
348 pinctrl-0 = <&pinctrl_i2c3>;
349 status = "okay";
350
351 touchscreen@04 {
352 compatible = "eeti,egalax_ts";
353 reg = <0x04>;
354 interrupt-parent = <&gpio1>;
355 interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
356 wakeup-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
357 };
358
359 touchscreen@38 {
360 compatible = "edt,edt-ft5x06";
361 reg = <0x38>;
362 interrupt-parent = <&gpio1>;
363 interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
364 };
365};
366
367&iomuxc {
368 pinctrl_audmux: audmuxgrp {
369 fsl,pins = <
370 MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x130b0
371 MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x130b0
372 MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x110b0
373 MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x130b0
374 >;
375 };
376
377 pinctrl_backlight_lvds1: backlight-lvds1grp {
378 fsl,pins = <
379 MX6QDL_PAD_EIM_EB3__GPIO2_IO31 0x0b0b0
380 >;
381 };
382
383 pinctrl_can1: can1grp {
384 fsl,pins = <
385 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b0b0
386 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b0
387 >;
388 };
389
390 pinctrl_can_xcvr: can-xcvrgrp {
391 fsl,pins = <
392 /* Flexcan XCVR enable */
393 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x0b0b0
394 >;
395 };
396
397 pinctrl_ecspi1: ecspi1grp {
398 fsl,pins = <
399 MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1
400 MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1
401 MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1
402 MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x000b1
403 >;
404 };
405
406 pinctrl_enet: enetgrp {
407 fsl,pins = <
408 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
409 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
410 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x100b0
411 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x100b0
412 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x100b0
413 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x100b0
414 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x100b0
415 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x100b0
416 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x100b0
417 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
418 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x130b0
419 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0
420 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x130b0
421 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0
422 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x130b0
423 MX6QDL_PAD_ENET_RXD0__GPIO1_IO27 0x030b0
424 MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1b0b0
425 MX6QDL_PAD_GPIO_6__ENET_IRQ 0x000b1
426 >;
427 };
428
429 pinctrl_gpio_keys: gpio-keysgrp {
430 fsl,pins = <
431 /* Power Button */
432 MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0
433 /* Menu Button */
434 MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x1b0b0
435 /* Home Button */
436 MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x1b0b0
437 /* Back Button */
438 MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x1b0b0
439 /* Volume Up Button */
440 MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x1b0b0
441 /* Volume Down Button */
442 MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x1b0b0
443 >;
444 };
445
446 pinctrl_i2c1: i2c1grp {
447 fsl,pins = <
448 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
449 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
450 >;
451 };
452
453 pinctrl_i2c2: i2c2grp {
454 fsl,pins = <
455 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
456 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
457 >;
458 };
459
460 pinctrl_i2c3: i2c3grp {
461 fsl,pins = <
462 MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1
463 MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1
464 MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x1b0b0
465 >;
466 };
467
468 pinctrl_i2c3mux: i2c3muxgrp {
469 fsl,pins = <
470 /* PCIe I2C enable */
471 MX6QDL_PAD_EIM_OE__GPIO2_IO25 0x000b0
472 >;
473 };
474
475 pinctrl_j15: j15grp {
476 fsl,pins = <
477 MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x10
478 MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x10
479 MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x10
480 MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x10
481 MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x10
482 MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x10
483 MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x10
484 MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x10
485 MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x10
486 MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x10
487 MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x10
488 MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x10
489 MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x10
490 MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x10
491 MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x10
492 MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x10
493 MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x10
494 MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x10
495 MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x10
496 MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x10
497 MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x10
498 MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x10
499 MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x10
500 MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x10
501 MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x10
502 MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x10
503 MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x10
504 MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x10
505 >;
506 };
507
508 pinctrl_pcie: pciegrp {
509 fsl,pins = <
510 /* PCIe reset */
511 MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x030b0
512 MX6QDL_PAD_EIM_DA4__GPIO3_IO04 0x030b0
513 >;
514 };
515
516 pinctrl_pwm1: pwm1grp {
517 fsl,pins = <
518 MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x030b1
519 >;
520 };
521
522 pinctrl_pwm3: pwm3grp {
523 fsl,pins = <
524 MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x030b1
525 >;
526 };
527
528 pinctrl_pwm4: pwm4grp {
529 fsl,pins = <
530 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x030b1
531 >;
532 };
533
534 pinctrl_rv4162: rv4162grp {
535 fsl,pins = <
536 MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x1b0b0
537 >;
538 };
539
540 pinctrl_sgtl5000: sgtl5000grp {
541 fsl,pins = <
542 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x000b0
543 MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x130b0
544 MX6QDL_PAD_EIM_DA2__GPIO3_IO02 0x130b0
545 MX6QDL_PAD_ENET_RX_ER__GPIO1_IO24 0x130b0
546 >;
547 };
548
549 pinctrl_uart1: uart1grp {
550 fsl,pins = <
551 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
552 MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1
553 >;
554 };
555
556 pinctrl_uart2: uart2grp {
557 fsl,pins = <
558 MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1
559 MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1
560 >;
561 };
562
563 pinctrl_uart3: uart3grp {
564 fsl,pins = <
565 MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
566 MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
567 MX6QDL_PAD_EIM_D23__UART3_CTS_B 0x1b0b1
568 MX6QDL_PAD_EIM_D31__UART3_RTS_B 0x1b0b1
569 >;
570 };
571
572 pinctrl_usbh1: usbh1grp {
573 fsl,pins = <
574 MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x030b0
575 >;
576 };
577
578 pinctrl_usbotg: usbotggrp {
579 fsl,pins = <
580 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
581 MX6QDL_PAD_KEY_COL4__USB_OTG_OC 0x1b0b0
582 /* power enable, high active */
583 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x030b0
584 >;
585 };
586
587 pinctrl_usdhc2: usdhc2grp {
588 fsl,pins = <
589 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10071
590 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17071
591 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17071
592 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17071
593 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17071
594 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17071
595 >;
596 };
597
598 pinctrl_usdhc3: usdhc3grp {
599 fsl,pins = <
600 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10071
601 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17071
602 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17071
603 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17071
604 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17071
605 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17071
606 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x1b0b0
607 >;
608 };
609
610 pinctrl_usdhc4: usdhc4grp {
611 fsl,pins = <
612 MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059
613 MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059
614 MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059
615 MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059
616 MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059
617 MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059
618 MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x17059
619 MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x17059
620 MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x17059
621 MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x17059
622 >;
623 };
624
625 pinctrl_wlan_vmmc: wlan-vmmcgrp {
626 fsl,pins = <
627 MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x100b0
628 MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x030b0
629 MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x030b0
630 MX6QDL_PAD_SD1_CLK__OSC32K_32K_OUT 0x000b0
631 >;
632 };
633};
634
635&ipu1_di0_disp0 {
636 remote-endpoint = <&lcd_display_in>;
637};
638
639&ldb {
640 status = "okay";
641
642 lvds-channel@0 {
643 fsl,data-mapping = "spwg";
644 fsl,data-width = <18>;
645 status = "okay";
646
647 port@4 {
648 reg = <4>;
649
650 lvds0_out: endpoint {
651 remote-endpoint = <&panel_in_lvds0>;
652 };
653 };
654 };
655
656 lvds-channel@1 {
657 fsl,data-mapping = "spwg";
658 fsl,data-width = <18>;
659 status = "okay";
660
661 port@4 {
662 reg = <4>;
663
664 lvds1_out: endpoint {
665 remote-endpoint = <&panel_in_lvds1>;
666 };
667 };
668 };
669};
670
671&pcie {
672 pinctrl-names = "default";
673 pinctrl-0 = <&pinctrl_pcie>;
674 reset-gpio = <&gpio6 31 GPIO_ACTIVE_LOW>;
675 status = "okay";
676};
677
678&pwm1 {
679 pinctrl-names = "default";
680 pinctrl-0 = <&pinctrl_pwm1>;
681 status = "okay";
682};
683
684&pwm3 {
685 pinctrl-names = "default";
686 pinctrl-0 = <&pinctrl_pwm3>;
687 status = "okay";
688};
689
690&pwm4 {
691 pinctrl-names = "default";
692 pinctrl-0 = <&pinctrl_pwm4>;
693 status = "okay";
694};
695
696&ssi1 {
697 status = "okay";
698};
699
700&uart1 {
701 pinctrl-names = "default";
702 pinctrl-0 = <&pinctrl_uart1>;
703 status = "okay";
704};
705
706&uart2 {
707 pinctrl-names = "default";
708 pinctrl-0 = <&pinctrl_uart2>;
709 status = "okay";
710};
711
712&uart3 {
713 pinctrl-names = "default";
714 pinctrl-0 = <&pinctrl_uart3>;
715 uart-has-rtscts;
716 status = "okay";
717};
718
719&usbh1 {
720 vbus-supply = <&reg_usb_h1_vbus>;
721 status = "okay";
722};
723
724&usbotg {
725 vbus-supply = <&reg_usb_otg_vbus>;
726 pinctrl-names = "default";
727 pinctrl-0 = <&pinctrl_usbotg>;
728 disable-over-current;
729 status = "okay";
730};
731
732&usdhc2 {
733 pinctrl-names = "default";
734 pinctrl-0 = <&pinctrl_usdhc2>;
735 bus-width = <4>;
736 non-removable;
737 vmmc-supply = <&reg_wlan_vmmc>;
738 cap-power-off-card;
739 keep-power-in-suspend;
740 status = "okay";
741
742 #address-cells = <1>;
743 #size-cells = <0>;
744 wlcore: wlcore@2 {
745 compatible = "ti,wl1271";
746 reg = <2>;
747 interrupt-parent = <&gpio6>;
748 interrupts = <14 IRQ_TYPE_LEVEL_HIGH>;
749 ref-clock-frequency = <38400000>;
750 };
751};
752
753&usdhc3 {
754 pinctrl-names = "default";
755 pinctrl-0 = <&pinctrl_usdhc3>;
756 cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
757 bus-width = <4>;
758 vmmc-supply = <&reg_3p3v>;
759 status = "okay";
760};
761
762&usdhc4 {
763 pinctrl-names = "default";
764 pinctrl-0 = <&pinctrl_usdhc4>;
765 bus-width = <8>;
766 non-removable;
767 vmmc-supply = <&reg_1p8v>;
768 keep-power-in-suspend;
769 status = "okay";
770};
diff --git a/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi b/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
index db868bc42c0f..e476d01959ea 100644
--- a/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
@@ -167,7 +167,7 @@
167 mux-ext-port = <3>; 167 mux-ext-port = <3>;
168 }; 168 };
169 169
170 backlight_lcd: backlight_lcd { 170 backlight_lcd: backlight-lcd {
171 compatible = "pwm-backlight"; 171 compatible = "pwm-backlight";
172 pwms = <&pwm1 0 5000000>; 172 pwms = <&pwm1 0 5000000>;
173 brightness-levels = <0 4 8 16 32 64 128 255>; 173 brightness-levels = <0 4 8 16 32 64 128 255>;
@@ -176,7 +176,7 @@
176 status = "okay"; 176 status = "okay";
177 }; 177 };
178 178
179 backlight_lvds: backlight_lvds { 179 backlight_lvds: backlight-lvds {
180 compatible = "pwm-backlight"; 180 compatible = "pwm-backlight";
181 pwms = <&pwm4 0 5000000>; 181 pwms = <&pwm4 0 5000000>;
182 brightness-levels = <0 4 8 16 32 64 128 255>; 182 brightness-levels = <0 4 8 16 32 64 128 255>;
@@ -211,7 +211,7 @@
211 }; 211 };
212 }; 212 };
213 213
214 lcd_panel { 214 panel-lcd {
215 compatible = "okaya,rs800480t-7x0gp"; 215 compatible = "okaya,rs800480t-7x0gp";
216 backlight = <&backlight_lcd>; 216 backlight = <&backlight_lcd>;
217 217
@@ -222,7 +222,7 @@
222 }; 222 };
223 }; 223 };
224 224
225 panel { 225 panel-lvds0 {
226 compatible = "hannstar,hsd100pxn1"; 226 compatible = "hannstar,hsd100pxn1";
227 backlight = <&backlight_lvds>; 227 backlight = <&backlight_lvds>;
228 228
@@ -413,7 +413,7 @@
413 >; 413 >;
414 }; 414 };
415 415
416 pinctrl_gpio_keys: gpio_keysgrp { 416 pinctrl_gpio_keys: gpio-keysgrp {
417 fsl,pins = < 417 fsl,pins = <
418 /* Power Button */ 418 /* Power Button */
419 MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0 419 MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0
@@ -561,7 +561,7 @@
561 >; 561 >;
562 }; 562 };
563 563
564 pinctrl_wlan_vmmc: wlan_vmmcgrp { 564 pinctrl_wlan_vmmc: wlan-vmmcgrp {
565 fsl,pins = < 565 fsl,pins = <
566 MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x100b0 566 MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x100b0
567 MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x000b0 567 MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x000b0
diff --git a/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi b/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
index e0280cac2484..e9801a26f3b4 100644
--- a/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
@@ -427,10 +427,10 @@
427}; 427};
428 428
429&usdhc3 { 429&usdhc3 {
430 pinctrl-names = "default"; 430 pinctrl-names = "default";
431 pinctrl-0 = <&pinctrl_usdhc3 431 pinctrl-0 = <&pinctrl_usdhc3
432 &pinctrl_usdhc3_cdwp>; 432 &pinctrl_usdhc3_cdwp>;
433 cd-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>; 433 cd-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>;
434 wp-gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>; 434 wp-gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
435 status = "disabled"; 435 status = "disabled";
436}; 436};
diff --git a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
index e000e6f12bf5..52390ba83e81 100644
--- a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
@@ -283,7 +283,7 @@
283 VD-supply = <&reg_audio>; 283 VD-supply = <&reg_audio>;
284 VLS-supply = <&reg_audio>; 284 VLS-supply = <&reg_audio>;
285 VLC-supply = <&reg_audio>; 285 VLC-supply = <&reg_audio>;
286 }; 286 };
287 287
288}; 288};
289 289
@@ -613,8 +613,6 @@
613&weim { 613&weim {
614 pinctrl-names = "default"; 614 pinctrl-names = "default";
615 pinctrl-0 = <&pinctrl_weim_nor &pinctrl_weim_cs0>; 615 pinctrl-0 = <&pinctrl_weim_nor &pinctrl_weim_cs0>;
616 #address-cells = <2>;
617 #size-cells = <1>;
618 ranges = <0 0 0x08000000 0x08000000>; 616 ranges = <0 0 0x08000000 0x08000000>;
619 status = "disabled"; /* pin conflict with SPI NOR */ 617 status = "disabled"; /* pin conflict with SPI NOR */
620 618
diff --git a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
index 81dd6cd1937d..1f9076e271e4 100644
--- a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
@@ -153,7 +153,7 @@
153 mux-ext-port = <4>; 153 mux-ext-port = <4>;
154 }; 154 };
155 155
156 backlight_lcd: backlight_lcd { 156 backlight_lcd: backlight-lcd {
157 compatible = "pwm-backlight"; 157 compatible = "pwm-backlight";
158 pwms = <&pwm1 0 5000000>; 158 pwms = <&pwm1 0 5000000>;
159 brightness-levels = <0 4 8 16 32 64 128 255>; 159 brightness-levels = <0 4 8 16 32 64 128 255>;
@@ -162,7 +162,7 @@
162 status = "okay"; 162 status = "okay";
163 }; 163 };
164 164
165 backlight_lvds: backlight_lvds { 165 backlight_lvds: backlight-lvds {
166 compatible = "pwm-backlight"; 166 compatible = "pwm-backlight";
167 pwms = <&pwm4 0 5000000>; 167 pwms = <&pwm4 0 5000000>;
168 brightness-levels = <0 4 8 16 32 64 128 255>; 168 brightness-levels = <0 4 8 16 32 64 128 255>;
@@ -197,7 +197,7 @@
197 }; 197 };
198 }; 198 };
199 199
200 lcd_panel { 200 panel-lcd {
201 compatible = "okaya,rs800480t-7x0gp"; 201 compatible = "okaya,rs800480t-7x0gp";
202 backlight = <&backlight_lcd>; 202 backlight = <&backlight_lcd>;
203 203
@@ -208,7 +208,7 @@
208 }; 208 };
209 }; 209 };
210 210
211 panel { 211 panel-lvds0 {
212 compatible = "hannstar,hsd100pxn1"; 212 compatible = "hannstar,hsd100pxn1";
213 backlight = <&backlight_lvds>; 213 backlight = <&backlight_lvds>;
214 214
@@ -378,7 +378,7 @@
378 >; 378 >;
379 }; 379 };
380 380
381 pinctrl_gpio_keys: gpio_keysgrp { 381 pinctrl_gpio_keys: gpio-keysgrp {
382 fsl,pins = < 382 fsl,pins = <
383 /* Power Button */ 383 /* Power Button */
384 MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0 384 MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0
diff --git a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
index 8e9e0d98db2f..55ef53571fdd 100644
--- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
@@ -129,8 +129,8 @@
129 pinctrl-0 = <&pinctrl_gpio_leds>; 129 pinctrl-0 = <&pinctrl_gpio_leds>;
130 130
131 red { 131 red {
132 gpios = <&gpio1 2 0>; 132 gpios = <&gpio1 2 0>;
133 default-state = "on"; 133 default-state = "on";
134 }; 134 };
135 }; 135 };
136 136
diff --git a/arch/arm/boot/dts/imx6qdl-tx6.dtsi b/arch/arm/boot/dts/imx6qdl-tx6.dtsi
index ac9529f85593..2bf2e623ac1e 100644
--- a/arch/arm/boot/dts/imx6qdl-tx6.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-tx6.dtsi
@@ -429,8 +429,8 @@
429 pinctrl_edt_ft5x06: edt-ft5x06grp { 429 pinctrl_edt_ft5x06: edt-ft5x06grp {
430 fsl,pins = < 430 fsl,pins = <
431 MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x1b0b0 /* Interrupt */ 431 MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x1b0b0 /* Interrupt */
432 MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x1b0b0 /* Reset */ 432 MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x1b0b0 /* Reset */
433 MX6QDL_PAD_EIM_A17__GPIO2_IO21 0x1b0b0 /* Wake */ 433 MX6QDL_PAD_EIM_A17__GPIO2_IO21 0x1b0b0 /* Wake */
434 >; 434 >;
435 }; 435 };
436 436
@@ -481,21 +481,21 @@
481 481
482 pinctrl_gpmi_nand: gpminandgrp { 482 pinctrl_gpmi_nand: gpminandgrp {
483 fsl,pins = < 483 fsl,pins = <
484 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0x0b0b1 484 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0x0b0b1
485 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0x0b0b1 485 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0x0b0b1
486 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0x0b0b1 486 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0x0b0b1
487 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0x0b000 487 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0x0b000
488 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0x0b0b1 488 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0x0b0b1
489 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0x0b0b1 489 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0x0b0b1
490 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0x0b0b1 490 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0x0b0b1
491 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0x0b0b1 491 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0x0b0b1
492 MX6QDL_PAD_NANDF_D1__NAND_DATA01 0x0b0b1 492 MX6QDL_PAD_NANDF_D1__NAND_DATA01 0x0b0b1
493 MX6QDL_PAD_NANDF_D2__NAND_DATA02 0x0b0b1 493 MX6QDL_PAD_NANDF_D2__NAND_DATA02 0x0b0b1
494 MX6QDL_PAD_NANDF_D3__NAND_DATA03 0x0b0b1 494 MX6QDL_PAD_NANDF_D3__NAND_DATA03 0x0b0b1
495 MX6QDL_PAD_NANDF_D4__NAND_DATA04 0x0b0b1 495 MX6QDL_PAD_NANDF_D4__NAND_DATA04 0x0b0b1
496 MX6QDL_PAD_NANDF_D5__NAND_DATA05 0x0b0b1 496 MX6QDL_PAD_NANDF_D5__NAND_DATA05 0x0b0b1
497 MX6QDL_PAD_NANDF_D6__NAND_DATA06 0x0b0b1 497 MX6QDL_PAD_NANDF_D6__NAND_DATA06 0x0b0b1
498 MX6QDL_PAD_NANDF_D7__NAND_DATA07 0x0b0b1 498 MX6QDL_PAD_NANDF_D7__NAND_DATA07 0x0b0b1
499 >; 499 >;
500 }; 500 };
501 501
diff --git a/arch/arm/boot/dts/imx6qdl-wandboard-revb1.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard-revb1.dtsi
index ef7fa62b9898..a32089132263 100644
--- a/arch/arm/boot/dts/imx6qdl-wandboard-revb1.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-wandboard-revb1.dtsi
@@ -28,7 +28,7 @@
28 MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x80000000 /* RGMII_nRST */ 28 MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x80000000 /* RGMII_nRST */
29 MX6QDL_PAD_EIM_DA13__GPIO3_IO13 0x80000000 /* BT_ON */ 29 MX6QDL_PAD_EIM_DA13__GPIO3_IO13 0x80000000 /* BT_ON */
30 MX6QDL_PAD_EIM_DA14__GPIO3_IO14 0x80000000 /* BT_WAKE */ 30 MX6QDL_PAD_EIM_DA14__GPIO3_IO14 0x80000000 /* BT_WAKE */
31 MX6QDL_PAD_EIM_DA15__GPIO3_IO15 0x80000000 /* BT_HOST_WAKE */ 31 MX6QDL_PAD_EIM_DA15__GPIO3_IO15 0x80000000 /* BT_HOST_WAKE */
32 >; 32 >;
33 }; 33 };
34 }; 34 };
diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
index 2b9c2be436f9..82dc5744ae19 100644
--- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
@@ -129,8 +129,8 @@
129 129
130 pinctrl_i2c1: i2c1grp { 130 pinctrl_i2c1: i2c1grp {
131 fsl,pins = < 131 fsl,pins = <
132 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 132 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
133 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 133 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
134 >; 134 >;
135 }; 135 };
136 136
diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
index b13b0b2db881..53e6e63cbb02 100644
--- a/arch/arm/boot/dts/imx6qdl.dtsi
+++ b/arch/arm/boot/dts/imx6qdl.dtsi
@@ -13,9 +13,10 @@
13#include <dt-bindings/clock/imx6qdl-clock.h> 13#include <dt-bindings/clock/imx6qdl-clock.h>
14#include <dt-bindings/interrupt-controller/arm-gic.h> 14#include <dt-bindings/interrupt-controller/arm-gic.h>
15 15
16#include "skeleton.dtsi"
17
18/ { 16/ {
17 #address-cells = <1>;
18 #size-cells = <1>;
19
19 aliases { 20 aliases {
20 ethernet0 = &fec; 21 ethernet0 = &fec;
21 can0 = &can1; 22 can0 = &can1;
@@ -204,9 +205,9 @@
204 #interrupt-cells = <1>; 205 #interrupt-cells = <1>;
205 interrupt-map-mask = <0 0 0 0x7>; 206 interrupt-map-mask = <0 0 0 0x7>;
206 interrupt-map = <0 0 0 1 &gpc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 207 interrupt-map = <0 0 0 1 &gpc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
207 <0 0 0 2 &gpc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, 208 <0 0 0 2 &gpc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
208 <0 0 0 3 &gpc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, 209 <0 0 0 3 &gpc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
209 <0 0 0 4 &gpc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 210 <0 0 0 4 &gpc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
210 clocks = <&clks IMX6QDL_CLK_PCIE_AXI>, 211 clocks = <&clks IMX6QDL_CLK_PCIE_AXI>,
211 <&clks IMX6QDL_CLK_LVDS1_GATE>, 212 <&clks IMX6QDL_CLK_LVDS1_GATE>,
212 <&clks IMX6QDL_CLK_PCIE_REF_125M>; 213 <&clks IMX6QDL_CLK_PCIE_REF_125M>;
@@ -1092,10 +1093,13 @@
1092 }; 1093 };
1093 1094
1094 weim: weim@021b8000 { 1095 weim: weim@021b8000 {
1096 #address-cells = <2>;
1097 #size-cells = <1>;
1095 compatible = "fsl,imx6q-weim"; 1098 compatible = "fsl,imx6q-weim";
1096 reg = <0x021b8000 0x4000>; 1099 reg = <0x021b8000 0x4000>;
1097 interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>; 1100 interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
1098 clocks = <&clks IMX6QDL_CLK_EIM_SLOW>; 1101 clocks = <&clks IMX6QDL_CLK_EIM_SLOW>;
1102 fsl,weim-cs-gpr = <&gpr>;
1099 }; 1103 };
1100 1104
1101 ocotp: ocotp@021bc000 { 1105 ocotp: ocotp@021bc000 {
diff --git a/arch/arm/boot/dts/imx6qp.dtsi b/arch/arm/boot/dts/imx6qp.dtsi
index caaa04036c8a..0d4977ab7d29 100644
--- a/arch/arm/boot/dts/imx6qp.dtsi
+++ b/arch/arm/boot/dts/imx6qp.dtsi
@@ -85,6 +85,13 @@
85 pcie: pcie@0x01000000 { 85 pcie: pcie@0x01000000 {
86 compatible = "fsl,imx6qp-pcie", "snps,dw-pcie"; 86 compatible = "fsl,imx6qp-pcie", "snps,dw-pcie";
87 }; 87 };
88
89 aips-bus@02100000 {
90 mmdc0: mmdc@021b0000 { /* MMDC0 */
91 compatible = "fsl,imx6qp-mmdc", "fsl,imx6q-mmdc";
92 reg = <0x021b0000 0x4000>;
93 };
94 };
88 }; 95 };
89}; 96};
90 97
diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi
index 02378db3f5fc..4fd6de29f07d 100644
--- a/arch/arm/boot/dts/imx6sl.dtsi
+++ b/arch/arm/boot/dts/imx6sl.dtsi
@@ -8,11 +8,13 @@
8 */ 8 */
9 9
10#include <dt-bindings/interrupt-controller/irq.h> 10#include <dt-bindings/interrupt-controller/irq.h>
11#include "skeleton.dtsi"
12#include "imx6sl-pinfunc.h" 11#include "imx6sl-pinfunc.h"
13#include <dt-bindings/clock/imx6sl-clock.h> 12#include <dt-bindings/clock/imx6sl-clock.h>
14 13
15/ { 14/ {
15 #address-cells = <1>;
16 #size-cells = <1>;
17
16 aliases { 18 aliases {
17 ethernet0 = &fec; 19 ethernet0 = &fec;
18 gpio0 = &gpio1; 20 gpio0 = &gpio1;
@@ -893,8 +895,11 @@
893 }; 895 };
894 896
895 weim: weim@021b8000 { 897 weim: weim@021b8000 {
898 #address-cells = <2>;
899 #size-cells = <1>;
896 reg = <0x021b8000 0x4000>; 900 reg = <0x021b8000 0x4000>;
897 interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>; 901 interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
902 fsl,weim-cs-gpr = <&gpr>;
898 }; 903 };
899 904
900 ocotp: ocotp@021bc000 { 905 ocotp: ocotp@021bc000 {
diff --git a/arch/arm/boot/dts/imx6sx-sdb.dtsi b/arch/arm/boot/dts/imx6sx-sdb.dtsi
index 9d70cfd40aff..da815527a7f8 100644
--- a/arch/arm/boot/dts/imx6sx-sdb.dtsi
+++ b/arch/arm/boot/dts/imx6sx-sdb.dtsi
@@ -192,10 +192,10 @@
192}; 192};
193 193
194&i2c4 { 194&i2c4 {
195 clock-frequency = <100000>; 195 clock-frequency = <100000>;
196 pinctrl-names = "default"; 196 pinctrl-names = "default";
197 pinctrl-0 = <&pinctrl_i2c4>; 197 pinctrl-0 = <&pinctrl_i2c4>;
198 status = "okay"; 198 status = "okay";
199 199
200 codec: wm8962@1a { 200 codec: wm8962@1a {
201 compatible = "wlf,wm8962"; 201 compatible = "wlf,wm8962";
@@ -290,6 +290,14 @@
290 status = "okay"; 290 status = "okay";
291}; 291};
292 292
293&usbphy1 {
294 fsl,tx-d-cal = <106>;
295};
296
297&usbphy2 {
298 fsl,tx-d-cal = <106>;
299};
300
293&usdhc2 { 301&usdhc2 {
294 pinctrl-names = "default"; 302 pinctrl-names = "default";
295 pinctrl-0 = <&pinctrl_usdhc2>; 303 pinctrl-0 = <&pinctrl_usdhc2>;
diff --git a/arch/arm/boot/dts/imx6sx-udoo-neo-basic.dts b/arch/arm/boot/dts/imx6sx-udoo-neo-basic.dts
new file mode 100644
index 000000000000..0c1fc1a8f913
--- /dev/null
+++ b/arch/arm/boot/dts/imx6sx-udoo-neo-basic.dts
@@ -0,0 +1,69 @@
1/*
2 * Copyright (c) 2016 Andreas Färber
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 library 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 library 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
45#include "imx6sx-udoo-neo.dtsi"
46
47/ {
48 model = "UDOO Neo Basic";
49 compatible = "udoo,neobasic", "fsl,imx6sx";
50
51 memory {
52 reg = <0x80000000 0x20000000>;
53 };
54};
55
56&fec1 {
57 phy-handle = <&ethphy1>;
58 status = "okay";
59
60 mdio {
61 #address-cells = <1>;
62 #size-cells = <0>;
63
64 ethphy1: ethernet-phy@0 {
65 compatible = "ethernet-phy-ieee802.3-c22";
66 reg = <0>;
67 };
68 };
69};
diff --git a/arch/arm/boot/dts/imx6sx-udoo-neo-extended.dts b/arch/arm/boot/dts/imx6sx-udoo-neo-extended.dts
new file mode 100644
index 000000000000..5d6c2274ee2b
--- /dev/null
+++ b/arch/arm/boot/dts/imx6sx-udoo-neo-extended.dts
@@ -0,0 +1,54 @@
1/*
2 * Copyright (c) 2016 Andreas Färber
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 library 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 library 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
45#include "imx6sx-udoo-neo.dtsi"
46
47/ {
48 model = "UDOO Neo Extended";
49 compatible = "udoo,neoextended", "fsl,imx6sx";
50
51 memory {
52 reg = <0x80000000 0x40000000>;
53 };
54};
diff --git a/arch/arm/boot/dts/imx6sx-udoo-neo-full.dts b/arch/arm/boot/dts/imx6sx-udoo-neo-full.dts
new file mode 100644
index 000000000000..653ceb29e28b
--- /dev/null
+++ b/arch/arm/boot/dts/imx6sx-udoo-neo-full.dts
@@ -0,0 +1,69 @@
1/*
2 * Copyright (c) 2016 Andreas Färber
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 library 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 library 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
45#include "imx6sx-udoo-neo.dtsi"
46
47/ {
48 model = "UDOO Neo Full";
49 compatible = "udoo,neofull", "fsl,imx6sx";
50
51 memory {
52 reg = <0x80000000 0x40000000>;
53 };
54};
55
56&fec1 {
57 phy-handle = <&ethphy1>;
58 status = "okay";
59
60 mdio {
61 #address-cells = <1>;
62 #size-cells = <0>;
63
64 ethphy1: ethernet-phy@0 {
65 compatible = "ethernet-phy-ieee802.3-c22";
66 reg = <0>;
67 };
68 };
69};
diff --git a/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi b/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi
new file mode 100644
index 000000000000..2b65d26f4396
--- /dev/null
+++ b/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi
@@ -0,0 +1,293 @@
1/*
2 * Copyright (c) 2016 Andreas Färber
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 library 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 library 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 "imx6sx.dtsi"
44
45/ {
46 compatible = "fsl,imx6sx";
47
48 chosen {
49 stdout-path = "serial0:115200n8";
50 };
51
52 leds {
53 compatible = "gpio-leds";
54
55 red {
56 label = "udoo-neo:red:mmc";
57 gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>;
58 default-state = "off";
59 linux,default-trigger = "mmc0";
60 };
61
62 orange {
63 label = "udoo-neo:orange:user";
64 gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>;
65 default-state = "keep";
66 };
67 };
68
69 reg_sdio_pwr: regulator-sdio-pwr {
70 compatible = "regulator-fixed";
71 gpio = <&gpio6 1 GPIO_ACTIVE_HIGH>;
72 enable-active-high;
73 regulator-name = "SDIO_PWR";
74 regulator-min-microvolt = <3300000>;
75 regulator-max-microvolt = <3300000>;
76 regulator-boot-on;
77 };
78};
79
80&cpu0 {
81 arm-supply = <&sw1a_reg>;
82 soc-supply = <&sw1c_reg>;
83};
84
85&fec1 {
86 pinctrl-names = "default";
87 pinctrl-0 = <&pinctrl_enet1>;
88 phy-mode = "rmii";
89 phy-reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
90};
91
92&i2c1 {
93 pinctrl-names = "default";
94 pinctrl-0 = <&pinctrl_i2c1>;
95 clock-frequency = <100000>;
96 status = "okay";
97
98 pmic: pmic@08 {
99 compatible = "fsl,pfuze3000";
100 reg = <0x08>;
101
102 regulators {
103 sw1a_reg: sw1a {
104 regulator-min-microvolt = <700000>;
105 regulator-max-microvolt = <1475000>;
106 regulator-boot-on;
107 regulator-always-on;
108 regulator-ramp-delay = <6250>;
109 };
110
111 sw1c_reg: sw1b {
112 regulator-min-microvolt = <700000>;
113 regulator-max-microvolt = <1475000>;
114 regulator-boot-on;
115 regulator-always-on;
116 regulator-ramp-delay = <6250>;
117 };
118
119 sw2_reg: sw2 {
120 regulator-min-microvolt = <1500000>;
121 regulator-max-microvolt = <1850000>;
122 regulator-boot-on;
123 regulator-always-on;
124 };
125
126 sw3a_reg: sw3 {
127 regulator-min-microvolt = <900000>;
128 regulator-max-microvolt = <1650000>;
129 regulator-boot-on;
130 regulator-always-on;
131 };
132
133 swbst_reg: swbst {
134 regulator-min-microvolt = <5000000>;
135 regulator-max-microvolt = <5150000>;
136 };
137
138 snvs_reg: vsnvs {
139 regulator-min-microvolt = <1000000>;
140 regulator-max-microvolt = <3000000>;
141 regulator-boot-on;
142 regulator-always-on;
143 };
144
145 vref_reg: vrefddr {
146 regulator-boot-on;
147 regulator-always-on;
148 };
149
150 vgen1_reg: vldo1 {
151 regulator-min-microvolt = <1800000>;
152 regulator-max-microvolt = <3300000>;
153 regulator-always-on;
154 };
155
156 vgen2_reg: vldo2 {
157 regulator-min-microvolt = <800000>;
158 regulator-max-microvolt = <1550000>;
159 };
160
161 vgen3_reg: vccsd {
162 regulator-min-microvolt = <2850000>;
163 regulator-max-microvolt = <3300000>;
164 regulator-always-on;
165 };
166
167 vgen4_reg: v33 {
168 regulator-min-microvolt = <2850000>;
169 regulator-max-microvolt = <3300000>;
170 regulator-always-on;
171 };
172
173 vgen5_reg: vldo3 {
174 regulator-min-microvolt = <1800000>;
175 regulator-max-microvolt = <3300000>;
176 regulator-always-on;
177 };
178
179 vgen6_reg: vldo4 {
180 regulator-min-microvolt = <1800000>;
181 regulator-max-microvolt = <3300000>;
182 regulator-always-on;
183 };
184 };
185 };
186};
187
188&iomuxc {
189 pinctrl_enet1: enet1grp {
190 fsl,pins =
191 <MX6SX_PAD_ENET1_CRS__GPIO2_IO_1 0xa0b1>,
192 <MX6SX_PAD_ENET1_MDC__ENET1_MDC 0xa0b1>,
193 <MX6SX_PAD_ENET1_MDIO__ENET1_MDIO 0xa0b1>,
194 <MX6SX_PAD_RGMII1_TD0__ENET1_TX_DATA_0 0xa0b1>,
195 <MX6SX_PAD_RGMII1_TD1__ENET1_TX_DATA_1 0xa0b1>,
196 <MX6SX_PAD_RGMII1_TX_CTL__ENET1_TX_EN 0xa0b1>,
197
198 <MX6SX_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x3081>,
199 <MX6SX_PAD_ENET2_TX_CLK__GPIO2_IO_9 0x3081>,
200 <MX6SX_PAD_RGMII1_RD0__ENET1_RX_DATA_0 0x3081>,
201 <MX6SX_PAD_RGMII1_RD1__ENET1_RX_DATA_1 0x3081>,
202 <MX6SX_PAD_RGMII1_RX_CTL__ENET1_RX_EN 0x3081>,
203 <MX6SX_PAD_RGMII1_RXC__ENET1_RX_ER 0x3081>,
204
205 <MX6SX_PAD_ENET2_RX_CLK__ENET2_REF_CLK_25M 0x91>;
206 };
207
208 pinctrl_i2c1: i2c1grp {
209 fsl,pins =
210 <MX6SX_PAD_GPIO1_IO00__I2C1_SCL 0x4001b8b1>,
211 <MX6SX_PAD_GPIO1_IO01__I2C1_SDA 0x4001b8b1>;
212 };
213
214 pinctrl_uart1: uart1grp {
215 fsl,pins =
216 <MX6SX_PAD_GPIO1_IO04__UART1_TX 0x1b0b1>,
217 <MX6SX_PAD_GPIO1_IO05__UART1_RX 0x1b0b1>;
218 };
219
220 pinctrl_uart2: uart2grp {
221 fsl,pins =
222 <MX6SX_PAD_GPIO1_IO06__UART2_TX 0x1b0b1>,
223 <MX6SX_PAD_GPIO1_IO07__UART2_RX 0x1b0b1>;
224 };
225
226 pinctrl_uart5: uart5grp {
227 fsl,pins =
228 <MX6SX_PAD_SD4_DATA4__UART5_RX 0x1b0b1>,
229 <MX6SX_PAD_SD4_DATA5__UART5_TX 0x1b0b1>;
230 };
231
232 pinctrl_uart6: uart6grp {
233 fsl,pins =
234 <MX6SX_PAD_CSI_DATA00__UART6_RI_B 0x1b0b1>,
235 <MX6SX_PAD_CSI_DATA01__UART6_DSR_B 0x1b0b1>,
236 <MX6SX_PAD_CSI_DATA02__UART6_DTR_B 0x1b0b1>,
237 <MX6SX_PAD_CSI_DATA03__UART6_DCD_B 0x1b0b1>,
238 <MX6SX_PAD_CSI_DATA04__UART6_RX 0x1b0b1>,
239 <MX6SX_PAD_CSI_DATA05__UART6_TX 0x1b0b1>,
240 <MX6SX_PAD_CSI_DATA06__UART6_RTS_B 0x1b0b1>,
241 <MX6SX_PAD_CSI_DATA07__UART6_CTS_B 0x1b0b1>;
242 };
243
244 pinctrl_usdhc2: usdhc2grp {
245 fsl,pins =
246 <MX6SX_PAD_SD2_CMD__USDHC2_CMD 0x17059>,
247 <MX6SX_PAD_SD2_CLK__USDHC2_CLK 0x10059>,
248 <MX6SX_PAD_SD2_DATA0__USDHC2_DATA0 0x17059>,
249 <MX6SX_PAD_SD2_DATA1__USDHC2_DATA1 0x17059>,
250 <MX6SX_PAD_SD2_DATA2__USDHC2_DATA2 0x17059>,
251 <MX6SX_PAD_SD2_DATA3__USDHC2_DATA3 0x17059>,
252 <MX6SX_PAD_SD1_DATA0__GPIO6_IO_2 0x17059>; /* CD */
253 };
254};
255
256&uart1 {
257 pinctrl-names = "default";
258 pinctrl-0 = <&pinctrl_uart1>;
259 status = "okay";
260};
261
262/* Cortex-M4 serial */
263&uart2 {
264 pinctrl-names = "default";
265 pinctrl-0 = <&pinctrl_uart2>;
266 status = "disabled";
267};
268
269/* Arduino serial */
270&uart5 {
271 pinctrl-names = "default";
272 pinctrl-0 = <&pinctrl_uart5>;
273 status = "disabled";
274};
275
276&uart6 {
277 pinctrl-names = "default";
278 pinctrl-0 = <&pinctrl_uart6>;
279 uart-has-rtscts;
280 status = "disabled";
281};
282
283&usdhc2 {
284 pinctrl-names = "default";
285 pinctrl-0 = <&pinctrl_usdhc2>;
286 vmmc-supply = <&reg_sdio_pwr>;
287 bus-width = <4>;
288 cd-gpios = <&gpio6 2 GPIO_ACTIVE_LOW>;
289 no-1-8-v;
290 keep-power-in-suspend;
291 wakeup-source;
292 status = "okay";
293};
diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi
index 1a473e83efbf..076a30f9bcae 100644
--- a/arch/arm/boot/dts/imx6sx.dtsi
+++ b/arch/arm/boot/dts/imx6sx.dtsi
@@ -11,9 +11,11 @@
11#include <dt-bindings/input/input.h> 11#include <dt-bindings/input/input.h>
12#include <dt-bindings/interrupt-controller/arm-gic.h> 12#include <dt-bindings/interrupt-controller/arm-gic.h>
13#include "imx6sx-pinfunc.h" 13#include "imx6sx-pinfunc.h"
14#include "skeleton.dtsi"
15 14
16/ { 15/ {
16 #address-cells = <1>;
17 #size-cells = <1>;
18
17 aliases { 19 aliases {
18 can0 = &flexcan1; 20 can0 = &flexcan1;
19 can1 = &flexcan2; 21 can1 = &flexcan2;
@@ -858,7 +860,7 @@
858 fsl,num-tx-queues=<3>; 860 fsl,num-tx-queues=<3>;
859 fsl,num-rx-queues=<3>; 861 fsl,num-rx-queues=<3>;
860 status = "disabled"; 862 status = "disabled";
861 }; 863 };
862 864
863 mlb: mlb@0218c000 { 865 mlb: mlb@0218c000 {
864 reg = <0x0218c000 0x4000>; 866 reg = <0x0218c000 0x4000>;
@@ -968,10 +970,13 @@
968 }; 970 };
969 971
970 weim: weim@021b8000 { 972 weim: weim@021b8000 {
973 #address-cells = <2>;
974 #size-cells = <1>;
971 compatible = "fsl,imx6sx-weim", "fsl,imx6q-weim"; 975 compatible = "fsl,imx6sx-weim", "fsl,imx6q-weim";
972 reg = <0x021b8000 0x4000>; 976 reg = <0x021b8000 0x4000>;
973 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 977 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
974 clocks = <&clks IMX6SX_CLK_EIM_SLOW>; 978 clocks = <&clks IMX6SX_CLK_EIM_SLOW>;
979 fsl,weim-cs-gpr = <&gpr>;
975 }; 980 };
976 981
977 ocotp: ocotp@021bc000 { 982 ocotp: ocotp@021bc000 {
@@ -1143,7 +1148,7 @@
1143 lcdif1: lcdif@02220000 { 1148 lcdif1: lcdif@02220000 {
1144 compatible = "fsl,imx6sx-lcdif", "fsl,imx28-lcdif"; 1149 compatible = "fsl,imx6sx-lcdif", "fsl,imx28-lcdif";
1145 reg = <0x02220000 0x4000>; 1150 reg = <0x02220000 0x4000>;
1146 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 1151 interrupts = <GIC_SPI 5 IRQ_TYPE_EDGE_RISING>;
1147 clocks = <&clks IMX6SX_CLK_LCDIF1_PIX>, 1152 clocks = <&clks IMX6SX_CLK_LCDIF1_PIX>,
1148 <&clks IMX6SX_CLK_LCDIF_APB>, 1153 <&clks IMX6SX_CLK_LCDIF_APB>,
1149 <&clks IMX6SX_CLK_DISPLAY_AXI>; 1154 <&clks IMX6SX_CLK_DISPLAY_AXI>;
@@ -1154,7 +1159,7 @@
1154 lcdif2: lcdif@02224000 { 1159 lcdif2: lcdif@02224000 {
1155 compatible = "fsl,imx6sx-lcdif", "fsl,imx28-lcdif"; 1160 compatible = "fsl,imx6sx-lcdif", "fsl,imx28-lcdif";
1156 reg = <0x02224000 0x4000>; 1161 reg = <0x02224000 0x4000>;
1157 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 1162 interrupts = <GIC_SPI 6 IRQ_TYPE_EDGE_RISING>;
1158 clocks = <&clks IMX6SX_CLK_LCDIF2_PIX>, 1163 clocks = <&clks IMX6SX_CLK_LCDIF2_PIX>,
1159 <&clks IMX6SX_CLK_LCDIF_APB>, 1164 <&clks IMX6SX_CLK_LCDIF_APB>,
1160 <&clks IMX6SX_CLK_DISPLAY_AXI>; 1165 <&clks IMX6SX_CLK_DISPLAY_AXI>;
@@ -1181,7 +1186,7 @@
1181 fsl,adck-max-frequency = <30000000>, <40000000>, 1186 fsl,adck-max-frequency = <30000000>, <40000000>,
1182 <20000000>; 1187 <20000000>;
1183 status = "disabled"; 1188 status = "disabled";
1184 }; 1189 };
1185 1190
1186 adc2: adc@02284000 { 1191 adc2: adc@02284000 {
1187 compatible = "fsl,imx6sx-adc", "fsl,vf610-adc"; 1192 compatible = "fsl,imx6sx-adc", "fsl,vf610-adc";
@@ -1192,7 +1197,7 @@
1192 fsl,adck-max-frequency = <30000000>, <40000000>, 1197 fsl,adck-max-frequency = <30000000>, <40000000>,
1193 <20000000>; 1198 <20000000>;
1194 status = "disabled"; 1199 status = "disabled";
1195 }; 1200 };
1196 1201
1197 wdog3: wdog@02288000 { 1202 wdog3: wdog@02288000 {
1198 compatible = "fsl,imx6sx-wdt", "fsl,imx21-wdt"; 1203 compatible = "fsl,imx6sx-wdt", "fsl,imx21-wdt";
diff --git a/arch/arm/boot/dts/imx6ul-14x14-evk.dts b/arch/arm/boot/dts/imx6ul-14x14-evk.dts
index e281d5087d4a..00f98e5bfcaf 100644
--- a/arch/arm/boot/dts/imx6ul-14x14-evk.dts
+++ b/arch/arm/boot/dts/imx6ul-14x14-evk.dts
@@ -225,7 +225,7 @@
225}; 225};
226 226
227&usbotg1 { 227&usbotg1 {
228 dr_mode = "peripheral"; 228 dr_mode = "otg";
229 status = "okay"; 229 status = "okay";
230}; 230};
231 231
@@ -235,6 +235,14 @@
235 status = "okay"; 235 status = "okay";
236}; 236};
237 237
238&usbphy1 {
239 fsl,tx-d-cal = <106>;
240};
241
242&usbphy2 {
243 fsl,tx-d-cal = <106>;
244};
245
238&usdhc1 { 246&usdhc1 {
239 pinctrl-names = "default", "state_100mhz", "state_200mhz"; 247 pinctrl-names = "default", "state_100mhz", "state_200mhz";
240 pinctrl-0 = <&pinctrl_usdhc1>; 248 pinctrl-0 = <&pinctrl_usdhc1>;
diff --git a/arch/arm/boot/dts/imx6ul-liteboard.dts b/arch/arm/boot/dts/imx6ul-liteboard.dts
new file mode 100644
index 000000000000..6e04cb9202f4
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ul-liteboard.dts
@@ -0,0 +1,147 @@
1/*
2 * Copyright 2016 Grinn
3 *
4 * Author: Marcin Niestroj <m.niestroj@grinn-global.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
13 * version 2 as published by the Free Software Foundation.
14 *
15 * This file is distributed in the hope that it will be useful
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44/dts-v1/;
45
46#include "imx6ul-litesom.dtsi"
47
48/ {
49 model = "Grinn i.MX6UL liteBoard";
50 compatible = "grinn,imx6ul-liteboard", "grinn,imx6ul-litesom",
51 "fsl,imx6ul";
52
53 chosen {
54 stdout-path = &uart1;
55 };
56
57 reg_usb_otg1_vbus: regulator-usb-otg1-vbus {
58 compatible = "regulator-fixed";
59 pinctrl-names = "default";
60 pinctrl-0 = <&pinctrl_usb_otg1_vbus>;
61 regulator-name = "usb_otg1_vbus";
62 regulator-min-microvolt = <5000000>;
63 regulator-max-microvolt = <5000000>;
64 gpio = <&gpio2 8 GPIO_ACTIVE_LOW>;
65 };
66};
67
68&iomuxc {
69 pinctrl_enet1: enet1grp {
70 fsl,pins = <
71 MX6UL_PAD_GPIO1_IO07__ENET1_MDC 0x1b0b0
72 MX6UL_PAD_GPIO1_IO06__ENET1_MDIO 0x1b0b0
73 MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
74 MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0
75 MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
76 MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
77 MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0
78 MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
79 MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
80 MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031
81 >;
82 };
83
84 pinctrl_uart1: uart1grp {
85 fsl,pins = <
86 MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
87 MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
88 >;
89 };
90
91 pinctrl_usdhc1: usdhc1grp {
92 fsl,pins = <
93 MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x17059
94 MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059
95 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10071
96 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059
97 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059
98 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059
99 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059
100 >;
101 };
102
103 pinctrl_usb_otg1_vbus: usb-otg1-vbus {
104 fsl,pins = <
105 MX6UL_PAD_ENET2_RX_DATA0__GPIO2_IO08 0x79
106 >;
107 };
108};
109
110&fec1 {
111 pinctrl-names = "default";
112 pinctrl-0 = <&pinctrl_enet1>;
113 phy-mode = "rmii";
114 phy-handle = <&ethphy0>;
115 status = "okay";
116
117 mdio {
118 #address-cells = <1>;
119 #size-cells = <0>;
120
121 ethphy0: ethernet-phy@0 {
122 reg = <0>;
123 };
124 };
125};
126
127&uart1 {
128 pinctrl-names = "default";
129 pinctrl-0 = <&pinctrl_uart1>;
130 status = "okay";
131};
132
133&usbotg1 {
134 vbus-supply = <&reg_usb_otg1_vbus>;
135 dr_mode = "host";
136 status = "okay";
137};
138
139&usdhc1 {
140 pinctrl-names = "default";
141 pinctrl-0 = <&pinctrl_usdhc1>;
142 cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
143 no-1-8-v;
144 keep-power-in-suspend;
145 wakeup-source;
146 status = "okay";
147};
diff --git a/arch/arm/boot/dts/imx6ul-litesom.dtsi b/arch/arm/boot/dts/imx6ul-litesom.dtsi
new file mode 100644
index 000000000000..461292d33417
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ul-litesom.dtsi
@@ -0,0 +1,82 @@
1/*
2 * Copyright 2016 Grinn
3 *
4 * Author: Marcin Niestroj <m.niestroj@grinn-global.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
13 * version 2 as published by the Free Software Foundation.
14 *
15 * This file is distributed in the hope that it will be useful
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44#include "imx6ul.dtsi"
45
46/ {
47 model = "Grinn i.MX6UL liteSOM";
48 compatible = "grinn,imx6ul-litesom", "fsl,imx6ul";
49
50 memory {
51 reg = <0x80000000 0x20000000>;
52 };
53};
54
55&iomuxc {
56 pinctrl_usdhc2: usdhc2grp {
57 fsl,pins = <
58 MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x10069
59 MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x17059
60 MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17059
61 MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17059
62 MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17059
63 MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059
64 MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x17059
65 MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x17059
66 MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x17059
67 MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x17059
68 MX6UL_PAD_NAND_ALE__USDHC2_RESET_B 0x17059
69 >;
70 };
71};
72
73&usdhc2 {
74 pinctrl-names = "default";
75 pinctrl-0 = <&pinctrl_usdhc2>;
76 no-1-8-v;
77 non-removable;
78 keep-power-in-suspend;
79 wakeup-source;
80 bus-width = <8>;
81 status = "okay";
82};
diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi
index c5c05fdccc78..39845a7e0463 100644
--- a/arch/arm/boot/dts/imx6ul.dtsi
+++ b/arch/arm/boot/dts/imx6ul.dtsi
@@ -11,9 +11,11 @@
11#include <dt-bindings/input/input.h> 11#include <dt-bindings/input/input.h>
12#include <dt-bindings/interrupt-controller/arm-gic.h> 12#include <dt-bindings/interrupt-controller/arm-gic.h>
13#include "imx6ul-pinfunc.h" 13#include "imx6ul-pinfunc.h"
14#include "skeleton.dtsi"
15 14
16/ { 15/ {
16 #address-cells = <1>;
17 #size-cells = <1>;
18
17 aliases { 19 aliases {
18 ethernet0 = &fec1; 20 ethernet0 = &fec1;
19 ethernet1 = &fec2; 21 ethernet1 = &fec2;
diff --git a/arch/arm/boot/dts/imx6ull-14x14-evk.dts b/arch/arm/boot/dts/imx6ull-14x14-evk.dts
new file mode 100644
index 000000000000..db5bc076e1cc
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ull-14x14-evk.dts
@@ -0,0 +1,52 @@
1/*
2 * Copyright (C) 2016 Freescale Semiconductor, Inc.
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42#include "imx6ul-14x14-evk.dts"
43
44/ {
45 model = "Freescale i.MX6 UlltraLite 14x14 EVK Board";
46 compatible = "fsl,imx6ull-14x14-evk", "fsl,imx6ull";
47};
48
49&clks {
50 assigned-clocks = <&clks IMX6UL_CLK_PLL3_PFD2>;
51 assigned-clock-rates = <320000000>;
52};
diff --git a/arch/arm/boot/dts/imx6ull-pinfunc.h b/arch/arm/boot/dts/imx6ull-pinfunc.h
new file mode 100644
index 000000000000..118202336691
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ull-pinfunc.h
@@ -0,0 +1,56 @@
1/*
2 * Copyright (C) 2016 Freescale Semiconductor, Inc.
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#ifndef __DTS_IMX6ULL_PINFUNC_H
10#define __DTS_IMX6ULL_PINFUNC_H
11
12#include "imx6ul-pinfunc.h"
13/*
14 * The pin function ID is a tuple of
15 * <mux_reg conf_reg input_reg mux_mode input_val>
16 */
17#define MX6ULL_PAD_ENET2_RX_DATA0__EPDC_SDDO08 0x00E4 0x0370 0x0000 0x9 0x0
18#define MX6ULL_PAD_ENET2_RX_DATA1__EPDC_SDDO09 0x00E8 0x0374 0x0000 0x9 0x0
19#define MX6ULL_PAD_ENET2_RX_EN__EPDC_SDDO10 0x00EC 0x0378 0x0000 0x9 0x0
20#define MX6ULL_PAD_ENET2_TX_DATA0__EPDC_SDDO11 0x00F0 0x037C 0x0000 0x9 0x0
21#define MX6ULL_PAD_ENET2_TX_DATA1__EPDC_SDDO12 0x00F4 0x0380 0x0000 0x9 0x0
22#define MX6ULL_PAD_ENET2_TX_EN__EPDC_SDDO13 0x00F8 0x0384 0x0000 0x9 0x0
23#define MX6ULL_PAD_ENET2_TX_CLK__EPDC_SDDO14 0x00FC 0x0388 0x0000 0x9 0x0
24#define MX6ULL_PAD_ENET2_RX_ER__EPDC_SDDO15 0x0100 0x038C 0x0000 0x9 0x0
25#define MX6ULL_PAD_LCD_CLK__EPDC_SDCLK 0x0104 0x0390 0x0000 0x9 0x0
26#define MX6ULL_PAD_LCD_ENABLE__EPDC_SDLE 0x0108 0x0394 0x0000 0x9 0x0
27#define MX6ULL_PAD_LCD_HSYNC__EPDC_SDOE 0x010C 0x0398 0x0000 0x9 0x0
28#define MX6ULL_PAD_LCD_VSYNC__EPDC_SDCE0 0x0110 0x039C 0x0000 0x9 0x0
29#define MX6ULL_PAD_LCD_RESET__EPDC_GDOE 0x0114 0x03A0 0x0000 0x9 0x0
30#define MX6ULL_PAD_LCD_DATA00__EPDC_SDDO00 0x0118 0x03A4 0x0000 0x9 0x0
31#define MX6ULL_PAD_LCD_DATA01__EPDC_SDDO01 0x011C 0x03A8 0x0000 0x9 0x0
32#define MX6ULL_PAD_LCD_DATA02__EPDC_SDDO02 0x0120 0x03AC 0x0000 0x9 0x0
33#define MX6ULL_PAD_LCD_DATA03__EPDC_SDDO03 0x0124 0x03B0 0x0000 0x9 0x0
34#define MX6ULL_PAD_LCD_DATA04__EPDC_SDDO04 0x0128 0x03B4 0x0000 0x9 0x0
35#define MX6ULL_PAD_LCD_DATA05__EPDC_SDDO05 0x012C 0x03B8 0x0000 0x9 0x0
36#define MX6ULL_PAD_LCD_DATA06__EPDC_SDDO06 0x0130 0x03BC 0x0000 0x9 0x0
37#define MX6ULL_PAD_LCD_DATA07__EPDC_SDDO07 0x0134 0x03C0 0x0000 0x9 0x0
38#define MX6ULL_PAD_LCD_DATA14__EPDC_SDSHR 0x0150 0x03DC 0x0000 0x9 0x0
39#define MX6ULL_PAD_LCD_DATA15__EPDC_GDRL 0x0154 0x03E0 0x0000 0x9 0x0
40#define MX6ULL_PAD_LCD_DATA16__EPDC_GDCLK 0x0158 0x03E4 0x0000 0x9 0x0
41#define MX6ULL_PAD_LCD_DATA17__EPDC_GDSP 0x015C 0x03E8 0x0000 0x9 0x0
42#define MX6ULL_PAD_LCD_DATA21__EPDC_SDCE1 0x016C 0x03F8 0x0000 0x9 0x0
43#define MX6ULL_PAD_CSI_MCLK__ESAI_TX3_RX2 0x01D4 0x0460 0x0000 0x9 0x0
44#define MX6ULL_PAD_CSI_PIXCLK__ESAI_TX2_RX3 0x01D8 0x0464 0x0000 0x9 0x0
45#define MX6ULL_PAD_CSI_VSYNC__ESAI_TX4_RX1 0x01DC 0x0468 0x0000 0x9 0x0
46#define MX6ULL_PAD_CSI_HSYNC__ESAI_TX1 0x01E0 0x046C 0x0000 0x9 0x0
47#define MX6ULL_PAD_CSI_DATA00__ESAI_TX_HF_CLK 0x01E4 0x0470 0x0000 0x9 0x0
48#define MX6ULL_PAD_CSI_DATA01__ESAI_RX_HF_CLK 0x01E8 0x0474 0x0000 0x9 0x0
49#define MX6ULL_PAD_CSI_DATA02__ESAI_RX_FS 0x01EC 0x0478 0x0000 0x9 0x0
50#define MX6ULL_PAD_CSI_DATA03__ESAI_RX_CLK 0x01F0 0x047C 0x0000 0x9 0x0
51#define MX6ULL_PAD_CSI_DATA04__ESAI_TX_FS 0x01F4 0x0480 0x0000 0x9 0x0
52#define MX6ULL_PAD_CSI_DATA05__ESAI_TX_CLK 0x01F8 0x0484 0x0000 0x9 0x0
53#define MX6ULL_PAD_CSI_DATA06__ESAI_TX5_RX0 0x01FC 0x0488 0x0000 0x9 0x0
54#define MX6ULL_PAD_CSI_DATA07__ESAI_T0 0x0200 0x048C 0x0000 0x9 0x0
55
56#endif /* __DTS_IMX6ULL_PINFUNC_H */
diff --git a/arch/arm/boot/dts/imx6ull.dtsi b/arch/arm/boot/dts/imx6ull.dtsi
new file mode 100644
index 000000000000..dee8ab8135e1
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ull.dtsi
@@ -0,0 +1,43 @@
1/*
2 * Copyright 2016 Freescale Semiconductor, Inc.
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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42#include "imx6ul.dtsi"
43#include "imx6ull-pinfunc.h"
diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi
index 2b6cb05bc01a..8ff2cbdd8f0d 100644
--- a/arch/arm/boot/dts/imx7s.dtsi
+++ b/arch/arm/boot/dts/imx7s.dtsi
@@ -46,9 +46,11 @@
46#include <dt-bindings/input/input.h> 46#include <dt-bindings/input/input.h>
47#include <dt-bindings/interrupt-controller/arm-gic.h> 47#include <dt-bindings/interrupt-controller/arm-gic.h>
48#include "imx7d-pinfunc.h" 48#include "imx7d-pinfunc.h"
49#include "skeleton.dtsi"
50 49
51/ { 50/ {
51 #address-cells = <1>;
52 #size-cells = <1>;
53
52 aliases { 54 aliases {
53 gpio0 = &gpio1; 55 gpio0 = &gpio1;
54 gpio1 = &gpio2; 56 gpio1 = &gpio2;
diff --git a/arch/arm/boot/dts/integratorap.dts b/arch/arm/boot/dts/integratorap.dts
index 6f16d09dc5a4..e8b249f92fb3 100644
--- a/arch/arm/boot/dts/integratorap.dts
+++ b/arch/arm/boot/dts/integratorap.dts
@@ -10,6 +10,41 @@
10 compatible = "arm,integrator-ap"; 10 compatible = "arm,integrator-ap";
11 dma-ranges = <0x80000000 0x0 0x80000000>; 11 dma-ranges = <0x80000000 0x0 0x80000000>;
12 12
13 cpus {
14 #address-cells = <1>;
15 #size-cells = <0>;
16
17 cpu@0 {
18 device_type = "cpu";
19 /*
20 * Since the board has pluggable CPU modules, we
21 * cannot define a proper compatible here. Let the
22 * boot loader fill in the apropriate compatible
23 * string if necessary.
24 */
25 /* compatible = "arm,arm926ej-s"; */
26 reg = <0>;
27 /*
28 * The documentation in ARM DUI 0138E page 3-12 states
29 * that the maximum frequency for this clock is 200 MHz
30 * but painful trial-and-error has proved to me that it
31 * is actually just hanging the system above 71 MHz.
32 * Sad but true.
33 */
34 /* kHz uV */
35 operating-points = <71000 0
36 66000 0
37 60000 0
38 48000 0
39 36000 0
40 24000 0
41 12000 0>;
42 clocks = <&cmosc>;
43 clock-names = "cpu";
44 clock-latency = <1000000>; /* 1 ms */
45 };
46 };
47
13 aliases { 48 aliases {
14 arm,timer-primary = &timer2; 49 arm,timer-primary = &timer2;
15 arm,timer-secondary = &timer1; 50 arm,timer-secondary = &timer1;
diff --git a/arch/arm/boot/dts/integratorcp.dts b/arch/arm/boot/dts/integratorcp.dts
index 1b5e4b006b72..97f38b57a702 100644
--- a/arch/arm/boot/dts/integratorcp.dts
+++ b/arch/arm/boot/dts/integratorcp.dts
@@ -13,6 +13,32 @@
13 bootargs = "root=/dev/ram0 console=ttyAMA0,38400n8 earlyprintk"; 13 bootargs = "root=/dev/ram0 console=ttyAMA0,38400n8 earlyprintk";
14 }; 14 };
15 15
16 cpus {
17 #address-cells = <1>;
18 #size-cells = <0>;
19
20 cpu@0 {
21 device_type = "cpu";
22 /*
23 * Since the board has pluggable CPU modules, we
24 * cannot define a proper compatible here. Let the
25 * boot loader fill in the apropriate compatible
26 * string if necessary.
27 */
28 /* compatible = "arm,arm920t"; */
29 reg = <0>;
30 /*
31 * TBD comment.
32 */
33 /* kHz uV */
34 operating-points = <50000 0
35 48000 0>;
36 clocks = <&cmcore>;
37 clock-names = "cpu";
38 clock-latency = <1000000>; /* 1 ms */
39 };
40 };
41
16 /* 42 /*
17 * The Integrator/CP overall clocking architecture can be found in 43 * The Integrator/CP overall clocking architecture can be found in
18 * ARM DUI 0184B page 7-28 "Integrator/CP922T system clocks" which 44 * ARM DUI 0184B page 7-28 "Integrator/CP922T system clocks" which
diff --git a/arch/arm/boot/dts/keystone-k2g.dtsi b/arch/arm/boot/dts/keystone-k2g.dtsi
index 2919c5190653..63c7cf0c6b6d 100644
--- a/arch/arm/boot/dts/keystone-k2g.dtsi
+++ b/arch/arm/boot/dts/keystone-k2g.dtsi
@@ -72,6 +72,7 @@
72 soc { 72 soc {
73 #address-cells = <1>; 73 #address-cells = <1>;
74 #size-cells = <1>; 74 #size-cells = <1>;
75 #pinctrl-cells = <1>;
75 compatible = "ti,keystone","simple-bus"; 76 compatible = "ti,keystone","simple-bus";
76 ranges = <0x0 0x0 0x0 0xc0000000>; 77 ranges = <0x0 0x0 0x0 0xc0000000>;
77 dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>; 78 dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>;
diff --git a/arch/arm/boot/dts/keystone-k2l.dtsi b/arch/arm/boot/dts/keystone-k2l.dtsi
index 2ee3d0ac2816..0c5e74e79ba2 100644
--- a/arch/arm/boot/dts/keystone-k2l.dtsi
+++ b/arch/arm/boot/dts/keystone-k2l.dtsi
@@ -59,6 +59,7 @@
59 reg = <0x02620690 0xc>; 59 reg = <0x02620690 0xc>;
60 #address-cells = <1>; 60 #address-cells = <1>;
61 #size-cells = <0>; 61 #size-cells = <0>;
62 #pinctrl-cells = <2>;
62 pinctrl-single,bit-per-mux; 63 pinctrl-single,bit-per-mux;
63 pinctrl-single,register-width = <32>; 64 pinctrl-single,register-width = <32>;
64 pinctrl-single,function-mask = <0x1>; 65 pinctrl-single,function-mask = <0x1>;
diff --git a/arch/arm/boot/dts/kirkwood-topkick.dts b/arch/arm/boot/dts/kirkwood-topkick.dts
index 1e9a72100a45..330aada6d33f 100644
--- a/arch/arm/boot/dts/kirkwood-topkick.dts
+++ b/arch/arm/boot/dts/kirkwood-topkick.dts
@@ -4,7 +4,7 @@
4#include "kirkwood-6282.dtsi" 4#include "kirkwood-6282.dtsi"
5 5
6/ { 6/ {
7 model = "Univeral Scientific Industrial Co. Topkick-1281P2"; 7 model = "Universal Scientific Industrial Co. Topkick-1281P2";
8 compatible = "usi,topkick-1281P2", "usi,topkick", "marvell,kirkwood-88f6282", "marvell,kirkwood"; 8 compatible = "usi,topkick-1281P2", "usi,topkick", "marvell,kirkwood-88f6282", "marvell,kirkwood";
9 9
10 memory { 10 memory {
diff --git a/arch/arm/boot/dts/lpc32xx.dtsi b/arch/arm/boot/dts/lpc32xx.dtsi
index b5841fab51c1..d81fe433e3c8 100644
--- a/arch/arm/boot/dts/lpc32xx.dtsi
+++ b/arch/arm/boot/dts/lpc32xx.dtsi
@@ -479,6 +479,8 @@
479 compatible = "nxp,lpc3220-pwm"; 479 compatible = "nxp,lpc3220-pwm";
480 reg = <0x4005C000 0x4>; 480 reg = <0x4005C000 0x4>;
481 clocks = <&clk LPC32XX_CLK_PWM1>; 481 clocks = <&clk LPC32XX_CLK_PWM1>;
482 assigned-clocks = <&clk LPC32XX_CLK_PWM1>;
483 assigned-clock-parents = <&clk LPC32XX_CLK_PERIPH>;
482 status = "disabled"; 484 status = "disabled";
483 }; 485 };
484 486
@@ -486,6 +488,8 @@
486 compatible = "nxp,lpc3220-pwm"; 488 compatible = "nxp,lpc3220-pwm";
487 reg = <0x4005C004 0x4>; 489 reg = <0x4005C004 0x4>;
488 clocks = <&clk LPC32XX_CLK_PWM2>; 490 clocks = <&clk LPC32XX_CLK_PWM2>;
491 assigned-clocks = <&clk LPC32XX_CLK_PWM2>;
492 assigned-clock-parents = <&clk LPC32XX_CLK_PERIPH>;
489 status = "disabled"; 493 status = "disabled";
490 }; 494 };
491 495
diff --git a/arch/arm/boot/dts/ls1021a.dtsi b/arch/arm/boot/dts/ls1021a.dtsi
index 368e21934285..282d854f4342 100644
--- a/arch/arm/boot/dts/ls1021a.dtsi
+++ b/arch/arm/boot/dts/ls1021a.dtsi
@@ -47,6 +47,7 @@
47 47
48#include "skeleton64.dtsi" 48#include "skeleton64.dtsi"
49#include <dt-bindings/interrupt-controller/arm-gic.h> 49#include <dt-bindings/interrupt-controller/arm-gic.h>
50#include <dt-bindings/thermal/thermal.h>
50 51
51/ { 52/ {
52 compatible = "fsl,ls1021a"; 53 compatible = "fsl,ls1021a";
@@ -70,14 +71,15 @@
70 #address-cells = <1>; 71 #address-cells = <1>;
71 #size-cells = <0>; 72 #size-cells = <0>;
72 73
73 cpu@f00 { 74 cpu0: cpu@f00 {
74 compatible = "arm,cortex-a7"; 75 compatible = "arm,cortex-a7";
75 device_type = "cpu"; 76 device_type = "cpu";
76 reg = <0xf00>; 77 reg = <0xf00>;
77 clocks = <&cluster1_clk>; 78 clocks = <&cluster1_clk>;
79 #cooling-cells = <2>;
78 }; 80 };
79 81
80 cpu@f01 { 82 cpu1: cpu@f01 {
81 compatible = "arm,cortex-a7"; 83 compatible = "arm,cortex-a7";
82 device_type = "cpu"; 84 device_type = "cpu";
83 reg = <0xf01>; 85 reg = <0xf01>;
@@ -251,6 +253,84 @@
251 }; 253 };
252 }; 254 };
253 255
256 tmu: tmu@1f00000 {
257 compatible = "fsl,qoriq-tmu";
258 reg = <0x0 0x1f00000 0x0 0x10000>;
259 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
260 fsl,tmu-range = <0xb0000 0xa0026 0x80048 0x30061>;
261 fsl,tmu-calibration = <0x00000000 0x0000000f
262 0x00000001 0x00000017
263 0x00000002 0x0000001e
264 0x00000003 0x00000026
265 0x00000004 0x0000002e
266 0x00000005 0x00000035
267 0x00000006 0x0000003d
268 0x00000007 0x00000044
269 0x00000008 0x0000004c
270 0x00000009 0x00000053
271 0x0000000a 0x0000005b
272 0x0000000b 0x00000064
273
274 0x00010000 0x00000011
275 0x00010001 0x0000001c
276 0x00010002 0x00000024
277 0x00010003 0x0000002b
278 0x00010004 0x00000034
279 0x00010005 0x00000039
280 0x00010006 0x00000042
281 0x00010007 0x0000004c
282 0x00010008 0x00000051
283 0x00010009 0x0000005a
284 0x0001000a 0x00000063
285
286 0x00020000 0x00000013
287 0x00020001 0x00000019
288 0x00020002 0x00000024
289 0x00020003 0x0000002c
290 0x00020004 0x00000035
291 0x00020005 0x0000003d
292 0x00020006 0x00000046
293 0x00020007 0x00000050
294 0x00020008 0x00000059
295
296 0x00030000 0x00000002
297 0x00030001 0x0000000d
298 0x00030002 0x00000019
299 0x00030003 0x00000024>;
300 #thermal-sensor-cells = <1>;
301 };
302
303 thermal-zones {
304 cpu_thermal: cpu-thermal {
305 polling-delay-passive = <1000>;
306 polling-delay = <5000>;
307
308 thermal-sensors = <&tmu 0>;
309
310 trips {
311 cpu_alert: cpu-alert {
312 temperature = <85000>;
313 hysteresis = <2000>;
314 type = "passive";
315 };
316 cpu_crit: cpu-crit {
317 temperature = <95000>;
318 hysteresis = <2000>;
319 type = "critical";
320 };
321 };
322
323 cooling-maps {
324 map0 {
325 trip = <&cpu_alert>;
326 cooling-device =
327 <&cpu0 THERMAL_NO_LIMIT
328 THERMAL_NO_LIMIT>;
329 };
330 };
331 };
332 };
333
254 dspi0: dspi@2100000 { 334 dspi0: dspi@2100000 {
255 compatible = "fsl,ls1021a-v1.0-dspi"; 335 compatible = "fsl,ls1021a-v1.0-dspi";
256 #address-cells = <1>; 336 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/mps2-an385.dts b/arch/arm/boot/dts/mps2-an385.dts
index 31c374d72a6f..aebbebfc25d1 100644
--- a/arch/arm/boot/dts/mps2-an385.dts
+++ b/arch/arm/boot/dts/mps2-an385.dts
@@ -59,7 +59,7 @@
59 stdout-path = "serial0:9600n8"; 59 stdout-path = "serial0:9600n8";
60 }; 60 };
61 61
62 memory { 62 memory@21000000 {
63 device_type = "memory"; 63 device_type = "memory";
64 reg = <0x21000000 0x1000000>; 64 reg = <0x21000000 0x1000000>;
65 }; 65 };
diff --git a/arch/arm/boot/dts/mps2-an399.dts b/arch/arm/boot/dts/mps2-an399.dts
index 5e7e5ca2edbf..349abf70b2a5 100644
--- a/arch/arm/boot/dts/mps2-an399.dts
+++ b/arch/arm/boot/dts/mps2-an399.dts
@@ -59,7 +59,7 @@
59 stdout-path = "serial0:9600n8"; 59 stdout-path = "serial0:9600n8";
60 }; 60 };
61 61
62 memory { 62 memory@60000000 {
63 device_type = "memory"; 63 device_type = "memory";
64 reg = <0x60000000 0x1000000>; 64 reg = <0x60000000 0x1000000>;
65 }; 65 };
diff --git a/arch/arm/boot/dts/mps2.dtsi b/arch/arm/boot/dts/mps2.dtsi
index efb8a03cb970..23467390558d 100644
--- a/arch/arm/boot/dts/mps2.dtsi
+++ b/arch/arm/boot/dts/mps2.dtsi
@@ -42,10 +42,12 @@
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
43 */ 43 */
44 44
45#include "skeleton.dtsi"
46#include "armv7-m.dtsi" 45#include "armv7-m.dtsi"
47 46
48/ { 47/ {
48 #address-cells = <1>;
49 #size-cells = <1>;
50
49 oscclk0: clk-osc0 { 51 oscclk0: clk-osc0 {
50 compatible = "fixed-clock"; 52 compatible = "fixed-clock";
51 #clock-cells = <0>; 53 #clock-cells = <0>;
diff --git a/arch/arm/boot/dts/mt2701.dtsi b/arch/arm/boot/dts/mt2701.dtsi
index 18596a2c58a1..7eab6f4c4665 100644
--- a/arch/arm/boot/dts/mt2701.dtsi
+++ b/arch/arm/boot/dts/mt2701.dtsi
@@ -12,8 +12,10 @@
12 * GNU General Public License for more details. 12 * GNU General Public License for more details.
13 */ 13 */
14 14
15#include <dt-bindings/clock/mt2701-clk.h>
15#include <dt-bindings/interrupt-controller/irq.h> 16#include <dt-bindings/interrupt-controller/irq.h>
16#include <dt-bindings/interrupt-controller/arm-gic.h> 17#include <dt-bindings/interrupt-controller/arm-gic.h>
18#include <dt-bindings/reset/mt2701-resets.h>
17#include "skeleton64.dtsi" 19#include "skeleton64.dtsi"
18#include "mt2701-pinfunc.h" 20#include "mt2701-pinfunc.h"
19 21
@@ -71,10 +73,18 @@
71 #clock-cells = <0>; 73 #clock-cells = <0>;
72 }; 74 };
73 75
74 uart_clk: dummy26m { 76 clk26m: oscillator@0 {
75 compatible = "fixed-clock"; 77 compatible = "fixed-clock";
78 #clock-cells = <0>;
76 clock-frequency = <26000000>; 79 clock-frequency = <26000000>;
80 clock-output-names = "clk26m";
81 };
82
83 rtc32k: oscillator@1 {
84 compatible = "fixed-clock";
77 #clock-cells = <0>; 85 #clock-cells = <0>;
86 clock-frequency = <32000>;
87 clock-output-names = "rtc32k";
78 }; 88 };
79 89
80 timer { 90 timer {
@@ -104,6 +114,26 @@
104 reg = <0 0x10005000 0 0x1000>; 114 reg = <0 0x10005000 0 0x1000>;
105 }; 115 };
106 116
117 topckgen: syscon@10000000 {
118 compatible = "mediatek,mt2701-topckgen", "syscon";
119 reg = <0 0x10000000 0 0x1000>;
120 #clock-cells = <1>;
121 };
122
123 infracfg: syscon@10001000 {
124 compatible = "mediatek,mt2701-infracfg", "syscon";
125 reg = <0 0x10001000 0 0x1000>;
126 #clock-cells = <1>;
127 #reset-cells = <1>;
128 };
129
130 pericfg: syscon@10003000 {
131 compatible = "mediatek,mt2701-pericfg", "syscon";
132 reg = <0 0x10003000 0 0x1000>;
133 #clock-cells = <1>;
134 #reset-cells = <1>;
135 };
136
107 watchdog: watchdog@10007000 { 137 watchdog: watchdog@10007000 {
108 compatible = "mediatek,mt2701-wdt", 138 compatible = "mediatek,mt2701-wdt",
109 "mediatek,mt6589-wdt"; 139 "mediatek,mt6589-wdt";
@@ -128,6 +158,12 @@
128 reg = <0 0x10200100 0 0x1c>; 158 reg = <0 0x10200100 0 0x1c>;
129 }; 159 };
130 160
161 apmixedsys: syscon@10209000 {
162 compatible = "mediatek,mt2701-apmixedsys", "syscon";
163 reg = <0 0x10209000 0 0x1000>;
164 #clock-cells = <1>;
165 };
166
131 gic: interrupt-controller@10211000 { 167 gic: interrupt-controller@10211000 {
132 compatible = "arm,cortex-a7-gic"; 168 compatible = "arm,cortex-a7-gic";
133 interrupt-controller; 169 interrupt-controller;
@@ -144,7 +180,8 @@
144 "mediatek,mt6577-uart"; 180 "mediatek,mt6577-uart";
145 reg = <0 0x11002000 0 0x400>; 181 reg = <0 0x11002000 0 0x400>;
146 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>; 182 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>;
147 clocks = <&uart_clk>; 183 clocks = <&pericfg CLK_PERI_UART0_SEL>, <&pericfg CLK_PERI_UART0>;
184 clock-names = "baud", "bus";
148 status = "disabled"; 185 status = "disabled";
149 }; 186 };
150 187
@@ -153,7 +190,8 @@
153 "mediatek,mt6577-uart"; 190 "mediatek,mt6577-uart";
154 reg = <0 0x11003000 0 0x400>; 191 reg = <0 0x11003000 0 0x400>;
155 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>; 192 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
156 clocks = <&uart_clk>; 193 clocks = <&pericfg CLK_PERI_UART1_SEL>, <&pericfg CLK_PERI_UART1>;
194 clock-names = "baud", "bus";
157 status = "disabled"; 195 status = "disabled";
158 }; 196 };
159 197
@@ -162,7 +200,8 @@
162 "mediatek,mt6577-uart"; 200 "mediatek,mt6577-uart";
163 reg = <0 0x11004000 0 0x400>; 201 reg = <0 0x11004000 0 0x400>;
164 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>; 202 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>;
165 clocks = <&uart_clk>; 203 clocks = <&pericfg CLK_PERI_UART2_SEL>, <&pericfg CLK_PERI_UART2>;
204 clock-names = "baud", "bus";
166 status = "disabled"; 205 status = "disabled";
167 }; 206 };
168 207
@@ -171,7 +210,8 @@
171 "mediatek,mt6577-uart"; 210 "mediatek,mt6577-uart";
172 reg = <0 0x11005000 0 0x400>; 211 reg = <0 0x11005000 0 0x400>;
173 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>; 212 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>;
174 clocks = <&uart_clk>; 213 clocks = <&pericfg CLK_PERI_UART3_SEL>, <&pericfg CLK_PERI_UART3>;
214 clock-names = "baud", "bus";
175 status = "disabled"; 215 status = "disabled";
176 }; 216 };
177}; 217};
diff --git a/arch/arm/boot/dts/omap2420.dtsi b/arch/arm/boot/dts/omap2420.dtsi
index fb712b9aa874..aba542d63d6d 100644
--- a/arch/arm/boot/dts/omap2420.dtsi
+++ b/arch/arm/boot/dts/omap2420.dtsi
@@ -38,6 +38,7 @@
38 reg = <0x0 0x1000>; 38 reg = <0x0 0x1000>;
39 #address-cells = <1>; 39 #address-cells = <1>;
40 #size-cells = <1>; 40 #size-cells = <1>;
41 #pinctrl-cells = <1>;
41 ranges = <0 0x0 0x1000>; 42 ranges = <0 0x0 0x1000>;
42 43
43 omap2420_pmx: pinmux@30 { 44 omap2420_pmx: pinmux@30 {
@@ -46,6 +47,7 @@
46 reg = <0x30 0x0113>; 47 reg = <0x30 0x0113>;
47 #address-cells = <1>; 48 #address-cells = <1>;
48 #size-cells = <0>; 49 #size-cells = <0>;
50 #pinctrl-cells = <1>;
49 pinctrl-single,register-width = <8>; 51 pinctrl-single,register-width = <8>;
50 pinctrl-single,function-mask = <0x3f>; 52 pinctrl-single,function-mask = <0x3f>;
51 }; 53 };
diff --git a/arch/arm/boot/dts/omap2430.dtsi b/arch/arm/boot/dts/omap2430.dtsi
index 455aaea407dd..84635eeb99cd 100644
--- a/arch/arm/boot/dts/omap2430.dtsi
+++ b/arch/arm/boot/dts/omap2430.dtsi
@@ -38,6 +38,7 @@
38 reg = <0x2000 0x1000>; 38 reg = <0x2000 0x1000>;
39 #address-cells = <1>; 39 #address-cells = <1>;
40 #size-cells = <1>; 40 #size-cells = <1>;
41 #pinctrl-cells = <1>;
41 ranges = <0 0x2000 0x1000>; 42 ranges = <0 0x2000 0x1000>;
42 43
43 omap2430_pmx: pinmux@30 { 44 omap2430_pmx: pinmux@30 {
@@ -46,6 +47,7 @@
46 reg = <0x30 0x0154>; 47 reg = <0x30 0x0154>;
47 #address-cells = <1>; 48 #address-cells = <1>;
48 #size-cells = <0>; 49 #size-cells = <0>;
50 #pinctrl-cells = <1>;
49 pinctrl-single,register-width = <8>; 51 pinctrl-single,register-width = <8>;
50 pinctrl-single,function-mask = <0x3f>; 52 pinctrl-single,function-mask = <0x3f>;
51 }; 53 };
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index 353d818ce5a6..ecf5eb584c75 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -106,6 +106,7 @@
106 reg = <0x30 0x238>; 106 reg = <0x30 0x238>;
107 #address-cells = <1>; 107 #address-cells = <1>;
108 #size-cells = <0>; 108 #size-cells = <0>;
109 #pinctrl-cells = <1>;
109 #interrupt-cells = <1>; 110 #interrupt-cells = <1>;
110 interrupt-controller; 111 interrupt-controller;
111 pinctrl-single,register-width = <16>; 112 pinctrl-single,register-width = <16>;
@@ -145,6 +146,7 @@
145 reg = <0xa00 0x5c>; 146 reg = <0xa00 0x5c>;
146 #address-cells = <1>; 147 #address-cells = <1>;
147 #size-cells = <0>; 148 #size-cells = <0>;
149 #pinctrl-cells = <1>;
148 #interrupt-cells = <1>; 150 #interrupt-cells = <1>;
149 interrupt-controller; 151 interrupt-controller;
150 pinctrl-single,register-width = <16>; 152 pinctrl-single,register-width = <16>;
diff --git a/arch/arm/boot/dts/omap34xx.dtsi b/arch/arm/boot/dts/omap34xx.dtsi
index e41c52d3b113..834fdf13601f 100644
--- a/arch/arm/boot/dts/omap34xx.dtsi
+++ b/arch/arm/boot/dts/omap34xx.dtsi
@@ -34,6 +34,7 @@
34 reg = <0x480025d8 0x24>; 34 reg = <0x480025d8 0x24>;
35 #address-cells = <1>; 35 #address-cells = <1>;
36 #size-cells = <0>; 36 #size-cells = <0>;
37 #pinctrl-cells = <1>;
37 #interrupt-cells = <1>; 38 #interrupt-cells = <1>;
38 interrupt-controller; 39 interrupt-controller;
39 pinctrl-single,register-width = <16>; 40 pinctrl-single,register-width = <16>;
diff --git a/arch/arm/boot/dts/omap36xx.dtsi b/arch/arm/boot/dts/omap36xx.dtsi
index 718fa88407cd..d1a3e56b50ce 100644
--- a/arch/arm/boot/dts/omap36xx.dtsi
+++ b/arch/arm/boot/dts/omap36xx.dtsi
@@ -66,6 +66,7 @@
66 reg = <0x480025a0 0x5c>; 66 reg = <0x480025a0 0x5c>;
67 #address-cells = <1>; 67 #address-cells = <1>;
68 #size-cells = <0>; 68 #size-cells = <0>;
69 #pinctrl-cells = <1>;
69 #interrupt-cells = <1>; 70 #interrupt-cells = <1>;
70 interrupt-controller; 71 interrupt-controller;
71 pinctrl-single,register-width = <16>; 72 pinctrl-single,register-width = <16>;
diff --git a/arch/arm/boot/dts/omap4-droid4-xt894.dts b/arch/arm/boot/dts/omap4-droid4-xt894.dts
new file mode 100644
index 000000000000..f3ccb4ceed9e
--- /dev/null
+++ b/arch/arm/boot/dts/omap4-droid4-xt894.dts
@@ -0,0 +1,188 @@
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 "omap443x.dtsi"
9
10/ {
11 model = "Motorola Droid 4 XT894";
12 compatible = "motorola,droid4", "ti,omap4430", "ti,omap4";
13
14 chosen {
15 stdout-path = &uart3;
16 };
17
18 /*
19 * We seem to have only 1021 MB accessible, 1021 - 1022 is locked,
20 * then 1023 - 1024 seems to contain mbm. For SRAM, see the notes
21 * below about SRAM and L3_ICLK2 being unused by default,
22 */
23 memory {
24 device_type = "memory";
25 reg = <0x80000000 0x3fd00000>; /* 1021 MB */
26 };
27
28 /* CPCAP really supports 1650000 to 3400000 range */
29 vmmc: regulator-mmc {
30 compatible = "regulator-fixed";
31 regulator-name = "vmmc";
32 regulator-min-microvolt = <3000000>;
33 regulator-max-microvolt = <3000000>;
34 regulator-always-on;
35 };
36
37 /* CPCAP really supports 3000000 to 3100000 range */
38 vemmc: regulator-emmc {
39 compatible = "regulator-fixed";
40 regulator-name = "vemmc";
41 regulator-min-microvolt = <3000000>;
42 regulator-max-microvolt = <3000000>;
43 regulator-always-on;
44 };
45
46 /* CPCAP really supports 1650000 to 1950000 range */
47 wl12xx_vmmc: regulator-wl12xx {
48 compatible = "regulator-fixed";
49 regulator-name = "vwl1271";
50 regulator-min-microvolt = <1650000>;
51 regulator-max-microvolt = <1650000>;
52 gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>; /* gpio94 */
53 startup-delay-us = <70000>;
54 enable-active-high;
55 };
56};
57
58/* L3_2 interconnect is unused, SRAM, GPMC and L3_ICLK2 disabled */
59&gpmc {
60 status = "disabled";
61};
62
63&mmc1 {
64 vmmc-supply = <&vmmc>;
65 bus-width = <4>;
66 cd-gpios = <&gpio4 10 GPIO_ACTIVE_LOW>; /* gpio106 */
67};
68
69&mmc2 {
70 vmmc-supply = <&vemmc>;
71 bus-width = <8>;
72 non-removable;
73};
74
75&mmc3 {
76 vmmc-supply = <&wl12xx_vmmc>;
77 interrupts-extended = <&wakeupgen GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH
78 &omap4_pmx_core 0xde>;
79
80 non-removable;
81 bus-width = <4>;
82 cap-power-off-card;
83
84 #address-cells = <1>;
85 #size-cells = <0>;
86 wlcore: wlcore@2 {
87 compatible = "ti,wl1283";
88 reg = <2>;
89 interrupt-parent = <&gpio4>;
90 interrupts = <4 IRQ_TYPE_LEVEL_HIGH>; /* gpio100 */
91 ref-clock-frequency = <26000000>;
92 tcxo-clock-frequency = <26000000>;
93 };
94};
95
96/* L3_2 interconnect is unused, SRAM, GPMC and L3_ICLK2 disabled */
97&ocmcram {
98 status = "disabled";
99};
100
101&omap4_pmx_core {
102 usb_gpio_mux_sel1: pinmux_usb_gpio_mux_sel1_pins {
103 /* gpio_60 */
104 pinctrl-single,pins = <
105 OMAP4_IOPAD(0x088, PIN_OUTPUT | MUX_MODE3)
106 >;
107 };
108
109 usb_ulpi_pins: pinmux_usb_ulpi_pins {
110 pinctrl-single,pins = <
111 OMAP4_IOPAD(0x196, MUX_MODE7)
112 OMAP4_IOPAD(0x198, MUX_MODE7)
113 OMAP4_IOPAD(0x1b2, PIN_INPUT_PULLUP | MUX_MODE0)
114 OMAP4_IOPAD(0x1b4, PIN_INPUT_PULLUP | MUX_MODE0)
115 OMAP4_IOPAD(0x1b6, PIN_INPUT_PULLUP | MUX_MODE0)
116 OMAP4_IOPAD(0x1b8, PIN_INPUT_PULLUP | MUX_MODE0)
117 OMAP4_IOPAD(0x1ba, PIN_INPUT_PULLUP | MUX_MODE0)
118 OMAP4_IOPAD(0x1bc, PIN_INPUT_PULLUP | MUX_MODE0)
119 OMAP4_IOPAD(0x1be, PIN_INPUT_PULLUP | MUX_MODE0)
120 OMAP4_IOPAD(0x1c0, PIN_INPUT_PULLUP | MUX_MODE0)
121 OMAP4_IOPAD(0x1c2, PIN_INPUT_PULLUP | MUX_MODE0)
122 OMAP4_IOPAD(0x1c4, PIN_INPUT_PULLUP | MUX_MODE0)
123 OMAP4_IOPAD(0x1c6, PIN_INPUT_PULLUP | MUX_MODE0)
124 OMAP4_IOPAD(0x1c8, PIN_INPUT_PULLUP | MUX_MODE0)
125 >;
126 };
127
128 /* usb0_otg_dp and usb0_otg_dm */
129 usb_utmi_pins: pinmux_usb_utmi_pins {
130 pinctrl-single,pins = <
131 OMAP4_IOPAD(0x196, PIN_INPUT | MUX_MODE0)
132 OMAP4_IOPAD(0x198, PIN_INPUT | MUX_MODE0)
133 OMAP4_IOPAD(0x1b2, PIN_INPUT_PULLUP | MUX_MODE7)
134 OMAP4_IOPAD(0x1b4, PIN_INPUT_PULLUP | MUX_MODE7)
135 OMAP4_IOPAD(0x1b6, PIN_INPUT_PULLUP | MUX_MODE7)
136 OMAP4_IOPAD(0x1b8, PIN_INPUT_PULLUP | MUX_MODE7)
137 OMAP4_IOPAD(0x1ba, PIN_INPUT_PULLUP | MUX_MODE7)
138 OMAP4_IOPAD(0x1bc, PIN_INPUT_PULLUP | MUX_MODE7)
139 OMAP4_IOPAD(0x1be, PIN_INPUT_PULLUP | MUX_MODE7)
140 OMAP4_IOPAD(0x1c0, PIN_INPUT_PULLUP | MUX_MODE7)
141 OMAP4_IOPAD(0x1c2, PIN_INPUT_PULLUP | MUX_MODE7)
142 OMAP4_IOPAD(0x1c4, PIN_INPUT_PULLUP | MUX_MODE7)
143 OMAP4_IOPAD(0x1c6, PIN_INPUT_PULLUP | MUX_MODE7)
144 OMAP4_IOPAD(0x1c8, PIN_INPUT_PULLUP | MUX_MODE7)
145 >;
146 };
147
148 /* uart3_tx_irtx and uart3_rx_irrx */
149 uart3_pins: pinmux_uart3_pins {
150 pinctrl-single,pins = <
151 OMAP4_IOPAD(0x196, MUX_MODE7)
152 OMAP4_IOPAD(0x198, MUX_MODE7)
153 OMAP4_IOPAD(0x1b2, PIN_INPUT_PULLUP | MUX_MODE7)
154 OMAP4_IOPAD(0x1b4, PIN_INPUT_PULLUP | MUX_MODE7)
155 OMAP4_IOPAD(0x1b6, PIN_INPUT_PULLUP | MUX_MODE7)
156 OMAP4_IOPAD(0x1b8, PIN_INPUT_PULLUP | MUX_MODE7)
157 OMAP4_IOPAD(0x1ba, MUX_MODE2)
158 OMAP4_IOPAD(0x1bc, PIN_INPUT | MUX_MODE2)
159 OMAP4_IOPAD(0x1be, PIN_INPUT_PULLUP | MUX_MODE7)
160 OMAP4_IOPAD(0x1c0, PIN_INPUT_PULLUP | MUX_MODE7)
161 OMAP4_IOPAD(0x1c2, PIN_INPUT_PULLUP | MUX_MODE7)
162 OMAP4_IOPAD(0x1c4, PIN_INPUT_PULLUP | MUX_MODE7)
163 OMAP4_IOPAD(0x1c6, PIN_INPUT_PULLUP | MUX_MODE7)
164 OMAP4_IOPAD(0x1c8, PIN_INPUT_PULLUP | MUX_MODE7)
165 >;
166 };
167};
168
169&omap4_pmx_wkup {
170 usb_gpio_mux_sel2: pinmux_usb_gpio_mux_sel2_pins {
171 /* gpio_wk0 */
172 pinctrl-single,pins = <
173 OMAP4_IOPAD(0x040, PIN_OUTPUT_PULLDOWN | MUX_MODE3)
174 >;
175 };
176};
177
178&uart3 {
179 interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
180 &omap4_pmx_core 0x17c>;
181};
182
183/* Internal UTMI+ PHY used for OTG, CPCAP ULPI PHY for detection and charger */
184&usb_otg_hs {
185 interface-type = <1>;
186 mode = <3>;
187 power = <50>;
188};
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index 0ced079b7ae3..8087456b5fbe 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -184,6 +184,7 @@
184 reg = <0x40 0x0196>; 184 reg = <0x40 0x0196>;
185 #address-cells = <1>; 185 #address-cells = <1>;
186 #size-cells = <0>; 186 #size-cells = <0>;
187 #pinctrl-cells = <1>;
187 #interrupt-cells = <1>; 188 #interrupt-cells = <1>;
188 interrupt-controller; 189 interrupt-controller;
189 pinctrl-single,register-width = <16>; 190 pinctrl-single,register-width = <16>;
@@ -256,6 +257,7 @@
256 reg = <0x1e040 0x0038>; 257 reg = <0x1e040 0x0038>;
257 #address-cells = <1>; 258 #address-cells = <1>;
258 #size-cells = <0>; 259 #size-cells = <0>;
260 #pinctrl-cells = <1>;
259 #interrupt-cells = <1>; 261 #interrupt-cells = <1>;
260 interrupt-controller; 262 interrupt-controller;
261 pinctrl-single,register-width = <16>; 263 pinctrl-single,register-width = <16>;
diff --git a/arch/arm/boot/dts/omap5-uevm.dts b/arch/arm/boot/dts/omap5-uevm.dts
index 53d31a87b44b..a8c72611fbe3 100644
--- a/arch/arm/boot/dts/omap5-uevm.dts
+++ b/arch/arm/boot/dts/omap5-uevm.dts
@@ -27,12 +27,98 @@
27 default-state = "off"; 27 default-state = "off";
28 }; 28 };
29 }; 29 };
30
31 evm_keys {
32 compatible = "gpio-keys";
33
34 pinctrl-names = "default";
35 pinctrl-0 = <&evm_keys_pins>;
36
37 #address-cells = <7>;
38 #size-cells = <0>;
39
40 btn1 {
41 label = "BTN1";
42 linux,code = <169>;
43 gpios = <&gpio3 19 GPIO_ACTIVE_LOW>; /* gpio3_83 */
44 wakeup-source;
45 autorepeat;
46 debounce_interval = <50>;
47 };
48 };
49
50 evm_leds {
51 compatible = "gpio-leds";
52
53 led1 {
54 label = "omap5:red:led";
55 gpios = <&gpio9 17 GPIO_ACTIVE_HIGH>;
56 linux,default-trigger = "mmc0";
57 default-state = "off";
58 };
59
60 led2 {
61 label = "omap5:green:led";
62 gpios = <&gpio9 18 GPIO_ACTIVE_HIGH>;
63 linux,default-trigger = "mmc1";
64 default-state = "off";
65 };
66
67 led3 {
68 label = "omap5:blue:led";
69 gpios = <&gpio9 19 GPIO_ACTIVE_HIGH>;
70 linux,default-trigger = "mmc2";
71 default-state = "off";
72 };
73
74 led4 {
75 label = "omap5:green:led1";
76 gpios = <&gpio9 2 GPIO_ACTIVE_HIGH>;
77 linux,default-trigger = "heartbeat";
78 default-state = "off";
79 };
80
81 led5 {
82 label = "omap5:green:led2";
83 gpios = <&gpio9 3 GPIO_ACTIVE_HIGH>;
84 linux,default-trigger = "default-on";
85 default-state = "off";
86 };
87
88 led6 {
89 label = "omap5:green:led3";
90 gpios = <&gpio9 4 GPIO_ACTIVE_HIGH>;
91 linux,default-trigger = "heartbeat";
92 default-state = "off";
93 };
94
95 led7 {
96 label = "omap5:green:led4";
97 gpios = <&gpio9 5 GPIO_ACTIVE_HIGH>;
98 linux,default-trigger = "default-on";
99 default-state = "off";
100 };
101
102 led8 {
103 label = "omap5:green:led5";
104 gpios = <&gpio9 6 GPIO_ACTIVE_HIGH>;
105 linux,default-trigger = "heartbeat";
106 default-state = "off";
107 };
108 };
30}; 109};
31 110
32&hdmi { 111&hdmi {
33 vdda-supply = <&ldo4_reg>; 112 vdda-supply = <&ldo4_reg>;
34}; 113};
35 114
115&i2c1 {
116 eeprom@50 {
117 compatible = "atmel,24c02";
118 reg = <0x50>;
119 };
120};
121
36&i2c5 { 122&i2c5 {
37 pinctrl-names = "default"; 123 pinctrl-names = "default";
38 pinctrl-0 = <&i2c5_pins>; 124 pinctrl-0 = <&i2c5_pins>;
@@ -48,6 +134,12 @@
48}; 134};
49 135
50&omap5_pmx_core { 136&omap5_pmx_core {
137 evm_keys_pins: pinmux_evm_keys_gpio_pins {
138 pinctrl-single,pins = <
139 OMAP5_IOPAD(0x0b6, PIN_INPUT | MUX_MODE6) /* gpio3_83 */
140 >;
141 };
142
51 i2c5_pins: pinmux_i2c5_pins { 143 i2c5_pins: pinmux_i2c5_pins {
52 pinctrl-single,pins = < 144 pinctrl-single,pins = <
53 OMAP5_IOPAD(0x1c6, PIN_INPUT | MUX_MODE0) /* i2c5_scl */ 145 OMAP5_IOPAD(0x1c6, PIN_INPUT | MUX_MODE0) /* i2c5_scl */
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
index 25262118ec3d..968c67a49dbd 100644
--- a/arch/arm/boot/dts/omap5.dtsi
+++ b/arch/arm/boot/dts/omap5.dtsi
@@ -171,6 +171,7 @@
171 reg = <0x40 0x01b6>; 171 reg = <0x40 0x01b6>;
172 #address-cells = <1>; 172 #address-cells = <1>;
173 #size-cells = <0>; 173 #size-cells = <0>;
174 #pinctrl-cells = <1>;
174 #interrupt-cells = <1>; 175 #interrupt-cells = <1>;
175 interrupt-controller; 176 interrupt-controller;
176 pinctrl-single,register-width = <16>; 177 pinctrl-single,register-width = <16>;
@@ -270,6 +271,7 @@
270 reg = <0xc840 0x003c>; 271 reg = <0xc840 0x003c>;
271 #address-cells = <1>; 272 #address-cells = <1>;
272 #size-cells = <0>; 273 #size-cells = <0>;
274 #pinctrl-cells = <1>;
273 #interrupt-cells = <1>; 275 #interrupt-cells = <1>;
274 interrupt-controller; 276 interrupt-controller;
275 pinctrl-single,register-width = <16>; 277 pinctrl-single,register-width = <16>;
diff --git a/arch/arm/boot/dts/orion5x-lschl.dts b/arch/arm/boot/dts/orion5x-lschl.dts
new file mode 100644
index 000000000000..947409252845
--- /dev/null
+++ b/arch/arm/boot/dts/orion5x-lschl.dts
@@ -0,0 +1,171 @@
1/*
2 * Device Tree file for Buffalo Linkstation LS-CHLv3
3 *
4 * Copyright (C) 2016 Ash Hughes <ashley.hughes@blueyonder.co.uk>
5 * Copyright (C) 2015, 2016
6 * Roger Shimizu <rogershimizu@gmail.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 , 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
49#include "orion5x-linkstation.dtsi"
50#include "mvebu-linkstation-gpio-simple.dtsi"
51#include "mvebu-linkstation-fan.dtsi"
52#include <dt-bindings/gpio/gpio.h>
53
54/ {
55 model = "Buffalo Linkstation Live v3 (LS-CHL)";
56 compatible = "buffalo,lschl", "marvell,orion5x-88f5182", "marvell,orion5x";
57
58 memory { /* 128 MB */
59 device_type = "memory";
60 reg = <0x00000000 0x8000000>;
61 };
62
63 gpio_keys {
64 func {
65 label = "Function Button";
66 linux,code = <KEY_OPTION>;
67 gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
68 };
69
70 power-on-switch {
71 gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
72 };
73
74 power-auto-switch {
75 gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
76 };
77 };
78
79 gpio_leds {
80 pinctrl-0 = <&pmx_led_power &pmx_led_alarm &pmx_led_info &pmx_led_func>;
81 blue-power-led {
82 gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
83 };
84
85 red-alarm-led {
86 gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
87 };
88
89 amber-info-led {
90 gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
91 };
92
93 func {
94 label = "lschl:func:blue:top";
95 gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
96 };
97 };
98
99 gpio_fan {
100 gpios = <&gpio0 14 GPIO_ACTIVE_LOW
101 &gpio0 16 GPIO_ACTIVE_LOW>;
102
103 alarm-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
104 };
105};
106
107&pinctrl {
108 pmx_led_power: pmx-leds {
109 marvell,pins = "mpp0";
110 marvell,function = "gpio";
111 };
112
113 pmx_power_hdd: pmx-power-hdd {
114 marvell,pins = "mpp1";
115 marvell,function = "gpio";
116 };
117
118 pmx_led_alarm: pmx-leds {
119 marvell,pins = "mpp2";
120 marvell,function = "gpio";
121 };
122
123 pmx_led_info: pmx-leds {
124 marvell,pins = "mpp3";
125 marvell,function = "gpio";
126 };
127
128 pmx_fan_lock: pmx-fan-lock {
129 marvell,pins = "mpp6";
130 marvell,function = "gpio";
131 };
132
133 pmx_power_switch: pmx-power-switch {
134 marvell,pins = "mpp8", "mpp10", "mpp15";
135 marvell,function = "gpio";
136 };
137
138 pmx_power_usb: pmx-power-usb {
139 marvell,pins = "mpp9";
140 marvell,function = "gpio";
141 };
142
143 pmx_fan_high: pmx-fan-high {
144 marvell,pins = "mpp14";
145 marvell,function = "gpio";
146 };
147
148 pmx_fan_low: pmx-fan-low {
149 marvell,pins = "mpp16";
150 marvell,function = "gpio";
151 };
152
153 pmx_led_func: pmx-leds {
154 marvell,pins = "mpp17";
155 marvell,function = "gpio";
156 };
157
158 pmx_sw_init: pmx-sw-init {
159 marvell,pins = "mpp7";
160 marvell,function = "gpio";
161 };
162};
163
164&hdd_power {
165 gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
166};
167
168&usb_power {
169 gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
170};
171
diff --git a/arch/arm/boot/dts/ox820.dtsi b/arch/arm/boot/dts/ox820.dtsi
new file mode 100644
index 000000000000..e40f282a023a
--- /dev/null
+++ b/arch/arm/boot/dts/ox820.dtsi
@@ -0,0 +1,296 @@
1/*
2 * ox820.dtsi - Device tree file for Oxford Semiconductor OX820 SoC
3 *
4 * Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com>
5 *
6 * Licensed under GPLv2 or later
7 */
8
9/include/ "skeleton.dtsi"
10#include <dt-bindings/interrupt-controller/arm-gic.h>
11
12/ {
13 compatible = "oxsemi,ox820";
14
15 cpus {
16 #address-cells = <1>;
17 #size-cells = <0>;
18 enable-method = "oxsemi,ox820-smp";
19
20 cpu@0 {
21 device_type = "cpu";
22 compatible = "arm,arm11mpcore";
23 clocks = <&armclk>;
24 reg = <0>;
25 };
26
27 cpu@1 {
28 device_type = "cpu";
29 compatible = "arm,arm11mpcore";
30 clocks = <&armclk>;
31 reg = <1>;
32 };
33 };
34
35 memory {
36 /* Max 512MB @ 0x60000000 */
37 reg = <0x60000000 0x20000000>;
38 };
39
40 clocks {
41 osc: oscillator {
42 compatible = "fixed-clock";
43 #clock-cells = <0>;
44 clock-frequency = <25000000>;
45 };
46
47 gmacclk: gmacclk {
48 compatible = "fixed-clock";
49 #clock-cells = <0>;
50 clock-frequency = <125000000>;
51 };
52
53 sysclk: sysclk {
54 compatible = "fixed-factor-clock";
55 #clock-cells = <0>;
56 clock-div = <4>;
57 clock-mult = <1>;
58 clocks = <&osc>;
59 };
60
61 plla: plla {
62 compatible = "fixed-clock";
63 #clock-cells = <0>;
64 clock-frequency = <850000000>;
65 };
66
67 armclk: armclk {
68 compatible = "fixed-factor-clock";
69 #clock-cells = <0>;
70 clock-div = <2>;
71 clock-mult = <1>;
72 clocks = <&plla>;
73 };
74 };
75
76 soc {
77 #address-cells = <1>;
78 #size-cells = <1>;
79 compatible = "simple-bus";
80 ranges;
81 interrupt-parent = <&gic>;
82
83 nandc: nand-controller@41000000 {
84 compatible = "oxsemi,ox820-nand";
85 reg = <0x41000000 0x100000>;
86 clocks = <&stdclk 11>;
87 resets = <&reset 15>;
88 #address-cells = <1>;
89 #size-cells = <0>;
90 status = "disabled";
91 };
92
93 etha: ethernet@40400000 {
94 compatible = "oxsemi,ox820-dwmac", "snps,dwmac";
95 reg = <0x40400000 0x2000>;
96 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
97 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
98 interrupt-names = "macirq", "eth_wake_irq";
99 mac-address = [000000000000]; /* Filled in by U-Boot */
100 phy-mode = "rgmii";
101
102 clocks = <&stdclk 9>, <&gmacclk>;
103 clock-names = "gmac", "stmmaceth";
104 resets = <&reset 6>;
105
106 /* Regmap for sys registers */
107 oxsemi,sys-ctrl = <&sys>;
108
109 status = "disabled";
110 };
111
112 apb-bridge@44000000 {
113 #address-cells = <1>;
114 #size-cells = <1>;
115 compatible = "simple-bus";
116 ranges = <0 0x44000000 0x1000000>;
117
118 pinctrl: pinctrl {
119 compatible = "oxsemi,ox820-pinctrl";
120
121 /* Regmap for sys registers */
122 oxsemi,sys-ctrl = <&sys>;
123
124 pinctrl_uart0: uart0 {
125 uart0 {
126 pins = "gpio30", "gpio31";
127 function = "fct5";
128 };
129 };
130
131 pinctrl_uart0_modem: uart0_modem {
132 uart0_modem_a {
133 pins = "gpio24", "gpio24", "gpio26", "gpio27";
134 function = "fct4";
135 };
136 uart0_modem_b {
137 pins = "gpio28", "gpio29";
138 function = "fct5";
139 };
140 };
141
142 pinctrl_uart1: uart1 {
143 uart1 {
144 pins = "gpio7", "gpio8";
145 function = "fct4";
146 };
147 };
148
149 pinctrl_uart1_modem: uart1_modem {
150 uart1_modem {
151 pins = "gpio5", "gpio6", "gpio40", "gpio41", "gpio42", "gpio43";
152 function = "fct4";
153 };
154 };
155
156 pinctrl_etha_mdio: etha_mdio {
157 etha_mdio {
158 pins = "gpio3", "gpio4";
159 function = "fct1";
160 };
161 };
162
163 pinctrl_nand: nand {
164 nand {
165 pins = "gpio12", "gpio13", "gpio14", "gpio15",
166 "gpio16", "gpio17", "gpio18", "gpio19",
167 "gpio20", "gpio21", "gpio22", "gpio23",
168 "gpio24";
169 function = "fct1";
170 };
171 };
172 };
173
174 gpio0: gpio@000000 {
175 compatible = "oxsemi,ox820-gpio";
176 reg = <0x000000 0x100000>;
177 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
178 #gpio-cells = <2>;
179 gpio-controller;
180 interrupt-controller;
181 #interrupt-cells = <2>;
182 ngpios = <32>;
183 oxsemi,gpio-bank = <0>;
184 gpio-ranges = <&pinctrl 0 0 32>;
185 };
186
187 gpio1: gpio@100000 {
188 compatible = "oxsemi,ox820-gpio";
189 reg = <0x100000 0x100000>;
190 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
191 #gpio-cells = <2>;
192 gpio-controller;
193 interrupt-controller;
194 #interrupt-cells = <2>;
195 ngpios = <18>;
196 oxsemi,gpio-bank = <1>;
197 gpio-ranges = <&pinctrl 0 32 18>;
198 };
199
200 uart0: serial@200000 {
201 compatible = "ns16550a";
202 reg = <0x200000 0x100000>;
203 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
204 reg-shift = <0>;
205 fifo-size = <16>;
206 reg-io-width = <1>;
207 current-speed = <115200>;
208 no-loopback-test;
209 status = "disabled";
210 clocks = <&sysclk>;
211 resets = <&reset 17>;
212 };
213
214 uart1: serial@300000 {
215 compatible = "ns16550a";
216 reg = <0x200000 0x100000>;
217 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
218 reg-shift = <0>;
219 fifo-size = <16>;
220 reg-io-width = <1>;
221 current-speed = <115200>;
222 no-loopback-test;
223 status = "disabled";
224 clocks = <&sysclk>;
225 resets = <&reset 18>;
226 };
227
228 rps@400000 {
229 #address-cells = <1>;
230 #size-cells = <1>;
231 compatible = "simple-bus";
232 ranges = <0 0x400000 0x100000>;
233
234 intc: interrupt-controller@0 {
235 compatible = "oxsemi,ox820-rps-irq", "oxsemi,ox810se-rps-irq";
236 interrupt-controller;
237 reg = <0 0x200>;
238 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
239 #interrupt-cells = <1>;
240 valid-mask = <0xFFFFFFFF>;
241 clear-mask = <0>;
242 };
243
244 timer0: timer@200 {
245 compatible = "oxsemi,ox820-rps-timer";
246 reg = <0x200 0x40>;
247 clocks = <&sysclk>;
248 interrupt-parent = <&intc>;
249 interrupts = <4>;
250 };
251 };
252
253 sys: sys-ctrl@e00000 {
254 compatible = "oxsemi,ox820-sys-ctrl", "syscon", "simple-mfd";
255 reg = <0xe00000 0x200000>;
256
257 reset: reset-controller {
258 compatible = "oxsemi,ox820-reset", "oxsemi,ox810se-reset";
259 #reset-cells = <1>;
260 };
261
262 stdclk: stdclk {
263 compatible = "oxsemi,ox820-stdclk", "oxsemi,ox810se-stdclk";
264 #clock-cells = <1>;
265 };
266 };
267 };
268
269 apb-bridge@47000000 {
270 #address-cells = <1>;
271 #size-cells = <1>;
272 compatible = "simple-bus";
273 ranges = <0 0x47000000 0x1000000>;
274
275 scu: scu@0 {
276 compatible = "arm,arm11mp-scu";
277 reg = <0x0 0x100>;
278 };
279
280 local-timer@600 {
281 compatible = "arm,arm11mp-twd-timer";
282 reg = <0x600 0x20>;
283 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(3)|IRQ_TYPE_LEVEL_HIGH)>;
284 clocks = <&armclk>;
285 };
286
287 gic: gic@1000 {
288 compatible = "arm,arm11mp-gic";
289 interrupt-controller;
290 #interrupt-cells = <3>;
291 reg = <0x1000 0x1000>,
292 <0x100 0x500>;
293 };
294 };
295 };
296};
diff --git a/arch/arm/boot/dts/pxa25x.dtsi b/arch/arm/boot/dts/pxa25x.dtsi
new file mode 100644
index 000000000000..f9f4726396a0
--- /dev/null
+++ b/arch/arm/boot/dts/pxa25x.dtsi
@@ -0,0 +1,117 @@
1/*
2 * Copyright (C) 2016 Robert Jarzmik <robert.jarzmik@free.fr>
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#include "pxa2xx.dtsi"
12#include "dt-bindings/clock/pxa-clock.h"
13
14/ {
15 model = "Marvell PXA25x family SoC";
16 compatible = "marvell,pxa250";
17
18 clocks {
19 /*
20 * The muxing of external clocks/internal dividers for osc* clock
21 * sources has been hidden under the carpet by now.
22 */
23 #address-cells = <1>;
24 #size-cells = <1>;
25 ranges;
26
27 clks: pxa2xx_clks@41300004 {
28 compatible = "marvell,pxa250-core-clocks";
29 #clock-cells = <1>;
30 status = "okay";
31 };
32
33 /* timer oscillator */
34 clktimer: oscillator {
35 compatible = "fixed-clock";
36 #clock-cells = <0>;
37 clock-frequency = <3686400>;
38 clock-output-names = "ostimer";
39 };
40 };
41
42 pxabus {
43 pdma: dma-controller@40000000 {
44 compatible = "marvell,pdma-1.0";
45 reg = <0x40000000 0x10000>;
46 interrupts = <25>;
47 #dma-channels = <16>;
48 #dma-cells = <2>;
49 #dma-requests = <40>;
50 status = "okay";
51 };
52
53 pxairq: interrupt-controller@40d00000 {
54 marvell,intc-priority;
55 marvell,intc-nr-irqs = <32>;
56 };
57
58 pinctrl: pinctrl@40e00000 {
59 reg = <0x40e00054 0x20 0x40e0000c 0xc 0x40e0010c 4
60 0x40f00020 0x10>;
61 compatible = "marvell,pxa25x-pinctrl";
62 };
63
64 gpio: gpio@40e00000 {
65 compatible = "intel,pxa25x-gpio";
66 gpio-ranges = <&pinctrl 0 0 84>;
67 clocks = <&clks CLK_NONE>;
68 };
69
70 pwm0: pwm@40b00000 {
71 compatible = "marvell,pxa250-pwm";
72 reg = <0x40b00000 0x10>;
73 #pwm-cells = <1>;
74 clocks = <&clks CLK_PWM0>;
75 };
76
77 pwm1: pwm@40b00010 {
78 compatible = "marvell,pxa250-pwm";
79 reg = <0x40b00010 0x10>;
80 #pwm-cells = <1>;
81 clocks = <&clks CLK_PWM1>;
82 };
83 };
84
85 timer@40a00000 {
86 compatible = "marvell,pxa-timer";
87 reg = <0x40a00000 0x20>;
88 interrupts = <26>;
89 clocks = <&clktimer>;
90 status = "okay";
91 };
92
93 pxa250_opp_table: opp_table0 {
94 compatible = "operating-points-v2";
95
96 opp@99532800 {
97 opp-hz = /bits/ 64 <99532800>;
98 opp-microvolt = <1000000 950000 1650000>;
99 clock-latency-ns = <20>;
100 };
101 opp@199065600 {
102 opp-hz = /bits/ 64 <199065600>;
103 opp-microvolt = <1000000 950000 1650000>;
104 clock-latency-ns = <20>;
105 };
106 opp@298598400 {
107 opp-hz = /bits/ 64 <298598400>;
108 opp-microvolt = <1100000 1045000 1650000>;
109 clock-latency-ns = <20>;
110 };
111 opp@398131200 {
112 opp-hz = /bits/ 64 <398131200>;
113 opp-microvolt = <1300000 1235000 1650000>;
114 clock-latency-ns = <20>;
115 };
116 };
117};
diff --git a/arch/arm/boot/dts/pxa27x.dtsi b/arch/arm/boot/dts/pxa27x.dtsi
index 9e73dc6b3ed3..e0fab48ba6fa 100644
--- a/arch/arm/boot/dts/pxa27x.dtsi
+++ b/arch/arm/boot/dts/pxa27x.dtsi
@@ -137,4 +137,44 @@
137 clocks = <&clks CLK_OSTIMER>; 137 clocks = <&clks CLK_OSTIMER>;
138 status = "okay"; 138 status = "okay";
139 }; 139 };
140
141 pxa270_opp_table: opp_table0 {
142 compatible = "operating-points-v2";
143
144 opp@104000000 {
145 opp-hz = /bits/ 64 <104000000>;
146 opp-microvolt = <900000 900000 1705000>;
147 clock-latency-ns = <20>;
148 };
149 opp@156000000 {
150 opp-hz = /bits/ 64 <156000000>;
151 opp-microvolt = <1000000 1000000 1705000>;
152 clock-latency-ns = <20>;
153 };
154 opp@208000000 {
155 opp-hz = /bits/ 64 <208000000>;
156 opp-microvolt = <1180000 1180000 1705000>;
157 clock-latency-ns = <20>;
158 };
159 opp@312000000 {
160 opp-hz = /bits/ 64 <312000000>;
161 opp-microvolt = <1250000 1250000 1705000>;
162 clock-latency-ns = <20>;
163 };
164 opp@416000000 {
165 opp-hz = /bits/ 64 <416000000>;
166 opp-microvolt = <1350000 1350000 1705000>;
167 clock-latency-ns = <20>;
168 };
169 opp@520000000 {
170 opp-hz = /bits/ 64 <520000000>;
171 opp-microvolt = <1450000 1450000 1705000>;
172 clock-latency-ns = <20>;
173 };
174 opp@624000000 {
175 opp-hz = /bits/ 64 <624000000>;
176 opp-microvolt = <1550000 1550000 1705000>;
177 clock-latency-ns = <20>;
178 };
179 };
140}; 180};
diff --git a/arch/arm/boot/dts/pxa2xx.dtsi b/arch/arm/boot/dts/pxa2xx.dtsi
index 3ff077ca4400..e4ebcde17837 100644
--- a/arch/arm/boot/dts/pxa2xx.dtsi
+++ b/arch/arm/boot/dts/pxa2xx.dtsi
@@ -54,8 +54,8 @@
54 reg = <0x40e00000 0x10000>; 54 reg = <0x40e00000 0x10000>;
55 gpio-controller; 55 gpio-controller;
56 #gpio-cells = <0x2>; 56 #gpio-cells = <0x2>;
57 interrupts = <10>; 57 interrupts = <8>, <9>, <10>;
58 interrupt-names = "gpio_mux"; 58 interrupt-names = "gpio0", "gpio1", "gpio_mux";
59 interrupt-controller; 59 interrupt-controller;
60 #interrupt-cells = <0x2>; 60 #interrupt-cells = <0x2>;
61 ranges; 61 ranges;
diff --git a/arch/arm/boot/dts/pxa3xx.dtsi b/arch/arm/boot/dts/pxa3xx.dtsi
index 9d6f3aacedb7..7a0cc4ea819a 100644
--- a/arch/arm/boot/dts/pxa3xx.dtsi
+++ b/arch/arm/boot/dts/pxa3xx.dtsi
@@ -138,6 +138,7 @@
138 reg = <0x40e10000 0xffff>; 138 reg = <0x40e10000 0xffff>;
139 #address-cells = <1>; 139 #address-cells = <1>;
140 #size-cells = <0>; 140 #size-cells = <0>;
141 #pinctrl-cells = <1>;
141 pinctrl-single,register-width = <32>; 142 pinctrl-single,register-width = <32>;
142 pinctrl-single,function-mask = <0x7>; 143 pinctrl-single,function-mask = <0x7>;
143 }; 144 };
diff --git a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
index 6c0038398ef2..4b8872cc8bf9 100644
--- a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
+++ b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
@@ -51,6 +51,29 @@
51 regulator-boot-on; 51 regulator-boot-on;
52 }; 52 };
53 53
54 /* GPIO controlled ethernet power regulator */
55 dragon_veth: xc622a331mrg {
56 compatible = "regulator-fixed";
57 regulator-name = "XC6222A331MR-G";
58 regulator-min-microvolt = <3300000>;
59 regulator-max-microvolt = <3300000>;
60 vin-supply = <&vph>;
61 gpio = <&pm8058_gpio 40 GPIO_ACTIVE_HIGH>;
62 enable-active-high;
63 pinctrl-names = "default";
64 pinctrl-0 = <&dragon_veth_gpios>;
65 regulator-always-on;
66 };
67
68 /* VDDvario fixed regulator */
69 dragon_vario: nds332p {
70 compatible = "regulator-fixed";
71 regulator-name = "NDS332P";
72 regulator-min-microvolt = <1800000>;
73 regulator-max-microvolt = <1800000>;
74 vin-supply = <&pm8058_s3>;
75 };
76
54 /* This is a levelshifter for SDCC5 */ 77 /* This is a levelshifter for SDCC5 */
55 dragon_vio_txb: txb0104rgyr { 78 dragon_vio_txb: txb0104rgyr {
56 compatible = "regulator-fixed"; 79 compatible = "regulator-fixed";
@@ -167,6 +190,36 @@
167 bias-pull-up; 190 bias-pull-up;
168 }; 191 };
169 }; 192 };
193
194 dragon_ebi2_pins: ebi2 {
195 /*
196 * Pins used by EBI2 on the Dragonboard, actually only
197 * CS2 is used by a real peripheral. CS0 is just
198 * routed to a test point.
199 */
200 mux0 {
201 pins =
202 /* "gpio39", CS1A_N this is not good to mux */
203 "gpio40", /* CS2A_N */
204 "gpio134"; /* CS0_N testpoint TP29 */
205 function = "ebi2cs";
206 };
207 mux1 {
208 pins =
209 /* EBI2_ADDR_7 downto EBI2_ADDR_0 address bus */
210 "gpio123", "gpio124", "gpio125", "gpio126",
211 "gpio127", "gpio128", "gpio129", "gpio130",
212 /* EBI2_DATA_15 downto EBI2_DATA_0 data bus */
213 "gpio135", "gpio136", "gpio137", "gpio138",
214 "gpio139", "gpio140", "gpio141", "gpio142",
215 "gpio143", "gpio144", "gpio145", "gpio146",
216 "gpio147", "gpio148", "gpio149", "gpio150",
217 "gpio151", /* EBI2_OE_N */
218 "gpio153", /* EBI2_ADV */
219 "gpio157"; /* EBI2_WE_N */
220 function = "ebi2";
221 };
222 };
170 }; 223 };
171 224
172 qcom,ssbi@500000 { 225 qcom,ssbi@500000 {
@@ -201,6 +254,15 @@
201 }; 254 };
202 255
203 gpio@150 { 256 gpio@150 {
257 dragon_ethernet_gpios: ethernet-gpios {
258 pinconf {
259 pins = "gpio7";
260 function = "normal";
261 input-enable;
262 bias-disable;
263 power-source = <PM8058_GPIO_S3>;
264 };
265 };
204 dragon_bmp085_gpios: bmp085-gpios { 266 dragon_bmp085_gpios: bmp085-gpios {
205 pinconf { 267 pinconf {
206 pins = "gpio16"; 268 pins = "gpio16";
@@ -238,6 +300,14 @@
238 power-source = <PM8058_GPIO_S3>; 300 power-source = <PM8058_GPIO_S3>;
239 }; 301 };
240 }; 302 };
303 dragon_veth_gpios: veth-gpios {
304 pinconf {
305 pins = "gpio40";
306 function = "normal";
307 bias-disable;
308 drive-push-pull;
309 };
310 };
241 }; 311 };
242 312
243 led@48 { 313 led@48 {
@@ -322,6 +392,55 @@
322 }; 392 };
323 }; 393 };
324 394
395 external-bus@1a100000 {
396 /* The EBI2 will instantiate first, then populate its children */
397 status = "ok";
398 pinctrl-names = "default";
399 pinctrl-0 = <&dragon_ebi2_pins>;
400
401 /*
402 * An on-board SMSC LAN9221 chip for "debug ethernet",
403 * which is actually just an ordinary ethernet on the
404 * EBI2. This has a 25MHz chrystal next to it, so no
405 * clocking is needed.
406 */
407 ethernet-ebi2@2,0 {
408 compatible = "smsc,lan9221", "smsc,lan9115";
409 reg = <2 0x0 0x100>;
410 /*
411 * GPIO7 has interrupt 198 on the PM8058
412 * The second interrupt is the PME interrupt
413 * for network wakeup, connected to the TLMM.
414 */
415 interrupts-extended = <&pmicintc 198 IRQ_TYPE_EDGE_FALLING>,
416 <&tlmm 29 IRQ_TYPE_EDGE_RISING>;
417 reset-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>;
418 vdd33a-supply = <&dragon_veth>;
419 vddvario-supply = <&dragon_vario>;
420 pinctrl-names = "default";
421 pinctrl-0 = <&dragon_ethernet_gpios>;
422 phy-mode = "mii";
423 reg-io-width = <2>;
424 smsc,force-external-phy;
425 /* IRQ on edge falling = active low */
426 smsc,irq-active-low;
427 smsc,irq-push-pull;
428
429 /*
430 * SLOW chipselect config
431 * Delay 9 cycles (140ns@64MHz) between SMSC
432 * LAN9221 Ethernet controller reads and writes
433 * on CS2.
434 */
435 qcom,xmem-recovery-cycles = <0>;
436 qcom,xmem-write-hold-cycles = <3>;
437 qcom,xmem-write-delta-cycles = <31>;
438 qcom,xmem-read-delta-cycles = <28>;
439 qcom,xmem-write-wait-cycles = <9>;
440 qcom,xmem-read-wait-cycles = <9>;
441 };
442 };
443
325 rpm@104000 { 444 rpm@104000 {
326 /* 445 /*
327 * Set up of the PMIC RPM regulators for this board 446 * Set up of the PMIC RPM regulators for this board
diff --git a/arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts b/arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts
index b72e09506448..e39440a86739 100644
--- a/arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts
+++ b/arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts
@@ -15,6 +15,20 @@
15 stdout-path = "serial0:115200n8"; 15 stdout-path = "serial0:115200n8";
16 }; 16 };
17 17
18 reserved-memory {
19 #address-cells = <1>;
20 #size-cells = <1>;
21 ranges;
22
23 ramoops@88d00000{
24 compatible = "ramoops";
25 reg = <0x88d00000 0x100000>;
26 record-size = <0x00020000>;
27 console-size = <0x00020000>;
28 ftrace-size = <0x00020000>;
29 };
30 };
31
18 ext_3p3v: regulator-fixed@1 { 32 ext_3p3v: regulator-fixed@1 {
19 compatible = "regulator-fixed"; 33 compatible = "regulator-fixed";
20 regulator-min-microvolt = <3300000>; 34 regulator-min-microvolt = <3300000>;
@@ -99,6 +113,7 @@
99 l2 { 113 l2 {
100 regulator-min-microvolt = <1200000>; 114 regulator-min-microvolt = <1200000>;
101 regulator-max-microvolt = <1200000>; 115 regulator-max-microvolt = <1200000>;
116 regulator-always-on;
102 }; 117 };
103 118
104 /* msm_otg-HSUSB_3p3 */ 119 /* msm_otg-HSUSB_3p3 */
@@ -133,13 +148,14 @@
133 regulator-min-microvolt = <3000000>; 148 regulator-min-microvolt = <3000000>;
134 regulator-max-microvolt = <3000000>; 149 regulator-max-microvolt = <3000000>;
135 bias-pull-down; 150 bias-pull-down;
151 regulator-always-on;
136 }; 152 };
137 153
138 /* pwm_power for backlight */ 154 /* pwm_power for backlight */
139 l17 { 155 l17 {
140 regulator-min-microvolt = <3000000>; 156 regulator-min-microvolt = <3000000>;
141 regulator-max-microvolt = <3600000>; 157 regulator-max-microvolt = <3000000>;
142 bias-pull-down; 158 regulator-always-on;
143 }; 159 };
144 160
145 /* camera, qdsp6 */ 161 /* camera, qdsp6 */
@@ -184,6 +200,63 @@
184 }; 200 };
185 }; 201 };
186 202
203 mdp@5100000 {
204 status = "okay";
205 ports {
206 port@1 {
207 mdp_dsi1_out: endpoint {
208 remote-endpoint = <&dsi0_in>;
209 };
210 };
211 };
212 };
213
214 dsi0: mdss_dsi@4700000 {
215 status = "okay";
216 vdda-supply = <&pm8921_l2>;/*VDD_MIPI1 to 4*/
217 vdd-supply = <&pm8921_l8>;
218 vddio-supply = <&pm8921_lvs7>;
219 avdd-supply = <&pm8921_l11>;
220 vcss-supply = <&ext_3p3v>;
221
222 panel@0 {
223 reg = <0>;
224 compatible = "jdi,lt070me05000";
225
226 vddp-supply = <&pm8921_l17>;
227 iovcc-supply = <&pm8921_lvs7>;
228
229 enable-gpios = <&pm8921_gpio 36 GPIO_ACTIVE_HIGH>;
230 reset-gpios = <&tlmm_pinmux 54 GPIO_ACTIVE_LOW>;
231 dcdc-en-gpios = <&pm8921_gpio 23 GPIO_ACTIVE_HIGH>;
232
233 port {
234 panel_in: endpoint {
235 remote-endpoint = <&dsi0_out>;
236 };
237 };
238 };
239 ports {
240 port@0 {
241 dsi0_in: endpoint {
242 remote-endpoint = <&mdp_dsi1_out>;
243 };
244 };
245
246 port@1 {
247 dsi0_out: endpoint {
248 remote-endpoint = <&panel_in>;
249 data-lanes = <0 1 2 3>;
250 };
251 };
252 };
253 };
254
255 dsi-phy@4700200 {
256 status = "okay";
257 vddio-supply = <&pm8921_lvs7>;/*VDD_PLL2_1 to 7*/
258 };
259
187 gsbi@16200000 { 260 gsbi@16200000 {
188 status = "okay"; 261 status = "okay";
189 qcom,mode = <GSBI_PROT_I2C>; 262 qcom,mode = <GSBI_PROT_I2C>;
diff --git a/arch/arm/boot/dts/qcom-apq8064-ifc6410.dts b/arch/arm/boot/dts/qcom-apq8064-ifc6410.dts
index 2eeb0904eaa7..3d37cab3b9a9 100644
--- a/arch/arm/boot/dts/qcom-apq8064-ifc6410.dts
+++ b/arch/arm/boot/dts/qcom-apq8064-ifc6410.dts
@@ -43,6 +43,17 @@
43 }; 43 };
44 }; 44 };
45 45
46 hdmi-out {
47 compatible = "hdmi-connector";
48 type = "d";
49
50 port {
51 hdmi_con: endpoint {
52 remote-endpoint = <&hdmi_out>;
53 };
54 };
55 };
56
46 soc { 57 soc {
47 pinctrl@800000 { 58 pinctrl@800000 {
48 card_detect: card_detect { 59 card_detect: card_detect {
@@ -64,6 +75,25 @@
64 bias-disable; 75 bias-disable;
65 }; 76 };
66 }; 77 };
78
79 hdmi_pinctrl: hdmi-pinctrl {
80 mux {
81 pins = "gpio70", "gpio71", "gpio72";
82 function = "hdmi";
83 };
84
85 pinconf_ddc {
86 pins = "gpio70", "gpio71";
87 bias-pull-up;
88 drive-strength = <2>;
89 };
90
91 pinconf_hpd {
92 pins = "gpio72";
93 bias-pull-down;
94 drive-strength = <16>;
95 };
96 };
67 }; 97 };
68 98
69 rpm@108000 { 99 rpm@108000 {
@@ -329,5 +359,49 @@
329 mmc-pwrseq = <&sdcc4_pwrseq>; 359 mmc-pwrseq = <&sdcc4_pwrseq>;
330 }; 360 };
331 }; 361 };
362
363 hdmi-tx@4a00000 {
364 status = "okay";
365
366 core-vdda-supply = <&pm8921_hdmi_switch>;
367 hdmi-mux-supply = <&ext_3p3v>;
368
369 hpd-gpios = <&tlmm_pinmux 72 GPIO_ACTIVE_HIGH>;
370
371 pinctrl-names = "default";
372 pinctrl-0 = <&hdmi_pinctrl>;
373
374 ports {
375 port@0 {
376 endpoint {
377 remote-endpoint = <&mdp_dtv_out>;
378 };
379 };
380
381 port@1 {
382 endpoint {
383 remote-endpoint = <&hdmi_con>;
384 };
385 };
386 };
387 };
388
389 hdmi-phy@4a00400 {
390 status = "okay";
391
392 core-vdda-supply = <&pm8921_hdmi_switch>;
393 };
394
395 mdp@5100000 {
396 status = "okay";
397
398 ports {
399 port@3 {
400 endpoint {
401 remote-endpoint = <&hdmi_in>;
402 };
403 };
404 };
405 };
332 }; 406 };
333}; 407};
diff --git a/arch/arm/boot/dts/qcom-apq8064.dtsi b/arch/arm/boot/dts/qcom-apq8064.dtsi
index 1dbe697b2e90..268bd470c865 100644
--- a/arch/arm/boot/dts/qcom-apq8064.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8064.dtsi
@@ -1060,6 +1060,231 @@
1060 reg = <0x1a400000 0x100>; 1060 reg = <0x1a400000 0x100>;
1061 }; 1061 };
1062 1062
1063 gpu: adreno-3xx@4300000 {
1064 compatible = "qcom,adreno-3xx";
1065 reg = <0x04300000 0x20000>;
1066 reg-names = "kgsl_3d0_reg_memory";
1067 interrupts = <GIC_SPI 80 0>;
1068 interrupt-names = "kgsl_3d0_irq";
1069 clock-names =
1070 "core_clk",
1071 "iface_clk",
1072 "mem_clk",
1073 "mem_iface_clk";
1074 clocks =
1075 <&mmcc GFX3D_CLK>,
1076 <&mmcc GFX3D_AHB_CLK>,
1077 <&mmcc GFX3D_AXI_CLK>,
1078 <&mmcc MMSS_IMEM_AHB_CLK>;
1079 qcom,chipid = <0x03020002>;
1080
1081 iommus = <&gfx3d 0
1082 &gfx3d 1
1083 &gfx3d 2
1084 &gfx3d 3
1085 &gfx3d 4
1086 &gfx3d 5
1087 &gfx3d 6
1088 &gfx3d 7
1089 &gfx3d 8
1090 &gfx3d 9
1091 &gfx3d 10
1092 &gfx3d 11
1093 &gfx3d 12
1094 &gfx3d 13
1095 &gfx3d 14
1096 &gfx3d 15
1097 &gfx3d 16
1098 &gfx3d 17
1099 &gfx3d 18
1100 &gfx3d 19
1101 &gfx3d 20
1102 &gfx3d 21
1103 &gfx3d 22
1104 &gfx3d 23
1105 &gfx3d 24
1106 &gfx3d 25
1107 &gfx3d 26
1108 &gfx3d 27
1109 &gfx3d 28
1110 &gfx3d 29
1111 &gfx3d 30
1112 &gfx3d 31
1113 &gfx3d1 0
1114 &gfx3d1 1
1115 &gfx3d1 2
1116 &gfx3d1 3
1117 &gfx3d1 4
1118 &gfx3d1 5
1119 &gfx3d1 6
1120 &gfx3d1 7
1121 &gfx3d1 8
1122 &gfx3d1 9
1123 &gfx3d1 10
1124 &gfx3d1 11
1125 &gfx3d1 12
1126 &gfx3d1 13
1127 &gfx3d1 14
1128 &gfx3d1 15
1129 &gfx3d1 16
1130 &gfx3d1 17
1131 &gfx3d1 18
1132 &gfx3d1 19
1133 &gfx3d1 20
1134 &gfx3d1 21
1135 &gfx3d1 22
1136 &gfx3d1 23
1137 &gfx3d1 24
1138 &gfx3d1 25
1139 &gfx3d1 26
1140 &gfx3d1 27
1141 &gfx3d1 28
1142 &gfx3d1 29
1143 &gfx3d1 30
1144 &gfx3d1 31>;
1145
1146 qcom,gpu-pwrlevels {
1147 compatible = "qcom,gpu-pwrlevels";
1148 qcom,gpu-pwrlevel@0 {
1149 qcom,gpu-freq = <450000000>;
1150 };
1151 qcom,gpu-pwrlevel@1 {
1152 qcom,gpu-freq = <27000000>;
1153 };
1154 };
1155 };
1156
1157 mmss_sfpb: syscon@5700000 {
1158 compatible = "syscon";
1159 reg = <0x5700000 0x70>;
1160 };
1161
1162 dsi0: mdss_dsi@4700000 {
1163 compatible = "qcom,mdss-dsi-ctrl";
1164 label = "MDSS DSI CTRL->0";
1165 #address-cells = <1>;
1166 #size-cells = <0>;
1167 interrupts = <GIC_SPI 82 0>;
1168 reg = <0x04700000 0x200>;
1169 reg-names = "dsi_ctrl";
1170
1171 clocks = <&mmcc DSI_M_AHB_CLK>,
1172 <&mmcc DSI_S_AHB_CLK>,
1173 <&mmcc AMP_AHB_CLK>,
1174 <&mmcc DSI_CLK>,
1175 <&mmcc DSI1_BYTE_CLK>,
1176 <&mmcc DSI_PIXEL_CLK>,
1177 <&mmcc DSI1_ESC_CLK>;
1178 clock-names = "iface_clk", "bus_clk", "core_mmss_clk",
1179 "src_clk", "byte_clk", "pixel_clk",
1180 "core_clk";
1181
1182 assigned-clocks = <&mmcc DSI1_BYTE_SRC>,
1183 <&mmcc DSI1_ESC_SRC>,
1184 <&mmcc DSI_SRC>,
1185 <&mmcc DSI_PIXEL_SRC>;
1186 assigned-clock-parents = <&dsi0_phy 0>,
1187 <&dsi0_phy 0>,
1188 <&dsi0_phy 1>,
1189 <&dsi0_phy 1>;
1190 syscon-sfpb = <&mmss_sfpb>;
1191 phys = <&dsi0_phy>;
1192 ports {
1193 #address-cells = <1>;
1194 #size-cells = <0>;
1195
1196 port@0 {
1197 reg = <0>;
1198 dsi0_in: endpoint {
1199 };
1200 };
1201
1202 port@1 {
1203 reg = <1>;
1204 dsi0_out: endpoint {
1205 };
1206 };
1207 };
1208 };
1209
1210
1211 dsi0_phy: dsi-phy@4700200 {
1212 compatible = "qcom,dsi-phy-28nm-8960";
1213 #clock-cells = <1>;
1214
1215 reg = <0x04700200 0x100>,
1216 <0x04700300 0x200>,
1217 <0x04700500 0x5c>;
1218 reg-names = "dsi_pll", "dsi_phy", "dsi_phy_regulator";
1219 clock-names = "iface_clk";
1220 clocks = <&mmcc DSI_M_AHB_CLK>;
1221 };
1222
1223
1224 mdp_port0: iommu@7500000 {
1225 compatible = "qcom,apq8064-iommu";
1226 #iommu-cells = <1>;
1227 clock-names =
1228 "smmu_pclk",
1229 "iommu_clk";
1230 clocks =
1231 <&mmcc SMMU_AHB_CLK>,
1232 <&mmcc MDP_AXI_CLK>;
1233 reg = <0x07500000 0x100000>;
1234 interrupts =
1235 <GIC_SPI 63 0>,
1236 <GIC_SPI 64 0>;
1237 qcom,ncb = <2>;
1238 };
1239
1240 mdp_port1: iommu@7600000 {
1241 compatible = "qcom,apq8064-iommu";
1242 #iommu-cells = <1>;
1243 clock-names =
1244 "smmu_pclk",
1245 "iommu_clk";
1246 clocks =
1247 <&mmcc SMMU_AHB_CLK>,
1248 <&mmcc MDP_AXI_CLK>;
1249 reg = <0x07600000 0x100000>;
1250 interrupts =
1251 <GIC_SPI 61 0>,
1252 <GIC_SPI 62 0>;
1253 qcom,ncb = <2>;
1254 };
1255
1256 gfx3d: iommu@7c00000 {
1257 compatible = "qcom,apq8064-iommu";
1258 #iommu-cells = <1>;
1259 clock-names =
1260 "smmu_pclk",
1261 "iommu_clk";
1262 clocks =
1263 <&mmcc SMMU_AHB_CLK>,
1264 <&mmcc GFX3D_AXI_CLK>;
1265 reg = <0x07c00000 0x100000>;
1266 interrupts =
1267 <GIC_SPI 69 0>,
1268 <GIC_SPI 70 0>;
1269 qcom,ncb = <3>;
1270 };
1271
1272 gfx3d1: iommu@7d00000 {
1273 compatible = "qcom,apq8064-iommu";
1274 #iommu-cells = <1>;
1275 clock-names =
1276 "smmu_pclk",
1277 "iommu_clk";
1278 clocks =
1279 <&mmcc SMMU_AHB_CLK>,
1280 <&mmcc GFX3D_AXI_CLK>;
1281 reg = <0x07d00000 0x100000>;
1282 interrupts =
1283 <GIC_SPI 210 0>,
1284 <GIC_SPI 211 0>;
1285 qcom,ncb = <3>;
1286 };
1287
1063 pcie: pci@1b500000 { 1288 pcie: pci@1b500000 {
1064 compatible = "qcom,pcie-apq8064", "snps,dw-pcie"; 1289 compatible = "qcom,pcie-apq8064", "snps,dw-pcie";
1065 reg = <0x1b500000 0x1000 1290 reg = <0x1b500000 0x1000
@@ -1095,6 +1320,102 @@
1095 reset-names = "axi", "ahb", "por", "pci", "phy"; 1320 reset-names = "axi", "ahb", "por", "pci", "phy";
1096 status = "disabled"; 1321 status = "disabled";
1097 }; 1322 };
1323
1324 hdmi: hdmi-tx@4a00000 {
1325 compatible = "qcom,hdmi-tx-8960";
1326 reg = <0x04a00000 0x2f0>;
1327 reg-names = "core_physical";
1328 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
1329 clocks = <&mmcc HDMI_APP_CLK>,
1330 <&mmcc HDMI_M_AHB_CLK>,
1331 <&mmcc HDMI_S_AHB_CLK>;
1332 clock-names = "core_clk",
1333 "master_iface_clk",
1334 "slave_iface_clk";
1335
1336 phys = <&hdmi_phy>;
1337 phy-names = "hdmi-phy";
1338
1339 ports {
1340 #address-cells = <1>;
1341 #size-cells = <0>;
1342
1343 port@0 {
1344 reg = <0>;
1345 hdmi_in: endpoint {
1346 };
1347 };
1348
1349 port@1 {
1350 reg = <1>;
1351 hdmi_out: endpoint {
1352 };
1353 };
1354 };
1355 };
1356
1357 hdmi_phy: hdmi-phy@4a00400 {
1358 compatible = "qcom,hdmi-phy-8960";
1359 reg = <0x4a00400 0x60>,
1360 <0x4a00500 0x100>;
1361 reg-names = "hdmi_phy",
1362 "hdmi_pll";
1363
1364 clocks = <&mmcc HDMI_S_AHB_CLK>;
1365 clock-names = "slave_iface_clk";
1366 };
1367
1368 mdp: mdp@5100000 {
1369 compatible = "qcom,mdp4";
1370 reg = <0x05100000 0xf0000>;
1371 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
1372 clocks = <&mmcc MDP_CLK>,
1373 <&mmcc MDP_AHB_CLK>,
1374 <&mmcc MDP_AXI_CLK>,
1375 <&mmcc MDP_LUT_CLK>,
1376 <&mmcc HDMI_TV_CLK>,
1377 <&mmcc MDP_TV_CLK>;
1378 clock-names = "core_clk",
1379 "iface_clk",
1380 "bus_clk",
1381 "lut_clk",
1382 "hdmi_clk",
1383 "tv_clk";
1384
1385 iommus = <&mdp_port0 0
1386 &mdp_port0 2
1387 &mdp_port1 0
1388 &mdp_port1 2>;
1389
1390 ports {
1391 #address-cells = <1>;
1392 #size-cells = <0>;
1393
1394 port@0 {
1395 reg = <0>;
1396 mdp_lvds_out: endpoint {
1397 };
1398 };
1399
1400 port@1 {
1401 reg = <1>;
1402 mdp_dsi1_out: endpoint {
1403 };
1404 };
1405
1406 port@2 {
1407 reg = <2>;
1408 mdp_dsi2_out: endpoint {
1409 };
1410 };
1411
1412 port@3 {
1413 reg = <3>;
1414 mdp_dtv_out: endpoint {
1415 };
1416 };
1417 };
1418 };
1098 }; 1419 };
1099}; 1420};
1100#include "qcom-apq8064-pins.dtsi" 1421#include "qcom-apq8064-pins.dtsi"
diff --git a/arch/arm/boot/dts/qcom-apq8084.dtsi b/arch/arm/boot/dts/qcom-apq8084.dtsi
index 39eb7a4ed16a..80d48867107f 100644
--- a/arch/arm/boot/dts/qcom-apq8084.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8084.dtsi
@@ -182,13 +182,13 @@
182 }; 182 };
183 183
184 clocks { 184 clocks {
185 xo_board { 185 xo_board: xo_board {
186 compatible = "fixed-clock"; 186 compatible = "fixed-clock";
187 #clock-cells = <0>; 187 #clock-cells = <0>;
188 clock-frequency = <19200000>; 188 clock-frequency = <19200000>;
189 }; 189 };
190 190
191 sleep_clk { 191 sleep_clk: sleep_clk {
192 compatible = "fixed-clock"; 192 compatible = "fixed-clock";
193 #clock-cells = <0>; 193 #clock-cells = <0>;
194 clock-frequency = <32768>; 194 clock-frequency = <32768>;
@@ -416,8 +416,10 @@
416 reg-names = "hc_mem", "core_mem"; 416 reg-names = "hc_mem", "core_mem";
417 interrupts = <0 123 0>, <0 138 0>; 417 interrupts = <0 123 0>, <0 138 0>;
418 interrupt-names = "hc_irq", "pwr_irq"; 418 interrupt-names = "hc_irq", "pwr_irq";
419 clocks = <&gcc GCC_SDCC1_APPS_CLK>, <&gcc GCC_SDCC1_AHB_CLK>; 419 clocks = <&gcc GCC_SDCC1_APPS_CLK>,
420 clock-names = "core", "iface"; 420 <&gcc GCC_SDCC1_AHB_CLK>,
421 <&xo_board>;
422 clock-names = "core", "iface", "xo";
421 status = "disabled"; 423 status = "disabled";
422 }; 424 };
423 425
@@ -427,8 +429,10 @@
427 reg-names = "hc_mem", "core_mem"; 429 reg-names = "hc_mem", "core_mem";
428 interrupts = <0 125 0>, <0 221 0>; 430 interrupts = <0 125 0>, <0 221 0>;
429 interrupt-names = "hc_irq", "pwr_irq"; 431 interrupt-names = "hc_irq", "pwr_irq";
430 clocks = <&gcc GCC_SDCC2_APPS_CLK>, <&gcc GCC_SDCC2_AHB_CLK>; 432 clocks = <&gcc GCC_SDCC2_APPS_CLK>,
431 clock-names = "core", "iface"; 433 <&gcc GCC_SDCC2_AHB_CLK>,
434 <&xo_board>;
435 clock-names = "core", "iface", "xo";
432 status = "disabled"; 436 status = "disabled";
433 }; 437 };
434 438
diff --git a/arch/arm/boot/dts/qcom-mdm9615-wp8548-mangoh-green.dts b/arch/arm/boot/dts/qcom-mdm9615-wp8548-mangoh-green.dts
new file mode 100644
index 000000000000..26160c324802
--- /dev/null
+++ b/arch/arm/boot/dts/qcom-mdm9615-wp8548-mangoh-green.dts
@@ -0,0 +1,281 @@
1/*
2 * Device Tree Source for mangOH Green Board with WP8548 Module
3 *
4 * Copyright (C) 2016 BayLibre, SAS.
5 * Author : Neil Armstrong <narmstrong@baylibre.com>
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 * a) This file is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License as
14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version.
16 *
17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * Or, alternatively,
23 *
24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following
31 * conditions:
32 *
33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software.
35 *
36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE.
44 */
45
46#include <dt-bindings/input/input.h>
47
48#include "qcom-mdm9615-wp8548.dtsi"
49#include <dt-bindings/interrupt-controller/irq.h>
50#include <dt-bindings/gpio/gpio.h>
51
52/ {
53 model = "MangOH Green with WP8548 Module";
54 compatible = "swir,mangoh-green-wp8548", "swir,wp8548", "qcom,mdm9615";
55
56 aliases {
57 spi0 = &gsbi3_spi;
58 serial0 = &gsbi4_serial;
59 serial1 = &gsbi5_serial;
60 i2c0 = &gsbi5_i2c;
61 mmc0 = &sdcc1;
62 };
63
64 chosen {
65 stdout-path = "serial1:115200n8";
66 };
67};
68
69&msmgpio {
70 /* MangOH GPIO Mapping :
71 * - 2 : GPIOEXP_INT2
72 * - 7 : IOT1_GPIO2
73 * - 8 : IOT0_GPIO4
74 * - 13: IOT0_GPIO3
75 * - 21: IOT1_GPIO4
76 * - 22: IOT2_GPIO1
77 * - 23: IOT2_GPIO2
78 * - 24: IOT2_GPIO3
79 * - 25: IOT1_GPIO1
80 * - 32: IOT1_GPIO3
81 * - 33: IOT0_GPIO2
82 * - 42: IOT0_GPIO1 and SD Card Detect
83 */
84
85 gpioext1_pins: gpioext1_pins {
86 pins {
87 pins = "gpio2";
88 function = "gpio";
89 input-enable;
90 bias-disable;
91 };
92 };
93
94 sdc_cd_pins: sdc_cd_pins {
95 pins {
96 pins = "gpio42";
97 function = "gpio";
98 drive-strength = <2>;
99 bias-pull-up;
100 };
101 };
102};
103
104&gsbi3_spi {
105 spi@0 {
106 compatible = "swir,mangoh-iotport-spi", "spidev";
107 spi-max-frequency = <24000000>;
108 reg = <0>;
109 };
110};
111
112&gsbi5_i2c {
113 mux@71 {
114 compatible = "nxp,pca9548";
115 #address-cells = <1>;
116 #size-cells = <0>;
117 reg = <0x71>;
118
119 i2c_iot0: i2c@0 {
120 #address-cells = <1>;
121 #size-cells = <0>;
122 reg = <0>;
123 };
124
125 i2c_iot1: i2c@1 {
126 #address-cells = <1>;
127 #size-cells = <0>;
128 reg = <1>;
129 };
130
131 i2c_iot2: i2c@2 {
132 #address-cells = <1>;
133 #size-cells = <0>;
134 reg = <2>;
135 };
136
137 i2c@3 {
138 #address-cells = <1>;
139 #size-cells = <0>;
140 reg = <3>;
141
142 usbhub: hub@8 {
143 compatible = "smsc,usb3503a";
144 reg = <0x8>;
145 connect-gpios = <&gpioext2 1 GPIO_ACTIVE_HIGH>;
146 intn-gpios = <&gpioext2 0 GPIO_ACTIVE_LOW>;
147 initial-mode = <1>;
148 };
149 };
150
151 i2c@4 {
152 #address-cells = <1>;
153 #size-cells = <0>;
154 reg = <4>;
155
156 gpioext0: gpio@3e {
157 /* GPIO Expander 0 Mapping :
158 * - 0: ARDUINO_RESET_Level shift
159 * - 1: BattChrgr_PG_N
160 * - 2: BattGauge_GPIO
161 * - 3: LED_ON (out active high)
162 * - 4: ATmega_reset_GPIO
163 * - 5: X
164 * - 6: PCM_ANALOG_SELECT (out active high)
165 * - 7: X
166 * - 8: Board_rev_res1 (in)
167 * - 9: Board_rev_res2 (in)
168 * - 10: UART_EXP1_ENn (out active low / pull-down)
169 * - 11: UART_EXP1_IN (out pull-down)
170 * - 12: UART_EXP2_IN (out pull-down)
171 * - 13: SDIO_SEL (out pull-down)
172 * - 14: SPI_EXP1_ENn (out active low / pull-down)
173 * - 15: SPI_EXP1_IN (out pull-down)
174 */
175 #gpio-cells = <2>;
176 #interrupt-cells = <2>;
177 compatible = "semtech,sx1509q";
178 reg = <0x3e>;
179 interrupt-parent = <&gpioext1>;
180 interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
181
182 probe-reset;
183
184 gpio-controller;
185 interrupt-controller;
186 };
187 };
188
189 i2c@5 {
190 #address-cells = <1>;
191 #size-cells = <0>;
192 reg = <5>;
193
194 gpioext1: gpio@3f {
195 /* GPIO Expander 1 Mapping :
196 * - 0: GPIOEXP_INT1
197 * - 1: Battery detect
198 * - 2: GPIO_SCF3_RESET
199 * - 3: LED_CARD_DETECT_IOT0 (in)
200 * - 4: LED_CARD_DETECT_IOT1 (in)
201 * - 5: LED_CARD_DETECT_IOT2 (in)
202 * - 6: UIM2_PWM_SELECT
203 * - 7: UIM2_M2_S_SELECT
204 * - 8: TP900
205 * - 9: SENSOR_INT1 (in)
206 * - 10: SENSOR_INT2 (in)
207 * - 11: CARD_DETECT_IOT0 (in pull-up)
208 * - 12: CARD_DETECT_IOT2 (in pull-up)
209 * - 13: CARD_DETECT_IOT1 (in pull-up)
210 * - 14: GPIOEXP_INT3 (in active low / pull-up)
211 * - 15: BattChrgr_INT_N
212 */
213 pinctrl-0 = <&gpioext1_pins>;
214 pinctrl-names = "default";
215
216 #gpio-cells = <2>;
217 #interrupt-cells = <2>;
218 compatible = "semtech,sx1509q";
219 reg = <0x3f>;
220 interrupt-parent = <&msmgpio>;
221 interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
222
223 probe-reset;
224
225 gpio-controller;
226 interrupt-controller;
227 };
228 };
229
230 i2c@6 {
231 #address-cells = <1>;
232 #size-cells = <0>;
233 reg = <6>;
234
235 gpioext2: gpio@70 {
236 /* GPIO Expander 2 Mapping :
237 * - 0: USB_HUB_INTn
238 * - 1: HUB_CONNECT
239 * - 2: GPIO_IOT2_RESET (out active low / pull-up)
240 * - 3: GPIO_IOT1_RESET (out active low / pull-up)
241 * - 4: GPIO_IOT0_RESET (out active low / pull-up)
242 * - 5: TP901
243 * - 6: TP902
244 * - 7: TP903
245 * - 8: UART_EXP2_ENn (out active low / pull-down)
246 * - 9: PCM_EXP1_ENn (out active low)
247 * - 10: PCM_EXP1_SEL (out)
248 * - 11: ARD_FTDI
249 * - 12: TP904
250 * - 13: TP905
251 * - 14: TP906
252 * - 15: RS232_Enable (out active high / pull-up)
253 */
254 #gpio-cells = <2>;
255 #interrupt-cells = <2>;
256 compatible = "semtech,sx1509q";
257 reg = <0x70>;
258 interrupt-parent = <&gpioext1>;
259 interrupts = <14 IRQ_TYPE_EDGE_FALLING>;
260
261 probe-reset;
262
263 gpio-controller;
264 interrupt-controller;
265 };
266 };
267
268 i2c@7 {
269 #address-cells = <1>;
270 #size-cells = <0>;
271 reg = <7>;
272 };
273 };
274};
275
276&sdcc1 {
277 pinctrl-0 = <&sdc_cd_pins>;
278 pinctrl-names = "default";
279 disable-wp;
280 cd-gpios = <&msmgpio 42 GPIO_ACTIVE_LOW>; /* Active low CD */
281};
diff --git a/arch/arm/boot/dts/qcom-mdm9615-wp8548.dtsi b/arch/arm/boot/dts/qcom-mdm9615-wp8548.dtsi
new file mode 100644
index 000000000000..7869898e392d
--- /dev/null
+++ b/arch/arm/boot/dts/qcom-mdm9615-wp8548.dtsi
@@ -0,0 +1,170 @@
1/*
2 * Device Tree Source for Sierra Wireless WP8548 Module
3 *
4 * Copyright (C) 2016 BayLibre, SAS.
5 * Author : Neil Armstrong <narmstrong@baylibre.com>
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 * a) This file is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License as
14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version.
16 *
17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * Or, alternatively,
23 *
24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following
31 * conditions:
32 *
33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software.
35 *
36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE.
44 */
45
46#include "qcom-mdm9615.dtsi"
47
48/ {
49 model = "Sierra Wireless WP8548 Module";
50 compatible = "swir,wp8548", "qcom,mdm9615";
51
52 memory {
53 reg = <0x48000000 0x7F00000>;
54 };
55};
56
57&msmgpio {
58 pinctrl-0 = <&reset_out_pins>;
59 pinctrl-names = "default";
60
61 gsbi3_pins: gsbi3_pins {
62 mux {
63 pins = "gpio8", "gpio9", "gpio10", "gpio11";
64 function = "gsbi3";
65 drive-strength = <8>;
66 bias-disable;
67 };
68 };
69
70 gsbi4_pins: gsbi4_pins {
71 mux {
72 pins = "gpio12", "gpio13", "gpio14", "gpio15";
73 function = "gsbi4";
74 drive-strength = <8>;
75 bias-disable;
76 };
77 };
78
79 gsbi5_i2c_pins: gsbi5_i2c_pins {
80 pin16 {
81 pins = "gpio16";
82 function = "gsbi5_i2c";
83 drive-strength = <8>;
84 bias-disable;
85 };
86
87 pin17 {
88 pins = "gpio17";
89 function = "gsbi5_i2c";
90 drive-strength = <2>;
91 bias-disable;
92 };
93 };
94
95 gsbi5_uart_pins: gsbi5_uart_pins {
96 mux {
97 pins = "gpio18", "gpio19";
98 function = "gsbi5_uart";
99 drive-strength = <8>;
100 bias-disable;
101 };
102 };
103
104 reset_out_pins: reset_out_pins {
105 pins {
106 pins = "gpio66";
107 function = "gpio";
108 drive-strength = <2>;
109 bias-pull-up;
110 output-high;
111 };
112 };
113};
114
115&pmicgpio {
116 usb_vbus_5v_pins: usb_vbus_5v_pins {
117 pins = "gpio4";
118 function = "normal";
119 output-high;
120 bias-disable;
121 qcom,drive-strength = <1>;
122 power-source = <2>;
123 };
124};
125
126&gsbi3 {
127 status = "ok";
128 qcom,mode = <GSBI_PROT_SPI>;
129};
130
131&gsbi3_spi {
132 status = "ok";
133 pinctrl-0 = <&gsbi3_pins>;
134 pinctrl-names = "default";
135 assigned-clocks = <&gcc GSBI3_QUP_CLK>;
136 assigned-clock-rates = <24000000>;
137};
138
139&gsbi4 {
140 status = "ok";
141 qcom,mode = <GSBI_PROT_UART_W_FC>;
142};
143
144&gsbi4_serial {
145 status = "ok";
146 pinctrl-0 = <&gsbi4_pins>;
147 pinctrl-names = "default";
148};
149
150&gsbi5 {
151 status = "ok";
152 qcom,mode = <GSBI_PROT_I2C_UART>;
153};
154
155&gsbi5_i2c {
156 status = "ok";
157 clock-frequency = <200000>;
158 pinctrl-0 = <&gsbi5_i2c_pins>;
159 pinctrl-names = "default";
160};
161
162&gsbi5_serial {
163 status = "ok";
164 pinctrl-0 = <&gsbi5_uart_pins>;
165 pinctrl-names = "default";
166};
167
168&sdcc1 {
169 status = "ok";
170};
diff --git a/arch/arm/boot/dts/qcom-mdm9615.dtsi b/arch/arm/boot/dts/qcom-mdm9615.dtsi
new file mode 100644
index 000000000000..5ae4ec59e6ea
--- /dev/null
+++ b/arch/arm/boot/dts/qcom-mdm9615.dtsi
@@ -0,0 +1,557 @@
1/*
2 * Device Tree Source for Qualcomm MDM9615 SoC
3 *
4 * Copyright (C) 2016 BayLibre, SAS.
5 * Author : Neil Armstrong <narmstrong@baylibre.com>
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 * a) This file is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License as
14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version.
16 *
17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * Or, alternatively,
23 *
24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following
31 * conditions:
32 *
33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software.
35 *
36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE.
44 */
45
46/dts-v1/;
47
48/include/ "skeleton.dtsi"
49
50#include <dt-bindings/interrupt-controller/arm-gic.h>
51#include <dt-bindings/clock/qcom,gcc-mdm9615.h>
52#include <dt-bindings/reset/qcom,gcc-mdm9615.h>
53#include <dt-bindings/mfd/qcom-rpm.h>
54#include <dt-bindings/soc/qcom,gsbi.h>
55
56/ {
57 model = "Qualcomm MDM9615";
58 compatible = "qcom,mdm9615";
59 interrupt-parent = <&intc>;
60
61 cpus {
62 #address-cells = <1>;
63 #size-cells = <0>;
64
65 cpu0: cpu@0 {
66 compatible = "arm,cortex-a5";
67 device_type = "cpu";
68 next-level-cache = <&L2>;
69 };
70 };
71
72 cpu-pmu {
73 compatible = "arm,cortex-a5-pmu";
74 interrupts = <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
75 };
76
77 clocks {
78 cxo_board {
79 compatible = "fixed-clock";
80 #clock-cells = <0>;
81 clock-frequency = <19200000>;
82 };
83 };
84
85 regulators {
86 vsdcc_fixed: vsdcc-regulator {
87 compatible = "regulator-fixed";
88 regulator-name = "SDCC Power";
89 regulator-min-microvolt = <2700000>;
90 regulator-max-microvolt = <2700000>;
91 regulator-always-on;
92 };
93 };
94
95 soc: soc {
96 #address-cells = <1>;
97 #size-cells = <1>;
98 ranges;
99 compatible = "simple-bus";
100
101 L2: l2-cache@2040000 {
102 compatible = "arm,pl310-cache";
103 reg = <0x02040000 0x1000>;
104 arm,data-latency = <2 2 0>;
105 cache-unified;
106 cache-level = <2>;
107 };
108
109 intc: interrupt-controller@2000000 {
110 compatible = "qcom,msm-qgic2";
111 interrupt-controller;
112 #interrupt-cells = <3>;
113 reg = <0x02000000 0x1000>,
114 <0x02002000 0x1000>;
115 };
116
117 timer@200a000 {
118 compatible = "qcom,kpss-timer", "qcom,msm-timer";
119 interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_EDGE_RISING)>,
120 <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_EDGE_RISING)>,
121 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_EDGE_RISING)>;
122 reg = <0x0200a000 0x100>;
123 clock-frequency = <27000000>,
124 <32768>;
125 cpu-offset = <0x80000>;
126 };
127
128 msmgpio: pinctrl@800000 {
129 compatible = "qcom,mdm9615-pinctrl";
130 gpio-controller;
131 #gpio-cells = <2>;
132 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
133 interrupt-controller;
134 #interrupt-cells = <2>;
135 reg = <0x800000 0x4000>;
136 };
137
138 gcc: clock-controller@900000 {
139 compatible = "qcom,gcc-mdm9615";
140 #clock-cells = <1>;
141 #reset-cells = <1>;
142 reg = <0x900000 0x4000>;
143 };
144
145 lcc: clock-controller@28000000 {
146 compatible = "qcom,lcc-mdm9615";
147 reg = <0x28000000 0x1000>;
148 #clock-cells = <1>;
149 #reset-cells = <1>;
150 };
151
152 l2cc: clock-controller@2011000 {
153 compatible = "syscon";
154 reg = <0x02011000 0x1000>;
155 };
156
157 rng@1a500000 {
158 compatible = "qcom,prng";
159 reg = <0x1a500000 0x200>;
160 clocks = <&gcc PRNG_CLK>;
161 clock-names = "core";
162 assigned-clocks = <&gcc PRNG_CLK>;
163 assigned-clock-rates = <32000000>;
164 };
165
166 gsbi2: gsbi@16100000 {
167 compatible = "qcom,gsbi-v1.0.0";
168 cell-index = <2>;
169 reg = <0x16100000 0x100>;
170 clocks = <&gcc GSBI2_H_CLK>;
171 clock-names = "iface";
172 status = "disabled";
173 #address-cells = <1>;
174 #size-cells = <1>;
175 ranges;
176
177 gsbi2_i2c: i2c@16180000 {
178 compatible = "qcom,i2c-qup-v1.1.1";
179 #address-cells = <1>;
180 #size-cells = <0>;
181 reg = <0x16180000 0x1000>;
182 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
183
184 clocks = <&gcc GSBI2_QUP_CLK>, <&gcc GSBI2_H_CLK>;
185 clock-names = "core", "iface";
186 status = "disabled";
187 };
188 };
189
190 gsbi3: gsbi@16200000 {
191 compatible = "qcom,gsbi-v1.0.0";
192 cell-index = <3>;
193 reg = <0x16200000 0x100>;
194 clocks = <&gcc GSBI3_H_CLK>;
195 clock-names = "iface";
196 status = "disabled";
197 #address-cells = <1>;
198 #size-cells = <1>;
199 ranges;
200
201 gsbi3_spi: spi@16280000 {
202 compatible = "qcom,spi-qup-v1.1.1";
203 #address-cells = <1>;
204 #size-cells = <0>;
205 reg = <0x16280000 0x1000>;
206 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
207 spi-max-frequency = <24000000>;
208
209 clocks = <&gcc GSBI3_QUP_CLK>, <&gcc GSBI3_H_CLK>;
210 clock-names = "core", "iface";
211 status = "disabled";
212 };
213 };
214
215 gsbi4: gsbi@16300000 {
216 compatible = "qcom,gsbi-v1.0.0";
217 cell-index = <4>;
218 reg = <0x16300000 0x100>;
219 clocks = <&gcc GSBI4_H_CLK>;
220 clock-names = "iface";
221 status = "disabled";
222 #address-cells = <1>;
223 #size-cells = <1>;
224 ranges;
225
226 syscon-tcsr = <&tcsr>;
227
228 gsbi4_serial: serial@16340000 {
229 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
230 reg = <0x16340000 0x1000>,
231 <0x16300000 0x1000>;
232 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
233 clocks = <&gcc GSBI4_UART_CLK>, <&gcc GSBI4_H_CLK>;
234 clock-names = "core", "iface";
235 status = "disabled";
236 };
237 };
238
239 gsbi5: gsbi@16400000 {
240 compatible = "qcom,gsbi-v1.0.0";
241 cell-index = <5>;
242 reg = <0x16400000 0x100>;
243 clocks = <&gcc GSBI5_H_CLK>;
244 clock-names = "iface";
245 status = "disabled";
246 #address-cells = <1>;
247 #size-cells = <1>;
248 ranges;
249
250 syscon-tcsr = <&tcsr>;
251
252 gsbi5_i2c: i2c@16480000 {
253 compatible = "qcom,i2c-qup-v1.1.1";
254 #address-cells = <1>;
255 #size-cells = <0>;
256 reg = <0x16480000 0x1000>;
257 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
258
259 /* QUP clock is not initialized, set rate */
260 assigned-clocks = <&gcc GSBI5_QUP_CLK>;
261 assigned-clock-rates = <24000000>;
262
263 clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>;
264 clock-names = "core", "iface";
265 status = "disabled";
266 };
267
268 gsbi5_serial: serial@16440000 {
269 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
270 reg = <0x16440000 0x1000>,
271 <0x16400000 0x1000>;
272 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
273 clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>;
274 clock-names = "core", "iface";
275 status = "disabled";
276 };
277 };
278
279 qcom,ssbi@500000 {
280 compatible = "qcom,ssbi";
281 reg = <0x500000 0x1000>;
282 qcom,controller-type = "pmic-arbiter";
283
284 pmicintc: pmic@0 {
285 compatible = "qcom,pm8018", "qcom,pm8921";
286 interrupts = <GIC_PPI 226 IRQ_TYPE_LEVEL_HIGH>;
287 #interrupt-cells = <2>;
288 interrupt-controller;
289 #address-cells = <1>;
290 #size-cells = <0>;
291
292 pwrkey@1c {
293 compatible = "qcom,pm8018-pwrkey", "qcom,pm8921-pwrkey";
294 reg = <0x1c>;
295 interrupt-parent = <&pmicintc>;
296 interrupts = <50 IRQ_TYPE_EDGE_RISING>,
297 <51 IRQ_TYPE_EDGE_RISING>;
298 debounce = <15625>;
299 pull-up;
300 };
301
302 pmicmpp: mpp@50 {
303 compatible = "qcom,pm8018-mpp", "qcom,ssbi-mpp";
304 interrupt-parent = <&pmicintc>;
305 interrupts = <24 IRQ_TYPE_NONE>,
306 <25 IRQ_TYPE_NONE>,
307 <26 IRQ_TYPE_NONE>,
308 <27 IRQ_TYPE_NONE>,
309 <28 IRQ_TYPE_NONE>,
310 <29 IRQ_TYPE_NONE>;
311 reg = <0x50>;
312 gpio-controller;
313 #gpio-cells = <2>;
314 };
315
316 rtc@11d {
317 compatible = "qcom,pm8018-rtc", "qcom,pm8921-rtc";
318 interrupt-parent = <&pmicintc>;
319 interrupts = <39 IRQ_TYPE_EDGE_RISING>;
320 reg = <0x11d>;
321 allow-set-time;
322 };
323
324 pmicgpio: gpio@150 {
325 compatible = "qcom,pm8018-gpio", "qcom,ssbi-gpio";
326 interrupt-parent = <&pmicintc>;
327 interrupts = <24 IRQ_TYPE_NONE>,
328 <25 IRQ_TYPE_NONE>,
329 <26 IRQ_TYPE_NONE>,
330 <27 IRQ_TYPE_NONE>,
331 <28 IRQ_TYPE_NONE>,
332 <29 IRQ_TYPE_NONE>;
333 gpio-controller;
334 #gpio-cells = <2>;
335 };
336 };
337 };
338
339 sdcc1bam: dma@12182000{
340 compatible = "qcom,bam-v1.3.0";
341 reg = <0x12182000 0x8000>;
342 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
343 clocks = <&gcc SDC1_H_CLK>;
344 clock-names = "bam_clk";
345 #dma-cells = <1>;
346 qcom,ee = <0>;
347 };
348
349 sdcc2bam: dma@12142000{
350 compatible = "qcom,bam-v1.3.0";
351 reg = <0x12142000 0x8000>;
352 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
353 clocks = <&gcc SDC2_H_CLK>;
354 clock-names = "bam_clk";
355 #dma-cells = <1>;
356 qcom,ee = <0>;
357 };
358
359 amba {
360 compatible = "arm,amba-bus";
361 #address-cells = <1>;
362 #size-cells = <1>;
363 ranges;
364 sdcc1: sdcc@12180000 {
365 status = "disabled";
366 compatible = "arm,pl18x", "arm,primecell";
367 arm,primecell-periphid = <0x00051180>;
368 reg = <0x12180000 0x2000>;
369 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
370 interrupt-names = "cmd_irq";
371 clocks = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>;
372 clock-names = "mclk", "apb_pclk";
373 bus-width = <8>;
374 max-frequency = <48000000>;
375 cap-sd-highspeed;
376 cap-mmc-highspeed;
377 vmmc-supply = <&vsdcc_fixed>;
378 dmas = <&sdcc1bam 2>, <&sdcc1bam 1>;
379 dma-names = "tx", "rx";
380 assigned-clocks = <&gcc SDC1_CLK>;
381 assigned-clock-rates = <400000>;
382 };
383
384 sdcc2: sdcc@12140000 {
385 compatible = "arm,pl18x", "arm,primecell";
386 arm,primecell-periphid = <0x00051180>;
387 status = "disabled";
388 reg = <0x12140000 0x2000>;
389 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
390 interrupt-names = "cmd_irq";
391 clocks = <&gcc SDC2_CLK>, <&gcc SDC2_H_CLK>;
392 clock-names = "mclk", "apb_pclk";
393 bus-width = <4>;
394 cap-sd-highspeed;
395 cap-mmc-highspeed;
396 max-frequency = <48000000>;
397 no-1-8-v;
398 vmmc-supply = <&vsdcc_fixed>;
399 dmas = <&sdcc2bam 2>, <&sdcc2bam 1>;
400 dma-names = "tx", "rx";
401 assigned-clocks = <&gcc SDC2_CLK>;
402 assigned-clock-rates = <400000>;
403 };
404 };
405
406 tcsr: syscon@1a400000 {
407 compatible = "qcom,tcsr-mdm9615", "syscon";
408 reg = <0x1a400000 0x100>;
409 };
410
411 rpm: rpm@108000 {
412 compatible = "qcom,rpm-mdm9615";
413 reg = <0x108000 0x1000>;
414
415 qcom,ipc = <&l2cc 0x8 2>;
416
417 interrupts = <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>,
418 <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
419 <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
420 interrupt-names = "ack", "err", "wakeup";
421
422 regulators {
423 compatible = "qcom,rpm-pm8018-regulators";
424
425 vin_lvs1-supply = <&pm8018_s3>;
426
427 vdd_l7-supply = <&pm8018_s4>;
428 vdd_l8-supply = <&pm8018_s3>;
429 vdd_l9_l10_l11_l12-supply = <&pm8018_s5>;
430
431 /* Buck SMPS */
432 pm8018_s1: s1 {
433 regulator-min-microvolt = <500000>;
434 regulator-max-microvolt = <1150000>;
435 qcom,switch-mode-frequency = <1600000>;
436 bias-pull-down;
437 };
438
439 pm8018_s2: s2 {
440 regulator-min-microvolt = <1225000>;
441 regulator-max-microvolt = <1300000>;
442 qcom,switch-mode-frequency = <1600000>;
443 bias-pull-down;
444 };
445
446 pm8018_s3: s3 {
447 regulator-always-on;
448 regulator-min-microvolt = <1800000>;
449 regulator-max-microvolt = <1800000>;
450 qcom,switch-mode-frequency = <1600000>;
451 bias-pull-down;
452 };
453
454 pm8018_s4: s4 {
455 regulator-min-microvolt = <2100000>;
456 regulator-max-microvolt = <2200000>;
457 qcom,switch-mode-frequency = <1600000>;
458 bias-pull-down;
459 };
460
461 pm8018_s5: s5 {
462 regulator-always-on;
463 regulator-min-microvolt = <1350000>;
464 regulator-max-microvolt = <1350000>;
465 qcom,switch-mode-frequency = <1600000>;
466 bias-pull-down;
467 };
468
469 /* PMOS LDO */
470 pm8018_l2: l2 {
471 regulator-always-on;
472 regulator-min-microvolt = <1800000>;
473 regulator-max-microvolt = <1800000>;
474 bias-pull-down;
475 };
476
477 pm8018_l3: l3 {
478 regulator-always-on;
479 regulator-min-microvolt = <1800000>;
480 regulator-max-microvolt = <1800000>;
481 bias-pull-down;
482 };
483
484 pm8018_l4: l4 {
485 regulator-min-microvolt = <3300000>;
486 regulator-max-microvolt = <3300000>;
487 bias-pull-down;
488 };
489
490 pm8018_l5: l5 {
491 regulator-min-microvolt = <2850000>;
492 regulator-max-microvolt = <2850000>;
493 bias-pull-down;
494 };
495
496 pm8018_l6: l6 {
497 regulator-min-microvolt = <1800000>;
498 regulator-max-microvolt = <2850000>;
499 bias-pull-down;
500 };
501
502 pm8018_l7: l7 {
503 regulator-min-microvolt = <1850000>;
504 regulator-max-microvolt = <1900000>;
505 bias-pull-down;
506 };
507
508 pm8018_l8: l8 {
509 regulator-min-microvolt = <1200000>;
510 regulator-max-microvolt = <1200000>;
511 bias-pull-down;
512 };
513
514 pm8018_l9: l9 {
515 regulator-min-microvolt = <750000>;
516 regulator-max-microvolt = <1150000>;
517 bias-pull-down;
518 };
519
520 pm8018_l10: l10 {
521 regulator-min-microvolt = <1050000>;
522 regulator-max-microvolt = <1050000>;
523 bias-pull-down;
524 };
525
526 pm8018_l11: l11 {
527 regulator-min-microvolt = <1050000>;
528 regulator-max-microvolt = <1050000>;
529 bias-pull-down;
530 };
531
532 pm8018_l12: l12 {
533 regulator-min-microvolt = <1050000>;
534 regulator-max-microvolt = <1050000>;
535 bias-pull-down;
536 };
537
538 pm8018_l13: l13 {
539 regulator-min-microvolt = <1850000>;
540 regulator-max-microvolt = <2950000>;
541 bias-pull-down;
542 };
543
544 pm8018_l14: l14 {
545 regulator-min-microvolt = <2850000>;
546 regulator-max-microvolt = <2850000>;
547 bias-pull-down;
548 };
549
550 /* Low Voltage Switch */
551 pm8018_lvs1: lvs1 {
552 bias-pull-down;
553 };
554 };
555 };
556 };
557};
diff --git a/arch/arm/boot/dts/qcom-msm8660.dtsi b/arch/arm/boot/dts/qcom-msm8660.dtsi
index 8c65e0d82559..4d828f810746 100644
--- a/arch/arm/boot/dts/qcom-msm8660.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8660.dtsi
@@ -141,6 +141,23 @@
141 }; 141 };
142 }; 142 };
143 143
144 external-bus@1a100000 {
145 compatible = "qcom,msm8660-ebi2";
146 #address-cells = <2>;
147 #size-cells = <1>;
148 ranges = <0 0x0 0x1a800000 0x00800000>,
149 <1 0x0 0x1b000000 0x00800000>,
150 <2 0x0 0x1b800000 0x00800000>,
151 <3 0x0 0x1d000000 0x08000000>,
152 <4 0x0 0x1c800000 0x00800000>,
153 <5 0x0 0x1c000000 0x00800000>;
154 reg = <0x1a100000 0x1000>, <0x1a110000 0x1000>;
155 reg-names = "ebi2", "xmem";
156 clocks = <&gcc EBI2_2X_CLK>, <&gcc EBI2_CLK>;
157 clock-names = "ebi2x", "ebi2";
158 status = "disabled";
159 };
160
144 qcom,ssbi@500000 { 161 qcom,ssbi@500000 {
145 compatible = "qcom,ssbi"; 162 compatible = "qcom,ssbi";
146 reg = <0x500000 0x1000>; 163 reg = <0x500000 0x1000>;
diff --git a/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts b/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts
index c0fb4a698c56..382bcc3231a9 100644
--- a/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts
@@ -224,6 +224,35 @@
224 status = "ok"; 224 status = "ok";
225 }; 225 };
226 226
227 pinctrl@fd510000 {
228 sdhc1_pin_a: sdhc1-pin-active {
229 clk {
230 pins = "sdc1_clk";
231 drive-strength = <16>;
232 bias-disable;
233 };
234
235 cmd-data {
236 pins = "sdc1_cmd", "sdc1_data";
237 drive-strength = <10>;
238 bias-pull-up;
239 };
240 };
241 };
242
243 sdhci@f9824900 {
244 status = "ok";
245
246 vmmc-supply = <&pm8941_l20>;
247 vqmmc-supply = <&pm8941_s3>;
248
249 bus-width = <8>;
250 non-removable;
251
252 pinctrl-names = "default";
253 pinctrl-0 = <&sdhc1_pin_a>;
254 };
255
227 gpio-keys { 256 gpio-keys {
228 compatible = "gpio-keys"; 257 compatible = "gpio-keys";
229 input-name = "gpio-keys"; 258 input-name = "gpio-keys";
diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
index d2109475bdfd..49d579f28865 100644
--- a/arch/arm/boot/dts/qcom-msm8974.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
@@ -220,13 +220,13 @@
220 }; 220 };
221 221
222 clocks { 222 clocks {
223 xo_board { 223 xo_board: xo_board {
224 compatible = "fixed-clock"; 224 compatible = "fixed-clock";
225 #clock-cells = <0>; 225 #clock-cells = <0>;
226 clock-frequency = <19200000>; 226 clock-frequency = <19200000>;
227 }; 227 };
228 228
229 sleep_clk { 229 sleep_clk: sleep_clk {
230 compatible = "fixed-clock"; 230 compatible = "fixed-clock";
231 #clock-cells = <0>; 231 #clock-cells = <0>;
232 clock-frequency = <32768>; 232 clock-frequency = <32768>;
@@ -558,8 +558,10 @@
558 reg-names = "hc_mem", "core_mem"; 558 reg-names = "hc_mem", "core_mem";
559 interrupts = <0 123 0>, <0 138 0>; 559 interrupts = <0 123 0>, <0 138 0>;
560 interrupt-names = "hc_irq", "pwr_irq"; 560 interrupt-names = "hc_irq", "pwr_irq";
561 clocks = <&gcc GCC_SDCC1_APPS_CLK>, <&gcc GCC_SDCC1_AHB_CLK>; 561 clocks = <&gcc GCC_SDCC1_APPS_CLK>,
562 clock-names = "core", "iface"; 562 <&gcc GCC_SDCC1_AHB_CLK>,
563 <&xo_board>;
564 clock-names = "core", "iface", "xo";
563 status = "disabled"; 565 status = "disabled";
564 }; 566 };
565 567
@@ -569,8 +571,10 @@
569 reg-names = "hc_mem", "core_mem"; 571 reg-names = "hc_mem", "core_mem";
570 interrupts = <0 125 0>, <0 221 0>; 572 interrupts = <0 125 0>, <0 221 0>;
571 interrupt-names = "hc_irq", "pwr_irq"; 573 interrupt-names = "hc_irq", "pwr_irq";
572 clocks = <&gcc GCC_SDCC2_APPS_CLK>, <&gcc GCC_SDCC2_AHB_CLK>; 574 clocks = <&gcc GCC_SDCC2_APPS_CLK>,
573 clock-names = "core", "iface"; 575 <&gcc GCC_SDCC2_AHB_CLK>,
576 <&xo_board>;
577 clock-names = "core", "iface", "xo";
574 status = "disabled"; 578 status = "disabled";
575 }; 579 };
576 580
diff --git a/arch/arm/boot/dts/r7s72100-rskrza1.dts b/arch/arm/boot/dts/r7s72100-rskrza1.dts
index e5dea5bb4032..dd4418195ca6 100644
--- a/arch/arm/boot/dts/r7s72100-rskrza1.dts
+++ b/arch/arm/boot/dts/r7s72100-rskrza1.dts
@@ -56,6 +56,11 @@
56 }; 56 };
57}; 57};
58 58
59&sdhi1 {
60 bus-width = <4>;
61 status = "okay";
62};
63
59&scif2 { 64&scif2 {
60 status = "okay"; 65 status = "okay";
61}; 66};
diff --git a/arch/arm/boot/dts/r7s72100.dtsi b/arch/arm/boot/dts/r7s72100.dtsi
index fb9ef9ca120e..3dd427d68c83 100644
--- a/arch/arm/boot/dts/r7s72100.dtsi
+++ b/arch/arm/boot/dts/r7s72100.dtsi
@@ -117,6 +117,15 @@
117 clock-output-names = "ether"; 117 clock-output-names = "ether";
118 }; 118 };
119 119
120 mstp8_clks: mstp8_clks@fcfe0434 {
121 #clock-cells = <1>;
122 compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
123 reg = <0xfcfe0434 4>;
124 clocks = <&p1_clk>;
125 clock-indices = <R7S72100_CLK_MMCIF>;
126 clock-output-names = "mmcif";
127 };
128
120 mstp9_clks: mstp9_clks@fcfe0438 { 129 mstp9_clks: mstp9_clks@fcfe0438 {
121 #clock-cells = <1>; 130 #clock-cells = <1>;
122 compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks"; 131 compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
@@ -140,6 +149,14 @@
140 >; 149 >;
141 clock-output-names = "spi0", "spi1", "spi2", "spi3", "spi4"; 150 clock-output-names = "spi0", "spi1", "spi2", "spi3", "spi4";
142 }; 151 };
152 mstp12_clks: mstp12_clks@fcfe0444 {
153 #clock-cells = <1>;
154 compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
155 reg = <0xfcfe0444 4>;
156 clocks = <&p1_clk>, <&p1_clk>;
157 clock-indices = <R7S72100_CLK_SDHI1 R7S72100_CLK_SDHI0>;
158 clock-output-names = "sdhi1", "sdhi0";
159 };
143 }; 160 };
144 161
145 cpus { 162 cpus {
@@ -441,4 +458,42 @@
441 #size-cells = <0>; 458 #size-cells = <0>;
442 status = "disabled"; 459 status = "disabled";
443 }; 460 };
461
462 mmcif: mmc@e804c800 {
463 compatible = "renesas,mmcif-r7s72100", "renesas,sh-mmcif";
464 reg = <0xe804c800 0x80>;
465 interrupts = <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH
466 GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH
467 GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>;
468 clocks = <&mstp8_clks R7S72100_CLK_MMCIF>;
469 reg-io-width = <4>;
470 bus-width = <8>;
471 status = "disabled";
472 };
473
474 sdhi0: sd@e804e000 {
475 compatible = "renesas,sdhi-r7s72100";
476 reg = <0xe804e000 0x100>;
477 interrupts = <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH
478 GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH
479 GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
480
481 clocks = <&mstp12_clks R7S72100_CLK_SDHI0>;
482 cap-sd-highspeed;
483 cap-sdio-irq;
484 status = "disabled";
485 };
486
487 sdhi1: sd@e804e800 {
488 compatible = "renesas,sdhi-r7s72100";
489 reg = <0xe804e800 0x100>;
490 interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH
491 GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH
492 GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>;
493
494 clocks = <&mstp12_clks R7S72100_CLK_SDHI1>;
495 cap-sd-highspeed;
496 cap-sdio-irq;
497 status = "disabled";
498 };
444}; 499};
diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi
index ca8672778fe0..53183ffe04c1 100644
--- a/arch/arm/boot/dts/r8a73a4.dtsi
+++ b/arch/arm/boot/dts/r8a73a4.dtsi
@@ -751,6 +751,11 @@
751 }; 751 };
752 }; 752 };
753 753
754 prr: chipid@ff000044 {
755 compatible = "renesas,prr";
756 reg = <0 0xff000044 0 4>;
757 };
758
754 sysc: system-controller@e6180000 { 759 sysc: system-controller@e6180000 {
755 compatible = "renesas,sysc-r8a73a4", "renesas,sysc-rmobile"; 760 compatible = "renesas,sysc-r8a73a4", "renesas,sysc-rmobile";
756 reg = <0 0xe6180000 0 0x8000>, <0 0xe6188000 0 0x8000>; 761 reg = <0 0xe6180000 0 0x8000>, <0 0xe6188000 0 0x8000>;
diff --git a/arch/arm/boot/dts/r8a7740.dtsi b/arch/arm/boot/dts/r8a7740.dtsi
index 159e04eb1b9e..34159a8349de 100644
--- a/arch/arm/boot/dts/r8a7740.dtsi
+++ b/arch/arm/boot/dts/r8a7740.dtsi
@@ -8,8 +8,6 @@
8 * kind, whether express or implied. 8 * kind, whether express or implied.
9 */ 9 */
10 10
11/include/ "skeleton.dtsi"
12
13#include <dt-bindings/clock/r8a7740-clock.h> 11#include <dt-bindings/clock/r8a7740-clock.h>
14#include <dt-bindings/interrupt-controller/arm-gic.h> 12#include <dt-bindings/interrupt-controller/arm-gic.h>
15#include <dt-bindings/interrupt-controller/irq.h> 13#include <dt-bindings/interrupt-controller/irq.h>
@@ -17,6 +15,8 @@
17/ { 15/ {
18 compatible = "renesas,r8a7740"; 16 compatible = "renesas,r8a7740";
19 interrupt-parent = <&gic>; 17 interrupt-parent = <&gic>;
18 #address-cells = <1>;
19 #size-cells = <1>;
20 20
21 cpus { 21 cpus {
22 #address-cells = <1>; 22 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/r8a7743-sk-rzg1m.dts b/arch/arm/boot/dts/r8a7743-sk-rzg1m.dts
new file mode 100644
index 000000000000..3a22538208f2
--- /dev/null
+++ b/arch/arm/boot/dts/r8a7743-sk-rzg1m.dts
@@ -0,0 +1,57 @@
1/*
2 * Device Tree Source for the SK-RZG1M board
3 *
4 * Copyright (C) 2016 Cogent Embedded, Inc.
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 */
10
11/dts-v1/;
12#include "r8a7743.dtsi"
13
14/ {
15 model = "SK-RZG1M";
16 compatible = "renesas,sk-rzg1m", "renesas,r8a7743";
17
18 aliases {
19 serial0 = &scif0;
20 };
21
22 chosen {
23 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
24 stdout-path = "serial0:115200n8";
25 };
26
27 memory@40000000 {
28 device_type = "memory";
29 reg = <0 0x40000000 0 0x40000000>;
30 };
31
32 memory@200000000 {
33 device_type = "memory";
34 reg = <2 0x00000000 0 0x40000000>;
35 };
36};
37
38&extal_clk {
39 clock-frequency = <20000000>;
40};
41
42&scif0 {
43 status = "okay";
44};
45
46&ether {
47 phy-handle = <&phy1>;
48 renesas,ether-link-active-low;
49 status = "okay";
50
51 phy1: ethernet-phy@1 {
52 reg = <1>;
53 interrupt-parent = <&irqc>;
54 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
55 micrel,led-mode = <1>;
56 };
57};
diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi
new file mode 100644
index 000000000000..216cb1f37f87
--- /dev/null
+++ b/arch/arm/boot/dts/r8a7743.dtsi
@@ -0,0 +1,476 @@
1/*
2 * Device Tree Source for the r8a7743 SoC
3 *
4 * Copyright (C) 2016 Cogent Embedded Inc.
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 */
10
11#include <dt-bindings/interrupt-controller/irq.h>
12#include <dt-bindings/interrupt-controller/arm-gic.h>
13#include <dt-bindings/clock/r8a7743-cpg-mssr.h>
14#include <dt-bindings/power/r8a7743-sysc.h>
15
16/ {
17 compatible = "renesas,r8a7743";
18 #address-cells = <2>;
19 #size-cells = <2>;
20
21 cpus {
22 #address-cells = <1>;
23 #size-cells = <0>;
24
25 cpu0: cpu@0 {
26 device_type = "cpu";
27 compatible = "arm,cortex-a15";
28 reg = <0>;
29 clock-frequency = <1500000000>;
30 clocks = <&cpg CPG_CORE R8A7743_CLK_Z>;
31 power-domains = <&sysc R8A7743_PD_CA15_CPU0>;
32 next-level-cache = <&L2_CA15>;
33 };
34
35 L2_CA15: cache-controller@0 {
36 compatible = "cache";
37 reg = <0>;
38 cache-unified;
39 cache-level = <2>;
40 power-domains = <&sysc R8A7743_PD_CA15_SCU>;
41 };
42 };
43
44 soc {
45 compatible = "simple-bus";
46 interrupt-parent = <&gic>;
47
48 #address-cells = <2>;
49 #size-cells = <2>;
50 ranges;
51
52 gic: interrupt-controller@f1001000 {
53 compatible = "arm,gic-400";
54 #interrupt-cells = <3>;
55 #address-cells = <0>;
56 interrupt-controller;
57 reg = <0 0xf1001000 0 0x1000>,
58 <0 0xf1002000 0 0x1000>,
59 <0 0xf1004000 0 0x2000>,
60 <0 0xf1006000 0 0x2000>;
61 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) |
62 IRQ_TYPE_LEVEL_HIGH)>;
63 };
64
65 irqc: interrupt-controller@e61c0000 {
66 compatible = "renesas,irqc-r8a7743", "renesas,irqc";
67 #interrupt-cells = <2>;
68 interrupt-controller;
69 reg = <0 0xe61c0000 0 0x200>;
70 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
71 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
72 <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
73 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
74 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
75 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
76 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
77 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
78 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
79 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
80 clocks = <&cpg CPG_MOD 407>;
81 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
82 };
83
84 timer {
85 compatible = "arm,armv7-timer";
86 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
87 IRQ_TYPE_LEVEL_LOW)>,
88 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) |
89 IRQ_TYPE_LEVEL_LOW)>,
90 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) |
91 IRQ_TYPE_LEVEL_LOW)>,
92 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) |
93 IRQ_TYPE_LEVEL_LOW)>;
94 };
95
96 cpg: clock-controller@e6150000 {
97 compatible = "renesas,r8a7743-cpg-mssr";
98 reg = <0 0xe6150000 0 0x1000>;
99 clocks = <&extal_clk>, <&usb_extal_clk>;
100 clock-names = "extal", "usb_extal";
101 #clock-cells = <2>;
102 #power-domain-cells = <0>;
103 };
104
105 sysc: system-controller@e6180000 {
106 compatible = "renesas,r8a7743-sysc";
107 reg = <0 0xe6180000 0 0x200>;
108 #power-domain-cells = <1>;
109 };
110
111 rst: reset-controller@e6160000 {
112 compatible = "renesas,r8a7743-rst";
113 reg = <0 0xe6160000 0 0x100>;
114 };
115
116 dmac0: dma-controller@e6700000 {
117 compatible = "renesas,dmac-r8a7743",
118 "renesas,rcar-dmac";
119 reg = <0 0xe6700000 0 0x20000>;
120 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH
121 GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH
122 GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH
123 GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH
124 GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH
125 GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH
126 GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH
127 GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH
128 GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH
129 GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH
130 GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH
131 GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH
132 GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH
133 GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH
134 GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH
135 GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>;
136 interrupt-names = "error",
137 "ch0", "ch1", "ch2", "ch3",
138 "ch4", "ch5", "ch6", "ch7",
139 "ch8", "ch9", "ch10", "ch11",
140 "ch12", "ch13", "ch14";
141 clocks = <&cpg CPG_MOD 219>;
142 clock-names = "fck";
143 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
144 #dma-cells = <1>;
145 dma-channels = <15>;
146 };
147
148 dmac1: dma-controller@e6720000 {
149 compatible = "renesas,dmac-r8a7743",
150 "renesas,rcar-dmac";
151 reg = <0 0xe6720000 0 0x20000>;
152 interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH
153 GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH
154 GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH
155 GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH
156 GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH
157 GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH
158 GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH
159 GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH
160 GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH
161 GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH
162 GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH
163 GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH
164 GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH
165 GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH
166 GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH
167 GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>;
168 interrupt-names = "error",
169 "ch0", "ch1", "ch2", "ch3",
170 "ch4", "ch5", "ch6", "ch7",
171 "ch8", "ch9", "ch10", "ch11",
172 "ch12", "ch13", "ch14";
173 clocks = <&cpg CPG_MOD 218>;
174 clock-names = "fck";
175 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
176 #dma-cells = <1>;
177 dma-channels = <15>;
178 };
179
180 scifa0: serial@e6c40000 {
181 compatible = "renesas,scifa-r8a7743",
182 "renesas,rcar-gen2-scifa", "renesas,scifa";
183 reg = <0 0xe6c40000 0 0x40>;
184 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
185 clocks = <&cpg CPG_MOD 204>;
186 clock-names = "fck";
187 dmas = <&dmac0 0x21>, <&dmac0 0x22>,
188 <&dmac1 0x21>, <&dmac1 0x22>;
189 dma-names = "tx", "rx", "tx", "rx";
190 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
191 status = "disabled";
192 };
193
194 scifa1: serial@e6c50000 {
195 compatible = "renesas,scifa-r8a7743",
196 "renesas,rcar-gen2-scifa", "renesas,scifa";
197 reg = <0 0xe6c50000 0 0x40>;
198 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
199 clocks = <&cpg CPG_MOD 203>;
200 clock-names = "fck";
201 dmas = <&dmac0 0x25>, <&dmac0 0x26>,
202 <&dmac1 0x25>, <&dmac1 0x26>;
203 dma-names = "tx", "rx", "tx", "rx";
204 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
205 status = "disabled";
206 };
207
208 scifa2: serial@e6c60000 {
209 compatible = "renesas,scifa-r8a7743",
210 "renesas,rcar-gen2-scifa", "renesas,scifa";
211 reg = <0 0xe6c60000 0 0x40>;
212 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
213 clocks = <&cpg CPG_MOD 202>;
214 clock-names = "fck";
215 dmas = <&dmac0 0x27>, <&dmac0 0x28>,
216 <&dmac1 0x27>, <&dmac1 0x28>;
217 dma-names = "tx", "rx", "tx", "rx";
218 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
219 status = "disabled";
220 };
221
222 scifa3: serial@e6c70000 {
223 compatible = "renesas,scifa-r8a7743",
224 "renesas,rcar-gen2-scifa", "renesas,scifa";
225 reg = <0 0xe6c70000 0 0x40>;
226 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
227 clocks = <&cpg CPG_MOD 1106>;
228 clock-names = "fck";
229 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>,
230 <&dmac1 0x1b>, <&dmac1 0x1c>;
231 dma-names = "tx", "rx", "tx", "rx";
232 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
233 status = "disabled";
234 };
235
236 scifa4: serial@e6c78000 {
237 compatible = "renesas,scifa-r8a7743",
238 "renesas,rcar-gen2-scifa", "renesas,scifa";
239 reg = <0 0xe6c78000 0 0x40>;
240 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
241 clocks = <&cpg CPG_MOD 1107>;
242 clock-names = "fck";
243 dmas = <&dmac0 0x1f>, <&dmac0 0x20>,
244 <&dmac1 0x1f>, <&dmac1 0x20>;
245 dma-names = "tx", "rx", "tx", "rx";
246 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
247 status = "disabled";
248 };
249
250 scifa5: serial@e6c80000 {
251 compatible = "renesas,scifa-r8a7743",
252 "renesas,rcar-gen2-scifa", "renesas,scifa";
253 reg = <0 0xe6c80000 0 0x40>;
254 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
255 clocks = <&cpg CPG_MOD 1108>;
256 clock-names = "fck";
257 dmas = <&dmac0 0x23>, <&dmac0 0x24>,
258 <&dmac1 0x23>, <&dmac1 0x24>;
259 dma-names = "tx", "rx", "tx", "rx";
260 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
261 status = "disabled";
262 };
263
264 scifb0: serial@e6c20000 {
265 compatible = "renesas,scifb-r8a7743",
266 "renesas,rcar-gen2-scifb", "renesas,scifb";
267 reg = <0 0xe6c20000 0 0x100>;
268 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
269 clocks = <&cpg CPG_MOD 206>;
270 clock-names = "fck";
271 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>,
272 <&dmac1 0x3d>, <&dmac1 0x3e>;
273 dma-names = "tx", "rx", "tx", "rx";
274 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
275 status = "disabled";
276 };
277
278 scifb1: serial@e6c30000 {
279 compatible = "renesas,scifb-r8a7743",
280 "renesas,rcar-gen2-scifb", "renesas,scifb";
281 reg = <0 0xe6c30000 0 0x100>;
282 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
283 clocks = <&cpg CPG_MOD 207>;
284 clock-names = "fck";
285 dmas = <&dmac0 0x19>, <&dmac0 0x1a>,
286 <&dmac1 0x19>, <&dmac1 0x1a>;
287 dma-names = "tx", "rx", "tx", "rx";
288 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
289 status = "disabled";
290 };
291
292 scifb2: serial@e6ce0000 {
293 compatible = "renesas,scifb-r8a7743",
294 "renesas,rcar-gen2-scifb", "renesas,scifb";
295 reg = <0 0xe6ce0000 0 0x100>;
296 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
297 clocks = <&cpg CPG_MOD 216>;
298 clock-names = "fck";
299 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>,
300 <&dmac1 0x1d>, <&dmac1 0x1e>;
301 dma-names = "tx", "rx", "tx", "rx";
302 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
303 status = "disabled";
304 };
305
306 scif0: serial@e6e60000 {
307 compatible = "renesas,scif-r8a7743",
308 "renesas,rcar-gen2-scif", "renesas,scif";
309 reg = <0 0xe6e60000 0 0x40>;
310 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
311 clocks = <&cpg CPG_MOD 721>,
312 <&cpg CPG_CORE R8A7743_CLK_ZS>, <&scif_clk>;
313 clock-names = "fck", "brg_int", "scif_clk";
314 dmas = <&dmac0 0x29>, <&dmac0 0x2a>,
315 <&dmac1 0x29>, <&dmac1 0x2a>;
316 dma-names = "tx", "rx", "tx", "rx";
317 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
318 status = "disabled";
319 };
320
321 scif1: serial@e6e68000 {
322 compatible = "renesas,scif-r8a7743",
323 "renesas,rcar-gen2-scif", "renesas,scif";
324 reg = <0 0xe6e68000 0 0x40>;
325 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
326 clocks = <&cpg CPG_MOD 720>,
327 <&cpg CPG_CORE R8A7743_CLK_ZS>, <&scif_clk>;
328 clock-names = "fck", "brg_int", "scif_clk";
329 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>,
330 <&dmac1 0x2d>, <&dmac1 0x2e>;
331 dma-names = "tx", "rx", "tx", "rx";
332 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
333 status = "disabled";
334 };
335
336 scif2: serial@e6e58000 {
337 compatible = "renesas,scif-r8a7743",
338 "renesas,rcar-gen2-scif", "renesas,scif";
339 reg = <0 0xe6e58000 0 0x40>;
340 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
341 clocks = <&cpg CPG_MOD 719>,
342 <&cpg CPG_CORE R8A7743_CLK_ZS>, <&scif_clk>;
343 clock-names = "fck", "brg_int", "scif_clk";
344 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>,
345 <&dmac1 0x2b>, <&dmac1 0x2c>;
346 dma-names = "tx", "rx", "tx", "rx";
347 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
348 status = "disabled";
349 };
350
351 scif3: serial@e6ea8000 {
352 compatible = "renesas,scif-r8a7743",
353 "renesas,rcar-gen2-scif", "renesas,scif";
354 reg = <0 0xe6ea8000 0 0x40>;
355 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
356 clocks = <&cpg CPG_MOD 718>,
357 <&cpg CPG_CORE R8A7743_CLK_ZS>, <&scif_clk>;
358 clock-names = "fck", "brg_int", "scif_clk";
359 dmas = <&dmac0 0x2f>, <&dmac0 0x30>,
360 <&dmac1 0x2f>, <&dmac1 0x30>;
361 dma-names = "tx", "rx", "tx", "rx";
362 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
363 status = "disabled";
364 };
365
366 scif4: serial@e6ee0000 {
367 compatible = "renesas,scif-r8a7743",
368 "renesas,rcar-gen2-scif", "renesas,scif";
369 reg = <0 0xe6ee0000 0 0x40>;
370 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
371 clocks = <&cpg CPG_MOD 715>,
372 <&cpg CPG_CORE R8A7743_CLK_ZS>, <&scif_clk>;
373 clock-names = "fck", "brg_int", "scif_clk";
374 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>,
375 <&dmac1 0xfb>, <&dmac1 0xfc>;
376 dma-names = "tx", "rx", "tx", "rx";
377 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
378 status = "disabled";
379 };
380
381 scif5: serial@e6ee8000 {
382 compatible = "renesas,scif-r8a7743",
383 "renesas,rcar-gen2-scif", "renesas,scif";
384 reg = <0 0xe6ee8000 0 0x40>;
385 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
386 clocks = <&cpg CPG_MOD 714>,
387 <&cpg CPG_CORE R8A7743_CLK_ZS>, <&scif_clk>;
388 clock-names = "fck", "brg_int", "scif_clk";
389 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>,
390 <&dmac1 0xfd>, <&dmac1 0xfe>;
391 dma-names = "tx", "rx", "tx", "rx";
392 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
393 status = "disabled";
394 };
395
396 hscif0: serial@e62c0000 {
397 compatible = "renesas,hscif-r8a7743",
398 "renesas,rcar-gen2-hscif", "renesas,hscif";
399 reg = <0 0xe62c0000 0 0x60>;
400 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
401 clocks = <&cpg CPG_MOD 717>,
402 <&cpg CPG_CORE R8A7743_CLK_ZS>, <&scif_clk>;
403 clock-names = "fck", "brg_int", "scif_clk";
404 dmas = <&dmac0 0x39>, <&dmac0 0x3a>,
405 <&dmac1 0x39>, <&dmac1 0x3a>;
406 dma-names = "tx", "rx", "tx", "rx";
407 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
408 status = "disabled";
409 };
410
411 hscif1: serial@e62c8000 {
412 compatible = "renesas,hscif-r8a7743",
413 "renesas,rcar-gen2-hscif", "renesas,hscif";
414 reg = <0 0xe62c8000 0 0x60>;
415 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
416 clocks = <&cpg CPG_MOD 716>,
417 <&cpg CPG_CORE R8A7743_CLK_ZS>, <&scif_clk>;
418 clock-names = "fck", "brg_int", "scif_clk";
419 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>,
420 <&dmac1 0x4d>, <&dmac1 0x4e>;
421 dma-names = "tx", "rx", "tx", "rx";
422 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
423 status = "disabled";
424 };
425
426 hscif2: serial@e62d0000 {
427 compatible = "renesas,hscif-r8a7743",
428 "renesas,rcar-gen2-hscif", "renesas,hscif";
429 reg = <0 0xe62d0000 0 0x60>;
430 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
431 clocks = <&cpg CPG_MOD 713>,
432 <&cpg CPG_CORE R8A7743_CLK_ZS>, <&scif_clk>;
433 clock-names = "fck", "brg_int", "scif_clk";
434 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>,
435 <&dmac1 0x3b>, <&dmac1 0x3c>;
436 dma-names = "tx", "rx", "tx", "rx";
437 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
438 status = "disabled";
439 };
440
441 ether: ethernet@ee700000 {
442 compatible = "renesas,ether-r8a7743";
443 reg = <0 0xee700000 0 0x400>;
444 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
445 clocks = <&cpg CPG_MOD 813>;
446 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
447 phy-mode = "rmii";
448 #address-cells = <1>;
449 #size-cells = <0>;
450 status = "disabled";
451 };
452 };
453
454 /* External root clock */
455 extal_clk: extal {
456 compatible = "fixed-clock";
457 #clock-cells = <0>;
458 /* This value must be overridden by the board. */
459 clock-frequency = <0>;
460 };
461
462 /* External USB clock - can be overridden by the board */
463 usb_extal_clk: usb_extal {
464 compatible = "fixed-clock";
465 #clock-cells = <0>;
466 clock-frequency = <48000000>;
467 };
468
469 /* External SCIF clock */
470 scif_clk: scif {
471 compatible = "fixed-clock";
472 #clock-cells = <0>;
473 /* This value must be overridden by the board. */
474 clock-frequency = <0>;
475 };
476};
diff --git a/arch/arm/boot/dts/r8a7745-sk-rzg1e.dts b/arch/arm/boot/dts/r8a7745-sk-rzg1e.dts
new file mode 100644
index 000000000000..97840b340197
--- /dev/null
+++ b/arch/arm/boot/dts/r8a7745-sk-rzg1e.dts
@@ -0,0 +1,52 @@
1/*
2 * Device Tree Source for the SK-RZG1E board
3 *
4 * Copyright (C) 2016 Cogent Embedded, Inc.
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 */
10
11/dts-v1/;
12#include "r8a7745.dtsi"
13
14/ {
15 model = "SK-RZG1E";
16 compatible = "renesas,sk-rzg1e", "renesas,r8a7745";
17
18 aliases {
19 serial0 = &scif2;
20 };
21
22 chosen {
23 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
24 stdout-path = "serial0:115200n8";
25 };
26
27 memory@40000000 {
28 device_type = "memory";
29 reg = <0 0x40000000 0 0x40000000>;
30 };
31};
32
33&extal_clk {
34 clock-frequency = <20000000>;
35};
36
37&scif2 {
38 status = "okay";
39};
40
41&ether {
42 phy-handle = <&phy1>;
43 renesas,ether-link-active-low;
44 status = "okay";
45
46 phy1: ethernet-phy@1 {
47 reg = <1>;
48 interrupt-parent = <&irqc>;
49 interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
50 micrel,led-mode = <1>;
51 };
52};
diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi
new file mode 100644
index 000000000000..0b2e2f37150f
--- /dev/null
+++ b/arch/arm/boot/dts/r8a7745.dtsi
@@ -0,0 +1,476 @@
1/*
2 * Device Tree Source for the r8a7745 SoC
3 *
4 * Copyright (C) 2016 Cogent Embedded Inc.
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 */
10
11#include <dt-bindings/interrupt-controller/irq.h>
12#include <dt-bindings/interrupt-controller/arm-gic.h>
13#include <dt-bindings/clock/r8a7745-cpg-mssr.h>
14#include <dt-bindings/power/r8a7745-sysc.h>
15
16/ {
17 compatible = "renesas,r8a7745";
18 #address-cells = <2>;
19 #size-cells = <2>;
20
21 cpus {
22 #address-cells = <1>;
23 #size-cells = <0>;
24
25 cpu0: cpu@0 {
26 device_type = "cpu";
27 compatible = "arm,cortex-a7";
28 reg = <0>;
29 clock-frequency = <1000000000>;
30 clocks = <&cpg CPG_CORE R8A7745_CLK_Z2>;
31 power-domains = <&sysc R8A7745_PD_CA7_CPU0>;
32 next-level-cache = <&L2_CA7>;
33 };
34
35 L2_CA7: cache-controller@0 {
36 compatible = "cache";
37 reg = <0>;
38 cache-unified;
39 cache-level = <2>;
40 power-domains = <&sysc R8A7745_PD_CA7_SCU>;
41 };
42 };
43
44 soc {
45 compatible = "simple-bus";
46 interrupt-parent = <&gic>;
47
48 #address-cells = <2>;
49 #size-cells = <2>;
50 ranges;
51
52 gic: interrupt-controller@f1001000 {
53 compatible = "arm,gic-400";
54 #interrupt-cells = <3>;
55 #address-cells = <0>;
56 interrupt-controller;
57 reg = <0 0xf1001000 0 0x1000>,
58 <0 0xf1002000 0 0x1000>,
59 <0 0xf1004000 0 0x2000>,
60 <0 0xf1006000 0 0x2000>;
61 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) |
62 IRQ_TYPE_LEVEL_HIGH)>;
63 };
64
65 irqc: interrupt-controller@e61c0000 {
66 compatible = "renesas,irqc-r8a7745", "renesas,irqc";
67 #interrupt-cells = <2>;
68 interrupt-controller;
69 reg = <0 0xe61c0000 0 0x200>;
70 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
71 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
72 <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
73 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
74 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
75 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
76 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
77 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
78 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
79 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
80 clocks = <&cpg CPG_MOD 407>;
81 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
82 };
83
84 timer {
85 compatible = "arm,armv7-timer";
86 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
87 IRQ_TYPE_LEVEL_LOW)>,
88 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) |
89 IRQ_TYPE_LEVEL_LOW)>,
90 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) |
91 IRQ_TYPE_LEVEL_LOW)>,
92 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) |
93 IRQ_TYPE_LEVEL_LOW)>;
94 };
95
96 cpg: clock-controller@e6150000 {
97 compatible = "renesas,r8a7745-cpg-mssr";
98 reg = <0 0xe6150000 0 0x1000>;
99 clocks = <&extal_clk>, <&usb_extal_clk>;
100 clock-names = "extal", "usb_extal";
101 #clock-cells = <2>;
102 #power-domain-cells = <0>;
103 };
104
105 sysc: system-controller@e6180000 {
106 compatible = "renesas,r8a7745-sysc";
107 reg = <0 0xe6180000 0 0x200>;
108 #power-domain-cells = <1>;
109 };
110
111 rst: reset-controller@e6160000 {
112 compatible = "renesas,r8a7745-rst";
113 reg = <0 0xe6160000 0 0x100>;
114 };
115
116 dmac0: dma-controller@e6700000 {
117 compatible = "renesas,dmac-r8a7745",
118 "renesas,rcar-dmac";
119 reg = <0 0xe6700000 0 0x20000>;
120 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH
121 GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH
122 GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH
123 GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH
124 GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH
125 GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH
126 GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH
127 GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH
128 GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH
129 GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH
130 GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH
131 GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH
132 GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH
133 GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH
134 GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH
135 GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>;
136 interrupt-names = "error",
137 "ch0", "ch1", "ch2", "ch3",
138 "ch4", "ch5", "ch6", "ch7",
139 "ch8", "ch9", "ch10", "ch11",
140 "ch12", "ch13", "ch14";
141 clocks = <&cpg CPG_MOD 219>;
142 clock-names = "fck";
143 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
144 #dma-cells = <1>;
145 dma-channels = <15>;
146 };
147
148 dmac1: dma-controller@e6720000 {
149 compatible = "renesas,dmac-r8a7745",
150 "renesas,rcar-dmac";
151 reg = <0 0xe6720000 0 0x20000>;
152 interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH
153 GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH
154 GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH
155 GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH
156 GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH
157 GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH
158 GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH
159 GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH
160 GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH
161 GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH
162 GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH
163 GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH
164 GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH
165 GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH
166 GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH
167 GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>;
168 interrupt-names = "error",
169 "ch0", "ch1", "ch2", "ch3",
170 "ch4", "ch5", "ch6", "ch7",
171 "ch8", "ch9", "ch10", "ch11",
172 "ch12", "ch13", "ch14";
173 clocks = <&cpg CPG_MOD 218>;
174 clock-names = "fck";
175 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
176 #dma-cells = <1>;
177 dma-channels = <15>;
178 };
179
180 scifa0: serial@e6c40000 {
181 compatible = "renesas,scifa-r8a7745",
182 "renesas,rcar-gen2-scifa", "renesas,scifa";
183 reg = <0 0xe6c40000 0 0x40>;
184 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
185 clocks = <&cpg CPG_MOD 204>;
186 clock-names = "fck";
187 dmas = <&dmac0 0x21>, <&dmac0 0x22>,
188 <&dmac1 0x21>, <&dmac1 0x22>;
189 dma-names = "tx", "rx", "tx", "rx";
190 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
191 status = "disabled";
192 };
193
194 scifa1: serial@e6c50000 {
195 compatible = "renesas,scifa-r8a7745",
196 "renesas,rcar-gen2-scifa", "renesas,scifa";
197 reg = <0 0xe6c50000 0 0x40>;
198 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
199 clocks = <&cpg CPG_MOD 203>;
200 clock-names = "fck";
201 dmas = <&dmac0 0x25>, <&dmac0 0x26>,
202 <&dmac1 0x25>, <&dmac1 0x26>;
203 dma-names = "tx", "rx", "tx", "rx";
204 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
205 status = "disabled";
206 };
207
208 scifa2: serial@e6c60000 {
209 compatible = "renesas,scifa-r8a7745",
210 "renesas,rcar-gen2-scifa", "renesas,scifa";
211 reg = <0 0xe6c60000 0 0x40>;
212 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
213 clocks = <&cpg CPG_MOD 202>;
214 clock-names = "fck";
215 dmas = <&dmac0 0x27>, <&dmac0 0x28>,
216 <&dmac1 0x27>, <&dmac1 0x28>;
217 dma-names = "tx", "rx", "tx", "rx";
218 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
219 status = "disabled";
220 };
221
222 scifa3: serial@e6c70000 {
223 compatible = "renesas,scifa-r8a7745",
224 "renesas,rcar-gen2-scifa", "renesas,scifa";
225 reg = <0 0xe6c70000 0 0x40>;
226 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
227 clocks = <&cpg CPG_MOD 1106>;
228 clock-names = "fck";
229 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>,
230 <&dmac1 0x1b>, <&dmac1 0x1c>;
231 dma-names = "tx", "rx", "tx", "rx";
232 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
233 status = "disabled";
234 };
235
236 scifa4: serial@e6c78000 {
237 compatible = "renesas,scifa-r8a7745",
238 "renesas,rcar-gen2-scifa", "renesas,scifa";
239 reg = <0 0xe6c78000 0 0x40>;
240 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
241 clocks = <&cpg CPG_MOD 1107>;
242 clock-names = "fck";
243 dmas = <&dmac0 0x1f>, <&dmac0 0x20>,
244 <&dmac1 0x1f>, <&dmac1 0x20>;
245 dma-names = "tx", "rx", "tx", "rx";
246 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
247 status = "disabled";
248 };
249
250 scifa5: serial@e6c80000 {
251 compatible = "renesas,scifa-r8a7745",
252 "renesas,rcar-gen2-scifa", "renesas,scifa";
253 reg = <0 0xe6c80000 0 0x40>;
254 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
255 clocks = <&cpg CPG_MOD 1108>;
256 clock-names = "fck";
257 dmas = <&dmac0 0x23>, <&dmac0 0x24>,
258 <&dmac1 0x23>, <&dmac1 0x24>;
259 dma-names = "tx", "rx", "tx", "rx";
260 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
261 status = "disabled";
262 };
263
264 scifb0: serial@e6c20000 {
265 compatible = "renesas,scifb-r8a7745",
266 "renesas,rcar-gen2-scifb", "renesas,scifb";
267 reg = <0 0xe6c20000 0 0x100>;
268 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
269 clocks = <&cpg CPG_MOD 206>;
270 clock-names = "fck";
271 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>,
272 <&dmac1 0x3d>, <&dmac1 0x3e>;
273 dma-names = "tx", "rx", "tx", "rx";
274 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
275 status = "disabled";
276 };
277
278 scifb1: serial@e6c30000 {
279 compatible = "renesas,scifb-r8a7745",
280 "renesas,rcar-gen2-scifb", "renesas,scifb";
281 reg = <0 0xe6c30000 0 0x100>;
282 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
283 clocks = <&cpg CPG_MOD 207>;
284 clock-names = "fck";
285 dmas = <&dmac0 0x19>, <&dmac0 0x1a>,
286 <&dmac1 0x19>, <&dmac1 0x1a>;
287 dma-names = "tx", "rx", "tx", "rx";
288 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
289 status = "disabled";
290 };
291
292 scifb2: serial@e6ce0000 {
293 compatible = "renesas,scifb-r8a7745",
294 "renesas,rcar-gen2-scifb", "renesas,scifb";
295 reg = <0 0xe6ce0000 0 0x100>;
296 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
297 clocks = <&cpg CPG_MOD 216>;
298 clock-names = "fck";
299 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>,
300 <&dmac1 0x1d>, <&dmac1 0x1e>;
301 dma-names = "tx", "rx", "tx", "rx";
302 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
303 status = "disabled";
304 };
305
306 scif0: serial@e6e60000 {
307 compatible = "renesas,scif-r8a7745",
308 "renesas,rcar-gen2-scif", "renesas,scif";
309 reg = <0 0xe6e60000 0 0x40>;
310 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
311 clocks = <&cpg CPG_MOD 721>,
312 <&cpg CPG_CORE R8A7745_CLK_ZS>, <&scif_clk>;
313 clock-names = "fck", "brg_int", "scif_clk";
314 dmas = <&dmac0 0x29>, <&dmac0 0x2a>,
315 <&dmac1 0x29>, <&dmac1 0x2a>;
316 dma-names = "tx", "rx", "tx", "rx";
317 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
318 status = "disabled";
319 };
320
321 scif1: serial@e6e68000 {
322 compatible = "renesas,scif-r8a7745",
323 "renesas,rcar-gen2-scif", "renesas,scif";
324 reg = <0 0xe6e68000 0 0x40>;
325 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
326 clocks = <&cpg CPG_MOD 720>,
327 <&cpg CPG_CORE R8A7745_CLK_ZS>, <&scif_clk>;
328 clock-names = "fck", "brg_int", "scif_clk";
329 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>,
330 <&dmac1 0x2d>, <&dmac1 0x2e>;
331 dma-names = "tx", "rx", "tx", "rx";
332 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
333 status = "disabled";
334 };
335
336 scif2: serial@e6e58000 {
337 compatible = "renesas,scif-r8a7745",
338 "renesas,rcar-gen2-scif", "renesas,scif";
339 reg = <0 0xe6e58000 0 0x40>;
340 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
341 clocks = <&cpg CPG_MOD 719>,
342 <&cpg CPG_CORE R8A7745_CLK_ZS>, <&scif_clk>;
343 clock-names = "fck", "brg_int", "scif_clk";
344 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>,
345 <&dmac1 0x2b>, <&dmac1 0x2c>;
346 dma-names = "tx", "rx", "tx", "rx";
347 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
348 status = "disabled";
349 };
350
351 scif3: serial@e6ea8000 {
352 compatible = "renesas,scif-r8a7745",
353 "renesas,rcar-gen2-scif", "renesas,scif";
354 reg = <0 0xe6ea8000 0 0x40>;
355 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
356 clocks = <&cpg CPG_MOD 718>,
357 <&cpg CPG_CORE R8A7745_CLK_ZS>, <&scif_clk>;
358 clock-names = "fck", "brg_int", "scif_clk";
359 dmas = <&dmac0 0x2f>, <&dmac0 0x30>,
360 <&dmac1 0x2f>, <&dmac1 0x30>;
361 dma-names = "tx", "rx", "tx", "rx";
362 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
363 status = "disabled";
364 };
365
366 scif4: serial@e6ee0000 {
367 compatible = "renesas,scif-r8a7745",
368 "renesas,rcar-gen2-scif", "renesas,scif";
369 reg = <0 0xe6ee0000 0 0x40>;
370 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
371 clocks = <&cpg CPG_MOD 715>,
372 <&cpg CPG_CORE R8A7745_CLK_ZS>, <&scif_clk>;
373 clock-names = "fck", "brg_int", "scif_clk";
374 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>,
375 <&dmac1 0xfb>, <&dmac1 0xfc>;
376 dma-names = "tx", "rx", "tx", "rx";
377 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
378 status = "disabled";
379 };
380
381 scif5: serial@e6ee8000 {
382 compatible = "renesas,scif-r8a7745",
383 "renesas,rcar-gen2-scif", "renesas,scif";
384 reg = <0 0xe6ee8000 0 0x40>;
385 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
386 clocks = <&cpg CPG_MOD 714>,
387 <&cpg CPG_CORE R8A7745_CLK_ZS>, <&scif_clk>;
388 clock-names = "fck", "brg_int", "scif_clk";
389 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>,
390 <&dmac1 0xfd>, <&dmac1 0xfe>;
391 dma-names = "tx", "rx", "tx", "rx";
392 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
393 status = "disabled";
394 };
395
396 hscif0: serial@e62c0000 {
397 compatible = "renesas,hscif-r8a7745",
398 "renesas,rcar-gen2-hscif", "renesas,hscif";
399 reg = <0 0xe62c0000 0 0x60>;
400 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
401 clocks = <&cpg CPG_MOD 717>,
402 <&cpg CPG_CORE R8A7745_CLK_ZS>, <&scif_clk>;
403 clock-names = "fck", "brg_int", "scif_clk";
404 dmas = <&dmac0 0x39>, <&dmac0 0x3a>,
405 <&dmac1 0x39>, <&dmac1 0x3a>;
406 dma-names = "tx", "rx", "tx", "rx";
407 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
408 status = "disabled";
409 };
410
411 hscif1: serial@e62c8000 {
412 compatible = "renesas,hscif-r8a7745",
413 "renesas,rcar-gen2-hscif", "renesas,hscif";
414 reg = <0 0xe62c8000 0 0x60>;
415 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
416 clocks = <&cpg CPG_MOD 716>,
417 <&cpg CPG_CORE R8A7745_CLK_ZS>, <&scif_clk>;
418 clock-names = "fck", "brg_int", "scif_clk";
419 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>,
420 <&dmac1 0x4d>, <&dmac1 0x4e>;
421 dma-names = "tx", "rx", "tx", "rx";
422 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
423 status = "disabled";
424 };
425
426 hscif2: serial@e62d0000 {
427 compatible = "renesas,hscif-r8a7745",
428 "renesas,rcar-gen2-hscif", "renesas,hscif";
429 reg = <0 0xe62d0000 0 0x60>;
430 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
431 clocks = <&cpg CPG_MOD 713>,
432 <&cpg CPG_CORE R8A7745_CLK_ZS>, <&scif_clk>;
433 clock-names = "fck", "brg_int", "scif_clk";
434 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>,
435 <&dmac1 0x3b>, <&dmac1 0x3c>;
436 dma-names = "tx", "rx", "tx", "rx";
437 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
438 status = "disabled";
439 };
440
441 ether: ethernet@ee700000 {
442 compatible = "renesas,ether-r8a7745";
443 reg = <0 0xee700000 0 0x400>;
444 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
445 clocks = <&cpg CPG_MOD 813>;
446 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
447 phy-mode = "rmii";
448 #address-cells = <1>;
449 #size-cells = <0>;
450 status = "disabled";
451 };
452 };
453
454 /* External root clock */
455 extal_clk: extal {
456 compatible = "fixed-clock";
457 #clock-cells = <0>;
458 /* This value must be overridden by the board. */
459 clock-frequency = <0>;
460 };
461
462 /* External USB clock - can be overridden by the board */
463 usb_extal_clk: usb_extal {
464 compatible = "fixed-clock";
465 #clock-cells = <0>;
466 clock-frequency = <48000000>;
467 };
468
469 /* External SCIF clock */
470 scif_clk: scif {
471 compatible = "fixed-clock";
472 #clock-cells = <0>;
473 /* This value must be overridden by the board. */
474 clock-frequency = <0>;
475 };
476};
diff --git a/arch/arm/boot/dts/r8a7778.dtsi b/arch/arm/boot/dts/r8a7778.dtsi
index 3d0a18abd408..d0db998effc8 100644
--- a/arch/arm/boot/dts/r8a7778.dtsi
+++ b/arch/arm/boot/dts/r8a7778.dtsi
@@ -14,8 +14,6 @@
14 * kind, whether express or implied. 14 * kind, whether express or implied.
15 */ 15 */
16 16
17/include/ "skeleton.dtsi"
18
19#include <dt-bindings/clock/r8a7778-clock.h> 17#include <dt-bindings/clock/r8a7778-clock.h>
20#include <dt-bindings/interrupt-controller/arm-gic.h> 18#include <dt-bindings/interrupt-controller/arm-gic.h>
21#include <dt-bindings/interrupt-controller/irq.h> 19#include <dt-bindings/interrupt-controller/irq.h>
@@ -23,6 +21,8 @@
23/ { 21/ {
24 compatible = "renesas,r8a7778"; 22 compatible = "renesas,r8a7778";
25 interrupt-parent = <&gic>; 23 interrupt-parent = <&gic>;
24 #address-cells = <1>;
25 #size-cells = <1>;
26 26
27 cpus { 27 cpus {
28 #address-cells = <1>; 28 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/r8a7779-marzen.dts b/arch/arm/boot/dts/r8a7779-marzen.dts
index 541678df90a9..676151b70185 100644
--- a/arch/arm/boot/dts/r8a7779-marzen.dts
+++ b/arch/arm/boot/dts/r8a7779-marzen.dts
@@ -170,7 +170,7 @@
170 170
171 du_pins: du { 171 du_pins: du {
172 du0 { 172 du0 {
173 groups = "du0_rgb888", "du0_sync_1", "du0_clk_out_0"; 173 groups = "du0_rgb888", "du0_sync_1", "du0_clk_out_0", "du0_clk_in";
174 function = "du0"; 174 function = "du0";
175 }; 175 };
176 du1 { 176 du1 {
diff --git a/arch/arm/boot/dts/r8a7779.dtsi b/arch/arm/boot/dts/r8a7779.dtsi
index 8cf16008a09b..55a7c1e37c57 100644
--- a/arch/arm/boot/dts/r8a7779.dtsi
+++ b/arch/arm/boot/dts/r8a7779.dtsi
@@ -9,8 +9,6 @@
9 * kind, whether express or implied. 9 * kind, whether express or implied.
10 */ 10 */
11 11
12/include/ "skeleton.dtsi"
13
14#include <dt-bindings/clock/r8a7779-clock.h> 12#include <dt-bindings/clock/r8a7779-clock.h>
15#include <dt-bindings/interrupt-controller/arm-gic.h> 13#include <dt-bindings/interrupt-controller/arm-gic.h>
16#include <dt-bindings/interrupt-controller/irq.h> 14#include <dt-bindings/interrupt-controller/irq.h>
@@ -19,6 +17,8 @@
19/ { 17/ {
20 compatible = "renesas,r8a7779"; 18 compatible = "renesas,r8a7779";
21 interrupt-parent = <&gic>; 19 interrupt-parent = <&gic>;
20 #address-cells = <1>;
21 #size-cells = <1>;
22 22
23 cpus { 23 cpus {
24 #address-cells = <1>; 24 #address-cells = <1>;
@@ -420,7 +420,7 @@
420 420
421 du: display@fff80000 { 421 du: display@fff80000 {
422 compatible = "renesas,du-r8a7779"; 422 compatible = "renesas,du-r8a7779";
423 reg = <0 0xfff80000 0 0x40000>; 423 reg = <0xfff80000 0x40000>;
424 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 424 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
425 clocks = <&mstp1_clks R8A7779_CLK_DU>; 425 clocks = <&mstp1_clks R8A7779_CLK_DU>;
426 power-domains = <&sysc R8A7779_PD_ALWAYS_ON>; 426 power-domains = <&sysc R8A7779_PD_ALWAYS_ON>;
@@ -590,6 +590,11 @@
590 }; 590 };
591 }; 591 };
592 592
593 prr: chipid@ff000044 {
594 compatible = "renesas,prr";
595 reg = <0xff000044 4>;
596 };
597
593 rst: reset-controller@ffcc0000 { 598 rst: reset-controller@ffcc0000 {
594 compatible = "renesas,r8a7779-reset-wdt"; 599 compatible = "renesas,r8a7779-reset-wdt";
595 reg = <0xffcc0000 0x48>; 600 reg = <0xffcc0000 0x48>;
diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts
index 52b56fcaddf2..bd512c86e852 100644
--- a/arch/arm/boot/dts/r8a7790-lager.dts
+++ b/arch/arm/boot/dts/r8a7790-lager.dts
@@ -50,7 +50,9 @@
50 aliases { 50 aliases {
51 serial0 = &scif0; 51 serial0 = &scif0;
52 serial1 = &scifa1; 52 serial1 = &scifa1;
53 i2c8 = "i2cexio"; 53 i2c8 = &gpioi2c1;
54 i2c10 = &i2cexio0;
55 i2c11 = &i2cexio1;
54 }; 56 };
55 57
56 chosen { 58 chosen {
@@ -231,12 +233,23 @@
231 }; 233 };
232 }; 234 };
233 235
236 hdmi-in {
237 compatible = "hdmi-connector";
238 type = "a";
239
240 port {
241 hdmi_con_in: endpoint {
242 remote-endpoint = <&adv7612_in>;
243 };
244 };
245 };
246
234 hdmi-out { 247 hdmi-out {
235 compatible = "hdmi-connector"; 248 compatible = "hdmi-connector";
236 type = "a"; 249 type = "a";
237 250
238 port { 251 port {
239 hdmi_con: endpoint { 252 hdmi_con_out: endpoint {
240 remote-endpoint = <&adv7511_out>; 253 remote-endpoint = <&adv7511_out>;
241 }; 254 };
242 }; 255 };
@@ -254,6 +267,17 @@
254 clock-frequency = <148500000>; 267 clock-frequency = <148500000>;
255 }; 268 };
256 269
270 gpioi2c1: i2c-8 {
271 #address-cells = <1>;
272 #size-cells = <0>;
273 compatible = "i2c-gpio";
274 status = "disabled";
275 gpios = <&gpio1 17 GPIO_ACTIVE_HIGH /* sda */
276 &gpio1 16 GPIO_ACTIVE_HIGH /* scl */
277 >;
278 i2c-gpio,delay-us = <5>;
279 };
280
257 /* 281 /*
258 * IIC0/I2C0 is routed to EXIO connector A, pins 114 (SCL) + 116 (SDA) only. 282 * IIC0/I2C0 is routed to EXIO connector A, pins 114 (SCL) + 116 (SDA) only.
259 * We use the I2C demuxer, so the desired IP core can be selected at runtime 283 * We use the I2C demuxer, so the desired IP core can be selected at runtime
@@ -262,11 +286,26 @@
262 * bus with IIC3 on pins 110 (SCL) + 112 (SDA), select I2C0 at runtime, and 286 * bus with IIC3 on pins 110 (SCL) + 112 (SDA), select I2C0 at runtime, and
263 * instantiate the slave device at runtime according to the documentation. 287 * instantiate the slave device at runtime according to the documentation.
264 * You can then communicate with the slave via IIC3. 288 * You can then communicate with the slave via IIC3.
289 *
290 * IIC0/I2C0 does not appear to support fallback to GPIO.
265 */ 291 */
266 i2cexio: i2c-8 { 292 i2cexio0: i2c-10 {
267 compatible = "i2c-demux-pinctrl"; 293 compatible = "i2c-demux-pinctrl";
268 i2c-parent = <&iic0>, <&i2c0>; 294 i2c-parent = <&iic0>, <&i2c0>;
269 i2c-bus-name = "i2c-exio"; 295 i2c-bus-name = "i2c-exio0";
296 #address-cells = <1>;
297 #size-cells = <0>;
298 };
299
300 /*
301 * IIC1/I2C1 is routed to EXIO connector A, pins 78 (SCL) + 80 (SDA).
302 * This is similar to the arangement described for i2cexio0 (above)
303 * with a fallback to GPIO also provided.
304 */
305 i2cexio1: i2c-11 {
306 compatible = "i2c-demux-pinctrl";
307 i2c-parent = <&iic1>, <&i2c1>, <&gpioi2c1>;
308 i2c-bus-name = "i2c-exio1";
270 #address-cells = <1>; 309 #address-cells = <1>;
271 #size-cells = <0>; 310 #size-cells = <0>;
272 }; 311 };
@@ -392,6 +431,11 @@
392 function = "iic0"; 431 function = "iic0";
393 }; 432 };
394 433
434 i2c1_pins: i2c1 {
435 groups = "i2c1";
436 function = "i2c1";
437 };
438
395 iic1_pins: iic1 { 439 iic1_pins: iic1 {
396 groups = "iic1"; 440 groups = "iic1";
397 function = "iic1"; 441 function = "iic1";
@@ -427,6 +471,11 @@
427 function = "usb2"; 471 function = "usb2";
428 }; 472 };
429 473
474 vin0_pins: vin0 {
475 groups = "vin0_data24", "vin0_sync", "vin0_clkenb", "vin0_clk";
476 function = "vin0";
477 };
478
430 vin1_pins: vin1 { 479 vin1_pins: vin1 {
431 groups = "vin1_data8", "vin1_clk"; 480 groups = "vin1_data8", "vin1_clk";
432 function = "vin1"; 481 function = "vin1";
@@ -559,6 +608,7 @@
559 vqmmc-supply = <&vccq_sdhi0>; 608 vqmmc-supply = <&vccq_sdhi0>;
560 cd-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>; 609 cd-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>;
561 sd-uhs-sdr50; 610 sd-uhs-sdr50;
611 sd-uhs-sdr104;
562 status = "okay"; 612 status = "okay";
563}; 613};
564 614
@@ -580,18 +630,22 @@
580 630
581&i2c0 { 631&i2c0 {
582 pinctrl-0 = <&i2c0_pins>; 632 pinctrl-0 = <&i2c0_pins>;
583 pinctrl-names = "i2c-exio"; 633 pinctrl-names = "i2c-exio0";
584}; 634};
585 635
586&iic0 { 636&iic0 {
587 pinctrl-0 = <&iic0_pins>; 637 pinctrl-0 = <&iic0_pins>;
588 pinctrl-names = "i2c-exio"; 638 pinctrl-names = "i2c-exio0";
639};
640
641&i2c1 {
642 pinctrl-0 = <&i2c1_pins>;
643 pinctrl-names = "i2c-exio1";
589}; 644};
590 645
591&iic1 { 646&iic1 {
592 status = "okay";
593 pinctrl-0 = <&iic1_pins>; 647 pinctrl-0 = <&iic1_pins>;
594 pinctrl-names = "default"; 648 pinctrl-names = "i2c-exio1";
595}; 649};
596 650
597&iic2 { 651&iic2 {
@@ -646,7 +700,34 @@
646 port@1 { 700 port@1 {
647 reg = <1>; 701 reg = <1>;
648 adv7511_out: endpoint { 702 adv7511_out: endpoint {
649 remote-endpoint = <&hdmi_con>; 703 remote-endpoint = <&hdmi_con_out>;
704 };
705 };
706 };
707 };
708
709 hdmi-in@4c {
710 compatible = "adi,adv7612";
711 reg = <0x4c>;
712 interrupt-parent = <&gpio1>;
713 interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
714 default-input = <0>;
715
716 ports {
717 #address-cells = <1>;
718 #size-cells = <0>;
719
720 port@0 {
721 reg = <0>;
722 adv7612_in: endpoint {
723 remote-endpoint = <&hdmi_con_in>;
724 };
725 };
726
727 port@2 {
728 reg = <2>;
729 adv7612_out: endpoint {
730 remote-endpoint = <&vin0ep2>;
650 }; 731 };
651 }; 732 };
652 }; 733 };
@@ -722,6 +803,25 @@
722 status = "okay"; 803 status = "okay";
723}; 804};
724 805
806/* HDMI video input */
807&vin0 {
808 pinctrl-0 = <&vin0_pins>;
809 pinctrl-names = "default";
810
811 status = "okay";
812
813 port {
814 vin0ep2: endpoint {
815 remote-endpoint = <&adv7612_out>;
816 bus-width = <24>;
817 hsync-active = <0>;
818 vsync-active = <0>;
819 pclk-sample = <1>;
820 data-active = <1>;
821 };
822 };
823};
824
725/* composite video input */ 825/* composite video input */
726&vin1 { 826&vin1 {
727 pinctrl-0 = <&vin1_pins>; 827 pinctrl-0 = <&vin1_pins>;
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi
index 3f10b0bf1b08..0c8900d4b824 100644
--- a/arch/arm/boot/dts/r8a7790.dtsi
+++ b/arch/arm/boot/dts/r8a7790.dtsi
@@ -711,7 +711,7 @@
711 scifb0: serial@e6c20000 { 711 scifb0: serial@e6c20000 {
712 compatible = "renesas,scifb-r8a7790", 712 compatible = "renesas,scifb-r8a7790",
713 "renesas,rcar-gen2-scifb", "renesas,scifb"; 713 "renesas,rcar-gen2-scifb", "renesas,scifb";
714 reg = <0 0xe6c20000 0 64>; 714 reg = <0 0xe6c20000 0 0x100>;
715 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 715 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
716 clocks = <&mstp2_clks R8A7790_CLK_SCIFB0>; 716 clocks = <&mstp2_clks R8A7790_CLK_SCIFB0>;
717 clock-names = "fck"; 717 clock-names = "fck";
@@ -725,7 +725,7 @@
725 scifb1: serial@e6c30000 { 725 scifb1: serial@e6c30000 {
726 compatible = "renesas,scifb-r8a7790", 726 compatible = "renesas,scifb-r8a7790",
727 "renesas,rcar-gen2-scifb", "renesas,scifb"; 727 "renesas,rcar-gen2-scifb", "renesas,scifb";
728 reg = <0 0xe6c30000 0 64>; 728 reg = <0 0xe6c30000 0 0x100>;
729 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 729 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
730 clocks = <&mstp2_clks R8A7790_CLK_SCIFB1>; 730 clocks = <&mstp2_clks R8A7790_CLK_SCIFB1>;
731 clock-names = "fck"; 731 clock-names = "fck";
@@ -739,7 +739,7 @@
739 scifb2: serial@e6ce0000 { 739 scifb2: serial@e6ce0000 {
740 compatible = "renesas,scifb-r8a7790", 740 compatible = "renesas,scifb-r8a7790",
741 "renesas,rcar-gen2-scifb", "renesas,scifb"; 741 "renesas,rcar-gen2-scifb", "renesas,scifb";
742 reg = <0 0xe6ce0000 0 64>; 742 reg = <0 0xe6ce0000 0 0x100>;
743 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>; 743 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
744 clocks = <&mstp2_clks R8A7790_CLK_SCIFB2>; 744 clocks = <&mstp2_clks R8A7790_CLK_SCIFB2>;
745 clock-names = "fck"; 745 clock-names = "fck";
@@ -1471,6 +1471,11 @@
1471 }; 1471 };
1472 }; 1472 };
1473 1473
1474 prr: chipid@ff000044 {
1475 compatible = "renesas,prr";
1476 reg = <0 0xff000044 0 4>;
1477 };
1478
1474 rst: reset-controller@e6160000 { 1479 rst: reset-controller@e6160000 {
1475 compatible = "renesas,r8a7790-rst"; 1480 compatible = "renesas,r8a7790-rst";
1476 reg = <0 0xe6160000 0 0x0100>; 1481 reg = <0 0xe6160000 0 0x0100>;
diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts b/arch/arm/boot/dts/r8a7791-koelsch.dts
index f8a7d090fd01..5405d337d744 100644
--- a/arch/arm/boot/dts/r8a7791-koelsch.dts
+++ b/arch/arm/boot/dts/r8a7791-koelsch.dts
@@ -50,6 +50,8 @@
50 aliases { 50 aliases {
51 serial0 = &scif0; 51 serial0 = &scif0;
52 serial1 = &scif1; 52 serial1 = &scif1;
53 i2c9 = &gpioi2c1;
54 i2c12 = &i2cexio1;
53 }; 55 };
54 56
55 chosen { 57 chosen {
@@ -265,12 +267,23 @@
265 }; 267 };
266 }; 268 };
267 269
270 hdmi-in {
271 compatible = "hdmi-connector";
272 type = "a";
273
274 port {
275 hdmi_con_in: endpoint {
276 remote-endpoint = <&adv7612_in>;
277 };
278 };
279 };
280
268 hdmi-out { 281 hdmi-out {
269 compatible = "hdmi-connector"; 282 compatible = "hdmi-connector";
270 type = "a"; 283 type = "a";
271 284
272 port { 285 port {
273 hdmi_con: endpoint { 286 hdmi_con_out: endpoint {
274 remote-endpoint = <&adv7511_out>; 287 remote-endpoint = <&adv7511_out>;
275 }; 288 };
276 }; 289 };
@@ -287,6 +300,29 @@
287 #clock-cells = <0>; 300 #clock-cells = <0>;
288 clock-frequency = <148500000>; 301 clock-frequency = <148500000>;
289 }; 302 };
303
304 gpioi2c1: i2c-9 {
305 #address-cells = <1>;
306 #size-cells = <0>;
307 compatible = "i2c-gpio";
308 status = "disabled";
309 gpios = <&gpio7 16 GPIO_ACTIVE_HIGH /* sda */
310 &gpio7 15 GPIO_ACTIVE_HIGH /* scl */
311 >;
312 i2c-gpio,delay-us = <5>;
313 };
314
315 /*
316 * I2C1 is routed to EXIO connector B, pins 64 (SCL) + 66 (SDA).
317 * A fallback to GPIO is provided.
318 */
319 i2cexio1: i2c-12 {
320 compatible = "i2c-demux-pinctrl";
321 i2c-parent = <&i2c1>, <&gpioi2c1>;
322 i2c-bus-name = "i2c-exio1";
323 #address-cells = <1>;
324 #size-cells = <0>;
325 };
290}; 326};
291 327
292&du { 328&du {
@@ -322,6 +358,11 @@
322 pinctrl-0 = <&scif_clk_pins>; 358 pinctrl-0 = <&scif_clk_pins>;
323 pinctrl-names = "default"; 359 pinctrl-names = "default";
324 360
361 i2c1_pins: i2c1 {
362 groups = "i2c1";
363 function = "i2c1";
364 };
365
325 i2c2_pins: i2c2 { 366 i2c2_pins: i2c2 {
326 groups = "i2c2"; 367 groups = "i2c2";
327 function = "i2c2"; 368 function = "i2c2";
@@ -360,16 +401,37 @@
360 sdhi0_pins: sd0 { 401 sdhi0_pins: sd0 {
361 groups = "sdhi0_data4", "sdhi0_ctrl"; 402 groups = "sdhi0_data4", "sdhi0_ctrl";
362 function = "sdhi0"; 403 function = "sdhi0";
404 power-source = <3300>;
405 };
406
407 sdhi0_pins_uhs: sd0_uhs {
408 groups = "sdhi0_data4", "sdhi0_ctrl";
409 function = "sdhi0";
410 power-source = <1800>;
363 }; 411 };
364 412
365 sdhi1_pins: sd1 { 413 sdhi1_pins: sd1 {
366 groups = "sdhi1_data4", "sdhi1_ctrl"; 414 groups = "sdhi1_data4", "sdhi1_ctrl";
367 function = "sdhi1"; 415 function = "sdhi1";
416 power-source = <3300>;
417 };
418
419 sdhi1_pins_uhs: sd1_uhs {
420 groups = "sdhi1_data4", "sdhi1_ctrl";
421 function = "sdhi1";
422 power-source = <1800>;
368 }; 423 };
369 424
370 sdhi2_pins: sd2 { 425 sdhi2_pins: sd2 {
371 groups = "sdhi2_data4", "sdhi2_ctrl"; 426 groups = "sdhi2_data4", "sdhi2_ctrl";
372 function = "sdhi2"; 427 function = "sdhi2";
428 power-source = <3300>;
429 };
430
431 sdhi2_pins_uhs: sd2_uhs {
432 groups = "sdhi2_data4", "sdhi2_ctrl";
433 function = "sdhi2";
434 power-source = <1800>;
373 }; 435 };
374 436
375 qspi_pins: qspi { 437 qspi_pins: qspi {
@@ -393,6 +455,11 @@
393 function = "usb1"; 455 function = "usb1";
394 }; 456 };
395 457
458 vin0_pins: vin0 {
459 groups = "vin0_data24", "vin0_sync", "vin0_clkenb", "vin0_clk";
460 function = "vin0";
461 };
462
396 vin1_pins: vin1 { 463 vin1_pins: vin1 {
397 groups = "vin1_data8", "vin1_clk"; 464 groups = "vin1_data8", "vin1_clk";
398 function = "vin1"; 465 function = "vin1";
@@ -454,33 +521,40 @@
454 521
455&sdhi0 { 522&sdhi0 {
456 pinctrl-0 = <&sdhi0_pins>; 523 pinctrl-0 = <&sdhi0_pins>;
457 pinctrl-names = "default"; 524 pinctrl-1 = <&sdhi0_pins_uhs>;
525 pinctrl-names = "default", "state_uhs";
458 526
459 vmmc-supply = <&vcc_sdhi0>; 527 vmmc-supply = <&vcc_sdhi0>;
460 vqmmc-supply = <&vccq_sdhi0>; 528 vqmmc-supply = <&vccq_sdhi0>;
461 cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>; 529 cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
462 wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; 530 wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
531 sd-uhs-sdr50;
532 sd-uhs-sdr104;
463 status = "okay"; 533 status = "okay";
464}; 534};
465 535
466&sdhi1 { 536&sdhi1 {
467 pinctrl-0 = <&sdhi1_pins>; 537 pinctrl-0 = <&sdhi1_pins>;
468 pinctrl-names = "default"; 538 pinctrl-1 = <&sdhi1_pins_uhs>;
539 pinctrl-names = "default", "state_uhs";
469 540
470 vmmc-supply = <&vcc_sdhi1>; 541 vmmc-supply = <&vcc_sdhi1>;
471 vqmmc-supply = <&vccq_sdhi1>; 542 vqmmc-supply = <&vccq_sdhi1>;
472 cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>; 543 cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
473 wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>; 544 wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>;
545 sd-uhs-sdr50;
474 status = "okay"; 546 status = "okay";
475}; 547};
476 548
477&sdhi2 { 549&sdhi2 {
478 pinctrl-0 = <&sdhi2_pins>; 550 pinctrl-0 = <&sdhi2_pins>;
479 pinctrl-names = "default"; 551 pinctrl-1 = <&sdhi2_pins_uhs>;
552 pinctrl-names = "default", "state_uhs";
480 553
481 vmmc-supply = <&vcc_sdhi2>; 554 vmmc-supply = <&vcc_sdhi2>;
482 vqmmc-supply = <&vccq_sdhi2>; 555 vqmmc-supply = <&vccq_sdhi2>;
483 cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>; 556 cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>;
557 sd-uhs-sdr50;
484 status = "okay"; 558 status = "okay";
485}; 559};
486 560
@@ -538,6 +612,11 @@
538 }; 612 };
539}; 613};
540 614
615&i2c1 {
616 pinctrl-0 = <&i2c1_pins>;
617 pinctrl-names = "i2c-exio1";
618};
619
541&i2c2 { 620&i2c2 {
542 pinctrl-0 = <&i2c2_pins>; 621 pinctrl-0 = <&i2c2_pins>;
543 pinctrl-names = "default"; 622 pinctrl-names = "default";
@@ -590,7 +669,34 @@
590 port@1 { 669 port@1 {
591 reg = <1>; 670 reg = <1>;
592 adv7511_out: endpoint { 671 adv7511_out: endpoint {
593 remote-endpoint = <&hdmi_con>; 672 remote-endpoint = <&hdmi_con_out>;
673 };
674 };
675 };
676 };
677
678 hdmi-in@4c {
679 compatible = "adi,adv7612";
680 reg = <0x4c>;
681 interrupt-parent = <&gpio4>;
682 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
683 default-input = <0>;
684
685 ports {
686 #address-cells = <1>;
687 #size-cells = <0>;
688
689 port@0 {
690 reg = <0>;
691 adv7612_in: endpoint {
692 remote-endpoint = <&hdmi_con_in>;
693 };
694 };
695
696 port@2 {
697 reg = <2>;
698 adv7612_out: endpoint {
699 remote-endpoint = <&vin0ep2>;
594 }; 700 };
595 }; 701 };
596 }; 702 };
@@ -672,6 +778,27 @@
672 cpu0-supply = <&vdd_dvfs>; 778 cpu0-supply = <&vdd_dvfs>;
673}; 779};
674 780
781/* HDMI video input */
782&vin0 {
783 status = "okay";
784 pinctrl-0 = <&vin0_pins>;
785 pinctrl-names = "default";
786
787 port {
788 #address-cells = <1>;
789 #size-cells = <0>;
790
791 vin0ep2: endpoint {
792 remote-endpoint = <&adv7612_out>;
793 bus-width = <24>;
794 hsync-active = <0>;
795 vsync-active = <0>;
796 pclk-sample = <1>;
797 data-active = <1>;
798 };
799 };
800};
801
675/* composite video input */ 802/* composite video input */
676&vin1 { 803&vin1 {
677 status = "okay"; 804 status = "okay";
diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
index c465c79bcca6..87214668d70f 100644
--- a/arch/arm/boot/dts/r8a7791.dtsi
+++ b/arch/arm/boot/dts/r8a7791.dtsi
@@ -584,6 +584,7 @@
584 dmas = <&dmac0 0xcd>, <&dmac0 0xce>, 584 dmas = <&dmac0 0xcd>, <&dmac0 0xce>,
585 <&dmac1 0xcd>, <&dmac1 0xce>; 585 <&dmac1 0xcd>, <&dmac1 0xce>;
586 dma-names = "tx", "rx", "tx", "rx"; 586 dma-names = "tx", "rx", "tx", "rx";
587 max-frequency = <195000000>;
587 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 588 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
588 status = "disabled"; 589 status = "disabled";
589 }; 590 };
@@ -596,6 +597,7 @@
596 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>, 597 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>,
597 <&dmac1 0xc1>, <&dmac1 0xc2>; 598 <&dmac1 0xc1>, <&dmac1 0xc2>;
598 dma-names = "tx", "rx", "tx", "rx"; 599 dma-names = "tx", "rx", "tx", "rx";
600 max-frequency = <97500000>;
599 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 601 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
600 status = "disabled"; 602 status = "disabled";
601 }; 603 };
@@ -608,6 +610,7 @@
608 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>, 610 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>,
609 <&dmac1 0xd3>, <&dmac1 0xd4>; 611 <&dmac1 0xd3>, <&dmac1 0xd4>;
610 dma-names = "tx", "rx", "tx", "rx"; 612 dma-names = "tx", "rx", "tx", "rx";
613 max-frequency = <97500000>;
611 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 614 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
612 status = "disabled"; 615 status = "disabled";
613 }; 616 };
@@ -699,7 +702,7 @@
699 scifb0: serial@e6c20000 { 702 scifb0: serial@e6c20000 {
700 compatible = "renesas,scifb-r8a7791", 703 compatible = "renesas,scifb-r8a7791",
701 "renesas,rcar-gen2-scifb", "renesas,scifb"; 704 "renesas,rcar-gen2-scifb", "renesas,scifb";
702 reg = <0 0xe6c20000 0 64>; 705 reg = <0 0xe6c20000 0 0x100>;
703 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 706 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
704 clocks = <&mstp2_clks R8A7791_CLK_SCIFB0>; 707 clocks = <&mstp2_clks R8A7791_CLK_SCIFB0>;
705 clock-names = "fck"; 708 clock-names = "fck";
@@ -713,7 +716,7 @@
713 scifb1: serial@e6c30000 { 716 scifb1: serial@e6c30000 {
714 compatible = "renesas,scifb-r8a7791", 717 compatible = "renesas,scifb-r8a7791",
715 "renesas,rcar-gen2-scifb", "renesas,scifb"; 718 "renesas,rcar-gen2-scifb", "renesas,scifb";
716 reg = <0 0xe6c30000 0 64>; 719 reg = <0 0xe6c30000 0 0x100>;
717 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 720 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
718 clocks = <&mstp2_clks R8A7791_CLK_SCIFB1>; 721 clocks = <&mstp2_clks R8A7791_CLK_SCIFB1>;
719 clock-names = "fck"; 722 clock-names = "fck";
@@ -727,7 +730,7 @@
727 scifb2: serial@e6ce0000 { 730 scifb2: serial@e6ce0000 {
728 compatible = "renesas,scifb-r8a7791", 731 compatible = "renesas,scifb-r8a7791",
729 "renesas,rcar-gen2-scifb", "renesas,scifb"; 732 "renesas,rcar-gen2-scifb", "renesas,scifb";
730 reg = <0 0xe6ce0000 0 64>; 733 reg = <0 0xe6ce0000 0 0x100>;
731 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>; 734 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
732 clocks = <&mstp2_clks R8A7791_CLK_SCIFB2>; 735 clocks = <&mstp2_clks R8A7791_CLK_SCIFB2>;
733 clock-names = "fck"; 736 clock-names = "fck";
@@ -1487,6 +1490,11 @@
1487 reg = <0 0xe6160000 0 0x0100>; 1490 reg = <0 0xe6160000 0 0x0100>;
1488 }; 1491 };
1489 1492
1493 prr: chipid@ff000044 {
1494 compatible = "renesas,prr";
1495 reg = <0 0xff000044 0 4>;
1496 };
1497
1490 sysc: system-controller@e6180000 { 1498 sysc: system-controller@e6180000 {
1491 compatible = "renesas,r8a7791-sysc"; 1499 compatible = "renesas,r8a7791-sysc";
1492 reg = <0 0xe6180000 0 0x0200>; 1500 reg = <0 0xe6180000 0 0x0200>;
diff --git a/arch/arm/boot/dts/r8a7792-wheat.dts b/arch/arm/boot/dts/r8a7792-wheat.dts
index 6dbb94114a93..c24f26fdab1f 100644
--- a/arch/arm/boot/dts/r8a7792-wheat.dts
+++ b/arch/arm/boot/dts/r8a7792-wheat.dts
@@ -86,6 +86,34 @@
86 gpio = <&gpio11 12 GPIO_ACTIVE_HIGH>; 86 gpio = <&gpio11 12 GPIO_ACTIVE_HIGH>;
87 enable-active-high; 87 enable-active-high;
88 }; 88 };
89
90 hdmi-out0 {
91 compatible = "hdmi-connector";
92 type = "a";
93
94 port {
95 hdmi_con0: endpoint {
96 remote-endpoint = <&adv7513_0_out>;
97 };
98 };
99 };
100
101 hdmi-out1 {
102 compatible = "hdmi-connector";
103 type = "a";
104
105 port {
106 hdmi_con1: endpoint {
107 remote-endpoint = <&adv7513_1_out>;
108 };
109 };
110 };
111
112 osc2_clk: osc2 {
113 compatible = "fixed-clock";
114 #clock-cells = <0>;
115 clock-frequency = <74250000>;
116 };
89}; 117};
90 118
91&extal_clk { 119&extal_clk {
@@ -128,6 +156,16 @@
128 groups = "qspi_ctrl", "qspi_data4"; 156 groups = "qspi_ctrl", "qspi_data4";
129 function = "qspi"; 157 function = "qspi";
130 }; 158 };
159
160 du0_pins: du0 {
161 groups = "du0_rgb888", "du0_sync", "du0_disp";
162 function = "du0";
163 };
164
165 du1_pins: du1 {
166 groups = "du1_rgb666", "du1_sync", "du1_disp";
167 function = "du1";
168 };
131}; 169};
132 170
133&scif0 { 171&scif0 {
@@ -197,3 +235,91 @@
197 }; 235 };
198 }; 236 };
199}; 237};
238
239&i2c4 {
240 status = "okay";
241 clock-frequency = <400000>;
242
243 hdmi@3d {
244 compatible = "adi,adv7513";
245 reg = <0x3d>;
246
247 adi,input-depth = <8>;
248 adi,input-colorspace = "rgb";
249 adi,input-clock = "1x";
250 adi,input-style = <1>;
251 adi,input-justification = "evenly";
252
253 ports {
254 #address-cells = <1>;
255 #size-cells = <0>;
256
257 port@0 {
258 reg = <0>;
259 adv7513_0_in: endpoint {
260 remote-endpoint = <&du_out_rgb0>;
261 };
262 };
263
264 port@1 {
265 reg = <1>;
266 adv7513_0_out: endpoint {
267 remote-endpoint = <&hdmi_con0>;
268 };
269 };
270 };
271 };
272
273 hdmi@39 {
274 compatible = "adi,adv7513";
275 reg = <0x39>;
276
277 adi,input-depth = <8>;
278 adi,input-colorspace = "rgb";
279 adi,input-clock = "1x";
280 adi,input-style = <1>;
281 adi,input-justification = "evenly";
282
283 ports {
284 #address-cells = <1>;
285 #size-cells = <0>;
286
287 port@0 {
288 reg = <0>;
289 adv7513_1_in: endpoint {
290 remote-endpoint = <&du_out_rgb1>;
291 };
292 };
293
294 port@1 {
295 reg = <1>;
296 adv7513_1_out: endpoint {
297 remote-endpoint = <&hdmi_con1>;
298 };
299 };
300 };
301 };
302};
303
304&du {
305 pinctrl-0 = <&du0_pins &du1_pins>;
306 pinctrl-names = "default";
307
308 clocks = <&mstp7_clks R8A7792_CLK_DU0>, <&mstp7_clks R8A7792_CLK_DU1>,
309 <&osc2_clk>;
310 clock-names = "du.0", "du.1", "dclkin.0";
311 status = "okay";
312
313 ports {
314 port@0 {
315 endpoint {
316 remote-endpoint = <&adv7513_0_in>;
317 };
318 };
319 port@1 {
320 endpoint {
321 remote-endpoint = <&adv7513_1_in>;
322 };
323 };
324 };
325};
diff --git a/arch/arm/boot/dts/r8a7792.dtsi b/arch/arm/boot/dts/r8a7792.dtsi
index 6e1f61f65d29..6ced3c1ec377 100644
--- a/arch/arm/boot/dts/r8a7792.dtsi
+++ b/arch/arm/boot/dts/r8a7792.dtsi
@@ -26,6 +26,8 @@
26 i2c4 = &i2c4; 26 i2c4 = &i2c4;
27 i2c5 = &i2c5; 27 i2c5 = &i2c5;
28 spi0 = &qspi; 28 spi0 = &qspi;
29 spi1 = &msiof0;
30 spi2 = &msiof1;
29 vin0 = &vin0; 31 vin0 = &vin0;
30 vin1 = &vin1; 32 vin1 = &vin1;
31 vin2 = &vin2; 33 vin2 = &vin2;
@@ -123,6 +125,11 @@
123 reg = <0 0xe6160000 0 0x0100>; 125 reg = <0 0xe6160000 0 0x0100>;
124 }; 126 };
125 127
128 prr: chipid@ff000044 {
129 compatible = "renesas,prr";
130 reg = <0 0xff000044 0 4>;
131 };
132
126 sysc: system-controller@e6180000 { 133 sysc: system-controller@e6180000 {
127 compatible = "renesas,r8a7792-sysc"; 134 compatible = "renesas,r8a7792-sysc";
128 reg = <0 0xe6180000 0 0x0200>; 135 reg = <0 0xe6180000 0 0x0200>;
@@ -577,6 +584,34 @@
577 status = "disabled"; 584 status = "disabled";
578 }; 585 };
579 586
587 msiof0: spi@e6e20000 {
588 compatible = "renesas,msiof-r8a7792";
589 reg = <0 0xe6e20000 0 0x0064>;
590 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
591 clocks = <&mstp0_clks R8A7792_CLK_MSIOF0>;
592 dmas = <&dmac0 0x51>, <&dmac0 0x52>,
593 <&dmac1 0x51>, <&dmac1 0x52>;
594 dma-names = "tx", "rx", "tx", "rx";
595 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
596 #address-cells = <1>;
597 #size-cells = <0>;
598 status = "disabled";
599 };
600
601 msiof1: spi@e6e10000 {
602 compatible = "renesas,msiof-r8a7792";
603 reg = <0 0xe6e10000 0 0x0064>;
604 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
605 clocks = <&mstp2_clks R8A7792_CLK_MSIOF1>;
606 dmas = <&dmac0 0x55>, <&dmac0 0x56>,
607 <&dmac1 0x55>, <&dmac1 0x56>;
608 dma-names = "tx", "rx", "tx", "rx";
609 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
610 #address-cells = <1>;
611 #size-cells = <0>;
612 status = "disabled";
613 };
614
580 du: display@feb00000 { 615 du: display@feb00000 {
581 compatible = "renesas,du-r8a7792"; 616 compatible = "renesas,du-r8a7792";
582 reg = <0 0xfeb00000 0 0x40000>; 617 reg = <0 0xfeb00000 0 0x40000>;
@@ -768,6 +803,13 @@
768 clock-div = <48>; 803 clock-div = <48>;
769 clock-mult = <1>; 804 clock-mult = <1>;
770 }; 805 };
806 mp_clk: mp {
807 compatible = "fixed-factor-clock";
808 clocks = <&pll1_div2_clk>;
809 #clock-cells = <0>;
810 clock-div = <15>;
811 clock-mult = <1>;
812 };
771 m2_clk: m2 { 813 m2_clk: m2 {
772 compatible = "fixed-factor-clock"; 814 compatible = "fixed-factor-clock";
773 clocks = <&cpg_clocks R8A7792_CLK_PLL1>; 815 clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
@@ -798,6 +840,15 @@
798 }; 840 };
799 841
800 /* Gate clocks */ 842 /* Gate clocks */
843 mstp0_clks: mstp0_clks@e6150130 {
844 compatible = "renesas,r8a7792-mstp-clocks",
845 "renesas,cpg-mstp-clocks";
846 reg = <0 0xe6150130 0 4>, <0 0xe6150030 0 4>;
847 clocks = <&mp_clk>;
848 #clock-cells = <1>;
849 clock-indices = <R8A7792_CLK_MSIOF0>;
850 clock-output-names = "msiof0";
851 };
801 mstp1_clks: mstp1_clks@e6150134 { 852 mstp1_clks: mstp1_clks@e6150134 {
802 compatible = "renesas,r8a7792-mstp-clocks", 853 compatible = "renesas,r8a7792-mstp-clocks",
803 "renesas,cpg-mstp-clocks"; 854 "renesas,cpg-mstp-clocks";
@@ -816,12 +867,13 @@
816 compatible = "renesas,r8a7792-mstp-clocks", 867 compatible = "renesas,r8a7792-mstp-clocks",
817 "renesas,cpg-mstp-clocks"; 868 "renesas,cpg-mstp-clocks";
818 reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>; 869 reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>;
819 clocks = <&zs_clk>, <&zs_clk>; 870 clocks = <&mp_clk>, <&zs_clk>, <&zs_clk>;
820 #clock-cells = <1>; 871 #clock-cells = <1>;
821 clock-indices = < 872 clock-indices = <
873 R8A7792_CLK_MSIOF1
822 R8A7792_CLK_SYS_DMAC1 R8A7792_CLK_SYS_DMAC0 874 R8A7792_CLK_SYS_DMAC1 R8A7792_CLK_SYS_DMAC0
823 >; 875 >;
824 clock-output-names = "sys-dmac1", "sys-dmac0"; 876 clock-output-names = "msiof1", "sys-dmac1", "sys-dmac0";
825 }; 877 };
826 mstp3_clks: mstp3_clks@e615013c { 878 mstp3_clks: mstp3_clks@e615013c {
827 compatible = "renesas,r8a7792-mstp-clocks", 879 compatible = "renesas,r8a7792-mstp-clocks",
diff --git a/arch/arm/boot/dts/r8a7793-gose.dts b/arch/arm/boot/dts/r8a7793-gose.dts
index 90af18600124..dc311eba4444 100644
--- a/arch/arm/boot/dts/r8a7793-gose.dts
+++ b/arch/arm/boot/dts/r8a7793-gose.dts
@@ -346,18 +346,18 @@
346 }; 346 };
347 347
348 sdhi0_pins: sd0 { 348 sdhi0_pins: sd0 {
349 renesas,groups = "sdhi0_data4", "sdhi0_ctrl"; 349 groups = "sdhi0_data4", "sdhi0_ctrl";
350 renesas,function = "sdhi0"; 350 function = "sdhi0";
351 }; 351 };
352 352
353 sdhi1_pins: sd1 { 353 sdhi1_pins: sd1 {
354 renesas,groups = "sdhi1_data4", "sdhi1_ctrl"; 354 groups = "sdhi1_data4", "sdhi1_ctrl";
355 renesas,function = "sdhi1"; 355 function = "sdhi1";
356 }; 356 };
357 357
358 sdhi2_pins: sd2 { 358 sdhi2_pins: sd2 {
359 renesas,groups = "sdhi2_data4", "sdhi2_ctrl"; 359 groups = "sdhi2_data4", "sdhi2_ctrl";
360 renesas,function = "sdhi2"; 360 function = "sdhi2";
361 }; 361 };
362 362
363 qspi_pins: qspi { 363 qspi_pins: qspi {
diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi
index e4b385eccf74..2fb527ca0b15 100644
--- a/arch/arm/boot/dts/r8a7793.dtsi
+++ b/arch/arm/boot/dts/r8a7793.dtsi
@@ -666,7 +666,7 @@
666 scifb0: serial@e6c20000 { 666 scifb0: serial@e6c20000 {
667 compatible = "renesas,scifb-r8a7793", 667 compatible = "renesas,scifb-r8a7793",
668 "renesas,rcar-gen2-scifb", "renesas,scifb"; 668 "renesas,rcar-gen2-scifb", "renesas,scifb";
669 reg = <0 0xe6c20000 0 64>; 669 reg = <0 0xe6c20000 0 0x100>;
670 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 670 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
671 clocks = <&mstp2_clks R8A7793_CLK_SCIFB0>; 671 clocks = <&mstp2_clks R8A7793_CLK_SCIFB0>;
672 clock-names = "fck"; 672 clock-names = "fck";
@@ -680,7 +680,7 @@
680 scifb1: serial@e6c30000 { 680 scifb1: serial@e6c30000 {
681 compatible = "renesas,scifb-r8a7793", 681 compatible = "renesas,scifb-r8a7793",
682 "renesas,rcar-gen2-scifb", "renesas,scifb"; 682 "renesas,rcar-gen2-scifb", "renesas,scifb";
683 reg = <0 0xe6c30000 0 64>; 683 reg = <0 0xe6c30000 0 0x100>;
684 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 684 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
685 clocks = <&mstp2_clks R8A7793_CLK_SCIFB1>; 685 clocks = <&mstp2_clks R8A7793_CLK_SCIFB1>;
686 clock-names = "fck"; 686 clock-names = "fck";
@@ -694,7 +694,7 @@
694 scifb2: serial@e6ce0000 { 694 scifb2: serial@e6ce0000 {
695 compatible = "renesas,scifb-r8a7793", 695 compatible = "renesas,scifb-r8a7793",
696 "renesas,rcar-gen2-scifb", "renesas,scifb"; 696 "renesas,rcar-gen2-scifb", "renesas,scifb";
697 reg = <0 0xe6ce0000 0 64>; 697 reg = <0 0xe6ce0000 0 0x100>;
698 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>; 698 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
699 clocks = <&mstp2_clks R8A7793_CLK_SCIFB2>; 699 clocks = <&mstp2_clks R8A7793_CLK_SCIFB2>;
700 clock-names = "fck"; 700 clock-names = "fck";
@@ -852,6 +852,33 @@
852 status = "disabled"; 852 status = "disabled";
853 }; 853 };
854 854
855 vin0: video@e6ef0000 {
856 compatible = "renesas,vin-r8a7793", "renesas,rcar-gen2-vin";
857 reg = <0 0xe6ef0000 0 0x1000>;
858 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
859 clocks = <&mstp8_clks R8A7793_CLK_VIN0>;
860 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
861 status = "disabled";
862 };
863
864 vin1: video@e6ef1000 {
865 compatible = "renesas,vin-r8a7793", "renesas,rcar-gen2-vin";
866 reg = <0 0xe6ef1000 0 0x1000>;
867 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
868 clocks = <&mstp8_clks R8A7793_CLK_VIN1>;
869 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
870 status = "disabled";
871 };
872
873 vin2: video@e6ef2000 {
874 compatible = "renesas,vin-r8a7793", "renesas,rcar-gen2-vin";
875 reg = <0 0xe6ef2000 0 0x1000>;
876 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
877 clocks = <&mstp8_clks R8A7793_CLK_VIN2>;
878 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
879 status = "disabled";
880 };
881
855 qspi: spi@e6b10000 { 882 qspi: spi@e6b10000 {
856 compatible = "renesas,qspi-r8a7793", "renesas,qspi"; 883 compatible = "renesas,qspi-r8a7793", "renesas,qspi";
857 reg = <0 0xe6b10000 0 0x2c>; 884 reg = <0 0xe6b10000 0 0x2c>;
@@ -1284,6 +1311,11 @@
1284 reg = <0 0xe6160000 0 0x0100>; 1311 reg = <0 0xe6160000 0 0x0100>;
1285 }; 1312 };
1286 1313
1314 prr: chipid@ff000044 {
1315 compatible = "renesas,prr";
1316 reg = <0 0xff000044 0 4>;
1317 };
1318
1287 sysc: system-controller@e6180000 { 1319 sysc: system-controller@e6180000 {
1288 compatible = "renesas,r8a7793-sysc"; 1320 compatible = "renesas,r8a7793-sysc";
1289 reg = <0 0xe6180000 0 0x0200>; 1321 reg = <0 0xe6180000 0 0x0200>;
diff --git a/arch/arm/boot/dts/r8a7794-alt.dts b/arch/arm/boot/dts/r8a7794-alt.dts
index 8d1b35afaf82..569e3f0e97a5 100644
--- a/arch/arm/boot/dts/r8a7794-alt.dts
+++ b/arch/arm/boot/dts/r8a7794-alt.dts
@@ -18,6 +18,8 @@
18 18
19 aliases { 19 aliases {
20 serial0 = &scif2; 20 serial0 = &scif2;
21 i2c10 = &gpioi2c4;
22 i2c12 = &i2cexio4;
21 }; 23 };
22 24
23 chosen { 25 chosen {
@@ -135,6 +137,29 @@
135 #clock-cells = <0>; 137 #clock-cells = <0>;
136 clock-frequency = <148500000>; 138 clock-frequency = <148500000>;
137 }; 139 };
140
141 gpioi2c4: i2c-10 {
142 #address-cells = <1>;
143 #size-cells = <0>;
144 compatible = "i2c-gpio";
145 status = "disabled";
146 gpios = <&gpio4 9 GPIO_ACTIVE_HIGH /* sda */
147 &gpio4 8 GPIO_ACTIVE_HIGH /* scl */
148 >;
149 i2c-gpio,delay-us = <5>;
150 };
151
152 /*
153 * I2C4 is routed to EXIO connector B, pins 73 (SCL) + 74 (SDA).
154 * A fallback to GPIO is provided.
155 */
156 i2cexio4: i2c-14 {
157 compatible = "i2c-demux-pinctrl";
158 i2c-parent = <&i2c4>, <&gpioi2c4>;
159 i2c-bus-name = "i2c-exio4";
160 #address-cells = <1>;
161 #size-cells = <0>;
162 };
138}; 163};
139 164
140&du { 165&du {
@@ -165,8 +190,8 @@
165 pinctrl-names = "default"; 190 pinctrl-names = "default";
166 191
167 du_pins: du { 192 du_pins: du {
168 groups = "du1_rgb666", "du1_sync", "du1_disp", "du1_dotclkout0"; 193 groups = "du1_rgb666", "du1_sync", "du1_disp", "du1_clk0_out";
169 function = "du"; 194 function = "du1";
170 }; 195 };
171 196
172 scif2_pins: scif2 { 197 scif2_pins: scif2 {
@@ -194,6 +219,11 @@
194 function = "i2c1"; 219 function = "i2c1";
195 }; 220 };
196 221
222 i2c4_pins: i2c4 {
223 groups = "i2c4";
224 function = "i2c4";
225 };
226
197 vin0_pins: vin0 { 227 vin0_pins: vin0 {
198 groups = "vin0_data8", "vin0_clk"; 228 groups = "vin0_data8", "vin0_clk";
199 function = "vin0"; 229 function = "vin0";
@@ -207,11 +237,25 @@
207 sdhi0_pins: sd0 { 237 sdhi0_pins: sd0 {
208 groups = "sdhi0_data4", "sdhi0_ctrl"; 238 groups = "sdhi0_data4", "sdhi0_ctrl";
209 function = "sdhi0"; 239 function = "sdhi0";
240 power-source = <3300>;
241 };
242
243 sdhi0_pins_uhs: sd0_uhs {
244 groups = "sdhi0_data4", "sdhi0_ctrl";
245 function = "sdhi0";
246 power-source = <1800>;
210 }; 247 };
211 248
212 sdhi1_pins: sd1 { 249 sdhi1_pins: sd1 {
213 groups = "sdhi1_data4", "sdhi1_ctrl"; 250 groups = "sdhi1_data4", "sdhi1_ctrl";
214 function = "sdhi1"; 251 function = "sdhi1";
252 power-source = <3300>;
253 };
254
255 sdhi1_pins_uhs: sd1_uhs {
256 groups = "sdhi1_data4", "sdhi1_ctrl";
257 function = "sdhi1";
258 power-source = <1800>;
215 }; 259 };
216}; 260};
217 261
@@ -255,23 +299,28 @@
255 299
256&sdhi0 { 300&sdhi0 {
257 pinctrl-0 = <&sdhi0_pins>; 301 pinctrl-0 = <&sdhi0_pins>;
258 pinctrl-names = "default"; 302 pinctrl-1 = <&sdhi0_pins_uhs>;
303 pinctrl-names = "default", "state_uhs";
259 304
260 vmmc-supply = <&vcc_sdhi0>; 305 vmmc-supply = <&vcc_sdhi0>;
261 vqmmc-supply = <&vccq_sdhi0>; 306 vqmmc-supply = <&vccq_sdhi0>;
262 cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>; 307 cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
263 wp-gpios = <&gpio6 7 GPIO_ACTIVE_LOW>; 308 wp-gpios = <&gpio6 7 GPIO_ACTIVE_LOW>;
309 sd-uhs-sdr50;
310 sd-uhs-sdr104;
264 status = "okay"; 311 status = "okay";
265}; 312};
266 313
267&sdhi1 { 314&sdhi1 {
268 pinctrl-0 = <&sdhi1_pins>; 315 pinctrl-0 = <&sdhi1_pins>;
269 pinctrl-names = "default"; 316 pinctrl-1 = <&sdhi1_pins_uhs>;
317 pinctrl-names = "default", "state_uhs";
270 318
271 vmmc-supply = <&vcc_sdhi1>; 319 vmmc-supply = <&vcc_sdhi1>;
272 vqmmc-supply = <&vccq_sdhi1>; 320 vqmmc-supply = <&vccq_sdhi1>;
273 cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>; 321 cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
274 wp-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>; 322 wp-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>;
323 sd-uhs-sdr50;
275 status = "okay"; 324 status = "okay";
276}; 325};
277 326
@@ -296,6 +345,11 @@
296 }; 345 };
297}; 346};
298 347
348&i2c4 {
349 pinctrl-0 = <&i2c4_pins>;
350 pinctrl-names = "i2c-exio4";
351};
352
299&vin0 { 353&vin0 {
300 status = "okay"; 354 status = "okay";
301 pinctrl-0 = <&vin0_pins>; 355 pinctrl-0 = <&vin0_pins>;
diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi
index 69e4f4fad89b..fb576dba748c 100644
--- a/arch/arm/boot/dts/r8a7794.dtsi
+++ b/arch/arm/boot/dts/r8a7794.dtsi
@@ -319,7 +319,7 @@
319 "ch12"; 319 "ch12";
320 clocks = <&mstp5_clks R8A7794_CLK_AUDIO_DMAC0>; 320 clocks = <&mstp5_clks R8A7794_CLK_AUDIO_DMAC0>;
321 clock-names = "fck"; 321 clock-names = "fck";
322 power-domains = <&cpg_clocks>; 322 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
323 #dma-cells = <1>; 323 #dma-cells = <1>;
324 dma-channels = <13>; 324 dma-channels = <13>;
325 }; 325 };
@@ -411,7 +411,7 @@
411 scifb0: serial@e6c20000 { 411 scifb0: serial@e6c20000 {
412 compatible = "renesas,scifb-r8a7794", 412 compatible = "renesas,scifb-r8a7794",
413 "renesas,rcar-gen2-scifb", "renesas,scifb"; 413 "renesas,rcar-gen2-scifb", "renesas,scifb";
414 reg = <0 0xe6c20000 0 64>; 414 reg = <0 0xe6c20000 0 0x100>;
415 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 415 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
416 clocks = <&mstp2_clks R8A7794_CLK_SCIFB0>; 416 clocks = <&mstp2_clks R8A7794_CLK_SCIFB0>;
417 clock-names = "fck"; 417 clock-names = "fck";
@@ -425,7 +425,7 @@
425 scifb1: serial@e6c30000 { 425 scifb1: serial@e6c30000 {
426 compatible = "renesas,scifb-r8a7794", 426 compatible = "renesas,scifb-r8a7794",
427 "renesas,rcar-gen2-scifb", "renesas,scifb"; 427 "renesas,rcar-gen2-scifb", "renesas,scifb";
428 reg = <0 0xe6c30000 0 64>; 428 reg = <0 0xe6c30000 0 0x100>;
429 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 429 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
430 clocks = <&mstp2_clks R8A7794_CLK_SCIFB1>; 430 clocks = <&mstp2_clks R8A7794_CLK_SCIFB1>;
431 clock-names = "fck"; 431 clock-names = "fck";
@@ -439,7 +439,7 @@
439 scifb2: serial@e6ce0000 { 439 scifb2: serial@e6ce0000 {
440 compatible = "renesas,scifb-r8a7794", 440 compatible = "renesas,scifb-r8a7794",
441 "renesas,rcar-gen2-scifb", "renesas,scifb"; 441 "renesas,rcar-gen2-scifb", "renesas,scifb";
442 reg = <0 0xe6ce0000 0 64>; 442 reg = <0 0xe6ce0000 0 0x100>;
443 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>; 443 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
444 clocks = <&mstp2_clks R8A7794_CLK_SCIFB2>; 444 clocks = <&mstp2_clks R8A7794_CLK_SCIFB2>;
445 clock-names = "fck"; 445 clock-names = "fck";
@@ -731,6 +731,7 @@
731 dmas = <&dmac0 0xcd>, <&dmac0 0xce>, 731 dmas = <&dmac0 0xcd>, <&dmac0 0xce>,
732 <&dmac1 0xcd>, <&dmac1 0xce>; 732 <&dmac1 0xcd>, <&dmac1 0xce>;
733 dma-names = "tx", "rx", "tx", "rx"; 733 dma-names = "tx", "rx", "tx", "rx";
734 max-frequency = <195000000>;
734 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 735 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
735 status = "disabled"; 736 status = "disabled";
736 }; 737 };
@@ -743,6 +744,7 @@
743 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>, 744 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>,
744 <&dmac1 0xc1>, <&dmac1 0xc2>; 745 <&dmac1 0xc1>, <&dmac1 0xc2>;
745 dma-names = "tx", "rx", "tx", "rx"; 746 dma-names = "tx", "rx", "tx", "rx";
747 max-frequency = <97500000>;
746 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 748 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
747 status = "disabled"; 749 status = "disabled";
748 }; 750 };
@@ -755,6 +757,7 @@
755 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>, 757 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>,
756 <&dmac1 0xd3>, <&dmac1 0xd4>; 758 <&dmac1 0xd3>, <&dmac1 0xd4>;
757 dma-names = "tx", "rx", "tx", "rx"; 759 dma-names = "tx", "rx", "tx", "rx";
760 max-frequency = <97500000>;
758 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 761 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
759 status = "disabled"; 762 status = "disabled";
760 }; 763 };
@@ -1025,8 +1028,7 @@
1025 clocks = <&extal_clk &usb_extal_clk>; 1028 clocks = <&extal_clk &usb_extal_clk>;
1026 #clock-cells = <1>; 1029 #clock-cells = <1>;
1027 clock-output-names = "main", "pll0", "pll1", "pll3", 1030 clock-output-names = "main", "pll0", "pll1", "pll3",
1028 "lb", "qspi", "sdh", "sd0", "z", 1031 "lb", "qspi", "sdh", "sd0", "rcan";
1029 "rcan";
1030 #power-domain-cells = <0>; 1032 #power-domain-cells = <0>;
1031 }; 1033 };
1032 /* Variable factor clocks */ 1034 /* Variable factor clocks */
@@ -1260,7 +1262,7 @@
1260 mstp7_clks: mstp7_clks@e615014c { 1262 mstp7_clks: mstp7_clks@e615014c {
1261 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks"; 1263 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
1262 reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>; 1264 reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>;
1263 clocks = <&mp_clk>, <&mp_clk>, 1265 clocks = <&mp_clk>, <&hp_clk>,
1264 <&zs_clk>, <&p_clk>, <&p_clk>, <&zs_clk>, 1266 <&zs_clk>, <&p_clk>, <&p_clk>, <&zs_clk>,
1265 <&zs_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, 1267 <&zs_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>,
1266 <&zx_clk>; 1268 <&zx_clk>;
@@ -1380,6 +1382,11 @@
1380 reg = <0 0xe6160000 0 0x0100>; 1382 reg = <0 0xe6160000 0 0x0100>;
1381 }; 1383 };
1382 1384
1385 prr: chipid@ff000044 {
1386 compatible = "renesas,prr";
1387 reg = <0 0xff000044 0 4>;
1388 };
1389
1383 sysc: system-controller@e6180000 { 1390 sysc: system-controller@e6180000 {
1384 compatible = "renesas,r8a7794-sysc"; 1391 compatible = "renesas,r8a7794-sysc";
1385 reg = <0 0xe6180000 0 0x0200>; 1392 reg = <0 0xe6180000 0 0x0200>;
@@ -1488,67 +1495,67 @@
1488 "mix.0", "mix.1", 1495 "mix.0", "mix.1",
1489 "dvc.0", "dvc.1", 1496 "dvc.0", "dvc.1",
1490 "clk_a", "clk_b", "clk_c", "clk_i"; 1497 "clk_a", "clk_b", "clk_c", "clk_i";
1491 power-domains = <&cpg_clocks>; 1498 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
1492 1499
1493 status = "disabled"; 1500 status = "disabled";
1494 1501
1495 rcar_sound,dvc { 1502 rcar_sound,dvc {
1496 dvc0: dvc@0 { 1503 dvc0: dvc-0 {
1497 dmas = <&audma0 0xbc>; 1504 dmas = <&audma0 0xbc>;
1498 dma-names = "tx"; 1505 dma-names = "tx";
1499 }; 1506 };
1500 dvc1: dvc@1 { 1507 dvc1: dvc-1 {
1501 dmas = <&audma0 0xbe>; 1508 dmas = <&audma0 0xbe>;
1502 dma-names = "tx"; 1509 dma-names = "tx";
1503 }; 1510 };
1504 }; 1511 };
1505 1512
1506 rcar_sound,mix { 1513 rcar_sound,mix {
1507 mix0: mix@0 { }; 1514 mix0: mix-0 { };
1508 mix1: mix@1 { }; 1515 mix1: mix-1 { };
1509 }; 1516 };
1510 1517
1511 rcar_sound,ctu { 1518 rcar_sound,ctu {
1512 ctu00: ctu@0 { }; 1519 ctu00: ctu-0 { };
1513 ctu01: ctu@1 { }; 1520 ctu01: ctu-1 { };
1514 ctu02: ctu@2 { }; 1521 ctu02: ctu-2 { };
1515 ctu03: ctu@3 { }; 1522 ctu03: ctu-3 { };
1516 ctu10: ctu@4 { }; 1523 ctu10: ctu-4 { };
1517 ctu11: ctu@5 { }; 1524 ctu11: ctu-5 { };
1518 ctu12: ctu@6 { }; 1525 ctu12: ctu-6 { };
1519 ctu13: ctu@7 { }; 1526 ctu13: ctu-7 { };
1520 }; 1527 };
1521 1528
1522 rcar_sound,src { 1529 rcar_sound,src {
1523 src@0 { 1530 src-0 {
1524 status = "disabled"; 1531 status = "disabled";
1525 }; 1532 };
1526 src1: src@1 { 1533 src1: src-1 {
1527 interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>; 1534 interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
1528 dmas = <&audma0 0x87>, <&audma0 0x9c>; 1535 dmas = <&audma0 0x87>, <&audma0 0x9c>;
1529 dma-names = "rx", "tx"; 1536 dma-names = "rx", "tx";
1530 }; 1537 };
1531 src2: src@2 { 1538 src2: src-2 {
1532 interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>; 1539 interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
1533 dmas = <&audma0 0x89>, <&audma0 0x9e>; 1540 dmas = <&audma0 0x89>, <&audma0 0x9e>;
1534 dma-names = "rx", "tx"; 1541 dma-names = "rx", "tx";
1535 }; 1542 };
1536 src3: src@3 { 1543 src3: src-3 {
1537 interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>; 1544 interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
1538 dmas = <&audma0 0x8b>, <&audma0 0xa0>; 1545 dmas = <&audma0 0x8b>, <&audma0 0xa0>;
1539 dma-names = "rx", "tx"; 1546 dma-names = "rx", "tx";
1540 }; 1547 };
1541 src4: src@4 { 1548 src4: src-4 {
1542 interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>; 1549 interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
1543 dmas = <&audma0 0x8d>, <&audma0 0xb0>; 1550 dmas = <&audma0 0x8d>, <&audma0 0xb0>;
1544 dma-names = "rx", "tx"; 1551 dma-names = "rx", "tx";
1545 }; 1552 };
1546 src5: src@5 { 1553 src5: src-5 {
1547 interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>; 1554 interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
1548 dmas = <&audma0 0x8f>, <&audma0 0xb2>; 1555 dmas = <&audma0 0x8f>, <&audma0 0xb2>;
1549 dma-names = "rx", "tx"; 1556 dma-names = "rx", "tx";
1550 }; 1557 };
1551 src6: src@6 { 1558 src6: src-6 {
1552 interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>; 1559 interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
1553 dmas = <&audma0 0x91>, <&audma0 0xb4>; 1560 dmas = <&audma0 0x91>, <&audma0 0xb4>;
1554 dma-names = "rx", "tx"; 1561 dma-names = "rx", "tx";
@@ -1556,61 +1563,61 @@
1556 }; 1563 };
1557 1564
1558 rcar_sound,ssi { 1565 rcar_sound,ssi {
1559 ssi0: ssi@0 { 1566 ssi0: ssi-0 {
1560 interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>; 1567 interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>;
1561 dmas = <&audma0 0x01>, <&audma0 0x02>, 1568 dmas = <&audma0 0x01>, <&audma0 0x02>,
1562 <&audma0 0x15>, <&audma0 0x16>; 1569 <&audma0 0x15>, <&audma0 0x16>;
1563 dma-names = "rx", "tx", "rxu", "txu"; 1570 dma-names = "rx", "tx", "rxu", "txu";
1564 }; 1571 };
1565 ssi1: ssi@1 { 1572 ssi1: ssi-1 {
1566 interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>; 1573 interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>;
1567 dmas = <&audma0 0x03>, <&audma0 0x04>, 1574 dmas = <&audma0 0x03>, <&audma0 0x04>,
1568 <&audma0 0x49>, <&audma0 0x4a>; 1575 <&audma0 0x49>, <&audma0 0x4a>;
1569 dma-names = "rx", "tx", "rxu", "txu"; 1576 dma-names = "rx", "tx", "rxu", "txu";
1570 }; 1577 };
1571 ssi2: ssi@2 { 1578 ssi2: ssi-2 {
1572 interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>; 1579 interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>;
1573 dmas = <&audma0 0x05>, <&audma0 0x06>, 1580 dmas = <&audma0 0x05>, <&audma0 0x06>,
1574 <&audma0 0x63>, <&audma0 0x64>; 1581 <&audma0 0x63>, <&audma0 0x64>;
1575 dma-names = "rx", "tx", "rxu", "txu"; 1582 dma-names = "rx", "tx", "rxu", "txu";
1576 }; 1583 };
1577 ssi3: ssi@3 { 1584 ssi3: ssi-3 {
1578 interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>; 1585 interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
1579 dmas = <&audma0 0x07>, <&audma0 0x08>, 1586 dmas = <&audma0 0x07>, <&audma0 0x08>,
1580 <&audma0 0x6f>, <&audma0 0x70>; 1587 <&audma0 0x6f>, <&audma0 0x70>;
1581 dma-names = "rx", "tx", "rxu", "txu"; 1588 dma-names = "rx", "tx", "rxu", "txu";
1582 }; 1589 };
1583 ssi4: ssi@4 { 1590 ssi4: ssi-4 {
1584 interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>; 1591 interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>;
1585 dmas = <&audma0 0x09>, <&audma0 0x0a>, 1592 dmas = <&audma0 0x09>, <&audma0 0x0a>,
1586 <&audma0 0x71>, <&audma0 0x72>; 1593 <&audma0 0x71>, <&audma0 0x72>;
1587 dma-names = "rx", "tx", "rxu", "txu"; 1594 dma-names = "rx", "tx", "rxu", "txu";
1588 }; 1595 };
1589 ssi5: ssi@5 { 1596 ssi5: ssi-5 {
1590 interrupts = <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>; 1597 interrupts = <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>;
1591 dmas = <&audma0 0x0b>, <&audma0 0x0c>, 1598 dmas = <&audma0 0x0b>, <&audma0 0x0c>,
1592 <&audma0 0x73>, <&audma0 0x74>; 1599 <&audma0 0x73>, <&audma0 0x74>;
1593 dma-names = "rx", "tx", "rxu", "txu"; 1600 dma-names = "rx", "tx", "rxu", "txu";
1594 }; 1601 };
1595 ssi6: ssi@6 { 1602 ssi6: ssi-6 {
1596 interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>; 1603 interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>;
1597 dmas = <&audma0 0x0d>, <&audma0 0x0e>, 1604 dmas = <&audma0 0x0d>, <&audma0 0x0e>,
1598 <&audma0 0x75>, <&audma0 0x76>; 1605 <&audma0 0x75>, <&audma0 0x76>;
1599 dma-names = "rx", "tx", "rxu", "txu"; 1606 dma-names = "rx", "tx", "rxu", "txu";
1600 }; 1607 };
1601 ssi7: ssi@7 { 1608 ssi7: ssi-7 {
1602 interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>; 1609 interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>;
1603 dmas = <&audma0 0x0f>, <&audma0 0x10>, 1610 dmas = <&audma0 0x0f>, <&audma0 0x10>,
1604 <&audma0 0x79>, <&audma0 0x7a>; 1611 <&audma0 0x79>, <&audma0 0x7a>;
1605 dma-names = "rx", "tx", "rxu", "txu"; 1612 dma-names = "rx", "tx", "rxu", "txu";
1606 }; 1613 };
1607 ssi8: ssi@8 { 1614 ssi8: ssi-8 {
1608 interrupts = <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>; 1615 interrupts = <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>;
1609 dmas = <&audma0 0x11>, <&audma0 0x12>, 1616 dmas = <&audma0 0x11>, <&audma0 0x12>,
1610 <&audma0 0x7b>, <&audma0 0x7c>; 1617 <&audma0 0x7b>, <&audma0 0x7c>;
1611 dma-names = "rx", "tx", "rxu", "txu"; 1618 dma-names = "rx", "tx", "rxu", "txu";
1612 }; 1619 };
1613 ssi9: ssi@9 { 1620 ssi9: ssi-9 {
1614 interrupts = <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>; 1621 interrupts = <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
1615 dmas = <&audma0 0x13>, <&audma0 0x14>, 1622 dmas = <&audma0 0x13>, <&audma0 0x14>,
1616 <&audma0 0x7d>, <&audma0 0x7e>; 1623 <&audma0 0x7d>, <&audma0 0x7e>;
diff --git a/arch/arm/boot/dts/rk1108-evb.dts b/arch/arm/boot/dts/rk1108-evb.dts
new file mode 100644
index 000000000000..3956cff4ca79
--- /dev/null
+++ b/arch/arm/boot/dts/rk1108-evb.dts
@@ -0,0 +1,69 @@
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 "rk1108.dtsi"
44
45/ {
46 model = "Rockchip RK1108 Evaluation board";
47 compatible = "rockchip,rk1108-evb", "rockchip,rk1108";
48
49 memory@60000000 {
50 device_type = "memory";
51 reg = <0x60000000 0x08000000>;
52 };
53
54 chosen {
55 stdout-path = "serial2:1500000n8";
56 };
57};
58
59&uart0 {
60 status = "okay";
61};
62
63&uart1 {
64 status = "okay";
65};
66
67&uart2 {
68 status = "okay";
69};
diff --git a/arch/arm/boot/dts/rk1108.dtsi b/arch/arm/boot/dts/rk1108.dtsi
new file mode 100644
index 000000000000..d7700235e0f5
--- /dev/null
+++ b/arch/arm/boot/dts/rk1108.dtsi
@@ -0,0 +1,452 @@
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/clock/rk1108-cru.h>
45#include <dt-bindings/pinctrl/rockchip.h>
46/ {
47 #address-cells = <1>;
48 #size-cells = <1>;
49
50 compatible = "rockchip,rk1108";
51
52 interrupt-parent = <&gic>;
53
54 aliases {
55 serial0 = &uart0;
56 serial1 = &uart1;
57 serial2 = &uart2;
58 };
59
60 cpus {
61 #address-cells = <1>;
62 #size-cells = <0>;
63
64 cpu0: cpu@f00 {
65 device_type = "cpu";
66 compatible = "arm,cortex-a7";
67 reg = <0xf00>;
68 };
69 };
70
71 arm-pmu {
72 compatible = "arm,cortex-a7-pmu";
73 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
74 };
75
76 timer {
77 compatible = "arm,armv7-timer";
78 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>,
79 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
80 clock-frequency = <24000000>;
81 };
82
83 xin24m: oscillator {
84 compatible = "fixed-clock";
85 clock-frequency = <24000000>;
86 clock-output-names = "xin24m";
87 #clock-cells = <0>;
88 };
89
90 amba {
91 compatible = "simple-bus";
92 #address-cells = <1>;
93 #size-cells = <1>;
94 ranges;
95
96 pdma: pdma@102a0000 {
97 compatible = "arm,pl330", "arm,primecell";
98 reg = <0x102a0000 0x4000>;
99 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
100 #dma-cells = <1>;
101 arm,pl330-broken-no-flushp;
102 clocks = <&cru ACLK_DMAC>;
103 clock-names = "apb_pclk";
104 };
105 };
106
107 bus_intmem@10080000 {
108 compatible = "mmio-sram";
109 reg = <0x10080000 0x2000>;
110 #address-cells = <1>;
111 #size-cells = <1>;
112 ranges = <0 0x10080000 0x2000>;
113 };
114
115 uart2: serial@10210000 {
116 compatible = "rockchip,rk1108-uart", "snps,dw-apb-uart";
117 reg = <0x10210000 0x100>;
118 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
119 reg-shift = <2>;
120 reg-io-width = <4>;
121 clock-frequency = <24000000>;
122 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
123 clock-names = "baudclk", "apb_pclk";
124 pinctrl-names = "default";
125 pinctrl-0 = <&uart2m0_xfer>;
126 status = "disabled";
127 };
128
129 uart1: serial@10220000 {
130 compatible = "rockchip,rk1108-uart", "snps,dw-apb-uart";
131 reg = <0x10220000 0x100>;
132 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
133 reg-shift = <2>;
134 reg-io-width = <4>;
135 clock-frequency = <24000000>;
136 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
137 clock-names = "baudclk", "apb_pclk";
138 pinctrl-names = "default";
139 pinctrl-0 = <&uart1_xfer>;
140 status = "disabled";
141 };
142
143 uart0: serial@10230000 {
144 compatible = "rockchip,rk1108-uart", "snps,dw-apb-uart";
145 reg = <0x10230000 0x100>;
146 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
147 reg-shift = <2>;
148 reg-io-width = <4>;
149 clock-frequency = <24000000>;
150 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
151 clock-names = "baudclk", "apb_pclk";
152 pinctrl-names = "default";
153 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
154 status = "disabled";
155 };
156
157 grf: syscon@10300000 {
158 compatible = "rockchip,rk1108-grf", "syscon";
159 reg = <0x10300000 0x1000>;
160 };
161
162 pmugrf: syscon@20060000 {
163 compatible = "rockchip,rk1108-pmugrf", "syscon";
164 reg = <0x20060000 0x1000>;
165 };
166
167 cru: clock-controller@20200000 {
168 compatible = "rockchip,rk1108-cru";
169 reg = <0x20200000 0x1000>;
170 rockchip,grf = <&grf>;
171 #clock-cells = <1>;
172 #reset-cells = <1>;
173 };
174
175 emmc: dwmmc@30110000 {
176 compatible = "rockchip,rk1108-dw-mshc", "rockchip,rk3288-dw-mshc";
177 clock-freq-min-max = <400000 150000000>;
178 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
179 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
180 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
181 fifo-depth = <0x100>;
182 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
183 reg = <0x30110000 0x4000>;
184 status = "disabled";
185 };
186
187 sdio: dwmmc@30120000 {
188 compatible = "rockchip,rk1108-dw-mshc", "rockchip,rk3288-dw-mshc";
189 clock-freq-min-max = <400000 150000000>;
190 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
191 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
192 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
193 fifo-depth = <0x100>;
194 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
195 reg = <0x30120000 0x4000>;
196 status = "disabled";
197 };
198
199 sdmmc: dwmmc@30130000 {
200 compatible = "rockchip,rk1108-dw-mshc", "rockchip,rk3288-dw-mshc";
201 clock-freq-min-max = <400000 100000000>;
202 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
203 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
204 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
205 fifo-depth = <0x100>;
206 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
207 reg = <0x30130000 0x4000>;
208 status = "disabled";
209 };
210
211 gic: interrupt-controller@32010000 {
212 compatible = "arm,gic-400";
213 interrupt-controller;
214 #interrupt-cells = <3>;
215 #address-cells = <0>;
216
217 reg = <0x32011000 0x1000>,
218 <0x32012000 0x1000>,
219 <0x32014000 0x2000>,
220 <0x32016000 0x2000>;
221 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
222 };
223
224 pinctrl: pinctrl {
225 compatible = "rockchip,rk1108-pinctrl";
226 rockchip,grf = <&grf>;
227 rockchip,pmu = <&pmugrf>;
228 #address-cells = <1>;
229 #size-cells = <1>;
230 ranges;
231
232 gpio0: gpio0@20030000 {
233 compatible = "rockchip,gpio-bank";
234 reg = <0x20030000 0x100>;
235 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
236 clocks = <&xin24m>;
237
238 gpio-controller;
239 #gpio-cells = <2>;
240
241 interrupt-controller;
242 #interrupt-cells = <2>;
243 };
244
245 gpio1: gpio1@10310000 {
246 compatible = "rockchip,gpio-bank";
247 reg = <0x10310000 0x100>;
248 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
249 clocks = <&xin24m>;
250
251 gpio-controller;
252 #gpio-cells = <2>;
253
254 interrupt-controller;
255 #interrupt-cells = <2>;
256 };
257
258 gpio2: gpio2@10320000 {
259 compatible = "rockchip,gpio-bank";
260 reg = <0x10320000 0x100>;
261 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
262 clocks = <&xin24m>;
263
264 gpio-controller;
265 #gpio-cells = <2>;
266
267 interrupt-controller;
268 #interrupt-cells = <2>;
269 };
270
271 gpio3: gpio3@10330000 {
272 compatible = "rockchip,gpio-bank";
273 reg = <0x10330000 0x100>;
274 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
275 clocks = <&xin24m>;
276
277 gpio-controller;
278 #gpio-cells = <2>;
279
280 interrupt-controller;
281 #interrupt-cells = <2>;
282 };
283
284 pcfg_pull_up: pcfg-pull-up {
285 bias-pull-up;
286 };
287
288 pcfg_pull_down: pcfg-pull-down {
289 bias-pull-down;
290 };
291
292 pcfg_pull_none: pcfg-pull-none {
293 bias-disable;
294 };
295
296 pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
297 drive-strength = <8>;
298 };
299
300 pcfg_pull_none_drv_12ma: pcfg-pull-none-drv-12ma {
301 drive-strength = <12>;
302 };
303
304 pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
305 bias-pull-up;
306 drive-strength = <8>;
307 };
308
309 pcfg_pull_none_drv_4ma: pcfg-pull-none-drv-4ma {
310 drive-strength = <4>;
311 };
312
313 pcfg_pull_up_drv_4ma: pcfg-pull-up-drv-4ma {
314 bias-pull-up;
315 drive-strength = <4>;
316 };
317
318 pcfg_output_high: pcfg-output-high {
319 output-high;
320 };
321
322 pcfg_output_low: pcfg-output-low {
323 output-low;
324 };
325
326 pcfg_input_high: pcfg-input-high {
327 bias-pull-up;
328 input-enable;
329 };
330
331 i2c1 {
332 i2c1_xfer: i2c1-xfer {
333 rockchip,pins = <2 RK_PD3 RK_FUNC_1 &pcfg_pull_up>,
334 <2 RK_PD4 RK_FUNC_1 &pcfg_pull_up>;
335 };
336 };
337
338 i2c2m1 {
339 i2c2m1_xfer: i2c2m1-xfer {
340 rockchip,pins = <0 RK_PC2 RK_FUNC_2 &pcfg_pull_none>,
341 <0 RK_PC6 RK_FUNC_3 &pcfg_pull_none>;
342 };
343
344 i2c2m1_gpio: i2c2m1-gpio {
345 rockchip,pins = <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>,
346 <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
347 };
348 };
349
350 i2c2m05v {
351 i2c2m05v_xfer: i2c2m05v-xfer {
352 rockchip,pins = <1 RK_PD5 RK_FUNC_2 &pcfg_pull_none>,
353 <1 RK_PD4 RK_FUNC_2 &pcfg_pull_none>;
354 };
355
356 i2c2m05v_gpio: i2c2m05v-gpio {
357 rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>,
358 <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
359 };
360 };
361
362 i2c3 {
363 i2c3_xfer: i2c3-xfer {
364 rockchip,pins = <0 RK_PB6 RK_FUNC_1 &pcfg_pull_none>,
365 <0 RK_PC4 RK_FUNC_2 &pcfg_pull_none>;
366 };
367 };
368
369 sdmmc {
370 sdmmc_clk: sdmmc-clk {
371 rockchip,pins = <3 RK_PC4 RK_FUNC_1 &pcfg_pull_none_drv_4ma>;
372 };
373
374 sdmmc_cmd: sdmmc-cmd {
375 rockchip,pins = <3 RK_PC5 RK_FUNC_1 &pcfg_pull_up_drv_4ma>;
376 };
377
378 sdmmc_cd: sdmmc-cd {
379 rockchip,pins = <0 RK_PA1 RK_FUNC_1 &pcfg_pull_up_drv_4ma>;
380 };
381
382 sdmmc_bus1: sdmmc-bus1 {
383 rockchip,pins = <3 RK_PC3 RK_FUNC_1 &pcfg_pull_up_drv_4ma>;
384 };
385
386 sdmmc_bus4: sdmmc-bus4 {
387 rockchip,pins = <3 RK_PC3 RK_FUNC_1 &pcfg_pull_up_drv_4ma>,
388 <3 RK_PC2 RK_FUNC_1 &pcfg_pull_up_drv_4ma>,
389 <3 RK_PC1 RK_FUNC_1 &pcfg_pull_up_drv_4ma>,
390 <3 RK_PC0 RK_FUNC_1 &pcfg_pull_up_drv_4ma>;
391 };
392 };
393
394 uart0 {
395 uart0_xfer: uart0-xfer {
396 rockchip,pins = <3 RK_PA6 RK_FUNC_1 &pcfg_pull_up>,
397 <3 RK_PA5 RK_FUNC_1 &pcfg_pull_none>;
398 };
399
400 uart0_cts: uart0-cts {
401 rockchip,pins = <3 RK_PA4 RK_FUNC_1 &pcfg_pull_none>;
402 };
403
404 uart0_rts: uart0-rts {
405 rockchip,pins = <3 RK_PA3 RK_FUNC_1 &pcfg_pull_none>;
406 };
407
408 uart0_rts_gpio: uart0-rts-gpio {
409 rockchip,pins = <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
410 };
411 };
412
413 uart1 {
414 uart1_xfer: uart1-xfer {
415 rockchip,pins = <1 RK_PD3 RK_FUNC_1 &pcfg_pull_up>,
416 <1 RK_PD2 RK_FUNC_1 &pcfg_pull_none>;
417 };
418
419 uart1_cts: uart1-cts {
420 rockchip,pins = <1 RK_PD0 RK_FUNC_1 &pcfg_pull_none>;
421 };
422
423 uart1_rts: uart1-rts {
424 rockchip,pins = <1 RK_PD1 RK_FUNC_1 &pcfg_pull_none>;
425 };
426 };
427
428 uart2m0 {
429 uart2m0_xfer: uart2m0-xfer {
430 rockchip,pins = <2 RK_PD2 RK_FUNC_1 &pcfg_pull_up>,
431 <2 RK_PD1 RK_FUNC_1 &pcfg_pull_none>;
432 };
433 };
434
435 uart2m1 {
436 uart2m1_xfer: uart2m1-xfer {
437 rockchip,pins = <3 RK_PC3 RK_FUNC_2 &pcfg_pull_up>,
438 <3 RK_PC2 RK_FUNC_2 &pcfg_pull_none>;
439 };
440 };
441
442 uart2_5v {
443 uart2_5v_cts: uart2_5v-cts {
444 rockchip,pins = <1 RK_PD4 RK_FUNC_1 &pcfg_pull_none>;
445 };
446
447 uart2_5v_rts: uart2_5v-rts {
448 rockchip,pins = <1 RK_PD5 RK_FUNC_1 &pcfg_pull_none>;
449 };
450 };
451 };
452};
diff --git a/arch/arm/boot/dts/rk3036-evb.dts b/arch/arm/boot/dts/rk3036-evb.dts
index 8db9e9b197a2..2f5f15524fba 100644
--- a/arch/arm/boot/dts/rk3036-evb.dts
+++ b/arch/arm/boot/dts/rk3036-evb.dts
@@ -46,7 +46,7 @@
46 model = "Rockchip RK3036 Evaluation board"; 46 model = "Rockchip RK3036 Evaluation board";
47 compatible = "rockchip,rk3036-evb", "rockchip,rk3036"; 47 compatible = "rockchip,rk3036-evb", "rockchip,rk3036";
48 48
49 memory { 49 memory@60000000 {
50 device_type = "memory"; 50 device_type = "memory";
51 reg = <0x60000000 0x40000000>; 51 reg = <0x60000000 0x40000000>;
52 }; 52 };
diff --git a/arch/arm/boot/dts/rk3036-kylin.dts b/arch/arm/boot/dts/rk3036-kylin.dts
index 1df1557a46c3..3de958ec29c0 100644
--- a/arch/arm/boot/dts/rk3036-kylin.dts
+++ b/arch/arm/boot/dts/rk3036-kylin.dts
@@ -46,7 +46,7 @@
46 model = "Rockchip RK3036 KylinBoard"; 46 model = "Rockchip RK3036 KylinBoard";
47 compatible = "rockchip,rk3036-kylin", "rockchip,rk3036"; 47 compatible = "rockchip,rk3036-kylin", "rockchip,rk3036";
48 48
49 memory { 49 memory@60000000 {
50 device_type = "memory"; 50 device_type = "memory";
51 reg = <0x60000000 0x20000000>; 51 reg = <0x60000000 0x20000000>;
52 }; 52 };
diff --git a/arch/arm/boot/dts/rk3036.dtsi b/arch/arm/boot/dts/rk3036.dtsi
index 7c2dc19925a1..4ed49a243e5c 100644
--- a/arch/arm/boot/dts/rk3036.dtsi
+++ b/arch/arm/boot/dts/rk3036.dtsi
@@ -44,9 +44,11 @@
44#include <dt-bindings/pinctrl/rockchip.h> 44#include <dt-bindings/pinctrl/rockchip.h>
45#include <dt-bindings/clock/rk3036-cru.h> 45#include <dt-bindings/clock/rk3036-cru.h>
46#include <dt-bindings/soc/rockchip,boot-mode.h> 46#include <dt-bindings/soc/rockchip,boot-mode.h>
47#include "skeleton.dtsi"
48 47
49/ { 48/ {
49 #address-cells = <1>;
50 #size-cells = <1>;
51
50 compatible = "rockchip,rk3036"; 52 compatible = "rockchip,rk3036";
51 53
52 interrupt-parent = <&gic>; 54 interrupt-parent = <&gic>;
@@ -243,7 +245,7 @@
243 compatible = "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc"; 245 compatible = "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc";
244 reg = <0x10214000 0x4000>; 246 reg = <0x10214000 0x4000>;
245 clock-frequency = <37500000>; 247 clock-frequency = <37500000>;
246 clock-freq-min-max = <400000 37500000>; 248 max-frequency = <37500000>;
247 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>; 249 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>;
248 clock-names = "biu", "ciu"; 250 clock-names = "biu", "ciu";
249 fifo-depth = <0x100>; 251 fifo-depth = <0x100>;
@@ -254,7 +256,7 @@
254 sdio: dwmmc@10218000 { 256 sdio: dwmmc@10218000 {
255 compatible = "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc"; 257 compatible = "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc";
256 reg = <0x10218000 0x4000>; 258 reg = <0x10218000 0x4000>;
257 clock-freq-min-max = <400000 37500000>; 259 max-frequency = <37500000>;
258 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>, 260 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
259 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>; 261 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
260 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample"; 262 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
@@ -270,7 +272,7 @@
270 bus-width = <8>; 272 bus-width = <8>;
271 cap-mmc-highspeed; 273 cap-mmc-highspeed;
272 clock-frequency = <37500000>; 274 clock-frequency = <37500000>;
273 clock-freq-min-max = <400000 37500000>; 275 max-frequency = <37500000>;
274 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>, 276 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
275 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; 277 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
276 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample"; 278 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
diff --git a/arch/arm/boot/dts/rk3066a-bqcurie2.dts b/arch/arm/boot/dts/rk3066a-bqcurie2.dts
index bc674ee206ec..c0d8b5446ba7 100644
--- a/arch/arm/boot/dts/rk3066a-bqcurie2.dts
+++ b/arch/arm/boot/dts/rk3066a-bqcurie2.dts
@@ -49,7 +49,7 @@
49 model = "bq Curie 2"; 49 model = "bq Curie 2";
50 compatible = "mundoreader,bq-curie2", "rockchip,rk3066a"; 50 compatible = "mundoreader,bq-curie2", "rockchip,rk3066a";
51 51
52 memory { 52 memory@60000000 {
53 device_type = "memory"; 53 device_type = "memory";
54 reg = <0x60000000 0x40000000>; 54 reg = <0x60000000 0x40000000>;
55 }; 55 };
diff --git a/arch/arm/boot/dts/rk3066a-marsboard.dts b/arch/arm/boot/dts/rk3066a-marsboard.dts
index a2b763e949b4..0a54c4beff8d 100644
--- a/arch/arm/boot/dts/rk3066a-marsboard.dts
+++ b/arch/arm/boot/dts/rk3066a-marsboard.dts
@@ -47,7 +47,7 @@
47 model = "MarsBoard RK3066"; 47 model = "MarsBoard RK3066";
48 compatible = "haoyu,marsboard-rk3066", "rockchip,rk3066a"; 48 compatible = "haoyu,marsboard-rk3066", "rockchip,rk3066a";
49 49
50 memory { 50 memory@60000000 {
51 device_type = "memory"; 51 device_type = "memory";
52 reg = <0x60000000 0x40000000>; 52 reg = <0x60000000 0x40000000>;
53 }; 53 };
diff --git a/arch/arm/boot/dts/rk3066a-mk808.dts b/arch/arm/boot/dts/rk3066a-mk808.dts
new file mode 100644
index 000000000000..658eb7ddeaf5
--- /dev/null
+++ b/arch/arm/boot/dts/rk3066a-mk808.dts
@@ -0,0 +1,195 @@
1/*
2 * Copyright (c) 2016 Paweł Jarosz <paweljarosz3691@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 "rk3066a.dtsi"
45
46/ {
47 model = "Rikomagic MK808";
48 compatible = "rikomagic,mk808", "rockchip,rk3066a";
49
50 chosen {
51 stdout-path = "serial2:115200n8";
52 };
53
54 memory@60000000 {
55 reg = <0x60000000 0x40000000>;
56 device_type = "memory";
57 };
58
59 gpio-leds {
60 compatible = "gpio-leds";
61
62 blue {
63 label = "mk808:blue:power";
64 gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>;
65 default-state = "off";
66 linux,default-trigger = "default-on";
67 };
68 };
69
70 vcc_io: vcc-io {
71 compatible = "regulator-fixed";
72 regulator-name = "vcc_io";
73 regulator-min-microvolt = <3300000>;
74 regulator-max-microvolt = <3300000>;
75 };
76
77 vcc_host: usb-host-regulator {
78 compatible = "regulator-fixed";
79 enable-active-high;
80 gpio = <&gpio0 6 GPIO_ACTIVE_HIGH>;
81 pinctrl-0 = <&host_drv>;
82 pinctrl-names = "default";
83 regulator-always-on;
84 regulator-name = "host-pwr";
85 regulator-min-microvolt = <5000000>;
86 regulator-max-microvolt = <5000000>;
87 startup-delay-us = <100000>;
88 vin-supply = <&vcc_io>;
89 };
90
91 vcc_otg: usb-otg-regulator {
92 compatible = "regulator-fixed";
93 enable-active-high;
94 gpio = <&gpio0 5 GPIO_ACTIVE_HIGH>;
95 pinctrl-0 = <&otg_drv>;
96 pinctrl-names = "default";
97 regulator-always-on;
98 regulator-name = "vcc_otg";
99 regulator-min-microvolt = <5000000>;
100 regulator-max-microvolt = <5000000>;
101 startup-delay-us = <100000>;
102 vin-supply = <&vcc_io>;
103 };
104
105 vcc_sd: sdmmc-regulator {
106 compatible = "regulator-fixed";
107 gpio = <&gpio3 7 GPIO_ACTIVE_LOW>;
108 pinctrl-0 = <&sdmmc_pwr>;
109 pinctrl-names = "default";
110 regulator-name = "vcc_sd";
111 regulator-min-microvolt = <3300000>;
112 regulator-max-microvolt = <3300000>;
113 startup-delay-us = <100000>;
114 vin-supply = <&vcc_io>;
115 };
116
117 vcc_wifi: sdio-regulator {
118 compatible = "regulator-fixed";
119 enable-active-high;
120 gpio = <&gpio3 24 GPIO_ACTIVE_HIGH>;
121 pinctrl-0 = <&wifi_pwr>;
122 pinctrl-names = "default";
123 regulator-name = "vcc_wifi";
124 regulator-min-microvolt = <3300000>;
125 regulator-max-microvolt = <3300000>;
126 startup-delay-us = <100000>;
127 vin-supply = <&vcc_io>;
128 };
129};
130
131&mmc0 {
132 bus-width = <4>;
133 cap-mmc-highspeed;
134 cap-sd-highspeed;
135 num-slots = <1>;
136 vmmc-supply = <&vcc_sd>;
137 status = "okay";
138};
139
140&mmc1 {
141 bus-width = <4>;
142 disable-wp;
143 non-removable;
144 num-slots = <1>;
145 pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus4>;
146 pinctrl-names = "default";
147 vmmc-supply = <&vcc_wifi>;
148 status = "okay";
149};
150
151&pinctrl {
152 usb-host {
153 host_drv: host-drv {
154 rockchip,pins = <RK_GPIO0 6 RK_FUNC_GPIO &pcfg_pull_default>;
155 };
156 };
157
158 usb-otg {
159 otg_drv: otg-drv {
160 rockchip,pins = <RK_GPIO0 5 RK_FUNC_GPIO &pcfg_pull_default>;
161 };
162 };
163
164 sdmmc {
165 sdmmc_pwr: sdmmc-pwr {
166 rockchip,pins = <RK_GPIO3 7 RK_FUNC_GPIO &pcfg_pull_default>;
167 };
168 };
169
170 sdio {
171 wifi_pwr: wifi-pwr {
172 rockchip,pins = <RK_GPIO3 24 RK_FUNC_GPIO &pcfg_pull_none>;
173 };
174 };
175};
176
177&uart2 {
178 status = "okay";
179};
180
181&usb_host {
182 status = "okay";
183};
184
185&usb_otg {
186 status = "okay";
187};
188
189&usbphy {
190 status = "okay";
191};
192
193&wdt {
194 status = "okay";
195};
diff --git a/arch/arm/boot/dts/rk3066a-rayeager.dts b/arch/arm/boot/dts/rk3066a-rayeager.dts
index 6e7f2187a0e3..82465b644443 100644
--- a/arch/arm/boot/dts/rk3066a-rayeager.dts
+++ b/arch/arm/boot/dts/rk3066a-rayeager.dts
@@ -48,7 +48,7 @@
48 model = "Rayeager PX2"; 48 model = "Rayeager PX2";
49 compatible = "chipspark,rayeager-px2", "rockchip,rk3066a"; 49 compatible = "chipspark,rayeager-px2", "rockchip,rk3066a";
50 50
51 memory { 51 memory@60000000 {
52 device_type = "memory"; 52 device_type = "memory";
53 reg = <0x60000000 0x40000000>; 53 reg = <0x60000000 0x40000000>;
54 }; 54 };
diff --git a/arch/arm/boot/dts/rk3066a.dtsi b/arch/arm/boot/dts/rk3066a.dtsi
index 0d0dae3a1694..e498c362b9e7 100644
--- a/arch/arm/boot/dts/rk3066a.dtsi
+++ b/arch/arm/boot/dts/rk3066a.dtsi
@@ -151,6 +151,14 @@
151 151
152 #clock-cells = <1>; 152 #clock-cells = <1>;
153 #reset-cells = <1>; 153 #reset-cells = <1>;
154 assigned-clocks = <&cru PLL_CPLL>, <&cru PLL_GPLL>,
155 <&cru ACLK_CPU>, <&cru HCLK_CPU>,
156 <&cru PCLK_CPU>, <&cru ACLK_PERI>,
157 <&cru HCLK_PERI>, <&cru PCLK_PERI>;
158 assigned-clock-rates = <400000000>, <594000000>,
159 <300000000>, <150000000>,
160 <75000000>, <300000000>,
161 <150000000>, <75000000>;
154 }; 162 };
155 163
156 timer@2000e000 { 164 timer@2000e000 {
@@ -162,7 +170,7 @@
162 }; 170 };
163 171
164 efuse: efuse@20010000 { 172 efuse: efuse@20010000 {
165 compatible = "rockchip,rockchip-efuse"; 173 compatible = "rockchip,rk3066a-efuse";
166 reg = <0x20010000 0x4000>; 174 reg = <0x20010000 0x4000>;
167 #address-cells = <1>; 175 #address-cells = <1>;
168 #size-cells = <1>; 176 #size-cells = <1>;
@@ -197,7 +205,7 @@
197 clock-names = "saradc", "apb_pclk"; 205 clock-names = "saradc", "apb_pclk";
198 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 206 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
199 #io-channel-cells = <1>; 207 #io-channel-cells = <1>;
200 resets = <&cru SRST_SARADC>; 208 resets = <&cru SRST_TSADC>;
201 reset-names = "saradc-apb"; 209 reset-names = "saradc-apb";
202 status = "disabled"; 210 status = "disabled";
203 }; 211 };
@@ -628,15 +636,26 @@
628}; 636};
629 637
630&mmc0 { 638&mmc0 {
639 clock-frequency = <50000000>;
640 dmas = <&dmac2 1>;
641 dma-names = "rx-tx";
642 max-frequency = <50000000>;
631 pinctrl-names = "default"; 643 pinctrl-names = "default";
632 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4>; 644 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4>;
633}; 645};
634 646
635&mmc1 { 647&mmc1 {
648 dmas = <&dmac2 3>;
649 dma-names = "rx-tx";
636 pinctrl-names = "default"; 650 pinctrl-names = "default";
637 pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_cd &sd1_bus4>; 651 pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_cd &sd1_bus4>;
638}; 652};
639 653
654&emmc {
655 dmas = <&dmac2 4>;
656 dma-names = "rx-tx";
657};
658
640&pwm0 { 659&pwm0 {
641 pinctrl-names = "default"; 660 pinctrl-names = "default";
642 pinctrl-0 = <&pwm0_out>; 661 pinctrl-0 = <&pwm0_out>;
@@ -668,21 +687,29 @@
668}; 687};
669 688
670&uart0 { 689&uart0 {
690 dmas = <&dmac1_s 0>, <&dmac1_s 1>;
691 dma-names = "tx", "rx";
671 pinctrl-names = "default"; 692 pinctrl-names = "default";
672 pinctrl-0 = <&uart0_xfer>; 693 pinctrl-0 = <&uart0_xfer>;
673}; 694};
674 695
675&uart1 { 696&uart1 {
697 dmas = <&dmac1_s 2>, <&dmac1_s 3>;
698 dma-names = "tx", "rx";
676 pinctrl-names = "default"; 699 pinctrl-names = "default";
677 pinctrl-0 = <&uart1_xfer>; 700 pinctrl-0 = <&uart1_xfer>;
678}; 701};
679 702
680&uart2 { 703&uart2 {
704 dmas = <&dmac2 6>, <&dmac2 7>;
705 dma-names = "tx", "rx";
681 pinctrl-names = "default"; 706 pinctrl-names = "default";
682 pinctrl-0 = <&uart2_xfer>; 707 pinctrl-0 = <&uart2_xfer>;
683}; 708};
684 709
685&uart3 { 710&uart3 {
711 dmas = <&dmac2 8>, <&dmac2 9>;
712 dma-names = "tx", "rx";
686 pinctrl-names = "default"; 713 pinctrl-names = "default";
687 pinctrl-0 = <&uart3_xfer>; 714 pinctrl-0 = <&uart3_xfer>;
688}; 715};
diff --git a/arch/arm/boot/dts/rk3188-px3-evb.dts b/arch/arm/boot/dts/rk3188-px3-evb.dts
new file mode 100644
index 000000000000..df727bafd6dc
--- /dev/null
+++ b/arch/arm/boot/dts/rk3188-px3-evb.dts
@@ -0,0 +1,328 @@
1/*
2 * Copyright (c) 2016 Andy Yan <andy.yan@rock-chips.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 <dt-bindings/input/input.h>
45#include "rk3188.dtsi"
46
47/ {
48 model = "Rockchip PX3-EVB";
49 compatible = "rockchip,px3-evb", "rockchip,px3", "rockchip,rk3188";
50
51 chosen {
52 stdout-path = "serial2:115200n8";
53 };
54
55 memory@60000000 {
56 reg = <0x60000000 0x80000000>;
57 device_type = "memory";
58 };
59
60 gpio-keys {
61 compatible = "gpio-keys";
62 autorepeat;
63
64 power {
65 gpios = <&gpio0 4 GPIO_ACTIVE_LOW>;
66 linux,code = <KEY_POWER>;
67 label = "GPIO Key Power";
68 linux,input-type = <1>;
69 wakeup-source;
70 debounce-interval = <100>;
71 };
72 };
73
74 vcc_sys: vsys-regulator {
75 compatible = "regulator-fixed";
76 regulator-name = "vsys";
77 regulator-min-microvolt = <5000000>;
78 regulator-max-microvolt = <5000000>;
79 regulator-boot-on;
80 };
81};
82
83&cpu0 {
84 cpu0-supply = <&vdd_cpu>;
85};
86
87&emmc {
88 bus-width = <8>;
89 cap-mmc-highspeed;
90 disable-wp;
91 non-removable;
92 num-slots = <1>;
93 pinctrl-names = "default";
94 pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_rst>;
95 status = "okay";
96};
97
98&i2c0 {
99 status = "okay";
100
101 accelerometer@18 {
102 compatible = "bosch,bma250";
103 reg = <0x18>;
104 interrupt-parent = <&gpio0>;
105 interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
106 };
107};
108
109&i2c1 {
110 status = "okay";
111 clock-frequency = <400000>;
112
113 rk808: pmic@1c {
114 compatible = "rockchip,rk818";
115 reg = <0x1c>;
116 interrupt-parent = <&gpio0>;
117 interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
118 rockchip,system-power-controller;
119 wakeup-source;
120 #clock-cells = <1>;
121 clock-output-names = "xin32k", "rk808-clkout2";
122
123 vcc1-supply = <&vcc_sys>;
124 vcc2-supply = <&vcc_sys>;
125 vcc3-supply = <&vcc_sys>;
126 vcc4-supply = <&vcc_sys>;
127 vcc6-supply = <&vcc_sys>;
128 vcc7-supply = <&vcc_sys>;
129 vcc8-supply = <&vcc_io>;
130 vcc9-supply = <&vcc_io>;
131
132 regulators {
133 vdd_cpu: DCDC_REG1 {
134 regulator-always-on;
135 regulator-boot-on;
136 regulator-min-microvolt = <750000>;
137 regulator-max-microvolt = <1350000>;
138 regulator-name = "vdd_arm";
139 regulator-state-mem {
140 regulator-off-in-suspend;
141 };
142 };
143
144 vdd_gpu: DCDC_REG2 {
145 regulator-always-on;
146 regulator-boot-on;
147 regulator-min-microvolt = <850000>;
148 regulator-max-microvolt = <1250000>;
149 regulator-name = "vdd_gpu";
150 regulator-state-mem {
151 regulator-on-in-suspend;
152 regulator-suspend-microvolt = <1000000>;
153 };
154 };
155
156 vcc_ddr: DCDC_REG3 {
157 regulator-always-on;
158 regulator-boot-on;
159 regulator-name = "vcc_ddr";
160 regulator-state-mem {
161 regulator-on-in-suspend;
162 };
163 };
164
165 vcc_io: DCDC_REG4 {
166 regulator-always-on;
167 regulator-boot-on;
168 regulator-min-microvolt = <3300000>;
169 regulator-max-microvolt = <3300000>;
170 regulator-name = "vcc_io";
171 regulator-state-mem {
172 regulator-on-in-suspend;
173 regulator-suspend-microvolt = <3300000>;
174 };
175 };
176
177 vcc_cif: LDO_REG1 {
178 regulator-min-microvolt = <3300000>;
179 regulator-max-microvolt = <3300000>;
180 regulator-name = "vcc_cif";
181 };
182
183 vcc_jetta33: LDO_REG2 {
184 regulator-always-on;
185 regulator-boot-on;
186 regulator-min-microvolt = <3300000>;
187 regulator-max-microvolt = <3300000>;
188 regulator-name = "vcc_jetta33";
189 };
190
191 vdd_10: LDO_REG3 {
192 regulator-always-on;
193 regulator-boot-on;
194 regulator-min-microvolt = <1000000>;
195 regulator-max-microvolt = <1000000>;
196 regulator-name = "vdd_10";
197 regulator-state-mem {
198 regulator-on-in-suspend;
199 regulator-suspend-microvolt = <1000000>;
200 };
201 };
202
203 lvds_12: LDO_REG4 {
204 regulator-min-microvolt = <1800000>;
205 regulator-max-microvolt = <1800000>;
206 regulator-name = "lvds_12";
207 };
208
209 lvds_25: LDO_REG5 {
210 regulator-min-microvolt = <1800000>;
211 regulator-max-microvolt = <3300000>;
212 regulator-name = "lvds_25";
213 };
214
215 cif_18: LDO_REG6 {
216 regulator-min-microvolt = <1000000>;
217 regulator-max-microvolt = <1000000>;
218 regulator-name = "cif_18";
219 };
220
221 vcc_sd: LDO_REG7 {
222 regulator-min-microvolt = <1800000>;
223 regulator-max-microvolt = <3300000>;
224 regulator-name = "vcc_sd";
225 regulator-state-mem {
226 regulator-on-in-suspend;
227 regulator-suspend-microvolt = <3300000>;
228 };
229 };
230
231 wl_18: LDO_REG8 {
232 regulator-min-microvolt = <1800000>;
233 regulator-max-microvolt = <3300000>;
234 regulator-name = "wl_18";
235 };
236
237 lcd_33: SWITCH_REG1 {
238 regulator-name = "lcd_33";
239 };
240 };
241 };
242
243};
244
245&i2c2 {
246 gsl1680: touchscreen@40 {
247 compatible = "silead,gsl1680";
248 reg = <0x40>;
249 interrupt-parent = <&gpio1>;
250 interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
251 power-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
252 touchscreen-size-x = <800>;
253 touchscreen-size-y = <1280>;
254 silead,max-fingers = <5>;
255 };
256};
257
258&mmc0 {
259 num-slots = <1>;
260 status = "okay";
261 pinctrl-names = "default";
262 pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
263 vmmc-supply = <&vcc_sd>;
264
265 bus-width = <4>;
266 cap-mmc-highspeed;
267 cap-sd-highspeed;
268 disable-wp;
269};
270
271&pinctrl {
272 pcfg_output_low: pcfg-output-low {
273 output-low;
274 };
275
276 usb {
277 host_vbus_drv: host-vbus-drv {
278 rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_none>;
279 };
280 otg_vbus_drv: otg-vbus-drv {
281 rockchip,pins = <2 31 RK_FUNC_GPIO &pcfg_pull_none>;
282 };
283 };
284};
285
286&pwm1 {
287 status = "okay";
288};
289
290&pwm2 {
291 status = "okay";
292};
293
294&pwm3 {
295 status = "okay";
296};
297
298&uart0 {
299 status = "okay";
300};
301
302&uart1 {
303 status = "okay";
304};
305
306&uart2 {
307 status = "okay";
308};
309
310&uart3 {
311 status = "okay";
312};
313
314&usbphy {
315 status = "okay";
316};
317
318&usb_host {
319 status = "okay";
320};
321
322&usb_otg {
323 status = "okay";
324};
325
326&wdt {
327 status = "okay";
328};
diff --git a/arch/arm/boot/dts/rk3188-radxarock.dts b/arch/arm/boot/dts/rk3188-radxarock.dts
index 1da46d138029..5e8a235ed02d 100644
--- a/arch/arm/boot/dts/rk3188-radxarock.dts
+++ b/arch/arm/boot/dts/rk3188-radxarock.dts
@@ -48,7 +48,7 @@
48 model = "Radxa Rock"; 48 model = "Radxa Rock";
49 compatible = "radxa,rock", "rockchip,rk3188"; 49 compatible = "radxa,rock", "rockchip,rk3188";
50 50
51 memory { 51 memory@60000000 {
52 device_type = "memory"; 52 device_type = "memory";
53 reg = <0x60000000 0x80000000>; 53 reg = <0x60000000 0x80000000>;
54 }; 54 };
diff --git a/arch/arm/boot/dts/rk3188.dtsi b/arch/arm/boot/dts/rk3188.dtsi
index 31f81b265cef..869e189331ec 100644
--- a/arch/arm/boot/dts/rk3188.dtsi
+++ b/arch/arm/boot/dts/rk3188.dtsi
@@ -147,7 +147,7 @@
147 }; 147 };
148 148
149 efuse: efuse@20010000 { 149 efuse: efuse@20010000 {
150 compatible = "rockchip,rockchip-efuse"; 150 compatible = "rockchip,rk3188-efuse";
151 reg = <0x20010000 0x4000>; 151 reg = <0x20010000 0x4000>;
152 #address-cells = <1>; 152 #address-cells = <1>;
153 #size-cells = <1>; 153 #size-cells = <1>;
diff --git a/arch/arm/boot/dts/rk3228-evb.dts b/arch/arm/boot/dts/rk3228-evb.dts
index 904668e2e666..58834330a5ba 100644
--- a/arch/arm/boot/dts/rk3228-evb.dts
+++ b/arch/arm/boot/dts/rk3228-evb.dts
@@ -46,7 +46,7 @@
46 model = "Rockchip RK3228 Evaluation board"; 46 model = "Rockchip RK3228 Evaluation board";
47 compatible = "rockchip,rk3228-evb", "rockchip,rk3228"; 47 compatible = "rockchip,rk3228-evb", "rockchip,rk3228";
48 48
49 memory { 49 memory@60000000 {
50 device_type = "memory"; 50 device_type = "memory";
51 reg = <0x60000000 0x40000000>; 51 reg = <0x60000000 0x40000000>;
52 }; 52 };
diff --git a/arch/arm/boot/dts/rk3229-evb.dts b/arch/arm/boot/dts/rk3229-evb.dts
index b6a12035a6bb..dcdd0cee619e 100644
--- a/arch/arm/boot/dts/rk3229-evb.dts
+++ b/arch/arm/boot/dts/rk3229-evb.dts
@@ -46,7 +46,7 @@
46 model = "Rockchip RK3229 Evaluation board"; 46 model = "Rockchip RK3229 Evaluation board";
47 compatible = "rockchip,rk3229-evb", "rockchip,rk3229"; 47 compatible = "rockchip,rk3229-evb", "rockchip,rk3229";
48 48
49 memory { 49 memory@60000000 {
50 device_type = "memory"; 50 device_type = "memory";
51 reg = <0x60000000 0x40000000>; 51 reg = <0x60000000 0x40000000>;
52 }; 52 };
diff --git a/arch/arm/boot/dts/rk322x.dtsi b/arch/arm/boot/dts/rk322x.dtsi
index 9e6bf0e311bb..9d3aee5abc15 100644
--- a/arch/arm/boot/dts/rk322x.dtsi
+++ b/arch/arm/boot/dts/rk322x.dtsi
@@ -44,9 +44,11 @@
44#include <dt-bindings/pinctrl/rockchip.h> 44#include <dt-bindings/pinctrl/rockchip.h>
45#include <dt-bindings/clock/rk3228-cru.h> 45#include <dt-bindings/clock/rk3228-cru.h>
46#include <dt-bindings/thermal/thermal.h> 46#include <dt-bindings/thermal/thermal.h>
47#include "skeleton.dtsi"
48 47
49/ { 48/ {
49 #address-cells = <1>;
50 #size-cells = <1>;
51
50 interrupt-parent = <&gic>; 52 interrupt-parent = <&gic>;
51 53
52 aliases { 54 aliases {
@@ -402,7 +404,7 @@
402 reg = <0x30020000 0x4000>; 404 reg = <0x30020000 0x4000>;
403 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 405 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
404 clock-frequency = <37500000>; 406 clock-frequency = <37500000>;
405 clock-freq-min-max = <400000 37500000>; 407 max-frequency = <37500000>;
406 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>, 408 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
407 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; 409 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
408 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample"; 410 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
diff --git a/arch/arm/boot/dts/rk3288-evb.dtsi b/arch/arm/boot/dts/rk3288-evb.dtsi
index d59208b5eb6c..bf7ccfad3260 100644
--- a/arch/arm/boot/dts/rk3288-evb.dtsi
+++ b/arch/arm/boot/dts/rk3288-evb.dtsi
@@ -43,7 +43,7 @@
43#include "rk3288.dtsi" 43#include "rk3288.dtsi"
44 44
45/ { 45/ {
46 memory { 46 memory@0 {
47 device_type = "memory"; 47 device_type = "memory";
48 reg = <0x0 0x80000000>; 48 reg = <0x0 0x80000000>;
49 }; 49 };
diff --git a/arch/arm/boot/dts/rk3288-fennec.dts b/arch/arm/boot/dts/rk3288-fennec.dts
index 2e3c34135ed8..805c0d26770b 100644
--- a/arch/arm/boot/dts/rk3288-fennec.dts
+++ b/arch/arm/boot/dts/rk3288-fennec.dts
@@ -46,7 +46,7 @@
46 model = "Rockchip RK3288 Fennec Board"; 46 model = "Rockchip RK3288 Fennec Board";
47 compatible = "rockchip,rk3288-fennec", "rockchip,rk3288"; 47 compatible = "rockchip,rk3288-fennec", "rockchip,rk3288";
48 48
49 memory { 49 memory@0 {
50 reg = <0x0 0x80000000>; 50 reg = <0x0 0x80000000>;
51 device_type = "memory"; 51 device_type = "memory";
52 }; 52 };
diff --git a/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi b/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi
index ec418c99de95..d242588bae0d 100644
--- a/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi
+++ b/arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi
@@ -45,7 +45,7 @@
45#include "rk3288.dtsi" 45#include "rk3288.dtsi"
46 46
47/ { 47/ {
48 memory { 48 memory@0 {
49 device_type = "memory"; 49 device_type = "memory";
50 reg = <0 0x80000000>; 50 reg = <0 0x80000000>;
51 }; 51 };
diff --git a/arch/arm/boot/dts/rk3288-firefly.dtsi b/arch/arm/boot/dts/rk3288-firefly.dtsi
index 114c90fb65e2..44935af1fb0e 100644
--- a/arch/arm/boot/dts/rk3288-firefly.dtsi
+++ b/arch/arm/boot/dts/rk3288-firefly.dtsi
@@ -44,7 +44,7 @@
44#include "rk3288.dtsi" 44#include "rk3288.dtsi"
45 45
46/ { 46/ {
47 memory { 47 memory@0 {
48 device_type = "memory"; 48 device_type = "memory";
49 reg = <0 0x80000000>; 49 reg = <0 0x80000000>;
50 }; 50 };
diff --git a/arch/arm/boot/dts/rk3288-miqi.dts b/arch/arm/boot/dts/rk3288-miqi.dts
index 24488421f0f0..441d450fd151 100644
--- a/arch/arm/boot/dts/rk3288-miqi.dts
+++ b/arch/arm/boot/dts/rk3288-miqi.dts
@@ -52,7 +52,7 @@
52 stdout-path = "serial2:115200n8"; 52 stdout-path = "serial2:115200n8";
53 }; 53 };
54 54
55 memory { 55 memory@0 {
56 device_type = "memory"; 56 device_type = "memory";
57 reg = <0 0x80000000>; 57 reg = <0 0x80000000>;
58 }; 58 };
diff --git a/arch/arm/boot/dts/rk3288-popmetal.dts b/arch/arm/boot/dts/rk3288-popmetal.dts
index 56dd377d5658..bc6d10054f6a 100644
--- a/arch/arm/boot/dts/rk3288-popmetal.dts
+++ b/arch/arm/boot/dts/rk3288-popmetal.dts
@@ -48,7 +48,7 @@
48 model = "PopMetal-RK3288"; 48 model = "PopMetal-RK3288";
49 compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288"; 49 compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";
50 50
51 memory{ 51 memory@0 {
52 device_type = "memory"; 52 device_type = "memory";
53 reg = <0 0x80000000>; 53 reg = <0 0x80000000>;
54 }; 54 };
@@ -68,7 +68,7 @@
68 pinctrl-0 = <&pwrbtn>; 68 pinctrl-0 = <&pwrbtn>;
69 69
70 power { 70 power {
71 gpios = <&gpio0 5 GPIO_ACTIVE_LOW>; 71 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
72 linux,code = <KEY_POWER>; 72 linux,code = <KEY_POWER>;
73 label = "GPIO Key Power"; 73 label = "GPIO Key Power";
74 linux,input-type = <1>; 74 linux,input-type = <1>;
@@ -79,7 +79,7 @@
79 79
80 ir: ir-receiver { 80 ir: ir-receiver {
81 compatible = "gpio-ir-receiver"; 81 compatible = "gpio-ir-receiver";
82 gpios = <&gpio0 6 GPIO_ACTIVE_LOW>; 82 gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
83 pinctrl-names = "default"; 83 pinctrl-names = "default";
84 pinctrl-0 = <&ir_int>; 84 pinctrl-0 = <&ir_int>;
85 }; 85 };
@@ -94,7 +94,7 @@
94 94
95 vcc_sd: sdmmc-regulator { 95 vcc_sd: sdmmc-regulator {
96 compatible = "regulator-fixed"; 96 compatible = "regulator-fixed";
97 gpio = <&gpio7 11 GPIO_ACTIVE_LOW>; 97 gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
98 pinctrl-names = "default"; 98 pinctrl-names = "default";
99 pinctrl-0 = <&sdmmc_pwr>; 99 pinctrl-0 = <&sdmmc_pwr>;
100 regulator-name = "vcc_sd"; 100 regulator-name = "vcc_sd";
@@ -128,7 +128,7 @@
128 vcc28_dvp: vcc28-dvp-regulator { 128 vcc28_dvp: vcc28-dvp-regulator {
129 compatible = "regulator-fixed"; 129 compatible = "regulator-fixed";
130 enable-active-high; 130 enable-active-high;
131 gpio = <&gpio0 17 GPIO_ACTIVE_HIGH>; 131 gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
132 pinctrl-names = "default"; 132 pinctrl-names = "default";
133 pinctrl-0 = <&dvp_pwr>; 133 pinctrl-0 = <&dvp_pwr>;
134 regulator-name = "vcc28_dvp"; 134 regulator-name = "vcc28_dvp";
@@ -147,6 +147,8 @@
147 bus-width = <8>; 147 bus-width = <8>;
148 cap-mmc-highspeed; 148 cap-mmc-highspeed;
149 disable-wp; 149 disable-wp;
150 mmc-ddr-1_8v;
151 mmc-hs200-1_8v;
150 non-removable; 152 non-removable;
151 num-slots = <1>; 153 num-slots = <1>;
152 pinctrl-names = "default"; 154 pinctrl-names = "default";
@@ -165,6 +167,10 @@
165 num-slots = <1>; 167 num-slots = <1>;
166 pinctrl-names = "default"; 168 pinctrl-names = "default";
167 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; 169 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
170 sd-uhs-sdr12;
171 sd-uhs-sdr25;
172 sd-uhs-sdr50;
173 sd-uhs-sdr104;
168 vmmc-supply = <&vcc_sd>; 174 vmmc-supply = <&vcc_sd>;
169 vqmmc-supply = <&vccio_sd>; 175 vqmmc-supply = <&vccio_sd>;
170 status = "okay"; 176 status = "okay";
@@ -174,7 +180,7 @@
174 phy-supply = <&vcc_lan>; 180 phy-supply = <&vcc_lan>;
175 phy-mode = "rgmii"; 181 phy-mode = "rgmii";
176 clock_in_out = "input"; 182 clock_in_out = "input";
177 snps,reset-gpio = <&gpio4 7 0>; 183 snps,reset-gpio = <&gpio4 RK_PB0 0>;
178 snps,reset-active-low; 184 snps,reset-active-low;
179 snps,reset-delays-us = <0 10000 1000000>; 185 snps,reset-delays-us = <0 10000 1000000>;
180 assigned-clocks = <&cru SCLK_MAC>; 186 assigned-clocks = <&cru SCLK_MAC>;
@@ -280,7 +286,7 @@
280 vccio_sd: LDO_REG2 { 286 vccio_sd: LDO_REG2 {
281 regulator-always-on; 287 regulator-always-on;
282 regulator-boot-on; 288 regulator-boot-on;
283 regulator-min-microvolt = <3300000>; 289 regulator-min-microvolt = <1800000>;
284 regulator-max-microvolt = <3300000>; 290 regulator-max-microvolt = <3300000>;
285 regulator-name = "vccio_sd"; 291 regulator-name = "vccio_sd";
286 regulator-state-mem { 292 regulator-state-mem {
@@ -443,43 +449,43 @@
443&pinctrl { 449&pinctrl {
444 ak8963 { 450 ak8963 {
445 comp_int: comp-int { 451 comp_int: comp-int {
446 rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_up>; 452 rockchip,pins = <8 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
447 }; 453 };
448 }; 454 };
449 455
450 buttons { 456 buttons {
451 pwrbtn: pwrbtn { 457 pwrbtn: pwrbtn {
452 rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>; 458 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
453 }; 459 };
454 }; 460 };
455 461
456 dvp { 462 dvp {
457 dvp_pwr: dvp-pwr { 463 dvp_pwr: dvp-pwr {
458 rockchip,pins = <0 17 RK_FUNC_GPIO &pcfg_pull_none>; 464 rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
459 }; 465 };
460 }; 466 };
461 467
462 ir { 468 ir {
463 ir_int: ir-int { 469 ir_int: ir-int {
464 rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_up>; 470 rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
465 }; 471 };
466 }; 472 };
467 473
468 mma8452 { 474 mma8452 {
469 gsensor_int: gsensor-int { 475 gsensor_int: gsensor-int {
470 rockchip,pins = <8 0 RK_FUNC_GPIO &pcfg_pull_up>; 476 rockchip,pins = <8 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
471 }; 477 };
472 }; 478 };
473 479
474 pmic { 480 pmic {
475 pmic_int: pmic-int { 481 pmic_int: pmic-int {
476 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>; 482 rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
477 }; 483 };
478 }; 484 };
479 485
480 sdmmc { 486 sdmmc {
481 sdmmc_pwr: sdmmc-pwr { 487 sdmmc_pwr: sdmmc-pwr {
482 rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>; 488 rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
483 }; 489 };
484 }; 490 };
485}; 491};
diff --git a/arch/arm/boot/dts/rk3288-r89.dts b/arch/arm/boot/dts/rk3288-r89.dts
index 4b8a8adb243c..04faa72dbd95 100644
--- a/arch/arm/boot/dts/rk3288-r89.dts
+++ b/arch/arm/boot/dts/rk3288-r89.dts
@@ -48,7 +48,7 @@
48/ { 48/ {
49 compatible = "netxeon,r89", "rockchip,rk3288"; 49 compatible = "netxeon,r89", "rockchip,rk3288";
50 50
51 memory { 51 memory@0 {
52 device_type = "memory"; 52 device_type = "memory";
53 reg = <0x0 0x80000000>; 53 reg = <0x0 0x80000000>;
54 }; 54 };
diff --git a/arch/arm/boot/dts/rk3288-rock2-som.dtsi b/arch/arm/boot/dts/rk3288-rock2-som.dtsi
index bb1f01e037ba..b25ba806d5ee 100644
--- a/arch/arm/boot/dts/rk3288-rock2-som.dtsi
+++ b/arch/arm/boot/dts/rk3288-rock2-som.dtsi
@@ -42,7 +42,7 @@
42#include "rk3288.dtsi" 42#include "rk3288.dtsi"
43 43
44/ { 44/ {
45 memory { 45 memory@0 {
46 reg = <0x0 0x80000000>; 46 reg = <0x0 0x80000000>;
47 device_type = "memory"; 47 device_type = "memory";
48 }; 48 };
diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi b/arch/arm/boot/dts/rk3288-veyron.dtsi
index 3dd2cca48c11..2251d28e9d2a 100644
--- a/arch/arm/boot/dts/rk3288-veyron.dtsi
+++ b/arch/arm/boot/dts/rk3288-veyron.dtsi
@@ -47,7 +47,7 @@
47#include "rk3288.dtsi" 47#include "rk3288.dtsi"
48 48
49/ { 49/ {
50 memory { 50 memory@0 {
51 device_type = "memory"; 51 device_type = "memory";
52 reg = <0x0 0x80000000>; 52 reg = <0x0 0x80000000>;
53 }; 53 };
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index 74a749c566ee..4fad13368a7b 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -46,9 +46,11 @@
46#include <dt-bindings/thermal/thermal.h> 46#include <dt-bindings/thermal/thermal.h>
47#include <dt-bindings/power/rk3288-power.h> 47#include <dt-bindings/power/rk3288-power.h>
48#include <dt-bindings/soc/rockchip,boot-mode.h> 48#include <dt-bindings/soc/rockchip,boot-mode.h>
49#include "skeleton.dtsi"
50 49
51/ { 50/ {
51 #address-cells = <1>;
52 #size-cells = <1>;
53
52 compatible = "rockchip,rk3288"; 54 compatible = "rockchip,rk3288";
53 55
54 interrupt-parent = <&gic>; 56 interrupt-parent = <&gic>;
@@ -227,7 +229,7 @@
227 229
228 sdmmc: dwmmc@ff0c0000 { 230 sdmmc: dwmmc@ff0c0000 {
229 compatible = "rockchip,rk3288-dw-mshc"; 231 compatible = "rockchip,rk3288-dw-mshc";
230 clock-freq-min-max = <400000 150000000>; 232 max-frequency = <150000000>;
231 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>, 233 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
232 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; 234 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
233 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 235 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
@@ -239,7 +241,7 @@
239 241
240 sdio0: dwmmc@ff0d0000 { 242 sdio0: dwmmc@ff0d0000 {
241 compatible = "rockchip,rk3288-dw-mshc"; 243 compatible = "rockchip,rk3288-dw-mshc";
242 clock-freq-min-max = <400000 150000000>; 244 max-frequency = <150000000>;
243 clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>, 245 clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
244 <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>; 246 <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
245 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 247 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
@@ -251,7 +253,7 @@
251 253
252 sdio1: dwmmc@ff0e0000 { 254 sdio1: dwmmc@ff0e0000 {
253 compatible = "rockchip,rk3288-dw-mshc"; 255 compatible = "rockchip,rk3288-dw-mshc";
254 clock-freq-min-max = <400000 150000000>; 256 max-frequency = <150000000>;
255 clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>, 257 clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>,
256 <&cru SCLK_SDIO1_DRV>, <&cru SCLK_SDIO1_SAMPLE>; 258 <&cru SCLK_SDIO1_DRV>, <&cru SCLK_SDIO1_SAMPLE>;
257 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 259 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
@@ -263,7 +265,7 @@
263 265
264 emmc: dwmmc@ff0f0000 { 266 emmc: dwmmc@ff0f0000 {
265 compatible = "rockchip,rk3288-dw-mshc"; 267 compatible = "rockchip,rk3288-dw-mshc";
266 clock-freq-min-max = <400000 150000000>; 268 max-frequency = <150000000>;
267 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>, 269 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
268 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; 270 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
269 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 271 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
@@ -1115,7 +1117,7 @@
1115 }; 1117 };
1116 1118
1117 efuse: efuse@ffb40000 { 1119 efuse: efuse@ffb40000 {
1118 compatible = "rockchip,rockchip-efuse"; 1120 compatible = "rockchip,rk3288-efuse";
1119 reg = <0xffb40000 0x20>; 1121 reg = <0xffb40000 0x20>;
1120 #address-cells = <1>; 1122 #address-cells = <1>;
1121 #size-cells = <1>; 1123 #size-cells = <1>;
diff --git a/arch/arm/boot/dts/rk3xxx.dtsi b/arch/arm/boot/dts/rk3xxx.dtsi
index 8fbd3c806fa0..0b45811cf28b 100644
--- a/arch/arm/boot/dts/rk3xxx.dtsi
+++ b/arch/arm/boot/dts/rk3xxx.dtsi
@@ -44,9 +44,11 @@
44#include <dt-bindings/interrupt-controller/irq.h> 44#include <dt-bindings/interrupt-controller/irq.h>
45#include <dt-bindings/interrupt-controller/arm-gic.h> 45#include <dt-bindings/interrupt-controller/arm-gic.h>
46#include <dt-bindings/soc/rockchip,boot-mode.h> 46#include <dt-bindings/soc/rockchip,boot-mode.h>
47#include "skeleton.dtsi"
48 47
49/ { 48/ {
49 #address-cells = <1>;
50 #size-cells = <1>;
51
50 interrupt-parent = <&gic>; 52 interrupt-parent = <&gic>;
51 53
52 aliases { 54 aliases {
diff --git a/arch/arm/boot/dts/sama5d2.dtsi b/arch/arm/boot/dts/sama5d2.dtsi
index 7173ec9059a1..ceb9783ff7e1 100644
--- a/arch/arm/boot/dts/sama5d2.dtsi
+++ b/arch/arm/boot/dts/sama5d2.dtsi
@@ -735,6 +735,11 @@
735 atmel,clk-output-range = <0 83000000>; 735 atmel,clk-output-range = <0 83000000>;
736 }; 736 };
737 737
738 securam_clk: securam_clk {
739 #clock-cells = <0>;
740 reg = <51>;
741 };
742
738 i2s0_clk: i2s0_clk { 743 i2s0_clk: i2s0_clk {
739 #clock-cells = <0>; 744 #clock-cells = <0>;
740 reg = <54>; 745 reg = <54>;
@@ -1030,6 +1035,7 @@
1030 #address-cells = <1>; 1035 #address-cells = <1>;
1031 #size-cells = <0>; 1036 #size-cells = <0>;
1032 clocks = <&twi0_clk>; 1037 clocks = <&twi0_clk>;
1038 atmel,fifo-size = <16>;
1033 status = "disabled"; 1039 status = "disabled";
1034 }; 1040 };
1035 1041
@@ -1058,6 +1064,15 @@
1058 status = "disabled"; 1064 status = "disabled";
1059 }; 1065 };
1060 1066
1067 securam: sram@f8044000 {
1068 compatible = "atmel,sama5d2-securam", "mmio-sram";
1069 reg = <0xf8044000 0x1420>;
1070 clocks = <&securam_clk>;
1071 #address-cells = <1>;
1072 #size-cells = <1>;
1073 ranges = <0 0xf8044000 0x1420>;
1074 };
1075
1061 rstc@f8048000 { 1076 rstc@f8048000 {
1062 compatible = "atmel,sama5d3-rstc"; 1077 compatible = "atmel,sama5d3-rstc";
1063 reg = <0xf8048000 0x10>; 1078 reg = <0xf8048000 0x10>;
@@ -1088,30 +1103,12 @@
1088 status = "disabled"; 1103 status = "disabled";
1089 }; 1104 };
1090 1105
1091 sckc@f8048050 { 1106 clk32k: sckc@f8048050 {
1092 compatible = "atmel,at91sam9x5-sckc"; 1107 compatible = "atmel,sama5d4-sckc";
1093 reg = <0xf8048050 0x4>; 1108 reg = <0xf8048050 0x4>;
1094 1109
1095 slow_rc_osc: slow_rc_osc { 1110 clocks = <&slow_xtal>;
1096 compatible = "atmel,at91sam9x5-clk-slow-rc-osc"; 1111 #clock-cells = <0>;
1097 #clock-cells = <0>;
1098 clock-frequency = <32768>;
1099 clock-accuracy = <250000000>;
1100 atmel,startup-time-usec = <75>;
1101 };
1102
1103 slow_osc: slow_osc {
1104 compatible = "atmel,at91sam9x5-clk-slow-osc";
1105 #clock-cells = <0>;
1106 clocks = <&slow_xtal>;
1107 atmel,startup-time-usec = <1200000>;
1108 };
1109
1110 clk32k: slowck {
1111 compatible = "atmel,at91sam9x5-clk-slow";
1112 #clock-cells = <0>;
1113 clocks = <&slow_rc_osc &slow_osc>;
1114 };
1115 }; 1112 };
1116 1113
1117 rtc@f80480b0 { 1114 rtc@f80480b0 {
@@ -1231,6 +1228,7 @@
1231 #address-cells = <1>; 1228 #address-cells = <1>;
1232 #size-cells = <0>; 1229 #size-cells = <0>;
1233 clocks = <&twi1_clk>; 1230 clocks = <&twi1_clk>;
1231 atmel,fifo-size = <16>;
1234 status = "disabled"; 1232 status = "disabled";
1235 }; 1233 };
1236 1234
@@ -1260,6 +1258,11 @@
1260 clocks = <&pioA_clk>; 1258 clocks = <&pioA_clk>;
1261 }; 1259 };
1262 1260
1261 secumod@fc040000 {
1262 compatible = "atmel,sama5d2-secumod", "syscon";
1263 reg = <0xfc040000 0x100>;
1264 };
1265
1263 tdes@fc044000 { 1266 tdes@fc044000 {
1264 compatible = "atmel,at91sam9g46-tdes"; 1267 compatible = "atmel,at91sam9g46-tdes";
1265 reg = <0xfc044000 0x100>; 1268 reg = <0xfc044000 0x100>;
diff --git a/arch/arm/boot/dts/sama5d3.dtsi b/arch/arm/boot/dts/sama5d3.dtsi
index 4c84d333fc7e..b06448ba6649 100644
--- a/arch/arm/boot/dts/sama5d3.dtsi
+++ b/arch/arm/boot/dts/sama5d3.dtsi
@@ -549,8 +549,8 @@
549 dbgu { 549 dbgu {
550 pinctrl_dbgu: dbgu-0 { 550 pinctrl_dbgu: dbgu-0 {
551 atmel,pins = 551 atmel,pins =
552 <AT91_PIOB 30 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB30 periph A */ 552 <AT91_PIOB 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
553 AT91_PIOB 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PB31 periph A with pullup */ 553 AT91_PIOB 31 AT91_PERIPH_A AT91_PINCTRL_NONE>;
554 }; 554 };
555 }; 555 };
556 556
diff --git a/arch/arm/boot/dts/sama5d4.dtsi b/arch/arm/boot/dts/sama5d4.dtsi
index 65e725fb5679..4f60c1b7b137 100644
--- a/arch/arm/boot/dts/sama5d4.dtsi
+++ b/arch/arm/boot/dts/sama5d4.dtsi
@@ -1314,30 +1314,11 @@
1314 status = "disabled"; 1314 status = "disabled";
1315 }; 1315 };
1316 1316
1317 sckc@fc068650 { 1317 clk32k: sckc@fc068650 {
1318 compatible = "atmel,at91sam9x5-sckc"; 1318 compatible = "atmel,sama5d4-sckc";
1319 reg = <0xfc068650 0x4>; 1319 reg = <0xfc068650 0x4>;
1320 1320 #clock-cells = <0>;
1321 slow_rc_osc: slow_rc_osc { 1321 clocks = <&slow_xtal>;
1322 compatible = "atmel,at91sam9x5-clk-slow-rc-osc";
1323 #clock-cells = <0>;
1324 clock-frequency = <32768>;
1325 clock-accuracy = <250000000>;
1326 atmel,startup-time-usec = <75>;
1327 };
1328
1329 slow_osc: slow_osc {
1330 compatible = "atmel,at91sam9x5-clk-slow-osc";
1331 #clock-cells = <0>;
1332 clocks = <&slow_xtal>;
1333 atmel,startup-time-usec = <1200000>;
1334 };
1335
1336 clk32k: slowck {
1337 compatible = "atmel,at91sam9x5-clk-slow";
1338 #clock-cells = <0>;
1339 clocks = <&slow_rc_osc &slow_osc>;
1340 };
1341 }; 1322 };
1342 1323
1343 rtc@fc0686b0 { 1324 rtc@fc0686b0 {
@@ -1461,8 +1442,8 @@
1461 dbgu { 1442 dbgu {
1462 pinctrl_dbgu: dbgu-0 { 1443 pinctrl_dbgu: dbgu-0 {
1463 atmel,pins = 1444 atmel,pins =
1464 <AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE>, /* conflicts with D14 and TDI */ 1445 <AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* conflicts with D14 and TDI */
1465 <AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* conflicts with D15 and TDO */ 1446 AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* conflicts with D15 and TDO */
1466 }; 1447 };
1467 }; 1448 };
1468 1449
diff --git a/arch/arm/boot/dts/sh73a0.dtsi b/arch/arm/boot/dts/sh73a0.dtsi
index 032fe2f14b16..e1267590b575 100644
--- a/arch/arm/boot/dts/sh73a0.dtsi
+++ b/arch/arm/boot/dts/sh73a0.dtsi
@@ -8,8 +8,6 @@
8 * kind, whether express or implied. 8 * kind, whether express or implied.
9 */ 9 */
10 10
11/include/ "skeleton.dtsi"
12
13#include <dt-bindings/clock/sh73a0-clock.h> 11#include <dt-bindings/clock/sh73a0-clock.h>
14#include <dt-bindings/interrupt-controller/arm-gic.h> 12#include <dt-bindings/interrupt-controller/arm-gic.h>
15#include <dt-bindings/interrupt-controller/irq.h> 13#include <dt-bindings/interrupt-controller/irq.h>
@@ -17,6 +15,8 @@
17/ { 15/ {
18 compatible = "renesas,sh73a0"; 16 compatible = "renesas,sh73a0";
19 interrupt-parent = <&gic>; 17 interrupt-parent = <&gic>;
18 #address-cells = <1>;
19 #size-cells = <1>;
20 20
21 cpus { 21 cpus {
22 #address-cells = <1>; 22 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfpga.dtsi
index 9f48141270b8..da689659131f 100644
--- a/arch/arm/boot/dts/socfpga.dtsi
+++ b/arch/arm/boot/dts/socfpga.dtsi
@@ -686,6 +686,12 @@
686 arm,data-latency = <2 1 1>; 686 arm,data-latency = <2 1 1>;
687 prefetch-data = <1>; 687 prefetch-data = <1>;
688 prefetch-instr = <1>; 688 prefetch-instr = <1>;
689 arm,shared-override;
690 arm,double-linefill = <1>;
691 arm,double-linefill-incr = <0>;
692 arm,double-linefill-wrap = <1>;
693 arm,prefetch-drop = <0>;
694 arm,prefetch-offset = <7>;
689 }; 695 };
690 696
691 mmc: dwmmc0@ff704000 { 697 mmc: dwmmc0@ff704000 {
@@ -700,11 +706,38 @@
700 status = "disabled"; 706 status = "disabled";
701 }; 707 };
702 708
709 nand0: nand@ff900000 {
710 #address-cells = <0x1>;
711 #size-cells = <0x1>;
712 compatible = "denali,denali-nand-dt";
713 reg = <0xff900000 0x100000>,
714 <0xffb80000 0x10000>;
715 reg-names = "nand_data", "denali_reg";
716 interrupts = <0x0 0x90 0x4>;
717 dma-mask = <0xffffffff>;
718 clocks = <&nand_clk>;
719 status = "disabled";
720 };
721
703 ocram: sram@ffff0000 { 722 ocram: sram@ffff0000 {
704 compatible = "mmio-sram"; 723 compatible = "mmio-sram";
705 reg = <0xffff0000 0x10000>; 724 reg = <0xffff0000 0x10000>;
706 }; 725 };
707 726
727 qspi: spi@ff705000 {
728 compatible = "cdns,qspi-nor";
729 #address-cells = <1>;
730 #size-cells = <0>;
731 reg = <0xff705000 0x1000>,
732 <0xffa00000 0x1000>;
733 interrupts = <0 151 4>;
734 cdns,fifo-depth = <128>;
735 cdns,fifo-width = <4>;
736 cdns,trigger-address = <0x00000000>;
737 clocks = <&qspi_clk>;
738 status = "disabled";
739 };
740
708 rst: rstmgr@ffd05000 { 741 rst: rstmgr@ffd05000 {
709 #reset-cells = <1>; 742 #reset-cells = <1>;
710 compatible = "altr,rst-mgr"; 743 compatible = "altr,rst-mgr";
diff --git a/arch/arm/boot/dts/socfpga_arria10.dtsi b/arch/arm/boot/dts/socfpga_arria10.dtsi
index f520cbff5e1c..551c636a4f01 100644
--- a/arch/arm/boot/dts/socfpga_arria10.dtsi
+++ b/arch/arm/boot/dts/socfpga_arria10.dtsi
@@ -562,6 +562,21 @@
562 status = "disabled"; 562 status = "disabled";
563 }; 563 };
564 564
565 spi1: spi@ffda5000 {
566 compatible = "snps,dw-apb-ssi";
567 #address-cells = <1>;
568 #size-cells = <0>;
569 reg = <0xffda5000 0x100>;
570 interrupts = <0 102 4>;
571 num-chipselect = <4>;
572 bus-num = <0>;
573 /*32bit_access;*/
574 tx-dma-channel = <&pdma 16>;
575 rx-dma-channel = <&pdma 17>;
576 clocks = <&spi_m_clk>;
577 status = "disabled";
578 };
579
565 sdr: sdr@ffc25000 { 580 sdr: sdr@ffc25000 {
566 compatible = "syscon"; 581 compatible = "syscon";
567 reg = <0xffcfb100 0x80>; 582 reg = <0xffcfb100 0x80>;
@@ -573,6 +588,9 @@
573 interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>; 588 interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
574 cache-unified; 589 cache-unified;
575 cache-level = <2>; 590 cache-level = <2>;
591 prefetch-data = <1>;
592 prefetch-instr = <1>;
593 arm,shared-override;
576 }; 594 };
577 595
578 mmc: dwmmc0@ff808000 { 596 mmc: dwmmc0@ff808000 {
@@ -657,6 +675,20 @@
657 }; 675 };
658 }; 676 };
659 677
678 qspi: spi@ff809000 {
679 compatible = "cdns,qspi-nor";
680 #address-cells = <1>;
681 #size-cells = <0>;
682 reg = <0xff809000 0x100>,
683 <0xffa00000 0x100000>;
684 interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>;
685 cdns,fifo-depth = <128>;
686 cdns,fifo-width = <4>;
687 cdns,trigger-address = <0x00000000>;
688 clocks = <&qspi_clk>;
689 status = "disabled";
690 };
691
660 rst: rstmgr@ffd05000 { 692 rst: rstmgr@ffd05000 {
661 #reset-cells = <1>; 693 #reset-cells = <1>;
662 compatible = "altr,rst-mgr"; 694 compatible = "altr,rst-mgr";
diff --git a/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi b/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi
index 8e3a4adc389f..eb00ae37f316 100644
--- a/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi
+++ b/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi
@@ -36,6 +36,30 @@
36 reg = <0x0 0x40000000>; /* 1GB */ 36 reg = <0x0 0x40000000>; /* 1GB */
37 }; 37 };
38 38
39 a10leds {
40 compatible = "gpio-leds";
41
42 a10sr_led0 {
43 label = "a10sr-led0";
44 gpios = <&a10sr_gpio 0 1>;
45 };
46
47 a10sr_led1 {
48 label = "a10sr-led1";
49 gpios = <&a10sr_gpio 1 1>;
50 };
51
52 a10sr_led2 {
53 label = "a10sr-led2";
54 gpios = <&a10sr_gpio 2 1>;
55 };
56
57 a10sr_led3 {
58 label = "a10sr-led3";
59 gpios = <&a10sr_gpio 3 1>;
60 };
61 };
62
39 soc { 63 soc {
40 clkmgr@ffd04000 { 64 clkmgr@ffd04000 {
41 clocks { 65 clocks {
@@ -75,6 +99,31 @@
75 status = "okay"; 99 status = "okay";
76}; 100};
77 101
102&gpio1 {
103 status = "okay";
104};
105
106&spi1 {
107 status = "okay";
108
109 resource-manager@0 {
110 compatible = "altr,a10sr";
111 reg = <0>;
112 spi-max-frequency = <100000>;
113 /* low-level active IRQ at GPIO1_5 */
114 interrupt-parent = <&portb>;
115 interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
116 interrupt-controller;
117 #interrupt-cells = <2>;
118
119 a10sr_gpio: gpio-controller {
120 compatible = "altr,a10sr-gpio";
121 gpio-controller;
122 #gpio-cells = <2>;
123 };
124 };
125};
126
78&i2c1 { 127&i2c1 {
79 speed-mode = <0>; 128 speed-mode = <0>;
80 status = "okay"; 129 status = "okay";
diff --git a/arch/arm/boot/dts/socfpga_arria10_socdk_qspi.dts b/arch/arm/boot/dts/socfpga_arria10_socdk_qspi.dts
new file mode 100644
index 000000000000..beb2fc6b9eb6
--- /dev/null
+++ b/arch/arm/boot/dts/socfpga_arria10_socdk_qspi.dts
@@ -0,0 +1,49 @@
1/*
2 * Copyright (C) 2016 Intel. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License along with
14 * this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/dts-v1/;
18#include "socfpga_arria10_socdk.dtsi"
19
20&qspi {
21 status = "okay";
22
23 flash0: n25q00@0 {
24 #address-cells = <1>;
25 #size-cells = <1>;
26 compatible = "n25q00aa";
27 reg = <0>;
28 spi-max-frequency = <100000000>;
29
30 m25p,fast-read;
31 cdns,page-size = <256>;
32 cdns,block-size = <16>;
33 cdns,read-delay = <4>;
34 cdns,tshsl-ns = <50>;
35 cdns,tsd2d-ns = <50>;
36 cdns,tchsh-ns = <4>;
37 cdns,tslch-ns = <4>;
38
39 partition@qspi-boot {
40 label = "Boot and fpga data";
41 reg = <0x0 0x2720000>;
42 };
43
44 partition@qspi-rootfs {
45 label = "Root Filesystem - JFFS2";
46 reg = <0x2720000 0x58E0000>;
47 };
48 };
49};
diff --git a/arch/arm/boot/dts/socfpga_arria5_socdk.dts b/arch/arm/boot/dts/socfpga_arria5_socdk.dts
index 3c8867862b0d..f739ead074a2 100644
--- a/arch/arm/boot/dts/socfpga_arria5_socdk.dts
+++ b/arch/arm/boot/dts/socfpga_arria5_socdk.dts
@@ -82,6 +82,39 @@
82 status = "okay"; 82 status = "okay";
83}; 83};
84 84
85&qspi {
86 status = "okay";
87
88 flash: flash@0 {
89 #address-cells = <1>;
90 #size-cells = <1>;
91 compatible = "n25q256a";
92 reg = <0>;
93 spi-max-frequency = <100000000>;
94
95 m25p,fast-read;
96 cdns,page-size = <256>;
97 cdns,block-size = <16>;
98 cdns,read-delay = <4>;
99 cdns,tshsl-ns = <50>;
100 cdns,tsd2d-ns = <50>;
101 cdns,tchsh-ns = <4>;
102 cdns,tslch-ns = <4>;
103
104 partition@qspi-boot {
105 /* 8MB for raw data. */
106 label = "Flash 0 Raw Data";
107 reg = <0x0 0x800000>;
108 };
109
110 partition@qspi-rootfs {
111 /* 120MB for jffs2 data. */
112 label = "Flash 0 jffs2 Filesystem";
113 reg = <0x800000 0x7800000>;
114 };
115 };
116};
117
85&usb1 { 118&usb1 {
86 status = "okay"; 119 status = "okay";
87}; 120};
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts b/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts
index afea3645ada4..5ecd2ef405e3 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts
@@ -18,7 +18,7 @@
18 18
19/ { 19/ {
20 model = "Terasic DE-0(Atlas)"; 20 model = "Terasic DE-0(Atlas)";
21 compatible = "altr,socfpga-cyclone5", "altr,socfpga"; 21 compatible = "terasic,de0-atlas", "altr,socfpga-cyclone5", "altr,socfpga";
22 22
23 chosen { 23 chosen {
24 bootargs = "earlyprintk"; 24 bootargs = "earlyprintk";
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi b/arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi
index f86f9c060d7a..6ad3b1eb9b86 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi
+++ b/arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi
@@ -18,7 +18,7 @@
18#include "socfpga_cyclone5.dtsi" 18#include "socfpga_cyclone5.dtsi"
19 19
20/ { 20/ {
21 model = "DENX MCV"; 21 model = "Aries/DENX MCV";
22 compatible = "altr,socfpga-cyclone5", "altr,socfpga"; 22 compatible = "altr,socfpga-cyclone5", "altr,socfpga";
23 23
24 memory { 24 memory {
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_mcvevk.dts b/arch/arm/boot/dts/socfpga_cyclone5_mcvevk.dts
index 7186a29b8b86..e5a98e5696ca 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_mcvevk.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_mcvevk.dts
@@ -18,8 +18,8 @@
18#include "socfpga_cyclone5_mcv.dtsi" 18#include "socfpga_cyclone5_mcv.dtsi"
19 19
20/ { 20/ {
21 model = "DENX MCV EVK"; 21 model = "Aries/DENX MCV EVK";
22 compatible = "altr,socfpga-cyclone5", "altr,socfpga"; 22 compatible = "denx,mcvevk", "altr,socfpga-cyclone5", "altr,socfpga";
23 23
24 aliases { 24 aliases {
25 ethernet0 = &gmac0; 25 ethernet0 = &gmac0;
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
index 15e43f43f244..6306d008f01b 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
@@ -19,7 +19,7 @@
19 19
20/ { 20/ {
21 model = "Altera SOCFPGA Cyclone V SoC Development Kit"; 21 model = "Altera SOCFPGA Cyclone V SoC Development Kit";
22 compatible = "altr,socfpga-cyclone5", "altr,socfpga"; 22 compatible = "altr,socfpga-cyclone5-socdk", "altr,socfpga-cyclone5", "altr,socfpga";
23 23
24 chosen { 24 chosen {
25 bootargs = "earlyprintk"; 25 bootargs = "earlyprintk";
@@ -87,6 +87,39 @@
87 status = "okay"; 87 status = "okay";
88}; 88};
89 89
90&qspi {
91 status = "okay";
92
93 flash0: n25q00@0 {
94 #address-cells = <1>;
95 #size-cells = <1>;
96 compatible = "n25q00";
97 reg = <0>; /* chip select */
98 spi-max-frequency = <100000000>;
99
100 m25p,fast-read;
101 cdns,page-size = <256>;
102 cdns,block-size = <16>;
103 cdns,read-delay = <4>;
104 cdns,tshsl-ns = <50>;
105 cdns,tsd2d-ns = <50>;
106 cdns,tchsh-ns = <4>;
107 cdns,tslch-ns = <4>;
108
109 partition@qspi-boot {
110 /* 8MB for raw data. */
111 label = "Flash 0 Raw Data";
112 reg = <0x0 0x800000>;
113 };
114
115 partition@qspi-rootfs {
116 /* 120MB for jffs2 data. */
117 label = "Flash 0 jffs2 Filesystem";
118 reg = <0x800000 0x7800000>;
119 };
120 };
121};
122
90&usb1 { 123&usb1 {
91 status = "okay"; 124 status = "okay";
92}; 125};
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts b/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
index 02e22f554ef0..a0c90b3bdfd1 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
@@ -19,7 +19,7 @@
19 19
20/ { 20/ {
21 model = "Terasic SoCkit"; 21 model = "Terasic SoCkit";
22 compatible = "altr,socfpga-cyclone5", "altr,socfpga"; 22 compatible = "terasic,socfpga-cyclone5-sockit", "altr,socfpga-cyclone5", "altr,socfpga";
23 23
24 chosen { 24 chosen {
25 bootargs = "earlyprintk"; 25 bootargs = "earlyprintk";
@@ -175,6 +175,27 @@
175 status = "okay"; 175 status = "okay";
176}; 176};
177 177
178&qspi {
179 status = "okay";
180
181 flash: flash@0 {
182 #address-cells = <1>;
183 #size-cells = <1>;
184 compatible = "n25q00";
185 reg = <0>;
186 spi-max-frequency = <100000000>;
187
188 m25p,fast-read;
189 cdns,page-size = <256>;
190 cdns,block-size = <16>;
191 cdns,read-delay = <4>;
192 cdns,tshsl-ns = <50>;
193 cdns,tsd2d-ns = <50>;
194 cdns,tchsh-ns = <4>;
195 cdns,tslch-ns = <4>;
196 };
197};
198
178&usb1 { 199&usb1 {
179 status = "okay"; 200 status = "okay";
180}; 201};
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_socrates.dts b/arch/arm/boot/dts/socfpga_cyclone5_socrates.dts
index d79853775061..c3d52f27b21e 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_socrates.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_socrates.dts
@@ -80,3 +80,22 @@
80&mmc { 80&mmc {
81 status = "okay"; 81 status = "okay";
82}; 82};
83
84&qspi {
85 status = "okay";
86
87 flash: flash@0 {
88 #address-cells = <1>;
89 #size-cells = <1>;
90 compatible = "n25q256a";
91 reg = <0>;
92 spi-max-frequency = <100000000>;
93 m25p,fast-read;
94 cdns,read-delay = <4>;
95 cdns,tshsl-ns = <50>;
96 cdns,tsd2d-ns = <50>;
97 cdns,tchsh-ns = <4>;
98 cdns,tslch-ns = <4>;
99 status = "okay";
100 };
101};
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_sodia.dts b/arch/arm/boot/dts/socfpga_cyclone5_sodia.dts
new file mode 100644
index 000000000000..5b7e3c27e6e9
--- /dev/null
+++ b/arch/arm/boot/dts/socfpga_cyclone5_sodia.dts
@@ -0,0 +1,123 @@
1/*
2 * Copyright (C) 2016 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
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#include <dt-bindings/gpio/gpio.h>
20#include <dt-bindings/input/input.h>
21
22/ {
23 model = "Altera SOCFPGA Cyclone V SoC Macnica Sodia board";
24 compatible = "macnica,sodia", "altr,socfpga-cyclone5", "altr,socfpga";
25
26 chosen {
27 bootargs = "earlyprintk";
28 stdout-path = "serial0:115200n8";
29 };
30
31 memory {
32 name = "memory";
33 device_type = "memory";
34 reg = <0x0 0x40000000>;
35 };
36
37 aliases {
38 ethernet0 = &gmac1;
39 };
40
41 regulator_3_3v: 3-3-v-regulator {
42 compatible = "regulator-fixed";
43 regulator-name = "3.3V";
44 regulator-min-microvolt = <3300000>;
45 regulator-max-microvolt = <3300000>;
46 };
47
48 leds: gpio-leds {
49 compatible = "gpio-leds";
50
51 hps_led0 {
52 label = "hps:green:led0";
53 gpios = <&portb 12 GPIO_ACTIVE_LOW>;
54 };
55
56 hps_led1 {
57 label = "hps:green:led1";
58 gpios = <&portb 13 GPIO_ACTIVE_LOW>;
59 };
60
61 hps_led2 {
62 label = "hps:green:led2";
63 gpios = <&portb 14 GPIO_ACTIVE_LOW>;
64 };
65
66 hps_led3 {
67 label = "hps:green:led3";
68 gpios = <&portb 15 GPIO_ACTIVE_LOW>;
69 };
70 };
71};
72
73&gmac1 {
74 status = "okay";
75 phy-mode = "rgmii";
76 phy = <&phy0>;
77
78 mdio0 {
79 #address-cells = <1>;
80 #size-cells = <0>;
81 phy0: ethernet-phy@0 {
82 reg = <0>;
83 rxd0-skew-ps = <0>;
84 rxd1-skew-ps = <0>;
85 rxd2-skew-ps = <0>;
86 rxd3-skew-ps = <0>;
87 rxdv-skew-ps = <0>;
88 rxc-skew-ps = <3000>;
89 txen-skew-ps = <0>;
90 txc-skew-ps = <3000>;
91 };
92 };
93};
94
95&gpio1 {
96 status = "okay";
97};
98
99&i2c0 {
100 status = "okay";
101
102 eeprom@51 {
103 compatible = "atmel,24c32";
104 reg = <0x51>;
105 pagesize = <32>;
106 };
107
108 rtc@68 {
109 compatible = "dallas,ds1339";
110 reg = <0x68>;
111 };
112};
113
114&mmc0 {
115 cd-gpios = <&portb 18 0>;
116 vmmc-supply = <&regulator_3_3v>;
117 vqmmc-supply = <&regulator_3_3v>;
118 status = "okay";
119};
120
121&usb1 {
122 status = "okay";
123};
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts b/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts
index b844473601d2..363ee62457fe 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts
@@ -51,7 +51,7 @@
51 51
52/ { 52/ {
53 model = "samtec VIN|ING FPGA"; 53 model = "samtec VIN|ING FPGA";
54 compatible = "altr,socfpga-cyclone5", "altr,socfpga"; 54 compatible = "samtec,vining", "altr,socfpga-cyclone5", "altr,socfpga";
55 55
56 chosen { 56 chosen {
57 bootargs = "console=ttyS0,115200"; 57 bootargs = "console=ttyS0,115200";
diff --git a/arch/arm/boot/dts/stih407-clock.dtsi b/arch/arm/boot/dts/stih407-clock.dtsi
index 13029c03d7c6..34c119a66f14 100644
--- a/arch/arm/boot/dts/stih407-clock.dtsi
+++ b/arch/arm/boot/dts/stih407-clock.dtsi
@@ -101,6 +101,7 @@
101 clocks = <&clk_sysin>; 101 clocks = <&clk_sysin>;
102 102
103 clock-output-names = "clk-s-a0-pll-ofd-0"; 103 clock-output-names = "clk-s-a0-pll-ofd-0";
104 clock-critical = <0>; /* clk-s-a0-pll-ofd-0 */
104 }; 105 };
105 106
106 clk_s_a0_flexgen: clk-s-a0-flexgen { 107 clk_s_a0_flexgen: clk-s-a0-flexgen {
@@ -112,6 +113,7 @@
112 <&clk_sysin>; 113 <&clk_sysin>;
113 114
114 clock-output-names = "clk-ic-lmi0"; 115 clock-output-names = "clk-ic-lmi0";
116 clock-critical = <CLK_IC_LMI0>;
115 }; 117 };
116 }; 118 };
117 119
@@ -126,6 +128,7 @@
126 "clk-s-c0-fs0-ch1", 128 "clk-s-c0-fs0-ch1",
127 "clk-s-c0-fs0-ch2", 129 "clk-s-c0-fs0-ch2",
128 "clk-s-c0-fs0-ch3"; 130 "clk-s-c0-fs0-ch3";
131 clock-critical = <0>; /* clk-s-c0-fs0-ch0 */
129 }; 132 };
130 133
131 clk_s_c0: clockgen-c@09103000 { 134 clk_s_c0: clockgen-c@09103000 {
@@ -139,6 +142,7 @@
139 clocks = <&clk_sysin>; 142 clocks = <&clk_sysin>;
140 143
141 clock-output-names = "clk-s-c0-pll0-odf-0"; 144 clock-output-names = "clk-s-c0-pll0-odf-0";
145 clock-critical = <0>; /* clk-s-c0-pll0-odf-0 */
142 }; 146 };
143 147
144 clk_s_c0_pll1: clk-s-c0-pll1 { 148 clk_s_c0_pll1: clk-s-c0-pll1 {
@@ -194,6 +198,12 @@
194 "clk-main-disp", 198 "clk-main-disp",
195 "clk-aux-disp", 199 "clk-aux-disp",
196 "clk-compo-dvp"; 200 "clk-compo-dvp";
201 clock-critical = <CLK_PROC_STFE>,
202 <CLK_ICN_CPU>,
203 <CLK_TX_ICN_DMU>,
204 <CLK_EXT2F_A9>,
205 <CLK_ICN_LMI>,
206 <CLK_ICN_SBC>;
197 }; 207 };
198 }; 208 };
199 209
diff --git a/arch/arm/boot/dts/stih407-family.dtsi b/arch/arm/boot/dts/stih407-family.dtsi
index 8f79b4147bba..c8b2944e304a 100644
--- a/arch/arm/boot/dts/stih407-family.dtsi
+++ b/arch/arm/boot/dts/stih407-family.dtsi
@@ -916,7 +916,7 @@
916 }; 916 };
917 917
918 sti_uni_player0: sti-uni-player@8d80000 { 918 sti_uni_player0: sti-uni-player@8d80000 {
919 compatible = "st,sti-uni-player"; 919 compatible = "st,stih407-uni-player-hdmi";
920 #sound-dai-cells = <0>; 920 #sound-dai-cells = <0>;
921 st,syscfg = <&syscfg_core>; 921 st,syscfg = <&syscfg_core>;
922 clocks = <&clk_s_d0_flexgen CLK_PCM_0>; 922 clocks = <&clk_s_d0_flexgen CLK_PCM_0>;
@@ -926,17 +926,13 @@
926 reg = <0x8d80000 0x158>; 926 reg = <0x8d80000 0x158>;
927 interrupts = <GIC_SPI 84 IRQ_TYPE_NONE>; 927 interrupts = <GIC_SPI 84 IRQ_TYPE_NONE>;
928 dmas = <&fdma0 2 0 1>; 928 dmas = <&fdma0 2 0 1>;
929 dai-name = "Uni Player #0 (HDMI)";
930 dma-names = "tx"; 929 dma-names = "tx";
931 st,uniperiph-id = <0>;
932 st,version = <5>;
933 st,mode = "HDMI";
934 930
935 status = "disabled"; 931 status = "disabled";
936 }; 932 };
937 933
938 sti_uni_player1: sti-uni-player@8d81000 { 934 sti_uni_player1: sti-uni-player@8d81000 {
939 compatible = "st,sti-uni-player"; 935 compatible = "st,stih407-uni-player-pcm-out";
940 #sound-dai-cells = <0>; 936 #sound-dai-cells = <0>;
941 st,syscfg = <&syscfg_core>; 937 st,syscfg = <&syscfg_core>;
942 clocks = <&clk_s_d0_flexgen CLK_PCM_1>; 938 clocks = <&clk_s_d0_flexgen CLK_PCM_1>;
@@ -946,17 +942,13 @@
946 reg = <0x8d81000 0x158>; 942 reg = <0x8d81000 0x158>;
947 interrupts = <GIC_SPI 85 IRQ_TYPE_NONE>; 943 interrupts = <GIC_SPI 85 IRQ_TYPE_NONE>;
948 dmas = <&fdma0 3 0 1>; 944 dmas = <&fdma0 3 0 1>;
949 dai-name = "Uni Player #1 (PIO)";
950 dma-names = "tx"; 945 dma-names = "tx";
951 st,uniperiph-id = <1>;
952 st,version = <5>;
953 st,mode = "PCM";
954 946
955 status = "disabled"; 947 status = "disabled";
956 }; 948 };
957 949
958 sti_uni_player2: sti-uni-player@8d82000 { 950 sti_uni_player2: sti-uni-player@8d82000 {
959 compatible = "st,sti-uni-player"; 951 compatible = "st,stih407-uni-player-dac";
960 #sound-dai-cells = <0>; 952 #sound-dai-cells = <0>;
961 st,syscfg = <&syscfg_core>; 953 st,syscfg = <&syscfg_core>;
962 clocks = <&clk_s_d0_flexgen CLK_PCM_2>; 954 clocks = <&clk_s_d0_flexgen CLK_PCM_2>;
@@ -966,17 +958,13 @@
966 reg = <0x8d82000 0x158>; 958 reg = <0x8d82000 0x158>;
967 interrupts = <GIC_SPI 86 IRQ_TYPE_NONE>; 959 interrupts = <GIC_SPI 86 IRQ_TYPE_NONE>;
968 dmas = <&fdma0 4 0 1>; 960 dmas = <&fdma0 4 0 1>;
969 dai-name = "Uni Player #1 (DAC)";
970 dma-names = "tx"; 961 dma-names = "tx";
971 st,uniperiph-id = <2>;
972 st,version = <5>;
973 st,mode = "PCM";
974 962
975 status = "disabled"; 963 status = "disabled";
976 }; 964 };
977 965
978 sti_uni_player3: sti-uni-player@8d85000 { 966 sti_uni_player3: sti-uni-player@8d85000 {
979 compatible = "st,sti-uni-player"; 967 compatible = "st,stih407-uni-player-spdif";
980 #sound-dai-cells = <0>; 968 #sound-dai-cells = <0>;
981 st,syscfg = <&syscfg_core>; 969 st,syscfg = <&syscfg_core>;
982 clocks = <&clk_s_d0_flexgen CLK_SPDIFF>; 970 clocks = <&clk_s_d0_flexgen CLK_SPDIFF>;
@@ -987,38 +975,30 @@
987 interrupts = <GIC_SPI 89 IRQ_TYPE_NONE>; 975 interrupts = <GIC_SPI 89 IRQ_TYPE_NONE>;
988 dmas = <&fdma0 7 0 1>; 976 dmas = <&fdma0 7 0 1>;
989 dma-names = "tx"; 977 dma-names = "tx";
990 dai-name = "Uni Player #1 (PIO)";
991 st,uniperiph-id = <3>;
992 st,version = <5>;
993 st,mode = "SPDIF";
994 978
995 status = "disabled"; 979 status = "disabled";
996 }; 980 };
997 981
998 sti_uni_reader0: sti-uni-reader@8d83000 { 982 sti_uni_reader0: sti-uni-reader@8d83000 {
999 compatible = "st,sti-uni-reader"; 983 compatible = "st,stih407-uni-reader-pcm_in";
1000 #sound-dai-cells = <0>; 984 #sound-dai-cells = <0>;
1001 st,syscfg = <&syscfg_core>; 985 st,syscfg = <&syscfg_core>;
1002 reg = <0x8d83000 0x158>; 986 reg = <0x8d83000 0x158>;
1003 interrupts = <GIC_SPI 87 IRQ_TYPE_NONE>; 987 interrupts = <GIC_SPI 87 IRQ_TYPE_NONE>;
1004 dmas = <&fdma0 5 0 1>; 988 dmas = <&fdma0 5 0 1>;
1005 dma-names = "rx"; 989 dma-names = "rx";
1006 dai-name = "Uni Reader #0 (PCM IN)";
1007 st,version = <3>;
1008 990
1009 status = "disabled"; 991 status = "disabled";
1010 }; 992 };
1011 993
1012 sti_uni_reader1: sti-uni-reader@8d84000 { 994 sti_uni_reader1: sti-uni-reader@8d84000 {
1013 compatible = "st,sti-uni-reader"; 995 compatible = "st,stih407-uni-reader-hdmi";
1014 #sound-dai-cells = <0>; 996 #sound-dai-cells = <0>;
1015 st,syscfg = <&syscfg_core>; 997 st,syscfg = <&syscfg_core>;
1016 reg = <0x8d84000 0x158>; 998 reg = <0x8d84000 0x158>;
1017 interrupts = <GIC_SPI 88 IRQ_TYPE_NONE>; 999 interrupts = <GIC_SPI 88 IRQ_TYPE_NONE>;
1018 dmas = <&fdma0 6 0 1>; 1000 dmas = <&fdma0 6 0 1>;
1019 dma-names = "rx"; 1001 dma-names = "rx";
1020 dai-name = "Uni Reader #1 (HDMI RX)";
1021 st,version = <3>;
1022 1002
1023 status = "disabled"; 1003 status = "disabled";
1024 }; 1004 };
diff --git a/arch/arm/boot/dts/stih407-pinctrl.dtsi b/arch/arm/boot/dts/stih407-pinctrl.dtsi
index c325cc059ae4..daab16b5ae64 100644
--- a/arch/arm/boot/dts/stih407-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stih407-pinctrl.dtsi
@@ -1157,7 +1157,7 @@
1157 reg = <0x0923f080 0x4>; 1157 reg = <0x0923f080 0x4>;
1158 reg-names = "irqmux"; 1158 reg-names = "irqmux";
1159 interrupts = <GIC_SPI 192 IRQ_TYPE_NONE>; 1159 interrupts = <GIC_SPI 192 IRQ_TYPE_NONE>;
1160 interrupts-names = "irqmux"; 1160 interrupt-names = "irqmux";
1161 ranges = <0 0x09230000 0x3000>; 1161 ranges = <0 0x09230000 0x3000>;
1162 1162
1163 pio40: gpio@09230000 { 1163 pio40: gpio@09230000 {
diff --git a/arch/arm/boot/dts/stih407.dtsi b/arch/arm/boot/dts/stih407.dtsi
index 291ffacbd2e0..fa149837df14 100644
--- a/arch/arm/boot/dts/stih407.dtsi
+++ b/arch/arm/boot/dts/stih407.dtsi
@@ -102,7 +102,7 @@
102 <&clk_s_d2_quadfs 0>; 102 <&clk_s_d2_quadfs 0>;
103 }; 103 };
104 104
105 sti-hdmi@8d04000 { 105 sti_hdmi: sti-hdmi@8d04000 {
106 compatible = "st,stih407-hdmi"; 106 compatible = "st,stih407-hdmi";
107 reg = <0x8d04000 0x1000>; 107 reg = <0x8d04000 0x1000>;
108 reg-names = "hdmi-reg"; 108 reg-names = "hdmi-reg";
diff --git a/arch/arm/boot/dts/stih410-b2260.dts b/arch/arm/boot/dts/stih410-b2260.dts
index 7fb507fcba7e..06b0696cb6b8 100644
--- a/arch/arm/boot/dts/stih410-b2260.dts
+++ b/arch/arm/boot/dts/stih410-b2260.dts
@@ -165,6 +165,9 @@
165 status = "okay"; 165 status = "okay";
166 }; 166 };
167 167
168 sti_uni_player0: sti-uni-player@8d80000 {
169 status = "okay";
170 };
168 /* SSC11 to HDMI */ 171 /* SSC11 to HDMI */
169 hdmiddc: i2c@9541000 { 172 hdmiddc: i2c@9541000 {
170 /* HDMI V1.3a supports Standard mode only */ 173 /* HDMI V1.3a supports Standard mode only */
@@ -174,9 +177,22 @@
174 status = "okay"; 177 status = "okay";
175 }; 178 };
176 179
177 sti-display-subsystem { 180 sound {
178 sti_hdmi: sti-hdmi@8d04000 { 181 compatible = "simple-audio-card";
179 status = "okay"; 182 simple-audio-card,name = "STI-B2260";
183 status = "okay";
184
185 simple-audio-card,dai-link@0 {
186 /* DAC */
187 format = "i2s";
188 mclk-fs = <128>;
189 cpu {
190 sound-dai = <&sti_uni_player0>;
191 };
192
193 codec {
194 sound-dai = <&sti_hdmi>;
195 };
180 }; 196 };
181 }; 197 };
182 198
diff --git a/arch/arm/boot/dts/stih410-clock.dtsi b/arch/arm/boot/dts/stih410-clock.dtsi
index 8598effd6c01..07c8ef9d77f6 100644
--- a/arch/arm/boot/dts/stih410-clock.dtsi
+++ b/arch/arm/boot/dts/stih410-clock.dtsi
@@ -208,7 +208,8 @@
208 "clk-clust-hades", 208 "clk-clust-hades",
209 "clk-hwpe-hades", 209 "clk-hwpe-hades",
210 "clk-fc-hades"; 210 "clk-fc-hades";
211 clock-critical = <CLK_ICN_CPU>, 211 clock-critical = <CLK_PROC_STFE>,
212 <CLK_ICN_CPU>,
212 <CLK_TX_ICN_DMU>, 213 <CLK_TX_ICN_DMU>,
213 <CLK_EXT2F_A9>, 214 <CLK_EXT2F_A9>,
214 <CLK_ICN_LMI>, 215 <CLK_ICN_LMI>,
diff --git a/arch/arm/boot/dts/stih410.dtsi b/arch/arm/boot/dts/stih410.dtsi
index a3ef7341c051..281a12424cf6 100644
--- a/arch/arm/boot/dts/stih410.dtsi
+++ b/arch/arm/boot/dts/stih410.dtsi
@@ -193,7 +193,7 @@
193 <&clk_s_d2_quadfs 0>; 193 <&clk_s_d2_quadfs 0>;
194 }; 194 };
195 195
196 sti-hdmi@8d04000 { 196 sti_hdmi: sti-hdmi@8d04000 {
197 compatible = "st,stih407-hdmi"; 197 compatible = "st,stih407-hdmi";
198 reg = <0x8d04000 0x1000>; 198 reg = <0x8d04000 0x1000>;
199 reg-names = "hdmi-reg"; 199 reg-names = "hdmi-reg";
diff --git a/arch/arm/boot/dts/stih415-b2000.dts b/arch/arm/boot/dts/stih415-b2000.dts
deleted file mode 100644
index bdfbd3765db2..000000000000
--- a/arch/arm/boot/dts/stih415-b2000.dts
+++ /dev/null
@@ -1,15 +0,0 @@
1/*
2 * Copyright (C) 2013 STMicroelectronics (R&D) Limited.
3 * Author: Srinivas Kandagatla <srinivas.kandagatla@st.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 * publishhed by the Free Software Foundation.
8 */
9/dts-v1/;
10#include "stih415.dtsi"
11#include "stih41x-b2000.dtsi"
12/ {
13 model = "STiH415 B2000 Board";
14 compatible = "st,stih415-b2000", "st,stih415";
15};
diff --git a/arch/arm/boot/dts/stih415-b2020.dts b/arch/arm/boot/dts/stih415-b2020.dts
deleted file mode 100644
index 71903a87bd31..000000000000
--- a/arch/arm/boot/dts/stih415-b2020.dts
+++ /dev/null
@@ -1,15 +0,0 @@
1/*
2 * Copyright (C) 2013 STMicroelectronics (R&D) Limited.
3 * Author: Srinivas Kandagatla <srinivas.kandagatla@st.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 * publishhed by the Free Software Foundation.
8 */
9/dts-v1/;
10#include "stih415.dtsi"
11#include "stih41x-b2020.dtsi"
12/ {
13 model = "STiH415 B2020 Board";
14 compatible = "st,stih415-b2020", "st,stih415";
15};
diff --git a/arch/arm/boot/dts/stih415-clock.dtsi b/arch/arm/boot/dts/stih415-clock.dtsi
deleted file mode 100644
index 3ee34514bc4b..000000000000
--- a/arch/arm/boot/dts/stih415-clock.dtsi
+++ /dev/null
@@ -1,533 +0,0 @@
1/*
2 * Copyright (C) 2013 STMicroelectronics (R&D) Limited
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 <dt-bindings/clock/stih415-clks.h>
10
11/ {
12 clocks {
13 #address-cells = <1>;
14 #size-cells = <1>;
15 ranges;
16
17 /*
18 * Fixed 30MHz oscillator input to SoC
19 */
20 clk_sysin: clk-sysin {
21 #clock-cells = <0>;
22 compatible = "fixed-clock";
23 clock-frequency = <30000000>;
24 };
25
26 /*
27 * ClockGenAs on SASG1
28 */
29 clockgen-a@fee62000 {
30 reg = <0xfee62000 0xb48>;
31
32 clk_s_a0_pll: clk-s-a0-pll {
33 #clock-cells = <1>;
34 compatible = "st,clkgena-plls-c65";
35
36 clocks = <&clk_sysin>;
37
38 clock-output-names = "clk-s-a0-pll0-hs",
39 "clk-s-a0-pll0-ls",
40 "clk-s-a0-pll1";
41 };
42
43 clk_s_a0_osc_prediv: clk-s-a0-osc-prediv {
44 #clock-cells = <0>;
45 compatible = "st,clkgena-prediv-c65",
46 "st,clkgena-prediv";
47
48 clocks = <&clk_sysin>;
49
50 clock-output-names = "clk-s-a0-osc-prediv";
51 };
52
53 clk_s_a0_hs: clk-s-a0-hs {
54 #clock-cells = <1>;
55 compatible = "st,clkgena-divmux-c65-hs",
56 "st,clkgena-divmux";
57
58 clocks = <&clk_s_a0_osc_prediv>,
59 <&clk_s_a0_pll 0>, /* PLL0 HS */
60 <&clk_s_a0_pll 2>; /* PLL1 */
61
62 clock-output-names = "clk-s-fdma-0",
63 "clk-s-fdma-1",
64 ""; /* clk-s-jit-sense */
65 /* Fourth output unused */
66 };
67
68 clk_s_a0_ls: clk-s-a0-ls {
69 #clock-cells = <1>;
70 compatible = "st,clkgena-divmux-c65-ls",
71 "st,clkgena-divmux";
72
73 clocks = <&clk_s_a0_osc_prediv>,
74 <&clk_s_a0_pll 1>, /* PLL0 LS */
75 <&clk_s_a0_pll 2>; /* PLL1 */
76
77 clock-output-names = "clk-s-icn-reg-0",
78 "clk-s-icn-if-0",
79 "clk-s-icn-reg-lp-0",
80 "clk-s-emiss",
81 "clk-s-eth1-phy",
82 "clk-s-mii-ref-out";
83 /* Remaining outputs unused */
84 };
85 };
86
87 clockgen-a@fee81000 {
88 reg = <0xfee81000 0xb48>;
89
90 clk_s_a1_pll: clk-s-a1-pll {
91 #clock-cells = <1>;
92 compatible = "st,clkgena-plls-c65";
93
94 clocks = <&clk_sysin>;
95
96 clock-output-names = "clk-s-a1-pll0-hs",
97 "clk-s-a1-pll0-ls",
98 "clk-s-a1-pll1";
99 };
100
101 clk_s_a1_osc_prediv: clk-s-a1-osc-prediv {
102 #clock-cells = <0>;
103 compatible = "st,clkgena-prediv-c65",
104 "st,clkgena-prediv";
105
106 clocks = <&clk_sysin>;
107
108 clock-output-names = "clk-s-a1-osc-prediv";
109 };
110
111 clk_s_a1_hs: clk-s-a1-hs {
112 #clock-cells = <1>;
113 compatible = "st,clkgena-divmux-c65-hs",
114 "st,clkgena-divmux";
115
116 clocks = <&clk_s_a1_osc_prediv>,
117 <&clk_s_a1_pll 0>, /* PLL0 HS */
118 <&clk_s_a1_pll 2>; /* PLL1 */
119
120 clock-output-names = "", /* Reserved */
121 "", /* Reserved */
122 "clk-s-stac-phy",
123 "clk-s-vtac-tx-phy";
124 };
125
126 clk_s_a1_ls: clk-s-a1-ls {
127 #clock-cells = <1>;
128 compatible = "st,clkgena-divmux-c65-ls",
129 "st,clkgena-divmux";
130
131 clocks = <&clk_s_a1_osc_prediv>,
132 <&clk_s_a1_pll 1>, /* PLL0 LS */
133 <&clk_s_a1_pll 2>; /* PLL1 */
134
135 clock-output-names = "clk-s-icn-if-2",
136 "clk-s-card-mmc",
137 "clk-s-icn-if-1",
138 "clk-s-gmac0-phy",
139 "clk-s-nand-ctrl",
140 "", /* Reserved */
141 "clk-s-mii0-ref-out",
142 ""; /* clk-s-stac-sys */
143 /* Remaining outputs unused */
144 };
145 };
146
147 /*
148 * ClockGenAs on MPE41
149 */
150 clockgen-a@fde12000 {
151 reg = <0xfde12000 0xb50>;
152
153 clk_m_a0_pll0: clk-m-a0-pll0 {
154 #clock-cells = <1>;
155 compatible = "st,plls-c32-a1x-0", "st,clkgen-plls-c32";
156
157 clocks = <&clk_sysin>;
158
159 clock-output-names = "clk-m-a0-pll0-phi0",
160 "clk-m-a0-pll0-phi1",
161 "clk-m-a0-pll0-phi2",
162 "clk-m-a0-pll0-phi3";
163 };
164
165 clk_m_a0_pll1: clk-m-a0-pll1 {
166 #clock-cells = <1>;
167 compatible = "st,plls-c32-a1x-1", "st,clkgen-plls-c32";
168
169 clocks = <&clk_sysin>;
170
171 clock-output-names = "clk-m-a0-pll1-phi0",
172 "clk-m-a0-pll1-phi1",
173 "clk-m-a0-pll1-phi2",
174 "clk-m-a0-pll1-phi3";
175 };
176
177 clk_m_a0_osc_prediv: clk-m-a0-osc-prediv {
178 #clock-cells = <0>;
179 compatible = "st,clkgena-prediv-c32",
180 "st,clkgena-prediv";
181
182 clocks = <&clk_sysin>;
183
184 clock-output-names = "clk-m-a0-osc-prediv";
185 };
186
187 clk_m_a0_div0: clk-m-a0-div0 {
188 #clock-cells = <1>;
189 compatible = "st,clkgena-divmux-c32-odf0",
190 "st,clkgena-divmux";
191
192 clocks = <&clk_m_a0_osc_prediv>,
193 <&clk_m_a0_pll0 0>, /* PLL0 PHI0 */
194 <&clk_m_a0_pll1 0>; /* PLL1 PHI0 */
195
196 clock-output-names = "clk-m-apb-pm", /* Unused */
197 "", /* Unused */
198 "", /* Unused */
199 "", /* Unused */
200 "clk-m-pp-dmu-0",
201 "clk-m-pp-dmu-1",
202 "clk-m-icm-disp",
203 ""; /* Unused */
204 };
205
206 clk_m_a0_div1: clk-m-a0-div1 {
207 #clock-cells = <1>;
208 compatible = "st,clkgena-divmux-c32-odf1",
209 "st,clkgena-divmux";
210
211 clocks = <&clk_m_a0_osc_prediv>,
212 <&clk_m_a0_pll0 1>, /* PLL0 PHI1 */
213 <&clk_m_a0_pll1 1>; /* PLL1 PHI1 */
214
215 clock-output-names = "", /* Unused */
216 "", /* Unused */
217 "clk-m-a9-ext2f",
218 "clk-m-st40rt",
219 "clk-m-st231-dmu-0",
220 "clk-m-st231-dmu-1",
221 "clk-m-st231-aud",
222 "clk-m-st231-gp-0";
223 };
224
225 clk_m_a0_div2: clk-m-a0-div2 {
226 #clock-cells = <1>;
227 compatible = "st,clkgena-divmux-c32-odf2",
228 "st,clkgena-divmux";
229
230 clocks = <&clk_m_a0_osc_prediv>,
231 <&clk_m_a0_pll0 2>, /* PLL0 PHI2 */
232 <&clk_m_a0_pll1 2>; /* PLL1 PHI2 */
233
234 clock-output-names = "clk-m-st231-gp-1",
235 "clk-m-icn-cpu",
236 "clk-m-icn-stac",
237 "clk-m-icn-dmu-0",
238 "clk-m-icn-dmu-1",
239 "", /* Unused */
240 "", /* Unused */
241 ""; /* Unused */
242 };
243
244 clk_m_a0_div3: clk-m-a0-div3 {
245 #clock-cells = <1>;
246 compatible = "st,clkgena-divmux-c32-odf3",
247 "st,clkgena-divmux";
248
249 clocks = <&clk_m_a0_osc_prediv>,
250 <&clk_m_a0_pll0 3>, /* PLL0 PHI3 */
251 <&clk_m_a0_pll1 3>; /* PLL1 PHI3 */
252
253 clock-output-names = "", /* Unused */
254 "", /* Unused */
255 "", /* Unused */
256 "", /* Unused */
257 "", /* Unused */
258 "", /* Unused */
259 "clk-m-icn-eram",
260 "clk-m-a9-trace";
261 };
262 };
263
264 clockgen-a@fd6db000 {
265 reg = <0xfd6db000 0xb50>;
266
267 clk_m_a1_pll0: clk-m-a1-pll0 {
268 #clock-cells = <1>;
269 compatible = "st,plls-c32-a1x-0", "st,clkgen-plls-c32";
270
271 clocks = <&clk_sysin>;
272
273 clock-output-names = "clk-m-a1-pll0-phi0",
274 "clk-m-a1-pll0-phi1",
275 "clk-m-a1-pll0-phi2",
276 "clk-m-a1-pll0-phi3";
277 };
278
279 clk_m_a1_pll1: clk-m-a1-pll1 {
280 #clock-cells = <1>;
281 compatible = "st,plls-c32-a1x-1", "st,clkgen-plls-c32";
282
283 clocks = <&clk_sysin>;
284
285 clock-output-names = "clk-m-a1-pll1-phi0",
286 "clk-m-a1-pll1-phi1",
287 "clk-m-a1-pll1-phi2",
288 "clk-m-a1-pll1-phi3";
289 };
290
291 clk_m_a1_osc_prediv: clk-m-a1-osc-prediv {
292 #clock-cells = <0>;
293 compatible = "st,clkgena-prediv-c32",
294 "st,clkgena-prediv";
295
296 clocks = <&clk_sysin>;
297
298 clock-output-names = "clk-m-a1-osc-prediv";
299 };
300
301 clk_m_a1_div0: clk-m-a1-div0 {
302 #clock-cells = <1>;
303 compatible = "st,clkgena-divmux-c32-odf0",
304 "st,clkgena-divmux";
305
306 clocks = <&clk_m_a1_osc_prediv>,
307 <&clk_m_a1_pll0 0>, /* PLL0 PHI0 */
308 <&clk_m_a1_pll1 0>; /* PLL1 PHI0 */
309
310 clock-output-names = "clk-m-fdma-12",
311 "clk-m-fdma-10",
312 "clk-m-fdma-11",
313 "clk-m-hva-lmi",
314 "clk-m-proc-sc",
315 "clk-m-tp",
316 "clk-m-icn-gpu",
317 "clk-m-icn-vdp-0";
318 };
319
320 clk_m_a1_div1: clk-m-a1-div1 {
321 #clock-cells = <1>;
322 compatible = "st,clkgena-divmux-c32-odf1",
323 "st,clkgena-divmux";
324
325 clocks = <&clk_m_a1_osc_prediv>,
326 <&clk_m_a1_pll0 1>, /* PLL0 PHI1 */
327 <&clk_m_a1_pll1 1>; /* PLL1 PHI1 */
328
329 clock-output-names = "clk-m-icn-vdp-1",
330 "clk-m-icn-vdp-2",
331 "clk-m-icn-vdp-3",
332 "clk-m-prv-t1-bus",
333 "clk-m-icn-vdp-4",
334 "clk-m-icn-reg-10",
335 "", /* Unused */
336 ""; /* clk-m-icn-st231 */
337 };
338
339 clk_m_a1_div2: clk-m-a1-div2 {
340 #clock-cells = <1>;
341 compatible = "st,clkgena-divmux-c32-odf2",
342 "st,clkgena-divmux";
343
344 clocks = <&clk_m_a1_osc_prediv>,
345 <&clk_m_a1_pll0 2>, /* PLL0 PHI2 */
346 <&clk_m_a1_pll1 2>; /* PLL1 PHI2 */
347
348 clock-output-names = "clk-m-fvdp-proc-alt",
349 "", /* Unused */
350 "", /* Unused */
351 "", /* Unused */
352 "", /* Unused */
353 "", /* Unused */
354 "", /* Unused */
355 ""; /* Unused */
356 };
357
358 clk_m_a1_div3: clk-m-a1-div3 {
359 #clock-cells = <1>;
360 compatible = "st,clkgena-divmux-c32-odf3",
361 "st,clkgena-divmux";
362
363 clocks = <&clk_m_a1_osc_prediv>,
364 <&clk_m_a1_pll0 3>, /* PLL0 PHI3 */
365 <&clk_m_a1_pll1 3>; /* PLL1 PHI3 */
366
367 clock-output-names = "", /* Unused */
368 "", /* Unused */
369 "", /* Unused */
370 "", /* Unused */
371 "", /* Unused */
372 "", /* Unused */
373 "", /* Unused */
374 ""; /* Unused */
375 };
376 };
377
378 clk_m_a9_ext2f_div2: clk-m-a9-ext2f-div2 {
379 #clock-cells = <0>;
380 compatible = "fixed-factor-clock";
381 clocks = <&clk_m_a0_div1 2>;
382 clock-div = <2>;
383 clock-mult = <1>;
384 };
385
386 clockgen-a@fd345000 {
387 reg = <0xfd345000 0xb50>;
388
389 clk_m_a2_pll0: clk-m-a2-pll0 {
390 #clock-cells = <1>;
391 compatible = "st,plls-c32-a1x-0", "st,clkgen-plls-c32";
392
393 clocks = <&clk_sysin>;
394
395 clock-output-names = "clk-m-a2-pll0-phi0",
396 "clk-m-a2-pll0-phi1",
397 "clk-m-a2-pll0-phi2",
398 "clk-m-a2-pll0-phi3";
399 };
400
401 clk_m_a2_pll1: clk-m-a2-pll1 {
402 #clock-cells = <1>;
403 compatible = "st,plls-c32-a1x-1", "st,clkgen-plls-c32";
404
405 clocks = <&clk_sysin>;
406
407 clock-output-names = "clk-m-a2-pll1-phi0",
408 "clk-m-a2-pll1-phi1",
409 "clk-m-a2-pll1-phi2",
410 "clk-m-a2-pll1-phi3";
411 };
412
413 clk_m_a2_osc_prediv: clk-m-a2-osc-prediv {
414 #clock-cells = <0>;
415 compatible = "st,clkgena-prediv-c32",
416 "st,clkgena-prediv";
417
418 clocks = <&clk_sysin>;
419
420 clock-output-names = "clk-m-a2-osc-prediv";
421 };
422
423 clk_m_a2_div0: clk-m-a2-div0 {
424 #clock-cells = <1>;
425 compatible = "st,clkgena-divmux-c32-odf0",
426 "st,clkgena-divmux";
427
428 clocks = <&clk_m_a2_osc_prediv>,
429 <&clk_m_a2_pll0 0>, /* PLL0 PHI0 */
430 <&clk_m_a2_pll1 0>; /* PLL1 PHI0 */
431
432 clock-output-names = "clk-m-vtac-main-phy",
433 "clk-m-vtac-aux-phy",
434 "clk-m-stac-phy",
435 "clk-m-stac-sys",
436 "", /* clk-m-mpestac-pg */
437 "", /* clk-m-mpestac-wc */
438 "", /* clk-m-mpevtacaux-pg*/
439 ""; /* clk-m-mpevtacmain-pg*/
440 };
441
442 clk_m_a2_div1: clk-m-a2-div1 {
443 #clock-cells = <1>;
444 compatible = "st,clkgena-divmux-c32-odf1",
445 "st,clkgena-divmux";
446
447 clocks = <&clk_m_a2_osc_prediv>,
448 <&clk_m_a2_pll0 1>, /* PLL0 PHI1 */
449 <&clk_m_a2_pll1 1>; /* PLL1 PHI1 */
450
451 clock-output-names = "", /* clk-m-mpevtacrx0-wc */
452 "", /* clk-m-mpevtacrx1-wc */
453 "clk-m-compo-main",
454 "clk-m-compo-aux",
455 "clk-m-bdisp-0",
456 "clk-m-bdisp-1",
457 "clk-m-icn-bdisp-0",
458 "clk-m-icn-bdisp-1";
459 };
460
461 clk_m_a2_div2: clk-m-a2-div2 {
462 #clock-cells = <1>;
463 compatible = "st,clkgena-divmux-c32-odf2",
464 "st,clkgena-divmux";
465
466 clocks = <&clk_m_a2_osc_prediv>,
467 <&clk_m_a2_pll0 2>, /* PLL0 PHI2 */
468 <&clk_m_a2_pll1 2>; /* PLL1 PHI2 */
469
470 clock-output-names = "", /* clk-m-icn-hqvdp0 */
471 "", /* clk-m-icn-hqvdp1 */
472 "clk-m-icn-compo",
473 "", /* clk-m-icn-vdpaux */
474 "clk-m-icn-ts",
475 "clk-m-icn-reg-lp-10",
476 "clk-m-dcephy-impctrl",
477 ""; /* Unused */
478 };
479
480 clk_m_a2_div3: clk-m-a2-div3 {
481 #clock-cells = <1>;
482 compatible = "st,clkgena-divmux-c32-odf3",
483 "st,clkgena-divmux";
484
485 clocks = <&clk_m_a2_osc_prediv>,
486 <&clk_m_a2_pll0 3>, /* PLL0 PHI3 */
487 <&clk_m_a2_pll1 3>; /* PLL1 PHI3 */
488
489 clock-output-names = ""; /* Unused */
490 /* Remaining outputs unused */
491 };
492 };
493
494 /*
495 * A9 PLL
496 */
497 clockgen-a9@fdde00d8 {
498 reg = <0xfdde00d8 0x70>;
499
500 clockgen_a9_pll: clockgen-a9-pll {
501 #clock-cells = <1>;
502 compatible = "st,stih415-plls-c32-a9", "st,clkgen-plls-c32";
503
504 clocks = <&clk_sysin>;
505 clock-output-names = "clockgen-a9-pll-odf";
506 };
507 };
508
509 /*
510 * ARM CPU related clocks
511 */
512 clk_m_a9: clk-m-a9@fdde00d8 {
513 #clock-cells = <0>;
514 compatible = "st,stih415-clkgen-a9-mux", "st,clkgen-mux";
515 reg = <0xfdde00d8 0x4>;
516 clocks = <&clockgen_a9_pll 0>,
517 <&clockgen_a9_pll 0>,
518 <&clk_m_a0_div1 2>,
519 <&clk_m_a9_ext2f_div2>;
520 };
521
522 /*
523 * ARM Peripheral clock for timers
524 */
525 arm_periph_clk: clk-m-a9-periphs {
526 #clock-cells = <0>;
527 compatible = "fixed-factor-clock";
528 clocks = <&clk_m_a9>;
529 clock-div = <2>;
530 clock-mult = <1>;
531 };
532 };
533};
diff --git a/arch/arm/boot/dts/stih415-pinctrl.dtsi b/arch/arm/boot/dts/stih415-pinctrl.dtsi
deleted file mode 100644
index bd028ce98b61..000000000000
--- a/arch/arm/boot/dts/stih415-pinctrl.dtsi
+++ /dev/null
@@ -1,545 +0,0 @@
1/*
2 * Copyright (C) 2013 STMicroelectronics (R&D) Limited.
3 * Author: Srinivas Kandagatla <srinivas.kandagatla@st.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 * publishhed by the Free Software Foundation.
8 */
9#include "st-pincfg.h"
10#include <dt-bindings/interrupt-controller/arm-gic.h>
11/ {
12
13 aliases {
14 gpio0 = &pio0;
15 gpio1 = &pio1;
16 gpio2 = &pio2;
17 gpio3 = &pio3;
18 gpio4 = &pio4;
19 gpio5 = &pio5;
20 gpio6 = &pio6;
21 gpio7 = &pio7;
22 gpio8 = &pio8;
23 gpio9 = &pio9;
24 gpio10 = &pio10;
25 gpio11 = &pio11;
26 gpio12 = &pio12;
27 gpio13 = &pio13;
28 gpio14 = &pio14;
29 gpio15 = &pio15;
30 gpio16 = &pio16;
31 gpio17 = &pio17;
32 gpio18 = &pio18;
33 gpio19 = &pio100;
34 gpio20 = &pio101;
35 gpio21 = &pio102;
36 gpio22 = &pio103;
37 gpio23 = &pio104;
38 gpio24 = &pio105;
39 gpio25 = &pio106;
40 gpio26 = &pio107;
41 };
42
43 soc {
44 pin-controller-sbc {
45 #address-cells = <1>;
46 #size-cells = <1>;
47 compatible = "st,stih415-sbc-pinctrl";
48 st,syscfg = <&syscfg_sbc>;
49 reg = <0xfe61f080 0x4>;
50 reg-names = "irqmux";
51 interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
52 interrupt-names = "irqmux";
53 ranges = <0 0xfe610000 0x5000>;
54
55 pio0: gpio@fe610000 {
56 gpio-controller;
57 #gpio-cells = <2>;
58 interrupt-controller;
59 #interrupt-cells = <2>;
60 reg = <0 0x100>;
61 st,bank-name = "PIO0";
62 };
63 pio1: gpio@fe611000 {
64 gpio-controller;
65 #gpio-cells = <2>;
66 interrupt-controller;
67 #interrupt-cells = <2>;
68 reg = <0x1000 0x100>;
69 st,bank-name = "PIO1";
70 };
71 pio2: gpio@fe612000 {
72 gpio-controller;
73 #gpio-cells = <2>;
74 interrupt-controller;
75 #interrupt-cells = <2>;
76 reg = <0x2000 0x100>;
77 st,bank-name = "PIO2";
78 };
79 pio3: gpio@fe613000 {
80 gpio-controller;
81 #gpio-cells = <2>;
82 interrupt-controller;
83 #interrupt-cells = <2>;
84 reg = <0x3000 0x100>;
85 st,bank-name = "PIO3";
86 };
87 pio4: gpio@fe614000 {
88 gpio-controller;
89 #gpio-cells = <2>;
90 interrupt-controller;
91 #interrupt-cells = <2>;
92 reg = <0x4000 0x100>;
93 st,bank-name = "PIO4";
94 };
95
96 sbc_serial1 {
97 pinctrl_sbc_serial1:sbc_serial1 {
98 st,pins {
99 tx = <&pio2 6 ALT3 OUT>;
100 rx = <&pio2 7 ALT3 IN>;
101 };
102 };
103 };
104
105 keyscan {
106 pinctrl_keyscan: keyscan {
107 st,pins {
108 keyin0 = <&pio0 2 ALT2 IN>;
109 keyin1 = <&pio0 3 ALT2 IN>;
110 keyin2 = <&pio0 4 ALT2 IN>;
111 keyin3 = <&pio2 6 ALT2 IN>;
112
113 keyout0 = <&pio1 6 ALT2 OUT>;
114 keyout1 = <&pio1 7 ALT2 OUT>;
115 keyout2 = <&pio0 6 ALT2 OUT>;
116 keyout3 = <&pio2 7 ALT2 OUT>;
117 };
118 };
119 };
120
121 sbc_i2c0 {
122 pinctrl_sbc_i2c0_default: sbc_i2c0-default {
123 st,pins {
124 sda = <&pio4 6 ALT1 BIDIR>;
125 scl = <&pio4 5 ALT1 BIDIR>;
126 };
127 };
128 };
129
130 sbc_i2c1 {
131 pinctrl_sbc_i2c1_default: sbc_i2c1-default {
132 st,pins {
133 sda = <&pio3 2 ALT2 BIDIR>;
134 scl = <&pio3 1 ALT2 BIDIR>;
135 };
136 };
137 };
138
139 rc{
140 pinctrl_ir: ir0 {
141 st,pins {
142 ir = <&pio4 0 ALT2 IN>;
143 };
144 };
145 };
146
147 gmac1 {
148 pinctrl_mii1: mii1 {
149 st,pins {
150 txd0 = <&pio0 0 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
151 txd1 = <&pio0 1 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
152 txd2 = <&pio0 2 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
153 txd3 = <&pio0 3 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
154 txer = <&pio0 4 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
155 txen = <&pio0 5 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
156 txclk = <&pio0 6 ALT1 IN NICLK 0 CLK_A>;
157 col = <&pio0 7 ALT1 IN BYPASS 1000>;
158 mdio = <&pio1 0 ALT1 OUT BYPASS 0>;
159 mdc = <&pio1 1 ALT1 OUT NICLK 0 CLK_A>;
160 crs = <&pio1 2 ALT1 IN BYPASS 1000>;
161 mdint = <&pio1 3 ALT1 IN BYPASS 0>;
162 rxd0 = <&pio1 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
163 rxd1 = <&pio1 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
164 rxd2 = <&pio1 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
165 rxd3 = <&pio1 7 ALT1 IN SE_NICLK_IO 0 CLK_A>;
166 rxdv = <&pio2 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
167 rx_er = <&pio2 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
168 rxclk = <&pio2 2 ALT1 IN NICLK 0 CLK_A>;
169 phyclk = <&pio2 3 ALT1 IN NICLK 1000 CLK_A>;
170 };
171 };
172
173 pinctrl_rgmii1: rgmii1-0 {
174 st,pins {
175 txd0 = <&pio0 0 ALT1 OUT DE_IO 1000 CLK_A>;
176 txd1 = <&pio0 1 ALT1 OUT DE_IO 1000 CLK_A>;
177 txd2 = <&pio0 2 ALT1 OUT DE_IO 1000 CLK_A>;
178 txd3 = <&pio0 3 ALT1 OUT DE_IO 1000 CLK_A>;
179 txen = <&pio0 5 ALT1 OUT DE_IO 0 CLK_A>;
180 txclk = <&pio0 6 ALT1 IN NICLK 0 CLK_A>;
181 mdio = <&pio1 0 ALT1 OUT BYPASS 0>;
182 mdc = <&pio1 1 ALT1 OUT NICLK 0 CLK_A>;
183 rxd0 = <&pio1 4 ALT1 IN DE_IO 0 CLK_A>;
184 rxd1 = <&pio1 5 ALT1 IN DE_IO 0 CLK_A>;
185 rxd2 = <&pio1 6 ALT1 IN DE_IO 0 CLK_A>;
186 rxd3 = <&pio1 7 ALT1 IN DE_IO 0 CLK_A>;
187
188 rxdv = <&pio2 0 ALT1 IN DE_IO 500 CLK_A>;
189 rxclk = <&pio2 2 ALT1 IN NICLK 0 CLK_A>;
190 phyclk = <&pio2 3 ALT4 OUT NICLK 0 CLK_B>;
191
192 clk125= <&pio3 7 ALT4 IN NICLK 0 CLK_A>;
193 };
194 };
195 };
196 };
197
198 pin-controller-front {
199 #address-cells = <1>;
200 #size-cells = <1>;
201 compatible = "st,stih415-front-pinctrl";
202 st,syscfg = <&syscfg_front>;
203 reg = <0xfee0f080 0x4>;
204 reg-names = "irqmux";
205 interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
206 interrupt-names = "irqmux";
207 ranges = <0 0xfee00000 0x8000>;
208
209 pio5: gpio@fee00000 {
210 gpio-controller;
211 #gpio-cells = <2>;
212 interrupt-controller;
213 #interrupt-cells = <2>;
214 reg = <0 0x100>;
215 st,bank-name = "PIO5";
216 };
217 pio6: gpio@fee01000 {
218 gpio-controller;
219 #gpio-cells = <2>;
220 interrupt-controller;
221 #interrupt-cells = <2>;
222 reg = <0x1000 0x100>;
223 st,bank-name = "PIO6";
224 };
225 pio7: gpio@fee02000 {
226 gpio-controller;
227 #gpio-cells = <2>;
228 interrupt-controller;
229 #interrupt-cells = <2>;
230 reg = <0x2000 0x100>;
231 st,bank-name = "PIO7";
232 };
233 pio8: gpio@fee03000 {
234 gpio-controller;
235 #gpio-cells = <2>;
236 interrupt-controller;
237 #interrupt-cells = <2>;
238 reg = <0x3000 0x100>;
239 st,bank-name = "PIO8";
240 };
241 pio9: gpio@fee04000 {
242 gpio-controller;
243 #gpio-cells = <2>;
244 interrupt-controller;
245 #interrupt-cells = <2>;
246 reg = <0x4000 0x100>;
247 st,bank-name = "PIO9";
248 };
249 pio10: gpio@fee05000 {
250 gpio-controller;
251 #gpio-cells = <2>;
252 interrupt-controller;
253 #interrupt-cells = <2>;
254 reg = <0x5000 0x100>;
255 st,bank-name = "PIO10";
256 };
257 pio11: gpio@fee06000 {
258 gpio-controller;
259 #gpio-cells = <2>;
260 interrupt-controller;
261 #interrupt-cells = <2>;
262 reg = <0x6000 0x100>;
263 st,bank-name = "PIO11";
264 };
265 pio12: gpio@fee07000 {
266 gpio-controller;
267 #gpio-cells = <2>;
268 interrupt-controller;
269 #interrupt-cells = <2>;
270 reg = <0x7000 0x100>;
271 st,bank-name = "PIO12";
272 };
273
274 i2c0 {
275 pinctrl_i2c0_default: i2c0-default {
276 st,pins {
277 sda = <&pio9 3 ALT1 BIDIR>;
278 scl = <&pio9 2 ALT1 BIDIR>;
279 };
280 };
281 };
282
283 i2c1 {
284 pinctrl_i2c1_default: i2c1-default {
285 st,pins {
286 sda = <&pio12 1 ALT1 BIDIR>;
287 scl = <&pio12 0 ALT1 BIDIR>;
288 };
289 };
290 };
291 };
292
293 pin-controller-rear {
294 #address-cells = <1>;
295 #size-cells = <1>;
296 compatible = "st,stih415-rear-pinctrl";
297 st,syscfg = <&syscfg_rear>;
298 reg = <0xfe82f080 0x4>;
299 reg-names = "irqmux";
300 interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
301 interrupt-names = "irqmux";
302 ranges = <0 0xfe820000 0x8000>;
303
304 pio13: gpio@fe820000 {
305 gpio-controller;
306 #gpio-cells = <2>;
307 interrupt-controller;
308 #interrupt-cells = <2>;
309 reg = <0 0x100>;
310 st,bank-name = "PIO13";
311 };
312 pio14: gpio@fe821000 {
313 gpio-controller;
314 #gpio-cells = <2>;
315 interrupt-controller;
316 #interrupt-cells = <2>;
317 reg = <0x1000 0x100>;
318 st,bank-name = "PIO14";
319 };
320 pio15: gpio@fe822000 {
321 gpio-controller;
322 #gpio-cells = <2>;
323 interrupt-controller;
324 #interrupt-cells = <2>;
325 reg = <0x2000 0x100>;
326 st,bank-name = "PIO15";
327 };
328 pio16: gpio@fe823000 {
329 gpio-controller;
330 #gpio-cells = <2>;
331 interrupt-controller;
332 #interrupt-cells = <2>;
333 reg = <0x3000 0x100>;
334 st,bank-name = "PIO16";
335 };
336 pio17: gpio@fe824000 {
337 gpio-controller;
338 #gpio-cells = <2>;
339 interrupt-controller;
340 #interrupt-cells = <2>;
341 reg = <0x4000 0x100>;
342 st,bank-name = "PIO17";
343 };
344 pio18: gpio@fe825000 {
345 gpio-controller;
346 #gpio-cells = <2>;
347 interrupt-controller;
348 #interrupt-cells = <2>;
349 reg = <0x5000 0x100>;
350 st,bank-name = "PIO18";
351 };
352
353 serial2 {
354 pinctrl_serial2: serial2-0 {
355 st,pins {
356 tx = <&pio17 4 ALT2 OUT>;
357 rx = <&pio17 5 ALT2 IN>;
358 };
359 };
360 };
361
362 gmac0{
363 pinctrl_mii0: mii0 {
364 st,pins {
365 mdint = <&pio13 6 ALT2 IN BYPASS 0>;
366 txen = <&pio13 7 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
367
368 txd0 = <&pio14 0 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
369 txd1 = <&pio14 1 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
370 txd2 = <&pio14 2 ALT2 OUT SE_NICLK_IO 0 CLK_B>;
371 txd3 = <&pio14 3 ALT2 OUT SE_NICLK_IO 0 CLK_B>;
372
373 txclk = <&pio15 0 ALT2 IN NICLK 0 CLK_A>;
374 txer = <&pio15 1 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
375 crs = <&pio15 2 ALT2 IN BYPASS 1000>;
376 col = <&pio15 3 ALT2 IN BYPASS 1000>;
377 mdio = <&pio15 4 ALT2 OUT BYPASS 3000>;
378 mdc = <&pio15 5 ALT2 OUT NICLK 0 CLK_B>;
379
380 rxd0 = <&pio16 0 ALT2 IN SE_NICLK_IO 0 CLK_A>;
381 rxd1 = <&pio16 1 ALT2 IN SE_NICLK_IO 0 CLK_A>;
382 rxd2 = <&pio16 2 ALT2 IN SE_NICLK_IO 0 CLK_A>;
383 rxd3 = <&pio16 3 ALT2 IN SE_NICLK_IO 0 CLK_A>;
384 rxdv = <&pio15 6 ALT2 IN SE_NICLK_IO 0 CLK_A>;
385 rx_er = <&pio15 7 ALT2 IN SE_NICLK_IO 0 CLK_A>;
386 rxclk = <&pio17 0 ALT2 IN NICLK 0 CLK_A>;
387 phyclk = <&pio13 5 ALT2 OUT NICLK 1000 CLK_A>;
388
389 };
390 };
391
392 pinctrl_gmii0: gmii0 {
393 st,pins {
394 mdint = <&pio13 6 ALT2 IN BYPASS 0>;
395 mdio = <&pio15 4 ALT2 OUT BYPASS 3000>;
396 mdc = <&pio15 5 ALT2 OUT NICLK 0 CLK_B>;
397 txen = <&pio13 7 ALT2 OUT SE_NICLK_IO 3000 CLK_A>;
398
399 txd0 = <&pio14 0 ALT2 OUT SE_NICLK_IO 3000 CLK_A>;
400 txd1 = <&pio14 1 ALT2 OUT SE_NICLK_IO 3000 CLK_A>;
401 txd2 = <&pio14 2 ALT2 OUT SE_NICLK_IO 3000 CLK_B>;
402 txd3 = <&pio14 3 ALT2 OUT SE_NICLK_IO 3000 CLK_B>;
403 txd4 = <&pio14 4 ALT2 OUT SE_NICLK_IO 3000 CLK_B>;
404 txd5 = <&pio14 5 ALT2 OUT SE_NICLK_IO 3000 CLK_B>;
405 txd6 = <&pio14 6 ALT2 OUT SE_NICLK_IO 3000 CLK_B>;
406 txd7 = <&pio14 7 ALT2 OUT SE_NICLK_IO 3000 CLK_B>;
407
408 txclk = <&pio15 0 ALT2 IN NICLK 0 CLK_A>;
409 txer = <&pio15 1 ALT2 OUT SE_NICLK_IO 3000 CLK_A>;
410 crs = <&pio15 2 ALT2 IN BYPASS 1000>;
411 col = <&pio15 3 ALT2 IN BYPASS 1000>;
412 rxdv = <&pio15 6 ALT2 IN SE_NICLK_IO 1500 CLK_A>;
413 rx_er = <&pio15 7 ALT2 IN SE_NICLK_IO 1500 CLK_A>;
414
415 rxd0 = <&pio16 0 ALT2 IN SE_NICLK_IO 1500 CLK_A>;
416 rxd1 = <&pio16 1 ALT2 IN SE_NICLK_IO 1500 CLK_A>;
417 rxd2 = <&pio16 2 ALT2 IN SE_NICLK_IO 1500 CLK_A>;
418 rxd3 = <&pio16 3 ALT2 IN SE_NICLK_IO 1500 CLK_A>;
419 rxd4 = <&pio16 4 ALT2 IN SE_NICLK_IO 1500 CLK_A>;
420 rxd5 = <&pio16 5 ALT2 IN SE_NICLK_IO 1500 CLK_A>;
421 rxd6 = <&pio16 6 ALT2 IN SE_NICLK_IO 1500 CLK_A>;
422 rxd7 = <&pio16 7 ALT2 IN SE_NICLK_IO 1500 CLK_A>;
423
424 rxclk = <&pio17 0 ALT2 IN NICLK 0 CLK_A>;
425 clk125 = <&pio17 6 ALT1 IN NICLK 0 CLK_A>;
426 phyclk = <&pio13 5 ALT4 OUT NICLK 0 CLK_B>;
427
428
429 };
430 };
431 };
432
433 mmc0 {
434 pinctrl_mmc0: mmc0 {
435 st,pins {
436 mmcclk = <&pio13 4 ALT4 BIDIR_PU NICLK 0 CLK_B>;
437 data0 = <&pio14 4 ALT4 BIDIR_PU BYPASS 0>;
438 data1 = <&pio14 5 ALT4 BIDIR_PU BYPASS 0>;
439 data2 = <&pio14 6 ALT4 BIDIR_PU BYPASS 0>;
440 data3 = <&pio14 7 ALT4 BIDIR_PU BYPASS 0>;
441 cmd = <&pio15 1 ALT4 BIDIR_PU BYPASS 0>;
442 wp = <&pio15 3 ALT4 IN>;
443 data4 = <&pio16 4 ALT4 BIDIR_PU BYPASS 0>;
444 data5 = <&pio16 5 ALT4 BIDIR_PU BYPASS 0>;
445 data6 = <&pio16 6 ALT4 BIDIR_PU BYPASS 0>;
446 data7 = <&pio16 7 ALT4 BIDIR_PU BYPASS 0>;
447 pwr = <&pio17 1 ALT4 OUT>;
448 cd = <&pio17 2 ALT4 IN>;
449 led = <&pio17 3 ALT4 OUT>;
450 };
451 };
452 };
453 };
454
455 pin-controller-left {
456 #address-cells = <1>;
457 #size-cells = <1>;
458 compatible = "st,stih415-left-pinctrl";
459 st,syscfg = <&syscfg_left>;
460 reg = <0xfd6bf080 0x4>;
461 reg-names = "irqmux";
462 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
463 interrupt-names = "irqmux";
464 ranges = <0 0xfd6b0000 0x3000>;
465
466 pio100: gpio@fd6b0000 {
467 gpio-controller;
468 #gpio-cells = <2>;
469 interrupt-controller;
470 #interrupt-cells = <2>;
471 reg = <0 0x100>;
472 st,bank-name = "PIO100";
473 };
474 pio101: gpio@fd6b1000 {
475 gpio-controller;
476 #gpio-cells = <2>;
477 interrupt-controller;
478 #interrupt-cells = <2>;
479 reg = <0x1000 0x100>;
480 st,bank-name = "PIO101";
481 };
482 pio102: gpio@fd6b2000 {
483 gpio-controller;
484 #gpio-cells = <2>;
485 interrupt-controller;
486 #interrupt-cells = <2>;
487 reg = <0x2000 0x100>;
488 st,bank-name = "PIO102";
489 };
490 };
491
492 pin-controller-right {
493 #address-cells = <1>;
494 #size-cells = <1>;
495 compatible = "st,stih415-right-pinctrl";
496 st,syscfg = <&syscfg_right>;
497 reg = <0xfd33f080 0x4>;
498 reg-names = "irqmux";
499 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
500 interrupt-names = "irqmux";
501 ranges = <0 0xfd330000 0x5000>;
502
503 pio103: gpio@fd330000 {
504 gpio-controller;
505 #gpio-cells = <2>;
506 interrupt-controller;
507 #interrupt-cells = <2>;
508 reg = <0 0x100>;
509 st,bank-name = "PIO103";
510 };
511 pio104: gpio@fd331000 {
512 gpio-controller;
513 #gpio-cells = <2>;
514 interrupt-controller;
515 #interrupt-cells = <2>;
516 reg = <0x1000 0x100>;
517 st,bank-name = "PIO104";
518 };
519 pio105: gpio@fd332000 {
520 gpio-controller;
521 #gpio-cells = <2>;
522 interrupt-controller;
523 #interrupt-cells = <2>;
524 reg = <0x2000 0x100>;
525 st,bank-name = "PIO105";
526 };
527 pio106: gpio@fd333000 {
528 gpio-controller;
529 #gpio-cells = <2>;
530 interrupt-controller;
531 #interrupt-cells = <2>;
532 reg = <0x3000 0x100>;
533 st,bank-name = "PIO106";
534 };
535 pio107: gpio@fd334000 {
536 gpio-controller;
537 #gpio-cells = <2>;
538 interrupt-controller;
539 #interrupt-cells = <2>;
540 reg = <0x4000 0x100>;
541 st,bank-name = "PIO107";
542 };
543 };
544 };
545};
diff --git a/arch/arm/boot/dts/stih415.dtsi b/arch/arm/boot/dts/stih415.dtsi
deleted file mode 100644
index 12427e651e5e..000000000000
--- a/arch/arm/boot/dts/stih415.dtsi
+++ /dev/null
@@ -1,234 +0,0 @@
1/*
2 * Copyright (C) 2013 STMicroelectronics (R&D) Limited.
3 * Author: Srinivas Kandagatla <srinivas.kandagatla@st.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 * publishhed by the Free Software Foundation.
8 */
9#include "stih41x.dtsi"
10#include "stih415-clock.dtsi"
11#include "stih415-pinctrl.dtsi"
12#include <dt-bindings/interrupt-controller/arm-gic.h>
13#include <dt-bindings/reset/stih415-resets.h>
14/ {
15
16 L2: cache-controller {
17 compatible = "arm,pl310-cache";
18 reg = <0xfffe2000 0x1000>;
19 arm,data-latency = <3 2 2>;
20 arm,tag-latency = <1 1 1>;
21 cache-unified;
22 cache-level = <2>;
23 };
24
25 soc {
26 #address-cells = <1>;
27 #size-cells = <1>;
28 interrupt-parent = <&intc>;
29 ranges;
30 compatible = "simple-bus";
31
32 powerdown: powerdown-controller {
33 #reset-cells = <1>;
34 compatible = "st,stih415-powerdown";
35 };
36
37 softreset: softreset-controller {
38 #reset-cells = <1>;
39 compatible = "st,stih415-softreset";
40 };
41
42 syscfg_sbc: sbc-syscfg@fe600000{
43 compatible = "st,stih415-sbc-syscfg", "syscon";
44 reg = <0xfe600000 0xb4>;
45 };
46
47 syscfg_front: front-syscfg@fee10000{
48 compatible = "st,stih415-front-syscfg", "syscon";
49 reg = <0xfee10000 0x194>;
50 };
51
52 syscfg_rear: rear-syscfg@fe830000{
53 compatible = "st,stih415-rear-syscfg", "syscon";
54 reg = <0xfe830000 0x190>;
55 };
56
57 /* MPE syscfgs */
58 syscfg_left: left-syscfg@fd690000{
59 compatible = "st,stih415-left-syscfg", "syscon";
60 reg = <0xfd690000 0x78>;
61 };
62
63 syscfg_right: right-syscfg@fd320000{
64 compatible = "st,stih415-right-syscfg", "syscon";
65 reg = <0xfd320000 0x180>;
66 };
67
68 syscfg_system: system-syscfg@fdde0000 {
69 compatible = "st,stih415-system-syscfg", "syscon";
70 reg = <0xfdde0000 0x15c>;
71 };
72
73 syscfg_lpm: lpm-syscfg@fe4b5100{
74 compatible = "st,stih415-lpm-syscfg", "syscon";
75 reg = <0xfe4b5100 0x08>;
76 };
77
78 serial2: serial@fed32000 {
79 compatible = "st,asc";
80 status = "disabled";
81 reg = <0xfed32000 0x2c>;
82 interrupts = <0 197 0>;
83 pinctrl-names = "default";
84 pinctrl-0 = <&pinctrl_serial2>;
85 clocks = <&clk_s_a0_ls CLK_ICN_REG>;
86 };
87
88 /* SBC comms block ASCs in SASG1 */
89 sbc_serial1: serial@fe531000 {
90 compatible = "st,asc";
91 status = "disabled";
92 reg = <0xfe531000 0x2c>;
93 interrupts = <0 210 0>;
94 clocks = <&clk_sysin>;
95 pinctrl-names = "default";
96 pinctrl-0 = <&pinctrl_sbc_serial1>;
97 };
98
99 i2c@fed40000 {
100 compatible = "st,comms-ssc4-i2c";
101 reg = <0xfed40000 0x110>;
102 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
103 clocks = <&clk_s_a0_ls CLK_ICN_REG>;
104 clock-names = "ssc";
105 clock-frequency = <400000>;
106 pinctrl-names = "default";
107 pinctrl-0 = <&pinctrl_i2c0_default>;
108
109 status = "disabled";
110 };
111
112 i2c@fed41000 {
113 compatible = "st,comms-ssc4-i2c";
114 reg = <0xfed41000 0x110>;
115 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
116 clocks = <&clk_s_a0_ls CLK_ICN_REG>;
117 clock-names = "ssc";
118 clock-frequency = <400000>;
119 pinctrl-names = "default";
120 pinctrl-0 = <&pinctrl_i2c1_default>;
121
122 status = "disabled";
123 };
124
125 i2c@fe540000 {
126 compatible = "st,comms-ssc4-i2c";
127 reg = <0xfe540000 0x110>;
128 interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>;
129 clocks = <&clk_sysin>;
130 clock-names = "ssc";
131 clock-frequency = <400000>;
132 pinctrl-names = "default";
133 pinctrl-0 = <&pinctrl_sbc_i2c0_default>;
134
135 status = "disabled";
136 };
137
138 i2c@fe541000 {
139 compatible = "st,comms-ssc4-i2c";
140 reg = <0xfe541000 0x110>;
141 interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
142 clocks = <&clk_sysin>;
143 clock-names = "ssc";
144 clock-frequency = <400000>;
145 pinctrl-names = "default";
146 pinctrl-0 = <&pinctrl_sbc_i2c1_default>;
147
148 status = "disabled";
149 };
150
151 ethernet0: dwmac@fe810000 {
152 device_type = "network";
153 compatible = "st,stih415-dwmac", "snps,dwmac", "snps,dwmac-3.610";
154 status = "disabled";
155
156 reg = <0xfe810000 0x8000>;
157 reg-names = "stmmaceth";
158
159 interrupts = <0 147 0>, <0 148 0>, <0 149 0>;
160 interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
161 resets = <&softreset STIH415_ETH0_SOFTRESET>;
162 reset-names = "stmmaceth";
163
164 snps,pbl = <32>;
165 snps,mixed-burst;
166 snps,force_sf_dma_mode;
167
168 st,syscon = <&syscfg_rear 0x148>;
169
170 pinctrl-names = "default";
171 pinctrl-0 = <&pinctrl_mii0>;
172 clock-names = "stmmaceth", "sti-ethclk";
173 clocks = <&clk_s_a1_ls CLK_ICN_IF_2>, <&clk_s_a1_ls CLK_GMAC0_PHY>;
174 };
175
176 ethernet1: dwmac@fef08000 {
177 device_type = "network";
178 compatible = "st,stih415-dwmac", "snps,dwmac", "snps,dwmac-3.610";
179 status = "disabled";
180 reg = <0xfef08000 0x8000>;
181 reg-names = "stmmaceth";
182 interrupts = <0 150 0>, <0 151 0>, <0 152 0>;
183 interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
184
185 snps,pbl = <32>;
186 snps,mixed-burst;
187 snps,force_sf_dma_mode;
188
189 st,syscon = <&syscfg_sbc 0x74>;
190
191 resets = <&softreset STIH415_ETH1_SOFTRESET>;
192 reset-names = "stmmaceth";
193 pinctrl-names = "default";
194 pinctrl-0 = <&pinctrl_mii1>;
195 clock-names = "stmmaceth", "sti-ethclk";
196 clocks = <&clk_s_a0_ls CLK_ICN_REG>, <&clk_s_a0_ls CLK_ETH1_PHY>;
197 };
198
199 rc: rc@fe518000 {
200 compatible = "st,comms-irb";
201 reg = <0xfe518000 0x234>;
202 interrupts = <0 203 0>;
203 clocks = <&clk_sysin>;
204 rx-mode = "infrared";
205 pinctrl-names = "default";
206 pinctrl-0 = <&pinctrl_ir>;
207 resets = <&softreset STIH415_IRB_SOFTRESET>;
208 };
209
210 keyscan: keyscan@fe4b0000 {
211 compatible = "st,sti-keyscan";
212 status = "disabled";
213 reg = <0xfe4b0000 0x2000>;
214 interrupts = <GIC_SPI 212 IRQ_TYPE_NONE>;
215 clocks = <&clk_sysin>;
216 pinctrl-names = "default";
217 pinctrl-0 = <&pinctrl_keyscan>;
218 resets = <&powerdown STIH415_KEYSCAN_POWERDOWN>,
219 <&softreset STIH415_KEYSCAN_SOFTRESET>;
220 };
221
222 mmc0: sdhci@fe81e000 {
223 compatible = "st,sdhci";
224 status = "disabled";
225 reg = <0xfe81e000 0x1000>;
226 interrupts = <GIC_SPI 145 IRQ_TYPE_NONE>;
227 interrupt-names = "mmcirq";
228 pinctrl-names = "default";
229 pinctrl-0 = <&pinctrl_mmc0>;
230 clock-names = "mmc";
231 clocks = <&clk_s_a1_ls 1>;
232 };
233 };
234};
diff --git a/arch/arm/boot/dts/stih416-b2000.dts b/arch/arm/boot/dts/stih416-b2000.dts
deleted file mode 100644
index 488e80a5d69d..000000000000
--- a/arch/arm/boot/dts/stih416-b2000.dts
+++ /dev/null
@@ -1,15 +0,0 @@
1/*
2 * Copyright (C) 2013 STMicroelectronics (R&D) Limited.
3 * Author: Srinivas Kandagatla <srinivas.kandagatla@st.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 * publishhed by the Free Software Foundation.
8 */
9/dts-v1/;
10#include "stih416.dtsi"
11#include "stih41x-b2000.dtsi"
12/ {
13 model = "STiH416 B2000";
14 compatible = "st,stih416-b2000", "st,stih416";
15};
diff --git a/arch/arm/boot/dts/stih416-b2020.dts b/arch/arm/boot/dts/stih416-b2020.dts
deleted file mode 100644
index 200a81844765..000000000000
--- a/arch/arm/boot/dts/stih416-b2020.dts
+++ /dev/null
@@ -1,37 +0,0 @@
1/*
2 * Copyright (C) 2013 STMicroelectronics (R&D) Limited.
3 * Author: Srinivas Kandagatla <srinivas.kandagatla@st.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 * publishhed by the Free Software Foundation.
8 */
9/dts-v1/;
10#include "stih416.dtsi"
11#include "stih41x-b2020.dtsi"
12/ {
13 model = "STiH416 B2020";
14 compatible = "st,stih416-b2020", "st,stih416";
15
16 soc {
17 mmc1: sdhci@fe81f000 {
18 status = "okay";
19 bus-width = <8>;
20 non-removable;
21 };
22
23 miphy365x_phy: phy@fe382000 {
24 phy_port0: port@fe382000 {
25 st,sata-gen = <3>;
26 };
27
28 phy_port1: port@fe38a000 {
29 st,pcie-tx-pol-inv;
30 };
31 };
32
33 sata0: sata@fe380000{
34 status = "okay";
35 };
36 };
37};
diff --git a/arch/arm/boot/dts/stih416-b2020e.dts b/arch/arm/boot/dts/stih416-b2020e.dts
deleted file mode 100644
index de320cd067de..000000000000
--- a/arch/arm/boot/dts/stih416-b2020e.dts
+++ /dev/null
@@ -1,65 +0,0 @@
1/*
2 * Copyright (C) 2014 STMicroelectronics (R&D) Limited.
3 * Author: Lee Jones <lee.jones@linaro.org>
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 * publishhed by the Free Software Foundation.
8 */
9/dts-v1/;
10#include "stih416.dtsi"
11#include "stih41x-b2020.dtsi"
12#include <dt-bindings/gpio/gpio.h>
13/ {
14 model = "STiH416 B2020 REV-E";
15 compatible = "st,stih416-b2020", "st,stih416";
16
17 soc {
18 leds {
19 compatible = "gpio-leds";
20 red {
21 label = "Front Panel LED";
22 gpios = <&pio4 1 GPIO_ACTIVE_HIGH>;
23 linux,default-trigger = "heartbeat";
24 };
25 green {
26 gpios = <&pio1 3 GPIO_ACTIVE_HIGH>;
27 default-state = "off";
28 };
29 };
30
31 ethernet1: dwmac@fef08000 {
32 snps,reset-gpio = <&pio0 7>;
33 };
34
35 mmc1: sdhci@fe81f000 {
36 status = "okay";
37 bus-width = <8>;
38 non-removable;
39 };
40
41 miphy365x_phy: phy@fe382000 {
42 phy_port0: port@fe382000 {
43 st,sata-gen = <3>;
44 };
45
46 phy_port1: port@fe38a000 {
47 st,pcie-tx-pol-inv;
48 };
49 };
50
51 sata0: sata@fe380000{
52 status = "okay";
53 };
54
55 /* SAS PWM Module */
56 pwm0: pwm@fed10000 {
57 status = "okay";
58 };
59
60 /* SBC PWM Module */
61 pwm1: pwm@fe510000 {
62 status = "okay";
63 };
64 };
65};
diff --git a/arch/arm/boot/dts/stih416-clock.dtsi b/arch/arm/boot/dts/stih416-clock.dtsi
deleted file mode 100644
index 5b4fb838cddb..000000000000
--- a/arch/arm/boot/dts/stih416-clock.dtsi
+++ /dev/null
@@ -1,756 +0,0 @@
1/*
2 * Copyright (C) 2013 STMicroelectronics R&D Limited
3 * <stlinux-devel@stlinux.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
10#include <dt-bindings/clock/stih416-clks.h>
11
12/ {
13 clocks {
14 #address-cells = <1>;
15 #size-cells = <1>;
16 ranges;
17
18 /*
19 * Fixed 30MHz oscillator inputs to SoC
20 */
21 clk_sysin: clk-sysin {
22 #clock-cells = <0>;
23 compatible = "fixed-clock";
24 clock-frequency = <30000000>;
25 };
26
27 /*
28 * ClockGenAs on SASG2
29 */
30 clockgen-a@fee62000 {
31 reg = <0xfee62000 0xb48>;
32
33 clk_s_a0_pll: clk-s-a0-pll {
34 #clock-cells = <1>;
35 compatible = "st,clkgena-plls-c65";
36
37 clocks = <&clk_sysin>;
38
39 clock-output-names = "clk-s-a0-pll0-hs",
40 "clk-s-a0-pll0-ls",
41 "clk-s-a0-pll1";
42 };
43
44 clk_s_a0_osc_prediv: clk-s-a0-osc-prediv {
45 #clock-cells = <0>;
46 compatible = "st,clkgena-prediv-c65",
47 "st,clkgena-prediv";
48
49 clocks = <&clk_sysin>;
50
51 clock-output-names = "clk-s-a0-osc-prediv";
52 };
53
54 clk_s_a0_hs: clk-s-a0-hs {
55 #clock-cells = <1>;
56 compatible = "st,clkgena-divmux-c65-hs",
57 "st,clkgena-divmux";
58
59 clocks = <&clk_s_a0_osc_prediv>,
60 <&clk_s_a0_pll 0>, /* PLL0 HS */
61 <&clk_s_a0_pll 2>; /* PLL1 */
62
63 clock-output-names = "clk-s-fdma-0",
64 "clk-s-fdma-1",
65 ""; /* clk-s-jit-sense */
66 /* Fourth output unused */
67 };
68
69 clk_s_a0_ls: clk-s-a0-ls {
70 #clock-cells = <1>;
71 compatible = "st,clkgena-divmux-c65-ls",
72 "st,clkgena-divmux";
73
74 clocks = <&clk_s_a0_osc_prediv>,
75 <&clk_s_a0_pll 1>, /* PLL0 LS */
76 <&clk_s_a0_pll 2>; /* PLL1 */
77
78 clock-output-names = "clk-s-icn-reg-0",
79 "clk-s-icn-if-0",
80 "clk-s-icn-reg-lp-0",
81 "clk-s-emiss",
82 "clk-s-eth1-phy",
83 "clk-s-mii-ref-out";
84 /* Remaining outputs unused */
85 };
86 };
87
88 clockgen-a@fee81000 {
89 reg = <0xfee81000 0xb48>;
90
91 clk_s_a1_pll: clk-s-a1-pll {
92 #clock-cells = <1>;
93 compatible = "st,clkgena-plls-c65";
94
95 clocks = <&clk_sysin>;
96
97 clock-output-names = "clk-s-a1-pll0-hs",
98 "clk-s-a1-pll0-ls",
99 "clk-s-a1-pll1";
100 };
101
102 clk_s_a1_osc_prediv: clk-s-a1-osc-prediv {
103 #clock-cells = <0>;
104 compatible = "st,clkgena-prediv-c65",
105 "st,clkgena-prediv";
106
107 clocks = <&clk_sysin>;
108
109 clock-output-names = "clk-s-a1-osc-prediv";
110 };
111
112 clk_s_a1_hs: clk-s-a1-hs {
113 #clock-cells = <1>;
114 compatible = "st,clkgena-divmux-c65-hs",
115 "st,clkgena-divmux";
116
117 clocks = <&clk_s_a1_osc_prediv>,
118 <&clk_s_a1_pll 0>, /* PLL0 HS */
119 <&clk_s_a1_pll 2>; /* PLL1 */
120
121 clock-output-names = "", /* Reserved */
122 "", /* Reserved */
123 "clk-s-stac-phy",
124 "clk-s-vtac-tx-phy";
125 };
126
127 clk_s_a1_ls: clk-s-a1-ls {
128 #clock-cells = <1>;
129 compatible = "st,clkgena-divmux-c65-ls",
130 "st,clkgena-divmux";
131
132 clocks = <&clk_s_a1_osc_prediv>,
133 <&clk_s_a1_pll 1>, /* PLL0 LS */
134 <&clk_s_a1_pll 2>; /* PLL1 */
135
136 clock-output-names = "clk-s-icn-if-2",
137 "clk-s-card-mmc-0",
138 "clk-s-icn-if-1",
139 "clk-s-gmac0-phy",
140 "clk-s-nand-ctrl",
141 "", /* Reserved */
142 "clk-s-mii0-ref-out",
143 "clk-s-stac-sys",
144 "clk-s-card-mmc-1";
145 /* Remaining outputs unused */
146 };
147 };
148
149 /*
150 * ClockGenAs on MPE42
151 */
152 clockgen-a@fde12000 {
153 reg = <0xfde12000 0xb50>;
154
155 clk_m_a0_pll0: clk-m-a0-pll0 {
156 #clock-cells = <1>;
157 compatible = "st,plls-c32-a1x-0", "st,clkgen-plls-c32";
158
159 clocks = <&clk_sysin>;
160
161 clock-output-names = "clk-m-a0-pll0-phi0",
162 "clk-m-a0-pll0-phi1",
163 "clk-m-a0-pll0-phi2",
164 "clk-m-a0-pll0-phi3";
165 };
166
167 clk_m_a0_pll1: clk-m-a0-pll1 {
168 #clock-cells = <1>;
169 compatible = "st,plls-c32-a1x-1", "st,clkgen-plls-c32";
170
171 clocks = <&clk_sysin>;
172
173 clock-output-names = "clk-m-a0-pll1-phi0",
174 "clk-m-a0-pll1-phi1",
175 "clk-m-a0-pll1-phi2",
176 "clk-m-a0-pll1-phi3";
177 };
178
179 clk_m_a0_osc_prediv: clk-m-a0-osc-prediv {
180 #clock-cells = <0>;
181 compatible = "st,clkgena-prediv-c32",
182 "st,clkgena-prediv";
183
184 clocks = <&clk_sysin>;
185
186 clock-output-names = "clk-m-a0-osc-prediv";
187 };
188
189 clk_m_a0_div0: clk-m-a0-div0 {
190 #clock-cells = <1>;
191 compatible = "st,clkgena-divmux-c32-odf0",
192 "st,clkgena-divmux";
193
194 clocks = <&clk_m_a0_osc_prediv>,
195 <&clk_m_a0_pll0 0>, /* PLL0 PHI0 */
196 <&clk_m_a0_pll1 0>; /* PLL1 PHI0 */
197
198 clock-output-names = "", /* Unused */
199 "", /* Unused */
200 "clk-m-fdma-12",
201 "", /* Unused */
202 "clk-m-pp-dmu-0",
203 "clk-m-pp-dmu-1",
204 "clk-m-icm-lmi",
205 "clk-m-vid-dmu-0";
206 };
207
208 clk_m_a0_div1: clk-m-a0-div1 {
209 #clock-cells = <1>;
210 compatible = "st,clkgena-divmux-c32-odf1",
211 "st,clkgena-divmux";
212
213 clocks = <&clk_m_a0_osc_prediv>,
214 <&clk_m_a0_pll0 1>, /* PLL0 PHI1 */
215 <&clk_m_a0_pll1 1>; /* PLL1 PHI1 */
216
217 clock-output-names = "clk-m-vid-dmu-1",
218 "", /* Unused */
219 "clk-m-a9-ext2f",
220 "clk-m-st40rt",
221 "clk-m-st231-dmu-0",
222 "clk-m-st231-dmu-1",
223 "clk-m-st231-aud",
224 "clk-m-st231-gp-0";
225 };
226
227 clk_m_a0_div2: clk-m-a0-div2 {
228 #clock-cells = <1>;
229 compatible = "st,clkgena-divmux-c32-odf2",
230 "st,clkgena-divmux";
231
232 clocks = <&clk_m_a0_osc_prediv>,
233 <&clk_m_a0_pll0 2>, /* PLL0 PHI2 */
234 <&clk_m_a0_pll1 2>; /* PLL1 PHI2 */
235
236 clock-output-names = "clk-m-st231-gp-1",
237 "clk-m-icn-cpu",
238 "clk-m-icn-stac",
239 "clk-m-tx-icn-dmu-0",
240 "clk-m-tx-icn-dmu-1",
241 "clk-m-tx-icn-ts",
242 "clk-m-icn-vdp-0",
243 "clk-m-icn-vdp-1";
244 };
245
246 clk_m_a0_div3: clk-m-a0-div3 {
247 #clock-cells = <1>;
248 compatible = "st,clkgena-divmux-c32-odf3",
249 "st,clkgena-divmux";
250
251 clocks = <&clk_m_a0_osc_prediv>,
252 <&clk_m_a0_pll0 3>, /* PLL0 PHI3 */
253 <&clk_m_a0_pll1 3>; /* PLL1 PHI3 */
254
255 clock-output-names = "", /* Unused */
256 "", /* Unused */
257 "", /* Unused */
258 "", /* Unused */
259 "clk-m-icn-vp8",
260 "", /* Unused */
261 "clk-m-icn-reg-11",
262 "clk-m-a9-trace";
263 };
264 };
265
266 clockgen-a@fd6db000 {
267 reg = <0xfd6db000 0xb50>;
268
269 clk_m_a1_pll0: clk-m-a1-pll0 {
270 #clock-cells = <1>;
271 compatible = "st,plls-c32-a1x-0", "st,clkgen-plls-c32";
272
273 clocks = <&clk_sysin>;
274
275 clock-output-names = "clk-m-a1-pll0-phi0",
276 "clk-m-a1-pll0-phi1",
277 "clk-m-a1-pll0-phi2",
278 "clk-m-a1-pll0-phi3";
279 };
280
281 clk_m_a1_pll1: clk-m-a1-pll1 {
282 #clock-cells = <1>;
283 compatible = "st,plls-c32-a1x-1", "st,clkgen-plls-c32";
284
285 clocks = <&clk_sysin>;
286
287 clock-output-names = "clk-m-a1-pll1-phi0",
288 "clk-m-a1-pll1-phi1",
289 "clk-m-a1-pll1-phi2",
290 "clk-m-a1-pll1-phi3";
291 };
292
293 clk_m_a1_osc_prediv: clk-m-a1-osc-prediv {
294 #clock-cells = <0>;
295 compatible = "st,clkgena-prediv-c32",
296 "st,clkgena-prediv";
297
298 clocks = <&clk_sysin>;
299
300 clock-output-names = "clk-m-a1-osc-prediv";
301 };
302
303 clk_m_a1_div0: clk-m-a1-div0 {
304 #clock-cells = <1>;
305 compatible = "st,clkgena-divmux-c32-odf0",
306 "st,clkgena-divmux";
307
308 clocks = <&clk_m_a1_osc_prediv>,
309 <&clk_m_a1_pll0 0>, /* PLL0 PHI0 */
310 <&clk_m_a1_pll1 0>; /* PLL1 PHI0 */
311
312 clock-output-names = "", /* Unused */
313 "clk-m-fdma-10",
314 "clk-m-fdma-11",
315 "clk-m-hva-alt",
316 "clk-m-proc-sc",
317 "clk-m-tp",
318 "clk-m-rx-icn-dmu-0",
319 "clk-m-rx-icn-dmu-1";
320 };
321
322 clk_m_a1_div1: clk-m-a1-div1 {
323 #clock-cells = <1>;
324 compatible = "st,clkgena-divmux-c32-odf1",
325 "st,clkgena-divmux";
326
327 clocks = <&clk_m_a1_osc_prediv>,
328 <&clk_m_a1_pll0 1>, /* PLL0 PHI1 */
329 <&clk_m_a1_pll1 1>; /* PLL1 PHI1 */
330
331 clock-output-names = "clk-m-rx-icn-ts",
332 "clk-m-rx-icn-vdp-0",
333 "", /* Unused */
334 "clk-m-prv-t1-bus",
335 "clk-m-icn-reg-12",
336 "clk-m-icn-reg-10",
337 "", /* Unused */
338 "clk-m-icn-st231";
339 };
340
341 clk_m_a1_div2: clk-m-a1-div2 {
342 #clock-cells = <1>;
343 compatible = "st,clkgena-divmux-c32-odf2",
344 "st,clkgena-divmux";
345
346 clocks = <&clk_m_a1_osc_prediv>,
347 <&clk_m_a1_pll0 2>, /* PLL0 PHI2 */
348 <&clk_m_a1_pll1 2>; /* PLL1 PHI2 */
349
350 clock-output-names = "clk-m-fvdp-proc-alt",
351 "clk-m-icn-reg-13",
352 "clk-m-tx-icn-gpu",
353 "clk-m-rx-icn-gpu",
354 "", /* Unused */
355 "", /* Unused */
356 "", /* clk-m-apb-pm-12 */
357 ""; /* Unused */
358 };
359
360 clk_m_a1_div3: clk-m-a1-div3 {
361 #clock-cells = <1>;
362 compatible = "st,clkgena-divmux-c32-odf3",
363 "st,clkgena-divmux";
364
365 clocks = <&clk_m_a1_osc_prediv>,
366 <&clk_m_a1_pll0 3>, /* PLL0 PHI3 */
367 <&clk_m_a1_pll1 3>; /* PLL1 PHI3 */
368
369 clock-output-names = "", /* Unused */
370 "", /* Unused */
371 "", /* Unused */
372 "", /* Unused */
373 "", /* Unused */
374 "", /* Unused */
375 "", /* Unused */
376 ""; /* clk-m-gpu-alt */
377 };
378 };
379
380 clk_m_a9_ext2f_div2: clk-m-a9-ext2f-div2 {
381 #clock-cells = <0>;
382 compatible = "fixed-factor-clock";
383 clocks = <&clk_m_a0_div1 2>;
384 clock-div = <2>;
385 clock-mult = <1>;
386 };
387
388 clockgen-a@fd345000 {
389 reg = <0xfd345000 0xb50>;
390
391 clk_m_a2_pll0: clk-m-a2-pll0 {
392 #clock-cells = <1>;
393 compatible = "st,plls-c32-a1x-0", "st,clkgen-plls-c32";
394
395 clocks = <&clk_sysin>;
396
397 clock-output-names = "clk-m-a2-pll0-phi0",
398 "clk-m-a2-pll0-phi1",
399 "clk-m-a2-pll0-phi2",
400 "clk-m-a2-pll0-phi3";
401 };
402
403 clk_m_a2_pll1: clk-m-a2-pll1 {
404 #clock-cells = <1>;
405 compatible = "st,plls-c32-a1x-1", "st,clkgen-plls-c32";
406
407 clocks = <&clk_sysin>;
408
409 clock-output-names = "clk-m-a2-pll1-phi0",
410 "clk-m-a2-pll1-phi1",
411 "clk-m-a2-pll1-phi2",
412 "clk-m-a2-pll1-phi3";
413 };
414
415 clk_m_a2_osc_prediv: clk-m-a2-osc-prediv {
416 #clock-cells = <0>;
417 compatible = "st,clkgena-prediv-c32",
418 "st,clkgena-prediv";
419
420 clocks = <&clk_sysin>;
421
422 clock-output-names = "clk-m-a2-osc-prediv";
423 };
424
425 clk_m_a2_div0: clk-m-a2-div0 {
426 #clock-cells = <1>;
427 compatible = "st,clkgena-divmux-c32-odf0",
428 "st,clkgena-divmux";
429
430 clocks = <&clk_m_a2_osc_prediv>,
431 <&clk_m_a2_pll0 0>, /* PLL0 PHI0 */
432 <&clk_m_a2_pll1 0>; /* PLL1 PHI0 */
433
434 clock-output-names = "clk-m-vtac-main-phy",
435 "clk-m-vtac-aux-phy",
436 "clk-m-stac-phy",
437 "clk-m-stac-sys",
438 "", /* clk-m-mpestac-pg */
439 "", /* clk-m-mpestac-wc */
440 "", /* clk-m-mpevtacaux-pg*/
441 ""; /* clk-m-mpevtacmain-pg*/
442 };
443
444 clk_m_a2_div1: clk-m-a2-div1 {
445 #clock-cells = <1>;
446 compatible = "st,clkgena-divmux-c32-odf1",
447 "st,clkgena-divmux";
448
449 clocks = <&clk_m_a2_osc_prediv>,
450 <&clk_m_a2_pll0 1>, /* PLL0 PHI1 */
451 <&clk_m_a2_pll1 1>; /* PLL1 PHI1 */
452
453 clock-output-names = "", /* clk-m-mpevtacrx0-wc */
454 "", /* clk-m-mpevtacrx1-wc */
455 "clk-m-compo-main",
456 "clk-m-compo-aux",
457 "clk-m-bdisp-0",
458 "clk-m-bdisp-1",
459 "clk-m-icn-bdisp",
460 "clk-m-icn-compo";
461 };
462
463 clk_m_a2_div2: clk-m-a2-div2 {
464 #clock-cells = <1>;
465 compatible = "st,clkgena-divmux-c32-odf2",
466 "st,clkgena-divmux";
467
468 clocks = <&clk_m_a2_osc_prediv>,
469 <&clk_m_a2_pll0 2>, /* PLL0 PHI2 */
470 <&clk_m_a2_pll1 2>; /* PLL1 PHI2 */
471
472 clock-output-names = "clk-m-icn-vdp-2",
473 "", /* Unused */
474 "clk-m-icn-reg-14",
475 "clk-m-mdtp",
476 "clk-m-jpegdec",
477 "", /* Unused */
478 "clk-m-dcephy-impctrl",
479 ""; /* Unused */
480 };
481
482 clk_m_a2_div3: clk-m-a2-div3 {
483 #clock-cells = <1>;
484 compatible = "st,clkgena-divmux-c32-odf3",
485 "st,clkgena-divmux";
486
487 clocks = <&clk_m_a2_osc_prediv>,
488 <&clk_m_a2_pll0 3>, /* PLL0 PHI3 */
489 <&clk_m_a2_pll1 3>; /* PLL1 PHI3 */
490
491 clock-output-names = "", /* Unused */
492 ""; /* clk-m-apb-pm-11 */
493 /* Remaining outputs unused */
494 };
495 };
496
497 /*
498 * A9 PLL
499 */
500 clockgen-a9@fdde08b0 {
501 reg = <0xfdde08b0 0x70>;
502
503 clockgen_a9_pll: clockgen-a9-pll {
504 #clock-cells = <1>;
505 compatible = "st,stih416-plls-c32-a9", "st,clkgen-plls-c32";
506
507 clocks = <&clk_sysin>;
508 clock-output-names = "clockgen-a9-pll-odf";
509 };
510 };
511
512 /*
513 * ARM CPU related clocks
514 */
515 clk_m_a9: clk-m-a9@fdde08ac {
516 #clock-cells = <0>;
517 compatible = "st,stih416-clkgen-a9-mux", "st,clkgen-mux";
518 reg = <0xfdde08ac 0x4>;
519 clocks = <&clockgen_a9_pll 0>,
520 <&clockgen_a9_pll 0>,
521 <&clk_m_a0_div1 2>,
522 <&clk_m_a9_ext2f_div2>;
523 };
524
525 /*
526 * ARM Peripheral clock for timers
527 */
528 arm_periph_clk: clk-m-a9-periphs {
529 #clock-cells = <0>;
530 compatible = "fixed-factor-clock";
531 clocks = <&clk_m_a9>;
532 clock-div = <2>;
533 clock-mult = <1>;
534 };
535
536 /*
537 * Frequency synthesizers on the SASG2
538 */
539 clockgen_b0: clockgen-b0@fee108b4 {
540 #clock-cells = <1>;
541 compatible = "st,stih416-quadfs216", "st,quadfs";
542 reg = <0xfee108b4 0x44>;
543
544 clocks = <&clk_sysin>;
545 clock-output-names = "clk-s-usb48",
546 "clk-s-dss",
547 "clk-s-stfe-frc-2",
548 "clk-s-thsens-scard";
549 };
550
551 clockgen_b1: clockgen-b1@fe8308c4 {
552 #clock-cells = <1>;
553 compatible = "st,stih416-quadfs216", "st,quadfs";
554 reg = <0xfe8308c4 0x44>;
555
556 clocks = <&clk_sysin>;
557 clock-output-names = "clk-s-pcm-0",
558 "clk-s-pcm-1",
559 "clk-s-pcm-2",
560 "clk-s-pcm-3";
561 };
562
563 clockgen_c: clockgen-c@fe8307d0 {
564 #clock-cells = <1>;
565 compatible = "st,stih416-quadfs432", "st,quadfs";
566 reg = <0xfe8307d0 0x44>;
567
568 clocks = <&clk_sysin>;
569 clock-output-names = "clk-s-c-fs0-ch0",
570 "clk-s-c-vcc-sd",
571 "clk-s-c-fs0-ch2";
572 };
573
574 clk_s_vcc_hd: clk-s-vcc-hd@fe8308b8 {
575 #clock-cells = <0>;
576 compatible = "st,stih416-clkgenc-vcc-hd", "st,clkgen-mux";
577 reg = <0xfe8308b8 0x4>; /* SYSCFG2558 */
578
579 clocks = <&clk_sysin>,
580 <&clockgen_c 0>;
581 };
582
583 /*
584 * Add a dummy clock for the HDMI PHY for the VCC input mux
585 */
586 clk_s_tmds_fromphy: clk-s-tmds-fromphy {
587 #clock-cells = <0>;
588 compatible = "fixed-clock";
589 clock-frequency = <0>;
590 };
591
592 clockgen_c_vcc: clockgen-c-vcc@fe8308ac {
593 #clock-cells = <1>;
594 compatible = "st,stih416-clkgenc", "st,clkgen-vcc";
595 reg = <0xfe8308ac 0xc>; /* SYSCFG2555,2556,2557 */
596
597 clocks = <&clk_s_vcc_hd>,
598 <&clockgen_c 1>,
599 <&clk_s_tmds_fromphy>,
600 <&clockgen_c 2>;
601
602 clock-output-names = "clk-s-pix-hdmi",
603 "clk-s-pix-dvo",
604 "clk-s-out-dvo",
605 "clk-s-pix-hd",
606 "clk-s-hddac",
607 "clk-s-denc",
608 "clk-s-sddac",
609 "clk-s-pix-main",
610 "clk-s-pix-aux",
611 "clk-s-stfe-frc-0",
612 "clk-s-ref-mcru",
613 "clk-s-slave-mcru",
614 "clk-s-tmds-hdmi",
615 "clk-s-hdmi-reject-pll",
616 "clk-s-thsens";
617 };
618
619 clockgen_d: clockgen-d@fee107e0 {
620 #clock-cells = <1>;
621 compatible = "st,stih416-quadfs216", "st,quadfs";
622 reg = <0xfee107e0 0x44>;
623
624 clocks = <&clk_sysin>;
625 clock-output-names = "clk-s-ccsc",
626 "clk-s-stfe-frc-1",
627 "clk-s-tsout-1",
628 "clk-s-mchi";
629 };
630
631 /*
632 * Frequency synthesizers on the MPE42
633 */
634 clockgen_e: clockgen-e@fd3208bc {
635 #clock-cells = <1>;
636 compatible = "st,stih416-quadfs660-E", "st,quadfs";
637 reg = <0xfd3208bc 0xb0>;
638
639 clocks = <&clk_sysin>;
640 clock-output-names = "clk-m-pix-mdtp-0",
641 "clk-m-pix-mdtp-1",
642 "clk-m-pix-mdtp-2",
643 "clk-m-mpelpc";
644 };
645
646 clockgen_f: clockgen-f@fd320878 {
647 #clock-cells = <1>;
648 compatible = "st,stih416-quadfs660-F", "st,quadfs";
649 reg = <0xfd320878 0xf0>;
650
651 clocks = <&clk_sysin>;
652 clock-output-names = "clk-m-main-vidfs",
653 "clk-m-hva-fs",
654 "clk-m-fvdp-vcpu",
655 "clk-m-fvdp-proc-fs";
656 };
657
658 clk_m_fvdp_proc: clk-m-fvdp-proc@fd320910 {
659 #clock-cells = <0>;
660 compatible = "st,stih416-clkgenf-vcc-fvdp", "st,clkgen-mux";
661 reg = <0xfd320910 0x4>; /* SYSCFG8580 */
662
663 clocks = <&clk_m_a1_div2 0>,
664 <&clockgen_f 3>;
665 };
666
667 clk_m_hva: clk-m-hva@fd690868 {
668 #clock-cells = <0>;
669 compatible = "st,stih416-clkgenf-vcc-hva", "st,clkgen-mux";
670 reg = <0xfd690868 0x4>; /* SYSCFG9538 */
671
672 clocks = <&clockgen_f 1>,
673 <&clk_m_a1_div0 3>;
674 };
675
676 clk_m_f_vcc_hd: clk-m-f-vcc-hd@fd32086c {
677 #clock-cells = <0>;
678 compatible = "st,stih416-clkgenf-vcc-hd", "st,clkgen-mux";
679 reg = <0xfd32086c 0x4>; /* SYSCFG8539 */
680
681 clocks = <&clockgen_c_vcc 7>,
682 <&clockgen_f 0>;
683 };
684
685 clk_m_f_vcc_sd: clk-m-f-vcc-sd@fd32086c {
686 #clock-cells = <0>;
687 compatible = "st,stih416-clkgenf-vcc-sd", "st,clkgen-mux";
688 reg = <0xfd32086c 0x4>; /* SYSCFG8539 */
689
690 clocks = <&clockgen_c_vcc 8>,
691 <&clockgen_f 1>;
692 };
693
694 /*
695 * Add a dummy clock for the HDMIRx external signal clock
696 */
697 clk_m_pix_hdmirx_sas: clk-m-pix-hdmirx-sas {
698 #clock-cells = <0>;
699 compatible = "fixed-clock";
700 clock-frequency = <0>;
701 };
702
703 clockgen_f_vcc: clockgen-f-vcc@fd32086c {
704 #clock-cells = <1>;
705 compatible = "st,stih416-clkgenf", "st,clkgen-vcc";
706 reg = <0xfd32086c 0xc>; /* SYSCFG8539,8540,8541 */
707
708 clocks = <&clk_m_f_vcc_hd>,
709 <&clk_m_f_vcc_sd>,
710 <&clockgen_f 0>,
711 <&clk_m_pix_hdmirx_sas>;
712
713 clock-output-names = "clk-m-pix-main-pipe",
714 "clk-m-pix-aux-pipe",
715 "clk-m-pix-main-cru",
716 "clk-m-pix-aux-cru",
717 "clk-m-xfer-be-compo",
718 "clk-m-xfer-pip-compo",
719 "clk-m-xfer-aux-compo",
720 "clk-m-vsens",
721 "clk-m-pix-hdmirx-0",
722 "clk-m-pix-hdmirx-1";
723 };
724
725 /*
726 * DDR PLL
727 */
728 clockgen-ddr@0xfdde07d8 {
729 reg = <0xfdde07d8 0x110>;
730
731 clockgen_ddr_pll: clockgen-ddr-pll {
732 #clock-cells = <1>;
733 compatible = "st,stih416-plls-c32-ddr", "st,clkgen-plls-c32";
734
735 clocks = <&clk_sysin>;
736 clock-output-names = "clockgen-ddr0",
737 "clockgen-ddr1";
738 };
739 };
740
741 /*
742 * GPU PLL
743 */
744 clockgen-gpu@fd68ff00 {
745 reg = <0xfd68ff00 0x910>;
746
747 clockgen_gpu_pll: clockgen-gpu-pll {
748 #clock-cells = <1>;
749 compatible = "st,stih416-gpu-pll-c32", "st,clkgengpu-pll-c32";
750
751 clocks = <&clk_sysin>;
752 clock-output-names = "clockgen-gpu-pll";
753 };
754 };
755 };
756};
diff --git a/arch/arm/boot/dts/stih416-pinctrl.dtsi b/arch/arm/boot/dts/stih416-pinctrl.dtsi
deleted file mode 100644
index 9c97f7e651a0..000000000000
--- a/arch/arm/boot/dts/stih416-pinctrl.dtsi
+++ /dev/null
@@ -1,692 +0,0 @@
1
2/*
3 * Copyright (C) 2013 STMicroelectronics Limited.
4 * Author: Srinivas Kandagatla <srinivas.kandagatla@st.com>
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 * publishhed by the Free Software Foundation.
9 */
10#include "st-pincfg.h"
11#include <dt-bindings/interrupt-controller/arm-gic.h>
12/ {
13
14 aliases {
15 gpio0 = &pio0;
16 gpio1 = &pio1;
17 gpio2 = &pio2;
18 gpio3 = &pio3;
19 gpio4 = &pio4;
20 gpio5 = &pio40;
21 gpio6 = &pio5;
22 gpio7 = &pio6;
23 gpio8 = &pio7;
24 gpio9 = &pio8;
25 gpio10 = &pio9;
26 gpio11 = &pio10;
27 gpio12 = &pio11;
28 gpio13 = &pio12;
29 gpio14 = &pio30;
30 gpio15 = &pio31;
31 gpio16 = &pio13;
32 gpio17 = &pio14;
33 gpio18 = &pio15;
34 gpio19 = &pio16;
35 gpio20 = &pio17;
36 gpio21 = &pio18;
37 gpio22 = &pio100;
38 gpio23 = &pio101;
39 gpio24 = &pio102;
40 gpio25 = &pio103;
41 gpio26 = &pio104;
42 gpio27 = &pio105;
43 gpio28 = &pio106;
44 gpio29 = &pio107;
45 };
46
47 soc {
48 pin-controller-sbc {
49 #address-cells = <1>;
50 #size-cells = <1>;
51 compatible = "st,stih416-sbc-pinctrl";
52 st,syscfg = <&syscfg_sbc>;
53 reg = <0xfe61f080 0x4>;
54 reg-names = "irqmux";
55 interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
56 interrupt-names = "irqmux";
57 ranges = <0 0xfe610000 0x6000>;
58
59 pio0: gpio@fe610000 {
60 gpio-controller;
61 #gpio-cells = <2>;
62 interrupt-controller;
63 #interrupt-cells = <2>;
64 reg = <0 0x100>;
65 st,bank-name = "PIO0";
66 };
67 pio1: gpio@fe611000 {
68 gpio-controller;
69 #gpio-cells = <2>;
70 interrupt-controller;
71 #interrupt-cells = <2>;
72 reg = <0x1000 0x100>;
73 st,bank-name = "PIO1";
74 };
75 pio2: gpio@fe612000 {
76 gpio-controller;
77 #gpio-cells = <2>;
78 interrupt-controller;
79 #interrupt-cells = <2>;
80 reg = <0x2000 0x100>;
81 st,bank-name = "PIO2";
82 };
83 pio3: gpio@fe613000 {
84 gpio-controller;
85 #gpio-cells = <2>;
86 interrupt-controller;
87 #interrupt-cells = <2>;
88 reg = <0x3000 0x100>;
89 st,bank-name = "PIO3";
90 };
91 pio4: gpio@fe614000 {
92 gpio-controller;
93 #gpio-cells = <2>;
94 interrupt-controller;
95 #interrupt-cells = <2>;
96 reg = <0x4000 0x100>;
97 st,bank-name = "PIO4";
98 };
99 pio40: gpio@fe615000 {
100 gpio-controller;
101 #gpio-cells = <2>;
102 interrupt-controller;
103 #interrupt-cells = <2>;
104 reg = <0x5000 0x100>;
105 st,bank-name = "PIO40";
106 st,retime-pin-mask = <0x7f>;
107 };
108
109 rc{
110 pinctrl_ir: ir0 {
111 st,pins {
112 ir = <&pio4 0 ALT2 IN>;
113 };
114 };
115 };
116 sbc_serial1 {
117 pinctrl_sbc_serial1: sbc_serial1 {
118 st,pins {
119 tx = <&pio2 6 ALT3 OUT>;
120 rx = <&pio2 7 ALT3 IN>;
121 };
122 };
123 };
124
125 keyscan {
126 pinctrl_keyscan: keyscan {
127 st,pins {
128 keyin0 = <&pio0 2 ALT2 IN>;
129 keyin1 = <&pio0 3 ALT2 IN>;
130 keyin2 = <&pio0 4 ALT2 IN>;
131 keyin3 = <&pio2 6 ALT2 IN>;
132
133 keyout0 = <&pio1 6 ALT2 OUT>;
134 keyout1 = <&pio1 7 ALT2 OUT>;
135 keyout2 = <&pio0 6 ALT2 OUT>;
136 keyout3 = <&pio2 7 ALT2 OUT>;
137 };
138 };
139 };
140
141 sbc_i2c0 {
142 pinctrl_sbc_i2c0_default: sbc_i2c0-default {
143 st,pins {
144 sda = <&pio4 6 ALT1 BIDIR>;
145 scl = <&pio4 5 ALT1 BIDIR>;
146 };
147 };
148 };
149
150 usb {
151 pinctrl_usb3: usb3 {
152 st,pins {
153 oc-detect = <&pio40 0 ALT1 IN>;
154 pwr-enable = <&pio40 1 ALT1 OUT>;
155 };
156 };
157 };
158
159 sbc_i2c1 {
160 pinctrl_sbc_i2c1_default: sbc_i2c1-default {
161 st,pins {
162 sda = <&pio3 2 ALT2 BIDIR>;
163 scl = <&pio3 1 ALT2 BIDIR>;
164 };
165 };
166 };
167
168 gmac1 {
169 pinctrl_mii1: mii1 {
170 st,pins {
171 txd0 = <&pio0 0 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
172 txd1 = <&pio0 1 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
173 txd2 = <&pio0 2 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
174 txd3 = <&pio0 3 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
175 txer = <&pio0 4 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
176 txen = <&pio0 5 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
177 txclk = <&pio0 6 ALT1 IN NICLK 0 CLK_A>;
178 col = <&pio0 7 ALT1 IN BYPASS 1000>;
179
180 mdio = <&pio1 0 ALT1 OUT BYPASS 1500>;
181 mdc = <&pio1 1 ALT1 OUT NICLK 0 CLK_A>;
182 crs = <&pio1 2 ALT1 IN BYPASS 1000>;
183 mdint = <&pio1 3 ALT1 IN BYPASS 0>;
184 rxd0 = <&pio1 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
185 rxd1 = <&pio1 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
186 rxd2 = <&pio1 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
187 rxd3 = <&pio1 7 ALT1 IN SE_NICLK_IO 0 CLK_A>;
188
189 rxdv = <&pio2 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
190 rx_er = <&pio2 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
191 rxclk = <&pio2 2 ALT1 IN NICLK 0 CLK_A>;
192 phyclk = <&pio2 3 ALT1 OUT NICLK 0 CLK_A>;
193 };
194 };
195 pinctrl_rgmii1: rgmii1-0 {
196 st,pins {
197 txd0 = <&pio0 0 ALT1 OUT DE_IO 500 CLK_A>;
198 txd1 = <&pio0 1 ALT1 OUT DE_IO 500 CLK_A>;
199 txd2 = <&pio0 2 ALT1 OUT DE_IO 500 CLK_A>;
200 txd3 = <&pio0 3 ALT1 OUT DE_IO 500 CLK_A>;
201 txen = <&pio0 5 ALT1 OUT DE_IO 0 CLK_A>;
202 txclk = <&pio0 6 ALT1 IN NICLK 0 CLK_A>;
203
204 mdio = <&pio1 0 ALT1 OUT BYPASS 0>;
205 mdc = <&pio1 1 ALT1 OUT NICLK 0 CLK_A>;
206 rxd0 = <&pio1 4 ALT1 IN DE_IO 500 CLK_A>;
207 rxd1 = <&pio1 5 ALT1 IN DE_IO 500 CLK_A>;
208 rxd2 = <&pio1 6 ALT1 IN DE_IO 500 CLK_A>;
209 rxd3 = <&pio1 7 ALT1 IN DE_IO 500 CLK_A>;
210
211 rxdv = <&pio2 0 ALT1 IN DE_IO 500 CLK_A>;
212 rxclk = <&pio2 2 ALT1 IN NICLK 0 CLK_A>;
213 phyclk = <&pio2 3 ALT4 OUT NICLK 0 CLK_B>;
214
215 clk125= <&pio3 7 ALT4 IN NICLK 0 CLK_A>;
216 };
217 };
218 };
219
220 pwm1 {
221 pinctrl_pwm1_chan0_default: pwm1-0-default {
222 st,pins {
223 pwm-out = <&pio3 0 ALT1 OUT>;
224 pwm-capturein = <&pio3 2 ALT1 IN>;
225
226 };
227 };
228 pinctrl_pwm1_chan1_default: pwm1-1-default {
229 st,pins {
230 pwm-out = <&pio4 4 ALT1 OUT>;
231 pwm-capturein = <&pio4 3 ALT1 IN>;
232 };
233 };
234 pinctrl_pwm1_chan2_default: pwm1-2-default {
235 st,pins {
236 pwm-out = <&pio4 6 ALT3 OUT>;
237 };
238 };
239 pinctrl_pwm1_chan3_default: pwm1-3-default {
240 st,pins {
241 pwm-out = <&pio4 7 ALT3 OUT>;
242 };
243 };
244 };
245 };
246
247 pin-controller-front {
248 #address-cells = <1>;
249 #size-cells = <1>;
250 compatible = "st,stih416-front-pinctrl";
251 st,syscfg = <&syscfg_front>;
252 reg = <0xfee0f080 0x4>;
253 reg-names = "irqmux";
254 interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
255 interrupt-names = "irqmux";
256 ranges = <0 0xfee00000 0x10000>;
257
258 pio5: gpio@fee00000 {
259 gpio-controller;
260 #gpio-cells = <2>;
261 interrupt-controller;
262 #interrupt-cells = <2>;
263 reg = <0 0x100>;
264 st,bank-name = "PIO5";
265 };
266 pio6: gpio@fee01000 {
267 gpio-controller;
268 #gpio-cells = <2>;
269 interrupt-controller;
270 #interrupt-cells = <2>;
271 reg = <0x1000 0x100>;
272 st,bank-name = "PIO6";
273 };
274 pio7: gpio@fee02000 {
275 gpio-controller;
276 #gpio-cells = <2>;
277 interrupt-controller;
278 #interrupt-cells = <2>;
279 reg = <0x2000 0x100>;
280 st,bank-name = "PIO7";
281 };
282 pio8: gpio@fee03000 {
283 gpio-controller;
284 #gpio-cells = <2>;
285 interrupt-controller;
286 #interrupt-cells = <2>;
287 reg = <0x3000 0x100>;
288 st,bank-name = "PIO8";
289 };
290 pio9: gpio@fee04000 {
291 gpio-controller;
292 #gpio-cells = <2>;
293 interrupt-controller;
294 #interrupt-cells = <2>;
295 reg = <0x4000 0x100>;
296 st,bank-name = "PIO9";
297 };
298 pio10: gpio@fee05000 {
299 gpio-controller;
300 #gpio-cells = <2>;
301 interrupt-controller;
302 #interrupt-cells = <2>;
303 reg = <0x5000 0x100>;
304 st,bank-name = "PIO10";
305 };
306 pio11: gpio@fee06000 {
307 gpio-controller;
308 #gpio-cells = <2>;
309 interrupt-controller;
310 #interrupt-cells = <2>;
311 reg = <0x6000 0x100>;
312 st,bank-name = "PIO11";
313 };
314 pio12: gpio@fee07000 {
315 gpio-controller;
316 #gpio-cells = <2>;
317 interrupt-controller;
318 #interrupt-cells = <2>;
319 reg = <0x7000 0x100>;
320 st,bank-name = "PIO12";
321 };
322 pio30: gpio@fee08000 {
323 gpio-controller;
324 #gpio-cells = <2>;
325 interrupt-controller;
326 #interrupt-cells = <2>;
327 reg = <0x8000 0x100>;
328 st,bank-name = "PIO30";
329 };
330 pio31: gpio@fee09000 {
331 gpio-controller;
332 #gpio-cells = <2>;
333 interrupt-controller;
334 #interrupt-cells = <2>;
335 reg = <0x9000 0x100>;
336 st,bank-name = "PIO31";
337 };
338
339 pwm0 {
340 pinctrl_pwm0_chan0_default: pwm0-0-default {
341 st,pins {
342 pwm-out = <&pio9 7 ALT2 OUT>;
343 pwm-capturein = <&pio9 6 ALT2 IN>;
344 };
345 };
346 };
347
348 serial2-oe {
349 pinctrl_serial2_oe: serial2-1 {
350 st,pins {
351 output-enable = <&pio11 3 ALT2 OUT>;
352 };
353 };
354 };
355
356 i2c0 {
357 pinctrl_i2c0_default: i2c0-default {
358 st,pins {
359 sda = <&pio9 3 ALT1 BIDIR>;
360 scl = <&pio9 2 ALT1 BIDIR>;
361 };
362 };
363 };
364
365 usb {
366 pinctrl_usb0: usb0 {
367 st,pins {
368 oc-detect = <&pio9 4 ALT1 IN>;
369 pwr-enable = <&pio9 5 ALT1 OUT>;
370 };
371 };
372 };
373
374
375 i2c1 {
376 pinctrl_i2c1_default: i2c1-default {
377 st,pins {
378 sda = <&pio12 1 ALT1 BIDIR>;
379 scl = <&pio12 0 ALT1 BIDIR>;
380 };
381 };
382 };
383
384 fsm {
385 pinctrl_fsm: fsm {
386 st,pins {
387 spi-fsm-clk = <&pio12 2 ALT1 OUT>;
388 spi-fsm-cs = <&pio12 3 ALT1 OUT>;
389 spi-fsm-mosi = <&pio12 4 ALT1 OUT>;
390 spi-fsm-miso = <&pio12 5 ALT1 IN>;
391 spi-fsm-hol = <&pio12 6 ALT1 OUT>;
392 spi-fsm-wp = <&pio12 7 ALT1 OUT>;
393 };
394 };
395 };
396 };
397
398 pin-controller-rear {
399 #address-cells = <1>;
400 #size-cells = <1>;
401 compatible = "st,stih416-rear-pinctrl";
402 st,syscfg = <&syscfg_rear>;
403 reg = <0xfe82f080 0x4>;
404 reg-names = "irqmux";
405 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
406 interrupt-names = "irqmux";
407 ranges = <0 0xfe820000 0x6000>;
408
409 pio13: gpio@fe820000 {
410 gpio-controller;
411 #gpio-cells = <2>;
412 interrupt-controller;
413 #interrupt-cells = <2>;
414 reg = <0 0x100>;
415 st,bank-name = "PIO13";
416 };
417 pio14: gpio@fe821000 {
418 gpio-controller;
419 #gpio-cells = <2>;
420 interrupt-controller;
421 #interrupt-cells = <2>;
422 reg = <0x1000 0x100>;
423 st,bank-name = "PIO14";
424 };
425 pio15: gpio@fe822000 {
426 gpio-controller;
427 #gpio-cells = <2>;
428 interrupt-controller;
429 #interrupt-cells = <2>;
430 reg = <0x2000 0x100>;
431 st,bank-name = "PIO15";
432 };
433 pio16: gpio@fe823000 {
434 gpio-controller;
435 #gpio-cells = <2>;
436 interrupt-controller;
437 #interrupt-cells = <2>;
438 reg = <0x3000 0x100>;
439 st,bank-name = "PIO16";
440 };
441 pio17: gpio@fe824000 {
442 gpio-controller;
443 #gpio-cells = <2>;
444 interrupt-controller;
445 #interrupt-cells = <2>;
446 reg = <0x4000 0x100>;
447 st,bank-name = "PIO17";
448 };
449 pio18: gpio@fe825000 {
450 gpio-controller;
451 #gpio-cells = <2>;
452 interrupt-controller;
453 #interrupt-cells = <2>;
454 reg = <0x5000 0x100>;
455 st,bank-name = "PIO18";
456 st,retime-pin-mask = <0xf>;
457 };
458
459 serial2 {
460 pinctrl_serial2: serial2-0 {
461 st,pins {
462 tx = <&pio17 4 ALT2 OUT>;
463 rx = <&pio17 5 ALT2 IN>;
464 };
465 };
466 };
467
468 gmac0 {
469 pinctrl_mii0: mii0 {
470 st,pins {
471 mdint = <&pio13 6 ALT2 IN BYPASS 0>;
472 txen = <&pio13 7 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
473 txd0 = <&pio14 0 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
474 txd1 = <&pio14 1 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
475 txd2 = <&pio14 2 ALT2 OUT SE_NICLK_IO 0 CLK_B>;
476 txd3 = <&pio14 3 ALT2 OUT SE_NICLK_IO 0 CLK_B>;
477
478 txclk = <&pio15 0 ALT2 IN NICLK 0 CLK_A>;
479 txer = <&pio15 1 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
480 crs = <&pio15 2 ALT2 IN BYPASS 1000>;
481 col = <&pio15 3 ALT2 IN BYPASS 1000>;
482 mdio= <&pio15 4 ALT2 OUT BYPASS 1500>;
483 mdc = <&pio15 5 ALT2 OUT NICLK 0 CLK_B>;
484
485 rxd0 = <&pio16 0 ALT2 IN SE_NICLK_IO 0 CLK_A>;
486 rxd1 = <&pio16 1 ALT2 IN SE_NICLK_IO 0 CLK_A>;
487 rxd2 = <&pio16 2 ALT2 IN SE_NICLK_IO 0 CLK_A>;
488 rxd3 = <&pio16 3 ALT2 IN SE_NICLK_IO 0 CLK_A>;
489 rxdv = <&pio15 6 ALT2 IN SE_NICLK_IO 0 CLK_A>;
490 rx_er = <&pio15 7 ALT2 IN SE_NICLK_IO 0 CLK_A>;
491 rxclk = <&pio17 0 ALT2 IN NICLK 0 CLK_A>;
492 phyclk = <&pio13 5 ALT2 OUT NICLK 0 CLK_B>;
493 };
494 };
495
496 pinctrl_gmii0: gmii0 {
497 st,pins {
498 };
499 };
500 pinctrl_rgmii0: rgmii0 {
501 st,pins {
502 phyclk = <&pio13 5 ALT4 OUT NICLK 0 CLK_B>;
503 txen = <&pio13 7 ALT2 OUT DE_IO 0 CLK_A>;
504 txd0 = <&pio14 0 ALT2 OUT DE_IO 500 CLK_A>;
505 txd1 = <&pio14 1 ALT2 OUT DE_IO 500 CLK_A>;
506 txd2 = <&pio14 2 ALT2 OUT DE_IO 500 CLK_B>;
507 txd3 = <&pio14 3 ALT2 OUT DE_IO 500 CLK_B>;
508 txclk = <&pio15 0 ALT2 IN NICLK 0 CLK_A>;
509
510 mdio = <&pio15 4 ALT2 OUT BYPASS 0>;
511 mdc = <&pio15 5 ALT2 OUT NICLK 0 CLK_B>;
512
513 rxdv = <&pio15 6 ALT2 IN DE_IO 500 CLK_A>;
514 rxd0 =<&pio16 0 ALT2 IN DE_IO 500 CLK_A>;
515 rxd1 =<&pio16 1 ALT2 IN DE_IO 500 CLK_A>;
516 rxd2 =<&pio16 2 ALT2 IN DE_IO 500 CLK_A>;
517 rxd3 =<&pio16 3 ALT2 IN DE_IO 500 CLK_A>;
518 rxclk =<&pio17 0 ALT2 IN NICLK 0 CLK_A>;
519
520 clk125=<&pio17 6 ALT1 IN NICLK 0 CLK_A>;
521 };
522 };
523 };
524
525 mmc0 {
526 pinctrl_mmc0: mmc0 {
527 st,pins {
528 mmcclk = <&pio13 4 ALT4 BIDIR_PU NICLK 0 CLK_B>;
529 data0 = <&pio14 4 ALT4 BIDIR_PU BYPASS 0>;
530 data1 = <&pio14 5 ALT4 BIDIR_PU BYPASS 0>;
531 data2 = <&pio14 6 ALT4 BIDIR_PU BYPASS 0>;
532 data3 = <&pio14 7 ALT4 BIDIR_PU BYPASS 0>;
533 cmd = <&pio15 1 ALT4 BIDIR_PU BYPASS 0>;
534 wp = <&pio15 3 ALT4 IN>;
535 data4 = <&pio16 4 ALT4 BIDIR_PU BYPASS 0>;
536 data5 = <&pio16 5 ALT4 BIDIR_PU BYPASS 0>;
537 data6 = <&pio16 6 ALT4 BIDIR_PU BYPASS 0>;
538 data7 = <&pio16 7 ALT4 BIDIR_PU BYPASS 0>;
539 pwr = <&pio17 1 ALT4 OUT>;
540 cd = <&pio17 2 ALT4 IN>;
541 led = <&pio17 3 ALT4 OUT>;
542 };
543 };
544 };
545 mmc1 {
546 pinctrl_mmc1: mmc1 {
547 st,pins {
548 mmcclk = <&pio15 0 ALT3 BIDIR_PU NICLK 0 CLK_B>;
549 data0 = <&pio13 7 ALT3 BIDIR_PU BYPASS 0>;
550 data1 = <&pio14 1 ALT3 BIDIR_PU BYPASS 0>;
551 data2 = <&pio14 2 ALT3 BIDIR_PU BYPASS 0>;
552 data3 = <&pio14 3 ALT3 BIDIR_PU BYPASS 0>;
553 cmd = <&pio15 4 ALT3 BIDIR_PU BYPASS 0>;
554 data4 = <&pio15 6 ALT3 BIDIR_PU BYPASS 0>;
555 data5 = <&pio15 7 ALT3 BIDIR_PU BYPASS 0>;
556 data6 = <&pio16 0 ALT3 BIDIR_PU BYPASS 0>;
557 data7 = <&pio16 1 ALT3 BIDIR_PU BYPASS 0>;
558 pwr = <&pio16 2 ALT3 OUT>;
559 nreset = <&pio13 6 ALT3 OUT>;
560 };
561 };
562 };
563
564 usb {
565 pinctrl_usb1: usb1 {
566 st,pins {
567 oc-detect = <&pio18 0 ALT1 IN>;
568 pwr-enable = <&pio18 1 ALT1 OUT>;
569 };
570 };
571 pinctrl_usb2: usb2 {
572 st,pins {
573 oc-detect = <&pio18 2 ALT1 IN>;
574 pwr-enable = <&pio18 3 ALT1 OUT>;
575 };
576 };
577 };
578
579 pwm0 {
580 pinctrl_pwm0_chan1_default: pwm0-1-default {
581 st,pins {
582 pwm-out = <&pio13 2 ALT2 OUT>;
583 pwm-capturein = <&pio13 1 ALT2 IN>;
584 };
585 };
586 pinctrl_pwm0_chan2_default: pwm0-2-default {
587 st,pins {
588 pwm-out = <&pio15 2 ALT4 OUT>;
589 };
590 };
591 pinctrl_pwm0_chan3_default: pwm0-3-default {
592 st,pins {
593 pwm-out = <&pio17 4 ALT1 OUT>;
594 };
595 };
596 };
597
598 };
599
600 pin-controller-fvdp-fe {
601 #address-cells = <1>;
602 #size-cells = <1>;
603 compatible = "st,stih416-fvdp-fe-pinctrl";
604 st,syscfg = <&syscfg_fvdp_fe>;
605 reg = <0xfd6bf080 0x4>;
606 reg-names = "irqmux";
607 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
608 interrupt-names = "irqmux";
609 ranges = <0 0xfd6b0000 0x3000>;
610
611 pio100: gpio@fd6b0000 {
612 gpio-controller;
613 #gpio-cells = <2>;
614 interrupt-controller;
615 #interrupt-cells = <2>;
616 reg = <0 0x100>;
617 st,bank-name = "PIO100";
618 };
619 pio101: gpio@fd6b1000 {
620 gpio-controller;
621 #gpio-cells = <2>;
622 interrupt-controller;
623 #interrupt-cells = <2>;
624 reg = <0x1000 0x100>;
625 st,bank-name = "PIO101";
626 };
627 pio102: gpio@fd6b2000 {
628 gpio-controller;
629 #gpio-cells = <2>;
630 interrupt-controller;
631 #interrupt-cells = <2>;
632 reg = <0x2000 0x100>;
633 st,bank-name = "PIO102";
634 };
635 };
636
637 pin-controller-fvdp-lite {
638 #address-cells = <1>;
639 #size-cells = <1>;
640 compatible = "st,stih416-fvdp-lite-pinctrl";
641 st,syscfg = <&syscfg_fvdp_lite>;
642 reg = <0xfd33f080 0x4>;
643 reg-names = "irqmux";
644 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
645 interrupt-names = "irqmux";
646 ranges = <0 0xfd330000 0x5000>;
647
648 pio103: gpio@fd330000 {
649 gpio-controller;
650 #gpio-cells = <2>;
651 interrupt-controller;
652 #interrupt-cells = <2>;
653 reg = <0 0x100>;
654 st,bank-name = "PIO103";
655 };
656 pio104: gpio@fd331000 {
657 gpio-controller;
658 #gpio-cells = <2>;
659 interrupt-controller;
660 #interrupt-cells = <2>;
661 reg = <0x1000 0x100>;
662 st,bank-name = "PIO104";
663 };
664 pio105: gpio@fd332000 {
665 gpio-controller;
666 #gpio-cells = <2>;
667 interrupt-controller;
668 #interrupt-cells = <2>;
669 reg = <0x2000 0x100>;
670 st,bank-name = "PIO105";
671 };
672 pio106: gpio@fd333000 {
673 gpio-controller;
674 #gpio-cells = <2>;
675 interrupt-controller;
676 #interrupt-cells = <2>;
677 reg = <0x3000 0x100>;
678 st,bank-name = "PIO106";
679 };
680
681 pio107: gpio@fd334000 {
682 gpio-controller;
683 #gpio-cells = <2>;
684 interrupt-controller;
685 #interrupt-cells = <2>;
686 reg = <0x4000 0x100>;
687 st,bank-name = "PIO107";
688 st,retime-pin-mask = <0xf>;
689 };
690 };
691 };
692};
diff --git a/arch/arm/boot/dts/stih416.dtsi b/arch/arm/boot/dts/stih416.dtsi
deleted file mode 100644
index fe1f9cf770e4..000000000000
--- a/arch/arm/boot/dts/stih416.dtsi
+++ /dev/null
@@ -1,517 +0,0 @@
1/*
2 * Copyright (C) 2012 STMicroelectronics Limited.
3 * Author: Srinivas Kandagatla <srinivas.kandagatla@st.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 * publishhed by the Free Software Foundation.
8 */
9#include "stih41x.dtsi"
10#include "stih416-clock.dtsi"
11#include "stih416-pinctrl.dtsi"
12
13#include <dt-bindings/phy/phy.h>
14#include <dt-bindings/interrupt-controller/arm-gic.h>
15#include <dt-bindings/reset/stih416-resets.h>
16#include <dt-bindings/interrupt-controller/irq-st.h>
17/ {
18 L2: cache-controller {
19 compatible = "arm,pl310-cache";
20 reg = <0xfffe2000 0x1000>;
21 arm,data-latency = <3 3 3>;
22 arm,tag-latency = <2 2 2>;
23 cache-unified;
24 cache-level = <2>;
25 };
26
27 arm-pmu {
28 compatible = "arm,cortex-a9-pmu";
29 interrupt-parent = <&intc>;
30 interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
31 };
32
33 soc {
34 #address-cells = <1>;
35 #size-cells = <1>;
36 interrupt-parent = <&intc>;
37 ranges;
38 compatible = "simple-bus";
39
40 restart {
41 compatible = "st,stih416-restart";
42 st,syscfg = <&syscfg_sbc>;
43 status = "okay";
44 };
45
46 powerdown: powerdown-controller {
47 #reset-cells = <1>;
48 compatible = "st,stih416-powerdown";
49 };
50
51 softreset: softreset-controller {
52 #reset-cells = <1>;
53 compatible = "st,stih416-softreset";
54 };
55
56 syscfg_sbc:sbc-syscfg@fe600000{
57 compatible = "st,stih416-sbc-syscfg", "syscon";
58 reg = <0xfe600000 0x1000>;
59 };
60
61 syscfg_front:front-syscfg@fee10000{
62 compatible = "st,stih416-front-syscfg", "syscon";
63 reg = <0xfee10000 0x1000>;
64 };
65
66 syscfg_rear:rear-syscfg@fe830000{
67 compatible = "st,stih416-rear-syscfg", "syscon";
68 reg = <0xfe830000 0x1000>;
69 };
70
71 /* MPE */
72 syscfg_fvdp_fe:fvdp-fe-syscfg@fddf0000{
73 compatible = "st,stih416-fvdp-fe-syscfg", "syscon";
74 reg = <0xfddf0000 0x1000>;
75 };
76
77 syscfg_fvdp_lite:fvdp-lite-syscfg@fd6a0000{
78 compatible = "st,stih416-fvdp-lite-syscfg", "syscon";
79 reg = <0xfd6a0000 0x1000>;
80 };
81
82 syscfg_cpu:cpu-syscfg@fdde0000{
83 compatible = "st,stih416-cpu-syscfg", "syscon";
84 reg = <0xfdde0000 0x1000>;
85 };
86
87 syscfg_compo:compo-syscfg@fd320000{
88 compatible = "st,stih416-compo-syscfg", "syscon";
89 reg = <0xfd320000 0x1000>;
90 };
91
92 syscfg_transport:transport-syscfg@fd690000{
93 compatible = "st,stih416-transport-syscfg", "syscon";
94 reg = <0xfd690000 0x1000>;
95 };
96
97 syscfg_lpm:lpm-syscfg@fe4b5100{
98 compatible = "st,stih416-lpm-syscfg", "syscon";
99 reg = <0xfe4b5100 0x8>;
100 };
101
102 irq-syscfg {
103 compatible = "st,stih416-irq-syscfg";
104 st,syscfg = <&syscfg_cpu>;
105 st,irq-device = <ST_IRQ_SYSCFG_PMU_0>,
106 <ST_IRQ_SYSCFG_PMU_1>;
107 st,fiq-device = <ST_IRQ_SYSCFG_DISABLED>,
108 <ST_IRQ_SYSCFG_DISABLED>;
109 };
110
111 serial2: serial@fed32000{
112 compatible = "st,asc";
113 status = "disabled";
114 reg = <0xfed32000 0x2c>;
115 interrupts = <0 197 0>;
116 clocks = <&clk_s_a0_ls CLK_ICN_REG>;
117 pinctrl-names = "default";
118 pinctrl-0 = <&pinctrl_serial2 &pinctrl_serial2_oe>;
119 };
120
121 /* SBC_UART1 */
122 sbc_serial1: serial@fe531000 {
123 compatible = "st,asc";
124 status = "disabled";
125 reg = <0xfe531000 0x2c>;
126 interrupts = <0 210 0>;
127 pinctrl-names = "default";
128 pinctrl-0 = <&pinctrl_sbc_serial1>;
129 clocks = <&clk_sysin>;
130 };
131
132 i2c@fed40000 {
133 compatible = "st,comms-ssc4-i2c";
134 reg = <0xfed40000 0x110>;
135 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
136 clocks = <&clk_s_a0_ls CLK_ICN_REG>;
137 clock-names = "ssc";
138 clock-frequency = <400000>;
139 pinctrl-names = "default";
140 pinctrl-0 = <&pinctrl_i2c0_default>;
141
142 status = "disabled";
143 };
144
145 i2c@fed41000 {
146 compatible = "st,comms-ssc4-i2c";
147 reg = <0xfed41000 0x110>;
148 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
149 clocks = <&clk_s_a0_ls CLK_ICN_REG>;
150 clock-names = "ssc";
151 clock-frequency = <400000>;
152 pinctrl-names = "default";
153 pinctrl-0 = <&pinctrl_i2c1_default>;
154
155 status = "disabled";
156 };
157
158 i2c@fe540000 {
159 compatible = "st,comms-ssc4-i2c";
160 reg = <0xfe540000 0x110>;
161 interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>;
162 clocks = <&clk_sysin>;
163 clock-names = "ssc";
164 clock-frequency = <400000>;
165 pinctrl-names = "default";
166 pinctrl-0 = <&pinctrl_sbc_i2c0_default>;
167
168 status = "disabled";
169 };
170
171 i2c@fe541000 {
172 compatible = "st,comms-ssc4-i2c";
173 reg = <0xfe541000 0x110>;
174 interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
175 clocks = <&clk_sysin>;
176 clock-names = "ssc";
177 clock-frequency = <400000>;
178 pinctrl-names = "default";
179 pinctrl-0 = <&pinctrl_sbc_i2c1_default>;
180
181 status = "disabled";
182 };
183
184 ethernet0: dwmac@fe810000 {
185 device_type = "network";
186 compatible = "st,stih416-dwmac", "snps,dwmac", "snps,dwmac-3.710";
187 status = "disabled";
188 reg = <0xfe810000 0x8000>;
189 reg-names = "stmmaceth";
190
191 interrupts = <0 133 0>, <0 134 0>, <0 135 0>;
192 interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
193
194 snps,pbl = <32>;
195 snps,mixed-burst;
196
197 st,syscon = <&syscfg_rear 0x8bc>;
198 resets = <&softreset STIH416_ETH0_SOFTRESET>;
199 reset-names = "stmmaceth";
200 pinctrl-names = "default";
201 pinctrl-0 = <&pinctrl_mii0>;
202 clock-names = "stmmaceth", "sti-ethclk";
203 clocks = <&clk_s_a1_ls CLK_ICN_IF_2>, <&clk_s_a1_ls CLK_GMAC0_PHY>;
204 };
205
206 ethernet1: dwmac@fef08000 {
207 device_type = "network";
208 compatible = "st,stih416-dwmac", "snps,dwmac", "snps,dwmac-3.710";
209 status = "disabled";
210 reg = <0xfef08000 0x8000>;
211 reg-names = "stmmaceth";
212 interrupts = <0 136 0>, <0 137 0>, <0 138 0>;
213 interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
214
215 snps,pbl = <32>;
216 snps,mixed-burst;
217
218 st,syscon = <&syscfg_sbc 0x7f0>;
219
220 resets = <&softreset STIH416_ETH1_SOFTRESET>;
221 reset-names = "stmmaceth";
222 pinctrl-names = "default";
223 pinctrl-0 = <&pinctrl_mii1>;
224 clock-names = "stmmaceth", "sti-ethclk";
225 clocks = <&clk_s_a0_ls CLK_ICN_REG>, <&clk_s_a0_ls CLK_ETH1_PHY>;
226 };
227
228 rc: rc@fe518000 {
229 compatible = "st,comms-irb";
230 reg = <0xfe518000 0x234>;
231 interrupts = <0 203 0>;
232 rx-mode = "infrared";
233 clocks = <&clk_sysin>;
234 pinctrl-names = "default";
235 pinctrl-0 = <&pinctrl_ir>;
236 resets = <&softreset STIH416_IRB_SOFTRESET>;
237 };
238
239 /* FSM */
240 spifsm: spifsm@fe902000 {
241 compatible = "st,spi-fsm";
242 reg = <0xfe902000 0x1000>;
243 pinctrl-0 = <&pinctrl_fsm>;
244
245 st,syscfg = <&syscfg_rear>;
246 st,boot-device-reg = <0x958>;
247 st,boot-device-spi = <0x1a>;
248
249 status = "disabled";
250 };
251
252 keyscan: keyscan@fe4b0000 {
253 compatible = "st,sti-keyscan";
254 status = "disabled";
255 reg = <0xfe4b0000 0x2000>;
256 interrupts = <GIC_SPI 212 IRQ_TYPE_NONE>;
257 clocks = <&clk_sysin>;
258 pinctrl-names = "default";
259 pinctrl-0 = <&pinctrl_keyscan>;
260 resets = <&powerdown STIH416_KEYSCAN_POWERDOWN>,
261 <&softreset STIH416_KEYSCAN_SOFTRESET>;
262 };
263
264 temp0 {
265 compatible = "st,stih416-sas-thermal";
266 clock-names = "thermal";
267 clocks = <&clockgen_c_vcc 14>;
268
269 status = "okay";
270 };
271
272 temp1@fdfe8000 {
273 compatible = "st,stih416-mpe-thermal";
274 reg = <0xfdfe8000 0x10>;
275 clocks = <&clockgen_e 3>;
276 clock-names = "thermal";
277 interrupts = <GIC_SPI 23 IRQ_TYPE_EDGE_RISING>;
278
279 status = "okay";
280 };
281
282 mmc0: sdhci@fe81e000 {
283 compatible = "st,sdhci";
284 status = "disabled";
285 reg = <0xfe81e000 0x1000>;
286 interrupts = <GIC_SPI 127 IRQ_TYPE_NONE>;
287 interrupt-names = "mmcirq";
288 pinctrl-names = "default";
289 pinctrl-0 = <&pinctrl_mmc0>;
290 clock-names = "mmc";
291 clocks = <&clk_s_a1_ls 1>;
292 };
293
294 mmc1: sdhci@fe81f000 {
295 compatible = "st,sdhci";
296 status = "disabled";
297 reg = <0xfe81f000 0x1000>;
298 interrupts = <GIC_SPI 128 IRQ_TYPE_NONE>;
299 interrupt-names = "mmcirq";
300 pinctrl-names = "default";
301 pinctrl-0 = <&pinctrl_mmc1>;
302 clock-names = "mmc";
303 clocks = <&clk_s_a1_ls 8>;
304 };
305
306 miphy365x_phy: phy@fe382000 {
307 compatible = "st,miphy365x-phy";
308 st,syscfg = <&syscfg_rear 0x824 0x828>;
309 #address-cells = <1>;
310 #size-cells = <1>;
311 ranges;
312
313 phy_port0: port@fe382000 {
314 #phy-cells = <1>;
315 reg = <0xfe382000 0x100>, <0xfe394000 0x100>;
316 reg-names = "sata", "pcie";
317 };
318
319 phy_port1: port@fe38a000 {
320 #phy-cells = <1>;
321 reg = <0xfe38a000 0x100>, <0xfe804000 0x100>;
322 reg-names = "sata", "pcie";
323 };
324 };
325
326 sata0: sata@fe380000 {
327 compatible = "st,sti-ahci";
328 reg = <0xfe380000 0x1000>;
329 interrupts = <GIC_SPI 157 IRQ_TYPE_NONE>;
330 interrupt-names = "hostc";
331 phys = <&phy_port0 PHY_TYPE_SATA>;
332 phy-names = "sata-phy";
333 resets = <&powerdown STIH416_SATA0_POWERDOWN>,
334 <&softreset STIH416_SATA0_SOFTRESET>;
335 reset-names = "pwr-dwn", "sw-rst";
336 clock-names = "ahci_clk";
337 clocks = <&clk_s_a0_ls CLK_ICN_REG>;
338
339 status = "disabled";
340 };
341
342 usb2_phy: phy@0 {
343 compatible = "st,stih416-usb-phy";
344 #phy-cells = <0>;
345 st,syscfg = <&syscfg_rear>;
346 clocks = <&clk_sysin>;
347 clock-names = "osc_phy";
348 };
349
350 ehci0: usb@fe1ffe00 {
351 compatible = "st,st-ehci-300x";
352 reg = <0xfe1ffe00 0x100>;
353 interrupts = <GIC_SPI 148 IRQ_TYPE_NONE>;
354 pinctrl-names = "default";
355 pinctrl-0 = <&pinctrl_usb0>;
356 clocks = <&clk_s_a1_ls 0>,
357 <&clockgen_b0 0>;
358 clock-names = "ic", "clk48";
359 phys = <&usb2_phy>;
360 phy-names = "usb";
361 resets = <&powerdown STIH416_USB0_POWERDOWN>,
362 <&softreset STIH416_USB0_SOFTRESET>;
363 reset-names = "power", "softreset";
364 };
365
366 ohci0: usb@fe1ffc00 {
367 compatible = "st,st-ohci-300x";
368 reg = <0xfe1ffc00 0x100>;
369 interrupts = <GIC_SPI 149 IRQ_TYPE_NONE>;
370 clocks = <&clk_s_a1_ls 0>,
371 <&clockgen_b0 0>;
372 clock-names = "ic", "clk48";
373 phys = <&usb2_phy>;
374 phy-names = "usb";
375 status = "okay";
376 resets = <&powerdown STIH416_USB0_POWERDOWN>,
377 <&softreset STIH416_USB0_SOFTRESET>;
378 reset-names = "power", "softreset";
379 };
380
381 ehci1: usb@fe203e00 {
382 compatible = "st,st-ehci-300x";
383 reg = <0xfe203e00 0x100>;
384 interrupts = <GIC_SPI 150 IRQ_TYPE_NONE>;
385 pinctrl-names = "default";
386 pinctrl-0 = <&pinctrl_usb1>;
387 clocks = <&clk_s_a1_ls 0>,
388 <&clockgen_b0 0>;
389 clock-names = "ic", "clk48";
390 phys = <&usb2_phy>;
391 phy-names = "usb";
392 resets = <&powerdown STIH416_USB1_POWERDOWN>,
393 <&softreset STIH416_USB1_SOFTRESET>;
394 reset-names = "power", "softreset";
395 };
396
397 ohci1: usb@fe203c00 {
398 compatible = "st,st-ohci-300x";
399 reg = <0xfe203c00 0x100>;
400 interrupts = <GIC_SPI 151 IRQ_TYPE_NONE>;
401 clocks = <&clk_s_a1_ls 0>,
402 <&clockgen_b0 0>;
403 clock-names = "ic", "clk48";
404 phys = <&usb2_phy>;
405 phy-names = "usb";
406 resets = <&powerdown STIH416_USB1_POWERDOWN>,
407 <&softreset STIH416_USB1_SOFTRESET>;
408 reset-names = "power", "softreset";
409 };
410
411 ehci2: usb@fe303e00 {
412 compatible = "st,st-ehci-300x";
413 reg = <0xfe303e00 0x100>;
414 interrupts = <GIC_SPI 152 IRQ_TYPE_NONE>;
415 pinctrl-names = "default";
416 pinctrl-0 = <&pinctrl_usb2>;
417 clocks = <&clk_s_a1_ls 0>,
418 <&clockgen_b0 0>;
419 clock-names = "ic", "clk48";
420 phys = <&usb2_phy>;
421 phy-names = "usb";
422 resets = <&powerdown STIH416_USB2_POWERDOWN>,
423 <&softreset STIH416_USB2_SOFTRESET>;
424 reset-names = "power", "softreset";
425 };
426
427 ohci2: usb@fe303c00 {
428 compatible = "st,st-ohci-300x";
429 reg = <0xfe303c00 0x100>;
430 interrupts = <GIC_SPI 153 IRQ_TYPE_NONE>;
431 clocks = <&clk_s_a1_ls 0>,
432 <&clockgen_b0 0>;
433 clock-names = "ic", "clk48";
434 phys = <&usb2_phy>;
435 phy-names = "usb";
436 resets = <&powerdown STIH416_USB2_POWERDOWN>,
437 <&softreset STIH416_USB2_SOFTRESET>;
438 reset-names = "power", "softreset";
439 };
440
441 ehci3: usb@fe343e00 {
442 compatible = "st,st-ehci-300x";
443 reg = <0xfe343e00 0x100>;
444 interrupts = <GIC_SPI 154 IRQ_TYPE_NONE>;
445 pinctrl-names = "default";
446 pinctrl-0 = <&pinctrl_usb3>;
447 clocks = <&clk_s_a1_ls 0>,
448 <&clockgen_b0 0>;
449 clock-names = "ic", "clk48";
450 phys = <&usb2_phy>;
451 phy-names = "usb";
452 resets = <&powerdown STIH416_USB3_POWERDOWN>,
453 <&softreset STIH416_USB3_SOFTRESET>;
454 reset-names = "power", "softreset";
455 };
456
457 ohci3: usb@fe343c00 {
458 compatible = "st,st-ohci-300x";
459 reg = <0xfe343c00 0x100>;
460 interrupts = <GIC_SPI 155 IRQ_TYPE_NONE>;
461 clocks = <&clk_s_a1_ls 0>,
462 <&clockgen_b0 0>;
463 clock-names = "ic", "clk48";
464 phys = <&usb2_phy>;
465 phy-names = "usb";
466 resets = <&powerdown STIH416_USB3_POWERDOWN>,
467 <&softreset STIH416_USB3_SOFTRESET>;
468 reset-names = "power", "softreset";
469 };
470
471 /* SAS PWM Module */
472 pwm0: pwm@fed10000 {
473 compatible = "st,sti-pwm";
474 status = "disabled";
475 #pwm-cells = <2>;
476 reg = <0xfed10000 0x68>;
477 interrupts = <GIC_SPI 200 IRQ_TYPE_NONE>;
478
479 pinctrl-names = "default";
480 pinctrl-0 = <&pinctrl_pwm0_chan0_default
481 &pinctrl_pwm0_chan1_default
482 &pinctrl_pwm0_chan2_default
483 &pinctrl_pwm0_chan3_default>;
484
485 clock-names = "pwm", "capture";
486 clocks = <&clk_sysin>, <&clk_s_a0_ls CLK_ICN_REG>;
487
488 st,pwm-num-chan = <4>;
489 st,capture-num-chan = <2>;
490 };
491
492 /* SBC PWM Module */
493 pwm1: pwm@fe510000 {
494 compatible = "st,sti-pwm";
495 status = "disabled";
496 #pwm-cells = <2>;
497 reg = <0xfe510000 0x68>;
498 interrupts = <GIC_SPI 202 IRQ_TYPE_NONE>;
499
500 pinctrl-names = "default";
501 pinctrl-0 = <&pinctrl_pwm1_chan0_default
502 /*
503 * Shared with SBC_OBS_NOTRST. Don't
504 * enable unless you really know what
505 * you're doing.
506 *
507 * &pinctrl_pwm1_chan1_default
508 */
509 &pinctrl_pwm1_chan2_default
510 &pinctrl_pwm1_chan3_default>;
511
512 clock-names = "pwm";
513 clocks = <&clk_sysin>;
514 st,pwm-num-chan = <3>;
515 };
516 };
517};
diff --git a/arch/arm/boot/dts/stih41x-b2000.dtsi b/arch/arm/boot/dts/stih41x-b2000.dtsi
deleted file mode 100644
index 9bfa0674b452..000000000000
--- a/arch/arm/boot/dts/stih41x-b2000.dtsi
+++ /dev/null
@@ -1,96 +0,0 @@
1/*
2 * Copyright (C) 2013 STMicroelectronics (R&D) Limited.
3 * Author: Srinivas Kandagatla <srinivas.kandagatla@st.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 * publishhed by the Free Software Foundation.
8 */
9#include <dt-bindings/input/input.h>
10#include <dt-bindings/gpio/gpio.h>
11
12/ {
13
14 memory{
15 device_type = "memory";
16 reg = <0x60000000 0x40000000>;
17 };
18
19 chosen {
20 bootargs = "console=ttyAS0,115200 clk_ignore_unused";
21 linux,stdout-path = &serial2;
22 };
23
24 aliases {
25 ttyAS0 = &serial2;
26 ethernet0 = &ethernet0;
27 ethernet1 = &ethernet1;
28 };
29
30 soc {
31 serial2: serial@fed32000 {
32 status = "okay";
33 };
34
35 leds {
36 compatible = "gpio-leds";
37 fp_led {
38 label = "Front Panel LED";
39 gpios = <&pio105 7 GPIO_ACTIVE_HIGH>;
40 linux,default-trigger = "heartbeat";
41 };
42 };
43
44 /* HDMI Tx I2C */
45 i2c@fed41000 {
46 /* HDMI V1.3a supports Standard mode only */
47 clock-frequency = <100000>;
48 i2c-min-scl-pulse-width-us = <0>;
49 i2c-min-sda-pulse-width-us = <5>;
50
51 status = "okay";
52 };
53
54 ethernet0: dwmac@fe810000 {
55 status = "okay";
56 phy-mode = "mii";
57 pinctrl-0 = <&pinctrl_mii0>;
58
59 snps,reset-gpio = <&pio106 2>;
60 snps,reset-active-low;
61 snps,reset-delays-us = <0 10000 10000>;
62 };
63
64 ethernet1: dwmac@fef08000 {
65 status = "disabled";
66 phy-mode = "mii";
67 st,tx-retime-src = "txclk";
68
69 snps,reset-gpio = <&pio4 7>;
70 snps,reset-active-low;
71 snps,reset-delays-us = <0 10000 10000>;
72 };
73
74 keyscan: keyscan@fe4b0000 {
75 keypad,num-rows = <4>;
76 keypad,num-columns = <4>;
77 st,debounce-us = <5000>;
78 linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_F13)
79 MATRIX_KEY(0x00, 0x01, KEY_F9)
80 MATRIX_KEY(0x00, 0x02, KEY_F5)
81 MATRIX_KEY(0x00, 0x03, KEY_F1)
82 MATRIX_KEY(0x01, 0x00, KEY_F14)
83 MATRIX_KEY(0x01, 0x01, KEY_F10)
84 MATRIX_KEY(0x01, 0x02, KEY_F6)
85 MATRIX_KEY(0x01, 0x03, KEY_F2)
86 MATRIX_KEY(0x02, 0x00, KEY_F15)
87 MATRIX_KEY(0x02, 0x01, KEY_F11)
88 MATRIX_KEY(0x02, 0x02, KEY_F7)
89 MATRIX_KEY(0x02, 0x03, KEY_F3)
90 MATRIX_KEY(0x03, 0x00, KEY_F16)
91 MATRIX_KEY(0x03, 0x01, KEY_F12)
92 MATRIX_KEY(0x03, 0x02, KEY_F8)
93 MATRIX_KEY(0x03, 0x03, KEY_F4) >;
94 };
95 };
96};
diff --git a/arch/arm/boot/dts/stih41x-b2020.dtsi b/arch/arm/boot/dts/stih41x-b2020.dtsi
deleted file mode 100644
index 322e0e95176c..000000000000
--- a/arch/arm/boot/dts/stih41x-b2020.dtsi
+++ /dev/null
@@ -1,82 +0,0 @@
1/*
2 * Copyright (C) 2013 STMicroelectronics (R&D) Limited.
3 * Author: Srinivas Kandagatla <srinivas.kandagatla@st.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 * publishhed by the Free Software Foundation.
8 */
9#include "stih41x-b2020x.dtsi"
10#include <dt-bindings/gpio/gpio.h>
11/ {
12 memory{
13 device_type = "memory";
14 reg = <0x40000000 0x80000000>;
15 };
16
17 chosen {
18 bootargs = "console=ttyAS0,115200 clk_ignore_unused";
19 linux,stdout-path = &sbc_serial1;
20 };
21
22 aliases {
23 ttyAS0 = &sbc_serial1;
24 ethernet1 = &ethernet1;
25 };
26 soc {
27 sbc_serial1: serial@fe531000 {
28 status = "okay";
29 };
30
31 leds {
32 compatible = "gpio-leds";
33 red {
34 label = "Front Panel LED";
35 gpios = <&pio4 1 GPIO_ACTIVE_HIGH>;
36 linux,default-trigger = "heartbeat";
37 };
38 green {
39 gpios = <&pio4 7 GPIO_ACTIVE_HIGH>;
40 default-state = "off";
41 };
42 };
43
44 i2c@fed40000 {
45 status = "okay";
46 };
47
48 /* HDMI Tx I2C */
49 i2c@fed41000 {
50 /* HDMI V1.3a supports Standard mode only */
51 clock-frequency = <100000>;
52 i2c-min-scl-pulse-width-us = <0>;
53 i2c-min-sda-pulse-width-us = <5>;
54
55 status = "okay";
56 };
57
58 i2c@fe540000 {
59 status = "okay";
60 };
61
62 i2c@fe541000 {
63 status = "okay";
64 };
65
66 ethernet1: dwmac@fef08000 {
67 status = "okay";
68 phy-mode = "rgmii-id";
69 max-speed = <1000>;
70 st,tx-retime-src = "clk_125";
71 snps,reset-gpio = <&pio3 0>;
72 snps,reset-active-low;
73 snps,reset-delays-us = <0 10000 10000>;
74
75 pinctrl-0 = <&pinctrl_rgmii1>;
76 };
77
78 mmc0: sdhci@fe81e000 {
79 bus-width = <8>;
80 };
81 };
82};
diff --git a/arch/arm/boot/dts/stih41x-b2020x.dtsi b/arch/arm/boot/dts/stih41x-b2020x.dtsi
deleted file mode 100644
index f797a0607382..000000000000
--- a/arch/arm/boot/dts/stih41x-b2020x.dtsi
+++ /dev/null
@@ -1,32 +0,0 @@
1/*
2 * Copyright (C) 2013 STMicroelectronics (R&D) Limited.
3 * Author: Lee Jones <lee.jones@linaro.org>
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 * publishhed by the Free Software Foundation.
8 */
9/ {
10 soc {
11 mmc0: sdhci@fe81e000 {
12 status = "okay";
13 };
14
15 spifsm: spifsm@fe902000 {
16 #address-cells = <1>;
17 #size-cells = <1>;
18
19 status = "okay";
20
21 partition@0 {
22 label = "SerialFlash1";
23 reg = <0x00000000 0x00500000>;
24 };
25
26 partition@500000 {
27 label = "SerialFlash2";
28 reg = <0x00500000 0x00b00000>;
29 };
30 };
31 };
32};
diff --git a/arch/arm/boot/dts/stih41x.dtsi b/arch/arm/boot/dts/stih41x.dtsi
deleted file mode 100644
index 5cb0e63376b5..000000000000
--- a/arch/arm/boot/dts/stih41x.dtsi
+++ /dev/null
@@ -1,47 +0,0 @@
1/*
2 * Copyright (C) 2014 STMicroelectronics Limited.
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 * publishhed by the Free Software Foundation.
7 */
8/ {
9 #address-cells = <1>;
10 #size-cells = <1>;
11
12 cpus {
13 #address-cells = <1>;
14 #size-cells = <0>;
15 cpu@0 {
16 device_type = "cpu";
17 compatible = "arm,cortex-a9";
18 reg = <0>;
19 };
20 cpu@1 {
21 device_type = "cpu";
22 compatible = "arm,cortex-a9";
23 reg = <1>;
24 };
25 };
26
27 intc: interrupt-controller@fffe1000 {
28 compatible = "arm,cortex-a9-gic";
29 #interrupt-cells = <3>;
30 interrupt-controller;
31 reg = <0xfffe1000 0x1000>,
32 <0xfffe0100 0x100>;
33 };
34
35 scu@fffe0000 {
36 compatible = "arm,cortex-a9-scu";
37 reg = <0xfffe0000 0x1000>;
38 };
39
40 timer@fffe0200 {
41 interrupt-parent = <&intc>;
42 compatible = "arm,cortex-a9-global-timer";
43 reg = <0xfffe0200 0x100>;
44 interrupts = <1 11 0x04>;
45 clocks = <&arm_periph_clk>;
46 };
47};
diff --git a/arch/arm/boot/dts/stihxxx-b2120.dtsi b/arch/arm/boot/dts/stihxxx-b2120.dtsi
index ed2b7a99ecff..4b8f62f89664 100644
--- a/arch/arm/boot/dts/stihxxx-b2120.dtsi
+++ b/arch/arm/boot/dts/stihxxx-b2120.dtsi
@@ -135,6 +135,10 @@
135 }; 135 };
136 }; 136 };
137 137
138 sti_uni_player0: sti-uni-player@8d80000 {
139 status = "okay";
140 };
141
138 sti_uni_player2: sti-uni-player@8d82000 { 142 sti_uni_player2: sti-uni-player@8d82000 {
139 status = "okay"; 143 status = "okay";
140 }; 144 };
@@ -151,13 +155,26 @@
151 155
152 sound { 156 sound {
153 compatible = "simple-audio-card"; 157 compatible = "simple-audio-card";
154 simple-audio-card,name = "sti audio card"; 158 simple-audio-card,name = "STI-B2120";
155 status = "okay"; 159 status = "okay";
156 160
157 simple-audio-card,dai-link@0 { 161 simple-audio-card,dai-link@0 {
162 /* HDMI */
163 format = "i2s";
164 mclk-fs = <128>;
165 cpu {
166 sound-dai = <&sti_uni_player0>;
167 };
168
169 codec {
170 sound-dai = <&sti_hdmi>;
171 };
172 };
173 simple-audio-card,dai-link@1 {
158 /* DAC */ 174 /* DAC */
159 format = "i2s"; 175 format = "i2s";
160 mclk-fs = <256>; 176 mclk-fs = <256>;
177 frame-inversion = <1>;
161 cpu { 178 cpu {
162 sound-dai = <&sti_uni_player2>; 179 sound-dai = <&sti_uni_player2>;
163 }; 180 };
@@ -166,7 +183,7 @@
166 sound-dai = <&sti_sasg_codec 1>; 183 sound-dai = <&sti_sasg_codec 1>;
167 }; 184 };
168 }; 185 };
169 simple-audio-card,dai-link@1 { 186 simple-audio-card,dai-link@2 {
170 /* SPDIF */ 187 /* SPDIF */
171 format = "left_j"; 188 format = "left_j";
172 mclk-fs = <128>; 189 mclk-fs = <128>;
diff --git a/arch/arm/boot/dts/stm32429i-eval.dts b/arch/arm/boot/dts/stm32429i-eval.dts
index 6bfc5959dac3..5436e880e28f 100644
--- a/arch/arm/boot/dts/stm32429i-eval.dts
+++ b/arch/arm/boot/dts/stm32429i-eval.dts
@@ -47,6 +47,7 @@
47 47
48/dts-v1/; 48/dts-v1/;
49#include "stm32f429.dtsi" 49#include "stm32f429.dtsi"
50#include <dt-bindings/input/input.h>
50 51
51/ { 52/ {
52 model = "STMicroelectronics STM32429i-EVAL board"; 53 model = "STMicroelectronics STM32429i-EVAL board";
@@ -65,6 +66,10 @@
65 serial0 = &usart1; 66 serial0 = &usart1;
66 }; 67 };
67 68
69 soc {
70 dma-ranges = <0xc0000000 0x0 0x10000000>;
71 };
72
68 leds { 73 leds {
69 compatible = "gpio-leds"; 74 compatible = "gpio-leds";
70 green { 75 green {
@@ -82,6 +87,23 @@
82 }; 87 };
83 }; 88 };
84 89
90 gpio_keys {
91 compatible = "gpio-keys";
92 #address-cells = <1>;
93 #size-cells = <0>;
94 autorepeat;
95 button@0 {
96 label = "Wake up";
97 linux,code = <KEY_WAKEUP>;
98 gpios = <&gpioa 0 0>;
99 };
100 button@1 {
101 label = "Tamper";
102 linux,code = <KEY_RESTART>;
103 gpios = <&gpioc 13 0>;
104 };
105 };
106
85 usbotg_hs_phy: usbphy { 107 usbotg_hs_phy: usbphy {
86 #phy-cells = <0>; 108 #phy-cells = <0>;
87 compatible = "usb-nop-xceiv"; 109 compatible = "usb-nop-xceiv";
@@ -94,11 +116,12 @@
94 clock-frequency = <25000000>; 116 clock-frequency = <25000000>;
95}; 117};
96 118
97&ethernet0 { 119&mac {
98 status = "okay"; 120 status = "okay";
99 pinctrl-0 = <&ethernet0_mii>; 121 pinctrl-0 = <&ethernet_mii>;
100 pinctrl-names = "default"; 122 pinctrl-names = "default";
101 phy-mode = "mii-id"; 123 phy-mode = "mii";
124 phy-handle = <&phy1>;
102 mdio0 { 125 mdio0 {
103 #address-cells = <1>; 126 #address-cells = <1>;
104 #size-cells = <0>; 127 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/stm32746g-eval.dts b/arch/arm/boot/dts/stm32746g-eval.dts
new file mode 100644
index 000000000000..aa03fac1ec55
--- /dev/null
+++ b/arch/arm/boot/dts/stm32746g-eval.dts
@@ -0,0 +1,96 @@
1/*
2 * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@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 "stm32f746.dtsi"
45#include <dt-bindings/input/input.h>
46
47/ {
48 model = "STMicroelectronics STM32746g-EVAL board";
49 compatible = "st,stm32746g-eval", "st,stm32f746";
50
51 chosen {
52 bootargs = "root=/dev/ram";
53 stdout-path = "serial0:115200n8";
54 };
55
56 memory {
57 reg = <0xc0000000 0x2000000>;
58 };
59
60 aliases {
61 serial0 = &usart1;
62 };
63
64 leds {
65 compatible = "gpio-leds";
66 green {
67 gpios = <&gpiof 10 1>;
68 linux,default-trigger = "heartbeat";
69 };
70 red {
71 gpios = <&gpiob 7 1>;
72 };
73 };
74
75 gpio_keys {
76 compatible = "gpio-keys";
77 #address-cells = <1>;
78 #size-cells = <0>;
79 autorepeat;
80 button@0 {
81 label = "Wake up";
82 linux,code = <KEY_WAKEUP>;
83 gpios = <&gpioc 13 0>;
84 };
85 };
86};
87
88&clk_hse {
89 clock-frequency = <25000000>;
90};
91
92&usart1 {
93 pinctrl-0 = <&usart1_pins_a>;
94 pinctrl-names = "default";
95 status = "okay";
96};
diff --git a/arch/arm/boot/dts/stm32f429-disco.dts b/arch/arm/boot/dts/stm32f429-disco.dts
index 01408073dd53..7d0415e80668 100644
--- a/arch/arm/boot/dts/stm32f429-disco.dts
+++ b/arch/arm/boot/dts/stm32f429-disco.dts
@@ -47,6 +47,7 @@
47 47
48/dts-v1/; 48/dts-v1/;
49#include "stm32f429.dtsi" 49#include "stm32f429.dtsi"
50#include <dt-bindings/input/input.h>
50 51
51/ { 52/ {
52 model = "STMicroelectronics STM32F429i-DISCO board"; 53 model = "STMicroelectronics STM32F429i-DISCO board";
@@ -75,6 +76,18 @@
75 linux,default-trigger = "heartbeat"; 76 linux,default-trigger = "heartbeat";
76 }; 77 };
77 }; 78 };
79
80 gpio_keys {
81 compatible = "gpio-keys";
82 #address-cells = <1>;
83 #size-cells = <0>;
84 autorepeat;
85 button@0 {
86 label = "User";
87 linux,code = <KEY_HOME>;
88 gpios = <&gpioa 0 0>;
89 };
90 };
78}; 91};
79 92
80&clk_hse { 93&clk_hse {
diff --git a/arch/arm/boot/dts/stm32f429.dtsi b/arch/arm/boot/dts/stm32f429.dtsi
index 336ee4fb587d..e4dae0eda3cd 100644
--- a/arch/arm/boot/dts/stm32f429.dtsi
+++ b/arch/arm/boot/dts/stm32f429.dtsi
@@ -56,11 +56,21 @@
56 compatible = "fixed-clock"; 56 compatible = "fixed-clock";
57 clock-frequency = <0>; 57 clock-frequency = <0>;
58 }; 58 };
59
60 clk-lse {
61 #clock-cells = <0>;
62 compatible = "fixed-clock";
63 clock-frequency = <32768>;
64 };
65
66 clk-lsi {
67 #clock-cells = <0>;
68 compatible = "fixed-clock";
69 clock-frequency = <32000>;
70 };
59 }; 71 };
60 72
61 soc { 73 soc {
62 dma-ranges = <0xc0000000 0x0 0x10000000>;
63
64 timer2: timer@40000000 { 74 timer2: timer@40000000 {
65 compatible = "st,stm32-timer"; 75 compatible = "st,stm32-timer";
66 reg = <0x40000000 0x400>; 76 reg = <0x40000000 0x400>;
@@ -122,6 +132,9 @@
122 interrupts = <39>; 132 interrupts = <39>;
123 clocks = <&rcc 0 146>; 133 clocks = <&rcc 0 146>;
124 status = "disabled"; 134 status = "disabled";
135 dmas = <&dma1 1 4 0x400 0x0>,
136 <&dma1 3 4 0x400 0x0>;
137 dma-names = "rx", "tx";
125 }; 138 };
126 139
127 usart4: serial@40004c00 { 140 usart4: serial@40004c00 {
@@ -162,6 +175,9 @@
162 interrupts = <37>; 175 interrupts = <37>;
163 clocks = <&rcc 0 164>; 176 clocks = <&rcc 0 164>;
164 status = "disabled"; 177 status = "disabled";
178 dmas = <&dma2 2 4 0x400 0x0>,
179 <&dma2 7 4 0x400 0x0>;
180 dma-names = "rx", "tx";
165 }; 181 };
166 182
167 usart6: serial@40011400 { 183 usart6: serial@40011400 {
@@ -185,11 +201,18 @@
185 interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>; 201 interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
186 }; 202 };
187 203
204 pwrcfg: power-config@40007000 {
205 compatible = "syscon";
206 reg = <0x40007000 0x400>;
207 };
208
188 pin-controller { 209 pin-controller {
189 #address-cells = <1>; 210 #address-cells = <1>;
190 #size-cells = <1>; 211 #size-cells = <1>;
191 compatible = "st,stm32f429-pinctrl"; 212 compatible = "st,stm32f429-pinctrl";
192 ranges = <0 0x40020000 0x3000>; 213 ranges = <0 0x40020000 0x3000>;
214 interrupt-parent = <&exti>;
215 st,syscfg = <&syscfg 0x8>;
193 pins-are-numbered; 216 pins-are-numbered;
194 217
195 gpioa: gpio@40020000 { 218 gpioa: gpio@40020000 {
@@ -313,7 +336,7 @@
313 }; 336 };
314 }; 337 };
315 338
316 ethernet0_mii: mii@0 { 339 ethernet_mii: mii@0 {
317 pins { 340 pins {
318 pinmux = <STM32F429_PG13_FUNC_ETH_MII_TXD0_ETH_RMII_TXD0>, 341 pinmux = <STM32F429_PG13_FUNC_ETH_MII_TXD0_ETH_RMII_TXD0>,
319 <STM32F429_PG14_FUNC_ETH_MII_TXD1_ETH_RMII_TXD1>, 342 <STM32F429_PG14_FUNC_ETH_MII_TXD1_ETH_RMII_TXD1>,
@@ -340,6 +363,7 @@
340 compatible = "st,stm32f42xx-rcc", "st,stm32-rcc"; 363 compatible = "st,stm32f42xx-rcc", "st,stm32-rcc";
341 reg = <0x40023800 0x400>; 364 reg = <0x40023800 0x400>;
342 clocks = <&clk_hse>; 365 clocks = <&clk_hse>;
366 st,syscfg = <&pwrcfg>;
343 }; 367 };
344 368
345 dma1: dma-controller@40026000 { 369 dma1: dma-controller@40026000 {
@@ -373,24 +397,22 @@
373 st,mem2mem; 397 st,mem2mem;
374 }; 398 };
375 399
376 ethernet0: dwmac@40028000 { 400 mac: ethernet@40028000 {
377 compatible = "st,stm32-dwmac", "snps,dwmac-3.50a"; 401 compatible = "st,stm32-dwmac", "snps,dwmac-3.50a";
378 reg = <0x40028000 0x8000>; 402 reg = <0x40028000 0x8000>;
379 reg-names = "stmmaceth"; 403 reg-names = "stmmaceth";
380 interrupts = <61>, <62>; 404 interrupts = <61>;
381 interrupt-names = "macirq", "eth_wake_irq"; 405 interrupt-names = "macirq";
382 clock-names = "stmmaceth", "tx-clk", "rx-clk"; 406 clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
383 clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>; 407 clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>;
384 st,syscon = <&syscfg 0x4>; 408 st,syscon = <&syscfg 0x4>;
385 snps,pbl = <8>; 409 snps,pbl = <8>;
386 snps,mixed-burst; 410 snps,mixed-burst;
387 dma-ranges;
388 status = "disabled"; 411 status = "disabled";
389 }; 412 };
390 413
391 usbotg_hs: usb@40040000 { 414 usbotg_hs: usb@40040000 {
392 compatible = "snps,dwc2"; 415 compatible = "snps,dwc2";
393 dma-ranges;
394 reg = <0x40040000 0x40000>; 416 reg = <0x40040000 0x40000>;
395 interrupts = <77>; 417 interrupts = <77>;
396 clocks = <&rcc 0 29>; 418 clocks = <&rcc 0 29>;
diff --git a/arch/arm/boot/dts/stm32f469-disco.dts b/arch/arm/boot/dts/stm32f469-disco.dts
index e911af836471..8877c00ce8e8 100644
--- a/arch/arm/boot/dts/stm32f469-disco.dts
+++ b/arch/arm/boot/dts/stm32f469-disco.dts
@@ -64,6 +64,14 @@
64 aliases { 64 aliases {
65 serial0 = &usart3; 65 serial0 = &usart3;
66 }; 66 };
67
68 soc {
69 dma-ranges = <0xc0000000 0x0 0x10000000>;
70 };
71};
72
73&rcc {
74 compatible = "st,stm32f469-rcc", "st,stm32f42xx-rcc", "st,stm32-rcc";
67}; 75};
68 76
69&clk_hse { 77&clk_hse {
diff --git a/arch/arm/boot/dts/stm32f746.dtsi b/arch/arm/boot/dts/stm32f746.dtsi
new file mode 100644
index 000000000000..f321ffe87144
--- /dev/null
+++ b/arch/arm/boot/dts/stm32f746.dtsi
@@ -0,0 +1,304 @@
1/*
2 * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@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#include "armv7-m.dtsi"
45#include <dt-bindings/pinctrl/stm32f746-pinfunc.h>
46
47/ {
48 clocks {
49 clk_hse: clk-hse {
50 #clock-cells = <0>;
51 compatible = "fixed-clock";
52 clock-frequency = <0>;
53 };
54 };
55
56 soc {
57 timer2: timer@40000000 {
58 compatible = "st,stm32-timer";
59 reg = <0x40000000 0x400>;
60 interrupts = <28>;
61 clocks = <&rcc 0 128>;
62 status = "disabled";
63 };
64
65 timer3: timer@40000400 {
66 compatible = "st,stm32-timer";
67 reg = <0x40000400 0x400>;
68 interrupts = <29>;
69 clocks = <&rcc 0 129>;
70 status = "disabled";
71 };
72
73 timer4: timer@40000800 {
74 compatible = "st,stm32-timer";
75 reg = <0x40000800 0x400>;
76 interrupts = <30>;
77 clocks = <&rcc 0 130>;
78 status = "disabled";
79 };
80
81 timer5: timer@40000c00 {
82 compatible = "st,stm32-timer";
83 reg = <0x40000c00 0x400>;
84 interrupts = <50>;
85 clocks = <&rcc 0 131>;
86 };
87
88 timer6: timer@40001000 {
89 compatible = "st,stm32-timer";
90 reg = <0x40001000 0x400>;
91 interrupts = <54>;
92 clocks = <&rcc 0 132>;
93 status = "disabled";
94 };
95
96 timer7: timer@40001400 {
97 compatible = "st,stm32-timer";
98 reg = <0x40001400 0x400>;
99 interrupts = <55>;
100 clocks = <&rcc 0 133>;
101 status = "disabled";
102 };
103
104 usart2: serial@40004400 {
105 compatible = "st,stm32f7-usart", "st,stm32f7-uart";
106 reg = <0x40004400 0x400>;
107 interrupts = <38>;
108 clocks = <&rcc 0 145>;
109 status = "disabled";
110 };
111
112 usart3: serial@40004800 {
113 compatible = "st,stm32f7-usart", "st,stm32f7-uart";
114 reg = <0x40004800 0x400>;
115 interrupts = <39>;
116 clocks = <&rcc 0 146>;
117 status = "disabled";
118 };
119
120 usart4: serial@40004c00 {
121 compatible = "st,stm32f7-uart";
122 reg = <0x40004c00 0x400>;
123 interrupts = <52>;
124 clocks = <&rcc 0 147>;
125 status = "disabled";
126 };
127
128 usart5: serial@40005000 {
129 compatible = "st,stm32f7-uart";
130 reg = <0x40005000 0x400>;
131 interrupts = <53>;
132 clocks = <&rcc 0 148>;
133 status = "disabled";
134 };
135
136 usart7: serial@40007800 {
137 compatible = "st,stm32f7-usart", "st,stm32f7-uart";
138 reg = <0x40007800 0x400>;
139 interrupts = <82>;
140 clocks = <&rcc 0 158>;
141 status = "disabled";
142 };
143
144 usart8: serial@40007c00 {
145 compatible = "st,stm32f7-usart", "st,stm32f7-uart";
146 reg = <0x40007c00 0x400>;
147 interrupts = <83>;
148 clocks = <&rcc 0 159>;
149 status = "disabled";
150 };
151
152 usart1: serial@40011000 {
153 compatible = "st,stm32f7-usart", "st,stm32f7-uart";
154 reg = <0x40011000 0x400>;
155 interrupts = <37>;
156 clocks = <&rcc 0 164>;
157 status = "disabled";
158 };
159
160 usart6: serial@40011400 {
161 compatible = "st,stm32f7-usart", "st,stm32f7-uart";
162 reg = <0x40011400 0x400>;
163 interrupts = <71>;
164 clocks = <&rcc 0 165>;
165 status = "disabled";
166 };
167
168 syscfg: system-config@40013800 {
169 compatible = "syscon";
170 reg = <0x40013800 0x400>;
171 };
172
173 exti: interrupt-controller@40013c00 {
174 compatible = "st,stm32-exti";
175 interrupt-controller;
176 #interrupt-cells = <2>;
177 reg = <0x40013C00 0x400>;
178 interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
179 };
180
181 pin-controller {
182 #address-cells = <1>;
183 #size-cells = <1>;
184 compatible = "st,stm32f746-pinctrl";
185 ranges = <0 0x40020000 0x3000>;
186 interrupt-parent = <&exti>;
187 st,syscfg = <&syscfg 0x8>;
188 pins-are-numbered;
189
190 gpioa: gpio@40020000 {
191 gpio-controller;
192 #gpio-cells = <2>;
193 reg = <0x0 0x400>;
194 clocks = <&rcc 0 256>;
195 st,bank-name = "GPIOA";
196 };
197
198 gpiob: gpio@40020400 {
199 gpio-controller;
200 #gpio-cells = <2>;
201 reg = <0x400 0x400>;
202 clocks = <&rcc 0 257>;
203 st,bank-name = "GPIOB";
204 };
205
206 gpioc: gpio@40020800 {
207 gpio-controller;
208 #gpio-cells = <2>;
209 reg = <0x800 0x400>;
210 clocks = <&rcc 0 258>;
211 st,bank-name = "GPIOC";
212 };
213
214 gpiod: gpio@40020c00 {
215 gpio-controller;
216 #gpio-cells = <2>;
217 reg = <0xc00 0x400>;
218 clocks = <&rcc 0 259>;
219 st,bank-name = "GPIOD";
220 };
221
222 gpioe: gpio@40021000 {
223 gpio-controller;
224 #gpio-cells = <2>;
225 reg = <0x1000 0x400>;
226 clocks = <&rcc 0 260>;
227 st,bank-name = "GPIOE";
228 };
229
230 gpiof: gpio@40021400 {
231 gpio-controller;
232 #gpio-cells = <2>;
233 reg = <0x1400 0x400>;
234 clocks = <&rcc 0 261>;
235 st,bank-name = "GPIOF";
236 };
237
238 gpiog: gpio@40021800 {
239 gpio-controller;
240 #gpio-cells = <2>;
241 reg = <0x1800 0x400>;
242 clocks = <&rcc 0 262>;
243 st,bank-name = "GPIOG";
244 };
245
246 gpioh: gpio@40021c00 {
247 gpio-controller;
248 #gpio-cells = <2>;
249 reg = <0x1c00 0x400>;
250 clocks = <&rcc 0 263>;
251 st,bank-name = "GPIOH";
252 };
253
254 gpioi: gpio@40022000 {
255 gpio-controller;
256 #gpio-cells = <2>;
257 reg = <0x2000 0x400>;
258 clocks = <&rcc 0 264>;
259 st,bank-name = "GPIOI";
260 };
261
262 gpioj: gpio@40022400 {
263 gpio-controller;
264 #gpio-cells = <2>;
265 reg = <0x2400 0x400>;
266 clocks = <&rcc 0 265>;
267 st,bank-name = "GPIOJ";
268 };
269
270 gpiok: gpio@40022800 {
271 gpio-controller;
272 #gpio-cells = <2>;
273 reg = <0x2800 0x400>;
274 clocks = <&rcc 0 266>;
275 st,bank-name = "GPIOK";
276 };
277
278 usart1_pins_a: usart1@0 {
279 pins1 {
280 pinmux = <STM32F746_PA9_FUNC_USART1_TX>;
281 bias-disable;
282 drive-push-pull;
283 slew-rate = <0>;
284 };
285 pins2 {
286 pinmux = <STM32F746_PA10_FUNC_USART1_RX>;
287 bias-disable;
288 };
289 };
290 };
291
292 rcc: rcc@40023800 {
293 #clock-cells = <2>;
294 compatible = "st,stm32f42xx-rcc", "st,stm32-rcc";
295 reg = <0x40023800 0x400>;
296 clocks = <&clk_hse>;
297 };
298 };
299};
300
301&systick {
302 clocks = <&rcc 1 0>;
303 status = "okay";
304};
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
index 7e7dfc2b43db..b14a4281058d 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -967,7 +967,8 @@
967 compatible = "allwinner,sun4i-a10-pinctrl"; 967 compatible = "allwinner,sun4i-a10-pinctrl";
968 reg = <0x01c20800 0x400>; 968 reg = <0x01c20800 0x400>;
969 interrupts = <28>; 969 interrupts = <28>;
970 clocks = <&apb0_gates 5>; 970 clocks = <&apb0_gates 5>, <&osc24M>, <&osc32k>;
971 clock-names = "apb", "hosc", "losc";
971 gpio-controller; 972 gpio-controller;
972 interrupt-controller; 973 interrupt-controller;
973 #interrupt-cells = <3>; 974 #interrupt-cells = <3>;
diff --git a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
index aef91476f9ae..0684d7930d65 100644
--- a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
@@ -250,8 +250,8 @@
250 250
251&spi2 { 251&spi2 {
252 pinctrl-names = "default"; 252 pinctrl-names = "default";
253 pinctrl-0 = <&spi2_pins_a>, 253 pinctrl-0 = <&spi2_pins_b>,
254 <&spi2_cs0_pins_a>; 254 <&spi2_cs0_pins_b>;
255 status = "okay"; 255 status = "okay";
256}; 256};
257 257
diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
index c41a2ba34dde..7aa8c7aa0153 100644
--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
+++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
@@ -243,14 +243,14 @@
243 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 243 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
244 }; 244 };
245 245
246 spi2_pins_a: spi2@0 { 246 spi2_pins_b: spi2@1 {
247 allwinner,pins = "PB12", "PB13", "PB14"; 247 allwinner,pins = "PB12", "PB13", "PB14";
248 allwinner,function = "spi2"; 248 allwinner,function = "spi2";
249 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 249 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
250 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 250 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
251 }; 251 };
252 252
253 spi2_cs0_pins_a: spi2_cs0@0 { 253 spi2_cs0_pins_b: spi2_cs0@1 {
254 allwinner,pins = "PB11"; 254 allwinner,pins = "PB11";
255 allwinner,function = "spi2"; 255 allwinner,function = "spi2";
256 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 256 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
index b3c234c65ea1..bb7210e0e4a9 100644
--- a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
+++ b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
@@ -72,6 +72,47 @@
72 default-state = "on"; 72 default-state = "on";
73 }; 73 };
74 }; 74 };
75
76 bridge {
77 compatible = "dumb-vga-dac";
78 #address-cells = <1>;
79 #size-cells = <0>;
80
81 ports {
82 #address-cells = <1>;
83 #size-cells = <0>;
84
85 port@0 {
86 reg = <0>;
87
88 vga_bridge_in: endpoint {
89 remote-endpoint = <&tcon0_out_vga>;
90 };
91 };
92
93 port@1 {
94 reg = <1>;
95
96 vga_bridge_out: endpoint {
97 remote-endpoint = <&vga_con_in>;
98 };
99 };
100 };
101 };
102
103 vga {
104 compatible = "vga-connector";
105
106 port {
107 vga_con_in: endpoint {
108 remote-endpoint = <&vga_bridge_out>;
109 };
110 };
111 };
112};
113
114&be0 {
115 status = "okay";
75}; 116};
76 117
77&ehci0 { 118&ehci0 {
@@ -211,6 +252,19 @@
211 status = "okay"; 252 status = "okay";
212}; 253};
213 254
255&tcon0 {
256 pinctrl-names = "default";
257 pinctrl-0 = <&lcd_rgb666_pins>;
258 status = "okay";
259};
260
261&tcon0_out {
262 tcon0_out_vga: endpoint@0 {
263 reg = <0>;
264 remote-endpoint = <&vga_bridge_in>;
265 };
266};
267
214&uart1 { 268&uart1 {
215 pinctrl-names = "default"; 269 pinctrl-names = "default";
216 pinctrl-0 = <&uart1_pins_b>; 270 pinctrl-0 = <&uart1_pins_b>;
diff --git a/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts b/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
index a8b0bcc04514..3d7ff10a48e9 100644
--- a/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
+++ b/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
@@ -83,22 +83,6 @@
83 allwinner,pins = "PG3"; 83 allwinner,pins = "PG3";
84}; 84};
85 85
86&i2c1 {
87 icn8318: touchscreen@40 {
88 compatible = "chipone,icn8318";
89 reg = <0x40>;
90 interrupt-parent = <&pio>;
91 interrupts = <6 9 IRQ_TYPE_EDGE_FALLING>; /* EINT9 (PG9) */
92 pinctrl-names = "default";
93 pinctrl-0 = <&ts_wake_pin_p66>;
94 wake-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
95 touchscreen-size-x = <800>;
96 touchscreen-size-y = <480>;
97 touchscreen-inverted-x;
98 touchscreen-swapped-x-y;
99 };
100};
101
102&mmc2 { 86&mmc2 {
103 pinctrl-names = "default"; 87 pinctrl-names = "default";
104 pinctrl-0 = <&mmc2_pins_a>; 88 pinctrl-0 = <&mmc2_pins_a>;
@@ -121,20 +105,26 @@
121 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 105 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
122 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 106 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
123 }; 107 };
124
125 ts_wake_pin_p66: ts_wake_pin@0 {
126 allwinner,pins = "PB3";
127 allwinner,function = "gpio_out";
128 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
129 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
130 };
131
132}; 108};
133 109
134&reg_usb0_vbus { 110&reg_usb0_vbus {
135 gpio = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */ 111 gpio = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
136}; 112};
137 113
114&touchscreen {
115 compatible = "chipone,icn8318";
116 reg = <0x40>;
117 /* The P66 uses a different EINT then the reference design */
118 interrupts = <6 9 IRQ_TYPE_EDGE_FALLING>; /* EINT9 (PG9) */
119 /* The icn8318 binding expects wake-gpios instead of power-gpios */
120 wake-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
121 touchscreen-size-x = <800>;
122 touchscreen-size-y = <480>;
123 touchscreen-inverted-x;
124 touchscreen-swapped-x-y;
125 status = "okay";
126};
127
138&uart1 { 128&uart1 {
139 /* The P66 uses the uart pins as gpios */ 129 /* The P66 uses the uart pins as gpios */
140 status = "disabled"; 130 status = "disabled";
diff --git a/arch/arm/boot/dts/sun5i-gr8-chip-pro.dts b/arch/arm/boot/dts/sun5i-gr8-chip-pro.dts
new file mode 100644
index 000000000000..92a2dc6250a5
--- /dev/null
+++ b/arch/arm/boot/dts/sun5i-gr8-chip-pro.dts
@@ -0,0 +1,266 @@
1/*
2 * Copyright 2016 Free Electrons
3 * Copyright 2016 NextThing Co
4 *
5 * Maxime Ripard <maxime.ripard@free-electrons.com>
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 * a) This file is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License as
14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version.
16 *
17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * Or, alternatively,
23 *
24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following
31 * conditions:
32 *
33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software.
35 *
36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE.
44 */
45
46/dts-v1/;
47#include "sun5i-gr8.dtsi"
48#include "sunxi-common-regulators.dtsi"
49
50#include <dt-bindings/gpio/gpio.h>
51#include <dt-bindings/input/input.h>
52#include <dt-bindings/interrupt-controller/irq.h>
53
54/ {
55 model = "NextThing C.H.I.P. Pro";
56 compatible = "nextthing,chip-pro", "nextthing,gr8";
57
58 aliases {
59 i2c0 = &i2c0;
60 i2c1 = &i2c1;
61 serial0 = &uart1;
62 serial1 = &uart2;
63 serial2 = &uart3;
64 };
65
66 chosen {
67 stdout-path = "serial0:115200n8";
68 };
69
70 leds {
71 compatible = "gpio-leds";
72
73 status {
74 label = "chip-pro:white:status";
75 gpios = <&axp_gpio 2 GPIO_ACTIVE_HIGH>;
76 default-state = "on";
77 };
78 };
79
80 mmc0_pwrseq: mmc0_pwrseq {
81 compatible = "mmc-pwrseq-simple";
82 pinctrl-names = "default";
83 pinctrl-0 = <&wifi_reg_on_pin_chip_pro>;
84 reset-gpios = <&pio 1 10 GPIO_ACTIVE_LOW>; /* PB10 */
85 };
86};
87
88&codec {
89 status = "okay";
90};
91
92&ehci0 {
93 status = "okay";
94};
95
96&i2c0 {
97 pinctrl-names = "default";
98 pinctrl-0 = <&i2c0_pins_a>;
99 status = "okay";
100
101 axp209: pmic@34 {
102 reg = <0x34>;
103
104 /*
105 * The interrupt is routed through the "External Fast
106 * Interrupt Request" pin (ball G13 of the module)
107 * directly to the main interrupt controller, without
108 * any other controller interfering.
109 */
110 interrupts = <0>;
111 };
112};
113
114#include "axp209.dtsi"
115
116&i2c1 {
117 pinctrl-names = "default";
118 pinctrl-0 = <&i2c1_pins_a>;
119 status = "disabled";
120};
121
122&i2s0 {
123 pinctrl-names = "default";
124 pinctrl-0 = <&i2s0_mclk_pins_a>, <&i2s0_data_pins_a>;
125 status = "disabled";
126};
127
128&mmc0 {
129 pinctrl-names = "default";
130 pinctrl-0 = <&mmc0_pins_a>;
131 vmmc-supply = <&reg_vcc3v3>;
132 mmc-pwrseq = <&mmc0_pwrseq>;
133 bus-width = <4>;
134 non-removable;
135 status = "okay";
136};
137
138&nfc {
139 pinctrl-names = "default";
140 pinctrl-0 = <&nand_pins_a &nand_cs0_pins_a &nand_rb0_pins_a>;
141 status = "okay";
142
143 nand@0 {
144 #address-cells = <2>;
145 #size-cells = <2>;
146 reg = <0>;
147 allwinner,rb = <0>;
148 nand-ecc-mode = "hw";
149 };
150};
151
152&ohci0 {
153 status = "okay";
154};
155
156&otg_sram {
157 status = "okay";
158};
159
160&pio {
161 usb0_id_pin_chip_pro: usb0-id-pin@0 {
162 allwinner,pins = "PG2";
163 allwinner,function = "gpio_in";
164 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
165 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
166 };
167
168 wifi_reg_on_pin_chip_pro: wifi-reg-on-pin@0 {
169 allwinner,pins = "PB10";
170 allwinner,function = "gpio_out";
171 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
172 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
173 };
174};
175
176&pwm {
177 pinctrl-names = "default";
178 pinctrl-0 = <&pwm0_pins_a>, <&pwm1_pins>;
179 status = "disabled";
180};
181
182&reg_dcdc2 {
183 regulator-min-microvolt = <1000000>;
184 regulator-max-microvolt = <1400000>;
185 regulator-name = "vdd-cpu";
186 regulator-always-on;
187};
188
189&reg_dcdc3 {
190 regulator-min-microvolt = <1000000>;
191 regulator-max-microvolt = <1300000>;
192 regulator-name = "vdd-sys";
193 regulator-always-on;
194};
195
196&reg_ldo1 {
197 regulator-name = "vdd-rtc";
198};
199
200&reg_ldo2 {
201 regulator-min-microvolt = <2700000>;
202 regulator-max-microvolt = <3300000>;
203 regulator-name = "avcc";
204 regulator-always-on;
205};
206
207/*
208 * Both LDO3 and LDO4 are used in parallel to power up the
209 * WiFi/BT chip.
210 */
211&reg_ldo3 {
212 regulator-min-microvolt = <3300000>;
213 regulator-max-microvolt = <3300000>;
214 regulator-name = "vcc-wifi-1";
215 regulator-always-on;
216};
217
218&reg_ldo4 {
219 regulator-min-microvolt = <3300000>;
220 regulator-max-microvolt = <3300000>;
221 regulator-name = "vcc-wifi-2";
222 regulator-always-on;
223};
224
225&uart1 {
226 pinctrl-names = "default";
227 pinctrl-0 = <&uart1_pins_a>, <&uart1_cts_rts_pins_a>;
228 status = "okay";
229};
230
231&uart2 {
232 pinctrl-names = "default";
233 pinctrl-0 = <&uart2_pins_a>, <&uart2_cts_rts_pins_a>;
234 status = "disabled";
235};
236
237&uart3 {
238 pinctrl-names = "default";
239 pinctrl-0 = <&uart3_pins_a>, <&uart3_cts_rts_pins_a>;
240 status = "okay";
241};
242
243&usb_otg {
244 /*
245 * The CHIP Pro doesn't have a controllable VBUS, nor does it
246 * have any 5v rail on the board itself.
247 *
248 * If one wants to use it as a true OTG port, it should be
249 * done in the baseboard, and its DT / overlay will add it.
250 */
251 dr_mode = "otg";
252 status = "okay";
253};
254
255&usb_power_supply {
256 status = "okay";
257};
258
259&usbphy {
260 pinctrl-names = "default";
261 pinctrl-0 = <&usb0_id_pin_chip_pro>;
262 usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
263 usb0_vbus_power-supply = <&usb_power_supply>;
264 usb1_vbus-supply = <&reg_vcc5v0>;
265 status = "okay";
266};
diff --git a/arch/arm/boot/dts/sun5i-gr8-evb.dts b/arch/arm/boot/dts/sun5i-gr8-evb.dts
index 714381fd64d7..030605aa8065 100644
--- a/arch/arm/boot/dts/sun5i-gr8-evb.dts
+++ b/arch/arm/boot/dts/sun5i-gr8-evb.dts
@@ -75,6 +75,39 @@
75 brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>; 75 brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
76 default-brightness-level = <8>; 76 default-brightness-level = <8>;
77 }; 77 };
78
79 sound-analog {
80 compatible = "simple-audio-card";
81 simple-audio-card,name = "gr8-evb-wm8978";
82 simple-audio-card,format = "i2s";
83 simple-audio-card,mclk-fs = <512>;
84
85 simple-audio-card,cpu {
86 sound-dai = <&i2s0>;
87 };
88
89 simple-audio-card,codec {
90 sound-dai = <&wm8978>;
91 };
92 };
93
94 sound-spdif {
95 compatible = "simple-audio-card";
96 simple-audio-card,name = "On-board SPDIF";
97
98 simple-audio-card,cpu {
99 sound-dai = <&spdif>;
100 };
101
102 simple-audio-card,codec {
103 sound-dai = <&spdif_out>;
104 };
105 };
106
107 spdif_out: spdif-out {
108 #sound-dai-cells = <0>;
109 compatible = "linux,spdif-dit";
110 };
78}; 111};
79 112
80&be0 { 113&be0 {
diff --git a/arch/arm/boot/dts/sun5i-gr8.dtsi b/arch/arm/boot/dts/sun5i-gr8.dtsi
index ca54e03ef366..ea86d4d58db6 100644
--- a/arch/arm/boot/dts/sun5i-gr8.dtsi
+++ b/arch/arm/boot/dts/sun5i-gr8.dtsi
@@ -792,7 +792,7 @@
792 }; 792 };
793 793
794 i2s0_mclk_pins_a: i2s0-mclk@0 { 794 i2s0_mclk_pins_a: i2s0-mclk@0 {
795 allwinner,pins = "PB6", "PB7", "PB8", "PB9"; 795 allwinner,pins = "PB5";
796 allwinner,function = "i2s0"; 796 allwinner,function = "i2s0";
797 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 797 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
798 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 798 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
@@ -854,6 +854,13 @@
854 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 854 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
855 }; 855 };
856 856
857 pwm1_pins: pwm1 {
858 allwinner,pins = "PG13";
859 allwinner,function = "pwm1";
860 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
861 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
862 };
863
857 spdif_tx_pins_a: spdif@0 { 864 spdif_tx_pins_a: spdif@0 {
858 allwinner,pins = "PB10"; 865 allwinner,pins = "PB10";
859 allwinner,function = "spdif"; 866 allwinner,function = "spdif";
@@ -874,6 +881,34 @@
874 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 881 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
875 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 882 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
876 }; 883 };
884
885 uart2_pins_a: uart2@1 {
886 allwinner,pins = "PD2", "PD3";
887 allwinner,function = "uart2";
888 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
889 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
890 };
891
892 uart2_cts_rts_pins_a: uart2-cts-rts@0 {
893 allwinner,pins = "PD4", "PD5";
894 allwinner,function = "uart2";
895 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
896 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
897 };
898
899 uart3_pins_a: uart3@1 {
900 allwinner,pins = "PG9", "PG10";
901 allwinner,function = "uart3";
902 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
903 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
904 };
905
906 uart3_cts_rts_pins_a: uart3-cts-rts@0 {
907 allwinner,pins = "PG11", "PG12";
908 allwinner,function = "uart3";
909 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
910 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
911 };
877 }; 912 };
878 913
879 pwm: pwm@01c20e00 { 914 pwm: pwm@01c20e00 {
@@ -978,6 +1013,16 @@
978 status = "disabled"; 1013 status = "disabled";
979 }; 1014 };
980 1015
1016 uart3: serial@01c28c00 {
1017 compatible = "snps,dw-apb-uart";
1018 reg = <0x01c28c00 0x400>;
1019 interrupts = <4>;
1020 reg-shift = <2>;
1021 reg-io-width = <4>;
1022 clocks = <&apb1_gates 19>;
1023 status = "disabled";
1024 };
1025
981 i2c0: i2c@01c2ac00 { 1026 i2c0: i2c@01c2ac00 {
982 compatible = "allwinner,sun4i-a10-i2c"; 1027 compatible = "allwinner,sun4i-a10-i2c";
983 reg = <0x01c2ac00 0x400>; 1028 reg = <0x01c2ac00 0x400>;
diff --git a/arch/arm/boot/dts/sun5i-r8-chip.dts b/arch/arm/boot/dts/sun5i-r8-chip.dts
index b68a12374b35..c6da5ad37152 100644
--- a/arch/arm/boot/dts/sun5i-r8-chip.dts
+++ b/arch/arm/boot/dts/sun5i-r8-chip.dts
@@ -56,9 +56,11 @@
56 56
57 aliases { 57 aliases {
58 i2c0 = &i2c0; 58 i2c0 = &i2c0;
59 i2c1 = &i2c1;
59 i2c2 = &i2c2; 60 i2c2 = &i2c2;
60 serial0 = &uart1; 61 serial0 = &uart1;
61 serial1 = &uart3; 62 serial1 = &uart3;
63 spi0 = &spi2;
62 }; 64 };
63 65
64 chosen { 66 chosen {
@@ -74,6 +76,20 @@
74 default-state = "on"; 76 default-state = "on";
75 }; 77 };
76 }; 78 };
79
80 mmc0_pwrseq: mmc0_pwrseq {
81 compatible = "mmc-pwrseq-simple";
82 pinctrl-names = "default";
83 pinctrl-0 = <&chip_wifi_reg_on_pin>;
84 reset-gpios = <&pio 2 19 GPIO_ACTIVE_LOW>; /* PC19 */
85 };
86
87 onewire {
88 compatible = "w1-gpio";
89 gpios = <&pio 3 2 GPIO_ACTIVE_HIGH>; /* PD2 */
90 pinctrl-names = "default";
91 pinctrl-0 = <&chip_w1_pin>;
92 };
77}; 93};
78 94
79&be0 { 95&be0 {
@@ -112,6 +128,12 @@
112 128
113#include "axp209.dtsi" 129#include "axp209.dtsi"
114 130
131&i2c1 {
132 pinctrl-names = "default";
133 pinctrl-0 = <&i2c1_pins_a>;
134 status = "disabled";
135};
136
115&i2c2 { 137&i2c2 {
116 pinctrl-names = "default"; 138 pinctrl-names = "default";
117 pinctrl-0 = <&i2c2_pins_a>; 139 pinctrl-0 = <&i2c2_pins_a>;
@@ -131,10 +153,15 @@
131 }; 153 };
132}; 154};
133 155
156&mmc0_pins_a {
157 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
158};
159
134&mmc0 { 160&mmc0 {
135 pinctrl-names = "default"; 161 pinctrl-names = "default";
136 pinctrl-0 = <&mmc0_pins_a>; 162 pinctrl-0 = <&mmc0_pins_a>;
137 vmmc-supply = <&reg_vcc3v3>; 163 vmmc-supply = <&reg_vcc3v3>;
164 mmc-pwrseq = <&mmc0_pwrseq>;
138 bus-width = <4>; 165 bus-width = <4>;
139 non-removable; 166 non-removable;
140 status = "okay"; 167 status = "okay";
@@ -156,12 +183,26 @@
156 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 183 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
157 }; 184 };
158 185
186 chip_wifi_reg_on_pin: chip_wifi_reg_on_pin@0 {
187 allwinner,pins = "PC19";
188 allwinner,function = "gpio_out";
189 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
190 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
191 };
192
159 chip_id_det_pin: chip_id_det_pin@0 { 193 chip_id_det_pin: chip_id_det_pin@0 {
160 allwinner,pins = "PG2"; 194 allwinner,pins = "PG2";
161 allwinner,function = "gpio_in"; 195 allwinner,function = "gpio_in";
162 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 196 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
163 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 197 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
164 }; 198 };
199
200 chip_w1_pin: chip_w1_pin@0 {
201 allwinner,pins = "PD2";
202 allwinner,function = "gpio_in";
203 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
204 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
205 };
165}; 206};
166 207
167&reg_dcdc2 { 208&reg_dcdc2 {
@@ -189,6 +230,28 @@
189 regulator-always-on; 230 regulator-always-on;
190}; 231};
191 232
233/*
234 * Both LDO3 and LDO4 are used in parallel to power up the WiFi/BT
235 * Chip.
236 *
237 * If those are not enabled, the SDIO part will not enumerate, and
238 * since there's no way currently to pass DT infos to an SDIO device,
239 * we cannot really do better than this ugly hack for now.
240 */
241&reg_ldo3 {
242 regulator-min-microvolt = <3300000>;
243 regulator-max-microvolt = <3300000>;
244 regulator-name = "vcc-wifi-1";
245 regulator-always-on;
246};
247
248&reg_ldo4 {
249 regulator-min-microvolt = <3300000>;
250 regulator-max-microvolt = <3300000>;
251 regulator-name = "vcc-wifi-2";
252 regulator-always-on;
253};
254
192&reg_ldo5 { 255&reg_ldo5 {
193 regulator-min-microvolt = <1800000>; 256 regulator-min-microvolt = <1800000>;
194 regulator-max-microvolt = <1800000>; 257 regulator-max-microvolt = <1800000>;
@@ -202,6 +265,12 @@
202 status = "okay"; 265 status = "okay";
203}; 266};
204 267
268&spi2 {
269 pinctrl-names = "default";
270 pinctrl-0 = <&spi2_pins_a>;
271 status = "disabled";
272};
273
205&tcon0 { 274&tcon0 {
206 status = "okay"; 275 status = "okay";
207}; 276};
diff --git a/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi b/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi
index 20cc940f5f91..82f87cdcd164 100644
--- a/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi
+++ b/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi
@@ -41,6 +41,7 @@
41 */ 41 */
42#include "sunxi-reference-design-tablet.dtsi" 42#include "sunxi-reference-design-tablet.dtsi"
43 43
44#include <dt-bindings/interrupt-controller/irq.h>
44#include <dt-bindings/pwm/pwm.h> 45#include <dt-bindings/pwm/pwm.h>
45 46
46/ { 47/ {
@@ -84,6 +85,23 @@
84}; 85};
85 86
86&i2c1 { 87&i2c1 {
88 /*
89 * The gsl1680 is rated at 400KHz and it will not work reliable at
90 * 100KHz, this has been confirmed on multiple different q8 tablets.
91 * All other devices on this bus are also rated for 400KHz.
92 */
93 clock-frequency = <400000>;
94
95 touchscreen: touchscreen {
96 interrupt-parent = <&pio>;
97 interrupts = <6 11 IRQ_TYPE_EDGE_FALLING>; /* EINT11 (PG11) */
98 pinctrl-names = "default";
99 pinctrl-0 = <&ts_power_pin>;
100 power-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
101 /* Tablet dts must provide reg and compatible */
102 status = "disabled";
103 };
104
87 pcf8563: rtc@51 { 105 pcf8563: rtc@51 {
88 compatible = "nxp,pcf8563"; 106 compatible = "nxp,pcf8563";
89 reg = <0x51>; 107 reg = <0x51>;
@@ -125,6 +143,13 @@
125 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 143 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
126 }; 144 };
127 145
146 ts_power_pin: ts_power_pin {
147 pins = "PB3";
148 function = "gpio_out";
149 drive-strength = <10>;
150 bias-disable;
151 };
152
128 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 { 153 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
129 allwinner,pins = "PG1"; 154 allwinner,pins = "PG1";
130 allwinner,function = "gpio_in"; 155 allwinner,function = "gpio_in";
diff --git a/arch/arm/boot/dts/sun5i.dtsi b/arch/arm/boot/dts/sun5i.dtsi
index e374f4fc8073..b0fca4ef4dae 100644
--- a/arch/arm/boot/dts/sun5i.dtsi
+++ b/arch/arm/boot/dts/sun5i.dtsi
@@ -547,7 +547,8 @@
547 pio: pinctrl@01c20800 { 547 pio: pinctrl@01c20800 {
548 reg = <0x01c20800 0x400>; 548 reg = <0x01c20800 0x400>;
549 interrupts = <28>; 549 interrupts = <28>;
550 clocks = <&apb0_gates 5>; 550 clocks = <&apb0_gates 5>, <&osc24M>, <&osc32k>;
551 clock-names = "apb", "hosc", "losc";
551 gpio-controller; 552 gpio-controller;
552 interrupt-controller; 553 interrupt-controller;
553 #interrupt-cells = <3>; 554 #interrupt-cells = <3>;
@@ -574,6 +575,16 @@
574 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 575 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
575 }; 576 };
576 577
578 lcd_rgb565_pins: lcd_rgb565@0 {
579 allwinner,pins = "PD3", "PD4", "PD5", "PD6", "PD7",
580 "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
581 "PD19", "PD20", "PD21", "PD22", "PD23",
582 "PD24", "PD25", "PD26", "PD27";
583 allwinner,function = "lcd0";
584 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
585 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
586 };
587
577 mmc0_pins_a: mmc0@0 { 588 mmc0_pins_a: mmc0@0 {
578 allwinner,pins = "PF0", "PF1", "PF2", "PF3", 589 allwinner,pins = "PF0", "PF1", "PF2", "PF3",
579 "PF4", "PF5"; 590 "PF4", "PF5";
@@ -591,6 +602,20 @@
591 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 602 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
592 }; 603 };
593 604
605 spi2_pins_a: spi2@0 {
606 allwinner,pins = "PE1", "PE2", "PE3";
607 allwinner,function = "spi2";
608 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
609 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
610 };
611
612 spi2_cs0_pins_a: spi2-cs0@0 {
613 allwinner,pins = "PE0";
614 allwinner,function = "spi2";
615 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
616 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
617 };
618
594 uart3_pins_a: uart3@0 { 619 uart3_pins_a: uart3@0 {
595 allwinner,pins = "PG9", "PG10"; 620 allwinner,pins = "PG9", "PG10";
596 allwinner,function = "uart3"; 621 allwinner,function = "uart3";
diff --git a/arch/arm/boot/dts/sun6i-a31-hummingbird.dts b/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
index 9a74637f677f..735914f6ae44 100644
--- a/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
+++ b/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
@@ -63,12 +63,79 @@
63 stdout-path = "serial0:115200n8"; 63 stdout-path = "serial0:115200n8";
64 }; 64 };
65 65
66 vga-connector {
67 compatible = "vga-connector";
68
69 port {
70 vga_con_in: endpoint {
71 remote-endpoint = <&vga_dac_out>;
72 };
73 };
74 };
75
76 vga-dac {
77 compatible = "dumb-vga-dac";
78 vdd-supply = <&reg_vga_3v3>;
79 #address-cells = <1>;
80 #size-cells = <0>;
81
82 ports {
83 #address-cells = <1>;
84 #size-cells = <0>;
85
86 port@0 {
87 #address-cells = <1>;
88 #size-cells = <0>;
89 reg = <0>;
90
91 vga_dac_in: endpoint@0 {
92 reg = <0>;
93 remote-endpoint = <&tcon0_out_vga>;
94 };
95 };
96
97 port@1 {
98 #address-cells = <1>;
99 #size-cells = <0>;
100 reg = <1>;
101
102 vga_dac_out: endpoint@0 {
103 reg = <0>;
104 remote-endpoint = <&vga_con_in>;
105 };
106 };
107 };
108 };
109
110 reg_vga_3v3: vga_3v3_regulator {
111 compatible = "regulator-fixed";
112 regulator-name = "vga-3v3";
113 regulator-min-microvolt = <3300000>;
114 regulator-max-microvolt = <3300000>;
115 regulator-boot-on;
116 enable-active-high;
117 gpio = <&pio 7 25 GPIO_ACTIVE_HIGH>; /* PH25 */
118 };
119
66 wifi_pwrseq: wifi_pwrseq { 120 wifi_pwrseq: wifi_pwrseq {
67 compatible = "mmc-pwrseq-simple"; 121 compatible = "mmc-pwrseq-simple";
68 reset-gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 */ 122 reset-gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 */
69 }; 123 };
70}; 124};
71 125
126&codec {
127 allwinner,audio-routing =
128 "Headphone", "HP",
129 "Speaker", "LINEOUT",
130 "LINEIN", "Line In",
131 "MIC1", "Mic",
132 "MIC2", "Headset Mic",
133 "Mic", "MBIAS",
134 "Headset Mic", "HBIAS";
135 allwinner,pa-gpios = <&pio 7 22 GPIO_ACTIVE_HIGH>; /* PH22 */
136 status = "okay";
137};
138
72&cpu0 { 139&cpu0 {
73 cpu-supply = <&reg_dcdc3>; 140 cpu-supply = <&reg_dcdc3>;
74}; 141};
@@ -245,6 +312,19 @@
245 status = "okay"; 312 status = "okay";
246}; 313};
247 314
315&tcon0 {
316 pinctrl-names = "default";
317 pinctrl-0 = <&lcd0_rgb888_pins>;
318 status = "okay";
319};
320
321&tcon0_out {
322 tcon0_out_vga: endpoint@0 {
323 reg = <0>;
324 remote-endpoint = <&vga_dac_in>;
325 };
326};
327
248&uart0 { 328&uart0 {
249 pinctrl-names = "default"; 329 pinctrl-names = "default";
250 pinctrl-0 = <&uart0_pins_a>; 330 pinctrl-0 = <&uart0_pins_a>;
diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
index ce1960453a0b..2b26175d55d1 100644
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -231,6 +231,11 @@
231 }; 231 };
232 }; 232 };
233 233
234 de: display-engine {
235 compatible = "allwinner,sun6i-a31-display-engine";
236 allwinner,pipelines = <&fe0>;
237 };
238
234 soc@01c00000 { 239 soc@01c00000 {
235 compatible = "simple-bus"; 240 compatible = "simple-bus";
236 #address-cells = <1>; 241 #address-cells = <1>;
@@ -246,6 +251,44 @@
246 #dma-cells = <1>; 251 #dma-cells = <1>;
247 }; 252 };
248 253
254 tcon0: lcd-controller@01c0c000 {
255 compatible = "allwinner,sun6i-a31-tcon";
256 reg = <0x01c0c000 0x1000>;
257 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
258 resets = <&ccu RST_AHB1_LCD0>;
259 reset-names = "lcd";
260 clocks = <&ccu CLK_AHB1_LCD0>,
261 <&ccu CLK_LCD0_CH0>,
262 <&ccu CLK_LCD0_CH1>;
263 clock-names = "ahb",
264 "tcon-ch0",
265 "tcon-ch1";
266 clock-output-names = "tcon0-pixel-clock";
267 status = "disabled";
268
269 ports {
270 #address-cells = <1>;
271 #size-cells = <0>;
272
273 tcon0_in: port@0 {
274 #address-cells = <1>;
275 #size-cells = <0>;
276 reg = <0>;
277
278 tcon0_in_drc0: endpoint@0 {
279 reg = <0>;
280 remote-endpoint = <&drc0_out_tcon0>;
281 };
282 };
283
284 tcon0_out: port@1 {
285 #address-cells = <1>;
286 #size-cells = <0>;
287 reg = <1>;
288 };
289 };
290 };
291
249 mmc0: mmc@01c0f000 { 292 mmc0: mmc@01c0f000 {
250 compatible = "allwinner,sun7i-a20-mmc"; 293 compatible = "allwinner,sun7i-a20-mmc";
251 reg = <0x01c0f000 0x1000>; 294 reg = <0x01c0f000 0x1000>;
@@ -428,19 +471,55 @@
428 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 471 <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
429 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 472 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
430 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 473 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
431 clocks = <&ccu CLK_APB1_PIO>; 474 clocks = <&ccu CLK_APB1_PIO>, <&osc24M>, <&osc32k>;
475 clock-names = "apb", "hosc", "losc";
432 gpio-controller; 476 gpio-controller;
433 interrupt-controller; 477 interrupt-controller;
434 #interrupt-cells = <3>; 478 #interrupt-cells = <3>;
435 #gpio-cells = <3>; 479 #gpio-cells = <3>;
436 480
437 uart0_pins_a: uart0@0 { 481 gmac_pins_gmii_a: gmac_gmii@0 {
438 allwinner,pins = "PH20", "PH21"; 482 allwinner,pins = "PA0", "PA1", "PA2", "PA3",
439 allwinner,function = "uart0"; 483 "PA4", "PA5", "PA6", "PA7",
484 "PA8", "PA9", "PA10", "PA11",
485 "PA12", "PA13", "PA14", "PA15",
486 "PA16", "PA17", "PA18", "PA19",
487 "PA20", "PA21", "PA22", "PA23",
488 "PA24", "PA25", "PA26", "PA27";
489 allwinner,function = "gmac";
490 /*
491 * data lines in GMII mode run at 125MHz and
492 * might need a higher signal drive strength
493 */
494 allwinner,drive = <SUN4I_PINCTRL_30_MA>;
495 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
496 };
497
498 gmac_pins_mii_a: gmac_mii@0 {
499 allwinner,pins = "PA0", "PA1", "PA2", "PA3",
500 "PA8", "PA9", "PA11",
501 "PA12", "PA13", "PA14", "PA19",
502 "PA20", "PA21", "PA22", "PA23",
503 "PA24", "PA26", "PA27";
504 allwinner,function = "gmac";
440 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 505 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
441 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 506 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
442 }; 507 };
443 508
509 gmac_pins_rgmii_a: gmac_rgmii@0 {
510 allwinner,pins = "PA0", "PA1", "PA2", "PA3",
511 "PA9", "PA10", "PA11",
512 "PA12", "PA13", "PA14", "PA19",
513 "PA20", "PA25", "PA26", "PA27";
514 allwinner,function = "gmac";
515 /*
516 * data lines in RGMII mode use DDR mode
517 * and need a higher signal drive strength
518 */
519 allwinner,drive = <SUN4I_PINCTRL_40_MA>;
520 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
521 };
522
444 i2c0_pins_a: i2c0@0 { 523 i2c0_pins_a: i2c0@0 {
445 allwinner,pins = "PH14", "PH15"; 524 allwinner,pins = "PH14", "PH15";
446 allwinner,function = "i2c0"; 525 allwinner,function = "i2c0";
@@ -462,6 +541,19 @@
462 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 541 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
463 }; 542 };
464 543
544 lcd0_rgb888_pins: lcd0_rgb888 {
545 allwinner,pins = "PD0", "PD1", "PD2", "PD3",
546 "PD4", "PD5", "PD6", "PD7",
547 "PD8", "PD9", "PD10", "PD11",
548 "PD12", "PD13", "PD14", "PD15",
549 "PD16", "PD17", "PD18", "PD19",
550 "PD20", "PD21", "PD22", "PD23",
551 "PD24", "PD25", "PD26", "PD27";
552 allwinner,function = "lcd0";
553 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
554 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
555 };
556
465 mmc0_pins_a: mmc0@0 { 557 mmc0_pins_a: mmc0@0 {
466 allwinner,pins = "PF0", "PF1", "PF2", 558 allwinner,pins = "PF0", "PF1", "PF2",
467 "PF3", "PF4", "PF5"; 559 "PF3", "PF4", "PF5";
@@ -506,47 +598,12 @@
506 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 598 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
507 }; 599 };
508 600
509 gmac_pins_mii_a: gmac_mii@0 { 601 uart0_pins_a: uart0@0 {
510 allwinner,pins = "PA0", "PA1", "PA2", "PA3", 602 allwinner,pins = "PH20", "PH21";
511 "PA8", "PA9", "PA11", 603 allwinner,function = "uart0";
512 "PA12", "PA13", "PA14", "PA19",
513 "PA20", "PA21", "PA22", "PA23",
514 "PA24", "PA26", "PA27";
515 allwinner,function = "gmac";
516 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 604 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
517 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 605 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
518 }; 606 };
519
520 gmac_pins_gmii_a: gmac_gmii@0 {
521 allwinner,pins = "PA0", "PA1", "PA2", "PA3",
522 "PA4", "PA5", "PA6", "PA7",
523 "PA8", "PA9", "PA10", "PA11",
524 "PA12", "PA13", "PA14", "PA15",
525 "PA16", "PA17", "PA18", "PA19",
526 "PA20", "PA21", "PA22", "PA23",
527 "PA24", "PA25", "PA26", "PA27";
528 allwinner,function = "gmac";
529 /*
530 * data lines in GMII mode run at 125MHz and
531 * might need a higher signal drive strength
532 */
533 allwinner,drive = <SUN4I_PINCTRL_30_MA>;
534 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
535 };
536
537 gmac_pins_rgmii_a: gmac_rgmii@0 {
538 allwinner,pins = "PA0", "PA1", "PA2", "PA3",
539 "PA9", "PA10", "PA11",
540 "PA12", "PA13", "PA14", "PA19",
541 "PA20", "PA25", "PA26", "PA27";
542 allwinner,function = "gmac";
543 /*
544 * data lines in RGMII mode use DDR mode
545 * and need a higher signal drive strength
546 */
547 allwinner,drive = <SUN4I_PINCTRL_40_MA>;
548 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
549 };
550 }; 607 };
551 608
552 timer@01c20c00 { 609 timer@01c20c00 {
@@ -728,6 +785,19 @@
728 reset-names = "ahb"; 785 reset-names = "ahb";
729 }; 786 };
730 787
788 codec: codec@01c22c00 {
789 #sound-dai-cells = <0>;
790 compatible = "allwinner,sun6i-a31-codec";
791 reg = <0x01c22c00 0x400>;
792 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
793 clocks = <&ccu CLK_APB1_CODEC>, <&ccu CLK_CODEC>;
794 clock-names = "apb", "codec";
795 resets = <&ccu RST_APB1_CODEC>;
796 dmas = <&dma 15>, <&dma 15>;
797 dma-names = "rx", "tx";
798 status = "disabled";
799 };
800
731 timer@01c60000 { 801 timer@01c60000 {
732 compatible = "allwinner,sun6i-a31-hstimer", 802 compatible = "allwinner,sun6i-a31-hstimer",
733 "allwinner,sun7i-a20-hstimer"; 803 "allwinner,sun7i-a20-hstimer";
@@ -799,6 +869,115 @@
799 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 869 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
800 }; 870 };
801 871
872 fe0: display-frontend@01e00000 {
873 compatible = "allwinner,sun6i-a31-display-frontend";
874 reg = <0x01e00000 0x20000>;
875 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
876 clocks = <&ccu CLK_AHB1_FE0>, <&ccu CLK_FE0>,
877 <&ccu CLK_DRAM_FE0>;
878 clock-names = "ahb", "mod",
879 "ram";
880 resets = <&ccu RST_AHB1_FE0>;
881
882 ports {
883 #address-cells = <1>;
884 #size-cells = <0>;
885
886 fe0_out: port@1 {
887 #address-cells = <1>;
888 #size-cells = <0>;
889 reg = <1>;
890
891 fe0_out_be0: endpoint@0 {
892 reg = <0>;
893 remote-endpoint = <&be0_in_fe0>;
894 };
895 };
896 };
897 };
898
899 be0: display-backend@01e60000 {
900 compatible = "allwinner,sun6i-a31-display-backend";
901 reg = <0x01e60000 0x10000>;
902 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
903 clocks = <&ccu CLK_AHB1_BE0>, <&ccu CLK_BE0>,
904 <&ccu CLK_DRAM_BE0>;
905 clock-names = "ahb", "mod",
906 "ram";
907 resets = <&ccu RST_AHB1_BE0>;
908
909 assigned-clocks = <&ccu CLK_BE0>;
910 assigned-clock-rates = <300000000>;
911
912 ports {
913 #address-cells = <1>;
914 #size-cells = <0>;
915
916 be0_in: port@0 {
917 #address-cells = <1>;
918 #size-cells = <0>;
919 reg = <0>;
920
921 be0_in_fe0: endpoint@0 {
922 reg = <0>;
923 remote-endpoint = <&fe0_out_be0>;
924 };
925 };
926
927 be0_out: port@1 {
928 #address-cells = <1>;
929 #size-cells = <0>;
930 reg = <1>;
931
932 be0_out_drc0: endpoint@0 {
933 reg = <0>;
934 remote-endpoint = <&drc0_in_be0>;
935 };
936 };
937 };
938 };
939
940 drc0: drc@01e70000 {
941 compatible = "allwinner,sun6i-a31-drc";
942 reg = <0x01e70000 0x10000>;
943 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
944 clocks = <&ccu CLK_AHB1_DRC0>, <&ccu CLK_IEP_DRC0>,
945 <&ccu CLK_DRAM_DRC0>;
946 clock-names = "ahb", "mod",
947 "ram";
948 resets = <&ccu RST_AHB1_DRC0>;
949
950 assigned-clocks = <&ccu CLK_IEP_DRC0>;
951 assigned-clock-rates = <300000000>;
952
953 ports {
954 #address-cells = <1>;
955 #size-cells = <0>;
956
957 drc0_in: port@0 {
958 #address-cells = <1>;
959 #size-cells = <0>;
960 reg = <0>;
961
962 drc0_in_be0: endpoint@0 {
963 reg = <0>;
964 remote-endpoint = <&be0_out_drc0>;
965 };
966 };
967
968 drc0_out: port@1 {
969 #address-cells = <1>;
970 #size-cells = <0>;
971 reg = <1>;
972
973 drc0_out_tcon0: endpoint@0 {
974 reg = <0>;
975 remote-endpoint = <&tcon0_in_drc0>;
976 };
977 };
978 };
979 };
980
802 rtc: rtc@01f00000 { 981 rtc: rtc@01f00000 {
803 compatible = "allwinner,sun6i-a31-rtc"; 982 compatible = "allwinner,sun6i-a31-rtc";
804 reg = <0x01f00000 0x54>; 983 reg = <0x01f00000 0x54>;
@@ -886,7 +1065,8 @@
886 reg = <0x01f02c00 0x400>; 1065 reg = <0x01f02c00 0x400>;
887 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 1066 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
888 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 1067 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
889 clocks = <&apb0_gates 0>; 1068 clocks = <&apb0_gates 0>, <&osc24M>, <&osc32k>;
1069 clock-names = "apb", "hosc", "losc";
890 resets = <&apb0_rst 0>; 1070 resets = <&apb0_rst 0>;
891 gpio-controller; 1071 gpio-controller;
892 interrupt-controller; 1072 interrupt-controller;
diff --git a/arch/arm/boot/dts/sun6i-a31s-sina31s.dts b/arch/arm/boot/dts/sun6i-a31s-sina31s.dts
index 6ead2f5c847a..c35ec112f5a0 100644
--- a/arch/arm/boot/dts/sun6i-a31s-sina31s.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-sina31s.dts
@@ -65,6 +65,14 @@
65 }; 65 };
66}; 66};
67 67
68&codec {
69 allwinner,audio-routing =
70 "Line Out", "LINEOUT",
71 "MIC1", "Mic",
72 "Mic", "MBIAS";
73 status = "okay";
74};
75
68&ehci0 { 76&ehci0 {
69 /* USB 2.0 4 port hub IC */ 77 /* USB 2.0 4 port hub IC */
70 status = "okay"; 78 status = "okay";
diff --git a/arch/arm/boot/dts/sun6i-a31s.dtsi b/arch/arm/boot/dts/sun6i-a31s.dtsi
index c17a32771b98..97e2c51d0aea 100644
--- a/arch/arm/boot/dts/sun6i-a31s.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31s.dtsi
@@ -48,6 +48,14 @@
48 48
49#include "sun6i-a31.dtsi" 49#include "sun6i-a31.dtsi"
50 50
51&de {
52 compatible = "allwinner,sun6i-a31s-display-engine";
53};
54
51&pio { 55&pio {
52 compatible = "allwinner,sun6i-a31s-pinctrl"; 56 compatible = "allwinner,sun6i-a31s-pinctrl";
53}; 57};
58
59&tcon0 {
60 compatible = "allwinner,sun6i-a31s-tcon";
61};
diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts b/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
index ba5bca0fe997..532f1a160560 100644
--- a/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
+++ b/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
@@ -105,6 +105,10 @@
105 status = "okay"; 105 status = "okay";
106}; 106};
107 107
108&cpu0 {
109 cpu-supply = <&reg_dcdc2>;
110};
111
108&ehci0 { 112&ehci0 {
109 status = "okay"; 113 status = "okay";
110}; 114};
@@ -132,16 +136,14 @@
132 status = "okay"; 136 status = "okay";
133 137
134 axp209: pmic@34 { 138 axp209: pmic@34 {
135 compatible = "x-powers,axp209";
136 reg = <0x34>; 139 reg = <0x34>;
137 interrupt-parent = <&nmi_intc>; 140 interrupt-parent = <&nmi_intc>;
138 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 141 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
139
140 interrupt-controller;
141 #interrupt-cells = <1>;
142 }; 142 };
143}; 143};
144 144
145#include "axp209.dtsi"
146
145&ir0 { 147&ir0 {
146 pinctrl-names = "default"; 148 pinctrl-names = "default";
147 pinctrl-0 = <&ir0_rx_pins_a>; 149 pinctrl-0 = <&ir0_rx_pins_a>;
@@ -167,7 +169,7 @@
167 mmc-pwrseq = <&mmc3_pwrseq>; 169 mmc-pwrseq = <&mmc3_pwrseq>;
168 bus-width = <4>; 170 bus-width = <4>;
169 non-removable; 171 non-removable;
170 enable-sdio-wakeup; 172 wakeup-source;
171 status = "okay"; 173 status = "okay";
172 174
173 brcmf: bcrmf@1 { 175 brcmf: bcrmf@1 {
@@ -192,6 +194,10 @@
192 status = "okay"; 194 status = "okay";
193}; 195};
194 196
197&otg_sram {
198 status = "okay";
199};
200
195&pio { 201&pio {
196 gmac_power_pin_bpi_m1p: gmac_power_pin@0 { 202 gmac_power_pin_bpi_m1p: gmac_power_pin@0 {
197 allwinner,pins = "PH23"; 203 allwinner,pins = "PH23";
@@ -222,8 +228,54 @@
222 }; 228 };
223}; 229};
224 230
231&reg_dcdc2 {
232 regulator-always-on;
233 regulator-min-microvolt = <1000000>;
234 regulator-max-microvolt = <1400000>;
235 regulator-name = "vdd-cpu";
236};
237
238&reg_dcdc3 {
239 regulator-always-on;
240 regulator-min-microvolt = <1000000>;
241 regulator-max-microvolt = <1400000>;
242 regulator-name = "vdd-int-dll";
243};
244
245&reg_ldo1 {
246 regulator-name = "vdd-rtc";
247};
248
249&reg_ldo2 {
250 regulator-always-on;
251 regulator-min-microvolt = <3000000>;
252 regulator-max-microvolt = <3000000>;
253 regulator-name = "avcc";
254};
255
256&reg_usb0_vbus {
257 status = "okay";
258};
259
225&uart0 { 260&uart0 {
226 pinctrl-names = "default"; 261 pinctrl-names = "default";
227 pinctrl-0 = <&uart0_pins_a>; 262 pinctrl-0 = <&uart0_pins_a>;
228 status = "okay"; 263 status = "okay";
229}; 264};
265
266&usb_otg {
267 dr_mode = "otg";
268 status = "okay";
269};
270
271&usb_power_supply {
272 status = "okay";
273};
274
275&usbphy {
276 usb0_id_det-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
277 usb0_vbus_power-supply = <&usb_power_supply>;
278 usb0_vbus-supply = <&reg_usb0_vbus>;
279 /* VBUS on usb host ports are tied to DC5V and therefore always on */
280 status = "okay";
281};
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 23aacce4d6c7..134e0c1b129d 100644
--- a/arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts
@@ -88,6 +88,10 @@
88 status = "okay"; 88 status = "okay";
89}; 89};
90 90
91&cpu0 {
92 cpu-supply = <&reg_dcdc2>;
93};
94
91&codec { 95&codec {
92 status = "okay"; 96 status = "okay";
93}; 97};
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
index 94cf5a1c7172..f7db067b0de0 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -1085,7 +1085,8 @@
1085 compatible = "allwinner,sun7i-a20-pinctrl"; 1085 compatible = "allwinner,sun7i-a20-pinctrl";
1086 reg = <0x01c20800 0x400>; 1086 reg = <0x01c20800 0x400>;
1087 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 1087 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
1088 clocks = <&apb0_gates 5>; 1088 clocks = <&apb0_gates 5>, <&osc24M>, <&osc32k>;
1089 clock-names = "apb", "hosc", "losc";
1089 gpio-controller; 1090 gpio-controller;
1090 interrupt-controller; 1091 interrupt-controller;
1091 #interrupt-cells = <3>; 1092 #interrupt-cells = <3>;
diff --git a/arch/arm/boot/dts/sun8i-a23-a33.dtsi b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
index 300a1bd5a6ec..e4991a78ad73 100644
--- a/arch/arm/boot/dts/sun8i-a23-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
@@ -266,7 +266,8 @@
266 /* compatible gets set in SoC specific dtsi file */ 266 /* compatible gets set in SoC specific dtsi file */
267 reg = <0x01c20800 0x400>; 267 reg = <0x01c20800 0x400>;
268 /* interrupts get set in SoC specific dtsi file */ 268 /* interrupts get set in SoC specific dtsi file */
269 clocks = <&ccu CLK_BUS_PIO>; 269 clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
270 clock-names = "apb", "hosc", "losc";
270 gpio-controller; 271 gpio-controller;
271 interrupt-controller; 272 interrupt-controller;
272 #interrupt-cells = <3>; 273 #interrupt-cells = <3>;
@@ -575,7 +576,8 @@
575 compatible = "allwinner,sun8i-a23-r-pinctrl"; 576 compatible = "allwinner,sun8i-a23-r-pinctrl";
576 reg = <0x01f02c00 0x400>; 577 reg = <0x01f02c00 0x400>;
577 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 578 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
578 clocks = <&apb0_gates 0>; 579 clocks = <&apb0_gates 0>, <&osc24M>, <&osc32k>;
580 clock-names = "apb", "hosc", "losc";
579 resets = <&apb0_rst 0>; 581 resets = <&apb0_rst 0>;
580 gpio-controller; 582 gpio-controller;
581 interrupt-controller; 583 interrupt-controller;
diff --git a/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts
index a86cbedda34c..21bb291b9568 100644
--- a/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts
+++ b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts
@@ -98,13 +98,6 @@
98 }; 98 };
99}; 99};
100 100
101&reg_ldo_io1 {
102 regulator-min-microvolt = <3300000>;
103 regulator-max-microvolt = <3300000>;
104 regulator-name = "vcc-touchscreen";
105 status = "okay";
106};
107
108&touchscreen { 101&touchscreen {
109 reg = <0x40>; 102 reg = <0x40>;
110 compatible = "silead,gsl1680"; 103 compatible = "silead,gsl1680";
diff --git a/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts b/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts
index fef6abc0a703..71bb9418c5f9 100644
--- a/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts
+++ b/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts
@@ -213,6 +213,11 @@
213 status = "okay"; 213 status = "okay";
214}; 214};
215 215
216&usb_otg {
217 dr_mode = "peripheral";
218 status = "okay";
219};
220
216&usbphy { 221&usbphy {
217 status = "okay"; 222 status = "okay";
218 usb1_vbus-supply = <&reg_vcc5v0>; /* USB1 VBUS is always on */ 223 usb1_vbus-supply = <&reg_vcc5v0>; /* USB1 VBUS is always on */
diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-m1.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-m1.dts
new file mode 100644
index 000000000000..ec63d104b404
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi-m1.dts
@@ -0,0 +1,64 @@
1/*
2 * Copyright (C) 2016 Milo Kim <woogyom.kim@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 "sun8i-h3-nanopi.dtsi"
44
45/ {
46 model = "FriendlyArm NanoPi M1";
47 compatible = "friendlyarm,nanopi-m1", "allwinner,sun8i-h3";
48};
49
50&ehci1 {
51 status = "okay";
52};
53
54&ehci2 {
55 status = "okay";
56};
57
58&ohci1 {
59 status = "okay";
60};
61
62&ohci2 {
63 status = "okay";
64};
diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts
index 3d64cafc1e90..8d2cc6e9a03f 100644
--- a/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts
@@ -40,86 +40,9 @@
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
41 */ 41 */
42 42
43/dts-v1/; 43#include "sun8i-h3-nanopi.dtsi"
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 44
50/ { 45/ {
51 model = "FriendlyARM NanoPi NEO"; 46 model = "FriendlyARM NanoPi NEO";
52 compatible = "friendlyarm,nanopi-neo", "allwinner,sun8i-h3"; 47 compatible = "friendlyarm,nanopi-neo", "allwinner,sun8i-h3";
53
54 aliases {
55 serial0 = &uart0;
56 };
57
58 chosen {
59 stdout-path = "serial0:115200n8";
60 };
61
62 leds {
63 compatible = "gpio-leds";
64 pinctrl-names = "default";
65 pinctrl-0 = <&leds_opc>, <&leds_r_opc>;
66
67 pwr {
68 label = "nanopi:green:pwr";
69 gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */
70 default-state = "on";
71 };
72
73 status {
74 label = "nanopi:blue:status";
75 gpios = <&pio 0 10 GPIO_ACTIVE_HIGH>; /* PA10 */
76 };
77 };
78};
79
80&ehci3 {
81 status = "okay";
82};
83
84&mmc0 {
85 pinctrl-names = "default";
86 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
87 vmmc-supply = <&reg_vcc3v3>;
88 bus-width = <4>;
89 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
90 cd-inverted;
91 status = "okay";
92};
93
94&ohci3 {
95 status = "okay";
96};
97
98&pio {
99 leds_opc: led-pins {
100 allwinner,pins = "PA10";
101 allwinner,function = "gpio_out";
102 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
103 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
104 };
105};
106
107&r_pio {
108 leds_r_opc: led-pins {
109 allwinner,pins = "PL10";
110 allwinner,function = "gpio_out";
111 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
112 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
113 };
114};
115
116&uart0 {
117 pinctrl-names = "default";
118 pinctrl-0 = <&uart0_pins_a>;
119 status = "okay";
120};
121
122&usbphy {
123 /* USB VBUS is always on */
124 status = "okay";
125}; 48};
diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi b/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
new file mode 100644
index 000000000000..8038aa29a5a7
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
@@ -0,0 +1,144 @@
1/*
2 * Copyright (C) 2016 James Pettigrew <james@innovum.com.au>
3 * Copyright (C) 2016 Milo Kim <woogyom.kim@gmail.com>
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
14 *
15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively,
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44/dts-v1/;
45#include "sun8i-h3.dtsi"
46#include "sunxi-common-regulators.dtsi"
47
48#include <dt-bindings/gpio/gpio.h>
49#include <dt-bindings/input/input.h>
50#include <dt-bindings/pinctrl/sun4i-a10.h>
51
52/ {
53 aliases {
54 serial0 = &uart0;
55 };
56
57 chosen {
58 stdout-path = "serial0:115200n8";
59 };
60
61 leds {
62 compatible = "gpio-leds";
63 pinctrl-names = "default";
64 pinctrl-0 = <&leds_npi>, <&leds_r_npi>;
65
66 status {
67 label = "nanopi:blue:status";
68 gpios = <&pio 0 10 GPIO_ACTIVE_HIGH>;
69 linux,default-trigger = "heartbeat";
70 };
71
72 pwr {
73 label = "nanopi:green:pwr";
74 gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>;
75 default-state = "on";
76 };
77 };
78
79 r_gpio_keys {
80 compatible = "gpio-keys";
81 input-name = "k1";
82 pinctrl-names = "default";
83 pinctrl-0 = <&sw_r_npi>;
84
85 k1@0 {
86 label = "k1";
87 linux,code = <KEY_POWER>;
88 gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
89 };
90 };
91};
92
93&ehci3 {
94 status = "okay";
95};
96
97&mmc0 {
98 bus-width = <4>;
99 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
100 cd-inverted;
101 pinctrl-names = "default";
102 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
103 status = "okay";
104 vmmc-supply = <&reg_vcc3v3>;
105};
106
107&ohci3 {
108 status = "okay";
109};
110
111&pio {
112 leds_npi: led_pins@0 {
113 allwinner,pins = "PA10";
114 allwinner,function = "gpio_out";
115 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
116 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
117 };
118};
119
120&r_pio {
121 leds_r_npi: led_pins@0 {
122 allwinner,pins = "PL10";
123 allwinner,function = "gpio_out";
124 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
125 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
126 };
127
128 sw_r_npi: key_pins@0 {
129 allwinner,pins = "PL3";
130 allwinner,function = "gpio_in";
131 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
132 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
133 };
134};
135
136&uart0 {
137 pinctrl-names = "default";
138 pinctrl-0 = <&uart0_pins_a>;
139 status = "okay";
140};
141
142&usbphy {
143 status = "okay";
144};
diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
index f4ba088b225e..6c14a6f72820 100644
--- a/arch/arm/boot/dts/sun8i-h3.dtsi
+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
@@ -321,7 +321,8 @@
321 reg = <0x01c20800 0x400>; 321 reg = <0x01c20800 0x400>;
322 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 322 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
323 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 323 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
324 clocks = <&ccu CLK_BUS_PIO>; 324 clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
325 clock-names = "apb", "hosc", "losc";
325 gpio-controller; 326 gpio-controller;
326 #gpio-cells = <3>; 327 #gpio-cells = <3>;
327 interrupt-controller; 328 interrupt-controller;
@@ -381,6 +382,20 @@
381 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 382 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
382 }; 383 };
383 384
385 spi0_pins: spi0 {
386 allwinner,pins = "PC0", "PC1", "PC2", "PC3";
387 allwinner,function = "spi0";
388 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
389 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
390 };
391
392 spi1_pins: spi1 {
393 allwinner,pins = "PA15", "PA16", "PA14", "PA13";
394 allwinner,function = "spi1";
395 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
396 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
397 };
398
384 uart0_pins_a: uart0@0 { 399 uart0_pins_a: uart0@0 {
385 allwinner,pins = "PA4", "PA5"; 400 allwinner,pins = "PA4", "PA5";
386 allwinner,function = "uart0"; 401 allwinner,function = "uart0";
@@ -425,6 +440,38 @@
425 clocks = <&osc24M>; 440 clocks = <&osc24M>;
426 }; 441 };
427 442
443 spi0: spi@01c68000 {
444 compatible = "allwinner,sun8i-h3-spi";
445 reg = <0x01c68000 0x1000>;
446 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
447 clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
448 clock-names = "ahb", "mod";
449 dmas = <&dma 23>, <&dma 23>;
450 dma-names = "rx", "tx";
451 pinctrl-names = "default";
452 pinctrl-0 = <&spi0_pins>;
453 resets = <&ccu RST_BUS_SPI0>;
454 status = "disabled";
455 #address-cells = <1>;
456 #size-cells = <0>;
457 };
458
459 spi1: spi@01c69000 {
460 compatible = "allwinner,sun8i-h3-spi";
461 reg = <0x01c69000 0x1000>;
462 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
463 clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
464 clock-names = "ahb", "mod";
465 dmas = <&dma 24>, <&dma 24>;
466 dma-names = "rx", "tx";
467 pinctrl-names = "default";
468 pinctrl-0 = <&spi1_pins>;
469 resets = <&ccu RST_BUS_SPI1>;
470 status = "disabled";
471 #address-cells = <1>;
472 #size-cells = <0>;
473 };
474
428 wdt0: watchdog@01c20ca0 { 475 wdt0: watchdog@01c20ca0 {
429 compatible = "allwinner,sun6i-a31-wdt"; 476 compatible = "allwinner,sun6i-a31-wdt";
430 reg = <0x01c20ca0 0x20>; 477 reg = <0x01c20ca0 0x20>;
@@ -568,7 +615,8 @@
568 compatible = "allwinner,sun8i-h3-r-pinctrl"; 615 compatible = "allwinner,sun8i-h3-r-pinctrl";
569 reg = <0x01f02c00 0x400>; 616 reg = <0x01f02c00 0x400>;
570 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 617 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
571 clocks = <&apb0_gates 0>; 618 clocks = <&apb0_gates 0>, <&osc24M>, <&osc32k>;
619 clock-names = "apb", "hosc", "losc";
572 resets = <&apb0_reset 0>; 620 resets = <&apb0_reset 0>;
573 gpio-controller; 621 gpio-controller;
574 #gpio-cells = <3>; 622 #gpio-cells = <3>;
diff --git a/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi b/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
index 08cd00143635..69bc0cd26ca7 100644
--- a/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
+++ b/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
@@ -209,6 +209,13 @@
209 status = "okay"; 209 status = "okay";
210}; 210};
211 211
212&reg_ldo_io1 {
213 regulator-min-microvolt = <3300000>;
214 regulator-max-microvolt = <3300000>;
215 regulator-name = "vcc-touchscreen";
216 status = "okay";
217};
218
212&reg_rtc_ldo { 219&reg_rtc_ldo {
213 regulator-name = "vcc-rtc"; 220 regulator-name = "vcc-rtc";
214}; 221};
diff --git a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
index 439847acd41e..67b02fe7f11c 100644
--- a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
+++ b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
@@ -76,6 +76,14 @@
76 gpios = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */ 76 gpios = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
77 }; 77 };
78 }; 78 };
79
80 wifi_pwrseq: wifi_pwrseq {
81 compatible = "mmc-pwrseq-simple";
82 clocks = <&ac100_rtc 1>;
83 clock-names = "ext_clock";
84 /* enables internal regulator and de-asserts reset */
85 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 WL-PMU-EN */
86 };
79}; 87};
80 88
81&mmc0 { 89&mmc0 {
@@ -88,6 +96,21 @@
88 status = "okay"; 96 status = "okay";
89}; 97};
90 98
99&mmc1 {
100 pinctrl-names = "default";
101 pinctrl-0 = <&mmc1_pins>, <&wifi_en_pin_cubieboard4>;
102 vmmc-supply = <&reg_dldo1>;
103 vqmmc-supply = <&reg_cldo3>;
104 mmc-pwrseq = <&wifi_pwrseq>;
105 bus-width = <4>;
106 non-removable;
107 status = "okay";
108};
109
110&mmc1_pins {
111 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
112};
113
91&mmc2 { 114&mmc2 {
92 pinctrl-names = "default"; 115 pinctrl-names = "default";
93 pinctrl-0 = <&mmc2_8bit_pins>; 116 pinctrl-0 = <&mmc2_8bit_pins>;
@@ -128,6 +151,15 @@
128 status = "okay"; 151 status = "okay";
129}; 152};
130 153
154&r_pio {
155 wifi_en_pin_cubieboard4: wifi_en_pin@0 {
156 allwinner,pins = "PL2";
157 allwinner,function = "gpio_out";
158 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
159 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
160 };
161};
162
131&r_rsb { 163&r_rsb {
132 status = "okay"; 164 status = "okay";
133 165
diff --git a/arch/arm/boot/dts/sun9i-a80-optimus.dts b/arch/arm/boot/dts/sun9i-a80-optimus.dts
index ceb6ef15d669..7e036b2be762 100644
--- a/arch/arm/boot/dts/sun9i-a80-optimus.dts
+++ b/arch/arm/boot/dts/sun9i-a80-optimus.dts
@@ -105,6 +105,14 @@
105 enable-active-high; 105 enable-active-high;
106 gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */ 106 gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
107 }; 107 };
108
109 wifi_pwrseq: wifi_pwrseq {
110 compatible = "mmc-pwrseq-simple";
111 clocks = <&ac100_rtc 1>;
112 clock-names = "ext_clock";
113 /* enables internal regulator and de-asserts reset */
114 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 WL-PMU-EN */
115 };
108}; 116};
109 117
110&ehci0 { 118&ehci0 {
@@ -130,6 +138,21 @@
130 status = "okay"; 138 status = "okay";
131}; 139};
132 140
141&mmc1 {
142 pinctrl-names = "default";
143 pinctrl-0 = <&mmc1_pins>, <&wifi_en_pin_optimus>;
144 vmmc-supply = <&reg_dldo1>;
145 vqmmc-supply = <&reg_cldo3>;
146 mmc-pwrseq = <&wifi_pwrseq>;
147 bus-width = <4>;
148 non-removable;
149 status = "okay";
150};
151
152&mmc1_pins {
153 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
154};
155
133&mmc2 { 156&mmc2 {
134 pinctrl-names = "default"; 157 pinctrl-names = "default";
135 pinctrl-0 = <&mmc2_8bit_pins>; 158 pinctrl-0 = <&mmc2_8bit_pins>;
@@ -199,6 +222,13 @@
199 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 222 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
200 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 223 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
201 }; 224 };
225
226 wifi_en_pin_optimus: wifi_en_pin@0 {
227 allwinner,pins = "PL2";
228 allwinner,function = "gpio_out";
229 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
230 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
231 };
202}; 232};
203 233
204&r_rsb { 234&r_rsb {
diff --git a/arch/arm/boot/dts/sun9i-a80.dtsi b/arch/arm/boot/dts/sun9i-a80.dtsi
index 3c5214cbe4e6..979ad1aacfb1 100644
--- a/arch/arm/boot/dts/sun9i-a80.dtsi
+++ b/arch/arm/boot/dts/sun9i-a80.dtsi
@@ -678,7 +678,8 @@
678 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 678 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
679 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>, 679 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
680 <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 680 <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
681 clocks = <&apb0_gates 5>; 681 clocks = <&apb0_gates 5>, <&osc24M>, <&osc32k>;
682 clock-names = "apb", "hosc", "losc";
682 gpio-controller; 683 gpio-controller;
683 interrupt-controller; 684 interrupt-controller;
684 #interrupt-cells = <3>; 685 #interrupt-cells = <3>;
@@ -700,6 +701,14 @@
700 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 701 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
701 }; 702 };
702 703
704 mmc1_pins: mmc1 {
705 allwinner,pins = "PG0", "PG1" ,"PG2", "PG3",
706 "PG4", "PG5";
707 allwinner,function = "mmc1";
708 allwinner,drive = <SUN4I_PINCTRL_30_MA>;
709 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
710 };
711
703 mmc2_8bit_pins: mmc2_8bit { 712 mmc2_8bit_pins: mmc2_8bit {
704 allwinner,pins = "PC6", "PC7", "PC8", "PC9", 713 allwinner,pins = "PC6", "PC7", "PC8", "PC9",
705 "PC10", "PC11", "PC12", 714 "PC10", "PC11", "PC12",
@@ -894,7 +903,8 @@
894 reg = <0x08002c00 0x400>; 903 reg = <0x08002c00 0x400>;
895 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 904 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
896 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 905 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
897 clocks = <&apbs_gates 0>; 906 clocks = <&apbs_gates 0>, <&osc24M>, <&osc32k>;
907 clock-names = "apb", "hosc", "losc";
898 resets = <&apbs_rst 0>; 908 resets = <&apbs_rst 0>;
899 gpio-controller; 909 gpio-controller;
900 interrupt-controller; 910 interrupt-controller;
diff --git a/arch/arm/boot/dts/tegra124-apalis.dtsi b/arch/arm/boot/dts/tegra124-apalis.dtsi
index e7a73db17613..0819721dda59 100644
--- a/arch/arm/boot/dts/tegra124-apalis.dtsi
+++ b/arch/arm/boot/dts/tegra124-apalis.dtsi
@@ -1595,7 +1595,7 @@
1595 clock-frequency = <400000>; 1595 clock-frequency = <400000>;
1596 1596
1597 /* SGTL5000 audio codec */ 1597 /* SGTL5000 audio codec */
1598 sgtl5000: codec@0a { 1598 sgtl5000: codec@a {
1599 compatible = "fsl,sgtl5000"; 1599 compatible = "fsl,sgtl5000";
1600 reg = <0x0a>; 1600 reg = <0x0a>;
1601 VDDA-supply = <&reg_3v3>; 1601 VDDA-supply = <&reg_3v3>;
diff --git a/arch/arm/boot/dts/tegra124-nyan.dtsi b/arch/arm/boot/dts/tegra124-nyan.dtsi
index 271505e0715f..eabfa655a3cd 100644
--- a/arch/arm/boot/dts/tegra124-nyan.dtsi
+++ b/arch/arm/boot/dts/tegra124-nyan.dtsi
@@ -42,6 +42,12 @@
42 }; 42 };
43 }; 43 };
44 44
45 gpu@0,57000000 {
46 status = "okay";
47
48 vdd-supply = <&vdd_gpu>;
49 };
50
45 serial@70006000 { 51 serial@70006000 {
46 /* Debug connector on the bottom of the board near SD card. */ 52 /* Debug connector on the bottom of the board near SD card. */
47 status = "okay"; 53 status = "okay";
@@ -214,7 +220,7 @@
214 regulator-always-on; 220 regulator-always-on;
215 }; 221 };
216 222
217 sd6 { 223 vdd_gpu: sd6 {
218 regulator-name = "+VDD_GPU_AP"; 224 regulator-name = "+VDD_GPU_AP";
219 regulator-min-microvolt = <650000>; 225 regulator-min-microvolt = <650000>;
220 regulator-max-microvolt = <1200000>; 226 regulator-max-microvolt = <1200000>;
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi
index 2207c08e3fa3..e8807503f87c 100644
--- a/arch/arm/boot/dts/tegra20.dtsi
+++ b/arch/arm/boot/dts/tegra20.dtsi
@@ -376,6 +376,19 @@
376 status = "disabled"; 376 status = "disabled";
377 }; 377 };
378 378
379 gmi@70009000 {
380 compatible = "nvidia,tegra20-gmi";
381 reg = <0x70009000 0x1000>;
382 #address-cells = <2>;
383 #size-cells = <1>;
384 ranges = <0 0 0xd0000000 0xfffffff>;
385 clocks = <&tegra_car TEGRA20_CLK_NOR>;
386 clock-names = "gmi";
387 resets = <&tegra_car 42>;
388 reset-names = "gmi";
389 status = "disabled";
390 };
391
379 pwm: pwm@7000a000 { 392 pwm: pwm@7000a000 {
380 compatible = "nvidia,tegra20-pwm"; 393 compatible = "nvidia,tegra20-pwm";
381 reg = <0x7000a000 0x100>; 394 reg = <0x7000a000 0x100>;
diff --git a/arch/arm/boot/dts/tegra30-apalis.dtsi b/arch/arm/boot/dts/tegra30-apalis.dtsi
index 192b95177aac..f6c7c3e958ac 100644
--- a/arch/arm/boot/dts/tegra30-apalis.dtsi
+++ b/arch/arm/boot/dts/tegra30-apalis.dtsi
@@ -48,6 +48,24 @@
48 pinctrl-0 = <&state_default>; 48 pinctrl-0 = <&state_default>;
49 49
50 state_default: pinmux { 50 state_default: pinmux {
51 /* Analogue Audio (On-module) */
52 clk1_out_pw4 {
53 nvidia,pins = "clk1_out_pw4";
54 nvidia,function = "extperiph1";
55 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
56 nvidia,tristate = <TEGRA_PIN_DISABLE>;
57 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
58 };
59 dap3_fs_pp0 {
60 nvidia,pins = "dap3_fs_pp0",
61 "dap3_sclk_pp3",
62 "dap3_din_pp1",
63 "dap3_dout_pp2";
64 nvidia,function = "i2s2";
65 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
66 nvidia,tristate = <TEGRA_PIN_DISABLE>;
67 };
68
51 /* Apalis BKL1_ON */ 69 /* Apalis BKL1_ON */
52 pv2 { 70 pv2 {
53 nvidia,pins = "pv2"; 71 nvidia,pins = "pv2";
@@ -429,6 +447,15 @@
429 status = "okay"; 447 status = "okay";
430 clock-frequency = <100000>; 448 clock-frequency = <100000>;
431 449
450 /* SGTL5000 audio codec */
451 sgtl5000: codec@a {
452 compatible = "fsl,sgtl5000";
453 reg = <0x0a>;
454 VDDA-supply = <&sys_3v3_reg>;
455 VDDIO-supply = <&sys_3v3_reg>;
456 clocks = <&tegra_car TEGRA30_CLK_EXTERN1>;
457 };
458
432 pmic: tps65911@2d { 459 pmic: tps65911@2d {
433 compatible = "ti,tps65911"; 460 compatible = "ti,tps65911";
434 reg = <0x2d>; 461 reg = <0x2d>;
@@ -660,6 +687,12 @@
660 nvidia,sys-clock-req-active-high; 687 nvidia,sys-clock-req-active-high;
661 }; 688 };
662 689
690 ahub@70080000 {
691 i2s@70080500 {
692 status = "okay";
693 };
694 };
695
663 /* eMMC */ 696 /* eMMC */
664 sdhci@78000600 { 697 sdhci@78000600 {
665 status = "okay"; 698 status = "okay";
@@ -733,4 +766,20 @@
733 regulator-always-on; 766 regulator-always-on;
734 }; 767 };
735 }; 768 };
769
770 sound {
771 compatible = "toradex,tegra-audio-sgtl5000-apalis_t30",
772 "nvidia,tegra-audio-sgtl5000";
773 nvidia,model = "Toradex Apalis T30";
774 nvidia,audio-routing =
775 "Headphone Jack", "HP_OUT",
776 "LINE_IN", "Line In Jack",
777 "MIC_IN", "Mic Jack";
778 nvidia,i2s-controller = <&tegra_i2s2>;
779 nvidia,audio-codec = <&sgtl5000>;
780 clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
781 <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
782 <&tegra_car TEGRA30_CLK_EXTERN1>;
783 clock-names = "pll_a", "pll_a_out0", "mclk";
784 };
736}; 785};
diff --git a/arch/arm/boot/dts/tegra30-colibri.dtsi b/arch/arm/boot/dts/tegra30-colibri.dtsi
index a265534cd314..5360d638eedc 100644
--- a/arch/arm/boot/dts/tegra30-colibri.dtsi
+++ b/arch/arm/boot/dts/tegra30-colibri.dtsi
@@ -29,6 +29,24 @@
29 pinctrl-0 = <&state_default>; 29 pinctrl-0 = <&state_default>;
30 30
31 state_default: pinmux { 31 state_default: pinmux {
32 /* Analogue Audio (On-module) */
33 clk1_out_pw4 {
34 nvidia,pins = "clk1_out_pw4";
35 nvidia,function = "extperiph1";
36 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
37 nvidia,tristate = <TEGRA_PIN_DISABLE>;
38 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
39 };
40 dap3_fs_pp0 {
41 nvidia,pins = "dap3_fs_pp0",
42 "dap3_sclk_pp3",
43 "dap3_din_pp1",
44 "dap3_dout_pp2";
45 nvidia,function = "i2s2";
46 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
47 nvidia,tristate = <TEGRA_PIN_DISABLE>;
48 };
49
32 /* Colibri BL_ON */ 50 /* Colibri BL_ON */
33 pv2 { 51 pv2 {
34 nvidia,pins = "pv2"; 52 nvidia,pins = "pv2";
@@ -207,6 +225,15 @@
207 status = "okay"; 225 status = "okay";
208 clock-frequency = <100000>; 226 clock-frequency = <100000>;
209 227
228 /* SGTL5000 audio codec */
229 sgtl5000: codec@a {
230 compatible = "fsl,sgtl5000";
231 reg = <0x0a>;
232 VDDA-supply = <&sys_3v3_reg>;
233 VDDIO-supply = <&sys_3v3_reg>;
234 clocks = <&tegra_car TEGRA30_CLK_EXTERN1>;
235 };
236
210 pmic: tps65911@2d { 237 pmic: tps65911@2d {
211 compatible = "ti,tps65911"; 238 compatible = "ti,tps65911";
212 reg = <0x2d>; 239 reg = <0x2d>;
@@ -396,6 +423,12 @@
396 nvidia,sys-clock-req-active-high; 423 nvidia,sys-clock-req-active-high;
397 }; 424 };
398 425
426 ahub@70080000 {
427 i2s@70080500 {
428 status = "okay";
429 };
430 };
431
399 /* eMMC */ 432 /* eMMC */
400 sdhci@78000600 { 433 sdhci@78000600 {
401 status = "okay"; 434 status = "okay";
@@ -471,4 +504,20 @@
471 regulator-always-on; 504 regulator-always-on;
472 }; 505 };
473 }; 506 };
507
508 sound {
509 compatible = "toradex,tegra-audio-sgtl5000-colibri_t30",
510 "nvidia,tegra-audio-sgtl5000";
511 nvidia,model = "Toradex Colibri T30";
512 nvidia,audio-routing =
513 "Headphone Jack", "HP_OUT",
514 "LINE_IN", "Line In Jack",
515 "MIC_IN", "Mic Jack";
516 nvidia,i2s-controller = <&tegra_i2s2>;
517 nvidia,audio-codec = <&sgtl5000>;
518 clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
519 <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
520 <&tegra_car TEGRA30_CLK_EXTERN1>;
521 clock-names = "pll_a", "pll_a_out0", "mclk";
522 };
474}; 523};
diff --git a/arch/arm/boot/dts/tegra30.dtsi b/arch/arm/boot/dts/tegra30.dtsi
index 5030065cbdfe..bbb1c002e7f1 100644
--- a/arch/arm/boot/dts/tegra30.dtsi
+++ b/arch/arm/boot/dts/tegra30.dtsi
@@ -439,6 +439,19 @@
439 status = "disabled"; 439 status = "disabled";
440 }; 440 };
441 441
442 gmi@70009000 {
443 compatible = "nvidia,tegra30-gmi";
444 reg = <0x70009000 0x1000>;
445 #address-cells = <2>;
446 #size-cells = <1>;
447 ranges = <0 0 0x48000000 0x7ffffff>;
448 clocks = <&tegra_car TEGRA30_CLK_NOR>;
449 clock-names = "gmi";
450 resets = <&tegra_car 42>;
451 reset-names = "gmi";
452 status = "disabled";
453 };
454
442 pwm: pwm@7000a000 { 455 pwm: pwm@7000a000 {
443 compatible = "nvidia,tegra30-pwm", "nvidia,tegra20-pwm"; 456 compatible = "nvidia,tegra30-pwm", "nvidia,tegra20-pwm";
444 reg = <0x7000a000 0x100>; 457 reg = <0x7000a000 0x100>;
diff --git a/arch/arm/boot/dts/tps65217.dtsi b/arch/arm/boot/dts/tps65217.dtsi
index a63272422d76..02de56b55823 100644
--- a/arch/arm/boot/dts/tps65217.dtsi
+++ b/arch/arm/boot/dts/tps65217.dtsi
@@ -13,6 +13,18 @@
13 13
14&tps { 14&tps {
15 compatible = "ti,tps65217"; 15 compatible = "ti,tps65217";
16 interrupt-controller;
17 #interrupt-cells = <1>;
18
19 charger {
20 compatible = "ti,tps65217-charger";
21 status = "disabled";
22 };
23
24 pwrbutton {
25 compatible = "ti,tps65217-pwrbutton";
26 status = "disabled";
27 };
16 28
17 regulators { 29 regulators {
18 #address-cells = <1>; 30 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/uniphier-common32.dtsi b/arch/arm/boot/dts/uniphier-common32.dtsi
deleted file mode 100644
index 8c8a85176b64..000000000000
--- a/arch/arm/boot/dts/uniphier-common32.dtsi
+++ /dev/null
@@ -1,199 +0,0 @@
1/*
2 * Device Tree Source commonly used by UniPhier ARM SoCs
3 *
4 * Copyright (C) 2015-2016 Socionext Inc.
5 * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
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 * a) This file is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License as
14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version.
16 *
17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * Or, alternatively,
23 *
24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following
31 * conditions:
32 *
33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software.
35 *
36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE.
44 */
45
46/include/ "skeleton.dtsi"
47
48/ {
49 psci {
50 compatible = "arm,psci-0.2";
51 method = "smc";
52 };
53
54 clocks {
55 refclk: ref {
56 #clock-cells = <0>;
57 compatible = "fixed-clock";
58 };
59 };
60
61 soc: soc {
62 compatible = "simple-bus";
63 #address-cells = <1>;
64 #size-cells = <1>;
65 ranges;
66 interrupt-parent = <&intc>;
67
68 serial0: serial@54006800 {
69 compatible = "socionext,uniphier-uart";
70 status = "disabled";
71 reg = <0x54006800 0x40>;
72 interrupts = <0 33 4>;
73 pinctrl-names = "default";
74 pinctrl-0 = <&pinctrl_uart0>;
75 clocks = <&peri_clk 0>;
76 };
77
78 serial1: serial@54006900 {
79 compatible = "socionext,uniphier-uart";
80 status = "disabled";
81 reg = <0x54006900 0x40>;
82 interrupts = <0 35 4>;
83 pinctrl-names = "default";
84 pinctrl-0 = <&pinctrl_uart1>;
85 clocks = <&peri_clk 1>;
86 };
87
88 serial2: serial@54006a00 {
89 compatible = "socionext,uniphier-uart";
90 status = "disabled";
91 reg = <0x54006a00 0x40>;
92 interrupts = <0 37 4>;
93 pinctrl-names = "default";
94 pinctrl-0 = <&pinctrl_uart2>;
95 clocks = <&peri_clk 2>;
96 };
97
98 serial3: serial@54006b00 {
99 compatible = "socionext,uniphier-uart";
100 status = "disabled";
101 reg = <0x54006b00 0x40>;
102 interrupts = <0 177 4>;
103 pinctrl-names = "default";
104 pinctrl-0 = <&pinctrl_uart3>;
105 clocks = <&peri_clk 3>;
106 };
107
108 system_bus: system-bus@58c00000 {
109 compatible = "socionext,uniphier-system-bus";
110 status = "disabled";
111 reg = <0x58c00000 0x400>;
112 #address-cells = <2>;
113 #size-cells = <1>;
114 pinctrl-names = "default";
115 pinctrl-0 = <&pinctrl_system_bus>;
116 };
117
118 smpctrl@59800000 {
119 compatible = "socionext,uniphier-smpctrl";
120 reg = <0x59801000 0x400>;
121 };
122
123 mioctrl@59810000 {
124 compatible = "socionext,uniphier-mioctrl",
125 "simple-mfd", "syscon";
126 reg = <0x59810000 0x800>;
127
128 mio_clk: clock {
129 #clock-cells = <1>;
130 };
131
132 mio_rst: reset {
133 #reset-cells = <1>;
134 };
135 };
136
137 perictrl@59820000 {
138 compatible = "socionext,uniphier-perictrl",
139 "simple-mfd", "syscon";
140 reg = <0x59820000 0x200>;
141
142 peri_clk: clock {
143 #clock-cells = <1>;
144 };
145
146 peri_rst: reset {
147 #reset-cells = <1>;
148 };
149 };
150
151 timer@60000200 {
152 compatible = "arm,cortex-a9-global-timer";
153 reg = <0x60000200 0x20>;
154 interrupts = <1 11 0x104>;
155 clocks = <&arm_timer_clk>;
156 };
157
158 timer@60000600 {
159 compatible = "arm,cortex-a9-twd-timer";
160 reg = <0x60000600 0x20>;
161 interrupts = <1 13 0x104>;
162 clocks = <&arm_timer_clk>;
163 };
164
165 intc: interrupt-controller@60001000 {
166 compatible = "arm,cortex-a9-gic";
167 reg = <0x60001000 0x1000>,
168 <0x60000100 0x100>;
169 #interrupt-cells = <3>;
170 interrupt-controller;
171 };
172
173 soc-glue@5f800000 {
174 compatible = "socionext,uniphier-soc-glue",
175 "simple-mfd", "syscon";
176 reg = <0x5f800000 0x2000>;
177
178 pinctrl: pinctrl {
179 /* specify compatible in each SoC DTSI */
180 };
181 };
182
183 sysctrl@61840000 {
184 compatible = "socionext,uniphier-sysctrl",
185 "simple-mfd", "syscon";
186 reg = <0x61840000 0x4000>;
187
188 sys_clk: clock {
189 #clock-cells = <1>;
190 };
191
192 sys_rst: reset {
193 #reset-cells = <1>;
194 };
195 };
196 };
197};
198
199/include/ "uniphier-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/uniphier-ld4.dtsi b/arch/arm/boot/dts/uniphier-ld4.dtsi
index 95f342c9d9c1..a7c494d7c43a 100644
--- a/arch/arm/boot/dts/uniphier-ld4.dtsi
+++ b/arch/arm/boot/dts/uniphier-ld4.dtsi
@@ -43,7 +43,7 @@
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
44 */ 44 */
45 45
46/include/ "uniphier-common32.dtsi" 46/include/ "skeleton.dtsi"
47 47
48/ { 48/ {
49 compatible = "socionext,uniphier-ld4"; 49 compatible = "socionext,uniphier-ld4";
@@ -61,147 +61,267 @@
61 }; 61 };
62 }; 62 };
63 63
64 psci {
65 compatible = "arm,psci-0.2";
66 method = "smc";
67 };
68
64 clocks { 69 clocks {
70 refclk: ref {
71 compatible = "fixed-clock";
72 #clock-cells = <0>;
73 clock-frequency = <24576000>;
74 };
75
65 arm_timer_clk: arm_timer_clk { 76 arm_timer_clk: arm_timer_clk {
66 #clock-cells = <0>; 77 #clock-cells = <0>;
67 compatible = "fixed-clock"; 78 compatible = "fixed-clock";
68 clock-frequency = <50000000>; 79 clock-frequency = <50000000>;
69 }; 80 };
70 }; 81 };
71};
72
73&soc {
74 l2: l2-cache@500c0000 {
75 compatible = "socionext,uniphier-system-cache";
76 reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>;
77 interrupts = <0 174 4>, <0 175 4>;
78 cache-unified;
79 cache-size = <(512 * 1024)>;
80 cache-sets = <256>;
81 cache-line-size = <128>;
82 cache-level = <2>;
83 };
84 82
85 i2c0: i2c@58400000 { 83 soc {
86 compatible = "socionext,uniphier-i2c"; 84 compatible = "simple-bus";
87 status = "disabled";
88 reg = <0x58400000 0x40>;
89 #address-cells = <1>; 85 #address-cells = <1>;
90 #size-cells = <0>; 86 #size-cells = <1>;
91 interrupts = <0 41 1>; 87 ranges;
92 pinctrl-names = "default"; 88 interrupt-parent = <&intc>;
93 pinctrl-0 = <&pinctrl_i2c0>;
94 clocks = <&peri_clk 4>;
95 clock-frequency = <100000>;
96 };
97 89
98 i2c1: i2c@58480000 { 90 l2: l2-cache@500c0000 {
99 compatible = "socionext,uniphier-i2c"; 91 compatible = "socionext,uniphier-system-cache";
100 status = "disabled"; 92 reg = <0x500c0000 0x2000>, <0x503c0100 0x4>,
101 reg = <0x58480000 0x40>; 93 <0x506c0000 0x400>;
102 #address-cells = <1>; 94 interrupts = <0 174 4>, <0 175 4>;
103 #size-cells = <0>; 95 cache-unified;
104 interrupts = <0 42 1>; 96 cache-size = <(512 * 1024)>;
105 pinctrl-names = "default"; 97 cache-sets = <256>;
106 pinctrl-0 = <&pinctrl_i2c1>; 98 cache-line-size = <128>;
107 clocks = <&peri_clk 5>; 99 cache-level = <2>;
108 clock-frequency = <100000>; 100 };
109 };
110 101
111 /* chip-internal connection for DMD */ 102 serial0: serial@54006800 {
112 i2c2: i2c@58500000 { 103 compatible = "socionext,uniphier-uart";
113 compatible = "socionext,uniphier-i2c"; 104 status = "disabled";
114 reg = <0x58500000 0x40>; 105 reg = <0x54006800 0x40>;
115 #address-cells = <1>; 106 interrupts = <0 33 4>;
116 #size-cells = <0>; 107 pinctrl-names = "default";
117 interrupts = <0 43 1>; 108 pinctrl-0 = <&pinctrl_uart0>;
118 pinctrl-names = "default"; 109 clocks = <&peri_clk 0>;
119 pinctrl-0 = <&pinctrl_i2c2>; 110 };
120 clocks = <&peri_clk 6>;
121 clock-frequency = <400000>;
122 };
123 111
124 i2c3: i2c@58580000 { 112 serial1: serial@54006900 {
125 compatible = "socionext,uniphier-i2c"; 113 compatible = "socionext,uniphier-uart";
126 status = "disabled"; 114 status = "disabled";
127 reg = <0x58580000 0x40>; 115 reg = <0x54006900 0x40>;
128 #address-cells = <1>; 116 interrupts = <0 35 4>;
129 #size-cells = <0>; 117 pinctrl-names = "default";
130 interrupts = <0 44 1>; 118 pinctrl-0 = <&pinctrl_uart1>;
131 pinctrl-names = "default"; 119 clocks = <&peri_clk 1>;
132 pinctrl-0 = <&pinctrl_i2c3>; 120 };
133 clocks = <&peri_clk 7>;
134 clock-frequency = <100000>;
135 };
136 121
137 usb0: usb@5a800100 { 122 serial2: serial@54006a00 {
138 compatible = "socionext,uniphier-ehci", "generic-ehci"; 123 compatible = "socionext,uniphier-uart";
139 status = "disabled"; 124 status = "disabled";
140 reg = <0x5a800100 0x100>; 125 reg = <0x54006a00 0x40>;
141 interrupts = <0 80 4>; 126 interrupts = <0 37 4>;
142 pinctrl-names = "default"; 127 pinctrl-names = "default";
143 pinctrl-0 = <&pinctrl_usb0>; 128 pinctrl-0 = <&pinctrl_uart2>;
144 clocks = <&mio_clk 7>, <&mio_clk 8>, <&mio_clk 12>; 129 clocks = <&peri_clk 2>;
145 resets = <&mio_rst 7>, <&mio_rst 8>, <&mio_rst 12>, <&sys_rst 8>; 130 };
146 };
147 131
148 usb1: usb@5a810100 { 132 serial3: serial@54006b00 {
149 compatible = "socionext,uniphier-ehci", "generic-ehci"; 133 compatible = "socionext,uniphier-uart";
150 status = "disabled"; 134 status = "disabled";
151 reg = <0x5a810100 0x100>; 135 reg = <0x54006b00 0x40>;
152 interrupts = <0 81 4>; 136 interrupts = <0 29 4>;
153 pinctrl-names = "default"; 137 pinctrl-names = "default";
154 pinctrl-0 = <&pinctrl_usb1>; 138 pinctrl-0 = <&pinctrl_uart3>;
155 clocks = <&mio_clk 7>, <&mio_clk 9>, <&mio_clk 13>; 139 clocks = <&peri_clk 3>;
156 resets = <&mio_rst 7>, <&mio_rst 9>, <&mio_rst 13>, <&sys_rst 8>; 140 };
157 };
158 141
159 usb2: usb@5a820100 { 142 i2c0: i2c@58400000 {
160 compatible = "socionext,uniphier-ehci", "generic-ehci"; 143 compatible = "socionext,uniphier-i2c";
161 status = "disabled"; 144 status = "disabled";
162 reg = <0x5a820100 0x100>; 145 reg = <0x58400000 0x40>;
163 interrupts = <0 82 4>; 146 #address-cells = <1>;
164 pinctrl-names = "default"; 147 #size-cells = <0>;
165 pinctrl-0 = <&pinctrl_usb2>; 148 interrupts = <0 41 1>;
166 clocks = <&mio_clk 7>, <&mio_clk 10>, <&mio_clk 14>; 149 pinctrl-names = "default";
167 resets = <&mio_rst 7>, <&mio_rst 10>, <&mio_rst 14>, <&sys_rst 8>; 150 pinctrl-0 = <&pinctrl_i2c0>;
168 }; 151 clocks = <&peri_clk 4>;
152 clock-frequency = <100000>;
153 };
169 154
170}; 155 i2c1: i2c@58480000 {
156 compatible = "socionext,uniphier-i2c";
157 status = "disabled";
158 reg = <0x58480000 0x40>;
159 #address-cells = <1>;
160 #size-cells = <0>;
161 interrupts = <0 42 1>;
162 pinctrl-names = "default";
163 pinctrl-0 = <&pinctrl_i2c1>;
164 clocks = <&peri_clk 5>;
165 clock-frequency = <100000>;
166 };
171 167
172&refclk { 168 /* chip-internal connection for DMD */
173 clock-frequency = <24576000>; 169 i2c2: i2c@58500000 {
174}; 170 compatible = "socionext,uniphier-i2c";
171 reg = <0x58500000 0x40>;
172 #address-cells = <1>;
173 #size-cells = <0>;
174 interrupts = <0 43 1>;
175 pinctrl-names = "default";
176 pinctrl-0 = <&pinctrl_i2c2>;
177 clocks = <&peri_clk 6>;
178 clock-frequency = <400000>;
179 };
175 180
176&serial3 { 181 i2c3: i2c@58580000 {
177 interrupts = <0 29 4>; 182 compatible = "socionext,uniphier-i2c";
178}; 183 status = "disabled";
184 reg = <0x58580000 0x40>;
185 #address-cells = <1>;
186 #size-cells = <0>;
187 interrupts = <0 44 1>;
188 pinctrl-names = "default";
189 pinctrl-0 = <&pinctrl_i2c3>;
190 clocks = <&peri_clk 7>;
191 clock-frequency = <100000>;
192 };
179 193
180&mio_clk { 194 system_bus: system-bus@58c00000 {
181 compatible = "socionext,uniphier-ld4-mio-clock"; 195 compatible = "socionext,uniphier-system-bus";
182}; 196 status = "disabled";
197 reg = <0x58c00000 0x400>;
198 #address-cells = <2>;
199 #size-cells = <1>;
200 pinctrl-names = "default";
201 pinctrl-0 = <&pinctrl_system_bus>;
202 };
183 203
184&mio_rst { 204 smpctrl@59800000 {
185 compatible = "socionext,uniphier-ld4-mio-reset"; 205 compatible = "socionext,uniphier-smpctrl";
186 resets = <&sys_rst 7>; 206 reg = <0x59801000 0x400>;
187}; 207 };
188 208
189&peri_clk { 209 mioctrl@59810000 {
190 compatible = "socionext,uniphier-ld4-peri-clock"; 210 compatible = "socionext,uniphier-ld4-mioctrl",
191}; 211 "simple-mfd", "syscon";
212 reg = <0x59810000 0x800>;
192 213
193&peri_rst { 214 mio_clk: clock {
194 compatible = "socionext,uniphier-ld4-peri-reset"; 215 compatible = "socionext,uniphier-ld4-mio-clock";
195}; 216 #clock-cells = <1>;
217 };
196 218
197&pinctrl { 219 mio_rst: reset {
198 compatible = "socionext,uniphier-ld4-pinctrl"; 220 compatible = "socionext,uniphier-ld4-mio-reset";
199}; 221 #reset-cells = <1>;
222 };
223 };
200 224
201&sys_clk { 225 perictrl@59820000 {
202 compatible = "socionext,uniphier-ld4-clock"; 226 compatible = "socionext,uniphier-ld4-perictrl",
203}; 227 "simple-mfd", "syscon";
228 reg = <0x59820000 0x200>;
229
230 peri_clk: clock {
231 compatible = "socionext,uniphier-ld4-peri-clock";
232 #clock-cells = <1>;
233 };
234
235 peri_rst: reset {
236 compatible = "socionext,uniphier-ld4-peri-reset";
237 #reset-cells = <1>;
238 };
239 };
240
241 usb0: usb@5a800100 {
242 compatible = "socionext,uniphier-ehci", "generic-ehci";
243 status = "disabled";
244 reg = <0x5a800100 0x100>;
245 interrupts = <0 80 4>;
246 pinctrl-names = "default";
247 pinctrl-0 = <&pinctrl_usb0>;
248 clocks = <&mio_clk 7>, <&mio_clk 8>, <&mio_clk 12>;
249 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 8>,
250 <&mio_rst 12>;
251 };
252
253 usb1: usb@5a810100 {
254 compatible = "socionext,uniphier-ehci", "generic-ehci";
255 status = "disabled";
256 reg = <0x5a810100 0x100>;
257 interrupts = <0 81 4>;
258 pinctrl-names = "default";
259 pinctrl-0 = <&pinctrl_usb1>;
260 clocks = <&mio_clk 7>, <&mio_clk 9>, <&mio_clk 13>;
261 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 9>,
262 <&mio_rst 13>;
263 };
204 264
205&sys_rst { 265 usb2: usb@5a820100 {
206 compatible = "socionext,uniphier-ld4-reset"; 266 compatible = "socionext,uniphier-ehci", "generic-ehci";
267 status = "disabled";
268 reg = <0x5a820100 0x100>;
269 interrupts = <0 82 4>;
270 pinctrl-names = "default";
271 pinctrl-0 = <&pinctrl_usb2>;
272 clocks = <&mio_clk 7>, <&mio_clk 10>, <&mio_clk 14>;
273 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 10>,
274 <&mio_rst 14>;
275 };
276
277 soc-glue@5f800000 {
278 compatible = "socionext,uniphier-ld4-soc-glue",
279 "simple-mfd", "syscon";
280 reg = <0x5f800000 0x2000>;
281
282 pinctrl: pinctrl {
283 compatible = "socionext,uniphier-ld4-pinctrl";
284 };
285 };
286
287 timer@60000200 {
288 compatible = "arm,cortex-a9-global-timer";
289 reg = <0x60000200 0x20>;
290 interrupts = <1 11 0x104>;
291 clocks = <&arm_timer_clk>;
292 };
293
294 timer@60000600 {
295 compatible = "arm,cortex-a9-twd-timer";
296 reg = <0x60000600 0x20>;
297 interrupts = <1 13 0x104>;
298 clocks = <&arm_timer_clk>;
299 };
300
301 intc: interrupt-controller@60001000 {
302 compatible = "arm,cortex-a9-gic";
303 reg = <0x60001000 0x1000>,
304 <0x60000100 0x100>;
305 #interrupt-cells = <3>;
306 interrupt-controller;
307 };
308
309 sysctrl@61840000 {
310 compatible = "socionext,uniphier-ld4-sysctrl",
311 "simple-mfd", "syscon";
312 reg = <0x61840000 0x10000>;
313
314 sys_clk: clock {
315 compatible = "socionext,uniphier-ld4-clock";
316 #clock-cells = <1>;
317 };
318
319 sys_rst: reset {
320 compatible = "socionext,uniphier-ld4-reset";
321 #reset-cells = <1>;
322 };
323 };
324 };
207}; 325};
326
327/include/ "uniphier-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/uniphier-pro4.dtsi b/arch/arm/boot/dts/uniphier-pro4.dtsi
index ba700267ad66..e960b09ff01c 100644
--- a/arch/arm/boot/dts/uniphier-pro4.dtsi
+++ b/arch/arm/boot/dts/uniphier-pro4.dtsi
@@ -43,7 +43,7 @@
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
44 */ 44 */
45 45
46/include/ "uniphier-common32.dtsi" 46/include/ "skeleton.dtsi"
47 47
48/ { 48/ {
49 compatible = "socionext,uniphier-pro4"; 49 compatible = "socionext,uniphier-pro4";
@@ -69,155 +69,279 @@
69 }; 69 };
70 }; 70 };
71 71
72 psci {
73 compatible = "arm,psci-0.2";
74 method = "smc";
75 };
76
72 clocks { 77 clocks {
78 refclk: ref {
79 compatible = "fixed-clock";
80 #clock-cells = <0>;
81 clock-frequency = <25000000>;
82 };
83
73 arm_timer_clk: arm_timer_clk { 84 arm_timer_clk: arm_timer_clk {
74 #clock-cells = <0>; 85 #clock-cells = <0>;
75 compatible = "fixed-clock"; 86 compatible = "fixed-clock";
76 clock-frequency = <50000000>; 87 clock-frequency = <50000000>;
77 }; 88 };
78 }; 89 };
79};
80 90
81&soc { 91 soc {
82 l2: l2-cache@500c0000 { 92 compatible = "simple-bus";
83 compatible = "socionext,uniphier-system-cache";
84 reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>;
85 interrupts = <0 174 4>, <0 175 4>;
86 cache-unified;
87 cache-size = <(768 * 1024)>;
88 cache-sets = <256>;
89 cache-line-size = <128>;
90 cache-level = <2>;
91 };
92
93 i2c0: i2c@58780000 {
94 compatible = "socionext,uniphier-fi2c";
95 status = "disabled";
96 reg = <0x58780000 0x80>;
97 #address-cells = <1>; 93 #address-cells = <1>;
98 #size-cells = <0>; 94 #size-cells = <1>;
99 interrupts = <0 41 4>; 95 ranges;
100 pinctrl-names = "default"; 96 interrupt-parent = <&intc>;
101 pinctrl-0 = <&pinctrl_i2c0>;
102 clocks = <&peri_clk 4>;
103 clock-frequency = <100000>;
104 };
105 97
106 i2c1: i2c@58781000 { 98 l2: l2-cache@500c0000 {
107 compatible = "socionext,uniphier-fi2c"; 99 compatible = "socionext,uniphier-system-cache";
108 status = "disabled"; 100 reg = <0x500c0000 0x2000>, <0x503c0100 0x4>,
109 reg = <0x58781000 0x80>; 101 <0x506c0000 0x400>;
110 #address-cells = <1>; 102 interrupts = <0 174 4>, <0 175 4>;
111 #size-cells = <0>; 103 cache-unified;
112 interrupts = <0 42 4>; 104 cache-size = <(768 * 1024)>;
113 pinctrl-names = "default"; 105 cache-sets = <256>;
114 pinctrl-0 = <&pinctrl_i2c1>; 106 cache-line-size = <128>;
115 clocks = <&peri_clk 5>; 107 cache-level = <2>;
116 clock-frequency = <100000>; 108 };
117 };
118 109
119 i2c2: i2c@58782000 { 110 serial0: serial@54006800 {
120 compatible = "socionext,uniphier-fi2c"; 111 compatible = "socionext,uniphier-uart";
121 status = "disabled"; 112 status = "disabled";
122 reg = <0x58782000 0x80>; 113 reg = <0x54006800 0x40>;
123 #address-cells = <1>; 114 interrupts = <0 33 4>;
124 #size-cells = <0>; 115 pinctrl-names = "default";
125 interrupts = <0 43 4>; 116 pinctrl-0 = <&pinctrl_uart0>;
126 pinctrl-names = "default"; 117 clocks = <&peri_clk 0>;
127 pinctrl-0 = <&pinctrl_i2c2>; 118 };
128 clocks = <&peri_clk 6>;
129 clock-frequency = <100000>;
130 };
131 119
132 i2c3: i2c@58783000 { 120 serial1: serial@54006900 {
133 compatible = "socionext,uniphier-fi2c"; 121 compatible = "socionext,uniphier-uart";
134 status = "disabled"; 122 status = "disabled";
135 reg = <0x58783000 0x80>; 123 reg = <0x54006900 0x40>;
136 #address-cells = <1>; 124 interrupts = <0 35 4>;
137 #size-cells = <0>; 125 pinctrl-names = "default";
138 interrupts = <0 44 4>; 126 pinctrl-0 = <&pinctrl_uart1>;
139 pinctrl-names = "default"; 127 clocks = <&peri_clk 1>;
140 pinctrl-0 = <&pinctrl_i2c3>; 128 };
141 clocks = <&peri_clk 7>;
142 clock-frequency = <100000>;
143 };
144 129
145 /* i2c4 does not exist */ 130 serial2: serial@54006a00 {
131 compatible = "socionext,uniphier-uart";
132 status = "disabled";
133 reg = <0x54006a00 0x40>;
134 interrupts = <0 37 4>;
135 pinctrl-names = "default";
136 pinctrl-0 = <&pinctrl_uart2>;
137 clocks = <&peri_clk 2>;
138 };
146 139
147 /* chip-internal connection for DMD */ 140 serial3: serial@54006b00 {
148 i2c5: i2c@58785000 { 141 compatible = "socionext,uniphier-uart";
149 compatible = "socionext,uniphier-fi2c"; 142 status = "disabled";
150 reg = <0x58785000 0x80>; 143 reg = <0x54006b00 0x40>;
151 #address-cells = <1>; 144 interrupts = <0 177 4>;
152 #size-cells = <0>; 145 pinctrl-names = "default";
153 interrupts = <0 25 4>; 146 pinctrl-0 = <&pinctrl_uart3>;
154 clocks = <&peri_clk 9>; 147 clocks = <&peri_clk 3>;
155 clock-frequency = <400000>; 148 };
156 };
157 149
158 /* chip-internal connection for HDMI */ 150 i2c0: i2c@58780000 {
159 i2c6: i2c@58786000 { 151 compatible = "socionext,uniphier-fi2c";
160 compatible = "socionext,uniphier-fi2c"; 152 status = "disabled";
161 reg = <0x58786000 0x80>; 153 reg = <0x58780000 0x80>;
162 #address-cells = <1>; 154 #address-cells = <1>;
163 #size-cells = <0>; 155 #size-cells = <0>;
164 interrupts = <0 26 4>; 156 interrupts = <0 41 4>;
165 clocks = <&peri_clk 10>; 157 pinctrl-names = "default";
166 clock-frequency = <400000>; 158 pinctrl-0 = <&pinctrl_i2c0>;
167 }; 159 clocks = <&peri_clk 4>;
160 clock-frequency = <100000>;
161 };
168 162
169 usb2: usb@5a800100 { 163 i2c1: i2c@58781000 {
170 compatible = "socionext,uniphier-ehci", "generic-ehci"; 164 compatible = "socionext,uniphier-fi2c";
171 status = "disabled"; 165 status = "disabled";
172 reg = <0x5a800100 0x100>; 166 reg = <0x58781000 0x80>;
173 interrupts = <0 80 4>; 167 #address-cells = <1>;
174 pinctrl-names = "default"; 168 #size-cells = <0>;
175 pinctrl-0 = <&pinctrl_usb2>; 169 interrupts = <0 42 4>;
176 clocks = <&mio_clk 7>, <&mio_clk 8>, <&mio_clk 12>; 170 pinctrl-names = "default";
177 resets = <&mio_rst 7>, <&mio_rst 8>, <&mio_rst 12>, <&sys_rst 8>; 171 pinctrl-0 = <&pinctrl_i2c1>;
178 }; 172 clocks = <&peri_clk 5>;
173 clock-frequency = <100000>;
174 };
179 175
180 usb3: usb@5a810100 { 176 i2c2: i2c@58782000 {
181 compatible = "socionext,uniphier-ehci", "generic-ehci"; 177 compatible = "socionext,uniphier-fi2c";
182 status = "disabled"; 178 status = "disabled";
183 reg = <0x5a810100 0x100>; 179 reg = <0x58782000 0x80>;
184 interrupts = <0 81 4>; 180 #address-cells = <1>;
185 pinctrl-names = "default"; 181 #size-cells = <0>;
186 pinctrl-0 = <&pinctrl_usb3>; 182 interrupts = <0 43 4>;
187 clocks = <&mio_clk 7>, <&mio_clk 9>, <&mio_clk 13>; 183 pinctrl-names = "default";
188 resets = <&mio_rst 7>, <&mio_rst 9>, <&mio_rst 13>, <&sys_rst 8>; 184 pinctrl-0 = <&pinctrl_i2c2>;
189 }; 185 clocks = <&peri_clk 6>;
190}; 186 clock-frequency = <100000>;
187 };
191 188
192&refclk { 189 i2c3: i2c@58783000 {
193 clock-frequency = <25000000>; 190 compatible = "socionext,uniphier-fi2c";
194}; 191 status = "disabled";
192 reg = <0x58783000 0x80>;
193 #address-cells = <1>;
194 #size-cells = <0>;
195 interrupts = <0 44 4>;
196 pinctrl-names = "default";
197 pinctrl-0 = <&pinctrl_i2c3>;
198 clocks = <&peri_clk 7>;
199 clock-frequency = <100000>;
200 };
195 201
196&mio_clk { 202 /* i2c4 does not exist */
197 compatible = "socionext,uniphier-pro4-mio-clock";
198};
199 203
200&mio_rst { 204 /* chip-internal connection for DMD */
201 compatible = "socionext,uniphier-pro4-mio-reset"; 205 i2c5: i2c@58785000 {
202 resets = <&sys_rst 7>; 206 compatible = "socionext,uniphier-fi2c";
203}; 207 reg = <0x58785000 0x80>;
208 #address-cells = <1>;
209 #size-cells = <0>;
210 interrupts = <0 25 4>;
211 clocks = <&peri_clk 9>;
212 clock-frequency = <400000>;
213 };
204 214
205&peri_clk { 215 /* chip-internal connection for HDMI */
206 compatible = "socionext,uniphier-pro4-peri-clock"; 216 i2c6: i2c@58786000 {
207}; 217 compatible = "socionext,uniphier-fi2c";
218 reg = <0x58786000 0x80>;
219 #address-cells = <1>;
220 #size-cells = <0>;
221 interrupts = <0 26 4>;
222 clocks = <&peri_clk 10>;
223 clock-frequency = <400000>;
224 };
208 225
209&peri_rst { 226 system_bus: system-bus@58c00000 {
210 compatible = "socionext,uniphier-pro4-peri-reset"; 227 compatible = "socionext,uniphier-system-bus";
211}; 228 status = "disabled";
229 reg = <0x58c00000 0x400>;
230 #address-cells = <2>;
231 #size-cells = <1>;
232 pinctrl-names = "default";
233 pinctrl-0 = <&pinctrl_system_bus>;
234 };
212 235
213&pinctrl { 236 smpctrl@59800000 {
214 compatible = "socionext,uniphier-pro4-pinctrl"; 237 compatible = "socionext,uniphier-smpctrl";
215}; 238 reg = <0x59801000 0x400>;
239 };
216 240
217&sys_clk { 241 mioctrl@59810000 {
218 compatible = "socionext,uniphier-pro4-clock"; 242 compatible = "socionext,uniphier-pro4-mioctrl",
219}; 243 "simple-mfd", "syscon";
244 reg = <0x59810000 0x800>;
245
246 mio_clk: clock {
247 compatible = "socionext,uniphier-pro4-mio-clock";
248 #clock-cells = <1>;
249 };
250
251 mio_rst: reset {
252 compatible = "socionext,uniphier-pro4-mio-reset";
253 #reset-cells = <1>;
254 };
255 };
256
257 perictrl@59820000 {
258 compatible = "socionext,uniphier-pro4-perictrl",
259 "simple-mfd", "syscon";
260 reg = <0x59820000 0x200>;
261
262 peri_clk: clock {
263 compatible = "socionext,uniphier-pro4-peri-clock";
264 #clock-cells = <1>;
265 };
266
267 peri_rst: reset {
268 compatible = "socionext,uniphier-pro4-peri-reset";
269 #reset-cells = <1>;
270 };
271 };
220 272
221&sys_rst { 273 usb2: usb@5a800100 {
222 compatible = "socionext,uniphier-pro4-reset"; 274 compatible = "socionext,uniphier-ehci", "generic-ehci";
275 status = "disabled";
276 reg = <0x5a800100 0x100>;
277 interrupts = <0 80 4>;
278 pinctrl-names = "default";
279 pinctrl-0 = <&pinctrl_usb2>;
280 clocks = <&mio_clk 7>, <&mio_clk 8>, <&mio_clk 12>;
281 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 8>,
282 <&mio_rst 12>;
283 };
284
285 usb3: usb@5a810100 {
286 compatible = "socionext,uniphier-ehci", "generic-ehci";
287 status = "disabled";
288 reg = <0x5a810100 0x100>;
289 interrupts = <0 81 4>;
290 pinctrl-names = "default";
291 pinctrl-0 = <&pinctrl_usb3>;
292 clocks = <&mio_clk 7>, <&mio_clk 9>, <&mio_clk 13>;
293 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 9>,
294 <&mio_rst 13>;
295 };
296
297 soc-glue@5f800000 {
298 compatible = "socionext,uniphier-pro4-soc-glue",
299 "simple-mfd", "syscon";
300 reg = <0x5f800000 0x2000>;
301
302 pinctrl: pinctrl {
303 compatible = "socionext,uniphier-pro4-pinctrl";
304 };
305 };
306
307 timer@60000200 {
308 compatible = "arm,cortex-a9-global-timer";
309 reg = <0x60000200 0x20>;
310 interrupts = <1 11 0x304>;
311 clocks = <&arm_timer_clk>;
312 };
313
314 timer@60000600 {
315 compatible = "arm,cortex-a9-twd-timer";
316 reg = <0x60000600 0x20>;
317 interrupts = <1 13 0x304>;
318 clocks = <&arm_timer_clk>;
319 };
320
321 intc: interrupt-controller@60001000 {
322 compatible = "arm,cortex-a9-gic";
323 reg = <0x60001000 0x1000>,
324 <0x60000100 0x100>;
325 #interrupt-cells = <3>;
326 interrupt-controller;
327 };
328
329 sysctrl@61840000 {
330 compatible = "socionext,uniphier-pro4-sysctrl",
331 "simple-mfd", "syscon";
332 reg = <0x61840000 0x10000>;
333
334 sys_clk: clock {
335 compatible = "socionext,uniphier-pro4-clock";
336 #clock-cells = <1>;
337 };
338
339 sys_rst: reset {
340 compatible = "socionext,uniphier-pro4-reset";
341 #reset-cells = <1>;
342 };
343 };
344 };
223}; 345};
346
347/include/ "uniphier-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/uniphier-pro5.dtsi b/arch/arm/boot/dts/uniphier-pro5.dtsi
index 5357ea9c14b1..dbc5e5333163 100644
--- a/arch/arm/boot/dts/uniphier-pro5.dtsi
+++ b/arch/arm/boot/dts/uniphier-pro5.dtsi
@@ -43,7 +43,7 @@
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
44 */ 44 */
45 45
46/include/ "uniphier-common32.dtsi" 46/include/ "skeleton.dtsi"
47 47
48/ { 48/ {
49 compatible = "socionext,uniphier-pro5"; 49 compatible = "socionext,uniphier-pro5";
@@ -56,157 +56,355 @@
56 device_type = "cpu"; 56 device_type = "cpu";
57 compatible = "arm,cortex-a9"; 57 compatible = "arm,cortex-a9";
58 reg = <0>; 58 reg = <0>;
59 clocks = <&sys_clk 32>;
59 enable-method = "psci"; 60 enable-method = "psci";
60 next-level-cache = <&l2>; 61 next-level-cache = <&l2>;
62 operating-points-v2 = <&cpu_opp>;
61 }; 63 };
62 64
63 cpu@1 { 65 cpu@1 {
64 device_type = "cpu"; 66 device_type = "cpu";
65 compatible = "arm,cortex-a9"; 67 compatible = "arm,cortex-a9";
66 reg = <1>; 68 reg = <1>;
69 clocks = <&sys_clk 32>;
67 enable-method = "psci"; 70 enable-method = "psci";
68 next-level-cache = <&l2>; 71 next-level-cache = <&l2>;
72 operating-points-v2 = <&cpu_opp>;
69 }; 73 };
70 }; 74 };
71 75
76 cpu_opp: opp_table {
77 compatible = "operating-points-v2";
78 opp-shared;
79
80 opp@100000000 {
81 opp-hz = /bits/ 64 <100000000>;
82 clock-latency-ns = <300>;
83 };
84 opp@116667000 {
85 opp-hz = /bits/ 64 <116667000>;
86 clock-latency-ns = <300>;
87 };
88 opp@150000000 {
89 opp-hz = /bits/ 64 <150000000>;
90 clock-latency-ns = <300>;
91 };
92 opp@175000000 {
93 opp-hz = /bits/ 64 <175000000>;
94 clock-latency-ns = <300>;
95 };
96 opp@200000000 {
97 opp-hz = /bits/ 64 <200000000>;
98 clock-latency-ns = <300>;
99 };
100 opp@233334000 {
101 opp-hz = /bits/ 64 <233334000>;
102 clock-latency-ns = <300>;
103 };
104 opp@300000000 {
105 opp-hz = /bits/ 64 <300000000>;
106 clock-latency-ns = <300>;
107 };
108 opp@350000000 {
109 opp-hz = /bits/ 64 <350000000>;
110 clock-latency-ns = <300>;
111 };
112 opp@400000000 {
113 opp-hz = /bits/ 64 <400000000>;
114 clock-latency-ns = <300>;
115 };
116 opp@466667000 {
117 opp-hz = /bits/ 64 <466667000>;
118 clock-latency-ns = <300>;
119 };
120 opp@600000000 {
121 opp-hz = /bits/ 64 <600000000>;
122 clock-latency-ns = <300>;
123 };
124 opp@700000000 {
125 opp-hz = /bits/ 64 <700000000>;
126 clock-latency-ns = <300>;
127 };
128 opp@800000000 {
129 opp-hz = /bits/ 64 <800000000>;
130 clock-latency-ns = <300>;
131 };
132 opp@933334000 {
133 opp-hz = /bits/ 64 <933334000>;
134 clock-latency-ns = <300>;
135 };
136 opp@1200000000 {
137 opp-hz = /bits/ 64 <1200000000>;
138 clock-latency-ns = <300>;
139 };
140 opp@1400000000 {
141 opp-hz = /bits/ 64 <1400000000>;
142 clock-latency-ns = <300>;
143 };
144 };
145
146 psci {
147 compatible = "arm,psci-0.2";
148 method = "smc";
149 };
150
72 clocks { 151 clocks {
152 refclk: ref {
153 compatible = "fixed-clock";
154 #clock-cells = <0>;
155 clock-frequency = <20000000>;
156 };
157
73 arm_timer_clk: arm_timer_clk { 158 arm_timer_clk: arm_timer_clk {
74 #clock-cells = <0>; 159 #clock-cells = <0>;
75 compatible = "fixed-clock"; 160 compatible = "fixed-clock";
76 clock-frequency = <50000000>; 161 clock-frequency = <50000000>;
77 }; 162 };
78 }; 163 };
79};
80 164
81&soc { 165 soc {
82 l2: l2-cache@500c0000 { 166 compatible = "simple-bus";
83 compatible = "socionext,uniphier-system-cache"; 167 #address-cells = <1>;
84 reg = <0x500c0000 0x2000>, <0x503c0100 0x8>, <0x506c0000 0x400>; 168 #size-cells = <1>;
85 interrupts = <0 190 4>, <0 191 4>; 169 ranges;
86 cache-unified; 170 interrupt-parent = <&intc>;
87 cache-size = <(2 * 1024 * 1024)>;
88 cache-sets = <512>;
89 cache-line-size = <128>;
90 cache-level = <2>;
91 next-level-cache = <&l3>;
92 };
93 171
94 l3: l3-cache@500c8000 { 172 l2: l2-cache@500c0000 {
95 compatible = "socionext,uniphier-system-cache"; 173 compatible = "socionext,uniphier-system-cache";
96 reg = <0x500c8000 0x2000>, <0x503c8100 0x8>, <0x506c8000 0x400>; 174 reg = <0x500c0000 0x2000>, <0x503c0100 0x8>,
97 interrupts = <0 174 4>, <0 175 4>; 175 <0x506c0000 0x400>;
98 cache-unified; 176 interrupts = <0 190 4>, <0 191 4>;
99 cache-size = <(2 * 1024 * 1024)>; 177 cache-unified;
100 cache-sets = <512>; 178 cache-size = <(2 * 1024 * 1024)>;
101 cache-line-size = <256>; 179 cache-sets = <512>;
102 cache-level = <3>; 180 cache-line-size = <128>;
103 }; 181 cache-level = <2>;
182 next-level-cache = <&l3>;
183 };
104 184
105 i2c0: i2c@58780000 { 185 l3: l3-cache@500c8000 {
106 compatible = "socionext,uniphier-fi2c"; 186 compatible = "socionext,uniphier-system-cache";
107 status = "disabled"; 187 reg = <0x500c8000 0x2000>, <0x503c8100 0x8>,
108 reg = <0x58780000 0x80>; 188 <0x506c8000 0x400>;
109 #address-cells = <1>; 189 interrupts = <0 174 4>, <0 175 4>;
110 #size-cells = <0>; 190 cache-unified;
111 interrupts = <0 41 4>; 191 cache-size = <(2 * 1024 * 1024)>;
112 pinctrl-names = "default"; 192 cache-sets = <512>;
113 pinctrl-0 = <&pinctrl_i2c0>; 193 cache-line-size = <256>;
114 clocks = <&peri_clk 4>; 194 cache-level = <3>;
115 clock-frequency = <100000>; 195 };
116 };
117 196
118 i2c1: i2c@58781000 { 197 serial0: serial@54006800 {
119 compatible = "socionext,uniphier-fi2c"; 198 compatible = "socionext,uniphier-uart";
120 status = "disabled"; 199 status = "disabled";
121 reg = <0x58781000 0x80>; 200 reg = <0x54006800 0x40>;
122 #address-cells = <1>; 201 interrupts = <0 33 4>;
123 #size-cells = <0>; 202 pinctrl-names = "default";
124 interrupts = <0 42 4>; 203 pinctrl-0 = <&pinctrl_uart0>;
125 pinctrl-names = "default"; 204 clocks = <&peri_clk 0>;
126 pinctrl-0 = <&pinctrl_i2c1>; 205 };
127 clocks = <&peri_clk 5>;
128 clock-frequency = <100000>;
129 };
130 206
131 i2c2: i2c@58782000 { 207 serial1: serial@54006900 {
132 compatible = "socionext,uniphier-fi2c"; 208 compatible = "socionext,uniphier-uart";
133 status = "disabled"; 209 status = "disabled";
134 reg = <0x58782000 0x80>; 210 reg = <0x54006900 0x40>;
135 #address-cells = <1>; 211 interrupts = <0 35 4>;
136 #size-cells = <0>; 212 pinctrl-names = "default";
137 interrupts = <0 43 4>; 213 pinctrl-0 = <&pinctrl_uart1>;
138 pinctrl-names = "default"; 214 clocks = <&peri_clk 1>;
139 pinctrl-0 = <&pinctrl_i2c2>; 215 };
140 clocks = <&peri_clk 6>;
141 clock-frequency = <100000>;
142 };
143 216
144 i2c3: i2c@58783000 { 217 serial2: serial@54006a00 {
145 compatible = "socionext,uniphier-fi2c"; 218 compatible = "socionext,uniphier-uart";
146 status = "disabled"; 219 status = "disabled";
147 reg = <0x58783000 0x80>; 220 reg = <0x54006a00 0x40>;
148 #address-cells = <1>; 221 interrupts = <0 37 4>;
149 #size-cells = <0>; 222 pinctrl-names = "default";
150 interrupts = <0 44 4>; 223 pinctrl-0 = <&pinctrl_uart2>;
151 pinctrl-names = "default"; 224 clocks = <&peri_clk 2>;
152 pinctrl-0 = <&pinctrl_i2c3>; 225 };
153 clocks = <&peri_clk 7>;
154 clock-frequency = <100000>;
155 };
156 226
157 /* i2c4 does not exist */ 227 serial3: serial@54006b00 {
228 compatible = "socionext,uniphier-uart";
229 status = "disabled";
230 reg = <0x54006b00 0x40>;
231 interrupts = <0 177 4>;
232 pinctrl-names = "default";
233 pinctrl-0 = <&pinctrl_uart3>;
234 clocks = <&peri_clk 3>;
235 };
158 236
159 /* chip-internal connection for DMD */ 237 i2c0: i2c@58780000 {
160 i2c5: i2c@58785000 { 238 compatible = "socionext,uniphier-fi2c";
161 compatible = "socionext,uniphier-fi2c"; 239 status = "disabled";
162 reg = <0x58785000 0x80>; 240 reg = <0x58780000 0x80>;
163 #address-cells = <1>; 241 #address-cells = <1>;
164 #size-cells = <0>; 242 #size-cells = <0>;
165 interrupts = <0 25 4>; 243 interrupts = <0 41 4>;
166 clocks = <&peri_clk 9>; 244 pinctrl-names = "default";
167 clock-frequency = <400000>; 245 pinctrl-0 = <&pinctrl_i2c0>;
168 }; 246 clocks = <&peri_clk 4>;
247 clock-frequency = <100000>;
248 };
169 249
170 /* chip-internal connection for HDMI */ 250 i2c1: i2c@58781000 {
171 i2c6: i2c@58786000 { 251 compatible = "socionext,uniphier-fi2c";
172 compatible = "socionext,uniphier-fi2c"; 252 status = "disabled";
173 reg = <0x58786000 0x80>; 253 reg = <0x58781000 0x80>;
174 #address-cells = <1>; 254 #address-cells = <1>;
175 #size-cells = <0>; 255 #size-cells = <0>;
176 interrupts = <0 26 4>; 256 interrupts = <0 42 4>;
177 clocks = <&peri_clk 10>; 257 pinctrl-names = "default";
178 clock-frequency = <400000>; 258 pinctrl-0 = <&pinctrl_i2c1>;
179 }; 259 clocks = <&peri_clk 5>;
180}; 260 clock-frequency = <100000>;
261 };
181 262
182&refclk { 263 i2c2: i2c@58782000 {
183 clock-frequency = <20000000>; 264 compatible = "socionext,uniphier-fi2c";
184}; 265 status = "disabled";
266 reg = <0x58782000 0x80>;
267 #address-cells = <1>;
268 #size-cells = <0>;
269 interrupts = <0 43 4>;
270 pinctrl-names = "default";
271 pinctrl-0 = <&pinctrl_i2c2>;
272 clocks = <&peri_clk 6>;
273 clock-frequency = <100000>;
274 };
185 275
186&mio_clk { 276 i2c3: i2c@58783000 {
187 compatible = "socionext,uniphier-pro5-sd-clock"; 277 compatible = "socionext,uniphier-fi2c";
188}; 278 status = "disabled";
279 reg = <0x58783000 0x80>;
280 #address-cells = <1>;
281 #size-cells = <0>;
282 interrupts = <0 44 4>;
283 pinctrl-names = "default";
284 pinctrl-0 = <&pinctrl_i2c3>;
285 clocks = <&peri_clk 7>;
286 clock-frequency = <100000>;
287 };
189 288
190&mio_rst { 289 /* i2c4 does not exist */
191 compatible = "socionext,uniphier-pro5-sd-reset";
192};
193 290
194&peri_clk { 291 /* chip-internal connection for DMD */
195 compatible = "socionext,uniphier-pro5-peri-clock"; 292 i2c5: i2c@58785000 {
196}; 293 compatible = "socionext,uniphier-fi2c";
294 reg = <0x58785000 0x80>;
295 #address-cells = <1>;
296 #size-cells = <0>;
297 interrupts = <0 25 4>;
298 clocks = <&peri_clk 9>;
299 clock-frequency = <400000>;
300 };
197 301
198&peri_rst { 302 /* chip-internal connection for HDMI */
199 compatible = "socionext,uniphier-pro5-peri-reset"; 303 i2c6: i2c@58786000 {
200}; 304 compatible = "socionext,uniphier-fi2c";
305 reg = <0x58786000 0x80>;
306 #address-cells = <1>;
307 #size-cells = <0>;
308 interrupts = <0 26 4>;
309 clocks = <&peri_clk 10>;
310 clock-frequency = <400000>;
311 };
201 312
202&pinctrl { 313 system_bus: system-bus@58c00000 {
203 compatible = "socionext,uniphier-pro5-pinctrl"; 314 compatible = "socionext,uniphier-system-bus";
204}; 315 status = "disabled";
316 reg = <0x58c00000 0x400>;
317 #address-cells = <2>;
318 #size-cells = <1>;
319 pinctrl-names = "default";
320 pinctrl-0 = <&pinctrl_system_bus>;
321 };
205 322
206&sys_clk { 323 smpctrl@59800000 {
207 compatible = "socionext,uniphier-pro5-clock"; 324 compatible = "socionext,uniphier-smpctrl";
208}; 325 reg = <0x59801000 0x400>;
326 };
209 327
210&sys_rst { 328 sdctrl@59810000 {
211 compatible = "socionext,uniphier-pro5-reset"; 329 compatible = "socionext,uniphier-pro5-sdctrl",
330 "simple-mfd", "syscon";
331 reg = <0x59810000 0x800>;
332
333 sd_clk: clock {
334 compatible = "socionext,uniphier-pro5-sd-clock";
335 #clock-cells = <1>;
336 };
337
338 sd_rst: reset {
339 compatible = "socionext,uniphier-pro5-sd-reset";
340 #reset-cells = <1>;
341 };
342 };
343
344 perictrl@59820000 {
345 compatible = "socionext,uniphier-pro5-perictrl",
346 "simple-mfd", "syscon";
347 reg = <0x59820000 0x200>;
348
349 peri_clk: clock {
350 compatible = "socionext,uniphier-pro5-peri-clock";
351 #clock-cells = <1>;
352 };
353
354 peri_rst: reset {
355 compatible = "socionext,uniphier-pro5-peri-reset";
356 #reset-cells = <1>;
357 };
358 };
359
360 soc-glue@5f800000 {
361 compatible = "socionext,uniphier-pro5-soc-glue",
362 "simple-mfd", "syscon";
363 reg = <0x5f800000 0x2000>;
364
365 pinctrl: pinctrl {
366 compatible = "socionext,uniphier-pro5-pinctrl";
367 };
368 };
369
370 timer@60000200 {
371 compatible = "arm,cortex-a9-global-timer";
372 reg = <0x60000200 0x20>;
373 interrupts = <1 11 0x304>;
374 clocks = <&arm_timer_clk>;
375 };
376
377 timer@60000600 {
378 compatible = "arm,cortex-a9-twd-timer";
379 reg = <0x60000600 0x20>;
380 interrupts = <1 13 0x304>;
381 clocks = <&arm_timer_clk>;
382 };
383
384 intc: interrupt-controller@60001000 {
385 compatible = "arm,cortex-a9-gic";
386 reg = <0x60001000 0x1000>,
387 <0x60000100 0x100>;
388 #interrupt-cells = <3>;
389 interrupt-controller;
390 };
391
392 sysctrl@61840000 {
393 compatible = "socionext,uniphier-pro5-sysctrl",
394 "simple-mfd", "syscon";
395 reg = <0x61840000 0x10000>;
396
397 sys_clk: clock {
398 compatible = "socionext,uniphier-pro5-clock";
399 #clock-cells = <1>;
400 };
401
402 sys_rst: reset {
403 compatible = "socionext,uniphier-pro5-reset";
404 #reset-cells = <1>;
405 };
406 };
407 };
212}; 408};
409
410/include/ "uniphier-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/uniphier-pxs2.dtsi b/arch/arm/boot/dts/uniphier-pxs2.dtsi
index 950f07ba0337..e9e031d63c1a 100644
--- a/arch/arm/boot/dts/uniphier-pxs2.dtsi
+++ b/arch/arm/boot/dts/uniphier-pxs2.dtsi
@@ -43,7 +43,7 @@
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
44 */ 44 */
45 45
46/include/ "uniphier-common32.dtsi" 46/include/ "skeleton.dtsi"
47 47
48/ { 48/ {
49 compatible = "socionext,uniphier-pxs2"; 49 compatible = "socionext,uniphier-pxs2";
@@ -56,170 +56,339 @@
56 device_type = "cpu"; 56 device_type = "cpu";
57 compatible = "arm,cortex-a9"; 57 compatible = "arm,cortex-a9";
58 reg = <0>; 58 reg = <0>;
59 clocks = <&sys_clk 32>;
59 enable-method = "psci"; 60 enable-method = "psci";
60 next-level-cache = <&l2>; 61 next-level-cache = <&l2>;
62 operating-points-v2 = <&cpu_opp>;
61 }; 63 };
62 64
63 cpu@1 { 65 cpu@1 {
64 device_type = "cpu"; 66 device_type = "cpu";
65 compatible = "arm,cortex-a9"; 67 compatible = "arm,cortex-a9";
66 reg = <1>; 68 reg = <1>;
69 clocks = <&sys_clk 32>;
67 enable-method = "psci"; 70 enable-method = "psci";
68 next-level-cache = <&l2>; 71 next-level-cache = <&l2>;
72 operating-points-v2 = <&cpu_opp>;
69 }; 73 };
70 74
71 cpu@2 { 75 cpu@2 {
72 device_type = "cpu"; 76 device_type = "cpu";
73 compatible = "arm,cortex-a9"; 77 compatible = "arm,cortex-a9";
74 reg = <2>; 78 reg = <2>;
79 clocks = <&sys_clk 32>;
75 enable-method = "psci"; 80 enable-method = "psci";
76 next-level-cache = <&l2>; 81 next-level-cache = <&l2>;
82 operating-points-v2 = <&cpu_opp>;
77 }; 83 };
78 84
79 cpu@3 { 85 cpu@3 {
80 device_type = "cpu"; 86 device_type = "cpu";
81 compatible = "arm,cortex-a9"; 87 compatible = "arm,cortex-a9";
82 reg = <3>; 88 reg = <3>;
89 clocks = <&sys_clk 32>;
83 enable-method = "psci"; 90 enable-method = "psci";
84 next-level-cache = <&l2>; 91 next-level-cache = <&l2>;
92 operating-points-v2 = <&cpu_opp>;
85 }; 93 };
86 }; 94 };
87 95
96 cpu_opp: opp_table {
97 compatible = "operating-points-v2";
98 opp-shared;
99
100 opp@100000000 {
101 opp-hz = /bits/ 64 <100000000>;
102 clock-latency-ns = <300>;
103 };
104 opp@150000000 {
105 opp-hz = /bits/ 64 <150000000>;
106 clock-latency-ns = <300>;
107 };
108 opp@200000000 {
109 opp-hz = /bits/ 64 <200000000>;
110 clock-latency-ns = <300>;
111 };
112 opp@300000000 {
113 opp-hz = /bits/ 64 <300000000>;
114 clock-latency-ns = <300>;
115 };
116 opp@400000000 {
117 opp-hz = /bits/ 64 <400000000>;
118 clock-latency-ns = <300>;
119 };
120 opp@600000000 {
121 opp-hz = /bits/ 64 <600000000>;
122 clock-latency-ns = <300>;
123 };
124 opp@800000000 {
125 opp-hz = /bits/ 64 <800000000>;
126 clock-latency-ns = <300>;
127 };
128 opp@1200000000 {
129 opp-hz = /bits/ 64 <1200000000>;
130 clock-latency-ns = <300>;
131 };
132 };
133
134 psci {
135 compatible = "arm,psci-0.2";
136 method = "smc";
137 };
138
88 clocks { 139 clocks {
140 refclk: ref {
141 compatible = "fixed-clock";
142 #clock-cells = <0>;
143 clock-frequency = <25000000>;
144 };
145
89 arm_timer_clk: arm_timer_clk { 146 arm_timer_clk: arm_timer_clk {
90 #clock-cells = <0>; 147 #clock-cells = <0>;
91 compatible = "fixed-clock"; 148 compatible = "fixed-clock";
92 clock-frequency = <50000000>; 149 clock-frequency = <50000000>;
93 }; 150 };
94 }; 151 };
95};
96
97&soc {
98 l2: l2-cache@500c0000 {
99 compatible = "socionext,uniphier-system-cache";
100 reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>;
101 interrupts = <0 174 4>, <0 175 4>, <0 190 4>, <0 191 4>;
102 cache-unified;
103 cache-size = <(1280 * 1024)>;
104 cache-sets = <512>;
105 cache-line-size = <128>;
106 cache-level = <2>;
107 };
108 152
109 i2c0: i2c@58780000 { 153 soc {
110 compatible = "socionext,uniphier-fi2c"; 154 compatible = "simple-bus";
111 status = "disabled";
112 reg = <0x58780000 0x80>;
113 #address-cells = <1>; 155 #address-cells = <1>;
114 #size-cells = <0>; 156 #size-cells = <1>;
115 interrupts = <0 41 4>; 157 ranges;
116 pinctrl-names = "default"; 158 interrupt-parent = <&intc>;
117 pinctrl-0 = <&pinctrl_i2c0>;
118 clocks = <&peri_clk 4>;
119 clock-frequency = <100000>;
120 };
121 159
122 i2c1: i2c@58781000 { 160 l2: l2-cache@500c0000 {
123 compatible = "socionext,uniphier-fi2c"; 161 compatible = "socionext,uniphier-system-cache";
124 status = "disabled"; 162 reg = <0x500c0000 0x2000>, <0x503c0100 0x8>,
125 reg = <0x58781000 0x80>; 163 <0x506c0000 0x400>;
126 #address-cells = <1>; 164 interrupts = <0 174 4>, <0 175 4>, <0 190 4>, <0 191 4>;
127 #size-cells = <0>; 165 cache-unified;
128 interrupts = <0 42 4>; 166 cache-size = <(1280 * 1024)>;
129 pinctrl-names = "default"; 167 cache-sets = <512>;
130 pinctrl-0 = <&pinctrl_i2c1>; 168 cache-line-size = <128>;
131 clocks = <&peri_clk 5>; 169 cache-level = <2>;
132 clock-frequency = <100000>; 170 };
133 };
134 171
135 i2c2: i2c@58782000 { 172 serial0: serial@54006800 {
136 compatible = "socionext,uniphier-fi2c"; 173 compatible = "socionext,uniphier-uart";
137 status = "disabled"; 174 status = "disabled";
138 reg = <0x58782000 0x80>; 175 reg = <0x54006800 0x40>;
139 #address-cells = <1>; 176 interrupts = <0 33 4>;
140 #size-cells = <0>; 177 pinctrl-names = "default";
141 pinctrl-names = "default"; 178 pinctrl-0 = <&pinctrl_uart0>;
142 pinctrl-0 = <&pinctrl_i2c2>; 179 clocks = <&peri_clk 0>;
143 interrupts = <0 43 4>; 180 };
144 clocks = <&peri_clk 6>;
145 clock-frequency = <100000>;
146 };
147 181
148 i2c3: i2c@58783000 { 182 serial1: serial@54006900 {
149 compatible = "socionext,uniphier-fi2c"; 183 compatible = "socionext,uniphier-uart";
150 status = "disabled"; 184 status = "disabled";
151 reg = <0x58783000 0x80>; 185 reg = <0x54006900 0x40>;
152 #address-cells = <1>; 186 interrupts = <0 35 4>;
153 #size-cells = <0>; 187 pinctrl-names = "default";
154 interrupts = <0 44 4>; 188 pinctrl-0 = <&pinctrl_uart1>;
155 pinctrl-names = "default"; 189 clocks = <&peri_clk 1>;
156 pinctrl-0 = <&pinctrl_i2c3>; 190 };
157 clocks = <&peri_clk 7>;
158 clock-frequency = <100000>;
159 };
160 191
161 /* chip-internal connection for DMD */ 192 serial2: serial@54006a00 {
162 i2c4: i2c@58784000 { 193 compatible = "socionext,uniphier-uart";
163 compatible = "socionext,uniphier-fi2c"; 194 status = "disabled";
164 reg = <0x58784000 0x80>; 195 reg = <0x54006a00 0x40>;
165 #address-cells = <1>; 196 interrupts = <0 37 4>;
166 #size-cells = <0>; 197 pinctrl-names = "default";
167 interrupts = <0 45 4>; 198 pinctrl-0 = <&pinctrl_uart2>;
168 clocks = <&peri_clk 8>; 199 clocks = <&peri_clk 2>;
169 clock-frequency = <400000>; 200 };
170 };
171 201
172 /* chip-internal connection for STM */ 202 serial3: serial@54006b00 {
173 i2c5: i2c@58785000 { 203 compatible = "socionext,uniphier-uart";
174 compatible = "socionext,uniphier-fi2c"; 204 status = "disabled";
175 reg = <0x58785000 0x80>; 205 reg = <0x54006b00 0x40>;
176 #address-cells = <1>; 206 interrupts = <0 177 4>;
177 #size-cells = <0>; 207 pinctrl-names = "default";
178 interrupts = <0 25 4>; 208 pinctrl-0 = <&pinctrl_uart3>;
179 clocks = <&peri_clk 9>; 209 clocks = <&peri_clk 3>;
180 clock-frequency = <400000>; 210 };
181 };
182 211
183 /* chip-internal connection for HDMI */ 212 i2c0: i2c@58780000 {
184 i2c6: i2c@58786000 { 213 compatible = "socionext,uniphier-fi2c";
185 compatible = "socionext,uniphier-fi2c"; 214 status = "disabled";
186 reg = <0x58786000 0x80>; 215 reg = <0x58780000 0x80>;
187 #address-cells = <1>; 216 #address-cells = <1>;
188 #size-cells = <0>; 217 #size-cells = <0>;
189 interrupts = <0 26 4>; 218 interrupts = <0 41 4>;
190 clocks = <&peri_clk 10>; 219 pinctrl-names = "default";
191 clock-frequency = <400000>; 220 pinctrl-0 = <&pinctrl_i2c0>;
192 }; 221 clocks = <&peri_clk 4>;
193}; 222 clock-frequency = <100000>;
223 };
194 224
195&refclk { 225 i2c1: i2c@58781000 {
196 clock-frequency = <25000000>; 226 compatible = "socionext,uniphier-fi2c";
197}; 227 status = "disabled";
228 reg = <0x58781000 0x80>;
229 #address-cells = <1>;
230 #size-cells = <0>;
231 interrupts = <0 42 4>;
232 pinctrl-names = "default";
233 pinctrl-0 = <&pinctrl_i2c1>;
234 clocks = <&peri_clk 5>;
235 clock-frequency = <100000>;
236 };
198 237
199&mio_clk { 238 i2c2: i2c@58782000 {
200 compatible = "socionext,uniphier-pxs2-sd-clock"; 239 compatible = "socionext,uniphier-fi2c";
201}; 240 status = "disabled";
241 reg = <0x58782000 0x80>;
242 #address-cells = <1>;
243 #size-cells = <0>;
244 interrupts = <0 43 4>;
245 pinctrl-names = "default";
246 pinctrl-0 = <&pinctrl_i2c2>;
247 clocks = <&peri_clk 6>;
248 clock-frequency = <100000>;
249 };
202 250
203&mio_rst { 251 i2c3: i2c@58783000 {
204 compatible = "socionext,uniphier-pxs2-sd-reset"; 252 compatible = "socionext,uniphier-fi2c";
205}; 253 status = "disabled";
254 reg = <0x58783000 0x80>;
255 #address-cells = <1>;
256 #size-cells = <0>;
257 interrupts = <0 44 4>;
258 pinctrl-names = "default";
259 pinctrl-0 = <&pinctrl_i2c3>;
260 clocks = <&peri_clk 7>;
261 clock-frequency = <100000>;
262 };
206 263
207&peri_clk { 264 /* chip-internal connection for DMD */
208 compatible = "socionext,uniphier-pxs2-peri-clock"; 265 i2c4: i2c@58784000 {
209}; 266 compatible = "socionext,uniphier-fi2c";
267 reg = <0x58784000 0x80>;
268 #address-cells = <1>;
269 #size-cells = <0>;
270 interrupts = <0 45 4>;
271 clocks = <&peri_clk 8>;
272 clock-frequency = <400000>;
273 };
210 274
211&peri_rst { 275 /* chip-internal connection for STM */
212 compatible = "socionext,uniphier-pxs2-peri-reset"; 276 i2c5: i2c@58785000 {
213}; 277 compatible = "socionext,uniphier-fi2c";
278 reg = <0x58785000 0x80>;
279 #address-cells = <1>;
280 #size-cells = <0>;
281 interrupts = <0 25 4>;
282 clocks = <&peri_clk 9>;
283 clock-frequency = <400000>;
284 };
214 285
215&pinctrl { 286 /* chip-internal connection for HDMI */
216 compatible = "socionext,uniphier-pxs2-pinctrl"; 287 i2c6: i2c@58786000 {
217}; 288 compatible = "socionext,uniphier-fi2c";
289 reg = <0x58786000 0x80>;
290 #address-cells = <1>;
291 #size-cells = <0>;
292 interrupts = <0 26 4>;
293 clocks = <&peri_clk 10>;
294 clock-frequency = <400000>;
295 };
218 296
219&sys_clk { 297 system_bus: system-bus@58c00000 {
220 compatible = "socionext,uniphier-pxs2-clock"; 298 compatible = "socionext,uniphier-system-bus";
221}; 299 status = "disabled";
300 reg = <0x58c00000 0x400>;
301 #address-cells = <2>;
302 #size-cells = <1>;
303 pinctrl-names = "default";
304 pinctrl-0 = <&pinctrl_system_bus>;
305 };
306
307 smpctrl@59800000 {
308 compatible = "socionext,uniphier-smpctrl";
309 reg = <0x59801000 0x400>;
310 };
311
312 sdctrl@59810000 {
313 compatible = "socionext,uniphier-pxs2-sdctrl",
314 "simple-mfd", "syscon";
315 reg = <0x59810000 0x800>;
222 316
223&sys_rst { 317 sd_clk: clock {
224 compatible = "socionext,uniphier-pxs2-reset"; 318 compatible = "socionext,uniphier-pxs2-sd-clock";
319 #clock-cells = <1>;
320 };
321
322 sd_rst: reset {
323 compatible = "socionext,uniphier-pxs2-sd-reset";
324 #reset-cells = <1>;
325 };
326 };
327
328 perictrl@59820000 {
329 compatible = "socionext,uniphier-pxs2-perictrl",
330 "simple-mfd", "syscon";
331 reg = <0x59820000 0x200>;
332
333 peri_clk: clock {
334 compatible = "socionext,uniphier-pxs2-peri-clock";
335 #clock-cells = <1>;
336 };
337
338 peri_rst: reset {
339 compatible = "socionext,uniphier-pxs2-peri-reset";
340 #reset-cells = <1>;
341 };
342 };
343
344 soc-glue@5f800000 {
345 compatible = "socionext,uniphier-pxs2-soc-glue",
346 "simple-mfd", "syscon";
347 reg = <0x5f800000 0x2000>;
348
349 pinctrl: pinctrl {
350 compatible = "socionext,uniphier-pxs2-pinctrl";
351 };
352 };
353
354 timer@60000200 {
355 compatible = "arm,cortex-a9-global-timer";
356 reg = <0x60000200 0x20>;
357 interrupts = <1 11 0xf04>;
358 clocks = <&arm_timer_clk>;
359 };
360
361 timer@60000600 {
362 compatible = "arm,cortex-a9-twd-timer";
363 reg = <0x60000600 0x20>;
364 interrupts = <1 13 0xf04>;
365 clocks = <&arm_timer_clk>;
366 };
367
368 intc: interrupt-controller@60001000 {
369 compatible = "arm,cortex-a9-gic";
370 reg = <0x60001000 0x1000>,
371 <0x60000100 0x100>;
372 #interrupt-cells = <3>;
373 interrupt-controller;
374 };
375
376 sysctrl@61840000 {
377 compatible = "socionext,uniphier-pxs2-sysctrl",
378 "simple-mfd", "syscon";
379 reg = <0x61840000 0x10000>;
380
381 sys_clk: clock {
382 compatible = "socionext,uniphier-pxs2-clock";
383 #clock-cells = <1>;
384 };
385
386 sys_rst: reset {
387 compatible = "socionext,uniphier-pxs2-reset";
388 #reset-cells = <1>;
389 };
390 };
391 };
225}; 392};
393
394/include/ "uniphier-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/uniphier-sld3.dtsi b/arch/arm/boot/dts/uniphier-sld3.dtsi
index 5fa96c939b5c..9fad6bd2db8a 100644
--- a/arch/arm/boot/dts/uniphier-sld3.dtsi
+++ b/arch/arm/boot/dts/uniphier-sld3.dtsi
@@ -135,7 +135,6 @@
135 reg = <0x54006800 0x40>; 135 reg = <0x54006800 0x40>;
136 interrupts = <0 33 4>; 136 interrupts = <0 33 4>;
137 clocks = <&sys_clk 0>; 137 clocks = <&sys_clk 0>;
138 fifo-size = <64>;
139 }; 138 };
140 139
141 serial1: serial@54006900 { 140 serial1: serial@54006900 {
@@ -144,7 +143,6 @@
144 reg = <0x54006900 0x40>; 143 reg = <0x54006900 0x40>;
145 interrupts = <0 35 4>; 144 interrupts = <0 35 4>;
146 clocks = <&sys_clk 0>; 145 clocks = <&sys_clk 0>;
147 fifo-size = <64>;
148 }; 146 };
149 147
150 serial2: serial@54006a00 { 148 serial2: serial@54006a00 {
@@ -153,7 +151,6 @@
153 reg = <0x54006a00 0x40>; 151 reg = <0x54006a00 0x40>;
154 interrupts = <0 37 4>; 152 interrupts = <0 37 4>;
155 clocks = <&sys_clk 0>; 153 clocks = <&sys_clk 0>;
156 fifo-size = <64>;
157 }; 154 };
158 155
159 i2c0: i2c@58400000 { 156 i2c0: i2c@58400000 {
@@ -225,7 +222,7 @@
225 }; 222 };
226 223
227 mioctrl@59810000 { 224 mioctrl@59810000 {
228 compatible = "socionext,uniphier-mioctrl", 225 compatible = "socionext,uniphier-sld3-mioctrl",
229 "simple-mfd", "syscon"; 226 "simple-mfd", "syscon";
230 reg = <0x59810000 0x800>; 227 reg = <0x59810000 0x800>;
231 228
@@ -245,6 +242,9 @@
245 status = "disabled"; 242 status = "disabled";
246 reg = <0x5a800100 0x100>; 243 reg = <0x5a800100 0x100>;
247 interrupts = <0 80 4>; 244 interrupts = <0 80 4>;
245 clocks = <&mio_clk 7>, <&mio_clk 8>, <&mio_clk 12>;
246 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 8>,
247 <&mio_rst 12>;
248 }; 248 };
249 249
250 usb1: usb@5a810100 { 250 usb1: usb@5a810100 {
@@ -252,6 +252,9 @@
252 status = "disabled"; 252 status = "disabled";
253 reg = <0x5a810100 0x100>; 253 reg = <0x5a810100 0x100>;
254 interrupts = <0 81 4>; 254 interrupts = <0 81 4>;
255 clocks = <&mio_clk 7>, <&mio_clk 9>, <&mio_clk 13>;
256 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 9>,
257 <&mio_rst 13>;
255 }; 258 };
256 259
257 usb2: usb@5a820100 { 260 usb2: usb@5a820100 {
@@ -259,6 +262,9 @@
259 status = "disabled"; 262 status = "disabled";
260 reg = <0x5a820100 0x100>; 263 reg = <0x5a820100 0x100>;
261 interrupts = <0 82 4>; 264 interrupts = <0 82 4>;
265 clocks = <&mio_clk 7>, <&mio_clk 10>, <&mio_clk 14>;
266 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 10>,
267 <&mio_rst 14>;
262 }; 268 };
263 269
264 usb3: usb@5a830100 { 270 usb3: usb@5a830100 {
@@ -266,12 +272,15 @@
266 status = "disabled"; 272 status = "disabled";
267 reg = <0x5a830100 0x100>; 273 reg = <0x5a830100 0x100>;
268 interrupts = <0 83 4>; 274 interrupts = <0 83 4>;
275 clocks = <&mio_clk 7>, <&mio_clk 11>, <&mio_clk 15>;
276 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 11>,
277 <&mio_rst 15>;
269 }; 278 };
270 279
271 sysctrl@f1840000 { 280 sysctrl@f1840000 {
272 compatible = "socionext,uniphier-sysctrl", 281 compatible = "socionext,uniphier-sld3-sysctrl",
273 "simple-mfd", "syscon"; 282 "simple-mfd", "syscon";
274 reg = <0xf1840000 0x4000>; 283 reg = <0xf1840000 0x10000>;
275 284
276 sys_clk: clock { 285 sys_clk: clock {
277 compatible = "socionext,uniphier-sld3-clock"; 286 compatible = "socionext,uniphier-sld3-clock";
diff --git a/arch/arm/boot/dts/uniphier-sld8.dtsi b/arch/arm/boot/dts/uniphier-sld8.dtsi
index d8cf0e7e11ea..b2c980ead7f0 100644
--- a/arch/arm/boot/dts/uniphier-sld8.dtsi
+++ b/arch/arm/boot/dts/uniphier-sld8.dtsi
@@ -43,7 +43,7 @@
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
44 */ 44 */
45 45
46/include/ "uniphier-common32.dtsi" 46/include/ "skeleton.dtsi"
47 47
48/ { 48/ {
49 compatible = "socionext,uniphier-sld8"; 49 compatible = "socionext,uniphier-sld8";
@@ -61,146 +61,267 @@
61 }; 61 };
62 }; 62 };
63 63
64 psci {
65 compatible = "arm,psci-0.2";
66 method = "smc";
67 };
68
64 clocks { 69 clocks {
70 refclk: ref {
71 compatible = "fixed-clock";
72 #clock-cells = <0>;
73 clock-frequency = <25000000>;
74 };
75
65 arm_timer_clk: arm_timer_clk { 76 arm_timer_clk: arm_timer_clk {
66 #clock-cells = <0>; 77 #clock-cells = <0>;
67 compatible = "fixed-clock"; 78 compatible = "fixed-clock";
68 clock-frequency = <50000000>; 79 clock-frequency = <50000000>;
69 }; 80 };
70 }; 81 };
71};
72
73&soc {
74 l2: l2-cache@500c0000 {
75 compatible = "socionext,uniphier-system-cache";
76 reg = <0x500c0000 0x2000>, <0x503c0100 0x4>, <0x506c0000 0x400>;
77 interrupts = <0 174 4>, <0 175 4>;
78 cache-unified;
79 cache-size = <(256 * 1024)>;
80 cache-sets = <256>;
81 cache-line-size = <128>;
82 cache-level = <2>;
83 };
84 82
85 i2c0: i2c@58400000 { 83 soc {
86 compatible = "socionext,uniphier-i2c"; 84 compatible = "simple-bus";
87 status = "disabled";
88 reg = <0x58400000 0x40>;
89 #address-cells = <1>; 85 #address-cells = <1>;
90 #size-cells = <0>; 86 #size-cells = <1>;
91 interrupts = <0 41 1>; 87 ranges;
92 pinctrl-names = "default"; 88 interrupt-parent = <&intc>;
93 pinctrl-0 = <&pinctrl_i2c0>;
94 clocks = <&peri_clk 4>;
95 clock-frequency = <100000>;
96 };
97 89
98 i2c1: i2c@58480000 { 90 l2: l2-cache@500c0000 {
99 compatible = "socionext,uniphier-i2c"; 91 compatible = "socionext,uniphier-system-cache";
100 status = "disabled"; 92 reg = <0x500c0000 0x2000>, <0x503c0100 0x4>,
101 reg = <0x58480000 0x40>; 93 <0x506c0000 0x400>;
102 #address-cells = <1>; 94 interrupts = <0 174 4>, <0 175 4>;
103 #size-cells = <0>; 95 cache-unified;
104 interrupts = <0 42 1>; 96 cache-size = <(256 * 1024)>;
105 pinctrl-names = "default"; 97 cache-sets = <256>;
106 pinctrl-0 = <&pinctrl_i2c1>; 98 cache-line-size = <128>;
107 clocks = <&peri_clk 5>; 99 cache-level = <2>;
108 clock-frequency = <100000>; 100 };
109 };
110 101
111 /* chip-internal connection for DMD */ 102 serial0: serial@54006800 {
112 i2c2: i2c@58500000 { 103 compatible = "socionext,uniphier-uart";
113 compatible = "socionext,uniphier-i2c"; 104 status = "disabled";
114 reg = <0x58500000 0x40>; 105 reg = <0x54006800 0x40>;
115 #address-cells = <1>; 106 interrupts = <0 33 4>;
116 #size-cells = <0>; 107 pinctrl-names = "default";
117 interrupts = <0 43 1>; 108 pinctrl-0 = <&pinctrl_uart0>;
118 pinctrl-names = "default"; 109 clocks = <&peri_clk 0>;
119 pinctrl-0 = <&pinctrl_i2c2>; 110 };
120 clocks = <&peri_clk 6>;
121 clock-frequency = <400000>;
122 };
123 111
124 i2c3: i2c@58580000 { 112 serial1: serial@54006900 {
125 compatible = "socionext,uniphier-i2c"; 113 compatible = "socionext,uniphier-uart";
126 status = "disabled"; 114 status = "disabled";
127 reg = <0x58580000 0x40>; 115 reg = <0x54006900 0x40>;
128 #address-cells = <1>; 116 interrupts = <0 35 4>;
129 #size-cells = <0>; 117 pinctrl-names = "default";
130 interrupts = <0 44 1>; 118 pinctrl-0 = <&pinctrl_uart1>;
131 pinctrl-names = "default"; 119 clocks = <&peri_clk 1>;
132 pinctrl-0 = <&pinctrl_i2c3>; 120 };
133 clocks = <&peri_clk 7>;
134 clock-frequency = <100000>;
135 };
136 121
137 usb0: usb@5a800100 { 122 serial2: serial@54006a00 {
138 compatible = "socionext,uniphier-ehci", "generic-ehci"; 123 compatible = "socionext,uniphier-uart";
139 status = "disabled"; 124 status = "disabled";
140 reg = <0x5a800100 0x100>; 125 reg = <0x54006a00 0x40>;
141 interrupts = <0 80 4>; 126 interrupts = <0 37 4>;
142 pinctrl-names = "default"; 127 pinctrl-names = "default";
143 pinctrl-0 = <&pinctrl_usb0>; 128 pinctrl-0 = <&pinctrl_uart2>;
144 clocks = <&mio_clk 7>, <&mio_clk 8>, <&mio_clk 12>; 129 clocks = <&peri_clk 2>;
145 resets = <&mio_rst 7>, <&mio_rst 8>, <&mio_rst 12>, <&sys_rst 8>; 130 };
146 };
147 131
148 usb1: usb@5a810100 { 132 serial3: serial@54006b00 {
149 compatible = "socionext,uniphier-ehci", "generic-ehci"; 133 compatible = "socionext,uniphier-uart";
150 status = "disabled"; 134 status = "disabled";
151 reg = <0x5a810100 0x100>; 135 reg = <0x54006b00 0x40>;
152 interrupts = <0 81 4>; 136 interrupts = <0 29 4>;
153 pinctrl-names = "default"; 137 pinctrl-names = "default";
154 pinctrl-0 = <&pinctrl_usb1>; 138 pinctrl-0 = <&pinctrl_uart3>;
155 clocks = <&mio_clk 7>, <&mio_clk 9>, <&mio_clk 13>; 139 clocks = <&peri_clk 3>;
156 resets = <&mio_rst 7>, <&mio_rst 9>, <&mio_rst 13>, <&sys_rst 8>; 140 };
157 };
158 141
159 usb2: usb@5a820100 { 142 i2c0: i2c@58400000 {
160 compatible = "socionext,uniphier-ehci", "generic-ehci"; 143 compatible = "socionext,uniphier-i2c";
161 status = "disabled"; 144 status = "disabled";
162 reg = <0x5a820100 0x100>; 145 reg = <0x58400000 0x40>;
163 interrupts = <0 82 4>; 146 #address-cells = <1>;
164 pinctrl-names = "default"; 147 #size-cells = <0>;
165 pinctrl-0 = <&pinctrl_usb2>; 148 interrupts = <0 41 1>;
166 clocks = <&mio_clk 7>, <&mio_clk 10>, <&mio_clk 14>; 149 pinctrl-names = "default";
167 resets = <&mio_rst 7>, <&mio_rst 10>, <&mio_rst 14>, <&sys_rst 8>; 150 pinctrl-0 = <&pinctrl_i2c0>;
168 }; 151 clocks = <&peri_clk 4>;
169}; 152 clock-frequency = <100000>;
153 };
170 154
171&refclk { 155 i2c1: i2c@58480000 {
172 clock-frequency = <25000000>; 156 compatible = "socionext,uniphier-i2c";
173}; 157 status = "disabled";
158 reg = <0x58480000 0x40>;
159 #address-cells = <1>;
160 #size-cells = <0>;
161 interrupts = <0 42 1>;
162 pinctrl-names = "default";
163 pinctrl-0 = <&pinctrl_i2c1>;
164 clocks = <&peri_clk 5>;
165 clock-frequency = <100000>;
166 };
174 167
175&serial3 { 168 /* chip-internal connection for DMD */
176 interrupts = <0 29 4>; 169 i2c2: i2c@58500000 {
177}; 170 compatible = "socionext,uniphier-i2c";
171 reg = <0x58500000 0x40>;
172 #address-cells = <1>;
173 #size-cells = <0>;
174 interrupts = <0 43 1>;
175 pinctrl-names = "default";
176 pinctrl-0 = <&pinctrl_i2c2>;
177 clocks = <&peri_clk 6>;
178 clock-frequency = <400000>;
179 };
178 180
179&mio_clk { 181 i2c3: i2c@58580000 {
180 compatible = "socionext,uniphier-sld8-mio-clock"; 182 compatible = "socionext,uniphier-i2c";
181}; 183 status = "disabled";
184 reg = <0x58580000 0x40>;
185 #address-cells = <1>;
186 #size-cells = <0>;
187 interrupts = <0 44 1>;
188 pinctrl-names = "default";
189 pinctrl-0 = <&pinctrl_i2c3>;
190 clocks = <&peri_clk 7>;
191 clock-frequency = <100000>;
192 };
182 193
183&mio_rst { 194 system_bus: system-bus@58c00000 {
184 compatible = "socionext,uniphier-sld8-mio-reset"; 195 compatible = "socionext,uniphier-system-bus";
185 resets = <&sys_rst 7>; 196 status = "disabled";
186}; 197 reg = <0x58c00000 0x400>;
198 #address-cells = <2>;
199 #size-cells = <1>;
200 pinctrl-names = "default";
201 pinctrl-0 = <&pinctrl_system_bus>;
202 };
187 203
188&peri_clk { 204 smpctrl@59800000 {
189 compatible = "socionext,uniphier-sld8-peri-clock"; 205 compatible = "socionext,uniphier-smpctrl";
190}; 206 reg = <0x59801000 0x400>;
207 };
191 208
192&peri_rst { 209 mioctrl@59810000 {
193 compatible = "socionext,uniphier-sld8-peri-reset"; 210 compatible = "socionext,uniphier-sld8-mioctrl",
194}; 211 "simple-mfd", "syscon";
212 reg = <0x59810000 0x800>;
195 213
196&pinctrl { 214 mio_clk: clock {
197 compatible = "socionext,uniphier-sld8-pinctrl"; 215 compatible = "socionext,uniphier-sld8-mio-clock";
198}; 216 #clock-cells = <1>;
217 };
199 218
200&sys_clk { 219 mio_rst: reset {
201 compatible = "socionext,uniphier-sld8-clock"; 220 compatible = "socionext,uniphier-sld8-mio-reset";
202}; 221 #reset-cells = <1>;
222 };
223 };
224
225 perictrl@59820000 {
226 compatible = "socionext,uniphier-sld8-perictrl",
227 "simple-mfd", "syscon";
228 reg = <0x59820000 0x200>;
229
230 peri_clk: clock {
231 compatible = "socionext,uniphier-sld8-peri-clock";
232 #clock-cells = <1>;
233 };
234
235 peri_rst: reset {
236 compatible = "socionext,uniphier-sld8-peri-reset";
237 #reset-cells = <1>;
238 };
239 };
240
241 usb0: usb@5a800100 {
242 compatible = "socionext,uniphier-ehci", "generic-ehci";
243 status = "disabled";
244 reg = <0x5a800100 0x100>;
245 interrupts = <0 80 4>;
246 pinctrl-names = "default";
247 pinctrl-0 = <&pinctrl_usb0>;
248 clocks = <&mio_clk 7>, <&mio_clk 8>, <&mio_clk 12>;
249 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 8>,
250 <&mio_rst 12>;
251 };
252
253 usb1: usb@5a810100 {
254 compatible = "socionext,uniphier-ehci", "generic-ehci";
255 status = "disabled";
256 reg = <0x5a810100 0x100>;
257 interrupts = <0 81 4>;
258 pinctrl-names = "default";
259 pinctrl-0 = <&pinctrl_usb1>;
260 clocks = <&mio_clk 7>, <&mio_clk 9>, <&mio_clk 13>;
261 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 9>,
262 <&mio_rst 13>;
263 };
264
265 usb2: usb@5a820100 {
266 compatible = "socionext,uniphier-ehci", "generic-ehci";
267 status = "disabled";
268 reg = <0x5a820100 0x100>;
269 interrupts = <0 82 4>;
270 pinctrl-names = "default";
271 pinctrl-0 = <&pinctrl_usb2>;
272 clocks = <&mio_clk 7>, <&mio_clk 10>, <&mio_clk 14>;
273 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 10>,
274 <&mio_rst 14>;
275 };
203 276
204&sys_rst { 277 soc-glue@5f800000 {
205 compatible = "socionext,uniphier-sld8-reset"; 278 compatible = "socionext,uniphier-sld8-soc-glue",
279 "simple-mfd", "syscon";
280 reg = <0x5f800000 0x2000>;
281
282 pinctrl: pinctrl {
283 compatible = "socionext,uniphier-sld8-pinctrl";
284 };
285 };
286
287 timer@60000200 {
288 compatible = "arm,cortex-a9-global-timer";
289 reg = <0x60000200 0x20>;
290 interrupts = <1 11 0x104>;
291 clocks = <&arm_timer_clk>;
292 };
293
294 timer@60000600 {
295 compatible = "arm,cortex-a9-twd-timer";
296 reg = <0x60000600 0x20>;
297 interrupts = <1 13 0x104>;
298 clocks = <&arm_timer_clk>;
299 };
300
301 intc: interrupt-controller@60001000 {
302 compatible = "arm,cortex-a9-gic";
303 reg = <0x60001000 0x1000>,
304 <0x60000100 0x100>;
305 #interrupt-cells = <3>;
306 interrupt-controller;
307 };
308
309 sysctrl@61840000 {
310 compatible = "socionext,uniphier-sld8-sysctrl",
311 "simple-mfd", "syscon";
312 reg = <0x61840000 0x10000>;
313
314 sys_clk: clock {
315 compatible = "socionext,uniphier-sld8-clock";
316 #clock-cells = <1>;
317 };
318
319 sys_rst: reset {
320 compatible = "socionext,uniphier-sld8-reset";
321 #reset-cells = <1>;
322 };
323 };
324 };
206}; 325};
326
327/include/ "uniphier-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
index 0205c97efdef..45d08cc37b01 100644
--- a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
+++ b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
@@ -39,6 +39,7 @@
39 reg = <0>; 39 reg = <0>;
40 cci-control-port = <&cci_control1>; 40 cci-control-port = <&cci_control1>;
41 cpu-idle-states = <&CLUSTER_SLEEP_BIG>; 41 cpu-idle-states = <&CLUSTER_SLEEP_BIG>;
42 capacity-dmips-mhz = <1024>;
42 }; 43 };
43 44
44 cpu1: cpu@1 { 45 cpu1: cpu@1 {
@@ -47,6 +48,7 @@
47 reg = <1>; 48 reg = <1>;
48 cci-control-port = <&cci_control1>; 49 cci-control-port = <&cci_control1>;
49 cpu-idle-states = <&CLUSTER_SLEEP_BIG>; 50 cpu-idle-states = <&CLUSTER_SLEEP_BIG>;
51 capacity-dmips-mhz = <1024>;
50 }; 52 };
51 53
52 cpu2: cpu@2 { 54 cpu2: cpu@2 {
@@ -55,6 +57,7 @@
55 reg = <0x100>; 57 reg = <0x100>;
56 cci-control-port = <&cci_control2>; 58 cci-control-port = <&cci_control2>;
57 cpu-idle-states = <&CLUSTER_SLEEP_LITTLE>; 59 cpu-idle-states = <&CLUSTER_SLEEP_LITTLE>;
60 capacity-dmips-mhz = <516>;
58 }; 61 };
59 62
60 cpu3: cpu@3 { 63 cpu3: cpu@3 {
@@ -63,6 +66,7 @@
63 reg = <0x101>; 66 reg = <0x101>;
64 cci-control-port = <&cci_control2>; 67 cci-control-port = <&cci_control2>;
65 cpu-idle-states = <&CLUSTER_SLEEP_LITTLE>; 68 cpu-idle-states = <&CLUSTER_SLEEP_LITTLE>;
69 capacity-dmips-mhz = <516>;
66 }; 70 };
67 71
68 cpu4: cpu@4 { 72 cpu4: cpu@4 {
@@ -71,6 +75,7 @@
71 reg = <0x102>; 75 reg = <0x102>;
72 cci-control-port = <&cci_control2>; 76 cci-control-port = <&cci_control2>;
73 cpu-idle-states = <&CLUSTER_SLEEP_LITTLE>; 77 cpu-idle-states = <&CLUSTER_SLEEP_LITTLE>;
78 capacity-dmips-mhz = <516>;
74 }; 79 };
75 80
76 idle-states { 81 idle-states {
diff --git a/arch/arm/boot/dts/vf-colibri.dtsi b/arch/arm/boot/dts/vf-colibri.dtsi
index b7417094dc11..21bfef957b68 100644
--- a/arch/arm/boot/dts/vf-colibri.dtsi
+++ b/arch/arm/boot/dts/vf-colibri.dtsi
@@ -108,6 +108,10 @@
108 status = "okay"; 108 status = "okay";
109}; 109};
110 110
111&edma1 {
112 status = "okay";
113};
114
111&esdhc1 { 115&esdhc1 {
112 pinctrl-names = "default"; 116 pinctrl-names = "default";
113 pinctrl-0 = <&pinctrl_esdhc1>; 117 pinctrl-0 = <&pinctrl_esdhc1>;
diff --git a/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts b/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts
index 1552db00cc59..7ea617e47fe4 100644
--- a/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts
+++ b/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts
@@ -538,13 +538,6 @@
538 }; 538 };
539}; 539};
540 540
541&i2c3 {
542 clock-frequency = <100000>;
543 pinctrl-names = "default";
544 pinctrl-0 = <&pinctrl_i2c3>;
545 status = "okay";
546};
547
548&uart0 { 541&uart0 {
549 pinctrl-names = "default"; 542 pinctrl-names = "default";
550 pinctrl-0 = <&pinctrl_uart0>; 543 pinctrl-0 = <&pinctrl_uart0>;
@@ -714,13 +707,6 @@
714 >; 707 >;
715 }; 708 };
716 709
717 pinctrl_i2c3: i2c3grp {
718 fsl,pins = <
719 VF610_PAD_PTA30__I2C3_SCL 0x37ff
720 VF610_PAD_PTA31__I2C3_SDA 0x37ff
721 >;
722 };
723
724 pinctrl_leds_debug: pinctrl-leds-debug { 710 pinctrl_leds_debug: pinctrl-leds-debug {
725 fsl,pins = < 711 fsl,pins = <
726 VF610_PAD_PTD20__GPIO_74 0x31c2 712 VF610_PAD_PTD20__GPIO_74 0x31c2
diff --git a/arch/arm/boot/dts/vfxxx.dtsi b/arch/arm/boot/dts/vfxxx.dtsi
index 2c13ec696ac5..e9d28474c26a 100644
--- a/arch/arm/boot/dts/vfxxx.dtsi
+++ b/arch/arm/boot/dts/vfxxx.dtsi
@@ -194,6 +194,9 @@
194 clocks = <&clks VF610_CLK_DSPI0>; 194 clocks = <&clks VF610_CLK_DSPI0>;
195 clock-names = "dspi"; 195 clock-names = "dspi";
196 spi-num-chipselects = <6>; 196 spi-num-chipselects = <6>;
197 dmas = <&edma1 1 12>,
198 <&edma1 1 13>;
199 dma-names = "rx", "tx";
197 status = "disabled"; 200 status = "disabled";
198 }; 201 };
199 202
@@ -206,6 +209,9 @@
206 clocks = <&clks VF610_CLK_DSPI1>; 209 clocks = <&clks VF610_CLK_DSPI1>;
207 clock-names = "dspi"; 210 clock-names = "dspi";
208 spi-num-chipselects = <4>; 211 spi-num-chipselects = <4>;
212 dmas = <&edma1 1 14>,
213 <&edma1 1 15>;
214 dma-names = "rx", "tx";
209 status = "disabled"; 215 status = "disabled";
210 }; 216 };
211 217
@@ -520,6 +526,12 @@
520 status = "disabled"; 526 status = "disabled";
521 }; 527 };
522 528
529 ocotp: ocotp@400a5000 {
530 compatible = "fsl,vf610-ocotp";
531 reg = <0x400a5000 0x1000>;
532 clocks = <&clks VF610_CLK_OCOTP>;
533 };
534
523 snvs0: snvs@400a7000 { 535 snvs0: snvs@400a7000 {
524 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd"; 536 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
525 reg = <0x400a7000 0x2000>; 537 reg = <0x400a7000 0x2000>;
@@ -561,6 +573,9 @@
561 clocks = <&clks VF610_CLK_DSPI2>; 573 clocks = <&clks VF610_CLK_DSPI2>;
562 clock-names = "dspi"; 574 clock-names = "dspi";
563 spi-num-chipselects = <2>; 575 spi-num-chipselects = <2>;
576 dmas = <&edma1 0 10>,
577 <&edma1 0 11>;
578 dma-names = "rx", "tx";
564 status = "disabled"; 579 status = "disabled";
565 }; 580 };
566 581
@@ -573,6 +588,9 @@
573 clocks = <&clks VF610_CLK_DSPI3>; 588 clocks = <&clks VF610_CLK_DSPI3>;
574 clock-names = "dspi"; 589 clock-names = "dspi";
575 spi-num-chipselects = <2>; 590 spi-num-chipselects = <2>;
591 dmas = <&edma1 0 12>,
592 <&edma1 0 13>;
593 dma-names = "rx", "tx";
576 status = "disabled"; 594 status = "disabled";
577 }; 595 };
578 596
diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
index f283ff08381c..f3ac9bfe580e 100644
--- a/arch/arm/boot/dts/zynq-7000.dtsi
+++ b/arch/arm/boot/dts/zynq-7000.dtsi
@@ -10,9 +10,10 @@
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details. 11 * GNU General Public License for more details.
12 */ 12 */
13/include/ "skeleton.dtsi"
14 13
15/ { 14/ {
15 #address-cells = <1>;
16 #size-cells = <1>;
16 compatible = "xlnx,zynq-7000"; 17 compatible = "xlnx,zynq-7000";
17 18
18 cpus { 19 cpus {
@@ -41,14 +42,15 @@
41 }; 42 };
42 }; 43 };
43 44
44 pmu { 45 pmu@f8891000 {
45 compatible = "arm,cortex-a9-pmu"; 46 compatible = "arm,cortex-a9-pmu";
46 interrupts = <0 5 4>, <0 6 4>; 47 interrupts = <0 5 4>, <0 6 4>;
47 interrupt-parent = <&intc>; 48 interrupt-parent = <&intc>;
48 reg = < 0xf8891000 0x1000 0xf8893000 0x1000 >; 49 reg = <0xf8891000 0x1000>,
50 <0xf8893000 0x1000>;
49 }; 51 };
50 52
51 regulator_vccpint: fixedregulator@0 { 53 regulator_vccpint: fixedregulator {
52 compatible = "regulator-fixed"; 54 compatible = "regulator-fixed";
53 regulator-name = "VCCPINT"; 55 regulator-name = "VCCPINT";
54 regulator-min-microvolt = <1000000>; 56 regulator-min-microvolt = <1000000>;
diff --git a/arch/arm/boot/dts/zynq-microzed.dts b/arch/arm/boot/dts/zynq-microzed.dts
new file mode 100644
index 000000000000..b9376a4904b4
--- /dev/null
+++ b/arch/arm/boot/dts/zynq-microzed.dts
@@ -0,0 +1,96 @@
1/*
2 * Copyright (C) 2011 - 2014 Xilinx
3 * Copyright (C) 2016 Jagan Teki <jteki@openedev.com>
4 *
5 * This software is licensed under the terms of the GNU General Public
6 * License version 2, as published by the Free Software Foundation, and
7 * may be copied, distributed, and modified under those terms.
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/dts-v1/;
15/include/ "zynq-7000.dtsi"
16
17/ {
18 model = "Zynq MicroZED Development Board";
19 compatible = "xlnx,zynq-microzed", "xlnx,zynq-7000";
20
21 aliases {
22 ethernet0 = &gem0;
23 serial0 = &uart1;
24 };
25
26 memory {
27 device_type = "memory";
28 reg = <0x0 0x40000000>;
29 };
30
31 chosen {
32 bootargs = "earlycon";
33 stdout-path = "serial0:115200n8";
34 };
35
36 usb_phy0: phy0 {
37 compatible = "usb-nop-xceiv";
38 #phy-cells = <0>;
39 };
40};
41
42&clkc {
43 ps-clk-frequency = <33333333>;
44};
45
46&gem0 {
47 status = "okay";
48 phy-mode = "rgmii-id";
49 phy-handle = <&ethernet_phy>;
50
51 ethernet_phy: ethernet-phy@0 {
52 reg = <0>;
53 };
54};
55
56&sdhci0 {
57 status = "okay";
58};
59
60&uart1 {
61 status = "okay";
62};
63
64&usb0 {
65 status = "okay";
66 dr_mode = "host";
67 usb-phy = <&usb_phy0>;
68 pinctrl-names = "default";
69 pinctrl-0 = <&pinctrl_usb0_default>;
70};
71
72&pinctrl0 {
73 pinctrl_usb0_default: usb0-default {
74 mux {
75 groups = "usb0_0_grp";
76 function = "usb0";
77 };
78
79 conf {
80 groups = "usb0_0_grp";
81 slew-rate = <0>;
82 io-standard = <1>;
83 };
84
85 conf-rx {
86 pins = "MIO29", "MIO31", "MIO36";
87 bias-high-impedance;
88 };
89
90 conf-tx {
91 pins = "MIO28", "MIO30", "MIO32", "MIO33", "MIO34",
92 "MIO35", "MIO37", "MIO38", "MIO39";
93 bias-disable;
94 };
95 };
96};
diff --git a/arch/arm/boot/dts/zynq-parallella.dts b/arch/arm/boot/dts/zynq-parallella.dts
index 307ed201d658..64a6390fc501 100644
--- a/arch/arm/boot/dts/zynq-parallella.dts
+++ b/arch/arm/boot/dts/zynq-parallella.dts
@@ -28,7 +28,7 @@
28 serial0 = &uart1; 28 serial0 = &uart1;
29 }; 29 };
30 30
31 memory { 31 memory@0 {
32 device_type = "memory"; 32 device_type = "memory";
33 reg = <0x0 0x40000000>; 33 reg = <0x0 0x40000000>;
34 }; 34 };
diff --git a/arch/arm/boot/dts/zynq-zc702.dts b/arch/arm/boot/dts/zynq-zc702.dts
index e96959b2e67a..0cdad2cc8b78 100644
--- a/arch/arm/boot/dts/zynq-zc702.dts
+++ b/arch/arm/boot/dts/zynq-zc702.dts
@@ -24,7 +24,7 @@
24 serial0 = &uart1; 24 serial0 = &uart1;
25 }; 25 };
26 26
27 memory { 27 memory@0 {
28 device_type = "memory"; 28 device_type = "memory";
29 reg = <0x0 0x40000000>; 29 reg = <0x0 0x40000000>;
30 }; 30 };
diff --git a/arch/arm/boot/dts/zynq-zc706.dts b/arch/arm/boot/dts/zynq-zc706.dts
index be6a986bbbd8..ad4bb06dba25 100644
--- a/arch/arm/boot/dts/zynq-zc706.dts
+++ b/arch/arm/boot/dts/zynq-zc706.dts
@@ -24,7 +24,7 @@
24 serial0 = &uart1; 24 serial0 = &uart1;
25 }; 25 };
26 26
27 memory { 27 memory@0 {
28 device_type = "memory"; 28 device_type = "memory";
29 reg = <0x0 0x40000000>; 29 reg = <0x0 0x40000000>;
30 }; 30 };
diff --git a/arch/arm/boot/dts/zynq-zed.dts b/arch/arm/boot/dts/zynq-zed.dts
index 7250c1eac7f9..325379f7983c 100644
--- a/arch/arm/boot/dts/zynq-zed.dts
+++ b/arch/arm/boot/dts/zynq-zed.dts
@@ -23,7 +23,7 @@
23 serial0 = &uart1; 23 serial0 = &uart1;
24 }; 24 };
25 25
26 memory { 26 memory@0 {
27 device_type = "memory"; 27 device_type = "memory";
28 reg = <0x0 0x20000000>; 28 reg = <0x0 0x20000000>;
29 }; 29 };
diff --git a/arch/arm/boot/dts/zynq-zybo.dts b/arch/arm/boot/dts/zynq-zybo.dts
index d9e0f3e70671..590ec24b8749 100644
--- a/arch/arm/boot/dts/zynq-zybo.dts
+++ b/arch/arm/boot/dts/zynq-zybo.dts
@@ -23,7 +23,7 @@
23 serial0 = &uart1; 23 serial0 = &uart1;
24 }; 24 };
25 25
26 memory { 26 memory@0 {
27 device_type = "memory"; 27 device_type = "memory";
28 reg = <0x0 0x20000000>; 28 reg = <0x0 0x20000000>;
29 }; 29 };
diff --git a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
index e0ea60382087..470461ddd427 100644
--- a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
+++ b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
@@ -364,6 +364,7 @@
364 reg = <0x0 0xf7010000 0x0 0x27c>; 364 reg = <0x0 0xf7010000 0x0 0x27c>;
365 #address-cells = <1>; 365 #address-cells = <1>;
366 #size-cells = <1>; 366 #size-cells = <1>;
367 #pinctrl-cells = <1>;
367 #gpio-range-cells = <3>; 368 #gpio-range-cells = <3>;
368 pinctrl-single,register-width = <32>; 369 pinctrl-single,register-width = <32>;
369 pinctrl-single,function-mask = <7>; 370 pinctrl-single,function-mask = <7>;
@@ -402,6 +403,7 @@
402 reg = <0x0 0xf7010800 0x0 0x28c>; 403 reg = <0x0 0xf7010800 0x0 0x28c>;
403 #address-cells = <1>; 404 #address-cells = <1>;
404 #size-cells = <1>; 405 #size-cells = <1>;
406 #pinctrl-cells = <1>;
405 pinctrl-single,register-width = <32>; 407 pinctrl-single,register-width = <32>;
406 }; 408 };
407 409
@@ -410,6 +412,7 @@
410 reg = <0x0 0xf8001800 0x0 0x78>; 412 reg = <0x0 0xf8001800 0x0 0x78>;
411 #address-cells = <1>; 413 #address-cells = <1>;
412 #size-cells = <1>; 414 #size-cells = <1>;
415 #pinctrl-cells = <1>;
413 pinctrl-single,register-width = <32>; 416 pinctrl-single,register-width = <32>;
414 }; 417 };
415 418
diff --git a/arch/arm64/boot/dts/mediatek/mt8173.dtsi b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
index c2d588ca59b7..9c9fccbabb31 100644
--- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
@@ -450,6 +450,9 @@
450 auxadc: auxadc@11001000 { 450 auxadc: auxadc@11001000 {
451 compatible = "mediatek,mt8173-auxadc"; 451 compatible = "mediatek,mt8173-auxadc";
452 reg = <0 0x11001000 0 0x1000>; 452 reg = <0 0x11001000 0 0x1000>;
453 clocks = <&pericfg CLK_PERI_AUXADC>;
454 clock-names = "main";
455 #io-channel-cells = <1>;
453 }; 456 };
454 457
455 uart0: serial@11002000 { 458 uart0: serial@11002000 {
diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
index 1bb38d0493eb..85d009112864 100644
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
@@ -75,12 +75,6 @@ enum bcm2835_pinconf_param {
75 BCM2835_PINCONF_PARAM_PULL, 75 BCM2835_PINCONF_PARAM_PULL,
76}; 76};
77 77
78enum bcm2835_pinconf_pull {
79 BCM2835_PINCONFIG_PULL_NONE,
80 BCM2835_PINCONFIG_PULL_DOWN,
81 BCM2835_PINCONFIG_PULL_UP,
82};
83
84#define BCM2835_PINCONF_PACK(_param_, _arg_) ((_param_) << 16 | (_arg_)) 78#define BCM2835_PINCONF_PACK(_param_, _arg_) ((_param_) << 16 | (_arg_))
85#define BCM2835_PINCONF_UNPACK_PARAM(_conf_) ((_conf_) >> 16) 79#define BCM2835_PINCONF_UNPACK_PARAM(_conf_) ((_conf_) >> 16)
86#define BCM2835_PINCONF_UNPACK_ARG(_conf_) ((_conf_) & 0xffff) 80#define BCM2835_PINCONF_UNPACK_ARG(_conf_) ((_conf_) & 0xffff)
diff --git a/include/dt-bindings/clock/r7s72100-clock.h b/include/dt-bindings/clock/r7s72100-clock.h
index 3cd813896d08..29e01ed10e74 100644
--- a/include/dt-bindings/clock/r7s72100-clock.h
+++ b/include/dt-bindings/clock/r7s72100-clock.h
@@ -28,6 +28,9 @@
28/* MSTP7 */ 28/* MSTP7 */
29#define R7S72100_CLK_ETHER 4 29#define R7S72100_CLK_ETHER 4
30 30
31/* MSTP8 */
32#define R7S72100_CLK_MMCIF 4
33
31/* MSTP9 */ 34/* MSTP9 */
32#define R7S72100_CLK_I2C0 7 35#define R7S72100_CLK_I2C0 7
33#define R7S72100_CLK_I2C1 6 36#define R7S72100_CLK_I2C1 6
@@ -41,4 +44,8 @@
41#define R7S72100_CLK_SPI3 4 44#define R7S72100_CLK_SPI3 4
42#define R7S72100_CLK_SPI4 3 45#define R7S72100_CLK_SPI4 3
43 46
47/* MSTP12 */
48#define R7S72100_CLK_SDHI0 3
49#define R7S72100_CLK_SDHI1 2
50
44#endif /* __DT_BINDINGS_CLOCK_R7S72100_H__ */ 51#endif /* __DT_BINDINGS_CLOCK_R7S72100_H__ */
diff --git a/include/dt-bindings/clock/r8a7794-clock.h b/include/dt-bindings/clock/r8a7794-clock.h
index 9d02f5317c7c..88e64846cf37 100644
--- a/include/dt-bindings/clock/r8a7794-clock.h
+++ b/include/dt-bindings/clock/r8a7794-clock.h
@@ -20,8 +20,7 @@
20#define R8A7794_CLK_QSPI 5 20#define R8A7794_CLK_QSPI 5
21#define R8A7794_CLK_SDH 6 21#define R8A7794_CLK_SDH 6
22#define R8A7794_CLK_SD0 7 22#define R8A7794_CLK_SD0 7
23#define R8A7794_CLK_Z 8 23#define R8A7794_CLK_RCAN 8
24#define R8A7794_CLK_RCAN 9
25 24
26/* MSTP0 */ 25/* MSTP0 */
27#define R8A7794_CLK_MSIOF0 0 26#define R8A7794_CLK_MSIOF0 0
diff --git a/include/dt-bindings/clock/stih415-clks.h b/include/dt-bindings/clock/stih415-clks.h
deleted file mode 100644
index d80caa68aebd..000000000000
--- a/include/dt-bindings/clock/stih415-clks.h
+++ /dev/null
@@ -1,16 +0,0 @@
1/*
2 * This header provides constants clk index STMicroelectronics
3 * STiH415 SoC.
4 */
5#ifndef _CLK_STIH415
6#define _CLK_STIH415
7
8/* CLOCKGEN A0 */
9#define CLK_ICN_REG 0
10#define CLK_ETH1_PHY 4
11
12/* CLOCKGEN A1 */
13#define CLK_ICN_IF_2 0
14#define CLK_GMAC0_PHY 3
15
16#endif
diff --git a/include/dt-bindings/mfd/tps65217.h b/include/dt-bindings/mfd/tps65217.h
new file mode 100644
index 000000000000..cafb9e60cf12
--- /dev/null
+++ b/include/dt-bindings/mfd/tps65217.h
@@ -0,0 +1,26 @@
1/*
2 * This header provides macros for TI TPS65217 DT bindings.
3 *
4 * Copyright (C) 2016 Texas Instruments
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 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#ifndef __DT_BINDINGS_TPS65217_H__
20#define __DT_BINDINGS_TPS65217_H__
21
22#define TPS65217_IRQ_USB 0
23#define TPS65217_IRQ_AC 1
24#define TPS65217_IRQ_PB 2
25
26#endif
diff --git a/include/dt-bindings/pinctrl/bcm2835.h b/include/dt-bindings/pinctrl/bcm2835.h
index 6f0bc37af39c..e4e4fdf5d38f 100644
--- a/include/dt-bindings/pinctrl/bcm2835.h
+++ b/include/dt-bindings/pinctrl/bcm2835.h
@@ -24,4 +24,9 @@
24#define BCM2835_FSEL_ALT2 6 24#define BCM2835_FSEL_ALT2 6
25#define BCM2835_FSEL_ALT3 7 25#define BCM2835_FSEL_ALT3 7
26 26
27/* brcm,pull property */
28#define BCM2835_PUD_OFF 0
29#define BCM2835_PUD_DOWN 1
30#define BCM2835_PUD_UP 2
31
27#endif /* __DT_BINDINGS_PINCTRL_BCM2835_H__ */ 32#endif /* __DT_BINDINGS_PINCTRL_BCM2835_H__ */
diff --git a/include/dt-bindings/pinctrl/rockchip.h b/include/dt-bindings/pinctrl/rockchip.h
index 743e66a95e13..aaec8baaa354 100644
--- a/include/dt-bindings/pinctrl/rockchip.h
+++ b/include/dt-bindings/pinctrl/rockchip.h
@@ -25,6 +25,39 @@
25#define RK_GPIO4 4 25#define RK_GPIO4 4
26#define RK_GPIO6 6 26#define RK_GPIO6 6
27 27
28#define RK_PA0 0
29#define RK_PA1 1
30#define RK_PA2 2
31#define RK_PA3 3
32#define RK_PA4 4
33#define RK_PA5 5
34#define RK_PA6 6
35#define RK_PA7 7
36#define RK_PB0 8
37#define RK_PB1 9
38#define RK_PB2 10
39#define RK_PB3 11
40#define RK_PB4 12
41#define RK_PB5 13
42#define RK_PB6 14
43#define RK_PB7 15
44#define RK_PC0 16
45#define RK_PC1 17
46#define RK_PC2 18
47#define RK_PC3 19
48#define RK_PC4 20
49#define RK_PC5 21
50#define RK_PC6 22
51#define RK_PC7 23
52#define RK_PD0 24
53#define RK_PD1 25
54#define RK_PD2 26
55#define RK_PD3 27
56#define RK_PD4 28
57#define RK_PD5 29
58#define RK_PD6 30
59#define RK_PD7 31
60
28#define RK_FUNC_GPIO 0 61#define RK_FUNC_GPIO 0
29#define RK_FUNC_1 1 62#define RK_FUNC_1 1
30#define RK_FUNC_2 2 63#define RK_FUNC_2 2
diff --git a/include/dt-bindings/power/mt2701-power.h b/include/dt-bindings/power/mt2701-power.h
new file mode 100644
index 000000000000..64cc826d642c
--- /dev/null
+++ b/include/dt-bindings/power/mt2701-power.h
@@ -0,0 +1,27 @@
1/*
2 * Copyright (C) 2015 MediaTek Inc.
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 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */
13
14#ifndef _DT_BINDINGS_POWER_MT2701_POWER_H
15#define _DT_BINDINGS_POWER_MT2701_POWER_H
16
17#define MT2701_POWER_DOMAIN_CONN 0
18#define MT2701_POWER_DOMAIN_DISP 1
19#define MT2701_POWER_DOMAIN_MFG 2
20#define MT2701_POWER_DOMAIN_VDEC 3
21#define MT2701_POWER_DOMAIN_ISP 4
22#define MT2701_POWER_DOMAIN_BDP 5
23#define MT2701_POWER_DOMAIN_ETH 6
24#define MT2701_POWER_DOMAIN_HIF 7
25#define MT2701_POWER_DOMAIN_IFR_MSC 8
26
27#endif /* _DT_BINDINGS_POWER_MT2701_POWER_H */
diff --git a/include/dt-bindings/power/r8a7743-sysc.h b/include/dt-bindings/power/r8a7743-sysc.h
new file mode 100644
index 000000000000..61cfbb2907ea
--- /dev/null
+++ b/include/dt-bindings/power/r8a7743-sysc.h
@@ -0,0 +1,25 @@
1/*
2 * Copyright (C) 2016 Cogent Embedded Inc.
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#ifndef __DT_BINDINGS_POWER_R8A7743_SYSC_H__
9#define __DT_BINDINGS_POWER_R8A7743_SYSC_H__
10
11/*
12 * These power domain indices match the numbers of the interrupt bits
13 * representing the power areas in the various Interrupt Registers
14 * (e.g. SYSCISR, Interrupt Status Register)
15 */
16
17#define R8A7743_PD_CA15_CPU0 0
18#define R8A7743_PD_CA15_CPU1 1
19#define R8A7743_PD_CA15_SCU 12
20#define R8A7743_PD_SGX 20
21
22/* Always-on power area */
23#define R8A7743_PD_ALWAYS_ON 32
24
25#endif /* __DT_BINDINGS_POWER_R8A7743_SYSC_H__ */
diff --git a/include/dt-bindings/power/r8a7745-sysc.h b/include/dt-bindings/power/r8a7745-sysc.h
new file mode 100644
index 000000000000..1844c1171c04
--- /dev/null
+++ b/include/dt-bindings/power/r8a7745-sysc.h
@@ -0,0 +1,25 @@
1/*
2 * Copyright (C) 2016 Cogent Embedded Inc.
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#ifndef __DT_BINDINGS_POWER_R8A7745_SYSC_H__
9#define __DT_BINDINGS_POWER_R8A7745_SYSC_H__
10
11/*
12 * These power domain indices match the numbers of the interrupt bits
13 * representing the power areas in the various Interrupt Registers
14 * (e.g. SYSCISR, Interrupt Status Register)
15 */
16
17#define R8A7745_PD_CA7_CPU0 5
18#define R8A7745_PD_CA7_CPU1 6
19#define R8A7745_PD_SGX 20
20#define R8A7745_PD_CA7_SCU 21
21
22/* Always-on power area */
23#define R8A7745_PD_ALWAYS_ON 32
24
25#endif /* __DT_BINDINGS_POWER_R8A7745_SYSC_H__ */